龙空技术网

椭圆曲线算法,如何实现区块链的安全隐私保护?

八分量 140

前言:

此刻朋友们对“椭圆曲线算法应用”大约比较看重,我们都需要学习一些“椭圆曲线算法应用”的相关知识。那么小编在网上网罗了一些对于“椭圆曲线算法应用””的相关知识,希望小伙伴们能喜欢,朋友们快快来学习一下吧!

谈到区块链,就绕不开密码学。

密码学中的非对称加密算法主要用公钥和私钥对数据的存储和传输的加密和解密。用户要进行交易,就必须用私钥对原数据进行签名,只有对应的公钥才能验证签名串与原数据是匹配的。同时,用公钥加密的原数据,只有对应的私钥才能解开,这样就能够真正确保链上数据和资产的安全。

这一举措,是密码学在应用领域的一大进步。过去,人们之间进行交易必须依赖基于血液、乡邻或第三方来建立信任,但在区块链世界中,却以数学的方式为人们建立了新的不可动摇的信任通道。

一、从RSA到ECC

现在应用最广泛的非对称加密算法是椭圆曲线算法(ECC)。在谈ECC之前,我们先介绍一下RSA算法。

二战时期,人们通过发电报来进行通信,但是电报非常容易被截获,所以必须要对其进行加密。当时德国采用的密码叫做恩格码,是将要传输的字符根据一个替换表来进行替换,比如a转成d ,c 转成x。但这种做法有个通病,就是需要每天更新这个替换表。如果表被人截获了,作战计划就很容易被破解。

电影《模仿游戏》讲述了图灵破解恩格玛密码机的这段历史

这时候有人提出,是否能在保证结果准确的前提下,对加密和解密过程采用不同的替换表?

1976年,Diffie和Hellman在《密码学的新方向》一文中论证了这种思想的可行性。基于这种思想建立的密码体制,被称为公钥密码体制,也叫非对称密码体制。这个设想提出后,多种公钥密码算法相继被提出,可惜许多不安全也不实用。

直到Rivest、Shamir和Adleman三位教授用名字的首字母命名了一种新算法:RSA,很好地解决了所面临的诸多问题。

不同于以往的对称加密需要厚厚的密码本,RSA算法属于非对称加密。所谓非对称加密,是指将秘钥分为公钥和私钥,公钥和私钥必须成对出现,不能单独生成。公钥任何人都可以知道,用以加密;私钥只有接受信息的人才能知道,用以解密。

只要RSA的质数足够大,解密将会耗费巨大的算力和时间,短期内难以破解。但为了追求安全性,RSA需要非常大的质数作为基础,拉长秘钥会使得加密成本大幅增加。更致命的是,RSA算法在应对量子计算机的威胁时有些力不从心。

此时,ECC应运而生。ECC于1985年由Koblitz和Miller两位教授提出。和RSA算法一样,ECC也是非对称加密算法的一种,但ECC在使用中的便捷性和安全性大大强过RSA。

二、什么是ECC?

椭圆曲线算法(ECC, Elliptic Curve Cryptography)是一种基于离散对数问题的非对称(或公钥)加密算法,可以用对椭圆曲线上的点进行加法或乘法运算来表达。

总的来说,与RSA算法相比,ECC算法拥有以下几个方面的优势:

CPU占用少

RSA算法一般采用2048 位的加密长度,而ECC算法一般采用256 位加密长度,意味着占用更少的存储空间,更低的CPU开销和占用更少的带宽。

随着越来越多的用户使用移动设备来完成各种网上活动,ECC加密算法为移动互联网安全提供更好的客户体验。

抗攻击性强

ECC算法的数学理论非常深奥和复杂,国际上公认的解ECC算法的最有效方法是Pollard rho,它的破译或求解难度基本上是指数级的。

而我们熟知的RSA所利用的是大整数因子分解问题,国际上公认的对于RSA算法最有效的破译和攻击方法是一般数域筛(NFS)方法,它的破译或求解难度是亚指数级的。

ECC比目前的其他加密算法能更好的防止攻击,使网站和基础设施比用传统的加密方法更安全,为移动互联网安全提供更好的保障。

更好的性能

通过下图不难发现,160位ECC加密安全性相当于1024位RSA加密,而210位ECC加密安全性甚至相当于2048位RSA加密。ECC中256位数的密钥与RSA算法中3072位数密钥所提供的安全强度相同。

RSA和ECC安全模长的比较

这意味着你以更低的计算能力代价得到了更高的安全性。经国外有关权威机构测试,在Apache和IIS服务器采用ECC算法,Web服务器响应时间比RSA快十几倍。

这些优势已经使得ECC逐渐完成了对RSA的取代,成为了新一代的通用公钥加密算法。

三、ECC在区块链中的应用

如今,ECC早已无处不在:我们的第二代身份证都基于ECC,美国政府部门也用ECC加密内部通信,FireFox和Chrome浏览器、苹果的iMessage服务都使用ECC。这里主要介绍ECC在区块链中最为典型的应用场景——数字签名。

数字签名是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。签名者使用私钥进行签名,签名的私钥仅对自签名者公开,公钥是公开的,每个人都可以用公钥对私钥拥有者产生的签名进行验证,来验证是否是有私钥拥有者签署的。

常用的数字签名体制包括RSA、EIGamal、ECDSA。那么,在区块链系统当中,为什么主要使用的是基于ECC的数字签名算法ECDSA 呢?

如上图所示,在椭圆曲线密码体制中,当私钥长度为160位的时候,其安全级别是80位(这里的80指的是2的80次方),当私钥长度为256位的时候,其安全级别是128位。

对比一下其他密码体制,比如 Elgamal 要想达到128位安全级别的话,其私钥长度是3072位,是椭圆曲线私钥长度的12倍。

而私钥的长度对密码体制的影响是:私钥的长度越长,密码系统里面的加解密、签名、验签算法等,其效率越低。因此,在同样的安全级别下,区块链系统使用了私钥更短、效率更高的椭圆曲线。

所以,之所以在区块链系统中主要使用的是椭圆曲线数字签名算法,主要是因为在数字签名算法中,椭圆曲线数字签名算法能够以相对较短的密钥长度达到更高的安全级别。

区块链的一个特点是公开透明,在区块链上实现隐私看似和区块链的本质略显矛盾,但椭圆曲线算法、零知识证明等技术的发展使得这种用例得以两全。

八分量针对区块链技术中存在的技术标准不统一、管控手段缺失、数据交互难以达成、建设成本高效率低等问题,打造可信区块链技术服务平台,面向大型企业或组织提供“可信公有区块链基础设施”建设。同时可提供企业区块链平台建设、原有平台接入、区块链节点安全验证服务、企业关键数据上链存证服务、高价值数据交易等服务。

在隐私安全方面,平台采用椭圆曲线、零知识证明、ABE等前沿加密算法,保障权限与隐私成熟的技术来实现隐私交易。

标签: #椭圆曲线算法应用