ПредишенСледващото

В книгата "Стрелба за хакер" в първата глава, има задача, в която читателят се приканва да декодира кодираното прост XOR. В този случай, най-важното е неизвестен.

Тъй като текст на предлаганото манифест «съвестта на Hacker.txt«.

Първо трябва да се определи дължината на ключа.

  • циклично измести текст аз (от 1 до дъл (текст) / 2) на правилните герои
  • за всяка итерация, сравним броя на знаците, съвпада с оригинала (неизместено) и новия текст)
  • изместване аз, при която броят на съвпадение е максималната е необходимата дължина на ключа

И между другото, защо дъл (текст) / 2. Правилно, разбира се, за да проверите всички изместването до LEN (текст) - 1. но експерименти са показали, че процентът на попадения за смяна аз и н-и ще бъдат същите на големи текстове. И кой ще направи дължината на ключа е повече от половината от текста?

На практика, това изглежда така:

  • Имаме ciphertext «abcdea»
  • циклично го смени с I = 1 герои
  • Вземи «aabcde»
  • Ние търсим за броя на знаците мачове в «abcdea» линии и «aabcde»
  • В момента има един мач в символ нула.
  • Процентът на попадения за срязване 1
16,7%
  • Повторете за всички смени и изберете този, с най-висок процент на
  • Cool. Дължината на ключа е известно за нас.

    Сега ние трябва да намерим самия ключ.

    За да направите това, се процедира, както следва:

    • Разделяне на текстови символи групи
    • Броят на групите е равна на дължината на ключа
    • Всяка група включва символи, които са кодирани от ключ и-тия символ
    • Във всяка от групите вагонетка символи с най-често срещаният символ на азбуката (за английски това пространство)
    • Ние считаме, че честотата на всяко получено характер между група
    • Изберете по-тото писмо ключов елемент с най-голямата честота поява
    Подкрепете проекта - споделете линка, благодаря!