Хеш-функция облегчённой криптографии: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
м определение
добавил ссылки и LSB
Строка 1: Строка 1:
'''Хеш-функция облегченной криптографии''' - криптостойкая [[хеш-функция]], используемая в «легковесной» [[Криптография|криптографии]].
'''Хеш-функция облегченной криптографии''' - криптостойкая [[хеш-функция]], используемая в «легковесной» [[Криптография|криптографии]].<ref>{{Статья|ссылка=http://dx.doi.org/10.5220/0004042502390244|заглавие=Towards Pervasive Cryptographic Access Control Models|год=2012|издание=Proceedings of the International Conference on Security and Cryptography|издательство=SciTePress - Science and and Technology Publications|isbn=978-989-8565-24-2|doi=10.5220/0004042502390244}}</ref>


== Концепция облегченной криптографии ==
== Концепция облегченной криптографии ==
Облегчённая криптография – раздел криптографии, в котором рассматриваются алгоритмы для устройств не обладающих достаточными ресурсами для реализации существующих [[Шифр|шифров]], [[Хеш-функция|хеш-функций]], [[Электронная подпись|электронных подписей]] и т.д.<ref>{{Статья|автор=Kerry A McKay, Larry Bassham, Meltem Sonmez Turan, Nicky Mouha|год=2017-03|заглавие=Report on lightweight cryptography|ссылка=http://dx.doi.org/10.6028/nist.ir.8114|место=Gaithersburg, MD|издательство=National Institute of Standards and Technology}}</ref> «Легковесная» криптография приобрела исключительную актуальность в настоящее время в связи распространением парадигмы [[Умный дом|умного дома]], где множество приборов небольшого размера, с ограниченной вычислительной мощностью, лимитированным объемом памяти и малым энергопотреблением коммуницируют между собой, обмениваясь конфедициальной информацией жильца, для выполнения своих задач.<ref>{{Статья|автор=Megha Agrawal, Jianying Zhou, Donghoon Chang|год=2019|isbn=978-3-030-12329-1, 978-3-030-12330-7|страницы=71–94|заглавие=A Survey on Lightweight Authenticated Encryption and Challenges for Securing Industrial IoT|ссылка=http://dx.doi.org/10.1007/978-3-030-12330-7_4|место=Cham|издательство=Springer International Publishing|издание=Security and Privacy Trends in the Industrial Internet of Things}}</ref><ref>{{Статья|автор=Susha Surendran, Amira Nassef, Babak D. Beheshti|год=2018-05|doi=10.1109/lisat.2018.8378034|isbn=978-1-5386-5029-5|заглавие=A survey of cryptographic algorithms for IoT devices|ссылка=http://dx.doi.org/10.1109/lisat.2018.8378034|издательство=IEEE|издание=2018 IEEE Long Island Systems, Applications and Technology Conference (LISAT)}}</ref> Также особый интерес представляют алгоритмы для [[RFID]] меток.<ref>{{Статья|ссылка=http://dx.doi.org/10.1007/978-3-540-71641-9_18|автор=Damith C. Ranasinghe|заглавие=Lightweight Cryptography for Low Cost RFID|год=2008|место=Berlin, Heidelberg|издание=Networked RFID Systems and Lightweight Cryptography|издательство=Springer Berlin Heidelberg|страницы=311–346|isbn=978-3-540-71640-2, 978-3-540-71641-9}}</ref> Для того, чтобы злоумышленики не воспользовались приватной информацией пользователя, требуется специальная разработка и оптимизация алгоритмов способных работать при ограниченных ресурсах и обеспечивать должный уровень безопасности.<ref>{{Статья|автор=Susha Surendran, Amira Nassef, Babak D. Beheshti|год=2018-05|doi=10.1109/lisat.2018.8378034|isbn=978-1-5386-5029-5|заглавие=A survey of cryptographic algorithms for IoT devices|ссылка=http://dx.doi.org/10.1109/lisat.2018.8378034|издательство=IEEE|издание=2018 IEEE Long Island Systems, Applications and Technology Conference (LISAT)}}</ref>
Облегчённая криптография – раздел криптографии, в котором рассматриваются алгоритмы для устройств не обладающих достаточными ресурсами для реализации существующих [[Шифр|шифров]], [[Хеш-функция|хеш-функций]], [[Электронная подпись|электронных подписей]] и т.д.<ref>{{Статья|автор=Kerry A McKay, Larry Bassham, Meltem Sonmez Turan, Nicky Mouha|год=2017-03|заглавие=Report on lightweight cryptography|ссылка=http://dx.doi.org/10.6028/nist.ir.8114|место=Gaithersburg, MD|издательство=National Institute of Standards and Technology}}</ref> «Легковесная» криптография приобрела исключительную актуальность в настоящее время в связи распространением парадигмы [[Домашняя автоматизация|умного дома]], где множество приборов небольшого размера, с ограниченной вычислительной мощностью, лимитированным объемом памяти и малым энергопотреблением коммуницируют между собой, обмениваясь конфедициальной информацией жильца, для выполнения своих задач.<ref>{{Статья|автор=Megha Agrawal, Jianying Zhou, Donghoon Chang|год=2019|isbn=978-3-030-12329-1, 978-3-030-12330-7|страницы=71–94|заглавие=A Survey on Lightweight Authenticated Encryption and Challenges for Securing Industrial IoT|ссылка=http://dx.doi.org/10.1007/978-3-030-12330-7_4|место=Cham|издательство=Springer International Publishing|издание=Security and Privacy Trends in the Industrial Internet of Things}}</ref><ref>{{Статья|автор=Susha Surendran, Amira Nassef, Babak D. Beheshti|год=2018-05|doi=10.1109/lisat.2018.8378034|isbn=978-1-5386-5029-5|заглавие=A survey of cryptographic algorithms for IoT devices|ссылка=http://dx.doi.org/10.1109/lisat.2018.8378034|издательство=IEEE|издание=2018 IEEE Long Island Systems, Applications and Technology Conference (LISAT)}}</ref> Также особый интерес представляют алгоритмы для [[RFID]] меток.<ref>{{Статья|ссылка=http://dx.doi.org/10.1007/978-3-540-71641-9_18|автор=Damith C. Ranasinghe|заглавие=Lightweight Cryptography for Low Cost RFID|год=2008|место=Berlin, Heidelberg|издание=Networked RFID Systems and Lightweight Cryptography|издательство=Springer Berlin Heidelberg|страницы=311–346|isbn=978-3-540-71640-2, 978-3-540-71641-9}}</ref> Для того, чтобы злоумышленики не воспользовались приватной информацией пользователя, требуется специальная разработка и оптимизация алгоритмов способных работать при ограниченных ресурсах и обеспечивать должный уровень безопасности.<ref>{{Статья|автор=Susha Surendran, Amira Nassef, Babak D. Beheshti|год=2018-05|doi=10.1109/lisat.2018.8378034|isbn=978-1-5386-5029-5|заглавие=A survey of cryptographic algorithms for IoT devices|ссылка=http://dx.doi.org/10.1109/lisat.2018.8378034|издательство=IEEE|издание=2018 IEEE Long Island Systems, Applications and Technology Conference (LISAT)}}</ref>


== Хеш-функции ==
== Хеш-функции ==


=== Применение ===
=== Применение ===
Для того, чтобы адресату убедиться в том, что ему было прислано сообщение от настоящего адресанта, оно отправляется вместе с электронной подписью. На практике подписывают не сообщение, а его хеш-сумму, это позволяет значительно уменьшить вычислительные ресурсы на создание подписи (т.к. обычно хеш-сумма на порядки меньше ключа) и повысить криптостойкость (злоумышленник не сможет узнать исходные данные только из хеша). Хеш-функции используются в технологии [[блокчейн]] для того, чтобы определить блок, который добавится в общую цепь. Например: для добавления нового блока в платформу [[Биткойн|Bitcoin]] требуется найти хеш-сумму [[SHA-2|SHA-256]] меньше, чем определенное целевое число. В следующий созданный блок будет записан хеш предыдущего.<ref>{{Статья|ссылка=http://dx.doi.org/10.1109/spw.2015.27|автор=Guy Zyskind, Oz Nathan, Alex 'Sandy' Pentland|заглавие=Decentralizing Privacy: Using Blockchain to Protect Personal Data|год=2015-05|издание=2015 IEEE Security and Privacy Workshops|издательство=IEEE|isbn=978-1-4799-9933-0|doi=10.1109/spw.2015.27}}</ref>
Для того, чтобы адресату убедиться в том, что ему было прислано сообщение от настоящего адресанта, оно отправляется вместе с электронной подписью. На практике подписывают не сообщение, а его хеш-сумму, это позволяет значительно уменьшить вычислительные ресурсы на создание подписи (т.к. обычно хеш-сумма на порядки меньше ключа) и повысить криптостойкость (злоумышленник не сможет узнать исходные данные только из хеша).<ref>{{Статья|ссылка=http://dx.doi.org/10.1109/icip.2003.1246725|автор=F. Lefebvre, J. Czyz, B. Macq|заглавие=A robust soft hash algorithm for digital image signature|издание=Proceedings 2003 International Conference on Image Processing (Cat. No.03CH37429)|издательство=IEEE|isbn=0-7803-7750-8|doi=10.1109/icip.2003.1246725}}</ref> Хеш-функции используются в технологии [[блокчейн]] для того, чтобы определить блок, который добавится в общую цепь. Например: для добавления нового блока в платформу [[Биткойн|Bitcoin]] требуется найти хеш-сумму [[SHA-2|SHA-256]] меньше, чем определенное целевое число. В следующий созданный блок будет записан хеш предыдущего.<ref>{{Статья|ссылка=http://dx.doi.org/10.1109/spw.2015.27|автор=Guy Zyskind, Oz Nathan, Alex 'Sandy' Pentland|заглавие=Decentralizing Privacy: Using Blockchain to Protect Personal Data|год=2015-05|издание=2015 IEEE Security and Privacy Workshops|издательство=IEEE|isbn=978-1-4799-9933-0|doi=10.1109/spw.2015.27}}</ref> Более того, хеш-функции, в частности хеш-функции облегченной криптографии могут применяться на стыке дисциплин. Например: они применяются в блокчейне LSB, который предназначен для использования в интернете вещей.<ref>{{Статья|ссылка=http://dx.doi.org/10.1016/j.jpdc.2019.08.005|автор=Ali Dorri, Salil S. Kanhere, Raja Jurdak, Praveen Gauravaram|заглавие=LSB: A Lightweight Scalable Blockchain for IoT security and anonymity|год=2019-12|издание=Journal of Parallel and Distributed Computing|том=134|страницы=180–197|issn=0743-7315|doi=10.1016/j.jpdc.2019.08.005}}</ref>


Также хеш-суммы используются при проверке паролей. Если бы операционные системы хранили пароли в файлах, то взломщики с помощью несанкционированного доступа смогли бы получить к ним доступ, извлечение хеша, в свою очередь, им ничего не даст.
Также хеш-суммы используются при проверке паролей. Если бы операционные системы хранили пароли в файлах, то взломщики с помощью несанкционированного доступа смогли бы получить к ним доступ, извлечение хеша, в свою очередь, им ничего не даст.<ref>{{Статья|ссылка=http://dx.doi.org/10.1016/s0167-4048(00)05032-x|автор=Mohammad Peyravian, Nevenko Zunic|заглавие=Methods for Protecting Password Transmission|год=2000-07|издание=Computers & Security|том=19|выпуск=5|страницы=466–469|issn=0167-4048|doi=10.1016/s0167-4048(00)05032-x}}</ref>


=== Требования ===
=== Требования ===
Основные требования к хеш-функциям облегченной криптографии такие же, как и к обычным криптографическим хеш-функциям:
Основные требования к хеш-функциям облегченной криптографии такие же, как и к обычным криптографическим хеш-функциям<ref>{{Статья|ссылка=http://dx.doi.org/10.6028/nist.ir.8114|автор=Kerry A McKay, Larry Bassham, Meltem Sonmez Turan, Nicky Mouha|заглавие=Report on lightweight cryptography|год=2017-03|место=Gaithersburg, MD|издательство=National Institute of Standards and Technology}}</ref>:


* '''Стойкость к восстановлению первого прообраза''' - при наличии хеш-суммы ''H(m)'' невозможность вычислить ''m''
* '''Стойкость к восстановлению первого прообраза''' - при наличии хеш-суммы ''H(m)'' невозможность вычислить ''m''
Строка 24: Строка 24:


=== Атаки на хеш-функции ===
=== Атаки на хеш-функции ===
Среди атак на хеш-функции наиболее распространены следующие:


# [[Атака «дней рождения»]] - используется для поиска [[Коллизия хеш-функции|коллизии второго рода]], эксплуатирует [[парадокс дней рождения]]. Для успешной атаки число обращений к хеш-функции должно составлять примерно 2<sup>n/2</sup>, а квантовым компьютерам 2<sup>n/3</sup><ref>{{Статья|ссылка=http://dx.doi.org/10.1007/bfb0054319|автор=Gilles Brassard, Peter HØyer, Alain Tapp|заглавие=Quantum cryptanalysis of hash and claw-free functions|год=1998|место=Berlin, Heidelberg|издание=LATIN'98: Theoretical Informatics|издательство=Springer Berlin Heidelberg|страницы=163–169|isbn=978-3-540-64275-6, 978-3-540-69715-2}}</ref>
# [[Атака «дней рождения»]] - используется для поиска [[Коллизия хеш-функции|коллизии второго рода]], эксплуатирует [[парадокс дней рождения]]. Для успешной атаки число обращений к хеш-функции должно составлять примерно 2<sup>n/2</sup>, а квантовым компьютерам 2<sup>n/3</sup><ref>{{Статья|ссылка=http://dx.doi.org/10.1007/bfb0054319|автор=Gilles Brassard, Peter HØyer, Alain Tapp|заглавие=Quantum cryptanalysis of hash and claw-free functions|год=1998|место=Berlin, Heidelberg|издание=LATIN'98: Theoretical Informatics|издательство=Springer Berlin Heidelberg|страницы=163–169|isbn=978-3-540-64275-6, 978-3-540-69715-2}}</ref>
# [[:en:Cube_attack|Кубическая атака]] - эффективна для атак на хеш-функций и шифров, которые используют [[Регистр сдвига с линейной обратной связью|LFSR]]<ref>{{Статья|ссылка=http://dx.doi.org/10.1080/01611190701743690|автор=Raphael C.-W. Phan, Adi Shamir|заглавие=Improved Related-key Attacks on DESX and DESX+|год=2008-01-10|издание=Cryptologia|том=32|выпуск=1|страницы=13–22|issn=0161-1194, 1558-1586|doi=10.1080/01611190701743690}}</ref>
# [[:en:Cube_attack|Кубическая атака]] - эффективна для атак на хеш-функций и шифров, которые используют [[Регистр сдвига с линейной обратной связью|LFSR]]<ref>{{Статья|ссылка=http://dx.doi.org/10.1080/01611190701743690|автор=Raphael C.-W. Phan, Adi Shamir|заглавие=Improved Related-key Attacks on DESX and DESX+|год=2008-01-10|издание=Cryptologia|том=32|выпуск=1|страницы=13–22|issn=0161-1194, 1558-1586|doi=10.1080/01611190701743690}}</ref>
# [[:en:Linear_cryptanalysis|Линейные атаки]] - разработана для хеш-функций, использующих блочные и потоковые шифры (например может успешно применяться для [[Хеш-функции облегченной криптографии#SPN-Hash|SPN-Hash]])
# [[:en:Linear_cryptanalysis|Линейные атаки]] - разработана для хеш-функций, использующих блочные и потоковые шифры<ref>{{Статья|ссылка=http://dx.doi.org/10.1007/978-3-642-34117-5_11|автор=Lei Wang, Yu Sasaki, Kazuo Sakiyama, Kazuo Ohta|заглавие=Polynomial-Advantage Cryptanalysis of 3D Cipher and 3D-Based Hash Function|год=2012|место=Berlin, Heidelberg|издание=Advances in Information and Computer Security|издательство=Springer Berlin Heidelberg|страницы=170–181|isbn=978-3-642-34116-8, 978-3-642-34117-5}}</ref>
# [[:en:Differential_cryptanalysis|Дифференциальные атаки]] - действенны для хеш-функций с блочными шифрами
# [[:en:Differential_cryptanalysis|Дифференциальные атаки]] - действенны для хеш-функций с блочными шифрами<ref>{{Статья|ссылка=http://dx.doi.org/10.1007/3-540-48329-2_31|автор=Bart Preneel, René Govaerts, Joos Vandewalle|заглавие=Hash functions based on block ciphers: a synthetic approach|место=Berlin, Heidelberg|издание=Advances in Cryptology — CRYPTO’ 93|издательство=Springer Berlin Heidelberg|страницы=368–378|isbn=978-3-540-57766-9}}</ref>
# [[Атака методом бумеранга#Применение к хеш-функциям|Атака методом бумеранга]] - усовершенствованная дифференциальная атака, которая успешно применяется к хеш-функциям<ref>{{Статья|ссылка=http://dx.doi.org/10.1007/978-3-540-74143-5_14|автор=Antoine Joux, Thomas Peyrin|заглавие=Hash Functions and the (Amplified) Boomerang Attack|место=Berlin, Heidelberg|издание=Advances in Cryptology - CRYPTO 2007|издательство=Springer Berlin Heidelberg|страницы=244–263|isbn=978-3-540-74142-8}}</ref>. Так, например, для нахождения коллизий [[SHA-1|SHA-0]] с помощью этой атаки потребовался всего лишь один час на обычном [[Персональный компьютер|ПК]]<ref>{{Статья|ссылка=http://dx.doi.org/10.1007/978-3-540-71039-4_2|автор=Stéphane Manuel, Thomas Peyrin|заглавие=Collisions on SHA-0 in One Hour|место=Berlin, Heidelberg|издание=Fast Software Encryption|издательство=Springer Berlin Heidelberg|страницы=16–35|isbn=978-3-540-71038-7, 978-3-540-71039-4}}</ref>
# [[Атака методом бумеранга#Применение к хеш-функциям|Атака методом бумеранга]] - усовершенствованная дифференциальная атака, которая успешно применяется к хеш-функциям<ref>{{Статья|ссылка=http://dx.doi.org/10.1007/978-3-540-74143-5_14|автор=Antoine Joux, Thomas Peyrin|заглавие=Hash Functions and the (Amplified) Boomerang Attack|место=Berlin, Heidelberg|издание=Advances in Cryptology - CRYPTO 2007|издательство=Springer Berlin Heidelberg|страницы=244–263|isbn=978-3-540-74142-8}}</ref>. Так, например, для нахождения коллизий [[SHA-1|SHA-0]] с помощью этой атаки потребовался всего лишь один час на обычном [[Персональный компьютер|ПК]]<ref>{{Статья|ссылка=http://dx.doi.org/10.1007/978-3-540-71039-4_2|автор=Stéphane Manuel, Thomas Peyrin|заглавие=Collisions on SHA-0 in One Hour|место=Berlin, Heidelberg|издание=Fast Software Encryption|издательство=Springer Berlin Heidelberg|страницы=16–35|isbn=978-3-540-71038-7, 978-3-540-71039-4}}</ref>
# [[Атака удлинением сообщения]] - применяется для хеш-функций, основанных на Структура Меркла — Дамгора. Суть атаки заключается в добавлении новых битов в конец сообщения. Среди уязвимых функций: [[MD5]] и [[SHA-1]]<ref>{{Статья|ссылка=http://dx.doi.org/10.31979/etd.fm5j-tzcm|автор=Narayana D. Kashyap|заглавие=A Meaningful MD5 Hash Collision Attack|издательство=San Jose State University Library}}</ref><ref>{{Статья|ссылка=http://dx.doi.org/10.1007/springerreference_199|заглавие=Davies-Meyer Hash Function|место=Berlin/Heidelberg|издание=SpringerReference|издательство=Springer-Verlag}}</ref>
# [[Атака удлинением сообщения]] - применяется для хеш-функций, основанных на Структура Меркла — Дамгора.<ref>{{Статья|ссылка=http://dx.doi.org/10.1007/11535218_26|автор=Jean-Sébastien Coron, Yevgeniy Dodis, Cécile Malinaud, Prashant Puniya|заглавие=Merkle-Damgård Revisited: How to Construct a Hash Function|год=2005|место=Berlin, Heidelberg|издание=Advances in Cryptology – CRYPTO 2005|издательство=Springer Berlin Heidelberg|страницы=430–448|isbn=978-3-540-28114-6, 978-3-540-31870-5}}</ref> Суть атаки заключается в добавлении новых битов в конец сообщения. Среди уязвимых функций: [[MD5]] и [[SHA-1]]<ref>{{Статья|ссылка=http://dx.doi.org/10.31979/etd.fm5j-tzcm|автор=Narayana D. Kashyap|заглавие=A Meaningful MD5 Hash Collision Attack|издательство=San Jose State University Library}}</ref><ref>{{Статья|ссылка=http://dx.doi.org/10.1007/springerreference_199|заглавие=Davies-Meyer Hash Function|место=Berlin/Heidelberg|издание=SpringerReference|издательство=Springer-Verlag}}</ref>
# Мультиколлизионная атака Жу<ref>{{Статья|ссылка=http://dx.doi.org/10.1145/2523514.2523551|автор=Mohammad A. AlAhmad, Imad Fakhri Alshaikhli, Mridul Nandi|заглавие=Joux multicollisions attack in sponge construction|год=2013|место=New York, New York, USA|издание=Proceedings of the 6th International Conference on Security of Information and Networks - SIN '13|издательство=ACM Press|isbn=978-1-4503-2498-4|doi=10.1145/2523514.2523551}}</ref> - направлена на хеш-функции, использующие в качестве своей основы функцию губки, которая распространена среди функций облегченной криптографии
# Мультиколлизионная атака Жу<ref>{{Статья|ссылка=http://dx.doi.org/10.1145/2523514.2523551|автор=Mohammad A. AlAhmad, Imad Fakhri Alshaikhli, Mridul Nandi|заглавие=Joux multicollisions attack in sponge construction|год=2013|место=New York, New York, USA|издание=Proceedings of the 6th International Conference on Security of Information and Networks - SIN '13|издательство=ACM Press|isbn=978-1-4503-2498-4|doi=10.1145/2523514.2523551}}</ref> - направлена на хеш-функции, использующие в качестве своей основы функцию губки, которая распространена среди функций облегченной криптографии
# [[Rebound attack|Rebound атака]] - предназначена для AES-подобных алгоритмов<ref>{{Статья|ссылка=http://dx.doi.org/10.1007/978-3-642-10366-7_7|автор=Krystian Matusiewicz, María Naya-Plasencia, Ivica Nikolić, Yu Sasaki, Martin Schläffer|заглавие=Rebound Attack on the Full Lane Compression Function|год=2009|место=Berlin, Heidelberg|издание=Advances in Cryptology – ASIACRYPT 2009|издательство=Springer Berlin Heidelberg|страницы=106–125|isbn=978-3-642-10365-0, 978-3-642-10366-7}}</ref>
# [[Rebound attack|Rebound атака]] - предназначена для AES-подобных алгоритмов (Например: [[Хеш-функции облегченной криптографии#PHOTON|PHOTON]])
# [[:en:Rotational_cryptanalysis|Ротационная атака]] - создана для взлома хеш-функций, основанных на ARX ([[сравнение по модулю]]--[[битовый сдвиг]]--[[Сложение по модулю 2|XOR]])<ref>{{Статья|ссылка=http://dx.doi.org/10.1007/978-3-642-13858-4_19|автор=Dmitry Khovratovich, Ivica Nikolić|заглавие=Rotational Cryptanalysis of ARX|год=2010|место=Berlin, Heidelberg|издание=Fast Software Encryption|издательство=Springer Berlin Heidelberg|страницы=333–346|isbn=978-3-642-13857-7, 978-3-642-13858-4}}</ref>
# [[:en:Rotational_cryptanalysis|Ротационная атака]] - создана для взлома хеш-функций, основанных на ARX ([[сравнение по модулю]]-[[битовый сдвиг]]-[[Сложение по модулю 2|XOR]])<ref>{{Статья|ссылка=http://dx.doi.org/10.1007/978-3-642-13858-4_19|автор=Dmitry Khovratovich, Ivica Nikolić|заглавие=Rotational Cryptanalysis of ARX|год=2010|место=Berlin, Heidelberg|издание=Fast Software Encryption|издательство=Springer Berlin Heidelberg|страницы=333–346|isbn=978-3-642-13857-7, 978-3-642-13858-4}}</ref>


== Виды хеширований ==
== Виды хеширований ==
Все применяемые на данный момент алгоритмы хеширования в облегченной криптографии можно разделить на 2 класса:

=== [[Структура Меркла — Дамгора|Меркл — Дамгор]] ===
=== [[Структура Меркла — Дамгора|Меркл — Дамгор]] ===


Строка 56: Строка 53:
* H(m) = d = c<sub>L</sub>
* H(m) = d = c<sub>L</sub>


==== Усовершенствованный алгоритм<ref>{{Статья|ссылка=http://dx.doi.org/10.1007/11535218_26|автор=Jean-Sébastien Coron, Yevgeniy Dodis, Cécile Malinaud, Prashant Puniya|заглавие=Merkle-Damgård Revisited: How to Construct a Hash Function|год=2005|место=Berlin, Heidelberg|издание=Advances in Cryptology – CRYPTO 2005|издательство=Springer Berlin Heidelberg|страницы=430–448|isbn=978-3-540-28114-6, 978-3-540-31870-5}}</ref>====
==== Усовершенствованный алгоритм ====
Для усиления защиты от атак, основанных на расширении входного сообщения, можно добавить новый блок, в котором будет записана длина сообщения. В нашем случае это будет:
Для усиления защиты от атак, основанных на расширении входного сообщения, можно добавить новый блок, в котором будет записана длина сообщения. В нашем случае это будет:


Строка 66: Строка 63:


=== [[Функция губки]] ===
=== [[Функция губки]] ===
Функция губки<ref>{{Статья|автор=Guido Bertoni, Joan Daemen, Michaël Peeters, Gilles Van Assche|год=2010|isbn=9783642150302, 9783642150319|страницы=33–47|заглавие=Sponge-Based Pseudo-Random Number Generators|ссылка=http://dx.doi.org/10.1007/978-3-642-15031-9_3|место=Berlin, Heidelberg|издательство=Springer Berlin Heidelberg|издание=Cryptographic Hardware and Embedded Systems, CHES 2010}}</ref> широко используется в криптографии, с помощью неё создаются алгоритмы [[Генератор псевдослучайных чисел|ГПСЧ]], [[Потоковый шифр|потоковых]] и [[Блочный шифр|блочных]] шифров, а также хеш-функций.
Функция губки<ref>{{Статья|автор=Guido Bertoni, Joan Daemen, Michaël Peeters, Gilles Van Assche|год=2010|isbn=9783642150302, 9783642150319|страницы=33–47|заглавие=Sponge-Based Pseudo-Random Number Generators|ссылка=http://dx.doi.org/10.1007/978-3-642-15031-9_3|место=Berlin, Heidelberg|издательство=Springer Berlin Heidelberg|издание=Cryptographic Hardware and Embedded Systems, CHES 2010}}</ref> широко используется в криптографии, с помощью неё создаются алгоритмы [[Генератор псевдослучайных чисел|ГПСЧ]]<ref>{{Статья|ссылка=http://dx.doi.org/10.2172/4486759|автор=R.O. Gilbert|заглавие=Evaluation of four pseudo-random number generators|год=1973-05-01|издательство=Office of Scientific and Technical Information (OSTI)}}</ref>, [[Потоковый шифр|потоковых]]<ref>{{Статья|ссылка=http://dx.doi.org/10.24114/cess.v2i1.4966|автор=Aidil Halim Lubis|заглавие=DATA ENCRYPTION WITH CRYPTOGRAPHY NOEKEON ALGORITHM|год=2017-01-31|издание=Computer Engineering, Science and System Journal|том=2|выпуск=1|страницы=97–101|issn=2502-7131, 2502-714X|doi=10.24114/cess.v2i1.4966}}</ref> и [[Блочный шифр|блочных]]<ref>{{Статья|ссылка=http://dx.doi.org/10.1007/978-3-642-28496-0_19|автор=Guido Bertoni, Joan Daemen, Michaël Peeters, Gilles Van Assche|заглавие=Duplexing the Sponge: Single-Pass Authenticated Encryption and Other Applications|год=2012|место=Berlin, Heidelberg|издание=Selected Areas in Cryptography|издательство=Springer Berlin Heidelberg|страницы=320–337|isbn=978-3-642-28495-3, 978-3-642-28496-0}}</ref> шифров, а также хеш-функций<ref>{{Статья|ссылка=http://dx.doi.org/10.24114/cess.v2i1.4966|автор=Aidil Halim Lubis|заглавие=DATA ENCRYPTION WITH CRYPTOGRAPHY NOEKEON ALGORITHM|год=2017-01-31|издание=Computer Engineering, Science and System Journal|том=2|выпуск=1|страницы=97–101|issn=2502-7131, 2502-714X|doi=10.24114/cess.v2i1.4966}}</ref>.


==== Основная идея ====
==== Основная идея ====
Строка 79: Строка 76:
# Выжимание
# Выжимание
#* Считываются первые ''r'' бит внутреннего состояния губки
#* Считываются первые ''r'' бит внутреннего состояния губки
#* Внутреннее состояние обрабатывается функцией перестановки<ref>{{Статья|ссылка=http://dx.doi.org/10.2172/4486759|автор=R.O. Gilbert|заглавие=Evaluation of four pseudo-random number generators|год=1973-05-01|издательство=Office of Scientific and Technical Information (OSTI)}}</ref><ref>{{Статья|ссылка=http://dx.doi.org/10.24114/cess.v2i1.4966|автор=Aidil Halim Lubis|заглавие=DATA ENCRYPTION WITH CRYPTOGRAPHY NOEKEON ALGORITHM|год=2017-01-31|издание=Computer Engineering, Science and System Journal|том=2|выпуск=1|страницы=97–101|issn=2502-7131, 2502-714X|doi=10.24114/cess.v2i1.4966}}</ref>
#* Внутреннее состояние обрабатывается функцией перестановки


==== П-губка и Т-губка ====
==== П-губка и Т-губка ====

Версия от 14:21, 30 ноября 2019

Хеш-функция облегченной криптографии - криптостойкая хеш-функция, используемая в «легковесной» криптографии.[1]

Концепция облегченной криптографии

Облегчённая криптография – раздел криптографии, в котором рассматриваются алгоритмы для устройств не обладающих достаточными ресурсами для реализации существующих шифров, хеш-функций, электронных подписей и т.д.[2] «Легковесная» криптография приобрела исключительную актуальность в настоящее время в связи распространением парадигмы умного дома, где множество приборов небольшого размера, с ограниченной вычислительной мощностью, лимитированным объемом памяти и малым энергопотреблением коммуницируют между собой, обмениваясь конфедициальной информацией жильца, для выполнения своих задач.[3][4] Также особый интерес представляют алгоритмы для RFID меток.[5] Для того, чтобы злоумышленики не воспользовались приватной информацией пользователя, требуется специальная разработка и оптимизация алгоритмов способных работать при ограниченных ресурсах и обеспечивать должный уровень безопасности.[6]

Хеш-функции

Применение

Для того, чтобы адресату убедиться в том, что ему было прислано сообщение от настоящего адресанта, оно отправляется вместе с электронной подписью. На практике подписывают не сообщение, а его хеш-сумму, это позволяет значительно уменьшить вычислительные ресурсы на создание подписи (т.к. обычно хеш-сумма на порядки меньше ключа) и повысить криптостойкость (злоумышленник не сможет узнать исходные данные только из хеша).[7] Хеш-функции используются в технологии блокчейн для того, чтобы определить блок, который добавится в общую цепь. Например: для добавления нового блока в платформу Bitcoin требуется найти хеш-сумму SHA-256 меньше, чем определенное целевое число. В следующий созданный блок будет записан хеш предыдущего.[8] Более того, хеш-функции, в частности хеш-функции облегченной криптографии могут применяться на стыке дисциплин. Например: они применяются в блокчейне LSB, который предназначен для использования в интернете вещей.[9]

Также хеш-суммы используются при проверке паролей. Если бы операционные системы хранили пароли в файлах, то взломщики с помощью несанкционированного доступа смогли бы получить к ним доступ, извлечение хеша, в свою очередь, им ничего не даст.[10]

Требования

Основные требования к хеш-функциям облегченной криптографии такие же, как и к обычным криптографическим хеш-функциям[11]:

  • Стойкость к восстановлению первого прообраза - при наличии хеш-суммы H(m) невозможность вычислить m
  • Стойкость к восстановлению вторых прообразов - при наличии m невозможность найти n, такое что H(n) = H(m)
  • Стойкость к коллизиям - невозможность найти m и n, такие что H(n) = H(m)[12]

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

  • Малое потребление энергии
  • Небольшой размер внутреннего состояния[13]

Атаки на хеш-функции

  1. Атака «дней рождения» - используется для поиска коллизии второго рода, эксплуатирует парадокс дней рождения. Для успешной атаки число обращений к хеш-функции должно составлять примерно 2n/2, а квантовым компьютерам 2n/3[14]
  2. Кубическая атака - эффективна для атак на хеш-функций и шифров, которые используют LFSR[15]
  3. Линейные атаки - разработана для хеш-функций, использующих блочные и потоковые шифры[16]
  4. Дифференциальные атаки - действенны для хеш-функций с блочными шифрами[17]
  5. Атака методом бумеранга - усовершенствованная дифференциальная атака, которая успешно применяется к хеш-функциям[18]. Так, например, для нахождения коллизий SHA-0 с помощью этой атаки потребовался всего лишь один час на обычном ПК[19]
  6. Атака удлинением сообщения - применяется для хеш-функций, основанных на Структура Меркла — Дамгора.[20] Суть атаки заключается в добавлении новых битов в конец сообщения. Среди уязвимых функций: MD5 и SHA-1[21][22]
  7. Мультиколлизионная атака Жу[23] - направлена на хеш-функции, использующие в качестве своей основы функцию губки, которая распространена среди функций облегченной криптографии
  8. Rebound атака - предназначена для AES-подобных алгоритмов[24]
  9. Ротационная атака - создана для взлома хеш-функций, основанных на ARX (сравнение по модулю-битовый сдвиг-XOR)[25]

Виды хеширований

Меркл — Дамгор

Основная идея

Допустим, нам дан вектор инициализации IV {0, 1}n (фиксированный и открытый), функция сжатия h отображающая {0,1}n×{0,1}k в {0,1}n и сообщение m = (m0, m1, ..., mL-1), где mi блок из k битов, если m не кратно k, то последний блок мы дополняем 1 и нулями. Например: если

m = 123456789,

то на вход мы подаем 2 блока:

12345678 91000000,

где единица добавляется для избежания коллизий. Теперь можно определить хеш-функцию H[26]:

  • c0 = IV
  • ci+1 = h(ci, mi)
  • H(m) = d = cL

Усовершенствованный алгоритм[27]

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

12345678 91000000 00000009

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

12345678 91000009

Функция губки

Функция губки[28] широко используется в криптографии, с помощью неё создаются алгоритмы ГПСЧ[29], потоковых[30] и блочных[31] шифров, а также хеш-функций[32].

Основная идея

Губку размера b можно разделить на 2 части: битовую скорость r и мощность c. При инициализации внутреннее состояние губки обнуляется; сообщение m дополняется нулями, чтобы его размер был кратен r.

Далее следуют 2 стадии:

  1. Абсорбция
    • Первые r бит внутреннего состояния заменяются результатом операции XOR этих бит и очередного блока исходного сообщения
    • Внутреннее состояние обрабатывается функцией перестановки
  1. Выжимание
    • Считываются первые r бит внутреннего состояния губки
    • Внутреннее состояние обрабатывается функцией перестановки[33][34]

П-губка и Т-губка

П(ерестановочная)-губка и Т(рансформационная)-губка[35] - губки, использующие соответственно случайную перестановку и ГПСЧ для обновления своего внутреннего состояния. В статье, в которой были введены функции губки, было показано, что губки с мощностью c, битовой скоростью r и вектором размера n, принимающие на вход сообщения длиной m < 2c/2, таковы, что для различных атак в среднем требуется следующее количество обращений к функциям обновлении(приведены степени двойки):

Губка Первый прообраз Второй прообраз Коллизия Нахождение цикла
T-губка min(n, c+r) min(n, c-log2(m)) min(n, c)/2 (c+r)/2
П-губка c-1 min(n, c/2) min(n, c)/2 c+r

JH-губка

JH-губку[36] называют так, потому что она похожа на структуру хеш-функции JH.

У неё стадия абсорбции состоит из трех частей:

  1. Первые r бит внутреннего состояния заменяются результатом операции XOR этих бит и очередного блока исходного сообщения
  2. Внутреннее состояние обрабатывается функцией перестановки
  3. Последние r бит внутреннего состояния заменяются результатом операции XOR этих бит и очередного блока исходного сообщения

Примеры хеш-функций в облегченной криптографии

GLUON

GLUON[37]- это хеш-функция, использующая T-губку, основанную на программно-ориентированных потоковых шифрах X-FCSR-v2 и F-FCSR-H-v3[38]: внутреннее состояние губки дополняется и загружается в FCSR, который синхронизируется за фиксированное количество времени. Затем некоторые ячейки FCSR складываются по модулю 2 для формирования первого слова следующего внутреннего состояния, FCSR синхронизируется, эти же слова складываются по модулю 2 для формирования второго слова следующего внутреннего состояния и т.д.

Функция обладает высокой криптографической стойкостью. Например: атака нахождения прообраза в общем случае имеет сложность 23ωr/2 , где ω×ω - размер матрицы T (которая определяет FCSR), а r - размер слова, подаваемого на FCSR.

Особенность реализации GLUON состоит в том, что данные в FCSR записываются не последовательно, а параллельно, что значительно повышает скорость исполнения. Также был оптимизирован adder (элемент, осуществляющий сложение), который используется в FCSR, следующим образом: s = (a ⊕ b) ⊕ c, где c = (a.b) ⊕ (a ⊕ b).c (здесь . используется в качестве обозначения логического И).

Функция обновления GLUON-64 является многозначной, и ее поведение сильно отличается от поведения ГПСЧ.

QUARK

QUARK[39] - это хеш-функция, использующая П-губку с аппаратно-ориентированной перестановкой. Была реализована под влиянием облегченных блочных шифров KTANTAN[40] и KATAN[41] и аппаратно-ориентированного потокового шифра Grain[42]. Наименьшая версия (хеш-сумма длиной 136 бит) называется U-QUARK, средняя (176 бит) D-QUARK и самая длинная (256 бит) S-QUARK.

Функция обновления отображает вектор {0,1}b в {0,1}b, загружая каждую половину в отдельный NSFR длины b/2, а затем повторяет это 4*b раза. NSFR связаны друг с другом и с небольшим LFSR длины log(4b), см. Рисунок сбоку. Функции f, g и h являются булевыми функциями, выбранными из-за их нелинейности и алгебраической сложности. f и g одинаковы для всех версий и заимствованы из Grain-v1, а h определяется отдельным случаем.

Специфика реализации QUARK состоит в том, что в ней отсутствуют промежуточные значения функции губки, которые требуют дополнительных элементов для их запоминания. Другими словами, после перестановки значений состояния значения не записываются в следующее состояние, а сразу подаются на функцию перестановки, причем первые r бит делают XOR с сообщением.

Обладает высокой криптостойкостью. Данные по резистентности к различным атакам приведены ниже:

Сложность успешной атаки для нахождения:
Коллизии Первого прообраза Второго прообраза
2c/2 2c 22/2

У данной хеш-функции есть реализация в открытом доступе, написанная на языке C.

SipHash-2-4

SipHash[43] имеет структуру ARX, которая была создана под влиянием BLAKE и Skein. Он собой предоставляет семейство отображений {0,1}*→{0,1}64, и предназначено для использования в качестве MAC или в хеш-таблицах. Он имеет структуру, аналогичную JH, как SPN-Hash, и использует заполнение, учитывающее также длину сообщения. Однако, оно заключается просто в добавлении байта с длиной сообщения по модулю 256. SipHash не претендует на устойчивость к коллизиям и, очевидно, не из-за небольшого размера хеш-суммы.

Отличительная черта SipHash состоит в том, что сообщения "ксорятся", не как в обычной функции губки, а по особому алгоритму:

  • Первое сообщение ксорится с последней четвертью губки
  • Губка обрабатывается двумя функциями перестановки
  • Первое сообщение снова ксорится, но уже с первой четвертью губки, в то время, как второе сообщение с последней
  • Губка обрабатывается двумя функциями перестановки
  • Второе сообщение ксорится с первой четвертью губки, а третья четверть ксорится с 0xFF

Несмотря на то, что в основе SipHash лежит ARX, не является уязвимой к ротационной атаке.[44]

Существуют материалы по применению SipHash на github в открытом доступе.

PHOTON

PHOTON[45] представляет собой P-губку, основанную на AES-подобной[46] перестановке. Для наименьшего параметра безопасности (PHOTON-80/20/16) битовая скорость во время абсорбции равна 20 и равна 16 во время выжимания. Перестановка состоит из 12 итераций (для каждого параметра безопасности) ниже описанной последовательности преобразований, выполненных на квадрате d×d ячеек из 4 бит (8 бит для самой большой версии). Конвейер PHOTON состоит из 4 этапов:

  1. Дополнительные константы (AddConstants) - дополнительные константы выбираются так, чтобы быть разными на каждой итерации, и чтобы отсутствовала симметрия между столбцами, как в AES подобных архитектурах (без этого слоя входное сообщение с равными столбцами будет сохранять это качество спустя любое количество итераций). Дополнительные константы могут быть сгенерированы регистром сдвига с линейной обратной связью. Для высокой производительности задействован только первый столбец внутреннего состояния. После того, как константы были сгенерированы, они складываются по модулю 2 с каждой ячейкой.
  2. Замена ячеек (SubCells) - S-блок применяется на каждой ячейке. Если ячейка имеет длину 4 бита, то используется PRESENT Sbox SBOXPRE, если 8 бит - AES Sbox SBOXAES.
  3. Сдвиг строк (ShiftRows) - идентичен AES.
  4. MixColumnsSerial - ячейки рассматриваются как элементы поля GF(24) (или GF(28) для наибольшего параметра безопасности), и каждый столбец умножается на матрицу MDS, специально созданной для эффективной реализации в аппаратном обеспечении.

Данные по криптостойкости:

Сложность успешной атаки для нахождения:
Коллизии Первого прообраза Второго прообраза
2n/2 2n-r 2n/2

Способ перестановки, используемый для обновления губки, близок к LED[47] шифру, который был разработан позже создателями PHOTON.

SPONGENT

SPONGENT[48] можно рассматривать как П-губку, где перестановка является модифицированной версией блочного шифра PRESENT.

Число итераций PRESENT-подобной перестановки варьируется от 45 для SPONGENT-88 до 140 для SPONGENT-256. Каждая итерация состоит из:

  1. Складывания по модулю 2 содержимого LFSR, синхронизированного на каждой итерации (может рассматриваться, как константа на итерации)
  2. Применение к слою S-блока S-блок 4×4, удовлетворяющий тем же критериям, что и PRESENT S-блок
  3. Переставляя биты способом, подобным в PRESENT

Насколько известно, нет никакой атаки на SPONGENT, за исключением линейных распознавателей для версий с уменьшенным количеством итераций.[49]

Код SPONGENT на ассемблере и Си есть в открытом доступе.

SPN-Hash

Основной интерес SPN-Hash[50] заключается в ее доказуемой защите от дифференциальных коллизионных атак. Это JH-губка, использующая, как следует из ее названия, перестановку, основанную на SPN. Структура SPN основана на структуре AES[51]: сначала S-блоки 8×8 применяются к каждому байту внутреннего состояния. Используемый S-блок в точности совпадает с использующимся в AES. Затем применяется более сложный перемешивающий слой; Сильной стороной этого хеширования являются хорошая диффузия и легковесность. Наконец, константы на каждой итерации записываются во внутренне состояние (строгой дизъюнкцией), аналогичной LED и PHOTON. Эти операции повторяются 10 раз для всех параметров безопасности.

Используемый отступ такой же, как в усиленном Меркле-Дамгоре: длина сообщения добавляется к последнему блоку.

DM-PRESENT

DM-PRESENT[52] - это просто схема Меркла-Дамгора, где функцией сжатия является блочный шифр PRESENT в режиме Дэвиса-Мейера. DM-PRESENT-80 основан на PRESENT-80, а DM-PRESENT-128 - на PRESENT-128. Данная хеш-функция уязвима к коллизиям и не является стойкой к восстановлению вторых прообразов, такие хеш-функции будут полезны только в приложениях, которым требуется стойкость к восстановлению первого прообраза и 64-битная защита.

ARMADILLO

ARMADILLO[53] - это многоцелевой примитив, предназначенный для использования в качестве FIL-MAC (приложение I), для хеширования и цифровых подписей (приложение II), а также для PRNG и PRF (приложение III). Он был взломан Найей-Пласенсией и Пейрином[54]. Они нашли способ быстро обнаруживать коллизии, когда он используется в качестве хеш-функции (несколько секунд на обычном ПК).

См. также

Литература

  1. Towards Pervasive Cryptographic Access Control Models // Proceedings of the International Conference on Security and Cryptography. — SciTePress - Science and and Technology Publications, 2012. — ISBN 978-989-8565-24-2. — doi:10.5220/0004042502390244.
  2. Kerry A McKay, Larry Bassham, Meltem Sonmez Turan, Nicky Mouha. Report on lightweight cryptography. — Gaithersburg, MD: National Institute of Standards and Technology, 2017-03.
  3. Megha Agrawal, Jianying Zhou, Donghoon Chang. A Survey on Lightweight Authenticated Encryption and Challenges for Securing Industrial IoT // Security and Privacy Trends in the Industrial Internet of Things. — Cham: Springer International Publishing, 2019. — С. 71–94. — ISBN 978-3-030-12329-1, 978-3-030-12330-7.
  4. Susha Surendran, Amira Nassef, Babak D. Beheshti. A survey of cryptographic algorithms for IoT devices // 2018 IEEE Long Island Systems, Applications and Technology Conference (LISAT). — IEEE, 2018-05. — ISBN 978-1-5386-5029-5. — doi:10.1109/lisat.2018.8378034.
  5. Damith C. Ranasinghe. Lightweight Cryptography for Low Cost RFID // Networked RFID Systems and Lightweight Cryptography. — Berlin, Heidelberg: Springer Berlin Heidelberg, 2008. — С. 311–346. — ISBN 978-3-540-71640-2, 978-3-540-71641-9.
  6. Susha Surendran, Amira Nassef, Babak D. Beheshti. A survey of cryptographic algorithms for IoT devices // 2018 IEEE Long Island Systems, Applications and Technology Conference (LISAT). — IEEE, 2018-05. — ISBN 978-1-5386-5029-5. — doi:10.1109/lisat.2018.8378034.
  7. F. Lefebvre, J. Czyz, B. Macq. A robust soft hash algorithm for digital image signature // Proceedings 2003 International Conference on Image Processing (Cat. No.03CH37429). — IEEE. — ISBN 0-7803-7750-8. — doi:10.1109/icip.2003.1246725.
  8. Guy Zyskind, Oz Nathan, Alex 'Sandy' Pentland. Decentralizing Privacy: Using Blockchain to Protect Personal Data // 2015 IEEE Security and Privacy Workshops. — IEEE, 2015-05. — ISBN 978-1-4799-9933-0. — doi:10.1109/spw.2015.27.
  9. Ali Dorri, Salil S. Kanhere, Raja Jurdak, Praveen Gauravaram. LSB: A Lightweight Scalable Blockchain for IoT security and anonymity // Journal of Parallel and Distributed Computing. — 2019-12. — Т. 134. — С. 180–197. — ISSN 0743-7315. — doi:10.1016/j.jpdc.2019.08.005.
  10. Mohammad Peyravian, Nevenko Zunic. Methods for Protecting Password Transmission // Computers & Security. — 2000-07. — Т. 19, вып. 5. — С. 466–469. — ISSN 0167-4048. — doi:10.1016/s0167-4048(00)05032-x.
  11. Kerry A McKay, Larry Bassham, Meltem Sonmez Turan, Nicky Mouha. Report on lightweight cryptography. — Gaithersburg, MD: National Institute of Standards and Technology, 2017-03.
  12. Глава 10. Тексты на русском языке/ Kapitel 10. Beispieltexte in russischer Sprache // Texte schreiben und präsentieren auf Russisch. — Berlin, Boston: De Gruyter, 1997-12-31. — С. 78–93. — ISBN 978-3-486-79358-1.
  13. Kerry A McKay, Larry Bassham, Meltem Sonmez Turan, Nicky Mouha. Report on lightweight cryptography. — Gaithersburg, MD: National Institute of Standards and Technology, 2017-03.
  14. Gilles Brassard, Peter HØyer, Alain Tapp. Quantum cryptanalysis of hash and claw-free functions // LATIN'98: Theoretical Informatics. — Berlin, Heidelberg: Springer Berlin Heidelberg, 1998. — С. 163–169. — ISBN 978-3-540-64275-6, 978-3-540-69715-2.
  15. Raphael C.-W. Phan, Adi Shamir. Improved Related-key Attacks on DESX and DESX+ // Cryptologia. — 2008-01-10. — Т. 32, вып. 1. — С. 13–22. — ISSN 1558-1586 0161-1194, 1558-1586. — doi:10.1080/01611190701743690.
  16. Lei Wang, Yu Sasaki, Kazuo Sakiyama, Kazuo Ohta. Polynomial-Advantage Cryptanalysis of 3D Cipher and 3D-Based Hash Function // Advances in Information and Computer Security. — Berlin, Heidelberg: Springer Berlin Heidelberg, 2012. — С. 170–181. — ISBN 978-3-642-34116-8, 978-3-642-34117-5.
  17. Bart Preneel, René Govaerts, Joos Vandewalle. Hash functions based on block ciphers: a synthetic approach // Advances in Cryptology — CRYPTO’ 93. — Berlin, Heidelberg: Springer Berlin Heidelberg. — С. 368–378. — ISBN 978-3-540-57766-9.
  18. Antoine Joux, Thomas Peyrin. Hash Functions and the (Amplified) Boomerang Attack // Advances in Cryptology - CRYPTO 2007. — Berlin, Heidelberg: Springer Berlin Heidelberg. — С. 244–263. — ISBN 978-3-540-74142-8.
  19. Stéphane Manuel, Thomas Peyrin. Collisions on SHA-0 in One Hour // Fast Software Encryption. — Berlin, Heidelberg: Springer Berlin Heidelberg. — С. 16–35. — ISBN 978-3-540-71038-7, 978-3-540-71039-4.
  20. Jean-Sébastien Coron, Yevgeniy Dodis, Cécile Malinaud, Prashant Puniya. Merkle-Damgård Revisited: How to Construct a Hash Function // Advances in Cryptology – CRYPTO 2005. — Berlin, Heidelberg: Springer Berlin Heidelberg, 2005. — С. 430–448. — ISBN 978-3-540-28114-6, 978-3-540-31870-5.
  21. Narayana D. Kashyap. A Meaningful MD5 Hash Collision Attack. — San Jose State University Library.
  22. Davies-Meyer Hash Function // SpringerReference. — Berlin/Heidelberg: Springer-Verlag.
  23. Mohammad A. AlAhmad, Imad Fakhri Alshaikhli, Mridul Nandi. Joux multicollisions attack in sponge construction // Proceedings of the 6th International Conference on Security of Information and Networks - SIN '13. — New York, New York, USA: ACM Press, 2013. — ISBN 978-1-4503-2498-4. — doi:10.1145/2523514.2523551.
  24. Krystian Matusiewicz, María Naya-Plasencia, Ivica Nikolić, Yu Sasaki, Martin Schläffer. Rebound Attack on the Full Lane Compression Function // Advances in Cryptology – ASIACRYPT 2009. — Berlin, Heidelberg: Springer Berlin Heidelberg, 2009. — С. 106–125. — ISBN 978-3-642-10365-0, 978-3-642-10366-7.
  25. Dmitry Khovratovich, Ivica Nikolić. Rotational Cryptanalysis of ARX // Fast Software Encryption. — Berlin, Heidelberg: Springer Berlin Heidelberg, 2010. — С. 333–346. — ISBN 978-3-642-13857-7, 978-3-642-13858-4.
  26. Philippe Godlewski, Chris Mitchell. Key Minimal Authentication Systems for Unconditional Secrecy // Lecture Notes in Computer Science. — Berlin, Heidelberg: Springer Berlin Heidelberg. — С. 497–501. — ISBN 978-3-540-53433-4.
  27. Jean-Sébastien Coron, Yevgeniy Dodis, Cécile Malinaud, Prashant Puniya. Merkle-Damgård Revisited: How to Construct a Hash Function // Advances in Cryptology – CRYPTO 2005. — Berlin, Heidelberg: Springer Berlin Heidelberg, 2005. — С. 430–448. — ISBN 978-3-540-28114-6, 978-3-540-31870-5.
  28. Guido Bertoni, Joan Daemen, Michaël Peeters, Gilles Van Assche. Sponge-Based Pseudo-Random Number Generators // Cryptographic Hardware and Embedded Systems, CHES 2010. — Berlin, Heidelberg: Springer Berlin Heidelberg, 2010. — С. 33–47. — ISBN 9783642150302, 9783642150319.
  29. R.O. Gilbert. Evaluation of four pseudo-random number generators. — Office of Scientific and Technical Information (OSTI), 1973-05-01.
  30. Aidil Halim Lubis. DATA ENCRYPTION WITH CRYPTOGRAPHY NOEKEON ALGORITHM // Computer Engineering, Science and System Journal. — 2017-01-31. — Т. 2, вып. 1. — С. 97–101. — ISSN 2502-714X 2502-7131, 2502-714X. — doi:10.24114/cess.v2i1.4966.
  31. Guido Bertoni, Joan Daemen, Michaël Peeters, Gilles Van Assche. Duplexing the Sponge: Single-Pass Authenticated Encryption and Other Applications // Selected Areas in Cryptography. — Berlin, Heidelberg: Springer Berlin Heidelberg, 2012. — С. 320–337. — ISBN 978-3-642-28495-3, 978-3-642-28496-0.
  32. Aidil Halim Lubis. DATA ENCRYPTION WITH CRYPTOGRAPHY NOEKEON ALGORITHM // Computer Engineering, Science and System Journal. — 2017-01-31. — Т. 2, вып. 1. — С. 97–101. — ISSN 2502-714X 2502-7131, 2502-714X. — doi:10.24114/cess.v2i1.4966.
  33. R.O. Gilbert. Evaluation of four pseudo-random number generators. — Office of Scientific and Technical Information (OSTI), 1973-05-01.
  34. Aidil Halim Lubis. DATA ENCRYPTION WITH CRYPTOGRAPHY NOEKEON ALGORITHM // Computer Engineering, Science and System Journal. — 2017-01-31. — Т. 2, вып. 1. — С. 97–101. — ISSN 2502-714X 2502-7131, 2502-714X. — doi:10.24114/cess.v2i1.4966.
  35. Guido Bertoni, Joan Daemen, Michaël Peeters, Gilles Van Assche. Sponge-Based Pseudo-Random Number Generators // Cryptographic Hardware and Embedded Systems, CHES 2010. — Berlin, Heidelberg: Springer Berlin Heidelberg, 2010. — С. 33–47. — ISBN 978-3-642-15030-2, 978-3-642-15031-9.
  36. EM submission PDF. dx.doi.org. Дата обращения: 15 ноября 2019.
  37. Thierry P. Berger, Joffrey D’Hayer, Kevin Marquet, Marine Minier, Gaël Thomas. The GLUON Family: A Lightweight Hash Function Family Based on FCSRs // Progress in Cryptology - AFRICACRYPT 2012. — Berlin, Heidelberg: Springer Berlin Heidelberg, 2012. — С. 306–323. — ISBN 9783642314094, 9783642314100.
  38. Franc̨ois Arnault, Thierry Berger, Cédric Lauradoux, Marine Minier, Benjamin Pousse. A New Approach for FCSRs // Selected Areas in Cryptography. — Berlin, Heidelberg: Springer Berlin Heidelberg, 2009. — С. 433–448. — ISBN 9783642054433, 9783642054457.
  39. Jean-Philippe Aumasson, Luca Henzen, Willi Meier, María Naya-Plasencia. Quark: A Lightweight Hash // Journal of Cryptology. — 2012-05-10. — Т. 26, вып. 2. — С. 313–339. — ISSN 1432-1378 0933-2790, 1432-1378. — doi:10.1007/s00145-012-9125-6.
  40. Christophe De Cannière, Orr Dunkelman, Miroslav Knežević. KATAN and KTANTAN — A Family of Small and Efficient Hardware-Oriented Block Ciphers // Lecture Notes in Computer Science. — Berlin, Heidelberg: Springer Berlin Heidelberg, 2009. — С. 272–288. — ISBN 9783642041372, 9783642041389.
  41. Christophe De Cannière, Orr Dunkelman, Miroslav Knežević. KATAN and KTANTAN — A Family of Small and Efficient Hardware-Oriented Block Ciphers // Lecture Notes in Computer Science. — Berlin, Heidelberg: Springer Berlin Heidelberg, 2009. — С. 272–288. — ISBN 9783642041372, 9783642041389.
  42. Martin Hell, Thomas Johansson, Alexander Maximov, Willi Meier. A Stream Cipher Proposal: Grain-128 // 2006 IEEE International Symposium on Information Theory. — IEEE, 2006-07. — ISBN 142440505X, 1424405041. — doi:10.1109/isit.2006.261549.
  43. Jean-Philippe Aumasson, Daniel J. Bernstein. SipHash: A Fast Short-Input PRF // Lecture Notes in Computer Science. — Berlin, Heidelberg: Springer Berlin Heidelberg, 2012. — С. 489–508. — ISBN 9783642349300, 9783642349317.
  44. Jean-Philippe Aumasson, Daniel J. Bernstein. SipHash: A Fast Short-Input PRF // Lecture Notes in Computer Science. — Berlin, Heidelberg: Springer Berlin Heidelberg, 2012. — С. 489–508. — ISBN 978-3-642-34930-0, 978-3-642-34931-7.
  45. Jian Guo, Thomas Peyrin, Axel Poschmann. The PHOTON Family of Lightweight Hash Functions // Advances in Cryptology – CRYPTO 2011. — Berlin, Heidelberg: Springer Berlin Heidelberg, 2011. — С. 222–239. — ISBN 9783642227912, 9783642227929.
  46. Joan Daemen, Vincent Rijmen. Rijndael/AES // Encyclopedia of Cryptography and Security. — Springer US. — С. 520–524. — ISBN 9780387234731.
  47. Jian Guo, Thomas Peyrin, Axel Poschmann, Matt Robshaw. The LED Block Cipher // Cryptographic Hardware and Embedded Systems – CHES 2011. — Berlin, Heidelberg: Springer Berlin Heidelberg, 2011. — С. 326–341. — ISBN 9783642239502, 9783642239519.
  48. Andrey Bogdanov, Miroslav Knežević, Gregor Leander, Deniz Toz, Kerem Varıcı. spongent: A Lightweight Hash Function // Cryptographic Hardware and Embedded Systems – CHES 2011. — Berlin, Heidelberg: Springer Berlin Heidelberg, 2011. — С. 312–325. — ISBN 9783642239502, 9783642239519.
  49. Mohamed Ahmed Abdelraheem. Estimating the Probabilities of Low-Weight Differential and Linear Approximations on PRESENT-Like Ciphers // Lecture Notes in Computer Science. — Berlin, Heidelberg: Springer Berlin Heidelberg, 2013. — С. 368–382. — ISBN 9783642376818, 9783642376825.
  50. Jiali Choy, Huihui Yap, Khoongming Khoo, Jian Guo, Thomas Peyrin. SPN-Hash: Improving the Provable Resistance against Differential Collision Attacks // Progress in Cryptology - AFRICACRYPT 2012. — Berlin, Heidelberg: Springer Berlin Heidelberg, 2012. — С. 270–286. — ISBN 978-3-642-31409-4, 978-3-642-31410-0.
  51. Joan Daemen, Vincent Rijmen. Rijndael/AES // Encyclopedia of Cryptography and Security. — Springer US. — С. 520–524. — ISBN 9780387234731.
  52. Information about PhD thesis at the Civil Engineering Faculty and the Mechanical Engineering Faculty of Wroclaw University of Technology // Archives of Civil and Mechanical Engineering. — 2008-01. — Т. 8, вып. 2. — С. 181–183. — ISSN 1644-9665. — doi:10.1016/s1644-9665(12)60205-2.
  53. Stéphane Badel, Nilay Dağtekin, Jorge Nakahara, Khaled Ouafi, Nicolas Reffé. ARMADILLO: A Multi-purpose Cryptographic Primitive Dedicated to Hardware // Cryptographic Hardware and Embedded Systems, CHES 2010. — Berlin, Heidelberg: Springer Berlin Heidelberg, 2010. — С. 398–412. — ISBN 9783642150302, 9783642150319.
  54. María Naya-Plasencia, Thomas Peyrin. Practical Cryptanalysis of ARMADILLO2 // Fast Software Encryption. — Berlin, Heidelberg: Springer Berlin Heidelberg, 2012. — С. 146–162. — ISBN 9783642340468, 9783642340475.