The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"RC5-Блочный алгоритм. Как шифровать данные произвольной длинны?"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Информационная безопасность (Шифрование, SSH, SSL / Linux)
Изначальное сообщение [ Отслеживать ]

"RC5-Блочный алгоритм. Как шифровать данные произвольной длинны?"  +/
Сообщение от xintrea email(ok) on 11-Май-11, 15:51 
Здравствуйте!


Нужно мне в свою C++ программу вставить шифрование файла с помощью RC5. Алгоритм открытый, примеров с реализацией шифрования одного блока много.

Описание на руском: http://ru.wikipedia.org/wiki/RC5
Теория на английском: http://theory.lcs.mit.edu/~rivest/Rivest-rc5rev.pdf
Исходник с примером: http://paste.org.ru/?f8go6z

Данный исходник подходит для шифрования двух 32-х битных слов (двух WORD).


Вопрос. А как шифровать байтовый поток данных произвольной длинны?

Например, имеем 20 байт.
1. Выделяем первые 8 байт, шифруем ключем.
2. Выделяем следующие 8 байт, шифруем тем же ключем.
3. Выделяем следующие 4 байта, дополняем нулями, шифруем тем же ключем.

Так чтоли? То есть получается, что одинаковый набор символов, кратный 8 байтам и выровненный на 8 байт, будет в зашифрованном виде представляться одной и той же зашифрованной последовательностью?


Пример на пальцах. Имеем поток ASCII-кодов следующих символов (условно разбит на строки):

ABCDEFGH
djkfhdfk
ABCDEFGH
pouwerbe

Зашифрованный поток будет иметь, к примеру, такой HEX-вид:

65C178B284D197CC
2F42B3B70369FC92
65C178B284D197CC
F7C013AC5B2B8916

То есть, первая и третья зашифрованные строки будут одинаковы. Так и должно быть? Или я неправильно понял, как надо использовать этот алгоритм?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "RC5-Блочный алгоритм. Как шифровать данные произвольной длинны?"  +/
Сообщение от Andrey Mitrofanov on 11-Май-11, 17:28 
> Описание на руском: http://ru.wikipedia.org/wiki/RC5

http://ru.wikipedia.org/wiki/%D0%A0%D0%B...

> Вопрос. А как шифровать байтовый поток данных произвольной длинны?
> Так чтоли? То есть получается, что одинаковый набор символов, кратный 8 байтам
> и выровненный на 8 байт, будет в зашифрованном виде представляться одной
> и той же зашифрованной последовательностью?

И менно так и получается, если применять блочный шифр к потоку _в_лоб_.

> То есть, первая и третья зашифрованные строки будут одинаковы. Так и должно
> быть? Или я неправильно понял, как надо использовать этот алгоритм?

Конечно! :)

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "RC5-Блочный алгоритм. Как шифровать данные произвольной длинны?"  +/
Сообщение от Voyagerur (ok) on 13-Май-11, 12:38 
>[оверквотинг удален]
>> Описание на руском: http://ru.wikipedia.org/wiki/RC5
> http://ru.wikipedia.org/wiki/%D0%A0%D0%B...
>> Вопрос. А как шифровать байтовый поток данных произвольной длинны?
>> Так чтоли? То есть получается, что одинаковый набор символов, кратный 8 байтам
>> и выровненный на 8 байт, будет в зашифрованном виде представляться одной
>> и той же зашифрованной последовательностью?
> И менно так и получается, если применять блочный шифр к потоку _в_лоб_.
>> То есть, первая и третья зашифрованные строки будут одинаковы. Так и должно
>> быть? Или я неправильно понял, как надо использовать этот алгоритм?
> Конечно! :)

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

2. "RC5-Блочный алгоритм. Как шифровать данные произвольной длинны?"  +1 +/
Сообщение от ImPressed (ok) on 12-Май-11, 02:32 
>[оверквотинг удален]
> djkfhdfk
> ABCDEFGH
> pouwerbe
> Зашифрованный поток будет иметь, к примеру, такой HEX-вид:
> 65C178B284D197CC
> 2F42B3B70369FC92
> 65C178B284D197CC
> F7C013AC5B2B8916
> То есть, первая и третья зашифрованные строки будут одинаковы. Так и должно
> быть? Или я неправильно понял, как надо использовать этот алгоритм?

Дополнять шифуемое сообщение до длины кратной длине блока блочного шифра или нулями или случайным шумом.  А еще лучше не пользоватьться режимом ECB а пользоваться например CBC или n-битовым OFB.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру