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第三方库


热门话题
java如何强制用户在允许访问活动之前处理对话框?我的许可证代码怎么了?   java ArraysList作为JSON   mysql如何在java中创建包含多个可选where子句的搜索语句?   java如何让Apache Camel在“直接”路径的末尾删除文件?   使用socket在两个Androids之间进行java实时数据传输。IO(websocket)和4G   如何在java中实现两个CORBA服务器之间的通信   会话树xml表示为java对象   java Skype4Java编号swtwin323325   java RecyclerView getAdapterPosition()不工作:第一次单击返回正确位置,第二次单击返回1   java在$TOMCAT/conf/context上为JNDI设置资源。xml   java为什么第二个矩形冲突在第一个矩形冲突时不起作用?   JScrollPane上的java JTextArea未出现在JPanel上   java如何将实现的PriorityQueue打印为字符串?   jpa使用Jersey更新用户角色RESTJava(JAXRS)