Аппаратное шифрование в процессорах
Шифровальные средства | |
---|---|
Шифровальные (криптографические) средства (ШКС) | |
Основные НПА | |
Решение ЕЭК №30 от 21 апреля 2015 г. | |
Перечень | 2.19 |
Положение | Приложение 9 |
Услуги IFCG | |
Оформление разрешительных документов для ввоза и вывоза ШКС: |
В современном мире шифрование используется практически повсеместно, как для защиты особо важной информации в специальных областях (оборонный сектор, банковская сфера и т.д.), так и в составе бытовых устройств: компьютеров, смартфонов, телевизоров. Более того, с каждым годом расширяется сфера применения криптографии, и растет объем передаваемых (хранимых) зашифрованных данных.
В то же время, шифрование данных значительно увеличивает вычислительную нагрузку на реализующие его устройства, поэтому неудивительно, что все чаще криптографические операции переносятся на аппаратный уровень (часто в виде специальных криптографических ко-процессоров или плат расширения). В последние годы шифровальные инструкции стали также широко внедряться непосредственно в центральные процессоры крупнейших брендов для бытовых ПК и мобильных устройств.
Содержание
Использование шифрования
По мере проникновения электроники и автоматики во все сферы нашей жизни растет потребность в защите передаваемых данных и ограничении доступа к ключевым компонентам. Практически все современные компьютеры, планшеты и смартфоны, роутеры, "умные" бытовые приборы, автомобили и пр. активно используют шифрование. Так, например, криптографические алгоритмы используются:
- при подключении к большинству видов беспроводных сетей передачи данных (Wi-Fi, Bluetooth и пр.);
- в мобильной связи;
- мобильные ОС (iOS, Android) шифруют данные на устройствах для защиты от несанкционированного доступа;
- безопасное хранение паролей требует определенных криптографических функций (т.е. большинство устройств с возможностью задания пароля использует шифрование);
- банковские карты, банкоматы, терминалы оплаты всегда защищены криптографически;
- криптовалюты основаны на принципах шифрования.
Все больше организаций и людей осознают важность применения шифрования для защиты данных. Так, совместными усилиями многих компаний, в частности, Google, доля зашифрованного HTTP-трафика выросла с 30% в начале 2014 года до 70% на начало 2018[1].
В то же время, любое шифрование — математически сложное преобразование данных и требует дополнительных вычислительных ресурсов от аппаратуры. В зависимости от сценария работы с данными внедрение шифрования может снизить общую пропускную способность (объем обрабатываемых данных в единицу времени) в несколько раз[2].
Алгоритмы шифрования
Существует большое количество криптографических алгоритмов[3]. Поддерживать их все было бы технически трудно осуществимо.
Некоторые алгоритмы, однако, используются значительно чаще, чем другие. Это связано с тем, что многие алгоритмы признаны устаревшими или недостаточно безопасными, другие оказываются излишне сложными вычислительно. Есть также и другие причины.
Среди блочных симметричных алгоритмов прежде всего следует выделить AES (Advanced Encryption Standard). Данный алгоритм был отобран в качестве национального стандарта США по результатам конкурса[4]. AES является основным симметричным алгоритмом шифрования во многих протоколах и технологиях (TLS, Wi-Fi, Bluetooth (с версии 4.0), GPG, IPsec, Bitlocker (шифрование файловой системы Windows), LUKS (шифрование файловой системы Linux), Miscrosoft Office, многие программы-архиваторы (WinZip, 7-zip) и пр.).
Также крайне широко используются алгоритмы криптографического хеширования. В связи с тем, что алгоритм MD5 был признан небезопасным, в настоящее время наиболее распространенными являются алгоритмы серии SHA, прежде всего, SHA-1 и SHA-2, также являющимися стандартами FIPS США. Им на смену со временем придет алгоритм SHA-3, ставший в 2012 году победителем соответствующего конкурса.
Среди алгоритмов с открытым ключом стоит отметить RSA, DSA и Diffe-Hellman.
В процессорах наиболее распространенной архитектуры x86-64 (производителей Intel и AMD) последних поколений реализованы специальные инструкции для ускорения вычислений по алгоритмам AES и SHA-1, SHA-2 (256 бит).
Инструкции Intel
AES
Компанией Intel в 2008 г. были предложены новые команды для x86-64 архитектуры, которые добавили поддержку на аппаратном уровне симметричного алгоритма шифрования AES. На данный момент AES — один из самых популярных алгоритмов блочного шифрования. Поэтому аппаратная реализация должна привести к повышению производительности программ, использующих этот алгоритм шифрования.
Набор новых инструкции носит название AES-NI (AES New Instructions) и состоит из четырёх инструкций для шифрования AES:
- AESENC — выполнить один раунд шифрования AES,
- AESENCLAST — выполнить последний раунд шифрования AES и расшифровки,
- AESDEC — выполнить один раунд расшифрования AES,
- AESDECLAST — выполнить последний раунд расшифрования AES,
и ещё двух инструкции для работы с ключом AES:
- AESIMC — Inverse Mix Columns,
- AESKEYGENASSIST — поспособствовать в генерации раундового ключа AES.
Как и раньше, инструкции относятся к SIMD, то есть к типу "одна инструкция много данных" (Single Instruction Multiple Data). Поддерживаются все три ключа режима AES (с длинами ключей 128, 192 и 256 битов с 10, 12 и 14 проходами подстановки и перестановки).
Использование этих инструкций обеспечивает ускорение операций шифрования в несколько раз[5].
SHA
В 2013 году Intel представила спецификацию нового набора инструкций для алгоритмов SHA-1 и SHA-256:
- SHA-1: SHA1RNDS4, SHA1NEXTE, SHA1MSG1, SHA1MSG2
- SHA-256: SHA256RNDS2, SHA256MSG1, SHA256MSG2
Данные инструкции должны вызываться на различных этапах вычисления подписи (хеша) сообщения для ускорения наиболее вычислительно сложных операций.
Первые процессоры с поддержкой данных инструкций были представлены в 2016 году (микроархитектура Goldmont).
Поддержка процессорами
Набор инструкций AES-NI поддерживается процессорами Intel на основе архитектур[6]:
- Westmere:
- Westmere-EP (Xeon 56xx)
- Clarkdale (кроме Core i3, Pentium и Celeron)
- Arrandale (кроме Celeron, Pentium, Core i3, Core i5-4XXM)
- Sandy Bridge:
- все настольные, кроме Pentium, Celeron, Core i3
- мобильные: только Core i7 и Core i5
- Ivy Bridge (только i5, i7, Xeon and i3-2115C)
- Haswell (все, кроме i3-4000m, Pentium and Celeron)
- Broadwell (все, кроме Pentium и Celeron)
- Silvermont/Airmont (все, кроме Bay Trail-D и Bay Trail-M)
- Goldmont
- Skylake
- Kaby Lake
- Coffee Lake
AMD:
- Bulldozer
- Piledriver
- Steamroller
- Excavator
- Jaguar
- Puma
- Zen
Инструкции SHA поддерживаются процессорами Intel, начиная с архитектуры Goldmont (2016 год), процессорами AMD — с архитектуры Zen (2017 год).
Другие процессоры
Процессоры общего назначения других архитектур и производителей также часто включают поддержку специальных криптографических инструкций.
Так, поддержка алгоритма AES реализована в процессорах:
Архитектура ARM также имеет набор инструкций для алгоритмов SHA:
- SHA1C — SHA1 hash update accelerator, choose
- SHA1H — SHA1 fixed rotate
- SHA1M — SHA1 hash update accelerator, majority
- SHA1P — SHA1 hash update accelerator, parity
- SHA1SU0 — SHA1 schedule update accelerator, first part
- SHA1SU1 — SHA1 schedule update accelerator, second part
- SHA256H — SHA256 hash update accelerator
- SHA256H2 — SHA256 hash update accelerator, upper part
- SHA256SU0 — SHA256 schedule update accelerator, first part
- SHA256SU1 — SHA256 schedule update accelerator, second part
Примечания
- ↑ Доля страниц, загружаемых браузером Firefox по HTTPS
- ↑ Производительность сети Wi-Fi при использовании различных алгоритмов шифрования и аутентификации
- ↑ Симметричные алгоритмы (неполный список)
- ↑ Конкурс NIST
- ↑ Ускорение в 5 раз (Truecrypt), в ~4 раза (IPsec)
- ↑ Процессоры Intel с поддрежкой AES-NI
- ↑ [1]
- ↑ [2]
- ↑ [3]
Ссылки
Энциклопедия IFCG — открытый информационный ресурс для участников и экспертов в области ВЭД.
В частности, мы готовы оказать услуги по оформлению следующих разрешительных документов для ввоза и вывоза товаров с шифровальными функциями: |