基于ARM系统的混沌语音加密研究

时间:2022-08-11 02:58:01

基于ARM系统的混沌语音加密研究

摘 要: 现代语音通信大大方便了人们的交流,但是随之产生语言安全的问题,人们担心自己的通话被窃听,但传统的PC加密算法运算量大不适合在手持的移动设备中使用,用混沌信号对通话语音进行加密提高嵌入式设备数据的安全性同时运算量相对适中。在ARM2440+Linux平台上做了有关混沌信号产生并利用混沌信号来对语音进行加密的实验,将加密后的语音进行蓝牙传输。

关键词: 混沌; 猫映射; ARM; Linux; 语音加密; 解密

中图分类号:TN912.3?34 文献标识码: A 文章编号: 1004?373X(2013)13?0097?03

Research on chaotic voice encryption based on ARM system

XIE Yong?jian

(Faculty of Automation, Guangdong University of Technology, Guangzhou 510006, China)

Abstract: Modern voice communication makes people communicate with each other conveniently but leads to problem of security. People worry that their communication by telephone could be eavesdropped. But traditional PC encryption algorithm can hardly be achieved on mobile phone. Voice encryption by chaotic signals can improve security of embedded device data and also is less complex than the traditional one. We do the voice encryption test by use of chaotic signals on the ARM2440+Linux platform and transmit via bluetooth.

Keywords: chaotic encryption; cat maps; ARM; Linux; voice encryption; deciphering

0 引 言

随着通信技术的飞速发展,人们普遍使用智能手机来联系家人、朋友以及商业客户,但语音信息容易被窃听,干扰这在紧急情况下是不容许的。语音信息应该得到妥善的保护以提高通话的安全性。由于智能手机大部分属于ARM平台或者ARM架构结合基于Linux操作系统简化的安卓系统的嵌入式设备,因此嵌入式系统设备应该具备良好的语音保密功能。目前很多加密算法都是针对PC级的并不合适在小型移动设备中运行。

混沌(本文指猫映射)状态方程对初始条件的高度敏感,即使很微小的差别的初始条件作用于同一个状态方程经过足够多次叠加运算,它们的轨道将变得没有相关性,而且加密体制有对称密钥和非对密钥两种,对称密钥是指消息的发送者和接受者用相同的密钥进行加密和解密,非对称密钥是消息发送和接受者使用不同的密钥。它的安全性基于数学上的大因数分解,因此混沌信号具有不可预测性和抗破解能力。同时混沌系统又是确定性,由状态方程、系数参数和初始条件所决定,混沌信号易于产生和复制。上述特性使得混沌特别适用于保密通信。这些特性正好吻合数据加密的原则:扩散和混乱,故混沌算法很适合用来进行手持设备的语音加密[1]。

本文主要介绍基于混沌中著名的猫映射置乱算法,在Linux系统下用C语言实现数字语音信号的置乱并在MINI 2440开发版运行该程序,然后给出实验的结果并对结果进行分析,提出改进意见。

1 嵌入式Linux系统语音混沌加密算法

1.1 混沌加密原理

混沌信号用于数据保密通信中有很多种形式,主要是利用混沌信号对明文进行掩盖或者置乱,掩盖就是对明文信号进行数值的改变,而置乱则是仅仅改变明文的顺序来达到加密的目的。总之混沌保密是利用混沌信号的各种特性来实现的。在发送端将密钥明文信息和混沌信号经加密变换后形成密文,在信道中传送,接收端合法用户知道解密密钥和解密变换因此能够得到正确的明文。混沌同步决定混沌信号能不能运用到加密中,用能够同步的混沌信号加密才能正确解密。关键是能否进行混沌同步[2?3],混沌同步就是指一个系统的混沌动力学轨道收敛于另一个系统的混沌动力学轨道,以致两个系统在以后的时间里始终保持步调的一致。

猫映射是经典的算法满足加密解密的条件,所以本文采用猫映射算法进行加密,用它来对语音信号进行置乱产生密文然后通过蓝牙模块进行无线传输[4?5]。

1.2 猫映射状态方程

猫映射状态方程:

[x1y1=1112xymodN]

系数矩阵[acbd]的秩只要为1就可以了。由方程可以看出在ARM平台上实现并不需要进行特别的离散化措施。这里暂且取[a]=1,[b]=1,[c]=1,[d]=2,初值[x]=1,[y]=1,得到Matlab仿真相图,如图1所示。

图1 Matlab仿真相图

2 ARM开发板和相应的Linux操作系统

2.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 [6]。系统硬件结构图如图2所示。

图2 硬件结构图

2.2 嵌入式Linux系统

嵌入式设备例如手持设备等都采用嵌入式Linux系统。这是因为Linux系统是开源免费的,Linux系统的可靠性高。因此,本实验中的平台采用的是Linux操作系统,内核为2.6的内核。整个系统的架构如图3所示,其中最底层的是引导加载Linux内核程序的Bootloader,它指定了内核存在FLASH中的位置,一般采用Uboot,这里系统采用三星公司自行研发的Supervivi;中间的是Linux 2.6.32.2 的内核,在内核中包含了初始化平台的各个函数、串口终端、LCD、以太网及相关的设备驱动等,这里将根据一些不需要的设备对内核进行裁剪;紧接着的是根文件系统,这也是嵌入式Linux中不可缺少的一部分,这一层中包涵了嵌入式平台的必不可少的bin文件;最顶层的是用户应用程序,加密解密程序属于这一层[7?9]。

图3 嵌入式操作系统的结构

3 猫映射加密算法设计和实现框图

3.1 加密设计模块

本文采用将原始的语音信号文件作为参数加入到用户态加密程序当中,进行猫映射加密,加密后产生密文语音文件。将加密后的文件经过蓝牙模板进行传输。在另一块板子上进行接收解密。设计原理如图4所示。

图4 设计原理图

3.2 程序实现流程图

首先由系统内部为运行的程序提供环境进行初始化读取参数,判断文件是否存在,如果不存在就进行出错处理,如果文件存在则程序试图读文件,并进行判断然后进行出错处理。由于需要存储加密后的语音文件所以需要创建新文件,在进行猫映射加密后存入新文件,将新文件调用socket[10]接口用蓝牙进行传输。因为要使用蓝牙模块进行传输,所以有关蓝牙传输的协议和驱动程序必须在编译内核的时候进行加载。根据上面所提到设计的流程对其进行嵌入式C语言的编程,程序的流程首先对相关的函数进行初始化,根据嵌入式系统的开发原则,对跨平台开发的程序进行交叉编译,系统中使用宿主机上的交叉编译工具arm?linux?gcc。使用交叉编译工具编译后生成目标板可执行的目标代码后移植到目标板上。加密算法流程如图5所示。

图5 加密算法流程

4 实验结果和分析

4.1 实验结果

算法结果分析如图6所示。图6中三幅图分别为加密前语音信号的波形,加密后语音信号的波形和解密后语音信号的波形。猫映射加密对语音信号进行了置乱,置乱的结果比较好的隐藏了原始语音信号,解密则很好的再现了原始的语音信号。

4.2 分析和结论

由于猫隐射对原始语音信号进行置乱比较好的隐藏了原文的信息,从加密后的波形图可以看出,只要置乱的迭代轮数足够就能跟原来的波形完全不一样,但是并没有对信号进行掩盖,故其直方图跟原来的信号是一样的,这是一个不足但同时减少了运算量,达到了实时性的要求,用户通话没有明显的延迟,这在手持设备中就已经足够了。如果需要还可以对其进行混沌掩盖。

参考文献

[1] 张慧源,禹思敏.基于混沌加密的嵌入式通信系统的研究[J].微计算机信息,2005,21(11):31?32.

[2] 刘秉正.非线性动力学与混沌基础[M].长春:东北师范大学出版社,1995.

[3] 郑大钟.线性系统理论[M].北京:清华大学出版社,1990.

[4] 禹思敏.混沌系统与混沌电路:原理、设计及其在通信中的应用[M].西安:西安电子科技大学出版社, 2011.

[5] 禹思敏,丘水生,罗伟民.混沌同步通信系统若干问题的实验研究与分析[J].华南理工大学学报, 2000,28(10):87?91.

[6] Samsung. S3C2440A user′s manual Revision 1.0 [R]. Korea: Samsung, 2004.

[7] 魏永明,耿岳,钟书毅.Linux设备驱动详解[M].北京:中国电力出版社, 2005.

[8] 韦东山.嵌入式Linux应用开发完全手册[M].北京:人民邮电出版社,2008.

[9] 吴明晖.基于ARM的嵌入式系统开发与应用[M].北京:人民邮电出版社,2004.

[10] 尤晋元,张亚英.UNIX环境高级编程[M].北京:人民邮电出版社,2009.

[11] PECORA L M, CARROLL T L. Synchronization in chaotic systems. [J] Physical Review Letters, 1990, 64(8): 821?824.

上一篇:刍议城市园林设计发展现状及前景分析 下一篇:机械移植柑桔树技术