Si uso un algoritmo de cifrado no tan bueno que inventé dentro de uno real, ¿cuánto más seguros están juntos?

Tengo que estar en desacuerdo con las otras respuestas aquí:

Una cadena de encriptación (es decir: encriptar el resultado de otra encriptación) es al menos tan fuerte como su eslabón más fuerte, al contrario de las cadenas del mundo real.

Para ilustrar eso, imagine un algoritmo que toma datos y los asigna de forma reversible y pseudoaleatoria (al menos a los observadores sin la clave) a 0 … 1 en decimales.

Ahora imagine que agrega otro cifrado horriblemente roto: este solo agrega 1 a todas sus entradas. (piense en ello como el “generador de números aleatorios” de Dilbert o XKCD)

¿Qué pasa con la salida de tal cadena? Será pseudoaleatoriamente entre 1 … 2 en lugar de 0 … 1, pero sigue siendo aleatorio sin la clave, y eso es lo que importa cuando se trata de algoritmos criptográficos: sin la clave, su salida debería verse lo más aleatoriamente posible para evitar conjeturas en El contenido del texto sin formato.

No obstante: nunca desarrolle su propio algoritmo criptográfico. Hay toneladas de algoritmos bien pensados ​​y bien implementados para cualquier propósito posible. Suponiendo cifrado simétrico: simplemente encadene el AES (originalmente llamado Rijindael) con los otros 2 finalistas del concurso AES.

Estoy de acuerdo con Gregory. Siempre y cuando conserve el buen algoritmo ‘real’, cualquier algoritmo de cifrado de su propia creación que se aplique al texto antes o después del buen algoritmo no puede empeorarlo, suponiendo que realmente restaure los datos originales después del cifrado / descifrado

De hecho, me parece que usar un algoritmo de cifrado bueno conocido públicamente encadenado con un algoritmo desconocido, aunque probablemente más débil, ahora significa que un atacante tiene que romper un algoritmo en el que puede tener que trabajar para encontrar el algoritmo, como lo hace No lo se. Presumiblemente, el algoritmo débil también tiene una clave, que puede ralentizar aún más al atacante.

El uso de algoritmos ‘secretos’ está mal visto porque es difícil mantener el algoritmo en secreto y porque un algoritmo abierto puede ser examinado por muchos para encontrar puntos débiles. Pero en la medida en que puede mantenerlo en secreto, ha mejorado la protección cuando la combina con un algoritmo fuerte bien conocido. Un atacante cuyo algoritmo ‘descifrado’ y ‘real’ se ralentizará con el cifrado adicional y puede decidir atacar en otro lugar y dejar sus datos en paz.

En realidad, incluso si usas uno bueno dentro de uno bueno, tampoco es muy útil 🙂

Por qué hay DES y 3DES pero no 2DES o por qué no podemos usar AES-128 dos veces y esperar que tenga la misma fuerza que AES-256

Este artículo explica bastante bien

Ataque de encuentro en el medio – Wikipedia

La regla uno de las criptomonedas es no rodar su propia criptografía.

Si combina dos criptografías diferentes, puede terminar con un resultado más débil que cualquiera. Ahora, esto es poco probable, pero es posible. Lo más probable es que también termines con un resultado entre los dos: no tan bueno como si hubieras usado la mejor opción solo. Existe la posibilidad de que termines con algo un poco más fuerte. Pero la posible ganancia minúscula nunca se considera que valga la posible pérdida de seguridad, hasta que los expertos la hayan estudiado a fondo.

More Interesting

Cómo hacer un bot de chat usando Python implementando algoritmos de aprendizaje automático (como SVM, Naive Bayes, Random Forest, etc.)

¿Cómo podemos verificar de forma recursiva si una lista vinculada individualmente es un palíndromo?

¿Cuál es la mejor manera de usar la notación O grande para determinar la tasa de crecimiento del tiempo de ejecución de un algoritmo?

Dada una matriz con 1s y 0s, necesitamos crear una matriz tal que a [i] [j] = 1, si solo cada elemento en la fila i y columna j es 1, de lo contrario 0. Tenemos que usar un espacio constante y tener Una óptima complejidad temporal. ¿Cuáles son algunas posibles soluciones?

¿Para qué se usan realmente los algoritmos?

Cómo dividir una matriz en 2 nuevas variables de matriz y encontrar el promedio de ellas

Cómo evitar buscar directamente una solución al resolver problemas de algoritmos

¿Qué son los algoritmos gráficos?

Dado que muchos algoritmos de aprendizaje automático se ejecutan en GPU, ¿Julia sigue siendo una buena opción para eso?

En las estructuras de datos, ¿cuál puede ser un ejemplo general utilizado para explicar el peor de los casos, los tiempos de ejecución amortizados y esperados?

¿Cómo se puede usar la máquina épsilon para realizar cálculos precisos de coma flotante?

¿Qué debe saber todo programador sobre Lisp?

¿Es necesario aprender Java antes de comenzar el curso de Estructuras de datos y Algoritmos en el IIT en Delhi?

Cómo buscar todas las combinaciones posibles en una lista

¿Qué hace que resolver CAPTCHA sea tan difícil?