AES: bu nədir, simmetrik şifrələmə alqoritmi və harada tətbiq olunur

Müəllif: IT Sectr Dərc olunub: 2026-04-02 Oxuma vaxtı: 9 dəq

AES (Advanced Encryption Standard) — bu 2001-ci ildə ABŞ Milli Standartlar və Texnologiyalar İnstitutu (NIST) tərəfindən rəsmi standart olaraq qəbul edilmiş simmetrik bloklu şifrələmə alqoritmidir. AES köhnəlmiş DES-i əvəz etdi və o vaxtdan bəri bank sistemlərindən mobil tətbiqlərə qədər istifadə olunan dünyanın ən geniş yayılmış şifrələmə alqoritminə çevrildi. NIST (2023) məlumatlarına görə, AES 256 bit uzunluğunda açar üçün 2^256 əməliyyata ekvivalent davamlılıq təmin edir və bu onu müasir brute force hücumlarına qarşı toxunulmaz edir. NIST FIPS 197, 2023

Başlıca məqamlar

  • AES — sabit blok ölçüsü 128 bit və açarları 128, 192 və ya 256 bit olan simmetrik bloklu şifrədir.
  • GCM rejimi — mobil tətbiqlər üçün tövsiyə olunan, autentifikasiya olunmuş şifrələmə təmin edən AES iş rejimi.
  • AES-256 — maksimum davamlılıq səviyyəsinə malik versiya, yüksək həssaslıqlı məlumatların qorunması üçün tövsiyə olunur.
  • Avadanlıq sürətləndirilməsi — prosessorun AES-NI təlimatları müasir cihazlarda şifrələməni 10 GB/s sürətlə yerinə yetirməyə imkan verir.
  • Android və iOS AES üçün daxili API-lər təqdim edir: Android Keystore və iOS CryptoKit avadanlıq sürətləndirilməsi dəstəyi ilə.

AES nədir?

AES (Advanced Encryption Standard) — belçikali kriptoqraflar Joan Daemen və Vincent Rijmen tərəfindən Rijndael adı ilə işlənib hazırlanmış simmetrik bloklu şifrədir. 2001-ci ildə NIST beş il açıq sınaq və təhlildən sonra Rijndael-i ABŞ-ın yeni şifrələmə standartı üçün müsabiqənin qalibi seçdi. AES sabit ölçülü məlumat blokları (128 bit) ilə işləyir və üç açar uzunluğunu dəstəkləyir: 128, 192 və 256 bit. Özərünün çevrilmələrinin sayı açarın uzunluğundan asılıdır: 128-bitlik üçün 10, 192-bitlik üçün 12 və 256-bitlik açar üçün 14 raund. Hər raund dörd əməliyyatı əhatə edir: SubBytes (S-box vasitəsilə qeyri-xətti bayt dəyişməsi), ShiftRows (setirlərin tsiklik sürüşdürülməsi), MixColumns (sütunların qarışdırılması) və AddRoundKey (raund açarının tətbiqi).

AES standartının tarixi

AES-in işlənməsi 1997-ci ildə NIST-in DES-i əvəz etmək üçün müsabiqə elan etməsi ilə başladı. DES-in 56-bitlik açarı 1998-ci ildə Deep Crack adlı ixtisaslaşdırılmış cihazda 22 saata sındırılmışdı. Müsabiqədə müxtəlif ölkələrdən 15 alqoritm iştirak etdi, o cümlədən Serpent (Böyük Britaniya), Twofish (ABŞ) və RC6 (ABŞ). 1999-cu ilin finalına 5 namizəd qaldı. Rijndael bütün platformalarda (8-bitlik mikrokontrollerlərdən 64-bitlik serverlərə qədər) yüksək sürət, kriptotəhlilə qarşı davamlılıq və avadanlıqda yığcamlı tətbiq kombinasiyası sayəsində qalib gəldi. 2006-cı ildən etibarən AES ABŞ-ın dövlət sistemlərində SECRET və TOP SECRET qrifli məlumatların şifrələnməsi üçün istifadə olunur. Bu gün AES bütöv əsas protokollara daxil edilmişdir: TLS 1.2/1.3, IPsec, SSH, Wi-Fi WPA2/WPA3 və Bluetooth BR/EDR.

AES şifrələməsi necə işləyir

AES məlumatları 128 bit (16 bayt) blokları ilə emal edir, state adlanan 4x4 bayt matrisi şəklində təşkil olunur. Hər şifrələmə raundu birlikdə «lavina» effekti yaradan deterministik çevrilmələr ardıcıllığını yerinə yetirir: giriş məlumatlarının bir bitinin dəyişməsi çıxış məlumatlarının təxminən 50% bitini dəyişir. Bu effekt AES-i bloklu şifrləri sındırmağın əsas üsulları olan diferensial və xətti kriptotəhlilə qarşı davamlı edir.

Proses AddRoundKey — ilkin açarın XOR əməliyyatı vasitəsilə state-ə tətbiqi ilə başlayır. Sonra raundlar yerinə yetirilir: SubBytes hər state baytını S-box (dəyişmə cədvəli) dəyəri ilə əvəz edir. ShiftRows ikinci setiri 1 mövqe, üçüncünü 2, dördüncünü 3 mövqe tsiklik sürüşdürür — bu sütunlar arasında qarışdırmanı təmin edir. MixColumns hər state sütununu Galois sahəsi GF(2^8)-də sabit matrisə vuraraq hər çıxış baytının sütunun bütöv dörd giriş baytından asılılığını yaradır. AddRoundKey Key Expansion proseduru vasitəsilə ilkin açardan əldə edilən növbəti raund açarını tətbiq edir. Son raund MixColumns əməliyyatının olmaması ilə fərqlənir. Şifrənin açılması InvSubBytes, InvShiftRows, InvMixColumns və AddRoundKey tərs çevrilmə əməliyyatlarını tərs ardıcıllıqla istifadə edir. Mobil tətibatçılar üçün AES-in daxili strukturunu başa düşmək tələb olunmur — platformanın daxili API-lərini düzgün parametrlərlə necə çağıracağını bilmək kifayətdir.

Lavina effekti və AES-in kriptodavamlılığı

AES-in kriptodavamlılığını təmin edən əsas xüsusiyyət lavina effektidir (avalanche effect). Açıq mətndə və ya açarda bir bitin dəyişməsi şifrə mətninin təxminən 50% bitinin dəyişməsinə gətirib çıxarır ki, bu da AES-i diferensial və xətti kriptotəhlilə qarşı son dərəcə davamlı edir. SubBytes (S-box vasitəsilə qeyri-xəttilik) və MixColumns (Galois sahəsində vurma vasitəsilə diffuziya) əməliyyatlarının kombinasiyası elə bir riyazi mürəkkəblik yaradır ki, şifrə mətninin hissəsini bilmək belə açarı tam axtarışdan daha sürətli bərpa etməyə imkan vermir. NIST təhlilinə (2018) görə, AES-128-ə qarşı məlum olan ən yaxşı hücum — biclique attack — effektiv açar uzunluğunu cəmi 2 bit azaldır (126.2 bitə qədər), bu da hücumçuya praktiki üstünlük vermir. AES-256 üçün tam axtarışdan üstün olan heç bir praktiki olaraq həyata keçirilə bilən hücum mövcud deyil.

AES açar ölçüləri və təhlükəsizlik səviyyələri

AES üç açar ölçüsü dəstəkləyir, hər biri müəyyən kriptodavamlılıq səviyyəsinə uyğun gəlir. Açar ölçüsünün seçimi təhlükəsizliyə, məhsuldarlığa və cihaz resurslarına olan tələblərə təsir edir.

Açar ölçüsüRaundların sayıTəhlükəsizlik səviyyəsiTətbiq
AES-12810128 bitKommersiya tətbiqləri, TLS
AES-19212192 bitDövlət sistemləri (SECRET)
AES-25614256 bitTOP SECRET, maliyyə sektoru

Praktik qayda: mobil tətbiqlərdə standart olaraq AES-256-dan istifadə edin. AES-NI dəstəyi olan müasir cihazlarda AES-128 və AES-256 arasında məhsuldarlıq fərqi 10–15%-dən çox deyil, lakin təhlükəsizlik səviyyəsi iki dəfə artır. Kvant təhlilinə (Grassl et al., 2016) görə, AES-128-i sındırmaq üçün Grover alqoritmi vasitəsilə 2^77 kvant əməliyyatı, AES-256 üçün isə 2^149 əməliyyat tələb olunur ki, bu da AES-256-nı növbəti 20–30 il ərzində kvant hücumlarına qarşı davamlı edir. Hətta AES-128 kommersiya ssenarilərinin böyük əksəriyyəti üçün kifayət qədor qoruma təmin edir: Bruce Schneier-in hesablamasına görə, 128-bitlik açarın tam axtarışı üçün kainatda mövcud olandan daha çox enerji tələb olunur. Bununla belə, təhlükəsizlik standartları (GDPR, HIPAA, PCI DSS) çox vaxt açıqşə AES-256 tələb edir, buna görə istehsal layihələrində maksimum açar uzunluğundan istifadə etmək tövsiyə olunur.

AES iş rejimləri

AES bloklu şifrə kimi sabit ölçülü blokları (128 bit) şifrələyir. İxtiyari uzunluqlu məlumatların şifrələnməsi üçün iş rejimləri (modes of operation) istifadə olunur. Rejimin seçimi təhlükəsizliyə kritik təsir edir: səhv rejim AES-in davamlılığını puça çıxara bilər.

  • ECB (Electronic Codebook) — ən sadə və ən təhlükəsiz rejim. Hər blok eyni açarla müstəqil şifrələnir. Açıq mətnin eyni blokları eyni şifrə mətni blokları verir və bu məlumat strukturunu bərpa etməyə imkan verir. Bütöv müasir təhlükəsizlik standartlarında istifadəsi qadağandır. Mobil tətbiqlərdə HEÇ VAXT ECB-dən istifadə etməyin.
  • CBC (Cipher Block Chaining) — hər əvvəlki şifrə mətni bloku növbətisi üçün başlatma vektoru (IV) kimi istifadə olunur. Hər mesaj üçün təsadüfi IV tələb edir. Səhv tətbiqdə padding oracle hücumlarına qarşı həssasdır. Faylların şifrələnməsi üçün uyğundur, lakin məlumatların bütövlüyü üçün MAC (HMAC) tələb edir.
  • GCM (Galois/Counter Mode) — mobil tətbiqlər üçün tövsiyə olunan rejim. Bir əməliyyatda autentifikasiya olunmuş şifrələmə (AEAD) təmin edir: şifrələmə + bütövlük yoxlaması. Açar axınının yaradılması üçün sayıcıdan və autentifikasiya üçün Galois sahəsində vurmadan istifadə edir. GCM hər mesaj üçün unikal nonce (12 bayt) tələb edir. NIST tərəfindən tövsiyə olunur, TLS 1.2/1.3 və Android Keystore-da istifadə olunur.
  • CCM (Counter with CBC-MAC) — CTR + CBC-MAC əsasında alternativ AEAD rejimi. GCM-dən yavaşdır və paralel emalı dəstəkləmir. ZigBee və 802.11 (Wi-Fi) protokollarında istifadə olunur. Mobil tətbiqlər üçün GCM üstünlük təşkil edir.

Mobil layihələrdə 12 bayt nonce ilə AES-256-GCM istifadə edin. GCM eyni anda iki problemi həll edir: məlumatların şifrələnməsi və autentifikasiyası, padding oracle və chosen ciphertext hücumlarının qarşısını alır. Android Keystore və iOS CryptoKit əlavə kriptoqrafik primitivlərin tətbiqinə ehtiyac olmadan AES-GCM-ni qutudan çıxan kimi dəstəkləyir. GCM ilə işləyərkən eyni açarla nonce-ni təkrarlamamaq vacibdir — bu şifrələmənin təhlükəsizliyini tamamilə məhv edir. Hər şifrələmə üçün yeni təsadüfi nonce yaradın və onu şifrə mətni ilə birlikdə saxlayın.

AES-in mobil tətbiqlərdə tətbiqi

Jetpack Security istifadə edərək Android-də AES-256-GCM-nin təhlükəsiz tətbiqi nümunəsini nəzərdən keçirək. Aşağıdakı kod tam dövranı nümayiş etdirir: MasterKey vasitəsilə AES-256 açarının yaradılması, əlavə autentifikasiya olunmuş məlumatlarla (AAD) sətrin şifrələnməsi və şifrəsinin açılması.

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)
}

Bu həllin əsas xüsusiyyəti AES-256-GCM-nin iki səviyyədə istifadə edilməsidir: açar-dəyər cütlərinin şifrələnməsi (PrefValueEncryptionScheme) və açarların adlarının qorunması (PrefKeyEncryptionScheme nonce təkrarlanmasına davamlı AES-256-SIV istifadə edir). MasterKey AES-256-GCM alqoritmi ilə yaradılır və Trusted Execution Environment ilə cihazlarda avadanlıq səviyyəsində qorunan Android Keystore-da saxlanılır. Avadanlıq dəstəyi (TEE) olmayan cihazlarda açar Bouncy Castle vasitəsilə şifrələnir ki, bu da SharedPreferences-da saxlamaqdan daha təhlükəsizdir.

Böyük həcmli məlumatların (məsələn, şəkillər və ya fayllar) birbaşa şifrələnməsi üçün AndroidX Security-dən EncryptedFile vasitəsilə AES-256-GCM istifadə edin. Açarların ixracı üçün (məsələn, ehtiyat nüsxə üçün) 100000+ iterasiya ilə PBKDF2 vasitəsilə istifadəçi şifrəsi ilə əlavə şifrələmədən istifadə edin.

iOS-da CryptoKit vasitəsilə AES

iOS-da AES ilə iş CryptoKit (Swift 5.0+) çərçivəsi vasitəsilə təşkil olunur. AES-256 açarı SymmetricKey(size: .bits256) vasitəsilə yaradılır və Secure Enclave-də — əsas CPU və əməliyyat sistemindən təcrid olunmuş avadanlıq kriptoprosessorunda saxlanılır. CryptoKit AES-in iki tətbiqini təqdim edir: AES.GCM (tövsiyə olunan) və AES.CBC (köhnəlmiş formatlarla geriyə uyğunluq üçün). Şifrələmə seal() metodu vasitəsilə yerinə yetirilir, o məlumatları, açarı və nonce (12 bayt) qəbul edir və şifrə mətnini və autentifikasiya teqini ehtiva edən AES.GCM.SealedBox strukturu qaytarır. Şifrənin açılması — open() vasitəsilə. Apple birbaşa CommonCrypto-dan istifadə etməyi qətiyyənlə tövsiyə etmir: CryptoKit avtomatik olaraq optimal parametrləri seçir, side-channel hücumlarından qoruyur və Apple Silicon prosessorlarında AES-NI avadanlıq sürətləndirilməsindən istifadə edir. Secure Enclave olan cihazlarda açarlar heç vaxt avadanlıq modulunu tərk etmir və bu, tətbiqin tam kompromitasiyasında belə onların oğrulanmasını qeyri-mümkün edir. Açarın seriallaşdırılması üçün withUnsafeBytes metodu, ardından kSecAttrAccessible = kSecAttrAccessibleWhenUnlockedThisDeviceOnly atributu ilə SecItemAdd vasitəsilə Keychain-də saxlama istifadə olunur.

Tez-tez verilən suallar

AES sadə sözlərlə nədir?

AES gizli açar köməyi ilə oxunaqlı məlumatları oxunmaz bayt dəstinə çevirən alqoritmdir. Eyni açar məlumatları əsl görünüşünə qaytarmaq üçün lazımdır. AES o qədər etibarlıdır ki, ABŞ dövlətinin gizli sənədlərinin şifrələnməsi üçün istifadə olunur.

AES-128 AES-256-dan nə ilə fərqlənir?

AES-128 128 bit uzunluğunda açardan istifadə edir və 10 şifrələmə raundu yerinə yetirir. AES-256 256-bitlik açar və 14 raund istifadə edir ki, bu da onu sındırmağı 2^128 dəfə çətinləşdirir. Mobil tətbiqlərdə məhsuldarlıq fərqi minimal olduğundan AES-256 tövsiyə olunur.

Hansı AES rejimi ən təhlükəsizdir?

AES-256-GCM — ən təhlükəsiz və tövsiyə olunan rejim. GCM autentifikasiya olunmuş şifrələmə (şifrələmə + bütövlük yoxlaması) təmin edir. ECB rejimindən istifadə qadağandır, CBC ayrıca MAC tələb edir. GCM mobil tətbiqlərdə de-fakto standartdır.

AES-i sındırmaq olarmı?

Nəzəri cəhətdən AES tam axtarışla sındırıla bilər, lakin AES-256 üçün 2^256 cəhd tələb olunur — müşahidə olunan kainatdakı atomlardan daha çox. AES-256-özər praktiki hücumlar mövcud deyil. Side-channel hücumları (Spectre, Meltdown) AES-i sındırmır, lakin açarları yaddaşdan oğururlar, buna görə avadanlıq səviyyəsində açar saxlama kritik əhəmiyyət daşıyır.

Android mobil tətbiqində AES-dən necə istifadə etməli?

AndroidX Security kitabxanasından istifadə edin: KeyScheme.AES256_GCM ilə MasterKey.Builder Android Keystore-da qorunan açar yaradır, EncryptedSharedPreferences isə bütöv məlumatları AES-256-GCM vasitəsilə avtomatik şifrələyir. Heç bir əl kriptoqrafiya tələb olunmur — API standart olaraq təhlükəsizdir, tətibatçı səhvləri riski olmadan.

Nəticə

  • AES — 2001-ci ildə NIST tərəfindən standartlaşdırılmış ən geniş yayılmış və sınaqdan keçmiş simmetrik şifrələmə alqoritmi.
  • AES-256 yaxın 20–30 il ərzində kvant hücumlarına qarşı ehtiyatla maksimum davamlılıq səviyyəsini təmin edir.
  • GCM rejimi — mobil tətbiqlər üçün yeganə tövsiyə olunan rejim: bir əməliyyatda şifrələmə + autentifikasiya.
  • Android Keystore və iOS Secure Enclave — AES açarlarını tətbiqdən təcrid edən avadanlıq anbarları.
  • Jetpack Security (Android) və CryptoKit (iOS) əl kriptoqrafiyasız AES-256-GCM təhlükəsiz tətbiqlərini təqdim edir.
  • GCM üçün Nonce (IV) hər şifrələmə üçün unikal olmalıdır — təkrarlama təhlükəsizliyi tamamilə məhv edir.
  • Tövsiyə: bütöv məxfi məlumatlar üçün Android-də EncryptedSharedPreferences və iOS-da CryptoKit vasitəsilə AES-256-GCM istifadə edin.

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun