资源描述:
《vigenere cipher密码解码》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、VigenereCipher解密一、实验任务VigenereCipher加密密文如下:KVNIICWZSNOHUNXQGMRNAHUVWPTBWBPKVYPTBASHRZVIIWIBCGJSGEYGFMOAKBTBJKMAQEGSQJIJHTRGJSFRXTNBVFVCORWGENSIKRRAXVAIHNNZZRRCKMQEGOGRHGJCOYKVNIICWZSNOHUNXQGMRNACAGLGKMRUKZYFSHZMCEIWNGLGLWBFQTSBVOXZGYCJRFEPWBVRUCAFSHYWFZG
2、FFYEXXWKAGFFJMNEJSNDZRGSUBBRBYBGBKGMPSECHGUIVTJZRQTOESVAMFUQCQVLCOMOQTSNZXJTBCAGRNLIXXVHUGGGNXGHNAVUGVFWKIXWNUHNGIUPMZGGFVAKYBBVGJSUREVHNWALIFGMEXAKRNHREMPZEWGJHURLGTBCSQDCEIULQCAYWYYFGMZOAUTBEQGWQBGQOABEUBACSHFRRHQFIBQLIFGMEX请写出详细解密过程。二、Vigenere加密与解密Vig
3、enere加密为单表代换密码,其加密过程可表述为:设m是一个正整数,定义P=C=K=(Z26)m,对任意的密钥K=(k1,k2,…,km),定义eKx1,x2,…,xm=(x1+k1,x2+k2,…,xm+km)和dKy1,y2,…,ym=(y1-k1,y2-k2,…,ym-km)为Vigenere加密和解密过程,以上所有运算都在(Z26)m上进行。三、Vigenere密文的破译Vigenere解密首先在于确定密钥长度m,意大利的乔瓦·尼·波塔于1602年首先发现Vigenere明/密文中重复字母串的距
4、离正好是密钥长度的倍数,这一现象称为“合拍”现象。由此出发,产生的确定m长度常用方法有两种:方法一是Kasiski测试法;方法二是重合指数法。重码分析法思路认为间距是密钥长度整数倍的相同子串有相同密文,反过来,密文中两个相同的子串对应的密文相同的可能性很大。但此时需要注意真重复与偶然重复,需要剔除偶然重复,取真重复距离的因数作为密钥长度m。Kasiski测试法思路是对一份用周期性多表密码加密的密文,确定其中所有的重复出现的字母串,计算他们之间的距离,并对这些距离进行因子分解,出现频率较高的因子很可能是密
5、钥的长度。两种方法本质思想是相同的,具有异曲同工之妙。本文将采用Kasiski测试法破译上述密文。根据密文,可以统计重复字母序列及其之间的距离(统计代码见附件),一部分列表如下,重复字母串位置距离素数因子分解KVNIICWZSNOHUNXQGMRNA01301302*5*13LIFGMEX350430802*2*2*2*5PTB253493*3GJS493392902*5*29QEG68118502*5*5CAG151288137137GLG153173202*2*5FSH163203402*2*2*5
6、CEI1683822142*107QTS180279993*3*11GFF210220102*5TBC286376902*3*3*5FGM394432382*19SN8281273273HU113713602*2*2*3*3*5NX133032902*5*29QG15404389389GM164334173*139MR171571402*2*5*7RN18359341341NA193072882*2*2*2*2*3*3TB264013753*5*23WB281961682*2*2*3*7KV311309
7、93*3*11上述密文重复字符串中,部分是由于偶然因素导致重复的,直觉判断可知长度较长字符串偶然重复概率极低,因此首先认为字符串KVNIICWZSNOHUNXQGMRNA、LIFGMEX为真重复,其最大公约数为10。进一步观测,可以发现大多数重复序列的距离都包含因数10。下面从概率角度考虑,密文字符串发生重复的概率。设y是一个长度为n密文,即y=y1y2…ym,其中yi是密文字母,求从中抽到两个相同字母的概率是多少?为此,设NA为字母A在这份密文中的频数,设NB为字母B在这份密文中的频数,依此类推。从n
8、个密文字母中抽取两个字母的方式有Cn2=n(n-1)/2,而其中NA个A组成一对A的方式有CNA2=NA(NA-1)/2,于是从y中抽到两个字母都为A的概率为[NA(NA-1)]/[n(n-1)],因此,从y中抽到两个相同字母的概率为:i=AZNi(Ni-1)n(n-1),这个数据称为这份密文的重合指数,记为IC。根据概率论中的大数定律,如果y是用单表加密的,那么当n较大时,IC很可能接近于0.0687。现在选取m=10,将密文一行一行写在