Криптолог Джесси Уолкер (Jesse Walker) из компании Intel опубликовал расчёт примерного срока жизни алгоритма SHA-1 до тех пор, пока мы не увидим первые коллизии хэшей в реальных атаках на эту функцию. Расчёт опубликован в списке рассылки hash-forum@nist.gov Национального института стандартов и технологии США (NIST).
Уолкер пишет, что в соответствии с инструментом E-BASH для оценки времени вычисления хэш-функции, на обычном современном микропроцессоре один блок SHA-1 вычисляется за 214 циклов. При этом атака Стивенса требует 260 циклов. Соответственно, вычислительный ресурс для поиска коллизий можно оценить примерно в 214 * 260 = 274 циклов.
Далее, возьмём мощность современного восьмиядерного CPU, каждое ядро которого выполняет 231 циклов в секунду, а весь CPU целиком 23 * 231 - 234циклов в секунду. На сервере обычно цетыре процессора, так что сервер может вычислять хэши со скоростью 22 * 234 = 236 циклов в секунду. Поскольку в году примерно 225 секунд, то сервер за год выдаёт 225 * 236 = 261 циклов. Уолкер предлагает называть этот параметр «серверный год».
На сегодняшний день есть явные признаки того, что закон Мура, который констатирует рост вычислительной мощности процессоров вдвое каждые полтора года, продлится как минимум до середины 2020-х гг. Поэтому мы можем примерно экстраполировать серверный год до 2021 года. Вот сколько «удвоений» по закону Мура произойдёт в эти годы.
3/1,5 = 2 удвоения 2015 году (3 = 2015 - 2012)
6/1,5 = 4 удвоения к 2018 году (6 = 2018 - 2012)
9/1,5 = 6 удвоений к 2021 году (9 = 2021 - 2012)
Таким образом, сервер сможет выполнять следующее количество циклов в год.
261 циклов в год в 2012 году
22 * 261 = 263 циклов в год в 2015 году
24 * 261 = 265 циклов в год в 2018 году
26 * 261 = 267 циклов в год в 2021 году
Получается, что атака Стивенса на стандартном коммерческом оборудовании будет требовать следующее количество серверных лет.
274 / 261 = 213 серверных лет в 2012 году
274 / 263 = 211 серверных лет в 2015 году
274 / 265 = 29 серверных лет в 2018 году
274 / 267 = 27 серверных лет в 2021 году
Сегодня Amazon предоставляет вычислительные мощности на облачном хостинге в аренду по $0,04 в час = $350 в год. Предположим, что стоимость останется прежней, в то время как вычислительная мощность оборудования будет увеличиваться по закону Мура.
В этом случае, поскольку log2(350) ~ 8,4, стоимость поиска коллизий составит следующую сумму:
213 * 28,4 = $221,4 ~ $2,77 миллиона в 2012 году
211 * 28,4 = $219,4 ~ $700 тыс. в 2015 году
29 * 28,4 = $217,4 ~ $173 тыс в 2018 году
27 * 28,4 = $215,4 ~ $43 тыс. в 2021 году
Получается, что сегодня атака на SHA-1 ещё требует серьёзных инвестиций и доступна разве что спецслужбам, но уже через несколько лет её стоимость снизится в 10-20 раз и станет вполне приемлемой. В 2018 году провести такую атаку сможет преступный синдикат, а в 2021 году она впишется в бюджет университетского проекта, пишет Уолкер.
Приведённый расчёт можно назвать весьма консервативным, потому что он не учитывает апгрейда набора инструкций (например, в процессорах ARM 8 есть инструкция для SHA-1) и применения специализированного оборудования (например, GPU), не говоря уже о появлении более эффективных методов криптоанализа. Так что «апокалипсис 2021 года» может наступить гораздо раньше.
Вывод очевиден, считает коллега Уолкера Брюс Шнайер: переходить с SHA-1 на SHA-2/SHA-3 нужно уже сегодня.