伪随机序列PLD

上传人:飞*** 文档编号:53184545 上传时间:2018-08-28 格式:PDF 页数:6 大小:223.18KB
返回 下载 相关 举报
伪随机序列PLD_第1页
第1页 / 共6页
伪随机序列PLD_第2页
第2页 / 共6页
伪随机序列PLD_第3页
第3页 / 共6页
伪随机序列PLD_第4页
第4页 / 共6页
伪随机序列PLD_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《伪随机序列PLD》由会员分享,可在线阅读,更多相关《伪随机序列PLD(6页珍藏版)》请在金锄头文库上搜索。

1、伪随机序列的发生器一、背景说明互联网的飞速发展,在方便信息交互的同时也给人们的隐私带来了极大的威胁,信息安全与保密变得日益重要1,随着计算机、单片机技术的发展和广泛应用,软件加密成为知识产权保护的重要手段。目前微机软件加密的方法可分为两大类:软加密和硬加密。软加密主要有密码方式、软件自校验方式、钥匙盘方式等多种, 但随着解密软件的大量出现,软加密的安全隐患逐渐暴露了出来,硬加密由于具有加密强度大、可靠性高等特点,已广泛用于微机软件保护,利用PLD器件本身的加密保护特性,由其产生的伪随机序列实现单片机DSP系统和计算机应用程序的加密,具有简单方便,解密难度大的特点,同样可用PLD器件实现更复杂的

2、加密方法如 EDS2,随着 FPGA在电子领域越来越广泛地应用,在很多高速测试和高安全性能要求的环境中,我们希望并且能够用FPGA实现伪随机序列发生器,基于这样的想法,根据参考的资料学习了伪随机序列产生的原理,并用verilog进行了编程实践。二、理论说明一伪随机序列伪随机序列或称伪随机码,它是模仿随机序列的随机特性而产生的一种码字,也称为伪噪声序列或伪噪声码。在数字通信中,伪随机序列有许多种,m序列就是其中一种并得到了广泛的应用。伪随机序列有如下几个特点:1. 具有良好的伪随机性,即应具有和随机序列类似的随机性。2. 具有良好的自相关、互相关和部分相关特性,即要求自相关峰值尖锐,而互相关和部

3、分相关值接近于零。这是为了接收端的准确检测,以减小差错。3. 随机序列的数目足够多,以保证在码分多址的通信系统中,有足够多的地址提供给不同的用户。4. 设备简单,易实现,成本低。在通信工程应用中,常采用二进制伪随机序列,因此在序列中只有“0”和“1”两种状态。 二进制伪随机序列一般是通过移位寄存器加反馈电路共同来产生的。这种反馈移位寄存器可分为线性反馈和非线性的反馈移位寄存器两种。其中由线性反馈移位寄存器产生的周期最长的二进制数字序列叫做最大长度线性反馈移位寄存器序列,也称m序列。m序列具有以下特点:(1)均衡性m序列在在一个周期内“1”和“ 0”的个数基本相等。具体来说,m序列的一个周期中的

4、“0”的个数比“1”的个数少一个。(2)游程规律性一般来说,在m序列中,长度为1 的游程占游程总数的一半;长度为2的游程占游程总数的1/4 ;依次类推。( 3)移位相加特性一个 m序列 Mp与其经任意次迟延移位产生的另一不同序列Mr,模 2 相加,得到的仍是 Mp的某次迟延移位序列Ms ( 4)较强的自相关性和互相关性上面讨论的m序列由于具有很好的伪噪声性质,并且产生方法比较简单,所以受到广泛的应用。二伪随机序列发生器的硬件实现2 伪随机序列发生器的初始状态由微处理器中SEED 寄存器提供的,而SEED 寄存器的位数为8 位,所以需要设计一种8 位的伪随机序列发生器,它的本原多项式为:1111

5、(m od 2)1nniniinknkacaaak伪随机序列发生器结构如图所示:图中 Ci 代表本原多项式中各项的系数常见的本源多项式一般可写作1()()inn iikiiikikfxc xfxc x简 化 为如:23()1fxxx这样我们就可以对这个本原多项式进行编码表示, 上述式子可表示为1101. 这样就可以将其通信传输。三伪随机序列加密、解密原理2 用 m序列将携带信息的数字信号在系统结构上随机化,即”白化”,以达到隐藏信息的目的,对于01 序列,在是现实时只需要将m序列与原信号进行异或处理,就能得到密文,由于m序列的自身特性,得到的密文是类似白噪声的伪随机序列。将这种加密序列在信道里

6、传输,即便是被他人窃听了也无法理解其内容。到信号到达接收端时,需要对信号进行解密以恢复信号, 解密时只有用与加密时完全相同的m序列对密文进行再次异或才能还原出原信号,这样的做法保证了只有在得到正确密钥及m序列时,才能得到传送的真实信息,整个过程原理图如下:三、实验代码 1. 伪随机序列发生器module randomization(clk, start, rst, valid_in, DataIn, sync_in, DataOut, sync_out); parameter PacketLength = 8d188; / 输入/ 输出端口定义input clk, start, rst, va

7、lid_in, sync_in; input 7:0 DataIn; output 7:0 DataOut; output sync_out; / 变量定义reg 7:0 DataOut; reg sync_out; reg 7:0 ByteCount; reg 3:0 PackCount; reg 15:1 m_sequence; reg 7:0 m_seq_reg; / 程序主体always (posedge clk or posedge rst)begin: Randomization integer i; reg 15:1 temp_seq; reg 7:0 temp_reg; if(

8、rst) begin ByteCount =0; i=i-1) begin temp_regi = temp_seq15temp_seq14; temp_seq = temp_seq14:1, temp_regi; end m_sequence = temp_seq; m_seq_reg = temp_reg; case(ByteCount) 8h01: begin / 每一包的第一个字节if(PackCount = 1) begin / 每一帧的第一包DataOut = DataIn; / 同步字节翻转ByteCount = 2; end else begin / 每一帧的随后7 个包Dat

9、aOut = DataIn; / 同步字节保持不变ByteCount = 2; end end PacketLength: begin if(PackCount=8) PackCount = 1; else PackCount = PackCount + 1; ByteCount = 1; DataOut = DataIn m_seq_reg; end default: begin ByteCount = ByteCount +1; DataOut = DataIn m_seq_reg; end endcase end sync_out = sync_in; end else begin sy

10、nc_out, DataOut = sync_in, 8h00; end end endmodule 2. 加密由 m序列设计思想可知,上述模块已经在产生m序列的同时对输入信号进行了加密,并输出到了DataOut 序列中,顾直接调用上述模块即可。module randomization(clk, start, rst, valid_in, DataIn, sync_in, DataOut, sync_out); 3. 解密解密与加密的操作完全相同,不同的只是输出与出入调换了, 所以我们依然可以调用上述模块module randomization(clk, start, rst, valid_i

11、n, .DataIn(DataOut), sync_in, .DataOut(Data), sync_out); 其中 DataOut 为加密得到的序列,而Data 为还原出的序列。四、仿真效果 我们对其进行了加密仿真实验,等加密数据为0 71 2 3 4 5 ,13 在第一个周期结束时令sync 等于 1 并且持续一个周期。理论上应该得 到结果为: 0 0 184 1 245 12 49 54 191 171 154 195 99 187最终仿 真结果为:可以看出与预估结果一致 , 由于解密过程只是再次调用上述模块,就没 有进一步验证结果。五、结论m伪随机序列具有叫好的随机性与自相关性,所以能用来载波产生 白噪声信号用于数据加密,由于算法简单,处理时间较短,所以具有很 好的实用价值, 但是不过,它也有一个很大缺点, 就是其周期限制于 (2n 一 1),n l 、2、3、, 。当n 较大时,相邻周期相距较远,有时不能从 m序列得到所需周期的伪随机序列。另外一些伪随机序列的周期所必须 满足的条件与 m序列的不同,因此可以得到一些其他周期的序列;即使 周期与 m序列相同,其结构也不一定相同。这些不同周期和结构的序列 可以互相补充,提供我们选用。六、参考文献1 一种基于 m序列的图像随机加密与实时传输方案. 2 伪随机序列及PLD实现在程序和系统加密中的应用

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号