ricco381 / ecc
PHP 椭圆曲线密码学库
0.4
2019-04-19 17:45 UTC
Requires
- php: ^7.0
- ext-gmp: *
- ricco381/phpasn1: 0.2
Requires (Dev)
- phpunit/phpunit: ^6.0
- squizlabs/php_codesniffer: ^2.0
- symfony/yaml: ^2.6|^3.0
This package is auto-updated.
Last update: 2024-09-21 20:43:47 UTC
README
信息
这个库是对Matyas Danter的ECC库的重写/更新。所有功劳都归功于他。
关于椭圆曲线密码学的更多信息,请阅读这篇文章。
该库支持以下曲线
- secp112r1
- secp256k1
- nistp192
- nistp224
- nistp256 / secp256r1
- nistp384 / secp384r1
- nistp521
在ECDSA过程中,需要一个随机值k
。可以使用真正的RNG生成此值,但如果相同的k
值被反复用于密钥,攻击者可以恢复签名密钥。HMAC随机生成器可以从消息散列和私钥派生出确定性的k值,从而消除这种担忧。
该库使用非分支Montgomery ladder进行标量乘法,因为它恒定时间且避免了秘密依赖分支。
许可证
本软件包在MIT许可证下发布。
要求
- PHP 7.0+
- composer
- ext-gmp
为了与PHP 5.6兼容,请使用v0.4.x版本。
安装
您可以通过Composer安装此库
composer require mdanter/ecc
贡献
提交拉取请求时,请确保运行make
命令。
默认目标运行所有PHPUnit和PHPCS测试。所有测试都必须验证,才能接受您的贡献。
检查您拉取请求的Scrutinizer分析结果也是一个好主意。
用法
示例