RFC7748中规定的curve25519和curve448(goldilocks)的参考实现

eccsnacks的Python项目详细描述


此包包含curve25519的简单引用实现 和曲线448(金发姑娘),如 RFC7748

警告:如果定时,则不允许使用此实现 不变性很重要。此包的未来版本可能实现 后端。

ecccantings是一个游戏 ecchacks,DJB和Tanja的一个很酷的网站 兰格。

安装

pip install eccsnacks

用法

这些示例演示Diffie-Hellman operation 对于每个曲线。

曲线25519:

fromosimporturandomfromeccsnacks.curve25519importscalarmult,scalarmult_base# Private keys in Curve25519 can be any 32-byte string.a=urandom(32)a_pub=scalarmult_base(a)b=urandom(32)b_pub=scalarmult_base(b)# perform Diffie-Hellman computation for alice and bobk_ab=scalarmult(a,b_pub)k_ba=scalarmult(b,a_pub)# keys should be the sameassertk_ab==k_ba

曲线448:

fromosimporturandomfromeccsnacks.curve448importscalarmult,scalarmult_base# Private keys in Curve448 can be any 32-byte string.a=urandom(56)a_pub=scalarmult_base(a)b=urandom(56)b_pub=scalarmult_base(b)# perform Diffie-Hellman computation for alice and bobk_ab=scalarmult(a,b_pub)k_ba=scalarmult(b,a_pub)# keys should be the sameassertk_ab==k_ba

待办事项

  • 两条曲线在c中的快速定时不变量实现。
  • 更多曲线。

致谢

  • 马修·登普斯基 slownacl 它最初在实现curve25519时用作基线。
  • 曲线25519的DJB
  • Mike Hamburg代表Curve448

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
ByteArrayOutputStream的java解码属性   java S3 SDK在上载时更新单个对象,而不是创建新文件   java hibernate:无法从eclipse连接到DB   java如何在强制转换JComboBox之前检查其类型?   http从Java中的GETPOST请求方法捕获URI、资源名称,如开发人员工具中所示   java在Spring@Bean方法中返回接口的局限性   Java中的Web服务和客户端(使用Eclipse Apache Axis 2自底向上服务)某些代码会引发异常   java spring安全+rest不起作用   java将LinkedList添加到包含LinkedList的LinkedList并更改添加的LinkedList   java是否临时删除对象的属性?   java使用AnimatedGifEncoder类创建的gif图像的部分帧是不透明的   java如何高效地处理maven3时间戳快照?   java向集合对象添加另一项   java如何将动态参数传递给jquery函数   java使用libGdx桌面端口作为Android GLES20的仿真器