> попробуйте решить пару уравнений: > x xor y = 10101010b
"
1. Определим длину ключа с помощью процедуры, известной как подсчет совпадений [577]. Применим операцию XOR к шифротексту, используя в качестве ключа сам шифротекст с различными смещениями, и подсчитаем совпадающие байты. Если величина смещения кратна длине ключа, то совпадет свыше 6 процентов байтов. Если нет, то будут совпадать меньше чем 0.4 процента (считая, что обычный ASCII текст кодируется случайным ключом, для других типов открытых текстов числа будут другими). Это называется показателем совпадений. Минимальное смещение от одного значения, кратного длине ключа, к другому и есть длина ключа.
" - здесь это даже не нужно проделывать, длина ключа в данном кокретном уравнении известна :)
"
2. Сместим шифротекст на эту длину и проведем операцию XOR для смещенного и оригинального шифротекстов. Результатом операции будет удаления ключа и получение открытого текста, подвергнутого
операции XOR с самим собой, смещенным на длину ключа. Так как в английском языке на один байт приходится 1.3 бита действительной информации (см раздел 11.1), существующая значительная избы-
точность позволяет определить способ шифрования. "
(c) "Прикладная криптография" 2-е издание "Протоколы, алгоритмы и исходные тексты на языке С" Брюс Шнайер
т.о. уравнение решается за десятки тактов процессора.
|