0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

采用3级LFSR实现Gollmann流密码发生器的设计并进行仿真验证

电子设计 来源:电子设计应用 作者:吴畏,陈广辉,张 2020-05-28 07:48 次阅读

引言

通信数据进行加密的方法可分为两大类:软加密和硬加密。其中硬加密具有加密强度大、可靠性高等特点。本文根据流密码发生器原理,用CPLD设计出了Gollmann流密码发生器。

原理

密码安全的伪随机序列发生器用于流密码时十分理想,这些发生器的输出与真正随机的位发生器难以区分,只需将发生器的输出与明文流异或就可以得到良好的流密码。

Gollmann流密码发生器由一串LFSR(线性反馈移位寄存器)构成,每个LFSR的时钟由前一个LFSR控制,如果t-1时刻LFSR-1的输出为1,则LFSR-2在t时刻阶跃;如果t-1时刻LFSR-2的输出为1,则LFSR-3在t时刻阶跃,以此类推,最后一个LFSR的输出为发生器的输出。如果所有LFSR的长度都为l,则n个LFSR构成的系统的线性复杂度为:

l*(2l-1) n-1

流密码发生器的设计

根据Gollmann流密码发生器的原理设计的发生器的原理框图可用MAX+plusII的电路图方式表示,如图1所示。

在Gollmann流密码发生器中,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流密码发生器的工作流程为:在初始时刻,使能信号en为1时将所有LFSR中的寄存器赋值为1。随着时钟clk下降沿的到来,将第一个LFSR的输出信号与输入信号1异或,再将其结果和clk进行与运算作为第二个LFSR的输入,同时该异或结果还将和第二个LFSR的输出进行异或。异或后的结果既同clk做与运算后作为第三个LFSR的输入,同时又与第三个LFSR的输出做异或运算。第三次异或后的结果即为Gollmann流密码发生器的输出结果。

本文选用Altera公司的MAX+plus II 10 Baseline对VHDL源程序编译,这个工具支持VHDL的编译和仿真。对Gollmann流密码生成器的程序进行仿真,结果如图2所示。

采用3级LFSR实现Gollmann流密码发生器的设计并进行仿真验证

图2中en为使能信号,clk为50MHz的时钟信号,dataout为输出信号。Lfsr32sh,lfsr16sh,lfsrsh为各个LFSR寄存器值的变化过程。

在所有LFSR初始值都为1时(初始值不同,输出的结果就有所不同),Gollmann流密码生成器所产生的输出类似于随机序列,如图2中dataout所示,可以满足一般的加密要求。

结语

本文设计的Gollmann流密码生成器结构简单,加密能力较强,同时还可以继续扩充多个LFSR,以增强其加密功能。

责任编辑:gt


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpld
    +关注

    关注

    32

    文章

    1248

    浏览量

    169359
  • 寄存器
    +关注

    关注

    31

    文章

    5343

    浏览量

    120345
  • 通信
    +关注

    关注

    18

    文章

    6032

    浏览量

    135990
收藏 人收藏

    评论

    相关推荐

    信号发生器仿真电路

    信号发生器仿真电路
    发表于 04-20 22:18 2723次阅读
    信号<b class='flag-5'>发生器</b><b class='flag-5'>仿真</b>电路

    [求助]基于FPGA的伪随机码发生器的设计与实现

    我想完成三种伪随机码发生器的设计,以7m序列发生器为例介绍,而M序列发生器只是比m序列多一个全零状态,Gold序列是由一对m序列模2加得到的。想请教高手,后两种如何在m序列
    发表于 04-01 10:26

    学习笔记 | 基于FPGA的伪随机数发生器(附代码)

    移位寄存(Linear Feedback Shift Register, LFSR)来实现伪随机数发生器。线性反馈移位寄存是指,给定前一
    发表于 04-21 19:42

    本原LFSR序列的迹表示及其应用

    σ -LFSR 是一基于字的LFSR 模型,它的设计充分利用了现代CPU 特点,可很好地应用于设计适合快速软件实现的序列密码算法中。而在实际应用中,本原σ -
    发表于 11-19 16:14 6次下载

    LFSR在序列密码算法ABC中的应用

    σ- LFSR 是一种基于字的,在安全性和效率上达到较好折衷的反馈移位寄存。该文利用一个σ- LFSR替代序列密码算法ABC中的LFSR
    发表于 11-20 16:29 6次下载

    发生器

    发生器
    发表于 03-03 21:20 2788次阅读
    铃<b class='flag-5'>流</b><b class='flag-5'>发生器</b>

    声场发生器3

    声场发生器3
    发表于 09-25 11:27 867次阅读
    声场<b class='flag-5'>发生器</b><b class='flag-5'>3</b>

    FPGA实现智能函数发生器设计

    FPGA实现智能函数发生器设计介绍了一种基于 FPGA 的智能函数发生器的设计.采用EDA技术对此设计进行功能
    发表于 07-25 11:00 55次下载
    FPGA<b class='flag-5'>实现</b>智能函数<b class='flag-5'>发生器</b>设计

    基于FPGA的DDS波形信号发生器的设计

    设计采用Altera公司CycloneII系列EP2C5Q208作为核心器件,采用直接数字频率合成技术实现了一个频率、相位可控的基本信号发生器。该信号
    发表于 01-22 14:45 472次下载
    基于FPGA的DDS波形信号<b class='flag-5'>发生器</b>的设计

    基于FPGA的PCIe总线接口的DMA控制实现并进行仿真验证

    本文实现的基于FPGA的PCIe总线接口的DMA控制是在Altera PHY IP和Synopsys Core IP的基础上实现的,利用Synopsys VIP验证环境
    的头像 发表于 01-11 10:57 1.3w次阅读
    基于FPGA的PCIe总线接口的DMA控制<b class='flag-5'>器</b>的<b class='flag-5'>实现</b><b class='flag-5'>并进行</b><b class='flag-5'>仿真</b><b class='flag-5'>验证</b>

    直流高压发生器的使用

    本文主要介绍了直流高压发生器的使用。直流高压发生器具有多种保护功能,如:低压过、低压过压、高压过、高压过压、零位保护、不接地保护等。故障取样采用
    发表于 01-30 16:23 2781次阅读
    直流高压<b class='flag-5'>发生器</b>的使用

    如何使用智能函数发生器进行VHDL的设计与仿真

    逻辑元件结构的硬件映射。结合FPGA/ CPLD的开发集成环境,产生了函数信号发生器的各种信号,同时完成了行为仿真、时序和功能仿真,给出了在GW48. CK型实验开发系统上实现的正弦波
    发表于 05-24 14:19 3次下载
    如何使用智能函数<b class='flag-5'>发生器</b><b class='flag-5'>进行</b>VHDL的设计与<b class='flag-5'>仿真</b>

    基于c语言的信号发生器程序及仿真

    基于c语言的信号发生器程序及仿真程序说明。
    发表于 03-18 14:22 13次下载

    函数发生器仿真

    函数发生器仿真
    发表于 06-15 15:01 9次下载

    proteus信号发生器怎么设置方波

    ,用于模拟和调试电子电路。它具有丰富的虚拟仪器库,包括示波器、信号发生器、函数发生器等。Proteus信号发生器是其中之一,可以模拟各种类型的电子信号,以便进行电路测试和
    的头像 发表于 02-23 16:44 1w次阅读