КРИПТОСИСТЕМА RSA.ppt
- Количество слайдов: 21
Криптосистема RSA
Криптосистема RSA Проблема защиты информации путем ее преобразования, исключающего ее прочтение посторонним лицом, волновала человеческий ум с давних времен. Область применения криптографических методов защиты информации: Øзащита информации, обрабатываемой в ЭВМ или хранящейся в различного типа запоминающих устройствах, Øзакрытие информации, передаваемой элементами системы по линиям связи. между различными В настоящее время разработано большое количество различных методов шифрования, созданы теоретические и практические основы их применения. Подавляющие число этих методов может быть успешно использовано и для скрытия информации. Под шифрованием в данном случае подразумевается шифрованием преобразование передаваемых сообщений, хранение информации (документов, баз данных) на носителях в зашифрованном виде.
Криптосистема RSA Почему проблема использования криптографических методов в информационных системах стала в настоящий момент особо актуальна? Ø С одной стороны, расширилось использование компьютерных сетей, по которым передаются большие объемы информации государственного, военного, коммерческого и частного характера, не допускающего возможность доступа к ней посторонних лиц Ø С другой стороны, появление новых мощных, технологий сетевых и нейронных вычислений сделало возможным дискредитацию криптографических систем еще недавно считавшихся практически систем не раскрываемыми.
Криптосистема RSA Концепция криптографии с открытыми ключами была выдвинута Уитфилдом Диффи и Мартином Хеллманом, и независимо Ральфом Мерклом. Их вкладом в криптографию было убеждение, что ключи можно использовать парами – ключи шифрования и дешифрирования – и что может быть невозможно получить один ключ из другого. С 1976 г. было предложено множество криптографических алгоритмов с открытыми ключами. Те из них, которые являются безопасными, многие непригодны для практической реализации. Либо они используют слишком большой ключ, либо размер полученного шифротекста намного превышает размер открытого текста. Немногие алгоритмы являются и безопасными, и практичными. Только три алгоритма хорошо работают как при шифровании, так и для цифровой подписи: RSA, EIGamal и Rabin. цифровой подписи RSA EIGamal Rabin Алгоритмы с открытыми ключами спроектированы так, чтобы противостоять вскрытиям с выбранным открытым текстом. Их безопасность основана как на трудности получения секретного ключа основана по открытому, так и на трудности получить открытый текст по открытому шифротексту.
Криптосистема RSA Первым алгоритмом для обобщенного шифрования с открытым ключом стал алгоритм рюкзака, разработанный Ральфом Мерклом и Мартином Хеллманом. Он мог быть использован только для шифрования, хотя позднее Ади Шамир адаптировал систему для цифровой подписи. Вскоре после алгоритма рюкзака Меркла появился первый полноценный алгоритм с открытым ключом, который можно использовать для ключом шифрования и цифровых подписей: RSA – криптографическая система открытого ключа, обеспечивающая такие механизмы защиты как шифрование и цифровая подпись (аутентификация – установление подлинности). Криптосистема RSA разработана в 1977 году и названа в честь ее разработчиков Ronald Rivest, Adi Shamir и Leonard Adleman.
Криптосистема RSA • Заметим, что еще до выхода из печати своей статьи, авторы системы RSA послали копию своего доклада о ней, сделанного ранее в Массачусетском Технологическом институте, послали известному популяризатору математики М. Гарднеру, который в 1977 году в журнале Scientific American опубликовал статью об этой системе шифрования. • В русском переводе заглавие статьи Гарднера звучит так: «Новый вид шифра, на расшифровку которого потребуется миллионы лет» . • Именно эта статья сыграла важнейшую роль в распространении информации об RSA, привлекла к криптографии внимание широких кругов неспециалистов и фактически способствовала бурному прогрессу этой области, произошедшему в последние десятки лет.
• • Криптосистема RSA Для иллюстрации своего метода Ривест, Шамир и Адлеман зашифровали своим способом некоторую английскую фразу. Сначала она стандартным образом (a = 01, b = 02 , …. , z = 26, пробел = 00 ) была записана в виде целого числа x, а затем зашифрована с помощью чисел • (число n содержит 129 десятичных знаков) и e=9007. • Эти два числа были опубликованы, причем дополнительно сообщалось, что n=pq, где p и q – простые числа, записываемые соответственно 64 и 65 десятичными знаками.
Криптосистема RSA • Первому кто расшифрует соответствующее сообщение y=Ek(x) = x 9007 modn: • (содержит 128 десятичных знаков) была обещана награда в 100 $.
Криптосистема RSA • Эта история завершилась спустя 17 лет в 1994 году, когда D. Atkins, M. Graff, A. K. Lenstra и P. C. Leyland сообщили о расшифровки фразы в статье. • Предложенная фраза была вынесена в заголовок статьи “The magic words are squeamish ossifrage” • (перевод последних двух слов squeamish – брезгливый, ossifrage – скопа (вид птицы типа выпь) позволяет сделать вывод, что зашифрована была бессмысленная фраза), а соответствующие числа p и q оказались равными
Криптосистема RSA • Выполнение вычислений потребовало колоссальных ресурсов. • В работе, возглавлявшейся 4 -мя авторами проекта, и продолжавшейся после предварительной теоретической подготовки примерно 220 дней, на добровольных началах участвовало около 600 человек и примерно 1600 компьютеров, объединенных сетью Internet.
Криптосистема RSA Из всех предложенных за эти годы алгоритмов с открытыми ключами RSA проще всего понять и реализовать. Он также является самым популярным. Хотя криптоанализ ни доказал, ни опроверг RSA, он, по сути, обосновывает уровень доверия к алгоритму. Безопасность RSA основана на трудности разложения на множители больших чисел. Открытый и закрытый ключи являются функциями двух больших (100 – чисел 200 разрядов) простых чисел. Предполагается, что восстановление открытого текста по шифротексту и открытому ключу эквивалентно разложению на множители двух больших чисел.
Криптосистема RSA Принцип действия криптографической системы следующем. Для начала сгенерируем пару ключей: RSA состоит в 1. Возьмём два больших случайных простых числа p и q приблизительно равной разрядности, 2. Вычислим их произведение n = p · q, которое называется модулем. 3. Вычисляется значение функции Эйлера от числа n: φ(n)= (p - 1) · (q - 1). 4. Выбирается целое число e (1<e<φ(n)), взаимно простое со значением функции φ(n). 5. Вычисляется число d, мультипликативно обратное к числу e по модулю φ(n), то есть число, удовлетворяющее условию: или , где k – некоторое целое число. Обычно число d вычисляется при помощи расширенного алгоритма Евклида. Пара (e, n) публикуется в качестве открытого ключа RSA , пара (d, n) играет роль секретного ключа RSA
Криптосистема RSA Если p и q известны, существует метод нахождения d; но если p и q неизвестны, найти d невозможно. Если p и q очень велики (например, более 10200), то найти их за приемлемое время (то есть факторизовать число n) не под силу даже наибыстрейшим компьютерам. Для шифрования сообщения m оно сначало разбивается на цифровые блоки, меньше n. Чтобы создать шифротекст ci, возводим mi в степень e и находим шифротекст остаток от деления на n, где e и n – показатели открытого ключа: ci = mi e (mod n) Чтобы расшифровать полученный шифротекст, шифротекст возводим ci в степень d и находим остаток от деления на n, где d – показатель закрытого ключа, который хранится в секрете: mi = ci d (mod n)
Криптосистема RSA Рассмотрим пример шифрования текста. Зашифровать по системе RSA сообщение COMEDY при n=3127 и ключе зашифрования e=17. Зашифрование. Преобразуем текст в числа обычным образом: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Поскольку значение модуля (3127) записывается с помощью четырех цифр, разобьем текст на пары букв следующим образом: CO 0214 ME 1204 DY 0324
Криптосистема RSA Теперь необходимо вычислить значения, получаемые при возведении каждого из этих четырехзначных чисел в 17 -ю степень и приведении по модулю 3127. Приведем в деталях вычисления только для первого значения 0214. Итак, наша задача состоит в том, чтобы вычислить значение (0214)17(mod 3127). Везде, где это возможно в модульных вычислениях такого типа, мы для нахождения степеней исходного числа будем последовательно возводить его в квадрат, а затем перемножим значения соответствующих степеней. (214)2=45796=14 3127+2018=2018(mod 3127), откуда (214)4 =(2018)2=4072324=1302 3127+970=970(mod 3127), и (214)8=(970)2=940900=300 3127+2800=2800(mod 3127), откуда (214)16=(2800)2=7840000=2507 3127+611=611(mod 3127). Окончательно получаем (214)17=214 611=130754=41 3127+2547=2547(mod 3127). Итак, 0214 при шифровании переходит в 2547.
Криптосистема RSA Остальные блоки текста сообщения шифруются точно так же. В результате получается шифрованный текст 2547 3064 2149. Его нельзя преобразовать обратно в буквы, так как на некоторых местах получаются двузначные числа больше 25. Для дешифрования этого шифрованного сообщения получатель ("хозяин") возводит каждое четырехзначное число в степень, задаваемую ключом дешифрования, 2129, и приводит результат по модулю 3127. Поскольку то в ходе вычислений понадобится возвести каждое четырехзначное число в степени 24, 26 и 211 путем последовательного возведения в квадрат с дельнейшим перемножением нужных нам чисел. Выполним операции по дешифрованию третьего четырехзначного блока из приведенного выше шифрованного текста (т. е. 2149).
Криптосистема RSA Необходимо вычислить значение (2149)2129 и найти остаток от его деления на 3127. Из сказанного выше следует, что (2149)2129=(2149)2048 (2149)64 (2149)16 (2149)1, и мы переходим к составлению таблицы степеней числа 2149 с показателями 2 n до значения n=11 путем последовательного возведения в квадрат. Так как (2149)2=4618201=1476 3127+2749, то в строку таблицы для N=2 мы заносим число 2749. Продолжая подобным образом, получаем всю таблицу степеней. n N=2 n (63)N(mod 3127) 0 1 2149 1 2 2749 2 4 2169 3 8 1553 4 16 892 5 32 1406 6 64 572 7 128 1976 8 256 2080 9 512 1759 10 1024 1478 11 2048 1838
Криптосистема RSA Для вычисления значения (2149)2129(mod 3127) теперь перемножаем четыре числа, стоящие в правом столбце напротив значений n=0, 4, 6 и 11: (2149)2129=2149 892 572 1838(mod 3127). Поскольку 2149 892=1916908=613 3127+57=57(mod 3127), и 572 1838=1051336=336 3127+664=664(mod 3127), и наконец, 57 664=37848=12 3127+324=324(mod 3127), то в результате дешифрования блока 2149 получается значение 0324. Оно преобразуется в пару букв DY, которая на самом деле является третьим диграфом исходного сообщения.
Криптосистема RSA Таким образом, для зашифрования сообщения по методу RSA предполагаемому пользователю необходимо знать значение модуля n и ключ зашифрования e – эти величины общедоступны. Значения чисел p и q и ключа расшифрования d известны только "хозяину" используемой системы
Криптосистема RSA Проблемы практической реализации ü Важнейшей проблемой практической реализации – генерация больших простых чисел. В принципе в качестве p и q можно чисел использовать «почти» простые числа, то есть числа, для которых вероятность того, что они простые, стремится к 1. Но в случае, если использовано составное число, то криптостойкость RSA падает. ü Следующая проблема использовать? – какой длины ключи следует Авторы RSA рекомендуют использовать следующие размеры модуля n: • 768 бит – для частных лиц; • 1024 бит – для коммерческой информации; • 2048 бит – для секретной информации. – – – ü Поскольку простые числа должны выбираться таким образом, чтобы факторизовать их произведение было вычислительно невозможно, рекомендуется брать их очень большими и одинаковой длины. Разность чисел p и q также не должна быть маленькой, поскольку в этом случае p~q и, следовательно, p~(n)1/2. Таким образом, разложение n может быть найдено простым делением на все числа порядка (n)1/2. Кроме того, числа p и q должны быть также "устойчивыми" простыми числами. Третий немаловажный аспект реализации RSA – вычислительный, приходится использовать аппарат длинной арифметики.
Криптосистема RSA Скорость RSA Скорости RSA для различных длин модулей при 8 -битовом открытом ключе: 512 битов Шифрование Дешифрирование Подпись Проверка 768 битов 1024 бита 0. 03 с 0. 16 с 0. 02 с 0. 05 с 0. 48 с 0. 52 с 0. 07 с 0. 08 с 0. 93 с 0. 97 с 0. 08 с Безопасность RSA полностью зависит от проблемы разложения на множители больших чисел.
КРИПТОСИСТЕМА RSA.ppt