當我得到密碼實例時,我見過的各種示例都使用「AES/CBC/PKCS7Padding」。顯然AES是加密算法,什麼是CBC? PKCS7Padding等各種不同填充方法的優缺點有哪些?Java加密擴展中的各種AES變體有哪些優缺點?
我希望使用它來端到端加密單個UDP數據包 - 任何不明智的原因?
當我得到密碼實例時,我見過的各種示例都使用「AES/CBC/PKCS7Padding」。顯然AES是加密算法,什麼是CBC? PKCS7Padding等各種不同填充方法的優缺點有哪些?Java加密擴展中的各種AES變體有哪些優缺點?
我希望使用它來端到端加密單個UDP數據包 - 任何不明智的原因?
至於操作CBC
模式而言,建議在可能時使用它代替ECB
。特別是在純文本加密或重複數據的情況下。 (網絡協議明顯屬於這一類)
ECB
(電子代碼塊)獨立地處理每個塊。因此,對於流中的每個出現,相同的塊將被加密相同。利用CCB
(密碼塊鏈接)傳播先前塊加密的狀態,然後用不同的salt
對相同的塊進行編碼,這使得結果在相同塊的出現中不同。
關於填充的東西。目標是能夠明確地刪除解密過程中的填充。我沒有通過「爲什麼」比另一個更好,但我可以在Niels Ferguson和Bruce Schneier的書中找到一些解釋,因爲他們推薦使用PKCS填充或0x80 0x00 ...
填充。
在多種語言和/或加密館藏中使用AES時請注意。實際上,對於單一算法,實現似乎有很大不同。有時候,這只是默認參數,有時候沒有其他參數。
謝謝你。任何有關使用它來加密單個UDP數據包的註釋(每個約1.5k)? – sanity 2011-03-01 15:48:57
你的意思是加密UDP有效載荷? – 2011-03-01 15:52:24
「CBC」?你一直在看bouncycastle.org,對吧?順便說一句,如果你使用UDP,你打算如何交換對稱密鑰? – bestsss 2011-03-01 13:14:07
http://www.ietf.org/rfc/rfc2898.txt – Yaneeve 2011-03-01 13:17:40
bestsss,我將使用RSA交換對稱密鑰。 – sanity 2011-03-01 15:48:30