当前位置:文档之家› 密码学基础

密码学基础

密码学常识□秋雨灰灰目录密码常识字母表顺序-数字进制转换密码Mod算法倒序间隔字母频率凯撒密码(Caesar Shifts, Simple Shift)凯撒移位(中文版)栅栏密码(The Rail-Fence Cipher)维吉尼亚密码(Vigenère Cipher)Polybius密码(Polybius Cipher)ADFGX/ADFGVX密码(ADFGX/ADFGVX Cipher)ADFGXADFGVX乘法密码(Multiplication Cipher)仿射密码(Affine Shift)希尔密码(Hill Cipher)加密解密Playfair密码(Playfair Cipher)莫尔斯电码置换密码(Transposition Cipher)替代密码(Monoalphabetic Substitution)字母表数字字母表代码反字母表随机乱序字母棋盘密码键盘密码键盘移位软键盘密码数字小键盘密码手机键盘密码数字记忆编码百度/Google/网页字符百度字符(GB2312)Google字符(URI)网页编码(Unicode)Alt+数字小键盘MD5【密码常识】字母表顺序-数字加密的时候,经常要把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进制转换密码例如二进制:1110 10101 1101 10 101 10010 1111 1110 101转为十进制:14 21 13 2 5 18 15 14 5对应字母表:numberMod算法我们可以对字母序号进行数学运算,然后把所得的结果作为密文。

当运算结果大于26或小于1的时候,我们希望把这个数值转为1~26的范围,那么取这个数除以26的余数即可。

Mod就是求余数的运算符,有时也用“%”表示。

例如29 Mod 26 = 3,或写成29 % 26 = 3,意思是29除以26的余数是3。

倒序加密时为经常要对字符进行倒序处理。

如果让你按abcdef...的顺序背出字母表的每个字母会很容易,但是如果是zyxwvu...的顺序那就很难背出来了。

一个很熟悉的单词,如果按相反的顺序拼写,可能就会感到很陌生。

例如“love”字母倒过来拼就是“evol”。

具体加密时倒序有很多种方案,需要灵活运用。

例如:每个单词的倒序: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)间隔单词之间的间隔一般使用空格。

在加密时常常要去掉空格,但有时某些字母或数字来替代空格也不失为一种好的加密方案。

错误空格位置也会起到很强的误导作用。

例如:t hi sis at est - this is a test字母频率频率分析法可以有效的破解单字母替换密码。

关于词频问题的密码,我在这里提供英文字母的出现频率给大家,其中数字全部是出现的百分比:a 8.2b 1.5c 2.8d 4.3e 12.7f 2.2g 2.0h 6.1i 7.0 j 0.2 k 0.8 l 4.0m 2.4 n 6.7 o 7.5 p 1.9q 0.1 r 6.0 s 6.3 t 9.1u 2.8 v 1.0 w 2.4 x 0.2y 2.0 z 0.1词频法其实就是计算各个字母在文章中的出现频率,然后大概猜测出明码表,最后验证自己的推算是否正确。

这种方法由于要统计字母出现频率,需要花费时间较长。

参考《跳舞的小人》和《金甲虫》。

【凯撒密码(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 tevxcrjjy rj fkyjw ymj ytlf ufwydskkz sk glzkx znk zumg vgxzetlla tl hmaly aol avnh whyafummb um inbmz bpm bwoi xizbgvnnc vn jocna cqn cxpj yjachwood wo kpdob dro dyqk zkbdixppe xp lqepc esp ezrl alcejyqqf yq mrfqd ftq fasm bmdfkzrrg zr nsgre gur gbtn cneglassh as othsf hvs hcuo dofhmbtti bt puitg iwt idvp epgincuuj cu qvjuh jxu jewq fqhjodvvk dv rwkvi kyv kfxr grikpewwl ew sxlwj lzw lgys hsjlqfxxm fx tymxk max mhzt itkmrgyyn gy uznyl nby niau julnshzzo hz vaozm ocz ojbv kvmotiaap ia wbpan pda pkcw lwnpujbbq jb xcqbo qeb qldx mxoqvkccr kc ydrcp rfc rmey nyprwldds ld zesdq sgd snfz ozqsxmeet me after the toga party <-nffu nf bgufs uif uphb qbsuzoggv og chvgt vjg vqic rctva可知明文为:meet me after the toga party【凯撒移位(中文版)】就是按照中文字在Unicode编码表中的顺序进行移位,可以用来加密中文的信息。

例:[中文凯撒移位]转换成Unicode编码:中文凯撒移位移1位后成为:丮斈凰撓秼低转换成中文:[丮斈凰挠秼低]【栅栏密码(The Rail-Fence Cipher)】也称栅栏易位(Columnar Transposition),即把将要传递的信息中的字母交替排成上下两行,再将下面一行字母排在上面一行的后边,从而形成一段密码。

栅栏密码是一种置换密码。

例如密文:TEOGSDYUTAENNHLNETAMSHVAED解密过程:先将密文分为两行T E O G S D Y U T A E N NH L N E T A M S H V A E D再按上下上下的顺序组合成一句话THE LONGEST DAY MUST HAVE AN END.加密时不一定非用两栏,还是举《数字城堡》中的一个例子,密文为:PFEE SESN RETM MFHA IRWE OOIG MEEN NRMA ENET SHAS DCNS IIAA IEER BRNK FBLE LODI去掉空格:PFEESESNRETMMFHAIRWEOOIGMEENNRMAENETSHASDCNSIIAAIEERBRNKFBLELODI 共64个字符,以8个字符为一栏,排列成8*8的方阵(凯撒方阵):P F E E S E S NR E T M M F H AI R W E O O I GM E E N N R M AE N E T S H A SD C N S I I A AI E E R B R N KF B L E L O D I从上向下竖着读:PRIMEDIFFERENCEBETWEENELEMENTSRESMONSIBLEFORHIROSHIMAANDNAGASAKI插入空格:PRIME DIFFERENCE BETWEEN ELEMENTS RESMONSIBLE FOR HIROSHIMA AND NAGASAKI(广岛和长崎的原子弹轰炸的最主要区别)栅栏密码也可以用于中文,不过比较容易破解。

明文:这是中文的栅栏密码密文(3*3方阵):这文栏是的密中栅码由于中文用规则的栅栏比较容易破解,所以产生了一些变体,例如道家心法密籍《天仙金丹心法》中的一段加密方法。

密文如下:○茫天:摹然月终为鼎半是真灭器轮假不但伸净著定分泥万○无○光人经法一从尘色返我权自法中妙大空照生屈来好路形神海○便还未归○茫天:摹然月终为鼎半是真灭器轮假不但伸净著定分泥万○无○光人经法一从尘色返我权自法中妙大空照生屈来好路形神海○便还未归明文(从上向下竖着读):天然鼎器净无尘,大海茫茫月半轮。

著色空摹终是假,定光返照便为真。

不分人我生还灭,但泥经权屈未伸。

万法自来归一法,好从中路妙形神。

利用电脑进行加密或解密,建议使用“列举加密”或“列举解密”,电脑会自动尝试一些正好匹配的栏位进行列举。

lyiroonevuclesey4栏:loveyousincerely8栏:lionvceeyroeulsy【维吉尼亚密码(Vigenère Cipher)】由于频率分析法可以有效的破解单表替换密码,法国密码学家维吉尼亚于1586年提出一种多表替换密码,即维吉尼亚密码,也称维热纳尔密码。

维吉尼亚密码引入了“密钥”的概念,即根据密钥来决定用哪一行的密表来进行替换,以此来对抗字频统计。

加密算法:例如密钥的字母为[d],明文对应的字母[b]。

根据字母表的顺序[d]=4,[b]=2,那么密文就是[d]+[b]-1=4+2-1=5=[e],因此加密的结果为[e]。

解密即做此逆运算。

加密公式:密文 = (明文 + 密钥) Mod 26 - 1解密公式:明文 = [26 + (密文 - 密钥)] Mod 26 + 1也可以用查表法来进行加密:例如密钥的字母为[d],明文对应的字母[b],在下图的表格第一行找到字母"d"(深蓝色),再在左边第一列找到字母"b"(绿色),两个字母的交叉点(b 行d列)就是字母"E",所以对应的密文字母为[e]。

相关主题