shanecurran / phpecc
PHP 椭圆曲线密码学库
v0.0.1
2023-03-08 19:51 UTC
Requires
- php: ^7.0||^8.0
- ext-gmp: *
- fgrosse/phpasn1: ^2.0
Requires (Dev)
- phpunit/phpunit: ^6.0||^8.0||^9.0
- squizlabs/php_codesniffer: ^2.0
- symfony/yaml: ^2.6|^3.0
This package is auto-updated.
Last update: 2024-09-08 23:29:15 UTC
README
信息
此库是 Thomas Kerin 的 phpecc
库的活跃分支,该库是对 Matyas Danter 的 ECC 库的重写/更新。所有功劳都属于他们。
有关椭圆曲线密码学的更多信息,请阅读 这篇优秀的文章。
库支持以下曲线
- secp112r1
- secp256k1
- nistp192
- nistp224
- nistp256 / secp256r1
- nistp384 / secp384r1
- nistp521
在 ECDSA 中,需要一个随机值 k
。可以使用真正的 RNG 生成此值,但如果相同的 k
值被重复用于密钥,攻击者可以恢复该签名密钥。HMAC 随机生成器可以从消息哈希和私钥中派生一个确定的 k 值,从而消除此问题。
库使用非分支蒙哥马利梯形进行标量乘法,因为它具有恒定的时间复杂度,并且避免了秘密相关的分支。
许可证
此软件包在 MIT 许可证下发布。
要求
- PHP 7.0+ 或 PHP 8.0+
- composer
- ext-gmp
对旧版 PHP 的支持
- v0.4.x: php ^5.6|<7.2
- v0.5.x: php ^7.0
- v1.0.x: php ^7.0|^8.0
安装
您可以通过 Composer 安装此库
composer require shanecurran/phpecc
贡献
在发送 pull request 时,请确保运行 make
命令。
默认目标运行所有 PHPUnit 和 PHPCS 测试。所有测试必须验证,才能接受您的贡献。
检查您的 pull request 的 Scrutinizer 分析结果也是一个好主意。
使用
示例