public-square / phpecc
PHP 椭圆曲线密码学库
v0.1.2
2022-10-13 14:39 UTC
Requires
- php: ^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
Replaces
- mdanter/ecc: 1.0.0
This package is auto-updated.
Last update: 2024-09-13 18:55:47 UTC
README
信息
这个库是基于Matyas Danter的ECC库的分支。所有荣誉都归功于他和以前的贡献者。这个分支是一个直接替换品,包含了对Schnorr签名和验证的支持。
有关椭圆曲线密码学的更多信息,请阅读这篇优秀的文章。
该库支持以下曲线
- secp112r1
- secp256k1
- nistp192
- nistp224
- nistp256 / secp256r1
- nistp384 / secp384r1
- nistp521
在ECDSA过程中,需要随机值k
。可以使用真实的RNG生成此值,但如果相同的k
值反复用于密钥,攻击者可以恢复该签名密钥。HMAC随机生成器可以从消息哈希和私钥中派生出确定的k值,消除了这种担忧。
该库使用非分支Montgomery ladder进行标量乘法,因为它具有恒定时间且避免了秘密相关的分支。
许可证
此软件包在MIT许可证下发布。
要求
- PHP 8.0+
- composer
- ext-gmp
安装
您可以通过Composer安装此库
composer require public-square/phpecc
贡献
请发起一个pull请求。
用法
示例