Студопедия — Асиметричний алгоритм RSA
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Асиметричний алгоритм RSA






 

Прикладом асиметричного алгоритму шифрування є алгоритм RSA. Його запропонували в 1978 р. три автори: Р. Райвест (Rivest), А. Шамір (Shamir) і А. Адлеман (Adleman). Алгоритм одержав свою назву за першими буквами прізвищ його авторів. Алгоритм RSA став першим повноцінним алгоритмом з відкритим ключем, що може працювати як у режимі шифрування даних, так і в режимі електронного цифрового підпису [9,10,11].

Спочатку розглянемо процедуру створення ключової пари
<КО, КС> алгоритму RSA. Щоб створити ключову пару користувач A виконує такі дії:

1. Вибирає два довільних великих простих числа Р і Q.

2. Обчислює значення модуля N = Р * Q.

3. Обчислює функцію Ейлера φ(N)=(P-1)(Q-1).

4. Вибирає випадковим чином значення відкритого ключа КО з урахуванням виконання таких умов:

1<KO<φ (N), HСД (KO,φ(N))=1,

де HСД (KO,φ(N)) – найбільший спільний дільник чисел KO і
φ(N).

5. Обчислює значення секретного ключа KC, вирішуючи порівняння

KO*KC ≡1 (mod N).

Відмітимо, що умови вибору відкритого ключа забезпечують існування єдиного розв’язку порівняння.

 

Потім користувач А пересилає користувачу В пару чисел (N,KO) по незахищеному каналу зв’язку.

Шифрування інформації відкритим ключем може здійснюватись наступним чином. Користувач В розбиває вихідний відкритий текст на блоки, кожен з яких може бути представлений у вигляді числа Pi (1<Pi<N, i=1,..,n). Потім користувач В послідовность чисел Pi шифрує за формулою

Сі = PiKO(mod N), (i=1,..,n).

С1, …,Сn – шифр-текст.

Користувач A розшифровує шифр-текст С1, …,Сn, використовуючи секретний ключ KC за формулою

Pі = Ci (mod N), (i=1,..,n).

У результаті буде отримана послідовність чисел Pi, які являють собою вихідний відкритий текст.

Щоб алгоритм RSA мав практичну цінність, необхідно мати можливість без істотних витрат генерувати великі прості числа, вміти оперативно обчислювати значення ключів KO і KC.

Розглянемо приклад. Для простоти обчислень будуть використовуватися невеликі числа. Для створення ключової пари <КО, КС> алгоритму RSA користувач A виконує таке:

1. Вибирає, припустимо, P = 3 і Q = 11.

2. Обчислює модуль N = P*Q = 3*11 = 33.

3. Обчислює значення функції Ейлера для N = 33: φ(N)=(P-1)(Q-1)= φ(33) = (Р -1)(Q -1) = 2*10 = 20.

4. Вибирає відкритий ключ KO як довільне число з урахуванням виконання умов:

1<KO<φ(N)=20, HСД (KO,φ (N))=1.

Нехай KO = 7.

5. Обчислює секретний ключа KC, вирішуючи порівняння
7 *KC ≡1 (mod (20)). Розвязком є KC = 3.

Далі користувач А пересилає користувачу В по незахищеному каналу зв’язку пару чисел (N = 33, KO = 7).

Нехай користувач В хоче зашифрувати для користувача А текст CAB. Тоді йому треба виконати таке:

1. Текст CAB представляється послідовністю чисел 4,2,3 (кожна літера замінюється її номером в англійському алфавіті), Тоді P1 = 4, P2 = 2, P3 = 3.

2. Шифрування здійснюється відкритим ключем KO = 7 за формулою Ci = Pi KO(mod N). Тобто

С1 = 47 (mod 33) = 16384 (mod 33) = 16,

C2 =27 (mod 33) =128 (mod 33) =29,

C3 = 37 (mod 33) =2187 (mod 33) = 9.

Таким чином, шифр-текст С1, C2,C3 є таким: 16,29,9.

Користувач А розшифровує шифр-текст С1,C2,C3, використовуючи секретний ключ KC = 3, за формулою Pі = Ci (mod N):

P1 = 163 (mod 33) = 4096 (mod 33) = 4,

P2 =293 (mod 33) =24389 (mod 33) =2,

P3 = 93 (mod 33) =729 (mod 33) = 3.

 

Безпека алгоритму RSA базується на труднощах факторизації (розкладанні на множники) великих чисел. Останні публікації пропонують застосовувати числа (модуль N) довжиною не менш 250 – 300 десяткових розрядів [9,10.11,12].

RSA реалізуються як апаратним, так і програмним шляхом. Апаратна реалізація RSA приблизно в 1000 разів повільніше апаратної реалізації симетричного алгоритма шифрування DES. Програмна реалізація RSA приблизно в 100 разів повільніше програмної реалізації DES[9,10,11]. З розвитком технології ці оцінки можуть трохи змінюватися, але асиметрична криптосистема RSA ніколи не досягне швидкодії симетричних криптосистем. Слід зазначити, що мала швидкодія криптосистем RSA обмежує область їх застосування, але не перекреслює їх цінність.

 

3.2 Алгоритм Діфі-Хелмана

 

Алгоритм відкритого розподілу ключів Діфі-Хелмана був запропонований у 1976 році. Цей алгоритм був першим алгоритмом з відкритим ключем [9,10,11]. Його безпека обумовлена труднощами обчислення дискретних логарифмів у скінченному полі, на відміну від легкості дискретного зведення в степінь у тому ж скінченному полі.

Припустимо, що два користувачі А і В хочуть організувати захищений комунікаційний канал. Обидві сторони заздалегідь вибирають велике просте число N і число g (1 ≤ g ≤ N-1), яке є первісним коренем по модулю N, тобто його степені

g1, g2, g3,…,gN-1

є різними по модулю N. Наприклад. Нехай N=7. Тоді g=3 є первісним коренем по модулю 7, тому що

31=3≡3 (mod 7),

32=9≡2 (mod 7),

33=27≡6 (mod 7),

34=81≡4 (mod 7),

35=243≡5 (mod 7),

36=729≡1 (mod 7).

Ці два цілих числа N і g є спільними для всіх користувачів комп'ютерної системи і їх не треба зберігати в секреті. Алгоритм складається з наступних кроків.

1. Спочатку користувачі А і В незалежно один від одного вибирають власні секретні ключі KCA і KCB (KCA і KCB – випадкові великі цілі числа, що зберігаються користувачами А і В у секреті).
2. Далі користувач А обчислює відкритий ключ КОA=gKCA (mod N), а користувач В – відкритий ключ КОB=gKCB (mod N).  
3. Потім користувачі А і В обмінюються відкритими ключами КОA і КОB по незахищеному каналу.
4. Нарешті користувачі А і В обчислюють спільний секретний ключ. Користувач А обчислює К= (КОB)КCA = (gKCB) КCA(mod N), а користувач В: К' = (КОA)КCB = (gKCA) КCB(mod N). При цьому К = К', тому що (gKCB) КCA = (gKCA) КCB(mod N).  

 

Ключ К може використовуватися в якості спільного секретного ключа симетричної криптосистеми.

Зловмисник, перехопивши значення N, g, КОA і КОB, теж хотів би знайти ключ К. Очевидний шлях для вирішення цієї задачі складається в обчисленні такого значення КСA по N, g, КОA, що

gA mod N = КОA.

Оскільки в цьому випадку, обчисливши КСA можна знайти

К= (КОB)КСA (mod N).

Однак знаходження КСА по N, g і КОA – задача дискретного логарифмування в скінченному полі, яка вважається практично нерозв'язною [9,11].

Алгоритм відкритого розподілу ключів Діфі-Хелмана дозволяє розподіляти секретні ключі по незахищеному каналу. Однак, працюючи з цим алгоритмом, необхідно мати гарантію того, що користувач А одержав відкритий ключ саме від користувача В, і навпаки. Ця проблема вирішується за допомогою електронного цифрового підпису, яким підписуються повідомлення з відкритими ключами.

Для розподілу секретних ключів між користувачами розподіленої інформаційної системи можна використовувати і алгоритм RSA. Перевага методу Діфі-Хелмана в порівнянні з методом RSA полягає в тім, що формування загального секретного ключа відбувається в сотні разів швидше. У системі RSA генерація нових секретних і відкритих ключів заснована на генерації нових простих чисел, що займає багато часу [9,11].

Приклад. Виберемо модуль N = 19, а первісним коренем по модулю N = 19 число g = 2. Припустимо, що користувачі А і В вибрали своїми секретними ключами КCА =3 і КCB =6. Щоб мати спільний секретний ключ К, вони обчислюють спочатку значення своїх відкритих ключів:

КОA=gKCA (mod N)=23=8=8 (mod 19),

КОB=gKCB (mod N)=25=32=13 (mod 19).

Після того, як користувачі А і В обміняються значеннями КОA=8 і КОB=13, вони обчислюють спільний секретний ключ

К= (КОB)КCA (mod N)=133=2197=12 (mod 19),

К' = (КОA)КCB (mod N)=85=32768 =12 (mod 19).

Отже, спільний секретний ключ К=12.

 

Контрольні завдання







Дата добавления: 2015-09-15; просмотров: 1074. Нарушение авторских прав; Мы поможем в написании вашей работы!



Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...

Что такое пропорции? Это соотношение частей целого между собой. Что может являться частями в образе или в луке...

Растягивание костей и хрящей. Данные способы применимы в случае закрытых зон роста. Врачи-хирурги выяснили...

ФАКТОРЫ, ВЛИЯЮЩИЕ НА ИЗНОС ДЕТАЛЕЙ, И МЕТОДЫ СНИЖЕНИИ СКОРОСТИ ИЗНАШИВАНИЯ Кроме названных причин разрушений и износов, знание которых можно использовать в системе технического обслуживания и ремонта машин для повышения их долговечности, немаловажное значение имеют знания о причинах разрушения деталей в результате старения...

Концептуальные модели труда учителя В отечественной литературе существует несколько подходов к пониманию профессиональной деятельности учителя, которые, дополняя друг друга, расширяют психологическое представление об эффективности профессионального труда учителя...

Конституционно-правовые нормы, их особенности и виды Характеристика отрасли права немыслима без уяснения особенностей составляющих ее норм...

Толкование Конституции Российской Федерации: виды, способы, юридическое значение Толкование права – это специальный вид юридической деятельности по раскрытию смыслового содержания правовых норм, необходимый в процессе как законотворчества, так и реализации права...

Studopedia.info - Студопедия - 2014-2024 год . (0.012 сек.) русская версия | украинская версия