阅读下列说明,回答问题 1 至问题 5,将解答写在答题纸的对应栏内。 【说明】 DES 是一种分组密码,己知 DES 加密算法的某个 S 盒如表 4-1 所示。 表4-1 S盒 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 7 13 14 3 0 6 9 (1) 1 2 8 5 11 12 4 15 1 13 8 11 5 (2) 15 0 3 4 7 2 12 1 10 14 9 2 10 6 9 0 12 11 7 13 15 (3) 3 14 5 2 8 4 3 3 15 0 6 10 1 13 8 9 4 5 (4) 12 7 2 14
【问题1】 (4分) 请补全该 S 盒,填补其中的空(1) - (4),将解答写在答题纸的对应栏内。 【问题 2】 (2分) 如果该 S 盒的输入为 110011,请计算其二进制输出。 【问题3】(6分) DES加密的初始置换表如下: 58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4 62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7 置换时,从左上角的第一个元素开始,表示输入的铭文的第58位置换成输出的第1位,输入明文的第50位置换成输出的第2位,从左至右,从上往下,依次类推。 DES加密时,对输入的64位明文首先进行初始置换操作。 若置换输入的明文M=0123456789ABCDEF(16进制),请计算其输出(16进制表示)。 【问题4】(2分) 如果有简化的DES版本,其明文输入为8比特,初始置换表IP如下: IP:2 6 3 1 4 8 5 7 请给出其逆初始置换表。 【问题5】(2分) DES加密算法存在一些弱点和不足,主要有密钥太短和存在弱密钥。请问,弱密钥的定义是什么?
第1题:
有以下程序
struct S{ int n; int a[20]; }; void f(int *a,int n) {int i; for(i=0;i a[i]+=i; } main() {int i; struct S s={10,{2,3,1,6,8,7,5,4,10,9}}; f(s.a, s.n); for(i=0;i printf(“%d”,s.a[i]); } 程序运行后的输出结果是( )。
A.2,4,3,9,12,12,11,11,18,9,
B.3,4,2,7,9,8,6,5,11,10,
C.2,3,1,6,8,7,5,4,10,9,
D.1,2,3,6,8,7,5,4,10,9,
第2题:
(1)0×(-2012); (2)(-8)×1.25 ;
(3)7/10×(-3/14)
(4)(-3/16)×(-8/9)
(5)7.5×(-8.2)×0×(-19.1)
(6)(-14/3)×5/7
(7)(-0.12)×1/12×(-100)
(8)7×(-1+3/14)
(1)0 (2)-10 (3) -3/20 (4)1/6
(5) 0 (6)-10/3 (7) 1 (8)-11/2
第3题:
有以下程序
struct S{ int n; int a[20]; };
void f(int *a,int n)
{ int i;
for(i=0;i<n-1;i++) a[i]+=i;
}
main( )
{ int i; struct S s={10,{2,3,1,6,8,7,5,4,10,9}};
f(s.a,s.n);
for(i=0;i<s.n;i++) printf("%d",s.a[i]);
}
程序运行后的输出结果是
A)2,4,3,9,12,12,11,11,18,9,
B)3,4,2,7,9,8,6,5,11,10,
C)2,3,1,6,8,7,5,4,10,9,
D)1,2,3,6,8,7,5,4,10,9,
第4题:
有以下程序: #include <stdio.h> main( ) { int num[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13;14,15,16}},i,j; for(i =0;i<4;i ++ ) { for(j=0;j<=i;j++)printf("%4c","); for(j=______;j<4;j ++ )printf( "%4d" ,hum[i] [j] ); printf(" \n" ); } } 若要按以下形式输出数组右上半三角; 1 2 3 4 6 7 8 11 12 16则在程序下划线处应填入的是( )。
A.i-1
B.i
C.i+1
D.4-i
第5题:
有以下程序 struct S { int n;int a[20];}; void f(int *a,int n) { int i; for(i=0;i<n-1;i++)a[i]+=i; } main() { int i;struct S s={10,{2,3,1,6,8,7,5,4,10,9}}; f(s.a,s.n); for(i=0;i<s.n;i++)printf("%d,",s.a[i]); } 程序运行后的输出结果是
A.2,4,3,9,12,12,11,11,18,9,
B.3,4,2,7,9,8,6,5,11,10,
C.2,3,1,6,8,7,5,4,10,9,
D.1,2,3,6,8,7,5,4,10,9,
第6题:
有以下程序: struct S{int n;int a[20];}; void f(int*a,int n) {int i; for(i=0;i<n-1;i++)a[i]+=i;} mainf() {int i;struct S s{10,{2,3,1,6,8,7,5,4,10,9}}; if(s.a,s.n); for(i=0;i<s.n;i++)printf("%d",s.a[i]);} 程序运行后的输出结果是( )。
A.2,4,3,9,12,12,11,11,18,9
B.3,4,2,7,9,8,6,5,11,10
C.2,3,1,6,8,7,5,4,10,9
D.1,2,3,6,8,7,5,4,10,9
第7题:
计算:
(1)(-8)-(-1) (2)45+(-30)
(3)-1.5-(-11.5) (4)-1/4-(-1/2)
(5)15-[1-(-20-4)] (6)-40-28-(-19)+(-24)
(7)22.54+(-4.4)+(-12.54)+4.4
(8) (2/3-1/2)-(1/3-5/6)
(9)2.4-(-3/5)+(-3.1)+4/5 (10)(-6/13)+(-7/13)-(-2)
(11)3/4-(-11/6)+(-7/3)
(12)11+(-22)-3×(-11)
(13)(-0.1)÷1/2×(-100)
(14)(-3/4)×(-2/3 - 1/3) ×0
(15)(-2)3-32
(16)23÷[(-2)3-(-4)]
(17)(3/4-7/8)÷(-7/8)
(18)(-60)×(3/4+5/6)
(1)(-8)-(-1)=-7
(2)45+(-30)=15
(3)-1.5-(-11.5)=10
(4)-1/4-(-1/2)=1/4
(5)15-[1-(-20-4)]=-10 (6)-40-28-(-19)+(-24)=-73
(7)22.54+(-4.4)+(-12.54)+4.4=10
(8) (2/3-1/2)-(1/3-5/6)=-1
(9)2.4-(-3/5)+(-3.1)+4/5=0.7 (10)(-6/13)+(-7/13)-(-2)=1
(11)3/4-(-11/6)+(-7/3)=1/4
(12)11+(-22)-3×(-11)=22
(13)(-0.1) ÷1/2×(-100)=20
(14)(-3/4) ×(-2/3 - 1/3) ×0=0
(15)(-2)3-32=-17
(16)23÷[(-2)3-(-4)]=-23/4
(17)(3/4-7/8) ÷(-7/8)=1/7
(18)(-60) ×(3/4+5/6)=-95
第8题:
在○中填入“<”“>”“=”。
4/5-2/5○9/10-7/10 5/8-3/8○3/4-1/4
3/12+5/12○1/6+3/6 3/7+4/7○4/11+7/11
4/5-2/5>9/10-7/10 5/8-3/8<3/4-1/4
3/12+5/12=1/6+3/6 3/7+4/7=4/11+7/11
第9题:
下面程序的输出结果是 ( ) main( ) { int i,f1,f2; f1=f2=1; for(i=0;i<4;i+ +) { printf(”%d%d”,f1,f2); f1+ =f2; f2+ =f1; } }
A.1 2 3 4 5 6 7 8
B.1 1 2 3 5 8 13 21
C.1 1 3 5 7 9 11 13
D.1 3 5 7 9 11 13 15
第10题:
当执行下面的语句定义一维数组a后,此数组的所有元素为 ( ) inta[10];
A.a[1],a[2],a[3],a[4],a[5],a[6],a[8],a[9],a[10],a[10]
B.a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9]
C.a[0],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9],a[10]
D.a[1],a[2],a [3],a[4],a [5],a [9],a [7],a [8],a [9],a [10],a [11]