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

35

Recientemente generé una nueva clave SSH en el formato ed25519. La clave pública solo tiene 69 bytes, mientras que mi antigua clave RSA tiene 373 bytes.

Desde mi percepción, ed25519 es el formato más reciente y seguro.

Entonces, ¿por qué ya no es mejor aquí?

    
pregunta Alex 24.09.2015 - 16:20
fuente

2 respuestas

56

No, ya no es mejor.

Déjame explicarte. En criptografía simétrica , las claves son solo un montón 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 que encuentra la correcta. Si la clave tiene n bits, entonces hay 2 n posibles claves, y el atacante, en promedio, encontrará la correcta después de intentar la mitad de ellos, es decir, 2 n -1 . Las llaves más largas hacen así que la fuerza bruta se vuelva más dura; en ese caso, cuanto más tiempo sea mejor.

(Tenga en cuenta que hay un límite para eso; cuando las claves son lo suficientemente largas 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. Entonces, para las claves simétricas, más largo es mejor hasta que sean lo suficientemente largos, en cuyo punto más largo es solo 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 de la clave pública , sino la de la clave privada , ya que lo que el atacante desea es la privada. clave, 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 se realiza correctamente factorizando el módulo. Factorización de enteros es un problema muy estudiado; 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 2 110 o, por lo tanto, operaciones elementales.

Para las claves EdDSA, la clave pública es un punto P en una curva elíptica, de manera que P = xG donde x es la clave privada (un entero de 256 bits) y G es un punto de curva convencional. El algoritmo más conocido para recuperar x de P y G requiere aproximadamente 2 128 operaciones elementales, es decir, más que para una clave RSA de 2048 bits. En general, para romper una clave pública de curva elíptica n -bit, el esfuerzo es 2 n / 2 .

Romper cualquiera de las teclas es mucho más de lo que es posible con la tecnología existente o previsible. Pero en 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.

    
respondido por el Tom Leek 24.09.2015 - 16:37
fuente
6

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

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

Para aquellos que realmente quieren entender la "magia" de EC (pero todavía quieren evitar enamorarse de las matemáticas) y ser capaces de entender: "por qué EC puede administrar un cifrado más fuerte que RSA con claves mucho más pequeñas" , - Recomiendo leer el artículo completo en arstechnica.com " Un manual relativamente fácil de entender sobre la criptografía de curva elíptica "

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

BTW,extractointeresantesobreEC:

  

Puedecalcularcuántaenergíasenecesitapararomperuncriptográfico  Algoritmoycompáraloconcuántaaguapodríaherviresaenergía.  Esteesuntipodehuelladecarbonocriptográfica.Porestamedida,  romperunaclaveRSAde228bitsrequieremenosenergíadelaquesenecesitaparahervir  Unacucharaditadeagua.Comparativamente,rompiendounacurvaelípticade228bits  claverequieresuficienteenergíaparahervirtodaelaguaenlatierra.Paraesto  niveldeseguridadconRSA,necesitaríaunaclavecon2,380bits.

Paraaquellos,quenoquierencavarinternosdeECbajoelcapó,RecomiendoalmenosleeryseguirunresumenprácticobastantebuenosobreelcifradoenSSHquevalgalapenadedicartiempoaleerlo.Elenlaceestáaquí: secure-secure-shell

Aquí están las soluciones listas para copiar / pegar (proporcionadas por la comunidad de github) para varios sistemas operativos: WiKi de Secure-Secure-Shell (pero te recomiendo leer el artículo anterior en github antes de ir allí)

Respuesta anterior:

  

P: "La clave pública solo tiene 69 bytes de largo, mientras que mi antigua clave RSA es 373   bytes Entonces, ¿por qué ya no es mejor aquí? "

Además de la explicación de Tom "por qué las teclas son más cortas y al menos igualmente seguras", según el documento original de los que crearon ed25519 desde aquí: enlace :

Además de las teclas cortas de ed25519 "igualmente seguras" están "internamente" comprimidas . La clave ed25519 sin comprimir sería casi dos veces más larga.

P.S.

Para evitar la confusión o la mala interpretación de la compresión de puntos utilizada en ed25519, es NO una 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 simple de la compresión de puntos y por el enlace que describe compresión de puntos

Referencia del documento anterior (página # 2):

  
  • teclas pequeñas. Las claves públicas consumen solo 32 bytes. Los tiempos de compresión y descompresión se incluyen de nuevo.
  •   
    
respondido por el Alex 08.04.2016 - 08:50
fuente

Lea otras preguntas en las etiquetas