1. [Wiki](https://feex.it/wiki/)
2. [Maskinvare](https://feex.it/wiki/hardware/)
3. [Systemer og arkitektur](https://feex.it/wiki/hardware/system/)
4. SHA-instruksjonsutvidelser

# SHA-instruksjonsutvidelser

Arkitekturreferanse: Feex

Også kalt SHA

Den opprinnelige x86 SHA-utvidelsen akselererer utvalgte operasjoner som brukes i SHA-1 og SHA-256. En generisk SHA-funksjonsetikett etablerer ikke maskinvarestøtte for enhver SHA-algoritme.

## Dette må du vite

Den opprinnelige x86 SHA-utvidelsen akselererer utvalgte operasjoner som brukes i SHA-1 og SHA-256. En generisk SHA-funksjonsetikett etablerer ikke maskinvarestøtte for enhver SHA-algoritme.

## Slik fungerer det

Den opprinnelige utvidelsen gir instruksjoner for meldingsplanlegging og rundebehandling for SHA-1 og SHA-256. Programvare utfører fortsatt utfylling (padding), blokkhåndtering og den fullstendige hash-konstruksjonen. SHA-256 tilhører SHA-2, men SHA-512 og SHA-3 har andre algoritmer og må ikke utledes fra den opprinnelige funksjonsbiten.

## Hvor det er nyttig

Et hashing-bibliotek kan velge en spesialisert SHA-256-komprimeringsrutine når utvidelsen er brukbar. Små meldinger kan bruke betydelig tid i oppsett og omkringliggende kode, mens større arbeidsbelastninger også avhenger av minne og parallellitet.

## Slik kontrolleres støtte og aktivering

For den opprinnelige SHA-utvidelsen, kontroller CPUID.07H.00H:EBX bit 29 etter å ha validert sidestøtte. Verifiser algoritmen og den nøyaktige instruksjonsfamilien som etterspørres av biblioteket, ikke bare en generisk sha-etikett vist av et verktøy.

Bruk en vedlikeholdt kryptografisk implementering som håndterer funksjonsvalg, feiltilstander og den fullstendige algoritmen. Maskinvareakselerasjon leverer primitiver; nøkkelhåndtering, autentisering, nonceregler og protokollvalg forblir programvarens ansvar.

## Hva funksjonen ikke etablerer

Eksistensen av en instruksjon gjør ikke SHA-1 egnet for en ny sikkerhetsprotokoll. Maskinvareakselerasjon endrer ikke en algoritmes kollisjonsresistens eller reparerer usikker protokolldesign. Senere SHA512-utvidelser har separat enumerering.

## Kompatibilitet og ytelse i praksis

Et funksjonsfelt er ikke en produktsertifisering eller bevis på at en bestemt applikasjon er sikker. Ytelse avhenger av meldingsstørrelser, modus, puljering og resten av protokollen. Sjekk den faktiske leverandøren og hold dens sikkerhetsoppdateringer oppdaterte.

## En praktisk sjekkliste for verifisering

1. Registrer den nøyaktige prosessor- eller plattformmodellen og de involverte applikasjons-, OS- og kjøretidsversjonene. Bevar ordlyden i den faktiske feilen eller kravet.
2. Sjekk produsentreferansen for akkurat den modellen, og undersøk deretter den faktiske kapasiteten og aktiverte tilstanden i miljøet der programmet kjører.
3. Sammenlign ethvert krav til den valgte binærfilen eller baksiden. En lignende navngitt funksjon, et alias eller en bred teknologietikett er ikke tilstrekkelig.
4. Bekreft at applikasjonen valgte den tiltenkte implementeringen. Bruk dens dokumenterte diagnostikk og en støttet reservemetode når kravene ikke er oppfylt.
5. Gjør én støttet endring om gangen og gjenta den samme arbeidsbelastningen. Hold den opprinnelige konfigurasjonen og gjenopprettingsstien tilgjengelig.

## Hvis funksjonen er oppført, men programvare ikke kan bruke den

Start med den nøyaktige komponenten som feiler. En maskinwaredatabase beskriver registrert kapasitet; operativsystemet eller hypervisoren kan eksponere et annet reelt miljø. En feil om ulovlig instruksjon krever også undersøkelse av den faktiske feilende instruksjonen og binærbyggingen, fordi korrupsjon eller en urelatert, ustøttet instruksjon kan gi et lignende symptom.

Installer applikasjonen, driveren eller kjøretidsversjonen som støttes for den nøyaktige plattformen, og bruk om nødvendig leverandørens dokumenterte grunnlinje- eller reservebygg. En programvareoppdatering kan ikke opprette en instruksjon som prosessoren mangler fastvare. Endringer i fastvare og sikkerhetspolicy bør følge systemprodusentens prosedyre og en gjenopprettingsplan i stedet for en generisk optimaliseringsoppskrift.

## Relaterte funksjoner og nyttige skiller

[AES-NI](https://feex.it/wiki/l/nb/hardware/system/aes-ni/) · [PCLMULQDQ og CLMUL](https://feex.it/wiki/l/nb/hardware/system/pclmulqdq/) · [AVX2](https://feex.it/wiki/l/nb/hardware/system/avx2/)

## Kilder og omfang for denne forklaringen

[Intel 64 and IA-32 Architectures Software Developer's Manual](https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html) · [NIST Secure Hash Standard, FIPS 180-4](https://csrc.nist.gov/pubs/fips/180-4/upd1/final)

Disse referansene etablerer arkitektonisk oppførsel og programvarekrav. De verifiserer ikke uavhengig hver funksjonsverdi på en koblet maskinvaremodells side. For modellstøtte, bruk den sidens produsentdokumentasjon og kontroller den reelle systemkonfigurasjonen. Denne artikkelen oppgir ikke en referansemåling, sertifisering eller dato for uavhengig gjennomgang.

## Relatert

Disse enhetene er koblet til denne artikkelen. Type vises på hver kobling.

[AES-NI: Arkitekturreferanse](https://feex.it/wiki/l/nb/hardware/system/aes-ni/)[PCLMULQDQ og CLMUL: Arkitekturreferanse](https://feex.it/wiki/l/nb/hardware/system/pclmulqdq/)[AVX2: Arkitekturreferanse](https://feex.it/wiki/l/nb/hardware/system/avx2/)

## Kilder og verifisering

Redaksjonelt eierskap: Feex. Ingen uavhengig vurderingsdato er registrert. [Hvordan vi gjør undersøkelser](https://feex.it/wiki/research/).

- [Intel 64 and IA-32 Architectures Software Developer's Manual ](https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html)· Bind 1 og 2 beskriver de navngitte instruksjonsfamiliene og CPUID; bind 3 beskriver tilstands-, sidevekslings-, VMX- og beskyttelseskontroller. Arkitekturdokumentasjon etablerer ikke støtte for en bestemt modell.
- [NIST Secure Hash Standard, FIPS 180-4 ](https://csrc.nist.gov/pubs/fips/180-4/upd1/final)· Definerer de navngitte SHA-algoritmene. Algoritmedefinisjoner innebærer ikke at den opprinnelige x86 SHA-utvidelsen akselererer hvert medlem.

## Var denne artikkelen nyttig?

Et ja eller nei holder. Velg en grunn hvis du vil, eller legg til en kort kommentar.

Kjappe fakta

Den korte identiteten til denne siden. Spesifikasjoner, kilder og hele historien forblir i artikkelen.

---

Source: [Canonical Feex Wiki page](https://feex.it/wiki/l/nb/hardware/system/sha/)

[Developer guide](https://feex.it/wiki/developers/) | [API policy](https://feex.it/developers/api-policy/) | [Agent guidance](https://feex.it/wiki/llms.txt)
