Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Interesant
  • Intel AES-NI ce este în BIOS? Folosind noile instrucțiuni de criptare standard Intel® AES în Android.

Intel AES-NI ce este în BIOS? Folosind noile instrucțiuni de criptare standard Intel® AES în Android.

Traducem... Traduceți Chineză simplificată Chineză tradițională Engleză Franceză Germană Italiană Portugheză Rusă Spaniolă Turcă

Din păcate, nu putem traduce aceste informații în acest moment - vă rugăm să încercați din nou mai târziu.

Introducere

Acest articol descrie suportul pentru noile instrucțiuni de criptare standard Intel® AES (Intel® AES-NI) în Android: ce este, cum se utilizează și cum se măsoară performanța. De asemenea, descrie un model de utilizare și exemple, combinate cu două scenarii de criptare, care demonstrează utilizarea instrucțiunilor Intel AES-NI. Dezvoltatorii experimentați pot sări peste primele patru părți ale acestui articol și să sară direct la ultima parte pentru a se familiariza cu cazurile de utilizare. Dezvoltatorii mai puțin experimentați ar trebui probabil să citească întregul articol.

Noi instrucțiuni de criptare AES (Intel AES-NI)

Instrucțiunile Intel AES-NI au fost propuse în martie 2008 ca o extensie a setului de instrucțiuni de arhitectură x86 pentru microprocesoarele Intel și AMD. Scopul acestui set de instrucțiuni este de a crește viteza aplicațiilor care realizează criptarea AES și decriptarea datelor.

Instrucțiunile Intel AES-NI sunt listate în Tabelul 1.

Tabelul 1. Instrucțiuni Intel® AES-NI

Se verifică compatibilitatea Intel AES-NI în Android

Puteți verifica dacă Intel AES-NI este acceptat de o anumită platformă folosind CPUID; verifica valoarea CPUID.01H: ECX.AESNI = 1... De asemenea, puteți utiliza funcția check_for_aes_instructions din biblioteca de mostre Intel AES-NI.

Folosind Intel AES-NI în Android

Există diferite moduri de a utiliza Intel AES-NI în Android:

  • scrie cod C/C++ și folosește direct codul de asamblare
  • utilizați o bibliotecă terță parte existentă, cum ar fi OpenSSL *
  • utilizați API-ul Java * Crypto de la Android Kitkat

Pentru a compila o bibliotecă/o aplicație x86 nativă pe sistemul de operare Android, trebuie să pregătiți un lanț de instrumente autonom folosind comanda make-standalone-toolchain.shîn 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_TOOCHAIN

Utilizarea bibliotecii de asamblare

Biblioteca se află în folder intel_aes_lib... De asemenea, îl puteți descărca de la. Utilizați versiunea GCC 4.4 sau o versiune ulterioară, adică versiunea NDK trebuie să fie mai nouă decât NDK v3. (Aici folosim Android-ndk-r9 pentru testare.)

makefile / shell nu există niciun script pentru construirea versiunilor Android. Pentru a compila, puteți modifica fișierul mk_lnx86.sh... Principala schimbare este utilizarea $ STANDALONE_TOOCHAIN_PATH / bin / i686-linux-android-gccîn loc de GCC implicit. Ar trebui să utilizați și parametrii trece –D__ANDROID__.

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

Odată compilat, puteți aduce executabilul binar pe Android și îl puteți testa. De asemenea, puteți utiliza codul sursă direct în aplicațiile dvs. sau puteți utiliza biblioteca binară generată în NDK.

Folosind OpenSSL

Instrucțiunile Intel AES-NI sunt folosite de multe biblioteci precum cripto ++ polar SSL IPP OpenSSL si altii. (Folosim OpenSSL Instrucțiuni Intel AES-NI acceptate de OpenSSL din versiunea experimentală 1.0 ca referință).

Începând cu Android 4.3, OpenSSL acceptă Intel AES-NI în AOSP, așa că trebuie doar să compilați codul cu configurația dorită. Alternativ, îl puteți descărca de pe site-ul oficial și îl puteți compila singur și apoi utilizați fișierul * .a / *.deci direct în proiectul dvs.

1) Descărcare - OpenSSL poate fi descărcat de la http://www.openssl.org/source/. În prezent folosește Android 4.2 openssl-1.0.1cși în Android 4.4 - openssl-1.0.1e Trebuie să utilizați aceeași versiune de OpenSSL ca și pe sistemul țintă.

(2) Compilare - Rulați următoarea comandă în consolă:

Cd $ OPENSSL_SRC_PATH export CC = ”$ STANDALONE_TOOCHAIN_PATH / bin / i686-linux-android-gcc –mtune = atome –march = atom –sysroot = $ STANDALONE_TOOCHAIN_PATH / sysroot” export ARAT = $ STANDAIN_ANDROID-gcc = $ STANDAIN_ iTRANTOO68 / iTRANTOO68 = export -linux-android-ranlib ./Configure android-x86 –DOPENSSL_IA32_SSE2 –DAES_ASM –DVPAES_ASM make

După aceea dosarul libcrypto.a apare în folderul de nivel superior. Pentru a utiliza fișierul * .asa de introduce " Configurați Android-x86 partajat ***”.

(3) Utilizați OpenSSL prin NDK în proiectul Android: create proiect Android, declară funcția asociată OPENSSL ca nativ apoi folosește codul în jni / *. c.

După aceea, trebuie să copiați fișierele * .a / *.deciși un fișier antet pentru proiect.

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

Apoi adăugați următoarea linie la fișier jni / Android.mk:

… LOCAL_MODULE: = static LOCAL_SRC_FILES: = pre-compilat / libcrypto.a… LOCAL_C_INCLUDES: = include LOCAL_STATIC_LIBRARIES: = static –lcrypto...

Apoi puteți utiliza funcțiile oferite în OpenSSL pentru a vă implementa funcțiile criptare / decriptare / SSL... Pentru a utiliza Intel AES-NI, utilizați funcția serie EVP_ * așa cum se arată mai jos. Acest lucru va folosi automat modulul hardware Intel AES-NI pentru a cripta și decripta AES dacă procesorul îl acceptă.

// declara EVP_CIPHER_CTX en, de; // init EVP_CIPHER_CTX_init (& en); EVP_CIPHER_CTX_init (& de); EVP_DecryptInit_ex (& de, NULL, NULL, NULL, NULL); // decriptează & encrpyt EVP_DecryptUpdate (& de, text simplu, & bytes_scris, ciphertext, len); EVP_EncryptUpdate (& en, ciphertext, & cipher_len, plaintext, len); // curățați EVP_CIPHER_CTX_cleanup (& en); EVP_CIPHER_CTX_cleanup (& de);

Apoi folosiți ndk-build a compila.

Ndk-build APP_ABI = x86

(4) Utilizarea API-ului Java Crypto: în Android Kitkat un furnizor OpenSSL numit „ AndroidOpenSSL”Suporta Intel AES-NI, astfel încât să puteți utiliza javax.crypto.Cipher direct.

Cipher cipher = Cipher.getInstance (AES_ALGORITHM, „AndroidOpenSSL”); cipher.init (*);

Măsurarea performanței

măsurarea performanței

Instrumente de testare

(1) Utilizați instrumente OPENSSL. Echipă openssl ca parte a OpenSSL, poate îndeplini multe sarcini. Poate fi folosit pentru a măsura performanța folosind viteza openssl... Mod implicit openssl((Când este construit cu AES_ASM) va folosi automat accelerarea hardware Intel AES-NI. De asemenea, puteți dezactiva accelerarea hardware cu ușurință setând o variabilă de mediu: Valoarea OPENSSL_ia32cap ~ 0x200000200000000

Viteză openssl –evp aes-256-cbc OPENSSL_ia32cap = ~ 0x200000200000000 viteză openssl –evp aes-256-cbc

(2) Utilizați un program de casă.

Poza 1. Programul de testare pe care l-am creat.

(3) Intel® Mobile Platform Monitor (Intel® MPM) este un instrument de monitorizare a puterii care oferă informații detaliate despre starea CPU/GPU/putere și multe altele. Pentru mai multe informații, consultați

Figura 2. Programul Intel® MPM

opriți crearea profilului, apoi salvați datele rezultatelor. Rezultatele sunt afișate ca un rezumat text sau ca un grafic.

(4) Utilizați aplicația de testare din biblioteca Intel AES-NI, vezi Poate sa activați sau dezactivați AESNIîn BIOS în unele proiecte de testare, cum ar fi aes_gladman_subset pentru a demonstra rezultatele de performanță.

Rezultatele testului

Am rulat [specificați programul] pe o tabletă Bay Trail care rulează Android 4.4. Rezultatele testelor noastre arată performanțe de criptare și decriptare de 4-11 ori mai bune și economii de energie de peste 40% cu Intel AES-NI.

Date de testare detaliate

Hardware: BAYTRAIL_FFRD8 PR1, OS: ANDROID 4.4
MOD
(CBC / 256)
mărime fișier Intel® AES-NI inclus Intel® AES-NI dezactivat
Timp(e) fără I/OTimp(e) cu I/OTimp(e) fără I/OTimp(e) cu I/O
Criptare351M2.89 15.4 14.59 25.61
56M0.48 2.35 2.63 4.55
Decriptare351M1.76 38.144 19.78 28.51
56M0.29 1.9 3.16 4.62

    Fara I/O din tabelul de mai sus

    Criptare: îmbunătățire de până la 5 ori a performanței, similar cu OPENSSL
    Decriptare: Îmbunătățirea performanței de până la 11 ori

    Cu intrare-ieșire din tabelul de mai sus

    Criptare: îmbunătățirea performanței de până la 1,9 ori
    Decriptare: creșterea performanței de aproape 2 ori

Cazuri de utilizare Intel AES-NI

AES este utilizat pe scară largă în diferite scenarii de protecție a datelor, cum ar fi criptarea datelor într-o rețea, criptarea discurilor întregi sau a fișierelor individuale. Toate aceste scenarii pot folosi Intel AES-NI atâta timp cât CPU acceptă instrucțiunile corecte. În fig. 6 prezintă o comunicare tipică de reţea; toate datele transmise între utilizatori și servere sunt criptate după autentificare.

Figura 6. Comunicații tipice în rețea

Un alt caz de utilizare obișnuit este criptarea unităților întregi sau criptarea fișierelor individuale atunci când utilizatorii trebuie să salveze date în stocarea locală. În fig. 7 arată întregul flux de lucru de la utilizator la stocare:

Figura 7.Întregul flux de lucru de criptare

Instrucțiunile hardware Intel AES-NI oferă atât performanță ridicată, cât și economii de energie, ceea ce este deosebit de important pentru dispozitivele mobile, cum ar fi smartphone-urile și tabletele. Managementul dispozitivelor mobile (MDM) și managementul conținutului mobil (MCM) sunt factori critici pentru soluțiile de securitate ale întreprinderii. Această secțiune descrie Intel AES-NI în combinație cu MDM și MCM.

Un bun exemplu de MDM: administratorii trimit mesaje sau comenzi utilizatorilor finali, iar toate datele sensibile transmise trebuie criptate. Soluția software AES epuizează rapid energia bateriei cu transferuri frecvente de date, dar soluția Intel AES-NI utilizează soluții hardware care economisesc energie și îmbunătățesc performanța. În fig. Figura 8 prezintă un scenariu tipic în care administratorii trimit comenzi utilizatorilor folosind criptarea bazată pe Intel AES-NI. Fluxul de lucru include criptarea comenzilor înainte de a le trimite și decriptarea datelor pentru a executa comenzi pe dispozitivele utilizatorului final.

Figura 8. Schimb de date MDM folosind criptografia AES

Exemplu MCM: utilizatorii accesează date sensibile, cum ar fi documente, imagini, videoclipuri etc. de pe serverele corporative. Astfel de date transmise necesită protecție fiabilă. Toate datele trebuie să fie criptate înainte de a fi trimise utilizatorilor finali; pe dispozitivele utilizatorilor, datele trebuie, de asemenea, stocate într-un format criptat. În fig. 9 prezintă un flux de lucru tipic MCM de la început până la sfârșit atunci când citește și salvează date de către un utilizator final. Instrucțiunile Intel AES-NI acceptă criptarea pe 256 de biți, ceea ce o face o soluție hardware superioară pentru cerințele de securitate și confidențialitate de nivel enterprise.

Figura 9. Fluxul de lucru MCM

Dezvoltatorii trebuie să folosească programarea NDK pentru a activa accelerarea hardware Intel AES-NI. În fig. 10 arată relația tipică dintre nivelurile de aplicații Android, motorul de criptare Android și modulul Intel AES-NI C / C ++. Java Native Interface (JNI) este folosită pentru a lega funcțiile C/C++ la funcțiile Java. Dacă programarea în NDK nu vă este familiară, consultați Referințele NDK pentru mai multe informații.

Figura 10. Relații tipice între niveluri

Concluzie

Acest articol descrie cum să utilizați instrucțiunile Intel AES-NI pentru a accelera criptarea pe dispozitivele Android. Arată modul în care dezvoltatorii pot folosi codul de asamblare, bibliotecile terță parte și Intel NDK pentru a accelera aplicațiile și a economisi energie. Sunt descrise două scenarii tipice de criptare și decriptare a datelor pentru a ajuta dezvoltatorii să folosească Intel AES-NI în aplicațiile lor.

Pentru mai multe informații despre Instrumentele Intel®, dezvoltatorii Android pot vizita următoarele site-uri: Zona pentru dezvoltatori Intel® pentru Android.

Despre autori

Zhang Li este inginer de dezvoltare de aplicații în Intel® Software and Solutions Group (SSG) din divizia de relații cu dezvoltatorii a echipei Mobile Enabling. El este responsabil de susținerea aplicațiilor Android.

Yanqing Wang este inginer de dezvoltare de aplicații în Intel® Software and Solutions Group (SSG) din divizia de relații cu dezvoltatorii a echipei Mobile Enabling. Responsabilitățile sale includ gestionabilitatea și securitatea soluțiilor corporative. Are starea Intel® Developer Zone (IDZ) Black Belt.

Materiale de referinta

Intel, sigla Intel, Atom, Celeron, Core, Pentium și Xeon sunt mărci comerciale ale Intel Corporation în Statele Unite și în alte țări.
* Alte nume și mărci comerciale pot fi proprietatea unor terți.
Copyright © Intel Corporation 2014. Toate drepturile rezervate.

Detalii Publicat: 25.04.2016 13:10

Am compilat binarele Windows ale HodlMiner optimizat de la Wolf0 „și cu suport pentru setul de instrucțiuni AES-NI ( sursă). Această lansare de miner este mai rapidă decât HodlMiner standard pentru procesoarele care acceptă instrucțiuni AES-NI. Vă rugăm să rețineți că binarele compilate disponibile la linkul de mai jos vor rula numai pe Windows pe 64 de biți și numai pe sisteme cu procesoare AMD și Intel care sunt compatibile cu setul de instrucțiuni AES-NI. Dacă procesorul dumneavoastră nu acceptă AES-NI, atunci utilizați versiunea standard a HodlMiner.

Dacă nu sunteți sigur dacă procesorul dumneavoastră acceptă setul de instrucțiuni AES-NI, îl puteți verifica cu ușurință folosind utilitarul gratuit CPU-Z... Suportul pentru setul de instrucțiuni AES-NI în procesoarele Intel începe cu primele modele ale microarhitecturii Westmere, care a început producția la începutul anului 2010. În timp ce suportul AES-NI pentru procesoarele AMD a venit cu primele modele AMD Bulldozer Family 15h care au ajuns în magazine la sfârșitul anului 2011. Aceasta înseamnă că, dacă procesorul tău a apărut mai târziu de 2011, atunci cel mai probabil acceptă AES-NI. Rețineți că nu toate procesoarele bugetare acceptă instrucțiuni AES-NI. Pentru o listă a tuturor procesoarelor Intel cu suport AES-NI, vizitați acest link.

Arhiva, care poate fi descărcată din linkul de mai jos, conține diverse fișiere executabile care sunt compilate pentru diferite arhitecturi CPU cu suport AES-NI. Ar trebui să găsești .executabil fișier care se potrivește procesorului dvs. și doar redenumiți-l în hodlminer.exe. Fișiere executabile bdver1, bdver2 și bdver3 destinat arhitecturii AMD CPU Bulldozer sau arhitecturii ulterioare CPU AMD. Restul binarelor sunt destinate diferitelor procesoare Intel, începând cu Westmere, atunci Podul Sandy, Podul Ivy, Haswellși sfârșitul Broadwell... Arhitectură Silvermont pentru procesoare slabe Atom, Celeron, Pentium, care sunt folosite în SoC-uri (Systems on a Chip) și suportă și AES-NI.

În lumea modernă, criptarea este folosită aproape peste tot, atât pentru a proteja informații deosebit de importante în domenii speciale (sectorul apărării, bancar etc.), cât și ca parte a dispozitivelor casnice: computere, smartphone-uri, televizoare. Mai mult, domeniul de aplicare al criptografiei se extinde în fiecare an, iar volumul de date criptate transmise (stocate) este în creștere.

În același timp, criptarea datelor crește semnificativ sarcina de calcul a dispozitivelor care o implementează, așa că nu este de mirare că tot mai multe operațiuni criptografice sunt transferate la nivel hardware (adesea sub formă de co-procesoare criptografice speciale sau carduri de expansiune) . În ultimii ani, instrucțiunile de criptare au fost, de asemenea, implementate pe scară largă direct în unitățile centrale de procesare ale mărcilor importante pentru PC-urile și dispozitivele mobile de consum.

Folosind criptarea

Odată cu pătrunderea electronicii și a automatizării în toate domeniile vieții noastre, există o nevoie tot mai mare de a proteja datele transmise și de a restricționa accesul la componentele cheie. Aproape toate computerele moderne, tabletele și smartphone-urile, routerele, electrocasnicele inteligente, mașinile etc. folosesc în mod activ criptarea. Deci, de exemplu, se folosesc algoritmi criptografici:

  • când este conectat la majoritatea tipurilor de rețele de date fără fir (Wi-Fi, Bluetooth etc.);
  • în comunicațiile mobile;
  • Sistemul de operare mobil (iOS, Android) criptează datele de pe dispozitive pentru a proteja împotriva accesului neautorizat;
  • Stocarea în siguranță a parolelor necesită anumite funcții criptografice (de exemplu, majoritatea dispozitivelor cu capacitatea de a seta o parolă utilizează criptarea);
  • cardurile bancare, bancomatele, terminalele de plată sunt întotdeauna protejate criptografic;
  • criptomonedele se bazează pe principii de criptare.

Tot mai multe organizații și oameni realizează importanța utilizării criptării pentru a proteja datele. Deci, prin eforturile comune ale multor companii, în special ale Google, ponderea traficului HTTP criptat a crescut de la 30% la începutul lui 2014 la 70% la începutul lui 2018.

În același timp, orice criptare este o transformare a datelor complexă din punct de vedere matematic și necesită resurse de calcul suplimentare din hardware. În funcție de scenariul de lucru cu date, implementarea criptării poate reduce de mai multe ori debitul total (cantitatea de date procesate pe unitatea de timp).

Algoritmi de criptare

Există un număr mare de algoritmi criptografici. Menținerea tuturor ar fi dificil de implementat din punct de vedere tehnic.

Unii algoritmi, totuși, sunt utilizați semnificativ mai frecvent decât alții. Acest lucru se datorează faptului că mulți algoritmi sunt considerați învechiți sau insuficient de siguri, alții se dovedesc a fi inutil de complexi din punct de vedere computațional, există și alte motive.

Dintre algoritmii bloc simetrici, primul care este evidențiat este [(Advanced Encryption Standard). Acest algoritm a fost selectat ca standard național al SUA pe baza rezultatelor unei competiții. AES este principalul algoritm de criptare simetrică în multe protocoale și tehnologii (TLS, Wi-Fi, Bluetooth (din versiunea 4.0), GPG, IPsec, Bitlocker (criptare sistemului de fișiere Windows), LUKS (criptare sistemului de fișiere Linux), Miscrosoft Office, multe programe) -arhive (WinZip, 7-zip), etc.).

Algoritmii de hashing criptografic sunt, de asemenea, folosiți pe scară largă. Datorită faptului că algoritmul MD5 s-a dovedit a fi nesigur, în prezent cei mai des întâlniți algoritmi sunt seria SHA, în primul rând SHA-1 și SHA-2, care sunt, de asemenea, standarde FIPS din SUA. Ele vor fi în cele din urmă înlocuite de algoritmul SHA-3, care a câștigat competiția corespunzătoare în 2012.

Algoritmii de cheie publică includ RSA, DSA și Diffe-Hellman.

Ultimele generații ale celor mai comune procesoare x86 (produse de Intel și AMD) implementează instrucțiuni speciale pentru a accelera calculele folosind algoritmii AES și SHA-1, SHA-2 (256 de biți).

Instrucțiuni Intel

AES

Intel a propus in 2008 noi comenzi pentru arhitectura x86 care adauga suport hardware pentru algoritmul de criptare simetric AES. În prezent, AES este unul dintre cei mai populari algoritmi de cifrare în bloc. Prin urmare, implementarea hardware ar trebui să conducă la o creștere a performanței programelor care utilizează acest algoritm de criptare.

Setul de instrucțiuni noi se numește AES-NI (AES New Instructions) și constă din patru instrucțiuni pentru criptarea AES

  • AESENC- Efectuați o rundă de criptare AES,
  • AESENCLAST- Finalizați ultima rundă de criptare și decriptare AES
  • AESDEC- Efectuați o rundă de decriptare AES,
  • AESDECLAST- Finalizați ultima rundă de decriptare AES

și încă două instrucțiuni pentru lucrul cu cheia AES:

  • AESIMC- Coloane de amestec invers,
  • AESKEYGENASSIST- Contribuie la generarea cheii rotunde AES.

Ca și înainte, instrucțiunile sunt SIMD, adică date multiple cu o singură instrucțiune. Toate cele trei taste ale modului AES sunt acceptate (cu lungimi de cheie de 128, 192 și 256 de biți cu 10, 12 și 14 treceri de înlocuire și schimb).

Utilizarea acestor instrucțiuni asigură operațiuni de criptare de câteva ori mai rapide.

SHA

  • Westmere:
    • Westmere-EP (Xeon 56xx)
  • Clarkdale (cu excepția Core i3, Pentium și Celeron)
  • Arrandale (cu excepția Celeron, Pentium, Core i3, Core i5-4XXM)
  • Podul de nisip:
    • toate desktop-urile, cu excepția Pentium, Celeron, Core i3
    • mobil: numai Core i7 și Core i5
  • Ivy Bridge (doar i5, i7, Xeon și i3-2115C)
  • Haswell (toate cu excepția i3-4000m, Pentium și Celeron)
  • Broadwell (toate cu excepția Pentium și Celeron)
  • Silvermont / Airmont (toate cu excepția Bay Trail-D și Bay Trail-M)
  • Goldmont
  • Skylake
  • Lacul Kaby
  • Lac de cafea
  • Buldozer
  • Piledriver
  • Roller cu aburi
  • Excavator
  • Jaguar

Instrucțiunile SHA sunt acceptate de procesoare Intel din arhitectura Goldmont (2016), procesoare AMD din arhitectura Zen (2017).

Alte procesoare

Procesoarele de uz general de la alte arhitecturi și producători includ adesea suport pentru instrucțiuni criptografice speciale.

Deci, suportul pentru algoritmul AES este implementat în procesoare:

Arhitectura ARM are, de asemenea, un set de instrucțiuni pentru algoritmii SHA:

  • SHA1C - Acceleratorul de actualizare hash SHA1, alegeți
  • SHA1H - SHA1 rotire fixă
  • SHA1M - Accelerator de actualizare hash SHA1, majoritar
  • SHA1P - Accelerator de actualizare hash SHA1, paritate
  • SHA1SU0 - Acceleratorul de actualizare a programului SHA1, prima parte
  • SHA1SU1 - Acceleratorul de actualizare a programului SHA1, partea a doua
  • SHA256H - Accelerator de actualizare hash SHA256
  • SHA256H2 - Acceleratorul de actualizare hash SHA256, partea superioară
  • SHA256SU0 - Acceleratorul de actualizare a programului SHA256, prima parte
  • SHA256SU1 - Acceleratorul de actualizare a programului SHA256, a doua parte

Intel Westmere de 32 nm adaugă suport pentru accelerarea AES: este cu adevărat nevoie?

Astăzi, siguranța este un subiect important - cu toate acestea, este considerată importantă în principal doar de către profesioniști. Cu toate acestea, dacă securitatea devine un element de marketing sau se transformă într-o caracteristică de performanță, atunci companii precum Intel încep să o promoveze activ. AES sau Advanced Encryption Standard este certificat de Administrația Națională de Securitate a SUA (NSA) și guvernul SUA, precum și de multe alte organisme. Procesorul Intel de generație duală de 32 nm promite câștiguri semnificative de performanță pentru criptarea și decriptarea AES prin instrucțiuni noi (numai procesoarele dual-core Core i5). Am decis să evaluăm beneficiile din viața reală și am comparat procesorul dual-core Core i5-661 cu noile instrucțiuni AES cu procesorul quad-core Core i7-870, care nu are suport pentru accelerarea criptării.

Click pe poza pentru marire.

Criptarea este de fapt folosită mult mai intens decât observa de obicei utilizatorii. Totul pleacă de la site-uri de pe Internet care conțin informații confidențiale, cum ar fi datele personale ale utilizatorilor, sau de la site-uri unde există informații confidențiale despre tranzacții: toate folosesc criptare TLS sau SSL. Servicii precum VoIP, mesagerie instant și e-mail pot fi, de asemenea, protejate în același mod. Rețelele private virtuale (VPN) sunt un alt exemplu care este probabil foarte popular. Criptarea afectează, de asemenea, domenii sensibile, cum ar fi plățile electronice. Cu toate acestea, TLS / SSL sunt protocoale de comunicație criptografică, iar AES, pe care Intel o accelerează începând cu noua generație de procesoare de 32 nm, este un standard de criptare de uz general. Poate fi folosit pentru a cripta fișiere individuale, containere de date și arhive sau chiar pentru a cripta partiții și discuri întregi - fie că este vorba despre un stick USB sau un hard disk de sistem. AES poate fi rulat în software, dar există și produse accelerate de hardware, deoarece criptarea și decriptarea reprezintă o povară de calcul destul de grea. Soluții precum TrueCrypt sau Microsoft BitLocker, care face parte din Windows Vista sau Windows 7 Ultimate, pot cripta partiții întregi din mers.

Dacă credeți sau nu că există date sensibile pe sistemul dvs. depinde de ceea ce înțelegeți prin acele date și, de asemenea, de nivelul de confort personal. În plus, securitatea implică întotdeauna strategia corectă și acuratețea în stocarea datelor confidențiale. Nu trebuie să ignorați niciodată date precum detaliile pașaportului sau numărul și data de expirare a cardului dvs. bancar. Sau chiar un PIN de telefon.

Un lucru este sigur: cel mai bine este să fii îngrijit și prudent, mai degrabă decât invers - mai ales că nu necesită mult efort. Abordarea Intel de a adăuga accelerarea AES nu acoperă toate aplicațiile și scenariile de criptare, ci doar cel mai popular standard - și le obțineți totul gratuit în toate viitoarele procesoare desktop de 32 nm pentru segmentele mainstream sau mai scumpe. Dar noile instrucțiuni noi AES oferă cu adevărat câștiguri semnificative de performanță în scenariile tipice de criptare sau este mai mult un efort de marketing? Să aruncăm o privire.

Ce este AES?

AES înseamnă „Advanced Encryption Standard” și este cel mai popular standard de criptare simetrică din lumea IT. Standardul funcționează cu blocuri de 128 de biți și acceptă chei de 128, 192 sau 256 de biți (AES-128, AES-192 și AES-256). Multe utilitare de criptare, cum ar fi TrueCrypt, au suportat algoritmul AES chiar la începutul existenței sale. Dar cel mai mare factor în succesul AES este, desigur, adoptarea sa de către guvernul SUA în 2002, în timp ce în 2003 a fost adoptat ca standard pentru protejarea datelor clasificate.

Criptarea datelor cu AES

Criptarea AES se bazează pe un sistem de permutare a permutării, adică se efectuează o serie de operații matematice asupra datelor pentru a crea un set de date semnificativ modificat (criptat). Textul este folosit ca informație inițială, iar cheia este responsabilă pentru efectuarea operațiilor matematice. Operațiile pot fi la fel de simple ca deplasarea biților sau XOR, sau mai complexe. O singură trecere poate fi decriptată cu ușurință, motiv pentru care toți algoritmii moderni de criptare sunt construiți pe mai multe treceri. În cazul AES, acestea sunt 10, 12 sau 14 treceri pentru AES-128, AES-192 sau AES-256. Apropo, cheile AES trec prin aceeași procedură ca și datele utilizatorului, adică sunt o cheie rotundă care se schimbă.

Procesul funcționează cu matrice 4x4 de octeți unici, numite și cutii: S-box-urile sunt folosite pentru permutări, P-box-urile sunt folosite pentru permutări. Substituțiile și permutările sunt efectuate în diferite etape: permutările funcționează în interiorul așa-numitelor cutii, iar permutările schimbă informațiile dintre cutii. S-box funcționează pe un principiu complex, adică chiar dacă un singur bit de intrare se modifică, acesta va afecta mai mulți biți de ieșire, adică proprietățile fiecărui bit de ieșire depind de fiecare bit de intrare.

Utilizarea mai multor treceri asigură un nivel bun de criptare, iar criteriile de difuzare și confuzie trebuie îndeplinite. Scattering-ul se face printr-o combinație în cascadă de transformări S-box și P-box: dacă doar un bit din textul de intrare se modifică, S-box-ul va modifica ieșirea mai multor biți, iar P-box-ul va propaga pseudo-aleatoriu acest lucru. efect în mai multe casete S. Când spunem că cea mai mică modificare a intrării dă modificarea maximă a ieșirii, vorbim despre efectul bulgăre de zăpadă.

Cât de sigură este criptarea AES?

Au existat multe discuții în ultimul timp despre așa-numitele hack-uri care ocolesc necesitatea de a rula o căutare avansată de forță brută pentru a găsi cheia de decriptare corectă. Tehnologii precum atacurile XSL și atacurile legate de chei sunt discutate destul de intens - dar puțin succes. Singura modalitate funcțională de a rupe criptarea AES este prin ceea ce este cunoscut sub numele de atac pe canal lateral. Pentru a-l realiza, atacul trebuie să aibă loc numai asupra sistemului gazdă pe care se realizează criptarea AES și, în acest sens, trebuie să găsiți o modalitate de a obține informații despre sincronizarea cache-ului. În acest caz, puteți urmări numărul de bifări de computer înainte de finalizarea procesului de criptare.

Desigur, toate acestea nu sunt atât de ușoare, deoarece aveți nevoie de acces la un computer și de acces suficient de complet pentru a analiza criptarea și dreptul de a executa cod. Acum probabil înțelegeți de ce găurile de securitate care permit unui atacator să obțină astfel de drepturi, chiar dacă sună complet absurd, trebuie să fie închise cât mai curând posibil. Dar să nu ne răspândim gândurile de-a lungul arborelui: dacă obții acces la computerul țintă, atunci extragerea cheii AES este o chestiune de timp, adică nu mai este o sarcină consumatoare de timp pentru supercalculatoare care necesită resurse de calcul uriașe.

AES în interiorul Intel

În acest moment, instrucțiunile AES integrate în CPU încep să aibă sens - indiferent de potențialele beneficii de performanță. Din punct de vedere al securității, procesorul poate procesa instrucțiunile AES într-o manieră încapsulată, ceea ce înseamnă că nu are nevoie de nicio tabele de căutare necesare pentru un atac pe canal lateral.



CONŢINUT

Băieții sunt donatori pentru toată lumea. Vorbim despre așa ceva ca Intel AES-NI, se găsește în BIOS, dar ce este? Vom afla. Și așa am găsit site-ul oficial Intel, unde scrie că Intel AES-NI este un set de comenzi de criptare care completează algoritmul Advanced Encryption Standard (AES) și accelerează procesul de criptare a datelor în Intel Xeon (acestea sunt server) și Intel. Core (casa obișnuită).

Intel AES-NI include șapte comenzi noi și vă permite să protejați tipul de date cu un nivel mai ridicat de securitate. În principiu, totul este clar, Intel AES-NI este un fel de criptare nouă, dar de ce are nevoie o persoană obișnuită? O sa incerc sa aflu...

Da, adică AES-NI realizează unele aspecte ale AES la nivel hardware, adică chiar în procesul în sine. Ei bine, acum înțeleg puțin. Adică, AES-NI îmbunătățește performanța AES, accelerează tipul. Ar trebui să fie criptat mai repede, singurul lucru pe care nu l-am înțeles este ce este criptat? Discul din Windows este criptat sau arhiva WinRAR va fi creată mai rapid? Încă nu pot înțelege asta. Dar despre această problemă am găsit câteva explicații, aruncați o privire:

Adică, criptarea BitLocker ar trebui să fie mai rapidă. Dar despre tranzacțiile pe Internet, nu prea înțeleg.. Este că procesorul poate fi implicat în criptarea conexiunilor la Internet? Pentru că întregul proces de tranzacție este de obicei criptat, chiar și protocolul HTTPS este folosit pentru aceasta...

Pe scurt, băieți, am cam înțeles totul. Există așa ceva ca AES, nu? Ce este asta? Acesta este un algoritm de cifru bloc simetric, pe scurt, un joc. Dar nu asta este ideea. Înțeleg că AES este folosit în unele programe, este logic? Poftim. Dar opțiunea Intel AES-NI, cam accelerează munca algoritmului AES, înțelegi? Pentru această opțiune funcționează la nivel hardware chiar în proces.

Atunci o astfel de întrebare, se dovedește că Intel AES-NI ar trebui să fie pornit, astfel încât ceva să fie criptat acolo mai repede? Da, se dovedește că exact așa este. Am citit și că programele pentru criptarea discului pot folosi Intel AES-NI, de exemplu, unul dintre aceste programe este PGPdisk.

Băieți, am găsit o imagine interesantă care arată avantajul utilizării AES-NI, aruncați o privire:

Ei bine, în general, aceasta este o diferență notabilă...

Deci ce concluzie se poate trage? Intel AES-NI este un fel de lucru care este încorporat în procesorul însuși, de fapt, acestea sunt câteva instrucțiuni, iar aceste instrucțiuni ajută algoritmul AES să ruleze mai rapid. Algoritmul în sine poate fi folosit de diferite programe, iar cu ajutorul Intel AES-NI, aceste programe își vor îndeplini munca mai rapid =)

Ei bine, iată băieții acest articol Intel AES-NI din BIOS:

Băieți, așa că ne-am dat seama ce este Intel AES-NI, dar dacă ceva nu merge bine, atunci nu mă certa prea mult. Mult succes si sa te fac fericit!

Top articole similare