En digital signatur er en kryptografisk mekanisme som brukes til å verifisere ektheten og integriteten til digitale data. Tenk på det som en digital versjon av en vanlig håndskreven signatur, men med et høyere nivå av kompleksitet og sikkerhet.
Enkelt sagt kan vi beskrive en digital signatur som en kode som legges ved en melding eller et dokument. Etter at koden er generert, fungerer den som et bevis på at meldingen ikke har blitt tuklet med på vei fra avsender til mottaker.
Selv om konseptet med å sikre kommunikasjon ved hjelp av kryptografi kan dateres langt tilbake i tid, ble ikke digitale signaturer mulig før på 1970-tallet – takket være utviklingen av kryptografi med offentlig nøkkel (PKC / Public-Key Cryptography). Så for å forstå hvordan digitale signaturer fungerer, må vi først vite noen grunnleggende ting om hash-funksjoner og kryptografi med offentlig nøkkel.
Hash-funksjoner
Hashing er et av grunnelementene i et digitalt signatursystem. Prosessen med hashing innebærer å transformere data av en hvilken som helst størrelse til utdata med en fast størrelse. Dette gjøres av en spesiell type algoritmer som kalles hash-funksjoner. Utdataene som blir generert av en hash-funksjon, er kjent som en hash-verdi eller meldings-«digest».
Når såkalte kryptografiske hash-funksjoner kombineres med kryptografi, kan de brukes til å generere en hash-verdi (digest) som fungerer som et unikt digitalt fingeravtrykk. Det betyr at en endring i inndataene (meldingen) fører til en helt annen utdata (hash-verdi). Og det er derfor kryptografiske hash-funksjoner blir mye brukt for å verifisere ektheten til digitale data.
Kryptografi med offentlig nøkkel (PKC)
Kryptografi med offentlig nøkkel, eller PKC, sikter til et kryptografisk system som bruker to nøkler: en offentlig nøkkel og en privat nøkkel. De to nøklene er matematisk relatert og kan brukes til både datakryptering og digitale signaturer.
Som krypteringsverktøy er PKC sikrere enn de mer elementære metodene for symmetrisk kryptering. Eldre systemer benytter samme nøkkel for å kryptere og dekryptere informasjon, mens PKC krypterer data med den offentlige nøkkelen og dekrypterer dataene med den tilhørende private nøkkelen.
I tillegg kan PKC-opplegget også brukes i generering av digitale signaturer. Kort fortalt består prosessen av å hashe en melding (eller digitale data) sammen med underskriverens private nøkkel. Deretter kan mottakeren av meldingen sjekke om signaturen er gyldig, ved å bruke den offentlige nøkkelen som underskriveren har oppgitt.
I noen situasjoner kan digitale signaturer innebære kryptering, men ikke alltid. Bitcoin-blokkjeden bruker for eksempel PKC og digitale signaturer, men i motsetning til det veldig mange tror, er det ingen kryptering i prosessen. Teknisk sett bruker Bitcoin den såkalte Elliptic Curve Digital Signature Algorithm (ECDSA / algoritme for digital signatur med elliptisk kurve) for å autentisere transaksjoner.
Slik fungerer digitale signaturer
I konteksten kryptovaluta består et digitalt signatursystem ofte av tre grunnleggende trinn: hashing, signering og verifisering.
Hashing av dataene
Det første trinnet er hashing av meldingen eller de digitale dataene. Dette gjøres ved å sende dataene gjennom en hashing-algoritme slik at det genereres en hash-verdi (dvs. meldingssammendraget (digesten)). Meldingene kan som nevnt variere veldig i størrelse, men når de hashes, får alle hash-verdiene samme lengde. Dette er den mest grunnleggende egenskapen til en hash-funksjon.
Men hashing av dataene er ikke nødvendig for å produsere en digital signatur fordi man kan bruke en privat nøkkel for å signere en melding som ikke ble hashet i det hele tatt. Men for kryptovalutaer hashes dataene alltid, fordi digest-er med fast lengde er en del av hele prosessen.
Signering
Etter at informasjonen er hashet, må avsenderen av meldingen signere den. Det er her kryptografi med offentlig nøkkel kommer inn i bildet. Det finnes flere typer algoritmer for digital signatur, og hver av dem har sin egen mekanisme. Men i hovedsak blir meldingen som hashes, signert med en privat nøkkel, og mottakeren av meldingen kan deretter sjekke gyldigheten ved å bruke den tilsvarende offentlige nøkkelen (levert av underskriveren).
Sagt på en annen måte: Hvis den private nøkkelen ikke blir tatt med når signaturen genereres, kan ikke mottakeren av meldingen bruke den tilsvarende offentlige nøkkelen for å verifisere at den er gyldig. Både offentlige og private nøkler genereres av avsenderen av meldingen, men bare den offentlige nøkkelen deles med mottakeren.
Det er verdt å merke seg at digitale signaturer er direkte relatert til innholdet i hver melding. Så i motsetning til håndskrevne signaturer, som er ganske like uavhengig av meldingen, har hver digitalt signert melding ulik digital signatur.
Verifisering
La oss se på et eksempel som illustrerer hele prosessen frem til det siste verifiseringstrinnet. Tenk deg at Anne skriver en melding til Benjamin, hasher den og deretter kombinerer hash-verdien med den private nøkkelen (Annes) for å generere en digital signatur. Signaturen fungerer som et unikt digitalt fingeravtrykk av den aktuelle meldingen.
Når Benjamin mottar meldingen, kan han sjekke om den digitale signaturen er gyldig, ved å bruke den offentlige nøkkelen Anne oppga. På den måten kan Benjamin være sikker på at signaturen ble opprettet av Anne, for det er bare hun som har den private nøkkelen som tilsvarer den offentlige nøkkelen (det bør bare være hun som har den).
Så det er superviktig for Anne at hun holder den private nøkkelen hemmelig. Hvis en annen får tak i Anne sin private nøkkel, kan vedkommende lage digitale signaturer og utgi seg for å være Anne. I sammenheng med Bitcoin betyr dette at noen kan bruke Anne sin private nøkkel til å flytte eller bruke hennes bitcoin uten hennes tillatelse.
Hvorfor er digitale signaturer viktige?
Digitale signaturer brukes ofte for å oppnå tre resultater: dataintegritet, autentisering og ikke-avvisning.
Dataintegritet. Benjamin kan verifisere at meldingen fra Anne ikke ble endret underveis. Selv en liten endring i meldingen gir en helt annen signatur.
Autentisitet. Så lenge Anne sin private nøkkel holdes hemmelig, kan Benjamin bruke den offentlige nøkkelen hennes for å bekrefte at de digitale signaturene ble opprettet av Anne og ikke av noen andre.
Ikke-avvisning. Når signaturen er generert, kan ikke Anne en gang i fremtiden nekte for å ha signert den – med mindre den private nøkkelen hennes på en eller annen måte kommer på avveie.
Bruksområder
Digitale signaturer kan brukes på ulike typer digitale dokumenter og sertifikater. Derfor har de flere bruksområder. Her er noen av de vanligste:
Informasjonsteknologi. For å øke sikkerheten til internettkommunikasjonssystemer.
Finans. Digitale signaturer kan implementeres i revisjoner, utgiftsrapporter, låneavtaler og mye mer.
Juridisk. Digital signering av alle slags forretningskontrakter og juridiske avtaler, deriblant offentlige papirer.
Helsevesen. Digitale signaturer kan hindre forfalskning av resepter og journaler.
Blokkjede. Digitale signaturer sørger for at det bare er de rettmessige eierne av kryptovalutaene som kan signere en transaksjon for å flytte pengene (så lenge de private nøklene ikke kommer på avveie).
Begrensninger
De store utfordringene for digitale signaturer er knyttet til minst tre krav:
Algoritmen. Kvaliteten på algoritmene som brukes i en digital signatur, er viktig. Dette inkluderer valg av pålitelige hash-funksjoner og kryptografiske systemer.
Gjennomføringen. Hvis algoritmene er gode, men implementeringen ikke er det, kommer det digitale signatursystemet sannsynligvis til å inneholde feil.
Den private nøkkelen. Hvis de private nøklene blir lekket eller på annen måte kommer på avveie, blir egenskapene autentisitet og ikke-avvisning ugyldige. For brukere av kryptovaluta kan det å miste en privat nøkkel føre til store økonomiske tap.
Elektroniske signaturer kontra digitale signaturer
Enkelt sagt er digitale signaturer én bestemt type elektroniske signaturer – som igjen sikter til en hvilken som helst elektronisk metode for å signere dokumenter og meldinger. Dermed er alle digitale signaturer elektroniske signaturer, mens det motsatte ikke alltid er tilfellet.
Hovedforskjellen mellom dem er autentiseringsmetoden. Digitale signaturer benytter kryptografiske systemer, for eksempel hash-funksjoner, kryptografi med offentlig nøkkel og krypteringsteknikker.
Avsluttende tanker
Hash-funksjoner og kryptografi med offentlig nøkkel er kjernen i digitale signatursystemer, som nå benyttes på mange forskjellige bruksområder. Hvis digitale signaturer implementeres riktig, kan de øke sikkerheten, sikre integriteten og legge til rette for autentisering av alle typer digitale data.
I blokkjedeverdenen brukes digitale signaturer til å signere og autorisere kryptovalutatransaksjoner. Dette er spesielt viktig for Bitcoin fordi signaturene sikrer at myntene bare kan brukes av de som har de tilsvarende private nøklene.
Selv om vi har brukt både elektroniske og digitale signaturer i årevis, er det fortsatt mye rom for vekst. En stor del av dagens byråkrati er fortsatt basert på papirarbeid, men vi kommer sannsynligvis til å se mer bruk av digitale signatursystemer etter hvert som vi går over til et mer digitalisert system.