簡體   English   中英

在C#中使用橢圓曲線密碼學(P521曲線)的公鑰Blob長度

[英]Public Key blob length using Elliptic curve cryptography (P521 curve) in c#

我正在實現客戶端和服務器之間的密鑰交換機制。 客戶端使用C#編寫,服務器使用Java。

在客戶端上,我使用以下代碼生成我的公鑰

aliceKey = CngKey.Create(CngAlgorithm.ECDiffieHellmanP521); 
alicePubKeyBlob = aliceKey.Export(CngKeyBlobFormat.EccPublicBlob);

alicePubKeyBlob的大小為140個字節。 但是在服務器端,密鑰大小為P-521curve 66個字節(使用充氣城堡)

如果我嘗試在客戶端中導入服務器密鑰, "Parameter is incorrect"消息"Parameter is incorrect"

有什么我想念的嗎?

我發現了問題。

參考: http : //msdn.microsoft.com/zh-cn/library/windows/desktop/aa375520(v=vs.85).aspx

140字節歸因於以下公共密鑰格式。 4個字節:ECDHPublicP521的幻數= 0x354B4345 4個字節:X和Y的長度= 42 00 00 00(42 = 66字節長度)接下來的66個字節是X,接下來的66個字節是Y。

服務器生成X和Y每個66字節。 如果長度小於66個字節,請確保為X&Y都添加填充0x00。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM