用希尔密码例题字母与数字对应的那套规则?

我有点儿是C++的新手......有一个月左右的时间......任何人,我们正在做这个最后的项目,我们必须做一个加密/解密程序使用希尔密码方法。我遇到了一个小问题,当我试图从函数中返回数字时,它会显示符号而不是实际的数字。但是,该函数本身正常工作。尽管这是作业/课堂作业,但老师允许我们使用在线资源和外部帮助,因为正如我之前所说的,我们只编程了一个月左右。任何和所有的帮助将不胜感激!

希尔加密算法的基本思想是,将d个明文字母通过线性变换将它们转换为d个密文字母。解密只要作一次逆变换就可以了,密钥就是变换矩阵本身。如信息“NOSLEEPPING”对应着一组编码14,15,19,12,5,5,16,16,9,14,7。但如果按这种方式直接传输出去,则很容易被敌方破译。于是必须采取加密措施,即用一个约定的加密矩阵K乘以原信号B,传输信号为C=KB(加密),收到信号的一方再将信号还原(破译)为B=KC。如果敌方不知道加密矩阵,则很难破译。
第一步,求密匙矩阵K的逆矩阵[2]K。K可用Mathematica计算。
第二步,由得Y=KX得X=KY(i=1,2,3,4),再次进行矩阵乘法运算:
这样原来的信息编码为14,15,19,12,5,5,16,16,9,14,7。
第三步,对照编码表,即可获得对方发来的信息内容为“NOSLEEPPING”。

我要回帖

更多关于 希尔密码例题 的文章

 

随机推荐