密碼學中,RC6Rivest cipher 6)是一個從RC5衍生而來的對稱分組加密演算法。它由羅納德·李維斯特Matt Robshaw、Ray Sidney以及 Ray Sidney設計,用以滿足與進階加密標準(AES)競賽的要求。這個演算法的是當時五個決賽候選演算法之一,並且還提交給了NESSIECRYPTREC專案。這是一個專利演算法,專利由RSA公司申請。

RC6
RC6演算法的費斯妥函數
概述
設計者羅納德·李維斯特Matt RobshawRay SidneyYiqun Lisa Yin
首次發佈1998
衍生自RC5
認證AES決賽演算法
密碼細節
金鑰長度128,192或256位
分組長度128位元
結構費斯妥密碼 (Type 2)[1]
重複回數20

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月 (2017-01),來自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). 

參考資料

  1. ^ Hoang, Viet Tung; Rogaway, Phillip. On Generalized Feistel Networks. LNCS 6223. CRYPTO 2010. USA: Springer: 613–630. 2010 [2018-09-27]. (原始內容存檔於2018-09-27). 
  2. ^ Confirmed: hacking tool leak came from “omnipotent” NSA-tied group. Ars Technica. August 16, 2016 [2018-09-27]. (原始內容存檔於2017-06-06). 
  3. ^ These instructions guide the INSTALLATION of BLATSTING using ELIGIBLEBACHELOR via NOPEN tunnel.. [2016-08-16]. (原始內容存檔於2019-02-17). 
  4. ^ 3.6.4 What are RC5 and RC6?. RSA Laboratories. [2015-08-02]. (原始內容存檔於2015-07-08). 

外部連結