You are here: TUTWiki>Tietoturva/Tutkielmat>TyoLuettelo?>2006-12

Perttu Pohjonen

Cryptool - Kryptologian opiskelu- ja esittelyjärjestelmä

Johdanto

Tässä tutkielmassa esitellään Cryptoolin ominaisuudet ja miten sitä voi hyödyntää kryptologian opiskelussa. Tutkielman pääpaino on niiden ominaisuuksien esittelemisessä, jotka mahdollistavat aiheen itseopiskelun, mutta myös muut ominaisuudet esitellään kokonaiskuvan antamiseksi. Samalla arvioidaan ohjelman selkeyttä ja soveltuvuutta kryptologian opiskeluun. Arviointi suoritetaan tietotekniikan perusteet hallitsevan, mutta kryptologiaan perehtymättömän ihmisen näkökulmasta.

Yleistä Cryptoolista

Cryptool on ilmaisohjelma, jonka avulla voidaan käyttää ja analysoida eri kryptograafisia menetelmiä. Cryptooliin on implementoitu melkein kaikki tämän päivän uusimmat kryptograafiset funktiot. Sitä ei voi kuitenkaan käyttää hakkerointiin, koska sen analyysikeinot eivät ole tarpeeksi vahvoja nykyisiä salauksia vastaan.

Cryptool on kehitetty Deutsche Bankin aloitteesta yhdessä yliopistojen (Siegen University, TU Darmstadt) kanssa. Sovellus on kehitetty pääasiassa tietotekniikan ja matematiikan opiskelijoille, mutta se soveltuu myös sovelluskehittäjille ja tavallisille käytäjille. Esitietoina tarvitsee vain yleistä tietokonetietämystä ja kiinnostusta matematiikkaan ja ohjelmointiin. Cryptool on avoimen lähdekoodin ohjelma, joten siihen voi halutessaan implementoida itse tekemäänsä toiminnallisuutta ja lähdekoodia tutkimalla voi oppia käytettyjen salausmekanismien toteutusta. [1]

Cryptoolin ominaisuudet

Cryptooliin on rakennettu sisään useita salaus- ja purkualgoritmeja ja salattujen tekstien analyysiin tarkoitettuja työkaluja. Seuraavassa on kuvattu mihin kaikkiin algoritmeihin voi työkalun avulla tutustua ja opetella teorian niiden takana. Salauksen yhteydessä on mainittu jos Cryptoolissa on tarjolla varsinaista opiskelumateriaalia pelkän online-help -kuvauksen lisäksi.

Perinteiset mekanismit

Caesar -salaus

Caesar -salaus on hyvin yksinkertainen symmetrinen korvaussalaus. Siinä jokainen selväkielisen tekstin kirjain korvataan jollakin toisella aakkosella säilyttäen kuitenkin aakkosten oikea järjestys esim.

Selkoteksti:    ABCDEFGHIJKLMNOPQRSTUVWXYZ
Avain: T
Salattu teksti: UVWXYZABCDEFGHIJKLMNOPQRST

Salaus voidaan murtaa taajuusanalyysillä käyttäen hyväksi tietoa selväkielisen tekstin kielen kirjainten esiintymistiheydestä. Cryptooliin on rakennettu sisään tämä ominaisuus ja se purkaa englanninkielisen salauksen virheettomästi. Salauksesta on Cryptoolissa myös visualisointi, joka on tehty käyttäen ANIMAL työkalua.

Vigenére -salaus

Vigenére -salaus on yksinkertainen avainsalaus, jossa on salausavain ja avaintaulukko. Salauksessa katsotaan taulukosta selväkielisen tekstin kirjainta ja salausavaimen kirjainta vastaava kirjain, joka tulee salattuun tekstiin. Näin ollen salaus on sitä vahvempi, mitä pitempi salausavain on. Ihanteellisessa tilanteessa avain on yhtä pitkä kuin selväkielinen teksti.

Salaus voidaan murtaa kuten Caesar -salaus, kun avaimen pituus on tiedossa. Avaimen pituus saadaan selville "shiftaamalla" salattua tekstiä aina yksi kirjain eteenpäin ja laskemalla alkuperäisen ja tämän tekstin samat kirjaimet. Korrelaatio voidaan havaita Cryptoolin analyysin tuloksena tulevasta diagrammista, jossa korkeimmat piikit ovat selvästi avaimen pituuden moninkertojen kohdalla.

Hill -salaus

Salaus perustuu matriisien matemaattisiin operaatioihin. Salauksessa selväkielinen teksti jaetaan blokkeihin, joiden koko on salausmatriisin dimensio. Salausmatriisille on erityisvaatimuksena, että sille on olemassa käänteismatriisi. Tämä salaus eroaa edellä olevista siinä, että salattu kirjain riippuu useammasta kuin yhdestä selväkielisen tekstin kirjaimesta.

Substitution / Atbash -salaus

Muuten sama kuin Caesar -salaus, mutta aakkoset eivät ole suhteessa samassa järjestyksessä toisiinsa. Näin mahdollisten avaimien määrä nousee 26:sta 26!:een.

Playfair-salaus

Salauksessa salataan selväkielinen teksti kirjainpareina. Salausmekanismi on jo hieman monimutkaisempi ja Cryptoolissa on myös erillinen esimerkki jossa havainnollistetaan Playfair -salauksen toiminta.

ADFGVX-salaus

Salaus on kaksivaiheinen ja siinä jokaista salattavaa kirjainta vastaa kaksi merkkiä, jotka erotetaan rivien varioinnilla. Tällä estetään taajuusanalyysin käyttö salauksen murtamisessa. Cryptoolisssa on myös puoliautomaattinen analyysimenetelmä tätä salausta vastaan.

Byte Addition -salaus

Salauksessa annettu avain lisätään salattavan tekstin merkkiin. Cryptoolissa on myös automaattinen analyysi tämän salauksen murtamiseen, mutta se vaatii tiedon tekstissä usein toistuvasta kirjaimesta.

XOR ja Vernam -salaus

XOR-salauksessa tehdään yksinkertainen XOR-operaatio avaimen ja salattavan tekstin välillä. Cryptoolissa on automaattinen analyysimenetelmä tämän salauksen purkamiseen. Lisäksi löytyy erillinen esimerkki, jolla salauksen toimintaa havainnollistetaan. Vernamin toimintaidea sama kuin XOR -salauksella, mutta avain on pitempi. Tästä on erillinen esimerkki Cryptoolissa.

Solitaire-salaus

Salaus perustuu korttipakan käyttämisessä salauksen apuna. Avaimen generointi vastaa pakan sekoittamista.

Modernit symmetriset mekanismit

IDEA

128-bittistä salausavainta käyttävä salaus. Tätä käytetään muunmuassa PGP:ssä. Cryptoolista ei löydy tietoa tästä salauksesta, mutta siihen on implementoitu raa'an voiman hyökkäys salausta vastaan.

RC2 & RC4

Näistä salauksista ei ole tietoa juurikaan Cryptoolissa. Salauksen ja purun lisäksi ohjelmaan on implementoitu raa'an voiman hyökkäys salausta vastaan. Vaihtuvanmittaisen salausavaimen ansiosta voidaan tarkastella raa'an hyökkäyksen keston kasvamista avaimen pituuden kasvaessa.

DES

Salauksesta on implementoitu useita variaatioita, mutta ohjelma ei sisällä juurikaan tietoa näistä salauksista.

AES kandidaatit

Cryptooliin on integroitu viisi Advanced Encryption Standard kandidaattia: MARS, RC6, Rijndael (voittaja, virallinen AES), Serpent  ja Twofish. Kaikki ovat implementoituna ohjelmaan, mutta jälleen niistä ei ole tarjolla juurikaan tietoa.

RSA -salaus

RSA -salaus eroaa muista salauksista Cryptoolissa siinä, että se on epäsymmetrinen. Salauksen periaate on kuvattu  ohjelmassa varsin kattavaksi ja lisäksi erillinen esimerkki ja demo löytyvät ohjelmasta. Ohjelmassa on myös RSA-AES-hybridi -salaus, joka on visualisoitu vuokaavion omaisesti ja havainnollistettu algoritmin eri vaiheita.

Analyysimekanismit

Cryptoolissa on useita analyysimekanismeja, kuten entropia (Entropy), taajuus (Floating Frequency), histogrammi (Histogram), autokorrelaation (Autocorrelation) ja jaksollisuus (Periodicity). Näiden mekanismien toiminta on selostettu, mutta niitten käyttötarkoitus on selostettu vain satunnaisesti.

Muut ominaisuudet

Cryptoolissa on erilaisten salausten lisäksi myös toisia kryptologisia operaatioita. Yksi käsitelty aihe on digitaalinen allekirjoitus. Ohjelma osaa generoida PKI avaimia ja niitä voi myös tuoda (import) ulkopuolelta ohjelmaan. Dokumentteja pystyy allekirjoittamaan ja allekirjoituksia voi verifioida. Allekirjoituksen generoinnista on tehty demo, joka havainnollistaa allekirjoituksen etenemisen vaiheittain. Myös prosessin välituloksia voi tarkkailla.

cryptool-siggen.JPG

Kuva 1. Kuvassa sähköisen allekirjoituksen vaiheet

Ohjelmassa on myös sekä 128 että 160 bittisiä tiivistefunktioita. Näiden toiminnasta on kuvattu tarkemmin vain SHA-1. Tiivistefunktioista on tehty pieni demo, jossa havainnollistetaan tiivistettävän tekstin muutoksien vaikutuksia tiivistearvoon. Analyysipuolella on hyökkäys digitaalisen allekirjoituksen sisältämää tiivistettä varten.

Cryptool sisältää kaksi erittäin mielenkiintoista visualisointia tietoturvallisuudessa käytettävistä protokollista. Diffie-Hellmannin avainten vaihto on samanlainen vaiheittanen demo kuin muutkin ohjelmassa käytetyt, mutta tämän lisäksi on havainnollistettu verkon yli tapahtuvaa autentikointia. Käytössä on viisi erilaista skenaariota ja kaikissa nähdään, miten paketit verkossa kulkevat. Lisäksi mukaan voidaan ottaa hyökkääjä ja valita mitä asemaa vastaan se hyökkää. Myös linkkejä voi katkoa.

Animointiohjelma ANIMALilla on tehty valmiiksi neljän algoritmin (Cesar, Vigenére, Nihilist, DES CBC moodissa) animointi. Lisäksi ohjelmaan on rakennettu demonstraatio salaisuuden jakamisesta. Siinä salaisuus jaetaan n henkilön kesken, joista vähintään k pitää tehdä yhteistyötä salaisuuden kokoamiseksi.

cryptool-animal.JPG

Kuva 2. ANIMALilla tehty animointi DES ( CBC ) salauksesta.

Cryptoolin käyttö

Käyttöönotto

Cryptoolin mukana asennuspaketissa tulee kolme erillistä ohjelmaa: AES-tool, Number Shark ja animointiohjelma ANIMAL. AES-toolilla voidaan tehdä itsensä purkavia (selfextracting) ajettavia tiedostoja. Ohjelma generoi salasanasta istuntoavaimen jonka avulla minkä tahansa tiedoston sisältä voidaan salata käyttäen AES salausta. Number Shark on opetuksellinen peli, jonka tavoitteena on tutustuttaa opiskelijat jakajiin ja alkutekijöihin. ANIMALilla voidaan mallintaa graafisesti algoritmeja ja tietorakenteita. Algoritmien toimintaa voidaan ajaa askel kerrallaan eteen- ja taaksepäin. ANIMAL tarvitsee toimiakseen Javan virtuaalikoneen.

Opiskelu

Number Shark

Number Sharkista ei ole paljon iloa kryptologian opiskelussa, sillä siinä pelataan lähinnä ensimmäisillä alkuluvuilla. Pelissä on mahdollista ottaa lisää lukuja mukaan, mutta vaikeusaste nousee tällöin hyvin nopeasti. Peliä voisi käyttää yläasteella alkulukujen opetteluun, mutta jos tavoitteena on kryptologian opiskelu peli kannattaa ohittaa kertakokeilun jälkeen.

Cryptool

Cryptoolissa opiskelu perustuu kokeilemalla oppimiseen. Ohjelman mukana ei seuraa mitään varsinaista tutoriaalia vaan käyttäjän oletetaan käyttävän apunaan ohjelman online-help -toimintoa. Tälle ja Googlelle löytyykin varsinkin aluksi paljon käyttöä, koska Cryptool vilisee termejä, jotka ovat tietoturvallisuuteen ja kryptografiaan perehtymättömälle tuntemattomia. Näiden selvetämiseksi pieni aloitustutoriaali olisi hyväksi. Cryptoolin mukana tulee kalvosarja, jossa on esitelty hieman vanhoja salausmenetelmiä ja yleisempiä kryptografian periaatteita. Lisäksi on kuvattu ohjelman valmiita demoja.

Cryptool on hyvin helppokäyttöinen opiskeltaessa salauksia tai analyysimenetelmiä. Valikosta voi valita haluamansa salauksen tai analyysimenetelmän ja painamalla pikanäppäintä avautuu selostus salauksen  tai analyysin toimintaperiaatteesta. Tämän jälkeen sitä voi koittaa Cryptoolin pääikkunassa. Salauksia ja purkuja ei ole mitenkään vaiheistettu, että käyttäjä näkisi salauksen/purun etenemisen vaan lopputulos ilmestyy suoraan ruudulle. Salausten ja purkujen yhteydessä voi testata myös bittien kääntymisen (merkin vaihtumisen) tai bittien katoamisen (monesti joudutaan poistamaan koko merkki) vaikutusta purun tulokseen.

Ohjelman online-help -osiossa on kohta jokaisen valikon jokaiselle valinnalle. Klassisten symmetristen kryptosysteemien yhteydessä selostukset ovat varsin kattavia ja algoritmit pystyy opiskelemaan näistä selostuksista. Tosin nykyaikana näistä on iloa vain kryptologian historiasta kiinnostuneelle salausten ollessa helposti murrettavissa tietokoneella. Modernien symmetristen salausten kohdalla  online-help -toiminto on hyödytön sillä algoritmeista ei löydy tietoa käytännössä ollenkaan. Nämä aiheet on siis pakko opiskella ulkopuolisista lähteistä. Ainoa moderni salaus, jota on käsitelty kunnolla Cryptoolissa on RSA.

Kaikenkaikkiaan voidaan sanoa, että Cryptool on sopiva työkalu jos haluaa salata jonkun tietyn tekstin jollain tietyllä salauksella. Tiedonhankintaan löytyy varmasti parempia lähteitä. Opiskelussa voisi olla mahdollista käyttää Cryptoolia rinnan jonkun ulkopuolisen lähteen kanssa ja käyttää Cryptoolin Analyysimekanismeja testattaessa näiden salausten kestävyyttä. Cryptool on nimenomaan käytännön työkalu.

Lähteet

  • [1] Cryptoolin virallinen kotisivu, [http://www.cryptool.com/]
  • [2] Wikipedia, tietoa algoritmetmeista ja kryptologiasta, [http://en.wikipedia.org]

Print version |  PDF  | History: r1 | 
Topic revision: r1 - 28 Sep 2009 - 22:19:26 - JukkaKoskinen
 

TUTWiki

Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TUTWiki? Send feedback