'

Криптоанализ RSA

Понравилась презентация – покажи это...





Слайд 0

Криптоанализ RSA Докладчик: Николай Гравин (311 Группа)


Слайд 1

RSA: Берем p,q- два больших простых числа(512 бит) n=pЧq, j(n)=(p-1)Ч(q-1) e<j(n) ,такое что gcd(e, j(n))=1 d-? : eЧd=1 (mod j(n)) (e,n)-открытый ключ, d-закрытый ключ Задача: Как зная e и j(n) найти за полиномиальное время такое d(такое что eЧd=1 (mod j(n))).


Слайд 2

Encryption and Digital Signature Шифрование: MОZn(секретное сообщение) C=M^e(mod n) то, что мы посылаем получателю. D=С^d(mod n) D=M, D является расшифровкой C Цифровая подпись: М-сообщение или Hash от него Мы посылаем (M,S), где S=M^d(mod n)–подпись. Каждый может проверить, что S^e=M, но не может сам придумать по M такое S.


Слайд 3

Полезный теоретический факт Пусть (N,e)-публичный ключ, d- закрытый ключ. Тогда зная (N,e,d) можно разложить N на простые множители N=pЧq за полиномиальное время.


Слайд 4

Полезный теоретический факт Пусть (N,e)-публичный ключ, d- закрытый ключ. Тогда зная (N,e,d) можно разложить N на простые множители N=pЧq за полиномиальное время. Задача: Докажите этот факт.


Слайд 5

Теоретический факт Открытый вопрос: Пусть даны N,e:gcd(e,j(n))=1 и F:Zn->Zn, F(x)=x^(1/e)(mod n) – вычисляется за единичное время. Существует ли тогда полиномиальный алгоритм, раскладывающий N на простые множители.(F(x)-’оракул’) Результат: для малых e ответ нет. Boneh и Venkatesan доказали,что в определенной модели, ответ ‘Да’ на вопрос для малых e даст нам эффективный алгоритм разложения N.


Слайд 6

Методы разложения N на простые сомножители Trial Division Pollard’s p-1 Method Pollard’s rho Method Elliptic Curve Method Quadratic Sieve Method Number Field Sieve Method


Слайд 7

Trial Division Пытаемся разделить n на все простые числа от 1 до Цn.


Слайд 8

Trial Division Пытаемся разделить n на все простые числа от 1 до Цn. Плохой метод (работает log(n)*2n^1/2)


Слайд 9

Trial Division Пытаемся разделить n на все простые числа от 1 до Цn. Плохой метод (работает log(n)*2n^1/2) Хороший метод так, как больше чем у 91% чисел есть простой делитель меньший 1000.


Слайд 10

Pollard’s p-1 Method n=pq , у p-1 все простые делители <B k- произведение достаточно больших степеней всех простых чисел <B, тогда p-1|k. Пусть a=2. p|(a^k-1), значит мы можем найти p, как gcd(n, (a^k-1)).


Слайд 11

Pollard’s rho(r) Method Если у нас есть n исходов и 1.2*(n^1.2) испытаний то вероятность того, что 2 элемента совпали >50%.(birthday paradox) Теперь придумаем какую-нибудь функцию f: Zn->Zn, которая ведет себя в Zn ‘рандомно’(f(x)=x^2+1(mod n)-подойдет) Начнем выписывать последовательность x1,x2,x3,… , где xi+1=f(xi), параллельно будем считать gcd(xi-xj,n) для всех i и j – если gcd не 1 то мы разложили n.


Слайд 12

Pollard’s rho(r) Method Замечание Если считать для всех пар i и j gcd(xj-xi,n), то мы сделаем слишком много операций.


Слайд 13

Pollard’s rho(r) Method Замечание Если считать для всех пар i и j gcd(xj-xi,n), то мы сделаем слишком много операций. Вопрос: Как этого избежать?


Слайд 14

Pollard’s rho(r) Method Замечание Если считать для всех пар i и j gcd(xj-xi,n), то мы сделаем слишком много операций. Вопрос: Как этого избежать? Ответ: Проверять только для j=2i.


Слайд 15

Литература Twenty Years of Attacks on the RSA Cryptosystem (Dan Boneh) The Quadratic Sieve Factoring Algorithm (Eric Landquist) Cryptanalysis of RSA: A Survey (Calros Frederico Cid)


×

HTML:





Ссылка: