簡體   English   中英

algorithm - C#中的RijndaelManaged Class是否等同於AES加密?

[英]algorithm - Is the RijndaelManaged Class in C# equivalent to AES encryption?

我問這個問題是為了確認C#中的RijndaelManaged類是否等同於AES加密。 從我讀過的內容來看,RijndaelManaged是實現AES加密的首選算法。 有人可以確認一下嗎?

RijndaelManaged算法可以安全地用於Web項目嗎? 謝謝 :)

AES算法是在1997年至2000年由NIST舉辦的競賽中選出的。獲勝者是一種名為Rijndael的算法。

NIST指定AES算法具有128位塊大小。 由於Rijndael支持128,160,192,224和256位的塊大小,因此最終的AES規范與原始的Rijndael規范不同。 換句話說,“AES”和“Rijndael”是相同的算法,除了“AES”限於128位的塊大小。

塊大小與密鑰大小無關。 所討論的算法支持128,192和256位密鑰。 更長的鍵不一定“更強”,因為AES具有某些理論上的弱點 無論哪種方式,在可預見的未來,128位密鑰足夠長。

正如EkoostikMartin所說,AES至今仍然是牢不可破的。 但密碼學很難,甚至專業人士也不會每次都做對。 使用原始加密原語而不確切知道您正在做什么可能會導致一些不好的事情。 換句話說,密碼很少是“安全鏈”中最薄弱的環節。

如果您想使用AES,只需使用AesManaged類 - http://msdn.microsoft.com/en-us/library/system.security.cryptography.aesmanaged%28v=vs.100%29.aspx

您引用的RijndaelManaged類並不完全符合AES規范,主要是因為它提供了塊大小的選項。 AesManaged使用指定的128位塊大小。

至於對Web項目來說是“安全的”,它是一種非常強大的加密方法(據我所知,它從來沒有被破壞過),但就像它必須正確使用它一樣。

存在一些差異,尤其是更改塊大小和密鑰大小的能力。 (就我所知,AES使用128的固定塊大小)
如果您在Rijndael中使用CFB,則塊大小將根據反饋大小進行調整,這意味着您無法保證塊大小為128。

為了確保等效,您必須使用128的塊大小,並且要么避免使用CFB,要么確保反饋大小也是128。

另一件需要注意的事項是:如果你使用帶有CFB的靜態IV,那么你的密碼將是確定性的。 避免這種情況,因為可以很容易地識別前綴IV並用於解密數據。

(抱歉提出舊帖子,但此信息不在此處)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM