AES: bu nima, simmetrik shifrlash algoritmi va qayerda qo'llaniladi

Muallif: IT Sectr Nashr etilgan: 2026-04-02 O'qish vaqti: 9 daq

AES (Advanced Encryption Standard) — bu 2001-yilda AQSh Milliy Standartlar va Texnologiyalar Instituti (NIST) tomonidan rasmiy standart sifatida qabul qilingan simmetrik blokli shifrlash algoritmidir. AES eskirgan DES o'rnini egalladi va shundan beri bank tizimlaridan tortib mobil ilovalargacha qo'llaniladigan dunyodagi eng keng tarqalgan shifrlash algoritmiga aylandi. NIST (2023) ma'lumotlariga ko'ra, AES 256 bit uzunlikdagi kalit uchun 2^256 operatsiyaga teng bardoshlikni ta'minlaydi va bu uni zamonaviy brute force hujumlariga nisbatan daxlsiz qiladi. NIST FIPS 197, 2023

Asosiy fikrlar

  • AES — sobit blok hajmi 128 bit va kalitlari 128, 192 yoki 256 bit bo'lgan simmetrik blokli shifr.
  • GCM rejimi — mobil ilovalar uchun tavsiya etiladigan, autentifikatsiyalangan shifrlashni ta'minlovchi AES ish rejimi.
  • AES-256 — maksimal bardoshlik darajasiga ega versiya, yuqori sezuvchanlikdagi ma'lumotlarni himoya qilish uchun tavsiya etiladi.
  • Apparat tezlashtirish — protsessorning AES-NI ko'rsatmalari zamonaviy qurilmalarda shifrlashni 10 GB/s gacha tezlikda bajarishga imkon beradi.
  • Android va iOS AES uchun o'rnatilgan APIlarni taqdim etadi: Android Keystore va iOS CryptoKit apparat tezlashtirishni qo'llab-quvvatlagan holda.

AES nima?

AES (Advanced Encryption Standard) — belgiyalik kriptograflar Joan Daemen va Vincent Rijmen tomonidan Rijndael nomi bilan ishlab chiqilgan simmetrik blokli shifrdir. 2001-yilda NIST besh yillik ochiq sinov va tahlildan so'ng Rijndaellni AQShning yangi shifrlash standarti tanlovi g'olibi deb topdi. AES sobit o'lchamdagi (128 bit) ma'lumot bloklari bilan ishlaydi va uchta kalit uzunligini qo'llab-quvvatlaydi: 128, 192 va 256 bit. O'zgartirish raundlari soni kalit uzunligiga bog'liq: 128-bitli kalit uchun 10, 192-bitli uchun 12 va 256-bitli kalit uchun 14 raund. Har bir raund to'rtta operatsiyani o'z ichiga oladi: SubBytes (S-box orqali baytlarning nochiziqli almashtirilishi), ShiftRows (qatorlarning tsiklik siljishi), MixColumns (ustunlarning aralashtirilishi) va AddRoundKey (raund kalitining qo'llanilishi).

AES standarti tarixi

AESni ishlab chiqish 1997-yilda NIST DES o'rnini bosuvchi tanlov e'lon qilganida boshlandi, uning 56-bitli kaliti 1998-yilda Deep Crack ixtisoslashtirilgan qurilmasida 22 soatda buzilgan edi. Tanlovda turli mamlakatlardan 15 ta algoritm ishtirok etdi, jumladan Serpent (Buyuk Britaniya), Twofish (AQSh) va RC6 (AQSh). 1999-yil finaliga 5 nomzod qoldi. Rijndael barcha platformalarda (8-bitli mikrokontrollerlardan 64-bitli serverlargacha) yuqori tezlik, kriptotahlilga qarshilik va apparatda ixcham amalga oshirish kombinatsiyasi tufayli g'alaba qozondi. 2006-yildan beri AES AQSh davlat tizimlarida SECRET va TOP SECRET darajasidagi ma'lumotlarni shifrlash uchun qo'llaniladi. Bugungi kunda AES barcha asosiy protokollarga o'rnatilgan: TLS 1.2/1.3, IPsec, SSH, Wi-Fi WPA2/WPA3 va Bluetooth BR/EDR.

AES shifrlash qanday ishlaydi

AES ma'lumotlarni 128 bit (16 bayt) bloklarida qayta ishlaydi, state deb ataladigan 4x4 bayt matritsasi shaklida tashkil etilgan. Har bir shifrlash raundi birgalikda „ko‘chki“ effektini yaratadigan deterministik o‘zgarishlar ketma-ketligini bajaradi: kirish ma'lumotlarining bir bitining o'zgarishi chiqish ma'lumotlarining taxminan 50% bitini o'zgartiradi. Bunday effekt AESni differensial va chiziqli kriptotahlilga — blokli shifrlarni buzishning asosiy usullariga — chidamli qiladi.

Jarayon AddRoundKey — boshlang'ich kalitni XOR operatsiyasi orqali statega qo'llash bilan boshlanadi. So'ngra raundlar bajariladi: SubBytes har bir state baytini S-box (almashtirish jadvali) qiymati bilan almashtiradi. ShiftRows ikkinchi qatorni 1 pozitsiyaga, uchinchisini 2 ga, to'rtinchisini 3 ga tsiklik siljitadi — bu ustunlar o'rtasida aralashtirishni ta'minlaydi. MixColumns har bir state ustunini Galois maydoni GF(2^8)dagi sobit matritsaga ko'paytirib, har bir chiqish baytining ustunning barcha to'rt kirish baytiga bog'liqligini yaratadi. AddRoundKey Key Expansion protsedurasi orqali boshlang'ich kalitdan olingan navbatdagi raund kalitini qo'llaydi. Oxirgi raund MixColumns operatsiyasining yo'qligi bilan farqlanadi. Shifrni ochish InvSubBytes, InvShiftRows, InvMixColumns va AddRoundKey teskari operatsiyalarini teskari tartibda ishlatadi. Mobil dasturchilar uchun AESning ichki tuzilishini tushunish talab qilinmaydi — platformaning o'rnatilgan APIlarini to'g'ri parametrlar bilan qanday chaqirishni bilish kifoya.

Ko'chki effekti va AESning kriptobardoshligi

AESning kriptobardoshligini ta'minlovchi asosiy xususiyat ko'chki effektidir (avalanche effect). Ochiq matn yoki kalitdagi bir bitning o'zgarishi shifr matnining taxminan 50% bitining o'zgarishiga olib keladi, bu AESni differensial va chiziqli kriptotahlilga nihoyatda chidamli qiladi. SubBytes (S-box orqali nochiziqlilik) va MixColumns (Galois maydonida ko'paytirish orqali diffuziya) operatsiyalarining birikmasi shunday matematik murakkablikni yaratadiki, shifr matnining bir qismini bilish ham kalitni to'liq qidiruvdan tezroq tiklashga imkon bermaydi. NIST tahliliga (2018) ko'ra, AES-128ga qarshi ma'lum bo'lgan eng yaxshi hujum — biclique attack — effektiv kalit uzunligini atigi 2 bitga kamaytiradi (126.2 bitgacha), bu hujumchiga amaliy ustunlik bermaydi. AES-256 uchun to'liq qidiruvdan ustun bo'lgan hech qanday amalda amalga oshiriladigan hujum mavjud emas.

AES kalit o'lchamlari va xavfsizlik darajalari

AES uchta kalit o'lchamini qo'llab-quvvatlaydi, ularning har biri ma'lum bir kriptobardoshlik darajasiga mos keladi. Kalit o'lchamini tanlash xavfsizlikka, unumdorlikka va qurilma resurslariga bo'lgan talablarga ta'sir qiladi.

Kalit o'lchamiRaundlar soniXavfsizlik darajasiQo'llanish
AES-12810128 bitTijorat ilovalari, TLS
AES-19212192 bitDavlat tizimlari (SECRET)
AES-25614256 bitTOP SECRET, moliya sektori

Amaliy qoida: mobil ilovalarda standart sifatida AES-256dan foydalaning. AES-NI qo'llab-quvvatlovchi zamonaviy qurilmalarda AES-128 va AES-256 o'rtasidagi unumdorlik farqi 10–15% dan oshmaydi, ammo xavfsizlik darajasi ikki barobar ortadi. Kvant tahliliga (Grassl et al., 2016) ko'ra, AES-128ni buzish uchun Grover algoritmi orqali 2^77 kvant operatsiyasi, AES-256 uchun esa 2^149 operatsiya kerak bo'ladi, bu AES-256ni keyingi 20–30 yil davomida kvant hujumlariga chidamli qiladi. Hatto AES-128 tijorat stsenariylarining katta qismi uchun yetarli himoyani ta'minlaydi: 128-bitli kalitni to'liq qidirish uchun Bryus Shnayer hisobiga ko'ra koinotda mavjud bo'lganidan ko'proq energiya kerak bo'ladi. Biroq, xavfsizlik standartlari (GDPR, HIPAA, PCI DSS) ko'pincha AES-256ni aniq talab qiladi, shuning uchun ishlab chiqarish loyihalarida maksimal kalit uzunligidan foydalanish tavsiya etiladi.

AES ish rejimlari

AES blokli shifr sifatida sobit o'lchamdagi bloklarni (128 bit) shifrlaydi. Ixtiyoriy uzunlikdagi ma'lumotlarni shifrlash uchun ish rejimlari (modes of operation) qo'llaniladi. Rejimni tanlash xavfsizlikka tanqidiy ta'sir qiladi: noto'g'ri rejim AESning bardoshligini bekor qilishi mumkin.

  • ECB (Electronic Codebook) — eng sodda va eng xavfli rejim. Har bir blok bir xil kalit bilan mustaqil shifrlanadi. Ochiq matnning bir xil bloklari bir xil shifr matni bloklarini beradi, bu ma'lumotlar strukturini tiklashga imkon beradi. Barcha zamonaviy xavfsizlik standartlarida foydalanish taqiqlangan. Mobil ilovalarda ECBdan HECH QACHON foydalanmang.
  • CBC (Cipher Block Chaining) — har bir oldingi shifr matni bloki keyingisi uchun boshlang'ich vektor (IV) sifatida ishlatiladi. Har bir xabar uchun tasodifiy IV talab qiladi. Noto'g'ri amalga oshirilganda padding oracle hujumlariga zaif. Fayllarni shifrlash uchun mos, ammo ma'lumotlar yaxlitligini ta'minlash uchun MAC (HMAC) talab qiladi.
  • GCM (Galois/Counter Mode) — mobil ilovalar uchun tavsiya etiladigan rejim. Autentifikatsiyalangan shifrlash (AEAD)ni ta'minlaydi: bir operatsiyada shifrlash + yaxlitlik tekshiruvi. Kalit oqimini yaratish uchun hisoblagichdan va autentifikatsiya uchun Galois maydonida ko'paytirishdan foydalanadi. GCM har bir xabar uchun noyob nonce (12 bayt) talab qiladi. NIST tomonidan tavsiya etilgan, TLS 1.2/1.3 va Android Keystoreda qo'llaniladi.
  • CCM (Counter with CBC-MAC) — CTR + CBC-MAC asosidagi muqobil AEAD rejimi. GCMdan sekinroq va parallel qayta ishlashni qo'llab-quvvatlamaydi. ZigBee va 802.11 (Wi-Fi) protokollarida qo'llaniladi. Mobil ilovalar uchun GCM afzalroq.

Mobil loyihalarda 12 bayt nonce bilan AES-256-GCMdan foydalaning. GCM bir vaqtning o'zida ikkita muammoni hal qiladi: ma'lumotlarni shifrlash va haqiqiyligini tekshirish, bu padding oracle va chosen ciphertext hujumlarining oldini oladi. Android Keystore va iOS CryptoKit qo'shimcha kriptografik primitivlarni amalga oshirishni talab qilmasdan AES-GCMni qutidan chiqqandek qo'llab-quvvatlaydi. GCM bilan ishlaganda bir xil kalit bilan nonceni hech qachon takrorlamaslik muhim — bu shifrlash xavfsizligini butunlay yo'q qiladi. Har bir shifrlash uchun yangi tasodifiy nonce yarating va uni shifr matni bilan birga saqlang.

AESni mobil ilovalarda qo'llash

Jetpack Security yordamida Androidda AES-256-GCMning xavfsiz amalga oshirilishi misolini ko'rib chiqaylik. Quyidagi kod to'liq tsiklni namoyish etadi: MasterKey orqali AES-256 kalitini yaratish, qo'shimcha autentifikatsiyalangan ma'lumotlar (AAD) bilan satrni shifrlash va shifrini ochish.

kotlin
import androidx.security.crypto.MasterKey
import androidx.security.crypto.EncryptedSharedPreferences

val masterKey = MasterKey.Builder(context)
    .setKeyScheme(MasterKey.KeyScheme.AES256_GCM)
    .build()

val securePrefs = EncryptedSharedPreferences.create(
    context,
    "secure_prefs",
    masterKey,
    EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV,
    EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM
)

fun storeSecureData(key: String, value: String) {
    securePrefs.edit().putString(key, value).apply()
}

fun readSecureData(key: String): String? {
    return securePrefs.getString(key, null)
}

Ushbu yechimning asosiy xususiyati AES-256-GCMning ikki darajada qo'llanilishidir: kalit-qiymat juftliklarini shifrlash (PrefValueEncryptionScheme) va kalitlarning o'z nomlarini himoya qilish (PrefKeyEncryptionScheme nonce takrorlanishiga chidamli AES-256-SIVdan foydalanadi). MasterKey AES-256-GCM algoritmi yordamida yaratiladi va Trusted Execution Environmentga ega qurilmalarda apparat darajasida himoyalangan Android Keystoreda saqlanadi. Apparat qo'llab-quvvatlovi (TEE) bo'lmagan qurilmalarda kalit Bouncy Castle orqali shifrlanadi, bu SharedPreferencesda saqlashdan baribir xavfsizroqdir.

Katta hajmdagi ma'lumotlarni (masalan, tasvirlar yoki fayllar) to'g'ridan-to'g'ri shifrlash uchun AndroidX Securitydagi EncryptedFile orqali AES-256-GCMdan foydalaning. Kalitlarni eksport qilish uchun (masalan, zaxira nusxasi uchun) 100000+ iteratsiya bilan PBKDF2 orqali foydalanuvchi paroli bilan qo'shimcha shifrlashdan foydalaning.

iOSda CryptoKit orqali AES

iOSda AES bilan ishlash CryptoKit (Swift 5.0+) frameworki orqali tashkil etilgan. AES-256 kaliti SymmetricKey(size: .bits256) orqali yaratiladi va Secure Enclaveda — asosiy CPU va operatsion tizimdan izolyatsiyalangan apparat kriptoprotsessorida — saqlanadi. CryptoKit AESning ikkita amalga oshirilishini taqdim etadi: AES.GCM (tavsiya etiladi) va AES.CBC (eskirgan formatlar bilan orqaga qarab muvofiqlik uchun). Shifrlash seal() metodi orqali amalga oshiriladi, u ma'lumotlarni, kalitni va nonce (12 bayt)ni qabul qiladi va shifr matni hamda autentifikatsiya tegini o'z ichiga olgan AES.GCM.SealedBox strukturasini qaytaradi. Shifrni ochish — open() orqali. Apple to'g'ridan-to'g'ri CommonCryptodan foydalanishni qat'iyan tavsiya etmaydi: CryptoKit avtomatik ravishda optimal parametrlarni tanlaydi, side-channel hujumlaridan himoya qiladi va Apple Silicon protsessorlarida AES-NI apparat tezlashtirishidan foydalanadi. Secure Enclavega ega qurilmalarda kalitlar hech qachon apparat modulini tark etmaydi, bu ilovaning to'liq buzilgan taqdirda ham ularning o'g'irlanishini imkonsiz qiladi. Kalitni seriyalash uchun withUnsafeBytes metodi, so'ngra kSecAttrAccessible = kSecAttrAccessibleWhenUnlockedThisDeviceOnly atributi bilan SecItemAdd orqali Keychainda saqlash qo'llaniladi.

Tez-tez beriladigan savollar

AES oddiy so'zlar bilan nima?

AES maxfiy kalit yordamida o'qiladigan ma'lumotlarni o'qilmaydigan baytlar to'plamiga aylantiradigan algoritmdir. Xuddi shu kalit ma'lumotlarni asl holatiga qaytarish uchun kerak. AES shunchalik ishonchliki, u AQSh hukumatining maxfiy hujjatlarini shifrlash uchun qo'llaniladi.

AES-128 AES-256dan nimasi bilan farqlanadi?

AES-128 128 bit uzunlikdagi kalitdan foydalanadi va 10 ta shifrlash raundini bajaradi. AES-256 256-bitli kalit va 14 raunddan foydalanadi, bu uni buzishni 2^128 marta qiyinlashtiradi. Mobil ilovalarda unumdorlik farqi minimal bo'lgani uchun AES-256 tavsiya etiladi.

Qaysi AES rejimi eng xavfsiz?

AES-256-GCM — eng xavfsiz va tavsiya etiladigan rejim. GCM autentifikatsiyalangan shifrlashni (shifrlash + yaxlitlik tekshiruvi) ta'minlaydi. ECB rejimidan foydalanish taqiqlangan, CBC alohida MAC talab qiladi. GCM mobil ilovalar uchun de-fakto standartdir.

AESni buzish mumkinmi?

Nazariy jihatdan AES to'liq qidiruv orqali buzilishi mumkin, ammo AES-256 uchun 2^256 urinish kerak bo'ladi — kuzatiladigan koinotdagi atomlardan ko'proq. AES-256ga amaliy hujumlar mavjud emas. Side-channel hujumlari (Spectre, Meltdown) AESni buzmaydi, balki kalitlarni xotiradan o'g'irlaydi, shuning uchun kalitlarni apparat saqlashi tanqidiy ahamiyatga ega.

Android mobil ilovasida AESdan qanday foydalanish kerak?

AndroidX Security kutubxonasidan foydalaning: KeyScheme.AES256_GCM bilan MasterKey.Builder Android Keystoreda himoyalangan kalit yaratadi, EncryptedSharedPreferences esa barcha ma'lumotlarni AES-256-GCM orqali avtomatik shifrlaydi. Hech qanday qo'lda kriptografiya — API standart sifatida xavfsiz, dasturchi xatolari xatarsiz.

Xulosa

  • AES — 2001-yilda NIST tomonidan standartlashtirilgan eng keng tarqalgan va sinovdan o'tgan simmetrik shifrlash algoritmi.
  • AES-256 keyingi 20–30 yil davomida kvant hujumlariga qarshi zaxira bilan maksimal bardoshlik darajasini ta'minlaydi.
  • GCM rejimi — mobil ilovalar uchun yagona tavsiya etiladigan rejim: bir operatsiyada shifrlash + autentifikatsiya.
  • Android Keystore va iOS Secure Enclave — AES kalitlarini ilovadan izolyatsiya qiluvchi apparat omborlari.
  • Jetpack Security (Android) va CryptoKit (iOS) qo'lda kriptografiyasiz AES-256-GCMning xavfsiz amalga oshirilishini taqdim etadi.
  • GCM uchun Nonce (IV) har bir shifrlash uchun noyob bo'lishi kerak — takrorlash xavfsizlikni butunlay yo'q qiladi.
  • Tavsiya: barcha maxfiy ma'lumotlar uchun Androidda EncryptedSharedPreferences va iOSda CryptoKit orqali AES-256-GCMdan foydalaning.

Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz

IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.

Loyihani muhokama qilish

Shuningdek o'qing