secp256k1 0.3.0× 测试已测试✗ Lang语言 CC许可证 MIT 发布最后发布2018年2月由 daviyang35 维护。安装指南×secp256k1 安装指南您想在 Podfile 中添加类似于以下的内容:pod 'secp256k1', '~> 0.3'target 'MyApp' do pod 'secp256k1', '~> 0.3' end然后在终端内运行 pod install,或者从 CocoaPods.app 运行。或者为了进行测试运行,运行以下命令pod try secp256k1查看 PodspecGitHub 仓库CocoaPods.org 的页面secp256k1 0.3.0作者:daviyang35bitcoin-core/secp256k1GitHub 仓库 libsecp256k1 为在 secp256k1 曲线上执行椭圆曲线操作的优化的 C 语言库。 此库仍在开发中,并用于研究最佳实践。请自行承担使用风险。 特性 secp256k1 ECDSA 签名/验证和密钥生成。 添加/乘以私钥/公钥。 私钥、公钥、签名的序列化/解析。 常时、常内存访问的签名和公钥生成。 去随机化 DSA(通过 RFC6979 或提供函数的调用者。) 非常高效的实现。 实现细节 通用 无运行时堆分配。 广泛的测试基础设施。 结构化以促进审查和分析。 旨在可移植到任何具有 C89 编译器和 uint64_t 支持的系统。 仅公开高级接口,以最小化 API 表面积并提高应用程序安全性。("难以使用不安全。") 域操作 针对曲线的域大小(2^256 - 0x1000003D1)的算术运算的优化实现。 使用 5 个 52 位肢,包括为 x86_64 手动优化的汇编(由 Diederik Huys 提供)。 使用 10 个 26 位肢。 使用滑动窗口在 1 块上(由 Peter Dettman 提供)进行域逆和平方根。 标量运算 没有数据相关分支的算术模曲线阶的优化实现。 使用 4 个 64 位肢(依赖于编译器的 __int128 支持)。 使用 8 个 32 位肢。 群运算 专门简化曲线方程(y^2 = x^3 + 7)的点加公式。 尽可能使用雅可比坐标和仿射坐标之间的点加。 当必要的时候使用统一的加/加倍公式来避免数据相关分支。 通过在雅可比坐标空间中比较进行点/x比较,而不进行域逆。 用于验证的点乘(aP + bG)。 使用 wNAF 表示法表示点乘数。 使用一个更大的窗口,使用预计算的多倍数来表示 G 的倍数。 使用 Shamir 的技巧同时进行公钥和生成器的乘法。 可选的(默认关闭)使用 secp256k1 的高效可计算自同构将 P 乘数分成两个大小减半的一个。 用于签名的点乘 使用一个包含生成器乘以 16 的幂的倍数的预计算表,因此通用乘法成为一系列加法。 使用无分支的条件移动访问表,以便内存访问是一致的。 无数据相关分支 预计算表为没有已知标量(私钥)的点添加和最终减去点,防止有控制私钥的攻击者控制内部数据。 构建步骤 libsecp256k1 使用 autotools 构建 $ ./autogen.sh $ ./configure $ make $ ./tests $ sudo make install # optional