stringtranslate.com

Cifrado basado en hardware

El cifrado basado en hardware es el uso de hardware de computadora para ayudar al software, o a veces reemplazar al software, en el proceso de cifrado de datos . Por lo general, esto se implementa como parte del conjunto de instrucciones del procesador . Por ejemplo, el algoritmo de cifrado AES (un cifrado moderno ) se puede implementar utilizando el conjunto de instrucciones AES en la ubicua arquitectura x86 . [1] Tales instrucciones también existen en la arquitectura ARM . [2] Sin embargo, existen sistemas más inusuales donde el módulo de criptografía está separado del procesador central, en lugar de implementarse como un coprocesador , en particular un criptoprocesador seguro o acelerador criptográfico , del cual un ejemplo es el IBM 4758 , o su sucesor, el IBM 4764. [ 3] Las implementaciones de hardware pueden ser más rápidas y menos propensas a la explotación que las implementaciones de software tradicionales, y además pueden protegerse contra la manipulación. [4]

Historia

Antes del uso del hardware informático, la criptografía podía realizarse a través de varios medios mecánicos o electromecánicos . Un ejemplo temprano es el Scytale utilizado por los espartanos . [5] La máquina Enigma era una máquina de cifrado de sistema electromecánico utilizada principalmente por los alemanes en la Segunda Guerra Mundial . [ cita requerida ] Después de la Segunda Guerra Mundial , se desarrollaron sistemas puramente electrónicos. En 1987 se inició el proyecto ABYSS (A Basic Yorktown Security System). [6] [7] El objetivo de este proyecto era proteger contra la piratería de software . Sin embargo, la aplicación de las computadoras a la criptografía en general se remonta a la década de 1940 y Bletchley Park , donde se utilizó la computadora Colossus para romper el cifrado utilizado por el alto mando alemán durante la Segunda Guerra Mundial . El uso de computadoras para cifrar , sin embargo, llegó más tarde. En particular, hasta el desarrollo del circuito integrado , del cual se produjo el primero en 1960, las computadoras eran poco prácticas para el cifrado, ya que, en comparación con el factor de forma portátil de la máquina Enigma , [8] las computadoras de la época ocupaban el espacio de un edificio entero. Fue solo con el desarrollo de la microcomputadora que el cifrado informático se volvió factible, fuera de las aplicaciones de nicho. El desarrollo de la World Wide Web llevó a la necesidad de que los consumidores tuvieran acceso al cifrado, ya que las compras en línea se volvieron frecuentes. [9] Las principales preocupaciones de los consumidores eran la seguridad y la velocidad. [9] Esto llevó a la eventual inclusión de los algoritmos clave en los procesadores como una forma de aumentar la velocidad y la seguridad. [4]

Implementaciones

En el conjunto de instrucciones

x86

La arquitectura x86 , como una arquitectura CISC (Complex Instruction Set Computer) , típicamente implementa algoritmos complejos en hardware. [10] Los algoritmos criptográficos no son una excepción. La arquitectura x86 implementa componentes significativos del algoritmo AES (Advanced Encryption Standard) , [1] que puede ser utilizado por la NSA para información de alto secreto . [11] La arquitectura también incluye soporte para los algoritmos de hash SHA a través de las extensiones Intel SHA . [1] Mientras que AES es un cifrado, que es útil para cifrar documentos, el hash se utiliza para la verificación, como por ejemplo de contraseñas (ver PBKDF2 ).

BRAZO

Los procesadores ARM pueden admitir extensiones de seguridad de manera opcional. Aunque ARM es una arquitectura RISC (Reduced Instruction Set Computer) , ARM Holdings especifica varias extensiones opcionales . [2] [12]

Como coprocesador

Proliferación

Los procesadores Advanced Micro Devices (AMD) también son dispositivos x86 y han admitido las instrucciones AES desde la iteración del procesador Bulldozer de 2011. [15] Debido a la existencia de instrucciones de cifrado en los procesadores modernos proporcionados tanto por Intel como por AMD, las instrucciones están presentes en la mayoría de las computadoras modernas. [16] También existen en muchas tabletas y teléfonos inteligentes debido a su implementación en procesadores ARM . [16]

Ventajas

La implementación de la criptografía en hardware significa que una parte del procesador está dedicada a la tarea. Esto puede generar un gran aumento en la velocidad. [4] En particular, las arquitecturas de procesador modernas que admiten la segmentación a menudo pueden ejecutar otras instrucciones simultáneamente con la ejecución de la instrucción de cifrado. Además, el hardware puede tener métodos para proteger los datos del software. En consecuencia, incluso si el sistema operativo se ve comprometido, los datos aún pueden estar seguros (consulte Extensiones de protección de software ). [17]

Desventajas

Sin embargo, si la implementación del hardware se ve comprometida, surgen problemas importantes. El software malicioso puede recuperar los datos del hardware (supuestamente) seguro; una gran clase de método utilizado es el ataque de tiempo . [18] Esto es mucho más problemático de resolver que un error de software, incluso dentro del sistema operativo . Microsoft se ocupa regularmente de los problemas de seguridad a través de Windows Update . De manera similar, se lanzan actualizaciones de seguridad periódicas para Mac OS X y Linux , así como para sistemas operativos móviles como iOS , Android y Windows Phone . Sin embargo, el hardware es un problema diferente. A veces, el problema se puede solucionar mediante actualizaciones del microcódigo del procesador (un tipo de software de bajo nivel). Sin embargo, otros problemas solo se pueden resolver reemplazando el hardware o con una solución alternativa en el sistema operativo que mitigue el beneficio de rendimiento de la implementación del hardware, como en el exploit Spectre . [19]

Véase también

Referencias

  1. ^ Manual del desarrollador de software de arquitecturas Intel® 64 e IA-32 (PDF) . Intel. Diciembre de 2017. págs. 303–309, 410.
  2. ^ ab ARM® Cortex®-A57 MPCore Processor Cryptography Extension (PDF) . ARM Holdings. 17 de diciembre de 2017. Archivado (PDF) desde el original el 13 de diciembre de 2016.
  3. ^ ab "4764 Cryptographic Coprocessor". IBM. Archivado desde el original el 21 de enero de 2018. Consultado el 20 de enero de 2018 .
  4. ^ abc P. Schmid y A. Roos (2010). "AES-NI Performance Analyzed". Tom's Hardware . Consultado el 20 de enero de 2018 .
  5. ^ Kelly, Thomas (julio de 1998). "El mito del cuento del cielo". Criptología . 22 (3): 244–260. doi :10.1080/0161-119891886902.
  6. ^ "ABYSS: una arquitectura confiable para la protección del software" (PDF) . Archivado (PDF) del original el 21 de enero de 2018 . Consultado el 20 de enero de 2018 .
  7. ^ "Building the IBM 4758 Secure Coprocessor" (PDF) . IBM . Archivado (PDF) desde el original el 8 de agosto de 2017 . Consultado el 20 de enero de 2018 .
  8. ^ "Caso Enigma-E" (PDF) . Museo de Criptografía. Archivado (PDF) del original el 5 de noviembre de 2016. Consultado el 20 de enero de 2018 .
  9. ^ ab "Los consumidores y sus expectativas de compra online – Ecommerce News". 20 de febrero de 2015. Archivado desde el original el 30 de septiembre de 2016. Consultado el 29 de agosto de 2016 .
  10. ^ "Conjunto de instrucciones x86-64" (PDF) . Universidad de Oxford . 18 de abril de 2017. p. 1 . Consultado el 24 de enero de 2018 .
  11. ^ Lynn Hathaway (junio de 2003). «Política nacional sobre el uso del estándar de cifrado avanzado (AES) para proteger los sistemas de seguridad nacional y la información de seguridad nacional» (PDF) . Archivado (PDF) desde el original el 6 de noviembre de 2010. Consultado el 15 de febrero de 2011 .
  12. ^ "Aceleradores de hardware criptográficos". OpenWRT.org. 17 de mayo de 2016. Archivado desde el original el 21 de enero de 2018. Consultado el 25 de enero de 2018 .
  13. ^ ab «Módulo de seguridad del coprocesador criptográfico IBM 4765» (PDF) . Instituto Nacional de Normas y Tecnología . 10 de diciembre de 2012. Archivado (PDF) desde el original el 25 de enero de 2018. Consultado el 20 de enero de 2018 .
  14. ^ "Coprocesador criptográfico PCI IBM 4758 modelos 2 y 23" (PDF) . IBM . Mayo de 2004 . Consultado el 24 de enero de 2018 .[ enlace muerto permanente ]
  15. Brent Hollingsworth ( AMD ) (octubre de 2012). «Nuevas instrucciones para los «Bulldozer» y «Piledriver»» (PDF) . Observatorio de Arecibo . Archivado (PDF) desde el original el 9 de febrero de 2018. Consultado el 25 de enero de 2018 .
  16. ^ por Shay Gueron ( Universidad de Haifa e Intel ) y Nicky Mouha ( KU Leuven y NIST ) (9 de noviembre de 2016). "Simpira v2: una familia de permutaciones eficientes utilizando la función de redondeo AES" (PDF) . Archivado (PDF) desde el original el 16 de julio de 2017. Consultado el 25 de enero de 2018 .
  17. ^ "Intel SGX para principiantes (Objetivos de diseño de Intel SGX)". intel.com . 26 de septiembre de 2013. Archivado desde el original el 29 de abril de 2014.
  18. ^ "BearSSL – Criptografía de tiempo constante". www.bearssl.org . Archivado desde el original el 11 de enero de 2017. Consultado el 10 de enero de 2017 .
  19. ^ Hachman, Mark (9 de enero de 2018). «Las pruebas de Microsoft muestran que los parches de Spectre reducen el rendimiento en PCs antiguas». PC World . Archivado desde el original el 9 de febrero de 2018. Consultado el 9 de enero de 2018 .