0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

采用3級LFSR實現(xiàn)Gollmann流密碼發(fā)生器的設(shè)計并進行仿真驗證

電子設(shè)計 ? 來源:電子設(shè)計應(yīng)用 ? 作者:吳畏,陳廣輝,張 ? 2020-05-28 07:48 ? 次閱讀

引言

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

原理

密碼安全的偽隨機序列發(fā)生器用于流密碼時十分理想,這些發(fā)生器的輸出與真正隨機的位發(fā)生器難以區(qū)分,只需將發(fā)生器的輸出與明文流異或就可以得到良好的流密碼。

Gollmann流密碼發(fā)生器由一串LFSR(線性反饋移位寄存器)構(gòu)成,每個LFSR的時鐘由前一個LFSR控制,如果t-1時刻LFSR-1的輸出為1,則LFSR-2在t時刻階躍;如果t-1時刻LFSR-2的輸出為1,則LFSR-3在t時刻階躍,以此類推,最后一個LFSR的輸出為發(fā)生器的輸出。如果所有LFSR的長度都為l,則n個LFSR構(gòu)成的系統(tǒng)的線性復(fù)雜度為:

l*(2l-1) n-1

流密碼發(fā)生器的設(shè)計

根據(jù)Gollmann流密碼發(fā)生器的原理設(shè)計的發(fā)生器的原理框圖可用MAX+plusII的電路圖方式表示,如圖1所示。

在Gollmann流密碼發(fā)生器中,LFSR是其重要的組成部分。本文只采用了3級LFSR,其中LFSR長度為4比特,其生成多項式為x4+x1+1;LFSR16長度為16比特,其生成多項式為x16+x5+x3+x2+1;LFSR32長度為32比特,其生成多項式為x32+x7+x6+x2+1。

其中LFSR的VHDL程序描述如下:

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ā)生器的工作流程為:在初始時刻,使能信號en為1時將所有LFSR中的寄存器賦值為1。隨著時鐘clk下降沿的到來,將第一個LFSR的輸出信號與輸入信號1異或,再將其結(jié)果和clk進行與運算作為第二個LFSR的輸入,同時該異或結(jié)果還將和第二個LFSR的輸出進行異或。異或后的結(jié)果既同clk做與運算后作為第三個LFSR的輸入,同時又與第三個LFSR的輸出做異或運算。第三次異或后的結(jié)果即為Gollmann流密碼發(fā)生器的輸出結(jié)果。

本文選用Altera公司的MAX+plus II 10 Baseline對VHDL源程序編譯,這個工具支持VHDL的編譯和仿真。對Gollmann流密碼生成器的程序進行仿真,結(jié)果如圖2所示。

采用3級LFSR實現(xiàn)Gollmann流密碼發(fā)生器的設(shè)計并進行仿真驗證

圖2中en為使能信號,clk為50MHz的時鐘信號,dataout為輸出信號。Lfsr32sh,lfsr16sh,lfsrsh為各個LFSR寄存器值的變化過程。

在所有LFSR初始值都為1時(初始值不同,輸出的結(jié)果就有所不同),Gollmann流密碼生成器所產(chǎn)生的輸出類似于隨機序列,如圖2中dataout所示,可以滿足一般的加密要求。

結(jié)語

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

責任編輯:gt


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • cpld
    +關(guān)注

    關(guān)注

    32

    文章

    1246

    瀏覽量

    169152
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5295

    瀏覽量

    119836
  • 通信
    +關(guān)注

    關(guān)注

    18

    文章

    5950

    瀏覽量

    135788
收藏 人收藏

    評論

    相關(guān)推薦

    信號發(fā)生器仿真電路

    信號發(fā)生器仿真電路
    發(fā)表于 04-20 22:18 ?2705次閱讀
    信號<b class='flag-5'>發(fā)生器</b><b class='flag-5'>仿真</b>電路

    [求助]基于FPGA的偽隨機碼發(fā)生器的設(shè)計與實現(xiàn)

    我想完成三種偽隨機碼發(fā)生器的設(shè)計,以7m序列發(fā)生器為例介紹,而M序列發(fā)生器只是比m序列多一個全零狀態(tài),Gold序列是由一對m序列模2加得到的。想請教高手,后兩種如何在m序列
    發(fā)表于 04-01 10:26

    學(xué)習(xí)筆記 | 基于FPGA的偽隨機數(shù)發(fā)生器(附代碼)

    移位寄存(Linear Feedback Shift Register, LFSR)來實現(xiàn)偽隨機數(shù)發(fā)生器。線性反饋移位寄存是指,給定前一
    發(fā)表于 04-21 19:42

    LFSR在序列密碼算法ABC中的應(yīng)用

    σ- LFSR 是一種基于字的,在安全性和效率上達到較好折衷的反饋移位寄存。該文利用一個σ- LFSR替代序列密碼算法ABC中的LFSR,
    發(fā)表于 11-20 16:29 ?6次下載

    發(fā)生器

    發(fā)生器
    發(fā)表于 03-03 21:20 ?2770次閱讀
    鈴<b class='flag-5'>流</b><b class='flag-5'>發(fā)生器</b>

    聲場發(fā)生器3

    聲場發(fā)生器3
    發(fā)表于 09-25 11:27 ?856次閱讀
    聲場<b class='flag-5'>發(fā)生器</b><b class='flag-5'>3</b>

    FPGA實現(xiàn)智能函數(shù)發(fā)生器設(shè)計

    FPGA實現(xiàn)智能函數(shù)發(fā)生器設(shè)計介紹了一種基于 FPGA 的智能函數(shù)發(fā)生器的設(shè)計.采用EDA技術(shù)對此設(shè)計進行功能
    發(fā)表于 07-25 11:00 ?55次下載
    FPGA<b class='flag-5'>實現(xiàn)</b>智能函數(shù)<b class='flag-5'>發(fā)生器</b>設(shè)計

    基于FPGA的DDS波形信號發(fā)生器的設(shè)計

    設(shè)計采用Altera公司CycloneII系列EP2C5Q208作為核心器件,采用直接數(shù)字頻率合成技術(shù)實現(xiàn)了一個頻率、相位可控的基本信號發(fā)生器。該信號
    發(fā)表于 01-22 14:45 ?472次下載
    基于FPGA的DDS波形信號<b class='flag-5'>發(fā)生器</b>的設(shè)計

    基于FPGA的PCIe總線接口的DMA控制實現(xiàn)并進行仿真驗證

    本文實現(xiàn)的基于FPGA的PCIe總線接口的DMA控制是在Altera PHY IP和Synopsys Core IP的基礎(chǔ)上實現(xiàn)的,利用Synopsys VIP驗證環(huán)境
    的頭像 發(fā)表于 01-11 10:57 ?1.3w次閱讀
    基于FPGA的PCIe總線接口的DMA控制<b class='flag-5'>器</b>的<b class='flag-5'>實現(xiàn)</b><b class='flag-5'>并進行</b><b class='flag-5'>仿真</b><b class='flag-5'>驗證</b>

    直流高壓發(fā)生器的使用

    本文主要介紹了直流高壓發(fā)生器的使用。直流高壓發(fā)生器具有多種保護功能,如:低壓過、低壓過壓、高壓過、高壓過壓、零位保護、不接地保護等。故障取樣采用
    發(fā)表于 01-30 16:23 ?2746次閱讀
    直流高壓<b class='flag-5'>發(fā)生器</b>的使用

    如何使用智能函數(shù)發(fā)生器進行VHDL的設(shè)計與仿真

    邏輯元件結(jié)構(gòu)的硬件映射。結(jié)合FPGA/ CPLD的開發(fā)集成環(huán)境,產(chǎn)生了函數(shù)信號發(fā)生器的各種信號,同時完成了行為仿真、時序和功能仿真,給出了在GW48. CK型實驗開發(fā)系統(tǒng)上實現(xiàn)的正弦波
    發(fā)表于 05-24 14:19 ?3次下載
    如何使用智能函數(shù)<b class='flag-5'>發(fā)生器</b><b class='flag-5'>進行</b>VHDL的設(shè)計與<b class='flag-5'>仿真</b>

    使用VHDL硬件描述語言實現(xiàn)基帶碼發(fā)生器的程序設(shè)計與仿真

    本文檔的主要內(nèi)容詳細介紹的是使用VHDL硬件描述語言實現(xiàn)基帶碼發(fā)生器的程序設(shè)計與仿真免費下載。
    發(fā)表于 01-20 13:44 ?16次下載
    使用VHDL硬件描述語言<b class='flag-5'>實現(xiàn)</b>基帶碼<b class='flag-5'>發(fā)生器</b>的程序設(shè)計與<b class='flag-5'>仿真</b>

    基于c語言的信號發(fā)生器程序及仿真

    基于c語言的信號發(fā)生器程序及仿真程序說明。
    發(fā)表于 03-18 14:22 ?13次下載

    函數(shù)發(fā)生器仿真

    函數(shù)發(fā)生器仿真
    發(fā)表于 06-15 15:01 ?9次下載

    proteus信號發(fā)生器怎么設(shè)置方波

    ,用于模擬和調(diào)試電子電路。它具有豐富的虛擬儀器庫,包括示波器、信號發(fā)生器、函數(shù)發(fā)生器等。Proteus信號發(fā)生器是其中之一,可以模擬各種類型的電子信號,以便進行電路測試和
    的頭像 發(fā)表于 02-23 16:44 ?8686次閱讀