现代语音通信大大方便了人们的交流,但是随之产生语言安全的问题,人们担心自己的通话被窃听,但传统的电脑加密算法运算量大不适合在手持的移动设备中使用,用混沌信号对通话语音进行加密提高嵌入式设备数据的安全性同时运算量相对适中。
一、嵌入式Linux系统语音混沌加密算法
1、混沌加密原理
混沌信号用于数据保密通信中有很多种形式,主要是利用混沌信号对明文进行掩盖或者置乱,掩盖就是对明文信号进行数值的改变,而置乱则是仅仅改变明文的顺序来达到加密的目的。总之混沌保密是利用混沌信号的各种特性来实现的。在发送端将密钥明文信息和混沌信号经加密变换后形成密文,在信道中传送,接收端合法用户知道解密密钥和解密变换因此能够得到正确的明文。混沌同步决定混沌信号能不能运用到加密中,用能够同步的混沌信号加密才能正确解密。关键是能否进行混沌同步,混沌同步就是指一个系统的混沌动力学轨道收敛于另一个系统的混沌动力学轨道,以致两个系统在以后的时间里始终保持步调的一致。
猫映射是经典的算法满足加密解密的条件,所以本文采用猫映射算法进行加密,用它来对语音信号进行置乱产生密文然后通过蓝牙模块进行无线传输一。
2、猫映射状态方程
猫映射状态方程:
系数矩阵:的秩只要为1就可以了。由方程可以看出在ARM平台上实现并不需要进行特别的离散化措施凸这里暂且取a=1,b=1,c=1,d=2,初值x=1,y =1,得到Matlab仿真相图,如图1所示。
二、ARM开发板和相应的Linux操作系统
1、ARM开发板的硬件平台
实验平台采用友善之臂mini2440开发板,板上为三星公司的32位微处理器S3C2440A。该处理器内部集成了ARM920T内核,内部结构集成了MMU、AMBA、BUS和Harvard高速缓冲结构,带有独立的16 KB指令Cache和16 KB数据Cache,并且板上集成了很多外围设备接口,如RAM控制器、Nand FLASH控制器、10/100M以太网接口、LCD控制器、并行I/O口,主频最高可达533 MHz等。本文主要是用到了板上的SD卡座,以及SD8868系统硬件结构图如图2所示。
2、嵌入式Linux系统
嵌入式设备例如手持设备等都采用嵌入式Linux系统。这是因为Linux系统是开源免费的,Linux系统的可靠性高。因此,本实验中的平台采用的是Linux操作系统,内核为2.6的内核。整个系统的架构如图3所示,其中最底层的是引导加载Linux内核程序的Bootloader,它指定了内核存在FLASH中的位置,一般采用Uboot,这里系统采用三星公司自行研发的Supervivi;中间的是Linux 2.6.32.2的内核,在内核中包含了初始化平台的各个函数、串口终端、LCD、以太网及相关的设备驱动等,这里将根据一些不需要的设备对内核进行裁剪;紧接着的是根文件系统,这也是嵌入式Linux中不可缺少的一部分,这一层中包涵了嵌入式平台的必不可少的bin文件;最顶层的是用户应用程序,加密解密程序属于这一层。
三、猫映射加密算法设计和实现框图
1、加密设计模块
本文采用将原始的语音信号文件作为参数加入到用户态加密程序当中,进行猫映射加密,加密后产生密文语音文件群将加密后的文件经过蓝牙模板进行传输。在另一块板子上进行接收解密,设计原理如图4所示出。
2、程序实现流程图
首先由系统内部为运行的程序提供环境进行初始化读取参数,判断文件是否存在,如果不存在就进行出错处理,如果文件存在则程序试图读文件,并进行判断然后进行出错处理。由于需要存储加密后的语音文件所以需要创建新文件,在进行猫映射加密后存人新文件,将新文件调用socket接口用蓝牙进行传输。因为要使用蓝牙模块进行传输,所以有关蓝牙传输的协议和驱动程序必须在编译内核的时候进行加载D根据上面所提到设计的流程对其进行嵌入式C语言的编程,程序的流程首先对相关的函数进行初始化,根据嵌入式系统的开发原则,对跨平台开发的程序进行交叉编译,系统中使用宿主机上的交叉编译工具arm -linux-gcco使用交叉编译工具编译后生成目标板可执行的目标代码后移植到目标板上。加密算法流程如图5所示。
四、嵌入式Linux系统语音混沌加密算法的实验结果和分析
1、嵌入式Linux系统语音混沌加密算法的实验结果
加密算法结果分析如图6所示,图6中三幅图分别为加密前语音信号的波形,加密后语音信号的波形和解密后语音信号的波形。猫映射加密对语音信号进行了置乱,置乱的结果比较好的隐藏了原始语音信号,解密则很好的再现了原始的语音信号。
2、嵌入式Linux系统语音混沌加密算法的分析和结论
由于猫隐射对原始语音信号进行置乱比较好的隐藏了原文的信息,从加密后的波形图可以看出,只要置乱的迭代轮数足够就能跟原来的波形完全不一样,但是并没有对信号进行掩盖,故其直方图跟原来的信号是一样的,这是一个不足但同时减少了运算量,达到了实时性的要求,用户通话没有明显的延迟,这在手持设备中就已经足够了。如果需要还可以对其进行混沌掩盖。
小知识之Linux系统
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。