新四季網

隨機和偽隨機 電腦隨機數是如何生成的?

2023-07-03 04:21:28

    泡泡網CPU頻道2月24日 不論是維持著你餘額寶安全的加密過程還是你在玩《戰地4》,電腦都會產生隨機數。目前有兩類隨機數——「真」隨機數和偽隨機數——兩者的區別關乎加密系統的安全度。

  對於隨機數的討論日漸升溫,許多人懷疑英特爾內置於各種硬體內的隨機數生成晶片是不是靠得住。要理解為什麼這種隨機數不太可靠,你必須理解隨機數的生成原理。

  隨機數的作用

  隨機數的使用歷史已經有數千年。無論是拋硬幣還是搖色子,目的是讓隨機概率決定結果。電腦中的隨機數生成器的目的也是如此——生成隨機不可預測的結果。

  加密法要求數字不能被攻擊者猜到,不能多次使用同樣的數字。所以需要一種機制產生攻擊者無法預測的數字,這些隨機數對加密法至關重要,無論你是加密文件還是訪問https協議網站,都需要用到隨機數。

  真隨機數

  如果電腦是靠代碼生成隨機數,是不是意味著隨機數可以被預測?

  根據隨機數的生成原理,我們把電腦隨機數分為兩類:「真」隨機數和偽隨機數。

  要生成一個「真」隨機數,電腦會檢測電腦外部發生的某種物理現象。比如說,電腦可以測量某個原子的放射性衰變。根據量子理論,原子衰變是隨機而不可測的,所以這就是宇宙中的「純粹」隨機性。攻擊者永遠無法預測原子衰變的發生時間,也就不可能猜出隨機值。

  舉個更實際的例子,電腦會根據環境中的噪音或者採取你敲擊鍵盤的精確時間作為隨機數據或熵的生成依據。舉個例子,你的電腦監測到你某天下午2點以後敲擊鍵盤的精確時間是0.23423523秒,有足夠的這些特定長數字你就能得到一個熵源,也就可以生成「真」隨機數。由於人不是機器,所以攻擊者無法掌握你的敲擊時間。Linux中的/dev/隨機設備生成隨機數,「阻攔」訪問直到熵積累量足夠才返回一個真隨機數。

  偽隨機數

  偽隨機數這個概念是相對於「真」隨機數而言。電腦通過發送種子數值,運用算法產生某個看起來像隨機數的數字,但是實際上這個數字是可以預測的。因為電腦沒有從環境中收集到任何隨機信息。

  雖然是偽隨機數,但是並不是所有領域都不需要偽隨機數。比如,如果你在玩電子遊戲,那麼遊戲過程中是靠偽隨機數還是真隨機數並不重要。另一方面,如果你的應用正在加密,情況就不同了,因為你不希望攻擊者能夠猜到你的隨機數。

  舉個例子,如果攻擊者掌握了某隨機數生成器使用的種子數值和加密算法,如果隨機數生成器完全依靠種子數值和加密算法生成密文,這個過程中不添加任何額外隨機性,如果攻擊者掌握的情報足夠多,他們可以逆推來確定加密算法一定會用到的偽隨機數,也就能破譯密文。

  NSA和Intel的硬體隨機數生成器

  為了幫助程序開發者更簡單的生成隨機數,也為了幫助生成安全的隨機數,Intel的晶片組中包括一個硬體隨機數生成器,名叫RdRand,這塊晶片利用處理器的熵源向軟體提供隨機數。

  問題是這個隨機數生成器是個黑盒,我們不清楚裡面的工作原理。如果RdRand藏有NSA的後門,那麼政府就可以破譯依靠隨機數生成器提供的唯一數據產生的密鑰。

  這個問題非常嚴重。在2013年12月,FreeBSD的開發者們取消了對直接採用RdRand作為隨機數源的支持,理由是無法信任Intel。RdRand設備的輸出結果會用另一套加密算法增加額外熵,確保隨機數伺服器中即便有後門程序也不會產生影響。Linux已經這麼做了,在RdRand的隨機數基礎上再次進行隨機處理,以確保後門程序不可能從中作祟。Intel總裁Brian Krzanich在Reddit上沒有直接回答關於是否裝有後門的問題。

  當然這不是Intel一家的問題,FreeBSD的開發者們也點了Via晶片的名。從這場爭論中我們可以看出為什麼不可預測的真隨機數如此重要。

  而隨機數生成器生成「真」隨機數只需要搜集熵或者從真實世界搜集看似隨機的數據。對於某些不需要真正隨機的應用,隨機生成器可能會通過算法和種子數值算出隨機數。

同类文章
銳龍7000馬甲太多?全新貼紙一招快速辨別Zen4處理器

銳龍7000馬甲太多?全新貼紙一招快速辨別Zen4處理器

  今年,AMD銳龍7000系列筆記本處理器四種架構五大系列混雜,其中只有兩個系列採用了全新架構,其餘為舊款重製的馬甲型號,這可能讓不少普通消費者感到困惑,無從辨別哪一款才是全新的「Zen4」架構CPU。  最近,AMD向合作夥伴發布了新的材料,解釋稱當筆記本電腦上的橙色貼紙意味著它基於 Zen4
AMD品牌日來襲 京東11.11促銷火熱進行中

AMD品牌日來襲 京東11.11促銷火熱進行中

  隨著前兩天AMD京東11.11開門紅活動盛大開啟,豐富的AMD全線產品促銷盛宴讓廣大玩家激動不已,而活動仍然在火熱進行中,現已成功進入第二階段,更多驚喜的超值促銷等待著DIY玩家們的繼續參與。本次活動11月6日為AMD品牌日,活動熱力持續升級包含了直降秒殺、滿減、套包鉅惠、返E卡等豐富的活動豪禮

優異旗艦處理器還用矽脂?Intel這波可不夠良心

    Intel 在今年發布了全新發燒級的酷睿處理器i9,性能一下子有了不小的提升,玩家們也都開玩笑說道,多年來擠牙膏的 Intel 這次是擠多了。在性能提升的同時,玩家們還希望的就是 Intel 能夠放棄使用矽脂,不過先發售的i9-7900X並沒有做到。    在處理器的核心與頂蓋之間使用釺焊代
AMDQ1虧損超1億 賣X86技術給中國廠商

AMDQ1虧損超1億 賣X86技術給中國廠商

    Intel日前的財報表現還不錯,但為了轉型,依然要裁員1.2萬人。老對手AMD今天也發布了今年Q1季度財報,當季營收8.32億美元,下滑了19%,不出意外地還是虧損了1.09億美元,但與去年同期1.8億美元的虧損相比已經收窄,已經在改善業績了。對AMD來說,他們開闢新業務還是蠻成功的,AMD
國產新超算推遲?棄Intel換自主CPU

國產新超算推遲?棄Intel換自主CPU

    目前世界上最快的超級計算機的我國的「天河2號」,它每秒能完成5億億次運算,超算廣州中心主任尹學峰近日稱,天河2號利用率在60%,可見需求還是很廣泛。    剛剛,曙光公司總裁歷軍近日在接受記者採訪時表示,繼千萬億次超級計算機曙光「星雲」之後,「十億億次」超級計算機曙光7000已開始研發。  
Intel會推配備優異核顯Skylake-C嗎?

Intel會推配備優異核顯Skylake-C嗎?

    由於14nm工藝的延期及戰略調整,Intel今年的桌面版Broadwell處理器有些尷尬——比預定時間晚了一年,沒發布多久就碰上了Skylake處理器上市。但另一方面,Broadwell桌面版又非常讓人期待,因為它是首款配備128MB緩存優異核顯的桌面處理器,圖形性能比普通核顯強多了。考慮到
體驗14nm的魅力 Skylake主機配置推薦

體驗14nm的魅力 Skylake主機配置推薦

    伴隨著更多Intel 14nm Skylake處理器、面向主流玩家的B150晶片組主板上市開售,以及DDR4內存的售價逐漸步入廣大普通消費者能夠接受的範圍,大傢伙終於可以在不擔心「預算爆表」的前提下愉快的組一套新主機來體驗14nm工藝帶來的「快感」了。    為什麼要這麼說呢?因為在Inte
桌面Broadwell要停產?Intel:不可能!

桌面Broadwell要停產?Intel:不可能!

    Broadwell五代酷睿是Intel歷史上比較奇怪的一代產品,主要精力都放在了移動平臺上(當然還有下一步的伺服器),而桌面上只有區區兩款i7-5775C、i5-5675C,還都是直接從移動版移植過來的。    這倆稀缺之物還有一個與眾不同的亮點,那就是保留了GT3e Iris Pro核芯顯
散熱器損壞Skylake處理器:真的掰彎了

散熱器損壞Skylake處理器:真的掰彎了

    之前有消息稱Skylake處理器很可能因為PCB變薄導致大型散熱器損害處理器,本來以為這個問題只不過是示警,但現在已經有杯具案例了——已經有用戶的Skylake處理器真的變彎了,甚至主板插槽也變形了,這下可要真的注意了。此外,除了鐮刀、貓頭鷹之外,越來越多的散熱器廠商也表態了。    之前我
Intel確認:Skylake處理器存死機Bug

Intel確認:Skylake處理器存死機Bug

    雖然PC走勢漸弱,Intel也把精力開始投入到了虛擬實境、物聯網等領域,但談及2015最激動的事,Intel CEO前不久亮相CES時還是把榮耀頒給了Skylake處理器。    作為第六代酷睿,Skylake驚喜並沒有達到讓所有人眼前一亮,性能就不談了,上市後還被曝出像是i3 TDP弄錯、