Gå til indhold

AES-NI

ArkitekturreferenceFeex

AES-NI er en x86-instruktionsudvidelse til AES-krypterings- og dekrypteringsrunder samt relateret nøgleskemabearbejdning. Den accelererer dele af en kryptografisk implementering i stedet for at levere en hel sikker protokol.

Hvad du behøver at vide

AES-NI er en x86-instruktionsudvidelse til AES-krypterings- og dekrypteringsrunder samt relateret nøgleskemabearbejdning. Den accelererer dele af en kryptografisk implementering i stedet for at levere en hel sikker protokol.

Sådan virker det

Instruktioner som f.eks. AESENC og AESDEC transformerer en 128-bit AES-tilstand, mens separate former håndterer afsluttende runder og hjælper med nøgleudvidelse. En AES-implementering vælger antallet og rækkefølgen af runder for sin nøglelængde. Instruktionerne vælger ikke i sig selv en tilstand, allokerer ikke noncer, autentificerer ikke meddelelser eller beskytter lagrede nøgler.

Hvor det er nyttigt

Et vedligeholdt kryptografisk bibliotek kan udføre dispatch til AES-NI for en understøttet AES-tilstand. AES-GCM kræver også autentificeringsbehandling, som ofte accelereres med carry-fri multiplikation. Protokolforhandling, record-layout og meddelelseslængde påvirker end-to-end-ydeevnen.

Sådan kontrolleres understøttelse og aktivering

CPUID.01H:ECX bit 25 angiver ældre AES-NI. Afviklingsmiljøet skal håndtere XMM-tilstand. Kontroller kravene til VAES og vektortilstand separat for bredere VEX- eller EVEX-implementeringer, og brug det kryptografiske biblioteks understøttede dispatch-faciliteter.

Brug en vedligeholdt kryptografisk implementering, der håndterer funktionsvalg, fejltilstande og den komplette algoritme. Hardwareacceleration leverer primitiver; nøglehåndtering, autentificering, nonce-regler og protokolvalg forbliver softwares ansvarsområder.

Hvad funktionen ikke fastslår

Understøttelse af AES-NI er ikke en sikkerhedscertificering, malware-vurdering eller garanti mod sidekanaler i den omgivende kode. AES er ikke SHA. VAES opregnes separat, og en gæst kan skjule AES-NI, selv når værten har det.

Kompatibilitet og ydeevne i praksis

Et funktionsfelt er ikke en produktcertificering eller bevis på, at en bestemt applikation er sikker. Ydeevne afhænger af meddelelsesstørrelser, tilstand, batchbehandling og resten af protokollen. Tjek den faktiske udbyder, og hold dens sikkerhedsopdateringer ajour.

En praktisk tjekliste til verifikation

  1. Registrer den nøjagtige processor- eller platformsmodel samt de involverede applikations-, OS- og runtime-versioner. Bevar formuleringen af den faktiske fejl eller det faktiske krav.
  2. Tjek producentreferencen for den nøjagtige model, og undersøg derefter den effektive kapacitet og aktiverede tilstand i det miljø, hvor programmet kører.
  3. Sammenlign ethvert krav for den valgte binære fil eller backend. En funktion med et lignende navn, et alias eller en bred teknologimærkat er ikke tilstrækkelig.
  4. Bekræft, at applikationen har valgt den tilsigtede implementering. Brug dens dokumenterede diagnosticering og et understøttet fallback, når kravene ikke er opfyldt.
  5. Foretag en enkelt understøttet ændring ad gangen, og gentag den samme arbejdsbelastning. Hold den oprindelige konfiguration og gendannelsessti tilgængelig.

Hvis funktionen er anført, men softwaren ikke kan bruge den

Start med den nøjagtige komponent, der fejler. En hardwaredatabase beskriver registreret kapacitet; operativsystemet eller hypervisoren kan udstille et andet effektivt miljø. En illegal-instruction-fejl kræver også undersøgelse af den faktiske fejlbehæftede instruktion og det binære build, fordi korruption eller en urelateret ikke-understøttet instruktion kan frembringe et lignende symptom.

Installer den applikations-, driver- eller runtime-version, der understøttes til den nøjagtige platform, og brug om nødvendigt leverandørens dokumenterede baseline eller fallback-build. En softwareopdatering kan ikke oprette en instruktion, som processoren mangler. Ændringer i firmware og sikkerhedspolitik bør følge systemproducentens procedure og en genopretningsplan frem for en generisk optimeringsopskrift.

Kilder og denne forklaringens omfang

Intel 64 and IA-32 Architectures Software Developer's Manual

Disse referencer fastlægger arkitektonisk adfærd og softwarekrav. De verificerer ikke uafhængigt enhver funktionsværdi på en tilknyttet hardwaremodelside. For modelunderstøttelse skal du bruge den pågældende sides producentdokumentation og kontrollere den effektive systemkonfiguration. Denne artikel leverer ikke et benchmark, en certificering eller en uafhængig revisionsdato.

Kilder og verificering

Redaktionelt ejerskab: Feex. Ingen uafhængig revisionsdato er registreret. Sådan undersøger vi.

Var denne artikel nyttig?

Et ja eller nej er nok. Vælg en grund, hvis du vil, eller tilføj en kort bemærkning.

Var denne artikel nyttig?