实验一、传统密码算法
一、实验目的及任务
通过编程实现替代密码算法和置换密码算法,加深对古典密码体制的了解,为深入学习密码学奠定基础
二、实验环境
运行Windows操作系统的PC机,具有C语言编译环境。
三、实验原理
古典密码算法历史上曾被广泛应用,大都比较简单,使用手工和机械操作来实现加密和解密.它的主要应用对象是文字信息,利用密码算法实现文字信息的加密和解密.下面介绍两种常见的具有代表性的古典密码算法,以帮助读者对密码算法建立一个初步的印象.
1. 替代密码
替代密码算法的原理是使用替代法进行加密,就是将明文中的字符用其它字符替代后形成密文.例如:明文字母a,b,c,d ,用D,E,F,G做对应替换后形成密文.
替代密码包括多种类型,如单表替代密码,多明码替代密码,多字母替代密码,多表替代密码——.
1)下面我们先介绍一种典型的单表替代密码,恺撒(caesar)密码,又叫循环移位密码.它的加密方法,就是将明文中的每个字母用此字符在字母表中后面第k个字母替代.它的加密过程可以表示为下面的函数:
E(m)=(m+k) mod n
其中:m为明文字母在字母表中的位置数;n为字母表中的字母个数;k为密钥;E(m)为密文字母在字母表中对应的位置数.
例如,对于明文字母H,其在字母表中的位置数为7,设k=4,则按照上式计算出来的密文为L:
E(7) = (m+k) mod n = (7+4) mod 26 = 11 = L
2)下面是一种典型的多表替代密码:维吉尼亚密码,它选择一个词组作为密钥,密钥中每个字母用来确定一个代换表,每个密钥字母用来加密一个明文字母。例如密钥字母为a,明文字母为c,则密文字母为0+2(mod26)=2,也就是c。直到所有的密钥字母用完,后再从头开始,使用第一个密钥字母加密。也就是说,密钥循环使用。
例:明文为attack begins at five,密钥为cipher,
attack begins at five 明文
+ cipher cipher ci pher 密钥
———————————————-
= cbihgb dmvprj cb upzv 密文
去除空格后为cbihgbdmvprjcbupzv