Significado de la diferencia entre DSA y RSA en la velocidad de verificación de firma

3

He ejecutado openssl speed y la salida en mi CPU para el tamaño de clave DSA más largo disponible, que es de 2048 bits:

                      sign      verify    sign/s    verify/s
rsa 2048 bits    0.029185s   0.000799s      34.3      1252.3
dsa 2048 bits    0.007979s   0.009523s     125.3       105.0

Para ser honesto, esperaba una mayor cantidad de tiempo para verificar las claves, ya que las personas a menudo comparan el uso de estos dos algoritmos que dan el tiempo de verificación de claves como un argumento para usar RSA, porque "usted genera (firma) el clave una vez, pero los usuarios finales lo verifican con más frecuencia '.

Debo faltar algo, porque como la clave se verifica en una fracción de segundo, no puedo ver una razón para decir que RSA es mejor, si un usuario simplemente verifica la clave un par de veces al día cuando lee correos electrónicos o programas de descarga.

¿Hay alguna otra razón por la que la velocidad de verificación sea significativa o me esté faltando algo más?

    
pregunta James Pond 21.08.2015 - 08:53
fuente

2 respuestas

4

No, no te estás perdiendo nada. Los procesadores actuales para computadoras de escritorio y portátiles son ridículamente rápidos. OpenSSL es una aplicación nativa que puede hacer la mayor parte de eso.

En general, la velocidad de la CPU en las computadoras portátiles no es un gran problema. Por supuesto, puede ser un problema en los dispositivos integrados. O en idiomas de nivel superior. O cuando la latencia es muy importante (por ejemplo, la autenticación de muchas conexiones TLS). Tenga en cuenta que normalmente no necesita verificar una respuesta de desafío, también debe verificar una cadena de certificados. Así que hay muchas razones por las que la velocidad de verificación vuelve a ser importante de nuevo.

En general, es mucho mejor enfocarse primero en la seguridad y luego realizar optimizaciones. Tener un diseño bueno y flexible debería permitir cualquier algoritmo de generación de firmas. Si alguien le dice que no use DSA debido a problemas de velocidad para claves de 2048 bits sin el conocimiento del sistema de tiempo de ejecución, cuestionaría seriamente su nivel de experiencia.

Es como el administrador que te dice que no uses new en los métodos de tu implementación de Java toString porque podría ralentizar la aplicación.

Tenga en cuenta que las claves de 2048 bits están empezando a ser demasiado pequeñas para la comodidad de las aplicaciones que requieren alta seguridad. Si utiliza, digamos, las claves 3Ki, el rendimiento se se reducirá (aunque los algoritmos que utilizan la generación de firmas RSA serán los más afectados).

Puede haber otras razones para elegir RSA sobre DSA, por supuesto . Con RSA, tampoco es necesario que conozca estos molestos parámetros de dominio y tamaños de subclaves. RSA es bastante fácil de entender y usar en comparación con DSA y ECDSA. Entonces, en ese sentido, podría preguntarse por qué no debería usar RSA.

    
respondido por el Maarten Bodewes 21.08.2015 - 12:03
fuente
0
  

Para ser honesto, esperaba una mayor cantidad de tiempo para verificar el   llaves

1:

Digamos que el cliente es usted y el servidor es este sitio web:

ElprocesoinvolucradoantesdeobtenerlarespuestafinalparapoderusarestesitiowebobedeceaunainfraestructuraPKIdondeelprotocolodeprotocolodeenlaceTLS(dondeRSA,DSA,AES...sepuedeevolucionar)simplificadoesalgocomo:

Sabiendoquesuaccesoaquísolosepermitedespuésdequesecompleteelpaso9,puedeimaginarquetienesuertedequeelprocesodeverificacióndeclavessehayaproducidoenuntiempotancortoquenisiquierasiente.

2:

LosautoresdeOpenSSLdesarrollaronunasuitedeevaluacióncomparativadirectamenteenelbinarioopensslquepuedeusaratravésdelcomandospeed.Siverificasu manual , leerá en su descripción:

  

Este comando se utiliza para probar el rendimiento de los dispositivos criptográficos.   algoritmos.

Comprueba cuántas operaciones puede realizar en un tiempo determinado (cuántos bytes se pueden realizar por segundo), pero la salida que obtuvo depende enteramente en el hardware en el que se ejecuta el comando .

Mencioné esto para hacerte saber que has estado un poco confundido: el rendimiento de RSA y DSA que pruebes con la velocidad de openssl no refleja su seguridad o necesariamente cuál es mejor que la otra por las razones que expliqué. usted.

Creo que esto responde plenamente a tu pregunta. Ahora, si está interesado en comparar estos 2 algoritmos, puede leer la respuesta aceptada de esta pregunta: RSA frente a DSA para claves de autenticación SSH

    
respondido por el user45139 21.08.2015 - 12:02
fuente

Lea otras preguntas en las etiquetas