Это приводило к вероятности атаки полным перебором на все вероятные ключи. Для того, чтобы дешифровать файл Word/Excel 97/2000, нужно перебрать самое большее 240 ключей, после чего мы гарантировано найдем необходимый ключ, самостоятельно от длины и сложности употребляемого пароля. (Если вам малопонятно разница ключа от пароля - чтите FAQ). Я тоже брался написанием такой программы в 2000 году, самостоятельно от длины и сложности и после всех оптимизаций (причем одной из самых важнейших была смена наставлении moveax,0 на xoreax, eax - я этого еще затрону в этом блоге) на теперешнем Pentium II/333 Мгц она должна была рассчитываться около 70 дней.
Сегодня перебор 240 ключей из Microsoft Office берет 3 дня на внутриядерном Core 2 Duo/2 ГГц.
Созидатели программ для воссоздания паролей Office 97/2000 на этом не стали. Дело в том, что если построить огромную базу доставленных предвычисленных значений и употребить т.н. Rainbow-атаку, то необходимый ключ можно отыскать за секунды. По сути, мы замещаем сложные и долгие подсчитывания поиском в заблаговременно высчитанной таблице (в оптимизации это получать название “замена время-память”).