小编Dai*_*ing的帖子

关于secp256r1和x25519的使用

我对 ECC 不熟悉,如果这个问题有点奇怪/愚蠢,我很抱歉。

我正在使用一些第三方存储库(Private Join and Compute)实现一些协议,并且在创建 EC 组时,该存储库仅支持 openssl 中 FIPS 模块(P-224、256、348 和 512)中的内置曲线:

StatusOr<ECGroup::ECGroupPtr> CreateGroup(int curve_id) {
  auto ec_group_ptr = EC_GROUP_new_by_curve_name(curve_id);
  // If this fails, this is usually due to an invalid curve id.
  if (ec_group_ptr == nullptr) {
    return InvalidArgumentError(
        absl::StrCat("ECGroup::CreateGroup() - Could not create group. ",
                     OpenSSLErrorString()));
  }
  return ECGroup::ECGroupPtr(ec_group_ptr);
}
Run Code Online (Sandbox Code Playgroud)

EC_GROUP_new_by_curve_name位于 openssl/crypto/fipsmodule 中)

我的问题:

我可以修改代码以将我的协议的内置曲线替换为 X25519 吗?我的协议将其用于 ECDH。

如果不是,除了 X25519 未经 FIPS 验证之外还有什么问题?

或者,简单地说,在什么用例中我应该使用 secp256r1/k1,而对于 X25519 又应该使用什么?

谢谢!

c++ standards cryptography elliptic-curve

6
推荐指数
1
解决办法
583
查看次数

标签 统计

c++ ×1

cryptography ×1

elliptic-curve ×1

standards ×1