哈尔滨工程大学实验报告实验名称:古典密码算法班级:学号:姓名:实验时间:2014年4月成绩:指导教师:实验室名称:哈尔滨工程大学实验室与资产管理处制一、实验名称古典密码算法二、实验目的通过编程实现经典的代替密码算法和置换密码,包括移位密码、维吉尼亚密码、周期置换密码、列置换密码,加深对代替技术的了解,为现代分组密码实验奠定基础
三、实验环境(实验所使用的器件、仪器设备名称及规格)运行Windows或Linux操作系统的PC机,具有gcc(Linux)、VC(Windows)等C语言编译环境
四、实验任务及其要求(1)根据实验原理部分对移位密码的介绍,自己创建明文信息,并选择一个密钥,编写移位密码的实现程序,实现加密和解密操作
(2)根据实验原理部分对维吉尼亚密码的介绍,自己创建明文信息,并选择一个密钥,编写维吉尼亚密码的实现程序,实现加密和解密操作
(3)根据实验原理部分对周期置换密码的介绍,自己创建明文信息,并选择一个密钥,编写周期置换密码的实现程序,实现加密和解密操作
(4)根据实验原理部分对列置换密码的介绍,自己创建明文信息,并选择一个密钥,编写列置换密码的实现程序,实现加密和解密操作
五、实验设计(包括原理图、真值表、分析及简化过程、卡诺图、源代码等)1.移位密码移位密码(ShiftCipher)是一种典型的单表替代密码,也称为加法密码
移位密码的加密方法就是将明文中的每个字母用其在字母表后面的第k个字母替代,它的加密过程可以表示为:c=(m+k)modn其中,m为明文字母在字母表中的位置数;n为字母表中的字母总数;k为密钥;c为密文字母在字母表中对应的位置数
相应的,移位密码的解密过程可以表示为:m=(c-k)modn移位密码的一个典型代表就是凯撒密码(CeaserCipher),它是k=3时的移位密码
使用英文字母表的撒密码的加(解)密可以表示为:m=(c+3)