Las tablas a continuación comparan bibliotecas de criptografía que tratan con algoritmos de criptografía y tienen llamadas de función de interfaz de programación de aplicaciones ( API ) para cada una de las características compatibles.
Bibliotecas de criptografía
Norma FIPS 140
Esta tabla indica si una biblioteca de criptografía proporciona los requisitos técnicos para FIPS 140 y el estado de su certificación FIPS 140 (según la búsqueda CMVP del NIST , la lista de módulos en proceso y la lista de implementación bajo prueba).
- ^ Crypto++ recibió tres validaciones FIPS 140 entre 2003 y 2008. En 2016, el NIST trasladó a Crypto++ a la Lista de Validación Histórica.
- ^ Si bien GnuTLS no está validado según FIPS 140-2 por GnuTLS.org, existen validaciones para versiones de Amazon Web Services Inc., Oracle Corporation, Red Hat Inc. y SUSE LLC.
- ^ Si bien ninguno de los proveedores JDK JCA/JCE predeterminados está validado según FIPS 140-2, existen otros proveedores externos de JCE/JCA que están validados según FIPS 140-2.
- ^ Si bien Libgcrypt no está validado FIPS 140-2 por g10code, existen validaciones para versiones de Amazon Web Services Inc., Canonical Ltd., Oracle Corporation, Red Hat Inc. y SUSE LLC.
- ^ Si bien los servicios de seguridad de red (NSS) no están validados según FIPS 140-2 por la Fundación Mozilla, existen validaciones para versiones de Amazon Web Services Inc., Canonical Ltd., Cisco Systems Inc., Hewlett Packard Enterprise, Oracle Corporation, Red Hat Inc., SafeLogic Inc., SUSE LLC y Trend Micro Inc.
- ^ Si bien OpenSSL no está validado según FIPS 140-2 por OpenSSL.org, existen validaciones para versiones de Amazon Web Services Inc., Aqua Security Software Ltd., Broadcom Inc., Canonical Ltd., Cisco Systems Inc., Cohesity Inc., ControlUp Technologies Inc., Crestron Electronics Inc., Dell Inc., Gallagher Group, Hewlett Packard Enterprise, IBM Corporation, ICU Medical Inc., Intelligent Waves, Ixia, KeyPair Consulting Inc., Koninklijke Philips NV, Lenovo Group Limited, LG Electronics Inc., LogRhythm, McAfee LLC, Metaswitch Networks Ltd, NetBrain Technologies Inc., Nutanix Inc., Onclave Networks Inc., Oracle Corporation, REDCOM Laboratories Inc., Red Hat Inc., SafeLogic Inc., Super Micro Computer Inc., SUSE LLC, Tanium Inc., Trend Micro Inc., Unisys Corporation, Verizon, VMware Inc. y Wickr Inc.
Operaciones clave
Las operaciones clave incluyen algoritmos de generación de claves, acuerdos de intercambio de claves y estándares de criptografía de clave pública.
Algoritmos de clave pública
- ^ Utilizando la interfaz de nivel inferior.
Compatibilidad con criptografía de curva elíptica (ECC)
Estándares de criptografía de clave pública
- ^ La biblioteca ofrece codificación X.509 y PKCS #8 sin PEM de manera predeterminada. Para la codificación PEM de claves públicas y privadas se necesita el paquete PEM.
- ^ abcde Estos estándares criptográficos de clave pública (PKCS) están respaldados por bibliotecas y herramientas que los acompañan, que también son parte del marco GnuPG, aunque no por la biblioteca libgcrypt real.
Funciones hash
Comparación de las funciones hash criptográficas admitidas . Aquí, las funciones hash se definen como aquellas que toman un mensaje de longitud arbitraria y generan una salida de tamaño fijo que es virtualmente imposible de usar para recrear el mensaje original.
Algoritmos MAC
Comparación de implementaciones de algoritmos de código de autenticación de mensajes (MAC). Un MAC es un pequeño fragmento de información que se utiliza para autenticar un mensaje; en otras palabras, para confirmar que el mensaje proviene del remitente indicado (su autenticidad) y no ha sido modificado durante el tránsito (su integridad).
Cifrados de bloque
La tabla compara las implementaciones de cifrados de bloques. Los cifrados de bloques se definen como deterministas y operan sobre una cantidad determinada de bits (denominada bloque) utilizando una clave simétrica. Cada cifrado de bloques se puede dividir en los posibles tamaños de clave y modos de cifrado de bloques con los que se puede ejecutar.
Algoritmos de cifrado por bloques
- ^ Crypto++ solo es compatible con GOST 28147-89, pero no con GOST R 34.12-2015.
- ^ libsodium solo admite AES-256, pero no AES-128 o AES-192.
Modos de cifrado
Cifrados de flujo
La siguiente tabla muestra la compatibilidad de varios cifrados de flujo . Los cifrados de flujo se definen como el uso de dígitos de texto sin formato que se combinan con un flujo de dígitos cifrados pseudoaleatorios. Los cifrados de flujo suelen ser más rápidos que los cifrados de bloque y pueden tener una menor complejidad de hardware, pero pueden ser más susceptibles a ataques.
Soporte asistido por hardware
Estas tablas comparan la capacidad de utilizar criptografía mejorada por hardware. Al utilizar la ayuda de hardware específico, la biblioteca puede alcanzar mayores velocidades y/o una seguridad mejorada que de otra manera.
Compatibilidad con protocolos de tarjetas inteligentes, SIM y HSM
- ^ En conjunto con el proveedor PKCS#11, o mediante la implementación de interfaces de operador que proporcionen acceso a operaciones básicas.
- ^ Al utilizar BSAFE Crypto-J en modo nativo utilizando BSAFE Crypto-C Micro Edition.
- ^ El soporte está disponible a través del paquete javax.smartcardio de JDK.
CPU de propósito general, soporte de aceleración de plataforma
- ^ ab AltiVec incluye procesamiento SIMD de POWER4 a POWER8. POWER8 agregó criptografía en el núcleo, que brinda AES, SHA y PMUL acelerados similares a ARMv8.1.
- ^ abcde Al utilizar RSA BSAFE Crypto-J en modo nativo utilizando BSAFE Crypto-C Micro Edition
- ^ Crypto++ solo brinda acceso al generador de números aleatorios Padlock. No se proporcionan otras funciones, como la aceleración AES.
- ^ abcdefg Al utilizar la JVM HotSpot
- ^ La compatibilidad con RDRAND de OpenSSL se proporciona a través de la interfaz ENGINE. El generador RDRAND no se utiliza de forma predeterminada.
Tamaño del código y relación entre el código y el comentario
Portabilidad
- ^ Crypto++ es seguro para subprocesos a nivel de objeto, es decir, no hay datos compartidos entre instancias. Si dos subprocesos diferentes acceden al mismo objeto, el usuario es responsable del bloqueo.
Referencias
- ^ "Botan: Notas de la versión" . Consultado el 13 de agosto de 2024 .
- ^ "Notas de la versión - bouncycastle.org". 2023-11-13 . Consultado el 2023-11-18 .
- ^ "Recursos de Java LTS - bouncycastle.org". 2024-03-01 . Consultado el 2024-03-31 .
- ^ "Recursos de Java FIPS - bouncycastle.org". 28 de septiembre de 2023. Consultado el 29 de septiembre de 2022 .
- ^ "Las API de criptografía de C# de la Legión del Castillo Inflable". 2024-02-05 . Consultado el 2024-02-06 .
- ^ "Recursos FIPS de C# .NET - bouncycastle.org". 28 de febrero de 2023. Consultado el 28 de febrero de 2023 .
- ^ "Aviso de lanzamiento de Dell BSAFE Crypto-C Micro Edition 4.1.5 y Micro Edition Suite 4.6".
- ^ "Aviso de lanzamiento de Dell BSAFE Micro Edition Suite 4.6.2".
- ^ "Aviso de lanzamiento de Dell BSAFE Micro Edition Suite 5.0.2.1".
- ^ "Aviso de lanzamiento de Dell BSAFE Crypto-J 7.0".
- ^ "Aviso de lanzamiento de Dell BSAFE Crypto-J 6.3".
- ^ Gutmann, Peter (2019). "Descargando". cryptlib. Facultad de Informática de la Universidad de Auckland . Consultado el 7 de agosto de 2019 .
- ^ "gnutls 3.8.5".
- ^ "Notas de la versión de Java™ SE Development Kit 23, 23.0.1". Oracle Corporation . Consultado el 16 de octubre de 2024 .
- ^ "Notas de la versión de Java™ SE Development Kit 21, 21.0.5". Oracle Corporation . Consultado el 16 de octubre de 2024 .
- ^ "Notas de la versión de Java™ SE Development Kit 17, 17.0.13". Oracle Corporation . Consultado el 16 de octubre de 2024 .
- ^ "Notas de la versión de Java™ SE Development Kit 11, 11.0.25". Oracle Corporation . Consultado el 16 de octubre de 2024 .
- ^ "Notas de la versión de Java™ SE Development Kit 8, actualización 431". Oracle Corporation . Consultado el 16 de octubre de 2024 .
- ^ "LibreSSL 4.0.0 Released". 14 de octubre de 2024. Consultado el 15 de octubre de 2024 .
- ^ "Libgcrypt 1.11.0 publicado". dev.gnupg.org . 2024-06-19 . Consultado el 2024-06-20 .
- ^ "Libgcrypt 1.8.11 publicado". dev.gnupg.org . 2023-11-16 . Consultado el 2023-11-16 .
- ^ "Lanzamientos de Mbed TLS". 2021-07-07 . Consultado el 2021-10-14 .
- ^ Descarga e instalación de NaCl, Bernstein, Lange, Schwabe, consultado el 22 de mayo de 2017
- ^ Niels Möller (16 de junio de 2024). «ANUNCIO: Nettle-3.10» . Consultado el 16 de junio de 2024 .
- ^ ab "NSS:Versiones de lanzamiento". Wiki de Mozilla . Consultado el 7 de noviembre de 2022 .
- ^ "OpenSSL 3.4.0". 22 de octubre de 2024. Consultado el 22 de octubre de 2024 .
- ^ "Registro de cambios de wolfSSL". 2023-10-31 . Consultado el 2023-10-31 .
- ^ "Programa de validación de módulos criptográficos". CSRC.nist.gov . Archivado desde el original el 21 de octubre de 2021.
- ^ abc "Lista de módulos en proceso - Programa de validación de módulos criptográficos". CSRC .
- ^ "Programa de validación de módulos criptográficos". CSRC.nist.gov . Archivado desde el original el 24 de septiembre de 2021.
- ^ "Programa de validación de módulos criptográficos". CSRC.nist.gov . Archivado desde el original el 23 de octubre de 2021.
- ^ "Buscar - Programa de validación de módulos criptográficos". CSRC . Consultado el 29 de mayo de 2022 .
- ^ abcd "Lista de implementación bajo prueba - Programa de validación de módulos criptográficos". CSRC .
- ^ "Búsqueda - Programa de validación de módulos criptográficos". CSRC . 11 de octubre de 2016.
- ^ https://csrc.nist.gov/projects/cryptographic-module-validation-program/validated-modules/search?SearchMode=Basic&ModuleName=libgcrypt&CertificateStatus=Active&ValidationYear=0 [ enlace roto ]
- ^ "Programa de validación de módulos criptográficos". CSRC.nist.gov . Archivado desde el original el 24 de septiembre de 2021.
- ^ "Programa de validación de módulos criptográficos". CSRC.nist.gov . Archivado desde el original el 14 de abril de 2021.
- ^ https://csrc.nist.gov/projects/cryptographic-module-validation-program/certificate/3389 [ URL básica ]
- ^ RFC 7091
- ^ RFC 8018
- ^ RFC 5831
- ^ RFC 6986
- ^ RFC 5830
- ^ RFC 8891
- ^ RFC 7801
- ^ Especificaciones del castillo inflable, bouncycastle.org, consultado el 10 de abril de 2018
- ^ cryptlib Encryption Toolkit, Peter Gutmann , consultado el 28 de noviembre de 2015
- ^ Con Scute, scute.org
- ^ ab Con SCdaemon y gpg-agent de GnuPG, gnupg.org
- ^ ab Con un motor libp11
- ^ hwfeatures.c, dev.gnupg.org
- ^ "Soporte asincrónico Intel QuickAssist para WolfSSL - wolfSSL". 18 de enero de 2017.
- ^ "Soporte para ARMv8 de WolfSSL: wolfSSL". 13 de octubre de 2016.
- ^ ab Análisis del lenguaje de Botan, OpenHub.net, consultado el 18 de julio de 2018
- ^ ab Análisis del lenguaje de Bouncy Castle, OpenHub.net, consultado el 23 de diciembre de 2015
- ^ ab Análisis del lenguaje de Crypto++, OpenHub.net, consultado el 18 de julio de 2018
- ^ ab Análisis del lenguaje de GnuTLS, OpenHub.net, consultado el 15 de septiembre de 2020
- ^ ab Análisis del lenguaje de Libgcrypt, OpenHub.net, consultado el 23 de diciembre de 2015
- ^ ab Análisis del lenguaje de libsodium, OpenHub.net, consultado el 7 de mayo de 2017
- ^ ab Análisis del lenguaje de mbed-tls, OpenHub.net, consultado el 15 de septiembre de 2019
- ^ ab Análisis del lenguaje de Nettle, OpenHub.net, consultado el 23 de diciembre de 2015
- ^ ab Análisis del lenguaje de OpenSSL, OpenHub.net, consultado el 7 de mayo de 2017
- ^ GnuTLS - características, GnuTLS.org, consultado el 15 de septiembre de 2022
- ^ Documentación de GnuPG: Descripción general de Libgcrypt: seguridad de subprocesos, GnuPG.org, consultado el 16 de abril de 2016