![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() |
18192123 |
![]()
Сообщение
#1
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Задание состоит в следующем:
Написать программу, реализующую алгоритм потокового шифрования содержимого текстового или двоичного файла. Программа должна запрашивать имя входного и выходного файлов, представление образующего многочлена и инициализирующее значение. Разрядность РСЛОС должна быть меньше или равной максимальной разрядности стандартных целочисленных типов данных (64 бит). Вот на чём основываюсь (см. прикреплённый документ).. Как я поняла, основная задача - сгенерировать поток ключей..для этого и применяется РСЛОС (регистр сдвига с линейной обратной связью).. Есть некоторые вопросы по реализации: Пусть пользователь ввёл представление образующего многочлена, инициализирующее значение.. Используя эту информацию нужно некоторый n-битный регистр сдвига обинициализировать (и первый вопрос: как это осуществить?? что за инициализирующее значение задавать??)..чтоб в дальнейшем получать новый бит, выполняя XOR над определёнными битами.. Объясните, пожалуйста! Эскизы прикрепленных изображений ![]() |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Нет, в Билдере этот тип называется __int64... Менять надо и тип uL и тип ShiftRegister... Но просто замена ничего не даст, LFSR по-прежнему будет возвращать одни нули... Надо инициализировать регистр сдвига другим значением. У меня при ShiftRegister = 134 все нормально закодировалось...
|
18192123 |
![]()
Сообщение
#3
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 920 Пол: Женский Реальное имя: Марина Репутация: ![]() ![]() ![]() |
Нет, в Билдере этот тип называется __int64... Менять надо и тип uL и тип ShiftRegister... Но просто замена ничего не даст, LFSR по-прежнему будет возвращать одни нули... Надо инициализировать регистр сдвига другим значением. У меня при ShiftRegister = 134 все нормально закодировалось... Ясно, спасибо! Вот ещё с чем хочу разобраться:
если в качестве многочлена рассмотреть (32,7,5,3,2,1,0), то по вышеописанному алгоритму, насколько я поняла, XOR будет производиться над всеми битами, включая 32-й...А нам преподаватель объяснял, что XOR-рить нужно биты, исключая разрядность, т.е. в этом примере исключая 32-й бит.. Тогда получается, что у меня должно быть..
Если придерживаться этого, я права в исправлении? или я чего-то недопонимаю.., скажите пожалуйста! Сообщение отредактировано: 18192123 - 23.02.2009 13:55 |
![]() ![]() |
![]() |
Текстовая версия | 18.07.2025 13:02 |