214 / 116 / 14
Регистрация: 30.05.2011
Сообщений: 1,772
|
|
1 | |
un XOR без ключа02.06.2011, 22:45. Показов 5734. Ответов 9
Метки нет (Все метки)
опять же по Страуструпу задание. написать прогу ксорящую текст с ключом, затем расшифровывающую данный ксоренный тескт с ключом. Но потом все слегка усложняется, надо написать прогу расшифровываюзую ксоренный тескт НЕ зная ключа. Страуструп дает подсказки - типа читайте "взломщики коднов страница такая то", далее столпы крипто пишут что это практически шифр виженера и вскрыватся ПК за секунды. Предлагается слелующий адгоритм - мы берем ксореный текст и делаем опять XOR c самим собой смещая постепенно относительно себя и считаем совпавшие байты. когад появятся всплески совпавших байт и их будет более не помню скольки процентов - мы нашли величину кратную длину ключа. ксорим шифр со смещением и освобождаемся от ключа - получаем шифрованный текст без ключа. ну а далее типа анализ....зная особенности избыточности языков например часто встречается буква е, там, а - подставляем буквы вместо символов с той же частотой. так вот. ЗАТЫК на участке поиска совпадений.
Разработал несколько вариантов смещений - это просто сдвиг на один символ и битовый сдвиг, поскольку так и не понял какое конкретно смещение имели ввиду столпы криптографии. прога шуршит, катае в файлы по 20 смещений 2х видов. Далее я смотрю файлы. и..... о ДА смещения есть, НО - поскольку я тот кто шифровал текст, то я и знаю длину ключа и тут ни фига не совпадает.всплески совпавших байт есть но они нестабильны, нет закономерности...Обращаюсь к экспертам. вы уже давно в мире С++, может приходилось вам успешно решить данную задачу?
0
|
02.06.2011, 22:45 | |
Ответы с готовыми решениями:
9
Простая перестановка без ключа Расшифровка текста без ключа Шифрование методом простой перестановки без ключа Поиск ключа XOR |
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
03.06.2011, 08:39 | 2 |
Для расшифровки ксора без знания ключа, нужен валидатор результат попытки расшифорвки с предполагаемым клюм. При наличии такого валидатора просто пробуй все ключи подряд, пока не получишь валидный резульат, например, читабельный текст.
0
|
214 / 116 / 14
Регистрация: 30.05.2011
Сообщений: 1,772
|
|
03.06.2011, 08:57 [ТС] | 3 |
позвольтес, но ведь это будет простой перебор. В книжках же напирают на интеллектуальтный анализ.
финальная часть - убрав ключ из шифра, мы остаемся с набором символов. какие то символы повторяются чаще какие то реже, используя анализ языка например русского, несложно составить прогу которая например вместо часто встречающегося символа | подставит букву е. В этом вся фишка. Это ранее руками делали, да и щас наверно от финального анализа не уйти, но автоматизировать можно получив более- менее текст и додумав что дописать. так вот я стал на этапе анализа всплеска совпадений - они должны быть кратны длине ключа. длину я и так знаю(я шифровал), так вот всплески то есть то они не стабильны. с длиной кратной ключу то совпадают то нет. далее я не стал морочиться, поскольку не пройдя правильно этот этап - анализ невозможен. просто я гуглил на эту тему, на нескольких форума видел - типа как все просто делается (и опять цитируют криптографов), но последним сообщением было - " а кто то решил эту задачу?" - и тишина. мы не берем случай когда ключ с ксором огромен, а случай когда ключ равен длине текста вообще считается неуязвимым без знания ключа. это мы не берем. Тут столько народу опытного. понимаю, что на данную задачу - надо потратить время (на кой это делать?), но просто думал что может кому интересно и кто то тоже читал эти книги.
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
03.06.2011, 09:23 | 4 |
Было:
Добавлено через 13 минут Найди как хоть один повтор через 4 символа! Повтор будет наблюдаться только в том случае, если через длину ключа повтоярются символы исходного текста. При длине ключа в 1 байт и в 1 символ анализ такой: гарантировно близко повторяемый символ - пробел. Перебираем повторяемые на роль пробела. Тогда, даже при неизвестной кодировке и невозможнсоти пямого вычисления ключа ксоркой с пробелом получаем предположительные длины слов. Однобуквенных слов относительно немного: только союзы и предлоги. Двухбуквенных тоже относительно мало и все они известны. Также мало и трёхбуквенных. Если даже учесть тире и числа, то всё равно вариантов не много, особенно односимвольных. Предполагая определённые буквы, можно их подставлять в отальнйо текст. Даже в духбуквенных они будут повторяться: слова "и" и "из"; "а", "за", и "да"; "о" и "он". Обрати внимание, что с этими буквами сочетаются не все другие буквы. Теперь подставляем их. Плюс можно юзить частотные таблицы языка. А если ключ длинее символа? Кроме перебора, пусть даже направленного, выриантов нет, иначе это вообще не шифр.
0
|
214 / 116 / 14
Регистрация: 30.05.2011
Сообщений: 1,772
|
|
03.06.2011, 10:20 [ТС] | 5 |
хм....обоснованно. Мы не об одном и том же? если последовательно двигать шифротекст и ксорить с самим собой, мы должны будем рано или поздно натолкнуться на повторы (их будет более 6% по моему)
т.е. текст должен быть крупным - так пишут в книжках. ты насколько я понял доказал на данном примере обратное? что даже зная длину ключа и сместив на эту цифру шифротекст и ксорив с собой мы НЕ видим повторов? Как ты делал смещение? просто по символам или битовый сдвиг? Добавлено через 9 минут по моему важный момент. не надо искать повторы с длиной через 4. надо просто искать повторы если они есть. то та величина на которую смещали кратна длине. т.е. во втором варианте то что помечено красным это не оно. надо вообще на предмет повторов кусок прогнать. я прав?
0
|
214 / 116 / 14
Регистрация: 30.05.2011
Сообщений: 1,772
|
|
26.08.2011, 13:27 [ТС] | 6 |
позднее я понял что считал эти совпадения не там. Страуструп дает непростые задания особенно непросты они для людей севших учить С++ с нуля. Пока вернуться недосуг к заданию. Но taras atavin считает что это все фигня что пишут и в результате нужен все равно тупой перебор. Хотя я согласен с ним. если при ксоре длина ключа равна длине текста - анализ невозможен.
0
|
26.08.2011, 13:42 | 7 | |||||
Именно по смещению ключа, потому что разные символы открытого текста могут дать одинаковые символы в шифротексте, так как шифруются на разных символах ключа. (Слово "символ" в данном контексте условно).
Сейчас я попробую вкратце описать подобный "криптоанализ" :) Допустим имеется открытый исходный текст: Код
арозаупаланалапуазора Код
1 1 2 2 2 2 1 2 ар оз ау па ла на ла пу аз ор а Таким образом, мы видим в каких местах текста стоят одинаковые символы. Исходя из анализа встречаемости символов в каком-либо языке и самых встречаемых в шифротексте можно получить открытый текст.
Код
0XDA 0X9D 0XDB 0XAD 0XDA 0X93 0XDA 0X9A 0XDA 0X9D 0XDB 0XAE 0XDA 0X92 0XDA 0X9D 0XDA 0X96 0XDA 0X9D 0XDA 0X90 0XDA 0X9D 0XDA 0X96 0XDA 0X9D 0XDA 0X92 0XDB 0XAE 0XDA 0X9D 0XDA 0X9A 0XDA 0X93 0XDB 0XAD 0XDA 0X9D
1
|
214 / 116 / 14
Регистрация: 30.05.2011
Сообщений: 1,772
|
|
26.08.2011, 14:03 [ТС] | 8 |
fasked, мне стыдно призаться но явсе же сделаю ЭТО. Я смотрел повторы в текстовом файле а не в хекс редакторе тогда. Позже я понял это но к тому моменту выполнялись уже другие задания. А в это осталось только создать хранилище русских букв и алгоритм подстанова их в места повторов.Так что думаю ПК и правда способен быстро разксорить с приемлемой точностью при вменяемой длине ключа. Проделав все опреации по аналогии с вскрытием шифра виженера, теоретически можно получить ответ.
С форума добровольно уходить не собираюсь так что..давай я освоюсь немного в языке и мы сыграем в эту игру? Что скажешь? Шлем друг другу заксоренный текст и расшифровываем. сейчас я не готов. Я не осилил до конца даже книгу по стандарту от создателя.
0
|
Модератор
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
|
|
26.08.2011, 16:58 | 9 |
И чему же, интересно, это keylen равно будет?
... Дошло! Остальная часть массива нулями инициализируется, всё правильно с этим.
0
|
26.08.2011, 17:07 | 10 |
easybudda, да здесь и выход за границы массива может иметь место... главное, что пример достиг своей цели
0
|
26.08.2011, 17:07 | |
26.08.2011, 17:07 | |
Помогаю со студенческими работами здесь
10
Шифрование XOR без использования оператора ^ Исключающее ИЛИ (XOR). Нужен пример операции побайтного XOR Связующий ид без ключа Связывание таблиц без ключа Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |