El Instituto Nacional de Estándares y Tecnología (NIST) ha anunciado las elecciones finales para la Ronda 3 de su competición post-cuántica. Como todo buen thriller, el capítulo de la Ronda 3 ha terminado con un giro inesperado.
A modo de recordatorio, en diciembre de 2016, el NIST anunció una competición para seleccionar nuevos algoritmos de cifrado de clave pública resistentes a la computación cuántica que eventualmente reemplazarán a los algoritmos estándar de criptografía de clave pública (piense en RSA) ya que se están volviendo cada vez más vulnerables a los avances tecnológicos. Si le interesa saber más sobre esto, mi colega Ted Shorter cubrió recientemente la historia de la competición y por qué es importante en su columna de Forbes.
Los algoritmos en la lista de estandarización son CRYSTALS-KYBER, CRYSTALS-Dilithium, Falcon y SPHINCS+. El primero es un algoritmo de cifrado, o más precisamente un Mecanismo de Encapsulación de Clave (KEM), y los tres últimos son algoritmos de firma. Esto es una sorpresa, ya que la intención original declarada era seleccionar dos algoritmos en cada categoría y solo un algoritmo basado en retículos en cada clase. En cambio, tenemos un KEM y tres firmas, ¡con dos de los algoritmos de firma basados en retículos!
También se ha anunciado una Ronda 4, con la selección de los siguientes algoritmos: BIKE, Classic McEliece, HQC y SIKE. Todos estos también son KEMs. Si bien esto no significa que la búsqueda de algoritmos de firma haya terminado, sí significa que se emitirá una nueva convocatoria para algoritmos de firma a finales de este año. Y, es posible que veamos algunos de los candidatos anteriores de la Ronda 3 o candidatos alternativos resurgir para su presentación allí.
¿Dónde nos deja esto ahora? Si desea limitarse a los finalistas de la Ronda 3, la respuesta más sencilla es considerar el marco CRYSTALS. Si el uso del ancho de banda y la velocidad de verificación son importantes para usted, también podría considerar Falcon. Por otro lado, si busca un esquema de firma conservador que se base en una primitiva (relativamente) simple, SPHINCS+, aunque un poco más lento y un poco más grande, también es una buena opción.
Si los KEMs son de su interés, tenga en cuenta la Ronda 4. Aunque CRYSTALS-KYBER se ha establecido como la primera opción, las características de algunos de los algoritmos de la Ronda 4 son bastante diferentes de las de CRYSTALS-KYBER. Por lo tanto, todavía hay margen para compensaciones entre las necesidades de ancho de banda y la velocidad de las diferentes operaciones.
Si está interesado en lecturas adicionales, el informe de estado de la Ronda 3 está disponible aquí. El documento, especialmente la Sección 4, merece la pena leerlo. Posiblemente el punto más importante aquí es que parece que solo Rainbow y GeMSS, tal como se presentaron en la Ronda 3, fueron finalmente rechazados por razones de seguridad. FrodoKEM, por ejemplo, fue incluso calificado de loable por su diseño conservador, pero no por su rendimiento. Es probable que en el futuro sepamos más sobre algunos de los otros candidatos de la Ronda 3.
Finalmente, desde la perspectiva de Bouncy Castle, ahora tenemos disponible la última versión de SPHINCS+, así como los candidatos de la Ronda 4 SIKE y Classic McEliece. Esperamos publicar los demás pronto. Puede encontrarlos en el repositorio de GitHub de Bouncy Castle aquí con implementaciones tanto en Java como en C#. Bouncy Castle también ha asignado algunos identificadores no oficiales para hacer posible la generación de certificados y SPHINCS+ también está ahora en la última versión de Signserver Community y otros le seguirán.
Tenga en cuenta que incluso los finalistas acordados pueden cambiar ligeramente antes de que el NIST publique los estándares finales. Por lo tanto, estas no son implementaciones que desee apresurar a producción, particularmente si se trata de algo a largo plazo, pero si desea averiguar cuán realmente cripto-ágiles son sus sistemas, los nuevos algoritmos bien merecen ser probados y ahora existen las herramientas para hacerlo posible.