例如:
Y对应25;I对应9;
?51?(25,9)??27??mod26=(4,9)=的,d,i
??依次类推:
破译后的明文为:Difficulties are things that show what men are. (2)算法同上:
例如:密文中的M为13;W为23; (13,23)???223??mod26=(9,18)=I,r ??217?依次类推:
破译后的明文为:Irrationally held truths may be more harmful than reasoned errors. 2.15题:
a.用hill加密消息 meet me at the usual place at ren rather than eight oclock,密钥为???94???,要求写出计算过程和结果 57??b.写出从密文恢复明文所做的解密计算
答案:
(1)找出26个字母与数字的对应关系表。
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 1 2 3 4 5 6 7 8 9 111111111122222220 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6
根据Hill密码的加密方法:C=KPmod26
将明文两两分组为:me et me at the u su al pl ac ea tt en ra th er th an ei gh to c loc kx 明文加密方法为: 例如:
m对应13;e对应5;
?94??137??(13,5)?mod26=???100?57?????mod26=(7,22)=G,V ?依次类推: 最终密文为:
GVUIGVKODZYPUHEKJHUZWFZFWSJSDZMUDZMYCJQMFWWUQRKR (2)求密钥K
?94?-1??57?? 的逆矩阵K ??[K-1]ij (?1)i+j(Dij)/det A 求出:
?94???57?????1??7?4??1611?7?4??????mod26?23mod26???????11543??59???59???92??512? ???mod26????9??1525?K-1
?512???1525?? ??然后通过K-1和密文可以破译出明文。 2.21
在多罗西的怪诞小说中,有一个故事是这样的:地主彼得遇到了图2.9所示的消息,他咋厚道了密钥,是一段整数:
787656543432112343456567878878765654 3432442343456567878878765654433211234 a.破译这段消息。提示最大的整数是什么?
b.如果只知道算法而不知道密钥,这种加密方案的安全性怎么样? c.如果只知道密钥而不知道算法,这中加密的方案安全性怎么样?
a.观察到最大的整数是8,将消息按8个字母一组划分按密钥所给数字按顺序去字母即可得明文:He sitteth between the cherubims,the isles may be glad thereof ,as the rivers in the south. b.很安全,在每一行有8种可能所以如果加密8n字母长度则有8n种可能。 c.不是很安全。
3.9证明DES解密算法的确是DES加密算法的逆 证明:
DES加密过程说明:64位明文经过初始值换IP重新排列,然后进行16轮函数作用,每轮都有置换和代换,最后一轮64位输出是明文和密钥的函数,左右互换后产生预输出最后输出经逆置换IP–1产生64位密文,除了初始置换和末尾置换DES结构和Feistel结构相同,IP和IP–1 互逆所以只需证明16轮解密可逆 按P(48)图3.3所示K 对于加密有 LE16= LE15
RE16= LE15??F(RE15, K16)?
DES加密过程说明:64位明文经过初始值换IP重新排列,然后进行16轮函数作用,每轮都 即有:LEi= LEi-1 ; REi= LEi-1??F(REi-1, Ki)?对于解密则有: LD1= RD0 = LE16 = RE15 RD1= LD0 ??F(RD0, K16)???????? RE16??F(RE0, K16)?
???????? LE15??F(RE15, K16)???F(RE15, K16)?
XOR(异或运算有性质)(A?B)?C=A?(B?C);D?D=0;E?0=E
因此有LD1 = RE15 和RD1= LE15 所以解密过程的第一轮输出为LE15 || RE15正是加密过程第
16轮输入左右不分32比特互换值,对于其他轮亦是如此,所以DES解密算法是DES加密算法的逆。 3.10
DES算法第16轮之后的32比特互换使得DES的解密过程与加密过程一样,只是密钥的使用不同。然而,为什么需要这32比特的互换,你可能并不非常清楚,所以看下面的联系,首先给出一些记号:
A||B=将串A和串B连接起来
Ti (R|| L)=加密过程第i轮迭代所定义的变换(1≠i≠16) TDi (R|| L)=解密过程第i轮迭代所定义的变换(1≠i≠16) T17 (R|| L)=L||R,加密过程第16轮迭代之后的变换
–1
a. 证明下式:TD1(IP [IP (T17(T16(L15 || R15)))])= R15 || L15
b. 假设我们去掉了加密算法最后的32比特的变换,请判断下式时候成立: TD1(IP [IP–1 (T16(L15 || R15))])= L15 || R15
解答:
a. T16(L15 || R15) = L16 || R16
T17(L16 || R16) = R16 || L16 IP [IP–1 (R16 || L16)] = R16 || L16 TD1(R16 || L16) = R15 || L15
即 TD1(IP [IP–1 (T17(T16(L15 || R15)))])= R15 || L15 b.
T16(L15 || R15) = L16 || R16
IP [IP–1 (L16 || R16)] = L16 || R16 TD1(R16 || L16) = R16 || L16 ? f(R16, K16)
≠ L15 || R15
即TD1(IP [IP–1 (T16(L15 || R15))])= L15 || R15不成立。
6.10 对于RC4的密钥值为什么的时候,使得S在初始化过程中没有变化?即在对S进行初
始置换后,S的元素的值按肾虚分别等于0到255.
解答:
根据RC4初始化S可知之后当keylen=256时才能存在此中情况 当i=0,1,……255,有S[0]=0,S[1]=1,…………S[255]=255 T[i]=K[imod256]
当i,j=0时 j=(j+ S[0]+ T[i]mod256),若S[i] ; S[j]交换后不变,则S[0]=0,j=0 有
0=(0+0+ T[i]))mod256 所以T[1]=0,K(1)=0
当i=2,j=2时 2=(2+3+ T[3])mod256 所以T[3]=254,K(3)=254
即当K(0)=K(i)=0,K(2)=255,K(3)=254……K(255)=2时初始化过程无变化
6.11 RC4有秘密的内部状态,用于对向量S和两个索引i和j进行置换。 a.使用直接存储的方法保存内部状态,共需要多少位?
b.假设我们从多少信息被状态所表示的角度考虑,需要判断共有多少种不同的状态,用该方
法表示状态共需要多少位?
解答:
a.i,j两个索引共需8+8bits:向量S共需256*8bits 所以直接存储I,j,s共需8+8+256*8=2064bits b.256!+2562≈21700 所以共需1700bits 6.12
Alice和bob商定通过电子邮件基于RC4经行秘密通信,但是不想每次传输都使用新的密钥,alice和bob秘密地约好128位密钥k。对于消息m,使用如下过程进行加密: 1. 选择80位随机数v 2. 生成密文c=RC4(v||k)??m
3. 发送比特串(v||c)
a. 假设alice使用该过程发送信息m给bob,描述bob如何使用密钥k从(v||c)恢复出消
息m。 b. 如果攻击者去得许多对alice和bob之间传输的(v1 ||c1),(v2 ||c2)……攻击者怎样能够判断何时使用相同的密钥加密两个消息?
c. 估计在相同密钥被重复使用时alice能够发送多少消息? d. 这说明密钥k的生命期(用k加密的消息数)应该是多少?
解答:
a.先去掉m然后异或密文和密钥