用户: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:分组密码]]