RC6
RC6 | |
---|---|
Detall | |
Estructura | Xarxa 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 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[update] </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]- ↑ «RC6 encryption and decryption» (en anglès americà), 07-07-2002. [Consulta: 30 setembre 2024].
- ↑ «The RC6 Block Cipher: A simple fast secure AES proposal» (en anglès). [Consulta: 30 setembre 2024].
- ↑ «These instructions guide the INSTALLATION of BLATSTING using ELIGIBLEBACHELOR via NOPEN tunnel.» (en anglès). GitHub. [Consulta: 16 agost 2016].
- ↑ «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].