Freigeben über


Diffie-Hellman Key BLOBs

BLOBs werden zusammen mit dem Diffie-Hellman Anbieter verwendet, um Schlüssel aus dem kryptografischen Dienstanbieter (CSP) zu exportieren und Schlüssel zu importieren.

BloBs für öffentliche Schlüssel

Diffie-Hellman public key BLOBs, typ PUBLICKEYBLOB, werden verwendet, um den Mod P-Wert (G^X) in einem Diffie-Hellman Schlüsselaustausch auszutauschen. Diese Schlüssel werden exportiert und als Bytesequenz mit dem folgenden Format importiert.

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

In der folgenden Tabelle werden die einzelnen Komponenten des Schlüssel-BLOB-beschrieben.

Feld Beschreibung
dhpubkey Eine DHPUBKEY Struktur. Das magische Mitglied sollte auf 0x31484400 gesetzt werden. Dieser Hexadezimalwert ist die ASCII- Codierung von "DH1".
publickeystruc Eine PUBLICKEYSTRUC- Struktur.
y Eine BYTE- Sequenz. Der Y-Wert (G^X) mod P befindet sich direkt hinter der DHPUBKEY- Struktur und sollte immer die Länge der DHPUBKEY bitlen Feld (Bitlänge P) sein, dividiert durch acht. Wenn die Länge der Daten, die aus der Berechnung von (G^X) mod P resultiert, mindestens ein Byte kürzer als P ist, dividiert durch acht, müssen die Daten mit den erforderlichen Bytes (Nullwert) aufgefüllt werden, damit die Daten die gewünschte Länge (little-endian Format) aufweisen.

 

Private Key BLOBs

Diffie-Hellman BLOBs für private Schlüssel, typ PRIVATEKEYBLOB, werden verwendet, um die öffentlichen/privaten Informationen eines Diffie-Hellman Schlüssels zu speichern. Diese Schlüssel werden exportiert und als Bytesequenz mit dem folgenden Format importiert.

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

In der folgenden Tabelle werden die einzelnen Komponenten des Schlüssel-BLOB beschrieben.

Feld Beschreibung
dhpubkey Eine DHPUBKEY Struktur. Das magische Mitglied muss auf 0x32484400 festgelegt werden. Dieser Hexadezimalwert ist die ASCII- Codierung von "DH2".
Generator Eine BYTE- Sequenz. Der Generator, G.
publickeystruc Eine PUBLICKEYSTRUC- Struktur.
prim Eine BYTE- Sequenz. Das Primemodul, P. Diese Daten müssen immer das wichtigste Bit des bedeutendsten Byte-Satzes auf eins haben.
geheim Eine BYTE- Sequenz. Der geheime Exponent X.

 

Anmerkung

Der Generator und geheime Schlüssel müssen immer dieselbe Länge haben, in Byte. Wenn entweder ein Byte oder kürzer als das andere ist, muss er mit der erforderlichen Anzahl von Nullwertbytes aufgefüllt werden, damit sie gleich sind. Sowohl der Generator als auch der geheime Schlüssel befinden sich im little-endian Format.