密码学实验报告模板总结模板计划模板.doc
实验报告_密码学

信息安全实验报告学号:学生姓名:班级:实验三密码学实验一、古典密码算法实验一、实验目的通过编程实现替代密码算法和置换密码算法,加深对古典密码体制的了解,为深入学习密码学奠定基础。
二、编译环境运行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其解密的过程是根据密钥的字母数作为列数,将密文按照列、行的顺序写出,再根据由密钥给出的矩阵置换产生新的矩阵,从而恢复明文。
现代密码学实验报告

现代密码学实验报告学生姓名学号专业班级指导教师学院完成时间实验一对称密码算法实验[实验目的]1.掌握密码学中经典的对称密码算法DES、AES、RC4的算法原理。
2.掌握DES、AES、RC4的算法流程和实现方法。
[实验内容]1. 分析DES、AES、RC4、SHA的实现过程。
2. 用程序设计语言将算法过程编程实现。
3. 完成字符串数据的加密运算和解密运算输入明文:Idolikethisbook输入密钥:cryption[实验步骤]一、DES算法1、DES算法及原理DES算法为密码体制中的对称密码体制,又被称为美国数据加密标准,是1972年美国IBM公司研制的对称密码体制加密算法。
明文按64位进行分组,密钥长64位,密钥事实上是56位参与DES运算(第8、16、24、32、40、48、56、64位是校验位,使得每个密钥都有奇数个1)分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。
2、DES算法加解密过程(1) DES算法加密过程如下:a.初始置换。
DES的第一阶段包括64位分组的置换,改变每个分组中位的顺序。
术语置换使用其严格的数学意义;只改变了顺序。
这64位数据现在被分成两半:L0(左半部分)和R0(右半部分)。
下标0说明是原始的数据。
在DES算法第二阶段的每次循环后,这些下标加1。
b.循环移位(16次)一种根据密钥,并且依赖于表格的算法。
这种操作通常被称为数据移位。
这个算法要重复16次,但由于每次移位都使用密钥的不同子分组,因此每次移位的操作各不相同。
密钥的子分组由另一组表格和表格的移位算法来确定。
在每次循环以后,L(左半部分)和R(右半部分)的下标依次加一。
第16次循环的结果被称为预输出。
c.逆置换DES的最后一个阶段包括64位分组的置换,改变每个分组中位的顺序,这与第1阶段的操作类似。
这次置换的输出结果就是密文。
(2)解密过程DES的解密过程和加密过程相同,只是在解密过程中将子密钥的使用顺序颠倒。
密码锁实验报告doc

密码锁实验报告篇一:电子密码锁实验报告密码锁实验报告一,实验目的1. 学习8051定时器时间计时处理、跑马灯、按键扫描及LED数码管显示的设计方法。
2. 设计任务及要求利用实验平台上8个LED数码管,按键,跑马灯实现设置密码,密码锁的功能二,实验要求基本要求:1:用4×4矩阵键盘组成0-9数字键及确认键和删除键。
2:可以自行设定或删除8位密码。
3:用5位数码管组成显示电路提示信息,当输入密码时,只显示“8.”,当密码位数输入完毕按下确认键时,对输入的密码与设定的密码进行比较,若密码正确,则门开,此处用绿色led发光二极管亮一秒钟做为提示,若密码不正确,禁止按键输入3秒,同时用红色led发光二极管亮三秒钟做为提示;若在3秒之内仍有按键按下,则禁止按键输入3秒被重新禁止。
三,实验基本原理利用单片机定时器完成计时功能,定时器0计时中断程序每隔0.05s中断一次并当作一个计数,设定定时1秒的中断计数初值为20。
为了将时间在LED数码管上显示,可采用静态显示法和动态显示法,由于静态显示法需要译码器,数据锁存器等较多硬件,可采用动态显示法实现LED显示,通过对每位数码管的依次扫描,使对应数码管亮,同时向该数码管送对应的字码,使其显示数字。
由于数码管扫描周期很短,由于人眼的视觉暂留效应,使数码管看起来总是亮的,从而实现了各种显示。
四,实验设计分析针对要实现的功能,采用AT89S51单片机进行设计,AT89S51 单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程(ISP)的可反复擦写1000次的Flash 只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS- 51指令系统及80C51引脚结构。
这样,既能做到经济合理又能实现预期的功能。
1在程序方面,采用分块设计的方法,这样既减小了编程难度、使程序易于理解,又能便于添加各项功能。
程序可分为闹钟的声音程序、时间显示程序、日期显示程序,秒表显示程序,时间调整程序、闹钟调整程序、定时调整程序,延时程序等。
现代密码算法实验报告(3篇)

第1篇一、实验目的1. 了解现代密码学的基本原理和数论基础知识;2. 掌握非对称密码体制的著名代表RSA加密算法的工作原理和流程;3. 设计实现一个简单的密钥系统;4. 掌握常用加密算法AES和DES的原理及实现。
二、实验内容1. RSA加密算法实验2. AES加密算法实验3. DES加密算法实验三、实验原理1. RSA加密算法RSA算法是一种非对称加密算法,由罗纳德·李维斯特、阿迪·沙米尔和伦纳德·阿德曼三位密码学家于1977年提出。
其基本原理是选择两个大质数p和q,计算它们的乘积n=pq,并计算欧拉函数φ(n)=(p-1)(q-1)。
选择一个整数e,满足1<e<φ(n)且e与φ(n)互质。
计算e关于φ(n)的模逆元d。
公开密钥为(e,n),私有密钥为(d,n)。
加密过程为C=Me mod n,解密过程为M=Cd mod n。
2. AES加密算法AES(Advanced Encryption Standard)是一种分组加密算法,采用128位分组大小和128、192或256位密钥长度。
AES算法主要分为四个阶段:初始轮、密钥扩展、中间轮和最终轮。
每个轮包括字节替换、行移位、列混淆和轮密钥加。
3. DES加密算法DES(Data Encryption Standard)是一种分组加密算法,采用64位分组大小和56位密钥长度。
DES算法主要分为16轮,每轮包括置换、置换-置换、S盒替换和密钥加。
四、实验步骤及内容1. RSA加密算法实验(1)选择两个大质数p和q,计算n=pq和φ(n)=(p-1)(q-1);(2)选择一个整数e,满足1<e<φ(n)且e与φ(n)互质,计算e关于φ(n)的模逆元d;(3)生成公开密钥(e,n)和私有密钥(d,n);(4)用公钥对明文进行加密,用私钥对密文进行解密。
2. AES加密算法实验(1)选择一个128、192或256位密钥;(2)初始化初始轮密钥;(3)进行16轮加密操作,包括字节替换、行移位、列混淆和轮密钥加;(4)输出加密后的密文。
密码学实验报告

密码学实验报告中文汉字的密码化实验1. 实验简介本实验旨在通过对中文汉字的密码化实验,探究密码学在信息安全领域中的应用。
在本实验中,我们将使用替换密码技术对中文汉字进行加密和解密,并评估其安全性和实用性。
2. 实验步骤2.1 选择密钥在开始实验之前,我们需要选择一个密钥。
密钥是密码算法的关键,它用于对明文进行加密和解密。
在本实验中,我们选择一个包含所有中文汉字的密钥表。
该密钥表将用于替换明文中的汉字,从而实现密码化。
2.2 加密过程加密过程涉及将明文中的汉字替换为对应的密钥表中的汉字。
我们将使用一种称为替换密码的技术来实现加密。
具体步骤如下:步骤一:准备明文 - 选择一段中文汉字作为明文。
步骤二:选择密钥表 - 使用预先准备好的密钥表,其中包含了所有中文汉字的替换映射关系。
步骤三:替换汉字 - 将明文中的每个汉字根据密钥表中的映射进行替换。
步骤四:生成密文 - 将替换后的汉字按照顺序组成密文。
2.3 解密过程解密过程即将密文还原为明文。
在我们的实验中,解密过程与加密过程密切相关,因为它需要使用相同的密钥表进行替换。
具体步骤如下:步骤一:准备密文 - 选择加密过程生成的密文作为输入。
步骤二:选择密钥表 - 使用和加密过程相同的密钥表。
步骤三:替换汉字 - 将密文中的每个汉字根据密钥表中的映射进行替换。
步骤四:生成明文 - 将替换后的汉字按照顺序组成明文。
3. 实验结果与讨论在本实验中,我们选择了一段中文汉字作为明文,并使用已准备好的密钥表进行加密和解密操作。
经过多次实验,我们得到了一些实验结果和相应的讨论。
3.1 加密结果经过加密过程,我们得到了一段由密文组成的结果。
加密后的密文将替换明文中的汉字,使其具有一定的保密性。
然而,我们也发现了一些问题:问题一:密文长度增加 - 密文的长度通常会大于明文的长度,这可能导致在传输和存储过程中的一些问题。
问题二:密钥表可预测 - 由于我们使用了固定的密钥表,攻击者有可能通过分析密文和明文之间的关系来推断出密钥表的内容。
密码学算法设计与实现的实验报告

密码学算法设计与实现的实验报告实验报告一、实验目的本实验的目的是设计和实现一个密码学算法,加深对密码学基本知识的理解,并掌握密码学算法设计与实现的方法。
二、实验原理本实验选取的密码学算法是AES(Advanced Encryption Standard)算法,该算法是一种对称加密算法,具有高度的安全性和广泛的应用。
AES算法基于替代、置换和混合技术,用于对数据进行加密和解密。
实现AES算法的关键是实现四个基本操作:字节替代(SubBytes)、行移位(ShiftRows)、列混淆(MixColumns)和轮密钥加(AddRoundKey)。
其中字节替代和行移位不涉及密钥,可以使用固定的S-box和位移表进行计算;列混淆和轮密钥加需要根据密钥来计算。
三、实验步骤1. 设计并实现AES算法的主函数,控制加密和解密操作;2. 实现字节替代和行移位操作的代码,并通过测试验证正确性;3. 实现列混淆和轮密钥加操作的代码,并通过测试验证正确性;4. 设计并实现密钥扩展函数,用于生成轮密钥;5. 实现AES算法的加密函数和解密函数,通过测试验证正确性;6. 验证AES算法对数据进行加密和解密的正确性和安全性。
四、实验结果经过实验,AES算法实现的加密和解密功能正常,能够对数据进行可靠的保护。
验证加密函数和解密函数的正确性时,采用了多组不同的密钥和明文进行测试,结果都能够正确地实现加密和解密的逆操作。
五、实验心得体会通过本实验,我深入理解了AES算法的工作原理和实现方法,学会了使用替代、置换和混合技术对数据进行加密和解密。
在实验中,我不仅学习了密码学的基本知识,还锻炼了编程和算法设计的能力。
在实现算法的过程中,我特别注重代码的可读性和可维护性,采用了模块化和函数化的设计方法,使得代码逻辑清晰,易于理解和修改。
总之,本实验对于深入学习密码学和加密算法具有重要意义,通过动手实践,我不仅理解了密码学的基本原理,还培养了自主学习和解决问题的能力。
密码学实验报告

密码学实验报告摘要:本实验旨在通过实践掌握基本密码学算法的原理和应用。
在本次实验中我们完成了Caesar密码、仿射密码、VIC密码和Hill密码的加密和解密过程,并进行了相应的分析和评价。
实验结果表明,不同的密码算法有各自的优缺点,应根据具体需求进行选择。
一、实验目的1.了解基本密码学算法的原理和应用。
2.通过实践掌握Caesar密码、仿射密码、VIC密码和Hill密码的加密和解密过程。
3.分析和评价各个密码算法的优缺点。
二、实验原理Caesar密码:是一种非常简单的单字母替换密码。
按照字母表上旋转的位置,每个字母都用它在字母表中的下一个字母替代。
仿射密码:通过将明文中的每个字母转换为另一个字母,实现加密。
明文中的每个字母通过使用一组固定的数学函数进行加密。
随机选择这些函数,并按正确的顺序应用它们。
VIC密码:将某些字母替换为其他字母组合的运算称为置换。
VIC密码使用10个钥匙,其中每个钥匙是一个置换。
通过使用不同的键,VIC密码可以很容易地产生四十亿多个不同的密码。
Hill密码:是一种基于线性代数理论的密码算法。
对于一个给定的矩阵α,Hill密码通过将明文划分为每个字母,然后将其与矩阵α乘法来加密,最后将结果映射回字母表中的字母。
三、实验过程1.实现Caesar密码的加密和解密。
2.实现仿射密码的加密和解密。
3.实现VIC密码的加密和解密。
4.实现Hill密码的加密和解密。
5.对各个密码算法进行分析和评价。
四、实验结果1.在Caesar密码中,明文是将每个字母按照一定的步长向右或向左移动来进行加密。
由于其简单性,Caesar密码的加密和解密都很容易,但安全性较低。
2.仿射密码是Caesar密码的扩展版本。
通过随机选择两个数字,仿射密码在加密的过程中使用模运算和线性函数组合对明文进行加密。
由于消息加密和解密都使用数学功能进行计算,因此密钥空间大于Caesar,也比较安全。
3.VIC密码使用多个置换键(通常为10),交替使用它们来完成加密和解密过程。
实验吧_密码学实验报告(3篇)

第1篇一、实验背景密码学是一门研究信息加密与解密的学科,它广泛应用于信息安全领域。
为了更好地理解密码学的基本原理和算法,我们选择了实验吧平台上的密码学实验进行学习。
本次实验旨在通过实际操作,加深对古典密码、对称密码和不对称密码等密码学基本概念的理解,提高密码学应用能力。
二、实验目的1. 理解并掌握古典密码的基本原理和算法;2. 掌握对称密码和不对称密码的基本原理和算法;3. 通过实验操作,提高密码学应用能力;4. 培养团队协作和解决问题的能力。
三、实验内容1. 古典密码实验(1)仿射密码原理:仿射密码是一种单字母替换密码,加密公式为:C = (aP + b) mod 26,其中C为密文字母,P为明文字母,a和b为密钥。
操作步骤:1)编写加密函数encrypt,实现仿射密码加密;2)编写解密函数decrypt,实现仿射密码解密;3)测试加密和解密函数,验证其正确性。
(2)单表代替密码原理:单表代替密码是一种将明文字符映射到密文字符的替换密码。
操作步骤:1)编写加密函数subencrypt,实现单表代替密码加密;2)编写解密函数subdecrypt,实现单表代替密码解密;3)测试加密和解密函数,验证其正确性。
(3)维吉尼亚密码原理:维吉尼亚密码是一种多字母替换密码,加密公式为:C = (P + K[i]) mod 26,其中C为密文字母,P为明文字母,K为密钥,i为索引。
操作步骤:1)编写加密函数vigenereencrypt,实现维吉尼亚密码加密;2)编写解密函数vigeneredecrypt,实现维吉尼亚密码解密;3)测试加密和解密函数,验证其正确性。
2. 对称密码实验(1)DES加密算法原理:DES(Data Encryption Standard)是一种分组加密算法,采用56位密钥,64位分组。
操作步骤:1)编写DES加密函数desencrypt,实现DES加密;2)编写DES解密函数desdecrypt,实现DES解密;3)测试加密和解密函数,验证其正确性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
密码学应用与实践课程实验报告
实验 1:实现 DES密码体制
一、实验目的
1.编写程序实现 DES的加、解
密:1)编程构造 DES的密钥;
2)应用上述获得的密钥将一段英文或文件进行加、解密。
2.用 DES算法实现口令的安全
二、实验内容
1.DES原理
DES综合运用了置换,代换,移位多种密码技术,是一种乘积密码。
在算法结构上采用迭代
结构,从而使其结构清晰,调理清楚,算法为对合运算,便于实现,运行速度快。
DES使用了初始置换IP 和 IP-1 各一次(相应的置换看算法描述图表)置换P16 次,安排使用这 3 个置换的目的是把数据彻底打乱重排。
选择置换 E 一方面把数据打乱重排,另一方面把32 位输入扩展为48 位,算法中除了S- 盒是非线性变换外,其余变换均为显示变换,所以保密
的关键是选择S- 盒。
符合以下 3 条准则:
(1)对任何一个 S- 盒而言,没有任何线性方程式等价于此S-盒的输出输入关系,即是S- 盒是非线性函数。
(2)改变 s- 盒的任何一位输入,都会导致两位以上的输出改变,即满足" 雪崩效应 " 。
(3)当固定某一个位的输入时,S- 盒的 4 个出位之间,其中0 和 1 的个数之差小。
这个准
则的本质是数据压缩,把四位输入压缩为 4 位输出。
选择 S-盒函数的输入中任意改变数位,
其输出至少变化两位。
因为算法中使用了16 次迭代,大大提高了保密性。
2.DES算法由加密、解密和子密钥的生成三部分组成
1)加密
DES算法处理的数据对象是一组64 比特的明文串。
设该明文串为m=m1m2m64 (mi=0 或 1) 。
明文串经过64 比特的密钥K 来加密,最后生成长度为64 比特的密文E。
其加密过程图示如下:
2)子密钥的生成
64 比特的密钥生成16 个 48 比特的子密钥。
其生成过程见图:
3)解密
DES的解密过程和DES的加密过程完全类似,只不过将 16 圈的子密钥序列 K1,K2 K16 的顺序倒过来。
即第一圈用第 16 个子密钥 K16,第二圈用 K15,其余类推。
第一圈:
加密后的结果
L=R15, R=L15 ⊕f(R15,K16)⊕ f(R15,K16)=L15
同理 R15=L14⊕f(R14,K15), L15=R14。
同理类推:得L=R0, R=L0 。
3.密钥生成
(1)取得密钥
从用户处取得一个64 位 ( 本文如未特指,均指二进制位)) 长的密码key ,
去除 64 位密码中作为奇偶校验位的第 8、 16、 24、 32、 40、 48、 56、 64 位 , 剩下的 56 位作为有效输入密钥 .
(2)等分密钥
(3)密钥移位
DES算法的密钥是经
过16 次迭代得到一组密钥的, 把在 1.1.2 步中生成的 A,B 视为迭代
的起始密钥 . 比如在第 1 次迭代时密钥循环左移 1 位, 第 3 次迭代时密钥循环左移 2 位 . 第9 次迭代时密钥循环左移 1 位 , 第 14 次迭代时密钥循环左移 2 位 .
第一次迭代 :
A(1) = ?(1) A
B(1) = ?(1) B
第 i 次迭代 :
A(i) = ?(i) A(i-1)
B(i) = ?(i) B(i-1)
(4)密钥的选取
在( 3)步中第i 次迭代生成的两个28 位长的密钥为
把合并
按照表 4 所示 k 的第一位为56 位密钥的第14 位,k 的第 2 位为 56 位密钥的第17 位,...
,依此类推, k 的最后一位最后一位是56 位密钥的第32 位。
生成与进行第i 次迭代加密的数
据进行按位异或的48 位使用密钥 :
(5)迭代
DES算法密钥生成需要进行16 次迭代 , 在完成 16 次迭代前 , 循环执行( 3)( 4)步 . 最终
形成 16 套加密密钥 :key[0] , key[1] , key[2] , . key[14] , key[15] .
4.数据的加密操作
(1)取得数据
把明文数据分成 64 位的数据块,不够 64 位的数据块以适当的方式补足。
(2)数据扩展
第一次迭代以上步生成的newData 作为输入数据 , 第 i (i > 1) 次迭代以第 i-1 次的 64 位输出数据为输入数据, 把 64 位数据按位置等分成左右两部分:
保持 left不变,
把扩展后的48 位 right与第i次迭代生成的48 位加密密钥进行按位异或操作
形成一个新的48 位的 right.
(3)数据压缩
在1.2.3 步中形成了 48 位的 right 值 ,
需要把 48 位的 right值转换成32位的right值.把right视为由8个6位二进制块组成,
a,b .h 都是 6 位 , 强制转换成10 进制整数的值都不大于后, 在对应的表中根据转换后整数值取得对应位置的替代值, 完成了从48 位向 32 位数据的转换.
64 ,a,b h转成 10 进制整数每 6 位用一个 4 位替换这样就
有些资料中介绍 6 位转 4 位的实现方法与本文所采用的不同
相同的。
, 但殊途同归, 最终的结果是
(4)数据换位
把1.2.4 步形成的 32 位 right
根据表 8 进行转换 : 数据的原第 16 位换到第一位 , 原第 7 位换到第二位, ... ,依此类推 , 最后得到新的 32 位数据 .
(5)
把交换数据
right和left 按位异或后的值赋给right, 然后将本轮输入的原始right 值赋给
left.
(6)迭代
DES算法需要进行16 次迭代 , 在完成 16 次迭代前 , 把第 i-1次得到的的left 的值作为第i 次的输入数据, 重复 1.2.3~ 的步骤 , 但是有一点要记住: 在步骤 1.2.3 迭代要选择第i 次迭代生成的密钥与数据进行按位异或。
(7)数据整理
为保证加密和解密的对称性,DES 算法的前15 次迭代每完成一次迭代都要交换right 的值 , 第 16 次迭代不交换两者的数值.到此把32位的left和right合并成Data ,和 right 中第 i 次
left和64 位的
数据的原第40 位换到第一位 , 原第 8 位换到第二位,...,依此类推,最后的得到新的64位 .
Data 即为密文 .
5.数据的解密
数据解密的算法与加密算法相同, 区别在于 1.2.3步中和数据进行按位异或的密钥的使用顺
序不同 , 在加密中是按照第 i 次迭代就采用第 i 次迭代生成的密钥进行异或 , 而解密时第 i 次迭代就采用第 17-i 次迭代生成的密钥和数据进行异或。