Saltar al contenido

¿Es malo que mi clave ed25519 sea tan corta en comparación con una clave RSA?

Solución:

No, ya no es mejor.

Dejame explicar. En criptografía simétrica, las claves son solo grupos de bits y todas las secuencias de bits son claves válidas. No tienen estructura interna. Siempre que utilice algoritmos decentes, el mejor ataque posible a una clave para el cifrado simétrico es fuerza bruta: el atacante intenta todas las claves posibles hasta encontrar la correcta. Si la llave tiene norte bits, entonces hay 2norte claves posibles, y el atacante, en promedio, encontrará la correcta después de probar la mitad de ellas, es decir, 2norte-1. Las teclas más largas hacen que la fuerza bruta sea más difícil; en ese caso, cuanto más tiempo, mejor.

(Tenga en cuenta que hay un límite para eso; cuando las claves son lo suficientemente largas como para que la fuerza bruta ya no sea factible, aumentar la longitud de la clave no hace que las cosas sean “más seguras” de ninguna manera significativa. Por lo tanto, para claves simétricas, más tiempo es mejor hasta son lo suficientemente largos, en cuyo punto más largo es simplemente más largo).

RSA y EdDSA se relacionan con criptografía asimétrica donde las cosas son completamente diferentes. Una clave para la criptografía asimétrica es un objeto matemático que tiene una estructura interna específica; Romper la clave consiste en desentrañar esa estructura, y se puede hacer de manera mucho más eficiente que probar todas las claves privadas posibles. Tenga en cuenta los dos puntos:

  • Contra la fuerza bruta, lo que importa no es la longitud del público clave, pero la de la privado clave, ya que lo que quiere el atacante es la clave privada, no la clave pública.

  • La fuerza bruta no es el ataque más eficaz contra las claves utilizadas en la criptografía asimétrica.

Para las claves RSA, el ataque tiene éxito al factorizar el módulo. La factorización de enteros es un problema que se ha estudiado durante mucho tiempo; con el algoritmo más conocido, romper una clave RSA de 2048 bits (es decir, una clave pública RSA cuyo módulo es un entero de 2048 bits) requiere aproximadamente 2110 más o menos operaciones elementales.

Para las claves EdDSA, la clave pública es un punto PAG en una curva elíptica, tal que PAG = xG dónde X es la clave privada (un entero de 256 bits) y GRAMO es un punto de curva convencional. El algoritmo más conocido para recuperar X de PAG y GRAMO requiere alrededor de 2128 operaciones elementales, es decir, más que para una clave RSA de 2048 bits. En general, para romper un norte-bit clave pública de curva elíptica, el esfuerzo es 2norte/ 2.

Romper cualquiera de las claves está mucho más allá de lo que es factible con la tecnología existente o previsible. Pero desde un punto de vista “académico”, la clave EdDSA es algo más fuerte que la clave RSA; Además, las curvas elípticas le dan más seguridad por bit (técnicamente, decimos que la factorización de enteros es un problema sub-exponencial).

Consulte este sitio para obtener más información sobre ese tema.

No estoy satisfecho con mi respuesta anterior que lleva a una suposición confusa sobre el método de compresión utilizado en ed25519, así que intentaré una vez más para aquellos que no quieran saltar a las matemáticas EC (Curva elíptica más adelante) para poder entender por qué Las claves EC son tan cortas para compararlas con las claves RSA.

Dado que mi inglés está lejos de ser perfecto, será mejor que deje aquí, en mi humilde opinión, enlaces bastante buenos a este tema.

Para aquellos que realmente quieren entender la “magia” de EC (pero aún quieren evitar enamorarse profundamente de las matemáticas) y poder entender – “por qué EC puede administrar un cifrado más fuerte que RSA utilizando claves mucho más pequeñas”, – I aconsejar leer el artículo completo en arstechnica.com “Un manual relativamente fácil de entender sobre criptografía de curva elíptica”

El autor ilustra la esencia de la EC con imágenes que ayudan a comprender el concepto en unos pocos pasos.

CE

Por cierto, un extracto interesante sobre EC:

Puede calcular cuánta energía se necesita para romper un algoritmo criptográfico y compararlo con la cantidad de agua que esa energía podría hervir. Esta es una especie de huella de carbono criptográfica. Según esta medida, romper una clave RSA de 228 bits requiere menos energía de la que se necesita para hervir una cucharadita de agua. Comparativamente, romper una clave de curva elíptica de 228 bits requiere suficiente energía para hervir toda el agua de la tierra. Para este nivel de seguridad con RSA, necesitaría una clave con 2380 bits.

Para aquellos que no quieran profundizar en los aspectos internos de EC, les aconsejo que al menos lean y sigan un resumen práctico bastante bueno sobre el cifrado en SSH que vale la pena dedicar tiempo a leer eso. El enlace está aquí: secure-secure-shell

Las soluciones listas para copiar / pegar (proporcionadas por la comunidad de github) para varios sistemas operativos están aquí: WiKi de Secure-Secure-Shell (pero le recomiendo que lea el artículo anterior sobre github antes de ir allí)


Respuesta anterior:

P: “La clave pública tiene solo 69 bytes de longitud, mientras que mi clave RSA anterior tiene 373 bytes. Entonces, ¿por qué ya no es mejor aquí?”

Además de la explicación de Tom “por qué las claves son más cortas y al menos igualmente seguras”, según el documento original de quienes crearon ed25519 desde aquí: http://ed25519.cr.yp.to/ed25519-20110926.pdf:

Además de “igualmente seguras”, las claves cortas de ed25519 son “internamente” comprimido. La clave ed25519 sin comprimir sería casi dos veces más larga.

PD

Para evitar confusiones o malas interpretaciones de la compresión de puntos utilizada en ed25519, es NO compresión regular como en un archivo zip (!!!). Gracias a @diagprov por ayudar a corregir mi respuesta en los comentarios con una explicación buena y sencilla de la compresión de puntos y por el enlace que describe la compresión de puntos.

Referencia del documento anterior (página 2):

  • Pequeñas llaves. Las claves públicas consumen solo 32 bytes. Se incluyen nuevamente los tiempos de compresión y descompresión.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *