3 – Tajriba ishi
Mavzu: Katta sonlarni tub kopaytuvchilarga ajratish muammosi va RSA kriptotizimi.
Ochiq kalitlarni shifrlash algoritmi RSA yigirmanchi asrning 70-yillari oxirlarida birinchilardan biri tomonidan taklif qilingan. Uning nomi mualliflar ismlarining birinchi harflaridan iborat: R. Rivest, A. Shamir va L. Adleman. RSA algoritmi, ehtimol, eng mashhur va keng qo'llaniladigan assimetrik algoritm kriptografik tizimlarda.
Algoritm ko'p sonni asosiy omillarga ajratish masalasi qiyin ekanligiga asoslanadi. RSA kriptografik tizimi raqamlar nazariyasining quyidagi ikkita daliliga asoslanadi:
raqamni soddaligi uchun tekshirish vazifasi nisbatan oson;
n \u003d pq shaklidagi sonlar uchun kengayish masalasi (p va q asosiy sonlar); faktoring qilish juda qiyin, agar biz faqat n va p va q ni bilsak katta raqamlar (bu faktorizatsiya muammosi deb ataladi, batafsil ma'lumot uchun "Ochiq kalit kriptografiyasida ishlatiladigan raqamlar nazariyasi asoslari" ga qarang).
RSA - bu blokirovka qiluvchi shifrlash algoritmi, bu erda shifrlangan va shifrlanmagan ma'lumotlar ba'zi n uchun 0 dan n -1 gacha bo'lgan butun son sifatida ko'rsatilishi kerak.
Shifrlash
Shunday qilib, keling, algoritmning o'ziga qaraylik. A abonenti B abonentiga shifrlangan xabarni yuborishni xohlasin, bu holda B abonenti juftlikni (ochiq kalit; shaxsiy kalit) tayyorlab, o'zining ochiq kalitini A foydalanuvchisiga yuborishi kerak.
Birinchi qadam ochiq va yopiq kalitlarni yaratishdir. Buning uchun avval P va Q ikkita katta tub son tanlanadi. Keyin mahsulot N hisoblanadi:
Shundan so'ng f yordamchi raqami aniqlanadi:
f \u003d (P - l) (Q - 1).
Keyin d raqami tasodifiy tanlanadi< f и взаимно простое с f .
D va N raqamlari foydalanuvchining ochiq kaliti, e qiymati esa shaxsiy kalit bo'ladi.
Shunday qilib, ushbu bosqichda foydalanuvchi quyidagi jadvalda ko'rsatilgan ma'lumotlarga ega bo'lishi kerak:
B foydalanuvchisi A foydalanuvchisidan shifrlangan xabar olishni xohlaganligi sababli, B foydalanuvchisi o'zining ochiq kalitini (d, N) A foydalanuvchiga yuborishi kerak, endi P va Q raqamlari kerak emas, lekin ularni hech kimga aytib bo'lmaydi; eng yaxshi narsa ularni umuman unutishdir.
Bu kalit tayyorlash bosqichini yakunlaydi va ma'lumotlaringizni shifrlash uchun asosiy RSA protokolidan foydalanishingiz mumkin.
Topshiriq:
“ Hamma talaba ushbu algoritmda shifrlashni amalga oshirsin “
Ish . Tub bo`lgan ikkita son tanlab olamiz:
P=3; q=5;
Ish . N=p*q ni aniqlaymiz :
N=3*5=15;
Ish . So`ngra ф(15)=(p-1)(q-1)=2*4=8
Sonini topamiz va quydagicha belgilash kiritamiz e=5;
Ish . 5d=1 shart ni qonoatlantiruvchi d sonni topamiz (mod 8): demak
D=5; ya`ni 5*1 mod 8 =3
Ish . Shifrlash kerak bo`lgan ” KLJ “ ma`lumotni tashkil etuvchi xarflarni
J1, K2, L3 moslik bilan sonli ko`rinishga o`tqazib olamiz;
Ish. U holda malumot (2;3;1) ko`rinishida bo`ladi va uni {e;n}={5;15} ochiq kalit bilan
bir tomonli funktsiya bbilan shifrlaymiz:
X=2 da ShifrMatn1= 2^5(mod 15)= 2
X=3 da ShifrMatn1= 3^5(mod 15)= 2
X=1 da ShifrMatn1= 1^5(mod 15)= 1
7-Ish . DESHIFRLASH. Bu olingan shifrlangan (2,2,1) ma`lumot maxfiy
{d;n}={5;35} kalit bilan I ifoda orqali deshifrlaymiz.
Y=2 da OchiqMatn1= 2^5(mod15)= 2
Y=2 da OchiqMatn1= 2^5(mod15)=2
Y=1 da OchiqMatn1= 1^5(mod15)= 1
Do'stlaringiz bilan baham: |