RC6
En criptografía, RC6 (Rivest cipher 6) es un cifrado de bloque de clave simétrica derivado de RC5. Fue diseñado por Ron Rivest, Matt Robshaw, Ray Sidney y Yiqun Lisa Yin para cumplir con los requisitos de la competencia Advanced Encryption Standard (AES). El algoritmo fue uno de los cinco finalistas y también se presentó a los proyectos NESSIE y CRYPTREC. Era un algoritmo propietario, patentado por RSA Security.
RC6 propiamente dicho tiene un tamaño de bloque de 128 bits y admite tamaños de clave de 128, 192 y 256 bits hasta 2040 bits, pero, como RC5, se puede parametrizar para admitir una amplia variedad de longitudes de palabra, clave tamaños y número de rondas. RC6 es muy similar a RC5 en estructura, utiliza rotaciones dependientes de datos, adición modular y operaciones XOR; de hecho, RC6 podría verse como un entrelazado de dos procesos de cifrado RC5 paralelos, aunque RC6 utiliza una operación de multiplicación adicional que no está presente en RC5 para hacer que la rotación dependa de cada bit en una palabra, y no solo de los bits menos significativos.
Cifrado/descifrado
Tenga en cuenta que el algoritmo de expansión de teclas es prácticamente idéntico al de RC5. La única diferencia es que para RC6, se derivan más palabras de la clave proporcionada por el usuario.
/ Encryption/Decryption with RC6-w/r/b// // Entrada: Plaintext almacenado en cuatro registros de entrada w-bit A, B, C & D// r es el número de rondas// w-bit llaves redondas S[0,... 2r + 3]// // Producto: Cifertexto almacenado en A, B, C, D// // '''Encryption Procedure:' 'B = B + S[0]D = D + S[1]para i = 1 a r do{}t = ()B * ()2B + 1) c). lg wu = ()D * ()2D + 1) c). lg wA = ()A ^ t) c). u) + S[2i]C = ()C ^ u) c). t) + S[2i + 1] ()A, B, C, D) = ()B, C, D, A)}A = A + S[2r + 2]C = C + S[2r + 3]// '''' Procedimiento de desencriptación:' 'C = C - S[2r + 3]A = A - S[2r + 2]para i = r abajo 1 do{}()A, B, C, D) = ()D, A, B, C)u = ()D * ()2D + 1) c). lg wt = ()B * ()2B + 1) c). lg wC = ()C - S[2i + 1]) , titulado t) ^ uA = ()A - S[2i]) , titulado u) ^ t}D = D - S[1]B = B - S[0]
Posible uso en NSA "implantes"
En agosto de 2016, el código conocido como Equation Group o NSA "implants" para varios dispositivos de seguridad de red. Las instrucciones adjuntas revelaron que algunos de estos programas utilizan RC6 para la confidencialidad de las comunicaciones de red.
Licencias
Como RC6 no fue seleccionado para AES, no se garantizó que RC6 esté libre de regalías. A partir de enero de 2017, una página web en el sitio web oficial de los diseñadores de RC6, RSA Laboratories, establece lo siguiente:
- "Enfatizamos que si RC6 es seleccionado para el AES, RSA Security será no requiere cualquier concesión de licencias o pagos de regalías para productos usando el algoritmo".
El énfasis en la palabra "si" sugiere que RSA Security Inc. puede haber requerido licencias y pagos de regalías para cualquier producto que utilice el algoritmo RC6. RC6 era un algoritmo de cifrado patentado (Patente de EE. UU. 5.724.428 y Patente de EE. UU. 5.835.600); sin embargo, las patentes expiraron entre 2015 y 2017.
Contenido relacionado
♯P
Problema de la altura de la estrella
Código