為什麼 keysize 幾乎總是以位表示?
我實際上從未見過有人用字節表示 RSA 密鑰大小,而且我也沒有在其他加密算法中看到以字節表示的密鑰大小(不能確定總是如此)。為什麼密鑰大小幾乎總是以位而不是字節表示(在一般的加密算法中,而不僅僅是 RSA)?
PS如果可能,請連結任何文件以支持您的答案。
這是傳統的。
(不要低估傳統的力量。我們使用比特的主要原因是,這就是事情已經做了很長時間了。如果只是為了避免混淆,堅持傳統是一個合理的想法。你不’以通常的方式做事不需要一個令人信服的理由,但你需要一個以不同的方式做事的理由。)
此外,字節並不總是八位字節。PDP-11 使用 9 位字節。甚至 C 標準也將字節定義為至少有8 位,但可能更多。
有多種方式來描述比特的數量。我們可以談論密鑰大小,對於非對稱加密,它通常是使密碼安全的主要組件之一的大小,例如 RSA 的模數。然後是編碼後的密鑰大小,當然要大於密鑰大小;多大取決於編碼。然後是安全強度,也用比特來表示。
現在前兩個通常被很好地描述為字節。當然也有例外:一些橢圓曲線的階數不是 8 的倍數。例如 P-521,它的階數當然是 521 位。由於人們並不解釋曲線經常被拼寫為曲線 P-512。腦池曲線明確定義了至少是 32 位的倍數的曲線。無論曲線的大小如何,鍵或域參數的編碼仍將產生許多通常稱為的八位字節或字節。
至於關鍵強度;嗯,這是不同的東西。這是為了找到密鑰而需要執行特定操作的嘗試次數。對於對稱密碼,您希望它接近密鑰大小,但例如對於兩個密鑰三重 DES,順序大約是 $ 2^{80} $ 為您提供 80 位安全性。現在,這種強度不一定是可被 8 整除的位數。
所以最後你想說明以下內容:我使用的是 521 位曲線,它為我提供了大約 260 位的安全性。以字節為單位會很棘手。
是的,傳統和比特是資訊的自然單位這一事實也可能與它有關:) 但它背後也有一些邏輯。