Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КМЗИ 7 лекции.doc
Скачиваний:
1
Добавлен:
17.04.2019
Размер:
2.74 Mб
Скачать

2.4.2 Конструкция хф

ИСО/МЭК 10118-1 задается общая конструкция ХФ. |m|=Lm, |H(m)|=Lh.

1) дополнить структуру m до длины, кратной длине L1(длина блока n) для того, чтобы после «резать» равными частями;

2) Разбить дополненную последовательность на блоки m=m1||m2||…||mq;

3) определяем стартовой значение H0=IV – строка длины L2, H1Hq:|Hi|=L2, Hi=φ(mi; Hi-1);

4) H(m)=T(Hq), T:

Для определения ХФ, определенной стандартом, необходимы условия:

  1. выбрать L1, L2, Lh;

  2. метод дополнения L1;

  3. стартовый вектор IV;

  4. определение φ-шаговая функция;

  5. Финальные преобразования T;

  6. Padding – методы дополнения

L1 и L2 выбираются равными, и часто это значение равно Lh.

IV выбирается либо нулевой, либо заранее оговоренное значение.

Методы дополнения описаны в 10118-1, самый простой «Метод нуля».

Дополнение нулями при отсутствии финального преобразования приводит к тому, что значение ХФ без дополнения равно ХФ с дополнением до кратности.

Для того, чтобы противостоять этой атаки необходимо подать на вход длину сообщения.

Финальное преобразование часто опускаются, что приводит к атаке добавления сообщения.

ISO/IEC 10118-2 посвящен использованию построения алгоритма шифрования φ.

ki зависит от Hi-1, mi добавляется для того, чтобы избежать атаки на ХФ.

Этот вариант применим, когда уже есть реализация схемы шифрования.

В ISO/IEC 10118-3 сформулировано изготовление φ, т.е. специально для этой цели. «Заказные» ХФ. Приведены ХФ для следующих стандартов: SHA – 1(160бит), SHA – 256, SHA – 512, SHA – 384, RIPEMD – 128, RIPEMD – 160.

В ISO/IEC 10118-4 предлагается использовать в значениях ХФ модулярную арифметику. Предлагает вычислять φ следующим образом

(1), где A=const.

- mi расшифровывается в два раза – Bi;

- каждый полубайт mi дополняется полубайтом, состоящим из единиц (1111)2;

- N произведение 2-х больших;

- е рекомендуется выбирать е или 257

Единственное достойинство модулярной арифметики в том, что она может быть удобной.

Идея: - отказались и перешли к (1) из-за того, что для «идеи» нашли много атак.

(1) – окончательный вариант.

2.4.3 Хф гост р 34.10-94

Lk=256, L1=L2=256; .

Шаговая функция хэширования χ(М,Н):

- генерация ключей, которые зависят от М и Н;

- перемешивание.

Шифрование: (М, Н, Кi(i=1,…,4)). H=h1||h2||h3||h4, |hi|=64

- шифруется в режиме простой замены, блочным шифром ГОСТ 28147.

S=s1||s2||s3||s4, || - конотенация.

Перемешивание: . , где , . 16 битовых регистров сдвига

, где 12 и 61 показывают сколько раз повторить каждую операцию.

Описание самой ХФ

М – сообщение;

Mr – остаток - оставшаяся необраотанная часть сообщения М;

Мр – префикс – остаток на очередном этапе;

Мs – суффикс – буфер, который обрабатывается на очередном этапе;

Н – текущее значение ХФ(накопитель результата);

- контрольная сумма;

L – длина сообщения.

|Н|=256, | |=256, |L|=256.

На каждом шаге алгоритм работает с Mr от предыдущего. В Н записывается некоторое стартовое значение, заранее неоговоренное.

  1. Mr=M, H=IV, =0, L=0;

  2. Пока Mr>256 => выполняются 3)-7);

  3. Мr=Mp||Ms;

  4. H=χ(Ms,H);

  5. L=L+256(mod2256);

  6. ;

  7. Mr=Mp;

  8. Иначе выполняются 9)-14);

  9. Модификация длины L=L+|Mr|;

  10. Дополняются нулевыми битами до 256 бит, M’=0…0||Mr, |M’|=256;

  11. - изменение контрольной суммы;

  12. H=χ(M’,H);

  13. H=χ(L,H) – учет длины;

  14. H=χ( ,H) – учет контрольной суммы.

Н(М)=Н

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]