Upload
others
View
2
Download
0
Embed Size (px)
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 !