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

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

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

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

關(guān)閉

?

關(guān)閉