APP下载

基于环境声音的真随机数发生器设计与应用

2019-04-19彭浩然

中国信息技术教育 2019年7期
关键词:质量评估声音

彭浩然

摘要:随着科学技术的发展,近距离无线通信在电子门禁、电子车锁等安全系统上得到了广泛应用。然而,确保系统安全性的手段大多采取伪随机数加密的方式,容易被各种分析器捕获、破译。本研究针对近距离无线通信的安全问题设计制作了基于环境声音的真随机数生成器,对生成的真随机数进行质量测试,与伪随机数进行对比测试,验证了其可靠性,并将其运用在汽车防盗等近距离无线通信设备的安全加密上。

关键词:真随机数;声音;质量评估;近距离通信安全

中图分类号:TN710 文献标识码:A 论文编号:1674-2117(2019)07-0072-05

绪论

随机数是一组同时具有无偏性和不可预测性的值,它是均匀分布的随机过程输出,而且输出的值之间是统计独立的。[1]随机数一般分为真随机数、伪随机数两类。真随机数通常利用一些物理过程的随机性质来产生[2],如针对电路噪声,设计相应的电路进行放大,通过适当的模数转换和规格化后,生成真随机数[3];或者利用光子的量子力学特性构造真随机数。[4]伪随机数是基于某一事先确定的序列来生成,依赖选定的随机数“种子”来产生随机序列,如C语言中的随机函数可以选用系统时间作为随机数的种子。[5]

对于如何衡量随机数的质量,德国联邦信息安全办公室给出了随机数发生器质量评判的四个标准[6],如表1所示。

这是一种定性的评判标准,伪随机数大多只能满足K1、K2标准,安全性较低,易被破解。真随机数则基本都能满足,安全性高很多,可在信息安全、密码学等领域发挥重要作用。

目前关于真随机数的研究主要集中在两个方面:真随机数的产生、真随机数的应用。例如,本文参考文献[3][4]分别介绍了基于环境噪声、纠缠光子对、鼠标移动轨迹产生真随机数的方法,[2]论述了真随机数在信息安全系统中的应用。这些研究注重理论的论证,为本文提供了理论支持。

本文从实践的角度出发,以环境声音作为真随机数种子,在Arduino Nano开源硬件上实现产生真随机数的算法;按照随机数质量评判标准进行评估,验证其可靠性;最后,以提高汽车电子锁的安全性为具体案例,将基于环境声音的真随机数发生器应用于近距离无线通信安全中。

基于环境声音数据的真随机数发生器的设计

随机数产生的两大要素分别是“种子”和“算法”。在“种子”的选择上,我们将声音、光线、温度、湿度和加速度等物理环境数据进行对比,发现声音在短时间内变化较快,而且方便收集、利用,所以使用声音传感器收集环境声音数据作为随机数的“种子”。关于随机数算法的研究,已经有比较成熟的算法,比如线性同余法[7]、梅森旋转法。[8]这两种算法产生的都是伪随机数,其中线性同余法算法简洁,适合用于Arduino Nano平台。

1.算法设计

线性同余法的核心算法为:xn+1=(axn+c)modm,其产生随机数的最大周期为m,而且只有在几个参数满足一定条件的情况下,其周期才能达到m。一般的线性同余产生随机数的算法中a和c都是最初就给定的常量,所以在每次运算后,都将环境信息中得到的一些数字作为新的参数,参与下一个随机数的生成,就可以解决线性同余法循环周期过短的问题。环境信息包括声音音量和从本次启动到当前为止的微秒数,其中声音通常是两位数字,环境声音较大时可能达到三位数。

m固定为10000,因此产生的随机数为0到9999的整数。但是由于不同场合需要的随机数范围及步长可能不同,我们设计了一个允许用户修改范围和步长的控制台,通过一个映射函数将原始随机数映射到设置的范围内。由于直接按比例缩放和分配的方法在整数范围内可能导致概率分布不均等,我们选择舍弃在可利用范围之外的原始随机数并再次生成,以保证概率均等,程序实现如图1所示。

2.结构设计及制作

整个结构需要的电子元件有Arduino Nano主控板、声音传感器、四位数码管、开关、按钮和电池,电路设计如图2所示,采取手工焊接的方式连接电路。出于便携考虑,将所有原件集中在一个体积较小的盒子内,如图3所示。由于对各孔洞尺寸精度要求较高,采用了PLA材料3D打印技术制作外壳。

3.测试评估

NIST(美国国家标准技术研究院)发布了一个用于评价随机数质量的测试[9],其中包含15项测试,如表2所示。

采用NIST的随机数质量测试软件,由声音生成的随机数可以通过其中的13项,如图4所示,而伪随机数只能通过其中的第8~11项测试,这足以证明其可靠性。

4.对比评估

为比较上文中提到的两种伪随机数算法和基于环境声音数据的新算法,分别使用三种算法生成10000个由0到9999的随机数进行分析,测试结果及分析如下。

(1)线性同余法

采用了C++STL中的线性同余法模板库函数,如图5所示。在取a=31、c=13、m=10000的条件下,数据分布较为均匀,但每1250个数字就会出现一个循环,让伪随机数的缺陷展露无疑,如图6所示。

(2)梅森旋转法

采用C++STL中的梅森旋转法模板库函数,如图7所示。生成的伪随机数质量较高,但2KiB以上的内存消耗使其無法在Arduino Nano的便携平台上运行。梅森旋转法算法部分测试结果及分析如下页图8所示。

(3)混合声音数据与线性同余法

不存在周期性,随机数质量较高。在不同的声音环境下,测试结果并无太大差异。但随机数获取速度主要受限于Arduino Nano与电脑间串口通信的传输速度,有待提高,如下页图9所示。

声音随机数在近距离无线通信安全中的应用

1.近距离无线通信安全现状

在某些特定场合,如面对面手机支付、手机门禁和手机会场签到,需要检测两设备是否处于相近的物理位置。传统的方法是通过简单的蓝牙、NFC等短距离无线通信手段进行检测的,而这种方法有着信息可预知、信号易模拟等易被攻陷的漏洞。作为一种无法预知且仅在相同物理位置可以获得的环境数据,如果可以将声音数据利用到检测过程中,则可以加强其安全性,避免远程操控的发生。

2.基本原理

在兩设备在物理位置十分接近的情况下,同一时间段内采集到的声音数据会具有一定的共同特征,而若相距较远,则不具有上述特性。因此,可以通过比较两设备在一定时间段内采集的声音数据来检测其物理位置是否接近。

3.技术实现

(1)客户端

数据采集:使用两台Android手机作为客户端,收到采集指令后,分别在接下来的3s内均匀采集共60个时间点的环境声音分贝值。

初步处理:为消除录音设备本身的差异影响,方便服务端进行比对,客户端将在发送前对原始数据进行一次规范化线性处理,使得所有的数据均变为1~94范围内的整数,且平均值为47.5。

压缩发送:发送前,客户端会将60个数据值压缩为包含60个常见字符的字符串,便于数据传输。

(2)服务端

解压比对:服务端收到信息后,将60个字符解压为初步处理后的数据形式,进行相似度的比对,并在下列两个辅助措施下计算区别度。

单点容错:由于难以保证同一个特征性声音脉冲在两个设备中在十分微小的时间误差内被记录,比对时除另一设备同时间点的数据外,还会考察与其相邻的两个数据点,并取差值最小者计算。

平移择优:由于难以保证两个设备开始记录的时间点完全一致,会进行数据整体左右平移最多10个单位以及不平移共21次计算,最终取区别度最小者,尽量消除由于开始时间不同而造成的误差。

4.初步测试

在深圳实验学校高中部校园内不同环境下进行测试,每次测试使用3台设备,其中两台(HP24,HP23)相距不超过10cm,另一台设备(zzw24)与前两台相距数米。测试得到的数据用折线图表示,如下页图10所示。

以HP24为参照,分别比较HP23、zzw24与其区别度。测试结果如表3所示。

由测试结果可知,即使是相距仅数米,得到的区别度也较大。若企图在不同环境下蒙混过关,难度较大,可以用于提升检测安全性。

5.具体应用举例:汽车防盗

目前,最常用的破解汽车门锁的方式有两种:①使用“干扰器”,使得遥控锁车失效。②利用“解码器”复制车主遥控钥匙信号(如图11),仿造一把遥控钥匙。

解决以上第一种问题,可在锁车后,顺手拉一下门把,确认是否锁上即可。第二种问题可以使用声音随机数设计防盗遥控钥匙。

当遥控钥匙发送锁门(或开门)信号时,使用声音随机数进行加密。车锁接收信号后,与自身声音随机数设备产生的数据在一定范围内进行匹配,能有效提高遥控钥匙的安全系数。

参考文献:

[1]徐恒.确定性随机数产生器安全性分析及改进[D].上海:上海交通大学,2009.

[2]黄显明.真随机数发生器在信息安全系统中的应用[J].电子产品世界,2015,22(6):13-15.

[3]邢锦江,冯允成.基于环境噪声的真随机数的产生[J].计算机工程,2006(3):31-33+36.

[4]马海强,常君弢,吴令安.基于纠缠光子对的真随机数源[J].量子光学学报,2002(S1):45.

[5]谢宇,周建儒.探寻C语言随机数生成函数的实现原理[J].自动化与仪器仪表,2016(2):219-220+222.

[6]德国联邦信息安全办公室[DB/OL].https://www.bsi.bund.de.

[7]CAYRE F, MACQ B.Data hiding on 3-D triangle meshes[J].Signal Processing IEEE Transactions on,2003,51(4):939-949.

[8]郑列,宋正义.伪随机数生成算法及比较[J].湖北工业大学学报,2008,23(5):65-68.

[9]Chen I T. Random Numbers Generated from Audio and Video Sources[J].Mathematical Problems in Engineering,2013(2):289-307.

项目基金:本研究受深圳市教育科学“十三五”规划重大招标课题“普通高中创客教育课程建设与实施方案研究”(课题编号:zdazz16005)基金支持。

猜你喜欢

质量评估声音
基于组合分类算法的源代码注释质量评估方法
给声音插上飞翔的翅膀
在最需要的地方发声
移动有声阅读让儿童文学回归故事本身
浅析民族男高音的演唱技巧
从影片《迫在眉睫2》看影视叙事节奏的表达
中国上市公司会计信息质量研究
澳大利亚研究生课程的外部质量评估
“学生学习结果评价”:美国高校教学质量评估的有效范式
植物生产类专业卓越农业人才培养质量评估体系的构建