CipherSaber es un protocolo de cifrado simétrico simple basado en el cifrado de flujo RC4 . Sus objetivos son tanto técnicos como políticos : proporciona una protección razonablemente fuerte de la confidencialidad de los mensajes, pero está diseñado para ser lo suficientemente simple como para que incluso los programadores novatos puedan memorizar el algoritmo e implementarlo desde cero. Según el diseñador, una versión de CipherSaber en el lenguaje de programación QBASIC requiere solo dieciséis líneas de código. Su aspecto político es que, debido a que es tan simple, se puede volver a implementar en cualquier lugar y en cualquier momento, por lo que proporciona una forma de que los usuarios se comuniquen de forma privada incluso si el gobierno u otros controles hacen que la distribución de software criptográfico normal sea completamente imposible.
Arnold Reinhold inventó CipherSaber para mantener la criptografía segura en manos del público. Muchos gobiernos han implementado restricciones legales sobre quién puede usar la criptografía, y muchos más las han propuesto. Al publicar detalles sobre un algoritmo de cifrado seguro y fácil de programar, Reinhold espera mantener la tecnología de cifrado accesible para todos.
A diferencia de programas como PGP , que se distribuyen como software preescrito y fácil de usar, Reinhold publica CipherSaber sólo como una especificación. La especificación está pensada para ser tan simple que incluso un programador principiante pueda implementarla fácilmente. Como explica el sitio web de CipherSaber [1]:
El sitio web tiene un archivo gráfico que se muestra como un certificado "CipherKnight"; sin embargo, ese archivo está cifrado utilizando CipherSaber con una clave conocida publicada junto con el archivo. Los usuarios pueden ver el gráfico (y opcionalmente imprimirlo para enmarcarlo) escribiendo primero su propia implementación de CipherSaber para descifrar el archivo. Al escribir su propia implementación y realizar algunas otras pequeñas tareas, el usuario se convierte en un CipherKnight y el certificado descifrado da fe de su condición de caballero. Por lo tanto, en lugar de proporcionar una herramienta lista para usar, el diseñador de CipherSaber espera ayudar a los usuarios de computadoras a comprender que son capaces de crear sus propios programas de criptografía sin tener que depender de desarrolladores profesionales o del permiso del gobierno.
En la versión original de CipherSaber (ahora llamada CipherSaber-1 o CS1), cada mensaje cifrado comienza con un vector de inicialización aleatorio de diez bytes (IV). Este IV se añade a la clave de CipherSaber para formar la entrada al algoritmo de configuración de clave RC4. El mensaje, al que se le aplica la operación XOR con el flujo de claves RC4 , sigue inmediatamente.
El ataque de Fluhrer, Mantin y Shamir a RC4 ha dejado a CipherSaber-1 vulnerable si se envía una gran cantidad (>1000) de mensajes con la misma clave de CipherSaber. Para solucionar este problema, el diseñador de CipherSaber ha creado un protocolo modificado (llamado CipherSaber-2) en el que el bucle de configuración de la clave RC4 se repite varias veces (se recomiendan 20). Además de acordar una clave secreta, las partes que se comunican con CipherSaber-2 deben acordar cuántas veces repetir este bucle.
La salida del texto cifrado es un flujo de bytes binarios que está diseñado para ser "indistinguible del ruido aleatorio". [1] Para su uso con sistemas de comunicaciones que sólo pueden aceptar datos ASCII , el autor recomienda codificar el flujo de bytes como dígitos hexadecimales. Esto es menos eficiente que, por ejemplo, la codificación MIME base64 , pero es mucho más simple de programar, lo que se ajusta al objetivo de CipherSaber de máxima facilidad de implementación.
CipherSaber es lo suficientemente fuerte y utilizable como para hacer valer su punto de vista político de manera efectiva. Sin embargo, se queda muy lejos de la seguridad y conveniencia que uno normalmente esperaría de un criptosistema de este tipo. Mientras que los CipherKnights pueden usar CipherSaber para intercambiar mensajes ocasionales entre sí de manera razonablemente segura, ya sea por diversión o en tiempos de gran angustia, CipherSaber despoja a la criptografía de sus elementos esenciales y no ofrece suficientes características para ser adecuado para una amplia implementación y un uso diario rutinario. De hecho, el autor de CipherSaber pide a los usuarios que descarguen e instalen PGP como uno de los pasos para convertirse en un CipherKnight. CipherSaber puede verse como un sistema de reserva de último recurso para usar si se prohíben programas como PGP . Algunos, pero no todos, los sacrificios y deficiencias de CipherSaber son exclusivos de RC4.