En kod är ett sätt att omvandla information till något annat, ofta för att förenkla överföring eller för att dölja innehållet. I kryptografisk betydelse görs detta för att hålla ett meddelande hemligt. Detta kallas kryptering eller kryptografi. En vanlig förklaring lyder: en kod är "ett ord, ett nummer eller någon annan symbol som används för att representera ett ord, en fras eller en stavelse i klartext". Historiskt är kod en av de tidigaste formerna av kryptografi, ofta realiserad genom kodböcker som bytte hela ord eller fraser mot kortare symboler eller siffror.

Skillnaden mellan kod och chiffer

Det är viktigt att skilja mellan kod och chiffer:

  • Kod: ersätter hela ord, fraser eller betydelser med andra ord, siffror eller symboler. Exempel är kodböcker där "ATTACK" kan bli "42-17" eller ett särskilt ord. Koder kräver ofta ett delat kodlexikon (kodbok) för att kunna tolkas.
  • Chiffer: förändrar de enskilda tecknen (bokstäver, bitar) i ett meddelande enligt en bestämd regel eller algoritm. Ett enkelt exempel är Caesar-chiffret där bokstäver skiftas ett visst antal steg. Moderna chiffer arbetar på bit- eller blocknivå och styrs av nycklar och algoritmer.

Exempel på koder

Koder används i många sammanhang, både praktiska och ceremoniella:

  • Flaggsignaler och semafor används till sjöss eller i fält för att sända korta meddelanden när man inte kan tala. Det är ett enkelt och robust sätt att kommunicera över avstånd.
  • En annan klassisk kod är morsekod, där bokstäver representeras av punkter och streck. Ett välkänt exempel är SOS, som i morse skrivs ...---....
  • Kodböcker: historiskt användes stora böcker som översatte vanliga fraser till nummer eller kodord. Sådana koder användes av diplomater och militära enheter.
  • Kodtalare: under andra världskriget användes bland annat inhemska språk som kod, exempelvis Navajo-kodtalare, där ett språk användes som hemlig kanal.

Koder i datorer och informationsöverföring

Datorer använder olika typer av koder för att representera text och data. En grundläggande teknik är att omvandla tecken till bitar (1:or och 0:or). Tidiga mekaniska och elektromekaniska medier för sådan kodning inkluderar håltejp och hålkort. För textrepresentation är en av de vanligaste standarderna ASCII, som mappar bokstäver och symboler till numeriska värden i binär form.

Det är också viktigt att skilja på:

  • Kodning för representation och felkorrigering (till exempel ASCII, UTF-8, eller felrättande koder som Hamming-kod). Dessa syftar till att representera och skydda data, inte att dölja den.
  • Kryptering, som avsiktligt döljer innehållet och kräver en nyckel eller algoritm för att läsa meddelandet igen.

Kryptoanalys och kodknäckning

Vissa människor skapar och bryter koder som hobby, medan kryptoanalys är en seriös vetenskaplig och militär disciplin. Att "knäcka en kod" betyder att man hittar ett sätt att avgöra klartexten utan att ha den avsedda nyckeln eller kodboken. Historiskt har stater och organisationer knäckt varandras koder i många århundraden, vilket har haft stor inverkan på krig och politik.

Algoritmer, nycklar och dekryptering

Algoritmen (eller proceduren) som används för att göra ett meddelande hemligt kallas krypteringsalgoritm. För att återställa meddelandet behövs en dekrypteringsalgoritm och ofta en nyckel. Moderna chiffertyper inkluderar symmetriska chiffer (samma nyckel för kryptering och dekryptering) och asymmetriska system (publika och privata nycklar).

Moderna aspekter och säkerhet

Idag används avancerade matematiska metoder för att bygga säkra krypteringssystem: blockchiffer (t.ex. AES), strömchiffer, publika nyckelsystem (t.ex. RSA, ECC) och protokoll för autentisering och nyckelutbyte. En extremt säker men praktiskt krävande metod är engångspad (one-time pad), som ger teoretisk perfekt säkerhet om den används korrekt.

Säkerheten beror inte bara på algoritmen utan också på hanteringen av nycklar, implementationen och operativa rutiner. Därför kombineras kryptografiska verktyg ofta med rutiner för nyckelhantering, autentisering och uppdatering.

Sammanfattning

En kod kan vara allt från enkla flaggsignaler och morsekod till avancerade kodböcker och datorrepresentationer som ASCII. I kryptografisk mening skiljer sig koder från chiffer genom att koder typiskt ersätter hela ord eller fraser, medan chiffer förändrar enskilda tecken enligt en algoritm. Både historiskt och i modern tid spelar koder och chiffer viktiga roller i kommunikation, säkerhet och informationshantering.