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

Материал из testwiki
Перейти к навигации Перейти к поиску

Криптосистема ГПТ (Габидулина-Парамонова-Третьякова) — криптосистема с открытыми ключами, основанная на ранговых кодах[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 для длины кода n≤N с количеством символов k, задающаяся матрицей следующей формы:
Gk=[g1g2⋯gng1[1]g2[1]⋯gn[1]⋮⋮⋱⋮g1[k−1]g2[k−1]⋯gn[k−1]]
где g1,g2,...,gn — любой набор элементов расширенного поля 𝔽qN, линейно независимых над полем 𝔽q.
главная матрица Gk используется для исправления ошибок. Ошибки ранга не более n−k2 могут быть исправлены.
  • Cтроковый скремблер S — невырожденная квадратная матрица порядка k над полем 𝔽qN
  • X — матрица искажений размера (k×t1) над полем 𝔽qN со столбцовым рангом Rkcol(X | 𝔽q)=t1 и рангом Rk(X | 𝔽qN)=tX, tX≤t1.
Матрица [X Gk] имеет столбцовый ранг Rkcol([X Gk] | 𝔽q)=n+t1.
  • Столбцовый скремблер P — квадратная матрица порядка (t1+n) над полем 𝔽q.
  • t1+n может быть больше N, но n≤N.

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

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

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

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

  • Длина кода n≤N,
  • Размерность k=n−d+1,
  • Ранговое расстояние кода d=n−k+1

Шифрование

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

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

где e — искусственный вектор ошибок ранга не выше t2, причем t1+t2≤t=⌊n−k2⌋.

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

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

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

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

Взлом

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

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

  1. Для матрицы L=(lij) над тем же полем σ(L)=(σ(lij))=(lijq)
  2. Для любого целого s: σs(L)=σ(σs−1(L))
  3. σN=σ
  4. σ−1=σN−1
  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=n−k−1.
  • Определяет матрицы:
X1(k−1×t1), получаемая из X(k×t1) удалением последней строки,
X2(k−1×t1), получаемая из X(k×t1) удалением первой строки.
  • Определяет линейное отображение T: 𝔽qNk×t1→𝔽qN(k−1)×t1 по следующему правилу:
если X∈𝔽qNk×t1, тогда T(X)=Y=σ(X1)−X2
  • Записывает Yext=[Yσ(Y)σ2(Y)⋯σu−1(Y)]⊤
  • С помощью матричных преобразований приводит расширенный открытый ключ к виду:
G~pub,ext=S~ext[Z|Gn−1Yext|0]P
где Gn−1 — порождающая матрица (n,n−1,2) МРР-кода.
  • Пробует найти решение системы
S~ext=[Z|Gn−1Yext|0]PuT=0,
где u — вектор-строка над расширенным полем 𝔽qN длины t1+n
  • Представляет вектор PuT в виде:
PuT=[yh]⊤
где y — подвектор длины t1, а h — длины n
  • Теперь система уравнений эквивалентна следующей:
{ZyT+Gn−1hT=0,YextyT=0
  • Полагая верным условие Rk(Yext|𝔽qN)=t1, видим, что указанная выше система имеет только тривиальное решение yT=0. Следовательно, первое уравнение из системы преобразуется к виду:
Gn−1hT=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