实验一 古典加密算法的实现
实验一 古典加密算法的实现
• 实验目的:
– 通过编程实现凯撒密码算法和矩阵换位密码算 法,加深对古典密码体制的了解。
• 实验原理:
– 古典加密算法的实验原理(详见下文ppt)
• 实验环境:
– 运行Windows操作系统的PC,TC编译环境
(1)凯撒密码加密算法
• 典型的单表代替密码是凯撒密码。 典型的单表代替密码是凯撒密码 凯撒密码。 • 凯撒密码是最古老的代替密码,以英文 个字母 凯撒密码是最古老的代替密码 以英文26个字母 是最古老的代替密码, 为例,它用D表示 表示A, 表示B, 表示C, , 为例,它用 表示 ,用E表示 ,用F表示 ,…, 表示 表示 表示Z, 用C表示 ,即:密文字母是明文字母后面的第三 表示 个位置上的字母。这种映射关系表示为如下函数: 个位置上的字母。这种映射关系表示为如下函数: • F(a)=(a十k)mod n ( ) ( 十 ) • 其中: 表示明文字母 表示明文字母, 为字符集中字母 其中:a表示明文字母,n为字符集中字母 个数, 为密钥。(移位密码、 个数,k=3为密钥。(移位密码、加法密码) 为密钥。(移位密码 加法密码)
• (2)
– 输入:密文 – 输出:Thisisanewterm
思考题:矩阵换位密码算法的实现
• 把明文中的字母按给定的顺序安排在一矩阵中,然 把明文中的字母按给定的顺序安排在一矩阵中, 后用另一种顺序选出矩阵的字母来产生密文。 后用另一种顺序选出矩阵的字母来产生密文。 • 例:明文 明文ENGINEERING按行排在 × 4矩阵中,最 按行排在3 矩阵中, 按行排在 矩阵中 后一行不全用ABC…填充。 填充。 后一行不全用 填充 • E N G I 给置换 给置换f=((1234)(2413)) NIEG • N E E R ERNE • I NG A NAIG • 得到密文:NIEGERNENAIG 得到密文: • 密钥为: * 密钥为:m*n=3 * 4,以及 ,以及f= ((1234)(2413)) (( )) • 即:k=(m * n,f) ( ,)
要求
• 以密钥为:m*n=3 * 4,以及 以密钥为: * ,以及f= ((1234)(2413)) ))对” ENGINEERING” (( )) 进行: • 要求:(1)
– 输入: ENGINEERING – 输出:(密文)
• (2)
– 输入:密文 – 输出: ENGINEERING
凯撒密码映射表
明文 密文 A D B E C F D G E H F I G J H K I L J M K N L O M P
明文
N
O
P
Q
R
S
T
Байду номын сангаас
U
V
W
X
Y
Z
密文
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
实验要求
• 1. 利用凯撒密码的算法,对”Thisisanew term”进行加密 • 要求:(1)
– 输入:Thisisanewterm – 输出:(密文)