ОК, я собираюсь предположить, что простой симметричный ключ (3DES или AES) разделен на 3 части. Я могу ответить только , потому что Я делаю это предположение.
Значение ключа генерируется случайным образом, это ключ, который вы собираетесь защищать. Позволяет назвать этот ключ главным ключом. KCV (значение проверки ключа) вычисляется по главному ключу, поэтому, если он регенерирован, правильность ключа можно проверить с относительно высокой достоверностью, не раскрывая само значение. KCV не пропускает информацию о самом ключевом материале, так как расчет KCV составляет в одну сторону .
Этот ключ разделен на три части с использованием других случайных значений и XOR. Сначала генерируются два других случайных ключа. Третий ключ рассчитывается как XOR других ключей и мастер-ключ. Значения KCV рассчитываются и записываются. Три ключа теперь могут быть распределены на 3 разных участников. Этих актеров называют ключевыми менеджерами в роли, которую они выполняют на церемонии. Обычно менеджеры ключей защищают доступ к своим ключам.
Теперь для регенерации главного ключа каждый менеджер ключей записывает свою часть ключа. KCV ключа проверяется перед тем, как продолжить, чтобы убедиться, что не было ошибок ввода, или что значение не соответствует значению другого ключа. Теперь, если вы вычислите XOR трех ключей, вы снова получите главный ключ. Это значение снова сравнивается с главным ключом.
Так что это все, что нужно.
Что касается безопасности этой схемы:
- вам нужны все три ключа, так как остальные ключи в основном обеспечивают шифрование One-Time-Pad над значением ключа, что обеспечивает очень четкое представление о безопасности
- общий KCV является опасным понятием, поскольку шифрование полностью нулевого блока - наиболее распространенная схема - может привести к утечке конфиденциальной информации (например, для защиты в режиме счетчика с нулевым одноразовым номером и счетчиком). Например. HMAC над пустым значением может быть лучшей идеей
- очевидно, вам нужен безопасный генератор случайных чисел для генерации ключей или ваша схема может быть небезопасной
- будет сложно сгенерировать неправильный ключ специально; обычно KCV составляет три байта, поэтому вероятность того, что один или два человека сговорятся и сгенерируют KCV главного ключа, составляет 1 к 2 ^ 24 (2 ^ 24 превышает 16 миллионов).