a, u 1 - Учебная лаборатория НГУ

advertisement
Использование модулярной
арифметики в алгоритме
гомоморфного шифрования
Выполнила: Чечулина Дарья
Научный руководитель: Кренделев С. Ф.
Лаборатория современных компьютерных технологий НИЧ НГУ
2
Определение
• Модулярная арифметика (или
арифметика остатков) – метод
выполнения арифметических действий над
большими целыми числами, основная идея
которого состоит в том, чтобы оперировать
не непосредственно числом u, а его
«остатками» по различным модулям m1…mr
(причем все модули взаимно просты)
3
Обозначения
• u, v – большие целые числа
• m1,…,mr – модули, не содержащие общих
делителей
• u1 = u mod m1, … , ur = u mod mr
• v1 = v mod m1, …, vr = v mod mr
• (u1, … , ur), (v1, … , vr) – модулярное
представление чисел u и v
• m = m1×…×mr – область чисел, над
которыми можно выполнять все операции
4
Арифметические операции
• Сложение
(u1, …, ur) + (v1, …, vr) = ((u1 + v1) mod m1, …,
(ur + vr) mod mr)
• Вычитание
(u1, …, ur) - (v1, …, vr) = ((u1 - v1) mod m1, …,
(ur - vr) mod mr)
• Умножение
(u1, …, ur) × (v1, …, vr) = ((u1 × v1) mod m1, …,
(ur × vr) mod mr)
5
Китайская теорема об остатках
• Пусть m1,…,mr – положительные целые
попарно простые числа, т.е
НОД (mj, mk) = 1, j ≠ k
• Пусть m = m1 × m2 × … × mr и пусть также a,
u1, …, ur – целые числа.
• Тогда существует ровно одно целое число u,
удовлетворяющее условиям
a≤u<a+m,
u = uj (mod mj), 1 ≤ j ≤ r
6
Пример 1. Прямая задача
•
•
•
•
•
•
•
•
u = 73, v = 12
u × v = 876
r = 3 – количество используемых «модулей»
m1 = 11, m2 = 7, m3 = 13 – взаимно простые
«модули»
m = m1 × m2 × m3 = 1001
u1 = u mod m1 = 7, u2 = 3, u3 = 8
v1 = v mod m1 = 1, v2 = 5, v3 = 12
(u1, u2, u3) × (v1, v2, v3) = ((7 × 1) mod 11,
(3 × 5) mod 7, (8 × 12) mod 13) = (7, 1, 5)
7
Пример 2. Обратная задача
• (u1, u2, u3) × (v1, v2, v3) = (w1, w2, w3) = (7, 1, 5)
• u×v-?
• Пользуясь т. Эйлера, найдем:
Mj = (m / mj)φ(mj) mod m
где φ(mj) = (mj – 1) – функция Эйлера
для простых чисел mj
• M1 = (7 × 13)10 = 364, M2 = (11 × 13)6 = 715,
M3 = (11 × 7)12 = 924
• Mj = 1 mod mj , Mj = 0 mod mk , k ≠ j
• u × v = (w1 × M1 + w2 × M2 + w3 × M3) mod m =
= (7
× 364 + 1 × 715 + 5 × 924) mod m = (546 + 715 + + 616)
mod m = 1877 mod m = 876
8
Недостатки алгоритма гомоморфного
шифрования с использованием только
длинной арифметики
• Большие объемы данных, получаемые при
выполнении арифметических операций над
длинными целыми числами
• Большая длина шифротекста на выходе
алгоритма шифрования
9
Преимущества использования
модулярной арифметики
• Возможность параллельного
выполнения операций повышение
производительности алгоритма
• Повышение стойкости алгоритма к
криптоаналитическим атакам
• Уменьшение объема выходных данных
при умножении длинных целых чисел
• Сокращение длины шифротекста
Download