logo search
Лекции_Информационная безопасность

12.3.2Взаимная аутентификация - однонаправленные сумматоры

А и В хотят убедиться в том, что они оба принадлежат одной группе. Причем они могут остаться и не известными друг для друга, важна только принадлежность одной группе. В процессе аутентификации не должно участвовать третье лицо.

Конечно, раздавать всем членам группы список с паролями было бы безумием, кроме того, при этом не удалось бы организовать анонимность собеседников. Необходимо чтобы А предоставил нечто, с помощью этого «нечто» В должен произвести некоторые вычисления и убедиться в том, что А – член группы. Аналогично, В предоставляет некоторую информацию А, по которой А убеждается в принадлежности В к группе.

Такой протокол можно реализовать, если использовать при подготовке данных некоторое доверенное лицо Д. Д готовит n=p*q, 1<a<n и для каждого члена группы выбирает (случайно) yi, где i=1,2,…k. Затем i-тому члену группы передается n, yi и некоторая частичная «сумма» Si, то есть выражение, вычисленное по нижеприведенной формуле, но без одного возведения в степень, то есть без возведения в yi:

(…(((ay1 mod n)y2 mod n)y3 mod n) …)yk mod n

При встрече А предъявляет В свой ya и свою частичную «сумму» Sa. В аналогично предъявляет А свой yb и Sb. Каждый из них, зная n (но не сообщая его второй стороне!), может посчитать, совпадают ли Saya mod n и Sbyb mod n. Если совпадают, аутентификация считается успешной.

Здесь важно то, что производимые вычисления коммутативны и вычислительно необратимы. Если С, не являющийся членом группы, попытается произвести аутентификацию, например, с В, то он получит yb и Sb, но не зная n, он не сможет даже вычислить полную сумму S. Впрочем, если n ему известно, то перед ним встает сложная вычислительная задача по расчету xy mod n = S. Правда, при попытке аутентифицироваться с В, С узнаёт верные yb и Sb, которые С может использовать в дальнейшем, пытаясь аутентифицироваться (от имени В) с предположительным членом этой же группы, например, с А. Последнее удается. Чтобы защититься от такой атаки, на стадии аутентификации с В, когда В понимает, что перед ним не член группы, В фактически узнаёт о дискредитации своего аутентификатора (yb и Sb). В этом случае следует сообщить об инциденте Д, для того чтобы он выработал для всей группы новые аутентификаторы.

12.4Генерация и распределение ключей

12.4.1Вручение бита (симметричная криптография)

12.4.2Вручение бита (хэш-функция)

12.4.3Вручение бита (ГПСЧ)

12.4.4Подбрасывание монеты (хэш-функция)

12.4.5Подбрасывание n-мерной монеты

12.4.6Подбрасывание монеты (RSA)

12.4.7Распределение ключей – мысленный покер

12.4.8Анонимное распределение ключей

12.4.9Анонимное раскрытие секрета (с FBI)

Пусть у А есть несколько секретов, например, ключей. В, С и другие хотят получить по одному ключу, причем так, чтобы каждому стал известен только один ключ, чтобы А не узнал, да и никто другой не узнал, кому, какой ключ передан.

12.5Групповые подписи с доверенным посредником.

Задача состоит в том, чтобы создать протокол, удовлетворяющий описанным ниже характеристикам. Для того, чтобы разрешить субъекту А выполнить то или иное действие Д, субъекту В необходимо определить принадлежность А некоторой группе, при этом необходимо обеспечить анонимность члена группа, то есть имя А должно остаться неизвестным для В. В то же время специальный контролёр С при необходимости может установить, что действие Д выполнил именно А.

Например, в организации несколько принтеров. Для каждого принтера определена группа людей, которые могут им пользоваться. Пользование принтеров анонимно, но если замечено, что некто слишком долго занимал принтер, то директор имеет возможность выяснить, кто это, и предъявить ему счет.

Доверенное лицо (посредник) создает большое множество пар ключей (открытый и закрытый) - n пар. Далее разбивает это множество случайным образом на m подмножеств, где m - количество клиентов. Посредник распределяет подмножества ключей клиентам. Затем собирает все открытые ключи, соответствующие закрытым ключам клиентов из одной группы, и публикует их. Так он проделывает для каждой группы.

Клиент формирует запрос, подписывая его одним из своих закрытых ключей (ключ выбирается произвольно). Некоторый сервер В может удостовериться в том, что запрос принадлежит одному из членов группы, применив открытые ключи членов группы и получив осмысленное сообщение. В то же время сервер не может определить, какой из пользователей к нему обратился. В случае необходимости директор обращается к посреднику, у которого в тайне хранится список соответствия открытых ключей пользователям.

Недостаток данного протокола в том, что посреднику известны все ключи.