共用方式為


Diffie-Hellman 金鑰 BLOB

BLOB 會與 Diffie-Hellman 提供者搭配使用,以便從 密碼編譯服務提供者 (CSP) 導出密鑰併匯入密鑰。

公鑰 BLOB

Diffie-Hellman 公鑰 BLOB,輸入 PUBLICKEYBLOB,可用來在 Diffie-Hellman 密鑰交換中交換 (G^X) mod P 值。 這些索引鍵會以下列格式匯出和匯入為位元組序列。

PUBLICKEYSTRUC  publickeystruc; 
DHPUBKEY dhpubkey;
BYTE y[dhpubkey.bitlen/8]; // Where y = (G^X) mod P

下表描述 金鑰 BLOB的每個元件。

描述
dhpubkey DHPUBKEY 結構。 magic 成員應設定為 0x31484400。 這個十六進位值是 「DH1」 ASCII 編碼。
publickeystruc PUBLICKEYSTRUC 結構。
y BYTE 序列。 Y 值 (G^X) mod P 位於 DHPUBKEY 結構之後,且應該一律是 DHPUBKEY bitlen 字段 (位長度 P) 除以 8 的長度。 如果計算產生的數據長度(G^X) mod P 比 P 短一或多個字節除以 8,則數據必須以必要的位元組(零值)填補,讓數據成為所需的長度(小端 格式)。

 

私鑰 BLOB

Diffie-Hellman 私鑰 BLOB,輸入 PRIVATEKEYBLOB,可用來儲存 Diffie-Hellman 密鑰的公開/私鑰資訊。 這些索引鍵會以下列格式匯出和匯入為位元組序列。

PUBLICKEYSTRUC  publickeystruc; 
DHPUBKEY        dhpubkey;
BYTE            prime[dhpubkey.bitlen/8];
BYTE            generator[dhpubkey.bitlen/8];
BYTE            secret[dhpubkey.bitlen/8];

下表描述金鑰 BLOB 的每個元件。

描述
dhpubkey DHPUBKEY 結構。 magic 成員必須設定為 0x32484400。 這個十六進位值是 「DH2」 ASCII 編碼。
發電機 BYTE 序列。 產生器 G.
publickeystruc PUBLICKEYSTRUC 結構。
主要 BYTE 序列。 質數,P。此數據必須一律將最顯著的位元設為其中一個。
秘密 BYTE 序列。 秘密指數 X。

 

注意

產生器和秘密必須一律具有相同的長度,以位元組為單位。 如果其中一個字節或比另一個字節短,則必須以必要的零值位元組數目填補,使其相同。 產生器與秘密都 小端 格式。