Гомоморфные подписи для сетевого кодирования

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

Сетевое кодирование предоставляет возможность увеличить пропускную способность и улучшить устойчивость сети без какого-либо централизованного управления. К сожалению, оно очень восприимчиво к атакам, в которых вредоносные узлы изменяют данные. Благодаря тому, как пакеты распространяются в сети, единственный неправильный пакет данных может сделать недействительными все дальнейшие данные.Шаблон:Sfn Злоумышленник может повредить пакет, даже если он зашифрован: для этого ему нужно подделать подпись, либо найти коллизии используемой хеш-функции.Шаблон:Sfn Денис Чарльз, Камал Джаин и Кристин Лаутер разработали новую схему гомоморфного шифрования, позволяющую предотвратить такие атаки.Шаблон:Sfn Использование гомоморфной подписи позволяет узлам подписывать любую линейную комбинацию входящих пакетов. В этой схеме узел не может подписать линейную комбинацию пакетов,не раскрывая, какая линейная комбинация использовалась. Кроме того, схема подписи защищена в соответствии с предположениями о сложности вычисления дискретного логарифма и сложности решения задачи Диффи-Хеллмана.Шаблон:Sfn

Сетевое кодирование

Пусть G=(V,E) ориентированный граф, состоящий из множества V, элементы которого называются вершинами, и множества E упорядоченных пар вершин u,vV, именуемых направленными рёбрами или дугами. Задача источника sV – отправить файл D множеству вершин TV. Выбирается векторное пространство W/𝔽p (скажем, размерности d), где p простое, и данные, являющиеся множеством векторов w1,,wkW. Источник создаёт расширенные векторы v1,,vk,определенные следующим образом vi=(0,,0,1,,0,wi1,,wid), где wij j-я координата вектора wi. Перед первой 1 в векторе vi находится (i1) нулей. Без потери общности можно считать, что векторы vi линейно независимы. Обозначим линейное подпространство (из 𝔽pk+d ), натянутое на эти векторы, буквой V. Каждая исходящая дуга eE вычисляет линейную комбинацию y(e) векторов, входящих в начальную вершину дуги v=in(e). То есть

y(e)=f:out(f)=v(me(f)y(f))

где me(f)𝔽p. Мы считаем, что источник является конечной вершиной k дуг, передающих k векторов wi. По индукции, пусть вектор y(e) какой-либо дуги является линейной комбинацией y(e)=1ik(gi(e)vi) и является вектором в V. Тогда k-мерный вектор g(e)=(g1(e),,gk(e)) это просто k первых координат вектора y(e). Назовем матрицу, строками которой являются векторы g(e1),,g(ek), где ei рёбра, входящие в вершину tT, глобальной матрицей кодирования для t и обозначим её Gt. На практике векторы кодирования выбираются случайно, поэтому матрица Gt с высокой вероятностью обратима. Таким образом, любой приёмник, получивший y1,,yk, может найти w1,,wk, решив

[yy2yk]=Gt[w1w2wk]

где yi векторы, образованные удалением первых k координат вектора yi.Шаблон:Sfn

Декодирование

Каждый приёмник tT, получает k векторов y1,,yk, являющихся случайными линейными комбинациями векторов vi. В самом деле, если

yi=(αi1,,αik,ai1,,aid)

тогда

yi=1jk(αijvj).

Таким образом, мы можем с высокой вероятностью обратить линейной преобразование и найти vi.Шаблон:Sfn

История

Крон, Фридман и Мэзиэс в 2004 году предложили теориюШаблон:Sfn: если у нас есть хеш-функция H:VG такая, что:

  • H стойка к коллизиям – сложно найти x и y такие, что H(x)=H(y);
  • H является гомоморфизмомH(x+y)=H(x)+H(y).

Тогда сервер может отправить H(vi) каждому приёмнику. Если

y=1ik(αivi)

мы можем проверить равенство

H(y)=1ik(αiH(vi))

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

Преимущества гомоморфных подписей

  1. Реализуют аутентификацию в дополнение к выявлению подмены пакетов.
  2. Нет необходимости в передаче хеш-сумм по защищенному каналу.
  3. Открытая информация не изменяется для последующей передачи файлов.Шаблон:Sfn

Схема подписи

Гомоморфное свойство подписей позволяет узлам подписывать какую-либо линейную комбинацию входящих пакетов, не используя схему подписи.Шаблон:Sfn

Эллиптическая криптография над конечным полем

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

Пусть 𝔽q конечное поле такое, что q не является степенью 2 или 3. Тогда эллиптическая кривая E над 𝔽q является кривой, задающейся уравнением вида

y2=x3+ax+b,

где a,b𝔽q такие, что 4a3+27b2=0

Пусть K𝔽q, тогда

E(K)={(x,y)|y2=x3+ax+b}{O}

образует абелеву группу.Шаблон:Sfn

Вейль-спаривание

Вейль-спариванием является билинейное отображение, сопоставляющее двум точкам подгруппы m-кручения точек эллиптической кривой E корень степени m в конечном поле.Шаблон:Sfn Пусть E/𝔽q эллиптическая кривая и пусть 𝔽¯q алгебраическое замыкание 𝔽q. Если m целое и взаимно-простое с характеристикой поля 𝔽q, тогда группа элементов m-кручения E[m]=PE(𝔽¯q):mP=O.

Вейль-спаривание em:E[m]*E[m]μm(𝔽q) обладает свойствамиШаблон:Sfn:

  1. (Билинейность) em(P+R,Q)=em(P,Q)em(R,Q) and em(P,Q+R)=em(P,Q)em(P,R).
  2. (Невырожденность) em(P,Q)=1 for all P implies that Q=O.
  3. (Тождественность) em(P,P)=1.

Гомоморфные подписи

Пусть p простое число и q степень другого простого числа: p<<q. Пусть V/𝔽p векторное пространство размерности D и E/𝔽q эллиптическая кривая такая, что P1,,PDE[p]. Определим h:VE[p] следующим образом: h(u1,,uD)=1iD(uiPi). Эта функция h гомоморфизм V в E[p].

Сервер выбирает секретно s1,,sD в 𝔽p и публикует точку Q, являющуюся элементом p-кручения, такую, что ep(Pi,Q)=1 и публикует (Pi,siQ), где 1iD.Шаблон:Sfn Подписью вектора v=u1,,uD является σ(v)=1iD(uisiPi)

Замечание: эта подпись гомоморфна,поскольку h гомоморфизм.

Проверка подлинности подписи

Даны v=u1,,uD и подпись σ. Для проверки подлинности требуется проверить равенствоШаблон:Sfn

ep(σ,Q)=ep(1iD(uisiPi),Q)=iep(uisiPi,Q)=iep(uiPi,siQ)

Верификация использует билинейность Вейль-спаривания.Шаблон:Sfn

Настройка системы

Сервер вычисляетШаблон:Sfn σ(vi) для каждого 1ik. Передаёт vi,σ(vi). На каждом ребре e при вычислении y(e)=fE:out(f)=in(e)(me(f)y(f)) также вычисляется σ(y(e))=fE:out(f)=in(e)(me(f)σ(y(f))) на эллиптической кривой E.

Подписью является точка на эллиптической кривой с координатами в 𝔽q. Таким образом, размер подписиШаблон:Sfn 2logq бит, и это дополнительные расходы на передачу.

Доказательство безопасности

Злоумышленник может найти коллизии хеш-функции.

Если даны (P1,,Pr) точки в E[p], найдём a=(a1,,ar)𝔽pr и b=(b1,,br)𝔽pr

такие, что a=b и

1ir(aiPi)=1jr(bjPj).

Если r=2, тогда мы получаем xP+yQ=uP+vQ. То есть (xu)P+(yv)Q=0. x=u и y=v. Допустим, что x=u, тогда (yv)Q=0, но Q точка порядка p (простое число), таким образом yv0modp. Другими словами y=v в 𝔽p. Это противоречит предположению о том, что (x,y) и (u,v) различные пары в 𝔽2. Таким образом Q=(xu)(yv)1P, где обратный элемент берётся по модулю p.

Если r>2, мы можем взять P1=P и P2=Q как раньше и установить Pi=O для i>2 (в этом случае доказательство аналогично r=2), или мы можем взять P1=r1P и Pi=riQ, где ri выбираются случайным образом из 𝔽p. Получаем одно уравнение с одним неизвестным (дискретный логарифм Q). Вполне возможно, что полученное уравнение не будет содержать неизвестную величину. Тем не менее, это происходит с очень маленькой вероятностью. Предположим, что алгоритм поиска коллизий дал нам

ar1P+2ir(biriQ)=0.

До тех пор, пока 2irbiri≢0modp, нужно решать дискретный логарифм Q. Рассмотрим bi, где 2ir, не равные нулю одновременно. Какова вероятность, что выбранные ri удовлетворяют условию 2ir(biri)=0? Она равна 1p . Таким образом, с большой долей вероятности придется решать дискретный логарифм Q.Шаблон:Sfn

Мы показали, что сложно найти коллизии хеш-функции в данной схеме. Другой способ нарушить работу системы – подделать подпись. Эта схема подписи является версией схемы BLS (Boneh – Lynn - Shacham). Подделать подпись, по крайней мере так же сложно, как решить вычислительную проблему Диффи-Хелмана.Шаблон:Sfn Единственный известный способ решить эту проблему на эллиптических кривых – вычислить дискретный логарифм. Таким образом, подделать подпись так же сложно, как вычислить дискретный логарифм.Шаблон:Sfn

См. также

Примечания

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

Литература

Ссылки