Для улучшения была придумана схема хеширования паролей:
A B
Pi
Сильная ХФ не обязательна. Противник может извлечь пароль из канала связи.
Система однократных паролей:
Пользователь А, выбирает пароль РA,
;
.
A B
Pi
h=n-1…0, H(Pi)=Pi+1 - ? => запомнить Pi.
Недостатки:
- Решить как помнить Pi - ?
- конечность цепочки Pi;
- синхронизм Pi пользователя сервера;
Наблюдение пароля в канале связи ничего не дает, но если противник владеет каналом связи, то ему все возможно сделать. В этом случае ХФ должна удовлетворять свойствам слабой ХФ.
3) Обеспечение целостности:
(М, Н(М)).
Вопрос: какая хэш-функция используется сильная/слабая.
ЭЦП: .
Для защиты подписываемого сообщения от подмены в канале связи достаточно использовать слабую хэш-функцию.
;
отказ от (m, S);
.
=> Для защиты от отказа следует использовать сильную хэш-функцию.
Парольная защита:
;
;
сервер .
Атака на сервере => ,
H – односторонняя хэш-функция.
Можно: ;
=> Н должна быть слабой.
Обеспечение целостности информации:
(m; H(m))
(m’, h’) >
; =>
;
e – ошибка.
e2 = 0 => (m’,h’);
H(m’)=H(m);
=> хэш-функция должна быть односторонней и слабой.
2.4.2 Хэш-функция с ключом
Определение 1: Код аутентификации сообщения (КАС) – это элемент данных, зависящий от секретного ключа и защищаемой информации позволяющий получателю информации проверить её источник и целостность.
Message Authentication Code (MAC).
2 типа кода аутентификации:
- на основе блочных шифров (CBC, CFB);
- хэш-функция с ключом.
Код аутентификации зависит от секретного ключа, следовательно, симметричная ключевая структура.
Для проверки используется тот же самый симметричный ключ.
=> не может использоваться для неотказуемости.
Определение 2: Хэш-функция с ключом k называется семейство функций hk: V*→Vn (где n – константа; V* - множество битовых строк n произвольной длины; Vn - множество битовых строк |n|), зависящая от параметра k со следующими свойствами:
1) легко вычислить hk(x) при известном k;
2) трудно вычислить hk(x), не зная k.
Используется для обеспечения целостности и аутентификации.
Типовые конструкции:
- На основе хэш-функции с ключом и блочного шифра:
.
- На основе блочного шифра:
Изложено в стандарте ISO/IEC 9797-1.
Строится следующим образом:
1. дополнить до кратности и разбить на x-битные блоки а ;
2. – стартовое преобразование I;
3. ;
4. .
- На основе хэш-функции без ключа:
1. ;
2. ;
3. .
В стандарте ISO/IEC 9797-2 – HMAC описано типовое применение.
,
k0 – k дополненное нулевыми битами до кратности нулевого блока.