<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 用CPLD實(shí)現(xiàn)Gollmann密鑰流發(fā)生器

          用CPLD實(shí)現(xiàn)Gollmann密鑰流發(fā)生器

          作者:■ 重慶郵電學(xué)院 吳畏 陳廣輝 張高峰 時(shí)間:2005-03-04 來源:電子設(shè)計(jì)應(yīng)用2004年第12期 收藏

          摘    要:本文根據(jù)密鑰流發(fā)生器的原理和產(chǎn)生的程序,利用語言和,設(shè)計(jì)出密鑰流發(fā)生器。該發(fā)生器滿足一般的加密要求,可以保護(hù)信息傳輸?shù)陌踩?br/>關(guān)鍵詞:

          本文引用地址:http://www.ex-cimer.com/article/4532.htm

          引言
          對(duì)通信數(shù)據(jù)進(jìn)行加密的方法可分為兩大類:軟加密和硬加密。其中硬加密具有加密強(qiáng)度大、可靠性高等特點(diǎn)。本文根據(jù)流密碼發(fā)生器原理,用設(shè)計(jì)出了Gollmann流密碼發(fā)生器。

          原理
          密碼安全的發(fā)生器用于流密碼時(shí)十分理想,這些發(fā)生器的輸出與真正隨機(jī)的位發(fā)生器難以區(qū)分,只需將發(fā)生器的輸出與明文流異或就可以得到良好的流密碼。
          Gollmann流密碼發(fā)生器由一串LFSR(線性反饋移位寄存器)構(gòu)成,每個(gè)LFSR的時(shí)鐘由前一個(gè)LFSR控制,如果t-1時(shí)刻LFSR-1的輸出為1,則LFSR-2在t時(shí)刻階躍;如果t-1時(shí)刻LFSR-2的輸出為1,則LFSR-3在t時(shí)刻階躍,以此類推,最后一個(gè)LFSR的輸出為發(fā)生器的輸出。如果所有LFSR的長度都為l,則n個(gè)LFSR構(gòu)成的系統(tǒng)的線性復(fù)雜度為:
          l*(2l-1) n-1

          流密碼發(fā)生器的設(shè)計(jì)
          根據(jù)Gollmann流密碼發(fā)生器的原理設(shè)計(jì)的發(fā)生器的原理框圖可用MAX+plusII的電路圖方式表示,如圖1所示。
          在Gollmann流密碼發(fā)生器中,LFSR是其重要的組成部分。本文只采用了3級(jí)LFSR,其中LFSR長度為4比特,其生成多項(xiàng)式為x4+x1+1;LFSR16長度為16比特,其生成多項(xiàng)式為x16+x5+x3+x2+1;LFSR32長度為32比特,其生成多項(xiàng)式為x32+x7+x6+x2+1。
          其中LFSR的程序描述如下:
          entity lfsr is
          port(clk,en:in std_logic;
            data:out std_logic);
          end entity;
          architecture bev of lfsr is
          signal sh:std_logic_vector(0 to 3);
          begin
          process(clk,en)
          begin
           if en='0' then
            sh<="1111";
           elsif clk='1' and clk'event then
                   sh(3)<= sh(3) xor sh(0) ;
            for i in 1 to 3 loop
            sh(i-1)<=sh(i);
            end loop;
            data<=sh(0);
           end if;
          end process;
          end bev;
          Gollmann流密碼發(fā)生器的工作流程為:在初始時(shí)刻,使能信號(hào)en為1時(shí)將所有LFSR中的寄存器賦值為1。隨著時(shí)鐘clk下降沿的到來,將第一個(gè)LFSR的輸出信號(hào)與輸入信號(hào)1異或,再將其結(jié)果和clk進(jìn)行與運(yùn)算作為第二個(gè)LFSR的輸入,同時(shí)該異或結(jié)果還將和第二個(gè)LFSR的輸出進(jìn)行異或。異或后的結(jié)果既同clk做與運(yùn)算后作為第三個(gè)LFSR的輸入,同時(shí)又與第三個(gè)LFSR的輸出做異或運(yùn)算。第三次異或后的結(jié)果即為Gollmann流密碼發(fā)生器的輸出結(jié)果。
          本文選用Altera公司的MAX+plus II 10 Baseline對(duì)VHDL源程序編譯,這個(gè)工具支持VHDL的編譯和仿真。對(duì)Gollmann流密碼生成器的程序進(jìn)行仿真,結(jié)果如圖2所示。
          圖2中en為使能信號(hào),clk為50MHz的時(shí)鐘信號(hào),dataout為輸出信號(hào)。Lfsr32sh,lfsr16sh,lfsrsh為各個(gè)LFSR寄存器值的變化過程。
          在所有LFSR初始值都為1時(shí)(初始值不同,輸出的結(jié)果就有所不同),Gollmann流密碼生成器所產(chǎn)生的輸出類似于隨機(jī)序列,如圖2中dataout所示,可以滿足一般的加密要求。

          結(jié)語
          本文設(shè)計(jì)的Gollmann流密碼生成器結(jié)構(gòu)簡單,加密能力較強(qiáng),同時(shí)還可以繼續(xù)擴(kuò)充多個(gè)LFSR,以增強(qiáng)其加密功能。■

          參考文獻(xiàn)
          1 馮暉,來鳳琪,王紹銀等. 計(jì)算機(jī)密碼學(xué).中國鐵道出版社,1999
          2 趙俊超等. 集成電路的VHDL教程. 北京希望電子出版社,2002

          (收稿日期:2004-06-18)



          關(guān)鍵詞: CPLD Gollmann VHDL 偽隨機(jī)序列

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();