<< Предыдущая

стр. 23
(из 48 стр.)

ОГЛАВЛЕНИЕ

Следующая >>

определяется как f (m)= m ? kE mod N,
а демаскирующая функция g: Zn > Zn
определяется как g (m) = k-1m mod N. При таком выборе f, g и s получаем
g (sB (f (m))) = g (sB (m kE mod N)) = g (mD k mod N) = mD mod N = sB (m),
что соответствует требованию 2.
Согласно протоколу слепой подписи, который предложил Д.Чом [121], отправитель А сначала
получает подпись стороны В на замаскированном сообщении m*. Используя эту подпись, сторона А
вычисляет подпись В на заранее выбранном сообщении m, где 0 ? m ? N-1. При этом стороне В
ничего неизвестно ни о значении m, ни о подписи, связанной с m.
Пусть сторона В имеет для подписи по схеме RSA открытый ключ (N, E) и секретный ключ D.
Пусть k - случайное секретное целое число, выбранное стороной А и удовлетворяющее условиям 0 ?
k ? N-1 и НОД (N, k).
Протокол слепой подписи Д.Чома включает следующие шаги:
(1) Отправитель А вычисляет замаскированное сообщение m* = m kE mod N и посылает его
стороне В.
(2) Подписывающая сторона В вычисляет подпись s* = (m*)D mod N и отправляет эту подпись
стороне А.
Сторона А вычисляет подпись s = k-1 s*mod N, которая является подписью В на сообщение m.
Нетрудно видеть, что
(m*)D ? (mkE)D ? mDk (mod N),
поэтому
k-1 s* ? mD k k-1 ? mD (mod N).
Д.Чом разработал несколько алгоритмов слепой подписи для создания системы анонимных
безналичных электронных расчетов eCash [49, 108].

Схемы неоспоримой подписи.
Неоспоримая подпись, как и обычная цифровая подпись, зависит от подписанного документа
и секретного ключа. Однако в отличие от обычных цифровых подписей, неоспоримая подпись не
может быть верифицирована без участия лица поставившего эту подпись. Возможно, более
подходящим названием для этих подписей было бы “подписи, не допускающие подлога”.
Рассмотрим два возможных сценария применения неоспоримой подписи [107,117].
Сценарий 1. Сторона А (клиент) хочет получить доступ в защищенную зону, контролируемую
стороной В (банком). Этой защищенной зоной может быть, например, депозитарий (хранилище
ценностей клиентов). Сторона В требует от А поставить на заявке о допуске в защищенную зону
подпись, время и дату до предоставления ему доступа. Если А применит неоспоримую подпись, тогда
сторона В не сможет впоследствии доказать кому-либо, что А получил допуск, без непосредственного
участия А в процессе верификации подписи.
Сценарий 2. Предположим, что известная корпорация А разработала пакет программного
обеспечения. Чтобы гарантировать подлинность пакета и отсутствие в нем вирусов, сторона А
подписывает этот пакет неоспоримой подписью и продает его стороне В. Сторона В решает сделать
копии этого пакета программного обеспечения и перепродать его третьей стороне С. При
использовании стороной А неоспоримой подписи сторона С не сможет убедиться в подлинности этого
пакета программного обеспечения и отсутствии в нем вирусов без участия стороны А.
Конечно, этот сценарий не препятствует стороне В поставить на пакете свою подпись, но
тогда для стороны В будут утрачены все маркетинговые преимущества, связанные с использованием
торговой марки корпорации А. Кроме того, будет легче раскрыть мошенническую деятельность
стороны В.
Рассмотрим алгоритм неоспоримой цифровой подписи, разработанный Д.Чомом [107].
Сначала опишем алгоритм генерации ключей, с помощью которого каждая сторона А,
подписывающая документ, выбирает секретный ключ и соответствующий открытый ключ.
Каждая сторона А должна выполнить следующее:
1. Выбрать случайное простое число p = 2q + 1, где q - также простое число.
2. Выбрать генераторное число ? для подгруппы порядка q в циклической группе Zp*:
2.1. Выбрать случайный элемент ? ? Zp* и вычислить ? = ?(p-1)/q mod p.
2.2. Если ? = 1, тогда возвратиться к шагу 2.1.
3. Выбрать случайное целое x ? {1, 2, ..., q-1} и вычислить у = ?x mod p.
4. Для стороны А открытый ключ равен (p, ?, y), секретный ключ равен x.
Согласно алгоритму неоспоримой подписи Д.Чома, сторона А подписывает сообщение m,
принадлежащее подгруппе порядка q в Zp*. Любая сторона В может проверить эту подпись при
участии А.
В работе алгоритма неоспоримой подписи можно выделить два этапа:
1. генерация подписи,
2. верификация подписи.
На этапе генерации подписи сторона А вычисляет
s = mx mod p,
где s - подпись стороны А на сообщении m.
Сообщение m с подписью s отсылается стороне В.
Этап верификации подписи выполняется стороной В с участием стороны А и включает
следующие шаги:
(1) В получает подлинный открытый ключ (p, ?, y) стороны А.
(2) В выбирает два случайных секретных целых числа a, b ? {1, 2, ..., q-1}.
(3) B вычисляет z = sa yb mod p и отправляет значение z стороне А.
(4) А вычисляет w = (z)1/x mod p, где хх-1 ? 1 (mod q), и отправляет значение w стороне В.
(5) В вычисляет w’ = ma ?b mod p и признает подпись s подлинной, если и только если w = w’.
Убедимся, что проверка подписи s работает:
w ? (z)1/x ? (sa yb)1/x ? (mxa?xb)1/x ? ma?b ? w’mod p.
Можно показать, что с высокой степенью вероятности злоумышленник не сможет заставить В
принять фальшивую подпись. Предположим, что s представляет собой подделку подписи стороны А
на сообщении m, т.е. s ? mx mod p. Тогда вероятность принятия стороной этой подписи в данном
алгоритме составляет только 1/q, причем эта вероятность не зависит от вычислительных ресурсов
злоумышленника.
Подписавшая сторона А при некоторых обстоятельствах могла бы попытаться отказаться от
своей подлинной подписи одним из трех способов:
(а) отказаться от участия в протоколе верификации;
(б) некорректно выполнить протокол верификации;
(в) объявить подпись фальшивой, даже если протокол верификации оказался успешным.
Отречение от подписи способом (а) рассматривалось бы как очевидная попытка
неправомерного отказа.
Против способов (б) и (в) бороться труднее, здесь требуется специальный протокол
дезавуирования. Этот протокол определяет, пытается ли подписавшая сторона А дезавуировать
правильную подпись s или эта подпись является фальшивой. В этом протоколе по существу дважды
применяется протокол верификации и затем производится проверка с целью убедиться, что сторона
А выполняет этот протокол корректно [107, 117].
Протокол дезавуирования для схемы неоспоримой подписи Д.Чома включает следующие
шаги:
(1) В принимает от стороны А сообщение m с подписью s и получает подлинный открытый ключ (p,
?, y) стороны А.
(2) В выбирает случайные секретные целые числа a, b ? {1, 2, ..., q-1}, вычисляет z = sa yb mod p
и отправляет значение z стороне А.
(3) А вычисляет w = (z)1/x mod p, где xx-1 ? 1(mod q), и отправляет значение w стороне В.
(4) Если w = ma ?b mod p, тогда В признает подпись s подлинной и протокол прекращается.
(5) В выбирает случайные секретные целые числа a’, b’ ? {1, 2, ..., q-1}, вычисляет z’= sa’yb’mod p и
отправляет значение z’ стороне А.
(6) А вычисляет w’= (z’)1/x mod p и отправляет значение w’ стороне В.
(7) Если w’ = ma’ ?b’ mod p, тогда В принимает подпись s и протокол останавливается.
(8) В вычисляет c = (w?-b)a’ mod p, c’= (w’?-b’)a mod p. Если с = c’, тогда В заключает, что подпись s
фальшивая; в противном случае, В делает вывод, что подпись s подлинная, а сторона А пытается
дезавуировать подпись s.
Нетрудно убедиться в том, что этот протокол достигает поставленной цели. Пусть m -
сообщение и предположим, что s - подпись стороны А под сообщением m.
Если подпись s фальшивая, т.е. s ? mx mod p и если стороны А и В следуют протоколу
должным образом, тогда w = w’ (и поэтому справедливо заключение В, что подпись s фальшивая).
Пусть s на самом деле является подписью стороны А под сообщением m, т.е. s = mx mod p.
Предположим, что В точно следует протоколу, а А не следует. Тогда вероятность того, что w = w’ (и А
преуспевает в дезавуировании подписи), составляет только 1/q.
Следует отметить, что третья сторона С никогда не должна принимать в качестве
доказательства подлинности подписи s запись стороной В протокола верификации, поскольку
сторона В может выдумать успешную запись шага 2 и последующих шагов протокола верификации
без участия подписывающей стороны А.
Неоспоримая подпись может быть верифицирована только путем непосредственного
взаимодействия с подписывающей стороной А.
Разработан также алгоритм для обратимой неоспоримой подписи [105], которая может быть
верифицирована, дезавуирована, а также преобразована в обычную цифровую подпись. Этот
алгоритм основан на использовании алгоритма цифровой подписи Эль Гамаля.
ГЛАВА 7. УПРАВЛЕНИЕ КРИПТОГРАФИЧЕСКИМИ КЛЮЧАМИ
Любая криптографическая система основана на использовании криптографических ключей. В
симметричной криптосистеме отправитель и получатель сообщения используют один и тот же сек-
ретный ключ. Этот ключ должен быть неизвестен всем остальным и должен периодически обновлять-
ся одновременно у отправителя и получателя. Процесс распределения (рассылки) секретных ключей
между участниками информационного обмена в симметричных криптосистемах имеет весьма слож-
ный характер.
Асимметричная криптосистема предполагает использование двух ключей – открытого и лич-
ного (секретного). Открытый ключ можно разглашать, а личный надо хранить в тайне. При обмене
сообщениями необходимо пересылать только открытый ключ. Важным требованием является обес-
печение подлинности отправителя сообщения. Это достигается путем взаимной аутентификации уча-
стников информационного обмена.
Под ключевой информацией понимают совокупность всех действующих в АСОИ ключей. Если
не обеспечено достаточно надежное управление ключевой информацией, то, завладев ею, зло-
умышленник получает неограниченный доступ ко всей информации.
Управление ключами – информационный процесс, включающий реализацию следующих ос-
новных функций:
• генерация ключей;
• хранение ключей;
• распределение ключей.

7.1. Генерация ключей
Безопасность любого криптографического алгоритма определяется используемым крипто-
графическим ключом. Добротные криптографические ключи должны иметь достаточную длину и слу-
чайные значения битов. В табл. 4.3 приведены длины ключей симметричной и асимметричной крип-
тосистем, обеспечивающие одинаковую стойкость к атаке полного перебора (атаке "грубой силы")
[123].
Для получения ключей используются аппаратные и программные средства генерации случай-
ных значений ключей. Как правило, применяют датчики псевдослучайных чисел (ПСЧ). Однако сте-
пень случайности генерации чисел должна быть достаточно высокой. Идеальными генераторами яв-
ляются устройства на основе "натуральных" случайных процессов, например на основе белого ра-
диошума.
В АСОИ со средними требованиями защищенности вполне приемлемы программные генера-
торы ключей, которые вычисляют ПСЧ как сложную функцию от текущего времени и (или) числа, вве-
денного пользователем.
Один из методов генерации сеансового ключа для симметричных криптосистем описан в стан-
дарте ANSI X9.17. Он предполагает использование криптографического алгоритма DES (хотя можно
применить и другие симметричные алгоритмы шифрования).
Обозначения:
ЕК (X) – результат шифрования алгоритмом DES значения X;
К – ключ, зарезервированный для генерации секретных ключей;
V0 – секретное 64-битовое начальное число;
Т – временная отметка.
Схема генерации случайного сеансового ключа Ri в соответствии со стандартом ANSI X 9.17
показана на рис. 7.1. Случайный ключ Ri генерируют, вычисляя значение
Ri = ЕК (ЕК (Тi) ? Vi).

К К
Тi Vi+1
ЕК ЕК


Vi Ri
ЕК

К

Рис. 7.1. Схема генерации случайного ключа Ri в соответствии
со стандартом ANSI X9.17
Следующее значение Vi+1 вычисляют так:
Vi+1 = ЕК (ЕК (Тi) ? Ri).
Если необходим 128-битовый случайный ключ, генерируют пару ключей Ri, Ri+1 и объединя-
ют их вместе.
Если ключ не меняется регулярно, это может привести к его раскрытию и утечке информации.
Регулярную замену ключа можно осуществить, используя процедуру модификации ключа.
Модификация ключа – это генерирование нового ключа из предыдущего значения ключа с
помощью односторонней (однонаправленной) функции. Участники информационного обмена разде-
ляют один и тот же ключ и одновременно вводят его значение в качестве аргумента в одностороннюю
функцию, получая один и тот же результат. Затем они берут определенные биты из этих результатов,
чтобы создать новое значение ключа.
Процедура модификации ключа работоспособна, но надо помнить, что новый ключ безопасен
в той же мере, в какой был безопасен прежний ключ. Если злоумышленник сможет добыть прежний
ключ, то он сможет выполнить процедуру модификации ключа.
Генерация ключей для асимметричных криптосистем с открытыми ключами много сложнее,
потому что эти ключи должны обладать определенными математическими свойствами (они должны
быть очень большими и простыми и т.д.).


7.2. Хранение ключей
Под функцией хранения ключей понимают организацию их безопасного хранения, учета и
удаления. Ключ является самым привлекательным для злоумышленника объектом, открывающим
ему путь к конфиденциальной информации. Поэтому вопросам безопасного хранения ключей следует
уделять особое внимание. Секретные ключи никогда не должны записываться в явном виде на носи-
теле, который может быть считан или скопирован.

Носители ключевой информации.
Ключевой носитель может быть технически реализован различным образом на разных носи-
телях информации - магнитных дисках, устройствах хранения ключей типа TOUCH MEMORY, пласти-
ковых картах и т.д..
Магнитные диски представляют собой распространенный тип носителя ключевой информа-
ции. Применение магнитного диска (МД) в качестве носителя ключа позволяет реализовать необхо-
димое свойство отчуждаемости носителя ключа от защищенной компьютерной системы, т.е.
осуществлять временное изъятие МД из состава технических средств компьютерной системы.
Особенно целесообразно использование в качестве ключевых носителей съемных накопителей –
гибких магнитных дисков, съемных магнитооптических носителей и т.д. [73].
Основное преимущество МД по сравнению с другими носителями ключевой информации за-
ключается в том, что оборудование для взаимодействия с МД (дисковод) входит в состав штатных
средств компьютера.
Другая важная особенность, определяющая широкое распространение МД, - стандартный
формат хранения информации на дисках и стандартные программные средства доступа к дискам.
Кроме того, из всех средств хранения ключевой информации гибкие магнитные диски имеют самую
низкую стоимость..
Для обеспечения надежного хранения ключевой информации на МД применяют как минимум
двукратное резервирование объектов хранения. Это позволяет защитить ключевую информацию от
ошибок при считывании с МД и от сбоев программной и аппаратной части.
Для предотвращения возможности перехвата ключевой информации в процессе ее чтения с
МД применяют хранение ключевой информации на МД в зашифрованном виде.
Устройство хранения ключей типа TOUCH MEMORY является относительно новым носите-
лем ключевой информации, предложенным американской компанией Dallas Semiconductor. Носитель
информации TOUCH MEMORY (ТМ) представляет собой энергонезависимую память, размещенную
в металлическом корпусе, с одним сигнальным контактом и одним контактом земли. Корпус ТМ имеет
диаметр 16,25 мм и толщину 3,1 или 5,89 мм (в зависимости от модификации прибора).
В структуру ТМ входят следующие основные блоки [73].
1. Постоянное запоминающее устройство (ПЗУ) хранит 64-разрядный код, состоящий из байтового
кода типа прибора, 48-битового уникального серийного номера и 8-битовой контрольной суммы. Со-
держимое ПЗУ уникально и не может быть изменено в течение всего срока службы прибора.
2. Оперативное запоминающее устройство (ОЗУ) емкостью от 128 до 8192 байт содержат практиче-
ски все модификации ТМ. В одной из модификаций оперативная память аппаратно защищена от не-
санкционированного доступа.
3. Встроенная миниатюрная литиевая батарейка со сроком службы не менее 10 лет обеспечивает
питанием все блоки устройства.
Особенностью технологии хранения и обмена ключевой информации между носителем ТМ и
внешними устройствами является сравнительно низкая скорость (обусловленная последовательной
передачей данных) и высокая вероятность сбоя в тракте чтения-записи, обусловленная тем, что кон-
такт устройства ТМ с устройством чтения осуществляется пользователем вручную без дополнитель-
ной фиксации (простое касание, что и определило название прибора ТМ). В связи с этим особое зна-
чение приобретают вопросы надежного обмена между программами обработки ключевой информа-
ции пользователей и носителем ТМ.
В устройстве ТМ конструктивно отработаны вопросы надежности функционирования и вопро-
сы интерфейса со считывающим устройством на основе одного сигнального контакта. Для обеспече-
ния достоверного чтения применяются корректирующие коды, для обеспечения достоверной записи в
приборе предусмотрена технология буферизации. При проведении операции записи первоначально
вектор передаваемой в ТМ информации помещается в буфер, далее выполняется операция чтения
из буфера, затем прочтенная из буфера информация сравнивается с записываемой и в случае сов-
падения подается сигнал на перенос информации из буфера в память долговременного хранения.
Таким образом, носитель ТМ является микроконтроллерным устройством без собственной
вычислительной мощности и с ограниченным объемом хранения, но с достаточно высокими надеж-
ностными характеристиками. Поэтому применение ТМ вполне обосновано в случае повышенных тре-
бований к надежности носителя ключа и небольшого объема ключевой информации, хранимой в ТМ.
Электронные пластиковые карты становятся в настоящее время наиболее распространен-
ным и универсальным носителем конфиденциальной информации, который позволяет идентифици-
ровать и аутентифицировать пользователей, хранить криптографические ключи, пароли и коды.
Интеллектуальные карты (смарт-карты), обладающие наибольшими возможностями, эффек-
тивно применяются не только для хранения ключевой информации, но и широко используются в элек-
тронных платежных системах, в комплексных решениях для медицины, транспорта, связи, образова-
ния и т.п. Более подробные сведения об электронных пластиковых картах приводятся в разделе 9.4.

<< Предыдущая

стр. 23
(из 48 стр.)

ОГЛАВЛЕНИЕ

Следующая >>