1779 / 757 / 153
Регистрация: 03.06.2009
Сообщений: 5,937
|
||||||
Обратная функция13.07.2020, 19:15. Показов 688. Ответов 8
Метки нет Все метки)
(
Здравствуйте, уважаемы форумчане! Исследую одну древнюю программулину и наткнулся на такой алгоритм расшифровки. Может кто-нибудь подсказать как для этого алгоритма получить обратный, то есть алгоритм шифрования? А то я совсем слаб в крипте( Посоветовали еще написать в раздел криптографии.
Формально задача решена брутфорсом. В четыре потока перебирает все комбинации в пределах часа, но если кто-то знает как это решать "красиво", имею ввиду получить алгоритм шифрования, подскажите)
0
|
13.07.2020, 19:15 | |
Ответы с готовыми решениями:
8
Функция, обратная факториалу для огромного числа Обратная польская запись Обратная Польская Нотация |
205 / 142 / 57
Регистрация: 25.12.2014
Сообщений: 447
|
|
14.07.2020, 18:47 | |
Общий принцип такой. Чтобы получить из алгоритма расшифровки алгоритм шифрования, нужно записать команды преобразования в обратном порядке и каждую такую команду заменить на обратную. Здесь у нас 2 цикла: сначала loc_1A0:..., потом loc_1BF: . Переставляем их местами. В каждом цикле заменяем порядок перебора на обратный: вместо sub si, 2 будет add si, 2 и наоборот. И конечно начальное значение si нужно в обоих случаях заменить на конечное. Команды преобразования АХ в теле каждого цикла записываем в обратном порядке и заменяем на обратные. Вместо ADD будет SUB, ROL <->ROR. А вот XOR обратна сама себе, так что она так и останется.
0
|
205 / 142 / 57
Регистрация: 25.12.2014
Сообщений: 447
|
|
14.07.2020, 19:49 | |
Black Fregat, верно. Вернее, верно насчет DX. Значение СХ задается константой, уменьшается на 1 командой LOOP и нигде больше не меняется, тут никаких сложностей. А вот "xor ax, dx / add dx, ax" меняет DX при помощи АХ. Вот это основная трудность.
0
|
1779 / 757 / 153
Регистрация: 03.06.2009
Сообщений: 5,937
|
|
14.07.2020, 20:04 [ТС] | |
Я так все и сделал, подбирал значения в концах раундов при помощи обратных операций, все работает. Но цитата из Википедии вселила в меня надежду, что есть более простой способ: "К достоинствам блочных шифров относят сходство процедур шифрования и расшифрования, которые, как правило, отличаются лишь порядком действий. Это упрощает создание устройств шифрования, так как позволяет использовать одни и те же блоки в цепях шифрования и расшифрования." Ведь в том же AES/DES есть четкий алгоритм как шифрования, так и расшифрования, вот и подумал, может найдется светлая голова, которая додумается как из алгоритма расшифровки получить алгоритм шифрования)
0
|
1779 / 757 / 153
Регистрация: 03.06.2009
Сообщений: 5,937
|
|
15.07.2020, 09:04 [ТС] | |
TrueTerm, я думаю, это векторы инициализации.
0
|
15.07.2020, 09:04 | ||||||
Помогаю со студенческими работами здесь
9
Обратная задача Джозефуса Обратная польская запись Обратная функция NZ Обратная функция Обратная функция Искать еще темы с ответами Или воспользуйтесь поиском по форуму:
|
|
Новые блоги и статьи
![]() |
||||
Как работает Node.js изнутри
run.dev 29.03.2025
Node. js изменил подход к разработке веб-приложений, позволив использовать JavaScript не только на стороне клиента, но и на сервере. Созданный в 2009 году Райаном Далем, этот открытый,. . .
|
Моки в Python: Mock Object Library
py-thonny 29.03.2025
Тестирование кода требует особого подхода, когда речь идёт о компонентах, взаимодействующих с внешним миром. Мы часто сталкиваемся с непредсказуемостью HTTP-запросов, чтением данных из базы или. . .
|
JavaScript: Управление памятью и улучшение производительности
run.dev 29.03.2025
В отличие от низкоуровневых языков программирования, JavaScript не требует ручного выделения и освобождения памяти. Здесь работает автоматический сборщик мусора, который определяет, какие объекты. . .
|
Мультитенантная архитектура со SpringBoot и PostgreSQL
ArchitectMsa 29.03.2025
SaaS-приложения редко обслуживают одного клиента и обычно они должны поддерживать множество организаций, каждая из которых работает в своём изолированном пространстве. Мультитенантная архитектура. . .
|
std::span в C++: Производительность и лучшие практики
NullReferenced 28.03.2025
std::span — одно из самых недооценённых нововведений стандарта C++20, которое радикально меняет подход к работе с непрерывными последовательностями данных. По сути, это невладеющее представление. . .
|
Многопоточность в C#: Threadpool
UnmanagedCoder 28.03.2025
Пул потоков в C# — это коллекция заранее созданных и готовых к использованию потоков, которые находятся в распоряжении приложения. Вместо того чтобы создавать и уничтожать потоки для каждой небольшой. . .
|
Вопросы на собеседованиях по микросервисам
ArchitectMsa 27.03.2025
Работодатели ищут не просто разработчиков, знающих базовые концепции, а специалистов, разбирающихся в тонкостях масштабирования, отказоустойчивости и производительности. Сейчас на первый план выходят. . .
|
Взаимодействие Python с REST API
py-thonny 27.03.2025
REST API - это архитектурный стиль взаимодействия компонентов распределённого приложения в сети. Python располагает функциональным набором инструментов для работы с REST API и основная библиотека для. . .
|
sshd restrictions, ssh access limitations
jigi33 26.03.2025
sshd restrictions | ssh access limitations
рестрикции доступа на сервер sshd
статья:
https:/ / www. golinuxcloud. com/ restrict-allow-ssh-certain-users-groups-rhel
|
Компиляция C++ с Clang API
NullReferenced 24.03.2025
Компиляторы обычно воспринимаются как черные ящики, которые превращают исходный код в исполняемые файлы. Мы запускаем компилятор командой в терминале, и вуаля — получаем бинарник. Но что если нужно. . .
|