1. 移位密码加密系统
移位密码(Shift Cipher)是一种打乱原文顺序的替代法。最经典的移位密码为凯撒密码(Caesar cipher)。在凯撒密码中,只是将信息中的每一个字母用字母表中的该字母后的第三个字母代替。由此可见,在移位密码中,明文的字母保持相同,只是顺序被打乱了,即:只对明文字母重新排序,但并不隐藏它们。下面以一个例子来说明移位密码的加密与解密原理。
例如:假设明文为“this is a good idea”,若将其分为三行五列,则可表示为以下形式:
t h i s i
s a g o o
d i d e a
(1)按列从左至右读,则可得到密文:tsd hai igd soe ioa。
(2)若把明文字母按上述顺序排列成矩阵形式,但采用另一种顺序选择相应的列输出得到密文,例如:采用“china”为密钥,即,按照“china”中的各字母排序“23451”的顺序来输出,即,最后1列作为第1个输出列,第1列作为第2个输出列,第2列作为第3个输出列,第3列作为第4个输出列,第4列作为最后1个输出列,则可得到密文:ioa tsd hai igd soe。
2. 置换密码加密系统
置换密码(Permutation Cipher),也称换位密码(Transposition Cipher),与移位密码的原理不同,置换密码不是用一个符号替换另一个符号,而是改变符号的位置,置换密码算法可定义见表8.1。
表8.1 置换密码算法
例如:假设Alice与Bob约定m=6且使用下列置换:
Alice将发送的明文为:
HE WALKED UP AND DOWN THE PASSAGE TWO OR THREE TIMES
Alice首先将明文分组(又称为块),每组大小为6:
HEWALK EDUPAN DDOWNT HEPASS AGETWO ORTHRE ETIMES
然后,将每个分组分别置换可得密文为:
WLEHKA UADENP ONDDTW PSEHSA EWGAOT TRROEH IETESM
当Bob收到此密文后,他将密文分块,每块大小为6,再对每块密文进行逆置换便可解密得到明文。
显然,由上面的例子易知置换密码不同于单码替换密码,因为在上面的例子之中,第一个e加密为L,第二个e加密为U,第三个e加密为S。此加密方法不改变字母表中字母的使用频率而只改变其位置,因此,对字母的使用概率进行分析将对Oscar毫无帮助。在唯密文攻击(Ciphertext-only)下,置换密码更难被破译;但在已知明文攻击下则将被轻松攻破。事实上,如果Oscar已知明文和密文,便不难找出长度m与密钥π。
上一篇:瞿昙寺号称“小故宫”的西北古刹
下一篇:消费者理性动机与感性动机