A kód az információ egy más formában való megjelenítése: az eredeti üzenetet átalakítják úgy, hogy egy másik jelrendszerben legyen jelen. Ennek az egyik gyakori célja az üzenet titokban tartása, amit titkosításnak vagy kriptográfiának nevezünk. Egy egyszerű meghatározás szerint a kód „egy szó, szám vagy más szimbólum, amelyet egy szó, kifejezés vagy szótag ábrázolására használnak az egyszerű szövegben”. Ez a gyakorlat a kriptográfia egyik korai formája — szemben a kóddal, ahol gyakran egész szavakat vagy kifejezéseket helyettesítenek, a titkosírás (vagyis a rejtjel) általában az egyes betűk vagy bitek átalakítására épül.

Példák a kódokra és kódolásra

Különböző helyzetekben más-más kódok a hasznosak:

  • Zászlójelek: ha két hajó túl messze van ahhoz, hogy kiabáljanak, a zászlós kód lehetővé teszi az egyszerű üzenetküldést vizuális jelekkel.
  • Morse-kód: a betűket pontok és kötőjelek sorozatává alakítja. Például a jól ismert SOS jelzés helyesen: ···---··· (három pont, három kötőjel, három pont). A forrásban szereplő "---------"-hoz képest ez a valós morze-kód.
  • Számítógépes kódok: a betűket és más karaktereket 1-esek és 0-k sorozatává alakítjuk. Ennek az elvnek az egyik korai gyakorlati megvalósítása a lyukszalag volt. A mai tipikus alfanumerikus kódok között találjuk az ASCII-t, de a modern rendszerek gyakran a nemzetközi szabványnak számító Unicode-ot is használják, amely sokkal több karaktert támogat.

Kódok céljai és működése

A kódok célja lehet:

  • titkosítás — az információ elrejtése úgy, hogy csak jogosult személyek tudják visszaalakítani;
  • tömörítés — kevesebb jelre lefordítani az üzenetet a hatékonyabb továbbításhoz;
  • hibajavítás — az adathordozás közben fellépő hibák felismerése és javítása;
  • azonosítás és szabványosítás — különböző rendszerek közötti egyértelmű kommunikáció biztosítása (például karakterkódolások).

Titkosítási algoritmusok és visszafejtés

A titkos üzenet létrehozására szolgáló eljárást, vagyis a kódolás menetét gyakran algoritmusnak nevezik. Maga a titkosítási eljárás itt szerepel: titkosítási algoritmus. A titkos üzenet visszaalakításához — a nyílt, olvasható szöveg előállításához — dekódoló algoritmusra van szükség. A gyakorlatban vannak egyszerű, manuálisan alkalmazható módszerek (például klasszikus eltolásos kódok, Caesar-kód), és modern, matematikailag megalapozott hálózati titkosítási protokollok (például titkos kulcsú és nyilvános kulcsú rendszerek).

Kriptoanalízis és a kódok feltörése

Néhány ember a kódokat egyfajta játékként kezeli: szórakoztató kódokat készíteni és próbálni feltörni őket. Ugyanakkor a kódok feltörése (a kód elvének, kulcsának vagy algoritmusának megtalálása) komoly, súlyos következményekkel járó tevékenység is lehet. A kriptoanalízis mint tudomány és gyakorlat évszázadok óta segít abban, hogy nemzetek és szervezetek egymás üzeneteit feltörjék vagy éppen ellenálljanak a feltörésnek.

Összefoglalás

A kódok és titkosítás célja lehet egyszerű kommunikációs probléma megoldása, adatvédelem vagy a rendszerek közötti egységesítés. A különbség a kód és a titkosírás között nagyban a szemléletben van: a kód gyakran szavak/kifejezések helyettesítését jelenti, míg a titkosírás (cipher) inkább betűk, bitek matematikai átalakítását. A modern informatikában mindkettőre szükség van: a karakterkódolások (mint az ASCII) és a titkosítási protokollok együtt biztosítják az adatok ábrázolását és védelmét.