afk11/ecc

PHP 椭圆曲线密码学库

v0.3.1 2014-07-07 12:44 UTC

README

Build Status

Scrutinizer Code Quality Code Coverage

Latest Stable Version Total Downloads Latest Unstable Version License

信息

这个库是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分析结果也是一个好主意。

用法

示例