SlideShare a Scribd company logo
Анализ комбинаторных
алгоритмов
Лекция № 13
Теоретико-числовые алгоритмы
Часть II
Китайская теорема об остатках
Теорема
Пусть n = n1*n2*…*nk, причем числа
n1,n2… попарно взаимно просты. Задано
соответствие a↔(a1,a2,…,ak), где a
принадлежит Zn, a1 - Z1и т.д. Данная
формула определяет однозначное
соответствие между Zn и декартовым
произведением Z1xZ2x…xZk
Китайская теорема об остатках
Следствие
Если a↔(a1,a2,…,ak) и b↔(b1,b2,…,bk):
1) (a+b) mod n ↔ ((a1+b1) mod n1, …..)
2) (a-b) mod n ↔ ((a1-b1) mod n1, …..)
3) (ab) mod n ↔ ((a1b1) mod n1, …..)
Следствие
Если n1,n2…nk попарно взаимно просты,
то равенство a ≡ x mod n равносильно
системе уравнений вида a ≡ x mod ni.
Китайская теорема об остатках
a ≡ 2 (mod 5)
a ≡ 3 (mod 13)
a ≡ x (mod 65)
x - ?
mi=n/ni : m1 = 13, m2 = 5
m1-1
=13-1
(mod 5) = -13 (mod 5) = 2
m2-1
= 5-1
(mod 13) = -5 (mod 13) = 8
сi = mi (mi
-1
mod ni) : с1=13*2 =26, c2= 5*8=40
a ≡ (a1c1+a2c2+…+akck) (mod n)
a ≡ 2*26 + 3*40 (mod 65) = 42 (mod 65)
Степени элемента
Рассмотрим в мультипликативной группе
последовательность степеней элемента
a: a0
,a1
,a2
… Всегда верно утверждение a0
mod n = 1.
Теорема (Эйлера)
аφ(n)
≡ 1 (mod n), для a из Z*n
Теорема (малая теорема Ферма)
Если p – простое a p-1
≡ 1 (mod n), для a из
Z*n (a p
≡ a (mod n))
Степени элемента
Если порядок элемента g равен |Z*n |, g
называют примитивным корнем или
образующей Z*n .
Если группа имеет образующую ее
называют циклической.
Теорема
Группа Z*n является циклической тогда и
только тогда, когда n равно 2, 4, имеет
вид pk
или 2pk
(где p>2 – простое число, k
– положительное целое)
Степени элемента
Теорема (о дискретном логарифме)
Пусть g – образующая Z*n, тогда
сравнение gx
≡ gy
(mod n) равносильно
сравнению x ≡ y (mod φ(n))
Теорема
При простом p>2 и положительном
целом k уравнение x2
≡ 1 (mod pk
) имеет
два решения x = 1 и x = -1.
Степени элемента
Пусть надо вычислить ab
mod n. b[0..k] –
битовая запись числа b.
void ModExp(a,b,n){
c = 0; d = 1;
for (i=k;i<=0;i--){
c = 2*c;
d = (d*d) % n;
if (b[i]=1){c = c+1; d = (d*a)%n;}
}
return d;
}
Степени элемента
79
mod 561 = 316
i 3 2 1 0
B 1 0 0 1
C 1 2 4 9
D 7 49 157 316
Криптосистема RSA с открытым ключом
Криптосистемы с открытым ключом
позволяют обмениваться секретными
сообщениями по открытому каналу, не
договариваясь заранее о ключе шифра.
Кроме того, методы используемые в
криптосистемах позволяют также
добавить к сообщению цифровую
подпись, удостоверяющую что
сообщение не фальсифицировано.
Криптосистема RSA с открытым ключом
При использовании криптосистем с
открытым ключом каждый участник
переговоров имеет два ключа:
Открытый (public key, Pk) - сообщается
остальным участникам или вообще всем
желающим.
Секретный (secret key, Sk) – хранится в
секрете, не открывается никому.
Криптосистема RSA с открытым ключом
Каждый ключ задает некоторую
перестановку множества возможных
сообщений D, которая обозначается
P() или S().
Пара ключей одного участника
должна задавать взаимообратные
переста-новки, т.е. M = S(P(M))
должно быть выполнено для любого
M – сообще-ния из D.
Криптосистема RSA с открытым ключом
Процесс пересылки сообщения в
криптосистеме с открытым ключе
происходит так:
B узнает открытый ключ A – Pa
B зашифровывает свое сообщение M –
C = Pa(M) – и отсылает его A.
A получает сообщение C и
расшифровывает его – M = Sa(C)
Криптосистема RSA с открытым ключом
Подписать сообщение цифровой
подписью можно следующим образом:
A вычисляет цифровую подпись σ=Sa(M)
A отсылает B пару (M, σ)
B получает пару (M, σ)
B удостоверяется в подлинности
сообщения, проверив равенство M=Pa(σ)
Криптосистема RSA с открытым ключом
Pa SaM M
C=Pa(M)
Шифрование с открытым ключом
PaPa
M M
M, σ
Цифровая подпись
σ = Sa(M) Pa(σ) = M?
Криптосистема RSA с открытым ключом
Криптосистема RSA основана на том
обстоятельстве, что в настоящее время
известны эффективные алгоритмы
поиска больших простых чисел, но не
известно приемлемого по времени
алгоритма разложения произведения
двух больших простых чисел на
множители.
Криптосистема RSA с открытым ключом
Этапы построения ключей криптосис-
темы RSA:
 Взять два больших простых числа p и q
 Вычислить n = pq
 Взять небольшое нечетное число e взаимно
простое с φ(n)
 Вычислить d = e-1
mod φ(n)
 Составить пару P = (e, n) – открытый ключ
 Составить пару S = (d, n) – секретный ключ
Криптосистема RSA с открытым ключом
Множеству допустимых сообщений D
соответствует Zn.
Открытому ключу соответствует
преобразование:
P(M) = Me
mod n
Секретному ключу соответствует
преобразование:
S(C) = Cd
mod n
Криптосистема RSA с открытым ключом
Для ускорения вычислений на
практике цифровая подпись
вычисляется не для всего сообщения,
а для некоторой хеш-функции от него
h(M), дающей в результате
небольшое по размеру значение.

More Related Content

What's hot

Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировкиЛекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировкиMikhail Kurnosov
 
Факторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системахФакторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системах
romovpa
 
Векторизация кода (семинар 2)
Векторизация кода (семинар 2)Векторизация кода (семинар 2)
Векторизация кода (семинар 2)
Mikhail Kurnosov
 
D-кучи и их применение
D-кучи и их применениеD-кучи и их применение
D-кучи и их применение
DEVTYPE
 
Лекция №13. Графы: сильно связные компоненты и остовные деревья. Предмет "Стр...
Лекция №13. Графы: сильно связные компоненты и остовные деревья. Предмет "Стр...Лекция №13. Графы: сильно связные компоненты и остовные деревья. Предмет "Стр...
Лекция №13. Графы: сильно связные компоненты и остовные деревья. Предмет "Стр...Nikolay Grebenshikov
 
5
55
Лекция 10. Графы. Остовные деревья минимальной стоимости
Лекция 10. Графы. Остовные деревья минимальной стоимостиЛекция 10. Графы. Остовные деревья минимальной стоимости
Лекция 10. Графы. Остовные деревья минимальной стоимости
Mikhail Kurnosov
 
Лекция 8: Графы. Обходы графов
Лекция 8: Графы. Обходы графовЛекция 8: Графы. Обходы графов
Лекция 8: Графы. Обходы графовMikhail Kurnosov
 
Funkciya y cos_ee_svojstva_i_grafik
Funkciya y cos_ee_svojstva_i_grafikFunkciya y cos_ee_svojstva_i_grafik
Funkciya y cos_ee_svojstva_i_grafik
Иван Иванов
 
Теорема Виета
Теорема ВиетаТеорема Виета
Теорема ВиетаMax Buts
 
Лекция №12. Графы: представление, обходы, топологическая сортировка. Предмет ...
Лекция №12. Графы: представление, обходы, топологическая сортировка. Предмет ...Лекция №12. Графы: представление, обходы, топологическая сортировка. Предмет ...
Лекция №12. Графы: представление, обходы, топологическая сортировка. Предмет ...Nikolay Grebenshikov
 
20101125 proof complexity_hirsch_lecture08
20101125 proof complexity_hirsch_lecture0820101125 proof complexity_hirsch_lecture08
20101125 proof complexity_hirsch_lecture08Computer Science Club
 
Лекция 12 (часть 2): Языки программирования семейства PGAS: IBM X10
Лекция 12 (часть 2): Языки программирования семейства PGAS: IBM X10Лекция 12 (часть 2): Языки программирования семейства PGAS: IBM X10
Лекция 12 (часть 2): Языки программирования семейства PGAS: IBM X10Mikhail Kurnosov
 
Bolshakova prez
Bolshakova prezBolshakova prez
Bolshakova prez67921340AB
 
Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировкиЛекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировкиMikhail Kurnosov
 
Лекция 2 Сортировки, поиск и порядковые статистики
Лекция 2 Сортировки, поиск и порядковые статистикиЛекция 2 Сортировки, поиск и порядковые статистики
Лекция 2 Сортировки, поиск и порядковые статистики
simple_people
 
схемы разделения секрета
схемы разделения секретасхемы разделения секрета
схемы разделения секретаLiloSEA
 
криптографический стандарт Rsa
криптографический стандарт Rsaкриптографический стандарт Rsa
криптографический стандарт Rsa
hmyrhik nikita
 
Лекция 8: Графы. Обходы графов
Лекция 8: Графы. Обходы графовЛекция 8: Графы. Обходы графов
Лекция 8: Графы. Обходы графовMikhail Kurnosov
 

What's hot (20)

Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировкиЛекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
 
Факторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системахФакторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системах
 
Векторизация кода (семинар 2)
Векторизация кода (семинар 2)Векторизация кода (семинар 2)
Векторизация кода (семинар 2)
 
D-кучи и их применение
D-кучи и их применениеD-кучи и их применение
D-кучи и их применение
 
Лекция №13. Графы: сильно связные компоненты и остовные деревья. Предмет "Стр...
Лекция №13. Графы: сильно связные компоненты и остовные деревья. Предмет "Стр...Лекция №13. Графы: сильно связные компоненты и остовные деревья. Предмет "Стр...
Лекция №13. Графы: сильно связные компоненты и остовные деревья. Предмет "Стр...
 
5
55
5
 
Лекция 10. Графы. Остовные деревья минимальной стоимости
Лекция 10. Графы. Остовные деревья минимальной стоимостиЛекция 10. Графы. Остовные деревья минимальной стоимости
Лекция 10. Графы. Остовные деревья минимальной стоимости
 
Лекция 8: Графы. Обходы графов
Лекция 8: Графы. Обходы графовЛекция 8: Графы. Обходы графов
Лекция 8: Графы. Обходы графов
 
Funkciya y cos_ee_svojstva_i_grafik
Funkciya y cos_ee_svojstva_i_grafikFunkciya y cos_ee_svojstva_i_grafik
Funkciya y cos_ee_svojstva_i_grafik
 
Теорема Виета
Теорема ВиетаТеорема Виета
Теорема Виета
 
Лекция №12. Графы: представление, обходы, топологическая сортировка. Предмет ...
Лекция №12. Графы: представление, обходы, топологическая сортировка. Предмет ...Лекция №12. Графы: представление, обходы, топологическая сортировка. Предмет ...
Лекция №12. Графы: представление, обходы, топологическая сортировка. Предмет ...
 
20101125 proof complexity_hirsch_lecture08
20101125 proof complexity_hirsch_lecture0820101125 proof complexity_hirsch_lecture08
20101125 proof complexity_hirsch_lecture08
 
Лекция 12 (часть 2): Языки программирования семейства PGAS: IBM X10
Лекция 12 (часть 2): Языки программирования семейства PGAS: IBM X10Лекция 12 (часть 2): Языки программирования семейства PGAS: IBM X10
Лекция 12 (часть 2): Языки программирования семейства PGAS: IBM X10
 
Lection07
Lection07Lection07
Lection07
 
Bolshakova prez
Bolshakova prezBolshakova prez
Bolshakova prez
 
Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировкиЛекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
 
Лекция 2 Сортировки, поиск и порядковые статистики
Лекция 2 Сортировки, поиск и порядковые статистикиЛекция 2 Сортировки, поиск и порядковые статистики
Лекция 2 Сортировки, поиск и порядковые статистики
 
схемы разделения секрета
схемы разделения секретасхемы разделения секрета
схемы разделения секрета
 
криптографический стандарт Rsa
криптографический стандарт Rsaкриптографический стандарт Rsa
криптографический стандарт Rsa
 
Лекция 8: Графы. Обходы графов
Лекция 8: Графы. Обходы графовЛекция 8: Графы. Обходы графов
Лекция 8: Графы. Обходы графов
 

Viewers also liked

DevOps Docs: Fast, Great Content for the Cloud
DevOps Docs: Fast, Great Content for the CloudDevOps Docs: Fast, Great Content for the Cloud
DevOps Docs: Fast, Great Content for the Cloud
vanessa_wilburn
 
About proactive investors presentation sept 2011
About proactive investors presentation sept 2011About proactive investors presentation sept 2011
About proactive investors presentation sept 2011frisblue
 
John trabajo diapo
John trabajo diapoJohn trabajo diapo
John trabajo diapo
John Azpurua Malave
 
Seks fede twitter tips
Seks fede twitter tipsSeks fede twitter tips
Seks fede twitter tips
Mikael Bolmgreen
 
PRINCE2-Practitioner-e-Cert
PRINCE2-Practitioner-e-CertPRINCE2-Practitioner-e-Cert
PRINCE2-Practitioner-e-CertMohamed ElSirsy
 
Лекция 7 Элементарные структуры данных часть 5
Лекция 7 Элементарные структуры данных часть 5Лекция 7 Элементарные структуры данных часть 5
Лекция 7 Элементарные структуры данных часть 5
simple_people
 
Linea de tiempo
Linea de tiempoLinea de tiempo
Linea de tiempo
giovannaysabel
 
101 profeci
101 profeci101 profeci
101 profeci
JURIST
 
Лекция 15 Поиск подстрок
Лекция 15 Поиск подстрокЛекция 15 Поиск подстрок
Лекция 15 Поиск подстрок
simple_people
 
Лекция 10 NP-полнота
Лекция 10 NP-полнотаЛекция 10 NP-полнота
Лекция 10 NP-полнота
simple_people
 
Лекция 12 Теоретико-числовые алгоритмы Часть 1
Лекция 12 Теоретико-числовые алгоритмы Часть 1Лекция 12 Теоретико-числовые алгоритмы Часть 1
Лекция 12 Теоретико-числовые алгоритмы Часть 1
simple_people
 
Лекция 6 Элементарные структуры данных часть 4
Лекция 6 Элементарные структуры данных часть 4Лекция 6 Элементарные структуры данных часть 4
Лекция 6 Элементарные структуры данных часть 4
simple_people
 
Planificación Exploración de la Naturaleza y la Sociedad Promulgacion de la ...
Planificación Exploración de la Naturaleza y la Sociedad  Promulgacion de la ...Planificación Exploración de la Naturaleza y la Sociedad  Promulgacion de la ...
Planificación Exploración de la Naturaleza y la Sociedad Promulgacion de la ...
Andrea Sánchez
 
Las estrategias y los instrumentos de evaluacion desde el enfoque formativo
Las estrategias y los instrumentos de evaluacion  desde el enfoque formativoLas estrategias y los instrumentos de evaluacion  desde el enfoque formativo
Las estrategias y los instrumentos de evaluacion desde el enfoque formativo
Luis Eduardo Núñez Rivera
 
Rumos
RumosRumos
Respeito ao sertão
Respeito ao sertãoRespeito ao sertão
Respeito ao sertão
pietra bravo
 
Razao de viver
Razao de viverRazao de viver
Razao de viver
pietra bravo
 

Viewers also liked (19)

DevOps Docs: Fast, Great Content for the Cloud
DevOps Docs: Fast, Great Content for the CloudDevOps Docs: Fast, Great Content for the Cloud
DevOps Docs: Fast, Great Content for the Cloud
 
About proactive investors presentation sept 2011
About proactive investors presentation sept 2011About proactive investors presentation sept 2011
About proactive investors presentation sept 2011
 
John trabajo diapo
John trabajo diapoJohn trabajo diapo
John trabajo diapo
 
Seks fede twitter tips
Seks fede twitter tipsSeks fede twitter tips
Seks fede twitter tips
 
Doc1
Doc1Doc1
Doc1
 
Tattigul nurbayeva
Tattigul nurbayevaTattigul nurbayeva
Tattigul nurbayeva
 
PRINCE2-Practitioner-e-Cert
PRINCE2-Practitioner-e-CertPRINCE2-Practitioner-e-Cert
PRINCE2-Practitioner-e-Cert
 
Лекция 7 Элементарные структуры данных часть 5
Лекция 7 Элементарные структуры данных часть 5Лекция 7 Элементарные структуры данных часть 5
Лекция 7 Элементарные структуры данных часть 5
 
Linea de tiempo
Linea de tiempoLinea de tiempo
Linea de tiempo
 
101 profeci
101 profeci101 profeci
101 profeci
 
Лекция 15 Поиск подстрок
Лекция 15 Поиск подстрокЛекция 15 Поиск подстрок
Лекция 15 Поиск подстрок
 
Лекция 10 NP-полнота
Лекция 10 NP-полнотаЛекция 10 NP-полнота
Лекция 10 NP-полнота
 
Лекция 12 Теоретико-числовые алгоритмы Часть 1
Лекция 12 Теоретико-числовые алгоритмы Часть 1Лекция 12 Теоретико-числовые алгоритмы Часть 1
Лекция 12 Теоретико-числовые алгоритмы Часть 1
 
Лекция 6 Элементарные структуры данных часть 4
Лекция 6 Элементарные структуры данных часть 4Лекция 6 Элементарные структуры данных часть 4
Лекция 6 Элементарные структуры данных часть 4
 
Planificación Exploración de la Naturaleza y la Sociedad Promulgacion de la ...
Planificación Exploración de la Naturaleza y la Sociedad  Promulgacion de la ...Planificación Exploración de la Naturaleza y la Sociedad  Promulgacion de la ...
Planificación Exploración de la Naturaleza y la Sociedad Promulgacion de la ...
 
Las estrategias y los instrumentos de evaluacion desde el enfoque formativo
Las estrategias y los instrumentos de evaluacion  desde el enfoque formativoLas estrategias y los instrumentos de evaluacion  desde el enfoque formativo
Las estrategias y los instrumentos de evaluacion desde el enfoque formativo
 
Rumos
RumosRumos
Rumos
 
Respeito ao sertão
Respeito ao sertãoRespeito ao sertão
Respeito ao sertão
 
Razao de viver
Razao de viverRazao de viver
Razao de viver
 

Similar to Лекция 13 Теоретико-числовые алгоритмы Часть 2

чернякова г.в.
чернякова г.в.чернякова г.в.
чернякова г.в.sharikdp
 
Советский суперкомпьютер К-340А и секретные вычисления
Советский суперкомпьютер К-340А и секретные вычисленияСоветский суперкомпьютер К-340А и секретные вычисления
Советский суперкомпьютер К-340А и секретные вычисления
Positive Hack Days
 
Matemat526
Matemat526Matemat526
Matemat526
tesla21
 
Лекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмовЛекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмов
Mikhail Kurnosov
 
Лекция 11: Методы разработки алгоритмов
Лекция 11: Методы разработки алгоритмовЛекция 11: Методы разработки алгоритмов
Лекция 11: Методы разработки алгоритмовMikhail Kurnosov
 
Михаил Рыбалкин. Перестановочные многочлены.
Михаил Рыбалкин. Перестановочные многочлены.Михаил Рыбалкин. Перестановочные многочлены.
Михаил Рыбалкин. Перестановочные многочлены.LiloSEA
 
Презентация на тему: Повторение курса информатики 7 класс
Презентация на тему: Повторение курса информатики 7 классПрезентация на тему: Повторение курса информатики 7 класс
Презентация на тему: Повторение курса информатики 7 класс2berkas
 
Лекция 13: Трудноразрешимые задачи. NP-полнота.
Лекция 13: Трудноразрешимые задачи. NP-полнота.Лекция 13: Трудноразрешимые задачи. NP-полнота.
Лекция 13: Трудноразрешимые задачи. NP-полнота.Mikhail Kurnosov
 
Семинар 3. Многопоточное программирование на OpenMP (часть 3)
Семинар 3. Многопоточное программирование на OpenMP (часть 3)Семинар 3. Многопоточное программирование на OpenMP (часть 3)
Семинар 3. Многопоточное программирование на OpenMP (часть 3)
Mikhail Kurnosov
 
CSEDays. Александр Семенов
CSEDays. Александр СеменовCSEDays. Александр Семенов
CSEDays. Александр СеменовLiloSEA
 
решение тригонометрических уравнений
решение тригонометрических уравненийрешение тригонометрических уравнений
решение тригонометрических уравненийЛюдмила Щецова
 
ГАУССОВЫ МАРКОВСКИЕ ПОСЛЕДОВАТЕЛЬНОСТИ
ГАУССОВЫ МАРКОВСКИЕ ПОСЛЕДОВАТЕЛЬНОСТИГАУССОВЫ МАРКОВСКИЕ ПОСЛЕДОВАТЕЛЬНОСТИ
ГАУССОВЫ МАРКОВСКИЕ ПОСЛЕДОВАТЕЛЬНОСТИ
ITMO University
 
1742 повторяем математику за курс средней школы арефьева и.г-2015 -118с
1742  повторяем математику за курс средней школы арефьева и.г-2015 -118с1742  повторяем математику за курс средней школы арефьева и.г-2015 -118с
1742 повторяем математику за курс средней школы арефьева и.г-2015 -118с
psvayy
 
Лекция №9. Сортировка. Часть №1. Предмет "Структуры и алгоритмы обработки дан...
Лекция №9. Сортировка. Часть №1. Предмет "Структуры и алгоритмы обработки дан...Лекция №9. Сортировка. Часть №1. Предмет "Структуры и алгоритмы обработки дан...
Лекция №9. Сортировка. Часть №1. Предмет "Структуры и алгоритмы обработки дан...Nikolay Grebenshikov
 
Методы обучения линейных моделей
Методы обучения линейных моделейМетоды обучения линейных моделей
Методы обучения линейных моделей
Alex
 
Математическое дополнение
Математическое дополнениеМатематическое дополнение
Математическое дополнение
BigVilly
 
fiz-mat
fiz-matfiz-mat
решение тригонометрических уравнений
решение тригонометрических уравненийрешение тригонометрических уравнений
решение тригонометрических уравнений
Demanessa
 

Similar to Лекция 13 Теоретико-числовые алгоритмы Часть 2 (20)

чернякова г.в.
чернякова г.в.чернякова г.в.
чернякова г.в.
 
Советский суперкомпьютер К-340А и секретные вычисления
Советский суперкомпьютер К-340А и секретные вычисленияСоветский суперкомпьютер К-340А и секретные вычисления
Советский суперкомпьютер К-340А и секретные вычисления
 
Matemat526
Matemat526Matemat526
Matemat526
 
Лекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмовЛекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмов
 
Лекция 11: Методы разработки алгоритмов
Лекция 11: Методы разработки алгоритмовЛекция 11: Методы разработки алгоритмов
Лекция 11: Методы разработки алгоритмов
 
Михаил Рыбалкин. Перестановочные многочлены.
Михаил Рыбалкин. Перестановочные многочлены.Михаил Рыбалкин. Перестановочные многочлены.
Михаил Рыбалкин. Перестановочные многочлены.
 
Презентация на тему: Повторение курса информатики 7 класс
Презентация на тему: Повторение курса информатики 7 классПрезентация на тему: Повторение курса информатики 7 класс
Презентация на тему: Повторение курса информатики 7 класс
 
Лекция 13: Трудноразрешимые задачи. NP-полнота.
Лекция 13: Трудноразрешимые задачи. NP-полнота.Лекция 13: Трудноразрешимые задачи. NP-полнота.
Лекция 13: Трудноразрешимые задачи. NP-полнота.
 
Семинар 3. Многопоточное программирование на OpenMP (часть 3)
Семинар 3. Многопоточное программирование на OpenMP (часть 3)Семинар 3. Многопоточное программирование на OpenMP (часть 3)
Семинар 3. Многопоточное программирование на OpenMP (часть 3)
 
CSEDays. Александр Семенов
CSEDays. Александр СеменовCSEDays. Александр Семенов
CSEDays. Александр Семенов
 
решение тригонометрических уравнений
решение тригонометрических уравненийрешение тригонометрических уравнений
решение тригонометрических уравнений
 
ГАУССОВЫ МАРКОВСКИЕ ПОСЛЕДОВАТЕЛЬНОСТИ
ГАУССОВЫ МАРКОВСКИЕ ПОСЛЕДОВАТЕЛЬНОСТИГАУССОВЫ МАРКОВСКИЕ ПОСЛЕДОВАТЕЛЬНОСТИ
ГАУССОВЫ МАРКОВСКИЕ ПОСЛЕДОВАТЕЛЬНОСТИ
 
1742 повторяем математику за курс средней школы арефьева и.г-2015 -118с
1742  повторяем математику за курс средней школы арефьева и.г-2015 -118с1742  повторяем математику за курс средней школы арефьева и.г-2015 -118с
1742 повторяем математику за курс средней школы арефьева и.г-2015 -118с
 
Лекция №9. Сортировка. Часть №1. Предмет "Структуры и алгоритмы обработки дан...
Лекция №9. Сортировка. Часть №1. Предмет "Структуры и алгоритмы обработки дан...Лекция №9. Сортировка. Часть №1. Предмет "Структуры и алгоритмы обработки дан...
Лекция №9. Сортировка. Часть №1. Предмет "Структуры и алгоритмы обработки дан...
 
Методы обучения линейных моделей
Методы обучения линейных моделейМетоды обучения линейных моделей
Методы обучения линейных моделей
 
Математическое дополнение
Математическое дополнениеМатематическое дополнение
Математическое дополнение
 
лекция 14
лекция 14лекция 14
лекция 14
 
лекция 14
лекция 14лекция 14
лекция 14
 
fiz-mat
fiz-matfiz-mat
fiz-mat
 
решение тригонометрических уравнений
решение тригонометрических уравненийрешение тригонометрических уравнений
решение тригонометрических уравнений
 

More from simple_people

Лекция 16 Вычислительная геометрия
Лекция 16 Вычислительная геометрияЛекция 16 Вычислительная геометрия
Лекция 16 Вычислительная геометрия
simple_people
 
Лекция 17 Арифметические схемы
Лекция 17 Арифметические схемыЛекция 17 Арифметические схемы
Лекция 17 Арифметические схемы
simple_people
 
Лекция 14 Матрицы
Лекция 14 МатрицыЛекция 14 Матрицы
Лекция 14 Матрицы
simple_people
 
Лекция 11 Приближенные алгоритмы
Лекция 11 Приближенные алгоритмыЛекция 11 Приближенные алгоритмы
Лекция 11 Приближенные алгоритмы
simple_people
 
Лекция 9 Жадные алгоритмы
Лекция 9 Жадные алгоритмыЛекция 9 Жадные алгоритмы
Лекция 9 Жадные алгоритмы
simple_people
 
Лекция 8 Динамическое программирование
Лекция 8 Динамическое программированиеЛекция 8 Динамическое программирование
Лекция 8 Динамическое программирование
simple_people
 
Лекция 4 Элементарные структуры данных часть 2
Лекция 4 Элементарные структуры данных часть 2Лекция 4 Элементарные структуры данных часть 2
Лекция 4 Элементарные структуры данных часть 2
simple_people
 
Лекция 5 Элементарные структуры данных часть 3
Лекция 5 Элементарные структуры данных часть 3Лекция 5 Элементарные структуры данных часть 3
Лекция 5 Элементарные структуры данных часть 3
simple_people
 
Лекция 3 Элементарные структуры данных Часть 1
Лекция 3 Элементарные структуры данных Часть 1Лекция 3 Элементарные структуры данных Часть 1
Лекция 3 Элементарные структуры данных Часть 1
simple_people
 
Лекция 1 Скорость роста функций
Лекция 1 Скорость роста функцийЛекция 1 Скорость роста функций
Лекция 1 Скорость роста функций
simple_people
 
Мобильные Сервисные Службы
Мобильные Сервисные СлужбыМобильные Сервисные Службы
Мобильные Сервисные Службы
simple_people
 

More from simple_people (11)

Лекция 16 Вычислительная геометрия
Лекция 16 Вычислительная геометрияЛекция 16 Вычислительная геометрия
Лекция 16 Вычислительная геометрия
 
Лекция 17 Арифметические схемы
Лекция 17 Арифметические схемыЛекция 17 Арифметические схемы
Лекция 17 Арифметические схемы
 
Лекция 14 Матрицы
Лекция 14 МатрицыЛекция 14 Матрицы
Лекция 14 Матрицы
 
Лекция 11 Приближенные алгоритмы
Лекция 11 Приближенные алгоритмыЛекция 11 Приближенные алгоритмы
Лекция 11 Приближенные алгоритмы
 
Лекция 9 Жадные алгоритмы
Лекция 9 Жадные алгоритмыЛекция 9 Жадные алгоритмы
Лекция 9 Жадные алгоритмы
 
Лекция 8 Динамическое программирование
Лекция 8 Динамическое программированиеЛекция 8 Динамическое программирование
Лекция 8 Динамическое программирование
 
Лекция 4 Элементарные структуры данных часть 2
Лекция 4 Элементарные структуры данных часть 2Лекция 4 Элементарные структуры данных часть 2
Лекция 4 Элементарные структуры данных часть 2
 
Лекция 5 Элементарные структуры данных часть 3
Лекция 5 Элементарные структуры данных часть 3Лекция 5 Элементарные структуры данных часть 3
Лекция 5 Элементарные структуры данных часть 3
 
Лекция 3 Элементарные структуры данных Часть 1
Лекция 3 Элементарные структуры данных Часть 1Лекция 3 Элементарные структуры данных Часть 1
Лекция 3 Элементарные структуры данных Часть 1
 
Лекция 1 Скорость роста функций
Лекция 1 Скорость роста функцийЛекция 1 Скорость роста функций
Лекция 1 Скорость роста функций
 
Мобильные Сервисные Службы
Мобильные Сервисные СлужбыМобильные Сервисные Службы
Мобильные Сервисные Службы
 

Лекция 13 Теоретико-числовые алгоритмы Часть 2

  • 1. Анализ комбинаторных алгоритмов Лекция № 13 Теоретико-числовые алгоритмы Часть II
  • 2. Китайская теорема об остатках Теорема Пусть n = n1*n2*…*nk, причем числа n1,n2… попарно взаимно просты. Задано соответствие a↔(a1,a2,…,ak), где a принадлежит Zn, a1 - Z1и т.д. Данная формула определяет однозначное соответствие между Zn и декартовым произведением Z1xZ2x…xZk
  • 3. Китайская теорема об остатках Следствие Если a↔(a1,a2,…,ak) и b↔(b1,b2,…,bk): 1) (a+b) mod n ↔ ((a1+b1) mod n1, …..) 2) (a-b) mod n ↔ ((a1-b1) mod n1, …..) 3) (ab) mod n ↔ ((a1b1) mod n1, …..) Следствие Если n1,n2…nk попарно взаимно просты, то равенство a ≡ x mod n равносильно системе уравнений вида a ≡ x mod ni.
  • 4. Китайская теорема об остатках a ≡ 2 (mod 5) a ≡ 3 (mod 13) a ≡ x (mod 65) x - ? mi=n/ni : m1 = 13, m2 = 5 m1-1 =13-1 (mod 5) = -13 (mod 5) = 2 m2-1 = 5-1 (mod 13) = -5 (mod 13) = 8 сi = mi (mi -1 mod ni) : с1=13*2 =26, c2= 5*8=40 a ≡ (a1c1+a2c2+…+akck) (mod n) a ≡ 2*26 + 3*40 (mod 65) = 42 (mod 65)
  • 5. Степени элемента Рассмотрим в мультипликативной группе последовательность степеней элемента a: a0 ,a1 ,a2 … Всегда верно утверждение a0 mod n = 1. Теорема (Эйлера) аφ(n) ≡ 1 (mod n), для a из Z*n Теорема (малая теорема Ферма) Если p – простое a p-1 ≡ 1 (mod n), для a из Z*n (a p ≡ a (mod n))
  • 6. Степени элемента Если порядок элемента g равен |Z*n |, g называют примитивным корнем или образующей Z*n . Если группа имеет образующую ее называют циклической. Теорема Группа Z*n является циклической тогда и только тогда, когда n равно 2, 4, имеет вид pk или 2pk (где p>2 – простое число, k – положительное целое)
  • 7. Степени элемента Теорема (о дискретном логарифме) Пусть g – образующая Z*n, тогда сравнение gx ≡ gy (mod n) равносильно сравнению x ≡ y (mod φ(n)) Теорема При простом p>2 и положительном целом k уравнение x2 ≡ 1 (mod pk ) имеет два решения x = 1 и x = -1.
  • 8. Степени элемента Пусть надо вычислить ab mod n. b[0..k] – битовая запись числа b. void ModExp(a,b,n){ c = 0; d = 1; for (i=k;i<=0;i--){ c = 2*c; d = (d*d) % n; if (b[i]=1){c = c+1; d = (d*a)%n;} } return d; }
  • 9. Степени элемента 79 mod 561 = 316 i 3 2 1 0 B 1 0 0 1 C 1 2 4 9 D 7 49 157 316
  • 10. Криптосистема RSA с открытым ключом Криптосистемы с открытым ключом позволяют обмениваться секретными сообщениями по открытому каналу, не договариваясь заранее о ключе шифра. Кроме того, методы используемые в криптосистемах позволяют также добавить к сообщению цифровую подпись, удостоверяющую что сообщение не фальсифицировано.
  • 11. Криптосистема RSA с открытым ключом При использовании криптосистем с открытым ключом каждый участник переговоров имеет два ключа: Открытый (public key, Pk) - сообщается остальным участникам или вообще всем желающим. Секретный (secret key, Sk) – хранится в секрете, не открывается никому.
  • 12. Криптосистема RSA с открытым ключом Каждый ключ задает некоторую перестановку множества возможных сообщений D, которая обозначается P() или S(). Пара ключей одного участника должна задавать взаимообратные переста-новки, т.е. M = S(P(M)) должно быть выполнено для любого M – сообще-ния из D.
  • 13. Криптосистема RSA с открытым ключом Процесс пересылки сообщения в криптосистеме с открытым ключе происходит так: B узнает открытый ключ A – Pa B зашифровывает свое сообщение M – C = Pa(M) – и отсылает его A. A получает сообщение C и расшифровывает его – M = Sa(C)
  • 14. Криптосистема RSA с открытым ключом Подписать сообщение цифровой подписью можно следующим образом: A вычисляет цифровую подпись σ=Sa(M) A отсылает B пару (M, σ) B получает пару (M, σ) B удостоверяется в подлинности сообщения, проверив равенство M=Pa(σ)
  • 15. Криптосистема RSA с открытым ключом Pa SaM M C=Pa(M) Шифрование с открытым ключом PaPa M M M, σ Цифровая подпись σ = Sa(M) Pa(σ) = M?
  • 16. Криптосистема RSA с открытым ключом Криптосистема RSA основана на том обстоятельстве, что в настоящее время известны эффективные алгоритмы поиска больших простых чисел, но не известно приемлемого по времени алгоритма разложения произведения двух больших простых чисел на множители.
  • 17. Криптосистема RSA с открытым ключом Этапы построения ключей криптосис- темы RSA:  Взять два больших простых числа p и q  Вычислить n = pq  Взять небольшое нечетное число e взаимно простое с φ(n)  Вычислить d = e-1 mod φ(n)  Составить пару P = (e, n) – открытый ключ  Составить пару S = (d, n) – секретный ключ
  • 18. Криптосистема RSA с открытым ключом Множеству допустимых сообщений D соответствует Zn. Открытому ключу соответствует преобразование: P(M) = Me mod n Секретному ключу соответствует преобразование: S(C) = Cd mod n
  • 19. Криптосистема RSA с открытым ключом Для ускорения вычислений на практике цифровая подпись вычисляется не для всего сообщения, а для некоторой хеш-функции от него h(M), дающей в результате небольшое по размеру значение.