Aes

如何為分組密碼選擇密鑰?

  • September 18, 2013

AES 和 DES 是分組密碼。在數學上,它使用密鑰從明文空間到密文空間的映射,即 $ {{0,1}}^k $ X $ {{0,1}}^l \longrightarrow {{0,1}}^l $

我知道這些鍵是隨機的。我想知道的是這些在現實世界中是如何計算的,有沒有辦法改變這些密鑰,這意味著我可以在這些分組密碼中使用我自己的密鑰嗎?

與需要某種計算來生成密鑰的非對稱方案(尤其是RSAEl Gamal)相比,在為 DES 或 AES(或 3DES)選擇密鑰時唯一的約束是讓它看起來與隨機流沒有區別. 也就是說,El Gamal 和 RSA 在密鑰生成中都需要一些隨機性,但該階段不僅僅依賴於此。

但是,您可以使用任何足夠長度的字節流作為密鑰,無論是隨機性還是隨機性,後果自負。這是因為這些方案(實際上是所有方案)的安全性取決於某些對手在某些實際時間範圍內無法計算或猜測密鑰。這裡值得一提的是,DES 密鑰可以(並且已經)被有效地暴力破解,因為它們的長度很短。在此站點搜尋隨機性測試或查看隨機性標籤以獲得更好的想法。

在實踐中,可以通過使用密鑰派生函式從密碼、密碼片語或較小長度的隨機流中派生密鑰。您還可以使用任何CSPRNG來生成足夠長的流,您可以將其用作密鑰。

引用自:https://crypto.stackexchange.com/questions/10415