4 mars 2013

Knep och knåp med kryptologi

Idag har jag föreläsningsfri eftermiddag eftersom vi ska jobba med inlämningsuppgiften i Kryptologin. Uppgifterna var dock väldigt enkla och jag lämnade in redan i lördags. Skönt att ha det gjort.

Inom kryptologi går det mesta ut på att först översätta sina bokstäver till nummer, t.ex. genom att sätta a=0, b=1, c=2 o.s.v., sedan röra till siffrorna så att de ser helt godtyckliga ut (kryptera), men om en vet hur de är tillrörda kan en lätt röra tillbaka dem (dekryptera), och slutligen översätta tillbaka siffrorna till bokstäver.

Risken när en rör till siffrorna är att en får ett tal som är större än den sista bokstaven i alfabetet och då blir det svårt att översätta till bokstäver igen. Då kör man med det lilla knepet att en börjar om igen. Så säg att vi har 26 bokstäver och a = 0. Då är den sista bokstaven, z=25 och vad blir då 26? a=26. b=27. o.s.v. även nästa varv och nästa och nästa, att a = 0 = 26 = 2*26. På matematikspråk kallas detta modulus 26. Givetvis kan en också ta modulus andra tal.

Det enklaste kryptot är förskjutningkrypto (varav Caesarkrypto är en specialvariant) där krypteringen består att lägga till ett givet tal till alla bokstäverna (som nu är siffror). Vet en vilket det talet är så kan en enkelt dekryptera genom att ta alla siffrorna i det krypterade meddelandet minus det talet. Talet är det som kallas nyckel. Tyvärr är det här ganska enkelt att knäcka, d.v.s. ta reda på vad det står utan att veta nyckeln, eftersom det bara finns lika många alternativ som bokstäver i alfabetet.

Ett krypto som vi jobbade med i inlämningsuppgiften och som jag inte hört om tidigare var Hill-shiffer. Då tar en bokstäverna två och två i en radvektor och multiplicerar med en matris (nyckeln) som är en 2x2-matris varpå en ny radvektor kommer ut (kryptotexten). Givetvis kan en ta en större nyckelmatris och kryptera bokstäverna i större buntar, men då vill en inte göra det för hand.

TESTA SJÄLV!
Om du är sugen på att leka med krypton själv kan du prova att dekryptera 'HVFX' som krypterats med matrisen [3 17; 11 22].  Skriv i kommentarerna om du lyckas knäcka det!

8 kommentarer:

  1. Ulf Andersson30 april 2013 00:56

    "PKPQ"? Hum... Antingen har jag, troligen, gjort helt fel, eller så är du lurig. Det kan också vara så att jag missar något.
    Hur som helst, så vet jag nu hur man kör inversen på en matris mod 26. (Tror jag...)

    SvaraRadera
    Svar
    1. Ja, det ska bli mer begripligt än så är det tänkt. Du kan ju lösa det som fyra förstagradsekvationer också, genom att genomföra multiplikationen. *hoppas att jag inte gjort något fel i mitt knåp*

      Radera
    2. Ulf Andersson30 april 2013 21:57

      Då får jag gå på den igen då.

      Radera
    3. Ulf Andersson30 april 2013 23:22

      Så, är det med 26 tecken du kör? I så fall blir då K^-1 = [14 1; 19 9] med K = [3 17; 11 22]. Då blir även svaret "PKPQ". Så, just nu lutar jag mot att du gjort någonstans. Kan du kolla?

      Radera
    4. Nu har jag hittat vad som går snett. Din inverserade matris är helt korrekt, men för att dekryptera ska det vara m = c *K^(-1), där c är kryptotext och m är klartext. Jag får samma svar som du om jag istället använder m = K^(-1)*c'.

      Radera
  2. Ulf Andersson1 maj 2013 13:52

    Intressant, det verkar finnas två idéer om hur Hills krypto fungerar, och jag använde den andra eftersom det var den jag sprang på här och där när jag undersökte hur den fungerade. *suck*
    Jaja, på det igen då. Återkommer strax.

    SvaraRadera
  3. Ulf Andersson1 maj 2013 14:03

    Finally done! :)

    SvaraRadera
    Svar
    1. Ja, rent praktiskt borde det ju inte vara några problem att göra åt andra hållet – bara samma metod används för kryptering och dekryptering!

      Snyggt jobbat!

      Radera