网络安全技术
朱本福
关键字:密码学、易位、替换、栅栏密码、波雷费密码、恺撒密码、四位乘法密码
摘要:
密码学是研究如何隐密地传递信息的学科。在现代特别指对信息以及其传输的数学性研究,常被认为是数学和计算机科学的分支,和信息论也密切相关。著名的密码学者Ron Rivest解释道:“密码学是关于如何在敌人存在的环境中通讯”,自工程学的角度,这相当于密码学与纯数学的异同。密码学是信息安全等相关议题,如认证、访问控制的核心。密码学的首要目的是隐藏信息的涵义,并不是隐藏信息的存在。密码学已被应用在日常生活:包括自动柜员机的芯片卡、电脑使用者存取密码、电子商密码学几乎专指加密(encryption)算法:将普通信息即明文转换成难以理解的资料即密文的过程;解密算法则是其相反的过程:由密文转换回明文;加解密包含了这两种算法,一般加密即同时指称加密与解密的技术。
加解密的具体运作由两部分决定:一个是算法,另一个是密钥。密钥是一个用于加解密的秘密参数,通常只有通讯者拥有。历史上,密钥通常未经认证或完整性测试而被直接使用在密码机上。
下面介绍几种简单常用的加密解密方法:
1. 字母表顺序-数字
加密的时候,经常要把A~Z这26个字母转换成数字,最常见的一种方法就是取字母表中的数字序号。
A代表1,B代表2,C代表3...
字母 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
数字 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
每个单词的倒序:siht si a tset - this is a test
整句的倒序:tset a si siht - this is a test
数字的倒序:02 50 91 02 - 20 05 19 20(test)
例如
2. 进制转换密码
例如二进制:1110 10101 1101 10 101 10010 1111 1110 101
转为十进制:14 21 13 2 5 18 15 14 5
对应字母表:number
3 . Mod算法
我们可以对字母序号进行数学运算,然后把所得的结果作为密文。当运算结果大于26或小于1的时候,我们希望把这个数值转为1~26的范围,那么取这个数除以26的余数即可。
Mod就是求余数的运算符,有时也用“%”表示。例如 29 Mod 26 = 3,或写成 29 % 26 = 3,意思是29除以26的余数是3。
4. 倒序
加密时为经常要对字符进行倒序处理。如果让你按abcdef...的顺序背出字母表的每个字母会很容易,但是如果是zyxwvu...的顺序那就很难背出来了。一个很熟悉的单词,如果按相反的顺序拼写,可能就会感到很陌生。
例如“love”字母倒过来拼就是“evol”。
5. 间隔
单词之间的间隔一般使用空格。在加密时常常要去掉空格,但有时某些字母或数字来替代空格也不失为一种好的加密方案。错误空格位置也会起到很强的误导作用。
例如:t hi sis at est - this is a test
其他典型的加密解密方法:
1)栅栏密码,请先看下面的密文:
w h d x
u a a u
( n e )
这是一个比较简单的密码问题
先将密文分为两行
再按上下上下的顺序组合成一句话
武(wu)汉(han)大(da)学(xue)
其实,还有多线的栅栏密码,又如下面的密文
ASLELNASLAJLLHLWLDCHLVILABEAJKAHEL利用上面方法即
A S L E L N A S L A J L
L H L W L D C H L V I
L A B E A J K A H E L
All shall be well and Jack shall have Jill.
翻译即为有情人终成眷属。
栅栏密码也可以用于中文,不过比较容易破解。
明文: 这是中文的栅栏密码
密文(3*3方阵):这文栏是的密中栅码
由于中文用规则的栅栏比较容易破解,所以产生了一些变体,例如道家心法密籍《天仙金丹心法》中的一段加密方法。密文如下:
○ 茫 天 : 摹 然 月 终 为 鼎 半 是 真 灭 器 轮 假 不 但 伸 净 著 定 分 泥 万 ○ 无 ○ 光 人 经 法 一 从 尘 色 返 我 权 自 法 中 妙 大 空 照 生 屈 来 好 路 形 神 海 ○ 便 还 未 归
○ 茫
天 : 摹
然 月 终 为
鼎 半 是 真 灭
器 轮 假 不 但 伸
净 著 定 分 泥 万 ○
无 ○ 光 人 经 法 一 从
尘 色 返 我 权 自 法 中 妙
大 空 照 生 屈 来 好 路 形 神
海 ○ 便 还 未 归
明文(从上向下竖着读):天然鼎器净无尘,大海茫茫月半轮。著色空摹终是假,定光返照便为真。不分人我生还灭,但泥经权屈未伸。万法自来归一法,好从中路妙形神。
2)波雷费密码
这一种对称式密码,是首种双字母取代的加密法。关于波雷费密码最早的纪录出现在一份1854年3月26日由查尔斯•惠斯登签署的文件。惠斯登的朋友波雷费勋爵普及了这个加密法。但是最初英国外交部拒绝使用这种密码,认为它太复杂。当惠斯登证明邻近学校的四个男孩中,有三个可以在15分钟内学会这种方法,外交部副秘书长的回应是:“这是有可能的,可惜你不能教晓那些高层人员。”在第二次布尔战争和第一次世界大战,英军用了它;在二战,澳大利亚人也用了。波雷费密码所用的工具很少,而且很快便能加密讯息。它主要用来加密重要而又不关键的讯息。
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
加密的方法是:
1. 把讯息分拆成一对对的字母,即字母对( digraphs )。而字母对内之字母必须不同,相同时则在中间插入 x 、 z 或 q 等(选其一)较少用的字母。如最後只剩一个字母,同样地,加入 x 等来组成字母对。
2. 从表中可看出,所有字母对可分成三类:两个字母在同一行,两个字母在同一列,或前述情况皆非。
3. 对明文加密时,若两个字母都在同一行就各自用右边的字母代替,如果右边没字了,则用同行开头(即最左边)的字母代替。例如: lo 变成 MP , wz 则变成 XV 。
4. 同样道理,对同一列的字母,则用其下方的字母取代,最底的则用同列最上方的字母取代。例如: gr 变成 MW , jy 则变了 OD 。
5. 至於遇到第三种情况时,则用另一种加密方法:取字母对中第一个字母所在的行,及第二个字母所在的列,它们所交汇出的字母就用来加密第一个字母;加密第二个字时,则取字母对中第一个字母所在的栏,及第二个字母所在的行所交汇出的字母为替身。所以, mt 会变成 OR ,而 by 则变成 DW 。
明文 minimize cheese cake
分解成字母对的明文 mi ni mi ze ch ex es ec ak ex
密码文 OG OH OG EK HN CZ AD EF CZ
可以看出,波雷费密码算不上十分强固,因为其虽然抹除了单个字母的频率特徵,但掩盖不了明文内字母对的频率。所以只要找出最常出现的字母对,再假定它们就代表了英文中最常用的几个字母对- th 、 he 、 an 、 in 、 er 後,就能破解它了。
3)“恺撒密码”
据传是古罗马恺撒大帝用来保护重要军情的加密系统。它是一种替代密码,
据说恺撒是率先使用加密函的古代将领之一,因此这种加密方法被称为恺撒密码。
它是将字母表中的字母依次后移一定的位置得到的。例如:通过将字母按顺序推后起3位起到加密作用,如将字母A换作字母D,将字母B换作字母E。
举例如以下一句密文:
Ep_zpv_mpwf_nf
e前面是d,排前面是o,字母表里面的,别说这都不知道……
原句就是do-you-love-me
又如以一组密码为例:
HL FKZC VD LDS
只需把每个字母都按字母表中的顺序依次后移一个字母即可——A变成B,B就成了C,依此类推。因此明文为:
IM GLAD WE MET
英文字母的移位以移25位为一个循环,移26位等于没有移位。所以可以用穷举法列出所有可能的组合。
例如:phhw ph diwhu wkh wrjd sduwb
明文 F O R E S T
密文 K T W J X Y
WSKQUGEWWSKQYG
WSKQUGEWWSKQYG
突破点是WSKQ,密文中出现了两次,不妨把它当作一个单词 即可得easy come,easy go!
4)四位乘法密码
这种密码是一个叫前天英次郎的人本人发明的,编写很简单,而且密钥就是一个四位数字。
加密方法:
首先选一个合适的四位数字,如6543。既不要有0出现(为甚麽?往下看就知道了)
然后算出他的平方:6543*6543=42810849
取中间的三位数,再与6543相乘:108*6543=706644
接着取中间的三位数,再与6543相乘:664*6543=4344552
仍取中间的三位数,再与6543相乘:445*6543=2911635
一直计算(如果数位是2N就从第N位取)
直到这些数的长度和明文一样
现在加密:
明文:w i l l y o u s e n d u s t h e i n f o r m a t i o n
密钥:1 0 8 6 6 4 4 4 5 1 1 6 8 9 8 7 5 6 4 6 5 4 2 4 7 4 2
密文: X I T R E S Y W J O E A A C P L N T J U W Q C X P S P
一样,数字也代表了位移顺序。
这种密码的好处是传递方便,密钥容易记,也不是很容易破译,缺点是编写比较麻烦,运算量太大。
现代的密码研究主要在分组密码(block cipher)与流密码(stream cipher)及其应用。分组密码在某种意义上是阿伯提的多字符加密法的现代化。分组密码取用明文的一个区块和钥匙,输出相同大小的密文区块。由于信息通常比单一区块还长,因此有了各种方式将连续的区块编织在一起。 DES和AES是美国联邦政府核定的分组密码标准(AES将取代DES)。尽管将从标准上废除,DES依然很流行(triple-DES变形仍然相当安全),被使用在非常多的应用上,从自动交易机、电子邮件到远端存取。也有许多其他的区块加密被发明、释出,品质与应用上各有不同,其中不乏被破解者。
流密码,相对于区块加密,制造一段任意长的钥匙原料,与明文依位元或字符结合,有点类似一次一密密码本(one-time pad)。输出的串流根据加密时的内部状态而定。在一些流密码上由钥匙控制状态的变化。RC4是相当有名的流密码。
参考资料:
《维基百科》,《密码学》,《网络安全技术》,《柯南密码解读》及其他密码学相关资料