你的位置:首頁 > 傳感技術(shù) > 正文

安全性設(shè)計(jì)如何選擇可靠的隨機(jī)數(shù)加密方案?

發(fā)布時(shí)間:2015-06-01 責(zé)任編輯:sherry

【導(dǎo)讀】質(zhì)量不良的隨機(jī)隨機(jī)數(shù)不會(huì)成為加密系統(tǒng)的弱點(diǎn),只要采用標(biāo)準(zhǔn)化的解決方案,將可幫助設(shè)計(jì)工程師們一夜好眠。那么如何為安全設(shè)計(jì)選擇可靠的隨機(jī)數(shù)加密方案?
 
隨機(jī)數(shù)(random number)是密碼學(xué)的鑰匙(也是關(guān)鍵),它們會(huì)是加密系統(tǒng)的弱點(diǎn),因此也常變成受攻擊的目標(biāo);因此我總是嘗試讓我的腦袋繞著有關(guān)隨機(jī)性的主題轉(zhuǎn)。
 
我一直認(rèn)為二極管接面(diode junction)的熱噪聲(thermal noise)是隨機(jī)性的,但是現(xiàn)在,它似乎并不是那么隨機(jī)。密碼學(xué)家們總是在思考?jí)娜丝赡軙?huì)發(fā)動(dòng)的攻擊手法,然后要想出對(duì)抗的招數(shù);他們做的是好事,因?yàn)榇蠖鄶?shù)人(包括我自己)在進(jìn)行在線金融活動(dòng)或購物時(shí),都得仰賴安全性通訊。
 
有許多密碼學(xué)菁英任職于美國國家標(biāo)準(zhǔn)技術(shù)研究所 (National Institute of Standards and Technology,NIST);該組織公布了一套規(guī)格,有關(guān)于如何建立隨機(jī)比特流,以應(yīng)用于加密──其SP800-90A規(guī)格所提供的解決方案,是以一種決定性隨機(jī)位產(chǎn)生器(Deterministic Random Bit Generator ,DRBG)將比特流加密。
 
這種隨機(jī)數(shù)生成器(Random Number Generator,RNG)對(duì)我來說是有意義的,接下來我將先簡短介紹DRBG的原理,然后談?wù)勅绾螌⑦@種RNG嵌入FPGA中;現(xiàn)在我需要先厘清一些會(huì)用到的專門術(shù)語,然后解釋其運(yùn)作過程。
 
任何一套加密系統(tǒng)會(huì)需要一組密鑰以及一組輸入的數(shù)據(jù)流,從這里事情開始變得比較復(fù)雜。用以編排密碼的、“或多或少隨機(jī)”的比特流,被稱做是Entropy (熵)輸入;為了確保每次RNG的產(chǎn)出是不同的,Entropy要結(jié)合叫做Nonce (隨機(jī)數(shù))的輸入;Nonce在通過DRBG的每一個(gè)周期,必須要改變或是增加。這是有道理的,因?yàn)槟阈枰蓝乱粋€(gè)可能會(huì)多次收集數(shù)據(jù)、嘗試預(yù)測下一個(gè)輸出比特流內(nèi)容的攻擊者。
 
但是為了防止Entropy本身被泄漏,還有一個(gè)選項(xiàng)是采用第三個(gè)變量──個(gè)人化字符串 (Personalization String);這里的巧妙之處在于,如果這個(gè)輸入是源自于一組編號(hào),就可以確保顯然正在監(jiān)視相同機(jī)器的攻擊者難以有進(jìn)展。SP800-90A規(guī)格還包含 另一個(gè)選擇性的額外輸入(Additional Input),其概念是它可以源自于第二個(gè)(獨(dú)立的) Entropy來源、也就是“腰帶又加上吊帶”的雙重保障。
 
到這里我的頭開始痛了…然后我讀到有關(guān)于Health Check的部分;Health Check一開始是做為例行檢查、確認(rèn)一切安好,或者是在使用者懷疑攻擊者可能竄改RNG時(shí)進(jìn)行。這個(gè)區(qū)塊惠隔離所有DRBG的外部輸入,然后饋入一組預(yù)設(shè)的刺激;輸出的結(jié)果是針對(duì)一組已知答案的驗(yàn)證,如果因?yàn)槿魏卧蚴?,Health Check就會(huì)釋出錯(cuò)誤消息、鎖住RNG ,避免輸出任何被破 解的比特流。
 
要將RNG嵌入幾乎任何一種FPGA都很容易,設(shè)計(jì)工程師只需要采用RNG IP核心以及簡單的環(huán)形振蕩器與計(jì)數(shù)器做為Entropy的來源;這種常見規(guī)則適用于打造加密系統(tǒng),因?yàn)樵O(shè)計(jì)工程師必須確保FPGA內(nèi)部的敏感數(shù)據(jù),不能從組件的任何一個(gè)接腳被存取。
 
模擬、驗(yàn)證被隨機(jī)設(shè)計(jì)的電路可能聽起來很難,但因?yàn)槭峭耆_定性的,RNG核心有一套完整的驗(yàn)證測試基準(zhǔn);如果最后的加密系統(tǒng)需要聽過外部測試機(jī)構(gòu)的批準(zhǔn), 該測試基準(zhǔn)也同樣重要。我只能想象要測試比特流隨機(jī)特性會(huì)遇到的問題。FPGA的實(shí)作過程應(yīng)該是全數(shù)字化的,所以應(yīng)該很強(qiáng)韌、不會(huì)受到嘗試以改變電壓或溫度的攻擊者之竄改;自振蕩頻率有可能會(huì)變化,但那不應(yīng)該影響輸出比特流的隨機(jī)性質(zhì)量。
 
采用IP核心做為嵌入式AES加密引擎的一個(gè)好處是,該種電路區(qū)塊能在許多應(yīng)用中同時(shí)支持其他工作,為數(shù)據(jù)流提供多重加密解密,節(jié)省FPGA內(nèi)部空間。當(dāng)它需要透過不安全的連結(jié)傳送加密密鑰,另一個(gè)選項(xiàng)是在密鑰包裝中采用AES加密引擎。
 
質(zhì)量不良的隨機(jī)隨機(jī)數(shù)不會(huì)成為加密系統(tǒng)的弱點(diǎn),只要采用標(biāo)準(zhǔn)化的解決方案,將可幫助設(shè)計(jì)工程師們一夜好眠。
 
要采購振蕩器么,點(diǎn)這里了解一下價(jià)格!
特別推薦
技術(shù)文章更多>>
技術(shù)白皮書下載更多>>
熱門搜索
?

關(guān)閉

?

關(guān)閉