Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • në shtëpi
  • Interesante
  • Intel AES-NI çfarë është në bios? Duke përdorur udhëzimet e reja të kriptimit Intel® AES në Android.

Intel AES-NI çfarë është në bios? Duke përdorur udhëzimet e reja të kriptimit Intel® AES në Android.

Përkthe... Përkthe Kineze (E thjeshtuar) Kineze (Tradicionale) Anglisht Frengjisht Gjermanisht Italisht Portugjeze Rusisht Spanjisht Turqisht

Fatkeqësisht, ne nuk jemi në gjendje ta përkthejmë këtë informacion për momentin - ju lutemi provoni përsëri më vonë.

Prezantimi

Ky artikull përshkruan mbështetjen për udhëzimet e reja të kriptimit Intel® AES (Intel® AES-NI) në Android: çfarë është, si ta përdorni dhe si të matni performancën. Ai përshkruan gjithashtu modelin e përdorimit dhe shembujt në lidhje me dy skenarë enkriptimi që demonstrojnë përdorimin e udhëzimeve Intel AES-NI. Zhvilluesit me përvojë mund të kapërcejnë katër pjesët e para të këtij artikulli dhe të hidhen direkt në pjesën e fundit për t'u njohur me rastet e përdorimit. Zhvilluesit me më pak përvojë ndoshta duhet të lexojnë të gjithë artikullin.

Udhëzimet e reja të kriptimit AES (Intel AES-NI)

Udhëzimet Intel AES-NI u prezantuan në mars 2008 si një shtesë e grupit të instruksioneve të arkitekturës x86 për mikroprocesorët Intel dhe AMD. Qëllimi i këtij grupi instruksionesh është të rrisë shpejtësinë e aplikacioneve që kryejnë enkriptimin dhe deshifrimin AES.

Udhëzimet Intel AES-NI janë renditur në Tabelën 1.

Tabela 1. Udhëzimet Intel® AES-NI

Verifikimi i mbështetjes Intel AES-NI në Android

Mund të kontrolloni nëse Intel AES-NI mbështetet nga një platformë e veçantë duke përdorur CPUID; kontrolloni vlerën CPUID.01H:ECX.AESNI = 1. Ju gjithashtu mund të përdorni funksionin kontrolloni_për_aes_instruksionet nga biblioteka e mostrave Intel AES-NI.

Përdorimi i Intel AES-NI në Android

Ka shumë mënyra për të përdorur Intel AES-NI në Android:

  • shkruani kodin C/C++ dhe përdorni direkt kodin e asemblerit
  • përdorni një bibliotekë ekzistuese të palëve të treta si OpenSSL*
  • përdorni Java* Crypto API nga Android Kitkat

Për të përpiluar bibliotekën/aplikacionin vendas për x86 në sistemin operativ Android, duhet të përgatisni një zinxhir mjetesh të pavarur me komandën zinxhiri i veglave make-standalone.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 eksporti PATH=$PATH: $STANDALONE_TOOCHAIN_PATH

Përdorimi i bibliotekës së asamblesë

Biblioteka është në dosje intel_aes_lib. Mund të shkarkohet gjithashtu në. Përdor versionin 4.4 të GCC ose më të ri, d.m.th. versioni NDK duhet të jetë më i ri se NDK v3. (Këtu përdorim android-ndk-r9 për testim.)

makefil / guaskë nuk ka asnjë skrip për ndërtimin e versioneve për Android. Për të përpiluar, mund të ndryshoni skedarin mk_lnx86.sh. Ndryshimi kryesor është përdorimi $STANDALONE_TOOCHAIN_PATH/bin/i686-linux-android-gcc në vend të GCC të paracaktuar. Ju gjithashtu duhet të përdorni opsionet kaloj –D__ANDROID__.

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

Pas përpilimit, mund ta transferoni ekzekutuesin binar në Android dhe ta provoni atë. Ju gjithashtu mund të përdorni kodin burim direkt në aplikacionet tuaja, ose të përdorni bibliotekën binare të krijuar në NDK.

Duke përdorur OpenSSL

Udhëzimet Intel AES-NI përdoren nga shumë biblioteka, për shembull kripto++ polare SSL IPP OpenSSL dhe të tjerët. (Ne përdorim OpenSSL si referencë - udhëzimet Intel AES-NI të mbështetura në OpenSSL nga versioni eksperimental 1.0).

Që nga Android 4.3, OpenSSL i AOSP ka mbështetje për Intel AES-NI, kështu që ju vetëm duhet të përpiloni kodin me konfigurimin e dëshiruar. Ju gjithashtu mund ta shkarkoni nga faqja zyrtare e internetit dhe ta përpiloni vetë, më pas përdorni skedarin *.a/*.pra direkt në projektin tuaj.

1) Shkarko - Mund të shkarkoni OpenSSL nga http://www.openssl.org/source/. Aktualisht përdoret Android 4.2 openssl-1.0.1c dhe në Android 4.4 - openssl-1.0.1e.Duhet të përdorni të njëjtin version të OpenSSL si sistemi i synuar.

(2) Kompilimi - ekzekutoni komandën e mëposhtme në tastierë:

Cd eksportoni $OPENSSL_SRC_PATH CC=”$STANDALONE_TOOCHAIN_PATH/bin/i686-linux-android-gcc –mtune=atome –marsh=atom –sysroot=$STANDALONE_TOOCHAIN_PATH/sysroot” eksportoni AR=$STANDALONE_PATH-android-6ar/ eksportoni RANLIB=$STANDALONE_TOOCHAIN_PATH/bin/i686-linux-android-ranlib ./Konfiguro android-x86 –DOPENSSL_IA32_SSE2 –DAES_ASM –DVPAES_ASM make

Pas kësaj skedari libcrypto.a do të shfaqet në dosjen e nivelit të lartë. Për të përdorur një skedar *.kështu që fut" Konfiguro android-x86 të përbashkët ***”.

(3) Përdor OpenSSL nëpërmjet NDK në projektin Android: krijo projekti android, deklaroni funksionin e lidhur me OPENSSL si amtare pastaj përdorni kodin në jni/*.c.

Pas kësaj ju duhet të kopjoni skedarët *.a/*.pra dhe një skedar me kokë në projekt.

mkdir jni/pre-përpiluar/ mkdir jni/include cp $OPENSSL_PATH/libcrypto.a jni/cp i para-përpiluar –L -rf $OPENSSL_PATH/include/openssl jni/include

Pastaj shtoni rreshtin e mëposhtëm në skedar jni/Android.mk:

... LOCAL_MODULE:= statike LOCAL_SRC_FILES:= e para-përpiluar/libcrypto.a ... LOCAL_C_INCLUDES:= përfshijnë LOCAL_STATIC_LIBRARIES:= statike --lcrypto ...

Më pas mund të përdorni funksionet e ofruara në OpenSSL për të zbatuar funksionet tuaja enkript/dekript/SSL. Për të përdorur Intel AES-NI, përdorni funksionin e serisë EVP_* siç tregohet më poshtë. Kjo do të mundësojë automatikisht modulin e harduerit Intel AES-NI për enkriptimin dhe deshifrimin AES nëse CPU e mbështet atë.

//deklaro EVP_CIPHER_CTX en, de; //fillimi EVP_CIPHER_CTX_fillimi(&en); EVP_CIPHER_CTX_fillimi(&de); EVP_DecryptInit_ex(&de, NULL, NULL, NULL, NULL); //dekriptoj & enkriptoj EVP_DecryptUpdate(&de, tekst i thjeshtë, &bytes_shkruar, tekst i shifruar, len); EVP_EncryptUpdate(&sq, tekst i koduar, &shifr_len, tekst i thjeshtë, len); //pastroj EVP_CIPHER_CTX_cleanup(&en); EVP_CIPHER_CTX_pastrimi(&de);

Më pas përdorni ndk-ndërtoj për të përpiluar.

ndk-ndërtoni APP_ABI=x86

(4) Përdorimi i Java Crypto API: në Android Kitkat Ofruesi OpenSSL me emrin " AndroidOpenSSL” mbështet Intel AES-NI që të mund ta përdorni javax.crypto.shifer drejtpërdrejt.

Shifra e shifrës = Cipher.getInstance(AES_ALGORITHM, "AndroidOpenSSL"); cipher.init(*);

matja e performancës

matja e performancës

Mjetet e testimit

(1) Përdorni objektet OPENSSL. Ekipi openssl si pjesë e OpenSSL mund të kryejë shumë detyra. Mund të përdoret për të matur performancën me shpejtësia e hapjes. E paracaktuar openssl((kur ndërtohet me AES_ASM) do të përdorë automatikisht përshpejtimin e harduerit Intel AES-NI. Gjithashtu mund ta çaktivizoni lehtësisht përshpejtimin e harduerit duke vendosur një ndryshore të vetme mjedisore: Vlera kapak OPENSSL_ia32 ~0x200000200000000

shpejtësia openssl -evp aes-256-cbc OPENSSL_ia32cap=~0x200000200000000 shpejtësia openssl -evp aes-256-cbc

(2) Përdorni një program shtëpiak.

Foto 1. Program testimi i krijuar nga ne.

(3) Intel® Mobile Platform Monitor (Intel® MPM) është një mjet monitorimi i energjisë për informacion të detajuar rreth statusit të CPU/GPU/energjisë, etj. Për më shumë informacion, shihni

Figura 2. Programi Intel® MPM

ndaloni profilizimin, më pas ruani të dhënat e rezultateve. Rezultatet shfaqen si një përmbledhje teksti ose si grafik.

(4) Përdorni aplikacionin e testimit nga biblioteka Intel AES-NI, shih Mund aktivizoni ose çaktivizoni AESNI në BIOS në disa projekte testimi si aes_gladman_nëngrup, për të treguar rezultatet e performancës.

Rezultatet e testit

Ne ekzekutuam [specifiko programin] në një tablet Bay Trail me Android 4.4. Rezultatet tona të testimit tregojnë një përmirësim 4x deri në 11x në performancën e kriptimit dhe deshifrimit dhe mbi 40% kursim të energjisë kur përdorni Intel AES-NI.

Të dhëna të hollësishme të testimit

Hardware: BAYTRAIL_FFRD8 PR1, OS: ANDROID 4.4
MODE
(CBC/256)
madhësia e skedarit Intel® AES-NI është aktivizuar Intel® AES-NI me aftësi të kufizuara
Koha (et) pa I/OKoha (et) me I/OKoha (et) pa I/OKoha (et) me I/O
Enkriptimi351 milion2.89 15.4 14.59 25.61
56 milion0.48 2.35 2.63 4.55
Deshifrimi351 milion1.76 38.144 19.78 28.51
56 milion0.29 1.9 3.16 4.62

    Nuk ka I/O nga tabela e mësipërme

    Kriptimi: Përmirësim i performancës deri në 5X, i ngjashëm me OPENSSL
    Deshifrimi: Gati 11 herë përmirësim i performancës

    Me I/O nga tabela e mësipërme

    Kriptimi: Përmirësim i performancës deri në 1,9x
    Deshifrimi: Gati 2x përmirësim i performancës

Skenarët për përdorimin e Intel AES-NI

Algoritmi AES përdoret gjerësisht në skenarë të ndryshëm të mbrojtjes së të dhënave, të tilla si kriptimi i transmetimit të të dhënave përmes një rrjeti, enkriptimi i disqeve të tëra ose skedarëve individualë. Në të gjithë këta skenarë, Intel AES-NI mund të përdoret, për sa kohë që CPU mbështet udhëzimet e kërkuara. Në fig. 6 tregon një transmetim tipik të rrjetit; të gjitha të dhënat e transmetuara ndërmjet përdoruesve dhe serverëve janë të koduara pas vërtetimit.

Figura 6 Transmetimi tipik i rrjetit

Një tjetër rast tipik përdorimi është kriptimi i disqeve të tëra ose kodimi i skedarëve individualë, ku përdoruesit duhet të ruajnë të dhënat në ruajtje lokale. Në fig. Figura 7 tregon të gjithë rrjedhën e punës nga përdoruesi në ruajtje:

Figura 7 I gjithë fluksi i punës së kriptimit

Udhëzimet e harduerit Intel AES-NI ofrojnë performancë të lartë dhe kursim të energjisë, gjë që është veçanërisht e rëndësishme për pajisjet mobile si smartfonët dhe tabletët. Menaxhimi i pajisjes celulare (MDM) dhe menaxhimi i përmbajtjes celulare (MCM) janë faktorë kritikë në zgjidhjet e sigurisë së ndërmarrjes. Ky seksion përshkruan Intel AES-NI në kombinim me MDM dhe MCM.

Një shembull i mirë i MDM është kur administratorët dërgojnë mesazhe ose komanda tek përdoruesit fundorë dhe të gjitha të dhënat sensitive të transmetuara duhet të kodohen. Zgjidhja softuerike AES konsumon energjinë e baterisë shpejt me transferime të shpeshta të të dhënave, por zgjidhja Intel AES-NI përdor zgjidhje harduerike që kursejnë energji dhe përmirësojnë performancën. Në fig. Figura 8 tregon një skenar tipik ku administratorët u dërgojnë komanda përdoruesve duke përdorur enkriptimin e bazuar në Intel AES-NI. Rrjedha e punës përfshin enkriptimin e komandave përpara dërgimit të tyre dhe deshifrimin e të dhënave për të ekzekutuar komandat në pajisjet e përdoruesit fundor.

Figura 8 Shkëmbimi i të dhënave MDM duke përdorur kriptografinë AES

Shembull MCM: Përdoruesit aksesojnë të dhëna të ndjeshme si dokumente, imazhe, video, etj. nga serverët e korporatës. Të dhëna të tilla të transmetuara kanë nevojë për mbrojtje të besueshme. Të gjitha të dhënat duhet të kodohen përpara se të dërgohen te përdoruesit fundorë; Pajisjet e përdoruesit duhet gjithashtu të ruajnë të dhënat në një format të koduar. Në fig. Figura 9 tregon një rrjedhë tipike pune MCM nga fillimi në fund kur një përdorues fundor lexon dhe ruan të dhëna. Udhëzimet e Intel AES-NI mbështesin enkriptimin 256-bit, duke e bërë atë një zgjidhje të shkëlqyer harduerike për kërkesat e sigurisë dhe privatësisë së nivelit të ndërmarrjes.

Figura 9 Rrjedha e punës MCM

Për të mundësuar përshpejtimin e harduerit Intel AES-NI, zhvilluesit duhet të përdorin programimin NDK. Në fig. Figura 10 tregon marrëdhëniet tipike midis shtresave të aplikacionit Android, modulit të enkriptimit Android dhe modulit Intel AES-NI C/C++. Ndërfaqja Native Java (JNI) përdoret për të lidhur funksionet C/C++ me funksionet Java. Nëse jeni i ri në programimin NDK, shihni referencat NDK për më shumë informacion.

Figura 10. Marrëdhëniet tipike ndërmjet niveleve

konkluzioni

Ky artikull përshkruan se si të përdorni udhëzimet Intel AES-NI për të shpejtuar enkriptimin në pajisjet Android. Tregon se si zhvilluesit mund të përdorin kodin e montimit, bibliotekat e palëve të treta dhe Intel NDK për të shpejtuar aplikacionet dhe për të kursyer energji. Dy skenarë tipikë të enkriptimit dhe deshifrimit të të dhënave janë përshkruar për të ndihmuar zhvilluesit të përdorin Intel AES-NI në aplikacionet e tyre.

Për më shumë informacion rreth mjeteve Intel®, zhvilluesit e Android mund të vizitojnë faqet e mëposhtme: Intel® Developer Zone për Android.

Rreth autorëve

Zhang Li është një Inxhinier i Zhvillimit të Aplikacioneve në Grupin e Softuerëve dhe Zgjidhjeve Intel® (SSG) në Divizionin e Marrëdhënieve me Zhvilluesit e Ekipit të Mundësimit të Mobile. Ai është përgjegjës për mbështetjen e aplikacioneve Android.

Yanqing Wang është një Inxhinier i Zhvillimit të Aplikacioneve në Grupin e Softuerëve dhe Zgjidhjeve Intel® (SSG) në Divizionin e Marrëdhënieve me Zhvilluesit e Ekipit të Mundësimit të Mobile. Përgjegjësitë e tij përfshijnë menaxhimin dhe sigurinë e zgjidhjeve të korporatave. Është një rrip i zi Intel® Developer Zone (IDZ).

Materialet referente

Intel, logoja e Intel, Atom, Celeron, Core, Pentium dhe Xeon janë marka tregtare të Intel Corporation në SHBA dhe/ose vende të tjera.
*Emrat dhe markat e tjera tregtare mund të jenë pronë e palëve të treta.
© 2014 Intel Corporation. Të gjitha të drejtat e rezervuara.

Detajet Publikuar: 25.04.2016 13:10

Ne përpiluam binarët e Windows të HodlMiner të optimizuar të Wolf0 me mbështetje për grupin e udhëzimeve AES-NI ( burimi). Ky lëshim i minatorit është më i shpejtë se HodlMiner standard për procesorë me mbështetje për udhëzimet AES-NI. Ju lutemi vini re se binarët e përpiluar të disponueshëm nga lidhja më poshtë do të funksionojnë vetëm në Windows 64-bit dhe vetëm në sisteme me procesorë AMD dhe Intel që janë të pajtueshëm me grupin e udhëzimeve AES-NI. Nëse CPU-ja juaj nuk mbështet AES-NI, atëherë përdorni versioni standard i HodlMiner.

Nëse nuk jeni të sigurt nëse procesori juaj e mbështet grupin e udhëzimeve AES-NI, mund ta kontrolloni lehtësisht këtë duke përdorur programin falas CPU-Z. Mbështetja për grupin e udhëzimeve AES-NI për procesorët Intel fillon me modelet e para të mikroarkitekturës Westmere, të cilat filluan prodhimin në fillim të vitit 2010. Ndërsa mbështetja AES-NI për procesorët AMD erdhi me modelet e para AMD Bulldozer Family 15h, të cilat doli në shitje në fund të 2011. Kjo do të thotë që nëse procesori juaj është lëshuar pas vitit 2011, atëherë ka shumë të ngjarë që ai të mbështet AES-NI. Mbani në mend se jo të gjithë përpunuesit e buxhetit mbështesin udhëzimet AES-NI. Mund të gjeni një listë të të gjithë procesorëve Intel me mbështetje AES-NI në kjo lidhje.

Arkivi, i cili mund të shkarkohet nga lidhja më poshtë, përmban skedarë të ndryshëm të ekzekutueshëm që janë përpiluar për arkitektura të ndryshme CPU me mbështetjen AES-NI. Ju duhet të gjeni .exe skedari që i përshtatet CPU-së tuaj dhe thjesht riemëroni atë në hodlminer.exe. Skedarët e ekzekutueshëm bdver1, bdver2 dhe bdver3 projektuar për arkitekturat CPU të AMD Bulldozer ose arkitekturat e mëvonshme të CPU-së AMD. Binarët e mbetur janë krijuar për CPU të ndryshme Intel, duke filluar me Westmere, pastaj Ura Sandy, Ura Ivy, Haswell dhe duke përfunduar Broadwell. Arkitekturë Silvermont për procesorë të dobët Atom, Celeron, Pentium, të cilët përdoren në SoC (Sistemet në Çip) dhe gjithashtu mbështesin AES-NI.

Në botën moderne, kriptimi përdoret pothuajse kudo, si për të mbrojtur informacionin kritik në zona të veçanta (sektori i mbrojtjes, banka, etj.), ashtu edhe si pjesë e pajisjeve shtëpiake: kompjuterë, telefona inteligjentë, televizorë. Për më tepër, fusha e kriptografisë po zgjerohet çdo vit, dhe vëllimi i të dhënave të koduara të transmetuara (të ruajtura) po rritet.

Në të njëjtën kohë, kriptimi i të dhënave rrit ndjeshëm ngarkesën llogaritëse në pajisjet që e zbatojnë atë, kështu që nuk është për t'u habitur që gjithnjë e më shumë operacione kriptografike transferohen në nivelin e harduerit (shpesh në formën e bashkëpërpunuesve të veçantë kriptografikë ose kartave të zgjerimit). . Vitet e fundit, udhëzimet kriptografike janë zbatuar gjithashtu gjerësisht në procesorët kryesorë të markave kryesore për PC-të e konsumatorit dhe pajisjet mobile.

Duke përdorur enkriptimin

Me depërtimin e elektronikës dhe automatizimit në të gjitha fushat e jetës sonë, ekziston një nevojë në rritje për të mbrojtur të dhënat e transmetuara dhe për të kufizuar aksesin në komponentët kryesorë. Pothuajse të gjithë kompjuterët modernë, tabletët dhe telefonat inteligjentë, ruterat, pajisjet shtëpiake "të zgjuara", makinat, etj. përdorin në mënyrë aktive enkriptimin. Kështu, për shembull, përdoren algoritme kriptografike:

  • kur lidheni me shumicën e llojeve të rrjeteve të të dhënave me valë (Wi-Fi, Bluetooth, etj.);
  • në komunikimin celular;
  • sistemet operative celulare (iOS, Android) enkriptojnë të dhënat në pajisje për t'u mbrojtur nga aksesi i paautorizuar;
  • ruajtja e sigurt e fjalëkalimeve kërkon disa veçori kriptografike (d.m.th., shumica e pajisjeve të aktivizuara me fjalëkalim përdorin enkriptim);
  • kartat bankare, ATM-të, terminalet e pagesave janë gjithmonë të mbrojtura kriptografikisht;
  • Kriptovalutat bazohen në parimet e kriptimit.

Më shumë organizata dhe njerëz po kuptojnë rëndësinë e përdorimit të kriptimit për të mbrojtur të dhënat. Kështu, përmes përpjekjeve të përbashkëta të shumë kompanive, në veçanti Google, pjesa e trafikut të koduar HTTP është rritur nga 30% në fillim të 2014 në 70% në fillim të 2018.

Në të njëjtën kohë, çdo kriptim është një transformim matematikisht kompleks i të dhënave dhe kërkon burime shtesë llogaritëse nga hardueri. Në varësi të skenarit të punës me të dhënat, zbatimi i kriptimit mund të zvogëlojë xhiron e përgjithshme (sasinë e të dhënave të përpunuara për njësi të kohës) me disa herë.

Algoritmet e enkriptimit

Ekziston një numër i madh i algoritmeve kriptografike. Do të ishte teknikisht e vështirë për t'i mbështetur të gjithë.

Megjithatë, disa algoritme përdoren shumë më shpesh se të tjerët. Kjo për faktin se shumë algoritme njihen si të vjetëruar ose jo mjaftueshëm të sigurt, të tjerët rezultojnë të jenë të panevojshëm kompjuterikisht kompleks, dhe ka edhe arsye të tjera.

Midis algoritmeve simetrike të bllokut, para së gjithash duhet theksuar [ (Advanced Encryption Standard). Ky algoritëm u zgjodh si standardi kombëtar i SHBA-së pas një konkursi. AES është algoritmi kryesor i kriptimit simetrik në shumë protokolle dhe teknologji (TLS, Wi-Fi, Bluetooth (nga versioni 4.0), GPG, IPsec, Bitlocker (Kriptimi i Sistemit të Skedarëve Windows), LUKS (Kriptimi i Sistemit të Skedarëve Linux), Microsoft Office, shumë arkivuesit e programeve (WinZip, 7-zip), etj.).

Algoritmet e hashimit kriptografik janë gjithashtu jashtëzakonisht të përdorura. Për shkak të faktit se algoritmi MD5 u njoh si i pasigurt, aktualisht algoritmet më të zakonshme janë seritë SHA, kryesisht SHA-1 dhe SHA-2, të cilat janë gjithashtu standarde FIPS US. Ata përfundimisht do të zëvendësohen nga algoritmi SHA-3, i cili u bë fituesi i konkursit përkatës në 2012.

Algoritmet e çelësit publik përfshijnë RSA, DSA dhe Diffe-Hellman.

Në procesorët e arkitekturës më të zakonshme x86 (të prodhuar nga Intel dhe AMD) të gjeneratave të fundit, zbatohen udhëzime speciale për të shpejtuar llogaritjet duke përdorur algoritmet AES dhe SHA-1, SHA-2 (256 bit).

Udhëzimet e Intel

AES

Në vitin 2008, Intel propozoi komanda të reja për arkitekturën x86, të cilat shtuan mbështetje për algoritmin e enkriptimit simetrik AES në nivelin e harduerit. AES është një nga shifrat më të njohura të bllokut për momentin. Prandaj, zbatimi i harduerit duhet të çojë në performancë më të mirë të programeve që përdorin këtë algoritëm të enkriptimit.

Seti i udhëzimeve të reja quhet AES-NI (AES New Instructions) dhe përbëhet nga katër udhëzime për enkriptimin AES

  • AESENC- Kryeni një raund të kriptimit AES,
  • AESENCLAST- Kryeni raundin e fundit të kriptimit dhe deshifrimit AES
  • AESDEC- Kryeni një raund deshifrimi AES,
  • AESDECLAST- Kryeni raundin e fundit të deshifrimit AES

dhe dy udhëzime të tjera për të punuar me çelësin AES:

  • AESIMC- Kolonat e përzierjes së kundërt,
  • AESKEGJENASIST- Kontribuoni në gjenerimin e çelësit të rrumbullakët AES.

Si më parë, udhëzimet i referohen SIMD, domethënë tipit të të dhënave të shumëfishta me udhëzim të vetëm. Të tre çelësat e modalitetit AES mbështeten (me gjatësi të çelësave 128, 192 dhe 256 bit me 10, 12 dhe 14 kalime zëvendësimi dhe ndërrimi).

Përdorimi i këtyre udhëzimeve përshpejton disa herë operacionet e enkriptimit.

SHA

  • Westmere:
    • Westmere-EP (Xeon 56xx)
  • Clarkdale (përveç Core i3, Pentium dhe Celeron)
  • Arrandale (përveç Celeron, Pentium, Core i3, Core i5-4XXM)
  • Ura e rërës:
    • i gjithë desktopi përveç Pentium, Celeron, Core i3
    • Celular: vetëm Core i7 dhe Core i5
  • Ivy Bridge (vetëm i5, i7, Xeon dhe i3-2115C)
  • Haswell (të gjitha përveç i3-4000m, Pentium dhe Celeron)
  • Broadwell (të gjithë përveç Pentium dhe Celeron)
  • Silvermont/Airmont (të gjitha përveç Bay Trail-D dhe Bay Trail-M)
  • Goldmont
  • liqen qiellor
  • Liqeni Kaby
  • liqeni i kafesë
  • Buldozer
  • Piledriver
  • rul me avull
  • Ekskavator
  • Jaguar

Udhëzimet SHA mbështeten nga procesorët Intel që nga arkitektura Goldmont (2016), procesorët AMD që nga arkitektura Zen (2017).

Procesorë të tjerë

Përpunuesit me qëllime të përgjithshme nga arkitektura dhe prodhues të tjerë gjithashtu shpesh përfshijnë mbështetje për udhëzime të veçanta kriptografike.

Pra, mbështetja për algoritmin AES zbatohet në procesorë:

Arkitektura ARM ka gjithashtu një grup udhëzimesh për algoritmet SHA:

  • SHA1C - Përshpejtuesi i përditësimit hash SHA1, zgjidhni
  • SHA1H - SHA1 rrotullim fiks
  • SHA1M - Përshpejtuesi i përditësimit hash SHA1, shumica
  • SHA1P - Përshpejtuesi i përditësimit hash SHA1, barazi
  • SHA1SU0 - Përshpejtuesi i përditësimit të orarit SHA1, pjesa e parë
  • SHA1SU1 - Përshpejtuesi i përditësimit të orarit SHA1, pjesa e dytë
  • SHA256H - Përshpejtuesi i përditësimit hash SHA256
  • SHA256H2 - Përshpejtuesi i përditësimit hash SHA256, pjesa e sipërme
  • SHA256SU0 - Përshpejtuesi i përditësimit të orarit SHA256, pjesa e parë
  • SHA256SU1 - Përshpejtuesi i përditësimit të orarit SHA256, pjesa e dytë

Intel Westmere 32 nm shton mbështetje për përshpejtimin AES: A është vërtet e nevojshme?

Sot, siguria është një temë e rëndësishme - por ajo konsiderohet e rëndësishme, kryesisht, vetëm nga profesionistët. Megjithatë, nëse siguria bëhet një element marketingu ose bëhet një veçori e performancës, atëherë kompani si Intel kanë filluar ta promovojnë atë në mënyrë aktive. AES ose standardi i avancuar i enkriptimit është i çertifikuar nga Administrata e Sigurisë Kombëtare e SHBA (NSA) dhe qeveria e SHBA, si dhe shumë organe të tjera. Gjenerata e procesorëve të dyfishtë 32 nm të Intel premton përfitime të konsiderueshme të performancës në enkriptimin dhe deshifrimin AES me udhëzime të reja (vetëm procesorët me dy bërthama Core i5). Ne vendosëm të vlerësonim përfitimet në jetën reale dhe krahasuam procesorin me dy bërthama Core i5-661 me udhëzimet e reja AES me procesorin Core i7-870 me katër bërthama, i cili nuk ka mbështetje për përshpejtimin e enkriptimit.

Klikoni mbi foto për ta zmadhuar.

Kriptimi në të vërtetë përdoret shumë më tepër nga sa vërejnë përdoruesit zakonisht. Fillon me faqet në internet që përmbajnë informacione të ndjeshme, të tilla si të dhënat personale të përdoruesit, ose faqet që përmbajnë informacione të ndjeshme rreth transaksioneve: të gjitha ato përdorin kriptim TLS ose SSL. Shërbime të tilla si VoIP, mesazhe të çastit dhe email mund të mbrohen gjithashtu në të njëjtën mënyrë. Rrjetet Virtuale Private (VPN-të, Rrjetet Virtuale Private) janë një shembull tjetër, ndoshta një shembull shumë i njohur. Kriptimi prek gjithashtu zona të ndjeshme si pagesat elektronike. Sidoqoftë, TLS/SSL janë protokolle komunikimi kriptografike dhe AES, të cilin Intel po e përshpejton me gjeneratën e re të procesorit 32 nm, është një standard i enkriptimit për qëllime të përgjithshme. Mund të përdoret për të enkriptuar skedarë individualë, kontejnerë të dhënash dhe arkiva, apo edhe për të enkriptuar ndarje dhe disqe të tëra - qofshin një shkop USB ose një hard disk i sistemit. AES mund të bëhet në softuer, por ka edhe produkte të përshpejtuara nga hardueri, pasi enkriptimi dhe deshifrimi janë mjaft barrë llogaritëse. Zgjidhje të tilla si TrueCrypt ose Microsoft BitLocker, e cila është pjesë e Windows Vista ose Windows 7 Ultimate, mund të enkriptojnë të gjitha ndarjet menjëherë.

Nëse konsideroni apo jo se ka të dhëna të ndjeshme në sistemin tuaj, varet nga ajo që nënkuptoni me këto të dhëna, si dhe nga niveli juaj personal i rehatisë. Përveç kësaj, siguria nënkupton gjithmonë strategjinë dhe saktësinë e duhur në ruajtjen e të dhënave konfidenciale. Asnjëherë nuk duhet të injoroni të dhëna të tilla si të dhënat e pasaportës suaj ose numrin dhe datën e skadencës së një karte bankare. Ose edhe një PIN telefoni.

Një gjë është e sigurt: është më mirë të jesh i kujdesshëm dhe i matur sesa anasjelltas - veçanërisht pasi kjo nuk kërkon shumë përpjekje. Qasja e Intel për shtimin e përshpejtimit AES nuk mbulon të gjitha aplikacionet dhe skenarët e enkriptimit, vetëm standardin më të popullarizuar - dhe ju do t'i merrni të gjitha falas në të gjithë procesorët e ardhshëm të desktopit 32nm të zakonshëm ose të nivelit më të lartë. Por, a ofrojnë vërtet Udhëzimet e reja AES të reja një rritje të konsiderueshme të performancës në skenarët tipikë të enkriptimit, apo është më shumë produkt i departamentit të marketingut? Le të hedhim një vështrim.

Çfarë është AES?

AES do të thotë "Advanced Encryption Standard" dhe është standardi më i popullarizuar i enkriptimit simetrik në botën e IT. Standardi funksionon me blloqe 128-bit dhe mbështet çelësat 128-, 192- ose 256-bit (AES-128, AES-192 dhe AES-256). Shumë shërbime të enkriptimit, të tilla si TrueCrypt, mbështetën algoritmin AES në fillimin e ekzistencës së tij. Por faktori më i madh i suksesit për AES, natyrisht, është miratimi i tij nga qeveria amerikane në 2002, dhe në 2003 u miratua si standard për mbrojtjen e të dhënave të ndjeshme.

Kriptimi i të dhënave me AES

Kriptimi AES bazohet në një sistem zëvendësimi të ndërrimit, domethënë, një seri operacionesh matematikore kryhen mbi të dhënat për të krijuar një grup të dhënash të modifikuar ndjeshëm (të koduar). Teksti vepron si informacion fillestar dhe çelësi është përgjegjës për kryerjen e veprimeve matematikore. Operacionet mund të jenë aq të thjeshta sa zhvendosja e bitave ose XOR, ose më komplekse. Një kalim i vetëm mund të deshifrohet lehtësisht, kjo është arsyeja pse të gjitha algoritmet moderne të enkriptimit bazohen në kalime të shumta. Në rastin e AES është 10, 12 ose 14 kalime për AES-128, AES-192 ose AES-256. Nga rruga, çelësat AES kalojnë në të njëjtën procedurë si të dhënat e përdoruesit, domethënë ato janë një çelës i rrumbullakët në ndryshim.

Procesi funksionon me vargje 4x4 të bajteve të vetme, të quajtura gjithashtu kuti: kutitë S përdoren për zëvendësime, kutitë P për permutacione. Zëvendësimet dhe permutacionet kryhen në faza të ndryshme: zëvendësimet funksionojnë brenda të ashtuquajturave kuti dhe ndërrimet ndryshojnë informacionin midis kutive. S-box funksionon në një parim kompleks, d.m.th., edhe nëse një bit i vetëm i hyrjes ndryshon, ai do të ndikojë në disa bit të daljes, domethënë, vetitë e secilit bit të daljes varen nga secili bit hyrës.

Përdorimi i kalimeve të shumta siguron një nivel të mirë të kriptimit duke përmbushur kriteret për difuzion (përhapje) dhe errësim (konfuzion). Shpërndarja bëhet përmes një kombinimi kaskadë të transformimeve të S-box dhe P-box: duke ndryshuar vetëm një bit në tekstin hyrës, S-box do të modifikojë daljen e disa biteve dhe P-box do ta përhapë këtë në mënyrë pseudo rastësore. efekt në disa kuti S. Kur themi se ndryshimi minimal në hyrje jep ndryshimin maksimal në dalje, flasim për efektin e topave të borës.

Sa i sigurt është kriptimi AES?

Kohët e fundit ka pasur shumë diskutime në lidhje me të ashtuquajturat hakime që anashkalojnë nevojën për të kryer një kërkim të avancuar me forcë brutale për të gjetur çelësin e saktë të deshifrimit. Teknika të tilla si sulmet XSL dhe sulmet me çelës të lidhur diskutohen gjerësisht - me pak sukses. Mënyra e vetme e punës për të thyer enkriptimin AES është në të ashtuquajturin sulm të kanalit anësor (kanali anësor). Për ta zbatuar atë, sulmi duhet të ndodhë vetëm në sistemin pritës në të cilin kryhet enkriptimi AES, dhe për ta bërë këtë, ju duhet të gjeni një mënyrë për të marrë informacion në lidhje me sinkronizimin e cache. Në këtë rast, mund të gjurmoni numrin e cikleve të kompjuterit derisa të përfundojë procesi i enkriptimit.

Natyrisht, e gjithë kjo nuk është aq e lehtë, pasi keni nevojë për qasje në kompjuter, dhe akses mjaft të plotë për të analizuar enkriptimin dhe të drejtën për të ekzekutuar kodin. Tani ju ndoshta e kuptoni pse "vrimat" në sistemin e sigurisë që lejojnë një sulmues të fitojë të drejta të tilla, edhe nëse ato duken krejtësisht absurde, duhet të mbyllen sa më shpejt që të jetë e mundur. Por le të mos i shpërndajmë mendimet tona përgjatë pemës: nëse keni akses në kompjuterin e synuar, atëherë nxjerrja e çelësit AES është çështje kohe, domethënë, nuk është më një detyrë që kërkon kohë për superkompjuterët që kërkon burime të mëdha kompjuterike.

AES brenda Intel

Në këtë pikë, udhëzimet AES të integruara në CPU kanë filluar të kenë kuptim - pavarësisht nga përfitimet e mundshme të performancës. Nga pikëpamja e sigurisë, procesori mund të përpunojë udhëzimet AES në një formë të kapsuluar, domethënë nuk ka nevojë për ndonjë tabelë përkthimi të nevojshme për një sulm të kanalit anësor.



PËRMBAJTJA

Djema të gjithë janë një dhuratë. Ne po flasim për një gjë të tillë si Intel AES-NI, kjo mund të gjendet në BIOS, por çfarë është ajo? Ne do të zbulojmë. Dhe kështu gjeta faqen zyrtare të Intel-it, ku shkruhet se Intel AES-NI është një grup i caktuar komandash kriptimi që plotëson algoritmin Advanced Encryption Standard (AES) dhe përshpejton procesin e kriptimit të të dhënave në procesorët Intel Xeon (këto janë serverë ) dhe Intel Core (shtëpia e zakonshme).

Intel AES-NI përfshin shtatë komanda të reja dhe ju lejon të mbroni të dhënat e tipit në një nivel më të lartë sigurie. Në parim, gjithçka është e qartë, Intel AES-NI është një lloj kriptimi i ri, por pse i duhet një personi i zakonshëm? Do të përpiqem të zbuloj ...

Po, domethënë, AES-NI kryen disa aspekte të AES në nivelin e harduerit, domethënë pikërisht në vetë procesin. Epo, tani kuptova pak. Kjo do të thotë, AES-NI përmirëson punën e AES, përshpejton llojin. Duhet të kodohet më shpejt, e vetmja gjë që nuk e kuptova është se çfarë të kriptoni? A është disku i koduar në Windows, apo arkivi WinRAR do të krijohet më shpejt? Kjo është ajo që unë ende nuk mund ta kuptoj. Por gjeta disa sqarime për këtë çështje, hidhini një sy:

Kjo do të thotë, kriptimi i BitLocker duhet të jetë më i shpejtë. Por në lidhje me transaksionet në internet, nuk e kuptoj fare këtë .. A është e mundur që procesori të marrë pjesë në enkriptimin e lidhjeve në internet? Për të gjithë procesi i transaksionit zakonisht është i koduar, madje edhe protokolli HTTPS përdoret për këtë ....

Me pak fjalë, djema, më duket se kuptoj gjithçka. Ekziston një gjë e tillë si AES, apo jo? Çfarë është kjo? Ky është një algoritëm simetrik i enkriptimit të bllokut, me pak fjalë, lojë. Por kjo nuk është çështja. E kuptoj që AES përdoret në disa programe, a është logjike? Ja ku shkoni. Por opsioni Intel AES-NI, ai disi shpejton punën e algoritmit AES, a e kuptoni? Sepse ky opsion funksionon në nivelin e harduerit pikërisht gjatë procesit.

Atëherë një pyetje e tillë, rezulton se Intel AES-NI duhet të aktivizohet në mënyrë që diçka të kodohet atje më shpejt? Po, rezulton se kjo është pikërisht ajo që është. Kam lexuar gjithashtu që programet e enkriptimit të diskut mund të përdorin Intel AES-NI, për shembull, një nga këto programe është PGPdisk.

Djema, gjeta një foto shumë interesante, e cila tregon avantazhin e përdorimit të AES-NI, shikoni:

Epo, është një ndryshim i dukshëm ...

Pra, çfarë përfundimi mund të nxirret? Intel AES-NI është një lloj gjëje që është e integruar në vetë procesorin, në fakt, këto janë një lloj udhëzimesh dhe këto udhëzime ndihmojnë algoritmin AES të funksionojë më shpejt. Vetë algoritmi mund të përdoret nga programe të ndryshme, dhe me ndihmën e Intel AES-NI, këto programe do ta bëjnë punën e tyre më shpejt =)

Epo, djema, ky artikull është Intel AES-NI në BIOS:

Djema, këtu kuptuam se çfarë është Intel AES-NI, por nëse diçka shkon keq, atëherë mos qortoni shumë. Paç fat dhe qofshi të lumtur!

Artikujt kryesorë të lidhur