Схема Блома - это протокол обмена ключами с симметричным порогом в криптографии . Схема была предложена шведским криптографом Рольфом Бломом в серии статей в начале 1980-х годов. [1] [2]
Доверенная сторона дает каждому участнику секретный ключ и открытый идентификатор, что позволяет любым двум участникам независимо создавать общий ключ для связи. Однако, если злоумышленник может скомпрометировать ключи как минимум k пользователей, он может нарушить схему и восстановить каждый общий ключ. Схема Блома - это форма порогового разделения секрета .
Схема Блома в настоящее время используется схемой защиты от копирования HDCP (только версия 1.x) для генерации общих ключей для источников и приемников контента высокой четкости, таких как проигрыватели HD DVD и телевизоры высокой четкости . [3]
Протокол
Протокол обмена ключами включает доверенную сторону (Трент) и группу пользователей. Пусть Алиса и Боб будут двумя пользователями группы.
Настройка протокола
Трент выбирает случайную и секретную симметричную матрицу над конечным полем , где p - простое число. требуется, когда новый пользователь должен быть добавлен в группу обмена ключами.
Например:
Вставка нового участника
Новые пользователи Алиса и Боб хотят присоединиться к группе обмена ключами. Трент выбирает публичные идентификаторы для каждого из них; то есть k-элементные векторы:
.
Например:
Затем Трент вычисляет их закрытые ключи:
С использованием как описано выше:
Каждый будет использовать свой закрытый ключ для вычисления общих ключей с другими участниками группы.
Теперь Алиса и Боб хотят общаться друг с другом. У Алисы есть идентификатор Боба и ее закрытый ключ .
Она вычисляет общий ключ , где обозначает транспонирование матрицы . Боб делает то же самое, используя свой закрытый ключ и ее идентификатор, давая тот же результат:
Каждый из них сгенерирует свой общий ключ следующим образом:
Сопротивление атаке
Чтобы гарантировать, что по крайней мере k ключей должны быть скомпрометированы, прежде чем каждый общий ключ может быть вычислен злоумышленником, идентификаторы должны быть k-линейно независимыми: все наборы из k случайно выбранных идентификаторов пользователей должны быть линейно независимыми. В противном случае группа злоумышленников может вычислить ключ любого другого члена, чей идентификатор линейно зависит от их идентификатора. Чтобы гарантировать это свойство, идентификаторы должны предпочтительно выбираться из матрицы кодов MDS (кодовая матрица с исправлением ошибок с максимальным разделением расстояний). Строки MDS-Matrix будут идентификаторами пользователей. Матрица MDS-кода может быть выбрана на практике с использованием кодовой матрицы кода исправления ошибок Рида – Соломона (этот код исправления ошибок требует только легко понятной математики и может быть вычислен чрезвычайно быстро). [4]
Рекомендации
- ^ Блом, Рольф. Распространение непубличных ключей. В Proc. CRYPTO 82, страницы 231–236, Нью-Йорк, 1983. Plenum Press
- ^ Блом, Рольф. «Оптимальный класс систем генерации симметричных ключей», Отчет LiTH-ISY-I-0641, Университет Линчёпинга, 1984 [1]
- ^ Кросби, Скотт; Гольдберг, Ян; Джонсон, Роберт; Песня, Рассвет; Вагнер, Дэвид (2002). Криптоанализ системы защиты широкополосного цифрового контента . Безопасность и конфиденциальность в управлении цифровыми правами. DRM 2001. Конспект лекций по информатике . Конспект лекций по информатике. 2320 . С. 192–200. CiteSeerX 10.1.1.10.9307 . DOI : 10.1007 / 3-540-47870-1_12 . ISBN 978-3-540-43677-5.
- ^ Менезес, А .; Пол К. ван Оршот и Скотт А. Ванстон (1996). Справочник по прикладной криптографии . CRC Press . ISBN 978-0-8493-8523-0.