Криптосистема ГПТ

Материал из testwiki
Версия от 00:08, 25 июля 2024; imported>РобоСтася (стандартизация дат)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

Криптосистема ГПТ (Габидулина-Парамонова-Третьякова) — криптосистема с открытыми ключами, основанная на ранговых кодах[1], разработанная в 1991 году Э. М. Габидулиным, А. В. Парамоновым и О. В. Третьяковым[2] на основе криптосистемы McEliece.

Данная криптосистема, в отличие от криптосистемы McEliece, более устойчива к атакам декодирования, а также имеет меньший размер ключа[3], что лучше подходит в условиях практического применения.

Большинство версий системы были взломаны Р. Овербеком[4].

Описание

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

В качестве открытого текста может использоваться любой k-вектор m=(m1,m2,...,mk), ms𝔽qN,s=1,2,...,k.

Открытый ключ

Открытым ключом является порождающая матрица размера k×(n+t1):

Gpub=S[X Gk]P,

где:

  • Gk — порождающая матрица (n,k,d) кода с максимальным ранговым расстоянием d для длины кода nN с количеством символов k, задающаяся матрицей следующей формы:
Gk=[g1g2gng1[1]g2[1]gn[1]g1[k1]g2[k1]gn[k1]]
где g1,g2,...,gn — любой набор элементов расширенного поля 𝔽qN, линейно независимых над полем 𝔽q.
главная матрица Gk используется для исправления ошибок. Ошибки ранга не более nk2 могут быть исправлены.
  • Cтроковый скремблер S — невырожденная квадратная матрица порядка k над полем 𝔽qN
  • X — матрица искажений размера (k×t1) над полем 𝔽qN со столбцовым рангом Rkcol(X | 𝔽q)=t1 и рангом Rk(X | 𝔽qN)=tX, tXt1.
Матрица [X Gk] имеет столбцовый ранг Rkcol([X Gk] | 𝔽q)=n+t1.
  • Столбцовый скремблер P — квадратная матрица порядка (t1+n) над полем 𝔽q.
  • t1+n может быть больше N, но nN.

Закрытый ключ

В качестве закрытого ключа выступает набор (S,Gk,X,P), а также алгоритм быстрого декодирования МРР-кода, в котором используется матрица проверки четности H(nk)×n, такая, что GkHT=0:

H=[h1h2hnh1[1]h2[1]hn[1]h1[d2]h2[d2]hn[d2]],
где h1,h2,...,hn — элементы расширенного поля 𝔽qN, линейно независимые над основным полем 𝔽q
Матрица X не используется для расшифровки криптотекста и может быть удалена после вычисления закрытого ключа.

Оптимальные параметры кода

  • Длина кода nN,
  • Размерность k=nd+1,
  • Ранговое расстояние кода d=nk+1

Шифрование

Соответствующий открытому тексту криптотекст вычисляется следующим образом:

c=mGpub+e=mS[X Gk]P+e,

где e — искусственный вектор ошибок ранга не выше t2, причем t1+t2t=nk2.

Дешифрование

Законный получатель, получая c, выполняет следующие действия:

  1. Вычисляет c=(c1,c2,...,ct1+n)=cP1=mS[X Gk]+eP1
  2. Из c выделяет подвектор c=(ct1+1,ct1+2,...,ct1+n)=mSGk+e, где e — подвектор eP1
  3. Применяет алгоритм быстрого декодирования для исправления ошибки e
  4. Получает mS
  5. Восстанавливает m=(mS)S1

В данной системе размер открытого ключа составляет V=k(t1+n)N бит, а скорость передачи информации R=kt1+n.

Взлом

Автоморфизм Фробениуса

Введем автоморфизм Фробениуса: σ(x)=xq, x𝔽qN. Он обладает следующими свойствами:

  1. Для матрицы L=(lij) над тем же полем σ(L)=(σ(lij))=(lijq)
  2. Для любого целого s: σs(L)=σ(σs1(L))
  3. σN=σ
  4. σ1=σN1
  5. σ(a+b)=σ(a)+σ(b)
  6. σ(ab)=σ(a)σ(b)
  7. В общем случае σ(L)L. Равенство достигается, если L — матрица над основным полем 𝔽q

Описание атаки Овербека[4]

  • Криптоаналитик вычисляет расширенный открытый ключ из открытого ключа:
Gext,pub=Gpubσ(Gpub)σu(Gpub)=S[XGk]Pσ(S)[σ(X)σ(Gk)]Pσu(S)[σu(X)σu(Gk]P
Здесь использовано свойство 7 автоморфизма Фробениуса: σ(P)=P, так как P — матрица над основным полем 𝔽q.
  • Переписывает эту матрицу как Gext,pub=Sext[Xext Gext],
где
Sext=diag[Sσ(S)σu(S)],
Xext=[Xσ(X)σu(X)], Gext=[Gkσ(Gk)σu(Gk)].
  • Выбирает u=nk1.
  • Определяет матрицы:
X1(k1×t1), получаемая из X(k×t1) удалением последней строки,
X2(k1×t1), получаемая из X(k×t1) удалением первой строки.
  • Определяет линейное отображение T: 𝔽qNk×t1𝔽qN(k1)×t1 по следующему правилу:
если X𝔽qNk×t1, тогда T(X)=Y=σ(X1)X2
  • Записывает Yext=[Yσ(Y)σ2(Y)σu1(Y)]
  • С помощью матричных преобразований приводит расширенный открытый ключ к виду:
G~pub,ext=S~ext[Z|Gn1Yext|0]P
где Gn1 — порождающая матрица (n,n1,2) МРР-кода.
  • Пробует найти решение системы
S~ext=[Z|Gn1Yext|0]PuT=0,
где u — вектор-строка над расширенным полем 𝔽qN длины t1+n
  • Представляет вектор PuT в виде:
PuT=[yh]
где y — подвектор длины t1, а h — длины n
  • Теперь система уравнений эквивалентна следующей:
{ZyT+Gn1hT=0,YextyT=0
  • Полагая верным условие Rk(Yext|𝔽qN)=t1, видим, что указанная выше система имеет только тривиальное решение yT=0. Следовательно, первое уравнение из системы преобразуется к виду:
Gn1hT=0.

Это позволит найти первую строку матрицы проверки четности для кода с данной порождающей матрицей G~pub,ext. Следовательно, это решение взламывает описанную криптосистему за полиномиальное время. Атака Овербека требует O((n+t1)3) операций над полем 𝔽qN, так как каждый шаг атаки имеет сложность не выше кубической на n+t1.

Примечания

Шаблон:Примечания

Литература

  1. Габидулин Э. М. Теория кодов с максимальным ранговым расстояниемШаблон:Недоступная ссылка // Пробл. передачи информ. Шаблон:Wayback — 1985. — Т. 21, вып. 1. — С. 3—16.
  2. Gabidulin E.M., Paramonov A.V., Tretjakov O.V. Ideals over a Non-commutative Ring and Their Application in Cryptology Шаблон:Wayback // Advances in Cryptology Шаблон:Wayback — Eurocrypt ’91, LNCS 547, 1991, pp. 482—489.
  3. Khan E., Gabidulin E. M., Honary B., Ahmed H. Modified Niederreiter type of GPT Cryptosystem based on Reducible Rank Codes Шаблон:Wayback // et al. Des. Codes Cryptogr. (2014) 70: 231. — ISSN 0925-1022
  4. 4,0 4,1 Overbeck R. Structural Attacks for Public Key Cryptosystems based on Gabidulin Codes Шаблон:Wayback // Journal of Cryptology: volume 21, number 2, april 2008 — ISSN 0933-2790