|
1 / 1 / 0
Регистрация: 06.09.2018
Сообщений: 40
|
|||||||||||
Регистр сдвига c линейной обратной связью12.09.2018, 13:21. Показов 11896. Ответов 48
Метки нет (Все метки)
Есть код -шифрование с помощью регистра сдвига c линейной обратной связью , который считывает правильно ,правильно выводит в консоль и расшифровывает правильно.
Но вместо вывода в шифрованом виде выводит ???? В чем проблема?
0
|
|||||||||||
| 12.09.2018, 13:21 | |
|
Ответы с готовыми решениями:
48
Регистр сдвига с линейной обратной связью Шифровальщик по принципу регистра сдвига c линейной обратной связью не работает с русским текстом Служба Windows с фоновой работой и обратной связью |
|
1 / 1 / 0
Регистрация: 06.09.2018
Сообщений: 40
|
|
| 18.09.2018, 14:10 [ТС] | |
|
Элд Хасп, Да, работает. Я заменил три строки и работает как у вас. Теперь вопрос, как реализовать это - Программа должна запрашивать имя входного и выходного файлов, представления создаваемого многочлена и инициализующее значение. Разрядность РЗЛЗЗ(этого шифра с сдвигом) должна быть меньше или равна максимальной разрядности стандартных целочисленных типов данных (64 бит).
0
|
|
|
Модератор
|
|
| 18.09.2018, 14:12 | |
|
К стати по условиям задания, какой длины должен быть ключ? Я сделал здесь любой длины кратной 8, т.е. состоящий из любого количества байтов. Если ключ сделать кратным 32, 64, 128 и более битам, то желательно методы переделать - так обработка побайтно сильно снижает скорость.
0
|
|
|
1 / 1 / 0
Регистрация: 06.09.2018
Сообщений: 40
|
|
| 18.09.2018, 14:12 [ТС] | |
|
Хм, сейчас гляну
0
|
|
|
Модератор
|
|
| 18.09.2018, 14:18 | |
|
Поняли же как вводить ключ? Введите 64 бита ключа.
Поток который надо зашифровать/расшифровать (это же зеркальный метод, насколько помню?) передаёте методу Encrypt. Он возвращает Вам зашифрованный/расшифрованный поток.Добавлено через 2 минуты Зашифрованный поток Вы не сможете вывести в символьном виде. Надо выводить побайтно в шестнадцатеричном коде. Поэтому для сравнения, входной поток надо вначале показать в символьном виде, потом в шестнадцатеричном коде.
0
|
|
|
1 / 1 / 0
Регистрация: 06.09.2018
Сообщений: 40
|
|
| 18.09.2018, 14:19 [ТС] | |
|
Элд Хасп, Мы же используем только 64 бита, ибо ключ становится регистром - ключ переводим в биты и это становится нашим начальным регистром . Он принимает не больше 64, можно сделать хоть динамическим его
Примеры для многочленов (16, 5, 3.2, 0) (32, 7, 6, 2, 0) (45, 4, 3, 1, 0) (63, 1, 0)
0
|
|
|
Модератор
|
||||
| 18.09.2018, 14:24 | ||||
|
Добавлено через 2 минуты Добавлено через 1 минуту Добавлено через 31 секунду Для функции обратной связи регистра?
0
|
||||
|
1 / 1 / 0
Регистрация: 06.09.2018
Сообщений: 40
|
|
| 18.09.2018, 14:26 [ТС] | |
|
Элд Хасп, То, что я описывал выше. Само условие программы
Программа должна запрашивать имя входного и выходного файлов, представления создаваемого многочлена и инициализующее значение. Разрядность РЗЛЗЗ(этого шифра с сдвигом) должна быть меньше или равна максимальной разрядности стандартных целочисленных типов данных (64 бит).
0
|
|
|
1 / 1 / 0
Регистрация: 06.09.2018
Сообщений: 40
|
|
| 18.09.2018, 14:44 [ТС] | |
|
Элд Хасп, Похоже на то . Вот по методичке
Для того чтобы конкретный РЗЛЗЗ имел максимальный период (то есть циклически проходил через все 2^(n) -1 внутренних состояний), многочлен, образованный из отводной последовательности, должен быть примитивным, то есть не разлагаться в произведение многочленов меньшей степени. Некоторые примитивные исполнительные многочлены приведены в табл. 1.1. Перед запуском РЗЛЗЗ при шифровании или дешифровании, регистр необходимо инициализировать одним и тем же значением Добавлено через 6 минут Элд Хасп, Вот для чего многочлены Для того, чтобы определить какие манипуляции проводим с регистром, чтобы в регистре сделать новый бит. То есть если многочлен представлен в виде чисел по спадания через запятую (7,3,0) Первую игнорируем - оно означает длинну регистру. А следующие - какие елементы регистра ксорим, чтобы получить новый бит. Если 7,3,0, то ксорим 3 и 0 елемент регистра, сдвигаем регистр вправо Правый крайний елемент - то что будет на выходе на этом такте из регистра - мой ключ, бит А новый созданный бит после ксора 3 и 0 елемента регистра - засосываем в самый левую ячейку регистра
0
|
|
|
Модератор
|
||||
| 18.09.2018, 14:59 | ||||
FeedbackBit. Если Вам нужен функционал по изменению этой функции, то замените FeedbackBit на делегат и передавайте функцию в параметрах.Добавлено через 6 минут Если надо по иному, то переделайте методы отвечающие за представления ToStringBinary() и ToStringHex().Добавлено через 6 минут Т.е это как в квадратном уравнении a*x^2 + b*x + с = 0, если a=0, то это уже не квадратное уравнение.
0
|
||||
|
1 / 1 / 0
Регистрация: 06.09.2018
Сообщений: 40
|
||
| 18.09.2018, 15:01 [ТС] | ||
|
Элд Хасп, Хорошо. Как я понял разрядность мы задаем сами в зависимости от нашего ключа из 0 и 1
Для входного файла постараюсь переделать как вы сказали, а выходной файл - т.е инициализирующее значение? Добавлено через 2 минуты
0
|
||
|
Модератор
|
||
| 18.09.2018, 15:11 | ||
|
На своём примере, я проверял. Для 8 битов -даёт максимальный период - 255 шагов, для 16 - битов почти максимальный > 63 тысяч. Для большего количества битов - не запускал.
0
|
||
|
1 / 1 / 0
Регистрация: 06.09.2018
Сообщений: 40
|
|
| 18.09.2018, 15:14 [ТС] | |
|
Элд Хасп, Ну да ладно, я завтра разберусь с этим до конца. Так , а что в вашем коде является выходным файлом, т.е инициализирующим значением. Его то по программе тоже надо вводить мне ручками
0
|
|
|
1 / 1 / 0
Регистрация: 06.09.2018
Сообщений: 40
|
||
| 18.09.2018, 21:06 [ТС] | ||
|
Добавлено через 5 часов 16 минут Элд Хасп, Оно то делает, что описывает. Но мне то нужно сделать консольный или оконный дополнение, что реализует описанный алгоритм потокового шифрования на базе этого шифра для шифрования cодержимого текстового или исполняемого файла. То есть я задаю текст и оно шифрует с помощью этих самых сдвигов на основе многочлена
0
|
||
|
Модератор
|
||||||
| 19.09.2018, 00:23 | ||||||
|
Посмотрите как делает. Возьмите оттуда что надо. Сделал ещё класс регистра на 64 бита.
Консольный метод
0
|
||||||
|
Модератор
|
||||||
| 19.09.2018, 00:44 | ||||||
|
Классы регистров: массив байтов и ulong (64 бита). И метод вывода потока в шестнадцатеричном коде.
Кстати, дополнил ещё возможностью задания функции обратной связи. Передаются как делегат при создании регистра третьим параметром. Функция получает как параметр текущее значение регистра типа ulong, возвращает значение обратной связи в типе ulong. Можно формировать не только старший бит, а значения обратной связи для всех битов. Такие функции тоже есть.
0
|
||||||
|
1 / 1 / 0
Регистрация: 06.09.2018
Сообщений: 40
|
|
| 19.09.2018, 12:37 [ТС] | |
|
Элд Хасп, Вот так
0
|
|
|
1 / 1 / 0
Регистрация: 06.09.2018
Сообщений: 40
|
|
| 19.09.2018, 13:11 [ТС] | |
|
Элд Хасп, немного лучше, но все же где ошибка
0
|
|
| 19.09.2018, 13:11 | |
|
Регистр сдвига с линейной обратной связью Линейный рекуррентный регистр сдвига с обратной связью, реализация на python Линейный регистр с обратной связью Помогите с обратной связью связью Гаммирование с обратной связью Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
|
Скрипты 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: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|