2010-12-21 58 views
4

我正在考慮在的背景下,智能手機可以產生多少(kB/s)加密安全熵。對於示例應用程序:一個持續生成新加密密鑰的VoIP應用程序。智能手機有什麼好的熵源?

事情我能想到的手: - 照像機 - 麥克風 - 加速度計 - 磁力 - 觸摸屏 - 對於呼叫,WiFi,藍牙信號強度和時間等

很顯然,每種方法都會產生不同數量的信號(可預測的數據)和噪聲(需要的熵),但適當組合它應該是好的。


此外,如果任何人有任何估計熵的量在正常條件下也會產生利息的情況下產生。

+2

這聽起來像一個很好的大師計劃;) – caf 2010-12-22 00:28:41

+0

@caf:有它:) – BCS 2010-12-22 01:26:36

回答

8

通常的答案是,你不需要多熵。 128位就足夠了;一旦你有128個真正的隨機比特,你就可以在一個密碼安全的僞隨機數發生器(PRNG)中使用它們,這將產生儘可能多的隨機比特,以高速率,只受本地計算能力的限制智能手機,PRNG帶寬將以兆字節每秒,而不是千字節每秒)。

連續的熵收集比科學的理性需要更多的是一種迷信。有人說隨機獲取「真實」可以保護您免受PRNG未來的任何密碼分析違規;但是隻有當你可以得到新的均勻隨機比特(這在實踐中不會發生:你需要應用哈希函數來平滑收集的「噪聲」)時,這個論證纔有效。如果你直接使用隨機比特,而不是加密算法中的密鑰。可以對種子儲存進行連續熵收集的更強的情況:擔心攻擊者抓住PRNG可以看到它的內臟,恢復內部狀態,並追溯猜測以前發射的隨機比特。好的PRNG可以防止這種情況發生。至少,您可以每秒重新安裝128個新鮮比特,速度很低。

這就是說,如果需要的熵,手機相機可能是使用的最佳來源,因爲CCD檢測器是非常敏感的熱所產生的噪音,而且它具有非常高的帶寬數據輸出。基本的手機相機單張照片很容易包含兆字節的數據,即使手機放在背靠背的冰箱內,您仍然會有數千位的噪音(只有一千比特的噪音意味着超過百萬像素,99.9%是「完美」的,在400美元手機中有點滑稽可笑 - 美國國家航空航天局的工程師無法在耗資百萬倍的太空探測器中做到這一點)。

因此,只需拍攝一張照片,使用任何方便的散列函數(例如SHA-256)對其進行散列,然後瞧!你有256位熵,你在PRNG中使用。如果您在一段時間後真的對PRNG感到緊張,只需拍攝另一張快照。