密码学课程设计报告

2025-06-20

中 国 矿 业 大 学

密码学课程设计报告

学 院:班 级:姓 名:学 号:指导教师:

计算机科学与技术学院 信安11-2班

08113761 谢 林 2014 年 6月

密码学课程设计

目录

实验一 HILL算法的实现 .................................................. 3

1.1 HILL算法概述 ............................................................................... 3

1.2算法原理与设计思路 ...................................................................... 3 1.3 实验代码 ......................................................................................... 5 1.4 关键算法分析 ............................................................................... 11 1.5 运行结果分析 ............................................................................... 12 1.6 算法安全性分析 ........................................................................... 13

实验二 MD5算法的实现 ................................................. 14

2.1 MD5算法概述 ................................................................................ 14

2.2 算法原理与设计思路 ................................................................... 15 2.3 实验代码 ....................................................................................... 17 2.4 关键算法分析 ............................................................................... 25 2.5 运行结果 ....................................................................................... 28 2.6算法安全性分析 ............................................................................ 28

实验三 AES算法的实现 .................................................. 29

3.1 AES算法概述 ................................................................................ 31

3.2 算法原理与设计思路 ................................................................... 33 3.3 实验代码 ....................................................................................... 33 3.4 关键算法分析 ............................................................................... 42 3.5 运行结果 ....................................................................................... 44 3.6 算法安全性分析 ........................................................................... 44

实验四 ECC算法的实现(选做) ........................................... 29

4.1 ECC算法概述 ................................................................................ 29

4.2 算法原理与设计思路 ................................................................... 29 4.3 实验代码 ....................................................................................... 29 4.4 运行结果 ....................................................................................... 29 4.5 ECC自主探究 ................................................................................ 50

五 实验总结 ........................................................... 51

2

密码学课程设计

实验一 HILL算法的实现

1.1 HILL算法概述

Hil加密算法的基本思想是将个明文字母通过线性变换将它们转换为k个密文字母。脱密只要做一次逆变换就可以了,密钥就是变换矩阵本身。

M=m1m2……ml Ek(M)=c1c2……cl

c1=k11m1+k12m2+……+k1lml c2=k21m1+k22m2+……+k2lm ??

cl=kl1m1+kl2m2+……+kllml

通常对于字母加解密,使mod 26的方法,以上线性方程可以采用矩阵表示。 或写成 C?KM (mod 26),其中:

C=

, M=, K=(kij)l?l , M=K-1C (mod 26)

1.2算法原理与设计思路

图1 密码体制

一个密码系统,通常简称为密码体制(Cryptosystem),由五部分组成(如图1.4所示):

(1)明文空间M,它是全体明文的集合; (2)密文空间C,它是全体密文的集合;

(3)密钥空间K,它是全体密钥的集合。其中每 一个密钥K均由加密密钥Ke和解密密钥Kd组成,即K=? Ke, Kd ?;

3

密码学课程设计

(4)加密算法E,它是一组由M到C的加密变换; (5)解密算法D,它是一组由C到M的解密变换。

如果一个密码体制由其中一个很容易推出另一个,则称为单密钥密码体制或对称密码体制或传统密码体制。而HILL密码体制就是一个典型的例子: Hill加密算法的基本思想是将l个明文字母通过线性变换.将它们转换为l个密文字母。解密只要作一次逆变换就可以了。密钥就是变换矩阵本身,即 :

M=m1 m2 … ml, Ek ( M )=c1 c2 … cl, 其中

c1=k11 m1+k12 m2+… +k1l ml c2=k21 m1+k22 m2+… +k2l ml ……

ct=kl1 m1+kl2 m2+… +kll ml 或写成

C=KM mod n 其中

K=( ki j )l×l

M=K ?1 C mod n

例如,l=4,n=26时有:

11

22

ll

?8 6 9 10? ?23 20 5 1???6 9 5 10? ??? 2 11 18 1K?-1? K???5 8 4 9?? 2 20 6 25? ????10 6 11 425 2 22 25?? ??

?8 6 9 10??23 20 5 1??339 416 312 364? ???????6 9 5 10?? 2 11 18 1???416 339 442 390? ?5 8 4 9?? 2 20 6 25??364 286 339 338??????? ?10 6 11 4??25 2 22 25??364 494 332 131??1 0 0 0?

??0 1 0 0?? ?mod26?0 0 0 1??? 0 0 0 1?c?c?C????c??m?????,M??m?????????m???4

密码学课程设计

若采用从A到Z的26个字母依顺序从0到25编号,M可分别得数字化后4个数字:7,8,11,11,这样 已知M=Hill 因此C=YTIX。

在了解了相应的基础后,可以将程序的设计分为以下几个模块:

1)明文输入模块;

可以简单的设置一个数组存储输入的明文,并定义相应的操作管理明文的输入过程。 2)密钥生成模块;

为了得到密钥,首先可以定义一个二维数组,调用随机数生成函数,结合模26下的模逆算法以及判断矩阵是否可逆,不可逆则重新调用随机生成函数生成密钥。 3)加密运算模块;

加密的本质是对密钥矩阵的n行与明文列相乘后求和得到n个密文,注意到是在模26下的乘法,也应该对结果做相应的处理。 4)密文输出模块;

定义相应的操作和机制,使得密文的输出更合理顺畅。

1.3 实验代码如下: #include #include #include #include using namespace std; const int M=5; int gcd(int a,int b) { if(a%b==0)return b; return gcd(b,a%b); }

string encryption_or_decryption(int a1,int a2 ,string s1,int a[M][M]) { string s2; int Plaintext[M];//明文数组 int ciphertext[M]={0};//密文数组 for(int i=0;i

5


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

下一篇:苏教版小学语文三年级下册系统总复习(31页_超实用)

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

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