Hej Johan
Gode(nyere effektive) kryptosstemer kræver et stort kendskab til talteori for at forstå detaljerne - og det er uanset hvad andre kunne finde på at sige herinde.
Nu ved jeg ikke hvor stor dit kendskab er til talteori, men som altid vil jeg synes, at man skal starte i det små. Til sidst nævner jeg lidt om det såkaldte knapsack problem som også kan bruges til at kryptere med en rimelig god sikkerhed... (med mindre altså man besidder ægte NINJA-MONSTER-computere)...RSA kryptering er nok en tand for vanskeligt, hvis man vil forstå detaljerne.
-----------------------------------------------------------------------
Simple kryptosystemerEt
monoalfabetisk kryptosystem fungerer på den måde at man f.eks. skriver alfabetet:
Klaralfabet: A B C D E F ... Æ Ø Å
Krypto: H I O Q D A ... W T A
man
substituerer - vælger at ethver bogstav i det oprindelige alfabet skiftes ud med et andet bogstav i alfabetet.
I det her tilfælde valgte jeg at A -> H; B->I .. osv.
Med ovenstående kan man altså skrive vil ordet "abe" i krypteret form som "hid".
Der findes mere 8.8*10^30 "måder"(nøgler) at gøre dette på så hvis man skulle få en computer til at tjekke samtlige nøgler i et forsøg på at bryde kryptosystemet vil det praktisk talt være umuligt. Tag dog ikke fejl for det vil med et
statistisk angreb ikke være svært at bryde.
Et
additivt kryptosystem var det som Cæsar gjorde brug af. Man tager f.eks.
Klaralfabet: A B C D E F ... Æ Ø Å
Krypto: D E F G H I A B C
Man tager altså og "skubber" det oprindelige alfabet x-antal pladser til venstre - sagt på en anden måde - man skifter et bogstav ud med bogstavet der står x pladser længere fremme. Ovenstående kryptoalfabet er "skubbet" 3 pladser til venstre.
Da det danske alfabet har 29 bogstaver vil der være 28 muligheder ... den 29. vil bare være det opindelige alfabet... for at kryptere. Det er en meget ringe sikkerhed, hvis en computer og en mand vælger at angribe systemet.
Ovenstående kryptosystemer lider under svagheden af at det er muligt at lave statistiske angreb og i kombination med en computer vil det være meget sårbart.
-----------------------------------------------------------------------
Middelsvært kryptosytemEn mand ved navn (mener jeg) Vigenére lavede et kryptosystem der brugte ikke bare ét men flere monoalfabetiske kryptosystemer til at kryptere.
Vi skriver:
* A | B | C | D | E | F | G | H | I | J | K | L | M | N ... osv
A| A B C D E F G H I J K L M N ... osv
B| B C D E F G H I J K L M N O
C| C D E F G H I J K L M N O P
D| D E F G H I J K L M N O P Q
E| E F G H I J K L M N O P Q R
F| F G H I J K L M N O P Q R S
G|G H I J K L M N O P Q R S T
H| H I J K L M N O P Q R S T U
osv.
Idéen er så at du vælger en "nøgle" et ord(du bestemmer selv længden) ... for at gøre det simpelt her vælger jeg "ABE" som nøgleord. Jeg vil så nu prøve at kryptere ordet/sætningen "GODNAT":
nøgle: A B E A B E
krypto: G O D N A T
Nøglen repeteres hvis klarteksten er længere end nøglen.
Tænk på skemaet som et "koordinatsystem" du skal så finde "punktet" der svarer til koordinatsættet (A,G) ell. (G,A)... hvilket ses at være bogstavet "G".
Det samme gøres med (B,O), (E,D), osv... vi får altså:
GODNAT -> GPHNBX
I det her tilfælde oplevede vi dog at der ikke var nogen egentlig "kryptering" ved bogstaverne A og N... Men hvis man nu lige lagde et ekstra T på GODNAT ... GODNATT og lagde det oveni GPHNBX vil man se at T før blev til X... det ekstra T bliver dog ikke til X men derimod T selv. Pointen er her at det samme bogstav krypteres forskelligt.
Dog i dette tilfælde ikke særligt godt...
Denne metode gør det noget langsommere med et statisktisk angreb, hvis man angriber det. En computer er nærmest en nødvendighed hvis man vil bryde dette kryptosystem hurtigt.
-----------------------------------------------------------------------
Public key kryptosystemer(svære)
En ting der er essentielt ved de ovennævnte kryptosystemer er hemmeligholdelsen af nøglen ... den blev brugt til både kryptering og dekryptering.
Det var nærmest sensationelt da man fandt ud af at lave kryptosystemer hvor det var muligt at offentliggøre én nøgle mens en anden blev hemmeligholdt.
Du kan prøve at forestille dig at du har en lille boks med plads til en besked til mig.
Jeg har en "postkasse" som alle kan åbne og lægge bokse i.
Derudover kan du ligesåvel som andre gå hen og bestille en "MF-hængelås" til at låse din boks.
Du får pludselig lyst til at sende mig en besked som andre ikke må se... du "krypterer" din meddelelse (putter den i boksen og låser den med min hængelås) og putter den i min postkasse... Jeg er så den eneste der har en nøgle som passer til hængelåsen og derfor kan jeg åbne boksen og læse beskeden.
Med et rimeligt kendskab til talteori kan man lave algoritmer der er baseret på knapsackproblemet som er beregningsmæssigt svært. Jeg springer her over en del, men vil afslutte med at sige at en let knapsack I_s{2,4,9,25,47} kan blive til I_p{1798,351,1601,3005,68}...
s = secret og p= public ... man offentliggør altså den svære udgave af knapsack'en og krypterer ved hjælp af denne, mens den lette knapsack hemmeligholdes.
Hele idéen med disse systemer er at frembringe et beregningsmæssigt meget svært problem som selv de bedste supercomputere indenfor overskuelig tid ikke kan klare.
Ovenstående tyndt beskrevet public key-kryptosystem er blevet brudt, men det er de færreste der har mulighed for dette.
-----------------------------------------------------------------------
Jeg kan godt fortælle dig mere om dette, men jeg synes du skal starte med at se på det ovenstående, se om du kan bruge det til noget. Du kan også prøve at låne noget på biblioteket eller søge på internettet om kryptologi(cryptology)... Det er spændende, men kan også være forbløffende avanceret.
God fornøjelse
MF
PS.: klokken er mange og der kan godt være stavefejl eller andre småfejl hist og her...
. Hovedmeningen er dog bevaret. Tilføjelse længere nede.
[Redigeret d. 01/09-05 16:30:00 af MF]