Cpu sha3 что это такое
Перейти к содержимому

Cpu sha3 что это такое

  • автор:

SHA-3 Algorithms¶

SHA-3 (Secure Hash Algorithm 3) is a set of cryptographic hash functions defined in FIPS 202: SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions.

The SHA-3 family consists of six hash functions with digests (hash values) that are 128, 224, 256, 384 or 512 bits: SHA3-224, SHA3-256, SHA3-384, SHA3-512, SHAKE128, SHAKE256.

Currently, this library supports all of the algorithms mentioned above.

  • SHA3-224
  • SHA3-256
  • SHA3-384
  • SHA3-512
  • SHAKE-128
  • SHAKE-256

Implementation on FPGA¶

The internal structure of SHA-3 algorithms can be shown as the figures below:

Structure of SHA-3 algorithms Structure of SHAKE algorithms

As we can see from the figures, hash calculation in both SHA-3 and SHAKE is much different from SHA-1 and SHA-2. Since the internal state array is updated iteratively (by the input message) and used in the next permutation, it cannot be partitioned into block generation part and digest part.

Both the digest parts of SHA-3 and SHAKE pad or split the input message into fixed sized blocks (1600-bit for each), and XOR it to the state array of the last iteration.

The message word size is 64-bit for both SHA-3 and SHAKE, and each block has a different number of message words according to the specific suffix of the algorithm which is selected. The number can be defined as:

Loop-carried dependency is enforced by the algorithm, and thus the digest part cannot reach II=1.

Performance¶

SHA3-224¶

A single instance of SHA3-224 function processes input message at the rate of 144 byte / 1105 cycles at 303.58MHz.

The hardware resource utilizations of SHA3-224 is listed in tab1SHA3224 below:

Hardware resources for single SHA3-224 hash calculation ¶

BRAM DSP FF LUT CLB SRL clock period(ns)
0 0 36974 45821 7819 606 3.294

SHA3-256¶

A single instance of SHA3-256 function processes input message at the rate of 136 byte / 1104 cycles at 306.65MHz.

The hardware resource utilizations of SHA3-256 is listed in tab1SHA3256 below:

Hardware resources for single SHA3-256 hash calculation ¶

BRAM DSP FF LUT CLB SRL clock period(ns)
0 0 36787 44975 7203 606 3.261

SHA3-384¶

A single instance of SHA3-384 function processes input message at the rate of 104 byte / 1100 cycles at 310.75MHz.

The hardware resource utilizations of SHA3-384 is listed in tab1SHA3384 below:

Hardware resources for single SHA3-384 hash calculation ¶

BRAM DSP FF LUT CLB SRL clock period(ns)
0 0 33782 40511 7264 611 3.218

SHA3-512¶

A single instance of SHA3-512 function processes input message at the rate of 72 byte / 1096 cycles at 316.25MHz.

The hardware resource utilizations of SHA3-512 is listed in tab1SHA3512 below:

Hardware resources for single SHA3-512 hash calculation ¶

BRAM DSP FF LUT CLB SRL clock period(ns)
0 0 32994 39794 7264 611 3.162

SHAKE-128¶

A single instance of SHAKE-128 function processes input message at the rate of 168 byte / 1108 cycles at 306.37MHz.

The hardware resource utilizations of SHAKE-128 is listed in tab1SHAKE128 below:

Hardware resources for single SHAKE-128 hash calculation ¶

BRAM DSP FF LUT CLB SRL clock period(ns)
0 0 37577 47898 8229 610 3.264

SHAKE-256¶

A single instance of SHAKE-256 function processes input message at the rate of 136 byte / 1104 cycles at 302.02MHz.

The hardware resource utilizations of SHAKE-256 is listed in tab1SHAKE256 below:

Hardware resources for single SHAKE-256 hash calculation ¶

BRAM DSP FF LUT CLB SRL clock period(ns)
0 0 36789 44909 7889 606 3.311

Clustering¶

To boost the throughput of SHA-3 primitives, multiple instance can be organized into a cluster, and offer message level parallelism.

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

Оформление разрешительных документов для ввоза и вывоза ШКС:

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

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

Содержание

Использование шифрования

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

  • при подключении к большинству видов беспроводных сетей передачи данных (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

Компанией 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] .

В 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)
    • все настольные, кроме Pentium, Celeron, Core i3
    • мобильные: только Core i7 и Core i5
    • Bulldozer
    • Piledriver
    • Steamroller
    • Excavator
    • Jaguar
    • Puma
    • Zen

    Инструкции SHA поддерживаются процессорами Intel, начиная с архитектуры Goldmont (2016 год), процессорами AMD — с архитектуры Zen (2017 год).

    Другие процессоры

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

    Так, поддержка алгоритма AES реализована в процессорах:

    • на основе архитектуры Qualcomm ARMv8 и выше [7] ;
    • SPARC T4 и выше [8] ;
    • VIA (C3, C7) [9] .

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

    Примечания

    1. ↑Доля страниц, загружаемых браузером Firefox по HTTPS
    2. ↑Производительность сети Wi-Fi при использовании различных алгоритмов шифрования и аутентификации
    3. ↑Симметричные алгоритмы (неполный список)
    4. ↑Конкурс NIST
    5. ↑ Ускорение в 5 раз (Truecrypt), в

    Ссылки

    Если Вам требуются услуги по таможенному оформлению, получению разрешительных документов или у Вас есть вопросы, свяжитесь с нами — Контакты IFCG.

    В частности, мы готовы оказать услуги по оформлению следующих разрешительных документов для ввоза и вывоза товаров с шифровальными функциями:

    SHA-3 — SHA-3

    SHA-3 (Secure Hash Algorithm 3 ) является последним членом семейства стандартов Secure Hash Algorithm, выпущенным NIST 5 августа 2015 года. Хотя SHA-3 является частью той же серии стандартов, он внутренне отличается от MD5 -подобная структура из SHA-1 и SHA-2.

    SHA-3 является подмножеством более широкого семейства криптографических примитивов Keccak (или ), разработанный Джоан Дэемен, Микаэль Петерс и Жиль Ван Аше, основанный на RadioGatún. Авторы Кеккака предложили дополнительные варианты использования функции, которая (пока) не стандартизована NIST, включая потоковый шифр , аутентифицированную систему шифрования, схему хеширования «дерево» для более быстрого хеширования на определенные архитектуры и AEAD шифры Keyak и Ketje.

    Keccak основан на новом подходе, называемом построением губки. Конструкция губки основана на широкой случайной функции или случайной перестановке и позволяет вводить («поглощать» в терминологии губки) любой объем данных и выводить («сжимать») любой объем данных, действуя как псевдослучайная функция относительно всех предыдущих входов. Это приводит к большой гибкости.

    NIST в настоящее время не планирует отменять SHA-2 или удалять его из пересмотренного стандарта Secure Hash Standard. Назначение SHA-3 состоит в том, что он может быть напрямую заменен на SHA-2 в текущих приложениях, если это необходимо, и значительно повысить надежность общего набора инструментов хэш-алгоритма NIST.

    Создатели алгоритмов Keccak и Функции SHA-3 предлагают использовать более быструю функцию KangarooTwelve с настроенными параметрами и новый режим хеширования дерева без дополнительных затрат для сообщений небольшого размера.

    Содержание

    • 1 История
    • 2 Дизайн
    • 3 Заполнение
    • 4 Перестановка блоков
    • 5 Скорость
    • 6 Экземпляры
    • 7 Дополнительные экземпляры
    • 8 Более поздние разработки
      • 8.1 Хеширование дерева
      • 8.2 Конструкция Фарфалла

      История

      Алгоритм Keccak — это работа Гвидо Бертони, Джоан Дэемен (которая также участвовала в разработке шифра Rijndael с Винсентом Рейменом ), Майклом Питерсом и Жилем Ван Аше. Он основан на более ранних разработках хэш-функций PANAMA и RadioGatún. PANAMA была разработана Daemen и Craig Clapp в 1998 году. RadioGatún, преемник PANAMA, была разработана Daemen, Peeters и Van Assche и была представлена ​​на семинаре NIST Hash Workshop в 2006 году. Эталонная реализация исходный код был посвящен общественному достоянию через CC0 отказ.

      В 2006 году NIST начал организовывать NIST Соревнование хэш-функций для создания нового стандарта хеширования SHA-3. SHA-3 не предназначен для замены SHA-2, поскольку не было продемонстрировано никаких серьезных атак на SHA-2. Из-за успешных атак на MD5, SHA-0 и SHA-1 в NIST возникла потребность в альтернативном, непохожем криптографическом хэше, который стал SHA- 3.

      После периода подготовки заявки должны были быть поданы к концу 2008 года. Кечак был принят в качестве одного из 51 кандидата. В июле 2009 года для второго тура было отобрано 14 алгоритмов. Keccak прошел в последний раунд в декабре 2010 года.

      Во время конкурса участникам было разрешено «настроить» свои алгоритмы для решения обнаруженных проблем. В Keccak были внесены следующие изменения:

      • Количество раундов было увеличено с 12 + ℓ до 12 + 2ℓ из соображений безопасности.
      • Заполнение сообщений было изменено с более сложной схемы на простой шаблон 101, описанный ниже.
      • Скорость r была увеличена до предела безопасности, а не округлялась до ближайшей степени 2.

      2 октября 2012 г. Кечак был выбран победителем

      В 2014 году NIST опубликовал проект FIPS 202 «Стандарт SHA-3: хеширование на основе перестановок и функции расширяемого вывода». FIPS 202 был утвержден 5 августа 2015 года.

      5 августа 2015 года NIST объявил, что SHA-3 стал стандартом хэширования.

      Дизайн

      Конструкция губки для хэш-функций. P i являются входными, Z i — хешированными выходными. Неиспользованная «емкость» c должна быть вдвое больше желаемой устойчивости к столкновениям или атакам на прообраз..

      SHA-3 использует конструкцию губки, в которой данные «поглощаются» в губку, то результат «выдавливается». В фазе поглощения блоки сообщений объединяются с помощью XOR в подмножество состояния, которое затем преобразуется в целом с помощью функции перестановки f <\ displaystyle f>. В фазе «сжатия» выходные блоки считываются из одного и того же подмножества состояния, чередующегося с функцией преобразования состояний f <\ displaystyle f>. Размер записываемой и читаемой части состояния называется «скоростью» (обозначается r <\ displaystyle r>), а размер части, которая не затрагивается вводом / вывод называется «емкостью» (обозначается c <\ displaystyle c>). Емкость определяет безопасность схемы. Максимальный уровень защиты составляет половину емкости.

      Учитывая входную строку битов N <\ displaystyle N>, функцию заполнения pad <\ displaystyle pad>, функцию перестановки f <\ displaystyle f>, который работает с битовыми блоками шириной b <\ displaystyle b>, скорость r <\ displaystyle r>и длина вывода d <\ displaystyle d>, у нас есть емкость c = b — r <\ displaystyle c = br>и конструкция губки Z = губка [f, прокладка, r] (N, d) <\ displaystyle Z = <\ text > [f, pad, r] (N, d)> , что дает битовую строку Z <\ displaystyle Z>длиной d <\ displaystyle d>, работает следующим образом:

      • дополняет вход N используя функцию заполнения, в результате получается дополненная битовая строка P с длиной, кратной r <\ displaystyle r>(так, что n = len (P) / r <\ displaystyle n = <\ text > (P) / r> является целым числом)
      • разбить P на n последовательных r-битовых частей P 0. P n-1
      • инициализировать состояние S в строку из b нулевых битов
      • поглощают ввод в состояние: для каждого блока P i:
        • расширяют P i в конце строкой из c нулевых битов, давая один из длина b
        • XOR, который с S
        • применяет перестановку блоков f к результату, давая новое состояние S
        • добавить первые r битов S к Z
        • , если длина Z по-прежнему меньше d битов, применить f к S, получив новое состояние S

        Тот факт, что внутреннее состояние S содержит c дополнительных битов информации в дополнение к тому, что выводится в Z, предотвращает атаки на расширение длины, которые SHA-2, SHA-1, MD5 и другие хэши, основанные на конструкции Меркла – Дамгарда, восприимчивы к.

        В SHA-3 состояние S состоит из массива 5 × 5 w-битных слов (с w = 64), b = 5 × 5 × w = 5 × 5 × 64 = всего 1600 бит. Keccak также определен для меньших размеров слова w, равного степени 2, вплоть до 1 бита (общее состояние 25 бит). Малые размеры состояний могут использоваться для тестирования криптоаналитических атак, а размеры промежуточных состояний (от w = 8, 200 бит до w = 32, 800 бит) могут использоваться в практических, легких приложениях.

        Для SHA- 3-224, SHA-3-256, SHA-3-384 и SHA-3-512, r больше d, поэтому нет необходимости в дополнительных перестановках блоков в фазе сжатия; ведущие d бит состояния — это желаемый хэш. Однако SHAKE-128 и SHAKE-256 допускают произвольную длину вывода, что полезно в таких приложениях, как оптимальное асимметричное шифрование, заполнение.

        заполнение

        Чтобы сообщение можно было равномерно разделить на r- битовые блоки, требуется заполнение. SHA-3 использует шаблон 101 в своей функции заполнения: 1 бит, за которым следует ноль или более 0 бит (максимум r — 1) и последний 1 бит.

        Максимум r — 1 нулевых битов возникает, когда последний блок сообщения имеет длину r — 1 бит. Затем после начального 1 бита добавляется еще один блок, содержащий r — 1 нулевых бит перед последним 1 битом.

        Два бита 1 будут добавлены, даже если длина сообщения уже делится на r. В этом случае к сообщению добавляется еще один блок, содержащий 1 бит, за которым следует блок из r — 2 нулевых бита и еще 1 бит. Это необходимо для того, чтобы сообщение с длиной, кратной r, оканчивающейся чем-то похожим на заполнение, не создавало такой же хэш, как сообщение с удаленными битами.

        Требуется начальный 1 бит, поэтому сообщения, отличающиеся только несколькими дополнительными 0 битами в конце, не создают одинаковый хэш.

        Положение последнего бита 1 указывает, какая скорость r была использована (многоскоростное заполнение), которая требуется для работы доказательства безопасности для различных вариантов хеширования. Без него разные варианты хеширования одного и того же короткого сообщения были бы одинаковыми до усечения.

        Перестановка блоков

        Преобразование блоков f, которое является Keccak-f [1600] для SHA-3, представляет собой перестановку, которая использует XOR, AND и NOT операций, и разработан для простой реализации как в программном, так и в аппаратном обеспечении.

        Определяется для любого размера слова, равного степени двойки, w = 2 бита. В основной передаче SHA-3 используются 64-битные слова, = 6.

        Состояние можно рассматривать как массив битов 5 × 5 × w. Пусть a [i] [j] [k] будет битом (5i + j) × w + k ввода, используя соглашение о нумерации битов little-endian и мажор строки индексация. Т.е. i выбирает строку, j столбец и k бит.

        Арифметика индекса выполняется по модулю 5 для первых двух измерений и по модулю w для третьего.

        Основная функция перестановки блоков состоит из 12 + 2ℓ раундов по пять шагов:

        θ (тета) Вычислить четность каждого из 5w (320, когда w = 64) 5-битные столбцы и исключающее-ИЛИ на два соседних столбца в обычном шаблоне. Чтобы быть точным, a [i] [j] [k] ← a [i] [j] [k] четность (a [0. 4] [j − 1] [k]] »четность (a [ 0. 4] [j + 1] [k − 1]) ρ (rho) Побитовое вращение каждого из 25 слов на другое треугольное число 0, 1, 3, 6, 10, 15. Точнее, a [0] [0] не вращается, и для всех 0 ≤ t (ij) = (3 2 1 0) T (0 1) <\ Displaystyle <\ begin я \\ j \ end > = <\ begin 3 2 \\ 1 0 \ end > ^ <\ begin < pmatrix>0 \\ 1 \ end >> . π (pi) Перестановка 25 слов в фиксированном шаблоне. a [3i + 2j] [i] ← a [i] [j]. χ (chi) Побитовое объединение по строкам, используя x ← x ⊕ (¬y z). Чтобы быть точным, a [i] [j] [k] ← a [i] [j] [k] ⊕ (¬a [i] [j + 1] [k] a [i] [j + 2] » [k]). Это единственная нелинейная операция в SHA-3. ι (iota) Исключающая — или округление константы в одно слово состояния. Чтобы быть точным, в раунде n для 0 ≤ m ≤ a [0] [0] [2-1] подвергается операции XOR с битом m + 7n последовательности степени 8 LFSR. Это нарушает симметрию, которая сохраняется на других этапах.

        Скорость

        Скорость хеширования длинных сообщений SHA-3 определяется вычислением f = Keccak-f [1600] и XORing S с расширенный P i, операция над b = 1600 битов. Однако, поскольку последние c бит расширенного P i в любом случае равны 0, а XOR с 0 является NOP, достаточно выполнить операции XOR только для r битов (r = 1600-2 × 224 = 1152 бит для SHA3-224, 1088 бит для SHA3-256, 832 бит для SHA3-384 и 576 бит для SHA3-512). Чем меньше r (и, наоборот, чем выше c = b — r = 1600 — r), тем менее эффективным, но более безопасным становится хеширование, поскольку меньшее количество битов сообщения может быть преобразовано в состояние XOR (быстрая операция) перед каждым применение затратных в вычислительном отношении f. Авторы сообщают о следующих скоростях программных реализаций Keccak-f [1600] плюс XORing 1024 бит, что примерно соответствует SHA3-256:

        • 57,4 cpb на IA-32, Intel Pentium 3
        • 41 cpb на IA-32 + MMX, Intel Pentium 3
        • 20 cpb на IA-32 + SSE, Intel Core 2 Duo или AMD Athlon 64
        • 12,6 cpb на типичном Машина на базе x86-64
        • 6–7 cpb на IA-64

        Для точного SHA3-256 на x86-64 Бернштейн измеряет 11,7–12,25 cpb в зависимости от процессора. SHA-3 подвергался критике за то, что он медленный на архитектурах набора команд (CPU), которые не имеют инструкций, специально предназначенных для более быстрого вычисления функций Keccak — SHA2-512 более чем в два раза быстрее, чем SHA3-512, а SHA-1 более чем в три раза быстрее на процессоре Intel Skylake с тактовой частотой 3,2 ГГц. Авторы отреагировали на эту критику, предложив использовать SHAKE128 и SHAKE256 вместо SHA3-256 и SHA3-512 за счет сокращения вдвое сопротивления прообраза (но при сохранении сопротивления столкновению). При этом производительность находится на уровне SHA2-256 и SHA2-512.

        Однако в аппаратных реализациях SHA-3 заметно быстрее, чем у всех других финалистов, а также быстрее, чем SHA-2 и SHA-1.

        ARMv8 и Архитектуры IBM s390x уже (по состоянию на 2018 год) включают специальные инструкции, которые позволяют алгоритмам Keccak выполняться быстрее.

        Экземпляры

        Стандарт NIST определяет следующие экземпляры для сообщения M и длины вывода d:

        Экземпляр Вывод. размер d Скорость r. = размер блока Емкость c Определение Степень защиты в битах
        Коллизия Прообраз 2-й прообраз
        SHA3-224(M) 224 1152 448 Keccak [448] (M || 01, 224) 112 224 224
        SHA3-256(M) 256 1088 512 Keccak [512] (M || 01, 256) 128 256 256
        SHA3-384 (M) 384 832 768 Кечак [768] (M || 01, 384) 192 384 384
        SHA3-512(M) 512 576 1024 Keccak [1024] (M || 01, 512) 256 512 512
        SHAKE128 (M, d) d 1344 256 Keccak [256] (M || 1111, d) min (d / 2,128) ≥min (d, 128) min ( d, 128)
        SHAKE256 (M, d) d 1088 512 Кечак [512] (M || 1111, d) min (d / 2,256) ≥min (d, 256) min (d, 256)

        Со следующими определениями

        • Keccak [c] (N, d) = губка [Keccak-f [1600], pad101, r] (N, d)
        • Keccak-f [1600] = Keccak-p [1600, 24]
        • c — емкость
        • r — скорость = 1600 — c
        • N — входная битовая строка

        Обратите внимание, что добавленные постфиксы записываются как битовые строки, не шестнадцатеричные цифры.

        Экземпляры SHA-3 являются заменой для SHA-2 с идентичными требованиями безопасности. Экземпляры SHAKE — это так называемые XOF, расширяемые функции вывода. Например, SHAKE128 (M, 256) может использоваться как хэш-функция с длиной 256 бит и общей безопасностью 128 бит.

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

        Суффикс Значение
        . 0 зарезервировано для будущего использования
        01 SHA-3
        . 11 RawSHAKE

        RawSHAKE — это основа кода Sakura для хеширования дерева, которая еще не стандартизирована. Однако суффикс SHAKE был тщательно выбран, чтобы он был совместим с Сакурой. Сакура добавляет 0 для скачка цепочки или 1 для сообщения, затем 100 для нефинального (внутреннего) узла или 1 для конечного узла, прежде чем применить RawSHAKE. Последовательное хеширование соответствует дереву переходов с одним узлом сообщения, что означает, что 11 добавляется к сообщению до применения RawSHAKE. Таким образом, SHAKE XOF добавляют 1111 к сообщению, т. Е. 1 для сообщения, 1 для конечного узла и 11 для суффикса разделения домена RawSHAKE.

        Поскольку заполнение 101 всегда добавляет как минимум два бита в байтах: В выровненных библиотеках всегда есть шесть неиспользуемых нулевых битов. Поэтому эти добавленные дополнительные биты никогда не увеличивают длину дополненного сообщения.

        Дополнительные экземпляры

        В декабре 2016 года NIST опубликовал новый документ, NIST SP.800-185, описывающий дополнительные производные функции SHA-3:

        Экземпляр Описание
        cSHAKE128 (X, L, N, S) Версия SHAKE, поддерживающая явное разделение доменов с помощью параметров настройки.
        cSHAKE256 (X, L, N, S)
        KMAC128 (K, X, L, S) A хэш-функция с ключом на основе Keccak. Также может использоваться без ключа как обычная хеш-функция.
        KMAC256 (K, X, L, S)
        KMACXOF128 (K, X, L, S)
        KMACXOF256 (K, X, L, S)
        TupleHash128 (X, L, S) Функция для хеширования кортежей строк. Вывод этой функции зависит как от содержимого, так и от последовательности входных строк.
        TupleHash256 (X, L, S)
        TupleHashXOF128 (X, L, S)
        TupleHashXOF256 (X, L, S)
        ParallelHash128 (X, B, L, S) Функция, разработанная для использования параллелизма в современных процессорах для более быстрого хеширования. В отличие от KangarooTwelve, не использует Keccak с уменьшенным количеством раундов.
        ParallelHash256 (X, B, L, S)
        ParallelHashXOF128 (X, B, L, S)
        ParallelHashXOF256 (X, B, L, S)

        • X — основная входная битовая строка. Он может быть любой длины, в том числе нулевой.

        • L — целое число, представляющее запрошенную длину вывода в битах.

        • N — битовая строка имени функции, используемая NIST для определения функций на основе cSHAKE. Если не требуется никакой другой функции, кроме cSHAKE, N устанавливается в пустую строку.

        • S — строка битов настройки. Пользователь выбирает эту строку, чтобы определить вариант функции. Если настройка не требуется, S устанавливается в пустую строку.

        • K — битовая строка ключа любой длины, включая ноль.

        • B — размер блока в байтах для параллельного хеширования. Это может быть любое целое число, например 0 2 d = 2 d / 2 <\ displaystyle <\ sqrt <2 ^ >> = 2 ^ > , тогда как классическая атака грубой силой требует 2. Атака структурированного прообраза подразумевает вторую атаку прообраза и, следовательно, атаку коллизии. Квантовый компьютер также может выполнить атаку дня рождения, таким образом нарушив сопротивление столкновениям в 2 d 3 = 2 d / 3 <\ displaystyle <\ sqrt [<3>] <2 ^ >> = 2 ^ > (хотя это оспаривается). Учитывая, что максимальная сила может быть c / 2 <\ displaystyle c / 2>, это дает следующие верхние границы квантовой безопасности SHA-3:

        Экземпляр Сила защиты в битах
        Столкновение. (Брассард и др.) Столкновение. (Бернштейн) Прообраз 2-й прообраз
        SHA3-224 (M) 74⅔ 112 112 112
        SHA3-256(M) 85⅓ 128 128 128
        SHA3-384(M) 128 192 192 192
        SHA3-512(M) 170⅔ 256 256 256
        SHAKE128 ( M, d) min (d / 3,128) min (d / 2,128) ≥min (d / 2,128) min (d / 2,128)
        SHAKE256 (M, d) мин (d / 3,256) мин (d / 2,256) ≥min (d / 2,256) мин (d / 2,256)

        Было показано, что конструкция Меркла-Дамгарда, используемая в SHA-2, разрушается и, как следствие, устойчива к квантовым столкновениям, но для используемой конструкции губки по SHA-3, т Авторы приводят доказательства только для случая, когда блочная функция f не является эффективно обратимой; Keccak-f [1600], однако, эффективно обратим, и поэтому их доказательства неприменимы.

        Споры об изменении емкости

        В феврале 2013 г. на конференции RSA, а затем в августе 2013 г. CHES, NIST объявил, что они выберут другие значения для емкости, то есть параметра безопасности, для стандарта SHA-3, по сравнению с отправкой. Изменения вызвали некоторое волнение.

        Соревнование хеш-функций потребовало, чтобы хеш-функции были не менее безопасными, чем экземпляры SHA-2. Это означает, что d-битовый выход должен иметь d / 2-битную стойкость к атакам коллизий и d-битную стойкость к атакам прообраза, максимально достижимую для d битов вывода. Доказательство безопасности Keccak позволяет настраивать уровень безопасности на основе «емкости» c, обеспечивая c / 2-битную устойчивость как к столкновениям, так и к атакам с использованием прообраза. Чтобы соответствовать исходным правилам конкурса, авторы Кеккака предложили c = 2d. Объявленное изменение заключалось в том, чтобы принять одну и ту же d / 2-битную защиту для всех форм атак и стандартизировать c = d. Это ускорило бы Keccak, позволив хешировать дополнительные d битов ввода на каждой итерации. Однако хэш-функции больше не были бы заменой с такой же устойчивостью к прообразу, как SHA-2; его можно было бы сократить вдвое, что сделало бы его уязвимым для достижений в области квантовых вычислений, которые фактически сократили бы его вдвое еще раз.

        В сентябре 2013 г. Дэниел Дж. Бернштейн предложил Список рассылки хэш-форума NIST для усиления безопасности до 576-битной емкости, которая первоначально была предложена в качестве Keccak по умолчанию, в дополнение к спецификациям SHA-3 и не включена в них. Это обеспечило бы как минимум SHA3-224 и SHA3-256 такое же сопротивление прообразу, что и их предшественники SHA-2, но SHA3-384 и SHA3-512 имели бы значительно меньшее сопротивление прообразу, чем их предшественники SHA-2. В конце сентября команда Keccak ответила, заявив, что они предложили 128-битную безопасность, установив c = 256 в качестве опции уже в их предложении SHA-3. Хотя, по их мнению, уменьшение емкости было оправданным, в свете отрицательного ответа они предложили увеличить емкость до c = 512 бит для всех экземпляров. Это будет так же, как и любой предыдущий стандарт, вплоть до уровня безопасности 256-бит, при этом обеспечивая разумную эффективность, но не сопротивление 384- / 512-битного прообраза, предлагаемое SHA2-384 и SHA2-512. Авторы пытались оправдать это утверждением, что «утверждать или полагаться на уровни безопасности выше 256 бит бессмысленно».

        В начале октября 2013 года Брюс Шнайер раскритиковал решение NIST на основании его возможных пагубных последствий для принятия алгоритма, заявив:

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

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

        Да, это немного обидно для конкурентов, потому что они потребовали определенный уровень безопасности для участников, а затем пошли опубликовать стандарт с другим. Но сейчас ничего нельзя сделать, чтобы это исправить, кроме как возобновить соревнование. Требование, чтобы они придерживались своей ошибки, никому ничего не улучшает.

        Было также некоторая путаница в том, что в Keccak были внесены внутренние изменения. Команда Keccak пояснила это, заявив, что предложение NIST по SHA-3 является подмножеством семейства Keccak, для которого можно генерировать тестовые векторы, используя их эталонный код, представленный на конкурс, и что это предложение было результатом серии обсуждений. между ними и хэш-командой NIST. Кроме того, Брюс Шнайер исправил свое предыдущее утверждение, сказав:

        Я оговорился, когда написал, что NIST внес «внутренние изменения» в алгоритм. Это было неаккуратно с моей стороны. Перестановка Keccak остается неизменной. NIST предложил уменьшить емкость хэш-функции во имя производительности. Одной из приятных особенностей Keccak является то, что он легко настраивается.

        В ответ на возникшие противоречия в ноябре 2013 года Джон Келси из NIST предложил вернуться к исходному предложению c = 2d для всех экземпляров drop-in замены SHA-2. Возврат был подтвержден в апрельском проекте 2014 года. Это предложение было реализовано в стандарте окончательной версии в августе 2015 года.

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

        Примеры ША-3-х вариантах

        Следующие значения хеш-функции взяты из NIST.gov:

        Изменение одного бита вызывает каждый бит в выходе к изменению с вероятностью 50% демонстрирует эффект лавины :

        Сравнение функций SHA

        В приведенной ниже таблице внутреннее состояние переносится на биты. следующий блок.

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

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

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

        Так, полюбившийся многим браузер Google Chrome не работает без поддержки процессором SSE2. Инструкции AVX могут в разы ускорить обработку фото- и видеоконтента. А недавно один мой знакомый на достаточно быстром Phenom II (6 ядер) не смог запустить игру Mafia 3, поскольку его процессор не поддерживает инструкции SSE4.2.

        Если аббревиатуры SSE, MMX, AVX, SIMD вам ни о чем не говорят и вы хотели бы разобраться в этом вопросе, изложенная здесь информация станет неплохим подспорьем.

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

        Аббревиатура образована от MultiMedia eXtensions (мультимедийные расширения). Это набор инструкций процессора, предназначенных для ускорения обработки фото-, аудио- и видеоданных. Разработан компанией Intel, используется в процессорах с 1997 года и на момент внедрения обеспечивал до 70% прироста производительности. Сегодня вам вряд ли удастся встретить процессор без поддержки этой технологии. Подробнее.

        3DNow!

        Технология впервые была использована в 1998 году в процессорах AMD и стала развитием технологии MMX, значительно расширив возможности процессора в области обработи мультимедийных данных. Ее презентацию совместили с выходом игры Quake 2, в которой 3DNow! обеспечивала до 30% прироста быстродействия. Но широкого распространения 3DNow! не получила. Сейчас она заменена другими технологиями и в новых процессорах не используется. Подробнее.

        Аббревиатура от от Streaming SIMD Extensions. SIMD расшифровывается как Single Instruction Multiple Data, что значит «одна инструкция — множество данных».

        SSE впервые использована в 1999 году в процессорах Pentium ІІІ и стала своеобразным ответом компании Intel на разработанную компанией AMD технологию 3DNow!, устранив некоторые ее недостатки. SSE применяется процессором, когда нужно совершить одни и те же действия над разными данными и обеспечивает осуществление до 4 таких вычислений за 1 такт, чем обеспечивает существенный прирост быстродействия.

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

        Этот набор инструкций был разработан компанией Intel и впервые интегрирован в процессоры Pentium 4 (2000 — 2001 гг.).

        Поддержка инструкций SSE2 является обязательным условием использования современного программного обеспечения. В частности, без этого набора команд не будут работать популярные браузеры Google Chrome и Яндекс-браузер. На компьютере без SSE2 также невозможно использовать Windows 8, Windows 10, Microsoft Office 2013 и др. Подробнее.

        Набор из 13 инструкций, разработанный компанией Intel и впервые использованный ею в 2004 г. в процессорах с ядром Prescott. Позволяет процессору более эффективно использовать 128-битные регистры SSE.

        Инструкции SSE3 заметно упростили ряд DSP- и 3D-операций. Практическая польза от них больше всего ощущается в приложениях, связанных с обработкой потоков графической информации, аудио- и видеосигналов. Подробнее.

        SSSE 3

        Сокращение от «Supplemental SSE3», что значит «Дополнительный SSE3». Это набор дополнительных инструкций процессора, внедренных компанией Intel в 2006 году в продолжение развития предыдущих наборов команд SSE. По сути, это был четвертый по счету набор инструкций SSE. Но в Intel решили иначе, возможно, посчитав его лишь незначительным дополнением к предыдущему пакету.

        Инструкции SSSE3 необходимы для нормальной работы многих современных приложений, в частности программ распознавания речи, используемых алгоритм DNN (Deep Neural Network). Подробнее.

        SSE 4.1

        Набор инструкций, разработанный компанией Intel. Используется в процессорах с 2006 года.

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

        SSE 4.2

        Набор инструкций процессора, включающий 7 команд обработки строк, подсчета CRC32 и популяции единичных бит, а также работы с векторными примитивами. Впервые использован компанией Intel в 2008 году.

        На практике инструкции SSE 4.2 повышают производительность при сканировании вирусов, поиска текста, строковой обработки библиотек (ZLIB, базы данных и др.), обработки 3D информации. Подробнее.

        SSE4A (SSE128)

        Набор инструкций, используемый в процессорах AMD с 2007 года. Включает всего 4 команды (инструкции, ускоряющие подсчет числа нулевых/единичных битов, комбинированные инструкции маскирования и сдвига, а также скалярные инструкции потоковой записи).

        Аналогичные инструкций есть также в наборе SSE 4 (4.1, 4.2.) от Intel, который является значительно более эффективным (в общей сложности 54 инструкции), см. выше. Подробнее.

        Расширение системы команд процессора, разработанное в 2008 году компанией Intel с целью ускорения работы и повышения уровня защищенности программ, использующих алгоритм шифрования AES (Advanced Encryption Standard).

        В США и некоторых других странах AES является официальным стандартом шифрования. Используется операционной системой Windows и многими популярными программами для защиты конфиденциальной информации (The Bat!, TrueCrypt и др.). Если процессор поддерживает инструкции AES, прирост производительности приложений, использующих этот алгоритм, может достигать 1200 %. Подробнее.

        Аббревиатура образована от Advanced Vector Extensions. Это расширение системы команд процессора, разработанное компанией Intel в 2008 году. Оказывает большое влияние на мультимедийные и вычислительные возможности процессора.

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

        Значительный прирост производительности наблюдается при работе с фото-, видеоконтентом, решении научных задач и др.). Но для этого требуется также использование соответствующей операционной системы и адаптированного программного обеспечения. В Windows поддержка AVX появилась, только начиная с Windows 7 SP1. Подробнее.

        AVX 2

        Набор инструкций, ставший развитием технологии AVX. Впервые использован в 2013 г. в процессорах Intel на ядре Haswell.

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

        Набор инструкций процессора, ускоряющий операции умножения-сложения чисел с плавающей запятой. Аббревиатура FMA образована от англ. Fused Multiply-Add, что переводится как умножение-сложение с однократным округлением.

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

        NX (XD), EVP

        Технологии NX (XD) и EVP, не смотря на разные названия, являются одним и тем же — важным компонентом любого современного процессора, обеспечивающим повышенную защиту компьютера от вирусов и хакерских атак, основанных на механизме переполнения буфера.

        Названия NX (No Xecute) и XD (eXecute Disable) характерны для процессоров Intel. EVP (Enhanced Virus Protection) — для процессоров AMD. Подробнее.

        AMD64, Intel64

        AMD64, Intel64, EM64T, x86-64, x64, Hammer Architecture — все эти термины обозначают одно и то же — 64-битную архитектуру центрального процессора, разработанную и внедренную в 2003 году компанией AMD. До этого процессоры были 32-битными.

        Для обычного пользователя главным преимуществом 64-битного процессора является возможность использования в компьютере 64-битного программного обеспечения и большого объема оперативной памяти (теоретически, до 16777216 терабайт). Максимальное количество оперативной памяти, которое может адресовать 32-битный процессор — 4 ГБ. Подробнее.

        XOP (от англ. eXtended operation — «расширенная операция») — это набор инструкций микропроцессора, повышающих его быстродействие при работе с мультимедиа, а также при решении научных задач.

        Инструкции XOP впервые использованы в 2011 году в процессорах AMD архитектуры Bulldozer. В этот набор входит несколько различных типов векторных инструкций, большинство из которых являются целочисленными. Однако, есть среди них также инструкции для перестановки чисел с плавающей запятой и инструкции экстракции дробной части. Подробнее.

        HT, SMT

        В процессорах Intel технология многопоточности называется Hyper-Threading (HT), в процессорах AMD — Simultaneous MultiThreading (SMT).

        Кроме названий, эти технологии отличаются еще и многими аспектами реализации. Однако, суть их одинакова. HT и SMT повышают эффективность использования вычислительных возможностей процессора (в среднем, на 20 — 30 %) за счет параллельного выполнения каждым его ядром двух потоков вычислений. Подробнее.

        Аппаратная виртуализация (VT-x, VT-d, AMD-V)

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

        Кроме того, появляется возможность «проброса» в гостевую систему устройств ввода-вывода, подключаемых к компьютеру через шину PCI и некоторые другие шины (видеокарты, звуковые карты, сетевые адаптеры и др.). Подробнее.

        Turbo Boost, Turbo Core

        Turbo Boost и Turbo Core — похожие по своей сути технологии, автоматически повышающие тактовую частоту процессора выше номинальной, когда в этом есть необходимость. Turbo Boost используется в процессорах Intel, Turbo Core — в процессорах AMD. В целом, они обеспечивают значительный прирост быстродействия в большинстве приложений.

        Несмотря на одинаковое предназначение, Turbo Boost и Turbo Core существенно отличаются. Подробнее.

        TXT (англ. Trusted eXecution Technology — технология доверенного выполнения) — разработанная компанией Intel и используемая в ее процессорах технология, обеспечивающая аппаратную защиту компьютера от вредоносных программ.

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

        TSX (Transactional Synchronization eXtensions) — набор инструкций многоядерного процессора, разработанный компанией Intel, который повышает эффективность взаимодействия ядер между собой при осуществлении общего доступа к одним и тем же данным и, в конечном счете, увеличивает общую производительность компьютера. Подробнее.

        SpeedStep, PowerNow!, Cool’n’Quiet

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

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

        Memory Protection Extensions — технология, обеспечивающая повышенную защиту компьютера от вирусных и других угроз, использующих механизм переполнения буфера.

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

        Software Guard Extensions (SGX) — набор инструкций, разработанный компанией Intel и используемый в ее процессорах, начиная с архитектуры Skylake.

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

        Intel SHA

        Intel Secure Hash Algorithm extensions (SHA) — набор инструкций процессора, разработанных компанией Intel для ускорения работы приложений, используемых алгоритмы шифрования SHA. Включает 7 инструкций, 4 из которых ускоряют работу SHA-1, остальные 3 — SHA-256. Ускорение может составлять 150-200 % и более (в зависимости конкретного приложения).

        Эти алгоритмы используются в системах контроля версий и электронных подписей, а также для построения кодов аутентификации. SHA-1 является более распространённым и применяется в самых разнообразных криптографических программах. Подробнее.

        Advanced Configuration and Power Interface (ACPI) — стандарт, разработанный компаниями HP, Intel, Microsoft, Phoenix и Toshiba. Используется в компьютерной технике с 1996 года, постепенно дополняясь и совершенствуясь. Определяет общий подход к управлению питанием и обеспечивает взаимодействие между устройствами компьютера, его операционной системой и BIOS/UEFI в целях снижения уровня энергопотребления.

        Стандарт ACPI предусматривает несколько режимов работы процессора. В зависимости от модели, они могут поддерживаться процессором в полном объеме или только какая-то их часть. Подробнее.

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

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

        Dynamic Front Side Bus Frequency Switching (DFFS) — одна из технологий снижения энергопотребления компьютерных систем. Она позволяет операционной системе компьютера, в зависимости от нагрузки, которую он испытывает, понижать частоту системной шины FSB, что влечет за собой также и снижение частоты процессора. Подробнее.

        SenseMI

        SenseMI — технология, разработанная компанией AMD и впервые использованная в процессорах серии Ryzen. Она представляет собой комплекс из нескольких взаимосвязанных компонентов, обеспечивающих оптимальную производительность и энергоэффективность путем прогнозирования программного кода, а также динамического изменения частоты процессора в соответствии с решаемыми задачами в каждый конкретный момент времени (Smart Prefetch, Neural Net Prediction, Pure Power, Precision Boost, Extended Frequency Range).

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

        AMD CoolCore

        AMD CoolCore — технология, осуществляющая временное отключение неиспользуемых блоков процессора в целях снижения энергопотребления и выделяемого им тепла. Впервые использована в процессорах Phenom. Подробнее.

        AMD CoolSpeed

        AMD CoolSpeed — технология, разработанная компанией AMD для защиты процессора от перегрева путем понижения частоты и напряжение питания. Подробнее.

        AMD Enduro

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

        Ценной Enduro является для мобильных компьютеров, поскольку позволяет существенно экономить заряд аккумулятора. Подробнее.

        BMI, TBM, ABM

        Bit Manipulation Instructions (BMI) — наборы инструкций, используемые в процессорах Intel и AMD для ускорения операций, связанных с манипулированием битами.

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

        DPM, DDPM

        Dynamic Power Management и Dual Dynamic Power Management- технологии автоматического динамического изменения питания процессора. В совокупности с другими энергосберегающими технологиями, они значительно повышают его энергоэффективность, снижая уровень питания в периоды простоя или незначительных загрузок и повышая его, когда это необходимо. Подробнее.

        SMEP, SMAP

        Supervisor Mode Execution Prevention и Supervisor Mode Access Prevention — технологии, разработанные компанией Intel для защиты компьютера от хакерских атак и других угроз, использующих так называемый «режим супервизора». Подробнее.

        F16C — набор инструкций, используемый в процессорах архитектуры x86 для ускорения преобразований между двоичными числами половинной точности (16 bit) и стандартными двоичными числами с плавающей запятой одинарной точности (32 bit).

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


        НАПИСАТЬ АВТОРУ

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *