隐藏的深吧 关注:73贴子:4,691

『密码学』维吉尼亚密码

取消只看楼主收藏回复



IP属地:山东1楼2011-05-15 17:56回复
    【相关知识、概述】
    名称:Vigenère Cipher
    中译名:维吉尼亚密码/维热纳尔密码
    密吧简称:维密
    发明者:贝拉索[注1](由维吉尼亚改良[注2])
    破解者:巴比奇[注3]
    密码背景:这个密码首先应用了“密钥”的思想,其在密码届具有十分重要的意义。经过这样加密后,一个由六个字母组成的的密钥,其理论上的暴力破解工作量就将是凯撒密码[注4]的一千多万倍。
    


    IP属地:山东2楼2011-05-15 17:57
    回复
      [注1]吉奥万·巴蒂斯塔·贝拉索(Giovan Battista Bellaso,1505-?),意大利学者。其实维吉尼亚密码之前的名字是贝拉索密码,是贝拉索1553年发明的。但是由于维吉尼亚在1586年的改进,使得其加密得更为可靠,久而久之,贝拉索密码就被叫成了维吉尼亚密码。


      IP属地:山东3楼2011-05-15 17:57
      回复
        [注3]查尔斯·巴比奇(Charles Babbage,1791-1871),英国数学家,差分机的发明者,其奠定了现代计算机的基本构架。于1854年成功破解了维吉尼亚密码,结束了维吉尼亚200多年的神话。


        IP属地:山东4楼2011-05-15 17:57
        回复
          注4]凯撒密码,据说是由凯撒大帝所创造的密码,加密方法是将原文根据字母表顺序移位


          IP属地:山东5楼2011-05-15 17:57
          回复
            【加密方法】
            我们知道维密的成功之处就在于密钥的使用,所以要想加密,我们首先要有一个密钥。
            密钥的长度直接决定了破解的难度,密钥越长、越没有规律,破解的难度就越大。当密钥长度大于或等于原文长度时,维吉尼亚密码就变成了绝对不可能破解的密码了。[注5]
            


            IP属地:山东6楼2011-05-15 17:58
            回复
              我们先从一位的密钥开始。此时维吉尼亚密码就变成了凯撒密码了,加密的方法是将原文字母顺序移位密钥字母在字母表中的个数。
              例如我们使用密钥C,加密hello这个单词,根据字母表的顺序,hello加密后就为jgnnq。(注意不是khoor),如果我们使用密钥A的话,那么加密后的文字将与原文相同。
              


              IP属地:山东7楼2011-05-15 17:58
              回复
                首先是我们所熟知的维吉尼亚方阵:
                —ABCDEFGHIJKLMNOPQRSTUVWXYZ
                AABCDEFGHIJKLMNOPQRSTUVWXYZ
                BBCDEFGHIJKLMNOPQRSTUVWXYZA
                CCDEFGHIJKLMNOPQRSTUVWXYZAB
                DDEFGHIJKLMNOPQRSTUVWXYZABC
                EEFGHIJKLMNOPQRSTUVWXYZABCD
                FFGHIJKLMNOPQRSTUVWXYZABCDE
                GGHIJKLMNOPQRSTUVWXYZABCDEF
                HHIJKLMNOPQRSTUVWXYZABCDEFG
                IJKLMNOPQRSTUVWXYZABCDEFGHI
                JJKLMNOPQRSTUVWXYZABCDEFGHI
                KKLMNOPQRSTUVWXYZABCDEFGHIJ
                LLMNOPQRSTUVWXYZABCDEFGHIJK
                MMNOPQRSTUVWXYZABCDEFGHIJKL
                NNOPQRSTUVWXYZABCDEFGHIJKLM
                OOPQRSTUVWXYZABCDEFGHIJKLMN
                PPQRSTUVWXYZABCDEFGHIJKLMNO
                QQRSTUVWXYZABCDEFGHIJKLMNOP
                RRSTUVWXYZABCDEFGHIJKLMNOPQ
                SSTUVWXYZABCDEFGHIJKLMNOPQR
                TTUVWXYZABCDEFGHIJKLMNOPQRS
                UUVWXYZABCDEFGHIJKLMNOPQRST
                VVWXYZABCDEFGHIJKLMNOPQRSTU
                WWXYZABCDEFGHIJKLMNOPQRSTUV
                XXYZABCDEFGHIJKLMNOPQRSTUVW
                YYZABCDEFGHIJKLMNOPQRSTUVWX
                ZZABCDEFGHIJKLMNOPQRSTUVWXY
                第一行和第一列都是为了方便我们快速找到具体的行列所添加的。
                


                IP属地:山东8楼2011-05-15 17:58
                回复
                  其实,维吉尼亚密码就是在凯撒密码的基础之上添加了密钥的概念而形成的多表加密方法。其原理和凯撒密码很相似。
                  维密首先引入了“密钥”的思想,所以要想加密一个维吉尼亚密码,首先要做的事是找好密钥。


                  IP属地:山东9楼2011-05-15 17:58
                  回复
                    例如我们加密这样一句话:The Cipher lecture of Vigenere will be held on this Saturday.
                    我们选用cipher这个单词作为密钥,首先将原文整理如下:
                    THECIP HERLEC TUREOF VIGENE REWILL BEHELD ONTHIS SATURD AY
                    整理的原则是去掉标点、空格,统一大小写,然后根据密钥的长度分组。
                    


                    IP属地:山东10楼2011-05-15 17:59
                    回复
                      接下来要做的事情是,用C加密所有分组后的第一个字母,用I加密第二个字母,以此类推。
                      THECIP HERLEC TUREOF VIGENE REWILL BEHELD ONTHIS SATURD AY
                      CIPHER CIPHER CIPHER CIPHER CIPHER CIPHER CIPHER CIPHER CI


                      IP属地:山东11楼2011-05-15 17:59
                      回复
                        这样加密好后就是:VPTJMG JMGSIT VCGLSW XQVLRV TMLPPC DMWLPU QVIOMJ UIIBVU CG
                        然后去掉空格,加密就完成了~
                        VPTJMGJMGSITVCGLSWXQVLRVTMLPPCDMWLPUQVIOMJUIIBVUCG


                        IP属地:山东12楼2011-05-15 17:59
                        回复
                          [注5]即“一次一密”密码本,密码发送者和密码合法接收者同时持有一个相同的密码本作为密钥,其内容为随机的字母。密码本为一次性使用,发送的同时还要发送密钥的开始位置。这种密码只要密码本不被盗取,就绝对不可能被破解。


                          IP属地:山东13楼2011-05-15 17:59
                          回复
                            【解密方法】
                            由于维密不是一次一密乱码本作为的密钥,所以密钥的长度都是有限的,所以当密文越长时,我们破解出密码的可能性就越大。
                            破解方法以下题为例:
                            cgrpfrvanxsnycznbjqana
                            一般来说,密文越短越难破译,这么短的维密在之前是不可能破译的,但是应用了这种破解方式,要破维密也不是件难事。
                            『半暴力破解法』
                            之所以称之为暴力破解,是因为我们要做的事情就是逐一尝试密钥来破解,之所以成为半暴力,是因为我们不是每个密钥都尝试。具体方法如下:
                            首先假设密钥的长度,我们从2开始(如果密钥长度是1的话,维吉尼亚密码就变成了恺撒密码了)。
                            


                            IP属地:山东14楼2011-05-15 18:00
                            回复
                              首先看A行:cg rp fr va nx sn yc zn bj qa na
                              当密钥第一个字母为A的时候,密码中出现了v、z、q等多个低频率的字母,所以密钥的第一个字母不是Z;
                              当密钥第二个字母为A的时候,密码中出现了x、c、j等多个低频率的字母,所以密钥的第二个字母也不是Z
                              再看Z行:dh sq gs wb oy to zd ao ck rb ob
                              同理可知密钥的第一、二个字母都不是Z。
                              以此类推,可以发现:只有密钥的第一个字母为M时才基本符合标准频率,而第二个字母为O或M时才基本符合标准频率。
                              然后将两组组合一下:
                              当密钥为MO时,密码无意义,舍;
                              当密钥为MM时,密码无意义,舍。
                              至此可以判断出,密钥的长度不是2。
                              


                              IP属地:山东16楼2011-05-15 18:02
                              回复