Symmetric

密鑰如何在對稱密碼中實際工作

  • November 29, 2019

我對現代密碼學的高度理解如下:有一個算法和一個密鑰。密鑰或密鑰對是隨機生成的數字(我認為)。該算法描述了要應用於純文字以對其進行加密的轉換。密鑰是算法完成加密純文字過程所需的特定資訊。我不明白的是,算法和密鑰是如何相互關聯的。可以查看示意圖,即 Serpent,並看到許多箭頭、框、回饋循環等。對於像我這樣感興趣的非專業人士,我看不到:

  1. 關鍵對這組流程有什麼作用,甚至適合它的位置
  2. 如何使用它以使其唯一性有效地“鎖定”密文。

我為這個問題的荒謬基本性質道歉。我很欣賞這個委員會由對這個主題有深刻理解的人組成。然而,這一直困擾著我很長時間,這裡是一個明顯的地方問。

最後,我知道,鑑於有用於不同目的的不同類型的密鑰,對此查詢沒有一個單一的回應。為了解決這個問題,請假設我指的是使用對稱密鑰算法對純文字進行加密,該算法在 2001 年或以後適用。

我對現代密碼學的高度理解如下:有算法和密鑰。

當然,通常會為採用密鑰的特定加密算法生成密鑰。

密鑰或密鑰對是隨機生成的數字(我認為)。

不必要。AES 和 Serpent 只需要一個由隨機位組成的密鑰。RSA 使用兩個隨機素數來創建密鑰對,其中密鑰由多個部分組成,至少一個指數和從這些素數生成的模數。或者它可能是 ECDSA 或 ECDH 的私鑰在特定範圍內的隨機數,其中公鑰實際上是曲線上的一個點。該私鑰可能最接近“數字”。

該算法描述了要應用於純文字以對其進行加密的轉換。

如果該算法是密碼,那麼是的。

密鑰是算法完成加密純文字過程所需的特定資訊。

不確定該密鑰描述中的重點,因為還有其他可能的部分,例如需要 IV。不止於此;它是完成該過程至少需要資訊。

我不明白的是,算法和密鑰是如何相互關聯的。

這取決於算法,算法指定可接受的密鑰類型,以及它們可能有多大(如果甚至有最大值)。

可以查看例如 Serpent 的示意圖,並看到許多箭頭、框、回饋迴路等。對於像我這樣感興趣的非專業人士,我看不到關鍵 (i) 對那組流程有什麼作用,甚至看不到它適合的地方;(ii) 如何使用它以使其唯一性有效地“鎖定”密文。

這完全取決於算法。在像蛇這樣的分組密碼中,有很多轉置和擴散正在進行,通常會試圖產生雪崩效應,以便即使在單輪內也會影響許多位。

但是,對於非對稱 RSA 密碼,私鑰在解密期間用於模冪運算,在 ECDSA 中用於簽名生成期間的點乘。與對稱密碼中常見的位運算相比,求冪和點乘是更多的數學結構。

最後,我知道,鑑於有用於不同目的的不同類型的密鑰,對此查詢沒有一個單一的回應。為了解決這個問題,請假設我指的是使用對稱密鑰算法對純文字進行加密,該算法在 2001 年或以後適用。

我試圖以最簡單的方式來解釋它,同時也表明我們正在談論什麼樣的算法非常重要。

如果您更像是通過行動學習的開發人員類型,我會更多地研究有關分組密碼的知識並嘗試例如實施 S-AES(或 SimpleAES,我不確定是否有正式名稱)。

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