Простого XOR дешифрование:найти длину ключа
Для того, чтобы разорвать это шифрование, мы должны сделать несколько предположений:
1) Ключ является достаточно коротким (в нашем случае, мы будем считать, что это меньше, чем 30 байт, но больше, чем 3 байта)
2) текст ясно ASCII
3) текст был написан как простой английский
4) Текст достаточно длиннее ключ (или Есть несколько отрывков текста шифруется с тем же ключом)
Описание Длина ключа:
Если текст английский, мы знаем, что наиболее распространенными символами являются e, t, a, o, n, r, i, s, h, d, (...). Более конкретно, если мы произвольно выбираем 2 символа из любого текста, мы знаем, что у нас больше 6% вероятности того, что они имеют одинаковое значение. Длина ключа меньше 30 байт.
Чтобы определить правильность заданной длины ключа, мы используем эти предположения и подразделяем зашифрованный текст на сегменты того же размера, что и длина ключа. Затем, XOR каждый раздел с разделом перед ним и подсчитайте количество равных значений. Математика показывает нам, что если Ti == Tj, то
Bi^Bj = (Ti^Kn)^(Tj^Kn)
= (Ti^Tj)^(Kn^Kn)
= (0)^(0)
= 0
Тогда у меня должна быть длина ключа. Но как мне это получить? Единственное, что у меня есть, - это прочитать двоичный файл и открыть двоичный файл.
Код:
int main(int argc, char* argv[]){
if (argc != 2) {
exit(EXIT_FAILURE);
}
FILE* fp = fopen(argv[1], "rb");
printf("File Opened: %s\n", argv[1]);
fclose(fp);
return EXIT_SUCCESS;
}
Binary File:
По некоторым причинам, я не могу отправить ссылку на файл или запись, в противном случае вы, ребята, не могли бы иметь представление.
Вы начинаете свой вопрос с заявления, которое звучит так, как будто мы должны иметь представление о том, о чем вы говорите. Откуда взялись данные? Является ли это на самом деле проблемой программирования, или это будет лучше подходит для форумов по вопросам хиптографии, информационной безопасности или обратного проектирования? Единственный вопрос в вашей публикации: «Как я получу его?» ссылаясь на некоторый ключ для некоторого алгоритма, который вы не называете и для которого вы не предоставляете никаких данных. :) –
@DavidHoelzer Он включает в себя базовое шифрование/дешифрование XOR, это дополнительное назначение кредита. – asdf3fasdf
@ asdf3fasdf, звучит неплохо, но нам, вероятно, нужен больше контекста. Можете ли вы воспроизвести полное описание задания, которое вам было дано? –