Permítanme tomar una perspectiva diferente a la respuesta (aludida en un par de respuestas). Una buena criptografía requiere dos verdades de alto nivel.
1- el algoritmo mismo resiste los ataques que debilitan la protección proporcionada y,
2- la implementación es correcta.
Para el algoritmo, piense en el administrador de contraseñas de que en realidad solo se validó con los primeros 8 caracteres de la contraseña. Por un breve momento, la gente pensó que era más seguro usar contraseñas más largas hasta que se reveló que el algoritmo real (que intentó mantener en privado) solo usó los primeros 8 caracteres. Eso redujo drásticamente el espacio de ataque y el tuvo que revisar su esquema de protección con contraseña. El mal algoritmo creó una vulnerabilidad fácilmente explotada.
Tenga en cuenta que dije “intenté mantener la privacidad”, los algoritmos de cifrado deberían ser lo suficientemente fuertes como para resistir el escrutinio público. Piensa en una llave y cerradura. El principio de cómo funciona no debilita la protección que ofrece. Es el número de vasos y el número de posiciones de los vasos (implementación) lo que hace que el bloqueo sea difícil de levantar. Los algoritmos criptográficos no le brindan ninguna ventaja a un atacante si el atacante conoce el algoritmo pero no tiene las “claves”. Asumiendo que la implementación es correcta.
- ¿Cuáles son los mitos sobre la seguridad cibernética?
- ¿Cuál es el mejor antivirus gratuito para mi computadora portátil?
- ¿Cuáles son las mejores medidas de seguridad para mi sitio web de comercio electrónico?
- ¿Qué certificaciones eligió Hiren Patel después de la clase 12 para obtener buenos resultados en seguridad cibernética?
- ¿Cuáles son los beneficios de construir aplicaciones descentralizadas con una cadena de bloques?
La implementación correcta es importante porque los desarrolladores de software no siempre entienden el matiz de un algoritmo matemático complejo. Un ejemplo que una vez identifiqué fue un algoritmo que desplazó bits a la derecha. El desarrollador utilizó una operación de turno común. El problema era que era un desplazamiento circular a la derecha, por lo que el bit menos significativo se volvió más significativo y con el número correcto de desplazamientos resultó en el valor original. El algoritmo desarrollado por el matemático requería un relleno izquierdo aleatorio durante la operación. Fácilmente reparado una vez descubierto, pero costoso de descubrir y luego parchear.
La mayoría de las criptomonedas ahora implica matemáticas complejas y no todos los desarrolladores de software están tan bien entrenados. Las revisiones de código y la comprensión profunda son importantes junto con muchas pruebas y validaciones. Si está vendiendo su implementación, necesita alguna forma de demostrar que la implementó correctamente; y si lo estuviera comprando optaría por uno ya examinado y aprobado por alguien como una Agencia de Seguridad Nacional (aunque algunos pueden tener otras opiniones sobre esto; que están fuera del alcance de esta respuesta).