Es un sistema criptográfico de clave pública basado en códigos de corrección de errores. Es resistente a ataques con computación cuántica, por lo que se considera un candidato para la criptografía post-cuántica. Las herramientas se agrupan de la siguiente manera:
mceliece {6960119,6688128,8192128,460896,348864} -keypair
mceliece {6960119,6688128,8192128,460896,348864} f-kepair
mceliece {6960119,6688128,8192128,460896,348864} -enc
mceliece {6960119,6688128,8192128,460896,348864} -dec
Las claves [mceliece...-keypair y mceliece...f-keypair] se generan aleatoriamente la publica y la secreta. La clave pública la archiva en el descriptor 5 y la clave secreta en el descriptor 9. El comando mceliece...f-kepair es internamente más complicado que el comando mceliece...-keypair, pero proporciona una generación de claves más rápida. Los comandos son interoperables.
La encapsulación se ejecuta cpn el comando mceliece...-enc. Este comando lee la clave pública desde el descriptor de archivo 4. Genera aleatoriamente un texto cifrado y la clave de sesión correspondiente. Escribe el texto cifrado en stdout, y luego escribe la clave de sesión para archivar el descriptor 7.
La decapsulación se ejecuta con el comando mceliece...-dec. Este comando lee la clave secreta desde el descriptor de archivo 8, y luego lee un texto de cifrado de Stdin. Calcula la clave de sesión correspondiente, que escribe en el descriptor de archivos 7.
Unos ejemplos con las más usuales:
$ mceliece-fulltest
$ mceliece-speed
$ mceliece-speed 1000
$ mceliece-test
El proceso criptográfico es el siguiente:
$ mceliece348864-keypair 5>publickey 9>secretkey
$ ls
publickey secretkey
$ mceliece348864-enc >ciphertext 7>sessionkey 4<publickey
$ mceliece348864-dec 7>sessionkey <ciphertext 8<secretkey
$ ls
ciphertext publickey secretkey sessionkey
Notas.- Los números en los nombres [348864, 460896, 6960119, 8192128] se refieren a los parámetros de seguridad, 3488 bits de seguridad para la clave o 4608, etc, y cuando se genera la clave el parámetro numérico 6960119, para encapsular y desencapslar es preferible usar el .enc y .dec que coincida con el número de su parámetro de seguridad [6960119] para evitar errores [fatal: read publickey failed: end of file]. Las claves públicas de mceliece son enormes, de cientos de kilobytes o más. Por eso aunque es seguro post-cuántico, no es práctico para todos los usos.