信息安全
密码的原理与实现
一、 基础知识介绍
凯撒密码的历史
凯撒密码(caeser)是罗马扩张时期朱利斯 凯撒(• Julius Caesar)创造的,用于加密通过信使传递的
作战命令。它将字母表中的字母移动一定位置而实现加密。
古罗马随笔作家修托尼厄斯在他的作品中披露,凯撒常用一种“密表”给他的朋友写信。这里所说的密
表,在密码学上称为“凯撒密表”。用现代的眼光看,凯撒密表是一种相当简单的加密变换,就是把明文中
的每一个字母用它在字母表上位置后面的第三个字母代替。古罗马文字就是现在所称的拉丁文,其字母
就是我们从英语中熟知的那 26 个拉丁字母。因此,凯撒密表就是用 d 代 a,用 e 代 b,……,用 z 代 w。
这些代替规则也可用一张表格来表示,所以叫“密表”。
当偏移量是 3 的时候,所有的字母 A 将被替换成 D,B 变成 E,以此类推。
基本原理
在密码学中存在着各种各样的置换方式,但所有不同的置换方式都包含 2 个相同的元素。密钥和协
议(算法)。凯撒密码的密钥是 3,算法是将普通字母表中的字母用密钥对应的字母替换。置换加密的优点
就在于它易于实施却难于破解. 发送方和接收方很容易事先商量好一个密钥,然后通过密钥从明文中生成
密文,即是敌人若获取密文,通过密文直接猜测其代表的意义,在实践中是不可能的。
凯撒密码的加密算法极其简单。其加密过程如下:
在这里,我们做此约定:明文记为 m,密文记为 c,加密变换记为 E(k1,m)(其中 k1 为密钥),解密变
换记为 D(k2,m)(k2 为解密密钥)(在这里不妨假设 k1=k2,记为 k)。凯撒密码的加密过程可记为如下一
个变换:
c≡m+k mod n (其中 n 为基本字符个数)
同样,解密过程可表示为:
1