赵 岩,陈 岚
(中国科学院微电子研究所,北京100029)
在低压电力线载波通信的安全认证系统中,加密算法的安全性是认证协议能正常运行的最基本保障。而作为加密算法的核心,密钥的质量主要依靠随机数的不可预测性和不可重复性。因此,高质量的随机数是电力线通信系统安全通信的重要保障。
现在常用的随机数生成法有真随机数生成法和伪随机数生成法。其中,伪随机数生成法是通过算法来实现随机数,它产生随机数的质量受算法以及初始种子限制;真随机数生成法又叫硬随机数生成法,其主要是通过硬件方法根据自然界中物理现象的随机特性来实现[1]。
相比于伪随机数,真随机数具有很好的随机性、鲁棒性和不可预测性,因此常被用于对随机数要求较高的安全系统中。常用的真随机数生成法主要有热噪声生成法、振荡采样生成法和离散时间混沌法,这些方法的思想都是通过对自然界中某一物理器件的随机特性进行一系列处理然后得到较为理想的随机数。
本设计针对现阶段常用真随机生成法的缺陷,提出了一种具有电路设计简单、随机序列随机性高等特点的基于信道噪声的真随机数发生器。分析了信道中噪声的随机性,详细介绍了真随机数发生器的结构和具体实现过程,并对设计进行了验证。
真随机数的随机性主要是利用自然界各种物理现象的随机特性,可以是原子核的放射性衰败、大气噪声、热噪声等[1]。通过对这些物理现象进行采样,然后经过一系列的处理就可以得到相关性很好的真随机数。
热噪声采样法是通过直接放大电阻两端的热噪声,同时和基准电压进行比较来产生均匀分布的“0”、“1”随机序列。
振荡采样法主要是利用独立振荡器存在的相位噪声(理想状态MOSFET热噪声的副效应)以及器件中所存在的差异性来产生随机数。其原理如图1所示,频率不同的两个振荡源,快振荡器作为数据输入端,慢振荡器作为D触发器时钟信号来采样快速时钟。依靠两个振荡器的频率差和抖动可使得采样具有不确定性,理论上可以在每个采样点产生一个随机位,并可通过选择两种振荡器的频率比来增强随机性。
图1 基于振荡采样的真随机数发生器
离散时间混沌法是通过构造一个混沌系统,利用混沌电路的不可预测性以及对初始条件敏感的依赖性来产生随机数。比如,根据Bernoulli变换关系Xn=[2(Xn-1+e(n))]mod 1.0来产生随机序列。
通过对现在几种常用的真随机数生成法进行调研分析,发现这些方法虽然可以通过对物理现象采样来获得随机数,但由于热噪声采样法提取电路的鲁棒性较差、振荡采样法产生的随机序列随机性不够以及离散时间混沌法电路复杂度较高等弊端,严重影响着生成随机数的质量,制约着其在加密安全系统中的广泛应用。
为了能够获得高质量的真随机数,在现阶段的芯片设计中,通过采用两种真随机生成法或者多种真随机数生成法进行优化组合来产生真随机数,然后通过后处理模块来消除相关性,再经过伪随机数发生器处理后生成真随机数。本设计就是基于现阶段真随机数生成法,利用电力线噪声的随机性和电力线通信中的加密算法,对真随机数的整个生成过程进行优化,减少不必要的功耗和芯片面积的浪费,同时保证了生成的真随机数的质量。
电力线上的噪声源分为人为噪声源和非人为噪声源,人为噪声的来源主要是各种电器产品的使用,而非人为噪声的来源主要是自然现象,比如雷电等[2]。
根据国内外对电力线信道噪声的研究现状,电力线上的噪声可以总结为背景噪声和脉冲噪声两大类。
背景噪声的主要特性是低功率的噪声源,随频率的增大而减小,保持时间不稳定,并且产生的干扰强度受用电器数量影响。包括有色背景噪声、窄带噪声和异步于工频的周期脉冲噪声。其中,有色背景噪声是由低功率噪声源引起,在时域上表现为一个变化缓慢的随机过程;窄带噪声主要由电力线中的驻波或者谐振中短波广播引起,主要表现为多种正弦条幅信号的叠加;脉冲是多种衰减正弦波的叠加,是电力线通信的主要干扰源[3]。
ARMA(Auto Regressive Moving Average)模型是常用于背景噪声建模的参数模型[4]。该模型用一个p阶差分方程来进行描述
式中:w(n)是零均值、方差为的白噪声;x(n)是要研究的随机序列。
脉冲噪声是随时间变化而变化,在信道中一般表现为突发性脉冲噪声,其具有很强的随机性[2]。主要包括同步于工频的周期脉冲噪声和异步脉冲噪声[5]。根据调研国内外对脉冲噪声的研究进展,可以发现脉冲噪声具有马尔科夫特性。马尔科夫过程是一种应用广泛的随机过程,其定义如下:若状态和时间参量都是离散的随机过程X(n),在k时刻状态X(k)已知的条件下,其后k+1时刻所处的状态只与k时刻的状态有关,而与之前时刻的状态无关,则该过程成为马尔科夫链[6]。
图2、图3分别是通过实地对电力线信道噪声进行采样得到的频谱波形和时域波形。由时域波形可以发现,电力线噪声包络具有周期性,这主要是由于电力线噪声在过零点噪声值较小,在峰值处噪声大,使得包络整体呈现出50 Hz的周期性,但实际数值并没有周期性;此外,由于电力线噪声存在很强的时域脉冲噪声和突发噪声,因此在频域波形可以观察到,电力线噪声在低频段噪声较强,且存在很强的窄带噪声和频域脉冲噪声。
图2 电力线信道噪声的频谱波形
图3 电力线信道噪声时域波形
本设计主要由噪声提取模块、数字化处理模块和后处理模块组成,其整体设计流程如图4所示。在随机数产生工作过程中,首先从信道噪声进行噪声采样,将采到的信道噪声经过噪声提取模块的数字化处理,获得噪声数据比特流,再经由后处理模块通过使用类哈希函数把随机噪声数据比特流做加密处理来消除随机数的偏差和自相关性,最后生成分布均匀、相对独立的随机序列。
图4 真随机数实现流程图
在噪声的采集上,本设计使用了常用的信号采集方式,即通过在电力线信道上采集噪声,经过放大器放大,滤波器滤波,最后由A/D转换模块将提取的噪声进行数字化处理,把采集到的噪声转化为噪声数据比特流。在电力线通信安全认证中,由于每一个随机数都有固定的生命周期,不需要实时进行更新,因此出于芯片功耗的考虑,在噪声提取模块的设计中增加一个噪声采集的控制模块,以便能够精确地控制随机数的生成。图5是噪声提取的具体实现流程图。
图5 信道噪声提取模块
用物理的方法来产生真随机序列,虽然具有不可猜测、不能重复的优点,但在采样数字量化的过程中容易受到电路中各类噪声的干扰和环境温度的影响,产生的真随机数序列会出现偏差和自相关性,因此为了保证产生高质量的真随机数序列,需要采用后处理机制来对产生的随机序列进行校正。
现在常用的后处理算法主要有冯·诺依曼校正法、多级级联的异或链法、哈希函数[7]等。基于本设计是应用于电力线载波安全通信中,其安全认证功能模块中已包含类哈希函数的加密模块EAX[8-9],所以使用类哈希函数作为后处理算法,其具体实现如图6所示。
图6 使用EAX加密算法的后处理模块
哈希函数作为后处理算法不仅能够消除随机数的偏差,保证随机数的独立性和鲁棒性,而且还具有一些其他方法不具备的优点[7]:
1)在真随机数生成系统出现错误时,哈希函数的非线性能够使得该后处理模块可以作为伪随机数发生源用来产生相对可靠的伪随机数。
2)哈希函数的非线性能够很好地弥补物理采样机制中的缺陷。
3)哈希函数广泛应用于信息安全认证系统中,使用其作为后处理算法可以节省硬件资源,减少芯片面积的使用,提高资源的利用率,降低芯片成本。
3.2.1 EAX 算法和实现
EAX算法是一种应用于解决验证加密的类哈希函数算法。它通过对一系列明文M进行各种加密处理,使用多种密钥将明文转化成相对应的密文,并且会产生一个用于保护信息隐秘性和明文验证的标记符T。图7是EAX算法的具体实现:
1)使用OMAC算法分别对时间戳N、数据头H进行加密,得到相应的密文N,H;
2)使用CTR算法对明文M进行加密,得到密文C;
3)对密文C用OMAC算法进行加密,得到密文C;
4)将3种密文N,H,C按位进行异或运算,最后得到需要的随机数T。
图7 EAX算法实现[2]
图7中,N代表的是时间戳,M代表的是明文,H代表的是数据头。CTR,OMAC为两种加密算法。
CTR算法[10]通过分别对一系列输入数据块进行加密,得到相应系列的密文值,将得到的密文值再与明文异或得到最终的密文。在CTR算法中,最后的数据块按照其位长的不同,需进行不同的操作:若数据块位长小于或者等于系统设定位长,则将其全部进行异或,否则只将系统设定的位长进行异或,其他位被舍弃。
OMAC算法[11]即 one-key CBC MAC 算法,也是一种通过对数据块加密来对数据进行验证的加密算法。每个数据块与前一个加密模块的密文块进行异或后,进行再次加密。在最后数据块处理过程中,根据其位长的不同,在异或操作中做不同的移位运算。在整个加密过程中,只用一个密钥来进行加密。
在本设计中,为了能够保证随机数经后处理后的随机性,特对参数做以下设定:
1)设定0x0000F0F0作为Nonce的初始量,在每次调用EAX模块后Nonce自加1;
2)设定ID‖Time作为H的例化,其中ID是每一个设备自带的14 byte随机数,Time为调用EAX模块时的8 byte时间常数,精确到毫秒;
3)设定Nonce‖Time作为调用EAX模块时使用的密钥。
后处理模块在获得经过数字化的噪声数据后,按照EAX算法的具体实现过程,对时间戳Nonce做OMAC加密,对噪声数据M依次做CTR加密和OMAC加密,对数据头H做OMAC加密,最后将得到的三种密文根据位数的要求做异或运算,最终得到经过后处理模块加密处理的随机数T。
为了验证真随机数设计的可靠性和随机性,本设计遵循FIPS140-2标准[12]中对随机数测试的要求,采集了20 000 bit随机数作为测试量,依次进行了频数检测、扑克检测、游程检测和长游程检测四种常用的随机数检测,检测的结果如表1所示。
表1 真随机数检测结果
从表1的检测结果可以看出,本设计产生的真随机数在频数检测、扑克检测、游程检测、长游程检测中的测试结果均在FIPS140-2标准规定的置信区间内,符合FIPS140-2标准对真随机数的要求。
通过对生成的真随机数的测试结果表明,本设计通过采用以电力线信道上的噪声作为随机源,经数字处理后再由EAX加密作后处理的方式可以产生随机性很好的真随机数。并且由于本设计不需要额外在芯片硬件上完成异或链电路,同时不需要通过软件来搭建伪随机数发生器,这样可以减少在真随机数生成过程中不必要的资源浪费,提高了工作效率。
本设计针对现阶段常用真随机数发生器生成方法的弊端,提出了一种具有电路设计简洁、产生随机序列随机性高等特点的基于电力线信道噪声的真随机数生成器设计,该方法的随机源是电力线信道噪声,经过噪声提取模块数字化处理,再由后处理模块使用EAX加密算法消除生成随机数的偏差和自相关性,最后获得具有很好随机性、独立性和鲁棒性的随机数。本设计具有电路设计简单、占用芯片面积小、受电路噪声影响较小,产生的随机序列随机性好、功耗相对较低的特点,能够弥补常用真随机发生器的不足,通过测试表明,使用本设计方法可以产生随机性很好的高质量真随机数序列。
[1] EASTLAKE D,SCHILLER J,CROCKER S.Randomness requirements for security[EB/OL].[2013 -06 -10].http://www.hjp.at/doc/rfc/rfc4086.html.
[2]张秀秀.低压电力线信道噪声特性分析[J].山西电子技术,2009(5):57-59.
[3]林虹,林东.PLC信道噪声建模及噪声发生器的设计[J].电力系统通信,2011(7):61-65.
[4]范剑青,姚琦伟.非线性时间序列:建模、预备及应用[M].北京:高等教育出版社,2005.
[5]翟明岳,曾庆安.低压电力线通信信道的马尔柯夫特性研究[J].中国电机工程学报,2007,27(22):116-121.
[6]郭昊坤,吴军基,陆娴,等.电力线通信信道噪声模型研究现状[J].电力系统通信,2011(8):1-3.
[7] SUNAR B.True random number generators for cryptography[EB/OL].[2013-06-10].http://link.springer.com/chapter/10.1007/978-0-387-71817-0_4#page-1.
[8] BERSANIF,TSCHOFENIG H.The EAP-PSK protocol:a pre-shared key extensible authentication protocol(EAP) method[EB/OL].[2013-06-10].http://tools.ietf.org/html/rfc4764.
[9] BELLAREM,ROGAWAY P,WAGNER D.The EAX mode of operation[EB/OL].[2013-06-10].http://link.springer.com/chapter/10.1007/978-3-540-25937-4_25#page-1.
[10] Special Publication(SP)800-38B,National institute of standards and technology,recommendation for block cipher modes of operation:the CMACmode for authentication[S].2005.
[11] IWATA T,KUROSAWA K.FSE 03,Springer-Verlag LNCS 2887,OMAC:one-key CBCMAC[S].2003.
[12] NIST FIPS140-2,Security requirements for cryptographic modules[S].2001.