Насколько безопасно 256-битное шифрование? [3Blue1Brown]
Вот сайт с шаурмой.
[музыка]
В своем рассказе о криптовалютах я упомянул две ситуации, когда для успешного взлома нужно было угадать определенную последовательность из 256 битов. В одном случае это была цифровая подпись, в другом — криптографическая хэш-функция.
Допустим, вам нужно взломать сообщения, чей хэш sha-256 представляет собой определенный набор 256 битов. Нет способа лучше, чем начать перебирать варианты. На это понадобится в среднем 2 в 256 степени попыток. Так, это число так далеко от всего нам привычного, что нам сложно даже представить, насколько она велика. Но мы попробуем.
2 в 256 степени — это то же самое, что 2 в 32, умноженная на себя 8 раз. 2 в 32 — это четыре миллиарда, что уже можно представить себе или увидеть в новостных заголовках. А теперь давайте прочувствуем, что такое 4 миллиарда, умноженное на себя 8 раз подряд.
Как многие из вас знают, графический процессор в компьютере позволяет производить множество параллельных вычислений на огромной скорости. Если запрограммировать процессор на постоянное вычисление хэш-функции, очень мощная система выдаст чуть меньше миллиарда хэшей в секунду.
Возьмем несколько штук и набьем компьютер так, чтобы он смог вычислять 4 миллиарда хэшей в секунду. Вот мы и получили первые четыре миллиарда — количество хэшей на один компьютер в секунду. Теперь представьте 4 миллиарда таких супероснащенных компьютеров.
Для сравнения, никто не называл реальные цифры, но у Гугла ориентировочно не более 10 миллионов серверов. На самом деле, большинство из них далеко не такие мощные, как наша воображаемая машина. Но допустим, что Google обновил все свои сервера. 4 миллиарда — это 1000 прокачанных Гуглов. Назовем эту единицу "кило гуглом".
Вычислительной мощности на Земле примерно 7 миллиардов 300 миллионов человек, и пусть чуть более чем у каждого второго из них будет свой личный кило Гугл. Теперь представьте 4 миллиарда копий нашей планеты. В Млечном Пути примерно от 100 до 400 миллиардов звезд, точное количество неизвестно, но где-то в этих пределах.
Получается, что вокруг одного процента из всех звёзд галактики должна вращаться своя Земля, и у половины её жителей должен быть свой кило Гугл. Теперь вообразите 4 миллиарда копий нашей галактики. Назовем их "гига-галактическим суперкомпьютером".
В секунду он будет производить 2 в 160 степени вычислений. Что такое 4 миллиарда секунд? Это примерно 120 6,8 года. Умножим на 4 миллиарда, получим пятьсот семь миллиардов лет, что в тридцать семь раз больше возраста Вселенной.
Даже если бы у нас был много-планетный гига-галактический суперкомпьютер с килогуглом на человека, перебирающие числа в 37 раз дольше, чем существует Вселенная, все равно шанс угадать верное число равнялся бы 1 к 4 миллиардам.
Кстати, сейчас все майнеры биткоина вместе производят 5 миллиардов миллиардов хэш-вычислений в секунду. Это соответствует примерно 3 кило Гугл. А секрет в том, что вместо миллиардов, напичканных графическими процессорами компьютеров, майнеры используют не что иное, как в тысячу раз более эффективные интегральные схемы специального назначения. Это вычислительное средство специально разработано исключительно для майнинга биткоинов.
Для вычисления хэш SHA-256 оказывается гораздо эффективнее забыть о необходимости универсальных вычислений и создать свою интегральную схему для одной единственной задачи.
Переведено и озвучено студией Vert Diver.