Лекция № 10. Рюкзачная криптосистемаmsa/lecture10.pdf · Лекция...

Preview:

Citation preview

Защита информации

Иванов М.А.

Лекция № 10. Рюкзачная криптосистема

Кафедра 12 НИЯУ МИФИ

Москва, 2018

Защита информации

Иванов М.А.

Лекция № 10. Рюкзачная криптосистема

Кафедра 12 НИЯУ МИФИ

Москва, 2018

Трудные математические задачи

Задача об укладке рюкзака

Knapsack Cryptosystem

Пример рюкзачной криптосистемы

Темы

M. Ivanov

Трудные задачи

M. Ivanov

Криптосистемы с ОК

1/11

M. Ivanov

Факторизация целых чисел

Трудные задачи

M. Ivanov

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

Криптосистемы с ОК

1/11

M. Ivanov

Факторизация целых чисел

Дискретное логарифмирование

Трудные задачи

M. Ivanov

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

Криптосистема Эль Гамаля (ElGamal Cryptosystem)

Криптосистемы с ОК

1/11

M. Ivanov

Факторизация целых чисел

Дискретное логарифмирование

Задача об укладке рюкзака

Трудные задачи

M. Ivanov

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

Криптосистема Эль Гамаля (ElGamal Cryptosystem)

Рюкзачная криптосистема (Knapsack Cryptosystem)

Криптосистемы с ОК

1/11

M. Ivanov

Факторизация целых чисел

Дискретное логарифмирование (DLP)

Задача об укладке рюкзака

Дискретное логарифмирование на группе точек эллиптической кривой

Трудные задачи

M. Ivanov

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

Криптосистема Эль Гамаля (ElGamal Cryptosystem)

Рюкзачная криптосистема (Knapsack Cryptosystem)

Криптосистема, основанная на свойствах эллиптической кривой (Elliptic Curves Cryptosystem)

Криптосистемы с ОК

1/11

M. Ivanov

QRP

DDH

Декодирование линейного кода

Еще три трудные задачи

M. Ivanov

Goldwasser-Micali Probabilistic Cryptosystem

Cramer-Shoup Cryptosystem

McEliece Cryptosystem

Криптосистемы с ОК

2/11

DDH Заданы группа G простого порядка q

и числа (g1, g2, u1, u2) G, g1 1, g2 1

Существуют ли числа (a, b) [0, q), удовлетворяющие условию

g2 = g1a, u1 = g1

b, u2 = g1ab?

Представить число 55 в виде суммы элементов списка чисел {3, 8, 12, 2, 32, 59}

Ответ: 55 = 3 + 8 + 12 + 32 или 55 ↔ (111010)

Простая задача об укладке рюкзака

3/11

Представить число 55 в виде суммы элементов списка чисел {3, 8, 12, 2, 32, 59}

Ответ: 55 = 3 + 8 + 12 + 32 или 55 ↔ (111010)

Простая задача об укладке рюкзака

Примитивная система шифрования,

в которой отправителю и получателю известен

список чисел {3, 8, 12, 2, 32, 59}

3/11

Представить число 26 в виде суммы различных чисел из списка {32, 16, 8, 4, 2, 1}

Ответ: 26 = 16 + 8 + 2 или 26 ↔ (011010)

Очень простая задача об укладке рюкзака

4/11

Представить число 26 в виде суммы различных чисел из списка {32, 16, 8, 4, 2, 1}

Ответ: 26 = 16 + 8 + 2 или 26 ↔ (011010)

Очень простая задача об укладке рюкзака

Примитивная система шифрования,

в которой отправителю и получателю известен

список чисел {32, 16, 8, 4, 2, 1}

4/11

Последовательность построения криптосистемы с открытым ключом

5/11

Составляется трудная задача T, не решаемая

за полиномиальное время

Последовательность построения криптосистемы с открытым ключом

5/11

Составляется трудная задача T, не решаемая

за полиномиальное время Из T выделяется легкая подзадача Teasy , имеющая

полиномиальный или даже более простой алгоритм решения

Последовательность построения криптосистемы с открытым ключом

5/11

Составляется трудная задача T, не решаемая

за полиномиальное время Из T выделяется легкая подзадача Teasy , имеющая

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

в трудно решаемую задачу Tshuffle, не имеющую никакого сходства с Teasy

Последовательность построения криптосистемы с открытым ключом

5/11

Составляется трудная задача T, не решаемая

за полиномиальное время Из T выделяется легкая подзадача Teasy , имеющая

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

в трудно решаемую задачу Tshuffle , не имеющую никакого сходства с Teasy

На основе Tshuffle определяется открытая функция зашифрования; процедура получения Teasy из Tshuffle держится в секрете

Последовательность построения криптосистемы с открытым ключом

5/11

Составляется трудная задача T, не решаемая

за полиномиальное время Из T выделяется легкая подзадача Teasy , имеющая

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

в трудно решаемую задачу Tshuffle , не имеющую никакого сходства с Teasy

На основе Tshuffle определяется открытая функция зашифрования; процедура получения Teasy из Tshuffle держится в секрете

Криптосистема конструируется таким образом, чтобы для противника процедура дешифрования заключалась в решении Tshuffle, имеющей вид трудной задачи T, а законный получатель, знающий секрет, решал бы легкую задачу Teasy

Последовательность построения криптосистемы с открытым ключом

5/11

Дан список чисел {a99 … a2 a1 a0}, цифры которых выбраны случайным образом, │ai│ = 4010, i = 0, 1, …, 99

Представить число c в виде cуммы некоторых чисел ai из списка, │c│ = 4210

Трудная задача об укладке рюкзака

6/11

Пример Teasy

806130

208021

504062

902022

501020

4

3

2

1

0

a

a

a

a

a

7/11

Пример Teasy

806130

208021

504062

902022

501020

4

3

2

1

0

a

a

a

a

a

7/11

926558000…00100609955

260577000…00200251002

221078000…00400282628 100

759120000…00800203081 чисел

932265000…01600902051

955061000…03200023579

2i

40 цифр

Random Random

8/11

«Взбивание» задачи Teasy и получение Tshuffle

9/11

Сформируем список {an - 1 … a1 a0}

«Взбивание» задачи Teasy и получение Tshuffle

9/11

Сформируем список {an - 1 … a1 a0}

Выберем два больших взаимно простых числа R и S и найдем такое число T, чтобы выполнялось условие SR ≡ 1 mod T

«Взбивание» задачи Teasy и получение Tshuffle

9/11

Сформируем список {an - 1 … a1 a0}

Выберем два больших взаимно простых числа R и S и найдем такое число T, чтобы выполнялось условие SR ≡ 1 mod T

Получим новый список {bn - 1 … b1 b0}, каждый элемент которого суть результат умножения соответствующего числа из первоначального списка на S по модулю T: bi = ai S mod T, i = 0, 1, …, (n – 1)

«Взбивание» задачи Teasy и получение Tshuffle

9/11

Сформируем список {an - 1 … a1 a0}

Выберем два больших взаимно простых числа R и S и найдем такое число T, чтобы выполнялось условие SR ≡ 1 mod T

Получим новый список {bn - 1 … b1 b0}, каждый элемент которого суть результат умножения соответствующего числа из первоначального списка на S по модулю T: bi = ai S mod T, i = 0, 1, …, (n - 1)

Уничтожим список {an - 1 … a1 a0} и число S

«Взбивание» задачи Teasy и получение Tshuffle

9/11

Сформируем список {an - 1 … a1 a0}

Выберем два больших взаимно простых числа R и S и найдем такое число T, чтобы выполнялось условие RS ≡ 1 mod T

Получим новый список {bn - 1 … b1 b0}, каждый элемент которого суть результат умножения соответствующего числа из первоначального списка на S по модулю T: bi = ai S mod T, i = 0, 1, …, (n - 1)

Уничтожим список {an - 1 … a1 a0} и число S

Для всех, не знающих секрета, числа из нового списка будут казаться случайными числами из интервала [0, (T – 1)], и все, кто не знает принцип их получения, примут соответствующую задачу за трудную задачу об укладке рюкзака

«Взбивание» задачи Teasy и получение Tshuffle

9/11

Сформируем список {an - 1 … a1 a0}

Выберем два больших взаимно простых числа R и S и найдем такое число T, чтобы выполнялось условие SR ≡ 1 mod T

Получим новый список {bn - 1 … b1 b0}, каждый элемент которого суть результат умножения соответствующего числа из первоначального списка на S по модулю T: bi = ai S mod T, i = 0, 1, …, (n - 1)

Уничтожим список {an - 1 … a1 a0} и число S

Для всех, не знающих секрета, числа из нового списка будут казаться случайными числами из интервала [0, (T – 1)], и все, кто не знает принцип их получения, примут соответствующую задачу за трудную задачу об укладке рюкзака

Cписок {bn - 1 … b1 b0} объявляется открытым ключом зашифрования

«Взбивание» задачи Teasy и получение Tshuffle

9/11

Сформируем список {an - 1 … a1 a0}

Выберем два больших взаимно простых числа R и S и найдем такое число T, чтобы выполнялось условие SR ≡ 1 mod T

Получим новый список {bn - 1 … b1 b0}, каждый элемент которого суть результат умножения соответствующего числа из первоначального списка на S по модулю T: bi = ai S mod T, i = 0, 1, …, (n - 1)

Уничтожим список {an - 1 … a1 a0} и число S

Для всех, не знающих секрета, числа из нового списка будут казаться случайными числами из интервала [0, (T – 1)], и все, кто не знает принцип их получения, примут соответствующую задачу за трудную задачу об укладке рюкзака

Cписок {bn - 1 … b1 b0} объявляется открытым ключом зашифрования

Числа R и T объявляются секретным ключом расшифрования

«Взбивание» задачи Teasy и получение Tshuffle

9/11

Рюкзачная криптосистема

10/11

Алгоритм зашифрования двоичного сообщения m = mn - 1 … m1 m0, mi {0, 1}: c = E(m) = ∑ bi mi (mod T)

Рюкзачная криптосистема

10/11

Алгоритм зашифрования двоичного сообщения m = mn - 1 … m1 m0, mi {0, 1}: c = E(m) = ∑ bi mi (mod T)

Алгоритм расшифрования закрытого сообщения c:

- составляем произведение Rc = R ∑ bi mi (mod T) = = ∑ ai SR mi (mod T) = ∑ ai mi (mod T)

- решая легкую задачу об укладке рюкзака, находим m = mn - 1 … m1 m0

Рюкзачная криптосистема

10/11

Пример ранцевой криптосистемы

11/11

14 × 19 ≡ 1 mod 265

Пример ранцевой криптосистемы

11/11

14 × 19 ≡ 1 mod 265

Пример ранцевой криптосистемы

11/11

14 × 19 ≡ 1 mod 265

Пример ранцевой криптосистемы

11/11

Пример ранцевой криптосистемы

444

11/11

Пример ранцевой криптосистемы

444 19 = = 221 mod 265

11/11

The questions are welcome !

Recommended