Хэш-функция без ключа

Хэш-функция

можно

Чтобы сэкономить время:, где H(m) – хэш-функция (сжимает сообщение), (m, S) – сообщение незначительно удлиняется.

Что надо?

Мошенник подобрать m1≠m2:.

Предъявить (m1, S) и отказаться от (m2, S).

=> Требование: сложно подобрать 2 различных сообщения с одинаковым значением хэш-функции.

Парольная защита:

Пользователь предъявляет свой идентификатор (Id) и пароль (P).

Требования:

- нельзя восстановить аргумент хэш-функции по значению (хэш-функция – односторонняя функция);

- нельзя подобрать другой аргумент с тем же значением хэш-функции.

Слабая и сильная хэш-функция:

Определение 1: Слабая хэш-функция называется односторонняя функция, где – набор векторов произвольной длины, Vn – набор бинарных векторов длины n над Zn, n – некоторая константа.

* - любые (произвольные) строки.

Свойства:

1) легко вычислить H(x);

2) трудно найти,

Определение 2: Сильная хэш-функция – односторонняя функция, (n – константа) удовлетворяющая свойству 1) и 2’) трудно найти пару x’,

Пара называется коллизией хэш-функции.

Различия сильной и слабой хэш-функции:

1) Коллизий бесконечно много;

2’) => 2) (сильная также является слабой за счет 2-го условия, т.к. найти фиксированные коллизии нельзя).

Атака на свойство 2): есть x; противник перебирает и проверяет на совпадение значения хэш-функции:.

Перебор значений, выглядит как случайный выбор из множества Vn.

До совпадения с H(x) перебор в среднем равен;

=.

Стойкая слабая хэш-функция => =>

=>.

Атака на свойство 2’): перебор значений H(x) до повторения, запоминая все предыдущие.

Парадокс (эффект) близнецов: если случайно выбрать элемент из n, то до первого повторения с вероятностью 0,63 придется перебрать раз.

До первого повтора противник должен перебрать.

С вероятностью 0,63.

Для стойкой сильной хэш-функции

=>.

Следствие: У сильной хэш-функции требования на длину в 2 раза больше чем у слабой.

SHA-1

SHA-2 (расширение значений с 160 до 224,256,384,512)

SHA-3.

Типовая конструкция хэш-функции:

ISO/IEC 10118 1 часть – общая конструкция.

Мериль-Демгард

Обозначения:

- Lh – длина значения H;

- m – аргумент;

- Lm – длина m;

- L1 и L2 – целые числа ϵ Z, Lh ≤ L2;

- – стартовый вектор;

- – шаговая функция хэширования;

- – финальное преобразование.

Алгоритм:

1. m дополняется до кратности L1 бит;

2. разбить дополненную последовательность на блоки m=m1|…|mq: |m1| = L1;

3. определяем стартовое значение H0=IV;

4. для i=1…q, Hi=φ(mi, Hi-1);

5. H(m)=T(Hq)

Для конкретного х необходимо определить:

- L1, L2, Lh;

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

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

- шаговая функция φ;

- финальные преобразования T;

- методы дополнения.

Как правило, L1 = L2 = Lh.

Методы дополнения описаны в ISO/IEC 10118-1, самое простое – дополнение нулями.

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

T: часто T(Hq)=Lm бит Hq, T – односторонняя функция.

φ:

- 10118-2: построение блочного шифра для φ (ГОСТ Р 34.10-94).

- 10118-3: заказные хэш-функции, специально построенные φ

(SHA-1, SHA-2, RIPEMD-*).

- 10118-4: использование модулярной арифметики для φ;

, Ki зависит от.

Для модулярной арифметики:;

Bi строится по m; A – константа; N=pq; e=2.257; MASH-1,-2.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: