Научная статья на тему 'Скрытые каналы передачи информации в алгоритме электронной цифровой подписи ГОСТ р 34. 10-2001'

Скрытые каналы передачи информации в алгоритме электронной цифровой подписи ГОСТ р 34. 10-2001 Текст научной статьи по специальности «Математика»

CC BY
1549
155
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
КРИПТОПРОТОКОЛЫ / СКРЫТЫЕ КАНАЛЫ / ИНФОРСАЦИОННАЯ БЕЗОПАСНОСТЬ / CRYPTOGRAPHY / HIDDEN CHANNELS / INFORMATION SECURITY

Аннотация научной статьи по математике, автор научной работы — Атмашкин Максим Игоревич, Белим Сергей Викторович

Приведены различные способы организации скрытых каналов в алгоритме цифровой подписи ГОСТ Р 34.10-2001. Рассмотрены примеры использования скрытых каналов для обмена сообщениями, для тайной передачи ключа подписи, а также для создания криптографических протоколов. Представлен способ ликвидации скрытых каналов.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — Атмашкин Максим Игоревич, Белим Сергей Викторович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Hidden Channels of Information Transmission in a Digital Signature Algorithm GOST R 34.10-20011Omsk State University n.a. F.M. Dostoevskiy

The different ways of the organization of the hidden channels in algorithm of the digital signature of GOST P 34.10-2001 are presented. Examples of use of the hidden channels for an exchange of messages, for secret transfer of a key of the signature, and also for creation of cryptographic protocols are considered. The way of elimination of the hidden channels is presented.

Текст научной работы на тему «Скрытые каналы передачи информации в алгоритме электронной цифровой подписи ГОСТ р 34. 10-2001»

УДК 004.056:004.057.4

СКРЫТЫЕ КАНАЛЫ ПЕРЕДАЧИ ИНФОРМАЦИИ В АЛГОРИТМЕ ЭЛЕКТРОННОЙ ЦИФРОВОЙ ПОДПИСИ ГОСТ Р 34.10-2001

М. И. Атмашкин, С. В. Белим

Приведены различные способы организации скрытых каналов в алгоритме цифровой подписи ГОСТ Р 34.10-2001. Рассмотрены примеры использования скрытых каналов для обмена сообщениями, для тайной передачи ключа подписи, а также для создания криптографических протоколов. Представлен способ ликвидации скрытых каналов.

Введение

Многие схемы цифровой подписи имеют «особенность», позволяющую подписывающему спрятать в подписи некоторую информацию, которая может быть затем извлечена при знании дополнительного секрета. Причём получаемые таким образом подписи неотличимы от «обычных». Это свойство было обнаружено Симмонсом и названо [7] им скрытым каналом (англ. subliminal channel).

Данным свойством обладают схемы, в которых получаемая подпись зависит не только от подписываемого сообщения, но и от некоторого «случайного» числа. Перебирая различных кандидатов на место этого числа, подписывающий может управлять видом подписи и закодировать в ней некоторую информацию.

Такими, например, являются подписи: Ong-Sehnorr-Shamir, ElGamal, DSA, ESIGN и другие [3]. Не является исключением [1] и действующий российский стандарт цифровой подписи ГОСТ Р 34.10-2001.

Симмонс приводит такую [5] классификацию скрытых каналов:

• широкополосные (англ. broadband) — количество бит в скрытом сообщении сравнимо с числом бит в случайном числе. Обычно скрываемое сообщение и является этим числом либо легко из него получается;

• узкополосные (англ. narrowband) — количество бит в скрытом сообщении значительно меньше количества бит в случайном числе. Как правило, в этом случае размер сообщения зависит не от размеров случайного числа, а от вычислительной мощности подписывающего или проверяющего.

Copyright © 2011 М. И. Атмашкин, С. В. Белим.

Омский государственный университет им. Ф. М. Достоевского.

E-mail: AtmashkinMI@gmail.com, sbelim@mail.ru

Не стоит, однако, считать, что широкополосные каналы лучше, В большинстве случаев они обладают недостатком, в результате которого проверяющему становится известен закрытый ключ подписи. Узкополосные каналы этого недостатка лишены,

В данной работе предложены различные типы широкополосных и узкополосных каналов для алгоритма цифровой подписи ГОСТ Р 34,10-2001, Рассмотрены примеры организации криптографических протоколов на основе широкополосных скрытых каналов, а также представлена модификация алгоритма подписи, позволяющая ликвидировать скрытые каналы,

1. Алгоритм ЭЦП ГОСТ Р 34.10-2001

Российский стандарт [2] ГОСТ Р 34,10-2001 является одним из самых молодых алгоритмов цифровой подписи. Стандарт принят и введён в действие Постановлением Госстандарта России от 12 сентября 2001 года взамен ГОСТ Р 34,10-94 и основан на эллиптических кривых. Его стойкость основывается на сложности вычисления дискретного логарифма в группе точек эллиптической кривой, а также на стойкости функции хэширования ГОСТ Р 34,11-94,

1.1. Параметры схемы цифровой подписи

• простое число р — модуль эллиптической кривой такой, что р > 2255;

• эллиптическая кривая Е, задаваемая своим инвариантом ,1{Е) или коэффициентами а,Ь £ Рр, где Рр — конечное поле из р элементов;

• целое число га, — порядок группы точек эллиптической кривой, га, должно быть отлично от р;

• простое ЧИСЛО д — порядок некоторой циклической подгруппы группы точек эллиптической кривой, т. е. 5 | га. Кроме того, 2254 < д < 2256;

• точка Р эллиптической кривой Е, являющаяся генератором подгруппы порядка д, т, е, дР = О и кР ф О для всех к = 1,2,... ,д — 1, где точка О является нейтральным элементом группы;

• к(М) — функция хэширования (ГОСТ Р 34,11-94), которая отображает сообщения М в двоичные вектора длины 256 бит,

1.2. Используемые ключи

• ключ подписи — целое число (1, удовлетворяющее неравенству 0 < (1 < д\

• ключ проверки — точка эллиптической кривой С}, удовлетворяющая равенству с1Р =

1.3. Дополнительные требования

• должно быть выполнено условие рг ф 1 (mod q), для всех целых чисел t = 1,2,,В, где В удовлетворяет неравенству В > 31;

• инвариант кривой должен удовлетворять условию J(E) ф 0 или 1728,

1.4. Формирование цифровой подписи

1, Вычисление хэш-функции от сообщения М: z = h(M).

2, Вычисление е = z (mod q), и если е = 0, положить е = 1,

3, Генерация случайного числа к такого, что 0 < к < q.

4, Вычисление точки эллиптической кривой С = кР и по ней нахождение г = хс (mod q), где хс — это координата х точки С. Если г = 0, то возвращаемся к предыдущему шагу,

5, Нахождение:

s = rd + ке (mod q), (1)

если s = 0, то возвращаемся к шагу (3),

6, Формирование цифровой подписи ( = (г || s).

1.5. Проверка цифровой подписи

1, Вычисление по цифровой подписи ( чисел Г И S. Если хотя бы одно из неравенств 0<r<gH0<s<5 неверно, то подпись неправильная,

2, Вычисление хэш-функции от сообщения М: z = h(M).

3, Вычисление е = z (mod q), и если е = 0, положить е = 1,

4, Вычисление v = е-1 (mod q).

5, Вычисление z\ = su (mod q) и Z2 = —ru (mod q).

6, Вычисление точки эллиптической кривой С = Z\P + Z2Q. И определение R = хс (mod q), где хс — координата х точки С.

7, В случае равенства R = г подпись правильная, иначе — неправильная,

2. Скрытые каналы

Поскольку в алгоритме формирования цифровой подписи присутствует случайное число к, то подписывающий может надлежащим выбором этого числа придать подписи ( некоторый «особый» вид, закодировав в ней сообщение. Рассмотрим скрытые каналы согласно классификации, данной Симмонсом,

2.1. Широкополосные каналы

В простейшем случае можно подставить само сообщение вместо числа к. Алгоритмы формирования и проверки подписи принципиально не изменятся, и тот, кто знает ключ проверки, может по-прежнему проверить правильность подписи, Но если проверяющему известен также ключ подписи d, то он может вычислить к по формуле, вытекающий из (1):

к = e~\s — rd) (mod q),

а если ключ подписи неизвестен, то для нахождения к нужно решить проблему дискретного логарифма в группе точек эллиптической кривой.

Несмотря на максимальную пропускную способность, данный канал обладает серьёзными недостатками:

1, Проверяющему необходимо знать ключ подписи. Это является очень серьёзным недостатком, потому что в этом случае для подписывающего существует угроза компрометации его ключа подписи, и он должен полностью довериться своему собеседнику. Кроме того, в ряде случаев заранее невозможно узнать ключ подписи. Стоит также отметить, что в общем случае число к будет некоторой обратимой функцией от скрываемого сообщения, и знание сообщения влечёт за собой знание числа к, из которого легко получается ключ подписи:

d = r~1(s — ке) (mod q), (2)

т, е, обмен «большими» сообщениями влечёт знание ключа подписи,

2, Стойкость алгоритма ГОСТ Р 34,10-2001 сильно зависит от качества используемого ГПСП, потому что при повторе числа к можно легко вычислить ключ подписи d. Так как число г зависит только от к, то оно будет в обоих случаях одинаковым, и получается такая система:

s\ = rd + ке 1 (mod q), $2 = rd + ке2 (mod q), (3)

из которой следует формула для к:

к = (s2 - si)(e2 - ei)“1 (mod q), а зная к, можно уже найти d по формуле (2),

В случае использования скрытого канала данная ситуация становится очень вероятной — примером может быть обмен регулярными дежурными сообщениями. Чтобы исправить этот недостаток, можно использовать приём «подсаливания» числа к — замены части его бит на случайные. При извлечении скрытого сообщения собеседник будет просто игнорировать эти биты. Данный приём плох тем, что жертвуется пропускная способность скрытого канала, причём число подменяемых бит должно быть довольно велико для защиты от атаки перебором. Если злоумышленник

знает, что два случайных числа в системе (3) отличаются на небольшое число п бит в известных позициях, то он может попытаться решить 2™ систем линейных уравнений. Для усложнения схемы можно постоянно менять позиции заменяемых бит по некоторому заранее известному закону.

Но есть и более безопасный метод, который не поглощает пропускной способности канала. Можно вместо числа к использовать: к[ = к + hi (mod q), где число hi является действительно случайным. Получатель для восстановления исходного сообщения вычислит: к = к[ — hi (mod q). Понятно, что последовательность hi должна быть известна обоим. Этого можно достичь, например, используя общие секретные параметры для криптографически стойкого ГПСП, В качестве такого генератора может выступать генератор на основе функций хэширования. Пусть Н(х) — это 256-битная хэш-функция, например, это может быть ГОСТ Р 34,11-94 или SHA-256, Тогда ПСП будет выглядеть так:

h0 = H(d), hi = H(hi-1 || d),i = 1, 2,... (4)

Очевидно, последовательность легко порождается по известному ключу подписи, но без его знания вычислительно трудно получить как следующие, так и предыдущие члены последовательности. Кроме знания ключа подписи собеседникам не нужно иметь других секретов. Получающиеся в результате подписи будут неотличимы от «обычных»,

3, Не всякое сообщение, которому соответствует некоторое число 0 < к < q, можно встроить в подпись. Это связано с ограничениями (4) и (5) шагов алгоритма формирования подписи: г / 0 (mod q) и s ф 0 (mod q). Подобные подписи отбрасываются на шаге (1) алгоритма проверки подписи, Причём заранее сказать, для каких к не получится создать подпись, тяжело из-за сложной зависимости г и s от к.

Используя некоторое обобщение системы (3), можно реализовать схему генерации чисел к, которая позволит при знании некоторого секрета узнать ключ подписи. Например, можно использовать такую последовательность kf.

к0, h = ciiki-i + bi (mod q),i= 1,2,...,

где ко — зерно, полученное из некоторого внешнего источника энтропии, а последовательности cii и bi построены аналогично (4) на основе ключей da и db соответственно. Для тех, кто не знает этих ключей, последовательность является стойкой криптографической ПСП, Но тот, кому известны ключи da и db, может перехватить две последовательные подписи и, зная номер г, вычислить cii и bi, а затем решить систему:

Sj_i = Ti-id + h-iei-i (mod q),Si = nd + (a^-i + (mod q). (5)

Она линейная, и в ней только два неизвестных: d и |. которые легко находятся, Для «простых» перехватчиков неизвестных в этой системе слишком много. Имея даже большое количество перехваченных подписей, вычислительно трудно решить систему из-за сложной связи между членами в ПСП cii и bi.

3. Узкополосные каналы

Основным преимуществом узкополосных каналов является отсутствие необходимости раскрывать ключ подписи, К недостаткам же можно отнести повышенные требования к вычислительным ресурсам — памяти и процессорному времени, Именно ограниченностью этих ресурсов и обусловлена низкая пропускная способность этих каналов. Узкополосные скрытые каналы можно условно разделить на вероятностные и детерминированные,

3.1. Вероятностные каналы

Ключевой особенностью этих каналов является то, что требуемые скрытые сообщения можно получить только с некоторой вероятностью. Чем больше бит будет в сообщении, тем меньше вероятность его получить, В общем случае алгоритм создания вероятностного канала выглядит так [4]:

1, Подписывающий и проверяющий договариваются о некоторой секретной ключевой функции НкО, которая отображает подпись ( или её часть (г или в) в некоторую последовательность бит М, а также о некотором способе кодирования сообщения такой последовательностью,

2, Подписывающий генерирует случайные числа к, формирует для каждого из них цифровую подпись по стандартному алгоритму и вычисляет значения функции к К () от полученных подписей до тех пор, пока не получит последовательность бит М, соответствующую встраиваемому сообщению, либо пока не кончится отведённое на подпись время — в этом случае встроить сообщение не удастся,

3, После проверки подписи получатель, зная секретный ключ К и алгоритм декодирования последовательности М. извлекает секретное сообщение,

В качестве примера можно привести канал, предложенный Симмонсом, для ПЯЛ [6]. Его адаптация для подписи ГОСТ Р 34,10-2001 будет выглядеть так. Секретным ключом К являются п различных больших простых чисел. Функция кк() ставит в соответствие части г подписи последовательность М, состоящую из п бит, где /-н бит равен «1», если г является квадратичным вычетом по модулю /-го простого числа, и «0» — в противном случае. Последовательность М без дополнительных преобразований и будет являться секретным сообщением. Вероятность того, что г будет квадратичным вычетом по модулю некоторого простого числа, составляет |, для п чисел соответственно — Чем больше подписей в единицу времени может генерировать подписывающий, тем большую длину скрытого канала он может себе позволить.

На шаге (1) алгоритма создания вероятностного канала действительно удобнее использовать часть г подписи, потому что она вычисляется первой, В качестве функции 1%к() можно, например, использовать следующие функции:

• хэш-функцию ГОСТ Р 34,11-94 со стартовым вектором хэширования, равным К, либо другую ключевую хэш-функцию;

• возведение числа г в секретную степень, равную К, по модулю числа </. Этот способ основан на проблеме дискретного логарифмирования в кольце вычетов по модулю простого числа,

• умножение точки эллиптической кривой С, получаемой на шаге (4) алгоритма формирования подписи, на секретное число К, в качестве значения функции будет выступать координата х полученной точки. Этот способ основан на проблеме дискретного логарифмирования в группе точек эллиптической кривой,

В качестве способа кодирования значения предложенных функций Нк () в скрытое сообщение можно использовать остаток от деления на степень 2, который равен младшим битам числа. Если допустить, что все остатки будут равновероятны, то вероятность получения конкретного сообщения будет такая же, как в примере Симмонса,

На шаге (2) алгоритма создания вероятностного канала можно использовать следующую оптимизацию. Вместо генерации нескольких случайных чисел к можно сгенерировать одно, а затем прибавлять к полученной точке С = кР точку Р, пока не получим нужного значения функции Нк ()■ Этот способ не уменьшает безопасность подписи, но позволяет заменить многократное умножение точек на более простое сложение,

3.2. Детерминированные каналы

Данный тип скрытых каналов позволяет гарантированно создавать требуемые скрытые сообщения, но требует от лица, извлекающего сообщения, большой процессорной мощности и дополнительной памяти. Алгоритм выглядит так:

1, Подписывающий и проверяющий договариваются о размере скрываемых сообщений. Подписывающий генерирует ключ для ПСП, построенной по принципу (4), и сохраняет его в своей постоянной памяти. Затем он генерирует большое число п членов этой ПСП, где п — число сообщений, которые он сможет отправить по этому каналу. Для каждого из этих чисел подписывающий вычисляет точку С из шага (4) алгоритма формирования подписи. Все п полученных точек подписывающий отправляет проверяющему,

2, Подписывающий начинает формировать подписи по стандартному алгоритму, но случайные числа он берет из ПСП, восстановленной по сохранённому ключу. Вместо точки С он использует точку С = С + IIII где 0 < тп < 2п является скрываемым сообщением, длиной п бит,

3, После проверки подписи проверяющий начинает прибавлять к очередной точке С из точек, переданных ему на шаге (1), точку Р до тех пор, пока не получит точку С'. По числу операций сложения он восстановит скрытое сообщение т.

В данном алгоритме проверяющий так и не узнает ни одного случайного числа /г из секретной ПСП, Следовательно, он не сможет вычислить ключ подписи по формуле (2), Проверяющему сложно установить зависимость между переданными ему точками, а также узнать по конкретной точке использованное случайное число. Недостатком данного алгоритма является необходимость передавать большой объем информации на шаге (1), а также неравномерность во времени, затрачиваемом на декодирование получателем различных сообщений. Эту неравномерность можно сгладить, если начинать проверку не с точки ( а с точки, сдвинутой от неё на некоторое случайное число точек Р, ив дальнейшем осуществлять сложение с точками Р циклически с учётом границ сообщения т.

4. Ликвидация скрытых каналов

Все представленные скрытые каналы основаны на том, что подписывающий может самостоятельно выбирать случайное число к. С другой стороны, нельзя доверить кому-то генерацию этого числа, так как это неминуемо раскроет ключ подписи. Очевидным и наиболее подходящим решением будем совместная генерация числа к таким образом, что подписывающий не сможет контролировать ни один бит числа к, а контроллер не сможет узнать ни один бит числа к. В конце протокола контроллер должен убедиться, что подписывающий использовал именно то число, которое они сгенерировали вместе. Адаптация протокола, предложенного Симмонсом для DSA [5], для подписи ГОСТ Р 34,10-2001 будет выглядеть так:

1, Подписывающий генерирует число к' и отправляет контроллеру точку U = к'Р.

2, Контроллер выбирает случайное число к” и отправляет подписывающему,

3, Подписывающий использует для создания подписи число к = к'к" (mod q) и отправляет полученную подпись контроллеру,

4, Контроллер проверяет подпись, а также то, что координата х точки k"U сравнима с г по модулю q.

Протокол Симмонса имеет серьёзный недостаток — на шаге (2) контроллер может сам управлять частью г подписи и встроить в неё собственное скрытое сообщение, Для предотвращения этого можно сделать следующую модификацию протокола. На шаге (1) подписывающий вместо точки U должен отправить значение хэш-функции от этой точки. Контроллер умножает точку С, получаемую на шаге (6) алгоритма проверки цифровой подписи, на к"~l (mod q), считает от неё значение хэш-функции и сверяет с полученным от подписывающего, В таком варианте протокола ни подписывающий, ни контроллер не смогут заранее узнать, каким будет число г. Но применение контроллера для создания подписей возможно далеко не всегда, и от скрытых каналов полностью избавиться нельзя.

5. Криптографические протоколы

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

В то время как узкополосные каналы удобнее для организации утечки ключа подписи в непроверенных реализациях цифровой подписи, широкополосные каналы можно использовать в криптографических протоколах для легальной передачи сеансовых ключей, причём сам факт передачи ключей может быть скрыт. Скрытый канал может выполнять функции шифра, при этом сохранятся все «обычные» свойства цифровой подписи. Таким образом в подписи можно зашифровать сеансовый ключ, а проверяющий сможет по-прежнему проверить целостность сообщения и его авторство, В широкополосном канале можно передать сеансовый ключ размером 256 бит, что достаточно для таких симметричных шифров, как ГОСТ 28147-89 или AES-256.

Будем использовать стандартные [3] имена для участников протоколов: Алиса — сторона, инициирующая сеанс, Боб — сторона, с которой устанавливается сеанс, Трент — доверенная промежуточная сторона.

Подпись будем обозначать так: Sd(k,M), где d — ключ подписи; к — случайное число, используемое для формирования подписи; М — подписываемое сообщение. Вместе с подписью в протоколах подразумевается передача самого сообщения М. Представленные протоколы предполагают синхронизацию часов всех участников. Погрешность синхронизации компенсируется запоминанием истории передач в течение некоторого времени. Передача меток времени вместе с временем жизни ключей защищает от повторной передачи сообщений,

5.1. Протокол № 1

Рассмотрим первый протокол, который использует простейший широкополосный канал с общим ключом подписи. Он является модифицированным вариантом базовой версии протокола Kerberos [3]. Вместо шифрования здесь используется цифровая подпись со скрытым каналом.

Пусть Трент имеет общий ключ подписи с Алисой — dA и с Бобом — (¿д. Данный протокол позволяет обменяться сеансовым ключом, который сгенерировал Трент, а также провести взаимную аутентификацию,

1, Алиса отправляет Тренту сообщение с идентификаторами: А, В.

2, Трент создаёт два сообщения, состоящих из метки времени Тт, времени жизни ключа L и идентификаторов. В сообщении для Алисы используется идентификатор Боба, а для Боба наоборот. Затем он подписывает эти сообщения ключами dA и de- В качестве случайного числа в обеих подписях используется сгенерированный им сеансовый ключ К, зашифрованный соответственно ключами dA и (¿б- Полученные подписи Трент отправляет Алисе: SdA(EdA(K),B || Тт || L), SdB(EdB(K), А || Тт || L).

3, Алиса проверяет первую подпись Трента, убеждается, что сообщение текущее, извлекает и расшифровывает сеансовый ключ. Затем она создаёт сообщение, состоящее из её идентификатора, и метки времени, шифрует

его сеансовым ключом и отправляет Бобу, Алиса также посылает Бобу вторую подпись Трента: Ек{А || Тт), SdB(EdB(K), А || Тт || L).

4, Боб проделывает с подписью Трента те же операции, что и Алиса, затем он расшифровывает сообщение Алисы и убеждается в том, что оно текущее. Создаёт сообщение, состоящее из метки времени плюс единица, шифрует его сеансовым ключом и отправляет Алисе: Ек(Тт + 1).

5, Алиса расшифровывает сообщение Боба и проверяет метку времени,

6, Алиса и Боб шифруют свои сообщения, используя сеансовый ключ К.

Шифрование сеансового ключа необходимо для того, чтобы Алиса не смогла вычислить ключ с1в по формуле (2), Кроме того, это делает части г передаваемых подписей различными. Злоумышленник, перехватывающий сообщения, может даже не узнать, что в этом протоколе, кроме аутентификации, происходит обмен сеансовым ключом. Главным преимуществом по сравнению с Kerberos является аутентификация Трента, обеспечиваемая цифровыми подписями,

5.2. Протокол № 2

Рассмотрим теперь протокол, основанный на «недостатке» широкополосных каналов, связанном с повтором случайного числа и последующим вычислением ключа подписи. Цифровая подпись может использоваться здесь для разделения секрета, в роли которого будет выступать сеансовый ключ.

Пусть Тренту известны открытые ключи Алисы — Аиреп и Боба — используемые в некоторой схеме асимметричного шифрования, Алисе и Бобу известен ключ проверки подписи SmainQ Трента. Эта подпись будет использоваться для аутентификации Трента и может вычисляться по другому алгоритму, Скрытый канал в этой подписи, если он есть, использоваться не будет,

1, Алиса отправляет Тренту сообщение с идентификаторами: А, В.

2, Трент генерирует сеансовый ключ К, а также ключи подписи и проверки для алгоритма со скрытым каналом — Tciose и Торега, Трент составляет сообщение из подписи SmainQ ключа Т^п, а также подписи сообщения, состоящего из идентификатора Боба, открытого ключа Боба, метки времени и времени жизни сеансового ключа, сделанной на ключе Tciose-В качестве случайного числа в подписи используется ключ К. Полученное сообщение Трент шифрует открытым ключом Алисы и отправляет ей: -^Aopen (.‘-’main (Tcype'n) || ‘-’Tciose(,K , В || Дэре«, II Тт || L)).

3, Трент проделывает те же действия для Боба и отправляет ему аналогичное сообщение: EB^^SmainiTopen) || STclose{K, А II Aopen || ТТ || L)).

4, Алиса расшифровывает сообщение Трента, проверяет подписи, убеждается в том, что сообщение текущее. Затем она зашифровывает открытым ключом Боба подпись Трента со скрытым каналом и отправляет Бобу: Eb^JSt„,JK,B II Д,от II Тт II L)).

5, Аналогично Боб отправляет Алисе: ЕАореп(8тс1оае(К, А || Аореп || Тт || Ь)).

6, Алиса и Боб расшифровывают и проверяют принятые подписи. Зная две подписи Трента, каждый из них может восстановить сеансовый ключ К.

7, Алиса и Боб шифруют свои сообщения, используя сеансовый ключ К.

Ключ подписи со скрытым каналом является одноразовым, чтобы участники не могли узнать сеансового ключа после шагов (2) и (3), По той же причине используется шифрование с открытым ключом вместо симметричного шифрования, Без подписи б'тоатО Алиса или Боб могли бы выдавать себя в дальнейшем за Трента, Ключ для этой подписи может быть долговременным,

5.3. Протокол № 3

Не всегда приемлем тот факт, что сеансовый ключ генерирует третья сторона, в дальнейшем ей будет доступна вся переписка. Более привлекательной является совместная генерация ключа Алисой и Бобом, Алиса генерирует ключ /\ \. Боб соответственно — К в, сеансовый ключ получается в результате сложения по модулю 2 этих ключей: К = Ка Кц. Совместную генерацию ключа можно организовать, например, используя формулу (5), Обменявшись одной подписью, участники протокола не смогут в дальнейшем отказаться от выбранного ключа. После обмена второй подписью можно будет вычислить сеансовый ключ собеседника и убедиться в его подлинности.

Пусть Алиса знает ключи, используемые Бобом для генерации последовательностей а? и Ь?, а Боб знает ключи Алисы для и 6^. Также они имеют общий ключ шифрования Кав, используемый для взаимной аутентификации,

1, Алиса генерирует свой ключ Ка, вычисляет ключ подписи (1а = ЕкАВ (Ка) и соответствующий ему ключ проверки С^а . Затем она формирует сообщение, состоящее из ключа проверки, текущего номера в ПСП %а и подписи своего идентификатора,, метки времени Г \ и времени жизни I. Л ключа Ка- В качестве случайного числа в этой подписи используется ключ /\ \. Алиса отправляет Бобу: С2А,гА,8с1А(КА,А || Та || Ьа).

2, Боб проверяет подпись Алисы и проделывает те же действия. Он отправляет Алисе: С^в,1в,Зав{Кв,В \\ТВ || Ьв).

3, Алиса проверяет подпись Боба и создаёт новую подпись сообщения, состоящего из ключа проверки Боба и его номера в ПСП, В качестве случайного числа она использует К'А = Ка ~\~Ъ^ и отправляет полученную подпись Бобу: Б^К'а^в || гв).

4, Боб вычисляет К’в = а^вКв + Ь? и отправляет Алисе аналогичную подпись: 8ав(К'в,(ЭА || гА).

5, Алиса и Боб проверяют полученные подписи. Зная номера текущих членов ПСП друг друга, они могут решить систему (5) и вычислить по ней ключ

подписи и использованное случайное число. Для взаимной аутентификации они проверяют, что ключ подписи — это зашифрованное случайное число. Затем они вычисляют сеансовый ключ: К = Ка /\ / ;.

6, Алиса и Боб шифруют свои сообщения, используя сеансовый ключ К.

Злоумышленник не сможет решить систему (5), он также не сможет подменить подписи или номера в ПСП, потому что ему неизвестен ключ Кав- Ни Алиса, ни Боб не смогут вычислить ключ собеседника до получения второй подписи и не смогут отказаться от выбранного сеансового ключа, потому что в случае подмены ключа не произойдёт аутентификации,

5.4. Протокол № 4

Можно провести совместную генерацию сеансового ключа и взаимную аутентификацию по аналогии с алгоритмом ликвидации скрытого канала.

Пусть Алиса и Боб имеют общий ключ подписи Кав-

1, Алиса генерирует свой ключ /\ \. вычисляет хэш-код ключа и отправляет его Бобу вместе со своим идентификатором: А, Н(Ка)-

2, Боб генерирует свой ключ К в и использует его в качестве случайного числа для создания подписи сообщения, состоящего из своего идентификатора, метки времени Тв а времени жизни Ьв ключа К в- Ключом подписи является общий ключ Кав- Полученную подпись Боб отправляет Алисе: ЗкАВ(Кв, В || Тв || Ьв).

3, Алиса проверяет подпись Боба, извлекает из подписи его ключ К в, вычисляет сеансовый ключ К = Ка ® К в и отправляет Бобу аналогичную подпись: 8кав(К,А || Та || Ьа)-

4, Боб проверяет подпись Алисы, извлекает из подписи сеансовый ключ К, вычисляет по нему ключ Алисы Ка и убеждается, проверяя его хэш-код, что Алиса не отказалась от первоначального ключа,

5, Алиса и Боб шифруют свои сообщения, используя сеансовый ключ К.

Цифровая подпись обеспечивает взаимную аутентификацию Алисы и Боба, Злоумышленник не сможет подменить подписи, потому что он не знает ключа Кав- Алисе вычислительно трудно найти другой ключ, дающий тот же хэш-код, а Бобу вычислительно трудно узнать ключ Алисы до того, как он отправит ей свой. Для этого ему нужно обратить хэш-функцию,

6. Заключение

Представленные в статье скрытые каналы предоставляют множество возможностей для тайной и безопасной передачи информации в стандартных цифровых подписях ГОСТ Р 34,10-2001, В случае передачи сообщений широкополосные

каналы стоит применять, когда источник и приёмник сообщений — это одно и то же лицо либо подразделения одной организации, В этих случаях не произойдёт компрометации ключа подписи. Узкополосные каналы предпочтительнее, когда приёмником является лицо с более низкой степенью доверия либо группа лиц. Нахождение ключа подписи для получателей будет в этом случае вычислительно трудной задачей. Оба типа скрытого канала при правильном применении до-ступны лишь авторизованным получателям и необнаружимы для посторонних лиц, не обладающих дополнительным секретом.

На широкополосных каналах можно строить криптографические протоколы, Цифровая подпись с таким каналом будет выполнять и функции подписи, и функции шифра. Также с помощью таких цифровых подписей можно проводить совместную генерацию ключа одновременно с взаимной аутентификацией. Размер скрытого канала достаточен для большинства симметричных шифров. Узкополосные каналы можно использовать для создания реализаций подписи, организующих утечку конфиденциальной информации. Следует особенно тщательно проверять используемые программные и аппаратные средства для создания цифровых подписей и генерации случайных чисел, полученные от третьих лиц, возможно, даже имеющих лицензию на их изготовление. Предпочтительнее исследование исходных кодов используемых программ и их самостоятельная компиляция, В случае, когда исходные коды недоступны либо необходимы дополнительные гарантии проверяющему, можно провести совместную генерацию подписи с контроллером по предложенному протоколу.

Литература

1. Белим С. В., Федосеев А. М. Исследование скрытых каналов передачи информации в алгоритме цифровой подписи ГОСТ Р 34.10-2001 // Известия Челябинского научного центра. 2007. Вып. 2. С. 55-57.

2. ГОСТ Р 34.10-2001. Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи. М.: Изд-во стандартов, 2001. 16 с.

3. Шнайер Б. Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си. М.: Триумф, 2002. 816 с.

4. Kobara К., Imai Н. On the Channel Capacity of Narrow-band Subliminal Channels // In Proc. of ICICS ’99. 1999. Vol. 1726. P. 309-323.

5. Simmons G. J. Subliminal Channels: Past and Present // European Transactions on Telecommunications. 1994. Vol. 4. No. 4. P. 459-473.

6. Simmons G. J. Subliminal Communication is Easy Using the DSA // Advances in Cryptology — EUROCRYPT ’93 Proceedings. Springer-Verlag. 1994. P. 218-232.

7. Simmons G. J. The Prisoner’s Problem and the Subliminal Channel // Advances in Cryptology: Proceedings of CRYPTO ’83. Plenum Press. 1984. P. 51-67.

i Надоели баннеры? Вы всегда можете отключить рекламу.