证书公钥解析

1.RSA算法
  质数 p q
  n=p*q
  e1与(p-1)*(q-1)互质
  e2*e1mod(p-1)*(q-1)=1
  (n, e1) 是公钥
  (n ,e2) 是私钥

2.A是明文 B是密文
  A=B^e1 mod n
  B=A^e1 mod n

如:

30 81 89 02 81 81 00 e3 8d 99 06 9f bd 9a c0 e5
6a 5d 03 b3 cf 09 ca 8e c1 4a 6c f9 90 c2 46 e0
89 44 69 cd a5 62 91 42 8a 5f e5 8f d3 fb 93 3f
bc d7 6e 5e f2 80 41 a6 79 78 8e 4d 1d 3d 65 ad
d4 36 9c c5 83 55 9d f1 bb 20 4c b7 6c 95 37 b0
37 06 e3 40 fb 8f 74 c3 59 91 a2 bf a2 e1 db 99
54 29 5f 9b a5 57 f5 40 7a 54 82 9c 84 d4 35 86
14 38 69 14 60 f3 c6 c7 11 75 f2 43 2c 34 ed 89
4a ae e1 9d 57 3e a1 02 03 01 00 01

这个是证书公钥的信息 (公钥的值绑定到持有对应私钥的个人、设备或服务的身份)

ASN.1采用Tag,Lenth,Value,编码方式,在此将整个编为一个sequence,可以理解为结构体,以30作为开始标志,
第二位81代表后面有1字节代表长度,即89代表长度(若为82则代表后面有两字节代表长度,依次类推),
转化成十进制为137,正好与后面的字节数吻合,从第四位02开始便是此sequence的内涵,相当于结构体的元素,
一般来说sequence往往需要嵌套,相当于结构体嵌结构体,但对公钥的sequence来说,此处仅有一层。
第四位02代表一下的内容为bit流,同样紧随其后的81代表有一字节代表长度,第六位的81代表长度为129,
即从00开始直到最后一行a1此为129字节,去掉前面的00,余下128位(占用的位数,就是所谓的密钥长度)便是rsa公钥的N值,
最后5个字节同样是bit流,
以02开始,03表示长度为3,最后的01 00 01 便是rsa公钥的E值。
关于为什么要在N值前补00,这可能是ASN.1的规定,若bit流的前四bit十六进制值小于8就要在在最前补零,看下面的例子
30 81 88 02 81 80 32 8d 99 06 9f bd 9a c0 e5 6a
5d 03 b3 cf 09 ca 8e c1 4a 6c f9 90 c2 46 e0 89
44 69 cd a5 62 91 42 8a 5f e5 8f d3 fb 93 3f bc
d7 6e 5e f2 80 41 a6 79 78 8e 4d 1d 3d 65 ad d4
36 9c c5 83 55 9d f1 bb 20 4c b7 6c 95 37 b0 37
06 e3 40 fb 8f 74 c3 59 91 a2 bf a2 e1 db 99 54
29 5f 9b a5 57 f5 40 7a 54 82 9c 84 d4 35 86 14
38 69 14 60 f3 c6 c7 11 75 f2 43 2c 34 ed 89 4a
ae e1 9d 57 3e a1 02 03 01 00 01
N的前四bit为0x3小于8,因此无需补零。
关于什么情况下要在tag值之后用8X标明有几位代表length,我的理解是,如果length的前四bit大于8或超过一字节,
则必需用8X标明,否则不用。

时间: 2024-11-05 12:11:26

证书公钥解析的相关文章

SSL安全证书-概念解析

一.关于证书 数字证书是一种认证机制.简单点说,它代表了一种由权威机构颁发授权的安全标志. 由来 在以前,传统网站采用HTTP协议进行数据传输,所有的数据几乎都用的明文,很容易发生隐私泄露.为了解决安全问题,大家开始考虑采用加解密的方案,于是乎诞生了公钥加密(非对称加解密)及签名算法.浏览器从服务端得到公钥,经过协商并生成动态密钥,此后所有的请求响应都基于动态密钥加解密.然而对于浏览器而言,是不是所有声称了 HTTPS 的服务器都值得信任呢.答案是否定的,服务器必须提供一个凭证以证明自己值得信任

https原理:证书传递、验证和数据加密、解密过程解析

目录(?)[-] HTTPS简介 客户端发起HTTPS请求 服务端的配置 传送证书 客户端解析证书 传送加密信息 服务段解密信息 传输加密后的信息 客户端解密信息 写的太好了,就是我一直想找的内容,看了这个对https立马明白多了 http://www.cnblogs.com/zhuqil/archive/2012/07/23/2604572.html 我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取.所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用HTTPS协议. HTTPS

openssl - 数字证书的编程解析

原文链接: http://www.cangfengzhe.com/wangluoanquan/37.html 这篇文章主要介绍PKI公钥体系中非常核心元素——数字证书的编程解析.在SSL,SET等安全协议通信时,数字证书用于通信双方进行身份认证,并且依靠数字证书和非对称加密算法加密传输数据,或者根据数字证书协商通信双方的共享密钥.所以,用户想要开发自己的应用,实现身份认证,必须对数字证书进行解析.根据解析结果,符合一定条件的终端用户,才可以接入. 1.证书格式介绍 现有的数字证书大都采用了X.5

搭建基于hyperledger fabric的联盟社区(八) --Fabric证书解析

一.证书目录解析 通过cryptogen生成所有证书文件后,以peerOrgannizations的第一个组织树org1为例,每个目录和对应文件的功能如下: ca: 存放组织的根证书和对应的私钥文件,默认采用EC算法,证书为自签名.组织内的实体将基于该证书作为证书根. tlsca:存放组织tls连接用的根证书和私钥文件.(TLS是传输层安全协议,其实就是SSL,现在叫TLS了) msp:存放代表该组织的身份信息. admincerts:组织管理员的身份验证证书,被根证书签名. cacerts:组

通过证书拿到公钥,进行加密、解密

InputStream is = this.getAssets().open(fileName);//证书读取流 CertificateFactory cf = CertificateFactory.getInstance("X.509");//获取X.509的证书工厂 X509Certificate certificate = (X509Certificate) cf.generateCertificate(is);//获取证书实例 PublicKey publicKey = cer

SGC强制最低128位加密,公钥支持ECC加密算法的SSL证书

  Pro SSL证书,验证企业域名所有权和企业身份信息,采用SGC(服务器门控)技术强制128位以上至256位加密,属于企业OV验证级专业版(Pro) SSL证书:即使用户使用低版本浏览器(比如浏览器加密强度为40位,56位等),也可以强制加密达到128位的加密强度.目前SSL证书公钥以2048 RSA加密算法为主流,而且Symantec Pro SSL证书还能支持公钥为256位 ECC加密算法.众所周知,256位加密的ECC SSL证书的安全性相当于3072位RSA SSL证书,但256位E

(SGC强制最低128位加密,公钥支持ECC加密算法的SSL证书)

  Pro SSL证书,验证企业域名所有权和企业身份信息,采用SGC(服务器门控)技术强制128位以上至256位加密,属于企业OV验证级专业版(Pro) SSL证书:即使用户使用低版本浏览器(比如浏览器加密强度为40位,56位等),也可以强制加密达到128位的加密强度.目前SSL证书公钥以2048 RSA加密算法为主流,而且Symantec Pro SSL证书还能支持公钥为256位 ECC加密算法.众所周知,256位加密的ECC SSL证书的安全性相当于3072位RSA SSL证书,但256位E

HTTPS原理解析-转

这篇文章关于Https的讲解真的是太透彻了,转过来备忘. 来源:腾讯bugly 基于此文章的学习总结:下一篇文章 1.HTTPS 基础 HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议 它是一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务器之间交换信息.它使用安全套接字层(SSL)进行信息交换,简单来说它是HTTP的安全版,是使用 TLS/SSL 加密的 HTTP 协议. HTTP 协议采用明文传输信息,存在信息窃听.信息篡改和信息

如何部署HTTPS 申请证书 安装证书

目标: 让自己的网站,yyii.info用https://yyii.info访问, 条件: 1.用的是阿里云服务器, https://promotion.aliyun.com/ntms/act/qwbk.html   330元/年.40G. 用oneinstack一键安装的.https://oneinstack.com/ 2.在阿里云申请一个免费的证书.在安全(云盾)栏目->证书服务. 申请后,大约1天,会提示下载相关文件,上传到网站下.然后再等待自动审核通过. 之后,就能下载证书. 下载来有4