LINUX.ORG.RU

RC5-Блочный алгоритм. Нужно ли подмешивать соль в пароль, если шифруются известные данные?


0

1

И снова здравствуйте.

Продолжаю разбираться с алгоритмом RC5. Возник такой вопрос.

Предполагается шифровать одним и тем же паролем (точнее, ключем) около сотни файлов. Причем, содержимое этих файлов, как минимум первые несколько десятков байт, будут известны атакущему в открытом виде, они представляют собой следующий HTML-код:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head>...

Всвязи с чем криптостойкость шифрования сильно снижается.


Вопрос 1. Имеет ли смысл при шифровании каждого файла добавлять к ключу «соль», хранимую в открытом виде? Или это никак не повлияет на подбор ключа?

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

2. XOR ить солью все данные, соль записывать вначало файла. Как один из вариантов.

mashina ★★★★★ ()

1. Имеет смысл.
2. Увеличь число раундов. Сдвинь начало данных на длину ключа. Например.

32/12/12 для практических нужд должно быть более чем достаточно.

yaws ()
Ответ на: комментарий от elverion

А нафига? CBC требует вектор инициализации, он и будет солью.

Точно. Просто в примере http://people.csail.mit.edu/rivest/Rivest-rc5rev.pdf в описании алгоритма RC5 вообще нет вектора инициализации.

Да и CBC реализуется у них как-то странно, не через XOR с предыдущим блоком, а через остаток от деления первого слова предыдущего блока:

// ct[] - before crypt block
for (j=0;j<b;j++) 
 key[j] = ct[0]%(255-j);

Кстати, я оставил именно такой алгоритм CBC. Но вот думаю, может действительно переделать на XOR с предыдущим блоком?

pat_minus ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.