Вы находитесь на странице: 1из 10

КРИПТОГРАФИЯ И СТЕГАНОГРАФИЯ

Криптография и клептография.
Скрытые каналы и клептографические
закладки на их основе в криптосистеме RSA

En Cryptography В статье рассматриваются и классифицируются способы построения закладок


на основе скрытых каналов в алгоритме генерации RSA-ключей и при форми-
and Kleptography.
ровании подписи RSA. Часть методов использует открытую экспоненту e для пе-
Covert Channels редачи информации о закрытых ключах. Другие методы предполагают такой
and Kleptographic Backdoors способ генерации простых чисел p и q, что владельцу ключа закладки стано-
Based on Them вится доступна факторизация открытого модуля n = pq за полиномиальное от
in the RSA Cryptosystem длины ключа время, в то время как для стороннего нарушителя эта задача
остается вычислительно сложной. Рассматривается также возможность орга-
низации скрытого канала в RSA-подписи.
A. E. Zhukov,
Chairman of the Board
«RusСrypto» Association Ключевые слова: клептография, скрытый канал, криптографическая лазейка, RSA,
aez_iu8@rambler.ru PKCS#1

A. V. Markelova,
PhD (Phys./Math.), Technical Director Алексей Евгеньевич Жуков, 1.1. Встроенные каналы утечки
председатель совета
Science and Technology Center информации (лазейки).
«AlphaProject» Ассоциация «РусКрипто»
SETUP-механизмы
a@safe-crypto.ru aez_iu8@rambler.ru
Клептографическая закладка (ла-
The article discusses and classifies Александра Викторовна Маркелова, зейка, SETUP-механизм) – специ-
methods for constructing backdoors кандидат физико-математических наук, альное видоизменение, внесенное
технический директор в «добропорядочный» криптографи-
based on hidden channels in the
RSA key generation algorithm and ООО «НТЦ Альфа-Проект» ческий алгоритм с целью обеспечить
in the RSA digital signature scheme. a@safe-crypto.ru владельцу ключа лазейки возмож-
ность доступа к секретной инфор-
Keywords: kleptography, covert
мации пользователя (чаще всего речь
channel, cryptographic backdoor,
идет о секретном ключе). Модифи-
RSA, PKCS # 1 1. Введение цированный таким образом алгоритм
Данная работа является продол- называют «инфицированным». В от-
жением серии статей [1, 2], посвя- личие от других видов закладок (про-
щенных клептографии – деятель- граммных, аппаратных, алгоритми-
ности по внедрению скрытых лазеек ческих и т. п.), при встраивании клеп-
в криптографические системы. В пер- тографической лазейки модифици-
вой из них мы уже касались вопроса руется математическая структура ин-
встраивания лазейки в алгоритм фицируемого алгоритма. При этом
RSA. В очередной статье из этой се- требуется, чтобы для внешнего на-
рии мы снова обращаемся к систе- блюдателя работа «инфицированно-
ме RSA и рассматриваем различные го» алгоритма была неотличима от
подходы к организации скрытых ка- работы «неинфицированного» [1, 3].
налов в алгоритме генерации RSA- Можно выделить два основных
ключей и при формировании под- метода построения клептографиче-
писи RSA. ских лазеек: неявное ослабление

58 Защита информации. INSIDE № 2'2020


КРИПТОГРАФИЯ И СТЕГАНОГРАФИЯ

криптоалгоритма и использование симметричную или асимметричную Иными словами, если n = pq и нам


скрытых каналов передачи данных. лазейку [1]. Ключ расшифрования известна некоторая пара чисел (e, d),
В работе [1] мы рассматривали за- для E позволяет эффективно вычис- d = e–1 mod ϕ(n), то с помощью ве-
кладку Андерсона, которая является лять D = E –1 и является ключом ла- роятностного алгоритма мы можем
примером клептографических лазеек зейки (клептографической закладки). за полиномиальное время разложить
первого типа: в ней криптоалгоритм Владелец ключа лазейки может вы- n на множители. Обратная задача,
ослабляется за счет специфического числить x = D(m) и получить доступ очевидно, также решается за поли-
вида простых делителей открытого к секретной пользовательской ин- номиальное время.
RSA-модуля. В дальнейших статьях формации. Таким образом, для взлома си-
мы рассмотрим более сложные мо- стемы RSA нам достаточно за разум-
дификации этой идеи, а сейчас оста- 1.2. Криптосистема RSA. ное время определить хотя бы один
новимся на закладках второго типа. Что значит «взломать систему RSA»? из трех параметров: p, q или d.
Cкрытый канал (covert channel) – Напомним, что стойкость крип-
это непредусмотренный разработ- тосистемы RSA [6] основана на слож- 1.3. Каналы с явно передаваемыми
чиком коммуникационный канал, ности задачи факторизации боль- данными
который может быть применен для ших чисел. Генерация RSA-ключей Исторически первым примером
нарушения политики безопасности выполняется следующим образом. клептографической закладки в ал-
[1, 4]. Задачей любого канала связи Прежде всего, случайно выбираются горитме RSA является закладка Ан-
является передача данных (называе- большие простые числа p и q, вы- дерсона [8], о которой мы уже рас-
мых также сообщением), содержа- числяется их произведение n = pq, сказывали ранее [1]. Эта закладка
щих некоторую информацию. На- называемое RSA-модулем. Затем за- является симметричной, поскольку
помним, что в соответствии с [5], дается открытая экспонента e – она ключ доступа к ней содержится в реа-
информация – это любой вид зна- может выбираться случайно или лизации, и сама закладка, повторим-
ний, которыми могут обмениваться быть равной какому-либо фиксиро- ся, строится на неявном ослаблении
пользователи, о предметах, фактах, ванному значению (при этом в лю- криптоалгоритма. Фактически, за-
понятиях и т. д., а данные – это форма бом случае необходимо проверить, кладка Андерсона не использует яв-
представления информации, с кото- что (e, ϕ(n)) = 1, где ϕ – функция ной передачи данных через скрытые
рой имеют дело системы и их поль- Эйлера). Например, во многих со- каналы.
зователи. временных реализациях выбирается В криптосистеме RSA скрытый
Далее рассматриваются клепто- e = 65 537 = 216 + 1. Далее вычис- канал может встраиваться в ключе-
графические закладки, использую- ляется закрытая экспонента: вой генератор или в алгоритм фор-
щие каналы, по которым в явном мирования подписи. Два основных
d = e –1 mod ϕ(n). (1)
виде происходит передача данных, скрытых канала в генераторе клю-
содержащих информацию, позво- Пара чисел (e, n) называется от- чей RSA – в открытой экспоненте
ляющую взломать криптосистему крытым ключом, а d – секретным или в открытом модуле.
(создающую угрозу безопасности). ключом. RSA-шифрование/расшиф- Поскольку при заданных пара-
Иногда таковая представляет собой рование сообщения m вычисляется метрах (n, e, d) работа алгоритма RSA
секретный ключ криптоалгоритма, по формулам: в режимах шифрования/расшиф-
чаще – данные, позволяющие с ра- рования однозначно определяется
c = me mod n; m = c d mod n. (2)
зумной сложностью провести атаку формулами (2), встроить скрытый
на криптосистему. RSA-подпись под сообщением m канал и соответствующую лазейку
Для того чтобы канал реализо- вычисляется по формуле: можно лишь в генератор RSA-клю-
вывал работу SETUP-механизма, ис- чей. Каналами в этом случае служат
s = md mod n. (3)
пользуется некоторая функция шиф- открытые параметры алгоритма e и n.
рования E – шифрующая функция Задачей криптоаналитика являет- По секретной информации поль-
лазейки. Пусть D =E –1 – обратная ся взлом атакуемой криптосистемы. зователя x формируются данные
функция. В качестве E может быть Что значит «взломать систему RSA»? m = E (x), которые явным образом
выбран и симметричный, и асим- Будем считать взломом алгоритма встраиваются в один из открытых
метричный шифр. Через скрытый ка- RSA с параметрами (n, e) нахождение параметров алгоритма.
нал передается сообщение m = E(x), секретного ключа d 1. Скрытый канал в открытой
где x – некоторая секретная инфор- В [7, 6] было установлено (лем- экспоненте e. Реализуется простой
мация пользователя (жертвы). В за- ма 1): задача нахождения по извест- вставкой в e данных m, например:
висимости от того, симметричным ному e такого d, что ed = 1mod ϕ(n) ● e = m;
или асимметричным шифром яв- полиномиально вероятностно эквива- ● e = m||r, r – случайный набор би-
ляется функция E, мы получаем лентна факторизации n. тов и пр.

1 В общем случае понятие «взлом» может трактоваться более широко: в частности, как раскрытие только части бит секретного
ключа. Более того, если RSA применяется в качестве алгоритма шифрования, то взломом также считается вычисление откры-
того текста (или его части) по шифртексту. Однако в рамках нашей работы мы остановимся на приведенной трактовке.

Защита информации. INSIDE № 2'2020 59


КРИПТОГРАФИЯ И СТЕГАНОГРАФИЯ

При построении системы RSA, писью чисел x1 и x2, если рассмат- Недостатком подобных лазеек
содержащей такой канал, имеет место ривать x1||x2 как число, то является то, что многие информа-
заданное значение e, так что на выбор ционные системы накладывают до-
x1|| x2 = x1 I 2|x 2| + x2 ;
p и q накладывается единственное полнительные требования на от-
условие: ● запись x|k – выбор старших k би- крытую экспоненту e. В частности,
тов числа x, x|k – выбор младших может быть ограничен ее битовый
(e, p – 1) = (e, q – 1) = 1.
k битов x. размер, что не позволит использовать
Скрытый канал в RSA-модуле n. в качестве e число E(p). Кроме того,
Для реализации такого канала тре- часто требуется использование фик-
буется подобрать p и q таким обра- 2. Использование открытой сированной открытой экспоненты,
зом, чтобы нужные разряды числа экспоненты RSA например e = 65537, – в этом случае
n = pq содержали передаваемые дан- 2.1. Скрытый канал скрытый канал в открытой экспо-
ные m (и при этом согласовывались Рассмотрим следующий алго- ненте отсутствует.
с e, если оно определено заранее). ритм генерации RSA-ключей с пе-
В криптосистеме RSA через скры- редачей информации x через скры- 2.3. Использование эфемерной
тый канал можно передавать один тый канал в открытой экспоненте e3 ключевой пары для построения
из простых делителей открытого мо- (врезка 1) закладки
дуля или закрытую экспоненту. Дан- Очевидно, что владелец ключа Специальный вид закладок на
ные могут передаваться как в откры- лазейки может вычислить x = D(e), основе скрытого канала в открытой
том виде, так и в зашифрованном. поскольку значение e является пуб- экспоненте e описан Клодом Крепо
В ряде случаев достаточно передавать личным. и Аленом Слакмоном [11]. Данный
лишь часть одного из простых де- класс методов – с использованием
лителей открытого модуля или часть 2.2. Клептографическая закладка эфемерной ключевой пары – бази-
закрытой экспоненты (то есть сек- Используя открытую экспоненту руется на лемме 1.
ретного ключа). Например, для ус- как скрытый канал, можно выбрать Слабой ключевой парой будем
~
пешного применения атаки Копперс- x = p, то есть передать через этот называть такой набор (e~, d, n~), в ко-
мита [9] достаточно передать поло- скрытый канал один из простых де- тором из (e~, n~) можно за полиноми-
вину старших битов p 2. лителей открытого модуля. Это дает альное от~ длины ключа время вы-
Далее мы рассмотрим конкрет- возможность владельцу ключа ла- числить d. Например, атака Винера
ные способы построения закладок зейки вычислить закрытый пользо- [12] позволяет взломать ключи RSA
в ключевом генераторе криптоси- вательский ключ. с короткой закрытой экспонентой,
стемы RSA на основе явной переда- Такая закладка была предложе- а именно, если известно, что бито-
~
чи данных в открытой экспоненте на в 1996 году Адамом Янгом и Мо- вый размер d равен примерно чет-
~
и в открытом модуле, а также способ ти Юнгом [10]. В их работе в качестве верти битового размера n~, то d мож-
построения закладки при формиро- функции E предлагалось использо- но вычислить за полиномиальное
вании RSA-подписи. вать RSA-шифрование: выбрать не- время с помощью цепных дробей.
Будут использоваться следующие который набор RSA-ключей (є, δ, N); Результаты Винера обобщены в [13],
обозначения: число δ рассматривать как ключ за- где также построена атака для слу- ~
● |X| – битовая длина числа X; кладки, а пару (є, N) встроить в реа- чая, когда известны старшие биты d.
● x1||x2 – конкатенация бинарных лизацию генератора. Тогда на шаге Метод Крепо-Слакмона предла-
строк, являющихся двоичной за- 2 требуется вычислить e = pє mod N. гает генерацию слабого эфемерного
RSA-ключа (є, δ, n) с тем же моду-
Врезка 1 лем n и передачу значения є через
скрытый канал. Поскольку ключевая
Алгоритм 1. Скрытый канал в открытой экспоненте пара (є, δ) является слабой, то, по-
1: Выработать случайные простые числа p и q, |p| = |q| = |n
––| лучив є из скрытого канала, владелец
2
2: e = E (x) ключа закладки вычисляет δ, а затем
3: Если (e, ϕ(pq))  1, тогда по лемме 1 находит разложение n.
4: Вернуться на шаг 1
Существенным моментом является
5: n = pq
6: d = e –1mod ϕ(n) то, что пользовательский ключ (e, d, n)
7: Возвратить e, n – открытый ключ, d – секретный ключ слабым не является, то есть для сто-
роннего нарушителя взлом этого
ключа недоступен.

2 По этим скрытым каналам возможна передача не только данных, компрометирующих данную криптосистему, но, в принципе,
передача любой информации (ключи других алгоритмов, пароли, непубличные пользовательские данные и пр.). Естественно, в этом
случае потребуется дополнительное программное обеспечение помимо генератора RSA-ключей.
3 Здесь и далее мы опускаем ряд стандартных проверок (например, требования к общим делителям чисел p ± 1, q ± 1). Также подра-
зумевается, что заранее задано |n| – требуемая битовая длина RSA-модуля.

60 Защита информации. INSIDE № 2'2020


КРИПТОГРАФИЯ И СТЕГАНОГРАФИЯ

Рассмотрим примеры закладки Фиксируем старшие биты n. То- мости обобщается на случай |n| > 2K.
Крепо – Слакмона, описанные в [11] гда алгоритм генерации простых чи- Также необходимо, чтобы при K0 > 0
(врезки 2, 3). сел для RSA-ключей работает сле- число m0 было нечетным. Тогда, ком-
Владелец ключа лазейки вычис- дующим образом (врезка 4). бинируя алгоритмы 4 и 5, можно
ляет є = D(e), после чего применяет Теперь рассмотрим вариант ал- выработать такие простые числа p
атаку Винера к слабой эфемерной горитма со скрытым каналом в млад- и q, что n = pq = m1||n0||m0 для неко-
ключевой паре (є, δ, n), а затем по ших битах числа n (врезка 5). Зафик- торого n0.
лемме 1 находит разложение n. сируем младшие биты n. Из нечет- Заметим, что рассмотренные вы-
Второй вариант закладки Крепо – ности n следует, что и m должно ше подходы к построению скрытых
Слакмона использует атаку для из- быть нечетным. каналов в алгоритме RSA предпола-
вестных |n|/4 бит d, описанную в [13]. Наконец, для реализации скры- гают случайный выбор простого чис-
Как и в предыдущем случае, вла- того канала и в старших, и в млад- ла p и модуля n, после чего q одно-
делец ключа лазейки вычисляет D(e) ших битах открытого модуля пред- значно определяется выбором p и n.
и таким образом узнает є и старшие ставим m = m1||m0 , где |m1| = K1, При таком подходе два старших бита
|n|/4 бит секретного ключа эфемер- |m0 | = K0 , K = K1 + K0 и пусть числа n имеют распределение, от-
ной ключевой пары. Поскольку эфе- |n|  2K. Алгоритм при необходи- личное от распределения двух стар-
мерная ключевая пара является сла-
бой, то можно вычислить δ, а затем Врезка 2
разложить n на множители. Заме-
тим, что требование простоты є яв- Алгоритм 2. Закладка Крепо – Слакмона HSD (hidden small private)
ляется необходимым условием при- 1: Выработать случайные простые числа p и q
менения атаки, описанной в [13]. При 2: n = pq
этом ключевая пара (e, d, n) в общем 3: Повторять
случае слабой не является. 4: Выработать случайное нечетное число δ – такое, что (δ, ϕ(n)) = 1
Заметим, что в качестве шифрую- и |δ|  |n| /4
5: є = δ–1modϕ(n)
щей функции E может применять-
6: e = E(є)
ся как симметричный, так и асим- 7: Пока выполняется (e, ϕ(n))  1
метричный алгоритм шифрования. 8: d = e –1mod ϕ(n)
В первом случае получается симмет- 9: Возвратить e, n – открытый ключ, d – секретный ключ
ричная лазейка, защищенная только
от стороннего нарушителя, не имею-
щего возможности провести реверс- Врезка 3
инжиниринг. Во втором – мы име-
ем дело с асимметричной лазейкой Алгоритм 3. Закладка Крепо – Слакмона HSPE (hidden small prime public exponent)
(SETUP-механизмом). Воспользо- 1: Выработать случайные простые числа p и q
ваться ею может лишь владелец клю- 2: n = pq
ча расшифрования – ключа лазейки. 3: Повторять
4: Выработать случайное простое число є – такое, что (є, ϕ(n)) = 1
и |є|  |n| /4
3. Использование RSA-модуля 5: δ = є –1modϕ(n)
6: e = E (δ||n|/4||є)
3.1. Скрытый канал
7: Пока выполняется (e, ϕ(n))  1
В работе [14] упомянута (судя по 8: d = e –1mod ϕ(n)
всему – впервые) возможность яв- 9: Возвратить e, n – открытый ключ, d – секретный ключ
ного задания старших значимых би-
тов открытого RSA-модуля n. Ис-
пользование до |n|/2 старших битов Врезка 4
в качестве скрытого канала описано
в работе [15]. Обобщение результатов Алгоритм 4. Скрытый канал в старших битах n
о возможности частичного задания 1: n1 = m I 2L
n дано в [16]. 2: Выработать случайное простое число p, |p|  L
Пусть требуется передать по скры- 3: Выбрать наименьшее n2, такое что n2  n1 и p делит n2
тому каналу сообщение m. Рассмот- 4: q' = n2 /p
рим три случая: n = m||n0; n = n0||m; 5: Выбрать наименьшее q0  0, такое что q' + q0 – простое. Тогда q = q' + q0
n = m1||n0||m0, где m = m1||m0 – то 6: n = pq
есть скрытый канал заключен либо 7: Если n = m||n0, тогда
в старших битах открытого модуля, 8: Возвратить n
9: Иначе
либо в младших битах, либо одно-
10: Идти на шаг 2
временно и в старших, и в младших
битах. Пусть|m| = K, L = |n | – K.

Защита информации. INSIDE № 2'2020 61


КРИПТОГРАФИЯ И СТЕГАНОГРАФИЯ

Врезка 5 мой системы) задана заранее. В слу-


чае, когда выбор открытой экспо-
Алгоритм 5. Скрытый канал в младших битах n ненты должен осуществляться в про-
1: Выработать случайное простое число p, |p |  L цессе выработки ключа, шаг 2 игно-
2: Выработать случайное число x, |x | = L – |p | рируется, а шаг 10 принимает вид:
3: q' = x I 2K + ((m /p)mod 2K)
4: Выбрать наименьшее q0  0, такое что q' + q0 I 2K – простое 10: До тех пока (e, q – 1)  1 вы-
5: q = q' + q0 I 2K полнять
6: n = pq 11: Выработать случайное e.
7: Если n = n0||m, тогда
Владелец ключа закладки должен
8: Возвратить n
9: Иначе применить известную ему функцию
10: Идти на шаг 1 D(•) к n|| n |/2 и к n|| n |/2 + 1, а затем
выбрать из получившихся значений
то, которое является простым де-
Врезка 6 лителем n (врезка 7).
Заметим: если оба значения s1 и s2
Алгоритм 6. Клептографическая закладка в старших битах RSA-модуля n не являются делителями n, то алго-
1: Выработать случайное простое число p, |p |=(|n|)/2 ритм возвращает p = 0, что сигнали-
2: Если (e, p – 1)  1, тогда зирует об ошибке выполнения – воз-
3: Перейти на шаг 1 можно, алгоритм извлечения ключа
4: m = E(p) применяется к неинфицированной
5: Выработать случайное RND, |RND | = |n|/2
ключевой паре или же используется
6: n1 = (m ||RND)
7: Разделить с остатком: n1 = pq + r, 0  r < p
неправильный ключ лазейки.
8: Если q составное, тогда На практике в качестве шифрую-
9: Перейти на шаг 1 щей функции лазейки чаще всего
10: Если (e, q – 1)  1, тогда используется (|n |/2)-битный алго-
11: Перейти на шаг 1 ритм RSA с открытым ключом (n', e'),
12: n = pq, d = e –1 mod ϕ(n) при этом, как правило, e' совпадает
13: Возвратить n, e, d с e – открытой экспонентой инфи-
цируемой системы. Криптостойкость
такой лазейки ниже, чем криптостой-
Врезка 7
кость инфицированной системы: n' –
RSA-модуль лазейки – в два раза ко-
Алгоритм 6.1. Извлечение закрытого ключа
роче, чем n – RSA-модуль инфици-
1: u = n||n|/2
рованной системы.
2: s1 = D(u), s2 = D(u + 1)
3: p = 0
Однако, как показано в [16], в слу-
4: Если s1 делит n, тогда чае |p| = L существенно ухудшается
5: p = s1 скорость работы алгоритма генера-
6: Если s2 делит n, тогда ции ключей. Следовательно, лучше
7: p = s2 передавать не все число p, а только
8: Возвратить p его часть (не менее половины би-
тов), а далее применять алгоритм
Копперсмита [9] для восстановления
ших битов RSA-модуля, полученно- Для работы лазейки используется ключевой пары.
го с помощью «честного» алгоритма, шифрующая функция E c (|n |/2)- Рассмотрим еще один пример
когда и p, и q выбираются случайно. битными входом и выходом. клептографической закладки в RSA-
В результате наличие скрытого ка- Поскольку (m ||RND) = pq + r, то модуле [11]. Предполагается, что в си-
нала можно обнаружить, просто из- (m||RND) – r = pq = n. Кроме того, стеме используется фиксированная
учая распределение двух старших би- величина r < p, то есть |r | < |n |/2. экспонента e (врезка 8).
тов вырабатываемых RSA-модулей. Следовательно, при вычитании r из Владелец ключа закладки должен
(m||RND) уменьшается именно RND, вычислить p||n|/4 = Dk(n|3|n|/8||n|/4),
3.2. Клептографическая закладка а из m вычитается не более одного после чего применить атаку Коп-
Как и ранее, если в качестве со- младшего бита (заимствованный бит, персмита [9].
общения m использовать значение отрицательный перенос). То есть, ес- И здесь в качестве шифрующей
E(p), то скрытый канал позволяет ли u – старшие |n |/2 битов числа n, функции E может применяться как
построить реализацию с клептогра- то в силу того, что n = (m ||RND) – r, симметричный, так и асимметрич-
фической закладкой (врезка 6). Ее получаем u = m или u = m – 1. ный алгоритм шифрования.
можно использовать как канал для Шаги 2 и 10 имеют смысл, если e Заметим, что во всех рассмот-
K = L = |n |/2 бит. (открытая экспонента инфицируе- ренных выше вариантах построения

62 Защита информации. INSIDE № 2'2020


КРИПТОГРАФИЯ И СТЕГАНОГРАФИЯ

скрытого канала простое число p вы- Врезка 8


рабатывается случайно, а число q
однозначно определяется из значе- Алгоритм 7. Клептографическая закладка HP (hidden prime) в n
ний m и p (в алгоритме 5 есть допол- 1: Выработать случайное простое число p, (e, p – 1) = 1
нительный элемент случайности x, 2: Выработать случайное нечетное число q'
но он опускается при |p| = L). Таким 3: n' = pq'
образом, мощность множества вы- 4: n = n'| |n|/8 ||E(p||n|/4))||n' |5|n|/8
рабатываемых ключей меньше, чем 5: q = np – округлить в сторону нечетного числа
6: До тех пор пока (e, q – 1)  1 или q – составное выполнять
мощность множества ключей, по-
7: Выработать случайное четное r, |r | = |n|/8
лученных с помощью «честного» ге-
8: q=qr
нератора. Следовательно, и стойкость 9: n = pq
подобных ключей ниже. 10: Возвратить n
По этой же причине (в силу не-
случайности выбора q), как было от-
мечено ранее, лазейка такого вида Врезка 9
может быть обнаружена изучением
распределения двух старших битов Алгоритм 8. PBRM (R,S,x)
генерируемых открытых модулей n, 1: e = 1, x' = 0
которое отличается от распределения 2: Выработать случайный бит b
3: Если x < S – R и b = 1, тогда
двух старших битов RSA-модулей,
4: x' = x
полученных с помощью случайного 5: Если x < S – R и b = 0, тогда
выбора p и q. 6: x' = S – 1 – x
7: Если x  S – R и b = 1, тогда
3.3. Закладка PAP 8: x' = x
(Pretty-Awful-Privacy) 9: Если x  S – R и b = 0, тогда
Закладка PAP, впервые описан- 10: e = –1
ная в работе [10], также использует 11: Возвратить e и x
скрытый канал в RSA-модуле. Позд-
нее авторы модифицировали алго-
ритм, улучшив статистические свой- Результат e = –1 означает необходи- Помимо этого, создатель заклад-
ства вырабатываемых ключей. Мы мость перевыбора значения x. ки выбирает такие числа e0, e1, e2, e3
приводим описание финальной вер- Напомним, что символ Лежанд- по модулю N, для которых выпол-
сии алгоритма из [3]. ра (a/p) – это функция, определяе- нено:
Одним из инструментов, которые мая для простых чисел p следующим
e0 ⎞
⎛— e0 ⎞
⎛—
потребуются при построении этой образом [15] (врезка 10). = 1, = 1;
⎝P ⎠ ⎝Q ⎠
клептографической закладки, яв- Для нечетных натуральных чи-
e1 ⎞
⎛— e1 ⎞
⎛—
ляется то, что авторы назвали веро- сел P = p1 · ѕ · pn по мультипли- = –1, = 1;
⎝P ⎠ ⎝Q ⎠ (6)
ятностным методом устранения кативности определяется обобще-
e2 ⎞
⎛— e2 ⎞
⎛—
смещения (the probabilistic bias removal ние символа Лежандра – символ = 1, = –1;
⎝P ⎠ ⎝Q ⎠
method – PBRM). Этот метод решает Якоби
e3 ⎞
⎛— e2⎞
⎛—
следующую задачу. Предположим, = 1, = 1.
⎛–a⎞ = ⎛–a ⎞ ѕ ⎛–a ⎞ . (5) ⎝P ⎠ ⎝Q ⎠
требуется выбирать случайную ве-
личину равновероятно из множе- ⎝P⎠ ⎝p1⎠ ⎝pn ⎠ Пусть генератор псевдослучай-
ства {0, 1, 2, …, S – 1}, и при этом Ключом клептографической за- ных чисел R(s) принимает в качестве
имеется значение x, вырабатываемое кладки PAP является пара простых входных данных битовую строку s
равномерно случайным образом из чисел P и Q, а N = PQ встраивается конечной длины и возвращает бес-
{0, 1, 2, …, R – 1}, где S > R > S/2. в реализацию и является открытым конечно длинную битовую строку.
Если использовать x в качестве ито- ключом закладки. Если t = |n| – тре- Пусть H(s, i, v) обозначает функцию,
гового результата, тогда значения буемая длина RSA-модуля для вы- которая возвращает v битов выход-
{R, R + 1, …, S – 1} никогда не будут рабатываемых ключей, то |N| = t/2, ной последовательности R(s), начи-
выработаны. Это смещение в сто- |P | = |Q | = |N|/2. ная с i-го бита, где i  0.
рону меньших элементов должно
быть устранено, в противном случае Врезка 10
статистически можно установить
отличие в работе инфицированного 0, если p|a;
и «честного» алгоритмов (врезка 9). ⎛–a ⎞ = 1, если a – квадратичный вычет по модулю p; (4)
⎝p ⎠ –1, если a – квадратичный невычет по модулю p.
Если e = 1, то вырабатываемая
алгоритмом 8 величина x' равномер-
но распределена на {0, 1, 2, …, S – 1}.

Защита информации. INSIDE № 2'2020 63


КРИПТОГРАФИЯ И СТЕГАНОГРАФИЯ

Пусть также задан ID (|ID| = t/2) – дуля n = pq, мы имеем дело со скры- значение x, вырабатываемое на ша-
идентификатор ключевого генера- тым каналом в RSA-модуле. Из значе- ге 6, никак не используется, а затем
тора (устройства) и константа Θ, ния c1 восстанавливается значение c0, фактически заменяется случайным
ограничивающая общее количество после чего можно найти варианты значением u. Мы добавили к алго-
вырабатываемых инфицированных значения u 2, вычисляя c0 · ei–1 modN ритму шаг 15, отсутствующий у ав-
ключей, а счетчик i хранит в энерго- и выбирая те значения, которые яв- торов, поскольку случай (x, N)  1
независимой памяти устройства то ляются квадратичными вычетами означает, что в качестве c0 наружу
количество ключей, которое на дан- по модулям P и Q. После этого тре- будет выдан один из делителей чис-
ный момент выработано ключевым буется извлечь квадратный корень ла N, то есть ключ закладки. Данная
генератором. (что возможно при знании разложе- ситуация представляется маловеро-
Тогда генератор с клептографи- ния N на множители) и вычислить p ятной, но, тем не менее, требует об-
ческой закладкой PAP работает сле- по аналогии с шагами 22–25 алго- работки.
дующим образом (врезка 11). ритма. В результате получится не- Заметим, что для успешной ра-
Данный алгоритм описывает ме- которое количество вариантов про- боты алгоритма атакующий должен
тод генерации простых чисел, ис- стых чисел p, из которых нужно вы- знать ID устройства, а также иметь
пользуемых для формирования клю- брать делитель n. При этом исполь- возможность синхронизировать счет-
чевой пары криптосистемы RSA. Да- зование функции PBRM дает воз- чик i с этим устройством.
лее значения (e, d, n) вычисляются можность получить равномерное рас- К сожалению, у авторов [3] от-
стандартным образом. пределение генерируемых ключей. сутствует оценка скорости данного
Поскольку значение c1 передается В приведенном алгоритме на- генератора. Кроме того, из описания
через старшие биты открытого мо- блюдается некоторая избыточность: не понятно, откуда владелец ключа
закладки узнает значение j, исполь-
Врезка 11 зуемое для инициализации оракула
на шаге 23. Вероятно, предполага-
Алгоритм 9. Закладка PAP ется последовательный перебор этих
1: Если i > Θ, тогда
значений в надежде, что j не может
2: Вызвать генератор без закладки и закончить алгоритм быть слишком большим.
3: i = i + 1; сохранить значение i в энергонезависимой памяти
4: I – |Θ| – -битное представление
5: Цикл j = 0 до  выполнять
4. Криптографическая
6: Выбрать случайно x ∈R {0, 1, ѕ, N – 1} стойкость ключей
7: c0 = x с закладками
8: Если (x, N) = 1, тогда Как сказано выше, при исполь-
9: Выбрать случайный бит b и случайное число u ∈RN *
зовании генератора ключей с клеп-
10: Если ⎝⎛xn–⎠⎞ = 1, тогда
тографической закладкой, мощность
11: c0 = e0b e11–bu2 mod N
12: Иначе ⎛x ⎞ ключевого множества уменьшается.
⎝n–⎠ = –1 Оценим эту мощность для «честно-
13: c0 = e2b e31–bu2 mod N
14: Иначе го» и для инфицированного ключе-
15: Перейти на шаг 5 вого генератора.
16: (e, c1) = PBRM(N, 2t/2, c0) Пусть t – требуемый битовый раз-
17: Если e = –1, тогда мер RSA-модуля. Тогда битовый раз-
18: Перейти на шаг 5 мер простых чисел – t/2. Если нет
19: Если u > –u mod N, тогда
ограничений на открытую экспонен-
20: u > –u mod N для ускорения вычислений
21: T0 – t/2 – -битное представление u
ту, то ее битовый размер равен t.
22: Цикл k = 0 до  выполнять По закону распределения простых
23: p = H(T0 ||ID || I || j, kt/2, t/2) чисел [18] количество простых чисел
24: Если p  2(t/2 – 1) +1 и p – простое, тогда битового размера x (то есть в интер-
25: Выйти из цикла вале от 2x – 1 до 2x) приблизительно
26: Выработать случайное c2, |c2| = t /2 равно (врезка 12).
27: n' = c1||c2 Таким образом, общее количество
28: n' = pq + r, r < p случайных RSA-модулей битового
29: Если q < 2(t /2 – 1) + 1, тогда
размера t оценивается как:
30: Перейти на шаг 5
31: Если q – не простое, тогда 2t/2 2 2t
32: Перейти на шаг 5 #n  ⎛––––⎞ = –––––– . (8)
⎝ t ln2 ⎠ t ln2 2
2
33: Если |pq | < t, тогда
34: Перейти на шаг 5 Заметим, что в данном случае мы
35: Возвратить p и q для простоты опускаем дополнитель-
ные проверки выбранных простых
чисел, необходимые для обеспече-

64 Защита информации. INSIDE № 2'2020


КРИПТОГРАФИЯ И СТЕГАНОГРАФИЯ

ния стойкости полученной ключе- Врезка 12


вой пары.
Формула (8) дает оценку общего 2x 2x – 1 2(x – 1)2x – 1
– x2 x–1 (x – 2)2x – 1 2x – 1
количества ключевых пар. Впрочем, π(2x ) – π(2x – 1) –––x – ––––––
x – 1 = ––––––––––––––––– = –––––––––  –––– . (7)
ln2 ln2 x(x – 1)ln2 x(x –1)ln2 x ln2
если требуется задавать фиксирован-
ную открытую экспоненту, то это
верхняя оценка, поскольку реально
из вырабатываемых простых чисел чит, мощность ключевого множества
22 + 5t /4
нужно исключить те p, для которых #(e, d, n)  –––––– . (12) в этом случае будет не более, чем
t 3 ln32
(e, p – 1)  1. 2t/2 .
Рассмотрим пример случайно ге- Из формул (10) и (12) мы полу- #(e, d, n)  –––– (14)
8 ln2
нерируемой открытой экспоненты. чаем, что мощность ключевого мно-
Будем считать, что e также выбирается жества инфицированного генерато- 4.3. Некоторые выводы о стойкости
простым числом. Тогда, если другие ра примерно в 23t /4 – 2 раза меньше, генератора с закладкой
ограничения на открытую экспонен- чем мощность ключевого множе- Показанное снижение теоретиче-
ту отсутствуют, то количество спо- ства, вырабатываемого «честным» ской стойкости само по себе не при-
собов выбора e можно оценить как: генератором. водит к появлению серьезных уязви-
2t .
#e  –––– (9) мостей, поскольку мощность ключе-
t ln2 4.2. Мощность ключевого вого множества все еще остается до-
Эта оценка несколько завышена, множества при закладке в модуле статочно большой. Если рассматри-
так как на самом деле e < n, а в (9) Для начала предположим, что вать стойкость алгоритма с точки
используется оценка e < 2t. Кроме открытая экспонента не фиксиро- зрения перебора, то генераторы с за-
того, e должно быть взаимно про- вана. При использовании закладки кладкой остаются стойкими.
стым с (p – 1)(q – 1). Однако данная в модуле одно из простых чисел за- Как видно из приведенных выше
разница не критична для дальней- дается случайно, а второе однознач- оценок, при использовании заклад-
ших рассуждений. но определяется на основе этого пер- ки в открытой экспоненте наблю-
Тогда из формул (8) и (9) полу- вого простого числа и информации дается бо' льшее снижение мощности
чаем оценку на общее количество из скрытого канала. Таким образом, ключевого множества, то есть гене-
ключей: 2t + t/2 – 1 = 23t/2 . (13) ратор с закладкой в RSA-модуле яв-
#(e, d, n)  ––––––– ––––– ляется более стойким.
22t .
#(e, d, n)  –––––– (10) t 2 ln2 2 t 2 ln2 2

t ln3 2
3 2 Однако нельзя забывать, что
Следовательно, из формул (10) внедренные зависимости между раз-
4.1. Мощность ключевого и (13) получается, что мощность личными частями ключа могут стать
множества при закладке ключевого множества инфицирован- отправной точкой более сложных,
в открытой экспоненте 2t /2 не связанных с перебором крипто-
При использовании скрытого ка- ного генератора в ––– t ln2 раза мень- графических атак. Возможность воз-
нала в открытой экспоненте простые ше, чем мощность ключевого мно- никновения дополнительных уязви-
числа p и q вырабатываются абсо- жества, вырабатываемого «честным» мостей криптосистемы связана так-
лютно случайно (см. Алгоритмы 2 генератором. Отметим, что в этом же с тем, какая именно функция E –
и 3), то есть сохраняется оценка (8), случае мощность ключевого множе- шифрующая функция лазейки – ис-
но после этого эфемерная ключевая ства больше, чем при использовании пользуется для защиты скрытого ка-
пара фиксирует до t/4 бит, на основе лазейки в открытой экспоненте. нала от стороннего нарушителя.
которых вырабатывается итоговая Если используется фиксирован-
ключевая пара. ная экспонента, то мощность ключе-
Рассмотрим оценку для алгорит- вого множества «честного» генера-
5. Скрытый канал
ма 3, в котором открытая экспонента тора оценивается сверху формулой
в RSA-подписи
эфемерной ключевой пары также вы- (8)4, а мощность инфицированно- Помимо встраивания лазейки
бирается простым числом. Тогда ко- го генератора – формулой (7) при в процесс генерации ключей алго-
личество различных открытых экс- x = t/2. Следовательно, мощность ин- ритм RSA позволяет организовать
понент можно оценить как фицированного генератора меньше скрытый канал в процессе форми-
2t /4 22 + t /4 . 2t /2 рования подписи. Встроить скрытый
#e  –––––
t– ln2 = –––––– (11) в –––
t ln2 раза, то есть не отличается канал в исходный (описанный фор-
t ln2
4 от варианта случайной экспоненты. мулой (3)) вариант алгоритма фор-
Общая мощность ключевого мно- Алгоритм 7 дает дополнительную мирования подписи RSA невозмож-
жества для генератора с закладкой рандомизацию за счет использования но, поскольку подпись строго детер-
в экспоненте равна случайного числа r размера t/8, а зна- минирована. Однако в прикладных

4 Для каждого вырабатываемого простого числа p потребуется дополнительная проверка, что (e, p – 1) = 1, то есть ключевое мно-
жество уменьшится.

Защита информации. INSIDE № 2'2020 65


КРИПТОГРАФИЯ И СТЕГАНОГРАФИЯ

Врезка 13 выбора salt установим salt' = E(x), то


есть в качестве salt используем пе-
Алгоритм 10. Кодирование (выравнивание) EMSA-PSS редаваемое сообщение. Если функ-
1: mHash = Hash(M) ция шифрования достаточно хоро-
2: Если emLen < hLen + sLen + 2, тогда шая, то для стороннего наблюдателя
3: Закончить алгоритм, вернуть код ошибки случайное salt и salt' окажутся по-
4: Выработать случайную байтовую строку salt длины sLen линомиально неразличимы.
5: M' = (0x)00 00 00 00 00 00 00 00 || mHash || salt В общем случае, очевидно, что
6: H = Hash(M')
sLen  emLen – hLen – 2 (из шага 7
7: PS – строка нулей байтовой длины emLen – sLen – hLen – 2 (может быть пустой)
8: DB = PS || 0x01 || salt
алгоритма 10). То есть, например,
9: dbMask = MGF(H, emLen – hLen – 1) для RSA-10245 при использовании
10: maskedDB = DB  dbMask функции хэширования SHA-1 по-
11: Установить левые (старшие) 8emLen – emBit биты в maskedDB нулями лучаем sLen  128 – 20 – 2 = 106, то
12: EM = maskedDB ||H || 0xbc есть по скрытому каналу можно пе-
13: Возвратить EM редать до 106 байт.
На практике ограничения на sLen
более жесткие. В соответствии с FIPS-
186-4, байтовый размер salt (sLen)
ограничен следующим образом ([23],
раздел 5.5): если размер модуля равен
1024 битам (128 байтам) и размер
выхода хэш-функции равен 512 би-
там (64 байтам), то sLen < 63; в осталь-
ных случаях sLen  hLen.
Таким образом, при использова-
нии хэш-функции SHA-1 sLen  20.
Рисунок. Кодирование EMSA-PSS [16] Скажем, если мы хотим воспользо-
ваться атакой Копперсмита и пере-
системах формула (3) всегда приме- мо сочетание хэш-функции SHA-1 дать по скрытому каналу половину
няется не к данным непосредственно, и RSA-1024: выход хэш-функции – битов p, то для RSA-1024 нам потре-
а к выравненному хэшу от данных. 20 байт, а размерность модуля RSA – буется 32 байта, то есть необходимо
Некоторые способы выравнивания 128 байт. sLen  32. Это легко достигается при
позволяют построить скрытый ка- В таких ситуациях используется использовании хэш-функции SHA-
нал с достаточно высокой пропуск- какое-либо выравнивание. Стандарт 256, поскольку для нее hLen  32.
ной способностью. PKCS#1 предусматривает несколь- Однако если размер сообщения E(x)
Отметим, что многие реализации ко его видов. Выравнивание PSS пред- больше sLen, можно разбить его на
алгоритма RSA соответствуют стан- ложено в 1996 году [20], а в 2002 году несколько сообщений и передавать
дарту PKCS#1 [19]. Рассмотрим про- вошло в стандарт и получило широ- последовательно.
цесс формирования подписи RSAS- кое распространение. Описанию пре- Для извлечения salt' из подписи
SA-PSS согласно этому стандарту. имуществ данного метода посвящен EM вначале извлекаются подстроки,
Вначале для произвольного со- ряд работ [21, 22], но, в отличие от являющиеся значениями maskedDB
общения M выполняется так назы- детерминированных методов вырав- и H, затем вычисляется
ваемое кодирование EMSA-PSS (en- нивания, данный механизм дает воз-
DB = maskedDB  MGF(H, emLen –
coding method for signatures with ap- можность построить скрытый канал.
– hLen – 1).
pendix; provably secure signature): Итак, пусть M – исходное со-
m = EMSA-PSS(M, emBits), о чем под- общение, Hash – используемая функ- Значение salt' является подстро-
робнее будет рассказано ниже, а за- ция хэширования, MGF – некоторая кой DB. Заметим, что для получения
тем уже применяется формула (3). функция генерации маски (см. [19]), salt' злоумышленнику даже не нужно
Смысл PSS-кодирования состоит sLen – предполагаемая байтовая дли- знать подписываемого сообщения M.
в том, чтобы преобразовать сообще- на «соли», emBits – битовая длина Искомая информация x = D(salt').
ние произвольной длины в число RSA-модуля, emLen = [emBits/8]– бай- Описанный метод является об-
той же битовой длины, что и модуль товая длина RSA-модуля, hLen – бай- общением идеи Янга и Юнга [24]
RSA. Вначале используется какая-ли- товая длина хэша. Тогда алгоритм о возможности передачи 20 битов
бо хэш-функция. На практике хэш- выравнивания работает следующим через скрытый канал в RSA-подписи.
функции имеют гораздо более ко- образом (врезка 13, рисунок). 20-битовое ограничение у авторов
роткий выход, чем длина RSA-мо- Для передачи по скрытому ка- было связано с конкретным видом
дуля. Например, широко примени- налу информации x на шаге 4 вместо функции E.

5 Здесь и далее RSA-N будет обозначать алгоритм RSA с N-битным модулем.

66 Защита информации. INSIDE № 2'2020


КРИПТОГРАФИЯ И СТЕГАНОГРАФИЯ

Ранее исследователи клептогра- Computer Science). – Springer Berlin Heidelberg,


6. Заключение фических лазеек неоднократно ука- 2003. V. 2612. P. 403–416.
Мы рассмотрели ряд клептогра- зывали на опасность использова- 12. Wiener M. J. Cryptanalysis of short RSA secret
фических закладок на основе скры- ния black-box-генераторов или дру- exponents // IEEE Transaction on Information
тых каналов в алгоритме RSA. Не- гих вариантов генерации RSA-клю- Theory. 1990. V. 36, № 3. P. 553–558.
трудно заметить, что подобные ме- чей третьей стороной [3, 10, 11, 15]. 13. Boneh D., Durfee G., Frankel Y. An Attack on
ханизмы базируются на выборе ре- Однако, как мы видим, даже при RSA Given a Small Fraction of the Private Key
шения трех основных задач: полностью доверенной генерации Bits // In book: Advances in Cryptology – ASIAC-
● что передавать владельцу закладки ключей, криптосистема RSA может RYPT’98. (Series: Lecture Notes in Computer Sci-
(то есть какая информация, мини- содержать закладку непосредствен- ence). – Springer Berlin Heidelberg. 1998. V. 1514.
мальная по объему, позволит далее но в механизме формирования под- P. 25–34.
получить доступ к пользователь- писи. Это дает возможность вла- 14. Desmedt Y. Abuses in Cryptography and How to
ским секретам); дельцу ключа закладки получить до- Fight Them // In book: Advances in Cryptology –
● где передавать информацию (то ступ к пользовательскому секретно- CRYPTO’88. (Series: Lecture Notes in Computer
есть как именно построить скры- му ключу. ■ Science). – Springer Berlin Heidelberg. 1990. V. 403.
тый канал); P. 375–389.
● как защитить передаваемую ин- ЛИТЕРАТУРА 15. Kilian J., Leighton F. T. Fair cryptosystems re-
формацию от стороннего наруши- 1. Жуков А. Е., Маркелова А. В. Криптография visited // In book: Advances in Cryptology – Cryp-
теля (то есть какой метод шифро- и клептография. Потайные ходы в алгоритме to’95. (Series: Lecture Notes in Computer Scien-
вания или какую однонаправлен- RSA // Защита информации. Инсайд. – 2019. – ce). – Springer Berlin Heidelberg. 1995. V. 963.
ную функцию применить к пере- № 2 (86). – C. 74–79. P. 208–221.
даваемой по скрытому каналу ин- 2. Жуков А. Е., Маркелова А. В. Криптография 16. Lenstra A. K. Generating RSA Moduli with
формации). и клептография. Генератор псевдослучайных a Predetermined Portion // In book: Advances in
Комбинация из ответов на эти чисел Dual EC // Защита информации. Ин- Cryptology – ASIACRYPT’98. (Series: Lecture Notes
вопросы дает тот или иной вариант сайд. – 2019. – № 3 (87). – C. 82–88. in Computer Science). – Springer Berlin Heidelberg.
клептографической лазейки. 3. Young A., Yung M. Malicious Cryptography. 1998. V. 1514. P. 1–10.
Ответ на первый вопрос кроется Exposing Cryptovirology. – Indianapolis: John Wi- 17. Виноградов И. М. Основы теории чисел. –
в методах атак на криптоалгоритм. ley & Sons, Inc. 2004. 392 p. М.: Юрайт. – 2019. – 102 c.
Конечно, проще всего передавать не- 4. ГОСТ Р 53113.1–2008. Защита информа- 18. Прахар К. Распределение простых чисел. –
посредственно информацию о клю- ционных технологий и автоматизированных М.: Мир. – 1967. – 512 с.
че (для RSA это либо d, либо p). Но систем от угроз информационной безопасности, 19. PKCS #1 v2.2: RSA Cryptography Standard.
в тех случаях, когда есть ограничения реализуемых с использованием скрытых каналов. RSA Security Inc. Public-Key Cryptography Stan-
по пропускной способности скрытого Часть 1. Общие положения. – М.: Стандар- dards. RSA Laboratories. October 27, 2012.
канала, можно передать какую-либо тинформ. – 2009. – 12 с. 20. Bellare M., Rogaway P. The Exact Security of
часть ключа. Атаки Винера и Коп- 5. ГОСТ Р ИСО/МЭК 10746-2–2000. Инфор- Digital Signatures-How to Sign with RSA and Ra-
персмита позволяют передавать не мационная технология. Взаимосвязь открытых bin // In book: Advances in Cryptology – EUROC-
более |n|/4 бит такой информации. систем. Управление данными и открытая рас- RYPT’96. (Series: Lecture Notes in Computer Sci-
Можно передавать часть битов p, пределенная обработка. Часть 2. Базовая мо- ence). – Springer Berlin Heidelberg. 1996. V. 1070.
часть битов d или же часть битов дель. – М.: Госстандарт России. – 2006. – 24 с. P. 399–416.
эфемерной ключевой пары. 6. Rivest R. L., Shamir A., Adleman L. M. A met- 21. Jonsson J. Security Proofs for the RSA-PSS Sig-
В качестве скрытого канала в ал- hod for obtaining digital signatures and public- nature Sheme and Its Variants – Draft 1.1. RSA
горитме RSA может использоваться key cryptosystems // Communications of the ACM. Laboratories Europe, Stokholm, Sweden [Элек-
открытая экспонента или модуль, 1978. V. 21. P. 120–126. тронный ресурс]. – Режим доступа:
а при формировании подписи – еще 7. Miller G. L. Riemann’s hypothesis and tests for https://eprint.iacr.org/2001/053.ps/ (дата обра-
и биты выравнивания. primality // Journal of Computer and System Sci- щения: 15.01.2020).
Метод защиты передаваемой ин- ences. 1976. V. 13. P. 300–317. 22. Menezes A. Evaluation of Security Level of Cryp-
формации должен выбираться исхо- 8. Anderson R. A practical RSA trapdoor // Elect- tography: RSA-OAEP, RSA-PSS, RSA Signature.
дя из особенностей конкретной при- ronics Letters. 1993. V. 29, № 11. P. 995. December 14, 2001.
кладной системы (ее вычислительной 9. Coppersmith D. Small solutions to polynomial 23. FIPS PUB 186-4. Federal Information Processing
мощности, необходимости защиты equations, and low exponent vulnerabilities // J. of Standard Publication. Digital Signature Standard
от реверс-инжиниринга и т. п.). В не- Cryptology. 1997. V. 10, № 4. P. 233–260. (DSS), 2013 [Электронный ресурс]. – Режим
которых случаях это может быть 10. Young A., Yung M. The Dark Side of «Black- доступа:
алгоритм RSA или, например, аналог Box» Cryptography or: Should We Trust Capstone? // http://dx.doi.org/10.6028/NIST.FIPS.186-4/ (дата
генератора псевдослучайных чисел In book: Advances in Cryptology – CRYPTO’96. обращения: 15.01.2020).
Dual_EC [2]. Если не требуется за- (Series: Lecture Notes in Computer Science). – Sprin- 24. Young A., Yung M. A Space Efficient Backdoor
щиты от реверс-инжиниринга, то ger Berlin Heidelberg. 1996. V. 1109. P. 89–103. in RSA and Its Applications // In book: Selected
допустимо использовать произволь- 11. Cre' peau C., Slakmon A. Simple Backdoors for Areas in Cryptography – SAC 2005. (Series: Lecture
ный симметричный алгоритм шиф- RSA Key Generation // In book: Topics in Crypto- Notes in Computer Science). – Springer Berlin Hei-
рования. logy – CT-RSA 2003. (Series: Lecture Notes in delberg. 2006. V. 3897. P. 128–143.

Защита информации. INSIDE № 2'2020 67