13-06-2023
Схема Блома — в криптографии, схема распределения ключей.
В схеме Блома доверенная сторона раздаёт каждому участнику открытый и закрытый ключ. Участники, обмениваясь между собой только открытыми ключами по незащищённым каналам связи могут сгенерировать секретный сеансовый ключ для общения между собой.
Надёжность схемы напрямую зависит от размера секретной матрицы, используемых в схеме. Для восстановления секретной матрицы (точнее, любой выполняющей аналогичную функцию) необходимо иметь число ключей, равное количеству строк матрицы.
Схема используется в протоколе HDCP в целях защиты видео от копирования.
Содержание |
Доверенная сторона выбирает симметричную матрицу над конечным полем .
Когда новый участник хочет присоединиться к группе, доверенная сторона выбирает для него новый открытый ключ, который представляет собой вектор (столбец) размера . Далее доверенная сторона вычисляет закрытый ключ :
Открытый и закрытый ключ сообщаются участнику по надёжному каналу без прослушивания.
Если два участника хотят установить между собой секретный канал, они посылают друг другу по открытому каналу свои открытые ключи. Далее каждый из них умножает свой закрытый ключ на открытый ключ другой стороны. Если — открытый и закрытый ключ одной стороны, — ключи другой стороны, то:
В результате у них получится одно и тоже число (это следует из симметричности матрицы ), которое и будет использоваться как общий сеансовый ключ.
Для вычисления общего секретного ключа двух сторон нужно знать секретную матрицу. Её можно восстановить, если получить линейно-независимых идентификаторов.
Доверенный центр выбирает размер конечного поля и секретную матрицу:
Алиса и Боб выбирают себе идентификаторы (также могут выдаваться доверенным центром):
Доверенный центр вычисляет Алисе и Бобу закрытые ключи:
Пусть теперь Алисе и Бобу нужно вычислить общий секретный ключ. Алиса передаёт Бобу свой идентификатор, а Боб — свой Алисе. После чего каждая из сторон вычисляет секретный ключ, умножая свой закрытый ключ на идентификатор второй стороны:
Схема Блома.