Rsa

關鍵空間:密集和稀疏

  • October 16, 2013

我正在上一門密碼學課程,我一直遇到這些術語密集和稀疏的密鑰空間。他們的意思是什麼?

據我所知,密集鍵空間意味著該特定空間中的鍵組合更多,而相反則稀疏。如果是,假設我使用橢圓密鑰加密,即

y^2 = x^3 + ax^2 + bx + c,

為什麼橢圓密鑰加密比 RSA 加密更密集(稀疏)?

請告訴我是否需要更清楚。

這種“密集的鍵空間意味著該特定空間中的鍵組合更多,而相反的稀疏”幾乎就是這樣。

根據密碼算法,密鑰空間可以更少或更多稀疏。這取決於算法的安全性基於哪些原語,可能還有哪些難題。

對稱密碼算法僅使用一個密鑰並使用簡單的代數或邏輯運算。因為這些操作通常適用於所有可能的輸入值,所以它們的鍵空間可以(並且通常是)密集的。對於許多對稱算法,輸入密鑰空間的每個可能的位組合都是有效密鑰(最大密集),對於其他一些位更少。

公鑰算法使用單獨的公鑰和私鑰,具有特定的語義:如果知道公鑰,發現私鑰應該相當困難(可能需要對密鑰空間進行暴力搜尋)。這種更複雜的語義對算法的操作提出了更多的要求。算法變得更複雜、更慢並且它們使用的密鑰大小變得更大。目前已知的公鑰算法是基於一些已知的困難問題。

例如,RSA 基於整數因式分解問題:很難將由兩個素數構成的合數分解為構成該數的素數。這其實已經很接近 RSA 的密鑰空間稀疏的原因了。通用 2048 位密鑰大小的 RSA 密鑰由兩個 1024 位素數構成。素數定理描述瞭如何估計小於指定數的素數。數學問題有多少位長度為 p = 1024 位的所有素數 p?答案可用於估計 RSA 密鑰空間的稀疏程度:僅 $ \frac 1 {2ln 2^{1023}} $ 在 1024 位的位組合中都是可接受的素數,並且需要有兩個這樣的素數。這意味著只有大約每百萬分之一的數字 $ 2^{2047} $ 和 $ 2^{2048} $ 是可以接受的,可以認為是相對稀疏的。

(注意:在 RSA 中,還需要選擇公共指數。為簡單起見,我在這裡沒有考慮完整的 RSA 密鑰生成,如果您需要更多詳細資訊,請隨時參考 NIST 的 FIPS 186-4 標準)。

在考慮橢圓曲線時,要考慮的重要數字是素數 n,它是曲線參數之一。對於大多數曲線,(幾乎)任何小於 n 的數字都是可接受的私鑰。因此很容易看出密鑰空間比 RSA 密集得多。

注意:對於 EC,公鑰的某些格式需要兩倍於曲線(或私鑰)強度的位數來表示。儘管如此,它們仍然比同等強度的 RSA 密集得多。

與安全的關係

稀疏/密集密鑰空間與密碼算法的強度有一定的關係。如果只有可接受的密鑰是素數,那麼可能的攻擊者可能會跳過許多幾乎沒有處理的密鑰。因此,算法的強度最多可以被認為是有效的密鑰空間,然而,這並不能消除任何其他代數原因,為什麼會有更好(更容易)的方法來攻擊算法。

請告訴我是否需要更清楚。

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