密码学课程设计-刘欣凯(2)

2019-04-09 08:26

实验一 古典密码算法

1.1 古典密码仿射密码

1.11算法原理和设计思路

加法密码和乘法密码结合就构成仿射密码,仿射密码的加密和解密算法是: C= Ek(m)=(k1m+k2) mod n

M= Dk(c)=k3(c- k2) mod n(其中(k3 ×k1)mod26 = 1)

仿射密码具有可逆性的条件是gcd(k1, n)=1。当k1=1时,仿射密码变为加法密码,当k2=0时,仿射密码变为乘法密码。

仿射密码中的密钥空间的大小为nφ(n),当n为26字母,φ(n)=12,因此仿射密码的密钥空间为12×26 = 312。

仿射密码举例:

设密钥K= (7, 3), 用仿射密码加密明文hot。三个字母对应的数值是7、14和19。分别加密如下:

(7×7 + 3) mod 26 = 52 mod 26 =0 (7×14 + 3) mod 26 = 101 mod 26 =23 (7×19 + 3) mod 26 =136 mod 26 =6

三个密文数值为0、23和6,对应的密文是AXG。 1.12关键算法分析

密码学课程设计

6

密码学课程设计

填充矩阵,将明文输入,然后构成加密矩阵。构成矩阵以后再进行加密运算。

这一部分是解密算法。是加密的逆过程。

1.13运行结果

7

密码学课程设计

1.2 古典密码Hill

1.21 古典密码Hill概述

Hill体制是1929年由Lester S.Hill发明的,它实际上就是利用了我们熟知的线性变换方法,是在Z26上进行的。Hill体制的基本思想是将n个明文字母通过线性变换转化为n个密文字母,解密时只需要做一次逆变换即可,密钥就是变换矩阵。 1.22算法原理与设计思路

1.假设要加密的明文是由26个字母组成,其他字符省略。将每个字符与0-25的一个数字一一对应起来。(例如:a/A—0,b/B—1,……z/Z—25)。

?7115?023187?2.选择一个加密矩阵An?n,其中矩阵A必须是可逆矩阵,例如A??11069??1692321??21137225?5??2? ?0?15??3.将明文字母分别依照次序每n个一组(如果最后一组不足n个的话,就将其补成n个),依照字符与数字的对应关系得到明文矩阵minglen/n?n。

4.通过加密矩阵A,利用矩阵乘法得到密文矩阵milen/n?n= minglen/n?n?An?nmod 26; 将密文矩阵的数字与字符对应起来,得到密文。

8

密码学课程设计

5.解密时利用加密矩阵的逆矩阵A和密文,可得到明文。

n6. 设明文为m?(m1?m2,?,mn)?Z26,密文c?(c1,c2,.?,cn)?Z26,密钥为Z26上的

?1nn*n阶可逆方阵K?(kij)n?n,则

加密:密文c?mKmod26解密:明文m?cK1.23 关键算法分析

?1mod26

欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。

产生公约数的目的是为了下一步求逆矩阵和矩阵时方便运算。

9


密码学课程设计-刘欣凯(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:共和中学校志

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: