Intel Core i5 (Clarkdale): анализ аппаратного ускорения шифрования AES. Аппаратное шифрование в процессорах

32-нм Intel Westmere добавляет поддержку ускорения AES: так ли она нужна?

Сегодня безопасность является важной темой – однако важной её считают, главным образом, только профессионалы. Впрочем, если безопасность становится маркетинговым элементом или превращается в характеристику производительности, то такие компании, как Intel, начинают активно её продвигать. Стандарт AES или Advanced Encryption Standard сертифицирован Управлением национальной безопасности США (NSA) и правительством США, а также многими другими органами. 32-нм двухпроцессорное поколение процессоров Intel обещает существенный прирост производительности шифрования и расшифровки AES благодаря новым инструкциям (только двуядерные процессоры Core i5). Мы решили оценить преимущества в реальной жизни и сравнили двуядерный процессор Core i5-661 с новыми инструкциями AES с четырёхъядерным процессором Core i7-870, который не имеет поддержки ускорения шифрования.


Шифрование на самом деле используется намного более интенсивно, чем обычно замечают пользователи. Всё начинается с сайтов в Интернете, которые содержат конфиденциальную информацию, такую как личные данные пользователей, либо с сайтов, где есть конфиденциальная информация о транзакциях: все они используют шифрование TLS или SSL. Такие сервисы, как VoIP, мессенджеры и электронная почта также могут защищаться таким же способом. Виртуальные частные сети (VPN, Virtual Private Network) – ещё один пример, вероятно, очень популярный. Шифрование также затрагивает и такие конфиденциальные области, как электронные платежи. Впрочем, TLS/SSL – это криптографические протоколы связи, а AES, который Intel ускоряет, начиная с нового 32-нм поколения процессоров, является стандартом шифрования общего назначения. Его можно использовать для шифрования отдельных файлов, контейнеров данных и архивов или даже зашифровывать разделы и диски целиком – будь то USB-брелок или системный жёсткий диск. AES может выполняться программно, но есть и продукты с аппаратным ускорением, поскольку шифрование и расшифровка являются довольно серьёзной вычислительной нагрузкой. Такие решения, как TrueCrypt или Microsoft BitLocker, являющийся частью Windows Vista или Windows 7 Ultimate, способны шифровать целые разделы "на лету".

Считаете ли вы или нет, что на вашей системе есть конфиденциальные данные, зависит от того, что вы подразумеваете под этими данными, а также и от вашего персонального уровня комфорта. Кроме того, безопасность всегда подразумевает правильную стратегию и аккуратность в хранении конфиденциальных данных. Никогда нельзя оставлять без внимания такие данные, как реквизиты вашего паспорта или номер и дату окончания срока действия банковской карты. Или даже PIN-код телефона.

Одно можно сказать точно: лучше всего быть аккуратным и благоразумным, чем наоборот – тем более что для этого требуется не так много усилий. Подход Intel к добавлению ускорения AES не охватывает все приложения шифрования и сценарии, только самый популярный стандарт – при этом вы получите всё это бесплатно во всех будущих 32-нм настольных процессорах для массового рынка или для более дорогих сегментов. Но действительно ли новые инструкции AES New Instructions обеспечивают существенный прирост производительности в типичных сценариях шифрования или это, скорее, плод усилий отдела маркетинга? Давайте посмотрим.

Что такое AES?

AES расшифровывается как "Advanced Encryption Standard" – это наиболее популярный стандарт симметричного шифрования в мире ИТ. Стандарт работает с блоками размером 128 бит и поддерживает 128-, 192- или 256-битные ключи (AES-128, AES-192 и AES-256). Многие утилиты шифрования, та же TrueCrypt, поддержали алгоритм AES в самом начале его существования. Но самый большой фактор успеха AES, конечно, заключается в его принятии правительством США в 2002 году, при этом в 2003 году он был принят как стандарт для защиты секретных данных.

Шифрование данных с помощью AES

Шифрование AES базируется на системе подстановок с перестановкой, то есть над данными проводится серия математических операций, чтобы создать значительно модифицированный массив данных (зашифрованный). В качестве исходной информации выступает текст, а ключ отвечает за выполнение математических операций. Операции могут быть как совершенно простыми, например, сдвиг битов или XOR, так и более сложными. Один проход можно легко расшифровать, поэтому все современные алгоритмы шифрования построены на нескольких проходах. В случае AES это 10, 12 или 14 проходов для AES-128, AES-192 или AES-256. Кстати, ключи AES проходят такую же процедуру, что и пользовательские данные, то есть они представляют собой изменяющийся раундовый ключ.

Процесс работает с массивами 4x4 из одиночных байтов, также называемых боксами: S-box используются для подстановок, P-box – для перестановок. Подстановки и перестановки выполняются на разных этапах: подстановки работают внутри так называемых боксов, а перестановки меняют информацию между боксами. S-box работает по сложному принципу, то есть даже если единственный входной бит будет меняться, то это повлияет на несколько выходных битов, то есть свойства каждого выходного бита зависят от каждого входного бита.

Использование нескольких проходов обеспечивает хороший уровень шифрование, при этом необходимо соответствовать критериям рассеивания (diffusion) и запутывания (confusion). Рассеивание выполняется через каскадную комбинацию трансформаций S-box и P-box: при изменении только одного бита во входном тексте S-box будет модифицировать выход нескольких бит, а P-box будет псевдослучайно распространять этот эффект по нескольким S-box. Когда мы говорим о том, что минимальное изменение на входе даёт максимальное изменение на выходе, мы говорим об эффекте снежного кома.

Насколько надёжно шифрование AES?

В последнее время идёт немало обсуждений так называемых взломов, которые обходят необходимость запуска расширенного поиска методом грубой силы для нахождения правильного ключа расшифровки. Технологии, такие как атаки XSL и атаки related-key обсуждаются довольно интенсивно – но успех невелик. Единственный работающий способ взлома шифрования AES заключается в так называемой атаке побочного канала (side-channel). Для её осуществления атака должна происходить только на host-системе, на которой выполняется шифрование AES, и при этом вам необходимо найти способ получения информации о синхронизации кэша. В таком случае можно отследить число тактов компьютера до завершения процесса шифрования.

Конечно, всё это не так легко, поскольку вам требуется доступ к компьютеру, причём достаточно полный доступ для анализа шифрования и права на выполнения кода. Теперь вам наверняка понятно, почему "дыры" в системе безопасности, которые позволяют злоумышленнику получить такие права, пусть даже они звучат совершенно абсурдно, необходимо закрывать как можно быстрее. Но не будем растекаться мыслью по древу: если вы получите доступ к целевому компьютеру, то извлечение ключа AES – дело времени, то есть уже не трудоёмкая задача для суперкомпьютеров, требующая огромных вычислительных ресурсов.

AES внутри Intel

На данный момент интегрированные в CPU инструкции AES начинают иметь смысл – независимо от возможных преимуществ по производительности. С точки зрения безопасности процессор может обрабатывать инструкции AES в инкапсулированном виде, то есть ему не требуются какие-либо таблицы преобразования, необходимые для атаки методом побочного канала.

Core i5 Clarkdale с поддержкой AES


Нажмите на картинку для увеличения.
  • " Intel Core i5-661: тесты нового процессора на дизайне Clarkdale ";
  • " Intel Mobile Core i7, i5 и i3 (Arrandale): новые процессоры для ноутбуков ";
  • " Intel Core i3 и i5: тесты эффективности новых двуядерных процессоров ".

Процессоры на самом деле знаменую собой смену поколений, поскольку при этом не только происходит переход на следующий техпроцесс (32 нм по сравнению с 45 нм), но перед нами и первое поколение CPU с поддержкой нескольких инструкций, ускоряющих шифрование. Intel упоминает добавку как AES New Instructions. Они состоят из четырёх инструкций для шифрования AES (AESENC, AESENCLAST) и расшифровки (AESDEC, AESDECLAST) плюс ещё две инструкции для работы с ключом AES (AESIMC, AESKEYGENASSIST). Как и раньше, инструкции относятся к SIMD, то есть к типу "одна инструкция много данных" (Single Instruction Multiple Data). Поддерживаются все три ключа AES (128, 192 и 256 битов с 10, 12 и 14 проходами подстановки и перестановки).

Поскольку все инструкции AES имеют фиксированную задержку, не зависящую от данных, то есть время фиксированное и доступ к памяти не требуется. Кроме того, модель программирования такая же, как и в случае других инструкций SSE из первоначального стандарта SSE4. Таким образом, все операционные системы, которые поддерживают работу с SSE, смогут использовать и инструкции AES New Instructions.

Будьте осторожны при выборе процессора с ускорением AES, поскольку сегодня лишь немногие модели поддерживают новые инструкции. 32-нм процессоры Core i3 на Clarkdale не поддерживают инструкции, а двуядерная линейка Core i5-600 – поддерживает. У мобильных процессоров ситуация чуть более сложная: если мобильные процессоры Core i3 тоже не поддерживают ускорение AES, то процессоры линейки Core i5-500 уже поддерживают. Однако есть одна модель Core i5-400, лишённая таковой поддержки. Всё было бы гораздо проще, если бы Intel добавила поддержку новых инструкций во все модели.

Тестовая конфигурация

Аппаратная конфигурация
Материнская плата (Socket LGA1156) MSI H55M-ED55 (Rev. 1.0), чипсет: H55, BIOS: 1.11 (01/04/2010)
CPU Intel Intel Core i5-661 (32 нм, 3,33 ГГц, 2x 256 кбайт кэша L2 и 4 Мбайт кэша L3, TDP 87 Вт)
Память DDR3 (два канала) 2x 2 Гбайт DDR3-1600 (Corsair CMD4GX3M2A1600C8)
Жёсткий диск Solidata K5 SLC Flash SSD, SATA/300, кэш 64 Мбайт
Видеокарта Zotac Geforce GTX 260², GPU: GeForce GTX 260 (576 МГц), память: 896 Мбайт DDR3 (1998 МГц), потоковые процессоры: 216, частота блока шейдеров: 1242 МГц
Блок питания PC Power & Cooling, Silencer 750EPS12V 750 Вт
Системное ПО и драйверы
Операционная система Windows 7 Ultimate X64, обновлена 11 января 2010
Драйвер чипсета Intel Chipset Installation Utility Ver. 9.1.1.1025
Графический драйвер Nvidia Version 8.16

Тесты и настройки

Тесты и настройки
7-zip Version 9.1 beta
1. Syntax "a -r -ptest -t7z -m0=LZMA2 -mx1 -mmt=8"
2. Syntax "a -r -ptest -t7z -m0=LZMA2 -mx9 -mmt=8"
3. Integrated Benchmark
Benchmark: THG-Workload
BitLocker Windows 7 integrated
Encrypt RAM-Drive (330 MB)
Benchmark: THG-Workload
Winzip 14 Version 14.0 Pro (8652)
WinZIP Commandline Version 3
1. Syntax "-stest -ycAES256 -a -el -p -r"
2. Syntax "-stest -ycAES256 -a -e0 -p -r"
Benchmark: THG-Workload
Синтетичесике тесты
Everest Version: 5.3
Zlib and AES Benchmark
PCMark Vantage Version: 1.00
Communications Suite
SiSoftware Sandra 2009 Version: 2010 .1.16.10
Processor Arithmetic, Cryptography, Memory Bandwidth

Основной конкурент для нашего обзора: четырёхъядерный процессор Intel Core i7-870 для LGA 1156. Нажмите на картинку для увеличения.
Новая и эффективная: материнская плата MSI H55M-ED55. Нажмите на картинку для увеличения.

Результаты тестов

SiSoftware Sandra 2009 SP3


Тесты ALU и MFLOPS не дали каких либо сюрпризов: четырёхъядерный процессор почти в два раза быстрее, несмотря на меньшую тактовую частоту – как мы и ожидали.

Впрочем, результат теста шифрования совершенно иной: он говорит о том, что процессор Core i5 Clarkdale с ускорением AES до 3x быстрее четырёхъядерного Core i7-870.

Именно поэтому результаты теста шифрования выглядят так хорошо: чистое шифрование AES-256 выполняется более чем в шесть раз быстрее на двуядерном процессоре с аппаратным ускорением.

Тест шифрования SHA-256 доказывает, что данная функция ускоряет только алгоритм AES.

PCMark Vantage Communications Test

Тест PCMark Vantage сообщает нам ровно то же самое: общий результат пакета Communications на 50% быстрее на новом 32-нм двуядерном процессоре Clarkdale по сравнению с 45-нм четырёхъядерным Lynnfield.

А вот и причина.

Опять же: Intel ускорила только алгоритм AES. Сжатие данных от этого не выигрывает, скорость зависит от числа ядер и тактовой частоты.

Расшифровка алгоритма AES тоже довольно сильно ускоряется.





Перед вами ещё один тест, в котором двуядерный Clarkdale Core i5 хорошо показывает себя благодаря поддержке AES.

Bitlocker, Everest и WinZIP 14

Мы использовали функцию шифрования диска BitLocker, встроенную в операционную систему Windows 7 Ultimate, которая тоже базируется на AES. Чтобы не упереться в "узкое место" в виде накопителя, мы решили использовать 330-Мбайт RAM-диск, который сможет показать разницу в производительности между двуядерным Core i5-661 с ускорением AES против четырёхъядерного Core i7-870, который не поддерживает ускорение шифрования. Фактически, разница оказалась близка к 50%, шифрование заняло 7 секунд на мощном четырёхъядерном Core i7, а новый 32-нм двуядерный Core i5-661 справился с той же самой задачей всего за 4 секунды.


Тест шифрования AES в пакете Everest Ultimate Edition демонстрирует фантастический прирост производительности, впрочем, это всё равно остаётся больше теоретическим результатом.

Несмотря на поддержку AES, тест WinZIP 14 выполнялся быстрее на четырёхъядерном процессоре из-за большей мощности. Впрочем, двуядерный процессор с аппаратным ускорением AES всё ещё показал себя хорошо, проиграв только по той причине, что мы указали максимальный уровень сжатия. Мы выбрали подобный режим, поскольку большинство пользователей выберут именно его, если только нет каких-либо причин уменьшить уровень сжатия (например, чтобы быстрее запаковать большой массив данных).

Мы повторили этот тест с шифрованием AES в WinZIP, но уровень сжатия был нулевым – то есть WinZIP просто переписывал файлы в архив. И здесь мы видим, что двуядерный процессор с ускорением AES действительно обгоняет четырёхъядерную модель, где такой функции нет.

7-zip

Мы используем тест сжатия файлов, запускаемый из командной строки, и вновь видим, что четырёхъядерный процессор работает быстрее. Опять же, причина кроется в высоком уровне сжатия. Мы повторили тест с нулевым уровнем сжатия файлов.

В данном случае мы видим мало толку от Core i5-661 и встроенной функции AES. Время добавления файлов в архив составляет одну пятую часть от времени при высоком уровне сжатия, но четырёхъядерный процессор всё равно выходит вперёд.

Как вы можете видеть, на следующих диаграммах, большее число потоков приводят к увеличению производительности 7-zip.



Заключение

Наш анализ дал несколько интересных результатов, но также и показал, что не все приложения сразу же могут выиграть от шести новых инструкций Intel AES New Instructions, которые были разработаны для ускорения шифрования и расшифровки алгоритмов AES-128, AES-192 и AES-256. Мы вкратце рассмотрели, как работает стандарт симметричного шифрования, и почему он имеет значение и для обычных пользователей. Результаты тестов показали весьма серьёзную производительность двуядерного Core i5-661 Clarkdale, который мы сравнивали с четырёхъядерным Core i7-870. Тесты PCMark Vantage и SiSoftware Sandra показали впечатляющий прирост производительности из-за аппаратного ускорения AES. Результаты Everest Ultimate очень похожи.

Впрочем, все упомянутые тестовые пакеты являются синтетическими, то есть они обычно демонстрируют большую разницу, чем можно увидеть в обычной жизни. По этой причине мы также провели тесты архиватора 7-zip 9.1 Beta, BitLocker под Windows 7 Ultimate и WinZIP в последней версии 14, чтобы проверить, какие преимущества мы получим в реальных приложениях. Надо сказать, мы не разочаровались: WinZIP 14 и Bitlocker давали результаты, которые практически повторили выигрыш, полученный в синтетических тестовых пакетах.

Но тест архиватора 7-zip 9.1 beta, который должен поддерживать новые инструкции ускорения AES, не показал заметного преимущества – или оно было слишком маленьким, уступив высокой вычислительной мощности четырёхъядерного Core i7-870, работающего на частоте 2,93 ГГц, что довольно близко к номинальной тактовой частоте 3,33 ГГц у Core i5-661.

В итоге мы можем подтвердить, что подход Intel действительно себя оправдал, хотя нельзя сказать, что всё программное обеспечение, использующее AES, ускоряется. Впрочем, преимущества по более надёжной защите остаются, поскольку аппаратное ускорение шифрования и расшифровки AES предотвращает возможность атаки методом побочного канала, когда ключ AES извлекается путём отслеживания участков доступа к памяти (кэша). Так что наш вывод будет простым: мы ждём, когда новые инструкции станут стандартом всех процессоров.

С повышением уровня использования вычислительных устройств, проникающих во все сферы нашей жизни на работе и дома, необходимость в шифровании стала еще более важной. Настольные компьютеры, ноутбуки, смартфоны, КПК, плееры Blue-ray и многие другие устройства связывает такая необходимость в способности шифровать конфиденциальные данные. Без шифрования все, что вы посылаете по сети (или даже храните на локальном устройстве хранения) находится в открытом состоянии, и любой может прочесть эту информацию в любое время. Конечно, управление доступом/разрешения обеспечивают некоторую защиту, но когда вы серьезно настроены относительно безопасности, шифрование должно быть частью вашей многоуровневой стратегии безопасности. Хотя некоторые могут решить, что им нечего скрывать, суть в том, что информация, которая, по-вашему, не представляет никакой ценности, может быть использована самыми удивительными способами теми людьми, которые и не намереваются соблюдать ваши интересы. Так в сегодняшнем деловом мире шифрование, особенно, должно считаться естественным положением дел, а не дополнительной необязательной опцией.

Важность шифрования

Подумайте о тех ситуациях, в которых шифрование используется (или должно использоваться) в вашей повседневной жизни:

Есть еще масса примеров, но вполне очевидно, что шифрование, и AES в особенности, является неотъемлемой частью компьютерной жизни, независимо от того знаете вы об этом или нет.

Будучи сетевым администратором вы знаете, что шифрование является критической частью вашей внутренней инфраструктуры. Хакеров больше не интересует возможность положить всю вашу сеть, как это было раньше. Почему? Потому что на таких атаках по всей организации не заработаешь денег. С применением все более и более суровых наказаний за незаконную хакерскую деятельность, большинство хакеров больше не занимаются этим исключительно ради интереса. Вместо этого сегодняшний хакер представляет собой незаконного предпринимателя, который хочет заработать денег. Одним из способов сделать это является компрометация ключевых серверов и замалчивание этого факта. Хакер хочет украсть информацию, которую можно выгодно продать, например, базы данных, наполненные личной информацией или секретами компании. Хакер обычно не может сделать деньги, если прервет работоспособность сервера, и не сможет сделать денег, если вы будете в курсе, что он там, и вы можете остановить его до того, как он получит желаемое. Таким образом, вам нужно использовать шифрование внутренней части инфраструктуры в качестве защитного механизма «на крайний случай», чтобы не позволить хакерам получить доступ к важной информации.

Шифрование также является важной частью регламента соответствия повседневных задач ИТ; например следующие положения все включают шифрование, как часть своих стандартов:

  • HIPAA (Health Insurance Portability and Accountability Act)
  • SOX (Sarbanes-Oxley)
  • PCI DSS (Payment Card Industry Data Security Standard)

AES: Новый стандарт

AES является текущим стандартом шифрования, используемым правительством США, и он пришел на смену предыдущему стандарту, тройному DES, который использовал стандартный 56-bit ключ. AES может использовать ключи различной длины, которые характеризуются как AES-128, AES-192 и AES-256. В зависимости от длины ключа может быть до 14 циклов трансформации, необходимой для создания конечного зашифрованного текста.

AES также имеет несколько режимов работы:

  • electronic codebook (ECB)
  • cipher block chaining (CBC)
  • counter (CTR)
  • cipher feedback (CFB)
  • output feedback (OFB)

Цепочка зашифрованных блоков (Cipher block chaining) является самым распространенным режимом, поскольку он предоставляет приемлемый уровень безопасности и не подвержен уязвимости статистических атак.

Трудности: безопасность vs. производительность

Основной проблемой с такими продвинутыми методами шифрования, как AES с CBC является то, что они потребляют много ресурсов процессора. Это особенно касается серверов, но может создавать проблемы и для загруженных клиентских систем, поскольку на них устанавливаются менее мощные процессоры. Это означает, что вы можете оказаться перед выбором: более высокая степень защиты против высокого уровня производительности вашей системы. Эта ситуация может быть настолько проблематичной на стороне сервера, что такие способы обхода этих проблем, как SSL или IPsec карты разгрузки (карты разгрузки шифрования) используются для снижения уровня нагрузки на процессор и позволяют процессору выполнять и другую работу помимо создания сеансов и шифрования.

Проблема с добавляемыми картами заключается в том, что они зависят от приложений и могут не работать, в зависимости от того, для каких целей вы хотите использовать их. Нам нужно общее решение, которое будет работать во всех сценариях шифрования AES, чтобы не нужно было делать ничего специально для разгрузки задачи шифрования центрального процессора. Нам нужно решение ‘plug and play’, которое было бы встроено в ОС и материнскую плату.

Intel AES-NI приходит на помощь

Если вы согласитесь с этим, то есть несколько хороших новостей для вас ‘ новый набор инструкций Intel AES-NI, который в настоящее время доступен в процессорах серии Intel Xeon5600, отвечает этим критериям. Ранее этот процессор был известен под своим кодовым названием Westmere-EP. AES-NI выполняет некоторые шаги AES на аппаратном уровне, прямо в микросхеме процессора. Однако вы должны знать, что AES-NI на процессоре не включает полный процесс реализации AES, лишь некоторые компоненты, необходимые для оптимизации производительности. AES-NI делает это путем добавления шести новых AES инструкций: четыре из них для шифрования/ расшифровки, одна для колонки ‘mix’ (смешивание), и одна для генерирования текста следующего цикла ‘next round’ (где количество циклов контролируется длиной бит, выбранных вами).

Одним из замечательных моментов в Intel AES-NI заключается то, что, поскольку она построена на базе аппаратных средств, нет необходимости хранить в памяти таблицы просмотра, а блоки шифрования выполняются в процессоре. Это снижает шансы успешности атак сторонних каналов (‘side channel attacks’). К тому же, Intel AES-NI позволяет системе выполнять ключи большей длины, в результате чего данные более надежно защищены.

На настоящий момент Intel AES-NI концентрируется в основном на трех моментах:

  • Защищенные транзакции через интернет и в интрасети
  • Полное шифрование диска (например, как в случае с Microsoft BitLocker)
  • Шифрование прикладного уровня (часть защищенной транзакции)

Защищенные транзакции по интернету и интрасети могут включать использование SSL для подключения к защищенному веб сайту в интрасети или интернете. Вдобавок, IPsec туннельный и транспортный режим пользуются все большей популярностью для защиты сеансов в интрасети, а в случае с DirectAccess в интернете. Следует учитывать, что SSL используется для защиты коммуникаций уровня 7, а IPsec используется для защиты коммуникаций сетевого (третьего) уровня.

В последнее время можно было слышать, что компьютерное облако становится следующим большим прорывом в компьютерном мире, и поставщики услуг компьютерного облака значительно выиграют от Intel AES-NI, где большинство их коммуникаций будет осуществляться через зашифрованный канал. Что касается IPsec, если с сервером есть всего несколько IPsec соединений, то будет вполне достаточно и разгрузки SSL. Но если ваш сервер загружен, Intel AES-NI в отдельности или в сочетании с SSL разгрузкой будет более подходящим решением.

К тому же, здесь есть компонент транзакции (‘secure transactions’). Вдобавок к шифрованию прикладного или сетевого уровня, есть шифрование прикладного уровня, которое использует Intel AES-NI. Например:

  • Базы данных можно шифровать
  • Почту можно шифровать
  • Службы управления правами используют шифрование
  • Сама файловая система может быть зашифрована (в отличие от шифрования на дисковом уровне).
  • Такие приложения, как Microsoft SQL могут использовать шифрование Transparent Data Encryption (TDE) для автоматического шифрования записей, внесенных в базу данных.

В конечном счете получается, что Intel AES-NI может значительно ускорить время транзакций и сделать покупателей более счастливыми, а сотрудников более продуктивными.

Полное шифрование диска зашифровывает диск полностью за исключением MBR. Вдобавок к Microsoft BitLocker, есть ряд других приложений шифрования диска, которые могут использовать Intel AES-NI, например PGPdisk. Проблема с полным шифрованием диска заключается в том, что оно может вызывать снижение производительности, в результате чего пользователи могут отказываться от использования данного метода шифрования. С Intel AES-NI это воздействие на производительность практически исчезает, и пользователи более охотно будут включать полное шифрование диска и использовать его преимущества.

Улучшение производительности

Так какие улучшения производительности мы на самом деле увидим с Intel AES-NI? Пока что трудно сказать точно, что данная технология может нам предложить, поскольку она довольно новая. Но компания Intel провела ряд собственных испытаний, результаты которых радуют:

  • При работе с банковскими интернет услугами на Microsoft IIS/PHP сотрудники компании обнаружили, что, сравнивая две системы на базе Nehalem, одна с шифрованием и одна без, был прирост в 23% пользователей, которых можно поддерживать на этой системе. Когда система Nehalem с шифрованием сравнивалась с non-Nehalem системой, улучшение в количестве поддерживаемых пользователей составило 4.5 раза. Это поразительные результаты!
  • В тесте шифрования / расшифровки базы данных Oracle 11g сотрудники компании обнаружили, что при сравнении двух Nehalem систем, одна с включенным шифрованием, другая - нет, система с включенным шифрованием показала 89% снижения времени на расшифровку 5.1 миллионов строк зашифрованной таблицы. Также наблюдалось 87% снижение времени на зашифровку таблиц типа OLTP и повторную вставку и удаление одного миллиона строк.
  • Полное шифрование диска может занимать массу времени для начального шифрования диска. Компания Intel обнаружила, что при шифровании Intel 32 ГБ SDD диска в первый раз с помощью шифрования конечной точки McAfee для ПК наблюдалось снижение времени первого заполнения на 42%. Это просто поразительная разница, которую вы определенно ощутите, если вам до этого доводилось ждать окончание процесса полного шифрования диска в первый раз.

Заключение

Шифрование теперь является требованием практически для всех в повседневной жизни. AES - это новый стандарт шифрования. Хотя шифрование позволяет нам защищать данные, оно может вызывать значительное потребление ресурсов и снижение производительности, а иногда оно может просто не позволять процессору выполнять остальные задачи, которые нам нужны. В прошлом с этой проблемой можно было справиться путем перехода на более мощный процессор или путем добавления процессоров, а также с помощью использования решений разгрузки. Однако все эти подходы имели встроенные ограничения. Новый стандарт Intel AES-NI значительно повышает производительность и безопасность путем перевода 6 новых инструкций, связанных с AES, на микросхему процессора. Это обеспечивает повышение производительности и безопасности в ряде ситуаций, таких как защищенные сети и сеансы прикладного уровня, защищенные транзакции и полное шифрование диска с минимальным воздействием или с полным отсутствуем такового на весь процесс использования. Intel AES-NI должен стать частью любого плана установки клиентских и серверных систем, в которых шифрование будет интенсивно использоваться, например когда DirectAccess подключается к корпоративной сети. Сочетание Nehalem архитектуры и технологии Intel AES-NI обещает коренным образом изменить компьютерный мир и улучшить работу пользователей и администраторов наряду с улучшением производительности.

Для дополнительной информации о процессорах серии Intel Xeon 5600 с Intel AES-NI перейдите по следующей

Бесспорная популярность персональных компьютеров стимулирует разработчиков делать их совершеннее. Шифрование данных – важная часть использования мессенджеров, социальных сетей и прочих видов интернет-коммуникаций. Без него вся ваша информация доступна любому человеку из сети, из любого места. Команды шифрования AES-NI от компании Intel представляют собой улучшенный алгоритм Advanced Encryption Standard. Эти инструкции используются в серверных процессорах Intel Xeon и десктопных/профессиональных Intel Core. Если вы задаётесь вопросом «Intel AES NI , что это в биосе ?», то эта статья будет для вас как никогда кстати.

Зачем её активировать

Intel AES-NI сосредотачивается на таких задачах:

  • защита транзакций в Интернете и интрасетях;
  • шифровании дисков (при использовании Microsoft BitLocker, к примеру);
  • шифровке некоторых частей уже защищённых транзакций (шифрование на прикладном уровне).

Как результат, носители информации зашифровываются быстрее, что можно увидеть на примере программы PGPdisk. Кодировка в режиме CBC/256 с включёнными инструкциями AES-NI эффективней на 20%, нежели без них. Тест производился на файле размером 351 мегабайт. Также стоит отметить скорость дешифрования в CBC/256 с AES-NI – прирост составляет девять процентов.

Как включить функцию в BIOS

Делается это в несколько нажатий кнопок на клавиатуре. Помните, что AES-NI работает только на процессорах от компании Intel. Также стоит проверить поддержку этой технологии вашим ЦП на официальном сайте производителя. Инструкция по включению:

  1. После включения компьютера, базовой системы ввода/вывода.
  2. Перейдите во вкладку «Advanced». В ней найдите строку «Intel AES-NI» и установите значение «Enabled».
  3. Сохраните применённые установки и дождитесь загрузки операционной системы.

Включение опции

Заключение

AES-NI – совокупность инструкций, позволяющая процессору лучше кодировать и декодировать файлы на компьютере. Технология принадлежит компании Интел и используется исключительно её продуктами. Её стоит включить, делается это через БИОС, если вы занимаетесь криптованием объёмных файлов и/или часто проводите транзакции во всемирной паутине.

32-нм Intel Westmere добавляет поддержку ускорения AES: так ли она нужна?

Сегодня безопасность является важной темой – однако важной её считают, главным образом, только профессионалы. Впрочем, если безопасность становится маркетинговым элементом или превращается в характеристику производительности, то такие компании, как Intel, начинают активно её продвигать. Стандарт AES или Advanced Encryption Standard сертифицирован Управлением национальной безопасности США (NSA) и правительством США, а также многими другими органами. 32-нм двухпроцессорное поколение процессоров Intel обещает существенный прирост производительности шифрования и расшифровки AES благодаря новым инструкциям (только двуядерные процессоры Core i5). Мы решили оценить преимущества в реальной жизни и сравнили двуядерный процессор Core i5-661 с новыми инструкциями AES с четырёхъядерным процессором Core i7-870, который не имеет поддержки ускорения шифрования.


Шифрование на самом деле используется намного более интенсивно, чем обычно замечают пользователи. Всё начинается с сайтов в Интернете, которые содержат конфиденциальную информацию, такую как личные данные пользователей, либо с сайтов, где есть конфиденциальная информация о транзакциях: все они используют шифрование TLS или SSL. Такие сервисы, как VoIP, мессенджеры и электронная почта также могут защищаться таким же способом. Виртуальные частные сети (VPN, Virtual Private Network) – ещё один пример, вероятно, очень популярный. Шифрование также затрагивает и такие конфиденциальные области, как электронные платежи. Впрочем, TLS/SSL – это криптографические протоколы связи, а AES, который Intel ускоряет, начиная с нового 32-нм поколения процессоров, является стандартом шифрования общего назначения. Его можно использовать для шифрования отдельных файлов, контейнеров данных и архивов или даже зашифровывать разделы и диски целиком – будь то USB-брелок или системный жёсткий диск. AES может выполняться программно, но есть и продукты с аппаратным ускорением, поскольку шифрование и расшифровка являются довольно серьёзной вычислительной нагрузкой. Такие решения, как TrueCrypt или Microsoft BitLocker, являющийся частью Windows Vista или Windows 7 Ultimate, способны шифровать целые разделы "на лету".

Считаете ли вы или нет, что на вашей системе есть конфиденциальные данные, зависит от того, что вы подразумеваете под этими данными, а также и от вашего персонального уровня комфорта. Кроме того, безопасность всегда подразумевает правильную стратегию и аккуратность в хранении конфиденциальных данных. Никогда нельзя оставлять без внимания такие данные, как реквизиты вашего паспорта или номер и дату окончания срока действия банковской карты. Или даже PIN-код телефона.

Одно можно сказать точно: лучше всего быть аккуратным и благоразумным, чем наоборот – тем более что для этого требуется не так много усилий. Подход Intel к добавлению ускорения AES не охватывает все приложения шифрования и сценарии, только самый популярный стандарт – при этом вы получите всё это бесплатно во всех будущих 32-нм настольных процессорах для массового рынка или для более дорогих сегментов. Но действительно ли новые инструкции AES New Instructions обеспечивают существенный прирост производительности в типичных сценариях шифрования или это, скорее, плод усилий отдела маркетинга? Давайте посмотрим.

Что такое AES?

AES расшифровывается как "Advanced Encryption Standard" – это наиболее популярный стандарт симметричного шифрования в мире ИТ. Стандарт работает с блоками размером 128 бит и поддерживает 128-, 192- или 256-битные ключи (AES-128, AES-192 и AES-256). Многие утилиты шифрования, та же TrueCrypt, поддержали алгоритм AES в самом начале его существования. Но самый большой фактор успеха AES, конечно, заключается в его принятии правительством США в 2002 году, при этом в 2003 году он был принят как стандарт для защиты секретных данных.

Шифрование данных с помощью AES

Шифрование AES базируется на системе подстановок с перестановкой, то есть над данными проводится серия математических операций, чтобы создать значительно модифицированный массив данных (зашифрованный). В качестве исходной информации выступает текст, а ключ отвечает за выполнение математических операций. Операции могут быть как совершенно простыми, например, сдвиг битов или XOR, так и более сложными. Один проход можно легко расшифровать, поэтому все современные алгоритмы шифрования построены на нескольких проходах. В случае AES это 10, 12 или 14 проходов для AES-128, AES-192 или AES-256. Кстати, ключи AES проходят такую же процедуру, что и пользовательские данные, то есть они представляют собой изменяющийся раундовый ключ.

Процесс работает с массивами 4x4 из одиночных байтов, также называемых боксами: S-box используются для подстановок, P-box – для перестановок. Подстановки и перестановки выполняются на разных этапах: подстановки работают внутри так называемых боксов, а перестановки меняют информацию между боксами. S-box работает по сложному принципу, то есть даже если единственный входной бит будет меняться, то это повлияет на несколько выходных битов, то есть свойства каждого выходного бита зависят от каждого входного бита.

Использование нескольких проходов обеспечивает хороший уровень шифрование, при этом необходимо соответствовать критериям рассеивания (diffusion) и запутывания (confusion). Рассеивание выполняется через каскадную комбинацию трансформаций S-box и P-box: при изменении только одного бита во входном тексте S-box будет модифицировать выход нескольких бит, а P-box будет псевдослучайно распространять этот эффект по нескольким S-box. Когда мы говорим о том, что минимальное изменение на входе даёт максимальное изменение на выходе, мы говорим об эффекте снежного кома.

Насколько надёжно шифрование AES?

В последнее время идёт немало обсуждений так называемых взломов, которые обходят необходимость запуска расширенного поиска методом грубой силы для нахождения правильного ключа расшифровки. Технологии, такие как атаки XSL и атаки related-key обсуждаются довольно интенсивно – но успех невелик. Единственный работающий способ взлома шифрования AES заключается в так называемой атаке побочного канала (side-channel). Для её осуществления атака должна происходить только на host-системе, на которой выполняется шифрование AES, и при этом вам необходимо найти способ получения информации о синхронизации кэша. В таком случае можно отследить число тактов компьютера до завершения процесса шифрования.

Конечно, всё это не так легко, поскольку вам требуется доступ к компьютеру, причём достаточно полный доступ для анализа шифрования и права на выполнения кода. Теперь вам наверняка понятно, почему "дыры" в системе безопасности, которые позволяют злоумышленнику получить такие права, пусть даже они звучат совершенно абсурдно, необходимо закрывать как можно быстрее. Но не будем растекаться мыслью по древу: если вы получите доступ к целевому компьютеру, то извлечение ключа AES – дело времени, то есть уже не трудоёмкая задача для суперкомпьютеров, требующая огромных вычислительных ресурсов.

AES внутри Intel

На данный момент интегрированные в CPU инструкции AES начинают иметь смысл – независимо от возможных преимуществ по производительности. С точки зрения безопасности процессор может обрабатывать инструкции AES в инкапсулированном виде, то есть ему не требуются какие-либо таблицы преобразования, необходимые для атаки методом побочного канала.

Core i5 Clarkdale с поддержкой AES


Нажмите на картинку для увеличения.
  • "Intel Core i5-661: тесты нового процессора на дизайне Clarkdale ";
  • "Intel Mobile Core i7, i5 и i3 (Arrandale): новые процессоры для ноутбуков ";
  • "Intel Core i3 и i5: тесты эффективности новых двуядерных процессоров ".

Процессоры на самом деле знаменую собой смену поколений, поскольку при этом не только происходит переход на следующий техпроцесс (32 нм по сравнению с 45 нм), но перед нами и первое поколение CPU с поддержкой нескольких инструкций, ускоряющих шифрование. Intel упоминает добавку как AES New Instructions. Они состоят из четырёх инструкций для шифрования AES (AESENC, AESENCLAST) и расшифровки (AESDEC, AESDECLAST) плюс ещё две инструкции для работы с ключом AES (AESIMC, AESKEYGENASSIST). Как и раньше, инструкции относятся к SIMD, то есть к типу "одна инструкция много данных" (Single Instruction Multiple Data). Поддерживаются все три ключа AES (128, 192 и 256 битов с 10, 12 и 14 проходами подстановки и перестановки).

Поскольку все инструкции AES имеют фиксированную задержку, не зависящую от данных, то есть время фиксированное и доступ к памяти не требуется. Кроме того, модель программирования такая же, как и в случае других инструкций SSE из первоначального стандарта SSE4. Таким образом, все операционные системы, которые поддерживают работу с SSE, смогут использовать и инструкции AES New Instructions.

Будьте осторожны при выборе процессора с ускорением AES, поскольку сегодня лишь немногие модели поддерживают новые инструкции. 32-нм процессоры Core i3 на Clarkdale не поддерживают инструкции, а двуядерная линейка Core i5-600 – поддерживает. У мобильных процессоров ситуация чуть более сложная: если мобильные процессоры Core i3 тоже не поддерживают ускорение AES, то процессоры линейки Core i5-500 уже поддерживают. Однако есть одна модель Core i5-400, лишённая таковой поддержки. Всё было бы гораздо проще, если бы Intel добавила поддержку новых инструкций во все модели.

Тестовая конфигурация

Аппаратная конфигурация
Материнская плата (Socket LGA1156) MSI H55M-ED55 (Rev. 1.0), чипсет: H55, BIOS: 1.11 (01/04/2010)
CPU Intel Intel Core i5-661 (32 нм, 3,33 ГГц, 2x 256 кбайт кэша L2 и 4 Мбайт кэша L3, TDP 87 Вт)
Память DDR3 (два канала) 2x 2 Гбайт DDR3-1600 (Corsair CMD4GX3M2A1600C8)
Жёсткий диск Solidata K5 SLC Flash SSD, SATA/300, кэш 64 Мбайт
Видеокарта Zotac Geforce GTX 260², GPU: GeForce GTX 260 (576 МГц), память: 896 Мбайт DDR3 (1998 МГц), потоковые процессоры: 216, частота блока шейдеров: 1242 МГц
Блок питания PC Power & Cooling, Silencer 750EPS12V 750 Вт
Системное ПО и драйверы
Операционная система Windows 7 Ultimate X64, обновлена 11 января 2010
Драйвер чипсета Intel Chipset Installation Utility Ver. 9.1.1.1025
Графический драйвер Nvidia Version 8.16

Тесты и настройки

Тесты и настройки
7-zip Version 9.1 beta
1. Syntax "a -r -ptest -t7z -m0=LZMA2 -mx1 -mmt=8"
2. Syntax "a -r -ptest -t7z -m0=LZMA2 -mx9 -mmt=8"
3. Integrated Benchmark
Benchmark: THG-Workload
BitLocker Windows 7 integrated
Encrypt RAM-Drive (330 MB)
Benchmark: THG-Workload
Winzip 14 Version 14.0 Pro (8652)
WinZIP Commandline Version 3
1. Syntax "-stest -ycAES256 -a -el -p -r"
2. Syntax "-stest -ycAES256 -a -e0 -p -r"
Benchmark: THG-Workload
Синтетичесике тесты
Everest Version: 5.3
Zlib and AES Benchmark
PCMark Vantage Version: 1.00
Communications Suite
SiSoftware Sandra 2009 Version: 2010 .1.16.10
Processor Arithmetic, Cryptography, Memory Bandwidth

Основной конкурент для нашего обзора: четырёхъядерный процессор Intel Core i7-870 для LGA 1156. Нажмите на картинку для увеличения.
Новая и эффективная: материнская плата MSI H55M-ED55. Нажмите на картинку для увеличения.

Результаты тестов

SiSoftware Sandra 2009 SP3


Тесты ALU и MFLOPS не дали каких либо сюрпризов: четырёхъядерный процессор почти в два раза быстрее, несмотря на меньшую тактовую частоту – как мы и ожидали.

Впрочем, результат теста шифрования совершенно иной: он говорит о том, что процессор Core i5 Clarkdale с ускорением AES до 3x быстрее четырёхъядерного Core i7-870.

Именно поэтому результаты теста шифрования выглядят так хорошо: чистое шифрование AES-256 выполняется более чем в шесть раз быстрее на двуядерном процессоре с аппаратным ускорением.

Тест шифрования SHA-256 доказывает, что данная функция ускоряет только алгоритм AES.

PCMark Vantage Communications Test

Тест PCMark Vantage сообщает нам ровно то же самое: общий результат пакета Communications на 50% быстрее на новом 32-нм двуядерном процессоре Clarkdale по сравнению с 45-нм четырёхъядерным Lynnfield.

А вот и причина.

Опять же: Intel ускорила только алгоритм AES. Сжатие данных от этого не выигрывает, скорость зависит от числа ядер и тактовой частоты.

Расшифровка алгоритма AES тоже довольно сильно ускоряется.





Перед вами ещё один тест, в котором двуядерный Clarkdale Core i5 хорошо показывает себя благодаря поддержке AES.

Bitlocker, Everest и WinZIP 14

Мы использовали функцию шифрования диска BitLocker, встроенную в операционную систему Windows 7 Ultimate, которая тоже базируется на AES. Чтобы не упереться в "узкое место" в виде накопителя, мы решили использовать 330-Мбайт RAM-диск, который сможет показать разницу в производительности между двуядерным Core i5-661 с ускорением AES против четырёхъядерного Core i7-870, который не поддерживает ускорение шифрования. Фактически, разница оказалась близка к 50%, шифрование заняло 7 секунд на мощном четырёхъядерном Core i7, а новый 32-нм двуядерный Core i5-661 справился с той же самой задачей всего за 4 секунды.


Тест шифрования AES в пакете Everest Ultimate Edition демонстрирует фантастический прирост производительности, впрочем, это всё равно остаётся больше теоретическим результатом.

Несмотря на поддержку AES, тест WinZIP 14 выполнялся быстрее на четырёхъядерном процессоре из-за большей мощности. Впрочем, двуядерный процессор с аппаратным ускорением AES всё ещё показал себя хорошо, проиграв только по той причине, что мы указали максимальный уровень сжатия. Мы выбрали подобный режим, поскольку большинство пользователей выберут именно его, если только нет каких-либо причин уменьшить уровень сжатия (например, чтобы быстрее запаковать большой массив данных).

Мы повторили этот тест с шифрованием AES в WinZIP, но уровень сжатия был нулевым – то есть WinZIP просто переписывал файлы в архив. И здесь мы видим, что двуядерный процессор с ускорением AES действительно обгоняет четырёхъядерную модель, где такой функции нет.

7-zip

Мы используем тест сжатия файлов, запускаемый из командной строки, и вновь видим, что четырёхъядерный процессор работает быстрее. Опять же, причина кроется в высоком уровне сжатия. Мы повторили тест с нулевым уровнем сжатия файлов.

В данном случае мы видим мало толку от Core i5-661 и встроенной функции AES. Время добавления файлов в архив составляет одну пятую часть от времени при высоком уровне сжатия, но четырёхъядерный процессор всё равно выходит вперёд.

Как вы можете видеть, на следующих диаграммах, большее число потоков приводят к увеличению производительности 7-zip.



Заключение

Наш анализ дал несколько интересных результатов, но также и показал, что не все приложения сразу же могут выиграть от шести новых инструкций Intel AES New Instructions, которые были разработаны для ускорения шифрования и расшифровки алгоритмов AES-128, AES-192 и AES-256. Мы вкратце рассмотрели, как работает стандарт симметричного шифрования, и почему он имеет значение и для обычных пользователей. Результаты тестов показали весьма серьёзную производительность двуядерного Core i5-661 Clarkdale, который мы сравнивали с четырёхъядерным Core i7-870. Тесты PCMark Vantage и SiSoftware Sandra показали впечатляющий прирост производительности из-за аппаратного ускорения AES. Результаты Everest Ultimate очень похожи.

Впрочем, все упомянутые тестовые пакеты являются синтетическими, то есть они обычно демонстрируют большую разницу, чем можно увидеть в обычной жизни. По этой причине мы также провели тесты архиватора 7-zip 9.1 Beta, BitLocker под Windows 7 Ultimate и WinZIP в последней версии 14, чтобы проверить, какие преимущества мы получим в реальных приложениях. Надо сказать, мы не разочаровались: WinZIP 14 и Bitlocker давали результаты, которые практически повторили выигрыш, полученный в синтетических тестовых пакетах.

Но тест архиватора 7-zip 9.1 beta, который должен поддерживать новые инструкции ускорения AES, не показал заметного преимущества – или оно было слишком маленьким, уступив высокой вычислительной мощности четырёхъядерного Core i7-870, работающего на частоте 2,93 ГГц, что довольно близко к номинальной тактовой частоте 3,33 ГГц у Core i5-661.

В итоге мы можем подтвердить, что подход Intel действительно себя оправдал, хотя нельзя сказать, что всё программное обеспечение, использующее AES, ускоряется. Впрочем, преимущества по более надёжной защите остаются, поскольку аппаратное ускорение шифрования и расшифровки AES предотвращает возможность атаки методом побочного канала, когда ключ AES извлекается путём отслеживания участков доступа к памяти (кэша). Так что наш вывод будет простым: мы ждём, когда новые инструкции станут стандартом всех процессоров.