Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 每个椭圆曲线签名生成不同的签名_C#_Cryptography_Digital Signature_Elliptic Curve - Fatal编程技术网

C# 每个椭圆曲线签名生成不同的签名

C# 每个椭圆曲线签名生成不同的签名,c#,cryptography,digital-signature,elliptic-curve,C#,Cryptography,Digital Signature,Elliptic Curve,我使用椭圆曲线生成签名。问题是它每次使用相同的密钥对生成不同的签名。我也试过蹦蹦跳跳的城堡图书馆。签名可以通过两者进行验证,但我希望每次使用相同的密钥对时都使用相同的签名 要每次生成相同的签名,可以做些什么?或者使用椭圆曲线是不可能的?不,标准DSA是不确定的,这对于ECDSA意味着它依赖于加密安全的随机数生成器(,确切地说) 如果常数与不同的输入一起使用,则ECDSA将泄漏私钥。这就是索尼用于签署游戏的私钥所发生的事情(但仅限于第122页!)。当然,ECDSA无法判断是否使用了相同的数据 中指

我使用椭圆曲线生成签名。问题是它每次使用相同的密钥对生成不同的签名。我也试过蹦蹦跳跳的城堡图书馆。签名可以通过两者进行验证,但我希望每次使用相同的密钥对时都使用相同的签名


要每次生成相同的签名,可以做些什么?或者使用椭圆曲线是不可能的?

不,标准DSA是不确定的,这对于ECDSA意味着它依赖于加密安全的随机数生成器(,确切地说)

如果常数与不同的输入一起使用,则ECDSA将泄漏私钥。这就是索尼用于签署游戏的私钥所发生的事情(但仅限于第122页!)。当然,ECDSA无法判断是否使用了相同的数据

中指定了一种生成ECDSA签名的确定方法

您可以使用以下C#中的Bouncy Castle代码来完成此操作:

这显然是用于比特币等区块链技术

ECDsaSigner signer = new ECDsaSigner(new HMacDsaKCalculator(new Sha256Digest()));