На стадии инициализации доверенный сервер генерирует и распределяет ключи пользователям, и затем они уже между собой генерируют ключ (третья сторона не нужна).
Сессионный ключ определяется исходным ключевым материалом. Сервер генерирует для каждой пары. У каждого хранятся n-1 ключей.
Недостаток: Нужно хранить много ключей.
Система называется j-безопасной, если для заданной пары субъектов объединение j или менее субъектов не дает им преимущество вычисления секретного ключа заданной пары.
Условие j-безопасности Блома
В любой j -безопасной системе распределение ключей при длине ключа m битов объем секретной информации, которую хранит некий субъект, должен быть не меньше m(j+1) битов.
Когда сервер всем раздает ключи и каждый хранит n-1, то j=n-2.
Система группового предраспределения ключей Блома
n участников.
Матрица Gkxn (k – параметр безопасности, такой что j=k-1), k – количество пользователей, которые если соберутся, могут определить все ключи, элементы
Секретная сторона Т генерирует симметричную матрицу размером kxk, назовем ее D, элементы
|
|
Т раздает пользователям Si - строку матрицы вида (DG)T рзмером nxk.
Это делается на стадии инициализации.
Если ui и uj хотят вычислить общий ключ:
kij – элемент матрицы
nxn
Каждый пользователь может умножить Si на G и получить все свои ключи.
G имеет свойство: для любых k линейно-независимых столбцов любые n-k столбцов линейно выражаются через остальные k.
Размер ключа равен.
Элементы G – коды восстановления ошибок. Система для будет j -безопасной. Объем ключей, которые хранятся у каждого,.
Пусть протокол выглядит следующим образом:
: rA
: Ek(rA,rB)
: rB
Атака отражения:
Е – нарушитель
(1): rA
(2): rA
(2): Ek(rA,rB)
(1): Ek(rA,rB)
(1): rB
|
номер сессии
Как защищаться:
- два различных симметричных ключа k и k` для шифрования в разные стороны,
- добавлять ID сторон.
Чередование сообщений (использование подписи)
: rA
: rB, SB(rB, rA, A) (*)
: , SA( , rB, B) (**)