Oqibatlar - Galstuk-babochka

Oqibatlar:
Ma'lumotlar yo'qolishi
Server buzilishi
Tashrif kamayishi
Vazifa
Har bir talaba ixtiyoriy holatni galstuk-babochka usuli orqali taxlilni amalga oshirsin.
Tahdidlar ro'yxati:
Tahdid
|
Oqibatlari
|
Tahdidlarni yuzaga kelish ehtimolligi
|
Risk o’lchovi
|
Tahdidlarni Ranjirlash
|
TahdidA
|
Texnik nosozlik
|
5
|
2
|
10
|
TahdidB
|
Mos kelmaydigan DTni o’rnatish
|
4
|
4
|
15
|
TahdidC
|
Virus tushishi
|
3
|
3
|
9
|
Ushbu jadvalda har bir tahdidning oqibatlari, yuzaga kelish ehtimolligi, risk o'lchovi va tahdidlarni ranjirlash keltirilgan.
Vazifani bajarish uchun ixtiyoriy holatni tanlab, yuqoridagi bosqichlarga amal qilishingiz kerak.
Bu usulni qo'llash sizga tahlil qilishda, xavflarni baholashda va profilaktika choralarini ko'rishda yordam beradi.
Sezar usulu:
Matn: Turdiyev Manguberdi Kalit: 3
Sezar shifri yordamida har bir harfni 3 ta pozitsiyaga siljitamiz:
T -> U
u -> d
r -> a
d -> p
i -> d
y -> w
e -> r
v -> y
M -> V
a -> d
n -> u
g -> g
u-> r
b-> u
e->q
r->u
d->i
i->t
Shifrlangan matn: "UdapdwrVdugur"
Demak, "Turdiyev Manguberdi " matnining Sezar usulida (kalit = 3) shifrlangani "UdapdwrVdugurquit" bo'ladi.
Vernam usuli:
Bosqichlar:
Matn va kalitning har bir belgisini ASCII kodiga aylantiramiz.
Har bir matn belgisi va kalit belgisi orasida XOR (^) amalini bajarib, yangi ASCII kod olamiz.
XOR amalidan keyin olingan ASCII kodlarini qaytib belgilarga aylantiramiz.
Bu jarayon quyidagicha bo'ladi:
Matn belgilari
|
T
|
u
|
r
|
d
|
i
|
y
|
e
|
v
|
M
|
a
|
n
|
g
|
u
|
b
|
|
|
|
|
|
ASCII kodlari
|
82
|
97
|
120
|
109
|
97
|
116
|
111
|
118
|
83
|
97
|
114
|
100
|
111
|
114
|
|
|
|
|
|
Kalit belgilari
|
k
|
u
|
c
|
h
|
l
|
i
|
k
|
a
|
l
|
i
|
t
|
s
|
e
|
|
|
|
|
|
|
ASCII kodlari
|
107
|
117
|
99
|
104
|
108
|
105
|
107
|
97
|
108
|
105
|
116
|
115
|
101
|
|
|
|
|
|
|
XOR natija
|
57
|
20
|
27
|
5
|
13
|
29
|
4
|
23
|
59
|
8
|
6
|
23
|
10
|
|
|
|
|
|
|
Yangi belgilar
|
9
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Shifrlangan matn: 9 ;
Demak, "Turdiyev Manguberdi " matnining Vernam usulida (kalit: "kuchlikalitse") shifrlangani "9 ;" bo'ladi.
Eslatma: Vernam shifrida matn aniq bir kalit bilan shifrlanganda har safar farqli natijalar olinadi. Bu kalit va matn uzunliklari bir xil bo'lishi zarur. Yuqorida ko'rsatilgan misolda kalit uzunligi matn uzunligidan qisqa bo'lgani uchun natija to'liq emas. Kalit uzunligini matn uzunligiga mos qilib uzaytirish kerak. Bu misolda kalit etarlicha uzun emas, shuning uchun bir xil uzunlikda kalit qo'llanishi kerak.
RSA usuli:
Ommaviy kalit (N, e) yordamida matnni shifrlaymiz.
Misol uchun, RaxmatovSardor matnining ASCII kodlarini ishlatamiz:
Turdiyev Manguberdi ni butun sonlar ko'rinishiga aylantiramiz. Har bir harfni o'z ASCII kodiga almashtiramiz va ketma-ket yozamiz. Bu yerda har bir harfni o'z o'rnida alohida shifrlaymiz, chunki RSA algoritmida butun bloklarni shifrlash qiyin.
Har bir harfni shifrlash:
T (82) → 82^17 mod 3233 = 82^17 mod 3233
u (97) → 97^17 mod 3233
r(120) → 120^17 mod 3233
d(109) → 109^17 mod 3233
i (97) → 97^17 mod 3233
y(116) → 116^17 mod 3233
e (111) → 111^17 mod 3233
v (118) → 118^17 mod 3233
M (83) → 83^17 mod 3233
a (97) → 97^17 mod 3233
n (114) → 114^17 mod 3233
g(100) → 100^17 mod 3233
u (111) → 111^17 mod 3233
b(114) → 114^17 mod 3233
3. Shifrdan yechish
Maxfiy kalit (N, d) yordamida shifrdan yechamiz.
Har bir shifrlangan qiymatni yechish:
C (shifrlangan qiymat) → C^d mod N
Misol uchun:
82^17 mod 3233 ning shifrdan yechilgan qiymatini (M) olish uchun: C^d mod N = (82^2753 mod 3233)
Mana shunday qilib har bir harfni shifrlash va shifrdan yechish mumkin.
Bu yerda RSA algoritmi kodida amalga oshiriladi, lekin matn ko'rinishida shunday bo'ladi:
Matnni ASCII kodlar ketma-ketligiga aylantiramiz.
Har bir ASCII kodni ommaviy kalit yordamida shifrlaymiz.
Shifrlangan kodlarni o'z o'rnida saqlaymiz.
Shifrdan yechish uchun maxfiy kalitdan foydalanamiz.
Kod orqali shifrdan yechaylik:
def gcd(a, b):
while b != 0:
a, b = b, a % b
return a
def multiplicative_inverse(e, phi):
d, x1, x2, y1 = 0, 0, 1, 1
temp_phi = phi
while e > 0:
temp1, temp2 = temp_phi // e, temp_phi - (temp_phi // e) * e
temp_phi, e = e, temp2
x = x2- temp1* x1
y = d - temp1 * y1
x2, x1 = x1, x
d, y1 = y1, y
if temp_phi == 1:
return d + phi
def rsa_keygen():
p = 61
q = 53
n = p * q
phi = (p - 1) * (q - 1)
e = 17
g = gcd(e, phi)
d = multiplicative_inverse(e, phi)
return ((e, n), (d, n))
def rsa_encrypt(text, public_key):
e, n = public_key
cipher = [(ord(char) ** e) % n for char in text]
return cipher
def rsa_decrypt(cipher, private_key):
d, n = private_key
text = [chr((char ** d) % n) for char in cipher]
return ''.join(text)
public_key, private_key = rsa_keygen()
text = "Turdiyev Manguberdi "
cipher = rsa_encrypt(text, public_key)
print(f"Shifrlangan matn: {cipher}")
decrypted_text = rsa_decrypt(cipher, private_key)
print(f"Shifrdan yechilgan matn: {decrypted_text}")
|