本页使用了标题或全文手工转换

RC6

维基百科,自由的百科全书
跳到导航 跳到搜索
RC6
RC6 Cryptography Algorithm.JPG
RC6算法的费斯妥函数
概述
设计者 罗纳德·李维斯特Matt RobshawRay SidneyYiqun Lisa Yin
首次发布 1998
衍生自 RC5
认证 AES决赛算法
密码细节
密钥长度 128,192或256位
分组长度 128位
结构 费斯妥密码 (Type 2)[1]
重复回数 20

密码学中,RC6Rivest cipher 6)是一个从RC5衍生而来的对称分组加密算法。它由罗纳德·李维斯特Matt Robshaw、Ray Sidney以及 Ray Sidney设计,用以满足高级加密标准(AES)竞赛的要求。这个算法的是当时五个决赛候选算法之一,并且还提交给了NESSIECRYPTREC项目。这是一个专利算法,专利由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]. 

外部链接[编辑]