《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 利用算法對(duì)智能卡隨機(jī)數(shù)的偽隨機(jī)改進(jìn)
利用算法對(duì)智能卡隨機(jī)數(shù)的偽隨機(jī)改進(jìn)
2015年微型機(jī)與應(yīng)用第3期
孫 俊,王 彬
(杭州電子科技大學(xué) 電子信息學(xué)院,浙江 杭州 310018)
摘要: 隨著信息技術(shù)的發(fā)展,智能IC卡在認(rèn)證、銀行、交通等領(lǐng)域得到廣泛應(yīng)用,系統(tǒng)的真隨機(jī)數(shù)的產(chǎn)生及其改進(jìn)成為人們的研究重點(diǎn)之一。簡(jiǎn)單論述了真?zhèn)坞S機(jī)數(shù)的產(chǎn)生方法,并對(duì)其隨機(jī)性進(jìn)行了偽隨機(jī)方法的改進(jìn)。測(cè)試結(jié)果表明,經(jīng)過算法處理后的隨機(jī)性得到了較大的提高,完全通過國(guó)家商用密碼管理局的隨機(jī)性檢測(cè)規(guī)范的測(cè)試。
Abstract:
Key words :

  摘  要: 隨著信息技術(shù)的發(fā)展,智能IC卡在認(rèn)證、銀行、交通等領(lǐng)域得到廣泛應(yīng)用,系統(tǒng)的真隨機(jī)數(shù)的產(chǎn)生及其改進(jìn)成為人們的研究重點(diǎn)之一。簡(jiǎn)單論述了真?zhèn)坞S機(jī)數(shù)的產(chǎn)生方法,并對(duì)其隨機(jī)性進(jìn)行了偽隨機(jī)方法的改進(jìn)。測(cè)試結(jié)果表明,經(jīng)過算法處理后的隨機(jī)性得到了較大的提高,完全通過國(guó)家商用密碼管理局的隨機(jī)性檢測(cè)規(guī)范的測(cè)試。

  關(guān)鍵詞智能卡;隨機(jī)數(shù);隨機(jī)性測(cè)試;算法

0 引言

  隨機(jī)數(shù)在智能卡芯片操作系統(tǒng)(Chip Operation System,COS)中主要用于卡片和讀卡器之間的認(rèn)證、數(shù)據(jù)加密及其安全傳輸。隨機(jī)數(shù)是以現(xiàn)代密碼學(xué)為基礎(chǔ)的信息安全系統(tǒng)的基石。整個(gè)系統(tǒng)的安全性完全依賴于隨機(jī)數(shù)序列的生成效率和質(zhì)量。因此,高質(zhì)量的隨機(jī)數(shù)對(duì)COS的安全舉足輕重,如果隨機(jī)數(shù)的隨機(jī)性不夠安全,整個(gè)系統(tǒng)極有可能被攻擊者攻破,造成無(wú)法挽回的損失。

1 偽隨機(jī)數(shù)和真隨機(jī)數(shù)

  信息安全系統(tǒng)中的隨機(jī)數(shù)序列要求具有足夠的長(zhǎng)度和周期,以及盡可能高的熵值,即具有高度的隨機(jī)性和不可預(yù)測(cè)性。

  隨機(jī)數(shù)序列的產(chǎn)生方法有兩種:偽隨機(jī)數(shù)和真隨機(jī)數(shù)。

  1.1偽隨機(jī)數(shù)

  目前應(yīng)用的隨機(jī)數(shù)通常是通過某些數(shù)學(xué)公式計(jì)算而產(chǎn)生的偽隨機(jī)數(shù),即由偽隨機(jī)數(shù)發(fā)生器(Pseudo Random Number Generator,PRNG)產(chǎn)生的,它是由一個(gè)初始狀態(tài)開始,通過一個(gè)確定的算法來生成隨機(jī)數(shù)。一旦給定算法和種子,輸出序列就確定了,有一定的周期性。

  偽隨機(jī)序列一般都有比較好的隨機(jī)統(tǒng)計(jì)特性,其用數(shù)學(xué)算法生成,在一些統(tǒng)計(jì)特性方面接近真隨機(jī)序列,但卻是周期的和可預(yù)測(cè)的。

  偽隨機(jī)數(shù)容易獲得且方便使用,一般用于仿真、測(cè)試等場(chǎng)合。

  1.2 真隨機(jī)數(shù)

  真隨機(jī)數(shù)是不可預(yù)測(cè)的,因而不可能重復(fù)產(chǎn)生兩個(gè)相同的真隨機(jī)數(shù)數(shù)列。真隨機(jī)數(shù)只能用某些隨機(jī)物理過程來產(chǎn)生。例如放射性衰變、電子熱噪聲、宇宙射線的觸發(fā)時(shí)間等。

  真隨機(jī)數(shù)序列是由真隨機(jī)數(shù)發(fā)生器(True Random Number Generator,TRNG)產(chǎn)生,是依托自然界物理現(xiàn)象的隨機(jī)特性。對(duì)一個(gè)TRNG來說,不存在初始序列或種子,沒有任何一種算法可以預(yù)先決定下一個(gè)輸出是什么,消除了偽隨機(jī)性的周期問題,而且是獨(dú)立和不相關(guān)的。

  真隨機(jī)序列雖然有難以預(yù)測(cè)、不能重復(fù)的特性,但隨機(jī)統(tǒng)計(jì)卻不理想。真隨機(jī)序列用物理方法生成,通過選取真實(shí)世界的自然隨機(jī)性,所生成的隨機(jī)數(shù)稱為真隨機(jī)數(shù)。

  真隨機(jī)數(shù)取自物理世界的真實(shí)隨機(jī)源,難以破解,主要應(yīng)用在數(shù)據(jù)加密、密鑰管理、身份鑒定等對(duì)安全性要求較高的領(lǐng)域。

2 基于振蕩采樣產(chǎn)生隨機(jī)數(shù)

  在智能卡中隨機(jī)數(shù)通常用于產(chǎn)生密鑰以及與讀卡器之間的認(rèn)證。由于高安全的原因,隨機(jī)數(shù)應(yīng)當(dāng)是真隨機(jī)數(shù)而不是偽隨機(jī)數(shù)?,F(xiàn)在所有的智能卡控制芯片都有產(chǎn)生真隨機(jī)數(shù)的硬件隨機(jī)數(shù)產(chǎn)生器。所產(chǎn)生的隨機(jī)數(shù)的隨機(jī)性必須不能受到外部物理環(huán)境的影響,比如溫度、電壓。

  本文真隨機(jī)數(shù)的產(chǎn)生基于振蕩采樣的設(shè)計(jì)方法?;谡袷幉蓸拥腡RNG從時(shí)鐘抖動(dòng)中獲得隨機(jī)性。圖1所示是基于振蕩器的真隨機(jī)數(shù)發(fā)生器。

001.jpg

  帶有抖動(dòng)的慢振蕩器通過D觸發(fā)器采樣一個(gè)周期固定的快振蕩器,輸出隨機(jī)序列Y。由于慢振蕩器的抖動(dòng)是不確定的[1],并且其抖動(dòng)范圍遠(yuǎn)遠(yuǎn)大于快振蕩器周期,因此輸出0和1的概率基本相等,從而輸出的序列Y隨機(jī)。

  振蕩器的相位抖動(dòng)使得采樣值具有不確定性,理想情況每一次采樣都能產(chǎn)生一個(gè)隨機(jī)位。但產(chǎn)生的隨機(jī)數(shù)不具有較好的統(tǒng)計(jì)屬性,所以通常會(huì)用偽隨機(jī)的方法來對(duì)采樣輸出進(jìn)行處理,改善其隨機(jī)性。

3 隨機(jī)數(shù)隨機(jī)性的算法改進(jìn)及測(cè)試

  3.1 真隨機(jī)數(shù)的偽隨機(jī)處理

  雖然真隨機(jī)數(shù)發(fā)生器在密碼、密鑰的應(yīng)用中起著重要作用,但是目前大多數(shù)真隨機(jī)數(shù)發(fā)生器還是基于一種理想狀況來分析其輸出的隨機(jī)序列的性能。由于各種物理環(huán)境變化的影響,基于硬件實(shí)現(xiàn)的隨機(jī)序列源通常具有一定的相關(guān)性。

  實(shí)際中產(chǎn)生的隨機(jī)數(shù)存在分布性較差、穩(wěn)定性不佳等缺點(diǎn),所以在實(shí)際應(yīng)用中,通常還需要對(duì)其發(fā)生器的輸出序列進(jìn)行進(jìn)一步的處理和運(yùn)算來改進(jìn),才能使輸出的序列通過各種隨機(jī)性的測(cè)試。

  幾乎每個(gè)智能卡操作系統(tǒng)都包括有用于鑒別的加密算法。使用它作為真隨機(jī)數(shù)的偽隨機(jī)改進(jìn)是一個(gè)必然的選擇。實(shí)現(xiàn)一個(gè)盡可能把明文攪亂的加密算法,如果不了解密鑰就無(wú)法從密文得出明文。稱之為“雪崩準(zhǔn)則”的原理:平均而言,輸人改變1位則輸出的各位中將有一半要改變[2]。這個(gè)特性能很好地為隨機(jī)數(shù)發(fā)生器所應(yīng)用,發(fā)生器的準(zhǔn)確構(gòu)造隨其實(shí)現(xiàn)而各不相同。圖2和圖3是兩種真隨機(jī)數(shù)的改進(jìn)方法示意圖。

002.jpg

  基本改進(jìn)過程:將產(chǎn)生的真隨機(jī)數(shù)填充環(huán)形緩沖器,再將環(huán)形緩沖器部件之值用DES加密,用一個(gè)對(duì)卡是唯一的密鑰,產(chǎn)生密文長(zhǎng)度為8 B的隨機(jī)數(shù),也可以采用其他加密算法進(jìn)行加密。加密后的數(shù)據(jù)與緩沖器里下一個(gè)真隨機(jī)數(shù)的XOR值提供了EEPROM環(huán)形緩沖器的新輸入。循環(huán)結(jié)束后產(chǎn)生的隨機(jī)數(shù)即為改進(jìn)的真隨機(jī)數(shù)。

  對(duì)產(chǎn)生的真隨機(jī)數(shù)通過加密算法進(jìn)行進(jìn)一步改進(jìn)處理。主要步驟為:

 ?。?)先通過硬件隨機(jī)數(shù)發(fā)生器,產(chǎn)生8/16 B的隨機(jī)數(shù),將產(chǎn)生的真隨機(jī)數(shù)作為明文,再重新產(chǎn)生一次真隨機(jī)數(shù)作為密鑰,經(jīng)過3DES加密得到密文;

 ?。?)將經(jīng)3DES加密后的密文,作為SM1國(guó)密算法的基礎(chǔ)密鑰EK;

 ?。?)重復(fù)步驟(1),將得到的密文作為SM1國(guó)密算法的系統(tǒng)密鑰SK;

 ?。?)重復(fù)步驟(1),將得到的密文作為SM1國(guó)密算法的輔助密鑰AK;

 ?。?)重復(fù)步驟(1),將得到的密文作為新的明文;

 ?。?)利用步驟(2)~步驟(5)產(chǎn)生的密鑰和明文,通過SM1國(guó)密算法進(jìn)行加密,得到的隨機(jī)數(shù)稱為改進(jìn)隨機(jī)數(shù)。

  3.2 改進(jìn)隨機(jī)數(shù)的測(cè)試

  實(shí)現(xiàn)了隨機(jī)數(shù)發(fā)生器之后,對(duì)它所產(chǎn)生的隨機(jī)數(shù)必須嚴(yán)格地測(cè)試,基本情況是在所產(chǎn)生的隨機(jī)數(shù)中,1和0的數(shù)量應(yīng)接近于相等。采用標(biāo)準(zhǔn)統(tǒng)計(jì)方法從數(shù)學(xué)上測(cè)試隨機(jī)數(shù)。對(duì)大量8位隨機(jī)數(shù)進(jìn)行測(cè)試,應(yīng)當(dāng)有10 000~100 000的數(shù)字產(chǎn)生,分析以達(dá)到合理的可信結(jié)果。測(cè)試方法是使用計(jì)算機(jī)測(cè)試程序。

  本實(shí)驗(yàn)使用的測(cè)試工具是由美國(guó)國(guó)家標(biāo)準(zhǔn)技術(shù)研究所(NIST)推出的SP 800-22[3]隨機(jī)性測(cè)試工具,并根據(jù)國(guó)家商用密碼管理局的隨機(jī)性檢測(cè)規(guī)范的要求[4],對(duì)測(cè)試工具補(bǔ)充了所增測(cè)試項(xiàng)。

  測(cè)試設(shè)定的顯著性水平為α=0.01,樣本數(shù)量為1 000,樣本長(zhǎng)度選取106 bit。測(cè)試結(jié)果如表1所示。

  根據(jù)國(guó)密局隨機(jī)性檢測(cè)規(guī)范,當(dāng)樣本數(shù)量為1 000個(gè),每個(gè)樣本容量為106 bit時(shí),如果通過的樣本個(gè)數(shù)不小于981,則隨機(jī)數(shù)發(fā)生器通過此項(xiàng)檢測(cè);否則,未通過此項(xiàng)檢測(cè)。從表1可知,改進(jìn)的真隨機(jī)數(shù)產(chǎn)生器通過了國(guó)家商用密碼管理局的隨機(jī)性檢測(cè)規(guī)范的所有隨機(jī)性測(cè)試項(xiàng)。

003.jpg

  4 結(jié)論

  本文描述了一個(gè)基于振蕩器的真隨機(jī)數(shù)的實(shí)現(xiàn)方法,并對(duì)產(chǎn)生的隨機(jī)數(shù)進(jìn)行了偽隨機(jī)改進(jìn)。測(cè)試結(jié)果顯示,改進(jìn)后的真隨機(jī)數(shù)的輸出是隨機(jī)的,滿足了國(guó)家商用密碼管理局對(duì)智能卡COS產(chǎn)品的隨機(jī)性要求。

參考文獻(xiàn)

  [1] 霍嘉.隨機(jī)數(shù)發(fā)生器的設(shè)計(jì)與研究[D].西安:西安科技大學(xué),2010:28-30.

  [2] RANKL W, EFFING W. Smart card handbook(4th edition)[M].  New York: JohnWiley&Sons, 2010:159-166.

  [3] NIST. FIPS PUBS 800-22. A Statistical Test Suite for Random and Pseudorandom Number Generators for Cryptographic Applications[Z]. 2010.

  [4] 國(guó)家密碼管理局商用密碼檢測(cè)中心.隨機(jī)性檢測(cè)規(guī)范[Z]. 2014.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。