实验一 古典密码算法
实验原理
古典密码算法历史上曾被广泛应用,大都比较简单,使用手工和机械操作来实现加密和
解密。它的主要应用对象是文字信息,利用密码算法实现文字信息的加密和解密。下面介绍
两种常见的具有代表性的古典密码算法,以帮助读者对密码算法建立一个初步的印象。
⒈ 替换密码
替换密码算法的原理是使用替代法进行加密,就是将明文中的字符用其它字符替代后形成密文。例如明文字母a、b、c、d,用D、E、F、G做对应替换后形成密文。
替换密码包括多种类型,如单表替代密码、多明码替代密码、多字母替代密码、多表替代密码等。下面我们介绍一种典型的单表替代密码—凯撒密码,又叫循环移位密码。它的加密方法就是将明文中的每个字母用此字符在字母表中后面第k个字母替代。它的加密过程可以表示为下面的函数:
Ek (m)=(m+k) mod n
其中,m为明文字母在字母表中的位置数;n为字母表中的字母个数;k为密钥;Ek (m)为密文字母在字母表中对应的位置数。
例如,对于明文字母H,其在字母表中的位置数为8,设k=4,则按照上式计算出来的密文L,计算过程如下:
E(8)=(m+k)mod n=(8+4)mod 26=12=L
⒉ 置换密码
置换密码算法的原理是不改变明文字符,只将字符在明文中的排列顺序改变,从而实现明文信息的加密。置换密码有时又称为换位密码。
矩阵换位法是实现置换密码的一种常用方法。它将明文中的字母按照给定的顺序安排在一个矩阵中,然后用根据密钥提供的顺序重新组合矩阵中的字母,从而形成密文。
例如,明文为attack begins at five ,密钥为cipher,将明文按照每行6个字母的形式排在矩阵中,形成如下形式:
a t t a c k
b e g i n s
a t f I v e
根据密钥 cipher 中各字母在字母表中出现的先后顺序,给定一个置换:
1 2 3 4 5 6
1 4 5 3 2 6
f =
根据上面的置换,将原有矩阵中的字母按照第1列、第4列、第5列、第3列、第2列、第6列的顺序排列、则有下面的形式:
a a c t t k
b i n g e s
a i v f t e
从而得到密文:abaaiicnvtgftetkse
其解密的过程是根据密钥的字母数作为列数,将密文按照列数、行的顺序写出,再根据由密钥给出的矩阵置换产生新的矩阵,从而恢复明文。
二、实验目的
通过编程实现替代密码算法和置换密码算法,加深对古典密码体制的了解,为深入学习密码学奠定基础。
三、实验环境
运行 Windows 或Linux 操作系统的PC机,具有gcc(Linux)、VC(Windows)等C语言编译环境。
四、实验内容和步骤
1. 根据实
华工信息安全实验报告实验一 来自淘豆网m.daumloan.com转载请标明出处.