Допустим вам нужно взломать сообщение чей хэш «sha-256» представляет собой определенный набор 256 битов. И нет способа лучше, чем начать перебирать варианты, и на это понадобится в среднем 2 в 256 степени попыток. Это число так далеко от всего нам привычного, что нам сложно даже представить насколько она велика, но мы попробуем. 2 в 256 степени это то же самое что 2 в 32 степени умноженная на себя 8 раз.
два в 32 это четыре миллиарда что уже можно представить себе
А теперь давайте прочувствуем, что такое 4 миллиарда умноженное на себя 8 раз подряд. Как многие из вас знают, графический процессор в компьютере позволяет производить множество параллельных вычислений на огромной скорости. Если запрограммировать компьютер на постоянное вычисления хэш-функции, очень мощный процессор выдаст чуть меньше миллиарда хэшей в секунду.
Возьмем несколько штук и набьем компьютер так чтобы он смог вычислять 4 миллиарда хэшей в секунду. Вот мы и получили первые четыре миллиардов хэшей на один компьютер в секунду. Теперь представьте 4 миллиарда таких супер оснащенных компьютера.
Для сравнения никто не называл реальные цифры но у гугла ориентировочно не более 10 миллионов серверов.
На самом деле большинство из них далеко не такие мощные как наши воображаемые машины, но допустим что google обновил все свои сервера. 4 миллиарда это 1000 прокачанных гуглов, назовем эту единицу килогуглом вычислительной мощности.
На земле примерно 7 миллиардов 300 миллионов человек и пусть чуть более чем у каждого второго из них будет свой личный килогугл. Теперь представьте 4 миллиарда копий нашей планеты.
В млечном пути примерно от 100 до 400 миллиардов звезд, точное количество неизвестно но где-то в этих пределах.
Получается, что вокруг одного процента из всех звёзд галактики должна вращаться своя земля и у половины ее жителей должен быть свой килогугл. Теперь вообразите 4 миллиарда копий нашей галактики, назовем их гигагалактическим суперкомпьютером. В секунду он будет производить 2 в 160 степени вычислений. Что такое 4 миллиарда секунд? Это примерно 126 целых и 8 десятых года. Умножим на 4 миллиарда получим пятьсот семь миллиардов лет, что в тридцать семь раз больше возраста вселенной.
Даже если бы у нас был многопланетный гигагалактический суперкомпьютер с килогуглом на человека, перебирающего числа в 37 раз дольше чем существует вселенная, все равно шанс угадать верное число равнялся бы одной четырехмиллиардной.
Так, что можем подвести итог и сделать вывод, что на данный момент у нас не существует технической возможности расшифровать 256 битный код.