Оглавление
- Свойства
- Где и как применяется Хэш?
- Зачем шифровать данные в блокчейне
- Практическое использование хэша
- Виды хеш-функций
- Примеры задач
- 3.1. Оригинальная rebound-атака
- Разнообразие и эволюция алгоритмов хеширования
- Использование при построении других криптографических примитивов
- Что такое алгоритм шифрования SHA-256?
- Атаки на криптографические хеш-алгоритмы
- Свойства
- Заключение
- Заключение
Свойства
Криптографическая хеш-функция должна уметь противостоять всем известным типам криптоаналитических атак.В теоретической криптографии уровень безопасности хеш-функции определяется с использованием следующих свойств:
Pre-image resistance
Имея заданное значение h, должно быть сложно найти любое сообщение m такое, что
Second pre-image resistance
Имея заданное входное значение , должно быть сложно найти другое входное значение такое, что
Collision resistance
Должно быть сложно найти два различных сообщения и таких, что
Такая пара сообщений и называется коллизией хеш-функции
Давайте чуть более подробно поговорим о каждом из перечисленных свойств.
Collision resistance. Как уже упоминалось ранее, коллизия происходит, когда разные входные данные производят одинаковый хеш. Таким образом, хеш-функция считается устойчивой к коллизиям до того момента, пока не будет обнаружена пара сообщений, дающая одинаковый выход. Стоит отметить, что коллизии всегда будут существовать для любой хеш-функции по той причине, что возможные входы бесконечны, а количество выходов конечно. Хеш-функция считается устойчивой к коллизиям, когда вероятность обнаружения коллизии настолько мала, что для этого потребуются миллионы лет вычислений.
Несмотря на то, что хеш-функций без коллизий не существует, некоторые из них достаточно надежны и считаются устойчивыми к коллизиям.
Pre-image resistance. Это свойство называют сопротивлением прообразу. Хеш-функция считается защищенной от нахождения прообраза, если существует очень низкая вероятность того, что злоумышленник найдет сообщение, которое сгенерировало заданный хеш. Это свойство является важным для защиты данных, поскольку хеш сообщения может доказать его подлинность без необходимости раскрытия информации. Далее будет приведён простой пример и вы поймете смысл предыдущего предложения.
Second pre-image resistance. Это свойство называют сопротивлением второму прообразу. Для упрощения можно сказать, что это свойство находится где-то посередине между двумя предыдущими. Атака по нахождению второго прообраза происходит, когда злоумышленник находит определенный вход, который генерирует тот же хеш, что и другой вход, который ему уже известен. Другими словами, злоумышленник, зная, что пытается найти такое, что
Отсюда становится ясно, что атака по нахождению второго прообраза включает в себя поиск коллизии. Поэтому любая хеш-функция, устойчивая к коллизиям, также устойчива к атакам по поиску второго прообраза.
Неформально все эти свойства означают, что злоумышленник не сможет заменить или изменить входные данные, не меняя их хеша.
Таким образом, если два сообщения имеют одинаковый хеш, то можно быть уверенным, что они одинаковые.
В частности, хеш-функция должна вести себя как можно более похоже на случайную функцию, оставаясь при этом детерминированной и эффективно вычислимой.
Где и как применяется Хэш?
Как вы, вероятно, уже догадались Хэш применяется при решении очень многих задач. Вот несколько из них:
1. Пароли обычно хранятся не в открытом виде, а в виде Хэш-сумм, что позволяет обеспечить более высокую степень безопасности. Ведь даже если злоумышленник получит доступ к такой БД, ему еще придется немало времени потратить, чтобы подобрать к этим Хэш-кодам соответствующие тексты. Вот тут и важна характеристика «сложность восстановления исходных данных из значений Хэша».
Примечание: Советую ознакомиться со статьей пара советов для повышения уровня безопасности паролей.
2. В программировании, включая базы данных. Конечно же, чаще всего речь идет о структурах данных, позволяющих осуществлять быстрый поиск. Чисто технический аспект.
3. При передачи данных по сети (включая Интернет). Многие протоколы, такие как TCP/IP, включают в себя специальные проверочные поля, содержащие Хэш-сумму исходного сообщения, чтобы если где-то произошел сбой, то это не повлияло на передачу данных.
4. Для различных алгоритмов, связанных с безопасностью. Например, Хэш применяется в электронных цифровых подписях.
5. Для проверки целостности файлов
Если обращали внимание, то нередко в интернете можно встретить у файлов (к примеру, архивы) дополнительные описания с Хэш-кодом. Эта мера применяется не только для того, чтобы вы случайно не запустили файл, который повредился при скачивании из Интернета, но и бывают просто сбои на хостингах
В таких случаях, можно быстро проверить Хэш и если требуется, то перезалить файл.
6. Иногда, Хэш-функции применяются для создания уникальных идентификаторов (как часть). Например, при сохранении картинок или просто файлов, обычно используют Хэш в именах совместно с датой и временем. Это позволяет не перезаписывать файлы с одинаковыми именами.
7. И так далее.
На самом деле, чем дальше, тем чаще Хэш-функции применяются в информационных технологиях. В основном из-за того, что объемы данных и мощности самых простых компьютеров сильно возрасли. В первом случае, речь больше о поиске, а во втором речь больше о вопросах безопасности.
Зачем шифровать данные в блокчейне
Благодаря алгоритмам шифрования, технология блокчейн считается наиболее безопасной разновидностью одноранговых сетей. Для начала разберемся, зачем в блокчейне что-то шифровать.
В традиционной архитектуре «клиент-сервер» за безопасность отвечает сервер. Он выполняет следующие функции:
- Обеспечивает доступ пользователей к данным. Сервер хранит логины и пароли своих клиентов. Он должен проверить пользователя, прежде чем дать ему доступ к сети. Данный процесс называется аутентификация.
- Следит за сохранностью данных. Сервер не дает злоумышленникам получить доступ к личным данным пользователей. Другими словами, сервер гарантирует конфиденциальность.
- Контролирует изменение данных. Сервер не дает пользователям удалять данные друг друга. Прежде чем вступить в силу, любое изменение согласуется с сервером. Таким образом поддерживается целостность данных.
Так как в блокчейне сервера отсутствуют, то для этих целей применяют криптографию. Криптографические алгоритмы шифрования позволяют выполнять описанные функции без постороннего вмешательства.
Криптография — совокупность алгоритмов шифрования информации для обеспечения аутентификации, конфиденциальности и целостности данных.
Криптография была известна задолго до появления блокчейна. Чтобы понять, как алгоритмы шифрования выполняют функции сервера, рассмотрим реальный исторический пример.
В середине 1650-х голландский ученый Христиан Гюйгенс обнаружил кольца Сатурна. Он не был уверен в правильности своих наблюдений, поэтому решил все перепроверить. Пока он занимался проверкой, его могли опередить другие ученые. Поэтому в одной из своих работ ученый написал сообщение:
Позже Христиан Гюйгенс перепроверил все данные и был готов рассказать об открытии. Он раскрыл, что в шифре содержались буквы исходной фразы, расставленные по алфавиту. Сама фраза была следующей:
Расстановка букв по алфавиту — один из алгоритмов шифрования. Гюйгенсу удалось зафиксировать свое открытие и не выдавать его конкурентам. Другими словами, алгоритм заменил сервер: сохранил данные в конфиденциальности без сторонней помощи.
В приведенном примере важно выбрать правильный алгоритм шифрования. Криптография отвечает на вопрос, какой использовать алгоритм шифрования для той или иной цели
Практическое использование хэша
Работа с большими объемами информации
Такой пример не часто встречается в реальной работе, но он наглядно показывает, насколько хэш-функция может облегчить работу с большими объемами информации.
Например, в массив из нескольких миллионов разных строк длиной 1 млн символов нужно добавить еще одну, при условии, что там ее еще нет. Чтобы не заниматься посимвольным сравнением каждой строки, можно предварительно вычислить хэш каждой из них, и уже сделать сравнение по нему. Вся работа упрощается и ускоряется в разы.
Проверка целостности данных при передаче
Для таких проверок часто используются простые хэш-функции.
Например, один пользователь передает другому определенный массив данных, а затем хэш от него. Получатель информации, захэшировав информацию у себя и сравнив хэши, может удостовериться, что он получил именно те данные, которые были отправлены.
В технологии блокчейн хэш также используется для проверки целостности данных. Хэш выступает гарантией целостности цепочки транзакций (платежей) и защищает ее от несанкционированных изменений. Благодаря ему и распределенным вычислениям взломать блокчен очень сложно.
Шифрование
На практике некоторые хэш-функции также используются для шифрования. Благодаря практически полностью хаотичному соответствию хэшей исходным данным, практически невозможно вычислить начальный массив данных. Такие хэш-функции должны быть очень стойкими к коллизиям, т.е. должна обладать минимальной вероятностью получения двух одинаковых хэшей для двух разных массивов данных. Расчеты по таким алгоритмам более сложные и требует больше времени, но зато отличаются надежностью.
Электронные цифровые подписи
Использование хэша в данной технологии позволяет пользователю, который подписывает документ, быть уверенным, что он подписывает именно тот документ, который требуется. Также хэш используется при формировании электронной цифровой подписи и аутентификации пользователей.
Хранение паролей
Для доступа к сайтам и серверам по логину и паролю тоже часто используют хэширование.
Пользователь регистрируется на сайте:
- Заполняет форму регистрации, включая поле Пароль,
- Пароль обрабатывается хэш-функцией и помещается в базу данных,
- Оригинальное значение пароля нигде не используется.
Пользователь входит на сайт:
- Вводит свой логин и пароль,
- Пароль хэшируется и сравнивается с данными базы,
- Если хэши совпадают, пользователя заходит на сайт.
Виды хеш-функций
Хорошая хеш-функция должна удовлетворять двум свойствам:
- Быстро исчисляться;
- Минимизировать количество коллизий
Допустим, для определенности, — количество ключей, а хэш-функция имеет не больше различных значений:
Как пример «плохой» хеш-функции можно привести функцию с, которая десятизначный натуральному числу сопоставляет три цифры, выбранные с середины двадцатизначные квадрата числа. Казалось бы, значение хеш-кодов должны равномерно распределиться между «000» и «999», но для реальных данных такой метод подходит только в том случае, если ключи не имеют большого количества нулей слева или справа.
Однако, существует несколько других простых и надежных методов, на которых базируется много хэш-функций.
Хэш-функции на основе деления
Первый метод заключается в том, что мы используем в качестве хэша — остаток от деления на, где — это количество всех возможных хэшей:
При этом очевидно, что при парном режим экономии парным, при парном. А нечетным — при нечетном, что может привести к значительному смещению данных в файлах. Также не следует использовать в качестве базу системы счисления компьютера, поскольку хэш будет зависеть только от нескольких цифр числа, расположенных справа, что приведет к большому количеству коллизий. На практике обычно выбирают простое — в большинстве случаев этот выбор вполне удовлетворительное.
Еще следует сказать о методе хэширования, в основе которого заключается деления на поленом по модулю два. В данном методе также должна быть степенью двойки, а бинарные ключи () имеют вид полиномов. В этом случае в качестве хеш-кода берутся значения коэффициентов полинома, полученного как остаток от деления на заранее выбранный полином степени:
При правильном выборе такой способ гарантирует отсутствие коллизий между почти одинаковыми ключами.
Мультипликативная схема хеширования
Второй метод заключается в выборе некоторой целой константы, взаимно простой с, где — количество возможных вариантов значений в виде машинного слова (в компьютерах IBM PC). Тогда можем взять хеш-функцию вида:
В этом случае, на компьютере с двоичной системой счисления, представляет собой степень двойки, а состоять из старших битов правой половины произведения.
Среди преимуществ этих двух методов стоит отметить, что они выгодно используют то, что реальные ключи неслучайны. Например, в том случае, если ключи представляют собой арифметическую прогрессию (допустим последовательность названий «имья1», «имя2», «имья3»). Мультипликативный метод отобразит арифметическую прогрессию в приближенную арифметическую прогрессию различных хеш-значений, уменьшает количество коллизий по сравнению со случайной ситуацией.
Одной из вариаций данного метода является хеширования Фибоначчи, основанное на свойствах золотого сечения. В качестве здесь избирается ближайшее к целое число, взаимно простое с
Хеширования строк переменной длины
Вышеизложенные методы применяются и в том случае, когда нам необходимо рассматривать ключи, состоящие из нескольких слов или ключи с переменной длиной. Например, можно скомбинировать слова в одно с помощью сложения по модулю или операции «сложение по модулю 2». Одним из алгоритмов, работающих по такому принципу, является хэш-функция Пирсона.
Хеширования Пирсона (англ. Pearson hashing) — алгоритм, предложенный Питером Пирсоном (англ. Peter Pearson) для процессоров с 8-битными регистрами, задачей которого является быстрое вычисление хэш-кода для строки произвольной длины. На вход функция получает слово, состоящее из символов, каждый размером 1 байт, и возвращает значение в диапазоне от 0 до 255. При этом значение хеш-кода зависит от каждого символа входного слова.
Алгоритм можно описать следующим псевдокодом, который получает на вход строку и использует таблицу перестановок
h: = 0 For each c in W loop index := h xor ch := T End loop Return h
Среди преимуществ алгоритма следует отметить:
- простоту вычисления;
- не существует таких входных данных, для которых вероятность коллизии самая;
- возможность модификации в идеальную хеш-функцию.
В качестве альтернативного способа хеширования ключей, состоящие из символов (), можно предложить вычисления
Примеры задач
Количество разных подстрок. Посчитаем хэши от всех подстрок за \(O(n^2)\) и добавим их все в . Чтобы получить ответ, просто вызовем .
Поиск подстроки в строке. Можно посчитать хэши от шаблона (строки, которую ищем) и пройтись «окном» размера шаблона по тексту, поддерживая хэш текущей подстроки. Если хэш какой-то из этих подстрок совпал с хэшом шаблона, то мы нашли нужную подстроку. Это называется алгоритмом Рабина-Карпа.
Сравнение строк (больше-меньше, а не только равенство). У любых двух строк есть какой-то общий префикс (возможно, пустой). Сделаем бинпоиск по его длине, а дальше сравним два символа, идущие за ним.
Палиндромность подстроки. Можно посчитать два массива — обратные хэши и прямые. Проверка на палиндром будет заключаться в сравнении значений на первом массиве и на втором.
Количество палиндромов. Можно перебрать центр палиндрома, а для каждого центра — бинпоиском его размер. Проверять подстроку на палиндромность мы уже умеем. Как и всегда в задачах на палиндромы, случаи четных и нечетных палиндромов нужно обрабатывать отдельно.
Хранение строк в декартовом дереве
Если для вас всё вышеперечисленное тривиально: можно делать много клёвых вещей, если «оборачивать» строки в декартово дерево. В вершине дерева можно хранить символ, а также хэш подстроки, соответствующей её поддереву. Чтобы поддерживать хэш, нужно просто добавить в пересчёт хэша от конкатенации трёх строк — левого сына, своего собственного символа и правого сына.
Имея такое дерево, мы можем обрабатывать запросы, связанные с изменением строки: удаление и вставка символа, перемещение и переворот подстрок, а если дерево персистентное — то и копирование подстрок. При запросе хэша подстроки нам, как обычно, нужно просто вырезать нужную подстроку и взять хэш, который будет лежать в вершине-корне.
Если нам не нужно обрабатывать запросы вставки и удаления символов, а, например, только изменения, то можно использовать и дерево отрезков вместо декартова.
3.1. Оригинальная rebound-атака
E
- Внутренняя фаза: эта фаза стартует с нескольких выбранных входных/выходных разностей в Ein, которые распространяются через линейный уровень в прямом и обратном направлении. Затем генерируются все возможные пары актуальных значений, которые удовлетворяют требуемой разности и соответствуют разностям после одного уровня табличной замены. Эти фактические пары значений являются стартовыми точками для внешней фазы.
- Внешняя фаза: подобранные пары внутренней фазы используются в вычислениях в прямом и обратном направлении через Efw и Ebw для получения желательных коллизий или почти-коллизий. Обычно Efw и Ebw имеют низкую вероятность, так что необходимо повторять внутреннюю фазу для получения большего количества стартовых точек.
Разнообразие и эволюция алгоритмов хеширования
Начало: SHA1 и SHA2
АНБ (да-да, АНБ) уже в течение долгого времени является пионером по созданию стандартов алгоритмов хеширования. Именно АНБ предложило алгоритм Secure Hashing Algorithm или SHA1 с фиксированной длиной выходящего значения в 160 бит.
К сожалению, SHA1 ненамного превосходил MD5 благодаря увеличению значения, количества односторонних операций и их сложности, но этот хеш не предлагал основательных улучшений защиты от более мощных машин, создающих разные векторы атаки.
Как же улучшить алгоритм хеширования?
SHA3
В 2006 году Национальный институт стандартов и технологий США (NIST — National Institute of Standards and Technology) объявил конкурс на создание альтернативы алгоритму SHA2, которая должна была фундаментально отличаться по своему дизайну и стать новым стандартом. Из схемы алгоритмов хеширования под названием KECCAK (произносится как «кечак») появился алгоритм SHA3.
Хотя SHA3 и имеет схожее с предыдущими алгоритмами название, он сильно отличается по своей внутренней структуре механизмом криптографической губки. Этот механизм осуществляет случайные перестановки для поглощения и создания данных, служа источником случайности для входящих данных, которые будут попадать в алгоритм хеширования в будущем.
SHA3 сохраняет изначальное состояние с большим количеством битов информации, чем в выходящем значении, и тем самым превосходит ограничения прежних алгоритмов. Этот алгоритм стал стандартом NIST в 2015 году.
Использование при построении других криптографических примитивов
Хеш-функции могут использоваться для создания других криптографических примитивов. Чтобы эти другие примитивы были криптографически безопасными, необходимо позаботиться о их правильном построении.
Коды аутентификации сообщений (MAC) (также называемые ключевыми хэш-функциями) часто строятся из хэш-функций. HMAC — это такой MAC.
Так же, как блочные шифры могут использоваться для построения хеш-функций, хеш-функции могут использоваться для построения блочных шифров. Конструкции Luby-Rackoff, использующие хэш-функции, могут быть доказуемо безопасными, если базовая хеш-функция безопасна. Кроме того, многие хеш-функции (включая SHA-1 и SHA-2 ) построены с использованием блочного шифра специального назначения в конструкции или другой конструкции. Этот шифр также можно использовать в обычном режиме работы без тех же гарантий безопасности. См. ШАКАЛ , МЕДВЕДЬ и ЛЬВ .
Генераторы псевдослучайных чисел (ГПСЧ) могут быть построены с использованием хэш-функций. Это делается путем объединения (секретного) случайного начального числа со счетчиком и его хеширования.
Некоторые хэш-функции, такие как Skein , Keccak и RadioGatún , выводят поток произвольной длины и могут использоваться в качестве потокового шифра , а потоковые шифры также могут быть построены из хеш-функций дайджеста фиксированной длины. Часто для этого сначала создают криптографически безопасный генератор псевдослучайных чисел, а затем используют его поток случайных байтов в качестве потока ключей . SEAL — это потоковый шифр, который использует SHA-1 для генерации внутренних таблиц, которые затем используются в генераторе потока ключей, более или менее не связанном с алгоритмом хеширования. Не гарантируется, что SEAL будет таким же сильным (или слабым), как SHA-1. Точно так же при расширении ключа потоковых шифров HC-128 и HC-256 интенсивно используется хеш-функция SHA-256 .
Что такое алгоритм шифрования SHA-256?
Аббревиатуру SHA расшифровывают как «безопасный расчет хеша». С помощью данного метода вычислений обеспечивается защита криптографических наборов данных. Ведь без специального кода, который есть только у владельца, невозможно получить доступ к зашифрованной информации.
Алгоритм SHA-2, подвидом которого является SHA-256, был разработан в начале третьего тысячелетия Агентством Национальной Безопасности США. Число 256 обозначает количество фрагментов, из которых состоит данный криптографический код.
Через несколько лет после выхода Агентство запатентовало второй выпуск алгоритма SHA-2 под лицензией Royalty-free, благодаря чему технологию можно было направить в мирное русло.
Атаки на криптографические хеш-алгоритмы
Существует длинный список криптографических хеш-функций, но многие из них оказались уязвимыми и не должны использоваться. Например, NIST выбрал 51 хэш-функцию в качестве кандидатов для первого раунда конкурса хеш-кодов SHA-3, из которых 10 были признаны неработающими, а 16 показали существенные недостатки и поэтому не прошли в следующий раунд; дополнительную информацию можно найти в основной статье о соревнованиях по хэш-функциям NIST .
Даже если хеш-функция никогда не нарушалась, на ослабленный вариант может подорвать доверие экспертов. Например, в августе 2004 г. коллизии были обнаружены в нескольких популярных тогда хэш-функциях, включая MD5. Эти недостатки поставили под сомнение безопасность более сильных алгоритмов, полученных на основе слабых хэш-функций, в частности, SHA-1 (усиленная версия SHA-0), RIPEMD-128 и RIPEMD-160 (обе усиленные версии RIPEMD).
12 августа 2004 г. Жу, Каррибо, Лемюэль и Джалби объявили о конфликте полного алгоритма SHA-0. Joux et al. сделал это, используя обобщение атаки Шабо и Жу. Они обнаружили, что коллизия имела сложность 2 51 и потребовала около 80 000 процессорных часов на суперкомпьютере с 256 процессорами Itanium 2 , что эквивалентно 13 дням постоянного использования суперкомпьютера.
В феврале 2005 года сообщалось об атаке на SHA-1, в ходе которой обнаруживалась коллизия примерно в 2 69 хэш-операциях, а не в 2 80, ожидаемых для 160-битной хеш-функции. В августе 2005 года сообщалось об очередной атаке на SHA-1, в результате которой были обнаружены коллизии в 2 63 операциях. Известны и другие теоретические недостатки SHA-1: в феврале 2017 года Google объявил о конфликте в SHA-1. Исследователи безопасности рекомендуют, чтобы новые приложения могли избежать этих проблем, используя более поздние члены семейства SHA, такие как SHA-2 , или применяя такие методы, как рандомизированное хеширование, которые не требуют устойчивости к коллизиям.
Успешная практическая атака взломала MD5, который использовался в сертификатах для безопасности транспортного уровня в 2008 году.
Многие криптографические хэши основаны на конструкции Меркла-Дамгарда . Все криптографические хэши, которые напрямую используют полный вывод конструкции Меркла-Дамгарда, уязвимы для атак с увеличением длины . Это делает алгоритмы хеширования MD5, SHA-1, RIPEMD-160, Whirlpool и SHA-256 / SHA-512 уязвимыми для этой конкретной атаки. SHA-3, BLAKE2, BLAKE3 и усеченные варианты SHA-2 не уязвимы для этого типа атак.
Свойства
Получает значение, указывающее на возможность повторного использования текущего преобразования.Gets a value indicating whether the current transform can be reused. |
|
Если переопределено в производном классе, возвращает значение, указывающее, возможно ли преобразование нескольких блоков.When overridden in a derived class, gets a value indicating whether multiple blocks can be transformed. |
|
Получает значение вычисленного хэш-кода.Gets the value of the computed hash code. |
|
Получает размер вычисленного хэш-кода в битах.Gets the size, in bits, of the computed hash code. |
|
При переопределении в производном классе получает размер входного блока.When overridden in a derived class, gets the input block size. |
|
При переопределении в производном классе получает размер выходного блока.When overridden in a derived class, gets the output block size. |
Заключение
В конце статьи нужно извиниться перед читателем за чересчур сложное объяснение темы, но, увы, рассказ об основах криптографии нельзя отнести к разряду повседневного чтива. Что же касается перспектив SHA-256, то пока биткоин занимает львиную долю рынка данный алгоритм будет очень востребованным.
Но если патриарха цифровых активов потеснят альтернативные проекты, работающие на других алгоритмах, то SHA-256 станет достоянием историков. И такой поворот только оживит блокчейн-индустрию.
Самые последние новости криптовалютного рынка и майнинга:
The following two tabs change content below.
Mining-Cryptocurrency.ru
Материал подготовлен редакцией сайта «Майнинг Криптовалюты», в составе: Главный редактор — Антон Сизов, Журналисты — Игорь Лосев, Виталий Воронов, Дмитрий Марков, Елена Карпина. Мы предоставляем самую актуальную информацию о рынке криптовалют, майнинге и технологии блокчейн.
Отказ от ответственности: все материалы на сайте Mining-Cryptocurrency.ru имеют исключительно информативные цели и не являются торговой рекомендацией или публичной офертой к покупке каких-либо криптовалют или осуществлению любых иных инвестиций и финансовых операций.
Новости Mining-Cryptocurrency.ru
- Какие альткоины имеют наибольшие перспективы роста в сентябре 2021 года? — 28.08.2021
- Глава Twitter Джек Дорси создает децентрализованную биткоин-биржу — 28.08.2021
- Индия запустит тестирование национальной цифровой валюты в конце 2021 года — 28.08.2021
- «Белорусская железная дорога» выпустила свою криптовалюту путем токенизации активов — 28.08.2021
Заключение
Мы можем резюмировать использование этих алгоритмов хеширования следующим образом: при хешировании паролей, либо для хранения их на диске, либо для создания ключей шифрования, следует использовать криптографические коды на основе паролей, специально разработанные для решения данной проблемы. Не следует использовать какие-либо хэш-функции общего назначения из-за их скорости. Кроме того, им не следует реализовывать собственный алгоритм «растягивания ключа», такой как рекурсивное хеширование дайджеста пароля и дополнительных выходных данных.
Следовательно, если мы примем во внимание, что если алгоритм был разработан специально для обработки паролей, а стоимость достаточна для покрытия потребностей, модели угроз и злоумышленника, то мы можем без сомнения сказать, что мы делаем это хорошо
На самом деле, мы не ошибемся, если выберем любой из них, мы просто должны четко понимать, как мы собираемся его использовать, чтобы избежать любого алгоритма, который специально не предназначен для паролей, что повысит безопасность. их.
Теперь у вас есть четкое представление о том, какие алгоритмы используются сегодня, мы объяснили работу каждого алгоритма и даже затраты на обработку, чтобы мы могли четко понимать, какой из них использовать в зависимости от ситуации. Стало ясно, что все они используются для четкой общей цели, нашей защиты, как фиксированные алгоритмы, основанные на хэшах, так и переменные, используются для защиты информации, поскольку, как вы знаете, информация — это сила. Благодаря им наши пароли, файлы и передача данных защищены от любого внешнего агента, который хочет их узнать.

Эта тема закрыта для публикации ответов.