问题:根据表2.1的对应关系,仿射密码中,如果已知明文E对应密文C,明文T对应密文F,则相应的key=(k1,k2)等于多少?
具体完整题干题目在网上搜能搜到,在网上找解决思路找到的都是让自己猜,特别麻烦,自己琢磨发现一个稍微好点的解决思路
第一步根据表:
得:
明文E:04
密文C:02
明文T:19
密文F:05
第二步根据:
得二元一次方程:
式子1:(4k1+k2)mod26=2
式子2:(19k1+k2)mod26=5
式子2减去式子1得:
15k1mod26 = 3
第三步思路:
一个数除以26,得到一个商和余数3,那么被除数的个位数可能的值就有以下的情况:
26*0+3:15k1的个位数是3
26*1+3:15k1的个位数是9
26*2+3:15k1的个位数是5
26*3+3:15k1的个位数是1
26*4+3:15k1的个位数是7
26*5+3:15k1的个位数是3
26*6+3:15k1的个位数是9,发现进入循环,所以15k1的个位数可能有的值是3,9,5,1,7
因为15乘以某个数个位数只能是0和5两种情况,综合上面的结论,得到商的个位数是2
我们就猜测商是2,12,22,32,42
商是2的时候:15k1=55,k1不是整数
商是12的时候:15k1 = 26*12+3=315,得k1=21
第四步,计算k2
k1=21,代入式子1和2:
(84+k2)mod26 = 2
(394+k2)mod26=5
此时看第一个式子,m*26+2=84+K2。
(84+K2)的值取肯定大于84,那么m就可以猜测取值,有26*4=104,26*5=130等等情况,此时还要考虑k2小于26(因为mod26)
当84+k2-2=104时,k2=22
当84+k2-2=130时,k2=48,大于26,舍弃
所以k2等于22,可以再代入第二个式子演算一下,确定计算过程无错误
所以最后算得:k1=21,k2=22