← Laboratorio

Alaniz Cipher

En curso · Empezado , actualizado

Diseño un cifrado propio y publico cada versión para que otros intenten romperla. Dos ya cayeron, y la bitácora cuenta cómo.

Fig. 1Una letra por la máquina

Elige una letra o tecléala y cífralaLa máquina en reposo

La letra entra por la rueda de la izquierda como su código ASCII escrito en base 17, un par de F₁₇. Las cuatro estaciones en ciclo son el grafo C4 de la demo del código de la v3, con un par de F₁₇ en cada una. Los trenes de engranajes son las restricciones del haz, lineales e invertibles, y llevan el mensaje de estación en estación de modo que, al cerrar la vuelta, la primera recibe el mismo par que tenía. En cada estación el eje de A fija y = A·s, la leva es σ, la única pieza no lineal, los engranajes de B la multiplican y la rueda suma da c = y + B·σ(y), que marcan las dos ruedas de salida. Es la forma determinista de la v1 y la v2, aquí con la σ de la v2. La v1 elevaba al cubo cada componente y A. Rodríguez Langa la rompió con un ataque de escalado, porque entonces σ(2y) = 8·σ(y) y basta restar ocho veces un criptograma al de su doble para borrar la leva. La v2 la rompí yo mismo después, por interpolación y bases de Gröbner, y la v3 cifra con un nonce y una σ vectorial que esta máquina no dibuja. Las matrices, el perfil de la leva y el volante son de este dibujo, no una clave. Que el esquema sea seguro es un objetivo de diseño, no un hecho.

En marzo de 2026 publiqué un cifrado con mi apellido y lo dejé a la vista para que otros intentaran romperlo. A. Rodríguez Langa lo consiguió apoyándose en una sola identidad algebraica, y desde entonces este experimento es, sobre todo, la lista de quién rompió qué.

Un cifrado es una máquina que mezcla un mensaje con una clave secreta de modo que deshacer la mezcla sin la clave cueste más de lo que nadie pueda pagar. El objetivo de diseño de este es que el precio siga siendo alto también para un ordenador cuántico. Que lo consiga no está demostrado, y la única forma honrada de acercarse es publicar cada versión y dejar que la ataquen.

Por dentro se apoya en el problema NL-SMIP, un sistema polinomial cuyos coeficientes secretos están acoplados por cohomología de haces sobre grafos. La pieza que hace la mezcla no lineal se llama σ, y casi toda esta historia trata de ella.

Dos versiones en el suelo

La v1 usaba una σ que elevaba al cubo cada componente. Eso tiene una consecuencia que cabe en una línea, porque si la entrada se multiplica por λ la salida sale multiplicada por λ³, y sobre esa identidad, σ(λy) = λ³σ(y), A. Rodríguez Langa montó un ataque de escalado que la rompió. Su criptoanálisis abrió el camino a la v2 y, al final, a la v3.

La v2 le dio a σ una estructura SPN, capas de sustitución y permutación, para resistir ese ataque. Cayó por otro lado, y la rompí yo mismo en el paper de la v3. Cualquier cifrado determinista de la forma c = As + Bσ(As) con σ de grado acotado permite recuperar la clave entera por interpolación polinomial y bases de Gröbner. Con d = 2 y p = 17 bastaron 20 consultas con texto claro elegido y unos 5,7 s de cálculo simbólico, y el ataque funcionó en las 10 claves generadas al azar.

La v3, del 24 de abril de 2026, cambió la estructura. El cifrado pasó a ser probabilístico, con un flujo derivado de un nonce (SHAKE-256), y σ empezó a operar de forma vectorial en Fpd mediante una permutación monomial de potencia. La estimación de seguridad PQ-128 que daba aquel paper se revisó después en el repositorio de la v4, y no se sostiene.

La clave pública que no lo era

La v4 empezó como propuesta de clave pública, y la abandoné al comprobar que el esquema era en realidad simétrico, porque para cifrar hacía falta el secreto. Un candado de clave pública es uno que cualquiera puede cerrar y solo el dueño de la llave puede abrir. Si para cerrarlo también hace falta la llave, lo que queda es una cerradura corriente, y las cifras de seguridad que había dado para ese diseño se quedaron sin respaldo.

El trabajo siguió, sin estar en el plan, como primitiva para funciones hash, las que resumen cualquier mensaje en una huella corta, en su variante orientada a aritmetización. El resultado central está medido y lo cuenta el preprint «Placement is a Primitive». Acoplar la entrada de las S-boxes añade un bit de grado ideal CICO por ronda, poner el mismo acoplamiento en la capa lineal o detrás de la S-box no añade nada, y el efecto es genérico, no propio de los haces. Importa dónde va la pieza más que la pieza. El número de rondas y el coste frente a Poseidon2 son extrapolaciones de esa ley medida, no mediciones, y siguen abiertos el caso de cuatro o más rondas y el cuerpo Goldilocks real de 64 bits.

Nada de esto es un cifrado listo para producción, y no ha pasado ninguna auditoría externa. Tampoco hay una reducción formal del peor caso al caso medio para NL-SMIP, una limitación que comparte toda la criptografía multivariable. «Seguro» y «resistente a la computación cuántica» son objetivos de diseño, y las cifras de seguridad de la v3 y de la propuesta de clave pública de la v4 no se sostienen. Lo que sí se sostiene, por ahora, es la bitácora.

Bitácora

  1. De cifrado a primitiva

    v4 · En curso, · replantea la v3

    La propuesta de clave pública de la v4 se abandonó al comprobar que el esquema era en realidad simétrico, porque para cifrar hacía falta el secreto. Las cifras de seguridad que se habían dado para ese diseño se quedaron sin respaldo. El trabajo siguió como primitiva orientada a aritmetización. El resultado central, medido, es que acoplar la entrada de las S-boxes añade un bit de grado ideal CICO por ronda, y que el efecto es genérico y no propio de los haces. El número de rondas y el coste frente a Poseidon2 son extrapolaciones de esa ley medida. Siguen abiertos el caso de cuatro o más rondas y el cuerpo Goldilocks real de 64 bits.

  2. Rediseño estructural

    v3 · Rediseño, · corrige la v1 y la v2

    El cifrado pasa a ser probabilístico, con un flujo derivado de un nonce (SHAKE-256), y σ se rediseña para operar de forma vectorial en F_{p^d} mediante una permutación monomial de potencia. La estimación de seguridad PQ-128 que daba el paper se revisó después en el repositorio de la v4 y no se sostiene.

  3. σ con estructura SPN

    v2 · Roto, · rota

    Rota por mí mismo, en el paper de la v3

    Introdujo una σ con estructura SPN para resistir el ataque de escalado. En el paper de la v3 mostré que también cae. Cualquier cifrado determinista de la forma c = As + Bσ(As) con σ de grado acotado admite una recuperación completa de clave por interpolación polinomial y bases de Gröbner. Con d = 2 y p = 17 bastaron 20 consultas CPA y unos 5,7 s de cálculo simbólico, y el ataque funcionó en las 10 claves generadas al azar.

  4. σ por componentes al cubo

    v1 · Roto, · rota

    Rota por A. Rodríguez Langa

    Usaba una σ que elevaba al cubo cada componente. A. Rodríguez Langa la rompió con un ataque de escalado que explota la identidad σ(λy) = λ³σ(y). Su criptoanálisis abrió el camino a la v2 y, al final, a la v3.

Enlaces