基于AES密码的语音感知信息加密的研究与实现

上传人:ji****72 文档编号:45864324 上传时间:2018-06-19 格式:PDF 页数:8 大小:307.16KB
返回 下载 相关 举报
基于AES密码的语音感知信息加密的研究与实现_第1页
第1页 / 共8页
基于AES密码的语音感知信息加密的研究与实现_第2页
第2页 / 共8页
基于AES密码的语音感知信息加密的研究与实现_第3页
第3页 / 共8页
基于AES密码的语音感知信息加密的研究与实现_第4页
第4页 / 共8页
基于AES密码的语音感知信息加密的研究与实现_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《基于AES密码的语音感知信息加密的研究与实现》由会员分享,可在线阅读,更多相关《基于AES密码的语音感知信息加密的研究与实现(8页珍藏版)》请在金锄头文库上搜索。

1、http:/ -1- 基于基于 AES 密码的语音感知信息加密的研究与实现密码的语音感知信息加密的研究与实现 王靖琰 中国科学院上海应用物理研究所,上海 (201800) E-mail: 摘摘 要:要:生物特征识别自身的安全性在很大程度上依赖于生物特征数据的安全性,而当前的 研究对生物特征数据并没有足够的重视。 本文创新性地提出了对语音感知特征信息进行加密 以保证声纹特征身份鉴定系统安全性的方法,首先分别讨论了语音 MFCC 特征信息提取算 法和 AES 密码标准算法,然后编程实现了以上算法,最后实现了一个基于 AES 加密的高安 全性声纹特征身份鉴定系统。实验表明本系统有着良好的识别率,同时

2、由于采用了 AES 密 码,本系统中存储的语音感知特征信息的安全性得到了充分保障。 关键词:关键词:生物特征安全;MFCC;AES 密码;声纹特征身份鉴定 1引言引言 生物识别技术(Biometric Identification Technology)是利用人体生物特征(声纹、指纹、虹膜、脸像等等)进行身份认证的一种技术,它不需要记住复杂的密码,也不需随身携带钥匙、智能卡之类的东西1。生物识别技术认定的是人本身,没有什么能比这种认证方式更安全、更方便了。由于每个人的生物特征具有与其他人不同的唯一性和在一定时期内不变的稳定性,不易伪造和假冒,所以利用生物识别技术进行身份认定,安全、方便、可靠、

3、准确。 但是也正因为这些固有的特性, 使得生物特征识别的研究不得不关注生物特征识别自身的安全性。生物特征识别带来的安全性是建立在这样一个基础上:那就是进入生物特征识别系统的生物特征数据只能来自于合法的拥有者, 可见生物特征识别自身的安全性在很大程度上依赖于生物特征数据的安全性。无论是攻击生物特征数据的传输通道,还是攻击系统的处理单元和存储单元,其目的都是窃取和篡改合法的生物特征数据。所以,生物特征模板数据的安全对生物特征识别自身的安全性的影响是至关重要的2 3。 对于生物特征数据的保护方法可以大体分为两类:数据加密和信息隐藏。现有的关于生物特征数据安全研究方面的文献并不多见, 而关于对语音感知

4、域生物特征信息进行加密保护的研究迄今为止还没有记载。本文提取语音信号的MFCC特征作为声纹识别身份鉴定系统的生物特征,采用高级加密标准AES对其进行加密存储和传输,以防止生物特征数据被非法攻击以保证其安全性,进而保证生物识别系统的安全性,填补了这一研究上的空白。 2语音感知域特征加密原理语音感知域特征加密原理 人耳蜗非线性频率尺度上的滤波作用使人耳对低频信号比对高频信号更敏感, Mel 频标倒谱参数(Mel frequency cepstral coefficient,MFCC)提取过程中使用的 Mel 滤波器组对人耳这种机能的进行了很好的工程化模拟, 是一种在语音识别领域经常应用的语音感知域

5、特征信息4。本文提取语音信号的 MFCC 特征作为声纹识别身份鉴定系统的生物特征。 高级加密标准 AES 是美国国家技术标准委员会 NIST (Nat ional Institute of Standards and Technology) 用来代替 3DES 作为新的加密标准。AES 目前使用的一般为 128, 196 和 256 位密钥, 这三种密钥都是相当安全的。美国政府批准将 128 位密钥的 AES 算法用于一般数据加密, 196 位和 256 位密钥的 AES 算法用于秘密数据和绝密数据的加密5 6。 为了保证语音特征身份鉴定系统的安全性,防止代表说话人身份的语音敏感信息被窃取,在

6、码本存储和 MFCC 数据传输个过程中,采用其原始数据的 AES-128 密码加密的密文http:/ -2- 形式。我们选择 AES-128 加解密算法对语音感知信息进行加密。 2.1 语音听觉感知特征信息的提取语音听觉感知特征信息的提取 在人类的听觉系统中, 人耳中的耳蜗起了很关键的作用, 其实质上的作用相当于一个滤波器组。当声音传入耳蜗时, 耳蜗内流体压强会发生变化,从而引起行波沿基底膜的传播, 由于声音的不同频率沿着基底膜的分布是对数型的, 因此耳蜗的滤波作用相当于在一个非线性频率尺度上进行。耳蜗的这种非线性频率尺度上的滤波作用, 使人耳对低频信号比对高频信号更敏感。人耳的这种特性在语音

7、识别中得到了广泛的应用, 例如特征提取中常用到的Bark 和 Mel 滤波器组就是对人耳这种机能的一种工程化模拟。 MFCC 是在 Mel 标度频率域提取出来的倒谱参数, Mel 标度描述了人耳频率感知的非线性特性,它与频率的关系可用下式近似表示为7: ( )2595 lg(1(1)/700)mel ff=+ 或者: ( )1125 lg(1(2)/700)mel ff=+ 式中 f 为频率,单位是 Hz。 在 MFCC 特征提取算法中, 输入语音首先通过傅里叶变换得到其频谱, 然后再在频域上应用一组 M el 频率上均匀分布的滤波器来得到类似人耳听觉特性的非线性频谱分辨率。MFCC 参数是按

8、帧计算的,Mel 倒谱系数的提取框图如图 1 所示。 图 1 Mel 倒谱系数提取框图 其中 Mel 滤波器组如图 2 所示。 图 2 用于计算 Mel 倒谱的三角滤波器组 2.2 AES 密码算法密码算法 AES 是一种分组密码,其分组长度为 128 位,密钥长度为 128 位,192 位或 256 位。分预处理 语音 FFT MEL 滤波器组能量输出 log DCT MFCChttp:/ -3- 别称为 AES-128、AES-192 和 AES-256。本文采用 AES-128 密码。AES 算法主要由密钥扩展、加密模块和解密模块三部分组成。AES 没有使用 Feistel 结构,每轮由

9、四个独立的运算组成:字节代换,置换,有限域上的算术运算,以及与密钥的异或运算8。 与公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据。通过分组密码返回的加密数据的位数与输入数据相同。迭代加密使用一个循环结构,在该循环中重复置换(permutations )和替换(substitutions)输入数据。 AES-128将输入的明文分成16个字节, 在第一轮AddRound变换后一共进行10 轮迭代。KeyAES-128 的加密过程。前 9 轮完全相同。依次经过 SubBytes、ShiftRows、MixColumns、AddRoundKey 四个子模块,最后一轮跳过 Mix

10、Columns。加密过程如图 3 所示。 图 3 AES 加密流程图 图 4 AES 解密流程图 (1)SubBytes 操作:SubBytes 转换是作用于状态中每个字节上的非线性转换,其 S 盒是可逆的且由以下两部分组成: 首先,在域 GF(28)中取字节的乘法逆。其中,“00”的乘法逆是它本身。 其次,在域 GF(2)中进行仿射变换:y = Ax-1+b,其中 100011111 110001111 111000110 111100010,(3)111110000 011111001 001111101 000111110Ab = (2) ShiftRows 操作: ShiftRows

11、将状态中的各行以不同的位移量进行循环移位。 0 行不移,第 1 行移 1 字节,第 2 行移 2 字节,第 3 行 3 字节。 http:/ -4- (3) MixColumns 操作:MixColumns 把状态中每一列看作域 GF(28)上的多项式 C(x)与一固定多项式相乘然后模多项式 x4+1。其中 C(x)为: 32C(x) =03x +01x + 02(4) C(x)与 x4+1 互质,因此是可逆的。 (4)AddRoundKey 操作:AddRoundKey 中,轮密钥被简单地按位异或到状态中。轮密钥通过密钥表得到。其长度为 4。 为了防止已有的密码分析攻击 ,A ES 使用了与

12、轮相关的轮常量防止不同轮中产生的轮密钥的对称性或相似性。AES 在加密和解密算法使用了一个由种子密钥字节数组生成的密钥调度表,A ES 规范中称之为密钥扩展例(Key Expansion) 。密钥扩展例程从一个原始密钥中生成多重密钥以代替使用单个密钥大大增加了比特位的扩散,在 AES 密钥扩展算法的输入值是 4 字密钥,输出是一个 44 字的一维线性数组。这足以为初始轮密钥扩展例程阶段和算法中的其他 10 轮中的每一轮提供 16 字节的轮密钥。 3语音感知特征加密识别系统的实现语音感知特征加密识别系统的实现 本文Microsoft Visual C+ 6.0上实现了一个语音感知特征信息加密与识

13、别系统。本系统对输入的语音信号进行处理,提取其感知特征信息MFCC,并对其采用AES-128密码进行加密,存储为一个.aes文件。识别时,读入.aes文件,利用AES-128解密算法,以与加密密钥相同的密钥进行解密,得到MFCC数据,同时解密预先存储的矢量量化码本,与之匹配得到识别结果。系统的框图如图5所示。 图5 语音感知特征加密识别系统框图 3.1 语音语音 MFCC 特征数据提取的程序实现特征数据提取的程序实现 对语音信号的听觉感知域 MFCC 参数的提取是以帧为单位进行的,每帧语音信号提取一个参数矢量, 一段语音得到一组矢量。 定义 mfcc_VECTOR 和 mfcc_VECTORL

14、IST 结构体表示特征矢量和矢量组如下: typedef struct VECTOR_tag 待识别语音输入 MFCC 提取AES 加密MFCC 加 密文件 码本加密 文件AES 解密 模式匹配 识别结果 训练语音输入 MFCC 提取AES 加密码本 训练 http:/ -5- mfcc_double *data; mfcc_UINT data_dimension; mfcc_VECTOR; typedef struct VECTORLIST_tag mfcc_VECTOR *vector; mfcc_UINT vector_number; mfcc_UINT vector_dimension

15、; mfcc_VECTORLIST; 为了实现对语音信号的 MFCC 参数的提取,读取语音信号分帧后,首先要对语音信号进行预加重和加哈明窗的预处理。 这些处理分别通过 PreAccent 函数和 HammingPonder 函数实现,具体调用方式为: frames.vectori.dataj - (int)(n/2) * i = PreAccent(s.signal_dataj) * HammingPonder(n,j - (int)(n/2) * i); 然后对信号进行 FFT 变换,通过以下代码实现: 对 rdft(n,1,fftframes.vectori.data); 为了实现对信号的 Mel 滤波器组滤波,首先通过程序生成 Mel 滤波器组 melfilterbank,然后让信号分别通过各滤波器进行处理,求最后将输出的数据的能量,并求对数: for (j = 0 ; j k+1; +j) for (l = 0; l (mfcc_UINT) n / 2; +l) melframes.vectori.dataj += melfilterbank.vectorj.datal * ( pow(fftframe

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

当前位置:首页 > 行业资料 > 其它行业文档

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