Symmetric
重複使用一次性墊?
我有一個嵌入式設備。它產生大文件(200 MB)。我希望設備在寫入磁碟之前加密文件,所以我給了他們一個 16 字節的隨機密鑰。
如何用最少的 CPU 用小鍵轉換大文件?
如果我用 16 字節密鑰對數據進行異或運算,它幾乎就足夠了。但它會顯示重複的模式,您可以從中分散按鍵的注意力(例如,如果輸入是 16 個零),但我可以在不犧牲性能的情況下讓它變得更好嗎?
使用 AES-128,大多數 CPU (AES-NI) 中的指令集可以加快加密速度,並且不會給 CPU 帶來太多負載。我會使用 CBC,但可能有更好的模式操作來加密文件。也不要忘記使用 MAC。
使用一次性密碼 (OTP) 很好,但您所做的不是 OTP,它更像是 Vigenère 密碼。如果您要使用 OTP,則密鑰應該與需要您儲存(大約)200MB 密鑰的文件一樣長。
謝謝@CodesInChaos,我錯過了“我有一個嵌入式設備”,但它不是 CPU,它是一個 MCU(很可能),甚至,AES 被設計為在任何平台上都很快,所以我仍然會試一試,看看我想你會對它的效率感到驚訝。
查看經過驗證的 AES實現列表,看看是否有類似於您的嵌入式設備的東西。
在您的情況下,我建議您嘗試 TripleDES,也許使用配對的 ARM MCU - 它既便宜又足夠快……嘗試看看 STM 晶片,我以前使用過它們,由於價格,我有一個很好的建議/性能。如果您的設備規格列表中有高速要求,您也可以嘗試物理實現 DES。