Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Некоторые приложения теории кодирования. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
1 Мб
Скачать

3.13. RSD-проблема

А в случае Or = Uk+1 вероятность того, что M вернет 1 равна

1

n

 

 

Xj

P2 =

n

P [A, Ej,M].

 

 

=1

Заметим, что |P1 − P2| — это преимущество алгоритма M, т. е. насколько вероятность различить два оракула отличается от вероятности простого угадывания (вероятность простого угадывания равна 1/2). Подставляя вместо Pi соответствующие значения, получим

 

 

|

 

 

|

n

|

 

E

 

E

|

 

 

 

 

 

 

P1

 

P2

 

=

1

P [A,

 

0,M]

 

P [A,

n,M]

.

 

 

 

 

 

 

 

 

 

 

 

 

По предположению, P [A, E0,M]

 

21 + δ, так как правило в шифрую-

щем оракуле

0,M

совпадает с правилом шифрования системы LPN-C. А

P [A,

E

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n,Mсоответ-

n,M] = 1/2, так как правило шифрования в оракуле

E

E

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ствует правилу шифрования в одноразовом блокноте (алгоритму A остается только угадывать номер сообщения). Таким образом, |P1 − P2| nδ .

3.13. RSD-проблема

Рассмотренные выше схемы шифрования являются блоковыми: блок открытого текста длины k шифруется в блок шифртекста длины n. В следующем разделе будет рассмотрен пример поточного шифра: шифр SYND [7].

Стойкость схемы SYND основана на сложности одного варианта следующей известной задачи (проблемы): для заданной бинарной (r × n)- матрицы H, вектора s Fr2 и натурального w [n] найти в Fn2 вектор x веса не более w, для которого xHT = s. Эта проблема носит название проблемы синдромного декодирования или SD-проблема (SD — Syndrom Decoding). Известно, что SD-проблема является NP-полной в худшем случае, а также предполагается, что она является трудной в среднем.

Задача, на трудности которой основана стойкость SYND, формулируется так: для заданного набора w двоичных (r × n)-матриц H1,...,Hw и вектора s Fr2 найти по одному столбцу в каждой из матриц так, чтобы сумма этих столбцов давала s. Другими словами, для (r × wn)-матрицы

41

Глава 3. Схема симметричного шифрования

H = [H1|H2|...|Hw] и вектора s Fr2 требуется найти такой вектор x вида

x = (x1, x2, ..., xw), xi F2n, wt(xi) = 1, i = 1, ..., w,

(3.7)

что xHT = s. Векторы вида (3.7) называются (n, w)-регулярными, поэтому проблема называется проблемой регулярного синдромного декодирования или RSD-проблемой (Regular SD). RSD-проблема является NP-полной в худшем случае и также считается трудной в среднем, хотя RSD-проблема меньше изучена, чем SD-проблема.

3.14. Схема SYND

Схему работы многих поточных шифров можно представить так, как показано на рис. 3: на основе ключа k и начального вектора IV система, состоящая из блока инициализации, обновления и выбора битов, генерирует биты ключевого потока, которые с помощью операции побитового исключающего ИЛИ (операция XOR, обозначенная на рисунке символом ) складываются с битами открытого текста.

Начальный вектор

Инициализация

Текущее

Обновление

состояния

состояние

состояния

Ключ

Выбор битов ключевого потока

Открытый текст Шифртекст

Рис. 3. Схема работы поточного шифра

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

42

3.14. Схема SYND

с вероятностью близкой к единице) нерегулярные векторы, то необходимо отображение, позволяющее по нерегулярному вектору одной длины делать регулярный вектор другой длины. Пусть l, t N, n = t2l. Рассмотрим отображение

θn,t : Flt2 → Fn2 ,

которое действует следующим образом: 1) аргумент представляется в виде конкатенации t блоков по l бит каждый; 2) каждый блок рассматривается как двоичная запись десятичного числа от 0 до 2l − 1; 3) это десятичное число определяет позицию единицы в соответствующем блоке выходного вектора длины n = t2l, который также представим как конкатенация t блоков по 2l бит каждый.

Схема работы шифра SYND показана на рис. 4.

IV

 

 

 

ei+1

 

 

e1

 

ei

 

 

 

 

ei, i = 1, ...

ei+1

= f1(ei)

g(k, IV )

 

 

 

 

 

ei

 

 

 

 

 

 

 

 

 

k

 

 

 

 

 

 

 

si = f2(ei)

Открытый текст

Шифртекст

Рис. 4. Схема работы поточного шифра SYND

В блоке обновления состояния ei и блоке выбора битов si ключевого потока используются функции f1 : Flt2 → Flt2 и f2 : Flt2 → Fb2 вида:

fi(x) = θn,t(x)HiT , i = 1, 2,

где H1 – несекретная (lt × n)-матрица, H2 – несекретная (b × n)-матрица, b

— число выбираемых битов (обычно b [lt]).

Опишем блок инициализации. Длина ключа и начального вектора предполагается равной lt/2, b = lt. В блоке инициализации используется функция g : Flt2 → Flt2 вида:

g(k, IV) = z + f2(y + f1(z)),

где y = (k, IV), z = f1(y) + y.

Рекомендуемые параметры шифра SYND: t = 32, n = 8192, l = 8.

43

Глава 3. Схема симметричного шифрования

3.15. Вопросы для самоконтроля

1.Определение схемы симметричного шифрования.

2.Наивная симметричная кодовая схема шифрования. Стойкость наивной схемы шифрования.

3.Схема Рао-Нама. Стойкость схемы Рао-Нама (атака Стройка-Тилбурга). Модификация схемы Рао-Нама.

4.LPN-проблема. Схема шифрования LPN-C. Стойкость LPN-C.

5.RSD-проблема. Схема SYND.

44

Глава 4

Схема асимметричного шифрования

4.1. Постановка задачи

Симметричные шифры обладают рядом достоинств: небольшой размер секретного ключа, высокая скорость шифрования и расшифрования, высокая стойкость. Причем, как показано в предыдущем разделе, высокая стойкость некоторых симметричных шифров может быть теоретически обоснована — сведена к сложности решения некоторых трудных проблем, таких, как, например, LPN-проблема (раздел 3.9.), RSD-проблема (раздел 3.13.). Отметим, что под теоретическим обоснованием понимается строгое доказательство того, что если существует эффективная атака на шифр, то существует и эффективный алгоритм решения трудной задачи. При этом отсутствие эффективного алгоритма решения трудной задачи теоретически не обосновывается, а обосновывается практическим опытом решения этой задачи (чем больше/дольше этот опыт, тем, как правило, более убедительно обоснование стойкости шифра). Стоит заметить, что используемые на практике симметричные шифры, такие, как «Кузнечик», «Магма» и т.п., скорее всего, можно отнести к практически стойким шифрам, так как на настоящий момент не известна трудная задача, к сложности решения которой сводится стойкость этих шифров.

Недостаток симметричных шифров в их симметричности: при шифровании и расшифровании используется одинаковый ключ (в ряде случаев ключи могут быть разными, но по ключу шифрования можно эффективно найти ключ расшифрования и наоборот). Это означает, что для организации шифрованного ЦКПД, отправитель и получатель должны конфи-

45

Глава 4. Схема асимметричного шифрования

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

4.2. Определение схемы асимметричного шифрования. KEM

Схема двухключевой асимметричной криптосистемы (PKE, public key encryption) для заданного множества сообщений M может быть описана тройкой PKE = (GenPKE, Enc, Dec), где

1.GenPKE — полиномиальный вероятностный алгоритм генерации ключей pk и sk (pk, sk) ← GenPKE(·): секретного sk и соответствующего ему публичного pk;

2.Enc — полиномиальный вероятностный алгоритм шифрования, преобразующий произвольное сообщение m M в шифртекст c:

c ← Enc(pk, m; r);

здесь r — значение случайной величины, которое может вырабатываться при шифровании;

3.Dec — полиномиальный алгоритм расшифрования, такой, что Dec(sk, c) возвращает m, если c представляет шифртекст, для которого известен полиномиальный алгоритм нахождения m с помощью sk; в противном случае Dec(sk, c) возвращает сообщение об ошибке ̸ M.

Под уровнем стойкости λOW N (уровнем OW-стойкости) схемы PKE обычно понимают отрицательный двоичный логарифм вероятности успеха наилучшей атаки дешифрования шифртекста, полученного при шифровании случайно и равновероятно выбранного открытого текста. В настоящее время уровень OW-стойкости λOW 128 считается приемлемым.

46

4.3. Схема типа Мак-Элиса

Асимметричные шифросистемы обычно не используются для защиты непосредственно пользовательских данных, но при этом являются основой многих криптографических протоколов, в частности, механизмов инкапсуляции сеансового ключа (KEM, Key Encapsulation Mechanism). Одной из возможных целей протокола KEM является передача от отправителя к получателю сеансового ключа K(K ← {0, 1}m) симметричного шифра (где обычно m {128, 192, 256}), на котором выполняется шифрование пользовательских данных.

Механизм инкапсуляции для фиксированного пространства сеансовых ключей K и схемы PKE = (GenPKE, Enc, Dec) может быть описан тройкой алгоритмов KEM = (GenKEM, Encaps, Decaps), где

1.GenKEM — полиномиальный вероятностный алгоритм генерации публичного pkи секретного skключей (строится на основе GenPKE);

2.Encaps — полиномиальный вероятностный алгоритм получения пары векторов (K, c): (K, c) ← Encaps(pk), где c называется инкапсуляцией сеансового ключа K K (строится на основе Enc);

3.Decaps — полиномиальный алгоритм извлечения (декапсуляции) сеансового ключа K из c (строится на основе Dec). Алгоритм Decaps(sk, c) возвращает K, если c представляет корректную инкапсуляцию ключа K, в противном случае Decaps(sk, c) может возвращать сообщение об ошибке ̸ K(явный отказ, explicit rejection), либо вектор, отличный от K, но обычно зависящий от c и sk(неявный отказ, implicit rejection).

Уровень стойкости λKEM N механизма KEM может быть определен как отрицательный двоичный логарифм вероятности успеха наилучшей известной атаки на KEM. Обычно для механизмов KEM, основанных на схемах PKE, выполняются неравенства λOW λKEM m, где m — длина сеансового ключа.

4.3. Схема типа Мак-Элиса

В 1978 г. Р. Мак-Элис предложил кодовую асимметричную криптосистему [8], в основе которой лежали коды Гоппы. Опишем ее для произвольного

47

Глава 4. Схема асимметричного шифрования

кода. Пусть C – [n, k, d]q–код, для которого известен эффективный декодер Decoder : Fnq → C { }, где — сообщение об ошибке, возвращаемое декодером при невозможности декодирования входного вектора. Сообщение об ошибке может возвращаться декодером Decoder в случае, когда, например, входной вектор не может быть однозначно декодирован. Пусть также G — фиксированная порождающая матрица кода C, G−1 — псевдообратная к G матрица, GLk(Fq) — кольцо обратимых (k × k)-матриц, Pn

— кольцо (n × n)-матриц перестановок, En,t = {y Fnq : wt(y) = t}. Схему PKE = (GenPKE, Enc, Dec) типа Мак-Элиса на основе кода C обозначим McE(C) = (GenMcE(C), Enc, Dec); соответствующие алгоритмы приведены на рис. 5. Отметим, что здесь и далее рассматривается схема Мак-Элиса, когда код C не является секретным, поэтому матрица G является частью алгоритмов GenMcE(C) и Dec. Так как в ряде случаев декодер кода C может исправлять векторы ошибок веса больше, чем (d − 1)/2 , то для алгоритма GenMcE(C) введен один входной параметр: вес t добавляемого вектора ошибок. В алгоритме шифрования Enc вектор e веса t может выбираться, например, случайно из En,t, или генерироваться детерминированно, например, в зависимости от m с помощью инъективного отображения из Fkq в En,t. В первом случае схема McE(C) называется схемой с вероятностным

шифрованием, а во втором — с детерминированным шифрованием.

 

GenMcE(C)(t) :

Enc(pk, m; e) :

Dec(sk, c) :

1.

 

S ← GLk(Fq)

c = mG˜ + e

x ← Decoder(cP −1)

2.

 

P ← Pn

вернуть c

если x ̸=

3.

 

pk = (G˜ = SGP, t)

 

m= xG−1S−1

4.

 

sk = (S, P )

 

вернуть m

5.

 

вернуть (pk, sk)

 

иначе

6.

 

 

 

вернуть

Рис. 5. Схема асимметричного шифрования McE(C) = (GenMcE(C), Enc, Dec)

Важными характеристиками систем типа Мак-Элиса являются уровень OW-стойкости, размер публичного ключа (число байт для хранения матри-

цы ˜) и время расшифрования. В случае, когда для криптосистемы типа

G

Мак-Элиса неизвестны эффективные атаки на ключ, стойкость системы

основана на предположении, что для кода с порождающей матрицей ˜ SD-

G

48

4.4. Схема типа Нидеррайтера

проблема (см. раздел 3.13.) не имеет эффективного решения. И в этом случае стойкость криптосистемы типа Мак-Элиса принято оценивать с помощью вероятности успешного декодирования по информационным совокупностям (см. раздел 2.5.). Этот подход в настоящее время считается наиболее эффективной атакой на шифрограмму для криптосистем типа Мак-Элиса. Несмотря на то, что известен ряд усовершенствований этого алгоритма, здесь под уровнем OW-стойкости λOW криптосистемы типа Мак-Элиса на [n, k, d]q-коде понимается отрицательный двоичный логарифм вероятности успеха классического алгоритма декодирования по информационным совокупностям, или иначе, логарифм сложности этого алгоритма:

λOW = −log2

 

Ck

 

= log2

 

Ck

.

(4.1)

Cnk

Cnk−t

 

 

n−t

 

 

 

n

 

 

4.4. Схема типа Нидеррайтера

В криптосистеме Нидеррайтера [9], основанной на [n, k, d]q-коде C множество информационных сообщений — это множество En,t, где t = (d − 1)/2 . Поэтому для применения этой криптосистемы необходим алгоритм,

реализующий инъективное отображение ξ : Fvq → En,t, где v = logq |En,t| . Пусть, как и в криптосистеме Мак-Элиса, для кода C известен эффек-

тивный декодер Decoder : Fnq → C { }, H — проверочная ((n − k) × n)- матрица кода C, Γ(H, s) — множество решений системы zHT = s относительно вектора неизвестных z = (z1, ..., zn) (отметим, что произвольное решение из Γ(H, s) можно найти эффективно). Тройка алгоритмов Nied(C) = (GenNied(C), Enc, Dec) схемы Нидеррайтера показана на рис. 6.

4.5. KEM на основе схем типа Мак-Элиса и типа Нидеррайтера

На основе асимметричной криптосистемы PKE = (GenPKE, Enc, Dec) типа Мак-Элиса или типа Нидеррайтера на [n, k, d]q-коде C наиболее стойким механизмом KEM считается механизм, получаемый с помощью преобразования Фудзисаки-Окамото (FO) [10]. В случае использования схемы Мак-Элиса, тройка алгоритмов преобразования FO̸ — механизма KEM с

49

Глава 4. Схема асимметричного шифрования

 

GenNied(C)(t) :

Enc(pk, m) :

Dec(sk, c) :

1.

S ← GLn−k(Fq)

c = ξ(m)H˜ T

c= cS−1 = ξ(m)P T HT

2.

P ← Pn

вернуть c

y ← Γ(H, c)

3.

˜

 

x ← Decoder(y)

pk = (H = SHP )

 

4.

sk = (S, P )

 

если x ̸=

5.

вернуть (pk, sk)

 

m= ξ−1((y − x)P −1)

6.

 

 

вернуть m

7.

 

 

иначе

8.

 

 

вернуть

Рис. 6. Схема асимметричного шифрования Nied(C) = (GenNied(C), Enc, Dec)

неявным отказом (сообщение не возвращается) — показана на рис. 7, где

G : Fkq → En,t — инъективное отображение, h : Fq → {0, 1}m — криптографическая хеш-функция.

 

GenKEM(t) :

 

 

 

Encaps(pk) :

Decaps(sk, c) :

1.

 

s←Fqk

 

Gen

McE(C)

(t)

r←Fqk

r← Dec(sk, c)

2.

 

(pk, sk)

 

c

Enc(pk, r; G(r))

если

r=

 

 

 

 

 

 

 

 

̸

3.

 

pk= pk

 

 

 

K ← h(r, c)

c← Enc(pk, r; G(r))

4.

 

sk= (sk, s)

 

 

вернуть (K, c)

если c = c

5.

 

вернуть (pk, sk)

 

 

 

 

вернуть h(r, c)

6.

 

 

 

 

 

 

 

 

 

вернуть h(s, c)

Рис. 7. Механизм KEM = (GenKEM, Encaps, Decaps), полученный путем применения преобразования FO̸ на основе схемы асимметричного шифрования McE(C) с детерминированным правилом шифрования

В случае использования схемы Нидеррайтера, тройка алгоритмов механизма KEM может иметь вид, показанный на рис. 8.

 

GenKEM(t) :

 

 

 

Encaps(pk) :

Decaps(sk, c) :

1.

 

s←Fqv

 

Gen

Nied(C)

(t)

r←Fqv

r← Dec(sk, c)

2.

 

(pk, sk)

 

c

Enc(pk, r)

если

r=

 

 

 

 

 

 

 

 

̸

3.

 

pk= pk

 

 

 

K ← h(1, r, c)

вернуть h(1, r, c)

4.

 

sk= (sk, s)

 

 

вернуть (K, c)

вернуть h(0, s, c)

5.

 

вернуть (pk, sk)

 

 

 

 

 

 

Рис. 8. Механизм KEM = (GenKEM, Encaps, Decaps), полученный путем применения преобразования FO̸ на основе схемы асимметричного шифрования Nied(C)

50

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]