Ruxsatsiz shaxslar shifrlash algoritmini bilishi mumkin, lekin ular maxfiy ma'lumotlarning kichik qismini bilishmaydi - bu xabarni jo'natuvchi va oluvchi uchun bir xil bo'lgan kalit; Misollar: DES, 3DES, AES, Blowfish, Twofish, GOST 28147-89
Assimetrik shifrlash:
Ruxsatsiz shaxslar shifrlash algoritmini va, ehtimol, ochiq kalitni bilishi mumkin, lekin faqat qabul qiluvchiga ma'lum bo'lgan shaxsiy kalit noma'lum. Ochiq kalitli kriptografik tizimlar hozirda turli tarmoq protokollarida, xususan, TLS protokollarida va undan oldingi SSL (HTTPS asosidagi), shuningdek, SSH, PGP, S / MIME va boshqalar rus standartida assimetrik shifrlash - GOSTda keng qo'llaniladi.
Hozirgi vaqtda RSA ochiq kalitiga asoslangan assimetrik shifrlash (Rivest, Shamir va Aldeman - algoritm yaratuvchilari) axborot xavfsizligi bozorining aksariyat mahsulotlari tomonidan qo'llaniladi.
Hozirgi vaqtda RSA ochiq kalitiga asoslangan assimetrik shifrlash (Rivest, Shamir va Aldeman - algoritm yaratuvchilari) axborot xavfsizligi bozorining aksariyat mahsulotlari tomonidan qo'llaniladi.
Keling, RSA algoritmini amaliy nuqtai nazardan ko'rib chiqaylik.
Birinchidan, siz umumiy va shaxsiy kalitlarni yaratishingiz kerak:
1.P va q ning ikkita katta tubini oling.
2. n ni q ga (p = p * q) ko'paytirish natijasida aniqlaylik.
3. d deb ataydigan tasodifiy sonni tanlaymiz. Bu raqam (p-1) * (q-1) ko'payishi natijasida nisbatan oddiy bo'lishi kerak (1dan boshqa umumiy bo'luvchi yo'q).
5. Quyidagi e sonini aniqlaylik (e * d) mod ((p-1) * (q-1)) = 1.
Keling, e va n raqamlarini ochiq kalit, d va n raqamlarini sir deb ataymiz.
Keling, e va n raqamlarini ochiq kalit, d va n raqamlarini sir deb ataymiz.
Ma'lumotni {e, n} ochiq kaliti yordamida shifrlash uchun sizga quyidagilar kerak:
shifrlangan matnni bloklarga bo'ling, ularning har biri M (i) = 0,1,2 ..., n-1 (ya'ni faqat n-1gacha) raqam sifatida ifodalanishi mumkin.
C (i) = (M (I) ^ e) mod n formulasi bo'yicha M (i) raqamlar ketma -ketligi deb hisoblangan matnni shifrlang.
Bu ma'lumotlarni {d, n} maxfiy kaliti yordamida shifrini ochish uchun siz quyidagi hisoblarni bajarishingiz kerak: M (i) = (C (i) ^ d) mod n. Natijada asl matnni ifodalovchi M (i) raqamlar to'plami bo'ladi.
Quyidagi misolda RSA shifrlash algoritmi aniq ko'rsatilgan:
Quyidagi misolda RSA shifrlash algoritmi aniq ko'rsatilgan:
Keling, RSA algoritmi yordamida "CAB" xabarini shifrlaymiz va shifrini ochamiz. Oddiylik uchun kichik raqamlarni olaylik - bu bizning hisoblarimizni qisqartiradi.
Keling, p = 3 va q = 11 ni tanlaylik.
Keling, n = 3 * 11 = 33 ni aniqlaylik.
Toping (p-1) * (q-1) = 20. Shuning uchun, d, masalan, 3 ga teng bo'ladi: (d = 3).
Keling, quyidagi formula bo'yicha e raqamini tanlaylik: (e * 3) mod 20 = 1. Shunday qilib, e teng bo'ladi, masalan, 7: (e = 7).
Keling, shifrlangan xabarni 0 dan 32 gacha bo'lgan raqamlar ketma-ketligi sifatida tasavvur qilaylik (esda tutingki, u n-1 bilan tugaydi). A = 1, B = 2, C = 3 harfi.
Keling, xabarni ochiq kalit
Keling, xabarni ochiq kalit
yordamida shifrlaylik {7.33}
C1 = (3 ^ 7) mod 33 = 2187 mod 33 = 9;
C2 = (1 ^ 7) mod 33 = 1 mod 33 = 1;
C3 = (2 ^ 7) mod 33 = 128 mod 33 = 29;
Keling, maxfiy kalit yordamida ma'lumotlarni shifrini ochaylik {3.33}.
Keling, maxfiy kalit yordamida ma'lumotlarni shifrini ochaylik {3.33}.