RSA加密算法原理
定义:RSA加密算法
确定密钥:
1. 找到两个大质数,p,q
2. Let n=pq
3. let m=(p-1)(q-1);Choose e and d such that de=1(%m).
4. Publish n and e as public key. Keep d and n as secret key.
加密:
C=M^e(%n)
解密:
M=(C^d)%n
它的原理较为简单,假设有消息发送方A和消息接收方B,通过下面的几个步骤,就可以完成消息的加密传递:
消息发送方A在本地构建密钥对,公钥和私钥;
消息发送方A将产生的公钥发送给消息接收方B;
B向A发送数据时,通过公钥进行加密,A接收到数据后通过私钥进行解密,完成一次通信;
反之,A向B发送数据时,通过私钥对数据进行加密,B接收到数据后通过公钥进行解密。
由于公钥是消息发送方A暴露给消息接收方B的,所以这种方式也存在一定的安全隐患,如果公钥在数据传输过程中泄漏,则A通过私钥加密的数据就可能被解密。
如果要建立更安全的加密消息传递模型,需要消息发送方和消息接收方各构建一套密钥对,并分别将各自的公钥暴露给对方,在进行消息传递时,A通过B的公钥对数据加密,B接收到消息通过B的私钥进行解密,反之,B通过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加密算法的内容是怎样的?
阙倪贝17845213004:答:1) 确定密钥的宽度。2) 随机选择两个不同的素数p处q,它们的宽度是密钥宽度的二分之一。3) 计算出p和q的乘积n 。4) 在2和Φ(n)之间随机选择一个数e , e 必须和Φ(n)互素,整数e用做加密密钥(其中Φ(n)=(p-1)*(q-1))。5) 从公式ed ≡ 1 mod Φ(n)中求出解密密钥d 。6)...
问: RSA是什么意思?
阙倪贝17845213004:答:RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。RSA的算法涉及三个参数,n、e1、e2。其中,n是两个大质数p、q的积,n的二进制表示时所占用的位数,就是所谓的密钥长度。e1和e2是一对相关的值,e1可以任意取,但要求e1与(p-1...
问: 常用理解,RSA, 数字证书
阙倪贝17845213004:答:5.安全考虑,使用的时候一定要注意保护好私钥。1.对称加密,DES, AES 2.非对称加密,RSA,ECC(椭圆曲线密码编码学,相比RSA等公钥算法,使用较短的密钥长度而能得到相同程度的安全性,原理记不清了,区块链里以太坊比特币好像用的是这个)3.单向散列算法,MD5,SHA1,SHA2,HMAC(HMAC是密钥相关的消息...
问: 一个RSA算法的加密运算,需要完整的演算过程。
阙倪贝17845213004:答:加密过程:C=2^3(mod 33)=8(mod 33)解密过程:M=8^7(mod 33)=2097152(mod 33)=2(mod 33) 可以看出和和本来的明文是相同的。原理可以理解为 M=M^(ed) (mod n)本例中 e*d=21 也就是是M^21次方等于M RSA这个特性是数论中的费马定理推出的 在讲讲细节 比如楼主加密的是26的字母...
问: 用RSA对下列数据实现加密和解密:
阙倪贝17845213004:答:有了关于ψ函数的认识,我们再来分析RSA算法的工作原理:(1) 密钥配制。设m是要加密的信息,任选两个大质数p与q,使得 ;选择正整数e,使得e与ψ(n) = (p-1)(q-1)互质。利用辗转相除法,计算d,使得ed mod ψ(n) = ,即ed = kψ(n) +1,其中k为某一正整数。公共密钥为(e,n),...
问: RSA加密算法问题求解!!
阙倪贝17845213004:答:首先说一下求d的答案,ed=1mod(p-1)(q-1)=1mod60即7d=1mod60的意思是e与d的乘积对(p-1)(q-1)取余结果是1,题目给出e=7,(p-1)(q-1)可以求得是60,即(7d)%60=1【%是取余符号】,可以得出43*7=301=5*60+1 题目已给出M=17,秘文C=M^e mod n即M的e次方对n取余,...
问: rs a算法的安全性基于
阙倪贝17845213004:答:RSA算法的体制构造是基于数论的欧拉定理,它的安全性依赖于大数因子分解的困难性。RSAE 是 RSA 算法的一个参数,它是用来生成公钥和私钥的。RSA 算法是一种非对称加密算法,它可以实现加密和解密数据。RSAE 的值为 65536,也就是 2 的 16 次方。这个值的选择是基于数学理论和安全考虑。RSA 算法的...
问: rsa是对称还是非对称
阙倪贝17845213004:答:如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。简单的说是“公钥加密,私钥解密;私钥加密,公钥解密”。一般情况下,RSA时需要和AES结合使用的,客户端使用RSA+AES对重要信息进行加密 ...
问: rsa算法是第一个数字签名算法
阙倪贝17845213004:答:RSA算法是一种非对称加密算法,由Ron Rivest、Adi Shamir和Leonard Adleman在1977年共同提出。该算法是第一个数字签名算法,其安全性基于大数分解难题。RSA算法广泛应用于电子商务、电子邮件、数字证书等领域。该算法通过生成一对密钥,即公钥和私钥,使得发送方可以使用接收方的公钥加密信息,接收方则使用自己...
问: 如何使用16进制编码的RSA公钥进行RSA加密
阙倪贝17845213004:答:我们来回顾一下RSA的加密算法。我们从公钥加密算法和签名算法的定义出发,用比较规范的语言来描述这一算法。RSA公钥加密体制包含如下3个算法:KeyGen(密钥生成算法),Encrypt(加密算法)以及Decrypt(解密算法)。(PK,SK)\leftarrowKeyGen(\lambda)。密钥生成算法以安全常数\lambda作为输入,输出一个公钥PK...