Предположим, что с помощью протокола разделения секрета разделены два секрета S 1 и S 2 и что оба эти секреты являются числами. Теперь представим себе ситуацию, что после этого потребовалось разделить секрет S = S 1 + S 2. Это может сделать дилер с помощью того же протокола. А могут ли процессоры выполнить то же самое без участия дилера?
Пусть Q1(x) = а0 + а1 х + … + am-1хm-1
и Q2(x) = b0 + b1 х + … + bm-1хm-1
— полиномы, которые использовались для разделения секретов S 1 и S 2 соответственно.
Пусть ri (1) = gai mod q и ri (2) = gbi mod q, i = 0,...,m-1. – значения, используемые для проверки правильности долей секрета.
И пусть sj (1) = Q1 (j) и sj (2) = Q2 (j), j = 1,..., n — доли секретов S 1 и S 2, полученные процессором Aj.
Ясно, что Q(x) = Q 1 (x) + Q 2 (x) — полином степени m -1 и Q(0) = S.
Поэтому каждый процессор Aj может вычислить долю sj секрета S просто по формуле
sj = sj(1) + sj(2).
Эти доли проверяемы с помощью значений ri = ri (1) ri (2)mod q.
Выполняя такого рода вычисления над долями секретов, процессоры могут вычислить любую функцию над конечным полем «проверяемым образом». Типичная задача здесь такая. Требуется вычислить значение функции f на некотором наборе значений аргументов y1,…,yk. С помощью схемы проверяемого разделения секрета вычисляются доли ,..., , (i =1,… п) этих значений. В начале выполнения протокола доля xi известна процессору A i и только ему. Протокол должен обеспечивать вычисление значения
|
|
f (,..., ) = f (y1, …,yk)
таким образом, чтобы для некоторого параметра m:
1) в результате выполнения протокола любое подмножество из не более чем m-1 процессоров не получало никакой информации о значениях xi других процессоров (кроме той, которая следует из известных им долей) и значения функции f ( ,..., )),
2)при любых действиях нечестных участников остальные участники вычисляют пра вильное значение f (y1, …,yk), если только количество честных участников не менее m.
Протоколы конфиденциального вычисления, ввиду своей общности, представляют несомненный теоретический интерес. Кроме того, многие типы прикладных криптографических протоколов (например, протоколы голосования) по существу являются частными случаями протоколов конфиденциального вычисления.
При различных предположениях о процессорах и о сети связи доказан ряд теорем следующего типа: если m -1 не превосходит некоторого порогового значения (зависящего от п и от предположений), то всякая вычислимая функция имеет протокол конфиденциального вычисления.
Управление ключами
Под ключевой информацией понимается совокупность всех действующих в ИС ключей. Если не обеспечено достаточно надежное управление ключевой информацией, то завладев ею, злоумышленник получает неограниченный доступ ко всей информации.
|
|
Управление ключами представляет собой самую трудную часть криптографии. Проектировать криптографические алгоритмы и протоколы не просто, однако можно воспользоваться результатами теоретических исследований.
Криптоаналитики часто атакуют симметричные и асимметричные криптосистемы, используя недостатки схемы распределения ключей. Иногда украсть ключ стоит намного дешевле, чем построить суперкомпьютер или нанять криптоаналитика. Известно, что некоторые коммерческие продукты не обеспечивают надежного хранения ключей.
Кроме того, если для обеспечения конфиденциального обмена информацией между двумя пользователями процесс обмена ключами тривиален, то в ИС, где количество пользователей составляет десятки и сотни, управление ключами — серьезная проблема.
Управление ключами - информационный процесс, включающий в себя три элемента:
² генерацию ключей;
² накопление ключей;
² распределение ключей.
Рассмотрим, как они должны быть реализованы для того, чтобы обеспечить безопасность ключевой информации в ИС.
1.33. Генерация ключей
Безопасность криптосистемы сосредоточена в ключе. Если используется криптографически уязвимый процесс генерации ключей, то криптосистема в целом уязвима. Криптоаналитику не нужно заниматься криптоанализом алгоритма криптографического преобразования, достаточно проанализировать алгоритм генерации ключей.