密码学课程设计报告(3)

来源:网络收集 时间:2025-06-21 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xuecool-com或QQ:370150219 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

密码学课程设计

}

goto next1;

1.4 关键算法分析

(1)如何快速求两个数的公约数。 int gcd(int a,int b) { if(a%b==0)return b; return gcd(b,a%b); }

(2)如何执行加密和解密运算。

//下面是加密或者解密函数,需要4个参数:a1 ,a2, s1,密钥数组。 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

return s2;

}

(3)求行列式的值。

//下面这个函数是用来计算行列式的,计算行列式的目的是为了判断矩阵是否可逆。

int DET(int n ,int c [M][M]) {

if(n==2)return c[0][0]*c[1][1]-c[0][1]*c[1][0];

int i_1,j_1,d; //d为数组b的行 int b[M][M]; //用于存放余子式

11

密码学课程设计

int p=0,q=0; int sum=0;

for(i_1=0;i_1

for(d=0;d

if(d

for(j_1=0;j_1

b[d][j_1]=c[d+p][j_1+1]; } }

if(i_1%2==0) q=1; else q=-1;

sum=sum+c[i_1][0]*q*DET(n-1,b); }

return sum; }

1.5 运行结果分析

如下是我的程序运行时的界面:

图1-2

让电脑随机生成1到100的整数,随机生成的矩阵不一定能成为秘钥,根据条件 gcd(det K,26)=1进行判断,如图2:

12

密码学课程设计

图1-3

尝试成功后使用下面矩阵为秘钥矩阵:

图1-4

执行更改秘钥功能,如图5:

图 1-5

输入1 加密,输入2解密,如下图1-6:

13

密码学课程设计

图1-6

图7

由图7可知,明文和密文经加密和解密后前后相同,说明程序运行正确。

1.6 安全性分析

根据相应的加密原理可知:希尔密码加密矩阵的阶数越大,破译的难度越大。而希尔密码在一定程度上克服了传统密码在统计学规律上的不足,能够抵御一般的频率分析法但是其基于线性变换的安全性是极其脆弱的,攻击者截取一定数目的明文和密文对就可以通过线性运算得到相应的密钥。另外,在计算机算力飞速发展的今天,通过遍历希尔密码的密钥空间破解相应的密钥已经是很简单的事了。

实验二 MD5算法的实现

2.1 MD5算法概述

MD5、SHA-1是当前国际通行的两大标准 MD5由国际著名密码学家、图灵奖获得者兼公钥加密算法RSA的创始人Rivest设计,SHA-1由美国制定密码算法的标准机构—美国国家标准技术研究院(NIST)与美国国家安全局(NSA)设计两大算法是数字签名及许多其它密码应用领域的关键技术,广泛应用于金融、证券等电子商务领域 SHA-1早在1994年便为美国政府采纳,目前是美国政府广泛应用的Hash函数密码算法。

14

密码学课程设计

对MD5算法简要的叙述可以为:MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。 MD5的典型应用是对一段信息(Message)产生信息摘要(Message-Digest),以防止被篡改。比如,在UNIX下有很多软件在下载的时候都有一个文件名相同,文件扩展名为.md5的文件,在这个文件中通常只有一行文本,大致结构如:

MD5 (tanajiya.tar.gz) = 0ca175b9c0f726a831d895e269332461

这就是tanajiya.tar.gz文件的数字签名。MD5将整个文件当作一个大文本信息,通过其不可逆的字符串变换算法,产生了这个唯一的MD5信息摘要。如果在以后传播这个文件的过程中,无论文件的内容发生了任何形式的改变(包括人为修改或者下载过程中线路不稳定引起的传输错误等),只要你对这个文件重新计算MD5时就会发现信息摘要不相同,由此可以确定你得到的只是一个不正确的文件。如果再有一个第三方的认证机构,用MD5还可以防止文件作者的\抵赖\,这就是所谓的数字签名应用。

MD5还广泛用于加密和解密技术上。比如在UNIX系统中用户的密码就是以MD5(或其它类似的算法)经加密后存储在文件系统中。当用户登录的时候,系统把用户输入的密码计算成MD5值,然后再去和保存在文件系统中的MD5值进行比较,进而确定输入的密码是否正确。通过这样的步骤,系统在并不知道用户密码的明码的情况下就可以确定用户登录系统的合法性。这不但可以避免用户的密码被具有系统管理员权限的用户知道,而且还在一定程度上增加了密码被破解的难度。

2.2算法原理与设计思路

在MD5算法中,首先需要对信息进行填充,使其位长对512求余的结果等于448。因此,信息的位长(Bits Length)将被扩展至N*512+448,N为一个非负整数,N可以是零。填充的方法如下,在信息的后面填充一个1和无数个0,直到满足上面的条件时才停止用0对信息的填充。然后,在这个结果后面附加一个以64位二进制表示的填充前信息长度。经过这两步的处理,现在的信息的位长=N*512+448+64=(N+1)*512,即长度恰好是512的整数倍。这样做的原因是为满足后面处理中对信息长度的要求。总体流程如下图所示,

表示第i个分组,每次的运算都由前一轮的128位结果值和第i块512bit值进行运算。初始的128位值为初试链接变量,这些参数用于第一轮的运算,以大端字节序来表示,他们分别为:A=0x01234567,B=0x89ABCDEF,C=0xFEDCBA98,D=0x76543210。

15

百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库密码学课程设计报告(3)在线全文阅读。

密码学课程设计报告(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.70edu.com/wenku/642591.html(转载请注明文章来源)
Copyright © 2020-2025 70教育网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:370150219 邮箱:370150219@qq.com
苏ICP备16052595号-17
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:7 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219