|
23 / 20 / 4
Регистрация: 15.12.2018
Сообщений: 152
|
|||||||||||
Взломать детский шифр17.12.2018, 17:21. Показов 5884. Ответов 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,912
|
||
| 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,912
|
|
| 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,912
|
||
| 24.12.2018, 17:07 | ||
|
0
|
||
| 24.12.2018, 17:07 | |
|
Составить программу шифрования и расшифровки в Delphi по соответствующему заданию: шифр Атбаш + шифр Цезеря Шифр Полибия. Программа выводит шифр в разной последовательности.
Детский сад Детский вопрос: Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|