希尔密码

希尔(Hill)密码

算法简介

希尔密码(Hill Cipher)是运用基本矩阵论原理的替换密码,由Lester S. Hill在1929年发明。每个字母当作26进制数字:A=0, B=1, C=2… 一串字母当成n维向量,跟一个n×n的矩阵相乘,再将得出的结果MOD26。

题目描述

名称:hill

题目:在线代的课本上出现了一堆神秘字母
xihlsseaoy
而旁边的矩阵是
1 2
0 1
快找出flag吧
flag提交格式SeBaFi{}

加密解密方法介绍(摘自百度百科)

加密

第一步,设定加密矩阵为K=112-120113,即在希尔密码中设q=26,L=3,选取满秩3×3阶可逆矩阵。我们之所以取3×3可逆方阵,也是为了计算方便,相应的安全性就要低一些。
第二步,将信息14,15,19,12,5,5,16,16,9,14,7分为4个列矩阵:X1=141519,X2=1255,X3=16169,X4=1470,其中X中的“0”是虚设的,其目的是为了与列矩阵的行数一致。列矩阵的行数3和个数4完全依赖于加密后的信息所对应的数字的多少和加密矩阵阶数决定。
第三步,将信息加密。进行矩阵的乘法运算:Y1=KX1=112-120213141519=6716100;Y2=KX2=112-1202131255=27-244;Y3=KX3=112-12021316169=501675;Y4=KX4=112-1202131470=21035。加密后的新码为67,16,100,27,-2,44,50,16,75,21,0。Y中的35虽然是多余的信息,但要连同密码一起发给对方,对方在破解密码时要参与计算。

解密

第一步,求密匙矩阵K的逆矩阵。K可用Mathematica计算。即K=-614-3125-1-3。
第二步,再次进行矩阵乘法运算:X1=-614-3125-1-3671610=141519;X2=-614-3125-1-327-244=1255;X3=-614-3125-1-3501675=16169;X4=-614-3125-1-321035=1470。这样原来的信息编码为14,15,19,12,5,5,16,16,9,14,7。
第三步,对照编码表,即可获得对方发来的信息内容为“NOSLEEPPING”。

此题解法过程

  1. 求矩阵的逆
    [ 1 2 0 1 ] × [ a b c d ] = [ 1 0 0 1 ] \left[ \begin{matrix} 1 & 2\\ 0 & 1 \end{matrix} \right]\times \left[ \begin{matrix} a & b\\ c & d \end{matrix} \right]= \left[ \begin{matrix} 1 & 0\\ 0 & 1 \end{matrix} \right] [1021]×[acbd]=[1001]

    { a + 2 c = 1 b + 2 d = 0 c = 0 d = 1 \begin{cases} a+2c=1\\ b+2d=0\\ c=0\\ d=1 \end{cases}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值