Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Zanimljivo
  • Intel AES-NI šta je ovo u BIOS-u? Korištenje novih Intel® AES uputstava za šifriranje u Androidu.

Intel AES-NI šta je ovo u BIOS-u? Korištenje novih Intel® AES uputstava za šifriranje u Androidu.

Mi prevodimo... Prevedi kineski (pojednostavljeni) kineski (tradicionalni) engleski francuski njemački talijanski portugalski ruski španjolski turski

Nažalost, trenutno nismo u mogućnosti prevesti ove informacije - pokušajte ponovo kasnije.

Uvod

Ovaj članak opisuje podršku za nove Intel® AES standardne upute za šifriranje (Intel® AES-NI) u Androidu: šta je to, kako ga koristiti i kako mjeriti performanse. Model upotrebe i primjeri su također opisani, zajedno s dva scenarija šifriranja koji demonstriraju korištenje instrukcija. Intel AES-NI. Iskusni programeri mogu preskočiti prva četiri dijela ovog članka i prijeći direktno na posljednji dio kako bi se upoznali sa slučajevima korištenja. Manje iskusni programeri možda žele pročitati cijeli članak.

Nove upute za AES šifriranje (Intel AES-NI)

Intel AES-NI instrukcije su predložene u martu 2008. kao proširenje skupa instrukcija x86 arhitekture za Intel i AMD mikroprocesore. Svrha ovog skupa instrukcija je povećanje brzine aplikacija koje izvode AES enkripciju i dešifriranje podataka.

Intel AES-NI uputstva su navedena u tabeli 1.

Tabela 1. Intel® AES-NI uputstva

Provjera podrške za Intel AES-NI u Androidu

Možete provjeriti da li je Intel AES-NI podržan na određenoj platformi koristeći CPUID; provjerite vrijednost CPUID.01H:ECX.AESNI = 1. Također možete koristiti funkciju check_for_aes_instructions iz uzorka biblioteke Intel AES-NI.

Korištenje Intel AES-NI u Androidu

Možete koristiti Intel AES-NI u Androidu Različiti putevi:

Da kompajlirate izvornu biblioteku/aplikaciju za x86 na Android OS, morate pripremiti samostalni lanac alata pomoću naredbe make-standalone-toolchain.sh u Android NDK:

$NDK_PATH/build/tools/make-standalone-toolchain.sh –install-dir=$STANDALONE_TOOCHAIN_PATH –toolchain=x86-4.8 –platform=android-14 –ndk-dir=$NDK_PATH export PATH=$PATH:$STANDALONE_PATH_TOOCHAIN

Korištenje Build Library

Biblioteka je u folderu intel_aes_lib. Takođe se može preuzeti sa . Koristite GCC verziju 4.4 ili noviju, odnosno NDK verzija mora biti novija od NDK v3. (Ovdje koristimo android-ndk-r9 za testiranje.)

makefile/shell Ne postoji skripta za pravljenje verzija za Android. Da biste kompajlirali, možete promijeniti datoteku mk_lnx86.sh. Glavna promjena je korištenje $STANDALONE_TOOCHAIN_PATH/bin/i686-linux-android-gcc umjesto GCC po defaultu. Također biste trebali koristiti parametre prolaz –D__ANDROID__.

Izvezi CC=”$STANDALONE_TOOLCHAIN_PATH/bin/i686-linux-android-gcc –D__ANDROID__ --sysroot=$STANDALONE_TOOLCHAIN_PATH/sysroot -I$STANDALONE_TOOLCHAIN_PATH/sysroot/include”

Kada se kompajlira, možete prenijeti binarni izvršni program na Android i testirati ga. Također možete koristiti izvor direktno u vašim aplikacijama ili koristite generiranu binarnu biblioteku u NDK-u.

Korištenje OpenSSL-a

Intel AES-NI instrukcije koriste mnoge biblioteke, kao npr crypto++ polarni SSL IPP OpenSSL i drugi. (Koristimo OpenSSL kao referenca - Intel AES-NI instrukcije podržane u OpenSSL-u od eksperimentalne verzije 1.0).

Od Androida 4.3, OpenSSL je prisutan u AOSP-u Intel podrška AES-NI, tako da samo trebate kompajlirati kod sa potrebnu konfiguraciju. Također ga možete preuzeti sa službene web stranice i sami sastaviti, a zatim koristiti datoteku *.a/*.so direktno u vašem projektu.

1) Preuzmi - OpenSSL možete preuzeti sa http://www.openssl.org/source/. Trenutno u Androidu 4.2 openssl-1.0.1c iu Androidu 4.4 - openssl-1.0.1e.Morate koristiti istu verziju OpenSSL-a kao ciljni sistem.

(2) Kompilacija - pokrenite sljedeću naredbu u konzoli:

Cd $OPENSSL_SRC_PATH export CC=”$STANDALONE_TOOCHAIN_PATH/bin/i686-linux-android-gcc –mtune=atome –march=atom –sysroot=$STANDALONE_TOOCHAIN_PATH/sysroot” izvoz AR=and $STANDALONi/Sysroot export RANLIB=$STANDALONE_TOOCHAIN_PATH/bin/i686-linux-android-ranlib ./Configure android-x86 –DOPENSSL_IA32_SSE2 –DAES_ASM –DVPAES_ASM make

Nakon ovoga fajl libcrypto.aće se pojaviti u folderu najvišeg nivoa. Za korištenje fajla *.so unesite “ Konfigurirajte zajednički android-x86 ***”.

(3) Koristite OpenSSL preko NDK u Android projektu: kreirajte Android projekat, deklarirajte funkciju koja se odnosi na OPENSSL kao native, a zatim koristite kod u jni/*.c.

Nakon toga morate kopirati datoteke *.a/*.so i datoteku zaglavlja projekta.

Mkdir jni/pre-kompilirano/ mkdir jni/include cp $OPENSSL_PATH/libcrypto.a jni/pre-kompilirano cp –L -rf $OPENSSL_PATH/include/openssl jni/include

Zatim dodajte sljedeći red da fajl jni/Android.mk:

... LOCAL_MODULE:= statički LOCAL_SRC_FILES:= pre-compiled/libcrypto.a ... LOCAL_C_INCLUDES:= uključuje LOCAL_STATIC_LIBRARRIES:= statički –lcrypto ...

Zatim možete koristiti funkcije koje se nalaze u OpenSSL-u da implementirate svoju funkcionalnost šifriranje/dešifriranje/SSL. Da biste koristili Intel AES-NI, koristite funkciju serije EVP_* kao što je prikazano ispod. Ovo će automatski omogućiti Intel AES-NI hardverskom modulu da izvrši AES šifriranje i dešifriranje ako ga CPU podržava.

//declare EVP_CIPHER_CTX en, de; //init EVP_CIPHER_CTX_init(&en); EVP_CIPHER_CTX_init(&de); EVP_DecryptInit_ex(&de, NULL, NULL, NULL, NULL); //dešifriranje & encrpyt EVP_DecryptUpdate(&de, plaintext, &bytes_written, ciphertext, len); EVP_EncryptUpdate(&en, ciphertext, &cipher_len, plaintext, len); //počistiti EVP_CIPHER_CTX_cleanup(&en); EVP_CIPHER_CTX_cleanup(&de);

Zatim koristite ndk-build za kompilaciju.

Ndk-build APP_ABI=x86

(4) Korištenje API-ja Java Crypto: in Android Najtraženiji sadržaji za daunloudovanje OpenSSL provajder pod nazivom “ AndroidOpenSSL” podržava Intel AES-NI, tako da možete koristiti javax.crypto.Cipher direktno.

Šifra šifra = Cipher.getInstance(AES_ALGORITHM, “AndroidOpenSSL”); cipher.init(*);

Mjerenje performansi

mjerenje performansi

Alati za testiranje

(1) Koristite alate OPENSSL. Tim openssl kao dio OpenSSL-a može obavljati mnoge zadatke. Može se koristiti za mjerenje performansi korištenjem openssl brzina. Default openssl((kada je napravljen sa parametrom AES_ASM) će automatski koristiti Intel AES-NI hardversko ubrzanje. Također možete jednostavno onemogućiti hardversko ubrzanje postavljanjem jednog varijabla okruženja: OPENSSL_ia32cap vrijednost ~0x200000200000000

Openssl brzina –evp aes-256-cbc OPENSSL_ia32cap=~0x200000200000000 openssl brzina –evp aes-256-cbc

(2) Koristite domaći program.

Slika 1. Program za testiranje koji smo kreirali.

(3) Intel® Mobile Platform Monitor (Intel® MPM) je alat za praćenje potrošnje energije detaljne informacije CPU/GPU/Status napajanja, itd. Za više informacija, posjetite:

Slika 2. Intel program® MPM

zaustavite profilisanje, a zatim sačuvajte podatke o rezultatu. Rezultati se prikazuju kao tekstualni sažetak ili kao grafikon.

(4) Koristite aplikaciju za testiranje iz Intel AES-NI biblioteke, pogledajte . Može omogućite ili onemogućite AESNI u BIOS-u u nekim testnim projektima poput aes_gladman_subset, da demonstrira rezultate performansi.

Rezultati testa

Pokrenuli smo [insert program] na tabletu koji pokreće Bay Trail Android kontrola 4.4. Naši rezultati testiranja pokazuju 4 do 11 puta bolje performanse enkripcije i dešifriranja, kao i preko 40% uštede energije kada se koristi Intel AES-NI.

Detaljni podaci testiranja

Hardver: BAYTRAIL_FFRD8 PR1, OS: ANDROID 4.4
MODE
(CBC/256)
veličina fajla Intel® AES-NI je omogućen Intel® AES-NI je onemogućen
Vrijeme (s) bez I/OVrijeme (s) sa I/OVrijeme (s) bez I/OVrijeme (s) sa I/O
Enkripcija351M2.89 15.4 14.59 25.61
56M0.48 2.35 2.63 4.55
Dekodiranje351M1.76 38.144 19.78 28.51
56M0.29 1.9 3.16 4.62

    Nema I/O iz gornje tabele

    Enkripcija: Skoro 5x poboljšanje performansi, slično OPENSSL-u
    Transkript: skoro 11 puta povećanje produktivnosti

    Sa I/O iz gornje tabele

    Enkripcija: skoro 1,9x poboljšanje performansi
    Transkript: skoro 2x povećanje produktivnosti

Intel AES-NI slučajevi upotrebe

AES algoritam se široko koristi u različitim scenarijima sigurnosti podataka, kao što je šifriranje prijenosa podataka preko mreže, enkripcija cijelih diskova ili odvojeni fajlovi. U svim ovim scenarijima, Intel AES-NI se može koristiti ako je podržan neophodna uputstva centralni procesor. Na sl. Slika 6 prikazuje tipičan prijenos podataka u mreži; Svi podaci koji se prenose između korisnika i servera su šifrovani nakon autentifikacije.

Slika 6. Tipičan mrežni prijenos podataka

Još jedan tipičan slučaj upotrebe je šifriranje cijelih diskova ili šifriranje pojedinačnih datoteka kada korisnici trebaju spremiti podatke lokalno skladište. Na sl. Slika 7 prikazuje cijeli tok posla od korisnika do spremišta:

Slika 7. Cijeli tok rada enkripcije

Intel AES-NI hardverske upute pružaju i visoke performanse i uštedu energije, što je posebno važno za mobilne uređaje kao što su pametni telefoni i tableti. Kontrola mobilnih uređaja(MDM) i upravljanje mobilnim sadržajem (MCM) - izuzetno važni faktori za korporativna sigurnosna rješenja. Ovaj odeljak opisuje Intel AES-NI u kombinaciji sa MDM i MCM.

Dobar primjer MDM-a je kada administratori šalju poruke ili komande krajnjim korisnicima, ali svi osjetljivi podaci koji se šalju moraju biti šifrirani. Softversko rješenje AES brzo troši bateriju kada se podaci često prenose, ali Intelovo AES-NI rješenje koristi hardverska rješenja koja štede energiju i poboljšavaju performanse. Na sl. Slika 8 prikazuje tipičan scenario u kojem administratori šalju komande korisnicima koristeći uključeno šifriranje Zasnovan na Intelu AES-NI. Tok posla uključuje šifriranje naredbi prije njihovog slanja i dešifriranje podataka za izvršavanje naredbi na uređajima krajnjih korisnika.

Slika 8. MDM razmjena podataka korištenjem AES kriptografije

MCM primjer: Korisnici pristupaju osjetljivim podacima kao što su dokumenti, slike, video zapisi, itd korporativni serveri. Takvi prenijeti podaci trebaju pouzdana zaštita. Svi podaci moraju biti šifrirani prije slanja krajnjim korisnicima; Na uređajima korisnika podaci također moraju biti pohranjeni u šifriranom formatu. Na sl. Slika 9 prikazuje tipičan MCM radni tok od početka do kraja prilikom čitanja i pohranjivanja podataka. krajnji korisnik. Intel AES-NI instrukcije podržavaju 256-bitnu enkripciju, što ga čini odličnim hardverskim sigurnosnim rješenjem korporativnom nivou i da poštuje zahtjeve povjerljivosti.

Slika 9. MCM Workflow

Za aktiviranje hardversko ubrzanje Intel AES-NI programeri treba da koriste NDK programiranje. Na sl. Slika 10 prikazuje tipične odnose između nivoa Android aplikacije, modul Android enkripcija i Intel AES-NI C/C++ modul. Java Native Interface (JNI) se koristi za povezivanje C/C++ funkcija za Java funkcije. Ako vam je programiranje u NDK novost, pogledajte NDK reference za više informacija.

Slika 10. Tipični odnosi između nivoa

Zaključak

Ovaj članak opisuje kako koristiti Intel AES-NI upute za ubrzavanje šifriranja Android uređaji. Pokazuje kako programeri mogu koristiti asemblerski kod, biblioteke trećih strana i Intel NDK da ubrzaju aplikacije i uštede energiju. Opisana su dva tipična scenarija enkripcije i dešifriranja podataka kako bi se pomoglo programerima da koriste Intel AES-NI u svojim aplikacijama.

Za više informacija o Intel® alatima, Android programeri mogu posjetiti sljedeće stranice: Intel® Developer Zone za Android.

O autorima

Zhang Li je inženjer za razvoj aplikacija u odjelu za odnose s programerima Intel® grupe za softver i rješenja (SSG) kao dio tima za omogućavanje mobilnih uređaja. Bavi se podrškom Android aplikacija.

Yanqing Wang je inženjer za razvoj aplikacija u odjelu za odnose s programerima Intel® grupe za softver i rješenja (SSG) kao dio tima za omogućavanje mobilnih uređaja. Njegove odgovornosti uključuju upravljivost i sigurnost poslovnih rješenja. Ima status crnog pojasa Intel® Developer Zone (IDZ).

Referentni materijali

Intel, Intel logo, Atom, Celeron, Core, Pentium i Xeon su zaštitni znakovi Intel Corporation u Sjedinjenim Državama i drugim zemljama.
*Drugi nazivi i zaštitni znakovi mogu biti vlasništvo trećih strana.
© Intel Corporation, 2014. Sva prava zadržana.

Detalji Objavljeno: 25.04.2016 13:10

Sastavili smo Windows binarne datoteke Wolf0-ovog optimiziranog HodlMiner-a s podrškom za AES-NI skup instrukcija ( izvor). Ovo izdanje rudara je brže od standardnog HodlMiner-a za procesore koji podržavaju AES-NI instrukcije. Imajte na umu da će kompajlirane binarne datoteke dostupne na linku ispod raditi samo na 64-bitnom Windowsu i samo na sistemima sa AMD i Intel procesorima koji su kompatibilni sa AES-NI skupom instrukcija. Ako vaš CPU ne podržava AES-NI, koristite standardna verzija HodlMiner-a.

Ako niste sigurni da li vaš procesor podržava skup instrukcija AES-NI, ovo možete lako provjeriti koristeći besplatni uslužni program CPU-Z. Podrška za AES-NI skup instrukcija na Intelovim procesorima počinje s prvim modelima Westmere mikroarhitekture, koji su počeli proizvoditi početkom 2010. godine. Dok je AES-NI podrška za AMD procesore došla sa prvim modelima AMD Buldožer Porodični 15h, koji je pušten u prodaju krajem 2011. To znači da ako je vaš procesor objavljen nakon 2011. godine, najvjerovatnije podržava AES-NI. Imajte na umu da nisu svi budžetski procesori podržavaju AES-NI instrukcije. Spisak svih Intel procesora sa AES-NI podrškom možete pronaći na ovaj link.

Arhiva, koja se može preuzeti sa donje veze, sadrži različite izvršne datoteke koje su kompajlirane za različite CPU arhitekture sa AES-NI podrškom. Trebao bi naći .exe datoteku koja je prikladna za vaš procesor i jednostavno je preimenujte u hodlminer.exe. Izvršne datoteke bdver1, bdver2 i bdver3 dizajniran za AMD CPU Bulldozer arhitekturu ili noviju kasnije verzije AMD CPU arhitekture. Preostale binarne datoteke su namijenjene raznim Intelovim procesorima, počevši od Westmere, onda Sandy Bridge, Ivy Bridge, Haswell i kraj Broadwell. Arhitektura Silvermont za slabe Atom, Celeron, Pentium procesore, koji se koriste u SoC-ovima (Systems on a Chip) i takođe podržavaju AES-NI.

IN savremeni svet enkripcija se koristi gotovo svuda, a posebno za zaštitu važna informacija u posebnim oblastima (sektor odbrane, bankarski sektor itd.), iu sastavu kućni aparati: kompjuteri, pametni telefoni, televizori. Štaviše, opseg kriptografije se širi svake godine, a obim prenetih (pohranjenih) šifriranih podataka raste.

Istovremeno, enkripcija podataka značajno povećava računarsko opterećenje uređaja koji je implementiraju, pa ne čudi što se kriptografske operacije sve više prenose na hardverski nivo (često u obliku posebnih kriptografskih koprocesora ili kartica za proširenje). . IN poslednjih godina instrukcije za šifrovanje su takođe počele da se široko implementiraju direktno u centralne procesorske jedinice najveći brendovi za kućne računare i mobilne uređaje.

Korištenje enkripcije

Kako elektronika i automatizacija prodiru u sva područja naših života, povećava se potreba za zaštitom prenesenih podataka i ograničavanjem pristupa ključnim komponentama. Gotovo svi moderni računari, tableti i pametni telefoni, ruteri, "pametni" Aparati, automobili itd. aktivno koriste enkripciju. Na primjer, koriste se kriptografski algoritmi:

  • kada se povezujete na većinu vrsta bežičnih mreža za prenos podataka (Wi-Fi, Bluetooth, itd.);
  • u mobilnim komunikacijama;
  • mobilni OS (iOS, Android) šifriraju podatke na uređajima radi zaštite od neovlaštenog pristupa;
  • sigurno skladištenje lozinki zahtijeva određene kriptografske funkcije(tj. većina uređaja s mogućnošću postavljanja lozinke koristi šifriranje);
  • bankovne kartice, bankomati, terminali za plaćanje uvijek su kriptografski zaštićeni;
  • Kriptovalute se zasnivaju na principima enkripcije.

Sve više organizacija i ljudi su svjesni važnosti korištenja enkripcije za zaštitu podataka. Tako je zajedničkim naporima mnogih kompanija, a posebno Googlea, udio šifrovanog HTTP prometa porastao sa 30% početkom 2014. na 70% početkom 2018. godine.

U isto vrijeme, svaka enkripcija je matematički složena transformacija podataka i zahtijeva dodatne računarske resurse iz hardvera. Ovisno o vašem scenariju korištenja podataka, implementacija enkripcije može sveukupno smanjiti propusnost(volumen obrađenih podataka u jedinici vremena) nekoliko puta.

Algoritmi šifriranja

Postoji veliki broj kriptografski algoritmi. Bilo bi tehnički teško podržati ih sve.

Neki algoritmi se, međutim, koriste znatno češće od drugih. To je zbog činjenice da se mnogi algoritmi smatraju zastarjelim ili nedovoljno sigurnim, drugi se ispostavljaju kao nepotrebno složeni računski, a postoje i drugi razlozi.

Među blok simetričnim algoritmima, prije svega treba istaknuti [ (Napredni standard šifriranja). Ovaj algoritam je na konkursu izabran za američki nacionalni standard. AES je glavni algoritam simetričnog šifriranja u mnogim protokolima i tehnologijama (TLS, Wi-Fi, Bluetooth (od verzije 4.0), GPG, IPsec, Bitlocker (šifriranje datoteka Windows sistemi), LUKS (Linux šifriranje sistema datoteka), Miscrosoft Office, mnogi programi za arhiviranje (WinZip, 7-zip) itd.).

Kriptografski algoritmi heširanja su također izuzetno široko korišteni. Zbog činjenice da je MD5 algoritam prepoznat kao nesiguran, najčešći algoritmi danas su SHA serije, prvenstveno SHA-1 i SHA-2, koji su također američki FIPS standardi. Na kraju će ih zamijeniti algoritam SHA-3, koji je 2012. godine postao pobjednik odgovarajućeg takmičenja.

Među algoritmima sa javni ključ vrijedni pažnje su RSA, DSA i Diffe-Hellman.

U procesorima najčešće x86 arhitekture (proizvođači Intel i AMD) poslednje generacije Implementirana posebna uputstva za ubrzanje proračuna koristeći AES i SHA-1, SHA-2 (256 bit) algoritame.

Intel uputstva

AES

Intel je 2008. godine predložio nove komande za x86 arhitekturu, koje su dodale hardversku podršku za simetrični AES algoritam šifrovanja. On ovog trenutka AES je jedan od najpopularnijih algoritama blok šifriranja. Stoga bi implementacija hardvera trebala dovesti do povećanja performansi programa koji koriste ovaj algoritam šifriranja.

Skup novih instrukcija naziva se AES-NI (AES New Instructions) i sastoji se od četiri instrukcije za AES enkripciju

  • AESENC- Izvršite jedan krug AES enkripcije,
  • AESENCLAST- Izvršite završni krug AES enkripcije i dešifriranja
  • AESDEC- Izvršite jednu rundu AES dešifriranja,
  • AESDECLAST- Izvršite završni krug AES dešifriranja

i još dva uputstva za rad sa AES ključem:

  • AESIMC- Inverzne miks kolone,
  • AESKEYGENASSIST- Doprinesite generiranju AES okruglog ključa.

Kao i ranije, instrukcije su SIMD, odnosno, Single Instruction Multiple Data tip. Podržana su sva tri ključa AES moda (sa dužinama ključa od 128, 192 i 256 bita sa 10, 12 i 14 prolaza zamjene i permutacije).

Korištenje ovih uputa nekoliko puta ubrzava operacije šifriranja.

SHA

  • Westmere:
    • Westmere-EP (Xeon 56xx)
  • Clarkdale (osim Core i3, Pentium i Celeron)
  • Arrandale (osim Celerona, Pentiuma, Core i3, Core i5-4XXM)
  • Sandy Bridge:
    • svi desktop osim Pentiuma, Celerona, Core i3
    • mobilni: samo Core i7 i Core i5
  • Ivy Bridge (samo i5, i7, Xeon i i3-2115C)
  • Haswell (svi osim i3-4000m, Pentium i Celeron)
  • Broadwell (svi osim Pentiuma i Celerona)
  • Silvermont/Airmont (svi osim Bay Trail-D i Bay Trail-M)
  • Goldmont
  • Skylake
  • Kaby Lake
  • Coffee Lake
  • Buldožer
  • Piledriver
  • Parni valjak
  • Bager
  • Jaguar

SHA instrukcije podržavaju Intel procesori počevši od Goldmont arhitekture (2016), AMD procesori - počevši od Zen arhitekture (2017).

Ostali procesori

Procesori opće namjene druge arhitekture i dobavljači takođe često uključuju podršku za posebne kriptografske instrukcije.

Dakle, podrška za AES algoritam je implementirana u procesore:

ARM arhitektura takođe ima skup instrukcija za SHA algoritme:

  • SHA1C - SHA1 hash update akcelerator, odaberite
  • SHA1H - SHA1 fiksna rotacija
  • SHA1M - SHA1 hash update akcelerator, većina
  • SHA1P - SHA1 hash update akcelerator, paritet
  • SHA1SU0 - SHA1 akcelerator ažuriranja rasporeda, prvi dio
  • SHA1SU1 - SHA1 akcelerator ažuriranja rasporeda, drugi dio
  • SHA256H - SHA256 hash update akcelerator
  • SHA256H2 - SHA256 hash update akcelerator, gornji dio
  • SHA256SU0 - SHA256 akcelerator ažuriranja rasporeda, prvi dio
  • SHA256SU1 - SHA256 akcelerator ažuriranja rasporeda, drugi dio

32nm Intel Westmere dodaje podršku za AES ubrzanje: da li je to zaista potrebno?

Danas je sigurnost važna tema – ali je smatraju važnom uglavnom samo profesionalci. Međutim, ako sigurnost postane marketinški element ili se pretvori u karakteristiku performansi, tada kompanije poput Intela počinju da je aktivno promoviraju. AES ili Advanced Encryption Standard je certificiran od strane američke Uprave za nacionalnu sigurnost (NSA) i vlade SAD-a, kao i mnogih drugih tijela. 32nm dual-socket generacija Intel procesora obećava značajna poboljšanja u performansama AES enkripcije i dešifriranja zahvaljujući novim uputstvima (samo dual-core Core i5 procesori). Odlučili smo procijeniti prednosti u pravi zivot i uporedio dvojezgarni Core i5-661 procesor sa novim AES instrukcijama sa četvorojezgarnim Core i7-870 procesorom, koji nema podršku za ubrzanje enkripcije.

Kliknite na sliku za uvećanje.

Enkripcija se zapravo koristi mnogo intenzivnije nego što korisnici obično primjećuju. Sve počinje sa stranicama na Internetu koje sadrže povjerljive informacije, kao što su lični podaci korisnika, ili sa stranica koje imaju povjerljiva informacija o transakcijama: svi koriste TLS ili SSL enkripciju. Usluge kao što su VoIP, instant messengeri i Email takođe se mogu braniti na isti način. Virtuelne privatne mreže (VPN, virtuelne Privatna mreža) je još jedan primjer koji je vjerovatno vrlo popularan. Šifrovanje takođe utiče na osetljiva područja kao što su elektronska plaćanja. Međutim, TLS/SSL su kriptografski komunikacioni protokoli, a AES, koji Intel ubrzava počevši od nove 32nm generacije procesora, je standard za šifrovanje opšte namene. Može se koristiti za šifriranje pojedinačnih datoteka, spremnika podataka i arhiva, ili čak šifriranje cijelih particija i diskova - bilo da se radi o USB ključu ili sistemskom. HDD. AES se može izvršiti u softveru, ali postoje i hardverski ubrzani proizvodi, budući da su enkripcija i dešifriranje prilično kompjuterski teret. Rešenja kao što su TrueCrypt ili Microsoft BitLocker, koji je deo Windows Vista ili Windows 7 Ultimate, sposobni su za šifriranje čitavih particija u hodu.

Da li mislite da na vašem sistemu postoje osjetljivi podaci ili ne, ovisi o tome šta mislite pod tim podacima, kao i o vašem ličnom nivou udobnosti. Osim toga, sigurnost uvijek podrazumijeva ispravnu strategiju i tačnost u čuvanju povjerljivih podataka. Informacije kao što su podaci o vašem pasošu ili broj i datum isteka nikada ne biste trebali ostavljati bez nadzora bankovna kartica. Ili čak i PIN koda vašeg telefona.

Jedno je sigurno: bolje je biti oprezan i razborit nego obrnuto – pogotovo jer to ne zahtijeva mnogo truda. Intelov pristup dodavanju AES ubrzanja ne pokriva sve aplikacije i scenarije enkripcije, već samo najpopularniji standard—i sve ćete to dobiti besplatno na svim budućim 32nm desktop procesorima za mainstream ili više. Ali da li AES nova uputstva zaista pružaju značajan napredak u performansama u tipičnim scenarijima enkripcije ili je to više marketinški napor? Hajde da pogledamo.

Šta je AES?

AES je skraćenica za "Advanced Encryption Standard" - to je najpopularniji standard simetrično šifrovanje u IT svijetu. Standard radi sa 128-bitnim blokovima i podržava 128-, 192- ili 256-bitne ključeve (AES-128, AES-192 i AES-256). Mnogi uslužni programi za šifrovanje, uključujući TrueCrypt, podržavali su AES algoritam na samom početku njegovog postojanja. Ali najveći faktor u uspjehu AES-a, naravno, je njegovo usvajanje od strane američke vlade 2002. godine, a usvojen je kao standard za zaštitu povjerljivih podataka 2003. godine.

Šifrirajte podatke koristeći AES

AES enkripcija se zasniva na supstitucijskom sistemu sa permutacijom, odnosno nizom matematičke operacije da kreirate značajno modifikovani niz podataka (šifrovan). Početna informacija je tekst, a ključ je odgovoran za izvođenje matematičkih operacija. Operacije mogu biti jednostavne kao pomicanje bita ili XOR, ili složenije. Jedan prolaz se lako dešifruje, dakle sve savremeni algoritmi enkripcija je izgrađena na nekoliko prolaza. U slučaju AES-a, ovo je 10, 12 ili 14 prolaza za AES-128, AES-192 ili AES-256. Inače, AES ključevi prolaze kroz istu proceduru kao i korisnički podaci, odnosno promjenjivi su okrugli ključ.

Proces radi sa 4x4 nizovima pojedinačnih bajtova, koji se nazivaju i kutijama: S-boksovi se koriste za zamjene, P-boksovi se koriste za permutacije. Zamjene i permutacije se izvode u različitim fazama: zamjene rade unutar takozvanih kutija, a permutacije mijenjaju informacije između kutija. S-box radi na složenom principu, to jest, čak i ako se promijeni jedan ulazni bit, to će utjecati na nekoliko izlaznih bita, odnosno svojstva svakog izlaznog bita zavise od svakog ulaznog bita.

Korišćenje višestrukih prolaza obezbeđuje dobar nivo enkripcije, ali mora zadovoljiti kriterijume difuzije i konfuzije. Rasipanje se izvodi kroz kaskadnu kombinaciju S-box i P-box transformacija: kada se promijeni samo jedan bit u ulaznom tekstu, S-box će modificirati izlaz od nekoliko bitova, a P-box će pseudo-slučajno propagirati ovo efekat na više S-kutija. Kada kažemo da minimalna promjena inputa proizvodi maksimalnu promjenu outputa, govorimo o efektu snježne grude.

Koliko je bezbedna AES enkripcija?

U posljednje vrijeme bilo je mnogo diskusija o takozvanim hakovima koji zaobilaze potrebu za pokretanjem napredne brute force pretrage kako bi se pronašao ispravan ključ za dešifriranje. O tehnologijama kao što su XSL napadi i napadi povezanim ključem se raspravlja prilično intenzivno - ali sa malim uspehom. Jedini način da se razbije AES enkripcija je takozvani napad sa strane kanala. Da bi se izvršio, napad se mora dogoditi samo na host sistemu na kojem je AES enkripcija, a istovremeno morate pronaći način da dobijete informacije o sinhronizaciji keša. U tom slučaju možete pratiti broj računarskih ciklusa dok se proces šifriranja ne završi.

Naravno, sve ovo nije tako lako, jer vam je potreban pristup računaru, i to sasvim pun pristup za analizu prava šifriranja i izvršavanja koda. Sada vam je vjerovatno jasno zašto „rupe“ u sigurnosnom sistemu koje omogućavaju napadaču da stekne takva prava, čak i ako zvuče potpuno apsurdno, moraju biti zatvorene što je prije moguće. Ali nemojmo se gubiti u mislima: ako dobijete pristup ciljnom računaru, onda je preuzimanje AES ključa pitanje vremena, odnosno više nije dugotrajan zadatak za superračunare, koji zahtijeva ogromne računarske resurse.

AES unutar Intela

U ovom trenutku, CPU integrisane AES instrukcije počinju da imaju smisla – bez obzira na potencijalne prednosti performansi. Sa sigurnosne perspektive, procesor može obraditi AES instrukcije u inkapsuliranom obliku, što znači da ne zahtijeva nijednu od tabela pretraživanja potrebne za napad sa strane kanala.



SADRŽAJ

Ljudi, poklon svima. Govorimo o takvoj stvari kao što je Intel AES-NI, to se može naći u BIOS-u, ali šta je to? Saznaćemo. I tako sam pronašao službenu Intelovu web stranicu, gdje piše da je Intel AES-NI određeni skup naredbi za šifriranje koji nadopunjuje algoritam Advanced Encryption Standard (AES) i ubrzava proces enkripcije podataka u tom procesu. Intel Xeon(ovo su serverski) i Intel Core (obični kućni).

Intel AES-NI uključuje sedam novih komandi i omogućava vam da zaštitite tipove podataka za više visoki nivo sigurnost. U principu, sve je jasno, Intel AES-NI je neka vrsta nove enkripcije, ali zašto je to potrebno? običnom čoveku? probacu da saznam...

Da, to jest, AES-NI neke aspekte AES-a izvodi na hardverskom nivou, odnosno u samom procesu. Pa, sad malo razumem. To jest, AES-NI poboljšava performanse AES-a i ubrzava tip. Trebalo bi da se šifruje brže, jedino što ne razumem je šta je šifrovano? Disk u Windows-u je šifrovan, ili WinRAR arhiva hoće li se brže stvarati? Ovo je ono što još ne mogu razumjeti. Ali našao sam pojašnjenje po ovom pitanju, pogledajte:

To je BitLocker enkripcija Trebalo bi biti malo brže. Ali što se tiče transakcija na Internetu, ne razumijem ovo baš. Da li to znači da procesor može sudjelovati u šifriranju internetskih veza? Budući da je cijeli proces transakcije obično šifriran, čak se i HTTPS protokol koristi za ovo...

Ukratko ljudi, mislim da sve razumem. Postoji takva stvar kao što je AES, zar ne? Šta je ovo? Ovo simetrični algoritam blok enkripcija, ukratko, igra. Ali to nije poenta. Razumijem da se AES koristi u nekim programima, je li logično? Izvoli. Ali Intel AES-NI opcija samo ubrzava AES algoritam, znate? Jer ova opcija radi na hardverskom nivou direktno u procesu.

Onda se postavlja pitanje da li se isplati uključiti Intel AES-NI da se nešto brže šifrira? Da, ispostavilo se da je to upravo tako. Također sam pročitao da programi za šifriranje diska mogu koristiti Intel AES-NI, na primjer jedan od takvih programa je PGPdisk.

Ljudi, pronašao sam vrlo zanimljivu sliku koja pokazuje prednost korištenja AES-NI, pogledajte:

Pa, zapravo razlika je primjetna...

Dakle, kakav zaključak možemo izvući? Intel AES-NI je neka vrsta stvari koja je ugrađena u sam procesor, u stvari to su nekakve instrukcije, a ove instrukcije pomažu da AES algoritam radi brže. Sam algoritam mogu koristiti različiti programi, a uz pomoć Intel AES-NI ovi programi će brže raditi svoj posao =)

Pa, ljudi, ovo je Intel AES-NI stavka u BIOS-u:

Ljudi, sada smo shvatili šta je Intel AES-NI, ali ako nešto nije u redu, nemojte to previše grditi. Sretno vam bilo i neka ste sretni!

Najbolji članci na ovu temu