afk11 / ecc
PHP 椭圆曲线密码学库
v0.3.1
2014-07-07 12:44 UTC
Requires
- php: >=5.4.0
- ext-gmp: *
- ext-mcrypt: *
- fgrosse/phpasn1: ~1.3.1
- symfony/console: ~2.6
Requires (Dev)
- phpunit/phpunit: ~4.1
- squizlabs/php_codesniffer: ~2
- symfony/yaml: ~2.6
This package is auto-updated.
Last update: 2024-09-19 01:43:17 UTC
README
信息
这个库是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 mdanter/ecc:^1.0
贡献
在提交拉取请求时,请确保运行make
命令。
默认目标运行所有PHPUnit和PHPCS测试。所有测试都必须通过,您的贡献才能被接受。
检查您拉取请求的Scrutinizer分析结果也是一个好主意。
用法
示例