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

  摘  要: 隨著信息技術的發展,智能IC卡在認證、銀行、交通等領域得到廣泛應用,系統的真隨機數的產生及其改進成為人們的研究重點之一。簡單論述了真偽隨機數的產生方法,并對其隨機性進行了偽隨機方法的改進。測試結果表明,經過算法處理后的隨機性得到了較大的提高,完全通過國家商用密碼管理局的隨機性檢測規范的測試。

  關鍵詞智能卡;隨機數;隨機性測試;算法

0 引言

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

1 偽隨機數和真隨機數

  信息安全系統中的隨機數序列要求具有足夠的長度和周期,以及盡可能高的熵值,即具有高度的隨機性和不可預測性。

  隨機數序列的產生方法有兩種:偽隨機數和真隨機數。

  1.1偽隨機數

  目前應用的隨機數通常是通過某些數學公式計算而產生的偽隨機數,即由偽隨機數發生器(Pseudo Random Number Generator,PRNG)產生的,它是由一個初始狀態開始,通過一個確定的算法來生成隨機數。一旦給定算法和種子,輸出序列就確定了,有一定的周期性。

  偽隨機序列一般都有比較好的隨機統計特性,其用數學算法生成,在一些統計特性方面接近真隨機序列,但卻是周期的和可預測的。

  偽隨機數容易獲得且方便使用,一般用于仿真、測試等場合。

  1.2 真隨機數

  真隨機數是不可預測的,因而不可能重復產生兩個相同的真隨機數數列。真隨機數只能用某些隨機物理過程來產生。例如放射性衰變、電子熱噪聲、宇宙射線的觸發時間等。

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

  真隨機序列雖然有難以預測、不能重復的特性,但隨機統計卻不理想。真隨機序列用物理方法生成,通過選取真實世界的自然隨機性,所生成的隨機數稱為真隨機數。

  真隨機數取自物理世界的真實隨機源,難以破解,主要應用在數據加密、密鑰管理、身份鑒定等對安全性要求較高的領域。

2 基于振蕩采樣產生隨機數

  在智能卡中隨機數通常用于產生密鑰以及與讀卡器之間的認證。由于高安全的原因,隨機數應當是真隨機數而不是偽隨機數。現在所有的智能卡控制芯片都有產生真隨機數的硬件隨機數產生器。所產生的隨機數的隨機性必須不能受到外部物理環境的影響,比如溫度、電壓。

  本文真隨機數的產生基于振蕩采樣的設計方法。基于振蕩采樣的TRNG從時鐘抖動中獲得隨機性。圖1所示是基于振蕩器的真隨機數發生器。

001.jpg

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

  振蕩器的相位抖動使得采樣值具有不確定性,理想情況每一次采樣都能產生一個隨機位。但產生的隨機數不具有較好的統計屬性,所以通常會用偽隨機的方法來對采樣輸出進行處理,改善其隨機性。

3 隨機數隨機性的算法改進及測試

  3.1 真隨機數的偽隨機處理

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

  實際中產生的隨機數存在分布性較差、穩定性不佳等缺點,所以在實際應用中,通常還需要對其發生器的輸出序列進行進一步的處理和運算來改進,才能使輸出的序列通過各種隨機性的測試。

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

002.jpg

  基本改進過程:將產生的真隨機數填充環形緩沖器,再將環形緩沖器部件之值用DES加密,用一個對卡是唯一的密鑰,產生密文長度為8 B的隨機數,也可以采用其他加密算法進行加密。加密后的數據與緩沖器里下一個真隨機數的XOR值提供了EEPROM環形緩沖器的新輸入。循環結束后產生的隨機數即為改進的真隨機數。

  對產生的真隨機數通過加密算法進行進一步改進處理。主要步驟為:

  (1)先通過硬件隨機數發生器,產生8/16 B的隨機數,將產生的真隨機數作為明文,再重新產生一次真隨機數作為密鑰,經過3DES加密得到密文;

  (2)將經3DES加密后的密文,作為SM1國密算法的基礎密鑰EK;

  (3)重復步驟(1),將得到的密文作為SM1國密算法的系統密鑰SK;

  (4)重復步驟(1),將得到的密文作為SM1國密算法的輔助密鑰AK;

  (5)重復步驟(1),將得到的密文作為新的明文;

  (6)利用步驟(2)~步驟(5)產生的密鑰和明文,通過SM1國密算法進行加密,得到的隨機數稱為改進隨機數。

  3.2 改進隨機數的測試

  實現了隨機數發生器之后,對它所產生的隨機數必須嚴格地測試,基本情況是在所產生的隨機數中,1和0的數量應接近于相等。采用標準統計方法從數學上測試隨機數。對大量8位隨機數進行測試,應當有10 000~100 000的數字產生,分析以達到合理的可信結果。測試方法是使用計算機測試程序。

  本實驗使用的測試工具是由美國國家標準技術研究所(NIST)推出的SP 800-22[3]隨機性測試工具,并根據國家商用密碼管理局的隨機性檢測規范的要求[4],對測試工具補充了所增測試項。

  測試設定的顯著性水平為α=0.01,樣本數量為1 000,樣本長度選取106 bit。測試結果如表1所示。

  根據國密局隨機性檢測規范,當樣本數量為1 000個,每個樣本容量為106 bit時,如果通過的樣本個數不小于981,則隨機數發生器通過此項檢測;否則,未通過此項檢測。從表1可知,改進的真隨機數產生器通過了國家商用密碼管理局的隨機性檢測規范的所有隨機性測試項。

003.jpg

  4 結論

  本文描述了一個基于振蕩器的真隨機數的實現方法,并對產生的隨機數進行了偽隨機改進。測試結果顯示,改進后的真隨機數的輸出是隨機的,滿足了國家商用密碼管理局對智能卡COS產品的隨機性要求。

參考文獻

  [1] 霍嘉.隨機數發生器的設計與研究[D].西安:西安科技大學,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] 國家密碼管理局商用密碼檢測中心.隨機性檢測規范[Z]. 2014.


此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 亚洲国产精品一区二区久久 | 久久狠狠色狠狠色综合 | 欧美1级| 国产清纯91天堂在线观看 | 午夜精品福利影院 | 窝窝午夜看片免费视频 | 日批视频在线看 | 97精品伊人久久久大香线焦 | 日韩欧美h | 免费在线毛片 | 黄色毛片三级 | 在线毛片免费 | 在线观看黄色x视频 | 五月天精品视频播放在线观看 | 你懂的在线观看 | 欧美一级www片免费观看 | 狠狠色婷婷丁香六月 | 免费人成在线观看视频不卡 | 1024cc香蕉在线观看免费 | 久久综合狠狠综合狠狠 | 久青草中文字幕精品视频 | 欧美激情一区二区三区在线 | 免费动漫无遮挡曰批视频软件 | 欧美一区二区视频在线观看 | 97公开免费视频 | 波多结衣一区二区三区 | 国产成人影院一区二区 | 99视频在线观看免费 | 天天射综合网站 | 在线毛片免费 | 中文字幕第8页 | 国产午夜不卡 | 黄色在线观看免费 | 午夜在线免费观看 | 婷婷六月丁香色婷婷网 | 91欧美亚洲 | 亚洲视频你懂的 | 日本三级日本三级人妇三级四 | 夜夜操夜夜摸 | 白丝在线| 三级黄色片免费 |