用戶:Blackbinary1024/RC6

RC6
The Feistel function of the RC6 algorithm.
概述
設計者Ron Rivest, Matt Robshaw, Ray Sidney, Yiqun Lisa Yin
首次發佈1998
衍生自RC5
認證AES finalist
密碼細節
密鑰長度128, 192, or 256 bits
分組長度128 bits
結構Feistel network (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月 (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]. 

參考資料

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

外部連結

[[Category:分组密码]]