RC6
![本頁使用了標題或全文手工轉換](http://images.weserv.nl/?url=//upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
RC6算法的費斯妥函數。 | |
概述 | |
---|---|
設計者 | 羅納德·李維斯特,Matt Robshaw,Ray Sidney,Yiqun Lisa Yin |
首次發布 | 1998 |
衍生自 | RC5 |
認證 | AES決賽算法 |
密碼細節 | |
密鑰長度 | 128,192或256位 |
分組長度 | 128位 |
結構 | 費斯妥密碼 (Type 2)[1] |
重複回數 | 20 |
在密碼學中,RC6(Rivest cipher 6)是一個從RC5衍生而來的對稱分組加密算法。它由羅納德·李維斯特、Matt Robshaw、Ray Sidney以及 Ray Sidney設計,用以滿足與高級加密標準(AES)競賽的要求。這個算法的是當時五個決賽候選算法之一,並且還提交給了NESSIE和CRYPTREC項目。這是一個專利算法,專利由RSA公司申請。
RC6擁有128位的塊大小,支持128、192、256位乃至2040位的密鑰長度。像RC5一樣,RC6是可以被參數化的。它也因而支持變長的分組大小、密鑰長度以及加密輪數。RC6和RC5在很多方面相似,例如結構、使用基於數據的置換規則、取模加法以及異或操作。事實上,RC6可以被看做是交織的兩組平行的RC5加密。RC6使用了在RC5加密算法中並沒有出現的乘法運算,這個運算是為了讓置換基於字中每一位,而不是其中的幾位。
加密和解密
請注意,密鑰擴展算法幾乎是和RC5相同的。 唯一的區別是,對於RC6來說,加密密鑰中更多的字來自於用戶提供的密鑰。
// Encryption/Decryption with RC6-w/r/b
//
// Input: Plaintext stored in four w-bit input registers A, B, C & D
// r is the number of rounds
// w-bit round keys S[0, ... , 2r + 3]
//
// Output: Ciphertext stored in A, B, C, D
//
// '''Encryption Procedure:'''
B = B + S[0]
D = D + S[1]
for i = 1 to r do
{
t = (B*(2B + 1)) <<< lg w
u = (D*(2D + 1)) <<< lg w
A = ((A ⊕ t) <<< u) + S[2i]
C = ((C ⊕ u) <<< t) + S[2i + 1]
(A, B, C, D) = (B, C, D, A)
}
A = A + S[2r + 2]
C = C + S[2r + 3]
// '''Decryption Procedure:'''
C = C - S[2r + 3]
A = A - S[2r + 2]
for i = r downto 1 do
{
(A, B, C, D) = (D, A, B, C)
u = (D*(2D + 1)) <<< lg w
t = (B*(2B + 1)) <<< lg w
C = ((C - S[2i + 1]) >>> t) ⊕ u
A = ((A - S[2i]) >>> u) ⊕ t
}
D = D - S[1]
B = B - S[0]
NSA「植入」代碼中可能使用了RC6
2016年8月,一些被認為是來自方程式組織或國家安全局的代碼被公開,這些代碼"植入"了多種網絡安全設備。[2]所附說明顯示,這些程序使用了RC6以確保網絡通信的機密性。[3]
使用許可
RC6沒有被AES選擇,因為它不能保證RC6是免費的。截至2017年1月[update],來自RSA實驗室的RC6的設計者們在他們的官方網站上聲明:[4]
- "我們強調,如果RC6被選為AES,在產品中使用該算法,RSA公司將不要求任何許可證或授權費用"。
強調的詞"如果"表明,RSA安全公司可能對任何使用了RC6的產品要求授權許可和支付授權費。RC6是一個專利加密算法(美國專利5,724,428,美國專利5,835,600);但是,專利已經在2015年到2017年間過期。
注釋
- Pavan, R.L.; Robshaw, M.J.B.; Sidney, R.; Yin., Y.L. The RC6 Block Cipher (PDF). v1.1. 1998-08-20 [2015-08-02]. (原始內容存檔 (PDF)於2015-10-10).
- Beuchat, Jean-Luc. FPGA Implementations of the RC6 Block Cipher (PDF). [2018-09-27]. (原始內容 (PDF)存檔於2006-05-05).
- Thompson, Iain. How the NSA hacks PCs, phones, routers, hard disks 'at speed of light': Spy tech catalog leaks. The Register. 2013-12-31 [2015-08-02]. (原始內容存檔於2015-08-10).
參考資料
- ^ Hoang, Viet Tung; Rogaway, Phillip. On Generalized Feistel Networks. LNCS 6223. CRYPTO 2010. USA: Springer: 613–630. 2010 [2018-09-27]. (原始內容存檔於2018-09-27).
- ^ Confirmed: hacking tool leak came from “omnipotent” NSA-tied group. Ars Technica. August 16, 2016 [2018-09-27]. (原始內容存檔於2017-06-06).
- ^ These instructions guide the INSTALLATION of BLATSTING using ELIGIBLEBACHELOR via NOPEN tunnel.. [2016-08-16]. (原始內容存檔於2019-02-17).
- ^ 3.6.4 What are RC5 and RC6?. RSA Laboratories. [2015-08-02]. (原始內容存檔於2015-07-08).
外部連結
- Cryptography - 256 bit Ciphers: Reference source code and submissions to international cryptographic designs contests. [2018-09-27]. (原始內容存檔於2011-09-26).
- Symmetric Ciphers: RC6. Standard Cryptographic Algorithm Naming (SCAN). 2009-04-15 [2018-09-27]. (原始內容存檔於2012-01-28).
- RC6® Block Cipher. RSA Laboratories. [2018-09-27]. (原始內容存檔於2016-03-04).