uma/phpecc

public-square/phpecc 的临时分支

v0.1.3 2024-02-27 15:58 UTC

This package is auto-updated.

Last update: 2024-08-27 17:05:50 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License

信息

这个库是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 request。

用法

示例