当前位置:首页 » 操作系统 » hmr算法

hmr算法

发布时间: 2024-06-11 08:37:56

❶ linode ubuntu ipsec 提示是否是有x.509证书

一、概述
常见的X.509证书格式包括:

cer/crt是用于存放证书,它是2进制形式存放的,不含私钥。

pem跟crt/cer的区别是它以Ascii来表示,可以用于存放证书或私钥。

pfx/p12用于存放个人证书/私钥,他通常包含保护密码,2进制方式。

p10是证书请求。

p7r是CA对证书请求的回复,只用于导入

p7b以树状展示证书链(certificate chain),同时也支持单个证书,不含私钥。

二、证书文件/私钥文件
在HTTPS通讯中最常用的是cer/crt和pem。下面以pem格式的证书为例进行说明。下面是一个完整的PEM格式证书:

Certificate:

Data:

Version: 1 (0x0)

Serial Number: 1 (0x1)

Signature Algorithm: md5WithRSAEncryption

Issuer: C=US, ST=Montana, L=Bozeman, O=sawtooth, OU=consulting, CN=www.sawtooth-consulting.com/[email protected]

Validity

Not Before: Jun 30 18:52:17 2010 GMT

Not After : Mar 26 18:52:17 2013 GMT

Subject: C=US, ST=Montana, L=Bozeman, O=yaSSL, OU=support, CN=www.yassl.com/[email protected]

Subject Public Key Info:

Public Key Algorithm: rsaEncryption

RSA Public Key: (512 bit)

Molus (512 bit):

00:c6:7b:c0:68:81:2f:de:82:3f:f9:ac:c3:86:4a:66:b7:ec:d4:f1:f6:64:21:ff:f5:a2:34:42:d0:38:9f:c6:dd:3b:6e:26:65:6a:54:96:dd:d2:7b:eb:36:a2:ae:7e:2a:9e:7e:56:a5:b6:87:9f:15:c7:18:66:7e:16:77:e2:a7

Exponent: 65537 (0x10001)

Signature Algorithm: md5WithRSAEncryption

58:a9:98:e7:16:52:4c:40:e7:e1:47:92:19:1b:3a:8f:97:6c:7b:b7:b0:cb:20:6d:ad:b5:d3:47:58:d8:e4:f2:3e:32:e9:ef:87:77:e5:54:36:f4:8d:50:8d:07:b4:77:45:ea:9d:a4:33:36:9b:0b:e0:74:58:11:c5:01:7b:4d

-----BEGIN CERTIFICATE-----

CxMKY29u

MTdaMIGKMQswCQY

bBgkqhkiG

6CP/msw4ZKZrfs1PH2ZCH/9aI0QtA4n8bdO24mZWpUlt3Se+s2oq5+Kp5+VqW2h58VxxhmfhZ34qcCAwEAATANB

+FHkhkbOo+=

-----END CERTIFICATE-----

从Certificate开始到“-----BEGIN CERTIFICATE-----”为止,中间的内容是证书的明文格式。

从“-----BEGIN CERTIFICATE-----”开始到“-----END CERTIFICATE-----”为止是证书的明文格式经过ASN.1编码再经过Base64编码得到的。

证书中包含的内容以及ASN.1编码格式:

对于私钥文件,真正的私钥是包含在字符串"-----BEGIN PRIVATE KEY-----"和字符串"-----END PRIVATE KEY-----"之间。

如果该私钥文件是pkcs8格式的,那么该私钥文件的格式为

PrivateKeyInfo ::= SEQUENCE {

version Version(INTEGER),

privateKeyAlgorithm PrivateKeyAlgorithmIdentifier (AlgorithmIdentifier),

privateKey PrivateKey(OCTET STRING),

attributes [0] IMPLICIT Attributes OPTIONAL(SET OF Attribute)

}

如果不是pkcs8格式的,那么"-----BEGIN PRIVATE KEY-----"和"-----END PRIVATE KEY-----"之间的内容就是私钥的Base64编码。

在客户端或服务器在交换证书时,需要首先把Base64编码转换为ASCII编码再进行传输。

三、公钥/私钥
公钥和私钥是证书文件和私钥文件中最核心的内容。

在SSL/TLS协议中需要是用公钥算法,来进行对称密钥的交换。最常见的算法是RSA和DH,而RSA算法和DH算法的公钥、私钥的数据格式是不同的。

3.1 RSA算法
RSA算法简要描述如下:

n = p *q; p,q为互质的大素数

(d * e) mod ( (p-1) * (q-1) ) = 1

其中n,e为公钥,n,p,q,d,e自己保留。

加密方法:

Y(密文) = X(明文)**d mod n;

解密方法:

X(明文) = Y(密文)**e mod n;

密钥格式

公钥包含两个整数:

n RSA 合数模,是一个正整数

e RSA 公开幂,是一个正整数

私钥有两种表达方法,这两种方法是等价的。

1、

n RSA 合数模,是一个正整数

d RSA 私有幂,是一个正整数

2、

p 第一个因子,是一个正整数

q 第二个因子,是一个正整数

dP 第一个因子的CRT 幂,是一个正整数

dQ 第二个因子的 CRT 幂,是一个正整数

qInv (第一个)CRT 系数,是一个正整数

对于RSA算法中的公钥部分,包含两个INTEGER类型的数字n和e。

对于RSA私钥的第一种表述方法,私钥中包含5个INTEGER类型的数字依次为n, e, d, p, q;对于RSA私钥的第二种表达方法,私钥中包含8个INTEGER类型的数字依次为n, e, d, p, q, dP, dQ和qInv;

交互方法:

SSL/TLS协议中,服务器端用Certificate消息把证书(公钥)传递给客户端,客户端随机生成48byte的预主密钥,用公钥加密传递给服务器端,作为双方对称加密中一系列密钥计算的基础。如下图:

3.2 DH算法

算法原理:

DH算法用于交换对称密钥,不能用于非对称的加解密。

DH算法简要描述如下:

一个素数q和一个整数a, 称a是q的一个原根。

双方各自选定一个大数Xa和Xb,分别计算得到Ya = a**Xa mod q和Yb= a**Xb mod q;

双方交换Ya和Yb,保密Xa和Xb。

计算对称密钥的方法:

K = Ya**Xb mod q = Xb ** Ya mod q

密钥格式:

DH算法的公钥中包含了两个整数:a和q,用于生成对称密钥

交互方法

服务器一端通过Certificate消息同步双方的a和q。

服务器紧接着选取Xa,计算得到Ya,并通过Server Key Exchange消息把Ya传递给客户端。

客户端选取Xb,计算得到Yb,并通过Client Key Exchange消息把Yb传递给服务器端。

双方分别计算K = Ya**Xb mod q = Xb ** Ya mod q,得到相同的预主密钥。

热点内容
漏油器密码怎么改密码 发布:2024-11-26 20:30:11 浏览:13
linux编码命令 发布:2024-11-26 20:23:13 浏览:800
密码加密工具 发布:2024-11-26 20:23:06 浏览:691
如何破解加密的wifi 发布:2024-11-26 20:10:29 浏览:430
c脚本检查 发布:2024-11-26 19:56:34 浏览:393
服务器ip控制系统叫什么 发布:2024-11-26 19:56:31 浏览:746
ecshop文件夹权限 发布:2024-11-26 19:55:05 浏览:73
编程123 发布:2024-11-26 19:52:52 浏览:949
python数组排序排序算法 发布:2024-11-26 19:50:16 浏览:969
如保编程 发布:2024-11-26 19:29:58 浏览:812