RC5
編輯RC5(Rivest Cipher 5)是 Ronald Rivest 于 1994 年設計的對稱分組密碼。 這意味著相同的密鑰用于加密和解密。 它屬于 Feistel 密碼類。 數據首先被分成大小相等的塊,并通過重復應用簡單操作(即所謂的“原語”)來加密或解密。 塊大小、密鑰長度和重復次數(“輪數”)未由算法指定,而是在加密前設置為參數。
設計 RC5 的目標是簡單快速的密碼。 它建立在依賴于數據的旋轉之上,在開發時,其作為原語的適用性在很大程度上仍未得到探索。
與許多其他分組密碼不同,RC5 不使用任何 S 盒來實現 Claude Shannon 在 1949 年所說的“混淆”,這對于明文、密鑰和密文之間統計關系的安全操作很重要。 S-Box 會引起很多混亂,因為人們可以在很大程度上自由選擇,例如 a b × b {displaystyle btimes b} -S-Box 包含 2 b {displaystyle 2^{b}} 可能b {displaystyle b} 輸入位的值到 2 b {displaystyle 2^{b}} 可能的輸出值。 然而,在實際實現中,S-Box 需要額外的內存和一定的計算量,因為必須首先將數據字分成足夠小的部分輸入 S-Box,因為 16 或更多的整個字位對于這個來說太大了。 然后你必須再次把結果放在一起形成一個詞。 沒有 S-Box 使得 RC5 非常簡單和快速,特別適合在資源匱乏的地區使用——例如芯片面積有限的數字硬件。
RFC 2040 標準中指定了一種具體的軟件實現,它為連接塊提供了不同的操作模式。
描述
編輯RC5 具有可變塊大小(32、64 或 128 位)、密鑰長度(0-2040 位)和輪數(0-255)。 這些參數的具體選擇通常表示為“RC5-w/r/b”——w 是一個字的長度(一個塊是兩個字),r 是輪數,b 是長度以字節為單位的鍵。 Rivest 最初推薦 RC5-32/12/16 和 RC5-64/16/16 用于 64 位架構。
RC5 由三個部分組成:加密、解密和密鑰擴展。 加密和解密中使用的方法的密碼原語是:
- 兩個詞的加法 modulo 2 w
- 兩個詞的按位異或將一個單詞旋轉 b 位位置,其中 b 由另一個單詞的 log 2 ? w {displaystyle log _{2}w} 最低有效位給出
原語對 w 位字進行操作,每個字形成一個半塊。 該算法的安全性在很大程度上取決于旋轉的使用,這是該方法中xxx的非線性操作。 后繼算法 RC6 和部分 AES 候選 MARS 也基于數據相關旋轉。
按鍵擴展
通過密鑰擴展,從秘密密鑰生成輪密鑰 S0、...、S2r+1(其中 S0 和 S1 用于密鑰白化)。 輪密鑰系統也稱為擴展密鑰表。為此,首先將密鑰分成半塊 Li,并在必要時用零填充。
密碼分析
編輯一種稱為 RC5⊕ 的變體也用于密碼分析目的,其中半塊的模加法完全交換為按位 XOR。 由于密文的位與鏈接到 XOR 下的明文的輪密鑰的位之間的連接,此變體在密碼學上較弱,并且主要適合作為數據相關旋轉分析的簡化。
內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/373691/