Red Pike es un algoritmo de cifrado clasificado del gobierno del Reino Unido , propuesto para su uso por el Servicio Nacional de Salud por GCHQ , pero diseñado para una "amplia gama de aplicaciones en el gobierno británico ". [ 1 ] Se sabe poco públicamente sobre Red Pike, excepto que es un cifrado de bloques con un tamaño de bloque de 64 bits y una longitud de clave de 64 bits . Según el estudio académico del cifrado citado a continuación y citado en un artículo de Ross Anderson y Markus Kuhn , "utiliza las mismas operaciones básicas que RC5 " (suma, XOR y desplazamiento a la izquierda) y "no tiene tablas de búsqueda, prácticamente no tiene programación de claves y requiere solo cinco líneas de código"; "la influencia de cada bit de la clave se propaga rápidamente" y "cada cifrado implica del orden de 100 operaciones". 64 bits de entropía de clave ya no se consideran seguros.
Red Pike está disponible en formato de software para contratistas autorizados del gobierno británico, para su uso en sistemas de comunicación gubernamentales confidenciales (no secretos). El GCHQ también diseñó el criptosistema Rambutan para el mismo sector.
Dado que Red Pike es un algoritmo de cifrado británico, es probable que su nombre haga referencia a una colina en particular en el oeste del Distrito de los Lagos inglés .
Código fuente supuesto
En febrero de 2014, el supuesto código fuente de Red Pike se publicó de la siguiente manera en la lista de correo Cypherpunk . [ 2 ]
/* Código fuente del cifrado Red Pike */ #include <stdint.h> typedef uint32_t word ; #define CONST 0x9E3779B9 #define ROUNDS 16 #define ROTL(X, R) (((X) << ((R) & 31)) | ((X) >> (32 - ((R) & 31)))) #define ROTR(X, R) (((X) >> ((R) & 31)) | ((X) << (32 - ((R) & 31)))) void encrypt ( word * x , const word * k ) { unsigned int i ; word rk0 = k [ 0 ]; word rk1 = k [ 1 ]; for ( i = 0 ; i < ROUNDS ; i ++ ) { rk0 += CONST ; rk1 -= CONST ; x [ 0 ] ^= rk0 ; x [ 0 ] += x [ 1 ]; x [ 0 ] = ROTL ( x [ 0 ], x [ 1 ]); x [ 1 ] = ROTR ( x [ 1 ], x [ 0 ]); x [ 1 ] -= x [ 0 ]; x [ 1 ] ^= rk1 ; } rk0 = x [ 0 ]; x [ 0 ] = x [ 1 ]; x [ 1 ] = rk0 ; } void decrypt ( word * x , const word * k ) { word dk [ 2 ] = { k [ 1 ] - CONST * ( ROUNDS + 1 ), k [ 0 ] + CONST* ( RONDAS + 1 ) }; cifrar ( x , dk ); }Véase también
Referencias
- ↑ Saunders, Andrew (25 de febrero de 1997). "RECOMENDACIONES DE CESG PARA EL CORREO ELECTRÓNICO SEGURO" . Archivado del original el 23 de abril de 2004.
- ↑ "Cifrado de Red Pike" Archivado el 2 de junio de 2015 en Wayback Machine , cifrado de Red Pike, lista de correo Cypherpunk, Gmane
- C Mitchell, S Murphy, F Piper, P Wild. (1996). Red Pike : una evaluación. Codes and Ciphers Ltd 2/10/96.
- Artículo de Anderson y Kuhn que incluye extractos de (Mitchell et al., 1996) . Otra versión es Anderson, Ross; Kuhn, Markus (1997). "Ataques de bajo costo a dispositivos resistentes a manipulaciones" (PDF) . Security Protocols, 5.º Taller Internacional . págs. 125–136 .
- "El uso del cifrado y los servicios relacionados con NHSnet"
- Cifrados de bloques
- GCHQ