RSA公钥密码算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2. RSA公钥密码系统加密/解密过程
例3.2.7 用RSA公钥密码系统对“math”加密、解密。 加密过程:
以两字母为一组对“math”编码: “ma”=12∙26+0=312 ,“th”=19 ∙ 26+7=501。
用公钥Ke=(n, e) = (667, 13) 加密“ma”=312 和 “th”=501,计算: c1=(“ma”) e (mod n)=31213(mod 667); c2=(“th”) e (mod n)=50113(mod 667);
c2=(“th”) e (mod n)=50113(mod 667);
等价于求解同余式组
即
x ≡ 50113 ≡b1 (mod 23) x ≡ 50113 ≡b2 (mod 29)
x ≡ 1813 ≡b1 (mod 23) x ≡ 813 ≡b2 (mod 29)
2. RSA公钥密码系统加密/解密过程
只保留n,e, d。 (n, e) 公开, (n, e) 为公钥; (n, d)为私钥。 5. 加密变换:对明文a, 1<a<n, 加密后的密文为
c ≡ ae(mod n)。 6. 解密变换:对密文c, 1<c<n, 解密后的明文为
a ≡ cd(mod n)。
2. RSA公钥密码系统加密/解密过程
密码系统使用字符集 。 明文信息空间 :所有明文信息的集合,由k字符组 组成的集合 = k。 密文信息空间 :全体密文信息的集合,由l字符组 组成的集合 = l。 密钥空间 :全体密钥的集合。 加密算法C=E(n, Ke , M),解密算法M=D(n, Kd , C) 。
C= E(n, Ke , M)
= 2={aa, ab, ac, ... , xz, yz, zz}。 明文信息: public,以两字母为一组对“public”编码: “pu”=15∙26+20=410 , “bl”=1∙26+11=37 , “ic”=8∙26+2=210 ,
2. RSA公钥密码系统加密/解密过程
选取明文和密文空间,对明文字符编码:假设 RSA公钥密码系统使用N=26字符集 ,对应0,1, 2,... ,25:
2. RSA公钥密码系统加密/解密过程
例3.2.7 用RSA公钥密码系统对“math”加密、解密。 c2=(“th”) e (mod n)=50113(mod 667);
设 m=667, b=501, 令a=1, 将13写成二进制表示: 13=1+22+23
运用模重复平方法,依次计算如下: (1) n0=1,计算 a0= a×b≡501 , b1≡b2≡209 (mod 667) (2) n1=0 , 计算 a1 ≡ a0 ≡ 501 , b2≡b12≡110 (mod 667) (3) n2=1,计算 a2= a1×b2≡678 , b3≡b22≡223 (mod 667)
2. RSA公钥密码系统加密/解密过程
例1 用RSA公钥密码系统对“math”加密、解密。 (“sa”) d (mod n) =c1 d=468237(mod 667);
设 m=667, b=468, 令a=1, 将237写成二进制表示: 237=1+22+23 +25+26 +27
2. RSA公钥密码系统加密/解密过程
由 667 =23×29
c1=(“ma”) e (mod n)=31213(mod 667);
等价于求解同余式组
即
x ≡ 31213 ≡b1 (mod 23)
x ≡ 1313 ≡b1 (mod 23)
x ≡ 31213 ≡b2 (mod 29)
x ≡ 2213 ≡b2 (mod 29)
例3.2.7 用RSA公钥密码系统对“math”加密、解密。 解密过程:
以两字母为一组对“sagh”编码: “sa”=18 ∙ 26+0=468 ,“gh”=6∙26+7=163。
用私钥Kd=(n, d) = (667, 237)解密“sa”=468 和 “gh”=163,计算: (“sa”) d (mod n) =c1 d=468237(mod 667); (“gh”) d (mod n) =c2 d=163237(mod 667);
2. RSA公钥密码系统加密/解密过程
例3.2.7 用RSA公钥密码系统对“math”加密、解密。 (“sa”) d (mod n) =c1 d=468237(mod 667);
设 m=667, b=468, 令a=1, 将237写成二进制表示: 237=1+22+23 +25+26 +27
运用模重复平方法,依次计算如下: (1) n0=1,计算 a0 ≡ a×b≡468 , b1≡b2≡248 (mod 667) (2) n1=0 , 计算 a1 ≡ a0 ≡ 468 , b2≡b12≡140 (mod 667) (3) n2=1,计算 a2 ≡ a1×b2≡154 , b3≡b22≡257 (mod 667) (4) n3=1,计算 a3≡ a2×b3≡225 , b4≡b32≡16 (mod 667)
={a, b, c, d, e, f, ..., x, y, z} = {0, 1, 2, 3, ..., 24, 25}。 若明文信息空间由3字符组组成的集合
= 3={aaa, aab, aac, ... , zzx, zzy, zzz}。 明文信息: public,以3字母为一组对“public”编码: “pub”=15∙262+ 20∙26+1=10661 , “lic”= 11∙262+ 8∙26+2=7646 ,
取 p=23, q=29,
1) 计算n=pq=667, (n)=(p - 1)(q - 1)=616 。 2) 取e = 13 (1<e< (n) , 且 (e, (n) )=1)。 3) 用广义欧几里德除法计算d, 满足de≡1 (mod (n) )。
d=237。 4) 公钥Ke=(n, e) = (667, 13),
2. RSA公钥密码系统加密/解密过程
例3.2.7 用RSA公钥密码系统对“math”加密、解密。 c1=(“ma”) e (mod n)=31213(mod 667);
设 m=667, b=312, 令a=1, 将13写成二进制表示: 13=1+22+23
运用模重复平方法,依次计算如下: (1) n0=1,计算 a0 ≡ a×b≡312 , b1≡b2≡629 (mod 667) (2) n1=0 , 计算 a1 ≡ a0 ≡ 312 , b2≡b12≡326 (mod 667) (3) n2=1,计算 a2 ≡ a1×b2≡303 , b3≡b22≡94 (mod 667)
私钥Kd=(n, d) = (667, 237) 。
2. RSA公钥密码系统加密/解密过程
例3.2.7 用RSA公钥密码系统对“math”加密、解密。 加密过程:
以两字母为一组对“math”编码: “ma”=12∙26+0=312 ,“th”=19 ∙ 26+7=501。
用公钥Ke=(n, e) = (667, 13) 加密“ma”=312 和 “th”=501,计算: c1=(“ma”) e (mod n)=31213(mod 667); c2=(“th”) e (mod n)=50113(mod 667);
2. RSA公钥密码系统加密/解密过程
例3.2.7 用RSA公钥密码系统对“math”加密、解密。 c2=(“th”) e (mod n)=50113(mod 667); 设 m=667, b=312, 令a=1, 将13写成二进制表示:
13=1+22+23 运用模重复平方法,依次计算如下: (4) n3=1 , 计算 a3 = a2×b3≡163 (mod 667) 即 c2=(“th”) e (mod n)=50113(mod 667)=163; 解码:将数字信息转化为字符163=6 ∙ 26+7=“gh”, 所以 “th”的密文为 “gh” 。
={a, b, c, d, e, f, ..., x, y, z}。 明文和密文信息空间由2字符组组成的集合
= = 2={aa, ab, ac, ... , xz, yz, zz}。
2. RSA公钥密码系统加Baidu Nhomakorabea/解密过程
例3.2.7 用RSA公钥密码系统对“math”加密、解密。 选取明文和密文空间,对明文字符编码: 设RSA公钥密码系统使用N=26字符集 :
2. RSA公钥密码系统加密/解密过程
例3.2.7 用RSA公钥密码系统对“math”加密、解密。 c1=(“ma”) e (mod n)=31213(mod 667); 设 m=667, b=312, 令a=1, 将13写成二进制表示:
13=1+22+23 运用模重复平方法,依次计算如下: (4) n3=1 , 计算 a3 = a2×b3≡468 (mod 667) 即 c1=(“ma”) e (mod n)=31213(mod 667)=468; 解码:将数字信息转化为字符468=18 ∙ 26+0=“sa”, 所以 “ma”的密文为 “sa” 。
2) 若 ae≡c (mod n) , 1≤c< n, 则 c d≡a (mod n)。
2) 若 ae (mod n) , 1≤c< n, 则 c d (mod n)。
RSA公钥密码系统的执行步骤如下: 1. 选取两个不同的大素数p, q。
2. 计算n = p·q, (n) =(p - 1)·(q - 1)。 3. 随机选取正整数e, 1<e< (n) , 满足 (e, (n) )=1。 4. 计算d,满足de≡1(mod (n) )。 p, q , (n) , d是保密的。丢弃p, q, (n) ;
={a, b, c, d, e, f, ..., x, y, z}。 以两字母为一组对“math”编码:
“ma”=12∙26+0=312 ,“th”=19 ∙ 26+7=501。
2. RSA公钥密码系统加密/解密过程
例3.2.7 用RSA公钥密码系统对“math”加密、解密。 构造RSA公钥密码系统
= 3={aaa, aab, aac, ... , zzx, zzy, zzz}。 解码:数字信息 16346, 以3字母为一组对应的字符: 16346=24∙262+ 4∙26+18=“yes” 。
2. RSA公钥密码系统加密/解密过程
例3.2.7 用RSA公钥密码系统对“math”加密、解密。 选取明文和密文空间,对明文字符编码: 设RSA公钥密码系统使用N=26字符集 :
2. RSA公钥密码系统加密/解密过程
选取明文和密文空间,对明文字符编码: 设RSA公钥密码系统使用N=26字符集 ,对应0,1, 2,... ,25:
={a, b, c, d, e, f, ..., x, y, z} = {0, 1, 2, 3, ..., 24, 25}。 若明文信息空间由3字符组组成的集合
2. RSA公钥密码系统加密/解密过程
例3.2.7 用RSA公钥密码系统对“math”加密、解密。
经公钥密码系统 :p=23, q=29, n=pq=667 , 公钥Ke=(n, e) = (667, 13), 私钥Kd=(n, d) = (667, 237) , 加密后“math”的密文为“sagh”。
RSA公钥密码系统 加密/解密过程
定理2.4.3 (RSA公钥密码算法) 设 p , q 是两个不同的 奇素数,n=pq, a 是满足1≤a < n的整数。
整数 e 满足 1 < e < (n) , 且 (e, (n)) =1 。 那么:1) 存在整数 d , 1≤d< (n) , 使得
ed≡1(mod (n))
M= D(n, Kd , C)
2. RSA公钥密码系统加密/解密过程
选取明文和密文空间,对明文字符编码:假设 RSA公钥密码系统使用N=26字符集 ,对应0,1, 2,... ,25:
={a, b, c, d, e, f, ..., x, y, z} = {0, 1, 2, 3, ..., 24, 25}。 若明文信息空间由2字符组组成的集合