En digital signatur är en kryptografisk mekanism som används för att verifiera äktheten och integriteten för digitala data. Vi kan se det som en digital version av de vanliga handskrivna signaturerna, men med högre nivåer av komplexitet och säkerhet.
Enkelt uttryckt kan vi beskriva en digital signatur som en kod som bifogas ett meddelande eller dokument. Efter att ha genererats fungerar koden som ett bevis på att meddelandet inte har manipulerats på vägen från avsändaren till mottagaren.
Även om konceptet att säkra kommunikation med kryptografi fanns redan under antiken, blev digitala signatursystem en möjlig verklighet på 1970-talet – tack vare utvecklingen av kryptografi med offentlig nyckel (Public-Key Cryptography/PKC). För att lära oss hur digitala signaturer fungerar måste vi först förstå grunderna i hashfunktioner och kryptering med offentlig nyckel.
Hashfunktioner
Hashning är ett av grundelementen i ett digitalt signatursystem. Hashningsprocessen innebär att data av alla storlekar omvandlas till utdata med fast storlek. Detta görs av en speciell typ av algoritmer som kallas hashfunktioner. Utdata som genereras av en hashfunktion kallas hashvärde eller systematisering av meddelande.
I kombination med kryptografi kan de så kallade kryptografiska hashfunktionerna användas för att generera ett hashvärde (en systematisering) som fungerar som ett unikt digitalt fingeravtryck. Detta innebär att varje ändring i indata (meddelandet) skulle resultera i helt andra utdata (hashvärde). Och detta är anledningen till att kryptografiska hashfunktioner används i stor utsträckning för att verifiera äktheten hos digitala data.
Kryptografi med offentlig nyckel (Public-key cryptography/PKC)
Kryptering med offentlig nyckel, eller PKC, är ett kryptografiskt system som använder ett par nycklar: en offentlig nyckel och en privat nyckel. De två nycklarna är matematiskt relaterade, och kan användas för både datakryptering och digitala signaturer.
Som ett krypteringsverktyg är PKC säkrare än de mer enkla metoderna för symmetrisk kryptering. Där äldre system förlitar sig på samma nyckel för att kryptera och dekryptera information, möjliggör PKC datadekryptering med den offentliga nyckeln och datakryptering med motsvarande privata nyckel.
Utöver detta kan PKC-systemet även tillämpas vid generering av digitala signaturer. I huvudsak består processen av att hasha ett meddelande (eller digitala data) tillsammans med undertecknarens privata nyckel. Därefter kan mottagaren av meddelandet kontrollera om signaturen är giltig med hjälp av den offentliga nyckeln som tillhandahålls av undertecknaren.
I vissa situationer kan digitala signaturer innebära kryptering, men detta är inte alltid fallet. Till exempel använder Bitcoins blockkedja PKC och digitala signaturer, men till skillnad från vad många tror finns det ingen kryptering i processen. Tekniskt sett använder Bitcoin en så kallad Elliptic Curve Digital Signature Algorithm (ECDSA) för att autentisera transaktioner.
Så fungerar digitala signaturer
När det gäller kryptovalutor består ett digitalt signatursystem ofta av tre grundläggande steg: hashning, signering och verifiering.
Hasha data
Det första steget är att hasha meddelandet eller digitala data. Detta görs genom att skicka data via en hashalgoritm så att ett hashvärde genereras (det vill säga en systematisering av meddelandet). Som nämnts tidigare kan meddelandena variera avsevärt i storlek, men när de hashas har alla deras hashvärden samma längd. Detta är den mest grundläggande egenskapen hos en hashfunktion.
Hashning av data är dock inte ett måste för att producera en digital signatur, eftersom man kan använda en privat nyckel för att signera ett meddelande som inte hashades alls. Men för kryptovalutor hashas alltid data, eftersom hanteringen av fasta längder underlättar hela processen.
Signeringen
När informationen har hashats måste meddelandets avsändare signera den. Det är nu som kryptering med offentlig nyckel kommer in i bilden. Det finns flera typer av digitala signaturalgoritmer, var och en med sin egen speciella mekanism. Men i huvudsak kommer det hashade meddelandet att signeras med en privat nyckel och mottagaren av meddelandet kan sedan kontrollera dess giltighet med hjälp av motsvarande offentliga nyckel (som tillhandahålls av den som signerar).
Om den privata nyckeln inte inkluderas när signaturen genereras kan mottagaren av meddelandet inte använda motsvarande offentliga nyckel för att verifiera dess giltighet. Både offentliga och privata nycklar genereras av avsändaren av meddelandet, men endast den offentliga nyckeln delas med mottagaren.
Digitala signaturer är direkt relaterade till innehållet i varje meddelande. Så till skillnad från handskrivna signaturer, som tenderar att vara desamma oavsett meddelandet, kommer varje digitalt signerat meddelande att ha en annan digital signatur.
Verifiering
Låt oss ta ett exempel för att illustrera hela processen fram till det sista verifieringssteget. Föreställ dig att Alice skriver ett meddelande till Bob, hashar det och sedan kombinerar hashvärdet med sin privata nyckel för att generera en digital signatur. Signaturen fungerar som ett unikt digitalt fingeravtryck av just det meddelandet.
När Bob får meddelandet kan han verifiera giltigheten för den digitala signaturen med hjälp av den offentliga nyckeln från Alice. På så sätt kan Bob vara säker på att signaturen skapades av Alice, eftersom bara hon har den privata nyckeln som motsvarar den offentliga nyckeln (åtminstone är detta vad vi förväntar oss).
Så det är viktigt för Alice att hålla sin privata nyckel hemlig. Om en annan person får tag på Alices privata nyckel kan denne skapa digitala signaturer och låtsas vara Alice. När det gäller Bitcoin betyder detta att någon kan använda Alices privata nyckel för att flytta eller spendera hennes Bitcoins utan hennes tillstånd.
Varför är digitala signaturer så viktiga?
Digitala signaturer används ofta för att uppnå tre saker: dataintegritet, autentisering och icke-avvisning.
Dataintegritet: Bob kan verifiera att Alices meddelande inte ändras under tiden det skickas. Alla ändringar i meddelandet ger en helt annan signatur.
Autentisering: Så länge Alice privata nyckel hålls hemlig kan Bob använda sin offentliga nyckel för att bekräfta att de digitala signaturerna har skapats av Alice och ingen annan.
Icke-avvisning: När signaturen har genererats kommer Alice inte att kunna förneka att hon har signerat den i framtiden, såvida inte hennes privata nyckel hackas på något sätt.
Användningsområden
Digitala signaturer kan tillämpas på olika typer av digitala dokument och certifikat. Därför har de flera tillämpningar. Några av de vanligaste användningsområdena är:
Informationsteknik: för att förbättra säkerheten för internetkommunikationssystem.
Finans: digitala signaturer kan implementeras i revisioner, utgiftsrapporter, låneavtal och mycket mer.
Juridik: digital signering av alla typer av affärsavtal och juridiska avtal, inklusive myndighetskontrakt.
Hälso- och sjukvård: digitala signaturer kan förhindra bedrägeri med recept och journaler.
Blockkedjan: digitala signatursystem säkerställer att endast de rättmätiga ägarna av kryptovalutorna kan underteckna en transaktion för att flytta tillgångarna (så länge deras privata nycklar inte hackas).
Begränsningar
De största utmaningarna med system för digitala signaturer är de beror på minst tre faktorer:
Algoritmerna: kvaliteten på algoritmerna som används i ett digitalt signaturssystem är viktig. Detta inkluderar valet av pålitliga hashfunktioner och kryptografiska system.
Genomförandet: om algoritmerna är bra, men implementeringen inte är det, kommer det digitala signatursystemet sannolikt att ha brister.
De privata nycklarna: om de privata nycklarna läcker eller på något sätt hackas kommer egenskaperna för äkthet och icke-avvisningen att ogiltigförklaras. För kryptovalutaanvändare kan förlusten av en privat nyckel leda till betydande ekonomiska förluster.
Elektroniska signaturer kontra digitala signaturer
Enkelt uttryckt avser digitala signaturer en viss typ av elektroniska signaturer – som hänvisar till alla elektroniska metoder för att underteckna dokument och meddelanden. Därför är alla digitala signaturer elektroniska signaturer, men det motsatta är inte alltid sant.
Den största skillnaden mellan dem är autentiseringsmetoden. Digitala signaturer distribuerar kryptografiska system, till exempel hashfunktioner, kryptering med offentlig nyckel och krypteringstekniker.
Sammanfattningsvis
Hashfunktioner och kryptering med offentlig nyckel är grunden i digitala signatursystem, som nu tillämpas för ett brett spektrum av användningsområden. Om de implementeras korrekt kan digitala signaturer öka säkerheten, säkerställa integriteten och underlätta autentiseringen av alla typer av digitala data.
I blockkedjevärlden används digitala signaturer för att signera och godkänna kryptovalutatransaktioner. De är särskilt viktiga för Bitcoin, eftersom signaturerna säkerställer att coin endast kan spenderas av de individer som har motsvarande privata nycklar.
Även om vi har använt både elektroniska och digitala signaturer i flera år, finns det fortfarande mycket utrymme för tillväxt. En stor del av dagens byråkrati bygger fortfarande på pappersarbete, men vi kommer sannolikt att se mer antagande av digitala signatursystem i och med att vi migrerar till ett mer digitaliserat system.