伪随机二进制序列(精选7篇)
伪随机二进制序列 第1篇
探地雷达是近20年迅速发展起来的一种新型探测新技术。由于其具有无损害、快速经济、分辨率高、灵活方便、高效、实时图像显示等优点, 探地雷达成为地下探测技术中最具有应用前景和发展前途的方法之一。探地雷达已在工程勘察、水利隐患探测、工程质量探测、地下管网探测以及考古等领域得到了广泛应用[1]。
目前的探地雷达主要用于浅层探测, 最大探测深度大约为3m。由于硬件电路较为简单, 无载波冲激体制的探地雷达是目前应用最为广泛的探地雷达, 但是无载波冲激体制的探地雷达辐射能量较小、接收效率比较低。该文设计的探地雷达能用于深层探测, 理论探测深度可达到100多米, 并且采用有载波的伪随机二进制序列相位编码方式, 增大了辐射能量。
现有的探地雷达主控系统大多由众多分立的中小规模集成元件搭建而成, 存在系统功能无法升级, 整板功耗较大, 电路焊点和元件间走线数目多的缺点, 而且电路板调试工作量大, 日后维护中出现故障也不易定位[2]。本文针对主控系统功能需求和特点, 研制了一种新型的主控系统, 解决了上述问题。
1 基本原理
探地雷达 (GroundPenetratingRadar, GPR) 依据电磁波脉冲在地下传播的原理进行工作。发射天线将高频 (106109Hz或更高) 的电磁波以宽带短脉冲形式送入地下, 被地下介质 (或埋藏物) 发射, 然后由接收天线接收。电磁波在介质中传播时, 其路径、电磁场强度与波形将随所通过介质的电磁性质及几何形态而变化[3], 因此, 可根据接收到的波的反射时间、幅度与波形特征等信息推断介质的结构。探地雷达系统一般由PC机、雷达主控系统、天线与收/发电路等组成, 其系统结构如图1所示。
电磁波在表层下传播会有能量损耗, 这就限制了雷达的探测深度。对于深层探测, 主要的限制是信号的衰减很大, 频率越高, 衰减越大, 探测深度越浅。要想提高探测深度就要降低频率, 但是降低频率又会使分辨率变坏, 所以要在探测深度和分辨率上找到一个合适的折中点。该文的雷达系统主要是为了实现深层探测, 对分辨率要求相对较低, 所以本文选用频率为10 MHz的信号, 以得到较高的探测深度。
探测深度和发射机的功率密切相关, 跟发射机有重要关系的是平均发射功率, 而不是峰值功率。对于特定的脉冲重复频率 (PRF) 来说, 增加脉冲长度可以增加平均功率, 但是同时降低了距离分辨率。这个问题可以通过扩展频谱和使用相关脉冲压缩技术来解决。典型的方法有步进调频 (stepped FM) , 直接顺序相位调制 (Direct Sequence phase modulation) 。本文采用的是用伪随机二进制序列 (Pseudo Random Binary Sequence, PRBS) 进行相位调制, 可以达到增加发射平均功率的目的。其中, 伪随机二进制序列 (Pseudo Random Binary Sequence, PRBS) 是一种可以预先确定并可以重复地产生和复制, 又具有随机统计特性的二进制码序列。之所以称其为伪随机序列, 是因为它表现出白噪声采样序列的统计特性, 在不知其生成方法的侦听者看来像真的随机序列一样[4]。它的这些特点使得信号的抗噪声性能较好。
2系统的指标要求
根据项目需求, 该主控系统需要完成的功能有:系统发射信号的产生、系统定时信号的产生、回波信号采样、数据预处理和传输等;性能指标如表1所示。
3主控系统的方案设计
主控系统处于整个雷达系统的中心地位, 通过屏蔽性能良好的电缆与发射机和接收机相连, 控制发射信号的产生和回波信号的采样。主控系统使用USB与计算机进行数据通信, 接收控制参数, 上传采集数据。
由于FPGA具有体积小, 功耗低, 开发周期短, 配置灵活等优点, 它非常适合实现逻辑控制, 产生具有同步时序关系的并行控制信号, 并集成实现逻辑接口。本文采用Xilinx公司spartan系列的XC3S2000-FGG456作为主控FPGA芯片实现专用的逻辑功能。它拥有333个可编程用户管脚, 40 960个四输入查找表 (LUT) 和触发器 (Flip-Flops) 等可编程逻辑资源, 320 Kbits的分布式 (Distributed) RAM和720 Kbits的BLOCK RAM等其它硬件资源[5], 该款FPGA性价比较高。
主控系统的硬件设计框图如图2所示, 以单片FPGA为核心, 主要包括以下几个模块:发射信号产生模块, A/D模块, USB微控制器模块和定时控制模块。其中, 发射信号产生模块主要由D/A, flash和滤波器组成, 用来产生经过BPSK调制的PRBS序列;A/D模块用于对回波信号进行采样, 并在FPGA内对其进行预处理;USB微控制器模块用于在雷达工作之前发送雷达参数并把预处理后的数据传送给PC机;定时控制模块用于产生PRF (脉冲重复频率) 和保护信号。
3.1发射信号产生模块
本论文将PC机上调制好的PRBS码序列存储起来, 在时钟和PRF的作用下将序列送给D/A, 再经过滤波器输出脉冲信号。本探地雷达系统的目的是深层探测, 所以需要的码长较长, 短的码序列可以选择存储在FPGA的BLOCK RAM中, 但是低端FPGA的BLOCK RAM容量都在1 Mbit以下, 不满足本系统要求;而具有稍大容量BLOCK RAM的FPGA价格昂贵, 所以需要考虑使用外部存储器件。外部存储器件FIFO和EEPROM容量不能满足系统要求, 本主控系统选择使用flash存储长码序列。码长最长为65 536, 信号带宽为10 M, D/A的采样位数为14 bit, 时钟为60 M, 需要存储的数据的宽度为14 bit, 深度为
3.2A/D模块
A/D模块用来对回波信号进行采样, 其核心就是ADC。根据系统性能指标的要求, ADC的采样频率为60 M, 采样位数为14 bit, 有效位数≥10 bit, 所以本文选取TI公司的ADS6143, 该芯片是一款单通道低功耗模拟/数字转换器, 最高采样频率80 MSPS, 采样位数为14 bit, 有效位数为12 bit, 可以选取并行的CMOS输出和DDR LVDS输出, 支持正弦, LVCMOS, LVPECL, LVDS时钟输入。本系统采用并行CMOS输出和LVCOMS时钟输入。该款ADC还可以通过FPGA配置多种工作模式, 使用较灵活。A/D采样的数据需要经过FPGA进行预处理, 然后经过USB传给PC机。
3.3USB模块
对于以FPGA为主控芯片的系统, 选择带有USB接口的微控制器实现USB应用较好。本系统选用Cypress公司的FX2LP系列USB微控制器CY7C68013A, 它在功能上兼容FX2系列的CY7C68013。它集成了USB2.0串行接口引擎 (SIE) , 含有微控制器8051, 能自动完成USB事务处理, 无需FPGA响应处理USB事务。CY7C68013A作为从设备时, 其接口模式为slave FIFO, CY7C68013A把片上总量为4 KB的“量子FIFO”作为USB串行接口引擎与外部设备交换数据的缓存。FPGA可把CY7C68013A视为四个端点 (EP2、EP4、EP6、EP8) 异步FIFO, 直接进行16位数据读写, 无需8051干预[6]。
本系统只用到了EP2和EP6两个端点, 其中EP2作为OUT端口, EP6作为IN端口, 两个端点FIFO均配置为4重缓冲, 充分利用了8块512字节的“量子FIFO”缓存。CY7C68013A固件开发使用Cypress公司提供的通用固件程序框架, 只须在相应流程的函数体中添加用户代码。由于其工作在从模式, 系统空闲时反复循环调用的TD_Poll () 函数体中不需要添加任何用户代码, 只需修改8051复位后初始化函数输TD_Init () 函数体, 完成CPU配置, 接口配置, 端点2和端点6及其FIFO配置等, 修改好的固件程序通过I2C接口从片外E2PROM加载固件代码, E2PROM选用16 KB容量的24LC64。
3.4定时控制模块
定时控制模块主要是根据基准信号, 按照与基准信号的延时关系产生各路触发脉冲信号和选通信号。本系统采用在FPGA内部通过软件编程的方法来实现定时信号的产生。时间基准由外部的温补晶振提供, 在FPGA内部通过分频产生系统需要的脉冲重复频率, 其中分频码可以通过输入控制参数改变。各路定时信号以脉冲重复频率为参考进行不同的延时。仿真结果如图3所示, 由图3可以看出, 通过这种方法可以产生不同脉宽, 不同延时时间的定时信号。
4测试结果
4.1控制功能测试
该系统进行工作时, 首先需要PC机通过USB向系统发送参数。发送参数的面板如图4所示。其中, 发射脉冲宽度表示一个PRF周期发送多少点的数据, 脉冲重复频率单位为kHz, 回波采样起始和回波窗长度都是表示点数, 接收增益控制是发送给接收电路的控制参数, 发射码长度可以选择发射短码或长码。根据性能指标要求, 这几个指标可以根据实验要求进行选择。
4.2信号产生功能测试
图5为该系统产生的发射信号波形图。由此可以得出信号幅度为-0.8 dBm, 码宽为100 ns, 符合系统的要求。受D/A性能的影响, 相位改变时并不能像理想那样回到零点, 并且码字结束后会有少许拖尾。但是由于PRBS序列具有其独特的优越性, 并经过实践证明, 这两个因素不会对结果造成较大影响。经测试, 该系统产生时钟信号的上升沿小于6 ns, 时钟周期可编程, 步进精度为1 Hz。满足系统的性能要求。
4.3系统性能测试
为了验证该主控系统的性能指标, 将产生的发射信号直接经过A/D采样和预处理后, 通过USB将数据传送给PC机进行数据后处理。图6和图7分别为码长为512和4 096时经过处理后的图形。码长为512时, 峰值旁瓣比 (PSR) 理想为27 dBm, 实际测试为26.1 dBm;码长为4 096时, 峰值旁瓣比 (PSR) 理想为36 dBm, 实际测试为35.2 dBm。可以看出, 该主控系统的性能与理想值非常接近, 能满足实际要求。
5结束语
本文设计的PRBS深层探地雷达主控系统, 其控制逻辑数字功能全部集成到单片FPGA实现, 降低了系统实现的难度, 硬件设计集成化较高, 大大减少了元件和走线数目。本主控系统经过实际测试, 达到了要求的功能和指标, 工作稳定可靠, 且具有可重新配置能力, 可以改变PRF, 回波窗起始, 回波窗长度和接收机增益控制等参数, 能适应不同的情况。整个主控系统功耗小于5瓦, 适合野外作业。
摘要:提出了利用伪随机二进制序列 (PRBS) 实现深层探测的探地雷达主控系统的设计方案, 同时完成了该主控系统的硬件设计任务。主控系统由单片现场可编程逻辑阵列 (FPGA) 来实现, 集成度较高。通过实验验证, 该主控系统能够完成系统发射信号产生, 定时信号产生, 回波信号采样, 数据传输, 参数控制等功能, 满足设计指标要求。
关键词:伪随机二进制序列,探地雷达,现场可编程逻辑阵列,主控系统
参考文献
[1]张广军, 陆珉, 黄春琳.基于高性能DDS芯片AD9959的超宽带步进频率探地雷达技术.电子工程师, 2008;34 (4) :10—12
[2]张康, 周斌, 方广有.无载频脉冲探地雷达主控系统小型化设计.微计算机信息, 2007;23 (12) :211—213
[3]李大心.探地雷达方法与应用.北京:地质出版社, 1994
[4]盛翔.高速PRBS的设计和实现.测试测量技术, 2008;7:1—3
[5]Xilinx.Spartan-3FPGAFamily:Complete Data Sheet.DS099-1 (v1.4) January17, 2005
伪随机二进制序列 第2篇
关键词:FPGA;混沌伪随机序列;均匀化普适算法;统计测试
中图分类号:TN918.2 文献标识码:A 文章编号:1674-7712 (2012) 18-0024-02
PRNG即高质量伪随机序列发生器,在作为一种随机数源的混沌系统时可以对PRNG进行构造,但是在加密时,出现参数空间过小及其它一些新的问题。在现有理论基础上,大多数的混沌系统对于PRNG构造时的均匀性分布还存在不足,这就使得混沌系统在电子信息技术领域内的应用受到了限制。因此,本文提出一种普适算法,对均匀化普适算大进行分析与研究。
一、原理
二、系统结构研究
本文研究的重点也就是对下位机的原理进行讨论。
(一)下位机结构
如图3所示为下位机整体框架图,主要由四个单元构成,包含二进制尾数缓存器、双精度尾数序列缓存器、异步收发控制器、均匀化算法实现单元,其中核心单元为均匀化算法单元,该算法的速度直接和计算结果的均匀性有一定连续,所以是研究的关键。
(二)各单元的设计
(2)二进制尾数缓存器。UART所接收到的串行数据可以通过该设备获取,获取后分配到均匀化算法单元,然后计算出初始值,在datardy信号上升的时候,就会触发均匀化算法单元,对其进行计算。
(3)均匀化普适算法单元。该系统中,最关键的部分就是均匀化普适算法单元,该单元的主要功能是对ini-over信号上升进行监测,然后对初始值输出端口的值进行读取,让读取的值进行均勻化的转换,采用两个进程同时对其进行运算,该方法虽然在设计上占用了较大的资源,但是其运算速度得到大幅度的提高。Count信号在算法单元中的作用是延时,系统时钟提供时钟信号,通过功能仿真,时钟上升沿之后,就可以完成运算。这个时候,将data-rdy设置为1,并通知尾数序列缓存器运算单元,完成这些步骤之后,运算也就可以完成。
三、结束语
本文主要提出了在串口通信基础上的均匀化算法的FPGA实现的方案,通过实践验证,将该方案应用于混沌系统之中,可以有效的改善伪随机序列的诸多均匀性质,例如局部均匀性、游程分布等,这就为制作混沌加密芯片提供了一种性能优良的技术。
参考文献:
[1]盛利元,肖燕予,盛拮.将混沌序列变换成均匀伪随机序列的普适算法[J].物理学报,2008,7.
[2]周悦,朱灿焰,汪一鸣.Logistic数字混沌序列性能分析[J].现代电子技术,2006,9.
[3]冯伟.基于FPGA的超混沌PN序列产生与性能分析[J].杭州电子科技大学学报,2011,1.
[4]张占锋,盛利元,刘长水.混沌伪随机序列均匀化普适算法的FPGA实现[J].计算机测量与控制,2009,12.
[5]陈桂宏,杨斌,佟向坤.混沌序列变换成均匀伪随机序列的普适算法的FPGA实现[J].科技广场,2011,5.
伪随机序列的仿真与分析 第3篇
伪随机序列是一种确定但“随机”产生的序列[1]。即伪随机序列是具有随机特性的确定序列, 是针对AWGN演化而来的, 它采用只有“0”和“1”两种电平的编码结构, 拥有极好的相关性, 具有很强的抗干扰能力[2], 序列的均衡性很好, 实现较容易。因此, 伪随机序列应用十分广泛, 如在直扩系统中用于扩展传递的信号, 在调频系统中用来控制调频系统的频率合成器。最常用的伪随机序列之一是m序列[3]。
1 m序列的原理
m序列又称最长线性反馈移位寄存器序列, 是由移位寄存器和反馈加法器组成的, 其结构如图1所示。其中, 移位寄存器的位数是r, 其状态是a1, a2, , ar, 即ai (i=1, 2, , r) , 只取“0”和“1”, 每位寄存器对应的开关“开”表示该位没有反馈, “闭”表示该位有反馈。为了简单, 用ci表示第i位的开关状态, ci=0, 表示开关断开;ci=1, 表示开关闭合。加法器将反馈的状态值进行模2相加, 送给a1作为下一状态的值, 将当前的ar值输出, 而当前的a1, a2, , ar-1依次向右移一位, 作为下一状态的a2, a3, , ar的值。
可以看出, ci取不同的值, 就会有不同的反馈逻辑, 输出序列也不同, 根据文献[4], 线性移位寄存器的特征多项式为:
式中:c0=cr=1。例如, 对于r=5的反馈移位寄存器来说, 若f (x) =1+x2+x5, 则c0=c2=c5=1, c1=c3 =c4=0, 其结构如图2所示。
2 m序列的性质及反馈系数
2.1 m序列的性质
输出序列具有周期性, 其周期为T=2r-1;具有均衡性, 产生“0”和“1”的数量基本相同;具有极好的自相关特性和互相关性;伪随机序列的自相关性和互相关性有如下的定义。
设有两条长为N的序列{a}和{b}, 它们的元素分别为ai和bi, i=0, 1, 2, , N-1, 则自相关函数定义为:
互相关函数定义为:
所以, m序列是二值序列, 其自相关函数为:
可见, m序列的自相关函数是尖锐的冲激函数。
2.2 m序列的反馈系数
线性移位寄存器的结构不一样, 则产生的序列就会有所不同, 但并不是所有产生的序列都符合m序列的要求。对于特征多项式来说, 要产生m序列, 特征多项式就必须是既约多项式, 即不能再分解因式, 且是本原多项式。特征多项式对应于移位寄存器的反馈抽头, 所以, 线性移位寄存器能否产生m序列, 关键就在于其反馈系数, 不同的反馈系数, 对应不同的移位寄存器结构, 产生不同的序列, 表1给出部分不同级数的最长移位寄存器的反馈系数。
表1中, 反馈系数是8进制表示, 如r=7, 反馈系数为203, 对应的二进制数为10000011, 则对应的移位寄存器的值为c7=c1=c0=1, c2=c3=c4=c5=c6=0。
3 m序列的产生
3.1 Matlab编程实现
3.1.1 m序列的产生
借助于Matlab软件来产生m序列[5,6,7,8,9], 以r=5为例, 根据表1来选择反馈系数, 在Matlab命令窗口输入如下的命令时, 有:
其中, mrandpn.m是自定义函数, 以移位寄存器的初始状态和反馈系数为输入来产生m序列, 其代码如下:
运行后, 可以得到产生的m序列为1000010101110110001111100110100, 并做出其输出图形如图3所示。
3.1.2 m序列的相关特性分析
在分析m序列的相关特性时, 为了简单起见, 把序列中的“0”和“1”分别映射为“-1”和“1”, 在Matlab命令窗口中输入以下代码:
运行后得到图4所示。其中, 实线表示自相关函数曲线;虚线表示相同长度的两个m序列的互相关函数曲线。可以看出, 自相关函数是尖锐的冲激函数, 互相关函数也是在一定的范围内变化。
其中的自定义函数m_corr.m, 是用来计算相同长度的两个m序列的相关函数的, 其代码如下:
3.2 EDA产生m序列
借助EDA软件来设计m序列产生器[10]。根据文献[4], 其结构有两种形式, 即简单型和模件抽头型。简单型就是按照特征多项式中的ci (i=0, 1, 2, , r) 的取值来连接形成的电路, 如图5所示, 缺点是延时长, 限制序列的速度, 而模件抽头型结构减少了延时, 采用每一级触发器和相邻的触发器连接一个模2加法器, 结构如图6所示。其中, di (I=0, 1, 2, , r) 表示开关的断开与闭合。对于同一级的m序列产生器, 简单型和模件抽头型产生的序列是一致的, 只是反馈开关闭合情况不一样, 且存在以下关系:di=cr-i, i=0, 1, 2, , r。
用D触发器和模2加法器来实现m序列产生器, 设移位寄存器的级数r=5, 反馈系数为45, 寄存器的初始状态为00001, 则可做出简单型结构如图7所示。运行后得到输出序列如图8所示。模件抽头型结构电路如图9所示。运行后得到输出序列如图10所示。
对比图8和图10可以看出, 两种结构的输出序列是相同的, 且具有周期性, 说明两种结构可以很好地产生m序列。
4 结 语
在此运用Matlab编程产生m序列并分析了其相关特性。对于想要产生的m序列, 仅需要输入寄存器的初始状态和反馈系数, 就可以产生出任意长度的m序列;同时, 运用EDA设计了产生m序列的两种结构的电路, 其实现方法比较简单。从结果看, 两种方法都能够很好地产生m序列, 直观、方便、简单。
摘要:伪随机序列是具有随机特性的确定序列, 应用范围很广泛, 具有很好的相关性, 较易实现。最常用的伪随机序列之一就是m序列, 在此简单介绍m序列产生的原理、方法、性质及反馈系数。针对以往此类方法只能生成固定长度m序列的不足, 结合寄存器和m序列反馈系数的特点, 通过Matlab编程, 有效地实现一种基于输入寄存器的初始状态和反馈系数产生任意长度m序列的方法, 并分析相关特性;同时运用EDA软件, 设计m序列产生器。仿真结果显示, 这两种方法都可以准确地产生m序列, 方便实用。
关键词:序列,反馈系数,仿真,相关性
参考文献
[1]景占荣.信号检测与估计[M].北京:化学工业出版社, 2004.
[2]陈海龙.随机信号处理[M].北京:清华大学出版社, 2003.
[3]陈海龙, 李宏.基于Matlab的伪随机序列的产生与分析[J].计算机仿真, 2005 (5) :98-100.
[4]曾兴雯.扩展频谱通信及多址技术[M].西安:西安电子科技大学出版社, 2004.
[5]徐明远.Matlab仿真在信号处理中的应用[M].西安:西安电子科技大学出版社, 2007.
[6]楼顺天.Matlab 7.x程序设计语言[M].西安:西安电子科技大学出版社, 2006.
[7]葛哲学.Matlab时频分析技术及其应用[M].北京:人民邮电出版社, 2006.
[8]刘波.Matlab信号处理[M].北京:电子工业出版社, 2006.
[9]飞思科技产品研发中心.Matlab 7辅助信号处理技术与应用[M].北京:电子工业出版社, 2005.
伪随机二进制序列 第4篇
数字图象的安全已经成为现在计算机领域的一个重要主题。数字图象和文本相比具有以下两个特点:第一,数字图象通常以二维序列来表示,它要比文本文件大得多;第二,文本文件往往是无损加密的,而数字图象由于人类的视觉系统特性往往允许图象的内容有缺损。对于数字图象,有两种保护技术:一种是数字水印技术,通过在图象中嵌入数字信息,达到保护版权的目的。但是,这种保护方法不改变图象的可见性,不适合用来保护需要保密传输的图象。另一种技术就是图象加密技术,通过加密操作,改变图象的可见性,使原来的图象成为不可辨别的[1,2]。随着人们对知识产权的重视及娱乐工业的发展,可以预见,图象加密技术有着广阔的应用前景。
2 图象加密及其研究现状
图象加密是在加密密钥和加密函数的共同作用下将一幅图象变成杂乱无章的加密图象(类似于噪声),使其所要表达的真实图象信息无法直观地感觉到。与原始图象相比,加密图象的变化表现在几个方面:1)图象象素的相互位置关系发生了变化:它是由图象置乱来实现的。在图象加密中,图象置乱是一项非常重要的加密技术。2)图象的象素值发生了变化:从信息论的角度看,在一般情况下加密图象的信息熵增加了,接近于信息熵的最大值。从统计学的角度看,加密图象的直方图被平滑了,由加密图象的直方图来获取图象特征是很困难的。3)图象相邻象素之间的相关性降低了[3]。
3 伪随机序列图象加密算法
3.1 小数开方伪随机数发生器
小数开方伪随机发生器的迭代描述公式为:
定理1若X为无理数,a,n为整数,则也是无理数。
由定理1,我们不难看出,当某一Xm为无理数时,则以后的序列都是无理数[4]。
小数开方算法流程图如图1所示。
3.2 基于小数开方伪随机序列图象加密算法
24位真彩色图象的图象矩阵与其他类型不同,是一个三维矩阵,可用MN3表示。M、N分别表示图象的行列数,3个MN的二维矩阵分别表示各个象素的R、G、B三个颜色分量。
3.2.1 基于位异或的图象加密算法
1)算法思想
运用式(1)进行小数开方伪随机序列值计算,将产生的序列的每一个元素与图象的象素点的红、绿、蓝三基色的值进行异或运算,解密即为逆过程。
2)算法实验结果
图2为24位真彩色图象加密解密对比图。
3)算法优缺点
该算法在前有的基于线性同余伪随机序列加密的基础上改进了密钥给定的缺点,它实现了用户自行输入任意常见字符串的功能和图象的无损加解密,安全性较之要高,大量实验证明算法执行效率高且加密效果也很好,但是该算法存在一个缺点:当用户连续对一幅图象输入同一个密钥加密两次后就可以得到正确解密的图象,同时,当解密用户连续对加密后的图象输入正确的密钥就可以得到一次加密后的图象,两次后就可以得到原图象,算法的安全性不高。
3.2.2 基于循环位异或的图象加密算法
基于基于位异或的图象加密算法中存在的问题,该算法在基于位异或的图象加密算法基础上做出了改进:
1)算法思想
在基于位异或图像加密基础上,取图象一个象素点,象素值位进行循环右移操作,直到图象象素点全被取完,解密即为逆过程。
2)算法实验结果
3)算法优缺点
该算法较基于位异或的图象加密算法有所改进,当用户连续对一幅图象输入同一个密钥加密两次后得不到正确解密的图象,同时,当解密用户连续对加密后的图象输入正确的密钥两次后也得不到加密后的图象,安全性较基于位异或的图象加密算法要高。与基于位异或的图象加密算法一样它实现了用户自行输入任意常见字符串的功能和图象的无损加解密,算法执行效率高且加密效果也很好,但是该算法也存在一个缺点:当用户连续对一幅图象输入同一个密钥加密八次后就可以得到一幅图象,大致可以看到原图象得轮廓,然而当用户连续对一幅图象输入同一个密钥加密十六次后就可以得到正确解密的图象,同时,当解密用户连续对加密后的图象输入正确的密钥八次后也可以得到一幅图象,大致可以看到原图象得轮廓,而且当用户连续对一幅图象输入同一个密钥加密十六次后就可以得到原图象,算法的安全性还是不高。
3.2.3 基于循环位异或地址置乱的图象加密算法
基于基于循环位异或的图象加密算法中仍然存在的问题,算法三在基于循环位异或的图象加密算法基础上做出了改进:
1)算法思想
在基于循环位异或图像加密算法基础上将该图象中元素位置为1的元素移到元素位置为2的位置,将2移到3的位置,依此类推,最后将该图象的元素位置为最后的元素移到元素位置为1的位置。解密即为逆过程。
2)算法实验结果
算法实验结果如图4所示。
3)算法优缺点
该算法较之前两种有了很大改进,它不仅与它们实现了用户自行输入任意常见字符串的功能和图象的无损加解密,而且也解决了它们中存在的问题。无论用户输入多少次同一个密钥对一幅图象进行加密也得不到正确解密的图象,同样,无论用户输入多少次正确的解密密钥对一幅图象进行解密也得不到原图象,大量实验证明,该算法执行效率高且加密效果也很好,算法的安全性也高。
4 安全性分析
一个好的图象加密系统应该具备足够好的性能来抵御各种攻击,这些攻击包括穷举攻击、统计攻击、明文攻击等[12],下面对基于小数开方伪随机序列图象加密方法安全性进行分析:
穷举攻击是对加密系统进行攻击的最基本的方法之一,它的主要方法是对加
密系统的密钥空间进行穷尽的搜索,期望通过强力手段达到破解密码系统的目的。要有效抵御本方法,就要求密码系统有足够大的密钥空间并且具有相当的初值敏感度。三种算法的加密密钥都是可以由用户任意输入常见的字符,通过逐位整型转换再相加而得到伪随机序列的种子,可见,三种算法拥有相当大的密钥空间。
三种算法的初值敏感性作了试验,试验表明当解密密钥中有任何一个初始值和加密密钥中的不同,哪怕是微小的差别,图象也不能被有效解密,这说明本图象具有相当的初值敏感性。
GPS伪随机序列的构成与应用分析 第5篇
伪随机序列广泛应用于扩频通信、数字加密和时延测量等重要领域。卫星导航系统中利用伪随机序列优良的自相关特性实现时延测量是载体定位的关键;同时借助伪随机序列实现频谱扩展,也是提高星地通信抗干扰能力的有效方法。因此,伪随机序列在卫星导航系统中有着至关重要的作用。
随着全球定位系统(GPS)现代化的推进,GPS民用导航信号已从以往的L1 C/A码扩展到L2 C码,同时还将新增L5民用救生信号(GPS Block IIR-F卫星)。为提高GPS信号的抗干扰性能,使信号更易于捕获和跟踪,新增的伪随机码结构也有所改进。本文首先讨论GPS各个频点上伪随机序列的结构特征,然后再分析它们对GPS卫星信号的捕获和抗干扰性能的影响。
1 伪随机序列的结构分析
m序列是一类典型的伪随机序列,由m位线性反馈移位寄存器生成,其能够生成的扩频序列长度为N=2m-1。每个序列周期由2m-1个“1”和2m-1-1个“0”组成。序列的状态方程和输出方程如下:
式中,b(k)为k时刻寄存器的输出;ai(k)为第i个寄存器在k时刻的状态(0或1);cj(取值0或1)代表寄存器反馈抽头,当cj=1时,表示k-1时刻第j个寄存器的状态反馈到k时刻寄存器的输入中。
自相关函数为
式中,N表示m序列的码长。
由于m序列采用的是线性反馈结构,抗干扰性能和码的安全性能都较低。更重要的是m序列的互相关特性较差,因此在码分多址通信系统中可用作地址码的m序列数量太少,并且系统内多址干扰较大。为此,m序列一般不在扩频系统中直接应用。
Gold序列是一类互相关性良好的伪随机序列。
如果两个周期为N的m序列其互相关函数在{-1,-t(m),t(m)-2}内取值,则称之为理想序列[1]。两个序列的互相关函数值t(m)可表示如下:
式中,m表示寄存器长度。
对于一对理想序列a=[a1,a2,a3,,an]和b=[b1,b2,b3,,bn],通过取a与b的循环移位形式二者模2和,可构造出周期为n的新的序列集合。加上a、b序列本身,该集合中总共有2m+1组伪随机序列,我们称其为Gold序列。
由于Gold序列继承了m序列优良的自相关特性,而且可以用作地址码的数量远大于m序列,抗干扰性能和安全性能较m序列也有极大的提高,因此,在卫星导航系统中得到广泛的应用。
2 GPS中伪随机码的分析
随着GPS系统现代化的推进,各个频点上的伪随机序列也在优化升级。不仅在伪随机码的生成结构上有所变化,在信号能量的分配和调制方式等方面也有很大的改进,下面就主要针对GPS民用伪随机码进行分析。
2.1 GPS系统L1上的伪随机码
GPS L1上调制的测距码有C/A码和P(Y)码,两者之间相互正交。民用C/A码采用的是著名的Gold码,码长为1 023,码速率为1.023 Mbit/s。通过m序列优选对G1和G2来产生Gold码族。根据不同的G2,移位寄存器初始化方式一般有3种,即基于双相位逻辑选择方案、基于调用初始化向量方案和基于时钟延时方案。GPS系统中C/A码采用的是第1种方案(如图1所示),通过选择两个不同
相位反馈逻辑输出模2和,得到相对于原始G2寄存器序列不同时间延时的输出序列。该方案具有寄存器初始化结构简单、向量延时分布均匀、序列互相关特性好以及简化多通道接收机设计等优点[2]。
由于C/A码是为捕获军用码而设计的,因此码长和码速率都相对较低,信号更易于捕获,但是在抗干扰性能和定位精度上还存在一定差距。
2.2 GPS系统L2上的伪随机码
GPS L2上调制的测距码有P(Y)码和L2 C码。民用L2 C码包括CM(moderate length code)码和CL(long code)码,CM码的码长为10 230,时钟为511.5 kHz;CL码的码长为767 250,时钟为511.5 kHz,周期为1.5 s,是CM码的75倍,其码生成器与C/A码有所不同 (如图2所示) [3]。由结构图可知,该生成器只生成一组超长的伪随机序列,通过对该组伪随机码的截短,来实现码分多址(CDMA)的要求。
通过VC++软件仿真,得出各个卫星的测距码,发现CM码和CL码只是该伪随机序列的一部分。假设伪随机序列从CM码的一号星开始,那么所有卫星的CM码和CL码只占该伪随机序列的1/3左右;而不同卫星的测距码之间存在一定的间隔(CM4与CM5、CM34与CM35除外)。由于CM码(调制有导航电文)和CL码(无导航电文)在0.511 5 MHz的时钟控制下,采用分时复用的方式进行组合[4](如图3所示),平分了L2 C信号的能量(-160 dBW),使得CM码和CL码信号更加微弱。
信号能量低导致难以对CM码进行捕获,为此我们必须充分利用L2上新增的CL码。由于CL码上未调制导航信号,在相干积分时不受导航电文20 ms的限制,可通过适当延长相干积分的时间来提高信噪比(SNR),然后再利用CM码和CL码的关系,通过导频完成对CM码的捕获和跟踪,最终实现定位。
2.3 GPS系统L5上的伪随机码
GPS L5信号是专为救生安全而设计的,包含的测距码有I5和Q5信号,分别调制在同相和正交相通道上;而L1和L2上的民用码只调制在同相通道上,
正交相通道上调制有军用P(Y)码。L5测距码生成器的结构如图4所示[5],分别采用两组移位寄存器(XA,XBIi和XA,XBQi)的输出模2和作为测距码,其中子码XA为截短码,而子码XB为m序列。由于I5和Q5测距码的生成多项式是一致的,为此采取设置初始状态的方式来实现CDMA的要求。
I5和Q5的码长都为10 230,是C/A码的10倍,码速率为10.23 Mbit/s,码周期为1 ms,因此L5测距码的功率谱带宽是L1或L2信号的10倍。功率谱的拓宽有利于L5信号的快速捕获,但同时也易受窄带信号的干扰。
L5信号还新增了Neumann-Hoffman(NH)码,其码片长度为1 ms。I5通道上,导航电文首先调制到NH码上,然后再与测距码模2和。由于NH码的码周期为10 ms,正好等同于导航电文的码片长度,因此有利于接收机的解码和定位计算。在Q5通道上,测距码和NH码调制后生成无数据通道(Pilot channel),主要用于对L5信号实施捕获和跟踪。
2.4 GPS系统伪随机码的性能比较
通过前面对各个频点上伪随机系列的分析,表1给出了它们的基本特征参数。
注:BPSK为二相移相键控调制;QPSK为四相移相键控调制;FEC为前向纠错编码。
由表1可知,随着GPS现代化的推进,测距码的改进主要有以下几个方面:
(1) 码长和码速率的提高。码长的增加提高了伪随机码的抗干扰性能,测距码的自相关性和互相关性也有所提高,便于接收机的自相关捕获和跟踪。L2C码中CM和CL码采取分时复用的方式,因此其输出的最终码速率为1.023 Mbit/s。
(2) 信号能量的增加和导航数据编码方式的改变,提高了信号的准确性和SNR。
(3) 无数据通道的增加为接收机提供了全新的捕获方式。GPS L2C和L5上都增加了无数据通道,但是它们之间有着本质的区别。L2C民用信号是采用BPSK方式进行调制的,CM和CL码采用的是分时复用的组合方式,它们之间是相互融合的;而L5上的扩频序列是采用QPSK方式进行调制的,I5和Q5信号相互正交。
(4) 新增副码,优化伪随机码的频谱。NH码的加入,首先缩小了频谱谱线之间的距离,提高了L5信号抗窄带干扰的能力;其次,进一步降低了扩频序列的互相关特性;最后,由于I5通道上NH码与导航电文同步,也更便于导航电文的解码。
3 结束语
扩频序列是GPS信号的重要组成部分,新增的L2C和L5信号为民用多频定位提供了可能。L2C中新增的与数据通道同相的无数据通道为GPS信号的捕获提供了一种全新的策略,弥补了同相分时复用引起的SNR下降的缺点。相比较而言,L5信号结构比较完善,正交双通道数据采用QPSK方式进行调制,码长和码速率也作了相应的优化,使得信号在捕获、抗干扰性能和定位精度上都有较大的提高。
参考文献
[1]张贤达,保铮.通信信号处理[M].北京:国防工业出版社,2000.159-182.
[2]帅平,曲广吉,陈忠贵.导航卫星测距码的优化方法[J].中国空间科学技术,2006,4(2):1-9.
[3]IS-GPS-200D-2004,Navstar GPS Space Segment/Nav-igation User Interfaces,Space and Missile SystemsCenter(SMC)Navstar GPS Joint Program Office(SMC/GP)[S].
[4]Kannan Muthuraman.Tracking Thchniques for GNSSData/Pilot Signals[D].Calgary:University of Cal-gary,2010.31-33.
伪随机二进制序列 第6篇
混沌是直接研究我们所看得见摸得着的宇宙,以及在人类本身的尺度大小差不多的对象中发生的过程,所有日常生活经验与这个世界的真实都是我们研究混沌时所探索的目标,因此,混沌是一种关于过程的科学而不是一种关于状态的科学,是关于演化的科学而不是关于存在的科学。
混沌运动是非线性确定性系统的一种内在随机过程的表现,它的运动轨道中嵌入有无数的不稳定周期轨道,这些不稳定的周期轨道处处稠密,并与混沌运动共存[1]。
2 Logistic混沌系统
Logistic映射是一种非常简单却被广泛应用的经典混沌映射[2]。
Logistic混沌系统定义如下:xk+1=μxk(1-xk)
其中xk∈(0,1),当3.571448μ4时,Logistic映射表现出所期望的混沌特性,生成的混沌序列xk∈(0,1)。下面给出以MATLAB 7.0为实验平台,Logistic映射对应不同初始值的迭代结果。
混沌序列具有很好的统计特性,可以产生随机数列。当μ=3.7,初始值x01=0.7和x01'=0.7000001时,Logistic映射进行多次迭代的结果如表1所示,可以看出虽然初值仅仅相差0.0000001,但是通过多次迭代后序列的差别越来越大,这就是混沌序列的初值敏感性。混沌系统由于对初值的敏感性,很小的初值误差就能被系统放大,所以系统的长期性是不可预测的。
3 二值混沌序列量化生成方法研究
由于混沌映射产生的混沌序列为实数值序列,而在实际应用中,常常需要将其转化为数字二值混沌序列,并且生成的二值混沌序列仍然要保持原有的良好伪随机性。下面介绍2种应用较多的二值混沌序列产生方法:
3.1 方法一
文献[3,4,5]是将混沌序列所在的区间进行简单的划分,然后根据混沌系统生成的混沌序列值所在的区间,相应地离散化为0或1。具体量化方下法如:
假设xk(k=0,1,2,,n)是由Logistic映射所产生的实数值序列,经过量化可将混沌序列转换为二值混沌序列xk'(k=0,1,2,,n),那么,当xk∈(0,0.1)∪(0.2,0.3)∪(0.4,0.5)∪(0.6,0.7)∪(0.8,0.9)时xk'取1,而当xk∈(0.1,0.2)∪(0.3,0.4)∪(0.5,0.6)∪(0.7,0.8)∪(0.9,1)时xk'取0。
很多基于混沌的加密算法都是应用该方法进行实数序列到二值序列的转化。
3.2 方法二
文献[6],[7]是比较法,即将混沌序列值与平均值或者中间值进行比较大小,相应地离散化为0或1。其中文献[6]是将混沌序列值与混沌序列平均值进行比较大小然后量化为0,1二值序列。具体量化方法如下:
二值序列xk'(k=0,1,2,,n)同样由实数值序列产生,通过定义一个阈值函数F得到:
其中T为根据所选混沌系统的取值范围设定的阈值,通常在算法中取值为0.5或原来实数值序列的平均值。
但这2种常用方法得到的序列的伪随机性并不好,为了评价二值序列的伪随机性,这里引入了一个频数检验公式来分析离散化后的二值混沌序列中的0和l的分布情况:
其中n0为二值序列xk'中0的个数,n1为二值序列xk'中1的个数,n=n0+n1,x2的值越接近0,0和1出现的概率就越接近,那么生成的二值混沌序列的伪随机性就越好[8]。
4 一种伪随机性较好的二值混沌序列生成方法
在对几种应用较多的二值混沌序列生成方法进行研究后,本文提出了一种基于Logistic混沌序列的伪随机性较好的二值混沌序列生成方法。假设xk(k=0,1,2,,n)是由Logistic映射所产生的实数值序列,二值混沌序列xk'生成算法C如下:
C1.[判断.]if Xn
if X0
C2.[循环.]for k=2,3,4,,n,
if Xk-1
表2分别给出了以MATLAB 7.0为实验平台,当μ=3.7,初始值x0=0.7000001,通过Logistic迭代产生同一实数序列时,3.1和3.2中介绍的量化方法和本文提出方法的频数检验结果。
由频数检验的公式可知,序列的频数检验结果越趋近于0,意味着0和1出现的概率越近似相等,所生成的二值混沌序列的伪随机性越好。从表2中可以看出,对同一个Logistic实数序列量化且迭代相同次数的情况下,利用本文所给的二值混沌序列生成方法所生成混沌序列的伪随机性明显优于其它方法。
下面是对此实验的分析:方法二是根据生成的混沌序列值与阈值的大小比较来得到二值化结果,当将阈值固定在数值0.5时,由于0.5是根据混沌序列值Xk∈(0,1)这一性质而大概估计出的一个平均阈值,不能很好地反映混沌序列分布情况,因此得到的量化结果伪随机性较差;而当阈值取混沌序列值Xk的平均值时,可以较粗略反映出混沌序列值Xk的分布情况,因此量化结果的伪随机性比前一种情况好一些,但仍然不够理想;方法一中的二值序列的转换方法是将混沌序列所在的区间进行简单划分,根据生成的混沌序列值的所在区间相应量化为0或1,这种方法也不能很好地反映混沌序列分布特点,所以得到的结果伪随机性也不好;而本文中提出的二值混沌序列生成方法是根据混沌序列值Xk自身的相关性来进行量化的,由于混沌运动是一个类似随机的过程,因此这种量化方法较好地反映出了混沌序列的随机性,得到的序列经过频数检验的结果比另外几种方法得到序列的频数检验结果更明显地趋近于0,也就是说0和1出现的概率近似相等,所以利用本文所给的二值混沌序列生成方法所生成的混沌序列具有更好的伪随机性。
5 利用二值混沌序列加密
5.1 加密算法
本文决定采用常规的异或运算来得到加密图像。解密时需要有与加密时相同的密钥,利用异或逆运算才能解密图像。为了确保可靠性,我们在用混沌序列进行加密时选取迭代一定次数后的序列值,这样的话只要密钥稍有差异,就难以得到原来的混沌序列,给解密带来很大困难。混沌加密算法H如下:
H1.[生成二值混沌序列.]采用本文中提出的二值混沌序列生成算法C以密钥key1为初值生成一个二值混沌序列P,选取迭代N次后的序列值P',P'={P'(i),i=1,2,,mn}.(0
H2.[混沌加密.]对w1进行混沌加密,得到w2={w2(i)|w2(i)=w1(i)⊕P'(i),i=1,2,,mn}。(其中,w1是原始二值密写图像,w2是混沌调制后的二值密写图像;⊕代表异或运算,即相同为0,不同为1.)
解密过程只需用加密时使用的二值混沌序列对加密图像再进行异或运算,便可得到原始图像。
5.2 实验及分析
为了验证算法H及算法C的有效性,以MAT-LAB 7.0为实验平台,从USC-SIPI图像数据库[USC-SIPI]中选择了1幅3030大小的二值图像Elaine做实验。应用混沌加密算法H及二值混沌序列生成算法C,取μ=3.7,N=500,初始值key1=0.7,经过混沌加密及解密后得到的结果如图1所示。
(a)Elaine原图,(b)加密后得到的图,(c)正确密钥key1=0.7所恢复的图,(d)错误密钥key1'=0.7000001所恢复的图。
由实验可见,利用本文中提出的二值混沌序列生成算法C及混沌加密算法H对二值图像做混沌加密操作,由于混沌系统对系统的初值和系统参数较敏感,虽然恢复图像时所使用的错误密钥key1'=0.7000001与正确密钥key1=0.7相比只相差了0.0000001,但仍然无法恢复原始图像,保证了秘密信息的安全性。由图1中的(b)图可以看出,加密后的图像已经完全打乱了原图像,并且在实验中通过对加密前后图像黑白像素点个数的统计可得:加密图像的黑像素点个数:白像素点个数=451:449≈1,而原始图像黑白像素点个数的统计为:黑像素点个数:白像素点个数=473:427,可见加密后完全打乱了像素点之间的统计特性,故这两种算法在图像加密方面具有一定的实用性。
6 结束语
该文提出一种新的二值混沌序列的生成方法,对生成的混沌二值序列的性能进行了分析,并和方法一和方法二中的量化方法进行了比较。以Matlab 7.0为平台,进行了大量的实验,结果表明这种方法生成的二值序列具有很好的伪随机性能,而且这种方法适合任何混沌系统产生的混沌序列,对任何混沌系统和系统的任何参数状态产生的混沌序列进行量化时,都能得到性能很好的伪二值序列。把这种方法产生的二值序列用在图像加密,得到了较好的结果。
参考文献
[1]冯久超.基于混沌的扩频通信[J].通信学报,1998,19(6):76-83.
[2]孙克辉,刘巍,张泰山.一种混沌加密算法的实现[J].计算机应用,2003,23(1):15-17.
[3]ZHANG HAN,NISHIO Y,SASASE I,et al.A new image encryption algorithm based on chaos system[C]//International Conference onRobotics,Intelligent and Signal Processing.Changsha,China:IEEE,2003:778-782.
[4]PARKER A T,SHORT K M.Reconstructing the key stream from a chaotic encryption scheme[J].IEEE Transactions on Circuits and Sys-tem-I:Fundamental Theory and Application,2001,48(50):624-630.
[5]王相生,王小港,甘骏人.基于可变参数混沌的序列密码的设计[J].计算机工程,2001,27(9):103-165.
[6]孙秀花,戴跃伟,王执铨.混沌序列产生方法及其在图像加密中的应用[J].南京师范大学学报,2004,4(1):56-78.
[7]赵莉,张雪锋,范九伦.一种改进的混沌序列产生方法[J].计算机工程与应用,2006,23:31-33.
伪随机二进制序列 第7篇
随着计算机技术、通讯技术和网络技术的飞速发展,全球信息一体化的步伐越来越快,信息安全已成为维护国家安全和社会稳定的重要因素。人们对“信息安全”需求的不断升级,使得信息安全产品的市场始终处于高速增长阶段。研究信息安全产品将具有十分重要的政治、经济、军事意义[1]。利用密码技术对信息进行加密处理,防止信息泄漏,是保障信息安全的根本途径[2,3],Claude Elwood Shannon在1949年发表的著名论文中证明,密钥序列的随机性是密码体制安全性的保障。据统计,在六十多个密码协议中,四十多个用到了伪随机序列。因此,伪随机序列发生器(Pseudo-Random Sequence Generator,PRSG)在密码技术中占有举足轻重的地位,其分析与设计一直是国际上的研究热点。如何方便、快速地产生安全性高、统计性质良好的伪随机序列,也成为信息安全领域的一个重要研究课题。
1 TD-ERCS混沌伪随机序列发生器
1.1 TD-ERCS混沌系统
TD-ERCS混沌系统的模型、原理及特点在文献[4]和[5]中已详细论述,概括而言,TD-ERCS混沌系统是一个迭代算法:设置用户密钥,即两个初始值x0、tgα和两个参数μ、m,由:
计算TD-ERCS初始状态,由:
得到其它状态。其中m=2,4,5,6,4097,4098,x0∈[-1,1],tanα∈(-∞,+∞),n为迭代次数,μ∈(0.05,1],m为切延迟参数。n
1.2 将混沌序列变换为均匀伪随机序列的普适算法
IEEE754标准规定,一个实数的双精度二进制表示由三部分组成(如图一所示):1bit符号位(用S表示),11bit指数位(用E表示),52尾数位(用F表示),由:
换算到十进制数或二进制数。因此,一个x实数的双精度表示为:
为了表述简便,后文中假定│x│1。整体上普适算法分三步完成:
(1)将x的双精度数还原成二进制小数,它是通过一个右移位b操作完成的。
定义1:将尾数f中第0-bit设置为“1”,第1-bit,2-bit,,(b-1)-bit均设置为“0”,然后将此b位依次移到f的左边构成一个新尾数f,这样的操作称为右移位b操作,新尾数f记为fb。
例如:
移位前f:01010000111110011000,
重设置f:01010000111110000001,
移位后fb:00000101010000111110。
如果令b=1024-e,则fb(1024-e)便实现了双精度数向二进制小数的转换。
(2)对f(1023-e)进行bit位变换。
将尾数f视为52bit的二进制码如下:
将其分成高位26bit和低位26bit的两个码块,记为:
将fl倒置,记为fl',即:
定义2:fh与fl'对应bit位进行异或运算,记为:
其中:
再将fh'与fl按照高位和低位合并构成一个新的尾数,即:
称f'为尾数f的bit位变换,记为Bit{f},即f'=Bit{f}。
因此,Bit{f(1023-e)}就是f(1023-e)的bit位变换,是一个新数x'的二进制小数部分。
(3)将二进制小数Bit{f(1023-e)}转换成双精度数的尾数,通过一个左移位b操作完成。
定义3:如果尾数f中第51-bit,50-bit,,(51-b+1)-bit均为“0”,而(51-b)-bit为“1”,则将f的前b位依次移到f的右边构成一个新尾数f,这样的操作称为左移位b操作,新尾数f记为f←b。
例如:
移位前f:00000101010000111110,
移位后f←6:01010000111110000001.
对Bit{f(1023-e)}的左移位b操作就是Bit{f(1023-e)}←b。
完成此三步操作后,只要将指数部分改写成e=1023-b,且令s=0,得一新的实数:
文献[6]给出了详细证明:若x是一实型的随机变量,则x'是一个新的随机变量,并以不大于2-52的理想偏差服从均匀分布。因此,若x是混沌系统的状态变量,则x'是一个服从均匀分布的伪随机变量。
2 TD-ERCS混沌伪随机序列发生器的DSP实现
整体结构为上位机与下位机两部分,系统整体框图如图二所示。上位机由用户控制实现与下位机之间数据交换。下位机是CPRS的DSP系统。笔者仅讨论下位机的实现原理。
2.1 USB通信接口设计
USB与C6713的数据与命令的交换的编程称为固件程序设计[6]。USB固件程序流程图如图三所示,在这部分程序中主要完成以下功能:
(1)完成对命令口(endpoint0)的读与写;
(2)完成对FIFO接口的读与写;
(3)完成C6713对USB的自举;
(4)完成C6713与USB的控制命令的传输;
(5)完成C6713与USB各种方式的数据传输。
2.2 TD-ERCS混沌系统的DSP实现
TD-ERCS混沌系统浮点运算量巨大。本文在C6713上实现了双精度浮点型的TD-ERCS混沌系统,参照前期研究使用MATLAB分析TD-ERCS混沌性质的方法,验证了C6713实现该混沌系统的可行性。
如图四所示流程图,硬件平台连接完毕后,DSP完成初始化,从上位机接收初始参数,开始混沌迭代。为确保系统混沌性能稳定,取TD-ERCS算法迭代200轮后的值。当序列长度达到预期,TD-ERCS停止迭代,并在上位机软件中保存接收到的16进制序列。
为优化系统的运算速度,在C语言程序中并没有直接使用实时支持库(rts6701.lib)中的内联函数double_divd(double,double)(双精度浮点除法运算函数)和double sqrt(double)(双精度浮点数开方),而是调用了fastrts67x.lib库中与之对应的divdp()、sqrdp()函数,式(1)用C语言可表示为:
y[0]=_mpyd(u,sqrdp(
_subd(1,
_mpyd(x[0],x[0])
)
);
由表一可以看出67x Fastrts.lib中的函数性能大大优于rts6701.lib所对应函数。
2.3 普适算法的DSP实现
TD-ERCS混沌系统迭代生成的混沌序列经过普适算法均匀化后,得到的就是混沌伪随机序列。普适算法在前文中已有比较详细的介绍,程序流程图如图五所示。DSP中最长只能存储32bit字长的二进制数据,所以在移位操作时必须先判断shift_l(左移位b)是否在32bit范围内。
3 CPRS的测试及分析
STS是美国国家标准与技术研究院NIST[7]推出的统计测试软件包,它是当前伪随机性测试最权威的工具。表二列出了每一项核心测试的测试编号、测试名称和测试次数。本文中所有的测试都由STS(Version 1.8)自动完成,并在experiments/Algorithm Testing/final Analysis Report路径下查看测试结果。
本文基于DSP的混沌伪随机序列发生器采用了USB2.0传输协议,测试条件:m=1000,每组序列长度为bits。图六为该条件下测试所得通过率示意图,结果显示一共有20组Non-periodic Templates测试、1组Cumulative Sums测试、1组Overlapping Template测试,以及Random Excursions Variant和Approximate Entropy测试没有通过通过率测试。图七为测试所得P-valueT分布图,图中显示1组Cumulative Sums、7组Non-periodic Templates以及两组Random Excursions Variant测试没有通过。由NIST测试结果可知,C6713生成的双精度浮点型伪随机序列尽管相对Matlab生成的序列在随机性能上有了一定程度的下降,但总体上都已经通过了NIST标准伪随机序列测试,所以说该混沌伪随机序列发生器性能良好。
4 结束语
在前期研究的基础上,实现了基于TD-ERCS的双精度浮点型混沌伪随机序列发生器,理论上以TD-ERCS混沌系统为依托,普适算法为混沌序列发生器的核心内容,采用了DSP与USB2.0技术相结合的实现方法。NIST测试结果表明该伪随机序列发生器生成的混沌伪随机序列具有较好的随机性能。
本文设计了一种基于TD-ERCS混沌系统和混沌序列均匀化普适算法的伪随机序列发生器;采用32位高性能浮点型数字信号处理芯片实现了IEEE754双精度浮点型标准的PRSG;DSPs与PC的通讯采用了USB2.0传输协议。
摘要:在现代工程实践中,伪随机序列广泛应用于信息安全、数字通信、密码学、自动控制等领域中。本文设计了一种基于TD-ERCS混沌系统和混沌序列均匀化普适算法的伪随机序列发生器;采用32位高性能浮点型数字信号处理芯片实现了IEEE754双精度浮点型标准的PRSG;DSPs与PC的通讯采用了USB2.0传输协议。依据美国国家标准与技术研究院所提出的伪随机序列性能指标,对迭代所产生的混沌伪随机序列进行了测试,结果表明该PRSG所产生的CPRS性能良好,为算法的硬件实现做了很好的前期验证。
关键词:TD-ERCS,伪随机序列,伪随机序列发生器,DSPs,NIST统计测试
参考文献
[1]G.B.Agnew,Random Source for Cryptographic Systems[J].Advances in Cryptology EUROCRYPT’87Proceedings,Springer-Verlag,1988:77-81.
[2]冯登国.国内外密码学研究现状及发展趋势[J].通信学报,2002,23(5):18-26.
[3]杨以光.密码技术在信息安全中的应用研究[J].计算机与网络,2005,23(1):54-55,58.
[4]盛利元,孙克辉,李传兵.基于切延迟的椭圆反射腔离散混沌系统及其性能研究[J].物理学报,2004.9,53(9):2871-2876.
[5]盛利元,曹莉凌,孙克辉,闻姜.基于TD-ERCS混沌系统的伪随机数发生器及统计特性分析[J].物理学报,2005,54(9):4031-4037.
[6]郭栋,王志良,李正熙,张永忠.基于DSP的实时图像处理系统[J].微计算机信息,2005,(3).
[7]盛利元,肖燕予,盛吉吉.将混沌序列变换成均匀伪随机序列的普适算法[J].物理学报2008,57(07):4007-4012.