彭浩然



摘要:隨著科學技術的發展,近距離無線通信在電子門禁、電子車鎖等安全系統上得到了廣泛應用。然而,確保系統安全性的手段大多采取偽隨機數加密的方式,容易被各種分析器捕獲、破譯。本研究針對近距離無線通信的安全問題設計制作了基于環境聲音的真隨機數生成器,對生成的真隨機數進行質量測試,與偽隨機數進行對比測試,驗證了其可靠性,并將其運用在汽車防盜等近距離無線通信設備的安全加密上。
關鍵詞:真隨機數;聲音;質量評估;近距離通信安全
中圖分類號: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)基金支持。