Форум программистов, компьютерный форум CyberForum.ru

Взлом XOR шифра - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Шаблон функции сравнения для qsort() http://www.cyberforum.ru/cpp-beginners/thread854889.html
Хочу отсортировать массив из int и из double с помощью qsort(). Для этого необходимо определить функцию сравнения элементов. Думал попробовать сделать шаблон такой функции. template <class T> int comp(const T *a,const T *b) { // return *(double *)a - *(double *)b; if (*(T *)a < *(T *)b) return -1; else if (*(T *)a > *(T *)b)
C++ Не работает признак окончания ввода(признак-0) Признак окончания ввода 0; подскажите люди добрые что не так?) #include <iostream> #include<stdio.h> using namespace std; int main(){ setlocale(LC_ALL, "Russian"); int const n=1000; int arr; int i=0,count=0,countr=0; cout<<"Введите последовательность чисел: "; http://www.cyberforum.ru/cpp-beginners/thread854873.html
Добавить числа из файла C++
Суть задания : создать файл, записать туда 10 рандомных чисел, закрыть файл, открыть файл, взять оттуда числа и посчитать их сумму. Проблема собсно в том, что считаю я аски кода этих чисел, а не сами числа. Прилагаю код, он немного криво написано, но уж извиняйте : #include <vcl.h> #include <iostream.h> #include <conio.h> #include <iomanip.h> #include <fstream> using namespace std; int...
CAsyncSocket C++
Доброго времени суток. При написании программы возникла проблема с CAsyncSocket. Нужно было реализовать передачу сообщений между диалоговым приложением и консолью (консоль - сервер), через динамически загружаемую библиотеку. Вот код библиотеки: struct Header { int size; int addr; }; struct Message { char *mes;
C++ Задача по численным методам http://www.cyberforum.ru/cpp-beginners/thread854832.html
помогите решить задачу
C++ Передача операнда внутри переопределенной операции Здравствуйте. Пытаюсь разобраться с перегрузкой операций для классов, и вот в чем проблема: Есть класс longNumber, в котором хранится(внезапно) длинное число в виде массива цифр а также знак числа. Переопределил для класса операцию "+". Теперь учу её работать с отрицательными числами. Например если первое число положительное, а второе - отрицательное, то значения нужно уже вычитать. Собственно,... подробнее

Показать сообщение отдельно
Rad-X
0 / 0 / 0
Регистрация: 03.05.2013
Сообщений: 14

Взлом XOR шифра - C++

03.05.2013, 15:07. Просмотров 5112. Ответов 20
Метки (Все метки)

Здравствуйте, пишу программу для взлома XOR шифра.
Прочитал по этому поводу в "Прикладной криптографии" Брюса Шнайера.

Там описан следующий алгоритм:

"Предположим,что открытый текст использует английский язык.Более того,пусть длина ключа любое небольшое число байт.Ниже описано,как взломать этот шифр:

1.Определим длину ключа с помощью процедуры,известной как ПОДСЧЕТ СОВПАДЕНИЙ.
Применим операцию XOR к шифротексту,используя в качестве ключа сам шифротекст с различными смещениями,и подсчитаем совпадающие байты. Если величина смещения кратна длине ключа,то совпадет свыше 6 процентов байтов. Если нет,то будут совпадать меньше чем 0.4 процента( считая,что обычный ASCII текст кодируется случайным ключом,для других типов открытых текстов числа будут другими). Это называется показателем совпадений. Минимальное смещение от одного значения,кратного длине ключа,к другому и есть длина ключа.

2. Сместим шифротекст на эту длину и проведем операцию XOR для смещенного и оригинального шифротекстов.Результатом операции будет удаление ключа и получение открытого текста,подвергнутого операции XOR с самим собой,смещенным на длину ключа. Так как в английском языке на один байт приходится 1.3 бита действительной информации,существующая значительная избыточность позволяет определить способ шифрования."

Немного не понимаю, что мы считаем совпадающими байтами? Совпадения между строкой шифротекста и полученной строкой? Или только в полученной строке?

Нашел на википедии статью http://ru.wikipedia.org/wiki/%D0%98%...BD%D0%B8%D0%B9

Пробовал разные варианты реализовывать, и просто индекс совпадений и взаимный индекс, результаты получаются не те, которые нужны.

Может дело в том, что шифрую только 32 буквы русского алфавита? Но ведь при смещении кратном длине ключа всплески должны быть, но их нету.

Что делать, как быть?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 05:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru