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

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

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

Пусть   ориентированный граф, состоящий из множества  , элементы которого называются вершинами, и множества   упорядоченных пар вершин  , именуемых направленными рёбрами или дугами. Задача источника   – отправить файл   множеству вершин  . Выбирается векторное пространство   (скажем, размерности  ), где   простое, и данные, являющиеся множеством векторов  . Источник создаёт расширенные векторы  ,определенные следующим образом  , где    -я координата вектора  . Перед первой   в векторе   находится   нулей. Без потери общности можно считать, что векторы   линейно независимы. Обозначим линейное подпространство (из   ), натянутое на эти векторы, буквой  . Каждая исходящая дуга   вычисляет линейную комбинацию   векторов, входящих в начальную вершину дуги  . То есть

 

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

 

где   векторы, образованные удалением первых   координат вектора  .[5]

Декодирование править

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

 

тогда

 

Таким образом, мы можем с высокой вероятностью обратить линейной преобразование и найти  .[5]

История править

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

  •   стойка к коллизиям – сложно найти   и   такие, что  ;
  •   является гомоморфизмом .

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

 

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

 

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

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

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

Схема подписи править

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

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

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

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

 

где   такие, что  

Пусть  , тогда

 

образует абелеву группу.[7]

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

Вейль-спариванием является билинейное отображение, сопоставляющее двум точкам подгруппы  -кручения точек эллиптической кривой   корень степени   в конечном поле.[8] Пусть   эллиптическая кривая и пусть   алгебраическое замыкание  . Если   целое и взаимно-простое с характеристикой поля  , тогда группа элементов  -кручения  .

Вейль-спаривание   обладает свойствами[5]:

  1. (Билинейность)  .
  2. (Невырожденность)   for all P implies that  .
  3. (Тождественность)  .

Гомоморфные подписи править

Пусть   простое число и   степень другого простого числа:  . Пусть   векторное пространство размерности   и   эллиптическая кривая такая, что  . Определим   следующим образом:  . Эта функция   гомоморфизм   в  .

Сервер выбирает секретно   в   и публикует точку  , являющуюся элементом  -кручения, такую, что   и публикует  , где  .[5] Подписью вектора   является  

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

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

Даны   и подпись  . Для проверки подлинности требуется проверить равенство[2]

 

Верификация использует билинейность Вейль-спаривания.[4]

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

Сервер вычисляет[2]   для каждого  . Передаёт  . На каждом ребре   при вычислении   также вычисляется   на эллиптической кривой  .

Подписью является точка на эллиптической кривой с координатами в  . Таким образом, размер подписи[2]   бит, и это дополнительные расходы на передачу.

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

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

Если даны   точки в  , найдём   и  

такие, что   и

 

Если  , тогда мы получаем  . То есть  .   и  . Допустим, что  , тогда  , но   точка порядка   (простое число), таким образом  . Другими словами   в  . Это противоречит предположению о том, что   и   различные пары в  . Таким образом  , где обратный элемент берётся по модулю  .

Если  , мы можем взять   и   как раньше и установить   для   (в этом случае доказательство аналогично  ), или мы можем взять   и  , где   выбираются случайным образом из  . Получаем одно уравнение с одним неизвестным (дискретный логарифм  ). Вполне возможно, что полученное уравнение не будет содержать неизвестную величину. Тем не менее, это происходит с очень маленькой вероятностью. Предположим, что алгоритм поиска коллизий дал нам

 

До тех пор, пока  , нужно решать дискретный логарифм  . Рассмотрим  , где  , не равные нулю одновременно. Какова вероятность, что выбранные   удовлетворяют условию  ? Она равна   . Таким образом, с большой долей вероятности придется решать дискретный логарифм  .[9]

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

См. также править

Примечания править

Литература править

  • Joseph H. Silverman. The Arithmetic of Elliptic Curves. — N. Y.: Springer, 2009. — P. 51-52,92-94. — 408 p. — ISBN 978-0-387-09493-9.
  • R. Gennaro, J. Katz, H. Krawczyk,T. Rabin. Secure Network Coding Over the Integers. — 2011. — P. 19.
  • D. Charles, K. Jain,K. Lauter. SIGNATURES FOR NETWORK CODING. — 2006. — P. 7.
  • M. Krohn, M. Freedman,D. Mazieres. On-the-Fly Verification of Rateless Erasure Codes for Efficient Content Distribution. — 2004. — P. 15.
  • D. Boneh, B. Lynn,H. Shacham. Short Signatures from the Weil Pairing. — 2001. — P. 24.

Ссылки править