9-MAVZU: OpenSSL kutubxonasidan foydalangan holda blokli shifrlar yordamida ma’lumotlarni shifrlash. AES-128
Ushbu algoritm AQSH davlat shifrlash stanlarti DES kriptotahlil hujumiga uchragandan so’ng ishlab chiqildi va standart sifatida qabul qilindi. Ushbu standart DES dan farqli o’laroq turli xil kalit uzunliklaridan (128,192 va 256 bit) foydalanadi. Blokli shifrlashga asoslangan bo’lib, blok uzunligi 128 bitga teng bo’lib kalitga mos ravishda (10, 12 va 14) raund davomida shifrlanadi. AES shifrlash algoritmi matematik tomondan ko’phadlar ustida amal bajarishga asoslangan bo’lib, ma’lumotlar baytlab kiritiladi. AES shifrlash algoritmi har bir raundi quyidagi amallardan iborat :
1. SubBytes bosqichi. Ushbu bosqichda kiruvchi matritsa baytlari o’zgarmas S-box jadvali bo’yicha almashtiriladi.
2. ShiftRows qadami. Ushbu bosqichda birinchi bosqichdan chiqqan natijaviy matritsa bayotlari suriladi. Bunda 1-satr o’zgarmas, 2-satr 1 bayt chapga, 3-satr 2 bayt chapga va 4-satr 3 bayt chapga suriladi.
3. MixColumns qadami. Ushbu qadamda ShiftRows dan chiqqanmatritsa bilan o’zgarmas matritsa bayti bilan o’zaro ko’paytiriladi.
4. AddRoundKey qadami. Raundning oxirgi bosqichi sanalib, 3-bosqichdan chiqqan natija bilan kalit baytlari XOR amalida qo’shiladi.
Ushbu standart XXI asrning eng kriptobardoshli kriptografik tizimi sanalib, hozirda amaliy hujumga uchramagan. AES shifrlash algoritmi kiruvchi blokni butunlay o’zgarishi 2- raunddan so’ng yuz beradi.
Ushbu standart XXI asrning eng kriptobardoshli kriptografik tizimi sanalib, hozirda amaliy hujumga uchramagan.
AES shifrlash algoritmi kiruvchi blokni butunlay o’zgarishi 2-raunddan so’ng yuz beradi.
10-MAVZU: Vigenere shifrlash algoritmi va uning dasturiy ta’minoti.
Vigenere- kalit so'zdan foydalangan holda polialfabetik shifr.
m musbat butun son bo’lsin . Barcha kalit k=(k1 , k2 ,….. km) uchun biz quyidagilarni aniqlaymiz:
Ek=(x1, x2, …..xm)=(x1+k1,x2+k2,x3+k3,……..xm+km)
Dk=(y1,y2,y3,…ym)=(y1-k1,y2-k2,y3-k3,………ym-km)
barcha operatsiyalar Z26 da amalga oshiriladi.
Misol: Xm=JALOLBEK KM=TEST
Xm = (4, 9, 25, 15, 18, 2, 5, 11)
Km = (20,5,19,20,20,5,19,20)
JALOLBEK
TESTTEST
Em ni hisoblaydigan bo’lsak, Xm ning mos qiymatlariga Km ning mos qiymatlarini qo’shib 26 ga bo’lganda qoladigan qoldiqni yozamiz: 24, 16, 18, 9, 12, 7, 24, 5
Va bizda shifrlangan matn quyidagicha: XPRILGXE
Dastur kodi:
Vijineri shifri
def generateKey(string, key):
key = list(key)
if len(string) == len(key):
return(key)
else:
for i in range(len(string) -
len(key)):
key.append(key[i % len(key)])
return("" . join(key))
def cipherText(string, key):
cipher_text = []
for i in range(len(string)):
x = (ord(string[i]) +
ord(key[i])) % 26
x += ord('A')
cipher_text.append(chr(x))
return("" . join(cipher_text))
def originalText(cipher_text, key):
orig_text = []
for i in range(len(cipher_text)):
x = (ord(cipher_text[i]) -
ord(key[i]) + 26) % 26
x += ord('A')
orig_text.append(chr(x))
return("" . join(orig_text))
if __name__ == "__main__":
string = "JALOLBEK"
keyword = "TEST"
key = generateKey(string, keyword)
cipher_text = cipherText(string,key)
print("SHIFRLANGAN MATN :", cipher_text)
print("DASTLABKI/DESHIFRLANGAN MATN :",
originalText(cipher_text, key))
Do'stlaringiz bilan baham: |