Estoy interesado en el cifrado, ¿cómo puedo comenzar con mi propio algoritmo desde cero?

Eso depende de por qué quieres hacerlo.

Si tiene una aplicación práctica en mente, no lo haga . Luis Argerich tiene toda la razón. Debe usar implementaciones bien conocidas de algoritmos bien conocidos, porque simplemente no puede crear un algoritmo de cifrado seguro desde cero. Ni siquiera los mejores expertos del mundo pueden hacerlo. Ninguna persona sola puede. No importa cuán inteligente seas, ningún criptógrafo humano será más inteligente que el intelecto combinado de las masas de otros humanos que están motivados para encontrar fallas. Hay algunos casos en los que está bien escribir sus propias implementaciones de algoritmos estándar *, pero si realmente lo necesita por seguridad , incluso eso es una mala idea; hay demasiadas formas de equivocarse y perder datos accidentalmente.

Si no le interesan las aplicaciones prácticas, y no necesita usar su trabajo para ningún tipo de seguridad real, y solo quiere hacerlo como un ejercicio intelectual privado para aprender mejor cómo funciona esto, bueno, eso es muy bien entonces. Noquearse. Al igual que Luis, también recomiendo familiarizarse con los algoritmos existentes y los ataques que se utilizan contra ellos. Busque los diferentes tipos de primitivas criptográficas, para que comprenda por qué se utilizan ciertos tipos de algoritmos en ciertos tipos de situaciones y cómo se combinan los diferentes tipos de algoritmos para producir criptosistemas completos. Luego, elija una primitiva criptográfica particular que le interese y busque los algoritmos utilizados para implementar esa primitiva. Wikipedia es un buen lugar para comenzar, pero eventualmente querrá continuar leyendo los documentos de origen reales, como el Estándar de cifrado avanzado FIPS-197.

Una vez que comprenda cómo y por qué funcionan los algoritmos existentes, estará preparado para aplicar los mismos principios subyacentes y hacer sus propios ajustes para crear nuevos algoritmos, y luego comenzar a tratar de romperlos.

* Pero no muchos. Tenga mucho cuidado al decidir que su caso está “bien”. Incluyo la condición solo porque conozco exactamente un caso en el que es cierto: implementar el descifrado AES-128 para reproductores multimedia HLS. En este caso, la clave de descifrado ya se transmite “al aire libre” junto con los datos que se descifrarán. Si puede obtener el texto cifrado, también puede obtener la clave. Nunca tuvo la intención de ser seguro, solo para hacer que la recuperación de texto sin formato sea un poco inconveniente para fines de DRM, y los errores en una implementación personalizada que resultan en una filtración de texto sin formato o datos clave no proporcionan información a la que un “atacante” no hubiera tenido acceso a través de mucho canales más directos Si no está creando algo como esto, donde un algoritmo criptográfico resulta haber sido cooptado por algo más que hacer criptografía, entonces no está bien.

No deberías
La regla n. ° 1 en criptografía es “usar estándares bien conocidos, nunca codificar su propio algoritmo”
La razón es muy simple: un algoritmo es seguro solo si ha estado bajo escrutinio durante varios años sin vulnerabilidades. No importa qué tan inteligente sea, su código será inseguro.
La mejor manera de aprender criptografía es comprender los diferentes algoritmos y los ataques comunes, aprender mucho y estará listo para implementar soluciones criptográficas muy buenas.

Puede divertirse mucho si conoce C o C ++, Java, etc. No está escribiendo ningún cifrado estándar de la industria pero quiere probar / verificar algunos de los algoritmos conocidos.

Si escribe su propio algo, hay muchas pruebas de la industria que debe someterse antes de ser aceptado.

More Interesting

¿Necesita experiencia en ingeniería para que los fabricantes construyan un producto?

¿Qué tan rápido puedo recibir fondos para una startup?

Me pidieron que me uniera a una startup aún no fundada. ¿Qué debo hacer si creo en la idea (y sé cómo ejecutarla) pero no creo en las habilidades de los fundadores?

¿Sería una buena idea tener un asociado de Goldman Sachs como asesor de mi startup?

Como fundador de startups sin conexiones, ¿cómo puedo conectarme con mentores, inversores y dueños de negocios amigables?

Quiero comenzar un inicio basado en IOT, ¿dónde debo comenzar?

¿Cuáles son algunas lecturas obligatorias según David S Rose para los aspirantes a empresarios?

Si queremos crear una empresa en la India, ¿cuál es el procedimiento por etapas que se debe adoptar, por ejemplo, una fábrica textil?

¿Cuánto suele compartir un CEO de una pequeña startup con respecto a los planes futuros de la empresa (es decir, recaudación de fondos / producto / estrategia) con los empleados?

¿Cuál es el mejor consejo para un estudiante que quiere iniciar un negocio?

Cómo comenzar a construir una pequeña empresa

¿Cómo puede un recién graduado desarrollarse mejor para convertirse en un empresario exitoso?

Como una startup, financiada o arrancada, ¿cuál ha sido su comercialización mensual gastada en los primeros 12 meses de lanzamiento?

Me ofrecieron dos puestos: un ingeniero de calidad en un gigante muy reconocido de Silicon Valley y un puesto de desarrollador en una startup bien respaldada. ¿Cuál debería elegir?

¿Cuáles son las mejores franquicias para tener este año?