非对称加密,与对称加密的算法是有所不同的,非对称加密算法需要两个密钥,即公开密钥和私有密钥,非对称加密算法在加密和解密过程使用了不同的密钥,非对称密钥也称为公钥加密,在密钥对中,其中一个密钥是对外公开的,所有人都可以获取,称为公钥;另外一个密钥是不公开的,称为私钥。
加密算法一般分为对称加密和非对称加密,非对称加密是指为满足安全性需求和所有权验证需求而集成到区块链中的加密技术。非对称加密通常在加密和解密过程中使用两个非对称的密码,分别称为公钥和私钥。非对称密钥对具有两个特点:一是用其中一个密钥(公钥或私钥)加密信息后,只有另一个对应的密钥才能解开;二是公钥可向其他人公开,私钥则保密,其他人无法通过该公钥推算出相应的私钥。
非对称加密一般划分为三类主要方式:大整数分解问题类、离散对数问题类、椭圆曲线类。大整数分解问题类指用两个较大的质数的乘积作为加密数,由于质数的出现具有不规律性,想要破解只能通过不断试算。离散对数问题类指的是基于离散对数的难解性,利用强的单向散列函数的一种非对称分布式加密算法。椭圆曲线类指利用平面椭圆曲线来计算成组非对称恃殊值,比特币就使用此类加密算法。
非对称加密技术在区块链的应用场景主要包括信息加密、数字签名和登录认证等。其中信息加密场景主要是由信息发送者(记为A)使用接受者(记为B)的公钥对信息加密后再发送给B,B利用自己的私钥对信息解密。比特币交易的加密即属于此场景。数字签名场景则是由发送者A采用自己的私钥加密信息后发送给B,再由B使用A的公钥对信息解密,从而可确保信息是由A发送的。登录认证场景则是由客户端使用私钥加密登录信息后发送给服务器,后者接收后采用该客户端的公钥解密并认证登录信息。
存储在区块链上的交易信息是公开的,但是账户身份信息是高度 加密的,只有在数据拥有者授权的情况下才能访问,从而保证了数据 的安全和个人的隐私。区块链系统每个用户都有一对秘钥,一个是公 开的,一个是私有的。通常公钥的密码算法采用的是椭圆曲线算法。 用户可以通过自己的私钥对交易进行签名,同时別的用户可以利用签 名用户的公钥对签名进行验证。
椭圆曲线指的是由韦尔斯特拉斯(Weierstrass)方程y2+a1xy +a3y=x3+a2x2+a4x+a6所确定的平面曲线。若F是一个域,i=1,2 ,...,6。满足式(1-1 )的数偶(x , y )称为F域上的椭圆曲线E的点。F域可以是有理数域,还可以是有限域GF ( Pr )。椭圆曲 线通常用E表示。除了曲线E的所有点外,尚需加上一个叫作无穷远 点的特殊点〇。在椭圆曲线加密(ECC )中,利用了某种恃殊形式的 椭圆曲线,即定义在有限域上的椭圆曲线。其方程如下:
这里p是素数,a和b为两个小于p的非负整数,它们满足:
其中,x,y,a,,则满足式(1-2 )的点(x , y )和—个 无穷点〇就组成了椭圆曲线E。
椭圆曲线离散对数问题BCDLP定义如下:给定素数p和椭圆曲线E ,对Q=kP ,在已知P,Q的情况下求出小于P的正整数k。可以证已知k和P计算Q比较容易,而由Q和p计算卩则比较困难,至今没有有效的方法来解决这个问题,这就是椭圆曲线加密算法原理之所在。与RSA算法相比,椭圆曲线公钥系统是代替RSA的强有力的竞争者。椭圆曲线加密方法的优点总结如下:
·安全性能更高,如160位ECC与1024位RSA、DSA有相同的安全强度。
·计算量小,处理速度快,在私钥的处理速度上(解密和签名),ECC远比RSA、DSA快得多。
·存储空间占用小,ECC的密钥尺寸和系统参数与RSA、DSA相比要小得多,所以占用的存储空间小得多。
·带宽要求低,使得ECC具有广泛的应用前景。
ECC的这些特点使它必将取代RSA,成为通用的公钥加密算法。比如SET协议的制定者已把它作为下一代SET协议中缺省的公钥密码算法。
利用椭圆曲线的签名和验证算法,可以保证账号的唯一性和不可冒名顶替性,同时也保证了用户的不可抵赖性。通过这些密码学技术的应用可以使得区块链技术在没有中心服务器的情况下做到数据的不可逆和不可篡改。