Encryption — ma’lumotni maxsus algoritm va kalit yordamida o‘qib bo‘lmaydigan shaklga keltirish jarayoni. Encryption ma’lumot maxfiyligini ta’minlash uchun ishlatiladi. Shifrlangan ma’lumotni o‘qish uchun mos kalit bilan decrypt qilish kerak bo‘ladi.
Encryption kriptografiyaning asosiy tushunchalaridan biri bo‘lib, web, mobil ilova, database, tarmoq, cloud va xavfsizlik tizimlarida keng ishlatiladi.
Vazifasi
Encryption quyidagi vazifalarni bajaradi:
- ma’lumot maxfiyligini saqlash;
- tarmoq orqali uzatilayotgan ma’lumotni himoyalash;
- database’dagi maxfiy qiymatlarni yashirish;
- fayllarni ruxsatsiz o‘qishdan himoyalash;
- parol, token, kalit va shaxsiy ma’lumotlarni himoyalash;
- HTTPS va TLS kabi protokollarda secure communication yaratish;
- backup va storage xavfsizligini oshirish.
Masalan, foydalanuvchi browser orqali saytga kirganda HTTPS ma’lumotni uzatish jarayonida encryptiondan foydalanadi.
Encryption qanday ishlaydi?
Encryption ochiq ma’lumotni shifrlangan ko‘rinishga o‘tkazadi.
Asosiy jarayon:
- ochiq ma’lumot olinadi;
- encryption algoritmi tanlanadi;
- encryption key ishlatiladi;
- ciphertext hosil bo‘ladi;
- ciphertext saqlanadi yoki yuboriladi;
- kerak bo‘lganda decrypt qilinadi.
Ochiq ma’lumot plaintext, shifrlangan ma’lumot esa ciphertext deb ataladi.
Plaintext
Plaintext — encryptiondan oldingi oddiy o‘qiladigan ma’lumot.
Plaintext misollari:
Plaintext maxfiy bo‘lsa, u saqlash yoki uzatishdan oldin shifrlanishi mumkin.
Ciphertext
Ciphertext — encryptiondan keyin hosil bo‘lgan shifrlangan ma’lumot. U kalitsiz o‘qilmasligi kerak.
- oddiy matn sifatida tushunilmaydi;
- storage’da saqlanishi mumkin;
- tarmoq orqali yuborilishi mumkin;
- faqat mos kalit bilan decrypt qilinadi.
Ciphertextning maqsadi ma’lumot mazmunini yashirishdir.
Encryption key
Encryption key — ma’lumotni shifrlash va ayrim hollarda decrypt qilish uchun ishlatiladigan maxfiy qiymat.
Key quyidagilar bilan bog‘liq:
- algoritm ishlashi;
- ma’lumot maxfiyligi;
- decrypt qilish imkoniyati;
- key management;
- access control.
Kalit yo‘qolsa, shifrlangan ma’lumotni qayta ochish imkonsiz bo‘lishi mumkin.
Symmetric encryption
Symmetric encryption — shifrlash va decrypt qilish uchun bitta umumiy kalit ishlatiladigan model.
Xususiyatlari:
- tez ishlaydi;
- katta hajmdagi ma’lumotlar uchun mos;
- bitta kalit maxfiy saqlanishi kerak;
- kalitni xavfsiz almashish muhim.
AES symmetric encryption algoritmlariga misol bo‘ladi.
Asymmetric encryption
Asymmetric encryption — public key va private key juftligiga asoslangan model.
Xususiyatlari:
- public key ochiq bo‘lishi mumkin;
- private key maxfiy saqlanadi;
- public key bilan shifrlangan ma’lumot private key bilan ochiladi;
- secure key exchange va digital signature tizimlarida ishlatiladi.
RSA va ECC asymmetric cryptography bilan bog‘liq.
Encryption va hashing farqi
Encryption va hashing boshqa-boshqa vazifani bajaradi.
- encryption qaytariladigan jarayon;
- hash odatda qaytarilmaydigan jarayon;
- encryption ma’lumotni yashiradi;
- hash ma’lumotdan tekshiruv qiymati yaratadi;
- encryption decrypt qilish uchun kalit talab qiladi;
- hashdan asl ma’lumotni tiklab bo‘lmaydi.
Masalan, maxfiy xabar encryption qilinadi, parol esa hash qilinadi.
Encryption va encoding farqi
Encoding ma’lumot formatini o‘zgartiradi, lekin maxfiylik bermaydi.
Farqlar:
- Base64 encoding hisoblanadi;
- AES encryption hisoblanadi;
- encoding qaytarish uchun maxfiy kalit talab qilmaydi;
- encryption decrypt qilish uchun kalit talab qiladi;
- encoding xavfsizlik emas;
- encryption xavfsizlik mexanizmi hisoblanadi.
Base64 qilingan matnni har kim qayta ochishi mumkin.
TLS va HTTPS
TLS va HTTPS tarmoq orqali uzatiladigan ma’lumotni himoyalashda encryptiondan foydalanadi.
HTTPS quyidagilarni ta’minlaydi:
- browser va server o‘rtasida shifrlangan aloqa;
- ma’lumot yo‘lda o‘qilmasligi;
- server certificate orqali tekshiruv;
- session key orqali tezkor encryption.
Web ilovalarda HTTPS encryptionning eng ko‘p ko‘rinadigan shaklidir.
Database encryption
Database encryption maxfiy ma’lumotlarni database ichida yoki diskda shifrlash uchun ishlatiladi.
Shifrlanishi mumkin bo‘lgan ma’lumotlar:
Database encryption access control bilan birga ishlatiladi.
Key management
Key management — encryption keylarni yaratish, saqlash, almashtirish va himoyalash jarayoni.
Key management quyidagilarni o‘z ichiga oladi:
- key generation;
- key storage;
- key rotation;
- access control;
- key backup;
- key revocation;
- secret manager yoki KMS ishlatish.
Encryption xavfsizligi ko‘p jihatdan kalitlar qanday boshqarilishiga bog‘liq.
Dasturlashdagi o‘rni
Encryption ma’lumotni maxfiy saqlash va xavfsiz uzatish uchun ishlatiladi. U web ilova, API, database, fayl storage, cloud va tarmoq xavfsizligida muhim rol o‘ynaydi.
Bog‘liq tushunchalar
Decryption, Symmetric encryption, Asymmetric encryption, Public key, Private key, TLS, HTTPS, Hash, Key management, Security