Мир криптографии активно обсуждает новость о том, что исследователи из Google и Центра математики и информатики в Амстердаме (CWI Amsterdam) успешно сгенерировали «хэш-коллизию» для двух разных документов с использованием алгоритма шифрования SHA1, что фактически означает взлом алгоритма в соответствии с криптографическими стандартами.
Но что это означает на простом языке и каковы последствия этого события для Биткоина и других криптовалют?
Хэш-коллизия
Хэш-функция (примером которой является SHA1) используется для того, чтобы выбрать часть данных любого размера, обработать их и затем вернуть обратно в качестве другого отрезка данных – «хэш-дайджеста» с фиксированным размером. Один из вариантов использования хэш-функций нашел применение в области вычислений – они используются для проверки идентичности содержимого файлов: пока хэш-функция надежно защищена, два файла, чьи хэши имеют одинаковое значение, будут иметь одинаковое содержание.
При этом хэш-коллизии происходят тогда, когда два разных файла имеют идентичное содержание. Учитывая математические законы, которые регулируют хэш-функции, возникновение коллизий неизбежно при некоторых значениях входных данных (так как диапазон данных, который можно поместить в хэш-функции, потенциально является бесконечным, а длина вывода - фиксирована). Для обеспечения безопасности хэш-функции вероятность таких событий должна быть настолько мала, что на практике этого невозможно достичь из-за огромного количества вычислений.
Значимость результатов команды Google и CWI заключается в том, что они смогли создать коллизию, найдя гораздо более эффективный метод, по сути, в 100 000 раз более эффективный, чем обычное угадывание каждого возможного значения данных. Именно из-за эффективности этого способа алгоритм SHA1 можно официально считать взломанным.
Премия SHA1
Премия, которая полагается за обнаружение уязвимостей в алгоритме SHA1, изначально была объявлена криптографом и разработчиком Биткоина Питером Тоддом (Peter Todd) в сентябре 2013 года, однако никто не претендовал на нее до этой недели. Чтобы получить премию, необходимо было выполнить сценарий, написанный Тоддом, который позволит любому переместить биткоины с премиального адреса на любой другой, если человек сможет представить два сообщения с разными значениями, но имеющими одинаковый результат в процессе хэширования.
Поддержали Тодда и другие участники сообщества – в общей сложности они пожертвовали в премиальный фонд 2,5 биткоина. По данным исследователей, исходя из сроков появления претензии на премию, которая произошла не сразу после публикации данных о коллизионной атаке, можно предполагать, что премию получили не исследователи из Google, сделавшие открытие, а третья сторона – тот, кто изучил результаты исследования и забрал награду себе. Тодд отмечает:
«Если премию получили авторы исследования, то стоило ожидать, что они заявят о своей претензии на нее до того, как опубликуют результаты исследования. Однако все произошло совсем не так».
Последствия для Биткоина
Стоит отметить, что криптография, лежащая в основе сети Биткоина, которая использует более безопасный алгоритм SHA2-256, напрямую не зависит от взлома его предшественника. Старые криптографические алгоритмы со временем становятся уязвимыми и отмирают, уступая место более совершенным. Однако, помимо обогащения мистического получателя премии, уязвимость SHA1 все же становится поводом для беспокойства для сообщества разработчиков Биткоина, так как система управления версиями Git использует SHA1 для создания хэш-дайджеста для фиксации транзакции.
«Сделанное открытие вовсе не означает, что мы сразу же прекратим использование Git», - отмечает Тодд. «Однако мы уделим больше внимания работе других людей, так как третья сторона может попытаться воспользоваться уязвимостью».
Суть найденной уязвимости заключается в том, что теоретически злоумышленники могут создать две разные версии кода, которые будут казаться одинаковыми во время сопоставления их значений. Однако на текущий момент, учитывая какие вычислительные мощности необходимы для поиска такой коллизии, очень маловероятно, что это может произойти.
Точно такие же премии, как и для SHA1, Тодд объявил и для хэш-функций RIPE MD160 и SHA256 – они обе являются необходимой составляющей целостности стандарта Биткоина и, следовательно, их уязвимости могут быть губительны для сети. Комментируя своего решение, Тодд сказал:
«Если вы хотите заявить права на одну из этих премий, лучше сначала потратьте свои биткоины».