c++ - OpenSSL/c/c++-EC secp256k1 密钥生成
问题描述
所以我一直在玩弄 c/c++ OpenSSL 库,我正在开发一个应用程序,我想使用 EC scep256k1 密钥作为一种身份验证形式。我已经阅读了 openssl 文档和无数表格,每个人似乎都有不同的方法来生成密钥和使用签名方法。有没有商定的方法来做到这一点?
解决方案
椭圆曲线 (EC) “scep256k1”是可用于生成 EC 密钥的众多曲线之一。有些曲线由 NIST 等组织标准化。但是,对于那些标准化曲线的安全性存在一些担忧,例如所谓的 P-256(又名 scep256r1)。曲线“scep256k1”是比特币用来签署交易的 Koblitz 曲线。Koblitz 曲线是有效的,但不如随机曲线安全。人们认为 Satoshi 想要避免 NIST 曲线,因此他寻找另一条有效但同时提供合理安全性的曲线。但是根据这个帖子,他选择“scep256k1”并没有什么特别的原因。一些 EC 研究人员定义了椭圆曲线所需的一些属性,以便被归类为“安全曲线”,这意味着它不易受到任何当前已知的攻击。此链接对当前使用的椭圆曲线进行了详细的安全审查。从链接中可以看到,“Curve25519”通过了安全审查,目前用于实现椭圆曲线 Diffie-Hellman 密钥交换协议的安全协议,例如 TLS。
推荐阅读
- html - 如何仅在我的活动页面中自定义导航项元素
- winapi - 您真的需要放回原始设备上下文位图还是可以简单地将其切换并删除原始位图?
- typescript - 为什么我在此 Effector 效果订阅者中收到 TypeScript 类型错误?
- mongodb - 使用 $addFields 添加多个字段
- javascript - Vuetify 错误 - “无法读取未定义的‘扩展’属性”
- bigcartel - 大卡特尔将“已售罄”更改为“已售出”
- docker - 无法从 Windows 主机中的 linux docker 跟踪路由
- python - RandomizedSearchCV 的 best_score_ 属性是如何计算的?
- list - 如何在 SwiftUI ForEach 内容中保持多个按钮操作分开?
- javascript - 用于数据流项目的 Javascript 转换器