RSA加密算法原理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RSA加密算法原理相关的知识,希望对你有一定的参考价值。

请用用简单的语言描述~

RSA加密算法是一种典型的非对称加密算法,它基于大数的因式分解数学难题,它也是应用最广泛的非对称加密算法,于1978年由美国麻省理工学院(MIT)的三位学着:Ron Rivest、Adi Shamir 和 Leonard Adleman 共同提出。

它的原理较为简单,假设有消息发送方A和消息接收方B,通过下面的几个步骤,就可以完成消息的加密传递:
消息发送方A在本地构建密钥对,公钥和私钥;
消息发送方A将产生的公钥发送给消息接收方B;
B向A发送数据时,通过公钥进行加密,A接收到数据后通过私钥进行解密,完成一次通信;
反之,A向B发送数据时,通过私钥对数据进行加密,B接收到数据后通过公钥进行解密。
由于公钥是消息发送方A暴露给消息接收方B的,所以这种方式也存在一定的安全隐患,如果公钥在数据传输过程中泄漏,则A通过私钥加密的数据就可能被解密。
如果要建立更安全的加密消息传递模型,需要消息发送方和消息接收方各构建一套密钥对,并分别将各自的公钥暴露给对方,在进行消息传递时,A通过B的公钥对数据加密,B接收到消息通过B的私钥进行解密,反之,B通过A的公钥进行加密,A接收到消息后通过A的私钥进行解密。
当然,这种方式可能存在数据传递被模拟的隐患,但可以通过数字签名等技术进行安全性的进一步提升。由于存在多次的非对称加解密,这种方式带来的效率问题也更加严重。
参考技术A RSA算法 :它是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。算法的名字以发明者的名字命名:Ron Rivest, Adi Shamir 和Leonard Adleman。但RSA的安全性一直未能得到理论上的证明。它经历了各种攻击,至今未被完全攻破。
 
首先, 找出三个数, p, q, r, 其中 p, q 是两个相异的质数, r 是与 (p-1)(q-1) 互质的数...... p, q, r 这三个数便是 private key  接著, 找出 m, 使得 rm == 1 mod (p-1)(q-1)..... 注:意思是rm除以(p-1)(q-1)的余数=1这个 m 一定存在, 因为 r 与 (p-1)(q-1) 互质, 用辗转相除法就可以得到了..... 再来, 计算 n = pq....... m, n 这两个数便是 public key  编码过程是, 若资料为 a, 将其看成是一个大整数, 假设 a < n.... 如果 a >= n 的话, 就将 a 表成 s 进位 (s <= n, 通常取 s = 2^t), 则每一位数均小於 n, 然后分段编码...... 接下来, 计算 b == a^m mod n, (0 <= b < n), 注:^表示次方,不要理解为C#中的XORb 就是编码后的资料......  解码的过程是, 计算 c == b^r mod pq (0 <= c < pq), 於是乎, 解码完毕......  c 和 a 其实是相等的  :)本回答被提问者和网友采纳

以上是关于RSA加密算法原理的主要内容,如果未能解决你的问题,请参考以下文章

RSA  加密算法(原理篇)

轻松学习RSA加密算法原理

轻松学习RSA加密算法原理

RSA加密原理

数据加密--详解 RSA加密算法 原理与实现

RSA算法详解