алгоритм Windows PRNG - несомненно, самого распространенного в мире криптогенератора - оставался невскрытым и никем не проанализированным на протяжении почти полутора десятков лет.
Объяснить это проще всего тем, что защиту в Windows удавалось вскрывать все эти годы и без знания работы генератора. Нагляднее всего, наверное, данный факт иллюстрируется на примере пакета MS Office, эволюция которого крепко привязана к версиям ОС Windows, а потому и криптография примерно та же самая. Так вот в процессе эволюции криптосредства для защиты информации претерпевали серьезные усовершенствования. Однако на словах и безопасность, и этапы ее усиления всякий раз выглядели существенно иначе, нежели на деле.
В самом первом продукте, MS Office 95, уже имелись средства шифрования документов. Но реально шифрование сводилось к применению побитовой операции XOR к паролю пользователя и тексту документа. С точки зрения криптоанализа защиты это не обеспечивало. Создавалась лишь ее видимость - превращение читаемого текста в нечитаемый.
Применение шифров из арсенала бойскаутов в тот период, когда миру уже была прекрасно известна программа PGP - символ общедоступного и очень сильного крипто, конечно, не злой умысел (или невежество) Microsoft. Просто все предыдущие десятилетия американские законы считали стойкие криптосредства столь же опасным военным товаром, как наступательные виды оружия, и они подлежали строжайшим экспортным ограничениям. В течение 1990-х годов, впрочем, эти драконовские законы были заметно ослаблены, а вместе с ними менялась и стойкость криптографии в Windows и MS Office.
В частности, в последующих версиях программ начали применять вполне качественный поточный шифр RC4. Правда, в ранних экспортных версиях ПО длина ключа ограничивалась всего лишь 40 битами. При такой длине шифры, как известно, без проблем вскрываются на ПК лобовым (тотальным) перебором всех возможных ключевых комбинаций. Но после коррекции экспортных законов к концу 1990-х пользователям новых версий Microsoft Office, в принципе, стали доступны теоретически стойкие шифрсредства - в частности, RC4 с длиной ключа 128 бит. Вот только на практике шифр оказался реализован так, что надежной защиты данных с его помощью все равно не получалось.
Среди фундаментальных основ криптографии имеется очень важное правило: если для засекречивания используется поточный шифр (наложение на открытый текст постоянно изменяющейся шифрпоследовательности), то никогда одну и ту же шифрпоследовательность не накладывают на два разных документа (разными в данном случае считаются любые модификации файла, включая вставку или изъятие единственного знака). Если же это сделано, то всего по двум одноключевым документам шифрование можно развалить и прочитать оба текста - причем сам ключ и его длина никакой роли не играют. В годы Второй мировой войны английские криптоаналитики из-за такого рода ошибок германских шифровальщиков смогли полностью вскрыть криптосхему шифратора 'Шлюссельцузатц'. Позже это позволило им с помощью 'суперкомпьютера' Colossus вскрывать ключи и читать всю переписку противника.
В программных же продуктах Microsoft шифр RC4 был реализован таким образом, чтобы одноключевые комплекты порождались ВСЕГДА. Ключ без затей генерировался на основе пароля доступа к документу, поэтому разные версии документа шифровались одним и тем же ключом. Как известно, разные версии одних и тех же файлов присутствуют в системе очень часто - в резервных кэшах, как архивные копии, как совместно подготавливаемые документы и т. д. Для таких случаев в криптографии есть элементарнейший способ недопущения одноключевых комплектов - подмешивание в ключ наряду с паролем