Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

шифрование

30K
15 октября 2007 года
Filomat
8 / / 15.10.2007
Пытаюсь реализовать алгоритм шифрования случайными числами.
Из файла читаю блоки данных и вот столкнулся с проблемой:
как блоки данных сложить по модулю 2 с числом?
5
16 октября 2007 года
hardcase
4.5K / / 09.08.2005
операция xor в паскале
и % в си-подобных языках
30K
16 октября 2007 года
Filomat
8 / / 15.10.2007
У меня c++
Тут XOR - это "^"

вот я пишу хотя бы

c='a';
printf("%c",c);
c1 = c ^ 59;
printf("\n%c",c1);
c2 = c1 ^ 59;
printf("\n%c",c2); //получили старое значение


Это если с символом - работает, а если массив данных, то как?
1.8K
16 октября 2007 года
igor_nf
256 / / 13.12.2006
Цитата: Filomat
Это если с символом - работает, а если массив данных, то как?



Ну так в цикле и поксорь:

 
Код:
for(int i = 0, int j = 0; i < index; ++i, ++j) arr[j] = arr ^ foo;
30K
16 октября 2007 года
Filomat
8 / / 15.10.2007
Из алгоритма: "шифруемое сообщение из последовательности слов длины n складывается по модулю 2 со случайными числами"

Вот и прошу совета, как их сложить
5
16 октября 2007 года
hardcase
4.5K / / 09.08.2005
Цитата: Filomat
У меня c++
Тут XOR - это "^"

Тьфу блин, очепятался с символом.... % этож взятие остатка деления.

Дело вот в чем. Для шифрования ты генерируешь последовательность случайных чисел. Если длина сообщения n, то и чисел нужно n штук. И каждый символ сложить по модулю 2 со "своим" случайным числом.

Для расшифровки ты должен снова сгенерировать ТАКУЮ ЖЕ последовательность случайных чисел. Повторное сложение по модулю 2 приведет к расшифровке сообщения.

Для получения таких вот последовательностей (псевдо)случайных чисел существуют так называемые регистры сдвига, о них лучше почитать в спец. литературе.

2.2K
17 октября 2007 года
e1vin
153 / / 04.06.2006
Hardcase, а Вы ничего не путаете? Каким образом сдвиговый регистр относится к программированию и, тем паче, к генерированию псевдослучайной последовательности чисел?
5
17 октября 2007 года
hardcase
4.5K / / 09.08.2005
Цитата: e1vin
Hardcase, а Вы ничего не путаете? Каким образом сдвиговый регистр относится к программированию и, тем паче, к генерированию псевдослучайной последовательности чисел?



Ответ по этой ссылке.

2.2K
19 октября 2007 года
e1vin
153 / / 04.06.2006
Любопытно. Вся суть кроется в том, что сдвиговые регистры используются для реализации поточного шифра, что вполне логично и понятно. Все проясняет еще и

Цитата:
... поточные шифры больше подходят для аппаратной реализации.



Спасибо за ссылку. Шифрование - очень интересная тема.

Непонятно (а скорее непривычно) было то, что я привык вопсринимать регистр как готовое цифровое устройство (получается, что сдвиговый регистр с известной загруженной в него битовой последовательностью можно назвать конечным автоматом?), а не как часть какого-то алгоритма, но с оглядкой на приведенную цитату все становится ясно.

Спасибо за инфу еще раз :)

5
20 октября 2007 года
hardcase
4.5K / / 09.08.2005
Цитата: e1vin
получается, что сдвиговый регистр с известной загруженной в него битовой последовательностью можно назвать конечным автоматом?

Все верно. Если период сдвигового регистра K, то он представляет собой конечный автомат с K состояниями; на каждом такте работы он переходит в новое состояние - порождает новое число.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог