Hvis du noen gang har lurt på hvordan Bitcoin-gruvearbeidere finner gyldige blokker, eller hvordan påloggingssystemer hindrer noen i å kapre økten din, har du allerede møtt konseptet nonce. I denne artikkelen ser vi på hva en kryptografisk nonce er, med konkrete eksempler fra Bitcoin-gruvedrift og OAuth-autentisering. Ifølge NIST (US National Institute of Standards and Technology) er en nonce en tilfeldig eller ikke-repeterende verdi som brukes for å garantere levende overføring og forhindre replay-angrep. Du vil forstå hvorfor denne lille verdien er avgjørende for både sikkerhet og konsensus.

Bitcoin nonce-bredde: 32 bits ·
Omrentlige hash-forsøk per sekund (nettverk): 350 exahashes ·
Typisk OAuth-nonce-lengde: 128 bits ·
Første dokumenterte bruk av nonce: 1981 (Needham-Schroeder)

Rask oversikt

1Bekreftede fakta
  • Nonce må være unik per kryptografisk operasjon (NIST)
  • Bitcoin-nonce er et 32-bits heltall (Investopedia)
  • Ethereum-kontononce øker med én per transaksjon (Tatum)
2Hva som er uklart
  • Nøyaktig sannsynlighet for nonce-kollisjon i SHA-256-gruvedrift ved dagens hashrate er estimert, men ikke presist dokumentert. (Reddit r/cryptography)
  • Fremtidige blokkjeder kan erstatte eller modifisere nonce-mekanismer – eksakte design er ennå ikke spesifisert. (Gopher Security)
  • Nøyaktig virkemåte for nonce i praktisk kryptering for å produsere ulike utdata ved gjentatt kryptering av samme data er fortsatt gjenstand for diskusjon. (Reddit r/cryptography)
  • Bruk av tidsstempler med nonce for å avvise gamle forespørsler har varierende implementering på tvers av protokoller. (Reddit r/cryptography)
3Tidslinjesignal
  • 1981 – Needham-Schroeder-protokollen introduserer nonce for autentisering. (Wikipedia)
  • 1997 – Hashcash bruker nonce for proof-of-work (anti-spam). (Gate)
  • 2009 – Bitcoin adopterer Hashcash-stil nonce for gruvedrift. (Money on Chain)
  • 2012 – OAuth 2.0-spesifikasjonen definerer nonce-parameter for ID-tokens. (Auth0)
4Hva som skjer videre
  • Nye protokoller kan utvide nonce til kvantesikre kryptosystemer. (NHIMG)
  • Flere blokkjeder vurderer å erstatte nonce med alternative konsensusmekanismer. (Cube Exchange)

Nøkkelfakta om nonce-størrelser og bruksområder:

Nøkkel fakta om nonce
Parameter Verdi
Bitcoin nonce-feltstørrelse 32 bits (4 byte)
Ethereum-kontononce Rekkefølgenummer som starter på 0 per konto
OAuth 2.0 nonce-parameter Valgfri streng i ID-token, bundet til sesjon
Første kjente nonce-bruk 1981, Needham–Schroeder-protokollen

Hva er en nonce i krypto?

En kryptografisk nonce (number used once) er en verdi som brukes nøyaktig én gang i en kommunikasjonssesjon. Formålet er å skille hver forespørsel eller transaksjon fra alle tidligere, slik at en angriper ikke kan kopiere og sende den på nytt – det vi kaller et replay-angrep.

Hvorfor dette betyr noe

Uten nonce ville en hacker kunne fange opp Bitcoin-transaksjonen din og sende den på nytt, og dermed tømme lommeboken din to ganger. Noncen gjør hver overføring unik.

Hvordan genereres en nonce?

  • I gruvedrift: gruvearbeidere itererer et 32-bits heltall fra 0 til 4 294 967 295.
  • I autentisering: serveren genererer en tilfeldig UUID eller en kryptografisk sikker tilfeldig streng.
  • Kravene er enten unikhet eller uforutsigbarhet – ofte begge (se NIST-definisjon).

Hva er kjerneegenskapene til en kryptografisk nonce?

  • Unik per bruk (samme nonce skal ikke forekomme to ganger innenfor protokollens levetid).
  • Ofte tilfeldig eller pseudo-tilfeldig for å forhindre gjetting.
  • Tilstrekkelig bitlengde for å unngå kollisjon – typisk 32–128 bits avhengig av bruksområde.

Konsekvensen: Enten du miner Bitcoin eller logger på en nettbank, avhenger sikkerheten av at denne verdien forblir unik. Uten den ville kryptografien falle sammen.

Kort oppsummert: Noncen er den usynlige garantisten for at hver kryptografisk handling skiller seg fra alle andre – uten den ville replay-angrep være trivielle.

Hva er et eksempel på en nonce?

To helt forskjellige domener – Bitcoin-gruvedrift og OAuth 2.0 – viser hvordan samme konsept får ulik implementasjon.

Eksempel: Bitcoin-gruvedrift (hash-nonce)

Bitcoin-gruvearbeidere tar en blokk med transaksjoner, legger til en nonce (32-bit verdi), hasher alt, og sjekker om resultatet er under et mål. Hvis ikke, øker de nonce med 1 og prøver igjen. Investopedia forklarer at dette gjentas milliarder av ganger per sekund. En vellykket hash kan se slik ut: 00000000000000000002a7… – de innledende nullene bekrefter at noncen var riktig.

Et konkret nonce-eksempel i heksadesimal: d36e3c7b (8 heks-sifre = 32 bits).

Eksempel: OAuth 2.0-autentisering (autentiserings-nonce)

Når du logger inn med Google eller Facebook, sendes en nonce med i forespørselen. Auth0 (identitetsplattform) beskriver nonce som et replay-angrepsvern: etter at tokenet er utstedt, inkluderer ID-tokenet en nonce – en UUID på 128 bits. Klienten verifiserer at denne matcher den opprinnelige verdien, ellers avvises tokenet.

Eksempel på en OAuth-nonce: d36e3c7b-5e8a-4f1c-9d2b-1a2b3c4d5e6f (128 bits UUID).

Forskjellen er tydelig: Bitcoin-noncen må varieres raskt og er liten (32 bits), mens OAuth-noncen må være uforutsigbar og stor nok til å unngå gjetting.

Kort oppsummert: Begge domenene bruker nonce for unikhet, men Bitcoin prioriterer hastighet og liten størrelse, mens OAuth prioriterer uforutsigbarhet og stor bitlengde.

Hva er formålet med en nonce?

Hovedoppgaven er å sikre ferskhet og forhindre replay-angrep. I blokkjeder fungerer noncen samtidig som mekanismen for proof-of-work – den gjør at gruvearbeidere må bruke regnekraft for å finne en gyldig hash.

Hvorfor er unikhet viktig i kryptografi?

Uten unikhet ville en angriper kunne kopiere en gyldig melding og sende den på nytt. Okta (skyleverandør for autentisering) understreker at nonce er et av de mest grunnleggende verktøyene for å sikre live-dataoverføring.

Hvordan forhindrer en nonce replay-angrep?

I autentisering: serveren sender en nonce til klienten. Klienten inkluderer nonce i sitt svar. Serveren sjekker at nonce ikke er brukt før. Hvis en angriper prøver å sende det samme svaret på nytt, blir noncen avvist fordi den allerede er sett. FortyTwo Docs bekrefter at OpenID Connect krever nonce i implisitt flyt for å redusere replay-risiko.

Konsekvensen: Én enkelt verdi skiller mellom en legitim forespørsel og et angrep.

Kort oppsummert: Noncen gjør at serveren kan skille en fersk forespørsel fra en gammel kopi – uten den ville autentisering være fundamentalt utrygt.

Hva er forskjellen mellom hash og nonce?

En hash er et utdata fra en kryptografisk hashfunksjon – for eksempel SHA-256. En nonce er et inndata. Du kan tenke på nonce som en knot du vrir på for å endre hash-resultatet.

Fire egenskaper, ett mønster:

Egenskap Hash Nonce
Rolle Utdata Inndata
Deterministisk? Ja – samme inndata gir samme hash Nei – varieres av brukeren
Lengde (Bitcoin) 256 bits 32 bits
Bruk i gruvedrift Måles mot målverdi Endres for å oppnå gyldig hash

Hvorfor dette betyr noe: Uten nonce ville gruvearbeidere ikke kunne variere blokkhashen – da ville alle blokker være forhåndsbestemt og proof-of-work ville mistet sin hensikt.

Hva er nonce i autentisering?

I autentisering fungerer nonce som en engangskode som binder en sesjon til en konkret forespørsel. Både OAuth 2.0 og HTTP Digest Access Authentication bruker det.

Nonce i OAuth 2.0 og OpenID Connect

Auth0s dokumentasjon (2025) viser at nonce er obligatorisk i implisitt flyt med form post – klienten sender en nonce i autorisasjonsforespørselen, og ID-tokenet returnerer samme verdi. Hvis verdiene ikke stemmer, avvises tokenet.

Nonce i HTTP Digest Access Authentication

I eldre protokoller som Digest Authentication sender serveren en nonce som klienten hasher sammen med passordet. Securing.pl (sikkerhetsblogg) påpeker at dette forhindrer at passordet sendes i klartekst, men noncens rolle er likevel å forhindre replay.

Kjernen: I autentisering er nonce en forhandlingsverdi som sikrer at svaret kun er gyldig for akkurat den økten.

Sammenligning: Nonce-typer side om side

Tre varianter, ett formål: unikhet. Bitcoin hash-nonce (32 bits) varieres raskt for proof-of-work. Ethereum-kontononce (økende heltall) teller transaksjoner. OAuth-nonce (128 bits UUID) beskytter mot sesjonskapring. Hver tilpasset sitt sikkerhetsmål.

Bekreftede fakta

  • Nonce må være unik per kryptografisk operasjon (Okta).
  • Bitcoin-nonce er et 32-bits heltall (Securing.pl).
  • Ethereum-kontononce øker med én per transaksjon (FortyTwo Docs).
  • OAuth 2.0 bruker nonce for å binde ID-token til sesjon (Auth0 Docs).

Hva som er uklart

  • Nøyaktig sannsynlighet for nonce-kollisjon i SHA-256-gruvedrift ved dagens hashrate er estimert, men ikke presist dokumentert.
  • Fremtidige blokkjeder kan erstatte eller modifisere nonce-mekanismer – eksakte design er ennå ikke spesifisert.

«I cryptography, a nonce is an arbitrary number that can be used just once in a cryptographic communication.»

Wikipedia (kryptografisk nonce)

«A Bitcoin nonce is a 32-bit number that miners use to attempt to generate a valid hash.»

Investopedia (Bitcoin-nonce)

Kort sagt: En nonce er ikke bare en tekniske detalj – den er limet som holder kryptografisk sikkerhet sammen. For Bitcoin-gruvearbeidere: uten nonce, ingen proof-of-work. For utviklere som implementerer OAuth: uten nonce, åpne dører for replay-angrep. Valget er klart: inkluder nonce, eller aksepter risikoen.

For en mer grundig forklaring på hva en nonce i krypto er, kan du lese en annen artikkel som går i dybden på definisjonen og bruksområdene.

Ofte stilte spørsmål

Hva er en nonce i blokkjede?

En nonce i blokkjede er en verdi som gruvearbeidere varierer for å finne en gyldig hash. For Bitcoin er det et 32-bits heltall. For Ethereum er det et rekkefølgenummer som teller transaksjoner per konto.

Hvor lang er en Bitcoin-nonce?

32 bits (4 byte), med en verdiområde fra 0 til 4 294 967 295.

Kan en nonce gjenbrukes?

Nei – det grunnleggende prinsippet er at den brukes én gang. Gjenbruk ville åpne for replay-angrep.

Hva skjer hvis to gruvearbeidere finner samme nonce?

Det er mulig, men sannsynligheten er ekstremt liten. Hvis det skjer, godtar nettverket den første blokken den mottar; den andre forkastes.

Er nonce det samme som salt?

Nei. Salt brukes i passordhashing for å gjøre samme passord til forskjellige hasher. Nonce brukes for å sikre ferskhet i en protokoll.

Bruker Ethereum nonce for gruvedrift også?

Ethereum brukte tidligere proof-of-work med en nonce, men etter overgangen til proof-of-stake i 2022 brukes ikke lenger nonce for gruvedrift. Ethereum-kontononce eksisterer fortsatt for transaksjonsrekkefølge.

Er en nonce alltid tilfeldig?

Ikke nødvendigvis. Bitcoin-noncen er sekvensiell (0,1,2…). OAuth-noncer er ofte tilfeldige UUID-er. Kravet er unikhet, ikke tilfeldighet.

Hva brukes nonce i OAuth 2.0 til?

Den brukes for å binde ID-tokenet til en spesifikk autentiseringsforespørsel og forhindre replay-angrep. Hvis noncen i tokenet ikke matcher den opprinnelige verdien, avvises det.

Relatert lesning