<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

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

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

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

摘    要:本文根據密鑰流發(fā)生器的原理和產(chǎn)生的程序,利用語(yǔ)言和,設計出密鑰流發(fā)生器。該發(fā)生器滿(mǎn)足一般的加密要求,可以保護信息傳輸的安全。
關(guān)鍵詞: ; ;;

本文引用地址:http://dyxdggzs.com/article/4532.htm

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

原理
密碼安全的發(fā)生器用于流密碼時(shí)十分理想,這些發(fā)生器的輸出與真正隨機的位發(fā)生器難以區分,只需將發(fā)生器的輸出與明文流異或就可以得到良好的流密碼。
Gollmann流密碼發(fā)生器由一串LFSR(線(xiàn)性反饋移位寄存器)構成,每個(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í)刻階躍,以此類(lèi)推,最后一個(gè)LFSR的輸出為發(fā)生器的輸出。如果所有LFSR的長(cháng)度都為l,則n個(gè)LFSR構成的系統的線(xiàn)性復雜度為:
l*(2l-1) n-1

流密碼發(fā)生器的設計
根據Gollmann流密碼發(fā)生器的原理設計的發(fā)生器的原理框圖可用MAX+plusII的電路圖方式表示,如圖1所示。
在Gollmann流密碼發(fā)生器中,LFSR是其重要的組成部分。本文只采用了3級LFSR,其中LFSR長(cháng)度為4比特,其生成多項式為x4+x1+1;LFSR16長(cháng)度為16比特,其生成多項式為x16+x5+x3+x2+1;LFSR32長(cháng)度為32比特,其生成多項式為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í)刻,使能信號en為1時(shí)將所有LFSR中的寄存器賦值為1。隨著(zhù)時(shí)鐘clk下降沿的到來(lái),將第一個(gè)LFSR的輸出信號與輸入信號1異或,再將其結果和clk進(jìn)行與運算作為第二個(gè)LFSR的輸入,同時(shí)該異或結果還將和第二個(gè)LFSR的輸出進(jìn)行異或。異或后的結果既同clk做與運算后作為第三個(gè)LFSR的輸入,同時(shí)又與第三個(gè)LFSR的輸出做異或運算。第三次異或后的結果即為Gollmann流密碼發(fā)生器的輸出結果。
本文選用Altera公司的MAX+plus II 10 Baseline對VHDL源程序編譯,這個(gè)工具支持VHDL的編譯和仿真。對Gollmann流密碼生成器的程序進(jìn)行仿真,結果如圖2所示。
圖2中en為使能信號,clk為50MHz的時(shí)鐘信號,dataout為輸出信號。Lfsr32sh,lfsr16sh,lfsrsh為各個(gè)LFSR寄存器值的變化過(guò)程。
在所有LFSR初始值都為1時(shí)(初始值不同,輸出的結果就有所不同),Gollmann流密碼生成器所產(chǎn)生的輸出類(lèi)似于隨機序列,如圖2中dataout所示,可以滿(mǎn)足一般的加密要求。

結語(yǔ)
本文設計的Gollmann流密碼生成器結構簡(jiǎn)單,加密能力較強,同時(shí)還可以繼續擴充多個(gè)LFSR,以增強其加密功能?!?/p>

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

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



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

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>