现代密码学 古典密码实验报告
- 格式:docx
- 大小:42.48 KB
- 文档页数:13


信息安全实验报告学号:学生姓名:班级:实验三密码学实验一、古典密码算法实验一、实验目的通过编程实现替代密码算法和置换密码算法,加深对古典密码体制的了解,为深入学习密码学奠定基础。
二、编译环境运行windows 或linux 操作系统的PC 机,具有gcc(linux)、VC (windows)等C语言编译环境。
三、实验原理古典密码算法历史上曾被广泛应用,大都比较简单,使用手工和机械操作来实现加密和解密。
它的主要应用对象是文字信息,利用密码算法实现文字信息的加密和解密。
下面介绍两种常见的具有代表性的古典密码算法,以帮助读者对密码算法建立一个初步的印象。
1.替代密码替代密码算法的原理是使用替代法进行加密,就是将明文中的字符用其它字符替代后形成密文。
例如:明文字母a、b、c、d ,用D、E、F、G做对应替换后形成密文。
替代密码包括多种类型,如单表替代密码、多明码替代密码、多字母替代密码、多表替代密码等。
下面我们介绍一种典型的单表替代密码,恺撒(caesar)密码,又叫循环移位密码。
它的加密方法,就是将明文中的每个字母用此字符在字母表中后面第k个字母替代。
它的加密过程可以表示为下面的函数:E(m)=(m+k) mod n其中:m 为明文字母在字母表中的位置数;n 为字母表中的字母个数;k 为密钥;E(m)为密文字母在字母表中对应的位置数。
例如,对于明文字母H,其在字母表中的位置数为8,设k=4,则按照上式计算出来的密文为L:E(8) = (m+k) mod n = (8+4) mod 26 = 12 = L2.置换密码置换密码算法的原理是不改变明文字符,只将字符在明文中的排列顺序改变,从而实现明文信息的加密。
置换密码有时又称为换位密码。
矩阵换位法是实现置换密码的一种常用方法。
它将明文中的字母按照给的顺序安排在一个矩阵中,然后用根据密钥提供的顺序重新组合矩阵中字母,从而形成密文。
例如,明文为attack begins at five,密钥为cipher,将明文按照每行6 列的形式排在矩阵中,形成如下形式:a t t a c kb e g i n sa t f i v e根据密钥cipher中各字母在字母表中出现的先后顺序,给定一个置换:1 2 3 4 5 6f =1 4 5 32 6根据上面的置换,将原有矩阵中的字母按照第 1 列,第 4 列,第 5 列,第 3 列,第2列,第 6 列的顺序排列,则有下面形式:a a c t t kb i n g e sa I v f t e从而得到密文:abatgftetcnvaiikse其解密的过程是根据密钥的字母数作为列数,将密文按照列、行的顺序写出,再根据由密钥给出的矩阵置换产生新的矩阵,从而恢复明文。
现代密码学实验报告院系:班级:姓名:学号:前言密码学(Cryptology)是研究秘密通信的原理和破译秘密信息的方法的一门学科。
密码学的基本技术就是对数据进行一组可逆的数学变换,使未授权者不能理解它的真实含义.密码学包括密码编码学(Cryptography)和密码分析学(Cryptanalyst)两个既对立又统一的主要分支学科。
研究密码变化的规律并用之于编制密码以保护信息安全的科学,称为密码编码学.研究密码变化的规律并用之于密码以获取信息情报的科学,称为密码分析学,也叫密码破译学.密码学在信息安全中占有非常重要的地位,能够为信息安全提供关键理论与技术.密码学是一门古老而深奥的学问,按其发展进程,经历了古典密码和现代密码学两个阶段。
现代密码学(Modern Cryptology)通常被归类为理论数学的一个分支学科,主要以可靠的数学方法和理论为基础,为保证信息的机密性、完整性、可认证性、可控性、不可抵赖性等提供关键理论与技术。
DES加密算法的实现实验目的理解对称加密算法的原理和特点。
实验原理DES是一种分组加密算法,所谓分组加密算法就是对一定大小的明文或密文来做加密或解密动作。
而在DES这个加密系统中,每次加密或解密的分组大小均为64位,所以DES没有密文扩充的问题。
对大于64位的明文只要按每64位一组进行切割,而对小于64位的明文只要在后面补“0"即可。
另一方面,DES所用的加密或解密密钥也是64位大小,但因其中有8个位是用来作奇偶校验的,所以64位中真正起密钥作用的只有56位,密钥过短也是DES 最大的缺点。
DES加密与解密所用的算法除了子密钥的顺序不同外,其他部分完全相同。
实验环境运行Windows或Linux操作系统的PC机。
实验代码:—--————-——-——本实验采用56位密钥加密64位数据—-———--———--#include <stdlib.h〉#include 〈stdio.h〉#include "bool。
古典加密实验报告古典密码算法一、实验目的学习常见的古典密码学算法,通过编程实现替代密码算法和置换密码算法,加深对古典密码体制的了解,为深入学习密码学奠定基础。
二、实验要求分析替代密码算法和置换密码算法的功能需求,详细设计实现替代密码算法和置换密码算法的数据结构和流程,给出测试用例和测试步骤,得出测试和结论。
替代密码算法和置换密码算法的实现程序必须提供加密和解密两个接口:int encrypt()和int decrypt()。
当加密或者解密成功时返回CRYPT_OK,失败时返回CRYPT_ERROR。
三、实验原理古典密码算法曾被广泛应用,大都比较简单,使用手工和机械操作来实现加密和解密。
它的主要应用对象是文字信息,利用密码算法实现文字信息的加密和解密。
下面介绍两种算法:替代密码和置换密码。
1.替代密码的原理是使用替代法进行加密,就是将明文由其它的字母、数字或符合所代替后形成密文。
这里每个明文字母对应的密文字母可能是一个,也可能是多个。
接收者对密文进行逆向替换即可得到明文。
2.置换密码算法的原理是不改变明文字符,而是按照某一规则重新排列消息中的比特或字符顺序,才而实现明文信息的加密。
置换密码有时又称为换位密码。
我实验过程中替代密码是单表替换,用字母的下一个字母代替:for(j = 0; j < i; j++){if(96 < Mingwen[j]&&Mingwen[j] < 123){Miwen[j] = 'a' + (Mingwen[j] - 'a' + 1) % 26;}else{Miwen[j] = 'A' + (Mingwen[j] - 'A' + 1) % 26;}}置换加密主要是对密钥进行整理,还有就是动态分配二维数组,将明文和密文填充置的过程,换密码关键代码如下:for(a = 0; a < k; a++){for(b = 0; b < hang; b++){Miwen[i] = p[b][ord[j]];i++;}j++;}for(a = 0; a < 26; a++){for(b = 0; b < k; b++){if(key1[b] == alphatable[a]){ord[b] = ind++;}}}具体加密见下图:详细加密代码见附件。
实验一古典密码—单表代换【实验目的】理解代换密码的基本思想理解移位密码、仿射密码等算法的原理掌握上述各个算法的输入输出格式和密钥格式掌握上述各个算法的加解密过程和实现方法【实验原理】代换密码体制的一般定义为M=C=K=Z26,其中M为明文空间、C为密文空间、K为密钥空间、Z26为26个整数(对应26个英文字母)组成的空间;要求26个字母与模26的剩余类集合{0,1,2,…,25}建立一一对应的关系。
一、移位密码移位密码的加密实现上就是将26个英文字母向后循环移动k位,其加解密可分别表示为:c=E k(m)=m+k(mod 26)m=D k(c)=c-k(mod 26)其中,m、c、k是满足0≤m,c,k≤25的整数。
二、乘法密码乘法密码是通过对字母等间隔抽取以获得密文,其加解密可分别表示如下:-1c=mk(mod 26)m=ck(mod26)其中,m、c、k是满足0≤m,c,k≤25,且gcd(k,26)=1的整数。
三、仿射密码仿射密码的加密是一个线性变换,将移位密码和乘法密码相结合,其加解密可分别表示为:C=E a,b(m)=am+b(mod 26)M=D a,b(C)=a-1(c-b)(mod 26)其中:a、b是密钥,是满足0≤a,b≤25和gcd(a,26)=1的整数,即a和26互素;a-1的逆元,即a•a-1≡1 mod 2【实验环境】ISES客户端Microsoft CLR Debugger 2005或其它调试器【实验内容】通过运算器工具实现移位密码、乘法密码、仿射密码对各个算法的加解密进行扩展实验和算法跟踪【实验步骤】此处以移位密码为例说明,乘法密码、仿射密码可参照完成。
一、加解密计算(一) 加密(1) 参照实验原理,在明文栏输入所要加密的明文,在密钥栏输入相应的密钥,如下图1.1-2所示。
图 1.1-2(2) 点击“加密”按钮,在密文文本框内就会出现加密后的密文,如图1.1-3所示。