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

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

3天内不再提示

在DSP/BIOS中实现的信号产生和加解密模块的设计

电子设计 来源:郭婷 作者:电子设计 2019-02-06 08:48 次阅读

1 引言

混沌是非线性动力系统所特有的一种运动形式,它广泛地存在于自然界。一般而言,混沌现象隶属于确定性系统而难以预测,隐含于复杂系统但又不可分解,呈现多种混沌无序却又颇有规则的图像。

混沌信号的表现形式非常复杂,具有类噪声,非周期等特点。但是混沌系统本身又是确定的,由方程,参数所完全决定,是确定性非线形系统产生的不确定的信号,其状态完全可以重现。混沌系统对初值敏感。初值X0的微小的差异,Xn将有很大的差异。这种对初值的敏感性,很小的初值误差就能被系统放大,使得两个完全相同的混沌系统从几乎相同的初始条件开始演化,很快它们的轨道就变得差异很大,互不相关。因此,系统的长期性是不可预测的。这些性质使得混沌信号具有长期不可预测性和很强的抗截获能力。所以将混沌掩盖引入保密通信领域具有极其广阔的前景和巨大的潜力]。

混沌信号的产生是混沌加密实现的关键,由某些硬件电路组成的物理系统(例如蔡氏电路和模拟Lorenz系统的振荡器等)所产生的连续混沌信号是不可预测的,传统的采用模拟电路产生混沌信号的方法虽然有很多优点,但仍存在着由于通信两端模拟电路的器件精度难以完全一致,导致同步性能不是很好的问题。而DSP具有小型嵌入式操作系统,实时加密,应用方便,又不存在器件的精度问题[3] ,可以在保密通信中实现很好的同步。

2 混沌加密的基本理论

2.1 Lorenz方程

混沌信号的质量是加密效果的关键。文中选用Lorenz 系统。Lorenz 方程为三维,属于高维混沌系统。应用Lorenz 方程等高维系统构造序列密码的优点在于:一是可以对多个系统变量进行处理产生序列密码。产生序列密码的原始混沌浮点数序列既可以是一个混沌变量的序列值,也可以是多个变量的函数值。这样序列密码的设计更灵活,有更大的空间。提高安全性、改善有限精度造成的短周期效应。二是能提供大量密钥空间。Lorenz 方程具有3个系统变量,也就是有3 个初始值,还有3 个系统参数,这些都可以用来作为序列密码系统的种子密钥[4]

选取系统参数:u=16,r=45.2,b=4,初值的选取可以是不为零的任意数,最好能选取在系统混沌吸引子中,这样可以使系统快速地进入混沌状态。

2.2 混沌信号的产生

混沌信号的产生主要借助于DSP 强大的运算能力,采用数值计算的方法。混沌方程的微分数值计算方法主要有:欧拉方法、改进欧拉方法和四阶龙格-库塔法。这三种方法精度由低到高,计算量同样由低到高。文中采用欧拉法。运用欧拉法将方程化为差分方程:定义x、y、z 为双精度型,选取初值x0=0.15、y0=0.1、z0=0.1。方程参数值选取A=16、B=45.2、C=4,并定义步长为k,在给定初值的情况下,运用下面三个方程产生混沌信号:

在DSP/BIOS中实现的信号产生和加解密模块的设计

3 基于DSP 的混沌信号产生器

3.1.硬件构成与系统框图

考虑到算法复杂度与开发便利,本系统采用TI 公司生产的通用高性能32 位定点DSP即TMS320DM642 作为主处理器。该处理器工作主频高达720MHZ,处理性能可达5760MIPS,完全可以满足算法的要求。整个加密系统的硬件是由上位机、两台DSP 及其外设组成[5] ,硬件框图如图1 所示。PC 机通过JTAG 仿真器接口与DSP 相连,以方便PC 机对系统进行调试,DSP 负责混沌信号的产生与数据的加密。实时语音数据经过AD 采样传输到DSP 片内RAM 中。由于片内RAM 空间有限,DSP 将把所接受到的数据写到片外SRAM 中加以保存。DSP 调用特定的混沌加密算法,对所接受的数据进行加密处理,将加密后的数据通过DSP 的以太网口用网络传输到另一台DSP 上,然后在另一台DSP 上解密,最后经DA输出,还原原始的实时语音信号[6]。

在DSP/BIOS中实现的信号产生和加解密模块的设计

3.2.软件流程

DSP 的实时操作系统(RTOS)是一段嵌入在目标代码中的软件,用户的其他程序都建立在这一操作系统之上,具有很高的可靠性和可行性的内核,可以根据优先级合理的分配资源和CPU 的时间。在实现过程中可以屏蔽掉一些具体的硬件操作细节。本系统的开发就采用了DSP/BIOS,DSP/BIOS 是TI 公司针对其生产的DSP 芯片而开发的一个实时操作系统,可实时调度和同步以及进行主机/目标系统通信和实时监控的应用。它具有抢占式多任务内核,硬件抽象层,实时系统工具,配置工具。可以轻易地实现多线程的实时调度与同步,硬件中断响应时间一般在微秒级(us)。DSP/BIOS 是由许多功能模块构成的,每个功能模块都提供了大量标准的API 接口,从而实现了对硬件的抽象,程序员通过调用API 可以很容易利用DSP/BIOS 所提供的各种功能,如线程创建,撤销,唤醒等等。总之,利用DSP/BIOS 极大地提高了DSP 软件开发的可靠性,大大加快了开发进度。

RTOS 中最重要的概念就是任务,每一个线程有一些任务组成,本系统的软件结构采用多线程同步工作方式,主要分为三个线程:(1)网络处理线程tsk1,主要负责启动TCP/IP 协议栈与上位机进行以太网数据交换,并把接收到的数据通过SCOM 模块传输给加解密线程;

(2)加解密处理线程tsk2,主要负责调用特定的混沌加解密算法对收到的数据进行加解密处理,并通过SCOM 模块传递给输出线程;(3)I/O 线程tsk3,负责将语音信号通过AD 输入,同时把tsk2 传来的数据通过DA 模块进行输出,整个软件流程图如图2 所示。

在DSP/BIOS中实现的信号产生和加解密模块的设计

系统的I/O 采用了DSP/BIOS 的SIO(Stream I/O)模块。该模块对底层硬件操作作了抽象,为用户提供了一个与设备无关的交互接口,完全不用关心IO 设备的细节特。Stream(流)是应用程序和IO 设备之间的数据通道,采用异步的方式进行IO 操作,利用SIO 模块的issue/reclaim 模式,应用程序就可以通过与SIO 交换缓存地址进行数据的输入输出了,开辟了双缓存bufa,bufb。应用程序将一缓存区bufa 填满数据,然后将首地址传递给SIO,SIO将自动调用底层驱动程序操作外设,对bufa 进行数据IO,无需应用程序的干预。待bufa 数据IO 完毕后,SIO 将空缓冲交还给应用程序,同时接收新缓存区bufb, 这种IO 管理方式,采用指针,避免了数据的拷贝,减少了应用程序的开销,如此可以达到高效的数据IO 效率,减少CPU 时间占用消耗,并且大大地提高了程序的可移植性和易于维护,很好的满足了实时性的要求。

4 混沌序列的验证

通过DSP的DA输出,将信号引到示波器,分别可以得到XY,YZ,XZ的两维信号相图见图3。由此可见,示波器输出的波形和理论值是基本吻合的,以此验证了加密序列是混沌序列。

在DSP/BIOS中实现的信号产生和加解密模块的设计

5 语音实时信号加解密验证

由于采用的DSP/BIOS系统是一个实时操作系统,它能很方便的应用在实时信号处理方面。可以基于DSP/BIOS建立一个语音加密系统,对输入的实时语音信号进行混沌加密。为了验证这一系统以及观察方便,实验采用1KHz正弦波作为实时语音输入,将其通过高速AD输入DSP中,由DSP调用混沌信号产生以及加密算法对其加解密,再通过DSP的左右声道的DA输出到示波器进行实验,实验结果如图4所示。

在DSP/BIOS中实现的信号产生和加解密模块的设计

对比这几组实验结果,可知通过系统加密模块,原始语音信号已不能辨认,解密模块在解密密钥完全相同时才可以还原出原始信号。另外可以用实际的语音信号在系统一端通过麦克风输入,经过加密再从扬声器输出,语音已经不能辨认,再将其输入另一台解密DSP中,又可以很好的还原原始信号,不过整个过程会存在一定的延时。系统速度瓶颈在于产生混沌序列算法部分,由于混沌运算对精度要求较高,所以混沌序列运算中采用了浮点运算,对于DM642定点DSP会产生较大的处理时间开销,因此需要通过编写定点化程序来提高处理速度。实验表明,优化程序后,系统可以实时处理的最高音频信号频率达到4KHz,完全满足实时语音通信的带宽要求。

6 总结

本文提供了一种基于小型嵌入式实时操作系统下混沌信号产生和对语音实时加密的方法,所有的编程都是在DSP/BIOS下完成的, DSP/BIOS有很强的实时分析和任务实时管理能力,可以对程序进行实时跟踪与分析,提高应用程序开发的可靠性。在设计中由于采用的是定点DSP,在对采样点进行定点化截尾时,会有很小的误差出现,如果能够采用浮点DSP,就可以很好的解决这个问题。

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

    关注

    68

    文章

    19259

    浏览量

    229641
  • dsp
    dsp
    +关注

    关注

    553

    文章

    7987

    浏览量

    348726
  • 仿真器
    +关注

    关注

    14

    文章

    1017

    浏览量

    83719
收藏 人收藏

    评论

    相关推荐

    labviewAES加解密小程序

    本帖最后由 eehome 于 2013-1-5 10:10 编辑 使用AES算法对128bit加密和解密版本:LabVIEW 8.6 8.6.1作者:zerld功能:使用AES算法对128bit加密和解密为便于阅读,算法还留有优化空间。本
    发表于 02-22 14:12

    基于DSPBIOS的多信号并行处理软件架构设计

    随着信息技术和芯片技术的发展,DSP技术航空、通信、医疗和消费类电子设备得到广泛应用。伴随主频不断提升及多核并行工作,DSP芯片的运算能力快速增强。运用
    发表于 09-03 17:18

    加解密

    stm32F4如何看加解密的代码
    发表于 04-08 11:23

    如何利用MEMS和FPGA设计移动硬盘数据加解密系统?

    来源:维库电子随着信息量的急剧增长,信息安全日益受到人们重视。一个完整的数据加解密系统应该 具备安全可靠的密码认证机制和加解密算法。本文基于MEMS 强链、USB 控制器和FPGA 设 计了一种
    发表于 07-31 07:40

    如何利用MEMS强链和FPGA设计USB移动硬盘数据加解密系统?

    随着信息量的急剧增长,信息安全日益受到人们重视。一个完整的数据加解密系统应该具备安全可靠的密码认证机制和加解密算法。利用MEMS强链和FPGA设计USB移动硬盘数据加解密系统,我们具体该怎么做呢?
    发表于 08-01 06:48

    硬件加解密的分类

    文章目录1、硬件加解密的分类2、ARM-CE / ARM-NEON3、Soc crypto engion4、cryptoisland5、cryptocell1、硬件加解密的分类armv8的芯片
    发表于 07-22 07:55

    STM32的加解密硬件模块

    基于物理噪声源的随机数产生器• 生成32位随机数• AHB 从设备,不使用时可关闭它以节省功耗• 广泛运用于加解密算法和协议• 密钥的生成• “Challenge- Acknowledge”认证模式
    发表于 09-08 07:54

    STM32加解密技术

    没有加解密技术是万万不能的• 通讯安全• 平台安全• *例外:STM32 RDP保护知识产权• 加解密技术不是万能的• 只是工具• 无法代替其它STM32安全技术
    发表于 09-08 08:18

    基于DSP/BIOS的交流信号检测研究

    基于DSP/BIOS的交流信号检测研究:介绍了TMS320F28l2的A/D转换器的工作原理,并将其作为信号采样模块对交流电压或电流
    发表于 05-26 23:39 55次下载

    基于DSP BIOS的实时语音混沌加密系统

    文中提出了一种DSP/BIOS下,实现Lorenz方程产生混沌信号并对语音实时
    发表于 12-23 16:03 10次下载

    基于DSPDSP/BIOS的实时雷达信号采集与处理系统

    基于DSPDSP/BIOS的实时雷达信号采集与处理系统:介绍了一种实时操作系统DSP
    发表于 01-16 16:59 25次下载

    基于MEMS和FPGA的移动硬盘数据加解密系统

    基于MEMS和FPGA的移动硬盘数据加解密系统 随着信息量的急剧增长,信息安全日益受到人们重视。一个完整的数据加解密系统应该 具备安全可靠的密码认证机制和加解密
    发表于 11-05 08:57 772次阅读
    基于MEMS和FPGA的移动硬盘数据<b class='flag-5'>加解密</b>系统

    源码-加解密文本

    易语言是一门以中文作为程序代码编程语言学习例程:易语言-源码-加解密文本
    发表于 06-06 17:43 6次下载

    STM32的加解密硬件模块

    电子发烧友网站提供《STM32的加解密硬件模块.pdf》资料免费下载
    发表于 08-02 09:14 1次下载
    STM32的<b class='flag-5'>加解密</b>硬件<b class='flag-5'>模块</b>

    基于FPGA的可编程AES加解密IP

    可编程AES加解密IP内建密钥扩展功能,使用初始密钥产生扩展密钥,用于加解密过程。可编程AES加解密IP处理128-bit分组数据,并且支持可编程的密钥长度:128-bit,192-b
    发表于 01-09 10:49 491次阅读
    基于FPGA的可编程AES<b class='flag-5'>加解密</b>IP