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]
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]
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 ).
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]
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]
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]
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]