《现代密码学》实验报告
年级、专业、班级实验题目实验时间实验成绩201411202012级计算机科学与技术1班姓名陈康裕
对称密码算法DES
实验地点实验性质主教0410
■验证性□设计性□综合性
教师评价:
□算法实验过程正确;□实验结果正确;其他:评价教师签名:□源程序实验内容提交□语法、语义正确;□程序结构实验步骤合理;□报告规范;
一、
实验原理和目的
DES算法属于分组加密算法,即在明文加密和密文解密过程中,信息都是按照固定长度分组后进行处理的。混淆和扩散是它采用的两个最重要的安全特性。混淆是指通过密码算法使明文和密文以及密钥的关系非常复杂,无法从数学上描述或者统计。扩散是指明文和密钥中的每一位信息的变动,都会影响到密文中许多位信息的变动,从而隐藏统计上的特性,增加密码的安全。DES算法将明文分成64位大小的众多数据块,即分组长度为64位。同时用56位密钥对64位明文信息加密,最终形成64位的密文。需要注意的地方是掌握DES算法的16轮加、解密流程以及子密钥的产生流程。通过用DES算法对实际的数据进行加密和解密来深刻了解DES的运行原理。
报告创建时间:
f二、实验项目内容1、算法分析(1)写出DES算法的16轮加、解密流程;(2)写出子密钥的产生流程;2、下载DES算法的实现程序,并调用其程序对一个文件进行加密和解密,提交程序代码和执行结果。3、调用下载的DES算法的实现程序对输入的十六进制数加密,比较输入和输出,当改变一个位时比较输出的变化,并说明原因。三、实验过程或算法(源程序)1、(1)DES算法的16轮加、解密流程:
加密流程
解密流程
(2)子密钥的产生流程:
f子密钥产生流程
2、利用下列程序实现一个文件的加密和解密:(程序的主要代码,整个程序见附件)密钥置换1pc1i
tDES_PC1_Tra
sformElemTypekey64ElemTypetempbts56i
tc
tforc
t0c
t56c
ttempbtsc
tkeyPC_1c
tretur
0密钥置换2pc2i
tDES_PC2_Tra
sformElemTypekey56ElemTypetempbts48i
tc
tforc
t0c
t48c
ttempbtsc
tkeyPC_2c
tretur
0E扩展置换i
tDES_E_Tra
sformElemTypedata48这里data两种用处故为48位极人臣i
tc
tElemTypetemp48forc
t0c
t48c
ttempc
tdataE_Tablec
t这里data下标最高为32
fmemcpydatatemp48retur
0P置换i
tDES_P_Tra
sformElemTypedata32i
tc
tElemTypetemp32forc
t0c
t32c
ttempc
tdataP_Tablec
tmemcpydatatemp32retur
0循环左移左右两边同时循环左r