Используемые в протоколах термины и обозначения
Определим некоторые обозначения:
n - число участников протокола;
i, j - индексы для участников групп;
Mi - i-ый участник группы;
G - подгруппа Zp*
порядка q, где p и q – простые;
q - порядок алгебраической группы;
a,g - образующие элементы в группе G ;
xi - долговременный секретный ключ Mi;
ri - случайное (секретное) число Î Zq , вырабатываемое Mi;
Sn - групповой ключ n участников;
Sn(Mi) - вклад Mi -го участника в групповой ключ;
Kij - долговременная секретная величина, выработанная Mi
и Mj , i¹j.
Все вычисления проводятся в циклической группе G простого порядка q, которая является подгруппой Zp* порядка p, где p=kq+1 для некоторого kÎN[1].
Для того, чтобы предотвратить атаки методами подмены или утечки секретных величин, каждый участник протокола должен иметь возможность проверить, что те значения, которые он получает, являются элементами подгруппы.
Заметим, что p и q – общие для всех пользователей. Поскольку они вырабатываются один раз, необходимо качественно проработать процесс генерации, чтобы исключить (возможно умышленное) получение слабых или каких-то специфических простых чисел. В частности, рекомендуется использовать метод из стандарта США, описанный в FIPS 186 или же на основе метода, изложенного в стандарте ГОСТ Р34.10-94.
В таком контексте, возможности активного противника довольно сильно ограничены. Действительно, любое сообщение может быть представлено как aсmod p, где a -образующий элемент циклической подгруппы Zp* порядка q и c – некоторая экспонента. Получение c упирается в проблему дискретного логарифмирования.