Vés al contingut

RC6

De la Viquipèdia, l'enciclopèdia lliure
RC6
Detall
EstructuraXarxa tipus Feistel

En criptografia, RC6 (Rivest cipher 6) és un xifratge de blocs de clau simètric derivat de RC5. Va ser dissenyat per Ron Rivest, Matt Robshaw, Ray Sidney i Yiqun Lisa Yin per complir els requisits de la competició Advanced Encryption Standard (AES). L'algoritme va ser un dels cinc finalistes, i també es va presentar als projectes NESSIE i CRYPTREC. Era un algorisme propietari, patentat per RSA Security.[1]

RC6 va ser un dels 5 finalistes AES (Advance Encryption Standard). Aquesta imatge demostra la funció d'aquest algorisme amb les sintaxis utilitzades pels autors de l'algorisme.

RC6 pròpiament dit té una mida de bloc de 128 bits i admet mides de clau de 128, 192 i 256 bits fins a 2040 bits, però, com RC5, es pot parametritzar per suportar una gran varietat de longituds de paraules, mides de clau i nombre de rondes. RC6 és molt semblant a RC5 en l'estructura, utilitzant rotacions dependents de dades, addició modular i operacions XOR; de fet, RC6 es podria veure com entrellaçant dos processos de xifratge RC5 paral·lels, tot i que RC6 utilitza una operació de multiplicació addicional no present a RC5 per tal de fer que la rotació depengui de cada bit d'una paraula, i no només dels pocs bits menys significatius.[2]

Xifratge/desxifrat

[modifica]

Tingueu en compte que l'algoritme d'expansió de claus és pràcticament idèntic al de RC5. L'única diferència és que per a RC6, es deriven més paraules de la clau subministrada per l'usuari.

// 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]

Possible ús en "implants" de la NSA

[modifica]

L'agost de 2016, es va revelar el codi que es coneixia com a "implants" d'Equation Group o NSA per a diversos dispositius de seguretat de xarxa. Les instruccions adjuntes van revelar que alguns d'aquests programes utilitzen RC6 per a la confidencialitat de les comunicacions de xarxa.[3]

Llicència

[modifica]

Com que RC6 no es va seleccionar per a l'AES, no es va garantir que RC6 estigui lliure de drets d'autor. A Gener 2017 </link></link> , una pàgina web del lloc web oficial dels dissenyadors de RC6, RSA Laboratories, afirma el següent: [4]

"Destaquem que si se selecciona RC6 per a l'AES, RSA Security no requerirà cap llicència o pagament de drets d'autor per als productes que utilitzen l'algorisme".

L'èmfasi a la paraula "si" suggereix que RSA Security Inc. pot haver requerit llicències i pagaments de drets d'autor per a qualsevol producte que utilitzi l'algorisme RC6. RC6 era un algorisme de xifratge patentat; no obstant això, les patents van caducar entre el 2015 i el 2017.

Referències

[modifica]
  1. «RC6 encryption and decryption» (en anglès americà), 07-07-2002. [Consulta: 30 setembre 2024].
  2. «The RC6 Block Cipher: A simple fast secure AES proposal» (en anglès). [Consulta: 30 setembre 2024].
  3. «These instructions guide the INSTALLATION of BLATSTING using ELIGIBLEBACHELOR via NOPEN tunnel.» (en anglès). GitHub. [Consulta: 16 agost 2016].
  4. «3.6.4 What are RC5 and RC6?» (en anglès). RSA Laboratories. Arxivat de l'original el 2017-07-06. [Consulta: 2 agost 2015].