¿De qué manera la seguridad de un algoritmo de encriptación depende de factorizar números grandes?
La frase que falta es "clave pública", como en "¿Cómo es la seguridad del algoritmo de cifrado de clave pública ..."
En la criptografía moderna hay dos categorías principales de sistemas de cifrado, simétrico (clave secreta) y clave pública (que usa un par de claves públicas/privadas).
Dentro de cada categoría, encontrará los tamaños de clave relativamente cerca. Para los sistemas de clave pública como RSA y DH/DSA, ambos utilizados en el cifrado de correo electrónico OpenPGP, los tamaños de clave comunes son 1024 bits y más grandes en estos días (principios de 2010). Esto tiene que ver con los requisitos matemáticos de las claves adecuadas utilizadas para cifrar y descifrar mensajes. Para RSA, en pocas palabras, es mucho más fácil generar un factor de dos números primos grandes aleatorios y hacer multiplicaciones con ellos, en comparación con factorizar un número muy grande que no tiene factores pequeños. Como ha descubierto el factoring de números muy grandes es el "problema" o enfoque necesario para romper RSA a través de la fuerza bruta.
Diffie-Hellman/Algoritmo de firma digital (DH/DSA) se basan en un problema matemático diferente, el cálculo de logaritmos discretos.
Debido a las propiedades de los pares de claves públicas y privadas, el espacio de búsqueda se limita a los factores de grandes números primos, que se vuelve muy escasa, así que tiene sentido tratar de ser ahora más inteligente entonces simplemente tratando de factor de cada número muy grande.
Mientras que con sistemas de cifrado simétrico como AES, RC6, RC4, Twofish, DES y Triple-DES, estos algoritmos utilizan una clave aleatoria de una longitud de bits dado. Cualquier clave aleatoria no trivial (es decir, 0x000 ... 000 puede ser una elección de clave incorrecta) es adecuada. Entonces, estos sistemas, si no hay ataque contra el algoritmo en sí, simplemente puede buscar fuerza bruta a través del espacio clave (es decir, pruebe todas las 2^256 claves posibles) para descifrar un mensaje sin la clave secreta. Como cualquier tecla es adecuada, la densidad de las teclas es 2^256.
Estoy haciendo caso omiso de Quantum Computing (teórico y práctico), principalmente porque a) No puedo dar una respuesta sólida, yb) representa un gran cambio de paradigma que convierte muchas matemáticas aplicadas y ciencias de la computación de la complejidad computacional en su cabeza, esa comprensión básica sigue siendo un objetivo en movimiento. Ah, y la mayoría de mis enemigos aún no tienen una computadora cuántica. :)
Espero que esto explique la diferencia general entre los dos tipos de sistemas de cifrado, como RSA y AES.
Recuadro: La criptografía es un tema rico y complejo, donde los conceptos básicos pueden ser bastante simple de entender, e incluso escribir una aplicación ingenua ("libro de texto"), las complejas sutilezas de una aplicación segura hace que sea mejor para los programadores que no son expertos en criptografía para usar cripto-sistemas de alto nivel, incluido el uso de protocolos estándar bien conocidos para mejorar sus posibilidades de que la criptografía de un sistema no sea la falla explotable en un sistema.
No tiene nada que ver con AES. –
También, para aquellos que están votando para cerrar. Los algoritmos de encriptación y la criptografía es un campo sólido de la informática. Incluso si esto no se relaciona con su programación, no significa que no se relacione con la programación. – Mithrax
El cifrado es de hecho un tema de programación, pero esta es una pregunta acerca de la teoría de números. – dmckee