2019年信息安全工程师考试下午,试题二问题三的解决方法

问题:根据表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

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值