Некоторые приложения теории кодирования. Учебное пособие
.pdf
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
