Тип процесса | Криптография |
---|---|
Промышленный сектор(ы) | Вычислительная техника |
Основные технологии или подпроцессы | Криптографическая хэш-функция , Шифрование |
Аппаратное шифрование — это использование компьютерного оборудования для помощи программному обеспечению или иногда замены программного обеспечения в процессе шифрования данных . Обычно это реализуется как часть набора инструкций процессора . Например, алгоритм шифрования AES (современный шифр ) может быть реализован с использованием набора инструкций AES на повсеместной архитектуре x86 . [1] Такие инструкции также существуют на архитектуре ARM . [2] Однако существуют и более необычные системы, в которых модуль криптографии отделен от центрального процессора, а вместо этого реализован как сопроцессор , в частности, защищенный криптопроцессор или криптографический ускоритель , примером которого является IBM 4758 или его преемник IBM 4764. [3] Аппаратные реализации могут быть быстрее и менее подвержены эксплуатации, чем традиционные программные реализации, и, кроме того, могут быть защищены от несанкционированного доступа. [4]
До использования компьютерного оборудования криптография могла выполняться с помощью различных механических или электромеханических средств. Ранним примером является Scytale, использовавшийся спартанцами . [ 5] Машина Enigma была электромеханической системой шифровальной машины, в частности, использовавшейся немцами во Второй мировой войне . [ требуется ссылка ] После Второй мировой войны были разработаны чисто электронные системы. В 1987 году был инициирован проект ABYSS (A Basic Yorktown Security System). [6] [7] Целью этого проекта была защита от пиратства программного обеспечения . Однако применение компьютеров в криптографии в целом восходит к 1940-м годам и Блетчли-парку , где компьютер Colossus использовался для взлома шифрования, использовавшегося немецким верховным командованием во время Второй мировой войны . Однако использование компьютеров для шифрования началось позже. В частности, до разработки интегральной схемы , первая из которых была произведена в 1960 году, компьютеры были непрактичны для шифрования, поскольку, по сравнению с портативным форм-фактором машины Enigma , [8] компьютеры той эпохи занимали пространство целого здания. Только с разработкой микрокомпьютера компьютерное шифрование стало возможным, за пределами нишевых приложений. Развитие Всемирной паутины привело к необходимости для потребителей иметь доступ к шифрованию, поскольку онлайн-покупки стали распространенными. [9] Основными проблемами для потребителей были безопасность и скорость. [9] Это привело к конечному включению ключевых алгоритмов в процессоры как способу как увеличения скорости, так и безопасности. [4]
Архитектура X86 , как архитектура CISC (Complex Instruction Set Computer) , обычно реализует сложные алгоритмы на аппаратном уровне. [10] Криптографические алгоритмы не являются исключением. Архитектура x86 реализует важные компоненты алгоритма AES (Advanced Encryption Standard) , [1] который может использоваться АНБ для совершенно секретной информации. [11] Архитектура также включает поддержку алгоритмов хэширования SHA через расширения Intel SHA . [1] В то время как AES является шифром, который полезен для шифрования документов, хэширование используется для проверки, например, паролей (см. PBKDF2 ).
Процессоры ARM могут опционально поддерживать Security Extensions. Хотя ARM — это архитектура RISC (Reduced Instruction Set Computer) , есть несколько опциональных расширений, указанных ARM Holdings . [2] [12]
Процессоры Advanced Micro Devices (AMD) также являются устройствами x86 и поддерживают инструкции AES с итерации процессора Bulldozer 2011 года . [15] Благодаря наличию инструкций шифрования на современных процессорах, предоставляемых как Intel , так и AMD, эти инструкции присутствуют на большинстве современных компьютеров. [16] Они также существуют на многих планшетах и смартфонах из-за их реализации в процессорах ARM . [16]
Реализация криптографии на аппаратном уровне означает, что часть процессора выделяется для этой задачи. Это может привести к значительному увеличению скорости. [4] В частности, современные архитектуры процессоров, которые поддерживают конвейеризацию, часто могут выполнять другие инструкции одновременно с выполнением инструкции шифрования. Кроме того, оборудование может иметь методы защиты данных от программного обеспечения. Следовательно, даже если операционная система скомпрометирована, данные все еще могут быть в безопасности (см. Software Guard Extensions ). [17]
Однако если аппаратная реализация скомпрометирована, возникают серьезные проблемы. Вредоносное программное обеспечение может извлечь данные из (предположительно) защищенного оборудования — большой класс используемых методов — это атака по времени . [18] Это гораздо более проблематично решить, чем программную ошибку, даже внутри операционной системы . Microsoft регулярно решает проблемы безопасности через Центр обновления Windows . Аналогичным образом, регулярные обновления безопасности выпускаются для Mac OS X и Linux , а также для мобильных операционных систем, таких как iOS , Android и Windows Phone . Однако аппаратное обеспечение — это другая проблема. Иногда проблема может быть устранена путем обновления микрокода процессора (низкоуровневый тип программного обеспечения). Однако другие проблемы могут быть решены только путем замены оборудования или обходного пути в операционной системе, который смягчает преимущество производительности аппаратной реализации, например, в эксплойте Spectre . [19]