СПОСОБ ХРАНЕНИЯ И ИСПОЛЬЗОВАНИЯ КРИПТОГРАФИЧЕСКОГО КЛЮЧА
METHOD OF STORING AND USING CRYPTOGRAPHIC KEY

Изобретение относится к области криптографии, а именно к асимметричным криптоалгоритмам. Более конкретно, настоящее изобретение описывает способ хранения и использования ключей асимметричных криптографических алгоритмов на эллиптических кривых.
Асимметричная криптография начала активно развиваться с 1976 года после выхода статьи У.Диффи и М.Хеллмана «Новые направления в криптографии» (W.Diffie, М.Е.Hellman «New Directions in Cryptography). В классических (симметричных) системах шифрования для обмена сообщениями два абонента должны иметь общий, заранее согласованный ключ, хранящийся в тайне. В асимметричных алгоритмах шифрования каждый абонент имеет ключевую пару - открытый и закрытый секретный ключи, связанные друг с другом некоторым математическим соотношением, зависящим от используемого алгоритма. Открытый ключ может быть сообщен кому угодно, например опубликован в интернете. Закрытый секретный ключ хранится пользователем в тайне. Чтобы послать сообщение абоненту, это сообщение необходимо зашифровать с помощью открытого ключа этого абонента, а для расшифровки требуется знание соответствующего закрытого секретного ключа.
Аналогичным образом устроены асимметричные системы электронной цифровой подписи (ЭЦП). Для того чтобы подписать некоторые данные, абонент выполняет некоторое математическое преобразование с использованием своего секретного ключа. Далее любой знающий соответствующий открытый ключ может с помощью него проверить электронную цифровую подпись абонента.
Отметим, что открытый ключ (public key в англоязычной литературе) во многих источниках называется также ключом расшифрования и/или ключом проверки ЭЦП, а закрытый ключ (private key) - ключом зашифрования и/или ключом подписи.
В последнее десятилетие широкое распространение получили асимметричные криптоалгоритмы на эллиптических кривых. Хорошо известен алгоритм шифрования Эль-Гамаля для эллиптических кривых (Н.Коблиц. Курс теории чисел и криптографии. С.206). Важное значение имеют алгоритмы ЭЦП на эллиптических кривых - ECDSA, российский стандарт ЭЦП ГОСТ Р 34.10-2001, схема ЭЦП Nyberg-Rueppel с возвратом сообщения (А.А.Болотов, С.Б.Гашков, А.Б.Фролов. Элементарное введение в эллиптическую криптографию. Протоколы на эллиптических кривых. С.102). Имеет широкое применение алгоритм выработки общего ключа Диффи-Хеллмана на эллиптической кривой (А.А.Болотов, С.Б.Гашков, А.Б.Фролов. Элементарное введение в эллиптическую криптографию. Протоколы на эллиптических кривых. С.85).
Как уже было сказано, во всех асимметричных криптографических системах важно сохранять закрытый ключ в секрете. Поэтому возникает задача безопасного хранения и использования этого ключа.
Известно портативное устройство хранения данных с системой шифрования (патент РФ №2006137201, G06F 12/14), содержащее энергонезависимую память для хранения данных пользователя и средства интегральной схемы для генерирования, по меньшей мере, одного ключа. Отличие данного устройства от предлагаемого изобретения состоит в том, что оно не хранит ключа шифрования (только, возможно, ключ обмена данными), в то время как предлагаемое изобретение направлено именно на хранение ключевой информации и позволяет как генерировать секретный ключ, так и загружать его извне. В портативном устройстве хранения данных функция цифровой подписи предусмотрена только для подтверждения аутентичности данных, передаваемых с главного компьютера, в то время как предлагаемое изобретение позволяет выполнять криптографические операции, предусматриваемые назначением ключа. В частности, помимо формирования цифровой подписи предлагаемое изобретение позволяет вырабатывать общий ключ по алгоритму Диффи-Хеллмана. Таким образом, предлагаемое изобретение направлено именно на расширение возможностей работы с ключами и на повышение защищенности секретного ключа.
Наиболее близким аналогом предлагаемого изобретения является устройство ввода и хранения ключевой информации (патент РФ №2175775, G06F 3/06, H04L 9/00, G06F 12/14), уменьшающее вероятность компрометации шифроключей за счет маскирования их случайной последовательностью, формируемой устройством. Для этого устройство содержит генератор тактовых импульсов, блок оперативной памяти, контактное устройство с внешним носителем, буферный регистр, регистр номера зоны, коммутатор номера зоны, выходной блок, датчик адресов, узел пуска-сброса, блок управления вводом-выводом, узел идентификации, генератор случайных импульсов, узел сравнения контрольных групп и датчик команд. К недостаткам данного устройства можно отнести то, что оно не выполняет криптографических преобразований, поэтому ключ покидает устройство и может быть скомпрометирован при его использовании.
Основной технический результат, на достижение которого направлено заявляемое изобретение, заключается в снижении вероятности компрометации закрытого секретного ключа и исключении криптографически опасных последствий компрометации ключа в ограниченной модели нарушителя.
Краткое описание чертежей
Фиг.1. Общая схема разделения ключа на доли.
Фиг.2. Вариант распределенного вычисления электронной цифровой подписи к сообщению.
Фиг.3. Вариант выработки общего ключа для алгоритма парольной аутентификации.
Осуществление изобретения
Данное изобретение может быть реализовано с использованием в качестве ключевых носителей микропроцессорных устройств, а в качестве вычислительной системы - программы для ЭВМ, реализующей криптографические алгоритмы, например средство криптографической защиты информации «КриптоПро CSP». При этом в качестве алгоритма электронной цифровой подписи может быть использован российский стандарт ГОСТ Р 34.10-2001.
Прежде всего указанная задача решается за счет разделения ключа между несколькими ключевыми носителями 1 на доли 2, которые защищенно хранятся на ключевых носителях 1, имеющих возможность выполнять операции на эллиптических кривых. Это означает, что доли 2 секретного ключа должны быть недоступны для экспорта с носителей штатными средствами.
Реализация этой идеи применительно к российскому стандарту ЭЦП ГОСТ Р 34.10-2001 выполняется следующим образом (см. фиг.1).
1
n
Пусть d - ключ подписи в соответствии с ГОСТ Р 34.10-2001, d, …, d - ключевые доли 2, хранящиеся на носителях 1. Тогда
1
n
d≡d+.…+d (mod q).
При этом общий открытый ключ 3 проверки ЭЦП формируется в вычислительной системе 4 (блоке сборки) по правилу
1
n
Q=Q+…+Q,
1
1
n
n
где Q=dP, …, Q=dP - доли открытого ключа 3 и Р - точка эллиптической кривой порядка q согласно ГОСТ Р 34.10-2001.
Также можно использовать способ, при котором доли закрытого секретного ключа могут изменяться при том, что открытый ключ 3 остается неизменным и может быть защищен сертификатом.
Следующим важным аспектом предлагаемого изобретения является то, что криптографические операции (например, формирование электронной цифровой подписи, расшифрование и/или выработка общего ключа по алгоритму Диффи-Хеллмана) выполняются распределенно на ключевых носителях 1, не формируя общего закрытого секретного ключа, а результаты выполнения этих операций обрабатываются в вычислительной системе 4 (блоке сборки), формирующей общий результат криптографической операции в виде общей подписи 5 к сообщению, являющейся функцией от частичных подписей (см. фиг.2).
Это позволяет сформировать ЭЦП, расшифровать сообщение или выработать общий ключ по алгоритму Диффи-Хеллмана без раскрытия ключевых долей и построения общего закрытого ключа, а также независимо использовать генераторы случайных величин ключевых носителей для порождения случайного компонента подписи. Таким образом, требованием к ключевому носителю является возможность выполнения на нем криптографических операций на эллиптических кривых.
G
Пусть хэш-код сообщения двоично представляется некоторым числом е. Для вычисления ЭЦП согласно ГОСТ Р 34.10-2001 необходимо выбрать случайное число к, удовлетворяющее неравенству 0<k<q (q - параметр алгоритма), затем вычислить r≡x(kP)(mod q) (первая координата точки kР). После этого вычисляется значение s≡(rd+ke)(mod q), и подписью сообщения является пара чисел (r, s).
i
i
i
1
n
i
i
i
1
n
В рассматриваемом изобретении при формировании ЭЦП распределенные вычисления могут проводиться следующим образом. На первом шаге каждый ключевой носитель вырабатывает случайное число k (1≤i≤n - номер ключевого носителя), вычисляет соответствующую кратную точку эллиптической кривой R=kР и передает ее в вычислительную систему. Вычислительная система находит точку R=R+.…+R и передает первую координату этой точки (r) на ключевые носители. На следующем шаге каждый ключевой носитель находит s≡(rd+ke)(mod q) и передает полученное значение в вычислительную систему. Вычислительная система считает s≡(s+…+s)(mod q). Полученная пара чисел (r, s) является электронной цифровой подписью согласно ГОСТ Р 34.10-2001.
i
i
i
i
i
i
i
i
1
n
-1
Аналогичный способ можно использовать при выработке общего ключа Диффи-Хеллмана. Пусть имеется закрытый ключ d, разделенный на доли описанным выше способом, и открытый ключ Q абонента, с которым необходимо выработать открытый ключ. Необходимо распределенно вычислить кратную точку d·Q. Для этого на ключевые носители передается значение (αQ), где α - некоторое случайное число. Каждый ключевой носитель умножает полученную точку на свою ключевую долю и передает на блок сборки значение d·(αQ). Вычислительная система находит d·Qr=α ·d·(αQ), после чего вычисляет dQ=dQ+…+dQ.
Очевидно, что приведенные выше алгоритмы являются только примером, а конкретные реализации могут отличаться от данного описания. Кроме того, представляемое изобретение не ограничивается описанными алгоритмами и может быть по аналогии распространено на произвольные асимметричные криптографические алгоритмы на эллиптических кривых.
Для повышения надежности предлагаемого изобретения можно использовать способ, отличающийся тем, что используется протокол криптографической парольной двусторонней аутентификации между ключевым носителем 1 и пользователем 6, криптографически защищается канал между ключевым носителем 1 и вычислительной системой 4, используемый при изменении долей закрытого секретного ключа и получении данных с носителя, и число неудачных попыток аутентификации контролируется счетчиками.
1
2
pw
i
1
2
Возможно использование любого из известных протоколов парольной аутентификации или их модификаций (Б.Шнайер. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си. С.578, протоколы ЕКЕ). Основной идеей подобных протоколов является то, что обменивающиеся стороны имеют некоторый общий секрет, основанный на пароле, а затем на основе этого секрета вырабатывают общий ключ 7 (см. фиг.3). В предлагаемом изобретении в качестве такого общего секрета используется точка эллиптической кривой  причем на ключевом носителе эта точка защищенно хранится и не может быть прочитана штатными средствами, а вычислительная система формирует эту точку после предъявления пользователем пароля. После этого вычислительная система и ключевой носитель выбирают некоторые случайные числа а и а (временные секретные ключи), вычисляют соответствующие им кратные точки (временные открытые ключи) и обмениваются значениями Q+aР. После этого обе стороны вычисляют общий ключ 7 K=ааР, на котором затем проводят аутентификацию и шифруют передаваемые данные.
В некоторых реализациях предлагаемого изобретения можно использовать способ, отличающийся тем, что вычислительная система хранит доли закрытого секретного ключа, каждая из которых защищена паролем пользователя, причем криптографические операции с этими долями выполняются так же, как и с долями, хранящимися на ключевых носителях.
Кроме того, возможен способ реализации изобретения, при котором некоторые ключевые доли 2 не хранятся, а являются функциями от паролей и формируются вычислительной системой после предъявления соответствующих паролей, причем криптографические операции с этими долями выполняются так же, как и с долями, хранящимися на ключевых носителях. Дополнительно к этому существует способ, при котором доли закрытого секретного ключа, формируемые в вычислительной системе, зависят еще и от данных, защищенно хранящихся на ключевых носителях 1.
Данное изобретение может использоваться в различных областях. Например, описанный способ хранения и использования криптографических ключей может применяться в документообороте (для подписи документов), при формировании подписи к электронным письмам, в системах, требующих аутентификации пользователя, при подписи транзакционных данных, а также во многих других областях, использующих криптографию на эллиптических кривых.
Специалисту в данной области техники очевидно, что по мере развития технологии базовая идея изобретения может быть реализована различными способами. Поэтому изобретение и варианты его воплощения не ограничиваются вышеупомянутыми примерами, но они могут варьироваться в рамках объема, определяемого формулой изобретения.
Список литературы
1. W.Diffie, М.Е.Hellman. New Directions in Cryptography. IЕЕE Transactions on Information Theory, v.IT-22, n.6, 1976, p.644-654.
2. ГОСТ P 34.10-2001 «Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи».
3. Б.Шнайер. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си. М.: ТРИУМФ, 2002.
4. Н.Коблиц. Курс теории чисел и криптографии. М.: Научное издательство ТВП, 2001.
5. А.А.Болотов, С.Б.Гашков, А.Б.Фролов. Элементарное введение в эллиптическую криптографию. Протоколы на эллиптических кривых. М.: КомКнига, 2006.