|
23 / 20 / 4
Регистрация: 15.12.2018
Сообщений: 152
|
|||||||||||
Взломать детский шифр17.12.2018, 17:21. Показов 6086. Ответов 58
Метки cryptandcod (Все метки)
Всем доброго времени суток, товарищи программеры. Перед тем, как приступить непосредственно к делу, мне хотелось бы поведать небольшую предысторию. Учусь в общеобразовательной школе в 11-м классе (физмат). Со мной есть еще несколько типов, с которыми мы по фанчику постепенно учим криптографию и называем друг друга нумерологами
Мы решили составить свой шифр (на программной основе), который имел бы достаточную стойкость (на уровне 11 класса). (ДЛЯ ЕДКИХ - Я ПРЕКРАСНО ПОНИМАЮ, ЧТО НЕ НАДО ПРИДУМЫВАТЬ НИЧЕГО ИЗ ОБЛАСТИ КРИПТОГРАФИИ, ПОКА У ТЕБЯ НЕТ ХОТЯ БЫ ДОКТОРСКОЙ СТЕПЕНИ ПО МАТЕМАТИКЕ) Но суть в том, чтобы придумать самим, а не использовать уже готовые решения (что-то вроде развития мозгов). Это задание решили отдать мне, т.к. я представляю, как работает сеть Фейстеля. Что касается ключа, было решено, что он должен обладать небольшой длиной, но все же достаточной для того, чтобы малолетки его не перебрали. В качестве идеального варианта взяли 64 бита. Дальше я уже додумывал сам. Это должна быть функция, желательно вызываемая из dll-библиотеки. Шифровать она должна линейный массив байтов, т.к. любой тип данных можно представить массивом байтов. Выдавать для удобства тоже желательно массив байтов. Ключ, как ни странно тоже проще задавать массивом байтов. И для приличия ввел нечто напоминающее iv - массив байтов , равный размеру блока, который тупо ксорится с первым блоком, публикуется открыто и не дает возможности понять, что одним и тем же ключом 2 раза шифровался один и тот же открытый текст. Длина блока 8 байт (как у ключа), шифр целиком представляет собой сеть Фейстеля "в лоб", и с этими мыслями приступил к кодингу (на паскале). Получил следующий код:
- скорость на моем пентиуме порядка 18 Кб/с в обе стороны, что позволяет шифровать текст адекватного размера, но и фотку сожрать тоже может, однако придется подождать - время обработки данных как функция от длины массива возрастает +- линейно, как и должно быть Для самой непосредственной реализации шифрования начеркал такой код (особо не заморачивался):
- шифротекст архиватор не сжимает вообще (так я проверил его на избыточность) - в среднем всех байтов в шифротексте примерно поровну (нормальное распределение) - после шифрования размер массива не увеличивается больше, чем на длину блока (просто разметка дополняет открытый текст нулями до длины, кратной 8, а при расшифровке их выбрасывает) - изменение хотя бы одного байта шифротекста в любой позиции губит весь открытый текст при расшифровке (избыточность каждого байта открытого текста перераспределяется на весь шифротекст) - изменение хотя бы одного байта ключа, как ни странно тоже сказывается плачевноЭтот шифр приняли. Исходник служит одновременно релизом и описанием. Если релиз написан нерационально, прошу не пинать, т.к. писал с нуля и не исключаю, что что-то сделал криво (багов там вроде нет). Пока никто из наших его не взломал. Лично я тоже не представляю, как это можно сделать на практике, и пишу это все для того, чтобы узнать, что по этому поводу скажут прошаренные бородатые дядьки-программеры. Для того, чтобы не вызывать каких-то абстрактных рассуждений, предлагаю дешифровать конкретный файл (зашифрованная фотография .jpg - файл binarnik.bin - прикрепляю в архиве вместе со всеми исходниками). Если кому-то надо, там и SHA256 для расшифрованного файла. iv тоже прилагается. И на всякий случай, фотки в интернете нету - она отснята моим фотоаппаратом и после дешифровки, разумеется, становится общественным достоянием. На адекватные вопросы обязательно отвечу. Всем заранее спасибо.
0
|
|||||||||||
| 17.12.2018, 17:21 | |
|
Ответы с готовыми решениями:
58
Взломать шифр двойной перестановки Взломать шифр Виженера методом частотного анализа |
|
23 / 20 / 4
Регистрация: 15.12.2018
Сообщений: 152
|
|
| 21.12.2018, 18:52 [ТС] | |
|
0
|
|
|
461 / 201 / 80
Регистрация: 14.12.2017
Сообщений: 433
|
|
| 21.12.2018, 18:55 | |
|
Еще раз - почитайте основы.
Ваш этот алгоритм не стойкий по всем признакам. Расшифровывать 1 файл никому это не нужно, потому что 1. в файле картинка, сжатая архиватором. 2. для 8-16 хз сколько там у вас раундов - 1 Мб текста - этого мало. 3. нужен подбор пар ОТ-ШТ и конечно, адекватный алгоритм который можно нормально(!) реализовать без умножения целых числе порядка 10^60 на другом язые программирования. И главное - заинтересованной. Вам нечем заняться? Вот тема - общественно полезная: Шифр телеграмм 1918, Екатеринбург Вот этим стоит заниматься. (если будете заниматься шифром 1918 - пишите в той теме)
0
|
|
|
23 / 20 / 4
Регистрация: 15.12.2018
Сообщений: 152
|
||||||||||||||||
| 22.12.2018, 17:00 [ТС] | ||||||||||||||||
|
Добавлено через 5 минут Добавлено через 3 минуты Добавлено через 2 часа 10 минут ИТАК, ГОСПОДА, ВНИМАНИЕ, ВНИМАНИЕ!!! Пришло время подводить итоги данной темы. На форум был залит исходный код алгоритма шифрования на паскале. Также был прикреплен файл - зашифрованная фотография, которую нужно было дешифровать: Однако предоставленный файл так и не был дешифрован. Тогда были предприняты попытки еще раз донести суть задачи: Ethereal ответил кратко и ясно: Итак, фотография из архива так и не дешифрована. Понятно, что если за шифр возьмутся спецы КГБ/ФСБ/МВД/ГРУ/ЦРУ/АНБ/ТЕПЛОСЕТЬ/КУ-КЛУКС-КЛАН/ШТАЗИ/ГОРЛИФТ/МИ-6/ВОДОКАНАЛ/СС/ЖЭК то шифр вскроют весьма и весьма быстро. Честно говоря, я считал, что этот алгоритм окажется гораздо слабее и какому-то деду с этого форума не составит труда найти в нем фатальную уязвимость, приводящую к его полному краху, а затем без труда дешифровать предоставленный электронный файл. Но раз так... Ключ от шифра выкладывать не стоит Пусть эта фотография не будет дешифрована. Для малолеток этот шифр невскрываем в течение долгих лет, а если кто-то сильно захочет - дешифрует. Обязательно дешифрует. Когда придет время...
0
|
||||||||||||||||
|
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
|
||
| 22.12.2018, 19:32 | ||
|
1
|
||
|
461 / 201 / 80
Регистрация: 14.12.2017
Сообщений: 433
|
|||||||||||||||
| 22.12.2018, 19:39 | |||||||||||||||
|
https://ru.wikipedia.org/wiki/JPEG Алгоримт использует сжатие данных, по сути то же что используют архиваторы. Это по меньшей мене глупо, неудобно и медленно. Что б проанализировать алгоритм придется подключать библиотеки работы с такими числами, "гонять" процессор с кучей не нужных вычислений. Смысл? Допустим что ключ и текст состоит только из чисел от 0 до 9999. Тоесть возьмем только 4 знака. Допустим расширенный ключ это случайные числа 1461, 1551, 2788, 1856, 5654, 9848, 5679, 1632. Теперь допустим что основная функция для сети Фейстеля :
Теперь допустим мы шифруем текст от 0000 0000 до 0099 0099 (правый и левый блок соответственно) Всего будет 10000 вариантов. И что мы получим: Из 20 тыс блоков, практически 9 тыс повторений: например От №1 до
Если нечем заняться, и есть под рукой вычислительные мощности - можете то же самое сделать для чисел от 000000 до 999999, думаю получите тот же результат. Если не убедит и это, отключайте свою майнинг ферму, все равно курс биткоина ниже плинтуса, и прогоните числа от 0000000 до 9999999. И получите тот же результат. А в целом, если интересуетесь числами, то действительно займитесь общественно полезным делом Шифр телеграмм 1918, Екатеринбург В 1918 году не было комп-ра, и там хоть есть шанс сделать что то полезное.
0
|
|||||||||||||||
|
23 / 20 / 4
Регистрация: 15.12.2018
Сообщений: 152
|
|||||||||||||||
| 23.12.2018, 16:33 [ТС] | |||||||||||||||
|
Добавлено через 1 час 2 минуты ![]() В принципе, от навязчивых повторений можно избавиться, если например слепить такое:
![]() Добавлено через 4 минуты ![]() Добавлено через 2 минуты On18, кстати, какую литературу по криптографии советуете почитать? Для систематического изучения?
0
|
|||||||||||||||
|
461 / 201 / 80
Регистрация: 14.12.2017
Сообщений: 433
|
||||||||||
| 23.12.2018, 17:34 | ||||||||||
|
Генераторы не криптостойкие. Опять возведение в 5 степень чисел с 12 знаками. Зачем? Получить число с 60 знаками? И потом отбросить 48? Зачем? Что бы отбить любое желание анализировать алгоритм? Вот это 79813 в а*а*а превращается уже в 508417986020797. ![]() Добавлено через 15 минут
0
|
||||||||||
|
23 / 20 / 4
Регистрация: 15.12.2018
Сообщений: 152
|
||||||
| 23.12.2018, 20:59 [ТС] | ||||||
![]() ![]() А разве это по своей сути эквивалентно? Ведь в коде
0
|
||||||
|
461 / 201 / 80
Регистрация: 14.12.2017
Сообщений: 433
|
||||
| 24.12.2018, 12:50 | ||||
Результат
0
|
||||
|
23 / 20 / 4
Регистрация: 15.12.2018
Сообщений: 152
|
|
| 24.12.2018, 13:44 [ТС] | |
|
0
|
|
|
461 / 201 / 80
Регистрация: 14.12.2017
Сообщений: 433
|
||
| 24.12.2018, 13:47 | ||
|
https://ru.wikipedia.org/wiki/... uncFFF.PNG https://ru.wikipedia.org/wiki/... nction.svg https://ru.wikipedia.org/wiki/KASUMI ![]() И т.д.
0
|
||
|
23 / 20 / 4
Регистрация: 15.12.2018
Сообщений: 152
|
|||||||||||||||||
| 24.12.2018, 14:16 [ТС] | |||||||||||||||||
![]() Добавлено через 6 минут Кстати:
0
|
|||||||||||||||||
|
461 / 201 / 80
Регистрация: 14.12.2017
Сообщений: 433
|
|
| 24.12.2018, 14:23 | |
|
А, там должно быть было х5+х4+х3+х2+х+с.
x * x * x * x * x * 631 + x * x * x * x * 313 + x * x * x * 131 + x * x * 757 + x * 853 + 1483 Не важно, все равно не улучшает результат.
0
|
|
|
23 / 20 / 4
Регистрация: 15.12.2018
Сообщений: 152
|
|||
| 24.12.2018, 14:31 [ТС] | |||
|
Добавлено через 3 минуты А можете прикинуть хотя бы примерно, насколько сложно обратить 1 блок в моем самом первом коде? Можно будет утверждать
0
|
|||
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
|
||
| 24.12.2018, 16:05 | ||
|
Вывод: шифр простой замены - это супер-пупер криптостойкий алгоритм шифрования.
0
|
||
|
23 / 20 / 4
Регистрация: 15.12.2018
Сообщений: 152
|
|
| 24.12.2018, 16:09 [ТС] | |
|
0
|
|
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
|
|
| 24.12.2018, 16:11 | |
|
0
|
|
|
23 / 20 / 4
Регистрация: 15.12.2018
Сообщений: 152
|
||
| 24.12.2018, 16:23 [ТС] | ||
|
0
|
||
|
461 / 201 / 80
Регистрация: 14.12.2017
Сообщений: 433
|
||
| 24.12.2018, 16:39 | ||
|
Но, думаю, если покопаться, можно найти более быстрый способ. Но этим нужно заниматься, составлять уравнения, находить закономерности и т.д. Вопрос только зачем? Используйте https://ru.wikipedia.org/wiki/RC4 предельно простой в реализации и понимании. Довольно современный алгоритм для защиты от школьников. Есть его куча модификаций, делайте свою. Не вопрос.
0
|
||
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
|
||
| 24.12.2018, 17:07 | ||
|
0
|
||
| 24.12.2018, 17:07 | |
|
Составить программу шифрования и расшифровки в Delphi по соответствующему заданию: шифр Атбаш + шифр Цезеря Шифр Полибия. Программа выводит шифр в разной последовательности.
Детский сад Детский вопрос: Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version
Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|