elparaiso.mat.uned.es

¡Pulsa Aquí!

LO DIJO...

Ernst Mach  
 
El poder de las Matemáticas descansa en evitar todo razonamiento innecesario y en la maravillosa economía de operaciones mentales.
 
El Paraíso de las Matemáticas - Criptotaller ~ Nota al diseñador aficionado de cifras
.: Criptotaller :.
Nota al diseñador aficionado de cifras

    El siguiente texto fue publicado en el boletín Crypto-Gram de Bruce Schneier de Octubre de 1998 y creo que a cualquiera que le guste la criptografía debería leerlo, especialmente si alguna vez ha pensado en diseñar su propio algoritmo de cifrado. Esa es la razón de que lo haya traducido.

    Felicidades. Has inventado un estupendo nuevo cifrado y quieres hacer algo con él. Eres nuevo en este campo, nadie ha oído hablar de ti y no tienes credenciales como criptoanalista. Quieres que criptoanalistas conocidos vean tu trabajo. ¿Qué puedes hacer?

    Desgraciadamente te queda un difícil camino por delante. Veo unos dos nuevos cifrados de diseñadores aficionados cada semana. La probabilidad de que alguno de estos algoritmos sea seguro es pequeña. La probabilidad de que cualquiera de los dos sea a la vez seguro y eficiente es despreciable. La probabilidad de que cualquiera de los dos valga dinero de verdad es virtualmente inexistente.

    Cualquiera, desde el amateur más despistado hasta el mejor criptógrafo, puede crear un algoritmo que él mismo no pueda romper. Ni siquiera es difícil. Lo que es difícil es crear un algoritmo que nadie más pueda romper, incluso después de años de análisis. Y la única forma de demostrarlo es someter al algoritmo a años de análisis por los mejores criptógrafos existentes.

    "Los mejores criptógrafos existentes" rompen un montón de cifrados. La literatura académica está cubierta por los cadáveres de los cifrados que sus análisis derribaron. Pero son gente ocupada; no tienen tiempo de romperlo todo. ¿Cómo deciden en qué concentrarse?

    Lo ideal sería que los criptógrafos sólo se fijasen en cifras que tengan una razonable probabilidad de ser seguras. Esto significa que los criptógrafos sólo deberían analizar cifrados creados por personas cuyas opiniones se valoran. A nadie le impresiona que una persona cualquiera cree un cifrado que no puede romper por si mismo; pero si uno de los mejores criptógrafos del mundo crea un cifrado que él no puede romper, bueno, eso es algo que merece la pena ver.

    En el mundo real no todo es tan claro. Los criptógrafos estudian los algoritmos que o bien son interesantes o bien que es probable que produzcan resultados publicables. Esto significa que se fijarán en algoritmos que provengan de criptógrafos respetados, algoritmos que aparezcan en grandes sistemas públicos (p.ej. teléfonos móviles, decodificadores de TV de pago, productos de Microsoft), y en algoritmos publicados en la literatura académica. Los algoritmos que se publican en los grupos de noticias de Internet por desconocidos no recibirán una segunda mirada. Tampoco lo harán algoritmos patentados pero no publicados o algoritmos propietarios incluidos es oscuros productos.

    Es difícil conseguir que se publique un algoritmo criptográfico. La mayoría de congresos y talleres no aceptan diseños de desconocidos y sin un análisis exhaustivo. Puede parecer injusto: los desconocidos no consiguen que se publiquen sus cifras porque son desconocidos, y por tanto nadie verá su trabajo. Realmente, si el único "trabajo" que uno hace es el de diseñar probablemente no merece la pena publicarse. Un desconocido puede darse a conocer publicando criptoanálisis de cifras existentes, la mayoría de los congresos aceptan estas ponencias.

    Cuando comencé a escribir "Applied Cryptography" escuché la máxima de que los únicos buenos diseñadores de algoritmos eran las personas que pasaban años analizando cifras existentes. La máxima tenía sentido y la creí. Con los años, mientras pasaba más tiempo diseñando y analizando, la verdad de la máxima se ha hecho mayor y mayor. Mi trabajo diseñando Twofish me ha hecho creer en ello aún con más fuerza. La fuerza de la cifra no está en su diseño, cualquiera podría diseñar algo parecido. La fuerza está en su análisis. Pasamos más de 1000 horas-hombre analizando Twofish, rompiendo versiones simplificadas y variantes y estudiando modificaciones. Y no podríamos haber hecho ese análisis, ni hubiéramos tenido ninguna confianza en ese análisis si todo el equipo de diseño no hubiera tenido experiencia rompiendo muchos otros diseños de algoritmos.

    Un amigo criptógrafo cuenta la historia de un aficionado que le molestaba continuamente con el cifrado que había inventado. El criptógrafo rompía la cifra, el amateur hacía un cambio para "arreglarlo" y el criptógrafo la rompía de nuevo. Este intercambio se repitió unas cuantas veces hasta que el criptógrafo se hartó. Cuando el aficionado volvió a visitarlo para oír lo que pensaba, el criptógrafo puso tres sobres boca abajo sobre la mesa. "Coje uno y léelo. No vuelvas hasta que hayas descubierto los otros dos ataques" Nunca más se oyó hablar del aficionado.

    No quiero ser completamente negativo. A veces la gente diseña cifras fuertes. Incluso los criptógrafos aficionados diseñan cifras fuertes. Pero si no eres conocido en la comunidad criptográfica, y esperas que otros vean tu trabajo, debes hacer varias cosas:

    Describe tu cifra usando una notación estándar. No significa código fuente C. Hay una terminología establecida en la literatura. Apréndela y úsala; nadie aprenderá tu terminología especializada.

    Compara tu cifra con otros diseños. Lo más probable es que use algunas ideas que han aparecido antes. Haz referencia a ellas. Esto hará más fácil para otros entender tu trabajo, y muestra que entiendes la literatura.

    Demuestra por qué tu cifra es inmune a los ataques más importantes que aparecen en la literatura. No es suficiente decir simplemente que es segura, debes mostrar por qué es segura contra estos ataques. Esto requiere, por supuesto, no sólo que hayas leído la literatura existente sino que la hayas comprendido. Espera que el proceso te lleve meses y resulte en un grueso documento con fuerte contenido matemático. Y recuerda, los tests estadísticos no son muy significativos.

    Explica por qué tu cifra es mejor que las alternativas existentes. No tiene sentido fijarse en algo a menos de que tenga claras ventajas sobre lo anterior. ¿Es más rápido en los Pentiums? ¿Ocupa menos en hardware? ¿O qué? He dicho a menudo que, con suficientes rondas, casi cualquier cosa es segura. Tu diseño tiene que tener ventajas significativas. Y "no puede romperse" no es una ventaja, es un prerrequisito.

    Publica el algoritmo. La experiencia demuestra que las cifras que no se publican son la mayoría de las veces muy débiles. Mantener la cifra en secreto no mejora la seguridad una vez que su uso se extiende, así que si tu cifra debe mantenerse en secreto para ser segura, es inútil.

    No patentes el cifrado. No se hace dinero vendiendo un cifrado, hay demasiados buenos que son gratis. Todos los que remitieron su cifrado al AES estaban deseando regalarlo, muchos de los propuestos pertenecen ya al dominio público. Si patentas tu diseño, todo el mundo utilizará otra cosa. Y nadie lo analizará por ti (a menos de que les pagues), ¿por qué deberían trabajar gratis para ti?

    Se paciente. Hay muchos algoritmos que estudiar ahora. La competición del AES ha ofrecido a los criptógrafos 15 nuevos diseños que analizar. Cualquier buen criptógrafo con tiempo disponible, está hurgando en estos algoritmos.

    Si quieres diseñar algoritmos, empieza por romper los que están ahí fuera. Practica rompiendo algoritmos que han sido rotos antes (sin mirar las soluciones). Rompe algo que nadie haya roto. Rompe uno más. Haz que tus roturas sean publicadas. Cuando te hayas creado una fama como alguien que sabe romper algoritmos, entonces puedes empezar a diseñar nuevos algoritmos. Antes de eso, nadie te tomará en serio.

    Crear un cifrado es fácil. Analizarlo es difícil.

Crypto-Gram Octubre 1998, por Bruce Schneier

Area On-Line
  Todo tipo de material, para disfrutar de él completamente On-Line, sin necesidad de descargar archivos ni tener que andar descomprimiendo estos. No te olvides de pasar por el Diccionario, y las secciones Origami y Geointeractiva. Son de lo más interesante.

Criptotaller

Criptografía (clásica y moderna), criptoanálisis (primos, primos de Mersenne, etc.) y otras técnicas.

Material para descargar

Código Fuente C

Método Hill
Método Jefferson
Exponenciación Modular
Cálculo números primos
Test de Lucas-Lehmer
Factores num. Mersenne
Verificación FIPS 140.2
Teorema chino del resto
+ Códigos Fuente C

Código Fuente Python

Generación de claves

Artículos

La máquina Enigma
Criptografía y seguridad
    M. J. Lucena
Seguridad Informática
   y Criptografía PDF PPT
    J. Ramió
Criptografía clásica PDF
    J. Ramió

Programas
Cripto1 ZIP 2391 KB
    J. L. Rubio

Enlaces

Página personal de Jaime Suárez Martínez, colaborador de esta sección.

Munitions, colección de programas para Linux.

Kriptopolis, toda una referencia en castellano.

Ciphersaber

Criptonomicón: la página de Gonzalo Alvarez Marañón.

Página de Chris Caldwell, una página bien elaborada sobre números primos.

Colección de links de Peter Gutmann.

www.gnupg.org es la página original de GPG, un programa libre alternativo a PGP.

Sábado, 16 / 04 / 2022
   BUSCADOR
 

   TU CORREO
Usuario
Contraseña

   MATRACAS
Lista de correo gratuita
.: Chismes de Adán y Eva :.
Adios a Elisenda Fo...
WolframAlpha: El mo...
WIRIS para Mac...
Third CEU Summersch...
¡Más y más actualiz...
Cerca de 500 MB de ...
Ha llegado el momen...
WIRIS, matemáticas ...
El Universo Matemát...
Segundas Jornadas d...
Los Elementos de Eu...
VI Semana de la Cie...
Tras varios meses d...
¡Chiflados por los ...
Otro verano más, to...

 

Todos los derechos reservados. El Paraíso de las Matemáticas 2015Información Legal Política de PrivacidadAyudaEmail