Дополнительные функции криптосистем
Аутентификация(подтверждение подлинности )
• Идентификация
• Аутентификация
• Авторизация
Аутентификация
• Может включать задачи– подтверждения подлинности сообщений
– подтверждения подлинности пользователей.
• Для сообщений – необходимо иметь возможность проверки того что:– Сообщение создано законным пользователем
– В сообщении не был изменен даже один бит данных
Аутентификация
• Законные пользователи обладают общим секретом K. Для последующей проверки создается контрольная группа Es
– Создание Es=f(M,K)
– Передача (хранение) (M,Es)
– Проверка Es=f(M,K)
?
Аутентификация
• Задача противника1. Подобрать Mл, для которого Es=f(Mл,K)
2. Для Mл2 вычислить Es2 ,
для которого Es2=f(Mл2,K)
Обычно Es много меньше сообщения и имеет фиксированную длину, т.е. разным сообщениям может соответствовать конкретная Es .
Аутентификация
• Может выполняться на основе– Идеально стойких систем– Вычислительно стойких симметричных– Вычислительно стойких асимметричных
Аутентификация (идеально стойкая)
Законный пользователь создает Es=f(M,K)
Пересылают (M; Es )Противник с неограниченными вычислительными
ресурсами:– из M и Es пытается определить K. – Однако в такой системе существует множество K1,
K2 .. Kl соответствующих данной паре M и Es , но только один ключ истинный, т.е. соответствует любой паре сообщение – контрольная сумма.
Аутентификация (идеально стойкая)
• Для сохранения условия идеальной стойкости ключ должен использоваться однократно.
• Вероятность необнаруженной подмены
• P~2-N/2 (для двоичного ключа длины N)
Аутентификация (симметричная)
• Для аутентификации можно использовать шифрование (в расчете, что противник без знания ключа не
сформирует «правильную» криптограмму).• Недостаток:
– Не любая криптосистема может использоваться (- потоковые шифры и др. …)
– Должны шифроваться избыточные сообщения(или избыточность должна вводиться искусственно)
Аутентификация (симметричная)
• MAC – код аутентификации сообщенияили имитоприставка (определена в ГОСТ)Выполняется на основе блокового шифра в
модификации CBC:
Ei=fK(Ei-1+Mi)
В качестве результата выбирают последний шаг вычисления (или совокупность двух последних).
Обычно длина контрольной группы ~ 128÷256 бит
Аутентификация (асимметричная)
• Для создания контрольной группы используют секретный ключ:– Создание Es=f(M,k)
– Передача (хранение) (M,Es)
– Проверка M = g(Es,K)?
Аутентификация (на RSA)
– Создание Es=Mk mod N
– Передача (хранение) (M,Es)
– Проверка M = EsK mod N
Аутентификация (асимметричная)
• При асимметричной аутентификации возможно навязывание случайных данных.
• Действия противника (на примере RSA):– Выбор случайного числа R– Вычисление RK mod N– Передача проверяющему (RK mod N; R )
• Проверка– M = EsK mod N, т.е. =>– RK mod N = RK mod N , т.е. Проверка всегда проходит.
• Защита – использование осмысленных (избыточных) сообщений
M; Es
Аутентификация пользователей
• Один из возможных вариантов (наиболее простой) – использование парольной защиты
• Проверяющая сторона, например сервер, должна иметь возможность проверки пароля, однако хранение пароля на сервере имеет недостатки:– Кратковременное нарушение безопасности сервера
приводит к компрометации всех паролей, т.е. необходимость смены всех паролей.
Аутентификация пользователей
• Простейший метод – парольная аутентификация.
• Тривиальный метод проверки:Сервер (сравнивает пароли)
Имя Пароль
1. xf5$ty
2. DFu9*
3. gf%^h
Пользователи
1.
2.
3.
Пароль1
Пароль2
Пароль3
Аутентификация пользователей
• Недостатки тривиального метода:– Возможность компрометации всей базы
паролей
• Защита – хранение паролей в преобразованном виде на основе однонаправленных функций y=f(x) – простая (y=ax mod N) x=φ(y) – сложная (x=logay mod N)
Аутентификация пользователей
• Для защиты паролей на сервере используют однонаправленные функции (или необратимые преобразования)– Однонаправленная функция:
• y=f(x) – прямая, вычисляется просто.• x=φ(y) – обратная, вычисляется сложно.
– Пример• y=ax mod N• y=MAC(x)
Аутентификация пользователей
• На сервере хранятся не сами пароли, а результаты вычисления однонаправленных функций от паролей.
Сервер:
Вычисляет и сравнивает:
ax1 1. y1
ax2 2. y2
ax3 3. y3
1. x1
2. x2
3. x3
Аутентификация пользователей
• На сервере хранятся не пароли x, а результат вычисления ax mod N
Сервер (вычисляет и сравнивает)
Имя f(Пароль)
1. y1
2. y2
3. y3
1 x1
2 x2
3 x3
f(x1) = y1?
Однако пароли могут перехватываться в линиях связи
Аутентификация пользователей
• Данный метод не выполняет защиту паролей от перехвата при передаче по линиям связи. (используют другие методы см. далее).
Цифровая подпись
Цифровая подпись
• При аутентификации ставится задача определения, составлено ли сообщение законным пользователем.
• Аутентификация не позволяет однозначно определить автора сообщения – им может быть любой законный пользователь.
• Для создания и проверки используется один и тот же ключ, например для вычисления и проверки MAC.
Цифровая подпись
• Задача аутентификации – проверка, что данное сообщение создано любым законным пользователем.
• Задача цифровой подписи – проверка, что данное сообщение создано конкретным пользователем.– Возможность разрешения споров между
автором сообщения и проверяющим.
Цифровая подпись
• Цифровая подпись на основе симметричных систем может быть реализована только при помощи арбитра. Арбитр – доверяют все участники.
• Без арбитра только с использованием систем с открытым ключом
Обычная подпись• Подлинность:
– Физическая целостность документа– Уникальная характеристика подчерка
• Связь подписи и текста – обеспечивает носитель сообщения (бумага и т.п.)
• Прямой перевод (сканирование) подписанного документа в цифровое представление допускает легкую подделку, так как теряется связь между документом и подписью.
Цифровая подпись
• Ц.п. может быть реализована на основе симметричных систем.
• Требуется участие доверенного лица (арбитра)
АрбитрA B1
KA KB
Арбитр
AB
1
(M;Es)
(M;Es) запрос на проверку
ответ
Цифровая подпись
• Ц.п. без арбитра м.б. реализована только на асимметричных системах.
• Требуется от подписанного документа:– иметь возможность проверки, что не
изменился ни один бит сообщения– определения конкретного автора сообщения
Цифровая подпись• Необходимо связать подпись с документом:
– Es=fk(M) – создание подписи– (M Es) – хранение, передача
подписанного документа
– M=gK(Es) – Проверка подписи – совпадает ли левая часть с правой?
?
Цифровая подпись
• Подпись должна связывать сообщение и секретный ключ автора:
Создание Es=f(M,kA)
Передача (M;Es)
Проверка M=f(Es,KA)
?
Ц.п. на примере RSA