Bosh sahifa Wiki AES

AES

AES — Advanced Encryption Standard nomli, 128 bitlik bloklar ustida ishlaydigan simmetrik block cipher. U Rijndael algoritmining 128 bit blokli variantiga asoslangan va 2001-yilda NIST tomonidan FIPS 197 sifatida standartlashtirilgan. AES 128, 192 yoki 256 bitlik kalit bilan ishlaydi. Algoritmning o‘zi faqat bitta blokni kalit ostida almashtiradi; katta va o‘zgaruvchan uzunlikdagi ma’lumot uchun mode of operation zarur.

Raund tuzilishi

128 bit blok 4×4 byte state matritsasi sifatida ko‘riladi. AES-128 10, AES-192 12, AES-256 14 raund bajaradi. Dastlab AddRoundKey, keyingi raundlarda SubBytes, ShiftRows, MixColumns va AddRoundKey amallari ishlatiladi; yakuniy raundda MixColumns yo‘q.

SubBytes har byteni algebraik S-box orqali almashtiradi. ShiftRows qatorlarni siljitib byte pozitsiyalarini tarqatadi. MixColumns har ustunga GF(2^8) ustida chiziqli transformatsiya qo‘llaydi. AddRoundKey state’ni key schedule hosil qilgan round key bilan XOR qiladi. Decryption teskari transformatsiyalar yordamida bajariladi.

Rejimlar

ECB har blokni mustaqil shifrlaydi va bir xil plaintext bloklari bir xil ciphertext beradi. Tasvir yoki strukturali data naqshlari ko‘rinib qolishi sababli ECB umumiy ma’lumot shifrlash uchun mos emas. CBC tasodifiy IV va chaining ishlatadi, ammo yaxlitlik bermaydi va padding oracle xavfi sabab alohida to‘g‘ri MAC hamda murakkab tekshiruv talab qiladi.

CTR AESdan stream cipherga o‘xshash key stream hosil qiladi. Ayni kalit bilan nonce-counter juftligi takrorlansa, plaintextlar orasidagi munosabat ochiladi. GCM CTR shifrlashni GHASH autentifikatsiyasi bilan birlashtirib, AEAD beradi. Zamonaviy protokolda AES-GCM yoki AES-GCM-SIV kabi tasdiqlangan sxema ko‘pincha xom CBCdan afzal.

AES-GCM

AES-GCM key, odatda 96 bit nonce, plaintext va optional associated data oladi. Natija ciphertext va authentication tagdan iborat. Associated data shifrlanmaydi, lekin tag bilan himoyalanadi. Decryptionda tag tekshirilmasa plaintext qabul qilinmaydi.

Nonce ayni key bilan takrorlanishi GCM uchun jiddiy buzilishdir: confidentiality va authentication zaiflashishi mumkin. Random nonce katta hajmda collision ehtimolini hisobga oladi; counter nonce restart va distributed writerlar orasida qat’iy noyob boshqariladi. Key rotation nonce maydoni tugashidan oldin bajariladi.

Kalit uzunligi

AES-128 exhaustive key searchga qarshi 128 bit darajadagi kuch beradi va amalda xavfsiz hisoblanadi. AES-256 katta key space va ayrim uzoq muddatli yoki quantum threat modelida yuqoriroq margin beradi. Grover algoritmi ideal kvant qidiruvini kvadrat ildiz darajasiga tushiradi, lekin real kvant resursi katta. Kalit uzunligi noto‘g‘ri nonce yoki key sizishini tuzatmaydi.

AES-256 key schedule AES-128dan farq qiladi va raund soni ko‘proq. “256” blok o‘lchami emas; AES blok o‘lchami doim 128 bit. Fayl hajmi blok o‘lchamidan katta bo‘lishi normal, mode uni ko‘p blokka qayta ishlaydi.

Implementatsiya

Ko‘p CPUlarda AES-NI yoki ARM cryptographic extension apparat tezlashtirish va timing side-channelga chidamliroq amallar beradi. Table-based eski implementatsiyalar cache timing orqali key haqida ma’lumot chiqarishi mumkin. Dastur AESni o‘zi yozmay, platformaning sinovdan o‘tgan kriptografik kutubxonasidan AEAD API orqali foydalanadi.

Key kriptografik random generator yoki password KDFdan olinadi va secret manager/KMSda boshqariladi. Ciphertext formatida versiya, key ID, nonce va tag saqlanadi. Xato javoblari tag, padding yoki parse xatosini tashqariga farqlab bermaydi. Test vector algoritm mosligini, property test esa nonce va round-trip siyosatini tekshiradi.

Bog‘liq tushunchalar

Block cipher, AES-GCM, Symmetric encryption, Nonce, Authentication tag, Key schedule, ChaCha20