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. miniatura|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.
Xifratge/desxifrat 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 D = D + S 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 B = B - S
Possible ús en "implants" de la NSA 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.
Llicència Com que RC6 no es va seleccionar per a l'AES, no es va garantir que RC6 estigui lliure de drets d'autor. , una pàgina web del lloc web oficial dels dissenyadors de RC6, RSA Laboratories, afirma el següent:
"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
Categoria:Xifratges