Symmetric encryption — shifrlash va decrypt qilish uchun bitta umumiy maxfiy kalit ishlatiladigan encryption turi. Bu modelda ma’lumotni encrypt qilgan tomon va decrypt qiladigan tomon bir xil keyga ega bo‘ladi.
Symmetric encryption tez ishlagani uchun katta hajmdagi ma’lumotlarni himoyalashda keng ishlatiladi.
Vazifasi
Symmetric encryption quyidagi vazifalarni bajaradi:
- ma’lumotni tez shifrlash;
- katta fayllarni himoyalash;
- database yoki storage ma’lumotlarini shifrlash;
- tarmoq aloqasidagi session ma’lumotlarini himoyalash;
- backup fayllarni shifrlash;
- maxfiy konfiguratsiya va tokenlarni himoyalash;
- TLS session ichida tezkor encryption bajarish.
Masalan, server fayl storage’da saqlanadigan maxfiy hujjatlarni bitta symmetric key orqali shifrlashi mumkin.
Qanday ishlaydi?
Symmetric encryptionda bitta key ikki vazifani bajaradi: encrypt va decrypt.
Oddiy jarayon:
- plaintext olinadi;
- symmetric key tanlanadi;
- encryption algoritmi ishlaydi;
- ciphertext hosil bo‘ladi;
- ciphertext saqlanadi yoki yuboriladi;
- shu key yordamida ciphertext decrypt qilinadi;
- plaintext qayta tiklanadi.
Kalit maxfiy saqlanishi kerak. Uni bilgan odam ma’lumotni ochishi mumkin.
Symmetric key
Symmetric key — shifrlash va decrypt qilish uchun ishlatiladigan umumiy maxfiy kalit.
Bu key:
- sir saqlanishi kerak;
- encrypt qilishda ishlatiladi;
- decrypt qilishda ham ishlatiladi;
- noto‘g‘ri qo‘lga tushsa, ma’lumot xavf ostida qoladi.
Symmetric encryption xavfsizligi key maxfiyligiga bog‘liq.
AES
AES — Advanced Encryption Standard. U eng ko‘p ishlatiladigan symmetric encryption algoritmlaridan biridir.
AES quyidagi variantlarda uchraydi:
Bu raqamlar key uzunligini bildiradi. AES web, database, disk encryption, VPN va TLS tizimlarida ishlatiladi.
ChaCha20
ChaCha20 — symmetric stream cipher algoritmi. U tez ishlashi va ayrim qurilmalarda samaradorligi bilan tanilgan.
ChaCha20 quyidagilarda ishlatilishi mumkin:
ChaCha20 ko‘pincha Poly1305 authentication mexanizmi bilan birga ishlatiladi.
Block cipher
Block cipher — ma’lumotni belgilangan hajmdagi bloklar bilan shifrlaydigan symmetric encryption turi.
AES block cipher hisoblanadi.
Block cipher:
- ma’lumotni bloklarga ajratadi;
- har bir blokni algoritm orqali shifrlaydi;
- mode of operation bilan ishlaydi;
- katta hajmdagi ma’lumotga qo‘llanadi.
Stream cipher
Stream cipher — ma’lumotni oqim ko‘rinishida shifrlaydigan symmetric encryption turi.
Stream cipher:
- ma’lumotni ketma-ket byte yoki bitlar bo‘yicha qayta ishlaydi;
- real-time aloqa uchun mos bo‘lishi mumkin;
- ChaCha20 kabi algoritmlarda uchraydi.
Stream cipher noto‘g‘ri nonce yoki key ishlatilsa xavfli bo‘lishi mumkin.
IV va nonce
IV — Initialization Vector. Nonce — bir marta ishlatiladigan qiymat. Symmetric encryptionda ular bir xil plaintext har safar bir xil ciphertext bo‘lib qolmasligi uchun ishlatiladi.
- takrorlanmasligi kerak;
- ayrim algoritmlarda maxfiy bo‘lishi shart emas;
- encryption natijasini noyob qiladi;
- mode of operation bilan bog‘liq.
Ayniqsa stream cipherlarda nonce takrorlanishi jiddiy xavf tug‘dirishi mumkin.
Mode of operation
Block cipher algoritmlar ma’lumotni qanday qayta ishlashini mode of operation belgilaydi.
Keng uchraydigan mode’lar:
- CBC;
- GCM;
- CTR;
- ECB.
ECB xavfsiz hisoblanmaydi, chunki bir xil plaintext bloklar bir xil ciphertext bloklarga aylanishi mumkin. GCM authenticated encryption imkonini beradi.
Authenticated encryption
Authenticated encryption — ma’lumot maxfiyligi bilan birga yaxlitligini ham tekshiradigan encryption modeli.
U quyidagilarni ta’minlaydi:
- ma’lumot shifrlangan bo‘ladi;
- ma’lumot o‘zgartirilmaganini tekshiradi;
- noto‘g‘ri ciphertext rad qilinadi;
- encryption va authentication birga ishlaydi.
AES-GCM authenticated encryptionga misol bo‘la oladi.
Asymmetric encryption bilan farqi
Symmetric va asymmetric encryption farqli kalit modeliga ega.
- symmetric encryption bitta key ishlatadi;
- asymmetric encryption public/private key juftligini ishlatadi;
- symmetric encryption tezroq;
- asymmetric encryption key exchange va digital signatureda muhim;
- symmetric encryption katta ma’lumot uchun qulay;
- asymmetric encryption ko‘pincha symmetric key almashish uchun ishlatiladi.
TLS kabi protokollarda ikkala model birga ishlatiladi.
Key exchange muammosi
Symmetric encryptionda asosiy muammo — keyni xavfsiz almashish. Agar ikki tomon oldindan umumiy keyga ega bo‘lmasa, keyni qanday xavfsiz yetkazish masalasi paydo bo‘ladi.
Bu muammo uchun:
- asymmetric encryption;
- Diffie-Hellman key exchange;
- TLS handshake;
- key management tizimlari ishlatiladi.
Dasturlashdagi o‘rni
Symmetric encryption katta hajmdagi ma’lumotlarni tez shifrlash uchun ishlatiladi. U storage, database, backup, TLS session, VPN va secure messaging tizimlarida muhim o‘rin tutadi.
Bog‘liq tushunchalar
Encryption, Decryption, AES, ChaCha20, Key, IV, Nonce, Ciphertext, Asymmetric encryption, TLS, Security