|
0 / 0 / 0
Регистрация: 06.11.2021
Сообщений: 5
|
||||||
Шифрование последовательности из 64 символов с использованием гаммирования квадратичным конгруэнтным методом12.11.2021, 20:04. Показов 2158. Ответов 7
Метки нет (Все метки)
Здравствуйте, помогите, пожалуйста, решить задание на шифрование методом гаммирования на ассемблере 32-bit MCUs (PIC32). Не могу понять. как реализовать(((
Задание звучит следующим образом: "Шифрование последовательности из 64 символов с использованием гаммирования. Для генерации гаммы использовать квадратичный конгруэнтный метод (16-ти битная реализация)". Для данного метода прикрепляю необходимую формулу. Для данного задания есть пример кода с другим методом XORshift (пример реализации генератора псевдослучайной последовательности методом XORshift, являющимся подклассом алгоритмов ГПСЧ на основе регистра сдвига с линейной обратной связью. Алгоритм на пcевдокоде для 16-ти битных регистров с циклом в (2^32)-1 (то есть, через 2^32 значений последовательность начнет повторяться).)
0
|
||||||
| 12.11.2021, 20:04 | |
|
Ответы с готовыми решениями:
7
Шифрование символьной информации мультипликативным конгруэнтным методом Шифрование методом гаммирования
|
|
4042 / 2654 / 582
Регистрация: 11.09.2009
Сообщений: 9,486
|
||
| 14.11.2021, 10:54 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 06.11.2021
Сообщений: 5
|
|
| 14.11.2021, 17:46 [ТС] | |
|
i8085, я не понимаю, в чем смысл метода гаммирования и его реализации через квадратичный конгруэнтный метод, каким образом должна закодироваться моя входная строка в результате. Я уже читала много информации, но и написать код я не могу, не зная, что получу на выходе для начала даже аналитически, а не через код.
0
|
|
|
4042 / 2654 / 582
Регистрация: 11.09.2009
Сообщений: 9,486
|
||
| 14.11.2021, 18:30 | ||
|
"Начальное значение, которое является "зерном" алгоритма" - это число-ключ. Шифратор и дешифратор начинают генерирование псевдослучайных байтов с этого числа, по одному и тому же алгоритму, поэтому будут иметь одну и ту же последовательность псевдослучайных байтов, что и позволяет расшифровать зашифрованное. Собственно шифрация и дешифрация обычно осуществляется операцией XOR очередного байта шифруемой (или дешифруемой) последовательности с очередным байтом псевдослучайной последовательности. А два раза (один раз при шифровании, второй - при дешифровке) операция XOR с одним и тем же байтом - получим тот же, неизменённый байт. Например: Шифрование. 0A 67 3B - исходная последовательность 77 29 65 - псевдослучайная последовательность 7D 4E 5E - результат XOR - зашифрованная последовательность Дешифрование. 7D 4E 5E - входная последовательность 77 29 65 - псевдослучайная последовательность 0A 67 3B - результат XOR - исходная последовательность
1
|
||
|
0 / 0 / 0
Регистрация: 06.11.2021
Сообщений: 5
|
||||||
| 14.11.2021, 19:54 [ТС] | ||||||
|
i8085, то есть сам квадратичный конгруэнтный метод - это так называемый ключ для кодируемой последовательности символов, а само кодирование будет осуществляться через операцию XOR?
По формуле квадратичного конгруэнтного метода a,b, d и m я могу взять любые числа, как константы? Какие коэффициенты разумнее подобрать при этом, подойдет m=10, X0=a=d=7, b=6? Добавлено через 53 минуты Я написала, но не уверена в правильности, и у меня почему-то в результате не выводится ни входная, ни выходная строка (в окне Data Memory)
0
|
||||||
|
0 / 0 / 0
Регистрация: 06.11.2021
Сообщений: 5
|
||||||
| 15.11.2021, 21:32 [ТС] | ||||||
|
Тот вариант кода неверен, этот тоже под вопросом
0
|
||||||
|
4042 / 2654 / 582
Регистрация: 11.09.2009
Сообщений: 9,486
|
||
| 15.11.2021, 23:02 | ||
|
Ваш код проверить на работоспособность не могу, да и глубоко вникать нет ни желания, ни времени, хотя в принципе понимаю, что написано. Ну разве кроме некоторых мнемоник, типа "mfhi, lb, la". Но код нечитаемый. Было бы гораздо легче беглым взглядом пробежаться по коду и увидеть сомнительные места, если бы вы каждой строчке написали коментарий, - что в ней происходит, какой указатель или переменная изменяется (с её нормальным названием), чему становится равна... Отслеживать регистры по номерам, в каком что находится - это бумагу надо брать, записывать, мозг напрягать... Да и скорее всего, если так сделаете, то сами быстрее найдёте, если где есть ляпы, чем на форуме кто-то разглядит. ![]() Вот например, хотел разглядеть и не смог, где задаётся значение ключа, не понял, зачем внутри цикла каждый раз установка начальных значений $s4-$s7, хотя они далее не изменяются, почему цикл lab_1: называется "Указатель на квадратичный конгруэнтный метод", хотя в нём производится вычисление полинома и (де)кодирование очередного символа, из указателей там только указатели на строки, в $s3 у вас один или два символа? "$s3" - это регистр или строка? Почему потом двойная проверка на конец строки, текущего и следующего символа, и оба сравниваются с $s3? ...
0
|
||
|
0 / 0 / 0
Регистрация: 06.11.2021
Сообщений: 5
|
|
| 16.11.2021, 00:01 [ТС] | |
|
i8085, спасибо большое, в теме уже разобрались. Да, действительно, в данном коде много недочетов, но вы натолкнули на верную мысль. Еще раз благодарю!
0
|
|
| 16.11.2021, 00:01 | |
|
Помогаю со студенческими работами здесь
8
Шифрование методом гаммирования Шифрование методом гаммирования Шифрование методом гаммирования Шифрование методом гаммирования Шифрование методом гаммирования Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|