No todas las curvas elípticas es la misma: a través de ECC de seguridad

 Mi propia ECC de seguridad y análisis de la curva de selección

vn9jna1BdgrzDCYNBJHi09q09q.jpg

Criptográficos de cifrado uso más moderno de curva elíptica (ECC) que, con un tamaño de clave más pequeñas y reducir el poder de cómputo, dar fuerza de seguridad equivalente al tradicional sistema de cifrado conocido como DH (Diffie-Hellman) o RSA (Rivest, Shamir y Adleman).

No todo el mundo sabe que el cifrado ECC se ha seleccionado para todas las aplicaciones de cifrado en el futuro y que, incluso TLS / SSL (cifrado que se utiliza para sujetar la tela) se está moviendo a la ECC.

He encontrado un montón de los llamados "productos de cifrado de propiedad", que abandonados RSA y DH va con alternativas de ECC, que tienden al uso arbitrario tamaño de la clave ECC bits sin especificar qué tipo de cifrado ECC acostumbrarse.

Sin embargo, hay un montón de confusión en torno a las curvas elípticas, con un montón de nombres diferentes y el tamaño de clave haciendo difícil para un no-criptográficamente experiencia del usuario para hacer su propia figura en la evaluación de algunas cosas de cifrado.

Debido a la confusión tan difundida que decidí hacer mi propio análisis para averiguar cuáles son las mejores curvas de ECC de encriptación y el tamaño de la tecla derecha ECC para su uso.

Este análisis le gustaría ofrecer una opción de la industria basada en la seguridad entre los diferentes curvas y longitudes de clave, dejando a las consideraciones de análisis matemáticos y cifrado que ya se haya hecho durante los años, un resumen de las distintas opciones tomadas en varias normas y protocolos de seguridad.

En primer lugar la conclusión.

Desde mi análisis sólo las siguientes curvas de ECC deben ser considerados para su uso en sistemas de cifrado, porque son el único seleccionado entre las diferentes autoridades (ANSI, la NSA, el SAG, el NIST, ECC Brainpool), diferentes normas de protocolo de seguridad (IPSec, OpenPGP, ZRTP, Kerberos, SSL / TLS) y el único juego NSA Suite B (requisitos de seguridad estándar de facto para el medio ambiente también militar de la OTAN):

  • Curva elíptica del primer 256 bits - P-256
  • Curva elíptica del primer 384 bits - P-384

con la opción, sólo por muy paranoico que quiere conseguir algo de tamaño más fundamental, todavía no se consideran útiles:

  • Curva elíptica del primer 521 bits - P-521

Me gustaría decir que las curvas de Koblitz se debe evitar, en cualquier tamaño de la clave (163/283/409/571), ya que no tiene garantía suficiente en la actividad analítica de cifrado y la eficacia con que son los siguientes:

  • No forma parte de la NSA Suite B de selección de criptografía
  • No forma parte de la CEC de selección Brainpool
  • No es parte del ANSI X9.62 selección
  • No forma parte de la selección OpenPGP extensión de ECC
  • No forma parte de la extensión de Kerberos para la selección de la curva de ECC

Invito al lector a seguir a través de mi análisis para comprender los fundamentos que pudieran ser entendidas incluso sin conocimientos técnicos profundos, pero al menos con una buena base tecnológica una cierta poco básico de la criptografía.

 Aquí vamos con el análisis 
 

Mi objetivo es hacer un análisis sobre qué / cómo el científico abierto y la seguridad de la comunidad elige ECC sistema de cifrado para su uso en los protocolos de seguridad y estándares definidos por el IETF RFC (los que definen las normas de Internet de una manera abierta y revisada por pares).

A continuación una serie de RFC Introducción a ECC en el sistema existente que se analizaron para entender lo que es mejor usar y lo que es mejor excluir:

  • RFC5639 : ECC Brainpool Las curvas de calibración y generación de curvas
  • RFC4869 : NSA Suite B Suites de cifrado para IPsec
  • RFC5430 : NSA Suite B el perfil de Transport Layer Security (TLS)
  • RFC5008 : NSA Suite B en en el Mail Extensions Secure / Multipurpose Internet (S / MIME)
  • RFC3766 : Fortalezas Determinar para las claves públicas utilizado para intercambiar claves simétricas
  • RFC5349 : criptografía de curva elíptica (ECC) Apoyo a la criptografía de clave pública para la autenticación inicial en Kerberos (PKINIT)
  • RFC4492 : criptografía de curva elíptica (ECC) Suites cifrado Transport Layer Security (TLS)
  • ZRTP encriptación de voz por Philip Zimmermann ECC curva de
  • ECC en OpenPGP (proyecto d la balsa jivsov-OpenPGP-ECC-06 )
  • ECC curvas seleccionadas por Microsoft para la tarjeta inteligente de inicio de sesión de Kerberos

Vamos a utilizar la opción elegida por el científico la definición de protocolos de seguridad en Internet para hacer parte de nuestra evaluación.
Además hay que entender que la selección de curva viene de las diferentes autoridades que han hecho su propia selección de las curvas con el fin de decirle a la industria de lo que debe utilizar y qué omitir:

Vamos a utilizar la opción elegida por el científico que define los requisitos de seguridad en los organismos de normalización a hacer parte de nuestra evaluación.
Además, algo que la mayoría de la gente no lo sabe, pero que es muy relevante para nuestro análisis, es que hay diferentes tipos de ECC curva de la criptografía y su "tamaño" es diferente dependiendo del tipo de curva:

  • ECC curvas sobre el campo Primer (a menudo denominado como curva elíptica y está representado por P-tamaño de una clave)
  • ECC curvas de más de campo binario (a menudo referida como la curva Koblitz y representada por K-tamaño de una clave)

Dada una fuerza de seguridad de equivalencia de la curva elíptica y la curva de Kobliz tienen un tamaño de clave diferente, por ejemplo, cuando leemos ECC 571 nos estamos refiriendo a la curva Koblitz con una fuerza equivalente a 521 ECC curva de Gobierno.

Una comparación de fuerzas entre las curvas elípticas y curvas Kotbliz se presentan a continuación (a partir de Mikey ECC Proyecto Internet ):

 | Koblitz | CEC | DH / DSA / RSA
 | 163 | 192 | 1024
 | 283 | 256 | 3072
 | 409 | 384 | 7680
 | 571 | 521 ​​| 15360

A continuación hay una lista comparativa de las curvas seleccionadas por todos las diversas entidades y sus respectivos nombres (de IETF RFC4492 para el uso de ECC para TLS ):

 Nombres de curva elegidos por las organizaciones de estándares diferentes
 ------------ + --------------- + -------------
 SECG | ANSI X9.62 | NIST
 ------------ + --------------- + -------------
 sect163k1 | | NIST K-163
 sect163r1 | |
 sect163r2 | | NIST B-163
 sect193r1 | |
 sect193r2 | |
 sect233k1 | | NIST K-233
 sect233r1 | | NIST B-233
 sect239k1 | |
 sect283k1 | | NIST K-283
 sect283r1 | | NIST B-283
 sect409k1 | | NIST K-409
 sect409r1 | | NIST B-409
 sect571k1 | | NIST K-571
 sect571r1 | | NIST B-571
 secp160k1 | |
 secp160r1 | |
 secp160r2 | |
 secp192k1 | |
 secp192r1 | prime192v1 | NIST P-192
 secp224k1 | |
 secp224r1 |​​ | NIST P-224
 secp256k1 | |
 secp256r1 | prime256v1 | NIST P-256
 secp384r1 | | NIST P-384
 secp521r1 | | NIST P-521
 ------------ + --------------- + -------------

Lo que aparece inmediatamente es que sólo hay dos curvas seleccionadas por todas las autoridades, y que no es de carácter general el vertido de las curvas de Koblitz ANSI.The sólo de común acuerdo entre las autoridades de los 3 son los dos siguientes la curva de ECC:

  • secp192r1 / prime192v1 / NIST P-192
  • secp256r1 / prime256v1 / NIST P-256

De los de selección de la curva de la ECC para TLS RFC5430 completamente saltado curvas Koblitz y seleccionados para su uso solamente:

  • P-256, P-384, P-521

La ECC Brainpool completamente saltado curvas Koblitz y seleccionado para el uso de las siguientes curvas ECC:

  • P-160, P-192, P-224, P-256, P-320, P-384, P-512 (que es el particular sólo porque no es P-521, pero P 512, la única llave de tamaño que se refiere al ECC Brainpool. TNX Ian Simons de Atenea SCS )

El proyecto de Internet OpenPGP para el uso de ECC en PGP d balsa jivsov OpenPGP-ECC-06 completamente saltado curvas Koblitz y seleccionado los siguientes curvas ECC

  • P-256, P-384, P-521

La extensión del protocolo Kerberos para el uso de CEC, se define en RFC5349 y definido por Microsoft para inicio de sesión de tarjeta inteligente completamente saltado curvas Koblitz y seleccionó a los siguientes curvas ECC:

  • P-256, P-384, P-521

Por lo tanto, parece claro que la correcta selección de la CEC es para P-256, P 384 y P-521-mientras que la curva Koblitz se han omitido para el uso de Top Secret y de cualquier protocolo de seguridad sensible (IPSec, OpenPGP, ZRTP, Kerberos, SSL / TLS).

¿Por qué hice este análisis?

He hecho este análisis a raíz de una discusión que tuve con respecto a ciertos productos de cifrado de voz, todas basadas en protocolos personalizados y de propiedad, que están utilizando Diffie-Hellman de curva elíptica 571 bits / ECDH 571/571 bits ECDH / Koblitz bits de 571.
Todos ellos están utilizando el K-571 que, como se ha descrito antes, se ha eliminado de todas las condiciones de seguridad y protocolos sensibles y ser yo mismo un diseñador de material cifrado de voz, creo que su elección de cifrado no es absolutamente la mejor opción de seguridad.
Probablemente se ha hecho sólo para fines de marketing, ya que K-571 (Koblitz curva) parece más fuerte que el P-521 (curva elíptica en base al número de emergencia). Si usted tiene "más poco" sus chicos de marketing puede afirmar que es "más seguro". Curva elíptica Koblitz son más rápidos que el secreto de la parte superior habilitado primer curva elíptica y así dar el gerente de producto de la oportunidad de ofrecer "algo más" en su propio producto, manteniendo el rápido intercambio de claves.

Es una cuestión de elección filosófica.

Prefiero seguir la tendencia de la comunidad científica con la humildad de no considerarme un experto en criptografía, más conocedor de la seguridad global y la propia comunidad científica.

Yo prefiero en vez de usar algoritmos únicos que están aprobados para su uso en entornos de alta sensibilidad (clasificación de alto secreto), que han sido seleccionados por todas las autoridades y grupos de trabajo el análisis de algoritmos de cifrado existentes fuera de allí y que representan la elección de casi todos los estándar de seguridad protocolos (IPSec, OpenPGP, ZRTP, Kerberos, SSL / TLS, etc.)
Yo prefiero contar la cantidad de cerebros que trabajan en la criptografía que utiliza, que el cheque que es realmente seguro, que evalúan si hay alguna debilidad.

El número de Brais en el trabajo ampliamente difundido Crypto son del orden de magnitud mayor que el número de cerebros trabajando en cifrado utilizados por sólo pocas personas (como la curva de Koblitz).
Así que no estoy demonizando a quienes utilizan ECDH 571 utilizando la curva de Koblitz, pero sin duda puedo afirmar que no toma la mejor opción en términos de seguridad y que los profesionales de la seguridad que realizan una evaluación comparativa de seguridad se considera el hecho de que la curva elíptica Diffie-Hellman 571 poco hecho con la curva Koblitz no está ampliamente difundida, es objeto de dumping de los protocolos de seguridad estándar y no está certificado para el uso de alto secreto.

Parte

3 comentarios

  • 1
    Badmash
    23 Octubre 2010 - 24:32 | Permalink

    Me acabo de inscribir a sus blogs rss feed. ¿Va a publicar más sobre este tema?

  • 2
    Ian Simmons
    27 de octubre 2010 - 12:57 am | Permalink

    Creo que hay un error en este artículo. ECC ECC Brainpool especifica un FP de 512-bit clave no de 521 bits. Ver RFC5639 sección 2.2. Requisitos de bala Técnica 1.

  • 3
    26 de mayo 2011 - 10:46 am | Permalink

    Después de buscar en RFC5639 y el sitio Brainpool, estoy bastante seguro de que los Brainpool P-curvas no son los mismos que los EE, X9.62, el NIST. Están utilizando una metodología muy similar, pero optó por generar nuevas curvas con las mismas dimensiones (a excepción de 512 bits en lugar de 521 bits). Ellos citan una mayor seguridad, con un valor de 'p' que no tiene forma especial (para evitar la aritmética rápida patentado) y una desconfianza general de las curvas del NIST (no dice explícitamente) que no tienen una explicación para los diferentes tipos de semillas utilizadas.

  • Deja un comentario

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

    *

    Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>