简述RSA算法中密钥的产生,数据加密和解密的过程,并简单说明RSA算法安全性的原理。

急用请电脑高手们帮我解围... 急用请电脑高手们帮我解围 展开
 我来答
jirong111
2008-07-02 · TA获得超过106个赞
知道答主
回答量:100
采纳率:0%
帮助的人:46.5万
展开全部
RSA算法的数学原理

RSA算法的数学原理:
先来找出三个数, p, q, r,

其中 p, q 是两个相异的质数, r 是与 (p-1)(q-1) 互质的数。

p, q, r 这三个数便是 private key。接著, 找出m, 使得 rm == 1 mod (p-1)(q-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), b 就是编码后的资料...... 解码的过程是, 计算 c == b^r mod pq (0 <= c < pq), 於是乎, 解码完毕...... 等会会证明 c 和 a 其实是相等的 :) 如果第三者进行窃听时, 他会得到几个数: m, n(=pq), b...... 他如果要解码的话, 必须想办法得到 r...... 所以, 他必须先对 n 作质因数分解......... 要防止他分解, 最有效的方法是找两个非常的大质数 p, q, 使第三者作因数分解时发生困难......... <定理> 若 p, q 是相异质数, rm == 1 mod (p-1)(q-1), a 是任意一个正整数, b == a^m mod pq, c == b^r mod pq, 则 c == a mod pq 证明的过程, 会用到费马小定理, 叙述如下: m 是任一质数, n 是任一整数, 则 n^m == n mod m (换另一句话说, 如果 n 和 m 互质, 则 n^(m-1) == 1 mod m) 运用一些基本的群论的知识, 就可以很容易地证出费马小定理的........ <证明> 因为 rm == 1 mod (p-1)(q-1), 所以 rm = k(p-1)(q-1) + 1, 其中 k 是整数 因为在 modulo 中是 preserve 乘法的 (x == y mod z and u == v mod z => xu == yv mod z), 所以, c == b^r == (a^m)^r == a^(rm) == a^(k(p-1)(q-1)+1) mod pq 1. 如果 a 不是 p 的倍数, 也不是 q 的倍数时, 则 a^(p-1) == 1 mod p (费马小定理) => a^(k(p-1)(q-1)) == 1 mod p a^(q-1) == 1 mod q (费马小定理) => a^(k(p-1)(q-1)) == 1 mod q 所以 p, q 均能整除 a^(k(p-1)(q-1)) - 1 => pq | a^(k(p-1)(q-1)) - 1 即 a^(k(p-1)(q-1)) == 1 mod pq => c == a^(k(p-1)(q-1)+1) == a mod pq 2. 如果 a 是 p 的倍数, 但不是 q 的倍数时, 则 a^(q-1) == 1 mod q (费马小定理) => a^(k(p-1)(q-1)) == 1 mod q => c == a^(k(p-1)(q-1)+1) == a mod q => q | c - a 因 p | a => c == a^(k(p-1)(q-1)+1) == 0 mod p => p | c - a 所以, pq | c - a => c == a mod pq 3. 如果 a 是 q 的倍数, 但不是 p 的倍数时, 证明同上 4. 如果 a 同时是 p 和 q 的倍数时, 则 pq | a => c == a^(k(p-1)(q-1)+1) == 0 mod pq => pq | c - a => c == a mod pq Q.E.D. 这个定理说明 a 经过编码为 b 再经过解码为 c 时, a == c mod n (n = pq).... 但我们在做编码解码时, 限制 0 <= a < n, 0 <= c < n, 所以这就是说 a 等於 c, 所以这个过程确实能做到编码解码的功能.....

参考资料: http://blog.sina.com.cn/s/print_4d88a6750100097e.html

qzep
2008-07-09 · TA获得超过312个赞
知道小有建树答主
回答量:108
采纳率:0%
帮助的人:92.6万
展开全部
RSA方法的工作原理如下:
1) 任意选取两个不同的大质数p和q,计算乘积r=p*q;
2) 任意选取一个大整数e,e与(p-1)*(q-1)互质,整数e用做加密密钥。注意:e的选取是很容易的,例如,所有大于p和q的质数都可用。
3) 确定解密密钥d:
d * e = 1 mod(p - 1)*(q - 1)
根据e、p和q可以容易地计算出d。
4) 公开整数r和e,但是不公开d;
5) 将明文P (假设P是一个小于r的整数)加密为密文C,计算方法为:
C = Pe mod r (e为幂次方)
6) 将密文C解密为明文P,计算方法为:
P = Cd mod r (d为幂次方)
然而只根据r和e(不是p和q)要计算出d是不可能的。因此,任何人都可对明文进行加密,但只有授权用户(知道d)才可对密文解密。

例:选取p=3, q=5,试计算出d和e分别是多少?假定明文为整数13,请给出密文数字.
解:如果选取p=3, q=5,则r=15,(p-1)*(q-1)=8。选取e=11(大于p和q的质数),通过d * 11 = 1 mod 8, 计算出d =3。
假定明文为整数13。则密文C为 (e为幂次方)
C = Pe mod r = 1792160394037 mod 15 = 7
复原明文P为: (d为幂次方)
P = Cd mod r = 343 mod 15 = 13
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
但淑英少罗
2020-02-06 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.4万
采纳率:33%
帮助的人:790万
展开全部
RSA算法的数学原理
RSA算法的数学原理:
先来找出三个数,
p,
q,
r,
其中
p,
q
是两个相异的质数,
r
是与
(p-1)(q-1)
互质的数。
p,
q,
r
这三个数便是
private
key。接著,
找出m,
使得
rm
==
1
mod
(p-1)(q-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),
b
就是编码后的资料......
解码的过程是,
计算
c
==
b^r
mod
pq
(0
<=
c
<
pq),
於是乎,
解码完毕......
等会会证明
c

a
其实是相等的
:)
如果第三者进行窃听时,
他会得到几个数:
m,
n(=pq),
b......
他如果要解码的话,
必须想办法得到
r......
所以,
他必须先对
n
作质因数分解.........
要防止他分解,
最有效的方法是找两个非常的大质数
p,
q,
使第三者作因数分解时发生困难.........
<定理>

p,
q
是相异质数,
rm
==
1
mod
(p-1)(q-1),
a
是任意一个正整数,
b
==
a^m
mod
pq,
c
==
b^r
mod
pq,

c
==
a
mod
pq
证明的过程,
会用到费马小定理,
叙述如下:
m
是任一质数,
n
是任一整数,

n^m
==
n
mod
m
(换另一句话说,
如果
n

m
互质,

n^(m-1)
==
1
mod
m)
运用一些基本的群论的知识,
就可以很容易地证出费马小定理的........
<证明>
因为
rm
==
1
mod
(p-1)(q-1),
所以
rm
=
k(p-1)(q-1)
+
1,
其中
k
是整数
因为在
modulo
中是
preserve
乘法的
(x
==
y
mod
z
and
u
==
v
mod
z
=>
xu
==
yv
mod
z),
所以,
c
==
b^r
==
(a^m)^r
==
a^(rm)
==
a^(k(p-1)(q-1)+1)
mod
pq
1.
如果
a
不是
p
的倍数,
也不是
q
的倍数时,

a^(p-1)
==
1
mod
p
(费马小定理)
=>
a^(k(p-1)(q-1))
==
1
mod
p
a^(q-1)
==
1
mod
q
(费马小定理)
=>
a^(k(p-1)(q-1))
==
1
mod
q
所以
p,
q
均能整除
a^(k(p-1)(q-1))
-
1
=>
pq
|
a^(k(p-1)(q-1))
-
1

a^(k(p-1)(q-1))
==
1
mod
pq
=>
c
==
a^(k(p-1)(q-1)+1)
==
a
mod
pq
2.
如果
a

p
的倍数,
但不是
q
的倍数时,

a^(q-1)
==
1
mod
q
(费马小定理)
=>
a^(k(p-1)(q-1))
==
1
mod
q
=>
c
==
a^(k(p-1)(q-1)+1)
==
a
mod
q
=>
q
|
c
-
a

p
|
a
=>
c
==
a^(k(p-1)(q-1)+1)
==
0
mod
p
=>
p
|
c
-
a
所以,
pq
|
c
-
a
=>
c
==
a
mod
pq
3.
如果
a

q
的倍数,
但不是
p
的倍数时,
证明同上
4.
如果
a
同时是
p

q
的倍数时,

pq
|
a
=>
c
==
a^(k(p-1)(q-1)+1)
==
0
mod
pq
=>
pq
|
c
-
a
=>
c
==
a
mod
pq
Q.E.D.
这个定理说明
a
经过编码为
b
再经过解码为
c
时,
a
==
c
mod
n
(n
=
pq)....
但我们在做编码解码时,
限制
0
<=
a
<
n,
0
<=
c
<
n,
所以这就是说
a
等於
c,
所以这个过程确实能做到编码解码的功能.....
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式