SHAvite-3: различия между версиями
[непроверенная версия] | [непроверенная версия] |
A.ivanov (обсуждение | вклад) Номинирование статьи в добротные с помощью гаджета QA (v. 1j5hqu9) |
A.ivanov (обсуждение | вклад) →Примечания: Исправлены примечания |
||
Строка 11: | Строка 11: | ||
== Название == |
== Название == |
||
Название функции SHAvite-3 произносится как «шавайт шалош» (иврит «шавайт три»). Авторы заявляют, что назвали ее так по следующим причинам<ref name=":0">{{Cite web|url=http://www.cs.technion.ac.il/~orrd/SHAvite-3/Spec.23.11.09.pdf|title=The SHAvite-3 Hash Function. Tweaked Version|author=Eli Biham, Orr Dunkelman|work=|date=23.11.2009|publisher=}}</ref>: |
Название функции SHAvite-3 произносится как «шавайт шалош» (иврит «шавайт три»). Авторы заявляют, что назвали ее так по следующим причинам<ref name=":0">{{Cite web|url=http://www.cs.technion.ac.il/~orrd/SHAvite-3/Spec.23.11.09.pdf|title=The SHAvite-3 Hash Function. Tweaked Version|author=Eli Biham, Orr Dunkelman|work=cs.technion.ac.il|date=23.11.2009|publisher=Computer Science Department, Technion}}</ref>: |
||
* SHAvite-3 названа так за свою скорость и безопасность, так как является защищенной и быстрой({{lang-fr|vite}}) хеш-функцией. |
* SHAvite-3 названа так за свою скорость и безопасность, так как является защищенной и быстрой({{lang-fr|vite}}) хеш-функцией. |
||
* Shavit переводится с иврита как комета. |
* Shavit переводится с иврита как комета. |
||
Строка 18: | Строка 18: | ||
== История == |
== История == |
||
Алгоритм SHAvite-3 был специально разработан для участия в [[SHA-3 (конкурс)|конкурсе SHA-3]]. По результатам первого раунда была обнаружена уязвимость лежащего в основе блочного шифра, которая, однако, не привела к компрометации хеш-функции<ref>{{Cite web|url=http://ehash.iaik.tugraz.at/uploads/e/ea/Peyrin-SHAvite-3.txt|title=Сообщение в рассылке NIST о найденной уязвимости|author=Thomas Peyrin|work=|date=|publisher=}}</ref><ref>{{Cite web|url=http://csrc.nist.gov/groups/ST/hash/sha-3/Round1/documents/SHAvite3_Comments.pdf|title= |
Алгоритм SHAvite-3 был специально разработан для участия в [[SHA-3 (конкурс)|конкурсе SHA-3]]. По результатам первого раунда была обнаружена уязвимость лежащего в основе блочного шифра, которая, однако, не привела к компрометации хеш-функции<ref>{{Cite web|url=http://ehash.iaik.tugraz.at/uploads/e/ea/Peyrin-SHAvite-3.txt|title=Сообщение в рассылке NIST о найденной уязвимости|author=Thomas Peyrin|work=NIST mailing list|date=19.01.09|publisher=NIST Computer Security Resource Center}}</ref><ref>{{Cite web|url=http://csrc.nist.gov/groups/ST/hash/sha-3/Round1/documents/SHAvite3_Comments.pdf|title=OFFICIAL COMMENT: SHAvite-3|author=Paul Souradyuti|work=NIST mailing list|date=16.06.09|publisher=NIST Computer Security Resource Center}}</ref>. Авторами было предложена модификация к первоначально заявленной на конкурс версией, чтобы повысить защищенность алгоритма. Изменение было названо улучшенной (tweaked) версией и касалось обоих алгоритмов SHAvite-3<sub>256</sub> и SHAvite-3<sub>512</sub><ref name=":0" />. После этого последовало исправление ошибки в реализации раундовой функции AES и улучшена криптостойкость SHAvite-3<sub>512</sub> путем увеличения количества раундов с 14 до 16<ref name=":2">{{Cite web|url=http://www.cs.technion.ac.il/~orrd/SHAvite-3/Update-2010-08-23.pdf|title=Updates on SHAvite-3|author=Eli Biham, Orr Dunkelman|work=cs.technion.ac.il|date=23.08.2010|publisher=Computer Science Department, Technion}}</ref>. Функция дошла до второго раунда конкурса криптографический функций, но до финального раунда не была допущена за недостаточную защищённость инициализации [[S-блоки|S-блоков]], лежащих в основе блочного шифра, что приводило к относительно низкому уровню безопасности 512-разрядной версии хеш-функции<ref>{{Cite web|url=http://ehash.iaik.tugraz.at/uploads/5/5c/NandiP-SHAvite-3.txt|title=Сообщение в рассылке NIST о найденной уязвимости|author=Mridul Nandi, Souradyuti Paul|work=NIST mailing list|date=18.06.2009|publisher=NIST}}</ref><ref>{{Статья|автор=Praveen Gauravaram, Gaëtan Leurent, Florian Mendel, María Naya-Plasencia, Thomas Peyrin|заглавие=Cryptanalysis of the 10-Round Hash and Full Compression Function of SHAvite-3-512|ссылка=http://link.springer.com/chapter/10.1007/978-3-642-12678-9_25|язык=en|ответственный=Daniel J. Bernstein, Tanja Lange|издание=Progress in Cryptology – AFRICACRYPT 2010|издательство=Springer Berlin Heidelberg|год=2010-05-03|страницы=419–436|isbn=9783642126772, 9783642126789|doi=10.1007/978-3-642-12678-9_25}}</ref><ref>{{Статья|автор=Charles Bouillaguet, Orr Dunkelman, Gaëan Leurent, Pierre-Alain Fouque|заглавие=Attacks on Hash Functions Based on Generalized Feistel: Application to Reduced-Round Lesamnta and SHAvite-3 512|ссылка=http://link.springer.com/chapter/10.1007/978-3-642-19574-7_2|язык=en|ответственный=Alex Biryukov, Guang Gong, Douglas R. Stinson|издание=Selected Areas in Cryptography|издательство=Springer Berlin Heidelberg|год=2010-08-12|страницы=18–35|isbn=9783642195730, 9783642195747|doi=10.1007/978-3-642-19574-7_2}}</ref>. В то же время, хеш-функция имела относительно низкие показатели пропускной способности<ref>{{Cite web|url=http://csrc.nist.gov/publications/nistir/ir7764/nistir-7764.pdf|title=Status Report on the Second Round of the SHA-3 Cryptographic Hash Algorithm Competition|author=Meltem Sönmez Turan et al|work=csrc.nist.gov|date=2011|publisher=NIST Computer Security Resource Center}}</ref>. |
||
== Особенности дизайна == |
== Особенности дизайна == |
||
К особенностям хеш-функции SHAvite-3 относятся следующие факты<ref name=":1">{{Cite web|url=http://www.cs.technion.ac.il/~orrd/SHAvite-3/Spec.31.10.08.pdf|title=The SHAvite-3 Hash Function|author=Eli Biham, Orr Dunkelman|work=|date=31.10. |
К особенностям хеш-функции SHAvite-3 относятся следующие факты<ref name=":1">{{Cite web|url=http://www.cs.technion.ac.il/~orrd/SHAvite-3/Spec.31.10.08.pdf|title=The SHAvite-3 Hash Function|author=Eli Biham, Orr Dunkelman|work=cs.technion.ac.il|date=31.10.2008|publisher=Computer Science Department, Technion}}</ref>: |
||
* Итерации функций сжатия для получения хеш-функции производятся с помощью [[HAIFA]]. |
* Итерации функций сжатия для получения хеш-функции производятся с помощью [[HAIFA]]. |
||
* SHAvite-3 может иметь результаты переменной длины до 512 бит. |
* SHAvite-3 может иметь результаты переменной длины до 512 бит. |
||
* SHAvite-3 поддерживает [[Соль (криптография)|соли.]] |
* SHAvite-3 поддерживает [[Соль (криптография)|соли.]] |
||
* Функции сжатия разработаны с использованием известных и хорошо изученных компонент: [[Сеть Фейстеля|сети Фейстеля]], раундовых функций [[Advanced Encryption Standard|AES]] и [[Регистр сдвига с линейной обратной связью|регистров сдвига с линейной обратной связью]]. |
* Функции сжатия разработаны с использованием известных и хорошо изученных компонент: [[Сеть Фейстеля|сети Фейстеля]], раундовых функций [[Advanced Encryption Standard|AES]] и [[Регистр сдвига с линейной обратной связью|регистров сдвига с линейной обратной связью]]. |
||
* В числе требований к хеш-функции была возможность получения дайджеста длиной 224, 256, 384 и 512 бит для замены семейства криптографических алгоритмов [[SHA-2]]<ref>{{ |
* В числе требований к хеш-функции была возможность получения дайджеста длиной 224, 256, 384 и 512 бит для замены семейства криптографических алгоритмов [[SHA-2]]<ref>{{Статья|автор=Richard F. Kayser|заглавие=Announcing request for candidate algorithm nominations for a new cryptographic hash algorithm (SHA-3) family|ссылка=http://csrc.nist.gov/groups/ST/hash/documents/FR_Notice_Nov07.pdf|язык=en|издание=Federal Register|год=2007|месяц=11|число=2|том=72|номер=212|страницы=62212—62220|issn=0097-6326}}</ref>. Авторы SHAvite-3 разработали две функции: SHAvite-3<sub>256</sub> для генерации дайджеста длиной 224, 256 бит и SHAvite-3<sub>512</sub> для генерации дайджеста длиной 384 и 512 бит. |
||
== Алгоритм == |
== Алгоритм == |
Версия от 06:55, 9 декабря 2016
Шаблон:Карточка хеш функции SHAvite-3 — криптографическая хеш-функция, разработанная израильскими криптографами Эли Бихамом (англ. Eli Biham) и Ором Дункельманом (англ. Orr Dunkelman). Одна из четырнадцати участников второго раунда конкурса SHA-3, организованного NIST. SHAvite-3 основана на сочетании компонентов AES c фреймворком HAIFA. Данная хеш-функция использует такие криптографические примитивы, как сеть Фейстеля и конструкция Девиса-Мейера.Семейство хеш-функций SHAvite-3 включает в себя два алгоритма SHAvite-3256 и SHAvite-3512[1].
Название
Название функции SHAvite-3 произносится как «шавайт шалош» (иврит «шавайт три»). Авторы заявляют, что назвали ее так по следующим причинам[2]:
- SHAvite-3 названа так за свою скорость и безопасность, так как является защищенной и быстрой(фр. vite) хеш-функцией.
- Shavit переводится с иврита как комета.
- Shavite — последователь Шивы(англ. Shiva), индусского божества.
- Цифра 3 в названии возникла из-за того, что существовали две предыдущие версии, которые не были опубликованы.
История
Алгоритм SHAvite-3 был специально разработан для участия в конкурсе SHA-3. По результатам первого раунда была обнаружена уязвимость лежащего в основе блочного шифра, которая, однако, не привела к компрометации хеш-функции[3][4]. Авторами было предложена модификация к первоначально заявленной на конкурс версией, чтобы повысить защищенность алгоритма. Изменение было названо улучшенной (tweaked) версией и касалось обоих алгоритмов SHAvite-3256 и SHAvite-3512[2]. После этого последовало исправление ошибки в реализации раундовой функции AES и улучшена криптостойкость SHAvite-3512 путем увеличения количества раундов с 14 до 16[5]. Функция дошла до второго раунда конкурса криптографический функций, но до финального раунда не была допущена за недостаточную защищённость инициализации S-блоков, лежащих в основе блочного шифра, что приводило к относительно низкому уровню безопасности 512-разрядной версии хеш-функции[6][7][8]. В то же время, хеш-функция имела относительно низкие показатели пропускной способности[9].
Особенности дизайна
К особенностям хеш-функции SHAvite-3 относятся следующие факты[1]:
- Итерации функций сжатия для получения хеш-функции производятся с помощью HAIFA.
- SHAvite-3 может иметь результаты переменной длины до 512 бит.
- SHAvite-3 поддерживает соли.
- Функции сжатия разработаны с использованием известных и хорошо изученных компонент: сети Фейстеля, раундовых функций AES и регистров сдвига с линейной обратной связью.
- В числе требований к хеш-функции была возможность получения дайджеста длиной 224, 256, 384 и 512 бит для замены семейства криптографических алгоритмов SHA-2[10]. Авторы SHAvite-3 разработали две функции: SHAvite-3256 для генерации дайджеста длиной 224, 256 бит и SHAvite-3512 для генерации дайджеста длиной 384 и 512 бит.
Алгоритм
Раунд AES
В своей основе SHAvite-3 использует раунд AES[1]. Раунд определяет операции над текстом размером 128 бит. 128 бит текста представляются в виде матрицы размера 4×4. Каждый элемент матрицы имеет размер 8 бит и представляет значение в поле GF(28). Раунд состоит из последовательного применения операций SubBytes (), ShiftRows (), MixColumns () и сложения по модулю 2 с раундовым ключом .
HAIFA
SHAvite-3 построен на режиме итераций для хеш-функций HAIFA[1]. HAIFA задает правила, по которым выполняется дополнение сообщения до нужной длины, его сжатие со специальной функцией и сокращение полученного на выходе значения до требуемой длины. Таким образом, вычисление хеш-функции по алгоритму SHAvite-3 заключается в выполнении последовательно нескольких шагов.
- Дополнить сообщение до некоторой длины, чтобы его можно было разбить на блоки равного размера. Обозначим дополненное сообщение .
- Разбить дополненное сообщение на равных по размеру блоков: .
- Взять некоторое начальное значение , где — главное начальное значение, — желаемый размер дайджеста.
- Вычислить последующие значения согласно формуле , где — число захешированных к моменту вычисления бит сообщения, включая текущий блок. Иначе говоря — длина . Параметр — соль. В приложениях, где использование соли не требуется, авторы SHAvite-3 предлагают использовать , допуская при этом снижение безопасности и увеличение скорости вычислений[1].
- Сократить конечное значение до требуемой длины , это и будет результатом вычисления хеш-функции.
Дополнение сообщения
Пусть размер исходного сообщения — , желаемый размер значения хеш-функции — . Если размер блока, с которым работает функция сжатия , равен , то дополнение сообщения , которое имеет длину , до длины кратной выполняется в следующем порядке:
- К сообщению приписывается в конец один бит со значением 1, получаем .
- Дополняем значением , которое кодируется битами:
- Дополняем значением , которое кодируется битами:
- После бита 1 вставляем минимальное количество нулей, которое необходимо для того, чтобы длина полученного сообщения стала кратна : . Количество нулей можно вычислить по формуле: .
Разновидности алгоритма
Алгоритм SHAvite-3 имеет две разновидности, различающиеся используемой функцией сжатия и длиной дайджеста[1].
- SHAvite-3256 использует функцию сжатия и позволяет получить хеш длиной до 256 бит
- SHAvite-3512 использует функцию сжатия и позволяет получить хеш длиной от 257 до 512 бит
Генерация дайджеста
Пусть нам требуется сгенерировать хеш сообщения так, чтобы размер дайджеста был равен . Назовем первым случаем , а вторым — . В первом случае , во втором — .
- Найдем , где .
- Дополним сообщение до размера, кратного =512 в первом случае или до =1024 — во втором. Для этого воспользуемся процедурой, описанной ранее, считая =64 в первом случае и =128 — во втором. При этом в обоих случаях =16.
- Разобьем дополненное сообщение на блоки по бит и вычислим все , за исключением последних двух. Если длина исходного сообщения такова, что в результате дополнения сообщения, в конце образовался блок, который не содержит ни одного бита исходного сообщения, то ,. В противном случае, вычисляется по тем же формулам, что и предыдущие , а .
- Первые бит и есть требуемое значение хеш-функции.
Функции и
Принимают на вход 4 битовых вектора:
- Цепное значение (chaining value) с размером =256 бит для ( бит для ).
- Блок сообщения с размером =512 бит для (=1024 бита для ).
- Соль с размером =256 бит для (=512 бит для ).
- Битовый счетчик с размером =64 бита для (=128 бит для ).
На выходе получаем вектор с размером 256 бит для (512 бит для ).
Для реализации и используется конструкция Дэвиса-Мейера[1]. Это значит, что цепное значение пересчитывается по формулам и соответственно.
Функция
— 12-раундовый блочный шифр. Данный блочный шифр является сетью Фейстеля, которая состоит из 12 ячеек Фейстеля. принимает на вход 256-битный открытый текст . Его можно разделить на две части и по 128 бит. . Пересчет значений на каждом раунде производится по формуле: .
Здесь — вектор из трех ключей, различный для каждого раунда, а — некая функция. В результате может быть вычислено возвращаемое значение: .
Функция
Функция принимает на вход 128-битный текст и 384-битный ключ , который получается объединением трех 128-битных ключей . Она заключается в троекратном применении раунда AES: . Входной вектор складывается по модулю 2 с ключом , к результату применяются три раунда AES с разными ключами в следующем порядке: раунд AES с ключом , еще один раунд AES с ключом , последний раунд с ключом 0 (128 бит).
Генерация ключей для
Для вычисления функции требуется по три 128-битных ключа в каждом из 12 раундов. Для этого используется алгоритм генерации ключей из одного ключа. В качестве единственного ключа, из которого впоследствии будут созданы 36, используется совокупность блока сообщения (512 бит), соли (256 бит) и битового счетчика (64 бита). В алгоритме все операции производятся над 4-байтными значениями. Введем следующие обозначения:
- — блок сообщения
- — битовый счетчик
- — соль
В результате работы алгоритма мы должны будем получить 144 значения (также 4-байтных):
// Алгоритм генерации ключей для E^256 на языках C/C++
// Первые 16 значений результирующего массива
// проинициализировать исходным сообщением
for (int i = 0; i < 16; i++) rk[i] = msg[i];
int i = 16;
for (int k = 0; k < 4; k++) {
uint32_t t[4];
// Нелинейный шаг
for (int r = 0; r < 2; r++) {
// Выполнить раунд AES с ключем 0 над 128-битным значением,
// которое является суммой по модулю 2 ранее вычисленных элеменов
// массива rk и соли (0-127 биты).
// 128-битный результат записать в массив t
AESRound0(
rk[i-15]^salt[0], rg[i-14]^salt[1], rk[i-13]^salt[2], rk[i-16]^salt[3],
&t[0], &t[1], &t[2], &t[3]
);
for (int j = 0; j < 4; j++) rk[i+j] = t[j] ^ rk[i+j-4];
if (i == 16) { rk[16] ^= cnt[0]; rk[17] ^= ~cnt[1]; }
if (i == 56) { rk[16] ^= cnt[1]; rk[17] ^= ~cnt[0]; }
i += 4;
// Такой же раунд AES, как и ранее,
// но с оставшейся частью соли (128-255 биты)
AESRound0(
rk[i-15]^salt[4], rg[i-14]^salt[5], rk[i-13]^salt[6], rk[i-16]^salt[7],
&t[0], &t[1], &t[2], &t[3]
);
for (int j = 0; j < 4; j++) rk[i+j] = t[j] ^ rk[i+j-4];
if (i == 84) { rk[86] ^= cnt[1]; rk[87] ^= ~cnt[0]; }
if (i == 124) { rk[124] ^= cnt[0]; rk[127] ^= ~cnt[1]; }
i += 4;
}
// Линейный шаг
for (int r = 0; r != 16; ++r) {
rk[i] = rk[i-16] ^ rk[i-3];
i += 1;
}
}
Стоит отметить, что представленный выше алгоритм — модифицированная авторами версия. Единственное отличие от изначально отправленного на конкурс SHA-3 варианта — наличие операций побитового отрицания «~» счетчика. Отрицание было добавлено, чтобы увеличить криптографическую стойкость хеш-функции. Наличие таких операций дает гарантию, что по крайней мере 4 из 8 байт счетчика будут ненулевыми[2].
Ключи для вычисления функции получаются из следующим образом:, где , .
Функция
Данная функция реализована по аналогии с , но принимает на вход 512-битный открытый текст , который представляется в виде 4 частей по
128 бит: . Пересчет выполняется по формуле за 14 раундов (в обновленной версии авторы предложили использовать 16 раундов[5]). .
Функция
Принимает на вход 128 бит текста и 512-битный ключ . Вычисляется как 4 раунда AES. .
Генерация ключей для
Для вычисления функции требуется по восемь 128-битных ключей в каждом из 14 раундов. Всего — 112 ключей. Они составляются на основе блока сообщения (1024 бита), соли (512 бит) и битового счетчика (128 бита). Все операции производятся над 4-байтными значениями. Введем следующие обозначения:
- — блок сообщения
- — битовый счетчик
- — соль
В результате работы алгоритма мы должны будем получить 448 значений (4-байтных):
// Алгоритм генерации ключей для E^512 на языках C/C++
// Первые 32 значений результирующего массива
// проинициализировать исходным сообщением
for (int i = 0; i < 32; i++) rk[i] = msg[i];
int i = 32;
for (int k = 0; k < 7; k++) {
uint32_t t[4];
// Нелинейный шаг (7 раз)
for (int r = 0; r < 2; r++) {
AESRound0(
rk[i-31]^salt[0], rg[i-30]^salt[1], rk[i-29]^salt[2], rk[i-32]^salt[3],
&t[0], &t[1], &t[2], &t[3]); // Раунд AES с ключем 0, соль 0-3
for (int j = 0; j < 4; j++) rk[i+j] = t[j] ^ rk[i+j-4];
if (i == 32) { rk[32] ^= cnt[0]; rk[33] ^= cnt[1];
rk[34]^= cnt[2]; rk[35] ^= ~cnt[3]; }
i += 4;
AESRound0(
rk[i-31]^salt[4], rg[i-30]^salt[5], rk[i-29]^salt[6], rk[i-32]^salt[7],
&t[0], &t[1], &t[2], &t[3]); // Раунд AES с ключем 0, соль 4-7
for (int j = 0; j < 4; j++) rk[i+j] = t[j] ^ rk[i+j-4];
if (i == 164) { rk[164] ^= cnt[3]; rk[165] ^= cnt[2];
rk[166] ^= cnt[1]; rk[167] ^= ~cnt[0]; }
i += 4;
AESRound0(
rk[i-31]^salt[8], rg[i-30]^salt[9], rk[i-29]^salt[10], rk[i-32]^salt[11],
&t[0], &t[1], &t[2], &t[3]); // Раунд AES с ключем 0, соль 8-11
for (int j = 0; j < 4; j++) rk[i+j] = t[j] ^ rk[i+j-4];
if (i == 440) { rk[440] ^= cnt[1]; rk[441] ^= cnt[0];
rk[442]^= cnt[3]; rk[443] ^= ~cnt[2]; }
i += 4;
AESRound0(
rk[i-31]^salt[12], rg[i-30]^salt[13], rk[i-29]^salt[14], rk[i-32]^salt[15],
&t[0], &t[1], &t[2], &t[3]); // Раунд AES с ключем 0, соль 12-15
for (int j = 0; j < 4; j++) rk[i+j] = t[j] ^ rk[i+j-4];
if (i == 316) { rk[316] ^= cnt[2]; rk[317] ^= cnt[3];
rk[318] ^= cnt[0]; rk[319] ^= ~cnt[1]; }
i += 4;
}
if (k == 6) break; // не совершать 7 линейный шаг
// Линейный шаг (6 раз)
for (int r = 0; r != 32; ++r) {
rk[i] = rk[i-32] ^ rk[i-7];
i += 1;
}
}
Здесь, как и в 256-битной версии, единственное отличие улучшенной (tweaked) версии от первоначально отправленной на конкурс SHA-3 — наличие операций побитового НЕ "~" перед значениями счетчика. Наличие таких операций дает гарантию, что по крайней мере 4 из 16 байт счетчика будут ненулевыми[2].
Далее ключи для вычисления функции получаются из следующим образом:, где , .
Быстродействие
В таблице представлены сравнительные данные скорости действия алгоритмов[1].
Алгоритм | Скорость (тактов/байт) | |
---|---|---|
32 бит | 64 бит | |
MD5 | 7.4 | 8.8 |
SHA-1 | 9.8 | 9.5 |
SHA-256 | 28.8 | 25.3 |
SHA-512 | 77.8 | 16.9 |
SHAvite-3256 (изм.) | 35.3 | 26.7 |
SHAvite-3256 (приб.) | 26.6 | 18.6 |
SHAvite-3256 (c инстр. AES) | < 8 | < 8 |
SHAvite-3512 (изм.) | 55.0 | 38.2 |
SHAvite-3512 (приб.) | 35.3 | 28.4 |
SHAvite-3512 (c инстр. AES) | < 12 | < 12 |
Функция также может быть реализована аппаратно.
Длина | Технология | Размер | Пропускная способность |
---|---|---|---|
256 | ASIC | 10.3 Kgates | 7.6 Mbps |
55.0 Kgates | 604.4 Mbps | ||
FPGA | 510 Slices | 1.7 Mbps | |
3585 Slice | 872.3 Mbps | ||
512 | ASIC | 18.5 Kgates | 4.7 Mbps |
81 Kgates | 907.7 Mbps | ||
FPGA | 895 Slices | 1.0 Mbps | |
7170 Slices | 1.12 Gbps |
В таблице приведены данные, основанные на аппаратной реализации AES 2005 года, быстродействие на настоящий момент может оказаться лучше[1].
Примечания
- ↑ 1 2 3 4 5 6 7 8 9 Eli Biham, Orr Dunkelman. The SHAvite-3 Hash Function . cs.technion.ac.il. Computer Science Department, Technion (31 октября 2008).
- ↑ 1 2 3 4 Eli Biham, Orr Dunkelman. The SHAvite-3 Hash Function. Tweaked Version . cs.technion.ac.il. Computer Science Department, Technion (23 ноября 2009).
- ↑ Thomas Peyrin. Сообщение в рассылке NIST о найденной уязвимости . NIST mailing list. NIST Computer Security Resource Center (19.01.09).
- ↑ Paul Souradyuti. OFFICIAL COMMENT: SHAvite-3 . NIST mailing list. NIST Computer Security Resource Center (16.06.09).
- ↑ 1 2 Eli Biham, Orr Dunkelman. Updates on SHAvite-3 . cs.technion.ac.il. Computer Science Department, Technion (23 августа 2010).
- ↑ Mridul Nandi, Souradyuti Paul. Сообщение в рассылке NIST о найденной уязвимости . NIST mailing list. NIST (18 июня 2009).
- ↑ Praveen Gauravaram, Gaëtan Leurent, Florian Mendel, María Naya-Plasencia, Thomas Peyrin. Cryptanalysis of the 10-Round Hash and Full Compression Function of SHAvite-3-512 (англ.) // Progress in Cryptology – AFRICACRYPT 2010 / Daniel J. Bernstein, Tanja Lange. — Springer Berlin Heidelberg, 2010-05-03. — P. 419–436. — ISBN 9783642126772, 9783642126789. — doi:10.1007/978-3-642-12678-9_25.
- ↑ Charles Bouillaguet, Orr Dunkelman, Gaëan Leurent, Pierre-Alain Fouque. Attacks on Hash Functions Based on Generalized Feistel: Application to Reduced-Round Lesamnta and SHAvite-3 512 (англ.) // Selected Areas in Cryptography / Alex Biryukov, Guang Gong, Douglas R. Stinson. — Springer Berlin Heidelberg, 2010-08-12. — P. 18–35. — ISBN 9783642195730, 9783642195747. — doi:10.1007/978-3-642-19574-7_2.
- ↑ Meltem Sönmez Turan et al. Status Report on the Second Round of the SHA-3 Cryptographic Hash Algorithm Competition . csrc.nist.gov. NIST Computer Security Resource Center (2011).
- ↑ Richard F. Kayser. Announcing request for candidate algorithm nominations for a new cryptographic hash algorithm (SHA-3) family (англ.) // Federal Register. — 2007. — 2 November (vol. 72, no. 212). — P. 62212—62220. — ISSN 0097-6326.
Ссылки
- Сайт SHAvite-3
- Спецификация SHAvite-3 (Первоначальная версия)
- Спецификация SHAvite-3 (Улучшенная версия)
- Обновления SHAvite-3
- Сайт NIST. Конкурс на алгоритм SHA-3
- Результат первого раунда конкурса на алгоритм SHA-3
- Результат второго раунда конкурса на алгоритм SHA-3
Статья является кандидатом в добротные статьи с 18 ноября 2016. |