一、实验名称
古典密码算法
二、实验目的及要求
1.实验目的:
通过编程实现替代密码算法和置换密码算法,加深对古典密码体制的了解。
2.实验要求:
根据实验内容完成任务,密码算法的加密和解密过程,要求加密过程的明文和密钥、解密过程的密文和密钥由用户手动任意输入,并且以包含本人姓名的字符串作为明文输入,凯撒密码的密钥数字为本人学号的后两位,矩阵换位密码的密钥为下一学号学生的姓名去重复全凭,分别演示加密算法和解密算法的执行结果。
三、实验环境
Windows10,Pycharm
四、实验设计
内容要求:
- 实验原理与内容
古典密码算法曾被广泛应用, 大都比较简单, 使用手工和机械操作来实现加密和解密。
(1)替代密码
替代密码算法的原理是使用替代法进行加密,就是对明文中的字符用其他字符替代后形 成密文。例如, 明文字母 a, b, c, d, 用 d, e, f , g 做对应替换后形成密文。
替代密码包括多种类型, 如单表替代密码,多表替代密码,多字母替代密码等。 试编程 实现一种典型的单表替代密码—凯撒(Caesar) 密码。它的加密方法是将明文中的每个字母 用此字符在字母表中后面的第 k 个字母替代。它的加密过程可以表示为下面的函数:
E(k)=(m+k)modn
其中, m 为明文字母在字母表中的位置数,n 为字母表中的字母个数, k 为密钥, E(k) 为密文字母在字母表中对应的位置数。
解密过程类推。
(2)置换密码
置换密码算法的原理是不改变明文字符, 只将字符在明文中的排列顺序改变,从而实现明文信息的加密。置换密码也叫换位密码。
试编程实现矩阵换位密码。它的加密方法是将明文中的字母按照给定的顺序安排在一个 矩阵中,然后用根据密钥提供的顺序重新组合矩阵