3-amaliy topshiriq. 3- amaliy topshiriqlar
Python dasturlash tilida dastur kodi
Download 392.11 Kb.
|
AHKU fanidan 3-amaliy. EFX 303
- Bu sahifa navigatsiya:
- Dastur natijasi oynasi
Python dasturlash tilida dastur kodi:
# RSA shifrlash algoritmi def RSA_encrypt(text, public_key): # Qoidalarga ko'ra shifrlash encrypted_text = pow(text, public_key[0], public_key[1]) return encrypted_text # Umumiy qoidalar text = 6 public_key = (7, 33) # Algoritmi ishga tushirish encrypted_text = RSA_encrypt(text, public_key) print('Shifrlanmagan:', text) print('Shifrlangan:', encrypted_text) Dastur natijasi oynasi: A5/1 shifrlash algoritmiga oid misol: Familiya va Ism so‘zlarini shifrlaymiz: Ushbu oqimli shifrlash algoritmi GSM mobil aloqa tizimlarida ma’lumotni konfidensialligini ta’minlash uchun foydalaniladi. Mazkur algoritm algebraik tuzilishga ega bo’lsada, uni sodda diagramma bilan ham tasvirlash imkoniyati mavjud. A5/1 shifrlash algoritmi uchta chiziqli siljitish registrlaridan iborat bo’lib, ular mos holda 𝑋, 𝑌 va 𝑍 kabi belgilanadi. 𝑋 registr o’zida 19 bit (𝑥0, 𝑥1, …, 𝑥18), 𝑌 registr esa 22 bit (𝑦0, 𝑦1, …, 𝑦21) va 𝑍 registr esa 23 bit (𝑧0, 𝑧1, …, 𝑧22) ma’lumotni saqlaydi. Uchta registrlarning mazkur o’lchamdagi bitlarni saqlashi bejiz emas. Sababi, chiziqli siljitish registrlari o’zida jami bo’lib 64 bitni saqlaydi. Shu sababli, A5/1 shifrlash algoritmida foydalaniluvchi kalit 𝐾 ning uzunligi 64 bitga teng bo’ladi va ushbu kalit uchta registrni dastlabki to’ldirish uchun foydalaniladi. Shundan so’ng, oqimli shifrlash algoritmi talab etilgan uzunlikdagi (ochiq matn uzunligiga teng bo’lgan) ketma-ketliklarni generasiyalaydi. Ketma-ketliklarni generasiyalash tartibini o’rganishdan oldin, uchta registrlar haqida ba’zi ma’lumotlarni bilish talab etiladi. 𝑋 registr siljigan vaqtida, quyidagi amallar ketma-ketligi bajariladi: 𝑡 = 𝑥13⨁𝑥16⨁𝑥17⨁𝑥18 𝑖 = 18,17,16, … ,1 uchun 𝑥 𝑖 = 𝑥 𝑖-1 𝑥0 = 𝑡 Shunga o’xshash, 𝑌 va 𝑍 registrlar uchun ham quyidagilar bajariladi: 𝑡 = 𝑦20⨁𝑦21 𝑖 = 21,20,19, … ,1 uchun 𝑦𝑖 = 𝑦𝑖−1 𝑦0 = 𝑡 𝑡 = 𝑧7⨁𝑧20⨁𝑧21⨁𝑧22 𝑖 = 22,21,20, … ,1 uchun 𝑧𝑖 = 𝑧𝑖−1 𝑧0 = 𝑡 Berilgan uchta bit 𝑥, 𝑦 va 𝑧 uchun 𝑚aj(𝑥, 𝑦, 𝑧) funksiyasi eng ko’p bitni qaytaradi. Agar 𝑥, 𝑦 va 𝑧 bitlar 0 ga teng bo’lsa, u holda funksiya 0 ni qaytaradi, aks holda birni qaytaradi. Funksiyaga kiruvchi bitlar toq bo’lgani uchun, funksiya har doim 0 ni yoki 1 ni qaytaradi. Boshqa holatlar bo’lmaydi. A5/1 shifrida, ketma-ketlikning har bir bitini generasiyalash uchun quyidagilar bajariladi. Dastlab, 𝑚 = 𝑚aj(𝑥8, 𝑦10, 𝑧10) funksiya qiymati hisoblanadi. Shundan so’ng 𝑋, 𝑌 va 𝑍 registrlar quyidagicha sijitiladi (yoki siljitilmaydi): − agar 𝑥8 = 𝑚 ga teng bo’lsa, 𝑋 siljitiladi; − agar 𝑦10 = 𝑚 ga teng bo’lsa, 𝑌 siljitiladi; − agar 𝑧10 = 𝑚 ga teng bo’lsa, 𝑍 siljitiladi. Shundan so’ng, ketma-ketlikning bir biti 𝑠 quyidagicha generasiyalanadi va ochiq matn biti bilan XOR amali bajariladi (agar shifrlansa) yoki shifrmatn biti bilan XOR amali bajariladi (agar deshifrlansa). 𝑠 = 𝑥18⨁𝑦21⨁𝑧22 Yuqorida keltirilgan ketma-ketlikdagi amallar talab etilgunga qadar takrorlanadi (ochiq matn yoki shifrmatn uzunligiga teng). Agar biror registr siljitilsa, uning to’liq holati siljish natijasida o’zgaradi. Ketma-ketlikning bir bitini hosil qilishda uchta registrdan kamida ikkitasi siljiydi va shuning uchun yuqoridagi ketma-ketlikni davom ettirgan holda yangi bitlar ketmaketligini hosil qilish mumkin bo’ladi. A5/1 oqimli shifrlash algoritmi murakkab ko’rinsada, qurilmada amalga oshirilganida yuqori tezlik qayd etadi. Umumiy holda A5/1 oqimli shifrni 1- rasmdagi kabi ifodalash mumkin. Download 392.11 Kb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling