Door’2013, новосибирск

Preview:

DESCRIPTION

Применение теории кодирования в криптографии. Door’2013, новосибирск. Лось Антон Васильевич. Введение. Алгебраическая теория кодирования. Линейные коды. Криптография. Криптосистема Роберта Мак-Элиса, 1978 год. Криптосистема Гаральда Нидеррайтра , 1986 год. - PowerPoint PPT Presentation

Citation preview

DOOR’2013, НОВОСИБИРСК

Применение теории кодирования в криптографии

Лось Антон Васильевич

Введение

Алгебраическая теория кодированияЛинейные

коды

КриптографияКриптосистема

РобертаМак-Элиса,1978 год

Криптосистема

Гаральда Нидеррайтр

а,1986 год

Криптосистемы использующие APN-функции

DES AES ГОСТ

Теория кодирования Основы криптографии К/с Мак-Элиса К/с Нидеррайтера APN-

функции

Основные определения

– n-мерное метрическое пространство всех векторов длины n над полем Галуа GF(2) с метрикой Хэмминга.

Двоичный кодПроизвольное подмножество C пространства называется двоичным кодом длины n. Элементы кода называются кодовыми словами.

Линейный кодЛинейным кодом называется подмножество , являющееся линейным подпространством.

Теория кодирования Основы криптографии К/с Мак-Элиса К/с Нидеррайтера APN-

функции

Исправление ошибокРасстояние ХэммингаРасстояние Хэмминга d(x,y) между

двумя векторами x и у из равно числу координат, в которых эти векторы различаются.

Кодовое расстояниеКодовое расстояние равно минимальному расстоянию Хэмминга между различными кодовыми словами.

Код, исправляющийt ошибок Код исправляет t ошибок, если его

кодовое расстояние не меньше 2t+1

Пример

t t1x

x’

y

Теория кодирования Основы криптографии К/с Мак-Элиса К/с Нидеррайтера APN-

функции

Линейные коды

Порождающая матрицаСтроки порождающей матрицы G образуют базу линейного кода.

Проверочная матрицаПроверочная матрица H линейного кода C такова, что для любого кодового слова x и только для него выполняется

G=(1 00 1

0 0 0 1 10 0 1 0 1

0 00 0

1 0 1 1 00 1 1 1 1

)H=(0 1

1 01 1

1 11 10 1

1 0 00 1 00 0 1)Порождающая матрица

Проверочная матрица

Теория кодирования Основы криптографии К/с Мак-Элиса К/с Нидеррайтера APN-

функции

Коды Гоппы

Валерий Денисович

Гоппа

Первым (1981) осознал связь между алгебраической геометрией и теорией кодирования.

Gary L. Peterson

Коды Гоппы Линейные коды порожденные несингулярными проективными кривыми над конечными полями.

Коды Гоппы имеют важное свойство. Они обладают быстрыми процедурами декодирования по алгоритму Питерсона.

Теория кодирования Основы криптографии К/с Мак-Элиса К/с Нидеррайтера APN-

функции

Основы криптографии

Односторонняя функция

Односторонняя функция (англ. one-way function) – функция, которая легко вычисляется для любого входного значения, но трудно найти аргумент по заданному значению функции.

Примеры односторонних

функций

Односторонняя функция с лазейкой

Такая односторонняя функция, для которой при знании специальной информации (лазейки) аргумент вычислить по заданному значению функции легко.

Дискретное экспоненцирование и логарифмирование:

Умножение и факторизация:

Теория кодирования Основы криптографии К/с Мак-Элиса К/с Нидеррайтера APN-

функции

Теория кодирования Основы криптографии К/с Мак-Элиса К/с Нидеррайтера APN-

функции

Схема шифрованияКриптосистема с открытым ключом

Алиса Боб

1. Генерация ключа

2. Шифровани

е

Текст сообщения

Открытый канал связи 3.Расшифрова

ние

m ecm

d

Криптосистема Мак-Элиса

Основа криптосистемы

Алгоритм криптосистемы базируется на сложности декодирования линейных кодов, общая задача декодирования линейного кода является NP-трудной

Открытый ключ

криптосистемы

Секретный ключкриптосистемы

Для создания секретного ключа выбирается линейный код C, исправляющий достаточно большое число ошибок t, для которого известен эффективный алгоритм декодирования.

Представляет собой порождающую матрицу некоторого линейного кода как произвольного линейного кода из заданного ансамбля кодов с фиксированными параметрами [n,k,d], d ≥ 2t + 1.

Теория кодирования Основы криптографии К/с Мак-Элиса К/с Нидеррайтера APN-

функции

Формирование ключей

Секретный ключ

G – порождающая матрица кода Гоппы размерности k,S – случайная невырожденная матрица размера k×k,P – случайная матрица перестановки размера n×n.

Открытый ключ

G’=S×G×P – таким образом, исходная матрица Gмаскируется под матрицу общего положения G’ из ансамбля кодов с одинаковыми параметрами,t – число ошибок, исправляемых исходным кодом.

Теория кодирования Основы криптографии К/с Мак-Элиса К/с Нидеррайтера APN-

функции

Шифрование

Исходное сообщение

Алисы

Алиса представляет свое сообщение в виде последовательностей двоичных символов длины k.

Внесениепомех

Шифрованиеоткрытымключом

1) Алиса вычисляет вектор c’=m×G’.

2) Алиса генерирует случайный вектор z длины n, имеющий вес t (в нём ровно t единиц).

3) Алиса вычисляет шифротекст как c=c’+z и передает его Бобу.

Теория кодирования Основы криптографии К/с Мак-Элиса К/с Нидеррайтера APN-

функции

Дешифрование сообщения

Обратная перестановка1) Боб вычисляет обратную матрицу: .

2) Боб вычисляет .

Восстановление сообщения

Дешифрование3) Боб использует алгоритм декодирования для исходного кода, чтобы получить из .

4) Боб вычисляет обратную матрицу: .5) Боб вычисляет сообщение как .

Теория кодирования Основы криптографии К/с Мак-Элиса К/с Нидеррайтера APN-

функции

Корректность алгоритмаНеобходимое

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

𝐷𝑑 (𝐸𝑒 (𝑚 ) )=𝑚

Боб вычисляет

Алисаотправляет 𝑐=𝑐′+𝑧=𝑚×𝐺′+𝑧

, Вес вектора не более чем t. Код Гоппы исправляет до t ошибок, тогда Боб получает верное сообщение . Далее Боб вычисляет исходное сообщение .

Теория кодирования Основы криптографии К/с Мак-Элиса К/с Нидеррайтера APN-

функции

Криптосистема Нидеррайтера

Основа криптосистемы

Та же NP-трудная задача декодирования линейных кодов, что и в криптосистеме Мак-Элиса.

Шифрование сообщений

Основноеотличие откриптосистемы Мак-Элиса

В качестве базовой матрицы используется проверочная матрица группового кода. Открытый ключ представляет собой множество, состоящее из проверочной матрицы общего положения, оснащенное достаточно большим числом t.

Сообщение передается не информационным блоком кодового слова, а вектором ошибок. Шифротекст же получается в виде синдрома – произведения проверочной матрицы на вектор ошибок.

Теория кодирования Основы криптографии К/с Мак-Элиса К/с Нидеррайтера APN-

функции

Дополнение

Недвоичноеполе

Возможно определение криптосистем над полем Галуа GF(q), в таком случае для создания открытого ключа используется еще одна матрица – диагональная матрица с элементами из GF(q).

Плюсы иминусы

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

+ Шифрование и дешифрование быстрее, чем у RSA.+ Быстрый рост степени защиты с увеличением длины ключа.- Большие размеры ключей и шифротекста.

Теория кодирования Основы криптографии К/с Мак-Элиса К/с Нидеррайтера APN-

функции

Стандарты шифрования данныхDES

Теория кодирования Основы криптографии К/с Мак-Элиса К/с Нидеррайтера APN-

функции

S-box

APN-функция

Пусть– функция, удовлетворяющая условию .

APN-функция(почти

совершеннонелинейная)

Функция называется APN-функцией, если для любого и каждого уравнение

имеет не более двух решений в.

Теория кодирования Основы криптографии К/с Мак-Элиса К/с Нидеррайтера APN-

функции

APN-функции и кодыПусть

– функция, удовлетворяющая условию , . – проверочная матрица кода Хэмминга с проверками на четность.

Теорема Пусть – двоичный линейный код с проверочной матрицей

,где . Тогда a) функция является APN-функцией тогда и

только тогда, когда кодовое расстояние кода равно 5;

b) если функция F является APN-функцией, то код имеет размерность .

Теория кодирования Основы криптографии К/с Мак-Элиса К/с Нидеррайтера APN-

функции

DOOR’2013, НОВОСИБИРСК

Применение теории кодирования в криптографии

Лось Антон Васильевич