从密码学发展历程来看,可分为古典密码(以字符为基本加密单元的密码)以及现代密码(以信息块为基本加密单元的密码)两类。而古典密码有着悠久的历史,从古代一直到计算机出现以前,古典密码学主要有两大基本方法:
①置换密码(又称易位密码):明文的字母保持相同,但顺序被打乱了。
②代替密码:就是将明文的字符替换为密文中的另一种的字符,接收者只要对密文做反向替换就可以恢复出明文。
古典密码是密码学的根源,虽然都比较简单而且容易破译,但研究古典密码的设计原理和分析方法对于理解、分析以及设计现代密码技术是十分有益滴^_^
一.置换密码
1.列置换密码(矩阵置换密码)
明文:ming chen jiu dian fa dong fan gong
密钥:yu lan hua
去掉密钥重复字母:yulanh,得出距阵列数为6;将明文按行填充距阵。
得到密钥字母顺序: 653142;
按列(依顺序)写出距阵中的字母。
密文:giffg hddn0 njngn cuaa0 inano meiog
解密:加密的逆过程;
2.周期置换密码
周期置换密码是将明文串P按固定长度m分组,然后对每组中的子串按1,2,...,m的某个置换重排位置从而得到密文C。其中密钥σ包含分组长度信息。解密时同样对密文C按长度m分组,并按σ的逆置换σ-1把每组子串重新排列位置从而得到明文P。
明文:State Key Laboratory of Networking and Switching
加密密钥:σ=(15623)
明文分为七组:(StateK)(eyLabo)(ratory)(ofNetw)(orking)(andSwi)(tching)
加密变换:密钥里没有4,则第4位保持不变,然后对应的第1位换到第5位,第5位换到第6位,第6位换到第2位....
密文:(aKttSe)(Loyaeb)(tyaorr)(Nwfeot)(kgrion)(dinSaw)(hgcitn)
解密密钥:σ-1 = (13265)
3.栅栏密码
此密码一般适用于较短的密码,原理是字母的错位。操作步骤如下:
this little child is funny(原句)
thislittlechildisfunny(去掉空格)
t i l t l c i d s u n
h s i t e h l i f n y(上下拆开)
tiltlcidsunhsitehlifny(合并)
破译时只要按照相反的步骤来就行了。
另一种栅栏密码的操作步骤如下:
this little child is funny(原句)
thislittlechildisfunny(去掉空格)
thislittlec hildisfunny(左右拆开)
th
hi
il
sd
li
is
tf
tu
ln
en
cy
thhiilsdliistftulnency(合并)
当用中文的汉语拼音做栅栏密码时十分有趣,可以选择用声母做前排,韵母做后排。例如:
zhong hua ren min gong he guo(原句)
zhonghuarenmingongheguo(去掉空格)
zh h r