Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Diffie-Hellman sürüm 3 özel anahtar BLOB dışarı aktarıldığında, aşağıdaki biçimdedir:
BLOBHEADER blobheader;
DHPRIVKEY_VER3 dhprivkeyver3;
BYTE p[dhprivkeyver3.bitlenP/8];
// Where P is the prime modulus
BYTE q[dhprivkeyver3.bitlenQ/8];
// Where Q is a large factor of P-1
BYTE g[dhprivkeyver3.bitlenP/8];
// Where G is the generator parameter
BYTE j[dhprivkeyver3.bitlenJ/8];
// Where J is (P-1)/Q
BYTE y[dhprivkeyver3.bitlenP/8];
// Where Y is (G^X) mod P
BYTE x[dhprivkeyver3.bitlenX/8];
// Where X is the private exponent
bu BLOB biçimi, CRYPT_BLOB_VER3 bayrağı CryptExportKeyile kullanıldığında dışarı aktarılır. Sürüm BLOB'da olduğundan, bu BLOB'u CryptImportKeyile kullanırken bir bayrak belirtmeniz gerekmez.
Aşağıdaki tabloda, anahtar BLOBher bileşeni açıklanmaktadır.
| Alan | Açıklama |
|---|---|
| blobheader | BLOBHEADER yapısı. |
| dhprivkeyver3 | DHPRIVKEY_VER3 bir yapı. sihirli üyesi özel anahtarlar için 0x34484400 olarak ayarlanmalıdır. Onaltılık değerin yalnızca "DH4" bir ASCII kodlaması olduğuna dikkat edin. |
| P | P değeri doğrudan DHPRIVKEY_VER3 yapısından sonra bulunur ve her zaman DHPRIVKEY_VER3bitlenP alanının bayt cinsinden uzunluğu (P'nin bit uzunluğu) sekize bölünmelidir (little-endian biçimi). |
| Q | Q değeri doğrudan P değerinden sonra bulunur ve her zaman DHPRIVKEY_VER3bitlenQ alanının bayt cinsinden uzunluğu sekize bölünmelidir (küçük endian biçimi). BitlenQ değeri 0 ise, değer BLOB'da yoktur. |
| G | G değeri doğrudan Q değerinden sonra bulunur ve her zaman DHPRIVKEY_VER3bitlenP alanının (P bit uzunluğu) sekize bölünmüş bayt cinsinden uzunluğu olmalıdır. Verilerin uzunluğu P'nin 8'e bölünmesinden bir veya daha fazla bayt daha kısaysa, verilerin istenen uzunlukta (küçük endian biçimi) olması için gerekli baytlarla (sıfır değer) doldurulması gerekir. |
| J | J değeri doğrudan G değerinden sonra bulunur ve her zaman DHPRIVKEY_VER3bitlenJ alanının bayt cinsinden uzunluğu sekize bölünmelidir (küçük endian biçimi). bitlenJ değeri 0 ise, değer BLOB'da yoktur. |
| Y | Y değeri (G^X) mod P, J değerinin hemen ardından bulunur ve her zaman DHPRIVKEY_VER3bitlenP alanının (P bit uzunluğu) sekize bölünmüş bayt cinsinden uzunluğu olmalıdır. (G^X) mod P hesaplamasından kaynaklanan verilerin uzunluğu P'nin 8'e bölünmesinden bir veya daha fazla bayt daha kısaysa, verilerin istenen uzunlukta (küçük endian biçimi) olması için gerekli baytlarla (sıfır değer) doldurulması gerekir. |
| X | X değeri, DH anahtar çiftinin ortak kısmı olan Y'nin şuna eşit olduğu rastgele bir büyük tamsayıdır: Y = (G^X) mod P |
CryptExportKeyçağırırken, geliştirici anahtarın şifrelenip şifrelenmeyeceğini seçebilir. hExpKey parametresi oturum anahtarı için geçerli bir tanıtıcı içeriyorsa anahtar şifrelenir. BLOB'un BLOBHEADER bölümü dışında her şey şifrelenir. Şifreleme algoritmasının ve şifreleme anahtarı parametrelerinin özel anahtar BLOBile birlikte depolanmadığını unutmayın. Uygulamanın bu bilgileri yönetmesi ve depolaması gerekir. hExpKeyiçin sıfır geçirilirse, özel anahtar şifreleme olmadan dışarı aktarılır.
Not
Özel anahtarları şifreleme olmadan dışarı aktarmak tehlikelidir çünkü bu anahtarlar yetkisiz varlıklar tarafından müdahaleye ve kullanıma açık hale gelir.