1. Johdanto
2. Yleiskuvaus
3. Tiedot
3.1. Tietovuokaavio
3.2. Otsikko
4. Toiminnot
5. Ulkoiset liittymät
5.1 Unix -käyttöliittymä
5.2 Windows -käyttöliittymä
6. Muut ominaisuudet
Luvussa 2 "Yleiskuvaus" kuvataan lyhyesti järjestelmän käyttöympäristö ja yleiset rajoitteet.
Luvussa 3 "Tiedot" kuvataan järjestelmän käsittelemän tiedon kulkua ja tietosisältöä.
Luvussa 4 "Toiminnot" kuvataan kaikki käyttäjän valittavissa olevat toiminnot.
Luvussa 5 "Ulkoiset liittymät" kuvataan käyttöliittymät: Unix -käyttöliittymä ja Windows -käyttöliittymä
Luvussa 6 "Muut ominaisuudet" kuvataan ohjelmiston ei-toiminnallisia ominaisuuksia.
Lisäksi ohjelmakirjaston päälle rakennetaan unix- ja Windows käyttöliittymät, joiden avulla mahdollistetaan kirjaston helppo käyttö ja joilla demonstroidaan kirjaston toimivuutta erilaisissa käyttöjärjestelmäympäristöissä.
Ohjelmiston tarkoituksena on toimia kokeiluvälineenä tutkimustyössä sekä osoittaa tiedon siirron täydellisen valvomisen olevan teknisesti mahdotonta.
Sellainen peitetiedoston kohinainen bitti, johon salainen viesti kätketään. Kaikki kohinaiset bitit eivät ole välttämättä kätkentäbittejä.
Tiedosto, johon salainen viesti kätketään. Tiedoston täytyy sisältää kohinaa, johon salainen viesti kätketään.
Peitetiedosto kätkennän jälkeen, eli viesti, joka kuljettaa kätkettyä salaista viestiä.
Vuokaavio sanallisesti selitettynä:
Jotta salattu sanoma voidaan purkaa oikein peitetiedostosta, täytyy sanoman
lisäksi kätkeä otsikko, joka sisältää sanomatiedoston nimen,
käytetyn kompressio-algoritmin, käytetyn viestin pituuden ja tunnuksen
algoritmille jolla sanoma on kätketty tiedostoon. Seuraavassa kuvassa on
esitetty tämän otsikon rakenne ja kenttien pituudet.
Varsinaisen tiedostonimen loppuun lisätään null -merkki, joka ilmoittaa tiedostonimen ja koko otsikon päättymisen. Siten tiedostonimen pituus voi olla minimissään yksi (1) tavu (tällöin lukeminen tapahtuu esim. UNIX:ssa stdin:stä).
Otsikossa eniten merkitsevä tavu on kaikkein vasemmanpuoleisin ja vähiten merkitsevä tavu on kaikkein oikeanpuoleisin. Tavun eniten merkitsevä bitti on vasemmanpuoleisin ja vähiten merkitsevä bitti on oikeanpuoleisin.
Sanoman kätkemisnopeus riippuu hyvin paljon käytetyistä algoritmeista ja kuvaformaatista. Oletamme näiden algoritmien olevan tehokkaita. Vaatimukseksi tehokkuuden osalta projektissa tehtävälle ohjelmalle on asetettu, että ohjelma pyritään totettamaan mahdollisimman optimaalisesti. Siten sen ei tulisi heikentää käytettävien algoritmien toimintaa oleellisesti. Edellä oleva pätee myös kapasiteettivaatimuksille.
Ennen tiedon piilottamista salaista tiedostoa on mahdollista esikäsitellä pakkaamalla ja/tai salaamalla sen. Kirjasto sisältää molempiin toimintoihin useita algoritmeja joista käyttäjä voi valita haluamansa.
Kätkemisalgoritmin tarvitsemien (pseudo)satunnaislukujen generoimiseen käytettävä algoritmi on myös käyttäjän valittavissa. Mikäli käyttäjä ei tätä valintaa tee, käyttää ohjelmisto automaattisesti oletusarvoksi valittua algoritmia.
Jokaiselle peitetiedosto-tyyppille on olemassa yksi tai useampi sopiva algoritmi tiedon kätkemiseksi peitetiedostoon. Algoritmi valitaan automaattisesti, mutta käyttäjä voi halutessaan valita käytettävän algoritmin. On kuitenkin otettava huomioon että kaikki algoritmit eivät sovi jokaiselle peitetiedosto-tyypille: ohjelma antaa varoituksen jos käyttäjä yrittää käyttää peitetiedostoon sopimatonta kätkemisalgoritmia.
Kätkemisen jälkeen ohjelma kertoo, kuinka suuri osa mahdollisista kätkentäbiteistä tuli käytettyä.
NAME stegano - hide messages to image files SYNOPSIS stegano -[aN|dN] [-cNsNrN] [-w] [-h] -k "used key" cover_src [cover_dst] [message] DESCRIPTION COMMANDS -aN Choose hiding algorithm. N is the name or the number of the used algorithm. -dN Choose extracting algorithm. N is the name or the number of the used algorithm. Notice that the value of N should be same as used in hiding. 0 stands for all available algorithms and it should be used only if the hiding algorithm is not known. -cN Choose compression algorithm. N is the name or the number of the used algorithm. This option is not used when extracting the message. -sN Choose algorithm for encrypting the message before hiding. N is the name or the number of the used algorithm. -rN Choose random number generator. N is the name or the number of the used algorithm. -h Online help. -w This option shows the pixels in the picture where the message would be hidden. When this option is used the message is not really hidden. -k "key" The secret key which is used hiding/extracting the message in/from the cover file. cover_src The name of the cover file where the message will be hidden. cover_dst The name of the cover file which includes the hidden message. message The name of the file that includes the message to be hidden. This can be also stdin (or cin). DISCLAIMER AUTHORS5.2 Windows -käyttöliittymä
KUVA 4: Welcome-ikkuna
Aloitusikkunassa paitsi tervehditään käyttäjää, myös ilmaistaan ohjelmien
copyrightit ja mahdolliset käytön ja kopioinnin rajoitukset. Tästä
ikkunasta käyttäjä valitsee haluaako hän piilottaa tietoa kuvaan
(Hide-näppäin) vai purkaa viestin kuvasta (Extract-näppäin). Käyttäjä
voi myös selata käyttöohjeita (Help) tai poistua ohjelmasta (Exit).
Jos käyttäjä valitsee viestin piilotuksen aukeaa seuraavan
kuvan kaltainen ikkuna. Käyttäjän valitessa viestin purun aukeaa kuvan
9 kaltainen ikkuna.
KUVA 5: Peitetiedoston valinta
Viestin kätkemis-ikkuna koostuu korteista, joissa valitaan ohjelmalle tiedostot ja kätkemiseen tarvittavat algoritmit ja generaattorit, ja tietysti salainen avain. Korttien vieressä näkyy yhteenveto tehdyistä valinnoista. Korttien toteutus tehdään siten, että aina kun käyttäjä on tehnyt valinnan, seuraava kortti aukeaa automaattisesti. Käyttäjä voi kuitenkin halutessaan liikkua korttien välillä "Next"- ja "Previous"-näppäimillä tai vaihtoehtoisesti näpäyttämällä hiirellä kortin yläosaa.
Ensimmäisessä kortissa valitaan kuvatiedosto, johon viesti halutaan kätkeä. Tiedosto valitaan normaaliin Windows-tyyliin etsimällä haluttu tiedosto tiedostolistasta. Levyasema ja hakemisto valitaan vastaavasti valitsemalla listasta. Valinta tehdään kaksoinapauttamalla oikeaa vaihtoehtoa. Tiedoston nimi voidaan myös kirjoittaa sille varattuun tilaan kortin vasemmassa yläreunassa. Kun tiedosto on valittu ilmestyy ruutuu ikkuna, jossa näytetään juuri valittu kuvatiedoston kuva. Samalla aukeaa automaattisesti seuraava kortti:
KUVA 6: Viestin valinta
Tässä kortissa valitaan tiedosto, joka halutaan kätkeä kuvaan. Tiedoston valinta tapahtuu täsmälleen samalla tavalla kuin edellisessä kortissa. Tiedoston sijasta salattava viesti voidaan kirjoittaa kortin alalaidassa olevaan tilaan. Kun tiedosto on valittu tai viesti kirjoitettu aukeaa seuraava kortti:
KUVA 7: Kohdetiedoston valinta
Tässä kortissa annetaan tiedosto, johon viestin sisältävä kuva talletetaan. Kun tiedoston nimi on annettu aukeaa seuraava kortti:
KUVA 8: Optioiden valinta
Tässä kortissa valitaan viestin kätkemisessä käytettävät tiivistys- ja bittien valinta algoritmit sekä tarvittava satunnaislukugeneraattori. Tässä kortissa annetaan myös salainen avain.
Kun kaikki tiedostot ja optiot on annettu, suoritetaan varsinainen kätkeminen. Kun kätkeminen on tehty, avautuu alkuperaisen kuvan sisältävän ikkunan viereen ikkunat, joissa toisessa on kuva, johon viesti on kätketty, ja toisessa on korostettu pikselit, joihin viesti on kätketty. Näin voidaan tarkastella kuvien eroja ja algoritmien toimivuutta.
Kuvien lisäksi avautuu ikkuna, jossa annetaan tilastotietoa kätkemisestä. Samalla kysytään käyttäjältä hyväksyykö hän kätkemisen vai haluaako käyttäjä muuttaa joitakin optioita tai tiedostoja.
Seuraava ikkuna avautuu, jos käyttäjä oli welcome-ikkunassa valinnut viestin purkamisen kuvasta:
KUVA 9: Viestin purkaminen
Tässä ikkunassa annetaan normaaliin tyyliin tiedoston nimi, josta halutaan viestiä etsiä. Tiedoston nimen lisäksi valitaan kätkettäessä käytetyt algoritmit. "View"-näppäimestä voidaan katsoa valitun kuvatiedoston sisältöä.
Jos valitusta kuvatiedostosta löytyy viesti ja avain on oikea, aukeaa ikkuna, jossa löydetty viesti näytetään. Jos viestinä oli käytetty tiedostoa, käyttäjältä kysytään millä nimellä tiedosto talletetaan (oletusarvona on kätketyn tiedoston nimi). Jos viesti ei ollut tiedosto, vaan se oli syötetty näppäimistöltä, näytetään viesti ruudulla, ja käyttäjä voi sen myös tallettaa tiedostoon.