неизвестного перехода 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.