rsa加密算法原理_区块链丨非对称加密算法,区块链的加密秘诀!

rsa加密算法原理_区块链丨非对称加密算法,区块链的加密秘诀!_第1张图片
关注“区链数科”,让你从入门到精通区块链!

前面讲到了对称加密算法,今天讲讲非对称加密算法。

可以说非对称算法是对称算法的升级,因为非对称算法是基于对称算法而被研究出来的。

非对称算法与对称算法的不同之处在于非对称算法省去了对称加密算法时要分发密钥的麻烦,所以说是对称加密算法的升级。

rsa加密算法原理_区块链丨非对称加密算法,区块链的加密秘诀!_第2张图片

在非对称加密算法中同样具有两种密钥:私钥(private key)和公钥(public key)。

私钥和公钥的保密程度是不同的。

私钥,顾名思义,私钥往往是个人持有,其他人没有持有者给予是不可获取的,常用于解密。其通过随机算数法生成,然后再进行Hash加密,从而达到一个更高程度的随机性。

公钥,则是公开的,他人是可以获取的,常用于加密。其可以以私钥为根据,再经一定的算法生成。

rsa加密算法原理_区块链丨非对称加密算法,区块链的加密秘诀!_第3张图片

目前,在非对称算法中,典型的代表有RSA、EIGamal、ECC(Elliptic Curve Crytosysitems椭圆曲线)、SM2系统等。

在所有的非对称算法中,都有一个共同的特征,即安全性基于数学问题解题难度。也就是说,非对称加密算法以数学原理为依据,并且是公开透明的,这和对称加密算法就有所不同了。

下面我们就来了解了解以上这些典型的非对称加密算法,了解了解它们的原理是怎样的:

1、RSA算法

rsa加密算法原理_区块链丨非对称加密算法,区块链的加密秘诀!_第4张图片

RSA算法,是1978年由Ron Rivest、Adi Shamir和Leonard Adleman三人共同提出的,算法的名字就是它们名字的首字母的组合。

RSA是目前最有影响力和最常用的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被ISO推荐为公钥数据加密标准。

RSA算法的原理是基于一个十分简单的数论事实:将两个大质数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。

例如,2是最小的质数,那么很容易因式分解得到1乘以2,如果给了两个质数的乘积是243013,你多久能因式分解出来。两个质数的位数越大,那么要将它们的乘积因式分解就越难。目前,已发现的最大质数长达2233万位,可想而知,数字越大,因式分解将越难。

随着设备或技术的不断先进,这种加密算法开始受到质疑,理论上是可以通过一定的算力将其分解,但是目前仍没有任何可靠的攻击较长RSA密钥的方式被提出。

2、ElGamal

rsa加密算法原理_区块链丨非对称加密算法,区块链的加密秘诀!_第5张图片

ElGamal算法于1986年由Taher ElGamal提出,ElGamal算法与RSA算法类似。RSA算法依据的是大质数的因式分解,而ElGamal算法依据的是模运算下求解离散对数困难。

所谓的离散对数,是一种基于同余运算和原根的一种对数算法。

例如,有y是n的一个原根,令n=5,y=2,如果存在有满足(k,n)=1的k存在,那么k关于y的离散对数定义为存在一个整数t,使得下面的式子成立:

y^t=k mod n

整数t可以随意取值,

如果t=0,则有2^0≡1;

如果t=1,则有2^1≡2;

如果t=2,则有2^2≡4;

如果t=3,则有2^3≡3。

离散对数的求解目标就是找到这个正整数系数k。

这种算法,目前还没有找到一个快速计算离散对数的解法。

3、ECC(Elliptic Curve Crytosysitems椭圆曲线)

rsa加密算法原理_区块链丨非对称加密算法,区块链的加密秘诀!_第6张图片

ECC算法于1985年由NcalKoblitz和VictorMiller分别独立提出。

ECC算法充分利用了对椭圆曲线上特定的点执行乘法后的逆运算困难的独特性质。

其基本原理是:在一个椭圆曲线方程上随机找到一个点,并使用该点对私钥执行乘法运算以得到公钥。在私钥较长的情况下,由公钥得到私钥是非常困难的。

相比于RSA等经典的算法,其安全性更高,但其有一个明显的缺点就是计算的过程比较费时间。

4、SM2算法

SM2算法,也叫ShangMi2,国家商用密码算法。于2010年12月有国家密码管理局发布。

SM2算法出现较晚,是由ECC改进而来,但也是依据于椭圆曲线,但是其加密强度更高,甚至优于经典、公认程度更高的RSA算法。

同由国家密码管理局发布的还有SM1、SM3、SM4和SSF33等,它们可以说与SM2算法齐名。

rsa加密算法原理_区块链丨非对称加密算法,区块链的加密秘诀!_第7张图片

非对称加密算法相较于对称加密算法你更倾向于哪一种算法呢?

欢迎留言讨论!!!

- - - END - - -

关注“区链数科”,让你从入门到精通区块链!

你可能感兴趣的:(rsa加密算法原理)