Хэширование данных (Data hashing) |
||
|
МЕНЮ Главная страница Поиск Регистрация на сайте Помощь проекту Архив новостей ТЕМЫ Новости ИИ Голосовой помощник Разработка ИИГородские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Искусственный интеллект Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Нейронные сети начинающим Психология ИИ Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Творчество ИИ Техническое зрение Чат-боты Авторизация |
2023-11-14 18:15 Хеширование – это инструмент для обеспечения безопасности, который преобразовывает данные в зашифрованную строку. Также он применяется и для других задач, которые могут быть частично связаны с шифрованием. Хеширование предполагает преобразование массива входных данных произвольной длины в выходную битовую строку установленной длины. В таком процессе генерации применяется набор методов хеширования с использованием математических формул (хеш-функций). Существует несколько алгоритмов хеширования, каждый из которых имеет свои сильные и слабые стороны. В целом, идеальный процесс преобразования возможен только в теории, но это не значит, что к нему не нужно стремиться. Чтобы блокчейны и аналогичные системы, осуществляющие транзакции, могли сохранять целостность и надежную защиту данных, используются криптографические хеши. Следует заметить, что не каждый хеш-алгоритм применяет средства криптографии, а только криптографическая хеш-функция. При этом все хеш-процессы, защищенные криптографическими средствами, дают одинаковый результат при выводе данных, если входные остаются прежними. Данное свойство называется детерменированностью хеш-функции. У алгоритмов хеширования биткоинов и других видов цифровой валюты есть уникальная особенность. Полученные строки с информацией нельзя вернуть назад в том же направлении, если только не потратить на это очень большое количество времени и ресурсов. Это связано с тем, что процессы, которые выполняются на криптовалютных платформах, осуществляются только в одностороннем порядке. То есть, при транзакции, например, вывод изначальных данных производится достаточно быстро. Но получить их назад в обратной последовательности будет крайне трудно. Надежность хеш-функции определяется сложностью поиска изначальных строк. I. Схема работы хеширования Посмотрим, как это работает на примере хеш-функции SHA-1, которая очень популярна при выборе защиты с помощью хеш (как и SHA-2 и MD5). Обратимся для этого к любому сервису, бесплатно предоставляющему услугу онлайн-хеширования. Предположим, у нас есть значение «Иван», которое нужно преобразовать в цифровой код. Результат всегда будет таким: «4D2902EB21DDE2404DE35677284A7DD4B44756D7». Но если допустить ошибку даже в написании одной буквы или поставить имя в другой падеж, весь код (а не его последняя часть) будет выглядеть совершенно по-другому. Убедимся в этом и поставим слово в дательный падеж. Входные данные: «Ивану». Хеш-код: «4D13F6131C770A220BBF1BD34E3698D99DDD0CCB». Как мы видим, итоговый результат не имеет ничего общего с предыдущим, хотя к имени была добавлена лишь одна буква. Заметим и другую важную особенность: если в информации, которую необходимо зашифровать, заглавную букву поменять на строчную, вы тоже получите абсолютно новый цифровой ключ. Входные данные: «иван». Хеш-код: «ACAB2D9993D6893A442754E35781025B66A5B486». Единственное, что объединяет результаты выше, это одинаковая длина строки при выводе — 40 символов. Можно подумать, что такой объем определило количество букв у входных данных: в имени Иван их 5. На самом деле, даже если массив будет состоять из всего текста с этой страницы, длина строки с результатом получится такой же, взгляните: «DFB13520C775C03211EA5D41E767A0DD2BDF4840». Сорок символов хеш-кода вы получите и после размещения в исходных данных всех томов произведения Льва Толстого «Война и Мир» (!!!). Следовательно, вне зависимости от количества букв, цифр, знаков препинания и пробелов, алгоритмы сжатия будут выдавать цифровой ключ одинаковой длины. Также важно понимать, что каждому уникальному массиву всегда присваивается уникальный код. II. Сферы применения хеширования Помимо шифрования данных на блокчейнах и в различных платежных системах, функция хеширования применяется при составлении хеш-таблицы и декартова дерева. 1. Сравнение информации Суть процесса заключается в том, что определенные данные проходят проверку на их соответствие оригиналу, причем сам подлинник в этом действии не участвует. При сравнении информации оценивается идентичность хеш-значений. 2. Тестирование на предмет ошибок Рассмотрим один из способов проверки. Итоговая сумма может передаваться по определенному коммуникационному каналу вместе с остальными данными. В пункте получения контрольная сумма может быть пересчитана, а полученный результат проверен на соответствие оригиналу. Если значения будут отличаться, функция это определит, что может привести к повторному запросу. Приведем пример. При сложении чисел 2 и 5 образуется число 7. Контрольное значение передано программистом вместе с условиями его получения в компьютерную программу по обучению арифметике. Во время урока ученик решает задачу «5+2=?» за компьютером. Предположим, ребенок дает ответ «8». Хеш-алгоритм проверки определит, что итоговые данные не соответствуют оригиналу. В этом случае софт может предложить ребенку решить пример еще раз. 3. Контроль кодовой фразы В настоящее время кодовые фразы (например, для авторизации на сайте) хранятся только в виде их хеш-значения. Размещать пароли в первоначальном виде небезопасно, ведь если захешированный файл будет взломан, защитный код станет известен хакеру и может быть использован в преступных целях. А способ хранения в виде хеш подразумевает, что даже при хакерской атаке мошенники, в худшем случае, узнают только хеш-значение, которые они не смогут вернуть в первоначальное состояние. При аутентификации введенная информация преобразуется в хеш-значение, которое потом сравнивается с оригиналом. В качестве примера можно привести операционные системы Windows XP и Linux. Пароли для входа в учетную запись хранятся только в виде хеш-значений. 4. Ускорение поиска информации При заполнении строк в информационной базе есть возможность создавать хеш-код из хранящихся названий, поэтому новые данные можно размещать в разделах, согласно с хеш-кодом. Тогда, чтобы найти нужную информацию, нужно просто преобразовать ее в хеш, после чего станет понятно, в каком разделе она находится. Таким образом сокращается время поиска: он уже будет осуществляться не по всем разделам, а только по тому, который соответствует хеш-коду искомой информации. Пример. У вас на компьютере есть каталог с различной продукцией. Она отсортирована по алфавиту. Первая буква каждого товара будет ее хеш-кодом. Для того чтобы быстро найти нужный продукт, вам не нужно искать его по всему каталогу — достаточно ввести первую букву наименования. III. Свойства и требования к криптографическому хешированию + Безвозвратность. Все попытки извлечь входные данные после хеширования обречены на провал, поскольку большая часть информации теряется в процессе преобразования в код (в отличие от обычного шифрования). + Предопределенность. При вводе одной и той же информации для выполнения хеш-функции полученное значение всегда будет одинаковым. Это дает возможность проверять подлинность имеющихся данных с помощью хеш. + Уникальность. Потенциально хеш-функция может всегда возвращать уникальный код. Но пока это не реализовано на практике, и изредка случаются «дубли» — одно и то же значение для разных данных. Тем не менее качество хеш сокращает риск образования копий до минимума. + Многообразие. Даже при незначительном отличии двух отдельных данных (например, прописная и заглавная буквы) результатом будут два абсолютно разных кода. + Большая скорость преобразования. Она характерна для всех хеш-функций: по сравнению со стандартным шифрованием файлов, хеширование генерирует значения гораздо быстрее, вне зависимости от объема исходных данных. Задача каждой хеш-функции заключается в защите пользователей от кражи личной информации. Авторизация в личных кабинетах и сверка введенных слов с оригиналом необходимы для сохранения конфиденциальности данных, которые в обычном виде уязвимы перед кибератаками. Поэтому эксперты рекомендуют пользоваться именно хешами, ведь они очень эффективны при хранении паролей и любых других данных. В потенциале криптографическая хеш-функция может соответствовать всем указанным качествам. В настоящее время методы хеш не всегда отвечают всем требованиям, поэтому каждый разработчик таких программ должен стремиться к стопроцентному результату. + Устойчивость к коллизиям Термин «коллизия» в рамках сферы информационных систем означает образование одинаковых хеш-кодов у двух разных входных данных. Это явление создает риск, что мошенник подменит реальную информацию на фальшивую. Разумеется, следует избегать появления таких копий. Но пока, к сожалению, изредка могут случаться ошибки при хешированиии, которые приводят к появлению «дублей». Тем не менее вероятность, что хакер найдет коллизию, крайне мала, так как для этого ему могут потребоваться многие годы. + Защита от восстановления информации В какой-то мере это означает ту же безвозвратность. Теоретически, для установления исходных данных помимо обратной функции можно воспользоваться методом подбора. А полная защита от восстановления означает, что даже при попытках в течение длительного времени узнать первичные данные у злоумышленника все равно нет шансов на успех. + Стойкость к выявлению 1-го и 2-го прообраза Первый прообраз мог бы стать ключом для поиска обратной функции. Но отследить его не получится, так как криптографическая хеш-функция не оставляет следов. Второй прообраз очень похож на поиск коллизии. Он отличается лишь тем, что перед поиском второго прообраза хакеру известны и хеш-код, и оригинал, а при попытке найти копию он знает только код. Следовательно, хеш-функция не защищена от намерения обнаружить второй прообраз, поскольку знание исходника дает возможность изменить его. V. Будущее хеширования Изучая тему, может сложиться впечатление, что для обеспечения безопасности мы или просто: + делаем хеширование более сложным процессом, + растягиваем длину значений на выходе, полагаясь на то, что компьютеры хакеров не обладают необходимой скоростью вычислений для поиска коллизии. И действительно, сегодня защита информационных сетей основана на двусмысленности предварительных прообразов однонаправленных процессов. Защита алгоритмов хеш-функций состоит в создании трудностей тем, кто захочет найти два кода, отправленные к одному и тому же выводу, невзирая на бесчисленное количество несовпадений при поиске. Смогут ли хеш-функции обеспечивать безопасность информации после распространения квантовых компьютеров? Исследуя данный вопрос, эксперты пришли к мнению, что процессы преобразования данных в хеш успешно пройдут испытание против квантовых методов взлома. Конечно, последние будут довольно эффективными, чтобы обходить разного рода защиты. Кибератаки нового уровня будут гораздо быстрее, а их алгоритмы станут использовать более сложные математические приемы. Современные структуры хеш-функций не обладают ярко выраженными формами. А преимущество квантового компьютера заключается именно в скорости обнаружения неструктурированной информации. Только вот попытки взлома будут такими же однонаправленными, как и сегодня. Вне зависимости от того, какие методы мы выбираем для защиты личной и корпоративной информации, очевидно, что цивилизация успешно развивается в сторону будущего, основанного на эффективности вычислительных процессов. И методы хеширования — это одно из важных достижений на этом пути. Источник: vk.com Комментарии: |
|