En criptografía , RC6 es un cifrado de bloques 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 del concurso del Estándar de Cifrado Avanzado (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 . Según Ron Rivest, RC significa Ron's Code (Código de Ron) , [ 2 ] pero la documentación de RC simplemente lo identifica como RC6.
El algoritmo RC6 propiamente dicho tiene un tamaño de bloque de 128 bits y admite claves de 128, 192 y 256 bits hasta 2040 bits, pero, al igual que RC5, puede parametrizarse para admitir una amplia variedad de longitudes de palabra, tamaños de clave y número de rondas. RC6 es muy similar a RC5 en su estructura, utilizando rotaciones dependientes de los datos, suma modular y operaciones XOR ; de hecho, RC6 podría considerarse como la interconexión de dos procesos de cifrado RC5 paralelos, aunque RC6 utiliza una operación de multiplicación adicional que no está presente en RC5 para que la rotación dependa de cada bit de una palabra, y no solo de los bits menos significativos.
Cifrado/descifrado
El algoritmo de expansión de claves es prácticamente idéntico al de RC5. La única diferencia es que, en RC6, se derivan más palabras de la clave proporcionada por el usuario.
// Cifrado/Descifrado con RC6-w/r/b // // Entrada: Texto plano almacenado en cuatro registros de entrada de w bits A, B, C y D // r es el número de rondas // Claves de ronda de w bits S[0, ..., 2r + 3] // // Salida: Texto cifrado almacenado en A, B, C, D // // '''Procedimiento de cifrado:'''B = B + S [ 0 ] D = D + S [ 1 ] para i = 1 a r hacer { t = ( B * ( 2 B + 1 )) <<< lg w u = ( D * ( 2 D + 1 )) <<< lg w A = (( A ^ t ) <<< u ) + S [ 2 i ] C = (( C ^ u ) <<< t ) + S [ 2 i + 1 ] ( A , B , C , D ) = ( B , C , D , A ) } A = A + S [ 2 r + 2 ] C = C + S [ 2 r + 3 ]// '''Procedimiento de descifrado:'''C = C - S [ 2 r + 3 ] A = A - S [ 2 r + 2 ] para i = r hasta 1 hacer { ( A , B , C , D ) = ( D , A , B , C ) u = ( D * ( 2 D + 1 )) <<< lg w t = ( B * ( 2 B + 1 )) <<< lg w C = (( C - S [ 2 i + 1 ]) >>> t ) ^ u A = (( A - S [ 2 i ]) >>> u ) ^ t } D = D - S [ 1 ] B = B - S [ 0 ]Posible uso en "implantes" de la NSA.
En agosto de 2016, se divulgó código que se creía pertenecía al Grupo Equation o a la NSA , supuestamente "implantes" para diversos dispositivos de seguridad de red. [ 3 ] Las instrucciones adjuntas revelaron que algunos de estos programas utilizan RC6 para la confidencialidad de las comunicaciones de red. [ 4 ]
Licencias
Como RC6 no fue seleccionado para la AES , no se garantizó que RC6 estuviera 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, afirma lo siguiente: [ 5 ]
- "Hacemos hincapié en que, si se selecciona RC6 para el AES, RSA Security no exigirá ninguna licencia ni el pago de regalías por los productos que utilicen el algoritmo".
El énfasis en la palabra "si" sugiere que RSA Security Inc. podría haber exigido licencias y el pago de regalías por cualquier producto que utilizara el algoritmo RC6. RC6 era un algoritmo de cifrado patentado ( patentes estadounidenses 5,724,428 y 5,835,600 ); sin embargo, dichas patentes expiraron entre 2015 y 2017.
Referencias
- ↑ Hoang, Viet Tung; Rogaway, Phillip (2010). "Sobre redes Feistel generalizadas". LNCS 6223. CRYPTO 2010. EE. UU.: Springer. págs. 613–630 . doi : 10.1007/978-3-642-14623-7_33 .
- ↑ "Preguntas frecuentes sobre Rivest en csail.mit.edu" .
- ↑ "Confirmado: la filtración de la herramienta de pirateo provino de un grupo "omnipotente" vinculado a la NSA" . Ars Technica . 16 de agosto de 2016.
- ↑ "Estas instrucciones guían la INSTALACIÓN de BLASTTING usando ELIGIBLEBACHELOR a través del túnel NOPEN" . GitHub . Consultado el 16 de agosto de 2016 .
- ↑ "3.6.4 ¿Qué son RC5 y RC6?" . RSA Laboratories . Archivado del original el 06-07-2017 . Consultado el 02-08-2015 .
Bibliografía
- Pavan, RL; Robshaw, MJB; Sidney, R.; Yin., YL (1998-08-20). "El cifrado de bloques RC6" (PDF) . v1.1. Archivado del original (PDF) el 23-12-2018 . Recuperado el 02-08-2015 .
- Beuchat, Jean-Luc. "Implementaciones en FPGA del cifrado por bloques RC6" (PDF) . Archivado del original (PDF) el 5 de mayo de 2006.
- Thompson, Iain (31 de diciembre de 2013). "Cómo la NSA hackea PC, teléfonos, enrutadores y discos duros 'a la velocidad de la luz': filtraciones del catálogo de tecnología de espionaje" . The Register . Recuperado el 2 de agosto de 2015 .
Enlaces externos
- "Criptografía - Cifrados de 256 bits: Código fuente de referencia y propuestas para concursos internacionales de diseño criptográfico" .
- "Cifrados simétricos: RC6" . Nomenclatura estándar de algoritmos criptográficos (SCAN). 15 de abril de 2009.
- "Cifrado por bloques RC6®" . RSA Laboratories . Archivado del original el 4 de marzo de 2016.
- Cifrados de bloques