b'\n_START_ARTICLE_\nKrypteringsalgoritme\n_START_PARAGRAPH_\nEn krypteringsalgoritme eller chiffer (engelsk: cipher, fransk: chiffre) er en kryptografisk algoritme der entydigt oms\xc3\xa6tter en besked, klarteksten (eng. plaintext), til krypteret form, chifferteksten (eng. ciphertext), ved hj\xc3\xa6lp af en n\xc3\xb8gle, krypteringsn\xc3\xb8glen (eng. encryption key), samt en tilsvarende algoritme der g\xc3\xa5r den modsatte vej. Den f\xc3\xb8rste proces kaldes kryptering, den anden dekryptering. N\xc3\xb8glen til de to processer er ikke n\xc3\xb8dvendigvis de samme. Algoritmen kan v\xc3\xa6re af ikke-matematisk karakter, men er som oftest matematisk._NEWLINE_Med moderne computere har kryptering bev\xc3\xa6get sig fra efterretningstjenesternes dom\xc3\xa6ne og ud til almindelige brugere. De fleste e-mail programmer kan s\xc3\xa6ttes op til at kryptere (og/eller signere) den afsendte e-mail. P\xc3\xa5 denne m\xc3\xa5de kan meddelelsen ideelt set kun l\xc3\xa6ses af den tilsigtede modtager._NEWLINE_Under 2. verdenskrig brugte den tyske marine en kryptografisk algoritme, hvis succes desv\xc3\xa6rre gav \xc3\xa5rsag til mange skibsforlis, idet ub\xc3\xa5de ved hj\xc3\xa6lp af denne modtog oplysninger om de allieredes bev\xc3\xa6gelser. Algoritmen hed Enigma, og dette ord er blevet n\xc3\xa6rmest synonymt for kodesprog til krigsm\xc3\xa6ssig anvendelse._NEWLINE_Det er en almen misforst\xc3\xa5else, at alle krypteringsalgoritmer kan \'kn\xc3\xa6kkes\', givet tilstr\xc3\xa6kkelig tid og computerkraft. Eksempelvis er one-time pad (OTP) kryptering beviseligt umulig at dechiffrere for en tredjepart. Her bruger man en tilf\xc3\xa6ldig n\xc3\xb8gle af min. samme l\xc3\xa6ngde som klarteksten, og undlader at genbruge denne. Dette er for besv\xc3\xa6rligt til de fleste praktiske anvendelser, men er blevet anvendt i praksis, bl.a. til den "R\xc3\xb8de telefon", der forbandt Det Hvide Hus i Washington med Kreml i Moskva.\n_START_SECTION_\nBlokkryptering vs. stream ciphers\n_START_PARAGRAPH_\nAlgoritmer der anvender en fast transformation p\xc3\xa5 blokke af tegn, typisk af en fast l\xc3\xa6ngde, kaldes blokkrypteringsalgorimer, modsat stream ciphers, der opererer p\xc3\xa5 en kontinuert str\xc3\xb8m af tegn, og med forskellig transformation for hver.\n_START_SECTION_\nSymmetriske vs. asymmetriske\n_START_PARAGRAPH_\nSymmetriske algoritmer anvender samme n\xc3\xb8gle til kryptering og dekryptering. N\xc3\xb8glen m\xc3\xa5 s\xc3\xa5ledes n\xc3\xb8dvendigvis v\xc3\xa6re kendt udelukkende af afsender og modtager. Blandt ofte anvendte symmetriske krypteringsalgoritmer er DES, Triple DES (3DES, der bl.a. bruges i Dankort-systemet), IDEA og AES._NEWLINE_Asymmetriske algoritmer (ogs\xc3\xa5 kendt som public key-algoritmer \xe2\x80\x93 offentlig n\xc3\xb8gle) anvender to forskellige n\xc3\xb8gler til kryptering og dekryptering. RSA-algoritmen er et eksempel p\xc3\xa5 asymmetrisk kryptering. Typisk opdeles de to n\xc3\xb8gler i en hemmelig og en offentlig n\xc3\xb8gle. Der findes ogs\xc3\xa5 algoritmer til asymmetrisk kryptering, der benytter sig udelukkende af private n\xc3\xb8glepar, men disse er ikke ofte anvendt. N\xc3\xb8gleparret er som Yin og Yang; har den ene n\xc3\xb8gle krypteret en bid information, kan kun den anden dekryptere den. Det er bem\xc3\xa6rkelsesv\xc3\xa6rdigt, at ikke engang den n\xc3\xb8gle, der har krypteret informationen, kan dekryptere cifferteksten._NEWLINE_Som navnet "offentlig n\xc3\xb8gle kryptering" antyder, er n\xc3\xb8glen til krypteringen, typisk offentligt kendt (krypteringsalgoritmerne er typisk altid kendt; det er et generelt princip inden for kryptologien at sikkerheden skal ligge i hemmeligheden af n\xc3\xb8glen). Dvs. at alle kan kryptere beskeder vha. algoritmen, men kun personen med den personlige/hemmelige n\xc3\xb8gle vil v\xc3\xa6re i stand til at dechiffrere beskederne._NEWLINE_Det kan umiddelbart undre, at asymmetrisk kryptering kan virke. En analogi kan illustrere princippet: A \xc3\xb8nsker at kunne modtage en hemmelig leverance fra B. En tredjepart C m\xc3\xa5 ikke kunne f\xc3\xa5 fat i den hemmelige leverance, og n\xc3\xa5r f\xc3\xb8rst den er afsendt, m\xc3\xa5 B heller ikke kunne f\xc3\xa5 fat i leverancen. A sender en h\xc3\xa6ngel\xc3\xa5s til B, men beholder n\xc3\xb8glen. B l\xc3\xa5ser leverancen nede i en kasse og sender den til A. A \xc3\xa5bner kassen med sin n\xc3\xb8gle.\n_START_SECTION_\nBasale operationer\n_START_PARAGRAPH_\nKlassiske krypteringsalgoritmer samt de fleste moderne symmetriske algoritmer kan beskrives ved en r\xc3\xa6kke basale operationer. Moderne symmetriske kryperingsalgoritmer er alle kombinationer af transposition og (typisk polyalfabetisk) substitution.\n_START_SECTION_\nTransposition\n_START_PARAGRAPH_\nTransposition flytter enheder (f.eks. tegn eller ord) af klarteksten til en anden position, dvs. r\xc3\xa6kkef\xc3\xb8lgen af enhederne \xc3\xa6ndres, men enhederne selv \xc3\xa6ndres ikke. Matematisk set anvendes en bijektiv funktion p\xc3\xa5 enhedernes positioner. Ved dekryptering foretages blot den modsatte operation. Transpositionen kan v\xc3\xa6re afh\xc3\xa6ngig af krypteringsn\xc3\xb8glen, i s\xc3\xa5 fald er denne "opskriften" p\xc3\xa5 transpositionen. Et af de \xc3\xa6ldste eksempler er skytalen.\n_START_SECTION_\nPermutation\n_START_PARAGRAPH_\nPermutation er et specialtilf\xc3\xa6lde af transposition. Her v\xc3\xa6lger man en permutation af en vis l\xc3\xa6ngde, der s\xc3\xa5 anvendes p\xc3\xa5 klarteksten i blokke af denne l\xc3\xa6ngde. Jo l\xc3\xa6ngere permutationen er, desto sikrere er algoritmen. Teoretisk kan ethver transpositionsalgoritme beskrives som en permutation, men dette er ofte ikke praktisk.\n_START_SECTION_\nSubstitution\n_START_PARAGRAPH_\nSubstitution erstatter de enkelte enheder med andre symboler eller enheder efter et fastlagt m\xc3\xb8nster, dvs. enhederne \xc3\xa6ndres, men deres positioner g\xc3\xb8r ikke (modsat transpositionpermutation ovenfor). Ved dekryptering substitueres den modsatte vej. Substitutionen kan v\xc3\xa6re afh\xc3\xa6ngig af krypteringsn\xc3\xb8glen, i s\xc3\xa5 fald er denne "opskriften" p\xc3\xa5 substitutionen._NEWLINE_Hvis substitutionen opererer p\xc3\xa5 enkelte tegn kaldes den simpel; hvis der opereres p\xc3\xa5 grupper af tegn kaldes substitutionen polygrafisk. Hvis der anvendes samme substitution p\xc3\xa5 hele klarteksten kaldes substitutionen monoalfabetisk, hvis substitutionen \xc3\xa6ndrer sig undervejs kaldes den polyalfabetisk. Ved homofonisk substitution anvendes mere en \xc3\xa9t symbol for hver enhed i klarteksten for at g\xc3\xb8re kryptoanalyse sv\xc3\xa6rere._NEWLINE_Monoalfabetisk substitution: Her erstattes hver bogstav med et andet, f.eks. efter en tabel som denne:_NEWLINE_abcdefghijklmnopqrstuvwxyz\xc3\xa6\xc3\xb8\xc3\xa5_NEWLINE_SMFK\xc3\x86QCPHEALGX\xc3\x85ZYWNUBJDRVTIO\xc3\x98_NEWLINE_S\xc3\xa5ledes bliver "encyklop\xc3\xa6di" til "\xc3\x86XFVAL\xc3\x85ZIKH". En nemmere m\xc3\xa5de at anvende substitution er at benytte et kodeord, der skrives f\xc3\xb8rst uden at gentage bogstaver, hvorefter man tager de ubenyttede bogstaver i r\xc3\xa6kkef\xc3\xb8lge. S\xc3\xa5ledes f\xc3\xa5r man ved brug af n\xc3\xb8glen "M\xc3\x85NESKIN":_NEWLINE_abcdefghijklmnopqrstuvwxyz\xc3\xa6\xc3\xb8\xc3\xa5_NEWLINE_M\xc3\x85NESKIABCDFGHJLOPQRTUVWXYZ\xc3\x86\xc3\x98_NEWLINE_Har man en lang chiffertekst, kan ren monoalfabetisk substitution brydes med frekvensanalyse. Man finder frekvenserne af ciffertekstens tegn og sammenligner med frekvensfordelingen af alfabetets bogstaver i tekster p\xc3\xa5 det sprog, meddelelsen er skrevet i._NEWLINE_Polyalfabetisk substitution:: Her erstattes det samme bogstav med forskellige bogstaver. F.eks. med tre alfabeter:_NEWLINE_abcdefghijklmnopqrstuvwxyz\xc3\xa6\xc3\xb8\xc3\xa5_NEWLINE_SMFK\xc3\x86QCPHEALGX\xc3\x85ZYWNUBJDRVTIO\xc3\x98_NEWLINE_MFO\xc3\x86ZKYRWHCVUDXBEQA\xc3\x85ISNP\xc3\x98GLTJ_NEWLINE_XEQMSBLARGJYZO\xc3\x98CPKWDVUINF\xc3\x85UH\xc3\x86_NEWLINE_Her bliver "encyklop\xc3\xa6di" til "\xc3\x86DQVCY\xc3\x85BUKW" (ved skiftevis at bruge de tre alfabeter).\n_START_SECTION_\nVigen\xc3\xa8re\n_START_PARAGRAPH_\nVigen\xc3\xa8realgoritmen er det bedst kendte eksempel p\xc3\xa5 polyalfabetisk substitution. Det blev udviklet af den franske diplomat Blaise de Vigen\xc3\xa8re._NEWLINE_Her v\xc3\xa6lges et ord som n\xc3\xb8gle, og hvert bogstav i n\xc3\xb8glen bruges skiftevis til at v\xc3\xa6lge en substitutionstabel. Typisk benyttes et tabula recta (se illustration), hvilket betyder at alle substitutionstabeller svarer til en C\xc3\xa6saralgoritme (se ovenfor). Er kodebogstavet f.eks. "E", benyttes en c\xc3\xa6saralgoritme med et skift p\xc3\xa5 fire pladser. Et eksempel med n\xc3\xb8glen "VIGENERE":_NEWLINE_Klartekst:    angribveddaggry_NEWLINE_N\xc3\xb8gle:        VIGENEREVIGENER_NEWLINE_Chiffertekst: VVMVVFMIYLGKTVP_NEWLINE_Bem\xc3\xa6rk at hele fem bogstaver krypteres til V, mens de to d\'er i klarteksten krypteres forskelligt._NEWLINE_Vigen\xc3\xa8realgoritmen blev i flere hundrede \xc3\xa5r blev anset for ubrydelig; s\xc3\xa5 sikkert, at man gav det navnet "Le carr\xc3\xa9 ind\xc3\xa9chiffrable" \xe2\x80\x93 det ubrydelige kvadrat. Algoritmen kan imidlertid brydes ved f\xc3\xb8rst at lave en Kasiski test, der fastl\xc3\xa6gger l\xc3\xa6ngden af n\xc3\xb8glen. Derefter benyttes frekvensanalyse p\xc3\xa5 de bogstaver i chifferteksten der er oversat med det samme bogstav i n\xc3\xb8glen.\n_START_SECTION_\nEnigma\n_START_PARAGRAPH_\nEnigma er en elektromekanisk krypteringsmaskine, som anvender polyalfabetisk substitution. Den blev udviklet af tyskeren Arthur Scherbius (patenteret i 1918). Maskinen var i forskellige udgaver rygraden i de tyske krypteringssystemer under Anden Verdenskrig. Den mest sofistikerede type anvendtes af den tyske ub\xc3\xa5dsfl\xc3\xa5de. Briterne indrettede p\xc3\xa5 Bletchley Park et kodebrydningscenter under ledelse af Alan Turing, som havde held og begavelse til at bryde koden.\n_START_SECTION_\nDES og Triple DES\n_START_PARAGRAPH_\nData Encryption Standard (DES) blev udviklet af IBM i 1977. DES er i dag en af de mest benyttede symmetriske krypteringsmetoder. Ved denne kryptering bliver klarteksten f\xc3\xb8rst opdelt i blokke p\xc3\xa5 hver 64 bits (8 bytes). N\xc3\xb8glen indeholder ogs\xc3\xa5 64 bits, hvoraf 8 bits er paritetsbits, s\xc3\xa5 n\xc3\xb8glen reelt er p\xc3\xa5 56 bits. Hver tekstblok gennemg\xc3\xa5r en kompliceret r\xc3\xa6kke af transformationer sammen med n\xc3\xb8glen._NEWLINE_I Triple DES anvendes DES tre gange med forskellige n\xc3\xb8gler; f\xc3\xb8rst krypteres med den f\xc3\xb8rste n\xc3\xb8gle, herefter dekrypteres med den anden n\xc3\xb8gle, og til sidst dekrypteres med den tredje n\xc3\xb8gle. Triple DES bruges bl.a. i Dankort-systemet.\n_START_SECTION_\nAES\n_START_PARAGRAPH_\nAdvanced Encryption Standard (AES) anvender symmetriske n\xc3\xb8gler og vil erstatte den meget anvendte Data Encryption Standard (DES)._NEWLINE_AES er baseret p\xc3\xa5 den vindende algoritme i en konkurrence udskrevet af de amerikanske myndigheders National Institute of Standards and Technology (NIST) i 1997 og som sluttede i \xc3\xa5r 2000. Algoritmen der vandt, Rijndael, er udviklet af to belgiske krypteringseksperter, Vincent Rijmen og Joan Daemen.\n_START_SECTION_\nRSA\n_START_PARAGRAPH_\nRSA er formodentlig den mest anvendte asymmetriske krypteringsalgoritme. Systemet virker ved at v\xc3\xa6lge to (store) primtal p og q, hvorfra man beregner n = pq samt d og e, hvor de mod (p-1)(q-1) = 1, og e og (p-1)(q-1) ikke har f\xc3\xa6lles primtalsfaktorer. (n,e) er den offentlige n\xc3\xb8gle, (n,d) er den private/hemmelige n\xc3\xb8gle. Kryptering af tallet m foreg\xc3\xa5r herefter ved at beregne c = m\xe1\xb5\x89 mod n. Dekryptering udf\xc3\xb8res ved at beregne m = c\xe1\xb5\x88 mod n._NEWLINE_Sikkerheden i systemet hviler p\xc3\xa5 antagelsen om at primtalsfaktorisering er et "sv\xc3\xa6rt" problem, dvs. at der ikke findes algoritmer der kan udf\xc3\xb8re opgaven i polynomiel tid. RSA kan dog brydes i polynomiel tid p\xc3\xa5 en kvantecomputer med Shors algoritme.\n_START_SECTION_\nPGP\n_START_PARAGRAPH_\nPGP (Pretty Good Privacy) er et krypteringsprogram udviklet af Philip Zimmermann i 1991 og er en standard for kryptering af e-post. Programmet er af meget h\xc3\xb8j kvalitet, og har udl\xc3\xb8st utallige juridiske problemer mellem Phil Zimmermann og NSA. Systemet er en kombination af asymmetrisk og symmetrisk kryptering, hvor den asymmetriske kryptering benyttes til at kryptere en l\xc3\xa6ngere (tilf\xc3\xa6ldigt genereret) symmetrisk n\xc3\xb8gle, der vedl\xc3\xa6gges beskeden. Grunden til denne tilgang er at asymmetrisk kryptering er meget langsommere end symmetrisk kryptering.'