【问题标题】:c# generate key pair using ecdh prime256v1c# 使用 ecdh prime256v1 生成密钥对
【发布时间】:2020-02-14 06:52:05
【问题描述】:

我正在使用 ecdh 制作私钥/公钥

var ecdh = new ECDiffieHellmanCng(CngKey.Create(CngAlgorithm.ECDiffieHellmanP256, null, new CngKeyCreationParameters { ExportPolicy = CngExportPolicies.AllowPlaintextExport }));
var privateKey = ecdh.Key.Export(CngKeyBlobFormat.EccPrivateBlob);
var publickey = ecdh.Key.Export(CngKeyBlobFormat.EccPublicBlob);

这段代码运行良好,但我想使用算法prime256v1CngAlgorithm 没有这样的选项。 我该怎么做?

【问题讨论】:

  • 你不是已经在用了吗?来自CngAlgorithm.ECDiffieHellmanP256的描述:An object that specifies an ECDH algorithm that uses the P-256 curve.
  • 检查 crypto.stackexchange.com 中的 this question。它解释了这个名字的含义以及它的来源。
  • 所以 P256 = Prime256v1 ?
  • 这就是问题和链接来源所说的 - 看起来银行家不想使用与程序员相同的名字,所以他们定义了自己的曲线 ID
  • 感谢您的回答! :) 然后我想我必须删除这个问题:)

标签: c# encryption key-pair ecdh prime256v1


【解决方案1】:

根据文档,CngAlgorithm.ECDiffieHellmanP256 指定 P-256 曲线:

指定使用 P-256 曲线的 ECDH 算法的对象。

crypto.stackexchange.com 中的 answer 解释了这些名称来自不同来源,NIST 表示法中的 P-256 对应于“ANSI X9.62:金融服务行业的公钥加密”中的 prime256v1 .

【讨论】:

  • 它也与来自高效密码学标准 (SEC) 组的 secp256r1 相同。
猜你喜欢
  • 2019-05-03
  • 1970-01-01
  • 1970-01-01
  • 2017-10-28
  • 2014-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多