基于区块链椭圆曲线密码学ECC的研究
329
2019年3月22日,第十一期北大软微-八分量协同实验室学术沙龙活动如期展开。 沙龙上围绕椭圆曲线的讨论共分为三个阶段,首先介绍了椭圆曲线,之后重点围绕椭圆曲线数字签名算法(ECDSA)做出了分析,并在最后分享了一下相关技术最新的进展和最受外界关注的领域。
椭圆曲线密码学(ECC),是一种基于椭圆曲线数学诞生的非对称秘钥加密的算法。在探究ECC之前,我们有必要回顾一下椭圆曲线数学。
我们定义平行线相交于无穷远点P∞,使平面上所有直线都统一为有唯一的交点,而区别于无穷远点的原来平面上的点为平常点。通过无穷远点和平常点我们可以引入射影平面的概念。
射影平面:平面上全体无穷远点与全体平常点构成射影平面。
而椭圆曲线,指的就是在射影平面上满足威尔斯特拉斯方程(Weie rs trass)所有点的集合,且曲线上所有点都是非奇异的。
所谓非奇异,指的是曲线上任意一点的偏导数不能同时为0。
明白了椭圆曲线的由来,我们再来看椭圆曲线在密码学上应用的方案。首先面对的问题就是椭圆曲线是连续的,并不适合用于加密。因此,椭圆曲线密码学的第一要务就是把椭圆曲线定义在有限域上,(有限域Fp ,p为素数),并提出一条适于加密的曲线:y2=x3+ax+b (modp)。
相比起在商业中被广泛采用的RSA加密算法,ECC优势是可以使用更短的密钥,来实现与RSA相当或更高级别的安全。通过下图我们清楚的发现,160位ECC加密安全性相当于1024位RSA加密,而210位ECC加密安全性甚至相当于2048位RSA加密。
众所周知, 比特币 中的公私钥生成以及签名算法ECDSA都是基于椭圆曲线加密算法而诞生的。ECDSA算法可以说是应用最广泛的椭圆曲线签名算法,从比特币开始,并且已经被其它区块链项目所广泛使用。在区块链中使用的公钥生成算法是SECP256K1。
其中以太坊和比特币的在ECDSA中的区别在于二者使用的哈希算法不同,在比特币中使用的是SHA2-256,在以太坊中使用的是SHA3-256,同样字节数的SHA3比SHA2更安全。
此外,沙龙还重点分析Schnorr签名算法。与ECDSA相比,Schnorr具备明显的优势,如安全证明和不可延展性的保证。更重要的是,Schnorr最大的好处是线性特征,签名的私钥可以拆分,而ECDSA没有这个特点。鉴于Schnorr支持门限签名,显然Schnorr更具优势。
最后,大家简要了解了一些近年来对相关技术算法的一些论文,最受关注的是门限签名方案的密码协议,仅2019年就有多篇相关论文的发表。在最后,沈晴霓教授和Trias资深系统研发胡志琳博士就此后的沙龙主题做出了安排,下一期沙龙将会对国内外一些比较有创新价值的学术论文进行分析,并对技术的可行性和便利性作出讨论。