Аутентификация сообщений Евтифеева Ольга 18 октября 2005

advertisement
Аутентификация сообщений
Евтифеева Ольга
18 октября 2005
План доклада
 Постановка задачи
 Отличие задачи аутентификации от задачи секртености
 Основные подходы ее решения
 Аутентификационное шифрование
 Схема аутентификации сообщений
 Код аутентификации сообщений (MAC)
 Надежность для алгоритмов аутентификации
 Наиболее известные схемы аутентификации
2
Постановка задачи
 Задачи аутентификации:
1. Целостность
2. Авторство
3
Постановка задачи
 Задачи аутентификации:
1. Целостность
2. Авторство
 Обозначения:
противник A
получатель R
законный отправитель S
сообщение M
4
Постановка задачи
 Задачи аутентификации:
1. Целостность
2. Авторство
 Обозначения:
противник A
получатель R
законный отправитель S
сообщение M
 Важно! Мы будем всегда считать, что S и R уже имеют общий
секретный ключ K
5
Постановка задачи
 Задачи аутентификации:
1. Целостность
2. Авторство
 Обозначения:
противник A
получатель R
законный отправитель S
сообщение M
 Важно! Мы будем всегда считать, что S и R уже имеют общий
секретный ключ K
 Считаем, что у противника есть возможность изменять
сообщения и вводить новые в канал связи.
6
Секретность не обеспечивает
целостность данных
 Условия:
 Фиксируем симметричную криптосистему SE = (K, E, D)
 M100 = “перевести 100$ на счет A”
 S посылает С100 = EK(M100)
 R получает С100, дешифрует его: M100 = DK(C100)
 Пусть теперь А – в роли противника. Хочет, чтобы S получил
M900 = “перевести на счет А 900$”. Может ли он это сделать?
 Нет, так как не знает ключа К, поэтому не может ни
расшифровать и модифицировать С100, ни самостоятельно
зашифровать C900.
7
Секретность не обеспечивает
целостность данных
 Условия:
 Фиксируем симметричную криптосистему SE = (K, E, D)
 M100 = “перевести 100$ на счет A”
 S посылает С100 = EK(M100)
 R получает С100, дешифрует его: M100 = DK(C100)
 Пусть теперь А – в роли противника. Хочет, чтобы S получил
M900 = “перевести на счет А 900$”. Может ли он это сделать?
 Нет, так как не знает ключа К, поэтому не может ни
расшифровать и модифицировать С100, ни самостоятельно
зашифровать C900. Неверный ответ!
 Да. Возьмем например схему one-time pad (EK(M) = K xor M,
DK(C) = K xor C). Тогда все, что нужно сделать A – С100 xor
M100 xor M900.
8
Основные подходы - 1
 Аутентификационное шифрование.
Аутентификация с использованием схемы шифрования.
Sender
M
Receiver
E
K
K
C’
C
A
D
M’ or 0
K
9
Основные подходы - 2
 Схема аутентификации сообщений
MA = (K, TG, VF)
K – случайный алгоритм генерации ключей
TG – алгоритм генерации тагов: σ ← TGK(M)
VF – алгоритм проверки тагов: d ← VFK(M, σ), d – бит.
Sender
M
Receiver
TG
KK
M
M’
T
T’
A
M’
VF
0 or 1
K
10
Основные подходы - 2
Подробнее о схеме аутентификации
 Со схемой также связано пространство сообщений Plaintext,
из которого берут M.
Ясно, для MPlaintext VFK(M,TGK(M)) = ???
11
Основные подходы - 2
Подробнее о схеме аутентификации
 Со схемой также связано пространство сообщений Plaintext,
из которого берут M.
Ясно, для MPlaintext VFK(M,TGK(M)) = 1.
 Алгоритм TG может быть случайным и использующим
состояния.
12
Основные подходы - 3
 Код аутентификации сообщений (MAC)
Случай, когда алгоритм TG детерменированный и без
состояний. В этом случае алгоритм VF:
σ′ ← TGK(M)
if σ = σ′ then return 1 else return 0
Sender
M
Receiver
MAC
KK
M
M’
T
T’
M’
MAC
T*
=
A
0 or 1
K
13
Надежность - нефомально
 Пара (M, T), созданная противником, такая что VFK(M,T) = 1, но
M не происходит от отправителя S называется подделкой.
 Виды атак: no-message, chosen-message, replay.
 Дадим противнику 2 возможности:
 Получить таг любого сообщения по его выбору – “запрос
тага”. Противник делает q таких запросов.
 Узнать, корректна ли конкретная пара (M, T) – “запрос
проверки”. Противник делает v таких запросов.
 Противник достиг цели, если создал запрос проверки (M, T),
который вернул значение 1 (accept), но не создавал запроса
тага M.
14
Надежность - модель
 Построим такую модель:
 Фиксируем схему аут. сообщений MA = (K, TG, VF)
 Противник А
 Заменяем отправителя «оракулом генерации тагов» –
доступом типа «черный ящик» к алгоритму TGK().
 Заменяем получателя «оракулом проверки» - доступом типа
«черный ящик» к алгоритму VFK().
Таким образом модель – противник, оперирующий с двумя
оракулами.
TG
VF
M
T = TG(M)
(M, T)
A
0 or 1
15
Надежность
 Введем понятие «эксперимент»:
Experiment ExpMA(A)
K←K
Run ATGK(), VFK()
If А делает VFK запрос (M, T) такой что:
Оракул возвращает 1
А не делал таг-генерирующего запроса M
then return 1 else return 0
 Определение:
Вероятность успеха AdvMA(A) – вероятность, что ExpMA(A)
вернет 1.
 AdvMA(A) (t, q, m) = max {AdvMA(A)},
где максимум берется по всем противникам, работающим время
t, делающих q запросов оракула и таких, что сумма длин всех
запросов и длины сообщения M была ≤ m бит.
16
Примеры использования определений
 MA1
 Алгоритмы TGK, VFK
 Алгоритм A1
 Оценка AdvMA1(A1)
 Еще примеры атак
 MA2 – пробуем улучшить MA1
 Алгоритмы TGK, VFK
 А1 – теперь не работает
 Алгоритм A2
 Оценка AdvMA2(A2)
17
Схемы





XOR schemes
PRF-as-a-MAC
CBC MAC
Universal hash based MACs
HMAC
18
The XOR schemes
 Алгоритм XOR-Tagf(s, M)
 Алгоритмы TGK(M), VFK(M) – с использованием счетчиков и
случайные
 Атака А2 теперь не проходит
 Оценка Adv
19
The PRF-as-a-MAC paradigm
 Суть подхода – любая псевдослучайная функция фактически
MAC.
Пусть F: K  D  {0, 1}l – семейство функций. Сопоставим F код
аутентификации сообщений MAC: K  D  {0, 1}l, M  D:
algorithm MACK(M)
T ← FK(M)
return T
Область D сужена до строк длины ровно d для некоторого
целого d.
 Теорема: AdvMAC(A) ≤ AdvF(B) + v/2l, где А – противник,
атакующий MAC, В – противник, атакующий F.
20
The CBC MAC
 Пусть f: {0, 1}l  {0, 1}l - функция.
Пусть f(n): {0, 1}nl  {0, 1}l – функция, которая по входу x1…xn
выводит yn, где yi = f(yi-1  xi) и y0 = 0l.
F – конечное семейство функций {0, 1}l  {0, 1}l
За F(n) обозначим семейство функций, в котором функции,
проиндексированные ключом К – FK(n). Это семейство назывется
CBC от F.
 Теорема: если F – PRF семейство, то и F(n).
 Algorithm MACK(M)
Разбить М на блоки длины l – М1 …Мm
y0 ← 0l
for i = 1 to m do yi ← FK(yi-1  Mi)
return ym
 В таком виде CBC MAC не применим к строкам разной длины.
21
Universal hash based MACs
 Это самый быстрый MAC, построен на использовании «почти
универсальных хэш функций»
 Определение
Пусть Н: K  M  {0, 1}n – семейство функций,  - вещественное
число. H называется -AU ( почти-универсальной) если для
любых различных М, М′  M, Pr [K ←K: HK(M) = HK(M′)] ≤ .
 Определение
если  = 2-n, то Н называется универсальной хэш функцией.
 Схема UHM = (K, TG, VF)
 Оценка Adv
22
HMAC
 HMAC – MAC на основе криптографических хэш-функций
(например – MD5 или SHA-1)
 Пусть Н – хэш функция. Н берет входные значения
произвольной длины и возвращает l-битовый результат (l = 128
для MD5 и l = 160 для SHA-1). Обозначим за M информацию, к
которой применяется MAC функция, K – ключ (ровно 64 байта,
если меньше – дополняем нулями).Определим 2 константы
длиной 64 байта:
 ipad = байт 0x36 повторенный 64 раза
 opad = байт 0x5C повторенный 64 раза
 Функция HMAC берет ключ K и M, и возвращает HMACK(M) = H
(K  opad, H ( K  ipad, M)).
23
Литература
 Mihir Bellare, Philip Rogaway “Introduction to Modern Cryptography”
 Shafi Goldwasser, Mihir Bellare “Lecture Notes on Cryptography”
 В.Ященко “Введение в криптографию”
24
Download