隨機(jī)數(shù)在加密中被廣泛使用。它們可以構(gòu)成關(guān)鍵安全參數(shù)(CSP)的基礎(chǔ),例如用于通過公共互聯(lián)網(wǎng)進(jìn)行交易的加密密鑰。
通常,試圖破壞加密的攻擊者將專注于在隨機(jī)數(shù)中查找或誘導(dǎo)可利用的模式,這使得比使用暴力搜索更有效地猜測密鑰。攻擊者可以采用許多不同的技術(shù),例如改變電壓和溫度以嘗試破壞噪聲源的正常運行,或者使用其控制下的幾乎相同的隨機(jī)數(shù)發(fā)生器(RNG)的輸出來幫助預(yù)測RNG在受攻擊系統(tǒng)中的輸出。
用作加密密鑰的劣質(zhì)隨機(jī)數(shù)可能會危及使用該密鑰處理的所有消息或數(shù)據(jù)的安全性。當(dāng) RNG 不提供預(yù)測電阻時,使用受危害的 RNG 創(chuàng)建新的加密密鑰是不夠的,并且在重新設(shè)定 RNG 種子之前,所有未來的消息和數(shù)據(jù)都處于危險之中。定義“低質(zhì)量”充滿了困難,因為證明一串?dāng)?shù)據(jù)是隨機(jī)的還是不是隨機(jī)的,是一項復(fù)雜而漫長的工作。幸運的是,從相反的方向看問題可以為什么是密碼學(xué)上可接受的隨機(jī)數(shù)提供答案。
美國國家標(biāo)準(zhǔn)與技術(shù)研究院(NIST)推薦一種適合嵌入FPGA或SoC的方法(規(guī)格SP800-90A /B /C)SP800-90A定義了確定性隨機(jī)位發(fā)生器(DRBG),它是一種基于高級加密算法(AES)算法的純數(shù)字電路。SB800-90B中考慮并定義了硬件噪聲源,包括測試電路,這些電路可用于在系統(tǒng)中檢測其輸出是否不再是隨機(jī)的(例如,由于篡改或故障),并進(jìn)行統(tǒng)計測試以鑒定特定電路是否可用作硬件噪聲源。SP800-90C考慮了如何在系統(tǒng)中組合DRBG和噪聲源。將基于加密算法的DRBG與物理噪聲源相結(jié)合,產(chǎn)生一個RNG,該RNG提供兩全其美,基于硬件噪聲源的預(yù)測電阻以及加密算法的保證統(tǒng)計特性。
RNG內(nèi)核包括完成此任務(wù)的電路。它包括一個完整的AES內(nèi)核,作為設(shè)計的關(guān)鍵部分。AES 算法的一種標(biāo)準(zhǔn)使用模式稱為計數(shù)器 (CTR) 模式。在此模式下,計數(shù)器中的值使用密鑰進(jìn)行加密,以生成有效的隨機(jī) 128 位位塊。然后,通過使用隨機(jī)位對數(shù)據(jù)進(jìn)行XOR來加密或解密數(shù)據(jù)。計數(shù)器和 AES 單元在自動屏蔽點擊率中的組合就像一個 DRBG。它產(chǎn)生一系列隨機(jī)數(shù),其值對于任何知道密鑰的人來說都是完全可預(yù)測的,但是如果沒有密鑰,則很難確定。如果AES單元的密鑰取自物理噪聲源(播種DRBG),我們就有了SP800-90A中規(guī)定的CTR-DRBG方案的基本基礎(chǔ)。
SP800-90A中的系統(tǒng)更進(jìn)一步,提供不少于三組其他輸入以及物理噪聲(稱為熵)。
在為 RNG 構(gòu)造種子時,隨機(jī)數(shù)輸入與熵輸入一起使用。Nonce確保計算出的種子不僅僅依賴于熵,并且保證在每次實例化中都會發(fā)生變化。Nonce 數(shù)據(jù)可以是簡單的計數(shù)器,也可以是從時間戳派生的,但每次使用都必須不同,并防止篡改。
個性化字符串輸入是實例化 RNG 時使用的另一個可選輸入。這可能是每臺計算機(jī)不同的序列號。這可確保 RNG 的兩個副本的行為不同,并防止攻擊者獲取包含 RNG 的產(chǎn)品副本,以預(yù)測目標(biāo)副本中的 RNG 的行為方式。
附加輸入提供了一種機(jī)制,用于向 DRBG 包含其他熵。例如,在設(shè)計中通常很容易找到一組信號,這些信號看起來好像它們的值本質(zhì)上是隨機(jī)的,但很難將它們限定為SP800-90B所需的噪聲源。使用額外的輸入,這些位可以“攪拌到湯中”,即使它們沒有好處,至少它們不會造成傷害。如果主熵源受到損害,這將提供額外的保護(hù)層。
DRBG以復(fù)雜但完全確定的方式組合了各種輸入。它依賴于AES算法的安全屬性,以確保攻擊者無法預(yù)測或反向工程系統(tǒng)輸出,前提是攻擊者無法訪問所有輸入(包括AES密鑰)。
系統(tǒng)的確定性性質(zhì)對于系統(tǒng)中最后一個重要塊(稱為運行狀況檢查)的操作至關(guān)重要。啟動時,它會將RNG與任何其他信號隔離開來,加載測試數(shù)據(jù),并將輸出與一組已知答案進(jìn)行比較。運行狀況檢查在重置后根據(jù)請求自動啟動,例如,如果系統(tǒng)的另一部分檢測到攻擊。如果運行狀況檢查失?。ǚQ為災(zāi)難性錯誤),則邏輯設(shè)計為鎖定以阻止輸出任何不可靠的數(shù)據(jù)。在發(fā)生災(zāi)難性錯誤后,需要通過重啟電源或重新配置FPGA來復(fù)位系統(tǒng)。
除了所描述的DRBG電路之外,還需要熵源。在純數(shù)字系統(tǒng)中,常見的選擇是自由運行的環(huán)形振蕩器,用于計時計數(shù)器。計數(shù)器的最低有效“n”位用作 n 位種子。環(huán)形振蕩器的頻率無法從外部準(zhǔn)確確定,因為它會隨著電源電壓上的熱變化和噪聲而略有不同。如果環(huán)形振蕩器運行相當(dāng)長的時間,并且計數(shù)器相對較?。◣孜唬?,則計數(shù)器值將在很大程度上是隨機(jī)的。這個和許多其他物理噪聲源的一個明顯問題是,可能需要比物理噪聲源所能提供的隨機(jī)值更頻繁地需要隨機(jī)值。DRBG允許在從物理噪聲源定期重新播種之間生成多個隨機(jī)數(shù)。
RNG可能聽起來很復(fù)雜(確實如此),但加密算法的強(qiáng)度取決于提供給它的密鑰。因此,RNG是安全系統(tǒng)的重要組成部分。
審核編輯:郭婷
-
FPGA
+關(guān)注
關(guān)注
1645文章
22046瀏覽量
618295 -
soc
+關(guān)注
關(guān)注
38文章
4387瀏覽量
222718
發(fā)布評論請先 登錄
東軟集團(tuán)發(fā)布數(shù)智化賦能高質(zhì)量就業(yè)服務(wù)10+2應(yīng)用場景
DS28S60具有ChipDNA的DeepCover加密協(xié)處理器技術(shù)手冊

labview怎么輸出不重復(fù)的整數(shù)隨機(jī)數(shù)
“Quantum Origin”成首個獲NIST驗證的軟件量子隨機(jī)數(shù)生成器
廣汽集團(tuán)召開高質(zhì)量發(fā)展大會
STM32配合可編程加密芯片SMEC88ST的防抄板加密方案設(shè)計
淺談加密芯片的一種破解方法和對應(yīng)加密方案改進(jìn)設(shè)計
淺談加密芯片的一種破解方法和加密方案改進(jìn)設(shè)計
問天量子和方寸微電子聯(lián)合發(fā)布量子隨機(jī)數(shù)芯片
加密算法的選擇對于加密安全有多重要?
LuatOS開發(fā)之4G模組隨機(jī)數(shù)(random)|實戰(zhàn)指南

解析Air780E模組LuatOS開發(fā)的隨機(jī)數(shù)(random) 示例篇

藍(lán)牙AES+RNG如何保障物聯(lián)網(wǎng)信息安全
雅特力AT32 MCU的隨機(jī)數(shù)生成

如何在FPGA中實現(xiàn)隨機(jī)數(shù)發(fā)生器

評論