ANFS | ED25519密钥体系 技术一小步 行业发展一大步
Posted 杏仁sister
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ANFS | ED25519密钥体系 技术一小步 行业发展一大步相关的知识,希望对你有一定的参考价值。
关于加密算法我们常见的secp256k1加密算法,在区块链领域被广泛应用,包括比特币、以太坊等,在内的银行、金融机构也在使用。
⽐特币基于椭圆曲线加密的椭圆曲线数字签名算法(ECDSA),特定的椭圆曲线称为secp256k1,即曲线 y² = x³ + 7 在有限域 (⼜名伽罗瓦域)。
比特币现有的安全设计,主要使用了sha-256、secp256k1,这些当前是被公认的安全加密算法,包括NSA。但是其中忽略了最主要的一点在于,中心化的系统中用这些就可以满足基本加密高度,因为中心化系统是可以随时修正、升级的。
但是如果在这种非中心化的金融系统中,这些环节中任意一个被攻破,对于整个体系来说都是崩溃式的。
就像山东大学的王晓云老师在碰撞攻破md5之前,大家都认为md5是安全有效的,但是攻破以后呢,就看出谁在裸奔了。
如果secp256k1被攻破,相当于你可以拿到所有人的比特币账号的密码,并且所有人还不能挂失,所有的比特币就全都归你。所以sha-256、secp256k1如果在去中心化系统中,算不上安全系数较高的加密算法。
随着区块链行业的发展,技术也会随着行业的发展而发展,今天我们就来剖析一下ANFS的ed25519密钥体系,昨天小编在推特看到ANFS公布的ed25519密钥体系相关进展,粗略一看不咋地,仔细一研究,兴奋至极,为何?
ed25519来历
25519 系列曲线⾃ 2006 年发表以来,除了学术界⽆⼈问津, 2013 年爱德华·斯诺登曝光棱镜计划后,该算法突然⼤⽕,⼤量软件,如OpemSSH都迅速增加了对 25519 系列的⽀持,如今可疑 的NIST曲线迟早要退出椭圆曲线的历史舞台,25519 已经⼤势所趋。
25519曲线的特点
算法各参数的选择直截了当,⾮常明确,没有任何可疑之处,相⽐之下⽬前⼴泛使⽤的椭圆曲线是按照 NIST的 系列标准,⽅程的系数使⽤来历不明的随机种⼦ c49d3608 86e70493 6a6678e1 139d26b7 819f7e90 ⽣成的,⾮常可疑,疑似后⻔。
⼀个椭圆曲线加密算法就算在数学上是安全的,在实⽤上也并不⼀定安全,有很⼤的概率通过缓存、时间、恶意输⼊摧毁安全性,⽽ 25519 系列椭圆曲线经过特别设计,尽可能的将出错 的概率降到了最低,可以说是实践上最安全的加密算法。
例如,任何⼀个 32 位随机数都是⼀个合法的 X25519 公钥,因此通过恶意数值攻击是不可能的,算法在设计的时候刻意避免的某些分⽀操作,这样在编程的时候可以不使⽤ if ,减少了不同 if 分⽀代码执⾏时间不同的时序攻击概率。
相反, NIST 系列椭圆曲线算法在实际应⽤中出错的可能性⾮常⼤,⽽且对于某些理论攻击的免疫能⼒不⾼, Bernstein 对市⾯上所有的加密算法使⽤ 12 个标准进⾏了考察, 25519 是⼏乎唯⼀可以满⾜这些标准。
25519 系列曲线是⽬前最快的椭圆曲线加密算法,性能远远超过 NIST 系列,⽽且具有⽐ P-256 更⾼的安全性。ed25519是⼀个数字签名算法,签名和验证的性能都极⾼, ⼀个4核 2.4GHz 的 Westmere cpu,每秒可以验证 71000 个签名,安全性极⾼,等价于RSA约3000-bit。
签名过程不依赖随机数⽣成器,不依赖hash函数的防碰撞性,没有时间通道攻击的问题,并且签名很⼩,只有64字节,公钥也很⼩,只有32字节。
25519系列曲线是著名的密码学家Daniel J. Bernstein在2006年独⽴设计的⼀套包含签名 /加密 /密钥的椭圆曲线交换算法。其中curv25519⽤于加密,x25519⽤于密钥交换,ed25519是基于25519曲线的签名。
BANKIA已成功采用ed25519加密算法,实现链上数据安全传输,ed25519 的安全性在 RSA 2048 与 RSA 4096 之间,性能在数十倍以上。
ANFS为什么不采用secp256k1⽽使⽤ed25519加密算法?
基于椭圆曲线secp256k1的ECDSA由于比特币中的部署,逐渐成为区块链项⽬中默认的签名机制. 然⽽在比特币诞⽣的时期, ⼯程项⽬中更多采⽤基于⼀条名为secp256r1的椭圆曲线的ECDSA签名机制。
比特币最初采纳secp256k1的真正原因已不可知,我们只能进⾏揣测,但是secp256r1曲线中可能埋藏了由NSA引⼊的算法后⻔,适合 secp256k1⽀持同态映射能够加速、签名验证过程的特性。
在区块链场景中应⽤基于secp256k1的ECDSA,带来了诸多⽅⾯的挑战,稍有不慎,就可能在区块链⽹络中引发安全问题,或者数字货币资产的损失. 回顾区块链发展过程中踩过的坑,我们总结了基于secp256k1ECDSA签名机制在区块链场景中应⽤时的七宗罪:
1、如果签名过程中随机数值泄露, 则任何知道该随机数值的⼈可以使⽤该随机数产⽣签名值恢复私钥。
2、如果同⼀个⽤户对两个不同的消息签名时,采⽤了相同的随机数,则则任何⼈都可以通过两个签名值恢复出私钥。
3、如果两个⽤户执⾏ECDSA签名时采⽤了相同的随机数,则两⼈中的任何⼀⽅可以推算出另⼀⽅的私钥。
4、如果相同的私钥和随机数被同时⽤于ECDSA签名和Schnorr签名,则任何⼈都能够恢复出私钥。
5、ECDSA签名值的可锻造性带来的安全隐患。
6、ECDSA签名值的DER编码的不唯⼀性会带来的安全隐患。
7、如果验签时不要求提供被签名的消息,则任何⼈都可以伪造签名值。
在各种安全问题之外, ECDSA签名机制也拥有⾮常适合区块链场景的特性,⽐如可以从签名值中恢复出公钥, 利⽤这个特性可以缩减每笔交易的⼤⼩,以太坊中利⽤了这个特性。为了规避上述⼏个问题,以及获得更⾼的性能,ANFS采⽤安全性和性能表现更好的ed25519来完善加密算法。
回到市场,区块链是价值互联网,如何保证安全、性能,是这个价值互联网是否能稳健发展的重要因素。
马克思说:资本家害怕没有利润或利润太少,就像自然界害怕真空一样。一旦有适当的利润,资本就大胆起来。如果有百分之十的利润,他就保证到处被使用;
有百分之二十的利润,它就活跃起来;有百分之五十的利润,它就铤而走险;为了百分之一百的利润,它就敢践踏一切人间法律;有百分之三百的利润,它就敢犯任何罪行,甚至冒绞死的危险。
而技术的发展变化是跟着社会发展所需而进行的技术演变,现如今sha-256、secp256k1这些加密算法早已家喻户晓,而比特币、以太坊市值早已上亿,那么黑客是愿意去铤而走险暴力攻击比特币,ETH这类公链。
所以ED25519是时代所趋,技术发展的必然趋势,ANFS也必然在这条道路上一直走在科技最前沿,推陈出新,砥砺前行。
以下是ANFS在推特官方公布的关于ED25519部分加密解析文献👇
当采用路径 42’/1/2 时,测试情况:
当采用路径42’/3’/5 测试情况:
以上是关于ANFS | ED25519密钥体系 技术一小步 行业发展一大步的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 ssh-ed25519 作为 pysftp 的密钥来设置主机密钥文件
使用ED25519算法生成SSH密钥,解决git clone报错:early EOF fetch-pack: invalid index-pack output