古典密码技术

古典密码技术

古典密码是密码学中的其中一个类型,其大部分加密方式都是利用替换式密码或移项式密码,有时则是两者的混合。其于历史中经常使用,但在现代由于计算机的出现,使得古典密码解密已经不再困难,已经很少使用,大部分的已经不再使用了。

古典密码技术根据其基本原理大体可以分为两类:替换密码技术换位密码技术

替换密码技术

替换密码技术是基于符号替换的密码技术。
一般有单字符单表替换密码技术、单字符多表替换密码技术等。

单字符单表替换密码技术

又称单表代换加密技术,其方法是对明文中的所有字符都是用一固定映射,明密文一一对应。

1. 乘法密码技术

  • 其加密过程如下:
    设明文消息元素个数为n,密钥为k。
    密钥k在选取的时候应满足两个条件:
    (1)0<k<n
    (2)k与n互素
    设明文消息为M,消息元素为m;
    则密文消息为C,密文元素为c=m*k mod n;
  • 其解密过程如下:
    首先要得到解密密钥,就是要求得加密密钥k模n的逆元 (设为i) ;
    具体求法为 k × i mod n=1;
    然后计算 m=c × i mod n 即可得到明文消息M。
  • 举例说明如下:
    英文字母有26个,即n=26;
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
    M=m[26]={a , b , c ,d , e , f , g , h , i , j , k , l , m , n , o , p , q , r , s , t , u , v , w , x , y , z };
    我们选取密钥k=5;
    现在我们对hello进行加密
    hello所对应的数组为[8,5,12,12 15];
    由于8×5 (mod 26) =40(mod)26=14;
    依次类推,可得到加密后的数组为[ 14 , 25,8,8, 23 ];
    对应的密文消息就是nyhhw
    现在我们开始对nyhhw解密
    首先要求得解密密钥 i ;
    由于5×21(mod 26)=105(mod26)=1;
    所以 i =21;
    nyhhw所对应的数组为[ 14 , 25,8,8, 23 ];
    由于14×21(mod26)=294(mod26)=8;
    依次类推,可得到解密后的数组为[8,5,12,12 15];
    对应的明文消息就是hello。
    (此段摘自百度百科)

2. 移位替换密码技术(凯撒密码)
即简单的对字母进行移位变化,也是最简单的一种替换密码,如下表,不做详解。

字母(明文)abcdefg
向右移两位cdefghi
向右移5位fghijkl

3. 密钥字密码技术
利用一个密钥字来构造替换作为密钥,先将密钥字作为首段密文,然后将之后未在字母表中出现过的字母依次写在此密钥字之后,构造出一个字母替换表。当密文为英文单词时,最多可以有26!个不同的替换表(包括恒等变换)。
如,当密钥字为cipher时:

明文字母abcdefghijkl
密文字母cipherabdfgj

4. 仿射密码技术
结合乘法密码技术和移位密码技术
它的加密函数是 e(x)=ax+b,其中
a和 m互质
m是字母的数目
解码函数是 d(x)=i*(x-b)mod m,其中 i 是 a 的乘法逆元。
当a=0时,仿射密码技术退化为移位替换密码技术。
当b=0时,仿射密码技术退化为乘法密码技术。

单字符多表替换密码技术

无容置疑的,单字符多表替换密码的安全性比单字符多表替换密码高。
经典的有这几种:

1. Vigenre密码技术(维吉尼亚密码)
维吉尼亚密码是使用一系列凯撒密码组成密码字母表的加密算法,属于多表密码的一种简单形式。

  • Vigenre密码的密钥可以重复循环使用,不过一般情况下 明文-密钥-密文一一对应
    在进行加密时,在维吉尼亚表格(如下)中找到要加密的明文、用于加密该明文的密钥(用作横纵坐标),查找其对应的密文。可见维吉尼亚密码简单易用,同时初学者通常难以破解,因而又被称为“不可破译的密码”。
    维吉尼亚表格
  • 对包括维吉尼亚密码在内的所有多表密码的破译都是以字母频率为基础的,但直接的频率分析却并不适用。例如,如果P是密文中出现次数最多的字母,则P很有可能对应E(前提是明文的语言为英语)。原因在于E是英语中使用频率最高的字母。然而,由于在维吉尼亚密码中,E可以被加密成不同的密文,因而简单的频率分析在这里并没有用。
  • 破译维吉尼亚密码的关键在于它的密钥是循环重复的。如果我们知道了密钥的长度,那密文就可以被看作是交织在一起的凯撒密码,而其中每一个都可以单独破解。使用卡西斯基试验和弗里德曼试验来得到密钥的长度。

2. Vernam(弗纳姆)密码技术
Vernam加密法也称一次一密(One-Time-Pad),用随机的非重复的字符集合作为输出密文。
其加密方法是将明文和密钥分别表示成对应的数字或者二进制形式;
再将两者的数值相加;
进行模26(此处认识是对26位字母进行加密)运算;
将得到的数字转化成字母即得到密文。
当密钥是真随机序列、密钥长度大于等于明文长度、每一密钥只是用一次时,这种密码技术是安全的。

3. Hill(希尔)密码技术
实际上,它是仿射密码技术的特例,是运用基本矩阵论原理的替换密码。
其加密方法就是将明文转化为数字矩阵,与密钥矩阵相乘,得到密文。
实例:
在这里插入图片描述
注意用作加密的矩阵(即密匙)必须是可逆的,否则就不可能解码。只有矩阵的行列式和26互质,才是可逆的。

换位密码技术

换位密码技术本质上就是一种置换密码技术,在简单的纵行换位密码中,明文以固定的宽度水平的写在一张图表纸上,密文按垂直方向读出,解密就是密文按相同的宽度垂直的写在图表纸上,然后水平的读出明文。
示例:
在这里插入图片描述

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值