密码学简答题及计算题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
简答题及计算题
1.RSA 算法中n =11413,e =7467,密文是5859,利用分解11413=101×113,求明文。
解:10111311413n p q =⨯=⨯=
()(1)(1)(1001)(1131)11088n p q ϕ=--=--=
显然,公钥e=7467,满足1<e <()n ϕ,且满足gcd(,())1e n ϕ=,通过公式1mod11088d e ⨯≡求出1mod ()3d e n ϕ-≡=,
由解密算法mod d m c n ≡得3mod 5859mod114131415d m c n ≡==
2.用C 语言编写欧几里德算法的程序。
#include
unsigned int Gcd( unsigned int M, unsigned int N )
{
unsigned int Rem;
while( N > 0 )
{
Rem = M % N;
M = N;
N = Rem;
}
return M;
}
void main()
{
int temp;
int a,b;
scanf("%d",&a);
scanf("%d",&b);
printf("the greatest common factor of %d and %d is ",a,b); printf("%d\n",Gcd(a,b));
}
3.用欧几里德算法计算gcd (1024,888)。
1024=888*1+136 gcd (888,136)
888=136*6+72 gcd (136,72)
136=72*1+64 gcd (72,64)
72=64*1+8 gcd (64,8)
64=8*8+0 gcd (8,0)
gcd (1024,888)=8
4.利用欧拉定理可简化大指数的幂运算,计算21000 000 mod99
gcd(2,99)=1
φ(99)=φ(9*11)=φ(32*11)=9*(1-1/3)*11=66
1000000=16666*60+40
21000 000 mod99≡216666*60+40 mod99≡240 mod99≡10244 mod99≡344mod99≡672mod99≡34
5.设Z2[x]的两个元a(x)=2x4+2,b(x)=x5+2,求gcd[a(x),b(x)]=g(x),并找出s(x),t(x)使g(x)=s(x)a(x)+t(x)b(x)。
x5+2≡2x(2x4+2)+(2x+2)
2x4+2≡(x3+2x2+x+2)(2x+2)+1
1≡2x4+2-(x3+2x2+x+2)(2x+2)
≡2x4+2-(x3+2x2+x+2)[(x5+2)-2x(2x4+2)]
≡(2x4+4x3+2x2+4x+1)(2x4+2)+(2x3+x2+2x+1)(x5+2)
≡(2x4+x3+2x2+x+1)(2x4+2)+(2x3+x2+2x+1)(x5+2)
所以,g(x)=1,s(x)=2x4+x3+2x2+x+1,t(x)=2x3+x2+2x+1。
6.(韩信点兵问题)有兵一队,若列成五行纵队,则末行一人;成六行纵队,则末行五人;成七行纵队,则末行四人;成十一行纵队,则末行十人,求兵数。x≡1mod5
x≡5mod6
x≡4mod7
x≡10mod11
m1 =5, m2 =6,m3 =7,m4 =11
a1 =1, a2 =5,a3 =4,a4 =10
M=5*6*7*11=2310
M1 =6*7*11=462, M2 =5*7*11=385, M3 =5*6*11=330,M4 =5*6*7=210
Mb≡1modm
462b1≡1mod5 b1≡3mod5
385b2≡1mod6 b2≡1mod6
330b3≡1mod7 b3≡1mod7
210b4≡1mod11 b4≡1mod11
1*3*462+5*1*385+4*1*330+1*10*210≡2111mod2310
兵数2111mod2310。
7.求置换
的逆置换。
6==(1 5 6 8 3 7 4 2)
6的逆==(1 2 4 7 3 8 6 5)
8.用维吉尼亚密码加密明文“please keep this message in secret”其中使用的密钥为“computer”试求其密文。RZQPMXOVGFWCLQVUGMVYBRJGQDTN
9.题目:已知一下密文是由仿射密码得到的试求其明文。“FMXVEDKAPHFERBNDKRXRSREFMORUDSDKDVSHVUFEDKAPRKDLYEVLRHHRH”
解答:统计得出:
A:2 I:0 Q:0 Y:1
B:1 J:0 R:8 Z:0
C:0 K:5 S:3
D:7 L:2 T:0
E:5 M:2 U:2
F:4 N:1 V:4
G:0 O:1 W:0
H:5 P:2 X:2
根据统计规律我们猜想R是e加密得到的,D是t加密得到的,因为t,e出现频率较高,得到同余方程组
(4a+b)mod26=17
(19a+b)mod26=13
得到a=6
b=19仿射密码要求gcd(a,26)=1,所以此解错误。
再次猜想R是e加密的得到的,k是t加密得到的,从而得到a=3,b=5,将此解带入密文测试发现k=(3,5)正确,推出解密函数d(y)=9y-19 得到解密结果:algorithmsarequitegeneraldefinitionsofarithmeticprocesses