|
阅读:0回复:15
一些密码资料
Play fair密码
【普莱菲尔密码加密方法】 普莱菲尔密码的编写方法是极为简单的,通常可以分为三个步骤,即编制密码表、整理明文、编写译文,下面我们以明文:pishoupideweinasi和密钥“culture”为例来讲解。 (1) 编制密码表 我们需要的是一个5乘5的方表,而用到的是密钥“culture”与英文字母表: Ⅰ整理密钥字母C U L T U R E,去掉后面重复的字母以,得到字母串:C U L T R E; Ⅱ用上一步得到的字母自上而下来填补5乘5方表的纵列(也可横排),之后的空白按照相同的顺序用字母表中剩余的字母依次填补完整,得到如下的方格,1 这一步需要注意的要点:整理密钥字母时,如果出现z,则需要去除,因为在英文里z的使用频率最低,相应的如果是德文,则需将i与j当作一个字母来看待,而法语则去掉w或k。 (2) 整理明文 我们要遵循的原则是“两个一组”,得到是若干个两两成对的字母段,用到的是明文pishoupideweinasi与字母“x”: Ⅰ将明文两两一组按顺序排开,得到pi sh ou pi de we in as i Ⅱ对于末尾的单个字母要加上一个“x”使之成对:pi sh ou pi de we in as ix这一步需要注意的要点:对于相连字母相同者,每个后面都需要加x,例如tomorrow,需要写成:to mo rx rx ow (3) 编写密文 我们要得到的密文,当然,对于每个字母对,要严格遵循如下的原则: 1.如果两个字母在同一行则要用它右邻的字母替换,如果已在最右边,则用该行最左边的替换,如明文为“ce”,依据上表,应替换为“eg”; 2.如果两个字母在同一列则要用它下边的字母替换,如果已在最下边,则用该行最上边的替换,如明文为“oq”,依据上表,应替换为“pm”; 3.如果两个字母在不同的行或列,则应在密码表中找两个字母使四个字母组成一个矩形,明文占据两个顶点,需用另外两个顶点的字母替换,如明文为“hx”,可以替换为“vj”或“jv”(本例按照横向替换原则)。 Ⅰ按照上述原则,将明文加以编写,得到jo gv ln jo fa bs oh ve wjⅡ将得到的字母改为大写,并五个一组列好,得到密码JOGVL NJOFA BSOHV EWJ 奥腾多夫密码 每三个数字对应密钥中的一个词 密码本通常是一本随机的书 或者报纸上的文章 第一组数字是页数 第二组数字是行数 第三组数字是列数 如11-15-12 指的就是第11页 第15行 第12列词 (也可以说是第12个) ADFGX密码 A D F G X A B T A L P D D H O Z K F Q F V S N G G J C U X X M R E W Y 三分密码 三分密码由Felix Delastelle发明(他也发明了四方密码和二分密码)。二分密码是二维的,用5×5(或6×6)的矩阵加密,但三分密码则用3×3×3的。它是第一个应用的三字母替换密码。 首先随意制造一个3个3×3的Polybius方格替代密码,包括26个英文字母和一个符号。然后写出要加密的讯息的三维坐标。讯息和坐标四个一列排起,再顺序取横行的数字,三个一组分开,将这三个数字当成坐标,找出对应的字母,便得到密文。 7 x9 S6 f! f# a1 Z) t% H% Y 二分密码的做法相近,和后来出现的ADFGVX密码差不多。, x; N% u- a8 U3 w 例:加密"HELLO WORLD" 1 1 1 2 2 2 3 3 3 1 l e o n a r d v i 2 c b f g h j k m p 3 q s t u w x y z / 1 2 3 1 2 3 1 2 3 : t5 p. N/ K" N* d1 y; ]# X 然后写出"HELLO WORLD"的每个字母的坐标,先上横再竖再下横# R# a4 m: P2 d! A! S% r, } 如下:, N) D* j; G6 I$ V g H E L L O W O R L D" e9 p( k c- k& x6 q --------------------------- 2 1 1 1 1 2 1 2 1 31 _8 r% U0 \% N- U8 W Y% l1 \ F* a 2 1 1 1 1 3 1 1 1 1 2 2 1 1 3 2 3 3 1 1 v) E( C' k' Y- ]. z, W* K: Y : |/ i$ @3 a0 s( g 将所得的表格横着读出,每三个数字一组5 Q$ ?* P, H$ \' G4 P 211 112 121 321 111 311 112 211 323 311 再回头按坐标找出第一个表中对应字母,即:; ]. `5 [ n0 l+ O' R # d" y8 ^ h! e' B 211 112 121 321 111 311 112 211 323 311 , X" V1 r4 k" t' K0 ? N E C K L D E N P D - a7 P. O8 W+ m 则"HELLO WORLD"的密文即为:NECKLDFNPD 【四方密码】 四方密码是一种对称式加密法,由法国人Felix Delastelle(1840年–1902年)发明。 这种方法将字母两个一组,然后采用多字母替换密码。 四方密码用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 【二方密码】 二方密码比四方密码用更少的矩阵。 得出加密矩阵的方法和四方密码一样。 例如用「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 这种加密法的弱点是若两个字同列,便采用原来的字母,例如he便加密作HE。约有二成的内 容都因此而暴露 元音密码表:0 g6 P0 a' `8 ^ l A B C D E F G H I J K L M N 1 11 12 13 2 21 22 23 3 31 32 33 34 35 O P Q R S T U V W X Y Z 4 41 42 43 44 45 5 51 52 53 54 55 '比如明文是:: When in Rome,do as the Romans do.(入乡随俗) 根据密码表加密为(注意,数字之间加点): 52.23.2.35.3.35.43.4.34.2.13.4.1.44.45.2.43.4.34.1.35.44.13.4 韵母声母密码(原创) 1 2 3 4 5 1 b p m f d 2 t n l g k 3 h % j q x 4 zh ch sh r z 5 c s y w & 1 2 3 4 5 6 1 a o e i u v 2 ai ei ui @ ao A 3 ou iu ie ve er B 4 an en in # un C 5 ang eng ! ing ong D 莫尔斯电码 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 ----* 0 - ---- . *-*-*- ' *----* ? **--** ( -*--*- ) -*--*- @ *--*-* — -***- 。*-*-*- , --**-- : ---*** | *----* _/- -****- ? *--*-* end ***-*- start -*-*- 培根密码 A = aaaaa E = aabaa I/J= abaaa N = abbaa R = baaaa W = babaa B = aaaab F = aabab K = abaab O = abbab S = baaab X = babab C = aaaba G = aabba L = ababa P = abbba T = baaba Y = babba D = aaabb H = aabbb M = ababb Q = abbbb U/V= baabb Z = babbb 加密规则:(1)A-M=>a,也就是说A到M的所有字母都替换成a. N-Z=>b,也就是说N到Z的所有字母都替换成b. (2)A-M<=a,也就是说a可以替换成A-M中的任何一个字母 N-Z<=b,也就是说a可以替换成N-Z中的任何一个字母 维德里亚密码 题目如下 密文: T 密钥:SKFK 提示: 26个英文字母 公式:A+B=C A代表明文 B代表密钥 C代表密文 答案:根据26个英文字母表a对应标上数字1,b表上数字2,对照得出 T=20 S=19 K=11 F=6 K=11 根据公式:A+B=C 题目已知密文为T,密钥为SKFK,求得明文 列出 C(密文)-B(密钥)=A(明文) 将数字代入推导出的公式 T-S=20-19=1 T-K=20-11=9 T-F=20-6=14 T-K=20-11=9 根据得出数字1.9.14.9对照26个英文字母表得出 aini 爱你 博福特密码是按mod q减法运算的一种周期代替密码。即 ci+td=δi(mi+td)≡(ki-mi+td)(mod q) 所以,它和维吉尼亚密码类似,以ki为密钥的代替表是密文字母表为英文字母表逆序排列进行循环右移ki+1次形成的。例如,若ki=3(相当于字母D),则明文和密文的对应关系如下: 明文: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 密文:D C B A Z Y X W V U T S R Q P O N M L K J I H G F E 显然,博福特密码的解密变换为 mi+td≡δi(ci+td)≡(ki-ci+td)(modq) 因此,博福特密码的解密变换与加密变换相同。按博福特密码,以密钥ki加密相当于按下式的维吉尼亚加密: ci+td≡[(q-1)-mi+td](modq) 若按下式加密: ci+td≡(mi+td-ki)(modq) 就得到变异的博福特密码,相应代替表示将明文字母表循环右移ki次而成。由于循环右移ki次等于循环左移(q-ki)次,即式ci+td≡(mi+td-ki)(modq)等价于以(q-ki)为密钥的维吉尼亚密码。所以维吉尼亚密码和变异的博福特密码互为逆变换,若一个是加密运算,则另一个就是解密运算。 示例 例如,明文的第一个字母为D,则先在表格中找到第D列。由于密钥的第一个字母为F,于是D列从上往下找到F。这一F对应的行号为C,因而C便是密文的第一个字母。以此类推可以得到密文。 以下便是一个密钥为FORTIFICATION时的例子: Defend the east wall of the castle去空格, 明文:DEFENDTHEEASTWALLOFTHECASTLE 密钥:FORTIFICATIONFORTIFICATIONFO 密文:CKMPVCPVWPIWUJOGIUAPVWRIWUUK 符号注释: ki:密钥 mi:明文 ci:密文 关键词凯撒 这个加密方式是从凯撒位移衍生出来的,书中的名称是“关键词凯撒”。关键词中不能有重复的字母,就算有也要把重复的字母删去。 举个例子: 以code为关键词: 原字母表: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 加密密码表:c o d e f g h i j k l m n p q r s t u v w x y z a b 这种方法即用把关键词写在前面,在按关键词的最后一个字母搞凯撒位移。 若以"mima"以为关键词,则关键词要变成"mia"(去掉第二个重复的"m"),则: 原字母表: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 加密密码表:m i a b c d e f g h j k l n o p q r s t u v w x y z 这个例子恰好也表现出了一个巧合,即从n开始后面的加密字母和原始字母相同,这种情况下CM可以选择换一个关键词加密,或者仍用这个关键词(这种情况可以迷惑CB放弃这一个正确的关键词)。 确定关键词做凯撒位移时,已在关键词中出现的字母不可以再次出现,不然加密密码表中字母的数目将多于原字母表。 密钥栅栏 密钥栅栏这个加密方式是从传统栅栏衍生出来的。 首先是确定密钥,密钥的字母数即是格子的列数。将密钥中的字母按字母表中的顺序 编号即得到每一列的序号,如果相同的字母出现超过2次,先编从左到右第一个字母 的号,再编第二个,以此类推。 以happy new year为要加密的原文为例: 1.若以cipher为密钥,则密钥编号为145326,在“格子”上方先写下密钥编号(密钥 可写可不写),再按传统栅栏编码方式“填格子”,即 1 4 5 3 2 6 h a p p y n e w y e a r 接下来按照每一列的编号顺序依次抄下每一列,即: heyapeawpynr,编码完成。 2.若以mima为密钥,则密钥编号为3241,在“格子”上方先写下密钥编号(密钥可写 可不写),再按传统栅栏编码方式“填格子”,即: 3 2 4 1 h a p p y n e w y e a r 接下来按照每一列的编号顺序依次抄下每一列,即: pwranehyypea,编码完成 PS:①编号是按在字母表里出现的顺序 ②字母不够就留空格 Kryptos密码 标准字母表:|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|R|Y|P|T|O|S|A|B| C| D| E| F| G| H| I| J| L| M| N| Q| U| V| W| X| 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| 密钥:PALIMPSEST (重写本) 解法,以第一行为例: EMUFPHZLRFAXYUSDJKZLDKRNSHGNFIVJ 首先把密钥PALIMPSEST和密文对照“变换字母表”转换为数字: |P|A| L| I| M|P|S| E|S|T| |4|8|18|16|19|4|7|12|7|5| | E| M| U| F|P| H| Z| L|R| F|A| X|Y| U|S| D| J| K|Z| L| D|K|R| N|S| H| G| N| F| I| V| J| |12|19|22|13|4|15|26|18|2|13|8|25|3|22|7|11|17|1|26|18|11|1|2|20|7|15|14|20|13|16|23|17| 把密钥重复几次,弄成和密文相等的长度: 密钥:| 4| 8|18|16|19| 4| 7|12|7| 5|4| 8|18|16|19| 4| 7|12| 7| 5| 4|8|18|16|19| 4| 7|12| 7| 5| 4| 8| 密文:|12|19|22|13| 4|15|26|18|2|13|8|25| 3|22| 7|11|17| 1|26|18|11|1| 2|20| 7|15|14|20|13|16|23|17| 利用标准的解维吉尼亚密码算法:把每一列的数字相减(如果得负值,就用26加上这个值),然后再加1。 公式为:[26 + (密文 - 密钥)] Mod 26 + 1 第一列:12-4+1=9;第二列:19-8+1=12;第三列:22-18+1=5;第四列:26+(13-16)+1=24; 第五列:26+(4-19)+1=12;第六列:15-4+1=12;第七列:26-7+1=20 ... ... 解出明文数字表,再对照“变换字母表”把数字转换为字母: 明文数字:|9|12|5|24|12|12|20|7|22|9|5|18|12|7|15|8|11|16|20|14|8|20|11|5|15|12|8|9|7|12|20|10| 明文字母:|B| E|T| W| E| E| N|S| U|B|T| L| E|S| H|A| D| I| N| G|A| N| D|T| H| E|A|B|S| E| N| C| 因此原文就是: Between subtle shading and the absenc |
|
|
沙发#
发布于:2014-05-11 10:13
有空写个程序试试
收藏了,有空写个程序试试,加密到解密不知道繁琐不 |
|
|
10楼#
发布于:2014-06-18 11:15
ννννν回复给帖子:13292382
kamisama@@10!! |
|
|
11楼#
发布于:2014-06-23 12:46
为什么没有
好点赞
#6991! 为什么没有rsa这种东西啊!! |
|
|
12楼#
发布于:2014-07-01 09:27
|
|
上一页
下一页