Аппаратное шифрование

Использование компьютерного оборудования для помощи программному обеспечению в процессе шифрования данных
Аппаратное шифрование
Криптографический модуль IBM 4758
Тип процессаКриптография
Промышленный сектор(ы)Вычислительная техника
Основные технологии или подпроцессыКриптографическая хэш-функция , Шифрование

Аппаратное шифрование — это использование компьютерного оборудования для помощи программному обеспечению или иногда замены программного обеспечения в процессе шифрования данных . Обычно это реализуется как часть набора инструкций процессора . Например, алгоритм шифрования 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

Архитектура 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]

Смотрите также

Ссылки

  1. ^ abc Руководство разработчика программного обеспечения для архитектур Intel® 64 и IA-32 (PDF) . Intel. Декабрь 2017 г. С. 303–309, 410.
  2. ^ ab ARM® Cortex®-A57 MPCore Processor Cryptography Extension (PDF) . ARM Holdings. 17 декабря 2017 г. Архивировано (PDF) из оригинала 2016-12-13.
  3. ^ ab "4764 Cryptographic Coprocessor". IBM. Архивировано из оригинала 2018-01-21 . Получено 20 января 2018 .
  4. ^ abc P. Schmid и A. Roos (2010). "AES-NI Performance Analyzed". Tom's Hardware . Получено 20 января 2018 г.
  5. ^ Келли, Томас (июль 1998 г.). «Миф о Небесной Сказке». Cryptologia . 22 (3): 244–260. doi :10.1080/0161-119891886902.
  6. ^ "ABYSS: Надежная архитектура для защиты программного обеспечения" (PDF) . Архивировано (PDF) из оригинала 2018-01-21 . Получено 20 января 2018 .
  7. ^ "Building the IBM 4758 Secure Coprocessor" (PDF) . IBM . Архивировано (PDF) из оригинала 2017-08-08 . Получено 20 января 2018 .
  8. ^ "Дело Enigma-E" (PDF) . Crypto Museum. Архивировано (PDF) из оригинала 2016-11-05 . Получено 20 января 2018 .
  9. ^ ab "Потребители и их ожидания в отношении онлайн-покупок – Новости электронной коммерции". 20 февраля 2015 г. Архивировано из оригинала 2016-09-30 . Получено 29 августа 2016 г.
  10. ^ "x86-64 Instruction Set" (PDF) . Оксфордский университет . 18 апреля 2017 г. стр. 1 . Получено 24 января 2018 г. .
  11. ^ Линн Хэтэуэй (июнь 2003 г.). «Национальная политика использования передового стандарта шифрования (AES) для защиты систем национальной безопасности и информации национальной безопасности» (PDF) . Архивировано (PDF) из оригинала 2010-11-06 . Получено 15 февраля 2011 г.
  12. ^ "Криптографические аппаратные ускорители". OpenWRT.org. 17 мая 2016 г. Архивировано из оригинала 21-01-2018 . Получено 25 января 2018 г.
  13. ^ ab "IBM 4765 Cryptographic Coprocessor Security Module" (PDF) . Национальный институт стандартов и технологий . 10 декабря 2012 г. Архивировано (PDF) из оригинала 2018-01-25 . Получено 20 января 2018 г. .
  14. ^ "IBM 4758 Models 2 and 23 PCI Cryptographic Coprocessor" (PDF) . IBM . Май 2004 . Получено 24 января 2018 .[ постоянная мертвая ссылка ]
  15. ^ Брент Холлингсворт ( AMD ) (октябрь 2012 г.). "Новые инструкции "Бульдозер" и "Пайледрайвер"" (PDF) . Обсерватория Аресибо . Архивировано (PDF) из оригинала 2018-02-09 . Получено 25 января 2018 г.
  16. ^ ab Shay Gueron ( Университет Хайфы и Intel ) и Nicky Mouha ( KU Leuven и NIST ) (9 ноября 2016 г.). "Simpira v2: Семейство эффективных перестановок с использованием функции раунда AES" (PDF) . Архивировано (PDF) из оригинала 2017-07-16 . Получено 25 января 2018 г.
  17. ^ "Intel SGX для чайников (цели проектирования Intel SGX)". intel.com . 2013-09-26. Архивировано из оригинала 2014-04-29.
  18. ^ "BearSSL – Constant-Time Crypto". www.bearssl.org . Архивировано из оригинала 2017-01-11 . Получено 2017-01-10 .
  19. ^ Хачман, Марк (9 января 2018 г.). «Тесты Microsoft показывают, что исправления Spectre снижают производительность на старых ПК». PC World . Архивировано из оригинала 9 февраля 2018 г. Получено 09.01.2018 .
Взято с "https://en.wikipedia.org/w/index.php?title=Аппаратное_шифрование&oldid=1234015101"