几种常见的密码加密方式
【凯撒密码(Caesar Shifts, Simple Shift)】也称凯撒移位,是最简单的加密方法之一,相传是古罗马恺撒大帝用来保护重要军情的加密系统,它是一种替代密码。
加密公式:密文 = (明文 + 位移数) Mod 26
解密公式:明文 = (密文 - 位移数) Mod 26
以《数字城堡》中的一组密码为例:
HL FKZC VD LDS
只需把每个字母都按字母表中的顺序依次后移一个字母即可——A变成B,B就成了C,依此类推。因此明文为:
IM GLAD WE MET
英文字母的移位以移25位为一个循环,移26位等于没有移位。所以可以用穷举法列出所有可能的组合。
例如:phhw ph diwhu wkh wrjd sduwb
利用电脑可以方便地列出所有组合,然后从中选出有意义的话:
qiix qi ejxiv xli xske tevxc
rjjy rj fkyjw ymj ytlf ufwyd
skkz sk glzkx znk zumg vgxze
tlla tl hmaly aol avnh whyaf
ummb um inbmz bpm bwoi xizbg
vnnc vn jocna cqn cxpj yjach
wood wo kpdob dro dyqk zkbdi
xppe xp lqepc esp ezrl alcej
yqqf yq mrfqd ftq fasm bmdfk
zrrg zr nsgre gur gbtn cnegl
assh as othsf hvs hcuo dofhm
btti bt puitg iwt idvp epgin
cuuj cu qvjuh jxu jewq fqhjo
dvvk dv rwkvi kyv kfxr grikp
ewwl ew sxlwj lzw lgys hsjlq
fxxm fx tymxk max mhzt itkmr
gyyn gy uznyl nby niau julns
hzzo hz vaozm ocz ojbv kvmot
iaap ia wbpan pda pkcw lwnpu
jbbq jb xcqbo qeb qldx mxoqv
kccr kc ydrcp rfc rmey nyprw
ldds ld zesdq sgd snfz ozqsx
meet me after the toga party <-
nffu nf bgufs uif uphb qbsuz
oggv og chvgt vjg vqic rctva
可知明文为:meet me after the toga par
[四方密码]
四方密码用4个5×5的矩阵来加密。每个矩阵都有25个字母(通常会取消Q或将I,J视作同一样,或改进为6×6的矩阵,加入10个数字)。
首先选择两个英文字作密匙,例如example和keyword。对于每一个密匙,将重复出现的字母去除,即example要转成exampl,然后将每个字母顺序放入矩阵,再将余下的字母顺序放入矩阵,便得出加密矩阵。
将这两个加密矩阵放在左上角和右下角,余下的两个角放a到z顺序的矩阵:
a b c d e E X A M P
f g h i j L B C D F
k l m n o G H I J K
p r s t u N O R S T
v w x y z U V W Y Z
K E Y W O a b c d e
R D A B C f g h i j
F G H I J k l m n o
L M N P S p r s t u
T U V X Z v w x y z
加密的步骤:
两个字母一组地分开讯息:(例如hello world变成he ll ow or ld)
找出第一个字母在左上角矩阵的位置
a b c d e E X A M P
f g h i j L B C D F
k l m n o G H I J K
p r s t u N O R S T
v w x y z U V W Y Z
K E Y W O a b c d e
R D A B C f g h i j
F G H I J k l m n o
L M N P S p r s t u
T U V X Z v w x y z
同样道理,找第二个字母在右下角矩阵的位置:
a b c d e E X A M P
f g h i j L B C D F
k l m n o G H I J K
p r s t u N O R S T
v w x y z U V W Y Z
K E Y W O a b c d e
R D A B C f g h i j
F G H I J k l m n o
L M N P S p r s t u
T U V X Z v w x y z
找右上角矩阵中,和第一个字母同行,第二个字母同列的字母:
a b c d e E X A M P
f g h i j L B C D F
k l m n o G H I J K
p r s t u N O R S T
v w x y z U V W Y Z
K E Y W O a b c d e
R D A B C f g h i j
F G H I J k l m n o
L M N P S p r s t u
T U V X Z v w x y z
找左下角矩阵中,和第一个字母同列,第二个字母同行的字母:
a b c d e E X A M P
f g h i j L B C D F
k l m n o G H I J K
p r s t u N O R S T
v w x y z U V W Y Z
K E Y W O a b c d e
R D A B C f g h i j
F G H I J k l m n o
L M N P S p r s t u
T U V X Z v w x y z
这两个字母就是加密过的讯息。
hello world的加密结果:
he lp me ob iw an ke no bi
FY GM KY HO BX MF KK KI MD
二方密码
二方密码(en:Two-square_cipher)比四方密码用更少的矩阵。
得出加密矩阵的方法和四方密码一样。
例如用「example」和「keyword」作密匙,加密lp。首先找出第一个字母(L)在上方矩阵的位置,再找出第二个字母(D)在下方矩阵的位置:
E X A M P
L B C D F
G H I J K
N O R S T
U V W Y Z
K E Y W O
R D A B C
F G H I J
L M N P S
T U V X Z
在上方矩阵找第一个字母同行,第二个字母同列的字母;在下方矩阵找第一个字母同列,第二个字母同行的字母,那两个字母就是加密的结果:
E X A M P
L B C D F
G H I J K
N O R S T
U V W Y Z
K E Y W O
R D A B C
F G H I J
L M N P S
T U V X Z
help me的加密结果:
he lp me
HE DL XW
波雷费密码
1选取一个英文字作密匙。除去重复出现的字母。将密匙的字母逐个逐个加入5×5的矩阵内,剩下的空间将未加入的英文字母依a-z的顺序加入。(将Q去除,或将I和J视作同一字。)
2将要加密的讯息分成两个一组。若组内的字母相同,将X(或Q)加到该组的第一个字母后,重新分组。若剩下一个字,也加入X字。
3在每组中,找出两个字母在矩阵中的地方。
若两个字母不同行也不同列,在矩阵中找出另外两个字母,使这四个字母成为一个长方形的四个角。
若两个字母同行,取这两个字母右方的字母(若字母在最右方则取最左方的字母)。
若两个字母同列,取这两个字母下方的字母(若字母在最下方则取最上方的字母)。
新找到的两个字母就是原本的两个字母加密的结果。 栅栏、英文和数字的互换、手机键盘、电脑键盘的加密好像比四方和二方更加常用 很常用。。。 ???什么很常用? 栅栏、英文和数字的互换、手机键盘、电脑键盘的加密 恩英雄所见略同 o(∩_∩)o...哈哈 O(∩_∩)O~呵呵 两人小心笑抽了~
多谢LZ的帖~学到了~ 好东东!!!!!!!!!!!!!!!!!!!!!!
页:
[1]