c# – .NET中存在哪些Elliptical Curve支持?我可以定义自己的曲线,还是复制SEC标准?

.NET中的Microsoft Elliptical Curve支持有哪些限制?我只是指System.Cryptography命名空间的可能性.

使用该命名空间,我可以实现自定义曲线,还是仅限于在框架中硬编码的不同子集?

我特别感兴趣的一条曲线是secp256k1,尽管我不想限制自己.

为什么我不使用Bouncy Castle,只关注微软?原因是因为Hash函数的Microsoft实现比Bouncy Castle快很多倍,因此我认为基于自定义椭圆曲线的加密.

我不介意我是否需要更新注册表或ini文件以添加对其他曲线的支持,或者构建低级类;我只想看看可能性和局限性.

最佳答案 .NET支持的唯一曲线是(并且长期以来)由BIST中的NIST定义的P-xxx曲线.任何其他曲线都不支持开箱即用.您已经定义了一个特定的非NIST非素数曲线(Koblitz曲线),因此CNG不支持该曲线.

更准确地说,CNG only supports the following domain parameters用于ECDSA和ECDH键.仅当它们用于“命名曲线”时才支持这些参数:

P-256, P-384, P-521

注意:因为我没有与微软的NDA或类似的,我无法检查这些值是否是硬编码的,但我认为这很可能.

点赞