IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Потоковое шифрование данных, C++ Builder 6
сообщение
Сообщение #1


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Задание состоит в следующем:

Написать программу,
реализующую алгоритм потокового шифрования содержимого
текстового или двоичного файла. Программа должна запрашивать имя
входного и выходного файлов, представление образующего многочлена
и инициализирующее значение. Разрядность РСЛОС должна быть
меньше или равной максимальной разрядности стандартных
целочисленных типов данных (64 бит).

Вот на чём основываюсь (см. прикреплённый документ)..
Как я поняла, основная задача - сгенерировать поток ключей..для этого и применяется РСЛОС (регистр сдвига с линейной обратной связью)..
Есть некоторые вопросы по реализации:
Пусть пользователь ввёл представление образующего многочлена, инициализирующее значение..
Используя эту информацию нужно некоторый n-битный регистр сдвига обинициализировать (и первый вопрос: как это осуществить?? что за инициализирующее значение задавать??)..чтоб в дальнейшем получать новый бит, выполняя XOR над определёнными битами..

Объясните, пожалуйста!


Эскизы прикрепленных изображений
Прикрепленное изображение
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 920
Пол: Женский
Реальное имя: Марина

Репутация: -  2  +


Большое спасибо!!

Теперь хочу добиться того, чтобы пользователь мог вводить представление многочлена, а не только использовать тот, который прописан на данный момент в функции LFSR..

Вот мои попытки:

int LFSR(TMemo *MemoPolinom)
{
int i=0;
for (int i=0; i<=MemoPolinom->Lines->Count; i++)
{
ShiftRegister ^=(ShiftRegister>>StrToInt(MemoPolinom->Lines->Strings[i]));
}
ShiftRegister&=0x00000001;
ShiftRegister>>StrToInt(MemoPolinom->Lines->Strings[0]);
ShiftRegister|=( ShiftRegister >> 1);
/*ShiftRegister = ( ( ( ( ShiftRegister >> 31)
^ ( ShiftRegister >> 6)
^ ( ShiftRegister >> 4)
^ ( ShiftRegister >> 2)
^ ( ShiftRegister >> 1)
^ ( ShiftRegister ) )
& 0x00000001 )
<< 31)
| ( ShiftRegister >> 1) ;
*/
return ShiftRegister & 0x00000001 ;
}




В итоге программа вылетает на строчке

byte |= (unsigned char)LFSR(MemoPolinom);


с ошибкой "is not a valid integer value"
(в MemoPolinom вводила:

31
6
4
2
1
0

)

Скажите пожалуйста, как исправить...?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
18192123   Потоковое шифрование данных   17.02.2009 0:26
volvo   Ну, так у тебя основное-то как раз и не написано..…   17.02.2009 2:11
18192123   Спасибо за ссылки! Насколько я поняла, с помо…   17.02.2009 3:26
volvo   Может, проще будет забрать сразу 8 бит регистра сд…   17.02.2009 4:16
18192123   Может, проще будет забрать сразу 8 бит регистра с…   17.02.2009 5:25
volvo   Вот это: unsigned char byte = 0; for(int i = 0; i …   17.02.2009 5:38
18192123   Читаю символ из файла, потом идёт формирование бай…   18.02.2009 1:02
volvo   1) зачем понадобилось менять LFSR, да еще таким о…   18.02.2009 2:05
18192123   Спасибо за разъяснение!! Но один вопрос...…   18.02.2009 2:29
volvo   Да, я упустил одну строчку... Добавил в программу …   18.02.2009 2:44
18192123   В процессе тестирования появился ещё вопрос.. По и…   18.02.2009 3:04
volvo   Читаешь исходный файл без контроля ошибок. Добавь …   18.02.2009 3:40
18192123   Большое спасибо!! Теперь хочу добиться т…   18.02.2009 4:37
volvo   У тебя тут 2 ошибки: 1) неравенство НЕстрогое, эле…   18.02.2009 5:31
18192123   Спасибо большое за разъяснение!!   18.02.2009 20:10
18192123   Здравствуйте! У меня вот такой вопрос: с помощ…   21.02.2009 4:25
volvo   Зачем здесь CreateProcess? Можно же открыть средст…   21.02.2009 5:09
18192123   В процессе тестирования наткнулась на ошибки... Ес…   23.02.2009 4:05
volvo   Ну, скорее всего в том, что надо открывать файлы, …   23.02.2009 6:07
18192123   Ну, скорее всего в том, что надо открывать файлы,…   23.02.2009 15:10
volvo   Проблема в разрядности... unsigned long - это 32 б…   23.02.2009 16:07
18192123   Тогда уж надо использовать int64_t, там по крайн…   23.02.2009 16:26
volvo   Нет, в Билдере этот тип называется __int64... Меня…   23.02.2009 16:50
18192123   Нет, в Билдере этот тип называется __int64... Мен…   23.02.2009 17:54
volvo   Стоп, стоп... Если ты используешь __int64, то разр…   23.02.2009 18:08
18192123   Стоп, стоп... Если ты используешь __int64, то раз…   24.02.2009 0:57
volvo   По алгоритму так. Все дело - в том, что первый …   24.02.2009 1:16
18192123   первый & используется в процессе составления …   24.02.2009 1:28
volvo   Так... Это, похоже, неправильная функция. Правильн…   24.02.2009 2:28
18192123   // Сдвигаем этот бит вправо на _сколько нужно_ …   24.02.2009 3:08
18192123   // И возвращаем последний бит этого нового SR к…   24.02.2009 3:29
18192123   int LFSR(TMemo *MemoPolinom) { // Оставляем толь…   24.02.2009 4:22
volvo   Влево, влево надо сдвигать... Код правильный, в ко…   24.02.2009 3:26
volvo   Это будет младший бит (LSB), почему левый? Ясно же…   24.02.2009 3:34
volvo   В статье написано, что . Ты об этом? Единственное,…   24.02.2009 5:12
18192123   В статье написано, что..... Ты об этом? Тогда дей…   24.02.2009 6:51
volvo   Нет уж, ты все-таки сделай так, как надо, а не так…   24.02.2009 13:46


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 11.09.2025 12:20
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name