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.
- Cómo iniciar un negocio paralelo
- ¿Qué tipo de negocio tendrá éxito a partir de industrias de pequeña escala con una inversión de 10 mil rupias?
- Quiero unirme a una startup, pero actualmente no tengo experiencia en programación. ¿Qué idioma debo comenzar a aprender mañana para lograr mi objetivo lo antes posible?
- Cómo encontrar talentos no tecnológicos y socios para una startup tecnológica
- ¿La cultura en su inicio cambió después de que se emitió el plan de opciones sobre acciones?
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.