{"id":10,"date":"2026-06-10T09:14:41","date_gmt":"2026-06-10T09:14:41","guid":{"rendered":"https:\/\/shattered.io\/se\/2026\/06\/10\/digitala-signaturer\/"},"modified":"2026-06-10T13:35:45","modified_gmt":"2026-06-10T13:35:45","slug":"digitala-signaturer","status":"publish","type":"post","link":"https:\/\/shattered.io\/se\/cryptography\/digitala-signaturer\/","title":{"rendered":"Digitala signaturer: hashfunktioner och asymmetriska nycklar"},"content":{"rendered":"<h2 id=\"vad-en-digital-signatur-loser\">Vad en digital signatur l\u00f6ser<\/h2>\n<p>En digital signatur svarar p\u00e5 tv\u00e5 fr\u00e5gor som \u00e4r centrala f\u00f6r f\u00f6rtroende online. Kommer det h\u00e4r meddelandet verkligen fr\u00e5n den avs\u00e4ndare det utger sig f\u00f6r? Och har det \u00e4ndrats efter att det skapades? Med en korrekt fungerande digital signatur kan en mottagare svara ja p\u00e5 den f\u00f6rsta fr\u00e5gan och nej p\u00e5 den andra, utan att beh\u00f6va lita p\u00e5 den kanal meddelandet kom igenom.<\/p>\n<p>Tekniken kombinerar tv\u00e5 byggstenar: en kryptografisk hashfunktion och ett par av asymmetriska nycklar. Var och en av dem l\u00f6ser en del av problemet, och det \u00e4r samspelet mellan dem som g\u00f6r en signatur b\u00e5de s\u00e4ker och praktisk.<\/p>\n<h2 id=\"asymmetriska-nycklar-i-korthet\">Asymmetriska nycklar i korthet<\/h2>\n<p>Asymmetrisk kryptografi bygger p\u00e5 nyckelpar. Varje part har en privat nyckel, som h\u00e5lls hemlig, och en publik nyckel, som f\u00e5r spridas fritt. De tv\u00e5 nycklarna \u00e4r matematiskt kopplade, men den privata g\u00e5r inte att r\u00e4kna ut fr\u00e5n den publika i praktiken.<\/p>\n<p>F\u00f6r signaturer anv\u00e4nds nycklarna s\u00e5 h\u00e4r: den privata nyckeln anv\u00e4nds f\u00f6r att skapa en signatur, och den publika nyckeln anv\u00e4nds f\u00f6r att verifiera den. Eftersom bara innehavaren har sin privata nyckel kan bara den parten skapa en giltig signatur, men vem som helst med den publika nyckeln kan kontrollera signaturen. Det \u00e4r just denna asymmetri som g\u00f6r tekniken anv\u00e4ndbar: f\u00f6rm\u00e5gan att signera \u00e4r privat, medan f\u00f6rm\u00e5gan att verifiera \u00e4r offentlig.<\/p>\n<h2 id=\"varfor-hashfunktionen-behovs\">Varf\u00f6r hashfunktionen beh\u00f6vs<\/h2>\n<p>Man skulle kunna tro att man borde signera hela meddelandet direkt, men i praktiken signeras n\u00e4stan alltid ett hashv\u00e4rde av meddelandet i st\u00e4llet. Det finns goda sk\u00e4l till det.<\/p>\n<p>Asymmetriska operationer \u00e4r ber\u00e4kningsm\u00e4ssigt tunga och passar d\u00e5ligt f\u00f6r stora datam\u00e4ngder. Att signera en stor fil direkt vore l\u00e5ngsamt och opraktiskt. En hashfunktion l\u00f6ser problemet genom att f\u00f6rst komprimera meddelandet, oavsett storlek, till ett fingeravtryck av fast l\u00e4ngd. Det \u00e4r fingeravtrycket som signeras, inte hela meddelandet. Eftersom hashv\u00e4rdet har en liten och konstant storlek blir signeringen snabb \u00e4ven f\u00f6r mycket stora filer.<\/p>\n<p>Lika viktigt \u00e4r att hashfunktionen knyter signaturen till exakt det inneh\u00e5ll som signerades. Tack vare lavineffekten ger \u00e4ven den minsta \u00e4ndring i meddelandet ett helt annorlunda hashv\u00e4rde. Om n\u00e5gon \u00e4ndrar en enda bokstav efter signeringen st\u00e4mmer det nya hashv\u00e4rdet inte l\u00e4ngre med signaturen, och verifieringen misslyckas.<\/p>\n<h2 id=\"att-signera-ett-meddelande\">Att signera ett meddelande<\/h2>\n<p>Signeringsprocessen g\u00e5r till i n\u00e5gra tydliga steg.<\/p>\n<p>F\u00f6rst ber\u00e4knar avs\u00e4ndaren ett hashv\u00e4rde av meddelandet med en kryptografisk hashfunktion. Det ger ett fingeravtryck av fast l\u00e4ngd som representerar meddelandets exakta inneh\u00e5ll.<\/p>\n<p>D\u00e4refter anv\u00e4nder avs\u00e4ndaren sin privata nyckel f\u00f6r att skapa en signatur \u00f6ver det hashv\u00e4rdet. Resultatet \u00e4r sj\u00e4lva den digitala signaturen, ett datablock som h\u00f6r samman b\u00e5de med meddelandet, via hashv\u00e4rdet, och med avs\u00e4ndarens privata nyckel.<\/p>\n<p>Slutligen skickas meddelandet tillsammans med signaturen till mottagaren. Den publika nyckeln beh\u00f6ver mottagaren ocks\u00e5, men den kan distribueras separat, ofta via ett certifikat som beskrivs l\u00e4ngre ner.<\/p>\n<h2 id=\"att-verifiera-en-signatur\">Att verifiera en signatur<\/h2>\n<p>P\u00e5 mottagarsidan v\u00e4nds processen f\u00f6r att kontrollera att allt st\u00e4mmer.<\/p>\n<p>Mottagaren ber\u00e4knar sj\u00e4lv ett hashv\u00e4rde av det mottagna meddelandet, med samma hashfunktion som avs\u00e4ndaren anv\u00e4nde. Det ger mottagarens egen bild av meddelandets fingeravtryck.<\/p>\n<p>Sedan anv\u00e4nder mottagaren avs\u00e4ndarens publika nyckel p\u00e5 signaturen f\u00f6r att f\u00e5 fram det hashv\u00e4rde som avs\u00e4ndaren signerade. Om verifieringen ska lyckas m\u00e5ste detta v\u00e4rde st\u00e4mma \u00f6verens med det hashv\u00e4rde mottagaren sj\u00e4lv just ber\u00e4knade.<\/p>\n<p>St\u00e4mmer de tv\u00e5 v\u00e4rdena \u00f6verens vet mottagaren tv\u00e5 saker. Signaturen skapades med den privata nyckel som h\u00f6r till den publika, vilket bekr\u00e4ftar avs\u00e4ndaren. Och meddelandet \u00e4r of\u00f6r\u00e4ndrat sedan det signerades, eftersom minsta \u00e4ndring skulle ha gett ett annat hashv\u00e4rde. Skiljer sig v\u00e4rdena \u00e5t \u00e4r n\u00e5got fel: antingen har meddelandet \u00e4ndrats, eller s\u00e5 skapades signaturen inte med r\u00e4tt privat nyckel.<\/p>\n<h2 id=\"varfor-en-hashkollision-hotar-signaturer\">Varf\u00f6r en hashkollision hotar signaturer<\/h2>\n<p>Hela konstruktionen vilar p\u00e5 antagandet att hashfunktionen \u00e4r kollisionsbest\u00e4ndig, allts\u00e5 att ingen kan hitta tv\u00e5 olika meddelanden med samma hashv\u00e4rde. Om det antagandet faller, faller ocks\u00e5 signaturens s\u00e4kerhet.<\/p>\n<p>T\u00e4nk igenom vad en signatur faktiskt binder sig till. Den binder sig till ett hashv\u00e4rde, inte till meddelandet i sig. En signatur som \u00e4r giltig f\u00f6r ett visst hashv\u00e4rde \u00e4r giltig f\u00f6r allt som r\u00e5kar ge samma hashv\u00e4rde. S\u00e5 l\u00e4nge bara ett enda meddelande kan ge ett visst hashv\u00e4rde \u00e4r det ingen skillnad, men en kollision bryter precis det.<\/p>\n<p>En angripare som kan skapa en kollision kan f\u00f6rbereda tv\u00e5 meddelanden med samma hashv\u00e4rde: ett ofarligt och ett skadligt. Den ofarliga varianten l\u00e4mnas in f\u00f6r signering och godk\u00e4nns. Eftersom det skadliga meddelandet har exakt samma hashv\u00e4rde g\u00e4ller signaturen lika v\u00e4l f\u00f6r det. Angriparen kan d\u00e5 presentera det skadliga meddelandet tillsammans med den \u00e4kta signaturen, och verifieringen kommer att lyckas, eftersom mottagarens ber\u00e4knade hashv\u00e4rde st\u00e4mmer med det signerade.<\/p>\n<p>Det \u00e4r precis denna risk som SHAttered gjorde konkret 2017, n\u00e4r CWI i Amsterdam och Google f\u00f6r f\u00f6rsta g\u00e5ngen demonstrerade en praktisk kollision i SHA-1. Resultatet visade att SHA-1 inte l\u00e4ngre kunde anses s\u00e4ker f\u00f6r signaturer, och det p\u00e5skyndade \u00f6verg\u00e5ngen till starkare hashfunktioner. En signatur \u00e4r aldrig starkare \u00e4n den hashfunktion den vilar p\u00e5.<\/p>\n<h2 id=\"certifikat-och-signering-av-kod\">Certifikat och signering av kod<\/h2>\n<p>Tv\u00e5 vardagsn\u00e4ra exempel visar hur digitala signaturer fungerar i praktiken.<\/p>\n<p>Ett certifikat \u00e4r i grunden en publik nyckel plus identitetsuppgifter, signerad av en betrodd utf\u00e4rdare. N\u00e4r din webbl\u00e4sare tar emot ett certifikat fr\u00e5n en webbplats kontrollerar den utf\u00e4rdarens signatur, som i sin tur bygger p\u00e5 ett hashv\u00e4rde \u00f6ver certifikatets inneh\u00e5ll. P\u00e5 s\u00e5 s\u00e4tt vet webbl\u00e4saren att certifikatet inte har f\u00f6rvanskats och att den publika nyckel det inneh\u00e5ller verkligen h\u00f6r till r\u00e4tt webbplats. H\u00e4r blir kopplingen till hashkollisioner tydlig: om tv\u00e5 olika certifikatinneh\u00e5ll kunde dela samma hashv\u00e4rde, skulle en signatur f\u00f6r det ena kunna missbrukas f\u00f6r det andra.<\/p>\n<p>Signering av kod fungerar enligt samma princip. N\u00e4r en utvecklare distribuerar ett program signeras det med utvecklarens privata nyckel, \u00f6ver ett hashv\u00e4rde av programmet. N\u00e4r du installerar programmet kan systemet verifiera signaturen med utvecklarens publika nyckel och bekr\u00e4fta b\u00e5de vem som st\u00e5r bakom programmet och att det inte har manipulerats sedan det signerades. \u00c4ndras en enda byte i programmet st\u00e4mmer hashv\u00e4rdet inte l\u00e4ngre, och signaturen blir ogiltig.<\/p>\n<h2 id=\"sammanfattning\">Sammanfattning<\/h2>\n<p>En digital signatur kombinerar en kryptografisk hashfunktion med ett par asymmetriska nycklar. Avs\u00e4ndaren signerar ett hashv\u00e4rde av meddelandet med sin privata nyckel, och mottagaren verifierar med den publika nyckeln genom att j\u00e4mf\u00f6ra hashv\u00e4rden. Konstruktionen ger b\u00e5de \u00e4kthet och integritet, men bara s\u00e5 l\u00e4nge hashfunktionen \u00e4r kollisionsbest\u00e4ndig. SHAttered visade vad som h\u00e4nder n\u00e4r den f\u00f6ruts\u00e4ttningen brister, och varf\u00f6r valet av en s\u00e4ker hashfunktion \u00e4r avg\u00f6rande f\u00f6r att en signatur ska betyda n\u00e5got.<\/p>\n<div class=\"shat-sources\">\n<h2 id=\"kallor\">K\u00e4llor<\/h2>\n<ul>\n<li><a href=\"https:\/\/csrc.nist.gov\/pubs\/fips\/186-5\/final\" rel=\"noopener\">NIST FIPS 186-5: Digital Signature Standard<\/a><\/li>\n<li><a href=\"https:\/\/www.rfc-editor.org\/rfc\/rfc8032\" rel=\"noopener\">RFC 8032: Edwards-Curve Digital Signature Algorithm<\/a><\/li>\n<\/ul>\n<\/div>\n<div class=\"shat-related\">\n<h2 id=\"relaterade-artiklar\">Relaterade artiklar<\/h2>\n<ul>\n<li><a href=\"https:\/\/shattered.io\/se\/cryptography\/hashfunktioner\/\">Kryptografiska hashfunktioner: egenskaper och anv\u00e4ndning<\/a><\/li>\n<li><a href=\"https:\/\/shattered.io\/se\/cryptography\/\">Kryptografi: hashfunktioner, SHA och digitalt f\u00f6rtroende<\/a><\/li>\n<li><a href=\"https:\/\/shattered.io\/se\/cryptography\/sha1-kollision\/\">SHAttered: den f\u00f6rsta praktiska SHA-1-kollisionen<\/a><\/li>\n<li><a href=\"https:\/\/shattered.io\/se\/cryptography\/sha-256\/\">SHA-256 f\u00f6rklarad: 256-bitars fingeravtryck i SHA-2<\/a><\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Vad en digital signatur l\u00f6ser En digital signatur svarar p\u00e5 tv\u00e5 fr\u00e5gor som \u00e4r centrala f\u00f6r f\u00f6rtroende online. Kommer det h\u00e4r meddelandet verkligen fr\u00e5n den avs\u00e4ndare det utger sig f\u00f6r?\u2026<\/p>\n","protected":false},"author":2,"featured_media":25,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[],"class_list":["post-10","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cryptography"],"_links":{"self":[{"href":"https:\/\/shattered.io\/se\/wp-json\/wp\/v2\/posts\/10","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/shattered.io\/se\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/shattered.io\/se\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/shattered.io\/se\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/shattered.io\/se\/wp-json\/wp\/v2\/comments?post=10"}],"version-history":[{"count":2,"href":"https:\/\/shattered.io\/se\/wp-json\/wp\/v2\/posts\/10\/revisions"}],"predecessor-version":[{"id":41,"href":"https:\/\/shattered.io\/se\/wp-json\/wp\/v2\/posts\/10\/revisions\/41"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/shattered.io\/se\/wp-json\/wp\/v2\/media\/25"}],"wp:attachment":[{"href":"https:\/\/shattered.io\/se\/wp-json\/wp\/v2\/media?parent=10"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/shattered.io\/se\/wp-json\/wp\/v2\/categories?post=10"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/shattered.io\/se\/wp-json\/wp\/v2\/tags?post=10"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}