Научная статья на тему 'Протокол аргумента знания слова кода Гоппы и ошибки ограниченного веса'

Протокол аргумента знания слова кода Гоппы и ошибки ограниченного веса Текст научной статьи по специальности «Математика»

CC BY
74
29
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по математике, автор научной работы — Федюкович Вадим Евгеньевич

A new protocol is introduced to show knowledge of a Goppa polynomial and of a codeword, as well as that error is of a bounded weight. The protocol is a special honest verifier zero knowledge proof under assumption of the discrete logarithm problem hardness.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Argument of knowledge of a Goppa codeword and of a bounded error

A new protocol is introduced to show knowledge of a Goppa polynomial and of a codeword, as well as that error is of a bounded weight. The protocol is a special honest verifier zero knowledge proof under assumption of the discrete logarithm problem hardness.

Текст научной работы на тему «Протокол аргумента знания слова кода Гоппы и ошибки ограниченного веса»

неизвестного перехода s — x/y ^ p. Требуется путем проведения простого условного эксперимента с автоматом A определить неизвестные (секретные) переходы.

Восстановление функции выходов. Пусть для a Е X значение функции <^s(a) неизвестно. Поскольку функция <£>s есть биекция, то образ символа а относительно ^s вычисляется как разность множеств Y и {y : y = <^s(x),x Е X\{а}}.

Восстановление функции переходов. Отметим, что начальный идентификатор для любого состояния s автомата, предъявленного для эксперимента (после восстановления функции выходов), может быть построен как id(s) = {x/y : x Е X,y = <^s(x)}.

Ш!аг 1. L := S, т. е. автомат A может находиться в любом из своих состояний.

Ш!аг 2 (построение установочного слова). Найти входной символ x, такой, что существуют два состояния s и s' из L, для которых <^(s, x) = <^(s', x). Подать на автомат A входной символ x и пронаблюдать выходной символ y. Найти состояния из L, стартуя из которых автомат A может выдавать y, т. е. построить множество N = {s : s Е L,y = <^s(x)}. Построить множество Q преемников состояний из N по символу x. Если существует s Е N, соответствующее начальному состоянию секретного перехода s — x/y ^ p, то перейти на Шаг 1. Если |Q| = 1, то L := Q и перейти на Шаг 2.

Шаг 3 (построение переводящего слова). Найти и подать на A входное слово, переводящее автомат из состояния q Е Q, причем |Q| = 1, в неизвестное состояние k, соответствующее финальному состоянию секретного перехода s — x/y ^ p.

Шаг 4 (восстановление неизвестного состояния). На автомат A подать входной символ а и пронаблюдать выходной символ b. IDk := IDk U a/b. Если |IDk| = |X|, то состояние k := p, где p такое, что id(p) = IDk, т. е. переход s — x/y ^ p восстановлен. Если существуют невосстановленные переходы, то перейти на Шаг 1.

ЛИТЕРАТУРА

1. Кудрявцев В. Б., Алешин С. В., Подколзин А. С. Введение в теорию автоматов. М.: Наука,

1985. 320 с.

2. Бабаш А. В., Шанкин Г. Н. Криптография. М.: СОЛОН-Р, 2002. 512 с.

3. Грунский И. С., Козловский В. А. Синтез и идентификация автоматов. Киев: Наукова

думка, 2004. 245 с.

УДК 519.725; 519.816; 519.712.6

ПРОТОКОЛ АРГУМЕНТА ЗНАНИЯ СЛОВА КОДА ГОППЫ И ОШИБКИ ОГРАНИЧЕННОГО ВЕСА

В. Е. Федюкович

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

Рассматриваются протоколы аргумента, в которых как Проверяющий, так и Доказывающий располагают только полиномиальными ресурсами. Рассматривается схема

запрос - ответ, в которой запросом является значение переменной некоторого полинома над конечным полем, а проверяемым условием — равенство нулю этого полинома.

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

Полученный протокол имеет свойство полноты (completeness), свойство корректности (soundness) в предположении о сложности задачи поиска логарифма в конечной группе, является аргументом знания кодового слова и полинома Гоппы, имеет специальное свойство нулевого разглашения в модели с честным проверяющим (special honest verifier zero knowledge). Ошибка корректности протокола экспоненциально мала, параметром безопасности является количество бит в двоичном представлении порядка группы.

Протокол для слова кода Гоппы, полинома Гоппы и ошибки ограниченного веса

Общая информация Проверяющего и Доказывающего: порядок q и пара элементов группы (h, f), дополнительные значения {aj }3=l..n , искаженное кодовое слово {wj}j=i...N, экземпляры привязки к коэффициентам полинома {Vk}k=o...T и к компонентам кодового слова {Wj}j=1...N, верхняя граница веса ошибки S.

Информация Доказывающего: коэффициенты полинома {gk} и дополнительные значения {$k}, компоненты кодового слова {bj} и дополнительные значения {^j}, такие что Vk = h9kfвк, Wj = hbjfи g(z) = ^Lo zkgk, ZjLi j = 0 (mod g(z)) |{j 1 bj = wj}| ^ S.

Доказывающий демонстрирует знание значений {bj} и {gk}, из которых были получены экземпляры привязки {Wj} и {Vk}, а также справедливость утверждения о весе ошибки.

1) Проверяющий выбирает запрос d Е Fq и пересылает его Доказывающему.

2) Доказывающий выбирает {ak, (k }k=o...T, {в , Пз }j=i...N, {Mt=o...N, {Ts}s=o...s Е Fq,

получает коэффициенты {rt}, {ps}, экземпляры привязки {Uk}, {Qj}, {Rt}, {Ps}:

N T dk - ak N T N

^2(vbj+pj^J^(ygk + ak) d _ j П X!(ygm + am)aT = Y1 ytr^

d aj

3=1 k= 1 j i=1,i=j m=0 t=0

N S

П(уьз+e- ywj) =

j=1 s=0

Uk = hak fCk, Qj = he f , Rt = hrt h^, Ps = hPs hTs.

Доказывающий пересылает {Uk}, {Qj }, {Rt}, {Ps} Проверяющему.

3) Проверяющий выбирает запрос с Е Fq и пересылает его Доказывающему.

4) Доказывающий получает ответы и пересылает их Проверяющему:

Фk cgk + ak, ^k C$k + Ck, ^j cbj + Pj, Фз' c^j + Vj,

NS

A = ^ ct^t, A' = ^ csTs.

t=o s=o

5) Проверяющий получает значения проверочных полиномов:

N Т N Т N

г = £ £ ф*-7—г П £ фт“Г' г' = П№ -)•

с- а 7

.7=1 й=1 ■' !=1,»=]га=0 7=1

Проверяющий рассматривает демонстрацию как убедительную, если

N 5

йф" /0 V- = и л ж- = ^ л йг/А П я-с‘ = 1 л /АП = 1.

t=0 s=0

УДК 519

СЛОЖНОСТЬ МЕТОДА ФОРМАЛЬНОГО КОДИРОВАНИЯ ПРИ АНАЛИЗЕ ГЕНЕРАТОРА С ПОЛНОЦИКЛОВОЙ ФУНКЦИЕЙ ПЕРЕХОДОВ

В. М. Фомичев

Обозначим: Mn — множество всех мономов, зависящих от переменных Xi,.. .,xn; Mn,d — подмножество всех мономов степени d, где 0^ d ^ n. На Mn имеется частичный порядок: Xj ■ ... ■ xjd ^ xsi ■ ... ■ xs ^ (j^,..., jd} С {s1,..., s}. Решётка Mn изоморфна решётке Vn двоичных n-мерных векторов, при этом изоморфизме вектору 6 = (6^ . . ., 6n) £ Vn соответствует моном Xй = xi1 ■ ... ■ хПп £ Mn, где Xjj = Xj при 6j = 1 и X^ = 1 при 6j = 0, 1 ^ j ^ n.

Систему уравнений /¿(X1,... , xn) = aj, i = 1,...,m, заданную полиномами над GF(2), обозначим Fm,n = a. Левая часть системы определяет отображение Vn ^ Vm, правая часть a = (a1,... , am) £ Vm.

Обозначим: M(/) — множество мономов ненулевой степени полинома /(x1, ... , xn),

m

M(Fm,n) = У M(/¿(x1, ..., Xn)) — множество мономов ненулевой степени системы

¿=1

всех координатных полиномов Fm,n. Для полинома /(x1,...,xn) (для системы Fm,n) над GF(2) величину |M(/)| (|M(Fm,n)|) называют весом полинома / (весом системы Fm,n), обозначается wp(f) (wp(Fm,ra)).

При решении системы уравнений Fm,n = a методом формального кодирования каждый ненулевой моном из M(Fm,n) заменяется новой переменной: Xj ... xjs = Zj, после чего система уравнений Fm,n = a преобразуется в линейную систему Lm,v = a от переменных z1,...,zv, то есть Lm,v - система m булевых линейных полиномов от v переменных, где v = wp(Fm,n). Система линейных уравнений Lm,v = a решается известными методами. При решении совместной системы достаточно рассмотреть лишь максимальную подсистему из ^ линейно независимых уравнений, где ^ = dim (Fm,n) — размерность линейной оболочки системы полиномов Fm,n (число линейно независимых строк матрицы Lm,v). Сложность решения совместной системы уравнений полиномиально зависит от ^ и v. Например, метод Гаусса решения системы уравнений над полем имеет сложность порядка max{^, v} ■ (min{^, v})2 операций поля.

Рассмотрим генератор двоичной гаммы, моделируемый автономным автоматом A = (Vn, V1, h, /), где — множество состояний; V1 — выходной алфавит; / — функция выходов; h — функция переходов, реализующая полноцикловую подстановку множества Vn.

i Надоели баннеры? Вы всегда можете отключить рекламу.