輕量級非對稱加密算法
我是一名嵌入式系統研究員,並且是加密領域的新手。實際上,我需要知道是否有任何輕量級的非對稱加密算法,特別是考慮到密鑰生成所需的時間。
我發現 NTRU 被認為是最輕量級的非對稱加密系統之一,這是正確的嗎?
當嵌入式設備需要非對稱加密來加密(例如它進行的測量)或檢查真實性(例如它收到的命令或韌體更新)時,設備中不需要私鑰或密鑰生成,沒有什麼比RSA和拉賓關於簡單性和速度(對於 RSA: $ e=3 $ ,在使用適當的填充物時是安全的);加上 RSA 和 Rabin 是眾所周知的,並且沒有專利。在這些應用中,RSA 和 Rabin 的主要缺點是密碼至少是私鑰的大小(例如 2048 位 RSA 為 256 字節);但是,其中只有一小部分需要成本,而不是傳送實際數據(例如 66 字節的 RSA-OAEP 和 SHA-256)。
當設備需要私鑰時(見最後說明),橢圓曲線加密(例如 ECDSA、ed25519)具有許多優點,包括非常容易生成密鑰、顯著加快私鑰操作的計算速度(例如簽名生成)、體積更小密鑰和較小的最小密碼大小。但是,對於某些特定實施是否在某些司法管轄區受專利保護存在爭議。
關於 RSA 與 ECC 的辯論:RSA 私鑰(可能除了它的密鑰生成之外)可以使用專用硬體快速製作,就像許多智能卡中使用的那樣。據我所知,所有使用 ECC 的現代通用標準安全認證嵌入式設備也使用專用硬體,因此,如果 ECC 在某些情況下允許無需專用硬體的負擔,這在此類安全認證設備中並不常見。
NTRU 也可以考慮,但據稱在某些司法管轄區受專利保護,並且是相對較新的參與者,因此安全性不太認可,沒有FIPS 標準,也沒有得到ANSSI(法國)或BSI(德國)的認可。特別是它的簽名部分(NTRUSign)在 2006 年被破壞(Phong Q. Nguyen 和 Oded Regev,Learning a Parallelepiped: Cryptanalysis of GGH and NTRU Signatures,in Journal of Cryptology,2009;初步版本在Eurocrypt 2006);NTRUSign 的破解和修復週期幾乎沒有穩定下來(Léo Ducas 和 Phong Q. Nguyen,Learn a Zonotope and More: Cryptanalysis of NTRUSign countermeasures,在AsiaCrypt 2012 會議記錄)。
注意:只有當必須驗證此類設備或向其發送機密數據的其他一些實體不能被信任持有並正確使用公共密鑰時,設備中的私鑰才有用。如果所有此類其他實體都可以信任,則具有設備唯一多樣化密鑰(從主密鑰和設備序列號派生)的對稱加密可以在功能上等同於任何地方的成熟非對稱加密(當與非對稱加密結合時,僅限於公共-設備上的密鑰操作,以驗證所述其他實體,並對它們進行加密);該解決方案在設備端更簡單、更快。
NTRU 的問題在於它仍然是專利並且與其他 Cryptoschemes 相比相當複雜。有一些參考實現,它們可與 GPL 許可證一起使用。儘管我同意您對問題的評論。你真的應該看看橢圓曲線密碼學。具有 ECC 的密碼系統通常在空間和時間上都很有效。如果沒有突然的突破,如果參數選擇正確,ECC 至少在未來 5-10 年內應該是安全的。
除此之外,我建議不要使用非對稱算法進行加密,因為這些算法比對稱算法慢得多。也許看看WolfSSL。他們專注於嵌入式系統的實現。