Light-industry-up.ru

Экосистема промышленности

McEliece

01-09-2023

McElieceкриптосистема с открытыми ключами на основе теории алгебраического кодирования, разработанная в 1978 году Робертом Мак-Элисом[1]. Это была первая схема, использующая рандомизацию в процессе шифрования. Алгоритм не получил широко признания в криптографии, но в то же время является кандидатом для постквантовой криптографии, т.к. устойчив к атаке с использованием Алгоритма Шора [2].

Алгоритм основан на сложности декодирования полных линейных кодов (общая задача декодирования является NP-сложной) [3].

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

Существует несколько вариантов криптосистемы, использующие различные типы кодов. Большинство из них оказываются менее защищенными. Отдельного рассмотрения заслуживает вопрос выбора параметров криптосистемы[4].

До сих пор, McElice с кодами Гоппы не поддается криптоанализу. Наиболее известные атаки используют алгоритм декодирования множества данныx. Последние работы описывают как атаки на систему, так и ее защиту[5]. В других работах показано, что для квантовых вычислений размер ключа должен быть увеличен на четыре порядка из-за усовершенствования декодирования множества данных.

Криптосистема имеет несколько преимуществ, например, над bech.cr.yp.to) и с ростом длины ключа степень защиты растет гораздо быстрее. Долгое время считалось, что McEliece не может быть использована для ЭЦП. Однако оказалось возможным построить схему для ЭЦП на основе криптосистемы Niederreiter (модификация МcEliece).

Из-за недостатков McEliece используется редко. Одно из исключений - использование McElice для шифрования в Freenet-подобной сети ENTROPY. Существуют реализации McEliece на ПЛИС[6].

Содержание

Алгоритм работы

McElice состоит из трех алгоритмов:

  • алгоритма случайной генерации ключа, который дает открытый и секретный ключ
  • алгоритма случайного шифрования
  • детерминированного алгоритма дешифрования

Все пользователи в системе совместно используют параметры безопасности:

Генерация ключа

  1. Алиса выбирает двоичный -линейный код исправляющий ошибок. Затем для кода считается производящая матрица
  2. Для того, чтобы исходный код было сложно восстановить, Алиса генерирует случайную невырожденную матрицу
  3. Алиса генерирует случайную матрицу перестановки
  4. Алиса вычисляет мартрицу
  5. Открытым ключом является пара . Закрытым ключом является набор

Шифрование соообщения

Пусть Боб хочет передать сообщение Алисе, чей открытый ключ .

  1. Боб представляет свое сообщение в виде последовательностей двоичных символов длины
  2. Боб вычисляет вектор
  3. Боб генерирует случайный вектор длины , имеющий вес (в нем ровно единиц)[1]
  4. Боб вычисляет шифротекст как и передает его Алисе

Дешифрование сообщения

После получения сообщения , Алиса выполняет следующие действия для дешифрования сообщения:

  1. Алиса вычисляет обратную матрицу:
  2. Алиса вычисляет
  3. Алиса использует алгоритм дешифрования для кода , чтобы получить из
  4. Алиса вычисляет

Корректность алгоритма

Покажем, что выполняется главное свойство криптосистемы, т.е что

Боб посылает . Алиса вычисляет . Поскольку - матрица перестановки, то вес не более, чем .

Код Гоппа исправляет до ошибок. Расстояние Хемминга . Поэтому Алиса получает верное сообщение . После этого Алиса вычисляет исходное сообщение .

Пример работы алгоритма

Пусть, например, мы пользуемся кодом Хемминга, который исправляет все единичные ошибки. Производящая матрица

~G=	
\begin{pmatrix}
	 1 & 0 & 0 & 0 & 1 & 1 & 0  \\
	 0 & 1 & 0 & 0 & 1 & 0 & 0  \\ 
	 0 & 0 & 1 & 0 & 0 & 1 & 1  \\
	 0 & 0 & 0 & 1 & 1 & 1 & 1  
\end{pmatrix}

Алиса выбирает матрицу

~S=	
\begin{pmatrix}
	 1 & 1 & 0 & 1 \\
	 1 & 0 & 0 & 1 \\ 
	 0 & 1 & 1 & 1 \\
	 1 & 1 & 0 & 0   
\end{pmatrix}

и матрицу перестановки

~P=	
\begin{pmatrix}
	0 & 1 & 0 & 0 & 0 & 0 & 0 \\
	0 & 0 & 0 & 1 & 0 & 0 & 0 \\
  0 & 0 & 0 & 0 & 0 & 0 & 1 \\
  1 & 0 & 0 & 0 & 0 & 0 & 0 \\
	0 & 0 & 1 & 0 & 0 & 0 & 0 \\
  0 & 0 & 0 & 0 & 0 & 1 & 0 \\
  0 & 0 & 0 & 0 & 1 & 0 & 0  
\end{pmatrix}

Тогда

{\hat G}=SGP =
\begin{pmatrix}
	1 & 1 & 1 & 1 & 0 & 0 & 0 \\
	1 & 1 & 0 & 0 & 1 & 0 & 0 \\
	1 & 0 & 0 & 1 & 1 & 0 & 1 \\
	0 & 1 & 0 & 1 & 1 & 1 & 0
\end{pmatrix}

Если Боб хочет послать сообщение Алисе, то он сначала генерирует вектор с весом , например и вычисляет шифротекст и посылает его Алисе.

После получения сообщения, Алиса сначал вычисляет , где

P^{-1} =
\begin{pmatrix}
	0 & 0 & 0 & 1 & 0 & 0 & 0 \\
	1 & 0 & 0 & 0 & 0 & 0 & 0 \\
	0 & 0 & 0 & 0 & 1 & 0 & 0 \\
	0 & 1 & 0 & 0 & 0 & 0 & 0 \\
	0 & 0 & 0 & 0 & 0 & 0 & 1 \\
	0 & 0 & 0 & 0 & 0 & 1 & 0 \\
	0 & 0 & 1 & 0 & 0 & 0 & 0
\end{pmatrix}

получая .

После этого Алиса расшифровывает используя быстрый алгоритм декодирования (в этом примере - алгоритм Хэмминга. Синдромом является , таким образом ошибка произошла в позиции (подробности опущены). Тогда сообщение будет . получается путем отбрасывания лишних битов у . Вследствии "правильного" выбора , Алиса знает, что и может теперь получить из путем умножения на матрицу

S^{-1} =
\begin{pmatrix}
	1 & 1 & 0 & 1 \\
	1 & 1 & 0 & 0 \\
	0 & 1 & 1 & 1 \\
	1 & 0 & 0 & 1
\end{pmatrix}

В итоге Алиса получает


Атаки

В литературе описано достаточно большое количество атак на McElice. Некоторые атаки, называемые структурными атаками, основаны на получении закрытого ключа из открытого [7]. Другие атаки направлены на получения исходного текста сообщения из шифрованного сообщения. Большинство из них основаны на декодировании множества данных (ISD  (англ.)) или на алгоритме Дня Рождения, их обобщениях и улучшениях. Существуют такие атаки, как, например, итерационное декодирование [8] и статическое декодирование, но они не являются успешными. Атака ISD оказалась наименее сложной. В последние годы было описано нескольно алгоритмов и их улучшения. Наиболее важные перечислены в таблице вместе с их двоичным показателем затрат для декодирования (1024, 524, 50) кода Гоппа (стандартные параметры для McEliece[1]). Для этих алгоритом известны их предельные показатели [9].

Год Алгоритм Сложность ()
1986 Адамс-Мейер 80.7
1988 Ли-Брикелл 70.89
1989 Штерн 66.21
1994 Кантеаут-Шабанн 65.5
1998 Кантеаут-Шабант 64.1
2008 Бернштейн-Ланг-Петерс 60.4
2009 Финиаз-Сендреир 59.9

Недостатки

Основные недостатки криптосистемы McEliece:

  • Размер открытого ключа слишком большой. При использовании кодов Гоппы с параметрами, предложенными Мак-Элисом, открытый ключ составляет бит, что вызывает сложности в реализации. При других параметрах ключа:
Безопасность McEliece в зависимости от параметров
Степень защиты Параметры ,кол-во ошибок Размер открытого ключа в Кбит Размер секретного ключа в Кбит
Краткосрочная (60 бит) (1024, 644,38),38 644 (0.38, 10, 405)
Среднесрочная (80 бит) (2048, 1751, 27),27 3,502 (0.30, 22, 2994)
Долгосрочная (256 бит) (6624, 5129, 115),117 33,178 (1.47, 104, 25690)
  • Зашифрованное сообщение гораздо длиннее исходного. Увеличение полосы пропускания канала делает систему более подвержденной ошибкам при передаче сообщения.
  • Криптосистема не может быть использована для аутентификации потому, что схема шифрования не является взаимно-однозначной, а сам алгоритм является ассиметричным.

Примечания

  1. 1 2 3 См. (R. J. McElice 1978) (англ.)
  2. 1008.2390 [cs.CR]   (англ.)
  3. E. Berlekamp, R. McEliece, H. van Tilborg (1978). «On Inherent Intractability of Certain Coding Problems.» 24(3): 384-386. (англ.)
  4. Selecting Parameters for Secure McEliece-based Cryptosystems». (англ.)
  5. Attacking and defending the McEliece cryptosystem». Proc. 2nd International Workshop on Post-Quantum Cryptography 5299: 31–46. 10.1007/978-3-540-88403-3_3. (англ.)
  6. Code-based cryptography: implementing the McEliece Scheme on Reconfigurable hardware (31 May 2009). (англ.)
  7. A Summary of McEliece-Type Cryptosystems and their Security (2006). (англ.)
  8. (2007) «Modeling Bit Flipping Decoding Based on Nonorthodogonal Check Sums With Application to Iterative Decoding Attack of McEliece Cryptosystem.». IEEE Transactions on Information Theory: 402-211. (англ.)
  9. (2009) «Explicit Bounds for Generic Decoding Algortithms for Code-based Cryptography.». (англ.)

Литература

  • Прикладная криптография. Протоколы, алгоритмы, исходные тексты на языке Си = Applied Cryptography. Protocols, Algorithms and Source Code in C. — М.: Триумф, 2002. — 816 с. — 3000 экз. — ISBN 5-89392-055-4

Ссылки

  • Alfred J. Menezes, Scott A. Vanstone, A. J. Menezes and Paul C. van Oorschot, Handbook of Applied Cryptography.
  • Anne Canteaut and Nicolas Sendrier, Cryptanalysis of the Original McEliece Cryptosystem.
  • R. J. McEliece (January and February 1978). «A Public-Key Cryptosystem Based On Algebraic Coding Theory». DSN Progress Report 42-44: 114. 1978DSNPR..44..114M. Проверено 21 February 2009.


McEliece.

© 2014–2023 light-industry-up.ru, Россия, Краснодар, ул. Листопадная 53, +7 (861) 501-67-06