繁体   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