當前位置:首頁 » 操作系統 » 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 19:29:58 瀏覽:811
我的世界手機版寶可夢生存多人伺服器 發布:2024-11-26 19:29:52 瀏覽:729
卡盟伺服器的象徵什麼意思 發布:2024-11-26 19:28:15 瀏覽:389
游戲平板安卓2000以下哪個好 發布:2024-11-26 19:21:12 瀏覽:546
php重命名文件夾 發布:2024-11-26 19:06:01 瀏覽:18
阿里雲ecs伺服器無法連接公網ip 發布:2024-11-26 19:01:32 瀏覽:42
java寫helloworld 發布:2024-11-26 19:00:56 瀏覽:89
c語言遞歸排列 發布:2024-11-26 18:50:55 瀏覽:448
密碼鎖為什麼不建議用南孚 發布:2024-11-26 18:45:00 瀏覽:153
榮耀20s安卓版本在哪裡看 發布:2024-11-26 18:26:03 瀏覽:685