Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.71/89: Рейтинг темы: голосов - 89, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 03.05.2013
Сообщений: 14

Взлом XOR шифра

03.05.2013, 15:07. Показов 18581. Ответов 20
Метки нет (Все метки)

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

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

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

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

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

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

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

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

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

Что делать, как быть?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.05.2013, 15:07
Ответы с готовыми решениями:

Взлом XOR
Всем добрый день. Помогите разобрать алгоритм взлома XOR. Имею следующее описание: 1. Определим длину ключа с помощью процедуры,...

Взлом шифра простой замены
Здравствуйте, передо мной стоит задача взлома шифра простой замены, алфавит из 32 русские буквы(е=ё), без знаков препинания и пробелов....

Взлом шифра простой замены
Добрый день! Бьюсь над этой расшифровкой уже какой день.. Все онлайн взломщики перетестил, ничего не выходит (Цезаря, Атбаш и т.д.)....

20
Befrodo
01.06.2013, 10:40
Rad-X, Наткнулся на Ваше сообщение по поводу XOR шифрования.Не могли бы Вы пояснить, как определить длину ключа для случайного текста.Или например txt файла размером 4кб?
Заранее благодарен.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.06.2013, 10:40

Взлом шифра простой замены
вцяюкылофзфъьцлфбфщзуамцкщфзргишвецчфкскщфмфесялзслфефисосмсеецмыюьцъецеыскщфюцщмфибцефосерёмыюыхесмсбуифыщюескуцоуяфыщм фмунаыпызф ...

Взлом шифра простой замены
разъясните, пожалуйста, что делает этот код?

Взлом шифра простой замены
Задали взломать шифр простой замены просидел 2 дня и не смог решить 45 74 54 31 10 26 38 23 74, 86 74 54 25 89 26 38 16 74 74 75 16 45 56...

Взлом шифра простой замены
Здравствуйте, передо мной стоит задача взлома шифра простой замены, алфавит из 32 русские буквы(е=ё), без знаков препинания и пробелов....

Взлом шифра простой замены
Здравствуйте! Мне нужно написать программу для взлома. Мне дан файл со словарем. Думаю, в начале использовать метод протяжки вероятного...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Новые блоги и статьи
[golang] Конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов.
alhaos 10.06.2026
Задача Реализовать конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов. Сигнатура func Fetch(urls string, maxConcurrent int) Result Пример urls :=. . .
[golang] Состояние гонки (race condition)
alhaos 10.06.2026
Состояние гонки (race condition) Состояние гонки (Race Condition) — это ошибка, возникающая при одновременном доступе нескольких горутин к одним и тем же данным без должной синхронизации. При этом. . .
Взрослые отношения, и почему они не получаются
kumehtar 09.06.2026
Когда в детстве ребёнок не получает от родителей чего-то важного, он лишается не просто приятных переживаний, а основы для формирования определённых внутренних качеств и навыков. Если ребёнок не. . .
[golang] Worker Pool
alhaos 09.06.2026
Worker Pool Worker Pool — паттерн конкурентной обработки задач в Go. Суть: фиксированное количество горутин-воркеров читают задачи из общего канала и пишут результаты в общий канал результатов. . . .
[golang] Pipeline
alhaos 08.06.2026
Pipeline Pipeline — паттерн конкурентной обработки данных в Go. Суть: данные проходят через цепочку независимых стадий, каждая из которых работает в своей горутине и общается с соседями через. . .
Свет внутри себя
kumehtar 07.06.2026
Пусть это будет здесь lIs4oanZS9Y
Программа для com-порта
Uhbif79 05.06.2026
Всем привет, давно хотел изучить Qt, начинал, бросал, потом снова начинал. И сейчас вот смог написать свою первую программу. До этого имел опыт программирования микроконтроллеров, писал прошивки на. . .
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru