stringtranslate.com

Código KCS 1

En criptografía , PKCS #1 es el primero de una familia de estándares llamados Estándares de criptografía de clave pública (PKCS) , publicados por RSA Laboratories . Proporciona las definiciones básicas y recomendaciones para implementar el algoritmo RSA para criptografía de clave pública . Define las propiedades matemáticas de las claves públicas y privadas, operaciones primitivas para cifrado y firmas, esquemas criptográficos seguros y representaciones de sintaxis ASN.1 relacionadas .

La versión actual es la 2.2 (2012-10-27). En comparación con la 2.1 (2002-06-14), que se volvió a publicar como RFC 3447, la versión 2.2 actualiza la lista de algoritmos de hash permitidos para alinearlos con FIPS 180-4, agregando así SHA-224, SHA-512/224 y SHA-512/256.

Llaves

El estándar PKCS #1 define las definiciones matemáticas y las propiedades que deben tener las claves públicas y privadas RSA. El par de claves tradicional se basa en un módulo, n , que es el producto de dos números primos grandes distintos , p y q , de modo que .

A partir de la versión 2.1, esta definición se generalizó para permitir claves multiprimos, donde el número de primos distintos puede ser dos o más. Cuando se trata de claves multiprimos, los factores primos generalmente se etiquetan como para algún i , de modo que:

para

Para conveniencia de notación, y .

La clave pública RSA se representa como la tupla , donde el entero e es el exponente público.

La clave privada RSA puede tener dos representaciones. La primera forma compacta es la tupla , donde d es el exponente privado. La segunda forma tiene al menos cinco términos , o más para claves multiprimos. Aunque matemáticamente es redundante con la forma compacta, los términos adicionales permiten ciertas optimizaciones computacionales al usar la clave. En particular, el segundo formato permite derivar la clave pública. [1]

Primitivos

La norma define varias operaciones primitivas básicas. Las operaciones primitivas proporcionan las instrucciones fundamentales para convertir las fórmulas matemáticas en algoritmos computables.

Esquemas

Las operaciones primitivas por sí solas no necesariamente proporcionan seguridad. El concepto de un esquema criptográfico consiste en definir algoritmos de nivel superior o usos de las primitivas para lograr determinados objetivos de seguridad.

Existen dos esquemas de cifrado y descifrado:

También existen dos esquemas para tratar las firmas:

Los dos esquemas de firma utilizan métodos de codificación definidos por separado:

Los esquemas de firma son en realidad firmas con apéndice , lo que significa que en lugar de firmar directamente algunos datos de entrada, primero se utiliza una función hash para producir una representación intermedia de los datos y luego se firma el resultado del hash. Esta técnica casi siempre se utiliza con RSA porque la cantidad de datos que se pueden firmar directamente es proporcional al tamaño de las claves; que casi siempre es mucho menor que la cantidad de datos que una aplicación puede querer firmar.

  1. ^ Nota: Se realizó un pequeño cambio en RSAES-OAEP en PKCS #1 versión 2.1, lo que provocó que RSAES-OAEP en PKCS #1 versión 2.0 fuera totalmente incompatible con RSA-OAEP en PKCS #1 versión 2.1 y versión 2.2.

Historial de versiones

Implementaciones

A continuación se muestra una lista de bibliotecas de criptografía que brindan soporte para PKCS#1:

Ataques

Se descubrieron múltiples ataques contra PKCS #1 v1.5, específicamente contra su esquema de relleno. [3] [4]

En 1998, Daniel Bleichenbacher publicó un artículo fundamental sobre lo que se conocería como el ataque de Bleichenbacher (también conocido como "ataque del millón de mensajes"). El ataque utiliza el relleno como un oráculo. [4] [5] PKCS #1 se actualizó posteriormente en la versión 2.0 y se emitieron parches para los usuarios que deseaban seguir utilizando la versión anterior del estándar. [3] Sin embargo, el esquema de relleno vulnerable sigue en uso y ha dado lugar a ataques posteriores:

En 2006, Bleichenbacher presentó un nuevo ataque de falsificación contra el esquema de firma RSASSA-PKCS1-v1_5. [8] Se informaron variantes de este ataque en 2008 [9] y 2014. [10] Esta clase de ataque explota una implementación defectuosa de la verificación de firma; una implementación adecuada no sería vulnerable. [2]

Véase también

Referencias

  1. ^ Ilmari Karonen (27 de octubre de 2017). "¿Puedo obtener una clave pública a partir de una clave privada RSA?". Stack Exchange .
  2. ^ ab Jager, Tibor; Kakvi, Saqib A.; May, Alexander (15 de octubre de 2018). Sobre la seguridad del esquema de firma PKCS#1 v1.5 (PDF) . Segunda Conferencia Internacional sobre Disponibilidad, Confiabilidad y Seguridad (ARES'07). págs. 1195–1208. doi :10.1145/3243734.3243798.
  3. ^ de Jean-Sébastien Coron, Marc Joye, David Naccache y Pascal Paillier (2000). Avances en criptología: EUROCRYPT 2000 (PDF) . Apuntes de clase sobre informática. Vol. 1807. EUROCRYPT . págs. 369–381. doi :10.1007/3-540-45539-6. ISBN . 978-3-540-67517-4.S2CID8447520  .​{{cite book}}: CS1 maint: varios nombres: lista de autores ( enlace )
  4. ^ abc Romain Bardou; Riccardo Focardi; Yusuke Kawamoto; Lorenzo Simionato; Graham Steel; Joe-Kai Tsay (2012). Ataques de oráculos con relleno eficiente en hardware criptográfico. Rr-7944 (informe). INRIA . pág. 19.
  5. ^ RFC  3218 – Prevención del ataque de un millón de mensajes en la sintaxis de los mensajes criptográficos
  6. ^ Green, Matthew (21 de junio de 2012). "Un par de años malos para la industria de tokens criptográficos". Algunas reflexiones sobre ingeniería criptográfica .
  7. ^ Hanno Böck; Juraj Somorovsky; Craig Young. "Ataque ROBOT: el regreso de la amenaza Oracle de Bleichenbacher" . Consultado el 27 de febrero de 2018 .
  8. ^ Tetsuya Izu; Masahiko Takenaka; Takeshi Shimoyama (abril de 2007). "Análisis del ataque de falsificación de Bleichenbacher". Segunda Conferencia Internacional sobre Disponibilidad, Confiabilidad y Seguridad (ARES'07) . IEEE . pp. 1167–1174. doi :10.1109/ARES.2007.38. ISBN . 978-0-7695-2775-8. Número de identificación del sujeto  2459509.
  9. ^ Kuhn, Ulrich; Pyshkin, Andrei; Tews, Erik; Weinmann, Ralf-Philipp (2008): Variantes del ataque de bajo exponente de Bleichenbacher a firmas RSA PKCS#1. SICHERHEIT 2008 – Sicherheit, Schutz und Zuverlässigkeit. Beiträge der 4. Jahrestagung des Fachbereichs Sicherheit der Gesellschaft für Informatik eV (GI). Bonn: Gesellschaft für Informatik e. V.. PISSN 1617-5468. ISBN 978-3-88579-222-2 . págs. 97-109. Artículos de investigación periódicos. Sarrebruck. 2.- 4. Abril 2008 
  10. ^ "Investigación avanzada sobre amenazas | Intel Security". 1 de abril de 2015. Archivado desde el original el 1 de abril de 2015.

Enlaces externos