Intel aes ni что это в биосе

Содержание

Как проверить включено ли шифрование AES-NI в Linux » Администрирование серверов

Intel aes ni что это в биосе

Intel Advanced Encryption Standard (AES) или новые инструкции (AES-NI) включают  быстро аппаратное шифрование и дешифрование для OpenSSL, SSH, VPN Linux / Unix / OSX полное шифрование диска и многое другое. Как проверить поддержку Intel или AMD AES-NI моей Linux системе и включена ли она, в Linux, включая OpenSSL?

Расширенный стандарт шифрования Набор команд (или Intel Advanced Encryption Standard New Instructions — «AES-NI») позволяет Intel / AMD и другим процессорам, выполнять быстрое аппаратное шифрование и дешифрование.

»AES-NI» является расширением множества архитектуры инструкций x86 для микропроцессоров Intel и от AMD. Это увеличивает скорость приложений, выполняющих шифрование и дешифрование с использованием AES.

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

 Поддерживаются следующие процессоры:

  • Intel Westmere / Westmere-EP (Xeon 56xx) / Clarkdale (за исключением Core i3, Pentium и Celeron) / Arrandale (за исключением Celeron, Pentium, Core i3, Core i5-4XXM).
  • Intel Sandy Bridge процессоры (кроме Pentium, Celeron, Core i3).
  • Мобильный Intel Core i7 и Core i5.
  • Intel Ivy Bridge процессоры i5, все i7, Xeon и i3-2115C только.
  • Процессоры Intel Haswell (все, кроме i3-4000m, Pentium и Celeron).AMD Bulldozer / Piledriver / каток / Jaguar / Puma, основанные процессоры.
  • Процессоры Geode LX AMD.
  • VIA PadLock (другой набор команд, чем Intel AES-NI, но делает то же самое).
  • ARM — выбран ALLWINNER и Broadcom с помощью процессора безопасности.

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

Для получения списка процессоров, поддерживающих  AES-NI, см Intel / AMD АРК / ARM / VIA официальные сайты и документацию.

Как я узнать, что процессор имеет набор команд AES / AES-NI?

Чтобы узнать тип процессора и тип архитектуры:

Введите следующую команду, чтобы убедиться, что в процессор установлена инструкция AES и включена в BIOS:

# grep -o aes /proc/cpuinfo

# grep -o aes /proc/cpuinfo

ИЛИ

# grep -m1 -o aes /proc/cpuinfo

# grep -m1 -o aes /proc/cpuinfo

Примеры:

Вывод команды aes  означает, что у меня  поддержка AES-NI включена на Linux.

# grep -m1 -o aes /proc/cpuinfo

# grep -m1 -o aes /proc/cpuinfo

результат

Пустой вывод означает, что поддержка AES отключена

Как я могу проверить, что все мои процессоры поддерживают AES NI?

Результат выполнения следующих двух команд должен быть такой же:

# lscpu | grep 'CPU(s):' 32

# lscpu | grep 'CPU(s):'32

или

# grep -o aes /proc/cpuinfo | wc -l  32

# grep -o aes /proc/cpuinfo | wc -l 32

или

# sort -u /proc/crypto | grep module

# sort -u /proc/crypto | grep module

Результат

module : aesni_intel module : aes_x86_64 module : crc32_pclmul module : crct10dif_pclmul module : ghash_clmulni_intel module : kernel

module       : aesni_intelmodule       : aes_x86_64module       : crc32_pclmulmodule       : crct10dif_pclmulmodule       : ghash_clmulni_intelmodule       : kernel

Включен Intel AES-NI для OpenSSL?

$ openssl engine

Результат команды для VIA, если AES поддерживается

(padlock) VIA PadLock (no-RNG, no-ACE) (dynamic) Dynamic engine loading support

(padlock) VIA PadLock (no-RNG, no-ACE)(dynamic) Dynamic engine loading support

Результат команды на Intel, с поддержкой AES-NI

$ openssl engine (aesni) Intel AES-NI engine (dynamic) Dynamic engine loading support

$ openssl engine(aesni) Intel AES-NI engine(dynamic) Dynamic engine loading support

Тест: AES-NI процессоров против процессора без поддержки AES-NI / Packlock

В этом примере, SERVERA имеет AES-NI и SERVERB не имеет поддержку аппаратного шифрования:

$ dd if=/dev/zero count=1000 bs=1M | ssh -l user -c aes128-cbc serverA «cat >/dev/null» Password: 1000+0 records in 1000+0 records out 1048576000 bytes (1.0 GB) copied, 10.6691 s, 98.3 MB/s

$ dd if=/dev/zero count=1000 bs=1M | ssh -l user -c aes128-cbc serverA «cat >/dev/null»Password:1000+0 records in1000+0 records out1048576000 bytes (1.0 GB) copied, 10.6691 s, 98.3 MB/s

и

$ dd if=/dev/zero count=1000 bs=1M | ssh -l user -c aes128-cbc serverB «cat >/dev/null» user@localhost's password: 1000+0 records in 1000+0 records out 1048576000 bytes (1.0 GB) copied, 31.6675 s, 33.1 MB/s

$ dd if=/dev/zero count=1000 bs=1M | ssh -l user -c aes128-cbc serverB «cat >/dev/null»user@localhost's password:1000+0 records in1000+0 records out1048576000 bytes (1.0 GB) copied, 31.6675 s, 33.1 MB/s

Тест: Производительность OpenSSL?

Опять выполните следующие команды на обоих системах:

# openssl speed

ИЛИ

# openssl speed aes-128-cbc

# openssl speed aes-128-cbc

Популярные Linux или Unix / BSD приложения, которые лучше работают с AES-NI с высокой скоростью шифрования / дешифрования:

  • dm-crypt шифрование диска
  • 7-Zip приложение.
  • Chrome Google и Firefox браузеров
  • Во FreeBSD OpenCrypto API т.е. AESNI драйвер ZFS и других файловых систем.
  • OpenSSL 1.0.1 и выше.
  • TrueCrypt 7.0 и выше или VeraCrypt.
  • Citrix XenClient 1.0 и выше.
  • GCC 4.4+, Intel C / C ++ компилятор 11.1+, Clang 3.3+ и более.
  • Библиотеки для golang, Java, СНБ, OpenSSL и более.
  • Linux и BSD брандмауэры и VPN особенно легко использовать pfsense, IPCop и более.
  • Операционная система на базе Linux, * BSD, Unix, Microsoft, Android, IOS, Apple OS X и более.

Администрирование серверов Unix-ОС, подробнее [email protected]

Источник: https://system-admins.ru/kak-proverit-vklyucheno-li-shifrovanie-aes-ni-v-linux/

Полный обзор возможностей БИОСа и методы настройки его компонентов на компьютере

Большинство пользователей ПК и ноутбуков знает, что такое Windows, или операционная система, но далеко не каждый имеет представления о БИОСе.

Однако настройка БИОСа на компьютере влияет на его возможности, функциональность и на работу самой операционной системы.

Чтобы правильно ее выполнить, нужно узнать, за что отвечает каждый пункт BIOS (а выпускается он только на английском языке).

Что такое БИОС?

Если расшифровать и перевести аббревиатуру, то получится «базовая система ввода и вывода». На практике это подразумевает, что БИОС служит связующим элементом между операционной системой и компьютерной конфигурацией (проще говоря, железом).

Дополнительная функция системы BIOS – это связь и настройка «Виндоус» или любой другой операционной системы с элементами компьютера или ноутбука. Только после настройки этих параметров возможна корректная работа ОС.

Первое знакомство с функционалом

Основной функционал связан с оптимизацией комплектующих деталей, железа (оперативной памяти, жесткого диска, видеопамяти и других элементов). Одна из функций – тест оборудования перед стартом операционной системы.

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

Базовые настройки системы

Чтобы оказаться в BIOS, при запуске компьютера нужно зажать клавишу Del, либо F8, F2, F12. Всё зависит от производителя ПК. На некоторых ноутбуках есть специальная кнопка запуска БИОС.

Совет! В Windows 10 выход в систему стал возможен из меню запуска/выключения ПК.

Проводить любые операции в системе БИОС можно только с помощью клавиш вверх-вниз и Enter. Меняют значение либо боковыми стрелками вперед-назад, либо +/-. Для выхода и сохранения настроек нужно выбрать соответствующий пункт меню. Если нужно выйти без сохранения, просто нажимают Esc.

Main – главное меню

На этом экране пользователь оказывается, как только войдет в BIOS. Здесь содержатся сведения о системе и компьютере. Изменить тут можно время и дату в разделе System Date/Time. Среди основных данных отмечены: процессор и его производитель, тактовая частота, а также тип оперативной памяти.

Дополнительно указана информация о BIOS:

  • производитель;
  • базовая версия;
  • версия первичного контроллера GOP, который опознает дискретную видеокарту;
  • версия первичного контроллера;
  • регистрационный номер ОС;
  • уровень доступа пользователя – как правило, администратор.

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

Advanced – продвинутые настройки

В этом разделе меню можно сделать точную настройку системы. Вот пункты, которые можно найти в нем:

  1. Easy Flash. Отвечает за обновление системы, установку ОС с флешки. Выбрать этот пункт следует, если планируется переустановка системы, либо запись новой Windows.
  2. Pointing Device. Эта функция используется для включения и отключения сенсора, чаще всего ее можно встретить в БИОСе ноутбуков. Сенсор отвечает за работу тач-пада.
  3. Wake On Lid Open. Эта функция также встречается только у ноутбуков, отвечает она за активацию девайса при взаимодействии с крышкой. Если отключить функцию, то пользователю придется постоянно активировать ноутбук клавишей включения.
  4. Power Off Energy Saving. Этот режим отвечает за сохранность батареи в выключенном состоянии ноутбука. Лучше не трогать настройку при стандартных параметрах.
  5. Intel Virtualization. Технология отвечает за работу процессора с графической информацией, если в ОС создается виртуальная машина. Работа с параметром предназначена для продвинутых пользователей.
  6. Intel FES-NI. Пункт отвечает за защиту данных при взаимодействии с процессором. Установить нужно, если на ноутбуке хранится важная информация. После ошибки ее можно восстановить с резервной копии.
  7. VT-d, также может называться Technology for directed I/O. Эта строчка в меню отвечает за аппаратную визуализацию для приспособлений ввода и вывода. Также используется для эмуляции виртуальных машин.
  8. Sata. Подпункт указывает на подсоединенные устройства – жесткие диски, приводы. Используется с целью получения информации о рабочих или вышедших из строя деталях.
  9. Graphics Configuration. Эта функция отвечает за управление встроенным графическим процессором. В этом пункте пользователь может настроить, сколько оперативной памяти потребляет интегрированный адаптер.
  10. Anti-Theft. Технология защищает ноутбук в случае кражи – не получится использовать его аппаратные части. Для реализации функции необходим 3g модуль, встроенный в устройство.
  11. USB Configuration. Через эту строчку в меню можно настроить ЮСБ порты. Среднестатистическому пользователю вмешиваться в работу этих портов необязательно.
  12. Network Stack. Строчка отвечает за загрузку обновлений БИОСа через сеть, с помощью виртуального диска.
Читайте также  Заблокировался айпад от неправильного пароля что делать

Вмешиваться в настройки БИОС нежелательно, но порой у пользователей возникает потребность в изменении некоторых параметров системы.

Boot – меню загрузки

В этом пункте можно выставить порядок получения системой информации – напрямую с HDD, внешнего диска или флешки. Именно в этой строчке выбирают приоритет загрузки, если на ПК установлено 2 и более ОС.

До появления Windows 10 в этой строчке выбирали только загрузку с внешнего устройства или приоритет ОС. С переходом на 10 версию популярной операционной системы появился новый пункт.

Важно! Новый пункт Secure boot не позволяет загрузить ПО с любых источников. При переустановке системы его нужно отключать, если используется диск или флешка с ОС.

Также там встречаются параметры Fast boot и Launch CSM. Первая отвечает за быструю активацию системы, а вторая – за установку новой ОС.

Tools – настройка параметров

В некоторых ноутбуках и ПК, особенно на базе материнской платы от ASUS, этот подраздел меню вынесен отдельно и объединяет параметры, которые обычно расположены в другой части.

Так, здесь есть пункт EZ Flash, который позволяет устанавливать и обновлять БИОС с флешки или диска.

Вторая позиция – AI NET отвечает за информирование пользователя об используемом сетевом кабеле.

Save/Exit

Финальный пункт любого БИОСа, вне зависимости от его версии, — это сохранение. Пользователю доступно несколько команд:

  • если нажать Esc, либо выбрать строчку Discard and exit, то изменения не сохранятся;
  • сбросить настройки к стандартным, установленным на заводе, поможет пункт Restore Defauls;
  • если нужно сохранить все изменения, выбирают Save and Exit;
  • для удаления всех внесенных за последний сеанс изменений нужно воспользоваться полем Discard Changes;
  • для сохранения всех изменений называют Save Changes.

При выборе Boot Override можно однократно запустить одну из ОС, если их больше 2 на ПК.

Другие параметры и работа с ними

В описании не указаны некоторые функции, например, установка базовой частоты ядер процессоров, ручная регулировка режима напряжения чипсета.

Пользователь без особых показаний не должен вмешиваться в работу этих характеристик.

Превышение или понижение частоты работы процессора, уменьшение или увеличение напряжения может привести к тому, что компьютер будет перегреваться, в результате чего выйдет из строя.

Через BIOS настраивают параметры аппаратной части компьютера или ноутбука. Например, можно сменить активность сочетания клавиш с Fn. Это простая функция. Некоторые характеристики — частота процессора или напряжение чипсета — нельзя менять без консультации специалиста.

BIOS регулярно обновляется, и внешний интерфейс может меняться от случая к случаю. Однако основные пункты меню почти всегда идентичны.

Источник: http://setupik.ru/polnyiy-obzor-vozmozhnostey-biosa-i-metodyi-nastroyki-ego-komponentov-na-kompyutere.html

Intel® Advanced Encryption Standard Instructions (AES-NI)

AES (Advanced Encryption Standard) is an encryption standard adopted by the U.S. government starting in 2001. It is widely used across the software ecosystem to protect network traffic, personal data, and corporate IT infrastructure.

AES is a symmetric block cipher that encrypts/decrypts data through several rounds. The new 2010 Intel® Core™ processor family (code name Westmere) includes a set of new instructions, Intel® Advanced Encryption Standard (AES) New Instructions (AES-NI).

The instructions were designed to implement some of the complex and performance intensive steps of the AES algorithm using hardware and thus accelerating the execution of the AES algorithms.

AES-NI can be used to accelerate the performance of an implementation of AES by 3 to 10x over a completely software implementation. The AES algorithm works by encrypting a fixed block size of 128 bits of plain text in several rounds to produce the final encrypted cipher text.

The number of rounds (10, 12, or 14) used depends on the key length (128b, 192b, or 256b). Each round performs a sequence of steps on the input state, which is then fed into the following round. Each round is encrypted using a subkey that is generated using a key schedule.

For more details on AES please refer to [1].The new AES-NI instruction set is comprised of six new instructions that perform several compute intensive parts of the AES algorithm. These instructions can execute using significantly less clock cycles than a software solution.

Four of the new instructions are for accelerating the encryption/decryption of a round and two new instructions are for round key generation. The following is a description of the new instructions.

  • AESENC. This instruction performs a single round of encryption. The instruction combines the four steps of the AES algorithm — ShiftRows, SubBytes, MixColumns & AddRoundKey into a single instruction.
  • AESENCLAST. Instruction for the last round of encryption. Combines the ShiftRows, SubBytes, & AddRoundKey steps into one instruction.
  • AESDEC. Instruction for a single round of decryption. This combines the four steps of AES — InvShiftRows, InvSubBytes, InvMixColumns, AddRoundKey into a single instruction
  • AESDECLAST. Performs last round of decryption. It combines InvShiftRows, InvSubBytes, AddRoundKey into one instruction.
  • AESKEYGENASSIST is used for generating the round keys used for encryption.
  • AESIMC is used for converting the encryption round keys to a form usable for decryption using the Equivalent Inverse Cipher.

For details on these instructions and their usage please refer to the white paper [3];

Benefits of using AES-NI

Performance ImprovementThe performance improvement expected with the use of AES-NI would depend on the applications and how much of the application time is spent in encryption and decryption. At the algorithm level, using AES-NI can provide significant speedup of AES.

For non-parallel modes of AES operation such as CBC-encrypt AES-NI can provide a 2-3 fold gain in performance over a completely software approach. For parallelizable modes such as CBC-decrypt and CTR, AES-NI can provide a 10x improvement over software solutions.

For details on performance please refer to [3].

Intel continues to provide leadership in developing instruction- set extensions with recently released ISA support for Advanced Encryption Standard (AES).

This paper presents the excellent performance of the AES algorithm on the Intel® Core™ i7 Processor Extreme Edition, i7-980X, using the AES New Instructions (AES-NI).

Performance results for serial and parallel modes of operation are provided for all key sizes, for variable numbers of cores and threads. These results have been achieved using highly optimized implementations of the AES functions that can achieve ~1.

3 cycles/byte on a single-core Intel® Core™ i7 Processor Extreme Edition, i7-980X for AES-128 in parallel modes. The paper also has a brief description of how to code to achieve these results and a reference to the complete source code. (Read «Breakthrough AES Performance with Intel® AES New Instructions» White Paper in its entirety.)

Improved Security

Beyond improving performance, the new instructions help address recently discovered side channel attacks on AES. AES-NI instructions perform the decryption and encryption completely in hardware without the need for software lookup tables. Therefore using AES-NI can lower the risk of side-channel attacks as well as greatly improve AES performance. For details please refer to [3].

Using AES-NI

AES-NI instructions can be used in any application that uses AES for encryption. AES is very widely used in several applications such as network encryption, disk and file encryption applications.

File-level and disk encryption applications use AES to protect data stored on a disk. Networking applications use encryption to protect data in flight with protocols encompassing SSL, TLS, IPsec, HTTPS, FTP, SSH, etc.

There are several ways to take advantage of AES-NI in your applications, whether you are starting from scratch or optimizing existing applications. The following shows several methods for using AES-NI.

Using Standard Libraries

If you are using existing crypto libraries that provide the crypto functionalities including AES, all you need to do is recompile your applications to include the latest libraries. The following table shows the list of libraries and versions that are optimized to take advantage of AES-NI.

Library Description Version supporting AES-NI
Open SSL Open source library implementation of SSL and TLS. Supports several cryptographic functions including AES Direct support in V1.0 (experimental version)0.9.8k or later via patch
Intel ® Integrated Performance Primitives (IPP) crypto Extensive library of multicore-ready, highly optimized implementations of several cryptographic algorithms including AES. V6.1 or later
Microsoft* Cryptography API: Next Generation1 APIs included with Microsoft* Operating systems provides cryptographic services to applications. Windows 7
Читайте также  Note acceptance rus moscow itt что это

Using C/C++ or assembly

If you have existing C/C++ or assembly implementations of AES algorithms you can take advantage of the support provided in most of the standard compiler development tools. You will need to modify your code to replace code blocks with the equivalent AES-NI instructions. AES-NI instructions can be called from C/C++ either using inline assembly or using special functions know as intrinsics. Each intrinsic maps to one of the new instructions. Using intrinsics allows you to develop code using the syntax of C/C++ function calls and variables instead of inline assembly language.To use AES-NI in assembly language you can directly call the relevant instruction from your code.The following compilers provide C/C++ as well assembly support for AES-NI.

Compiler Description Version supporting AES-NI
Gcc/g++ Open source GNU compiler for C/C++ 4.4 or later
Intel® C/C++ compiler Intel compiler tools for C/C+ 11.1 or later
Microsoft* Visual C++ C/C++ compiler tools for Windows* operating systems 2008 SP1 or later

Additional Links

[1] Advanced Encryption Standard (AES) — http://en.wikipedia.org/wiki/Advanced_Encryption_Standard

[2] Intel ® Performance Primitives (IPP) web page — /en-us/intel-ipp/

[3] White Paper on AES-NI — /en-us/articles/intel-advanced-encryption-standard-aes-instructions-set

[4] Intel® C/C++ compiler — /en-us/intel-compilers/

[5] Download the Intel® AES-NI Sample Library v1.2

[6] OpenSSL libraries — http://www.openssl.org/

[7] White Paper — «Securing the Enterprise with Intel® AES-NI» — http://www.intel.com/Assets/en_US/PDF/whitepaper/323587.pdf

[8] White Paper — «Breakthrough AES Performance with Intel® AES New Instructions» — http://software.intel.com/sites/default/files/m/d/4/1/d/8/10TB24_Breakthrough_AES_Performance_with_Intel_AES_New_Instructions.final.secure.pdf

1 Note the Microsoft* Crypto API that preceded the Microsoft* Crypto API: Next Generation is not optimized for AES-NI.

Источник: https://software.intel.com/en-us/articles/intel-advanced-encryption-standard-instructions-aes-ni

Пошаговая инструкция по правильной настройке BIOS на компьютере

BIOS является системной программой, вшитой в специальный чип, расположенный на материнской плате любого компьютера. Настройка bios позволяет немного подкорректировать некоторые параметры вашего ПК и увеличить его работоспособность.

Бытует неправильное мнение, что настройка bios собьется при отсутствии напряжения.

Чтобы этого не случилось, на «материнку» ставят литиевый аккумулятор или специальную батарейку, поддерживающую настройки биоса на компьютере по умолчанию.

Эта программа является посредником и обеспечивает взаимодействие устройств с ОС. А как же включить bios?

Настройки биоса на компьютере по умолчанию

После подключения к сети вашего персонального друга (компьютера) начинается загрузка основной ОС, затем подключается винчестер, с которого загружается «Виндоус» или другая ОС. Настройки биоса не включаются автоматически на персональном устройстве.

Для входа в этот режим настроек необходимо после включения компьютера подождать одиночный звуковой сигнал или начало надписи о загрузке, а затем несколько раз нажать кнопку «F2» или «DEL (Delete)» (зависит от «материнки»). Правильный вариант высвечивается внизу экрана.

После этого включаются настройки биоса на компьютере по умолчанию. Количество и названия основных пунктов меню, расположенных вверху таблицы настроек bios, могут отличаться. Мы рассмотрим основные разделы и подразделы одного из вариантов такого меню, которое состоит из пунктов:

  1. Main — выбор даты, времени, жестких дисков и подключенных накопителей.
  2. Advanced — выбор этого пункта позволит выбрать и поменять режимы:
  • процессора (например, разогнать его);
  • памяти;
  • портов (входов-выходов) компьютера.
  1. Power — изменение конфигурации питания.
  2. Boot — изменение загрузочных параметров.
  3. Boot Setting Configuration (Boot) — выбор параметров, влияющих на быстроту загрузки ОС и на определение мыши и клавиатуры.
  4. Tools — специализированные настройки. Например, обновление с «флешки».
  5. Exit — Выход. Можно записать изменения и выйти из bios или оставить все как было (по умолчанию).

Как настроить биос — основные разделы

MAIN — раздел для:

  • непосредственной корректировки временных данных;
  • определения и изменения некоторых параметров винчестеров (жестких дисков) после их выбора с помощью «стрелок» клавиатуры и нажатия кнопки «Ввод» (Enter). Рисунок 1.В меню Main BIOS Setup вы попадаете сразу, как зайдете в БИОС

Если вы хотите перестроить режимы винчестера, то после нажатия кнопки «Ввод» вы попадете в его меню по умолчанию. Для нормальной работы необходимо выставить «стрелками» и кнопкой «Ввод» в пунктах:

  • LBA Large Mode — Auto;
  • Block (Multi-Sector Transfer) — Auto;
  • PIO Mode — Auto;
  • DMA Mode — Auto;
  • 32 Bit Transfer — Enabled;
  • Hard Disk Write Protect — Disabled;
  • Storage Configuration — желательно не изменять;
  • SATA Detect Time out — изменять нежелательно.
  • Configure SATA as — выставить на AHCI.
  • System Information — данные о системе, которые можно почитать.

ADVANCED — раздел непосредственных настроек основных узлов компьютера. Рисунок 2. Он состоит из подразделов:

  1. JumperFree Configuration — из него (нажатием кнопки «Ввод» (Enter)) попадаем в меню Configure System Frequency/Voltage, которое позволяет настраивать модули памяти и процессор. Оно состоит из пунктов:
  • AI Overclocking (режимы Auto и Manual) служит для разгона процессора вручную или автоматически;
  • DRAM Frequency — изменяет частоту (тактовую) шины модулей памяти;
  • Memory Voltage — ручная смена напряжения на модулях памяти;
  • NB Voltage — ручная смена напряжения на чипсете.
  1. CPU Configuration — при нажатии кнопки «Ввод» (Enter) открывается меню, в котором можно просматривать и изменять некоторые данные процессора.
  2. Chipset — менять не рекомендуется.
  3. Onboard Devices Configuration — смена настроек некоторых портов и контролеров:
  • Serial Portl Address — смена адреса COM-порта;
  • Parallel Port Address — смена адреса LPT-порта;
  • Parallel Port Mode — смена режимов параллельного (LPT) порта и адресов некоторых других портов.
  1. USB Configuration — смена работы (например, включение/отключение) USB-интерфейса.
  2. PCIPnP — менять не рекомендуется.

    Раздел Advanced зачастую содержит детальные настройки процессора, чипсета, устройств, опции по разгону и т.д.

POWER — смена настроек питания. Для нормальной работы необходимо выставить «стрелками» и кнопкой «Ввод» в пунктах:

  1. Suspend Mode — Auto.
  2. ACPI 2.0 Support — Disabled.
  3. ACPI APIC Support — Enabled.
  4. APM Configuration — изменять нежелательно.
  5. Hardware Monitor — корректировка общего питания, оборотов кулеров и температуры.

Настройка биос — остальные разделы

BOOT — управление параметрами непосредственной загрузки. Состоит из:

  1. Boot Device Priority — выбор приоритетного накопителя (винчестера, дисковода, флешки и прочее) при работе или при установке какой-либо ОС.
  2. Hard Disk Drivers — установка приоритетного винчестера, если их несколько.
  3. Boot Setting Configuration — выбор конфигурации системы и компьютера при загрузке. При нажатии кнопки «Ввод» (Enter) открывается меню:
  • Quick Boot — опция теста памяти (оперативной), изменив которую можно ускорить загрузку ОС;
  • Full Screen Logo — активировав/деактивировав параметр, вы сможете включить или заставку, или информацию о процессе загрузки;
  • Add On ROM Display Mode — определение очереди на экране информации о модулях, подключенных к «материнке» через слоты;
  • Bootup Num-Lock — определение состояния кнопки «Num Lock» при инициализации БИОС;
  • Wait For ‘F1′ If Error — принудительное нажатие кнопки «F1» при возникновении ошибки;
  • Hit ‘ DEL’ Message Display — надпись, указывающая клавишу для входа в БИОС.Раздел Boot необходим для указания загрузочных устройств и соответствующих им приоритетов загрузки

TOOLS — служит для обновления БИОС.

EXIT — выход из BIOS. Имеет 4 режима:

  1. Exit & Save Changes (F10) — выход с сохранением данных, установленных непосредственно пользователем.
  2. Exit & Discard Changes — выход без сохранения данных (заводская установка).
  3. Discard Changes — отмена изменений.
  4. Load Setup Defaults — установка параметров по умолчанию.

    В меню Exit можно сохранить измененные настройки, а также сбросить БИОС на настройки по-умолчанию

Как правильно настроить bios в картинках по умолчанию, знает почти каждый пользователь. Но если вы начинающий пользователь, войдите в интернет. В сети существует множество ресурсов, в которых есть страницы «настройка системы bios в картинках».

Источник: http://itguides.ru/hard/bios/nastrojka-bios.html

Аппаратная поддержка алгоритма AES современными процессорами

Компанией Intel в 2008 г. были предложены новые команды для x86 архитектуры, которые добавили поддержку на аппаратном уровне симметричного алгоритма шифрование AES(Advanced Encryption Standard).

На данный момент AES — один из самых популярных алгоритмов блочного шифрования. Поэтому аппаратная реализация должна привести к повышению производительности программ использующих этот алгоритм шифрования(OpenSSL, The Bat, TrueCrypt …).

Новое расширение команд получило название AES-NI. Оно содержит в себе следующие инструкции:

  • AESENC — Выполнить один раунд шифрования AES,
  • AESENCLAST- Выполнить последний раунд шифрования AES,
  • AESDEC — Выполнить один раунд расшифрования AES,
  • AESDECLAST — Выполнить последний раунд расшифрования AES,
  • AESKEYGENASSIST — Поспособствовать в генерации раундового ключа AES,
  • AESIMC — Обратный Mix Columns.

Так как про сам алгоритм шифрования AES было уже было сказано многое, то в этом посте рассмотрим, как можно воспользоваться этими инструкциями.

Для начала вспомним, как работает AES. Это потребуется для того, чтобы понять, какие механизмы реализованы в этих инструкциях.

Алгоритм AES использует 4 функции:

  1. AddRound — XOR(исключающие или) сообщения с ключом,
  2. SubBytes — функция подстановки,
  3. ShiftRows- циклический сдвиг полей в блоке по заданному правилу,
  4. MixColumns — процедура смешивания.

Сам алгоритм шифрования выглядит так:

Расширение ключа/ExpandKey

Алгоритм расширения ключа в псевдокоде выглядит так:

KeyExpansion(byte key[4*Nk], word w[Nb*(Nr+1)], Nk)begin word temp i = 0; while ( i < Nk) w[i] = word(key[4*i], key[4*i+1], key[4*i+2], key[4*i+3]) i = i+1 end while i = Nk while ( i < Nb * (Nr+1)) temp = w[i-1] if (i mod Nk = 0) temp = SubWord(RotWord(temp)) xor Rcon[i/Nk] else if (Nk > 6 and i mod Nk = 4) temp = SubWord(temp) end if w[i] = w[i-Nk] xor temp i = i + 1 end whileend

Читайте также  AMD ahci bios rom что это

Для аппаратной поддержки надо использовать инструкцию AESKEYGENASSIST, которая выполнит:

AESKEYGENASSIST xmm1, xmm2/m128, imm8 Tmp := xmm2/LOAD(m128) X3[31-0] = Tmp[127-96]; X2[31-0] = Tmp[95-64]; X1[31-0] = Tmp[63-32]; X0[31-0] = Tmp[31-0]; RCON[7-0]:= imm8; RCON [31-8]:= 0; xmm1 :=[RotWord (SubWord (X3)) XOR RCON, SubWord (X3), RotWord (SubWord (X1)) XOR RCON, SubWord (X1)]

Как легко заметить, инструкция не выполняет:

w[i] = w[i-Nk] xor temp

Эти операции придется выполнить самим, используя MMX инструкции

Пример расширения 128b ключаaeskeygenassist xmm2, xmm1, 0x1 ; 1 раундpshufd xmm2, xmm2, 0xff; movups xmm3, xmm4;pxor xmm2,xmm3;pshufd xmm2, xmm2, 0x00; pshufd xmm3, xmm3, 0x39;pslldq xmm3,0x4;pxor xmm2,xmm3;pshufd xmm2, xmm2, 0x14; pshufd xmm3, xmm3, 0x38;pslldq xmm3,0x4;pxor xmm2,xmm3; pshufd xmm2, xmm2, 0xA4; pshufd xmm3, xmm3, 0x34;pslldq xmm3,0x4;pxor xmm2,xmm3;

Шифрование/Encryption

Для реализации одного раунда шифрования используется инструкция AESENC, которая выполняет следующие действия:

AESENC xmm1, xmm2/m128Tmp = xmm1Round Key := xmm2/m128Tmp = ShiftRows (Tmp)Tmp = SubBytes (Tmp)Tmp = MixColumns (Tmp)xmm1 = Tmp xor Round Key

Последний раунд шифрования реализуется при помощи инструкции AESENCLAST:

AESENC xmm1, xmm2/m128Tmp = xmm1Round Key := xmm2/m128Tmp = ShiftRows (Tmp)Tmp = SubBytes (Tmp)xmm1 = Tmp xor Round Key

Отличие этой инструкции от AESENC состоит в том, что операция MixColums на последнем шаге не выполняется:

Пример процедуры шифрованияaesenc xmm1, xmm2 ; aesenclast xmm1, xmm3;

Расшифровывание/decryption

Для реализации процедуры расшифрования используется инструкция AESDEC:

AESDEC xmm1, xmm2/m128Tmp = xmm1Round Key = xmm2/m128Tmp = InvShift Rows (Tmp)Tmp = InvSubBytes (Tmp)Tmp = InvMixColumns (Tmp)xmm1 = Tmp xor Round Key

Для получения Iney надо выполнить операцию InvMixClomuns для ключа. Инструкция, которая это делает — AESIMC xmm1.xmm2
И для последнего раунда расшифрования используется Инструкция AESDECLAST:

AESDECLAST xmm1, xmm2/m128State = xmm1Round Key = xmm2/m128Tmp = InvShift Rows (State)Tmp = InvSubBytes (Tmp)xmm1= Tmp xor RoundKey Пример процедуры расшифрованияaesmic xmm2,xmm2;aesdec xmm1, xmm2 ; aesdeclast xmm1, xmm3;

Итак, аппаратное поддержка должна нам дать приличный прирост к скорости шифрования.

В качестве завершения поста приведу класс на C++, реализующий операции шифрования и расшифрования в режиме ECB.

После прогона теста была достигнута скорость шифрования на одном ядре i5-3740 (3.2GHz), равная 320MB/sec

Ссылки:

iostreamawm

Источник

Источник: https://www.pvsm.ru/programmirovanie/47715

Разблокировка AES-NI на Lenovo U310

Пост практически продолжение темы UEFI.

История покупки

Началась вся история с того для работы был приобретен ультрабук Lenovo U310 (с Windows 8).

Выбирался ультрабук по таким параметрам как:

  • Тонкий
  • Долго держит заряд
  • Не сильно дорогой
  • Наличие аппаратного AES

Шифрование само по себе было важно из-за постоянной работы с конфиденциальными данными + исходные коды рабочих программ.

Поэтому всё это занимало целый раздел на HDD, который был зашифрован через TrueCrypt. Так как объем данных был довольно большой, то программной реализации шифрования уже не хватало бы. Вернее хватало бы, но поиск по ним был бы довольно долгий + длительная компиляция.

Именно поэтому и хотелось взять ультрабук с поддержкой аппаратного шифрования AES. Выбор пал на U310 с процессором Intel i5-3317u. Посмотрев описание процессора, точно удостоверился в том, что там присутствует аппаратный AES (реализованный через набор инструкций AES-NI).

Начало проблемы

После покупки сразу удалил все служебные разделы, поставил Windows 8 на SSD (Program Files оставил на HDD). В общем радовался работе. До тех пор пока не пришло время начать шифрование раздела с данными. TrueCrypt упорно показывал что AES-NI отсутствует.

CPUID и прочие программы также писали что AES-NI отсутствует. Средняя скорость шифрования была 218 Мегабайт/сек при этом довольно сильно загружался процессор.

Поискав в сети информацию поэтому поводу, выяснил что у некоторых работает AES, а у некоторых нет, при том что процессор был одинаковый. Причем на более ранних версиях работало всё (UEFI 65CN21WW). На более поздних (UEFI 65CN89WW) уже не работало.

Причина этого вроде в том, что наличие аппаратного AES переводит ультрабук в разряд устройств для аппаратного шифрования и следовательно требует сертификации как криптографическое оборудование.

И Lenovo для экономии, на некоторых моделях ультрабуков, через UEFI заблокировали AES-NI Поставить более старую версию UEFI не получалось т.к. софт с официального сайта отказывался прошивать UEFI и выдавал ошибку ERROR 233 — Only secured capsule is allowed on a SecureFlash system! Status = 1.

Более новой версии в сети на тот момент не было, а те что были не ставились. В общем пришлось смириться с отсутствием аппаратного AES. Более того осложнялось всё тем, что микросхема UEFI припаяна намертво к плате и отсутствует система восстановления. т.е. легким движением руки ультрабук превращался в кирпич.

Решение проблемы

Через определенное время на 4pda заметил что товарищ GlowWorm выложил UEFI для U310 версии 65CN90WW. Причем не обычный, а с запуском обновления из под UEFI Shell. Именно там и был обнаружен UEFI модуль который мог прошивать нормально BIOS.

К слову будет сказано — практически все программы и модули для UEFI имеют формат PE+ (64 битный). т.е. спокойно могут быть созданы с использованием любого C компилятора под Windows поддерживающего x64. В общем после перепрошивки AES так и не заработал.

Скорее всего данные о блокировки располагались в NVRAM или еще каком-нибудь другом месте. Но уже была небольшая зацепка. Раз удалось удачно перепрошить, то можно было экспериментировать уже с патчем модулей UEFI.

После чтения мануалов и просто информации в сети, было выяснено что за работу AES-NI отвечает переменная 0x13С в MSR регистре. Доступ к чтению и записи MSR можно осуществить только из ядра системы (ring 0).

Ручное написание драйвера который запишет 0 или 1 туда, не дало никакого результата, так как система не позволяла писать в него.

Также по информации из сети было выяснено что некоторые значения можно изменить только из под SMM (System Management Mode — режим системного управления), в который добраться просто так нереально.

На pastebin была найдена заметка про патч для разблокировки AES-NI.

Смысл блокировки была в том, что получалось значение MSR 0x13C далее если AES присутствовал, то запрашивалось значение какой-то переменной и исходя из её значения, записывалось новое значение в MSR 0x13C, тем самым управляя работой AES-NI. На pastebin был код0000000000033D7: B9 3C 01 00 00 mov ecx,13Ch 00000000000033DC: E8 47 18 00 00 call 0000000000004C28 00000000000033E1: A8 01 test al,1 00000000000033E3: 75 2E jne 0000000000003413 00000000000033E5: 0F B7 15 F4 11 00 movzx edx,word ptr [000045E0h] 00 00000000000033EC: 66 0F BA E2 09 bt dx,9 00000000000033F1: 72 0B jb 00000000000033FE 00000000000033F3: F6 C2 04 test dl,4 00000000000033F6: 75 06 jne 00000000000033FE 00000000000033F8: 48 83 C8 03 or rax,3 00000000000033FC: EB 08 jmp 0000000000003406 00000000000033FE: 48 83 E0 FD and rax,0FFFFFFFFFFFFFFFDh 0000000000003402: 48 83 C8 01 or rax,1 0000000000003406: 48 8B D0 mov rdx,rax 0000000000003409: B9 3C 01 00 00 mov ecx,13Ch 000000000000340E: E8 1F 18 00 00 call 0000000000004C32 0000000000003413: 33 C0 xor eax,eax 0000000000003415: 48 83 C4 38 add rsp,38h 0000000000003419: C3 ret and change 00000000000033F8: 48 83 C8 03 or rax,3to 00000000000033F8: 48 83 C8 01 or rax,1 Но то было упоминание про UEFI для какого-то другого ноутбука. Поэтому модули и адреса могли не совпадать. Но всегда можно самому найти по сигнатурам.

Патчим прошивку

1) Для начала нам понадобится инструмент PhoenixTool. В сети нашел PhoenixTool 2.01. С помощью него распаковываем прошивку (файл 65CN90WWv.rom) Файлы имеют вид XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXX_0_XXXX.ROM XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXX_1_XXXX.

ROM XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXX_2_XXXX.ROM XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXX_3_XXXX.ROM Если XXXX совпадают у файлов, то значит эти файлы относятся к одному модулю. Цифры 0, 1, 2, 3 меняются.

В одном из файлов будет код (либо двоичный, либо PE64) В другом описание что за модуль (его название) 2) Затем нам необходимо найти сигнатуру от которой надо отталкиваться.

Единственное что приходит в голову это использовать инструкцию mov ecx, 13Ch так как в ней записан интересующий нас номер в MSR. 3) Используя Total Commander осуществляем поиск файлов по содержимому HEX: B9 3C 01 00 00 (как раз и есть опкод mov ecx, 13Ch).

В итоге находим два модуля: CpuInitDxe.efi и Shell.efi. По логике CpuInitDxe.efi как раз подходит. Это имя модуля с файлом 62D171CB-78CD-4480-8678-C6A2A797A8DE_1_727.ROM 4) Дизассемблируем 62D171CB-78CD-4480-8678-C6A2A797A8DE_1_727.

ROM через IDA (64 битную версию) в коде находим нужную нам инструкцию. Данная инструкция встречается в функции sub_4580.

Как раз рядом видим инструкцию or rax,3 (опкод в HEX: 48 83 C8 03) 5) Используя WinHEX можно с легкостью найти то место в файле (HEX: 48 83 C8 03) и заменить на HEX: 48 83 C8 01 тем самым поменяв условия на or rax, 1 6) С помощью PhoenixTool заменяем модуль на пропатченный Вот и всё, новая прошивка готова.

Результат

После перепрошивки и перезагрузки TrueCrypt увидел наличие AES-NI инструкций (CPUID и прочие программы подтвердили это). Производительность AES (по замерам TrueCrypt) увеличилась с 218 Мегабайт/сек до 1.2 Гигабайт/сек.

Так что практически в 5 раз увеличилась скорость. Конечно может быть всё можно было проще сделать (правкой nvram или какого-нибудь другого места), но для меня это так и осталось неизвестным.

Единственный минус всей проделанной работы — ультрабук лишился гарантии.

  • Lenovo U310
  • aes-ni
  • Аппаратное шифрование
  • UEFI

Источник: https://habr.com/post/185754/

Понравилась статья? Поделить с друзьями: