Chr*_*ann 23 cryptography sqrl curve-25519 ed25519
该新SQRL认证方案依赖于曲线Ed25519由丹尼尔·伯恩斯坦开发的加密.但是,为了开始实施该方案,首先需要成熟的Curve Ed25519实现.
有谁知道任何成熟的实现?对于Java,.NET或任何其他流行的平台?
Cod*_*aos 34
首先,Curve25519和Ed25519并不完全相同.它们基于相同的基础曲线,但使用不同的表示.大多数实现都是针对Curve25519或Ed25519,但可以在它们之间重用一些代码.
可以将Ed25519公钥转换为Curve25519,但反过来却错过了一个符号位.即两个Ed25519公钥对应一个Curve25519公钥.私钥也非常相似.
关于实现,区分实际实现和以可用形式打包它们的库是很重要的.
djb在SUPERCOP中的实现
Ref 用c写的,很慢Ref10用c写的,性能不错amd64-64-24k和amd64-51-30k,用汇编写的,大约快两倍Ref10他还在NaCl中编写了一个早期的,不兼容的原型,不要使用那个
包含几个变体,包括程序集和c.一些针对64位进行了优化,一些针对32位进行了优化.
C库,目前使用Ref10实现
具有许多编程语言的绑定.它可能是最受欢迎的版本,也是我向大多数人推荐的版本.
包含来自NaCl的一堆其他加密函数,例如经过身份验证的加密(XSalsa20Poly1305),哈希,Curve25519密钥交换.
C库,使用Ref10实现.
该库最有趣的功能是它支持使用Ed25519公钥进行密钥交换.但它不会散列共享密钥,因此它不会产生与Curve25519相同的共享密钥.
包含Win32和Win64的预构建二进制文件.
我的C#端口
纯托管代码,在32位和64位平台上保持不变.基于Ref10.比c实现慢一点,但差异非常小.
使用Curve25519和Ed25519键支持与NaCl兼容的密钥交换,并包含一系列来自NaCl的其他加密函数.我的目标是像LibSodium一样的功能集.
Ed25519签名功能可以工作并且已经看到了大量的测试,但是库的其他部分有点粗糙.
直接使用SUPERCOP或Floodyberry代码的实现.
可能需要更多的工作来构建,但是你将获得更高的性能(~2x)并且不需要携带你不需要的代码.
我建议现在和LibSodium一起去.它相对受欢迎且维护良好.性能不错,应该只会导致真正签名的重型应用程序中的性能问题.
| 归档时间: |
|
| 查看次数: |
12723 次 |
| 最近记录: |