Steganografische systemen gebaseerd op levende talen, met menselijke interactie

Maat: px
Weergave met pagina beginnen:

Download "Steganografische systemen gebaseerd op levende talen, met menselijke interactie"

Transcriptie

1 E07/ELO/02 Diepenbeek, 2007 Steganografische systemen gebaseerd op levende talen, met menselijke interactie rapport over het eindwerk van Alexander ALDERWEIRELDT en Tim THAENS kandidaten voor de graad van Industrieel Ingenieur in de elektronica Promotoren: prof. dr. ir. B. Preneel dr. ir. P. Valckenaers

2 Abstract Het onderwerp van deze masterproef werd uitgeschreven door COSIC (COmputer Security and Industrial Cryptography), een onderzoeksgroep binnen de K.U.Leuven, die zich toespitst op cryptografie en netwerkbeveiliging. Een typisch probleem met linguïstische steganografie is dat het moeilijk is om aandacht aan de semantische samenhang van het resultaat te besteden. Indien geautomatiseerd, kunnen zinnen onnatuurlijk gaan lijken of op subtiele manier wijzigen in betekenis, waardoor ze niet meer in hun oorspronkelijke context passen. Dit rapport stelt een oplossing voor die menselijke interactie aan de steganografische engine toevoegt. Dit werd gerealiseerd in een IRC-module voor X-Chat, ontwikkeld in de programmeertaal C. De menselijke interactie wordt voorzien door middel van een grafische pop-up. In deze pop-up kan de gebruiker een keuze maken tussen verschillende voorgestelde synoniemen. Dit resulteert in zinnen die volkomen in de context van het IRC-gesprek passen. Eerst wordt een sessiesleutel vastgelegd tussen beide gebruikers. Vervolgens wordt aan ieder synoniem een binaire representatie toegekend die afhankelijk is van de verkregen sessiesleutel. Alle synoniemen met hun bijhorende representatie worden bijgehouden in een codetabel. Ten slotte wordt het over te brengen bericht gecodeerd met een stroomcijfer. Deze codering zorgt voor een extra beveiliging en laat een ononderbroken stroom van data toe. In deze masterproef werd een werkende implementatie ontwikkeld die een stego-engine bevat. Deze stego-engine stelt voor elk woord een aanvaardbaar aantal synoniemen voor, zodat de met elkaar communicerende gebruikers synoniemen kunnen kiezen die geloofwaardige zinnen produceren, passend in de context. Ook zijn er enkele voorstellen besproken voor verdere ontwikkeling, zoals het verhogen van de payload en het comprimeren van de data.

3 Voorwoord Graag willen wij alle mensen bedanken die hebben bijgedragen aan het goede verloop van deze thesis. Allereerst willen wij de promotor van de onderzoeksgroep Prof. Dr. Ir. Bart Preneel bedanken, die ons de kans heeft gegeven deze thesis te mogen uitwerken. Verder willen wij de promotor van onze school Dr. Ir. Paul Valckenaers bedanken voor de deskundige begeleiding en het beantwoorden van onze vragen. Wij bedanken eveneens onze dagelijkse begeleiders Lic. Karel Wouters en Lic. Brecht Wyseur, die steeds voor ons klaar stonden met hun deskundige begeleiding. Niet enkel hebben ze ons geholpen met een inleiding tot cryptografie en steganografie, maar ook met druk te leggen op het schrijven van de tekst. Eveneens hebben ze ons op iedere vlotte en plezante vergadering in de goede richting gestuurd. Verder zijn ze ook steeds een bron van vele leerrijke veranderingen en boeiende ideeën voor ons geweest. Verder willen wij onze ouders bedanken. opleiding te volgen. Zonder hen was het niet mogelijk om deze Als laatste willen wij iedereen bedanken die interesse getoond heeft in deze thesis. Ik, Alexander, zou graag mijn vriendin Leen bedanken voor de steun en de nodige ontspanning die ze mij gaf gedurende mijn studies en de uitvoering van deze thesis. Alderweireldt Alexander Thaens Tim 29 mei 2007

4 Inhoudsopgave Abstract 2 Voorwoord 3 Inhoudsopgave 5 Lijst van figuren 7 Lijst van tabellen 8 1 Inleiding COSIC Probleemstelling Overzicht van de tekst Achtergrondinformatie Cryptografie Symmetrische algoritmes Asymmetrische algoritmes Combinatie van asymmetrische en symmetrische algoritmes Hashfuncties MAC: Message Authentication Code Steganografie Steganografische systemen Steganografische schuilobjecten Linguïstische steganografie IRC Introductie Uitbreiden van een IRC-implementatie: plugin vs. script Keuze van de IRC-cliënt Programmeeromgeving Besturingssystemen Gebruikte bibliotheken Documentatie Theoretisch model Architectuur Systeembeschrijving Stego-engine Data-structuur

5 3.1.4 Menselijke interactie Cryptografische primitieven Vastleggen van de sessiesleutel Sleutelafleidingen Codetabel Situering Codetabel generatie Codetabel optimalisatie Eventuele uitbreidingen Implementatie Plugin Minimumvereisten Installatie Initialisatie Aanmaken van het data-bestand Gebruik Technische gegevens Besluit 63 Referenties 66 Bijlagen 70

6 Lijst van figuren Figuur 1 Voorbeeld van een steganografisch coderingsproces Figuur 2 ECB-mode van blokvercijfering Figuur 3 CBC-mode van blokvercijfering Figuur 4 De werking van een DES iteratie Figuur 5 De werking van stroomvercijfering Figuur 6 Aanmaken van een asymmetrisch sleutelpaar en de werking van asymmetrische algoritmes Figuur 7 Diffie-Hellman sleutelovereenkomst Figuur 8 De geheime informatie: een foto van een luchthaven Figuur 9 Een gif afbeelding Figuur 10 De steganografische gif afbeelding Figuur 11 Een jpeg afbeelding Figuur 12 De steganografische jpeg afbeelding Figuur 13 Een uitvergroting van de rechterbovenhoek van de originele en de steganografische jpeg afbeelding Figuur 14 Een afbeelding van een kaart Figuur 15 Bovenaan het origineel audiosignaal en onderaan het steganografische audiosignaal Figuur 16 Een voorbeeld van opmaak-gebaseerde steganografie Figuur 17 Een voorbeeld van opmaak-gebaseerde steganografie Figuur 18 Een voorbeeld van een IRC spanning tree model Figuur 19 Werking van het ontworpen systeem Figuur 20 Werking van het ontworpen systeem met cryptografische primitieven 36 Figuur 21 Het construeren en decoderen van een stego-tekst door de stegoengine Figuur 22 De data-structuur van de geheugenopslag Figuur 23 Een voorbeeld van een pop-up venster Figuur 24 De generatie van de deterministische random bitstroom β Figuur 25 De RC4 sleutelafleiding Figuur 26 Een voorstelling van de codetabel Figuur 27 De generatie van de codetabel Figuur 28 De spreiding van de synoniemen na het genereren van een codetabel, zonder optimalisatiestappen Figuur 29 Een goede spreiding van de synoniemen Figuur 30 De spreiding van de synoniemen na een eerste optimalisatiestap.. 48 Figuur 31 De spreiding van de synoniemen na een tweede optimalisatiestap. 49 Figuur 32 De spreiding van de synoniemen na een tweede optimalisatiestap met het vastzetten van de gewijzigde synoniemen

7 Figuur 33 De spreiding van de synoniemen na het herhalen van de twee optimalisatie stappen Figuur 34 De spreiding van de synoniemen na het verlagen van het minimum aantal NULL-synoniemen Figuur 35 Vergelijking tussen de originele en de uitgebreide codetabel Figuur 36 Bits toekennen aan synoniemen met behulp van de methode met Huffman-code Figuur 37 Het pop-upvenster bij het inladen van de plugin Figuur 38 De zender typt een zin in Figuur 39 Een pop-up na het typen van een zin Figuur 40 De keuze van de synoniemen, de geschikte en N U LL-synoniemen zijn gescheiden Figuur 41 De vooruitgang aan de zijde van de zender na het typen van een zin 59 Figuur 42 De vooruitgang aan de zijde van de ontvanger na het ontvangen van een zin Figuur 43 Het voltooien van het zenden van het bericht Figuur 44 Het voltooien van het ontvangen van het bericht

8 Lijst van tabellen Tabel 1 Een overzicht van de bestudeerde IRC-cliënten Tabel 2 Een overzicht van data van de gebruikte thesaurus en het gegenereerde data-bestand Tabel 3 Effiëntietest van de plugin

9 1 Inleiding Doorheen alle tijden en voor uiteenlopende behoeften is de mens bedreven geweest in het uitwisselen van geheime berichten. Zo hielden vroegere veldheren hun aanvalsplannen geheim voor hun tegenstanders, en vercijferde Caesar op een eenvoudige manier zijn berichten naar zijn generaals, omdat hij zijn boodschappers niet vertrouwde. Kahn [1] heeft zelfs sporen van vercijfering terug gevonden tot 4000 jaar geleden, bij de Egyptenaren. Zelfs kinderen sturen onschuldige geheime berichten door, zodat andere kinderen en leerkrachten ze niet kunnen lezen. Tegenwoordig gebeurt het uitwisselen van geheime boodschappen steeds vaker via een elektronisch medium, bijvoorbeeld het internet. Deze evolutie zorgt voor enkele nieuwe risico s. Computersystemen kunnen aangevallen worden door hackers of kwaadaardige software, zoals computervirussen, -wormen of Trojaanse paarden. Een gevolg hiervan is een grote vraag naar betere technieken om geheime informatie te beschermen. Enerzijds worden cryptografische technieken toegepast op de informatie, zodat deze niet interpreteerbaar is voor de indringer. Anderzijds kan de informatie ook beschermd worden tegen wijzigingen, door het toevoegen van redundanties [2]. Het verhaal van Alice en Bob [3] wordt vaak gebruikt om deze technieken te verduidelijken. Alice wil een geheime boodschap (de klaartekst) naar Bob sturen, maar Eve 1 luistert alle berichten af. Hiervoor vercijfert Alice de klaartekst tot de vercijferde tekst (de cijfertekst) met behulp van een wiskundige transformatie. Deze cijfertekst verstuurt Alice naar Bob, die de cijfertekst ontcijfert naar de klaartekst met behulp van de inverse transformatie. Eve bekomt de cijfertekst, maar zal hieruit niets leren over de inhoud van de klaartekst. Om in dit voorbeeld het bericht te beveiligen tegen wijzigingen, zal Alice een authentiseringscode van het bericht berekenen en toevoegen aan het bericht. Deze authentiseringscode is het resultaat van een ingewikkelde functie met als invoer het bericht en een geheime sleutel, die Alice en Bob bezitten. Bob berekent eveneens de authentiseringscode van het ontvangen bericht, met dezelfde geheime sleutel, en zal deze vergelijken met de meegestuurde authentiseringscode van Alice. Eve kan onderweg het bericht wel veranderen, maar kan geen geldige authentiseringscode bij het bericht voegen, omdat ze niet beschikt over de geheime sleutel van Alice en Bob. Op deze manier kan Bob met grote zekerheid iedere wijziging van het bericht detecteren. De authentiseringscode kan hier worden bekomen met een MAC of HMAC (zie 2.1.5). In sommige gevallen is het niet enkel gewenst om de boodschap op een veilige manier, maar ook op een onopgemerkte manier door te sturen. Om een boodschap onopgemerkt door te sturen, zal vaak een publiek medium gebruikt worden, zoals het internet. Het probleem hierbij is dat deze publieke media vaak onveilig zijn, omdat de afgelegde weg 1 Eve (eavesdropper) = afluisteren

10 1.1 COSIC 1 INLEIDING van de informatie niet gekend of gedefinieerd is. Dit kan ook verduidelijkt worden met het voorbeeld van Alice en Bob. Alice en Bob zitten in de gevangenis. De bewaker Wendy 2 controleert alle communicatie tussen beiden. Als Alice nu een verdacht bericht naar Bob wil sturen, zeker als dit vercijferd is, zal Wendy alarm slaan. Om dit probleem op te lossen, zullen Alice en Bob gebruik moeten maken van steganografie. Hierbij verbergen ze de gevoelige informatie in onschuldig ogende objecten (de schuilobjecten), zodat Wendy niets vermoedt. Een voorbeeld hiervan is het gebruik van micropunten. Een foto of tekening met geheime informatie op wordt verkleind tot deze slechts een afmeting heeft van de grootte van een punt. In een onschuldige tekst wordt een punt achter een zin vervangen door deze verkleinde foto, en wordt de tekst verspreid. De ontvanger kan dit punt weer uitvergroten tot normale grootte, en zo alle informatie zien. Omdat de foto zo sterk verkleind wordt, kan het blote oog geen verschil zien tussen deze foto en een echt punt. Iemand die deze tekst leest, zal dus niets opmerken van deze informatieoverdracht. 1.1 COSIC De onderzoeksgroep COSIC (COmputer Security and Industrial Cryptography) maakt deel uit van het departement Elektrotechniek-ESAT van de Katholieke Universiteit Leuven en wordt geleid door de professoren Bart Preneel, Ingrid Verbauwhede en Joos Vandewalle. Het doel van het onderzoek binnen COSIC is het creëren van veilige elektronische equivalenten voor informatiebeveiligingsconcepten in de fysische wereld zoals vertrouwelijkheid, handtekeningen, identificatie, anonimiteit, notariële bekrachtigingen en betalingen. Om dit doel te bereiken spitst de onderzoeksgroep zich toe op het ontwerp, de evaluatie en implementatie van cryptografische primitieven en protocollen, alsook hun toepassing in telecommunicatie, computernetwerken en embedded systemen. COSIC heeft bijgedragen tot het ontwerp en de evaluatie van de beveiliging in een groot aantal praktische systemen (onder meer de elektronische idententiteitskaart, elektronisch bankieren, elektronische verkiezingen, UMTS 3 ). Eén van de bekende successen is het Rijndael-algoritme, dat door NIST 4 werd geselecteerd als de AES (Advanced Encryption Standard) [4]. Dit algoritme werd ontwikkeld door Dr. Vincent Rijmen (doctoraat in COSIC in 1997) en Dr. Joan Daemen (doctoraat in COSIC in 1995). Momenteel wordt AES gebruikt door miljoenen gebruikers in 2 Wendy (warden) = afluisteren en controleren 3 UMTS of Universal Mobile Telecommunications System, wordt ook de derde generatie (3G) mobiele communicatie genoemd.umts biedt zowel circuitgeschakelde als pakketgeschakelde communicatiediensten aan. 4 National Institute of Standards and Technology 10

11 1.2 Probleemstelling 1 INLEIDING meer dan duizend producten, zoals de bescherming van de overheidsinformatie van de Verenigde Staten. COSIC geeft advies op het gebied van computerveiligheid en cryptografie en werkt wereldwijd samen met zowel universiteiten als bedrijven en organisaties. COSIC is tevens coördinator van het Europese project ECRYPT, een Network of Excellence in cryptografie dat 32 instellingen uit de academische en bedrijfswereld vertegenwoordigt. 1.2 Probleemstelling Steganografische technieken (stego-technieken) worden gebruikt om klaartekst te verbergen in schuilobjecten. R. Bergmair [5] stelde een techniek voor om met levende talen een geheime boodschap te verbergen in een gewone tekst, door een juiste keuze van synoniemen te gebruiken. Een voorbeeld hiervan wordt in figuur 1 weergegeven. Afhankelijk van het gekozen synoniem wordt een bepaald deel van een geheime boodschap verstuurd. Figuur 1: Voorbeeld van een steganografisch coderingsproces De doelstelling van deze masterproef bestaat erin een module voor een IRC-cliënt te ontwikkelen. In deze module wordt gebruik gemaakt van bovenstaande techniek in combinatie met menselijke interactie om de context en het persoonsgebonden karakter van de schuilobjecten zoveel mogelijk te behouden. De twee gebruikers zullen een geheime sleutel vastleggen. Met deze sleutel wordt een sessie-afhankelijke codetabel opgesteld. De verborgen boodschap die de gebruiker wil doorsturen, zal vercijferd worden tot een bitstroom. Deze bitstroom zal de gebruiker doorsturen door op een IRC-kanaal te chatten en gewoon mee discussiëren over het onderwerp dat dan aan de orde is. 1.3 Overzicht van de tekst In hoofdstuk 2 wordt achtergrondinformatie meegegeven. Hierin wordt een inleiding tot de cryptografie en de steganografie gegeven. Verder wordt besproken wat IRC is, de keuzes die op gebied van IRC gemaakt zijn en de programmeeromgeving waarin de plugin ontwikkeld is. In hoofdstuk 3 wordt het ontwerp van de plugin besproken. Allereerst wordt de architectuur van de plugin nader toegelicht. Vervolgens worden ook de gebruikte cryptografische primitieven besproken, gevolgd door een uiteenzetting 11

12 1.3 Overzicht van de tekst 1 INLEIDING over de codetabel. Hoofdstuk 4 behandelt de implementatie van de plugin. De minimumvereisten, alsook de installatie, initialisatie en het gebruik van de plugin worden hier besproken. Dit wordt gevolgd door voorstellen voor verdere ontwikkeling. Hoofdstuk 5 geeft een algemeen besluit. 12

13 2 ACHTERGRONDINFORMATIE 2 Achtergrondinformatie In dit hoofdstuk wordt een inleiding tot de cryptografie en de steganografie gegeven. Verder wordt besproken wat IRC is, welke keuzes op gebied van IRC zijn gemaakt en in welke omgeving de plugin ontwikkeld is. 2.1 Cryptografie Cryptografie is de studie die zich bezig houdt met wiskundige technieken, verbonden met beveiliging van informatie, zoals vertrouwelijkheid, data-integriteit en onweerlegbaarheid van de data. [6] Zoals deze definitie weergeeft wordt cryptografie gebruikt met 3 doeleinden [7]: Vertrouwelijkheid: Enkel de ontvanger mag het oorspronkelijke bericht lezen, niet de afluisteraar die de boodschap onderschept. Hiervoor wordt de klaartekst vercijferd tot een cijfertekst door middel van wiskundige berekeningen en een geheime sleutel. Onweerlegbaarheid: De ontvanger kan bewijzen dat de verzender het bericht werkelijk heeft verzonden. Bij het verzenden zal Alice (zie hoofdstuk 1) het bericht omvormen met haar private sleutel. Door gebruik te maken van haar publieke sleutel weet Bob dat het bericht afkomstig is van Alice. Als Eve, of andere afluisteraars, het bericht wijzigen, zal de verificatie met de publieke sleutel van Alice falen. Data-integriteit: De ontvanger is zeker dat de boodschap onderweg niet veranderd is. Alice en Bob beschikken over eenzelfde geheime sleutel K. Alice berekent een authentiseringscode (MAC of HMAC: zie 2.1.5) van de boodschap en voegt deze toe aan de boodschap. Bob zal eveneens de authentiseringscode berekenen van de ontvangen boodschap. Als deze overeenkomt met de authentiseringscode van Alice weet Bob dat de boodschap onderweg niet veranderd is. Vercijferingsalgoritmes kunnen opgedeeld worden in twee methodes, namelijk symmetrische en asymmetrische algoritmes. Het verschil tussen de twee methodes ligt in de aard van de sleutel om de informatie te vercijferen en te ontcijferen. De twee methodes kunnen ook gecombineerd worden. In 1883 formuleerde Auguste Kerckhoffs het fundamentele principe dat zelfs als een deel van de communicatiemiddelen in handen van een afluisteraar valt, het nog steeds mogelijk moet zijn om veilig te communiceren [8]. Een modernere formulering luidt dat de veiligheid afhangt van de kwaliteit (en de geheimhouding) van de sleutel en niet van het geheimhouden van het gebruikte cryptografische algoritme. Tegenwoordig wordt 13

14 2.1 Cryptografie 2 ACHTERGRONDINFORMATIE Kerckhoffs principe wat algemener geïnterpreteerd, namelijk dat bij het ontwerp van een beveiligingssysteem ervan uitgegaan moet worden dat de afluisteraar dit ontwerp kent. Zelfs met volledige kennis van het ontwerp van een systeem moet het onmogelijk blijven om binnen redelijke tijd de veiligheid van het systeem te breken [9]. Met behulp van de voorgaande uiteenzetting kunnen we ook een definitie voor een veilig steganografisch systeem (stego-systeem) formuleren, met name als een afluisteraar het volledige stego-systeem kent, maar de sleutel niet bezit, kan hij niet bewijzen (of zelfs vermoeden) dat er een geheime communicatie plaatsvindt. Verdergaand op het voorbeeld van Alice en Bob wil dit zeggen dat er vanuit gegaan moet worden dat de bewaker Wendy het algoritme kent dat Alice en Bob gebruiken om hun klaartekst uit te wisselen met elkaar. Wendy kan informatie halen uit elk gecommuniceerd stego-object, maar zonder de geheime sleutel die Alice en Bob gebruiken voor hun stego-systeem, kan zij nooit de klaartekst achterhalen die Alice en Bob uitwisselen met elkaar. Wendy zal dus geen geheime communicatie tussen Alice en Bob kunnen bewijzen of zelfs vermoeden Symmetrische algoritmes Bij symmetrische algoritmes wordt dezelfde sleutel gebruikt om de informatie te vercijferen en te ontcijferen. Het voordeel hierbij is dat vercijfering en ontcijfering relatief snel kunnen worden uitgevoerd. Het nadeel hierbij is dat zowel zender als ontvanger over dezelfde sleutel moeten beschikken. Deze sleutel moet op zijn beurt dus op een vertrouwelijke manier uitgewisseld worden. Vercijfering van de informatie met behulp van symmetrische cryptografie kan op zijn beurt op twee verschillende manieren gebeuren: door gebruik te maken van blokvercijfering, ofwel door gebruik te maken van een stroomvercijfering. Bij blokvercijfering wordt de informatie eerst in verschillende blokken verdeeld en daarna ieder blok vercijferd met de sleutel. Hoe ieder blok vercijferd wordt, hangt af van de gebruikte methode. Eén mogelijke methode (ECB: Electronic Codebook [6]) is dat ieder blok onafhankelijk van elkaar verwerkt wordt. Op een blok van de klaartekst wordt een wiskundige berekening uitgevoerd met de sleutel. Het resultaat hiervan is de overeenkomstige cijferblok. Dit wordt voorgesteld in figuur 2. Het nadeel hierbij is dat de cijferblok enkel afhankelijk is van de klaartekst en de sleutel, niet van de vorige cijferblokken. Eenzelfde waarde van een blok van de klaartekst, zal dus dezelfde cijferblok geven. Een betere methode (CBC: Cipher Block Chaining [6]) XORd 5 eerst de vorige cijferblok op met de huidige blok van de klaartekst, en voert daarna de wiskundige bewerking uit met de sleutel. Een voorbeeld hiervan wordt voorgesteld in figuur 3. Hierbij 5 XOR of exclusieve disjunctie is een puntgewijze handeling op twee logische waardes, die een 1 teruggeeft indien één en juist één van de twee logische waardes een 1 is. 14

15 2.1 Cryptografie 2 ACHTERGRONDINFORMATIE is de cijferblok afhankelijk van de vorige cijferblokken, en niet enkel van de klaartekst en de sleutel. Andere vaak gebruikte methodes zijn OFB [6] en CTR [6]. De verwerking van ieder blok is afhankelijk van het gebruikte cryptografische algoritme, vaak gebruikte algoritmes zijn AES en DES. Figuur 2: ECB-mode van blokvercijfering Figuur 3: CBC-mode van blokvercijfering DES of Data Encryption Standard [10] vercijfert de data in blokken van 64-bits tot 64-bits cijferblokken met een geheime sleutel K van 56-bits. De geheime sleutel wordt ingegeven als 64-bits, waarvan 8 bits gebruikt worden als pariteitsbits. De vercijfering verloopt in 18 stadia, een beginpermutatie, 16 identieke iteraties en een eindpermutatie. De beginpermutatie zorgt ervoor dat de data niet rechtstreeks naar de eerste iteratie gestuurd wordt, maar wordt eerst volgens een permutatietabel omgevormd. Het voordeel hierbij is dat een eventuele concentratie van enen en nullen gespreid wordt. Van de geheime sleutel K worden 16 subsleutels K i gegenereerd met een lengte van 48 bits, één voor iedere iteratie. Ieder blok wordt opgedeeld in twee delen: de linkerhelft L i en de rechterhelft R i. De rechterhelft R i en de subsleutel K i worden vermengd met een functie f. Het resultaat van deze functie f wordt gexord met de linkerhelft L i. Het resultaat van deze XOR vormt de volgende rechterhelft R i+1. De rechterhelft R i wordt de volgende linkerhelft L i+1. Zo een iteratie wordt weergegeven in figuur 4, nadat alle 16 iteraties doorlopen zijn, wordt de eindpermutatie uitgevoerd. Deze permutatie is de inverse van de beginpermutatie, zodat de twee permutaties geen invloed hebben op de vercijfering. Hierna de data terug samengevoegd om zo de cijferblok te bekomen. AES of Advanced Encryption Standard [4] vercijfert de data in blokken van 128-bits tot 128-bits cijferblokken met een geheime sleutel K van 128, 192 of 256 bits. De vercijfering verloopt in 10 tot 14 identieke iteraties, afhankelijk van de sleutellengte. De geheime sleutel K wordt ook hier opgedeeld in een aantal subsleutels K i, afhankelijk van het aantal iteraties. AES is een bytegeörienteerd algoritme, waarbij de data voorgesteld wordt in een matrix. De grootte van deze matrix is afhankelijk van het aantal bytes 6 van één blok en van het aantal bytes van de sleutel. Iedere iteratie is opgedeeld in vier 6 1 byte = 8 bits 15

16 2.1 Cryptografie 2 ACHTERGRONDINFORMATIE Figuur 4: De werking van een DES iteratie afzonderlijke stappen: De bytesubstitutie: Een niet lineaire-substitutie waarbij iedere byte van de matrix vervangen wordt door een andere byte, afhankelijk van een opzoektabel. De rijrotatie: Een transformatiestap waarbij iedere rij van de matrix geroteerd wordt over een aantal posities, afhankelijk van de rij waarin de byte zich bevindt en de blokgrootte. De kolomvermenigvuldiging: Een lineaire transformatie waarbij iedere kolom van de matrix vermenigvuldigd wordt met een vaste veelterm. De sleuteltoevoeging: Iedere byte van de matrix wordt gexord met de overeenkomstige subsleutel. Bij stroomvercijfering wordt iedere eenheid (letter, bit of byte) van de informatie apart vercijferd. Ook hier kan de waarde van de vercijfering afhankelijk zijn van de vorige waardes. Een voorbeeld hiervan is beschreven in figuur 5. Het voordeel van stroomvercijfering is dat de ontvanger het ontvangen deel van de boodschap al helemaal kan ontcijferen. Bij blokvercijfering kan dit pas iedere keer als een blok ontvangen is. Een voorbeeld van stroomvercijfering, die ook in deze thesis wordt toegepast, is RC4 [11] Asymmetrische algoritmes Bij asymmetrische algoritmes worden twee verschillende sleutels gebruikt, die wiskundig in verbinding staan met elkaar. In een eerste fase genereert Alice een cryptografisch sleutelpaar, bestaande uit een publieke en private sleutel. De private sleutel houdt Alice geheim, terwijl ze de publieke sleutel kenbaar maakt voor iedereen, dus ook voor Bob. Bob zal dan zijn boodschap vercijferen met de publieke sleutel van Alice. Enkel Alice, die de private sleutel kent, kan de cijfertekst terug ontcijferen tot de klaartekst. Dit voorbeeld wordt verduidelijkt in figuur 6. Het voordeel hiervan is dat men zich geen zorgen moet maken over het uitwisselen van de sleutel. Het nadeel is echter dat er heel 16

17 2.1 Cryptografie 2 ACHTERGRONDINFORMATIE Figuur 5: De werking van stroomvercijfering wat meer rekenkracht nodig is voor de vercijfering en ontcijfering van de boodschap. Figuur 6: Aanmaken van een asymmetrisch sleutelpaar en de werking van asymmetrische algoritmes RSA [12] is een asymmetrisch algoritme, dat gebaseerd is op de factorisatie van een product van grote priemgetallen. Het aanmaken van een asymmetrisch sleutelpaar met behulp van RSA gebeurt in de volgende stappen: Kies twee grote, willekeurige priemgetallen p q willekeurig. Bereken N = p q. Kies een geheel getal 1 < d < N, dat relatief priem 7 is t.o.v. (p 1)(q 1). Bereken e zodat d e mod (p 1)(q 1) = 1. Vernietig alle sporen van p en q. 7 a is relatief priem t.o.v. b als a en b geen gemene delers hebben. 17

18 2.1 Cryptografie 2 ACHTERGRONDINFORMATIE Hierbij vormen e en N de publieke sleutel en d en N de private sleutel. Alice zal dus e en N publiek verspreiden, en d geheim houden. Bob kan zijn geheime boodschap m nu vercijferen tot de cijfertekst c met de publieke sleutel van Alice, e en N. c = m e mod N Alice ontvangt c van Bob, en kan hieruit de geheime boodschap m halen met behulp van haar private sleutel, d en N. m = c d mod N Eve die de boodschap c afluistert en ook de private sleutel van Alice, e en N, bezit, kan onmogelijk de geheime boodschap m berekenen. Ze kan wel alle mogelijke waarden van m invullen, en controleren of dit overeenstemt met de cijfertekst c. Bij RSA kan N verschillende lengtes aannemen, zoals 256, 512, 1024 en zelfs 2048 bits. Met zulke grote getallen is het bijna onmogelijk om de geheime boodschap te raden Combinatie van asymmetrische en symmetrische algoritmes Om praktische redenen kan een combinatie van deze twee methoden gebruikt worden. Hierbij zal het asymmetrisch algoritme gebruikt worden om een symmetrische sleutel uit te wisselen. Met deze symmetrische sleutel kan nadien een symmetrisch algoritme gebruikt worden om de informatie zelf te vercijferen. In een variatie hierop, wordt een geheime sleutel voor een symmetrisch cryptografie overeengekomen met behulp van een asymmetrisch algoritme. Diffie-Hellman algoritme [13] is hier een voorbeeld van. Diffie-Hellman Het Diffie-Hellman protocol zorgt ervoor dat Alice en Bob over een onveilig kanaal een geheime sleutel kunnen afspreken zonder dat een derde, Eve, deze geheime sleutel kan vinden. Dit protocol werd in 1976 door Whitfield Diffie en Martin Hellman voorgesteld [14]. Figuur 7 geeft de eenvoudige werking van de Diffie-Hellman sleutelovereenkomst weer. Het protocol bestaat uit drie opeenvolgende stappen waarin beide partijen, Alice en Bob, informatie uitwisselen over een onveilig kanaal. Na de derde stap delen Alice en Bob dezelfde geheime sleutel. In de eerste stap kiest Alice de drie waarden p, g en a : p : een groot priemgetal; g : een willekeurig getal tussen 1 en p; a : Alice haar geheime waarde, een willekeurig getal. 18

19 2.1 Cryptografie 2 ACHTERGRONDINFORMATIE Figuur 7: Diffie-Hellman sleutelovereenkomst Uit deze drie waarden construeert Alice haar publieke sleutel A (A = g a mod p). Alice zendt vervolgens p, g en haar publieke sleutel A naar Bob. Ze houdt haar geheime waarde a geheim. In de tweede stap herhaalt Bob dezelfde berekening. Hij neemt het priemgetal p, het getal g die hij ontvangen heeft van Alice, kiest een eigen geheime waarde b en berekent zijn publieke sleutel B (B = g b mod p). Bob zendt op zijn beurt zijn publieke sleutel door naar Alice. Ook hij houdt zijn waarde b geheim. In de derde en laatste stap berekenen zowel Alice als Bob elk afzonderlijk dezelfde sessiesleutel S. Zonder S ooit over het onveilige kanaal gestuurd te hebben, kennen enkel Alice en Bob na de drie stappen van het Diffe-Hellman protocol de sessiesleutel S. Enkel Alice en Bob kunnen namelijk met hun eigen geheime waarde a en b en de publieke B en A de sessiesleutel S berekenen. Alice : B a mod p = (g b mod p) a mod p = g ab mod p = S Bob : A b mod p = (g a mod p) b mod p = g ab mod p = S De veiligheid van het Diffie-Hellman protocol is gebaseerd op een wiskundig moeilijk probleem, namelijk het discrete logaritme probleem 8. Eve kan enkel de waarden A, B, g en p onderscheppen maar door het discrete logaritme probleem moeilijk het getal g ab achterhalen. Eve : g a g b = g a+b g ab Hashfuncties Een hashfunctie is een functie in de informatica die invoer uit een breed domein van waarden omzet in een (meestal) kleiner bereik, meestal een deelverzameling van de gehele 8 Het probleem om vanuit een element a en g een geheel getal y te berekenen zodat g y = a, noemt men het discrete logaritme probleem. 19

20 2.2 Steganografie 2 ACHTERGRONDINFORMATIE getallen. Het woord hash komt uit het Engels en betekent hier hakken. [15]. Een goede hashfunctie moet voldoen aan enkele belangrijke voorwaarden: Zorgen voor een onomkeerbare uitvoer (hashwaarde). Als de hashwaarde gekend is, mag het in geen enkel geval mogelijk zijn om hieruit de originele invoer terug uit te halen. Weinig botsingen veroorzaken. De kans dat twee verschillende invoeren eenzelfde hashwaarde als uitvoer hebben moet zeer klein zijn. Een evenredig aantal enen en nullen produceren. SHA1 of Secure Hash Algoritm [16] is een voorbeeld van hashfunctie die in deze thesis gebruikt wordt. SHA1 levert een hashwaarde van 160 bit voor een bericht met een maximumgrootte van MAC: Message Authentication Code Een MAC [17] is een kleine hoeveelheid cryptografische informatie die aan bericht wordt toegevoegd om het bericht te beveiligen tegen wijzigingen. Een MAC heeft als invoer een bericht dat beveiligd moet worden en een geheime sleutel, en heeft een uitvoer (MACwaarde) die geverificeerd kan worden door iedereen die de geheime sleutel bezit. Met deze verificatie kan gecontroleerd worden of het bericht al dan niet gewijzigd is. De veiligheid van een MAC zit in het feit dat een aanvaller geen geldige MAC-waarde kan genereren op een bericht dat nooit door de oorspronkelijke zender aangemaakt is. Een HMAC [18] maakt gebruik van zowel een geheime sleutel als van een cryptografische hashfunctie om de MAC-waarde te genereren. Dit zorgt voor een sterkere beveiliging van de MAC-waarde. 2.2 Steganografie Cryptografie beveiligt een klaartekst door deze te vervormen tot een onverstaanbare boodschap (cijfertekst). Een nadeel hiervan is dat dit cryptogram makkelijk detecteerbaar is en onderworpen kan worden aan een crypto-analyse. Steganografie daarentegen beveiligt de klaartekst door deze volledig te verbergen in een schuilobject. Eerder in deze tekst werd het voorbeeld van Alice, Bob en de bewaker Wendy al aangehaald om het nut van steganografie te verduidelijken Steganografische systemen Een onschuldig ogend object waarin klaartekst kan verborgen worden, werd eerder al gedefinieerd als een schuilobject. Een schuilobject waarin een klaartekst verwerkt zit, definiëren we als een stego-object. Een steganografisch systeem (stego-systeem) heeft 20

21 2.2 Steganografie 2 ACHTERGRONDINFORMATIE als doel het aanmaken van deze stego-objecten. Een veilig stego-systeem genereert deze stego-objecten zo, dat het stego-object niet onderscheiden kan worden in de verzameling van schuilobjecten. Een stego-systeem is gebroken als Wendy op basis van een stegoobject vermoedt dat er een geheime boodschap verzonden wordt. Kenmerken van een stego-systeem zijn: Payload: De verhouding klaartekst tot het schuilobject. Robuustheid: Het vermogen van het stego-systeem om veranderingen te weerstaan aan het schuilobject zonder dat de interne boodschap gewijzigd wordt. Ononderscheidbaarheid: Het potentieel van het stego-systeem om stego-objecten te maken die niet te onderscheiden zijn van andere schuilobjecten in dezelfde categorie. Ook het principe van Kerckhoffs [8] kunnen we toepassen op steganografische systemen. Dit principe zegt namelijk dat als Alice en Bob elkaar een stego-object versturen, ze er vanuit moeten gaan dat een mogelijke afluisteraar Wendy weet welk stego-systeem ze gebruiken. Op basis van het principe van Kerckhoffs kunnen we drie soorten steganografie onderscheiden, namelijk pure steganografie, geheime sleutel steganografie en publieke sleutel steganografie [19]. Pure steganografie Bij dit stego-systeem gebeurt er geen voorafgaande uitwisseling of vastlegging van een geheime sleutel. Zowel zender als ontvanger hebben toegang tot hetzelfde stego-systeem. De veiligheid hangt bij deze steganografische methode af van het geheim van het stegosysteem. Het principe van Kerckhoffs wordt dus genegeerd. Geheime sleutel steganografie Geheime sleutel steganografie vereist het uitwisselen van een geheime sleutel. Met behulp van deze geheime sleutel verwerkt het stego-systeem de klaartekst in het schuilobject. De klaartekst kan enkel worden berekend uit het stego-object met behulp van de geheime sleutel. In dit soort steganografie wordt het principe van Kerckhoffs toegepast. Er wordt hier met een een gedeeld geheim gewerkt. Publieke sleutel steganografie Publieke sleutel steganografie vereist het gebruik van een publieke en een private sleutel. Met behulp van de publieke sleutel van de ontvanger wordt de klaartekst door het stegosysteem in het stego-object verwerkt. Enkel de persoon van de gebruikte publieke sleutel kan de geheime informatie uit het stego-object ontleden met behulp van zijn private 21

22 2.2 Steganografie 2 ACHTERGRONDINFORMATIE sleutel. Dit soort steganografie past ook het principe van Kerckhoffs toe. Er wordt hier gewerkt met een geheim bij éé partij Steganografische schuilobjecten Digitale technologie maakt heel wat nieuwe toepassingen van steganografische technieken mogelijk. Steganografie kan gebruikt worden om intellectueel eigendom te beveiligen. Door bijvoorbeeld het aanbrengen van een unieke digitale handtekening (watermerk) in een afbeelding of geluidsfragment, kan de auteur zijn auteursrechten beschermen. Daarnaast wordt steganografie ook gebruikt om geheime informatie te verzenden. Enkele gekende systemen gebruiken als schuilobjecten foto s [20, 21], audio [22, 23], tekst [5], video [22], TCP-IP pakketten [24] en programma s [25]. Foto s De keuze voor foto s als schuilobject berust op het gegeven dat het menselijke zicht ongevoelig is voor kleine veranderingen in kleurenintensiteit. Een afbeelding bestaat uit beeldpunten (pixels) met een bepaalde kleur. Deze kleur wordt voorgesteld door RGBwaardes, namelijk voor iedere grondkleur (rood, groen en blauw) een representatie van 8 bits. Er zijn verschillende mogelijkheden om informatie in een afbeelding te verstoppen. De makkelijkste manier is het gebruiken van de minst beduidende bit van de RGBkleuren van de pixels, om een geheime boodschap te verbergen [20]. Het menselijke oog kan namelijk geen onderscheid maken tussen bijvoorbeeld de blauwtinten #0000F7 en #0000F8 (hexadecimale voorstelling RGB). In de onderstaande voorbeelden vertrekken we van een geheime foto van een luchthaven (figuur 8). Deze afbeelding heeft een bestandsgrootte van 58 kb 9. In het eerste voorbeeld wordt de foto van de luchthaven in een afbeelding van het compressieformaat gif verborgen door middel van het steganografisch programma Hide-in-picture [26] van Davi Figueiredo. De originele afbeelding met een bestandsgrootte van 1253 kb wordt in figuur 9 weergegeven. Het resulterende stegoobject (stego-foto) wordt weergeven in figuur 10. In het tweede voorbeeld wordt de foto van de luchthaven in een afbeelding van het compressieformaat jpeg verborgen, namelijk in figuur 11 met een bestandsgrootte van 385 kb met figuur 12 als resultaat. Dit wordt gerealiseerd met het steganografisch programma CryptoBola JPEG [27]. Als de originele afbeelding met de stego-foto wordt vergeleken, merken we een zeer klein kwaliteitsverlies van de kleurensamenstelling op. Tussen figuur 9 en 10 is er nauwelijks een verschil waarneembaar. Dit is te verklaren door de verhouding van de bestandsgrootte van deze afbeelding tot de bestandsgrootte van de geheime afbeelding. Er is voldoende redundantie aanwezig in het schuilobject (schuilfoto) om de geheime foto in 9 kb = kilobytes = 1024 bytes 22

23 2.2 Steganografie 2 ACHTERGRONDINFORMATIE Figuur 8: De geheime informatie: een foto van een luchthaven Figuur 9: Een gif afbeelding Figuur 10: De steganografische gif afbeelding Figuur 11: Een jpeg afbeelding Figuur 12: De steganografische jpeg afbeelding de schuilfoto te verwerken en het stego-object, voor het menselijke oog, ononderscheidbaar te houden van het schuilobject. De verhouding van de bestandsgrootte van de schuilfoto 11 tot die van de geheime foto 8 is veel kleiner dan de verhouding van voorbeeld 1. Dit resulteert in een stego-foto met een grotere kleuren degradatie. In figuur 13 wordt de rechterbovenhoek van afbeelding 11 en 12 uitvergroot weergegeven. Hierin is 23

24 2.2 Steganografie 2 ACHTERGRONDINFORMATIE het kwaliteitsverlies van de kleurensamenstelling duidelijker waar te nemen. Figuur 13: Een uitvergroting van de rechterbovenhoek van de originele en de steganografische jpeg afbeelding Audio Dit type steganografie maakt gebruik van de onvolmaaktheid van het menselijk gehoor. Hoewel ons menselijk gehoor een groot dynamisch bereik heeft, heeft het een redelijk klein differentieel bereik. Een gevolg hiervan is dat we bij de aanwezigheid van luide tonen, stille tonen niet meer goed kunnen waarnemen. Bovendien kan het menselijk gehoor ook moeilijk de absolute fase van een audiosignaal waarnemen. Enkel de relatieve fase is goed waarneembaar. Tenslotte is er altijd een geringe vervorming op het audiosignaal afkomstig van de omgeving, die zo normaal is dat hij door de luisteraar niet opgemerkt wordt [23]. Net zoals bij afbeeldingen bestaan ook hier verschillende technieken die deze onvolmaaktheden benutten om een geheime boodschap in een audiosignaal te verbergen. In onderstaand voorbeeld is figuur 14 door middel van het steganografisch programma S-Tools van Andy Brown [28] in een geluidsfragment verwerkt. In figuur 15 wordt respectievelijk (van boven naar onder) het originele geluidsfragment en het geluidsfragment met de kaart in verwerkt (stego-object) weergeven. De afbeelding heeft een bestandsgrootte van 10.8 kb en het geluidsfragment is een wav-bestand met een bestandsgrootte van 175 kb. 24

25 2.2 Steganografie 2 ACHTERGRONDINFORMATIE Figuur 14: Een afbeelding van een kaart Figuur 15: Bovenaan het origineel audiosignaal en onderaan het steganografische audiosignaal Als beide geluidsfragmenten gevisualiseerd en met elkaar vergeleken worden, merken we een klein verschil op tussen beiden. Vooral aan het begin en aan het einde van het geluidsfragment, tijdens de stiltes, is er een verschil tussen beide waarneembaar. 25

26 2.2 Steganografie 2 ACHTERGRONDINFORMATIE Tekst Een ander type schuilobject is geschreven tekst. In tegenstelling tot multimedia schuilobjecten, bevat geschreven tekst weinig redundantie waarin geheime informatie verborgen kan worden. Bij het gebruik van tekst als schuilobject kunnen we drie verschillende aanpakken onderscheiden: opmaak-gebaseerd, random en statistische generatie, en linguïstische steganografie [29]. Opmaak-gebaseerde steganografie introduceert wijzigingen in de opmaak van een schuiltekst. Enkele voorbeelden hiervan zijn de afstand tussen twee regels aanpassen, woorden- of regels verschuiven, het plaatsen van een karakter dat niet weergegeven worden, het toevoegen van spaties tussen woorden of op het einde van een regel. Figuur 16 en figuur 17 geven hiervan een voorbeeld. In figuur 16 maakt men gebruik van de ruimte tussen twee woorden om een klaartekst te verstoppen. De combinatie één spatie - twee spaties komt overeen met de bit nul, terwijl de combinatie twee spaties - één spatie overeenkomt met de bit één. In figuur 17 wordt een klaartekst in de schuiltekst gecodeerd door het toevoegen van spaties achteraan elke regel. Figuur 16: Een voorbeeld van opmaak-gebaseerde steganografie Figuur 17: Een voorbeeld van opmaak-gebaseerde steganografie De resulterende stego-tekst kan gemakkelijk onderscheiden worden van niet gemanipuleerde tekst door programma s die op zinsbouw controleren of door menselijke controle. Aangezien opmaak-gebaseerde steganografie doorgaans bestaande tekst gebruikt om informatie in te verbergen bestaat er ook een kans dat de stego-tekst vergeleken wordt met 26

27 2.2 Steganografie 2 ACHTERGRONDINFORMATIE de originele schuiltekst. Om de vergelijking van de stego-tekst met een andere tekst te voorkomen, wordt er ook vaak een eigen tekst gecreëerd. Met random en statistische generatie technieken wordt er geprobeerd enkele karakteristieken van een normale tekst na te bootsten. Wayner beschrijft in zijn paper Mimic Functions [30] en later ook in zijn boek Information Hiding: Steganography and Watermarking [31] hoe statistische profielen kunnen gebruikt worden om tekst te genereren. Met de toenemende rekenkracht van computers en het toenemende aanbod van geavanceerde grammatica en spelling controlerende programma s, neigt ook deze steganografische techniek te falen voor automatische detectie. Omdat de inhoud of de zinsbouw van de gegenereerde tekst meestal niet logisch is, is deze steganografische techniek ook gemakkelijk detecteerbaar door het menselijk oog. Linguïstische steganografie gaat verder dan enkel syntactische 10 veranderingen. De tekst wordt taalkundig verwerkt en aangepast. Een zekere schuiltekst kan aanzienlijk aangepast worden door bijvoorbeeld het toepassen van woordsubstitutie. Deze semantische 11 aanpassingen kunnen zo gedaan worden dat de betekenis en dus ook de ononderscheidbaarheid van de schuiltekst behouden wordt. Daarnaast is automatische taalanalyse nog steeds een complex probleem hetgeen automatische aanvallen of controle moeilijk maakt Linguïstische steganografie Omdat de focus in deze thesis op linguïstische steganografie ligt, is het belangrijk om hier wat dieper op in te gaan. Chapman omschrijft linguïstische steganografie als De kunst om geschreven taal te gebruiken om een geheime boodschap in te verbergen. 12 [32]. In deze thesis wordt linguïstische steganografie iets specifieker gedefinieerd: het volstaat niet dat de stego-tekst syntactisch correct samengesteld is; ook de semantiek van de stego-tekst hoort in orde zijn. De betekenis van een zin mag niet veranderen door de veranderingen aan de schuiltekst. Het doel van deze linguïstische stego-systemen is het produceren van een stego-tekst die niet te onderscheiden is van een verzameling van originele schuilteksten. Een kenmerk van deze stego-systemen is dat de originele schuiltekst niet meegeleverd wordt. Dit heeft als gevolg dat, om deze stego-teksten te ontdekken in een verzameling van schuilobjecten, er een semantische analyse nodig is van de stego-tekst. Semantische analyse is nog steeds een zeer moeilijk en ingewikkeld probleem voor een machine [5]. 10 syntaxis : met betrekking op de zinsbouw 11 semantiek : met betrekking op de betekenis van een woord of de zin 12 The art of using written natural language to conceal secret messages 27

28 2.3 IRC 2 ACHTERGRONDINFORMATIE In zijn thesis [5], stelt Bergmair een constructie voor linguïstische steganografie voor. Klaartekst wordt in een schuiltekst verwerkt door woorden uit de schuiltekst te vervangen door één van hun synoniemen. Dit kan enkel gedetecteerd worden door het menselijke oog, dat gesubstitueerde woorden kan herkennen binnenin een context. Dit is te wijten aan de eventuele woord-dubbelzinnigheid van woorden 13. Bergmairs origineel idee [5] wordt later verder uitgewerkt door Bergmair en Katzenbeisser [33]. Hierin worden de beperkingen van een machine ten opzichte van de mens benadrukt door middel van Human Interactive Proofs 14. Verder wijst Bergmair in zijn thesis op het gebruik van binaire codetoekenning van variabele lengte aan synoniemen, gebaseerd op Huffman-code [34]. Omdat het woordgebruik in de menselijke taal niet uniform verdeeld is, kunnen stego-teksten waar woorden uniform gesubstitueerd zijn, onderworpen worden aan simpele statistische aanvallen. Bij het gebruik van Huffman-code voor het toekennen van binaire code aan synoniemen wordt de waarschijnlijkheid van het woordgebruik gekoppeld aan de frequentie dat een woord voorkomt in de menselijke taal. 2.3 IRC Introductie IRC (Internet Relay Chat) is een protocol om tekstboodschappen te verzenden over het internet. IRC is oorspronkelijk bedoeld voor groepsconversaties, maar kan ook gebruikt worden voor rechtstreekse communicatie tussen twee personen. Om te kunnen chatten over IRC moeten de gebruikers via een IRC-cliënt een verbinding maken met een IRCserver. Eens deze verbinding actief is, moet de gebruiker inloggen op een IRC-kanaal. Daarna kan de gebruiker chatten met de andere gebruikers die eveneens verbinding hebben gemaakt met dezelfde IRC-server, of een IRC-server in hetzelfde netwerk, en ingelogd zijn op hetzelfde IRC-kanaal [35]. IRC-Servers De IRC-servers vormen het hart van IRC. Enerzijds maken de IRC-cliënten verbinding met een IRC-server om zo toegang te krijgen tot het IRC-netwerk. Anderzijds maken de IRC-servers verbinding met elkaar om zo het IRC-netwerk te vormen. Een IRC-netwerk wordt steeds gevormd in de vorm van een spanning tree model, zoals weergegeven in figuur 18. Hierbij vormt iedere IRC-server een centrale knoop voor de andere IRCservers. Een voorwaarde hierbij is dat er maar één enkele route bestaat tussen twee servers. Op deze manier is er dus ook maar één enkele route mogelijk voor een bericht 13 Volgende twee zinnen geven een voorbeeld van de woord-dubbelzinnigheid van het woord Bank : Ik ga naar de bank om geld af te halen. Ik ga naar de zitmeubel om geld af te halen. 14 HIP s, proeven die een machine makkelijk laten bepalen als hij interageert met een andere machine of met een mens 28

29 2.3 IRC 2 ACHTERGRONDINFORMATIE tussen twee IRC-cliënten. Figuur 18: Een voorbeeld van een IRC spanning tree model IRC-Cliënten Een IRC-cliënt is een programma dat verbinding maakt met een IRC-server en dat zelf geen IRC-server is. Omdat IRC een open standaard is, kan iedereen zijn eigen IRC-cliënt maken, zolang het maar voldoet aan het IRC-protocol [36]. Publieke en private kanalen Een kanaal is een verzameling van IRC-gebruikers. Binnen een kanaal kunnen alle gebruikers van dit kanaal met elkaar chatten, waarbij iedere gebruiker berichten ontvangt van de andere gebruikers op dit kanaal. Ieder kanaal is gekenmerkt door een naam, die uniek is binnen het IRC-netwerk. Eens een IRC-gebruiker ingelogd is op het IRCnetwerk kan deze gebruiker zich in een kanaal aanmelden. Een IRC-kanaal wordt aangemaakt wanneer de eerste gebruiker zich aanmeldt op het kanaal, en wordt verwijderd wanneer de laatste gebruiker zich afmeldt van het kanaal. Als het kanaal bestaat, kan iedere gebruiker zich aanmelden op het kanaal en mee chatten met de andere gebruikers. Hierop kan echter een uitzondering worden gemaakt door private kanalen. Om op een privaat kanaal te kunnen aanmelden moet de IRC-gebruiker beschikken over een algemeen wachtwoord van het kanaal, dat bij de aanmaak van het kanaal gedefinieerd wordt. Persoonlijke berichten Een gebruiker die aangemeld is op een kanaal van een IRC-netwerk kan eventueel ook persoonlijke berichten doorsturen naar een andere gebruiker. Deze andere gebruiker moet niet aanwezig zijn op hetzelfde kanaal, maar wel in hetzelfde IRC-netwerk. Hierbij is het bericht enkel zichtbaar voor de gebruiker waarvoor het bericht bestemd is. Deze 29

30 2.3 IRC 2 ACHTERGRONDINFORMATIE communicatie gebeurt onbeveiligd. Het bericht wordt via de internetverbinding van de gebruiker verstuurd naar de IRC-server, die het op zijn beurt naar de bestemmeling stuurt. Hier zijn minstens drie aanvallen op dit persoonlijk bericht mogelijk, namelijk: Het afluisteren van de internetverbinding van de zender Het afluisteren van een IRC-server Het afluisteren van de internetverbinding van de ontvanger Direct Client-to-Client Direct Client-to-Client of DCC [37, 38] is een sub-protocol van IRC dat gebruikt wordt om een rechtstreekse verbinding te maken tussen twee gebruikers. Het DCC protocol maakt enkel gebruik van de IRC-server voor het opzetten van de punt-tot-punt verbinding. De zender stuurt namelijk een bericht naar de ontvanger met daarin een verzoek tot DCC communicatie samen met enkele bijkomende parameters. De belangrijkste parameters zijn het type DCC communicatie en het IP-adres en poortnummer van de zender. De ontvanger verbindt vervolgens met de gegeven poort en IP-adres. Eens deze verbinding actief is, gebeurt de gegevensoverdracht los van de IRC-server. De twee voornaamste types van DCC communicatie zijn DCC Chat en DCC Send. Bij DCC Chat chatten de gebruikers met elkaar over een DCC-verbinding, los van het IRC-netwerk, zodat de servers minder belast worden. Met DCC-chat kunnen de gebruikers grotere stukken tekst doorsturen, bij IRC wordt het aantal zinnen per tijdseenheid beperkt. Bij DCC Send sturen de gebruikers bestanden naar elkaar over een rechtstreekse DCCverbinding. Omwille van de directe verbinding kunnen hoge overdrachtssnelheden gehaald worden Uitbreiden van een IRC-implementatie: plugin vs. script De meeste IRC-cliënten hebben twee mogelijkheden om modules te gebruiken, namelijk plugins en scripts. Beide mogelijkheden hebben het voordeel dat ze niet afhankelijk zijn van de ontwikkeling van de IRC-cliënt zelf. De IRC-cliënt kan verder ontwikkeld worden, zonder dat de module aangepast moet worden. Om de module van deze thesis te implementeren, moest een keuze gemaakt worden tussen een plugin of een script. Plugin Een plugin is zelfstandig programma, dat op voorhand gecompileerd is, en dus in zijn uiteindelijke vorm niet meer kan aangepast worden. Op zichzelf kan de plugin niets, 30

31 2.3 IRC 2 ACHTERGRONDINFORMATIE maar ingeladen in de IRC-cliënt kan de plugin verschillende taken van de IRC-cliënt overnemen, of een uitbreiding vormen op de IRC-cliënt. Het voordeel van een plugin is dat hij zeer snel werkt. Dit komt doordat de plugin al volledig gecompileerd is tot een binair bestand. Script Een script is ongecompileerde programma-code en blijft in zijn oorspronkelijke vorm bij het inladen in de IRC-cliënt. Tijdens het gebruik wordt het script regel per regel geïnterpreteerd en uitgevoerd. Het voordeel hiervan is dat een script flexibeler is aangezien het script nog aangepast kan worden. Een nadeel is de snelheid, die lager ligt dan een plugin omdat het script bij uitvoer nog geïnterpreteerd moet worden. Keuze De module voor deze thesis maakt gebruik van cryptografische functies die vaak veel rekenwerk vereisen. Ook het verwerken en inlezen van grote tekstbestanden, zoals een thesaurus, neemt veel processortijd in beslag. Om deze redenen is de module gemaakt in de vorm van een plugin. Overigens is de gemaakte plugin afhankelijk van de gebruikte IRC-cliënt Keuze van de IRC-cliënt Aangezien IRC een open standaard is, kan iedereen een IRC-cliënt maken. Om deze reden zijn er veel verschillende IRC-cliënten beschikbaar. Vooraleer de ontwikkeling van de plugin gestart is, is een keuze gemaakt met betrekking tot de gebruikte IRCcliënt. Hiervoor zijn een tiental veelgebruikte IRC-cliënten bestudeerd en geëvalueerd. De eigenschappen waaraan het meeste belang aan is besteed, zijn: Mogelijkheid tot gebruik van plugins en/of scripts. Multi-platform. De IRC-cliënt moet zeker te gebruiken zijn op Windows en enkele Linux distributies. Open-source, of desnoods freeware. Gebruikersomgeving. Omdat de plugin menselijke interactie vereist, is het handig als een IRC-cliënt gebruikt wordt die een grafische gebruikersomgeving heeft. Elk van de bestudeerde IRC-cliënten hebben we op deze eigenschappen beoordeeld. Een overzicht hiervan is weergegeven in tabel De bestudeerde IRC-cliënten zijn BitchX [39], BersIRC [40], ChatZilla [41], Gaim [42], HydraIRC [43], Konversation [44], 31

32 2.3 IRC 2 ACHTERGRONDINFORMATIE mirc [45], Visual IRC [46], X-Chat [47]. Werkende Plugin in scripting Beschik- Gebruikersplatformen mogelijkheden baarheid omgeving BitchX Gedeeltelijk op Windows, Scripting via IrcII en Open-source Command prompt volledig op TCL, weinig infor- Linux, Unix, BSD en matie over plugins Mac OS BersIRC Niet voor Linux, wel Plugins met C++ en Open-source Grafische interface voor Windows, BSD, Pascal, geen scripting Unix en Mac OS ChatZilla Voor Windows, Plugins met C++, Open-source Grafische interface Linux, Unix, BSD en scripting enkel via Mac OS JavaScript Gaim Voor Windows, Gebruik van plugins Open-source Grafische interface Linux, Unix, BSD en mogelijk Mac OS versie HydraIRC Enkel voor Windows Gebruik van plugins Open-source Grafische interface mogelijk (propriëtair) Konversation Niet voor Windows. Gebruik van plugins Open-source Grafische interface Wel voor Linux, mogelijk Unix, BSD en Mac OS mirc Enkel Windows versie Scripting mogelijk Closed- Grafische interface via eigen scripting source taal, geen plugins mogelijk Visual IRC Enkel voor Windows Scripting mogelijk Open-source Grafische interface met Versus X-Chat Voor Windows, Plugin mogelijk Open-source Grafische interface linux, BSD en Mac via C en Python, OS scripting mogelijk via Python, Perl, JavaScript, TCL en Ruby Tabel 1: Een overzicht van de bestudeerde IRC-cliënten Na het bestuderen en testen van deze IRC-cliënten werden Konversation en X-Chat weerhouden. X-Chat beschikt over duidelijker en meer uitgebreide informatie voor het ontwikkelen van een plugin dan Konversation. Na uitvoerig testen van de plugin-interface van X-Chat en Konversation, is beslist met X-Chat verder te gaan. X-Chat is sinds kort 32

33 2.4 Programmeeromgeving 2 ACHTERGRONDINFORMATIE propriëtair te gebruiken onder Windows en bevat een GPL 15 licentie onder Linux. 2.4 Programmeeromgeving De module die ontwikkeld is maakt gebruik van de plugin-interface die beschikbaar is gesteld door X-Chat en is geschreven in ANSI C Besturingssystemen De module is platform-onafhankelijk geschreven om een zo breed mogelijk publiek aan te spreken. In de loop van de ontwikkeling is de module op de volgende systemen ontwikkeld en getest : Microsoft Windows XP Home Microsoft Windows XP Professional Ubuntu 6.10 i386 (Edgy Eft) Ubuntu 6.10 amd64 (Edgy Eft) Ubuntu 7.04 i386 (Feisty Fawn) Slackware 11.0 Om de code te compileren op deze besturingssystemen is er gebruik gemaakt van de MinGW 16 compiler voor de Microsoft besturingssystemen en de GCC 17 compiler voor de Linux besturingssystemen Gebruikte bibliotheken Naast de standaard C bibliotheken, is er voor de ontwikkeling van de module ook beroep gedaan op de hieronder beschreven externe C bibliotheken. OpenSSL Om de cryptografische noden van de module te voorzien, is er na een korte studie van beschikbare bibliotheken gekozen voor de cryptografische bibliotheek van OpenSSL [51]. OpenSSL is multi-platform, open-source, goed gedocumenteerd en geschikt voor de programmeertaal C. Bovendien is OpenSSL gemakkelijk te installeren, zowel voor gebruik als ontwikkeling, op de verschillende besturingssystemen. 15 GPL = General Public License: Je mag met de software doen wat je wil (inclusief aanpassen en verkopen), mits je dat recht ook doorgeeft aan anderen en de auteur(s) van de software vermeldt. [48] 16 Minimalist GNU for Windows [49] 17 GNU Compiler Collection [50] 33

34 2.4 Programmeeromgeving 2 ACHTERGRONDINFORMATIE GTK+ Als grafische bibliotheek is er gebruik gemaakt van GTK+ [52]. GTK+ is ook de basis van de GUI 18 van X-Chat. Verder wordt GTK+ ook nog gekenmerkt door zijn multiplatform en open-source karakter. GLib Tenslotte is er ook gebruik gemaakt van de GLib [53] bibliotheek. Deze bibliotheek biedt onder andere belangrijke functionaliteiten aan zoals threads, event loops en portability wrappers Documentatie Om de broncode van de module goed te documenteren, is naast uitvoerige commentariëring van de broncode gebruik gemaakt van het documentatiesysteem Doxygen [54]. Dit systeem doorloopt de volledige broncode van de module en produceert documentatie in het gewenste formaat. Doxygen biedt ondermeer de mogelijkheid om online documentatie (in HTML 20 ) te genereren. 18 Graphical user interface 19 Dit zijn functies die herschreven zijn naar algemene functies die werken voor alle besturingssystemen, zodat het schrijven van de programmacode niet voor elke besturingssysteem apart hoeft te lopen. 20 HyperText Markup Language 34

35 3 THEORETISCH MODEL 3 Theoretisch model In dit hoofdstuk wordt het theoretisch model van het ontworpen systeem nader toegelicht. Eerst wordt de architectuur van de implementatie besproken, gevolgd door een bespreking van de gebruikte cryptografische primitieven. Tenslotte wordt de opbouw van de codetabel aangehaald. 3.1 Architectuur Systeembeschrijving Figuur 19 geeft een overzicht van het ontworpen systeem weer. Het systeem is geïmplementeerd als een plugin voor de IRC-cliënt X-Chat. De plugin bestaat uit verschillende bouwblokken die de plugin uitbreiden met functionaliteiten. Zo wordt de plugin onderandere uitgebreid met de mogelijk tot het gebruiken van hashtabellen, gelinkte lijsten en cryptografische primitieven. Verder bevat de plugin nog een bouwblok voor het genereren van een synoniemenlijst van eigen formaat uit een thesaurus en een frequentielijst (het data-bestand). De belangrijkste bouwblok van de plugin is de steganografische engine (stego-engine). Het ontwerp van de stego-engine wordt in besproken. De communicatie die bestemd is voor de steganografische sessie (stego-sessie) wordt door de plugin onderschept en vervolgens verwerkt door de stego-engine. De stego-engine verwerkt deze tekst dan samen met de klaartekst met behulp van menselijke interactie tot een stego-tekst. Deze stego-tekst wordt vervolgens in plaats van de originele tekst doorgezonden naar de IRC-server, zoals normale IRC-communicatie verloopt. Als de plugin van de ontvanger van de stego-sessie een bericht van de stego-zender opmerkt, verwerkt de plugin deze tekst met de stego-engine. De stego-engine haalt op zijn beurt de klaartekst terug uit de stego-tekst. Figuur 19: Werking van het ontworpen systeem 35

36 3.1 Architectuur 3 THEORETISCH MODEL Figuur 20 geeft een meer complete weergave van het ontworpen systeem. De initialisatie van de stego-sessie bestaat uit het aanmaken van het data-bestand als deze nog niet bestaat, het vastleggen van de sessie-sleutel (zie 3.2) en het aanmaken van de codetabel (zie 3.3). Uit de verkregen sessie-sleutel worden twee sleutelafleidingen gedaan, namelijk de generatie van een deterministische random bitstroom β en de afleiding van de RC4- sleutel. Als deze sessie-afhankelijke sleutels bepaald zijn, wordt de codetabel gegenereerd met behulp van β en de klaartekst vercijferd met het RC4 stroomcijfer tot een ononderbroken bitstroom (RC4-datastroom). De codetabel is een lijst van woorden met daaraan hun beschikbare synoniemen en een sessie-afhankelijk binaire representatie gekoppeld. Figuur 20: Werking van het ontworpen systeem met cryptografische primitieven Stego-engine De stego-engine vervult de belangrijkste taken van de plugin. Tijdens de initialisatiefase verzorgt de stego-engine het inlezen van het data-bestand en het genereren en optimaliseren van de codetabel. Tijdens de stego-sessie zelf, is de stego-engine verantwoordelijk voor het construeren en het decoderen van de stego-tekst. Nadat de sessie-sleutel is vastgelegd tussen beide gebruikers en vervolgens de twee sleutelafleidingen zijn voltooid, zal de stego-engine het data-bestand inlezen in het geheugen. Als dit data-bestand nog niet beschikbaar is, zal dit data-bestand eerst door de plugin gegenereerd worden met behulp van een thesaurus en een frequentielijst 21. Na het inlezen van het data-bestand in het geheugen wordt de codetabel gegenereerd, 21 De thesaurus en de frequentielijst horen aan beide zijden dezelfde te zijn. Dit is nodig om dezelfde codetabel te kunnen genereren bij de beide gebruikers. 36

37 3.1 Architectuur 3 THEORETISCH MODEL gevolgd door een optimalisatie van de codetabel. Na de initialisatiefase volgt de stego-sessie. Zoals eerder vermeld zal de communicatie die bestemd is voor de stego-sessie door de plugin onderschept worden en verwerkt worden door de stego-engine. De stego-engine zal de desbetreffende zin analyseren met behulp van de codetabel. In de codetabel wordt voor elk woord naar synoniemen gezocht met een binaire representatie, die overeenkomt met de bit uit de RC4-datastroom die door dat woord moet doorgezonden worden. In de pop-up wordt de ingevoerde zin weergegeven met voor elk woord, waar synoniemen voor gevonden zijn in de vorige stap, een dropdownbox met deze synoniemen. Met deze pop-up kan de gebruiker een keuze maken tussen verschillende voorgestelde synoniemen. Dit resulteert in een zin die zijn persoonsgebonden karakter behoudt en volkomen in de context van het IRC-gesprek past. De zin die door de gebruiker gevormd wordt, wordt vervolgens doorgezonden naar de IRC-server. Het bovenste gedeelte van figuur 21 geeft een schematische voorstelling van dit proces. Figuur 21: Het construeren en decoderen van een stego-tekst door de stego-engine Het onderste gedeelte van figuur 21 stelt het ontcijfering proces aan de ontvangstzijde voor. De communicatie afkomstig van de zender in de stego-sessie wordt door de plugin onderschept en verwerkt door de stego-engine. De stego-engine zal de stego-tekst analyseren met behulp van de codetabel. Door de binaire representaties van elke woord op 37

38 3.1 Architectuur 3 THEORETISCH MODEL te zoeken in de codetabel, kan de stego-engine de RC4-datastroom reconstrueren. Door de bekomen RC4-datastroom te ontcijferen met de RC4-sleutel verkrijgt de stego-engine de originele klaartekst en toont hem aan de gebruiker. Doordat de klaartekst vercijferd wordt met een stroomcijfer, kan vanaf de eerste bits die binnenkomen al ontcijferd worden Data-structuur Het data-bestand wordt volledig in het geheugen ingelezen om zo makkelijk en snel data op te vragen en bewerkingen op de data uit te voeren. Bij het ontwerpt voor de datastructuur in het geheugen is er vooral rekening gehouden met de snelheid waarmee informatie kan opgehaald worden, het geheugenverbruik en de complexiteit van de structuur. Aangezien C geen object-georiënteerde taal is, kan er geen gebruik gemaakt worden van klasses om de data-structuur uit te werken. Na een korte studie, is gekozen om met een hashtabel 22 te werken in combinatie met gelinkte lijsten 23. De hashtabel wordt gebruikt als opzoektabel waarbij de sleutel voor elke woord gelijk wordt genomen aan de string van het woord in kwestie. De gelinkte lijsten verzorgen het toewijzen van synoniemen aan de woorden uit de hashtabel. Als de informatie van een bepaald woord nodig is, dient enkel het woord als sleutel meegegeven te worden aan de hashtabel. Figuur 22 geeft een weergave van deze data-structuur. Figuur 22: De data-structuur van de geheugenopslag 22 Hashtabellen zijn data-structuren waarbij sleutels worden geassocieerd met bepaalde waardes. De werking van een hashtabel berust op een hashfunctie die de sleutel omzet in een hashwaarde welke gebruikt wordt om de sleutel-waarde combinatie efficint te vinden. Gemiddeld genomen levert een hashtabel de gezochte waarde in een constante tijd. 23 Een gelinkte lijst is een data-structuur die bestaat uit een reeks van data-elementen, elk met een aantal datavelden en één of twee verwijzingen naar een volgend en/of vorig data-element. De gelinkte lijst die in deze thesis ontworpen is, heeft per data-element slecht één verwijzing naar een volgend dataelement. 38

39 3.2 Cryptografische primitieven 3 THEORETISCH MODEL Menselijke interactie De menselijke interactie wordt door de stego-engine voorzien door een pop-up venster. Het pop-up venster wordt opgebouwd met behulp van de grafische bibliotheek GTK+. In dit pop-up venster wordt de originele zin die de zender wil versturen, opgebouwd met behulp van woorden en synoniemenlijsten. Woorden waarvoor geen synoniemen beschikbaar zijn in de codetabel worden afgebeeld als onaanpasbare tekst. Woorden waarvoor synoniemen beschikbaar zijn, worden vervangen door drop-downboxen. In zo een drop-downbox worden de synoniemen van een bepaald woord weergegeven, die de binaire representatie hebben die overeenkomt met de bit die doorgestuurd moet worden. Ook worden de synoniemen weergegeven die geen bit representeren (N U LLsynoniemen: zie 3.3.2). De synoniemen zijn gerangschikt op frequentie zodat de meest onwaarschijnlijke synoniemen onderaan in de lijst staan. De synoniemen met een binaire representatie en de NULL-synoniemen van een bepaald woord worden in de dropdownbox gescheiden van elkaar. Opdat de gebruiker dan makkelijk kan zien welke synoniemen bijdrage tot een gegevensoverdracht. Als er geen synoniemen beschikbaar zijn met een binaire representatie die in de context van de zin passen, kan de gebruiker ook een NULL-synoniem kiezen 24. De woorden waarvoor synoniemen beschikbaar zijn en dus voorkomen in een dropdownbox in het pop-up venster, representeren elk de volgende bit uit de RC4-datastroom. Figuur 23 geeft hier een voorbeeld van. In de drop-downbox worden de synoniemen met de juiste binaire representatie weergegeven, gevolgd door de N U LL-synoniemen. Als een synoniem gekozen wordt in een drop-downbox moet de pop-up aangepast worden. Als er namelijk in een drop-downbox voor een N U LL-synoniem gekozen wordt, zullen de drop-downboxen volgend op de actieve drop-downbox, synoniemen met een binaire representatie voorstellen, die niet meer overeenkomen met de volgende bit uit de RC4- datastroom. Als er in het voorbeeld uit figuur 23 voor het synoniem little gekozen wordt, zal de volgende drop-downbox herrekend moeten worden om de bit 0 door te sturen in plaats van de bit 1 waarvoor hij berekend was. 3.2 Cryptografische primitieven Het stego-systeem dat in deze thesis beschreven wordt maakt gebruik van geheime sleutel steganografie. Met behulp van een geheime sessiesleutel, wordt een deterministische random bitstroom β gegenereerd om de codetoekenning aan de woorden uit de 24 Door het beschikbaar stellen van synoniemen met en zonder binaire representatie in de codetabel, wordt er verzekerd dat er steeds voldoende synoniemen beschikbaar zijn om uit te kiezen. Figuur 23 illustreert de noodzaak hiervan. De ingegeven zin is Hey Bar, this is just a small test. Het synoniem minor past hier niet in de context van de zin. Door telkens een voldoende aantal synoniemen aan te bieden, is de kans op behoud van de context van de zin groot. In deel 3.3 wordt dit uitvoerig besproken. 39

40 3.2 Cryptografische primitieven 3 THEORETISCH MODEL Figuur 23: Een voorbeeld van een pop-up venster codetabel uniek te maken voor elke sessie. Na het einde van de communicatie vervalt deze sessiesleutel Vastleggen van de sessiesleutel Geheime sleutel steganografie vereist de kennis van een geheime sleutel tussen Alice en Bob. De moeilijkheid bestaat erin dat het uitwisselen van geheime informatie de originele bedoeling van niet detecteerbare communicatie tegenspreekt. Het communiceren van een geheime sleutel zou immers meteen door Wendy opgemerkt en verdacht gevonden worden waardoor bewaker Wendy alarm slaat. Bij het ontwikkelen van het stego-systeem is er vanuit gegaan dat Alice en Bob geen voorkennis hebben van een gemeenschappelijke sleutel. Er is gekozen om een sessiesleutel vast te leggen via het Diffie-Hellman protocol. Overdrachtsmedium De keuze van het overdrachtsmedium is belangrijk omdat het op geen enkele manier mag opvallen dat we een sleutelovereenkomst doen. Niet enkel het uitwisselen van grote priemgetallen kan de geheime intentie van Alice en Bob verraden, maar het overdrachtsmedium zelf moet ook een standaard medium zijn. Het gebruik van een onge- 40

41 3.2 Cryptografische primitieven 3 THEORETISCH MODEL bruikelijk of veilig medium zou Alice en Bob ook verraden. Een bijkomende moeilijkheid in IRC is dat niemand elkaars IP-adres kan zien. Alle berichten lopen namelijk via een server en niet rechtstreeks naar de tegenpartij. Enkel de servers kennen de IP-adressen. Dit feit elimineert ook meteen een aantal communicatiemediums. Enkele mogelijkheden voor het uitwisselen van de nodige waarden zijn onder andere : Sms Voordeel: Onopgemerkt (los van het internet); er is speciale afluisterapparatuur nodig om een sms te onderscheppen. Nadeel: Niet gratis; men moet al de gsm-nummer kennen van de ontvanger; extra externe hardware vereist (GSM). Posts op een publiek forum Voordeel: Er is een groot aanbod van forums, één post valt niet op als ze anoniem gedaan wordt. Nadeel: De juiste locatie moet op voorhand afgesproken worden waarmee we terug bij het origineel probleem terecht komen: via welk medium. Als dit een vaste locatie is kan het forum gemonitord worden. Instant messenger Voordeel: Makkelijk en snel. Nadeel: Extra software vereist; als de internetconnectie afgeluisterd wordt, kan gemakkelijk de TCP/IP-connectie onderschept worden. Privé berichten op IRC Voordeel: Gemakkelijk te integreren in een plugin; gemakkelijk autonoom te maken. Nadeel: Als de server gemonitord wordt, vallen privé berichten op, alsook grote priemgetallen. DCC-chat op IRC 25 Voordeel: Makkelijk te integreren in een plugin; makkelijk autonoom te maken. Nadeel: Als de server gemonitord wordt, valt DCC-chat op. DCC-chat is namelijk rechtstreeks chatten via een TCP/IP-connectie. De communicatie 25 Het verschil met privé berichten op IRC is dat bij privé berichten op IRC, de communicatie via een IRC-server verloopt en bij DCC-chat, de communicatie over een rechtstreekse TCP/IP-connectie tussen beide gebruikers verloopt. 41

42 3.2 Cryptografische primitieven 3 THEORETISCH MODEL verloopt dus niet meer via IRC wat het gebruik van deze methode verdacht maakt. Ook is er bijkomend de mogelijkheid dat de TCP/IP-connectie onderschept kan worden. DCC-bestandsoverdracht op IRC Voordeel: Makkelijk te integreren in plugin; makkelijk autonoom te maken; Onopvallend. Nadeel: De implementatie hiervan is complexer dan DCC-chatten. Er is de mogelijkheid dat de TCP/IP-connectie onderschept kan worden en dus zo ook het doorgezonden bestand. In deze thesis is er uit praktische overwegingen voor de laatste optie gekozen. De sleutelovereenkomst verloopt volledig autonoom. Er wordt namelijk een bestand aangemaakt met daarin de publieke sleutel. Dit bestand wordt automatisch gestuurd naar de gewenste persoon en dit in twee richtingen. De bestanden worden automatisch geïnterpreteerd en verwerkt. Na de sleutelovereenkomst worden de bestanden ook verwijderd Sleutelafleidingen Alle gebruikte sleutels worden afgeleid van de geheime sessiesleutel die overeengekomen werd bij de Diffie-Hellman uitwisseling. Allereerst wordt een deterministische random bitstroom gegenereerd. Vervolgens wordt uit de sessiesleutel een tweede sleutel afgeleid. Deze tweede sleutel wordt gebruikt voor de vercijfering van de klaartekst. Genereren van een deterministische random bitstroom Om de codetabel, die in deel 3.3 verder besproken wordt, op te maken is een random bitstroom nodig. Deze bitstroom wordt gebruikt om binaire representaties aan synoniemen toe te kennen. Ook moet deze bitstroom random 26 zijn om de drie binaire representaties evenredig over de synoniemen te kunnen verdelen. Een andere belangrijke eigenschap die de bitstroom moet bezitten is dat hij deterministisch moet zijn zodat de stego-engine van Alice en Bob dezelfde codetoekenningen doen aan hun synoniemenlijst. Om deze laatste reden en omdat de bitstroom sessie-afhankelijk moet zijn, wordt deze bitstroom afgeleid uit de sessie-sleutel. Om de deterministische random bitstroom β te bekomen, wordt allereerst de SHA1 hash van de sessiesleutel berekend. Vervolgens wordt van de bekomen hashwaarde de HMAC op basis van SHA1 berekend met als geheime sleutel de sessiesleutel. De resulterende 26 random is niet hetzelfde als willekeurig. Random betekend hier afhankelijk van de invoer, een herproduceerbare reeks enen en nullen genereren, die een willekeurig karakter hebben. 42

43 3.2 Cryptografische primitieven 3 THEORETISCH MODEL hashwaarde vormt de eerste datablok van β. Vervolgens wordt telkens de HMAC van de vorig bekomen hashwaarde berekend met als geheime sleutel de sessiesleutel totdat de gewenste lengte voor β bereikt is. Figuur 24 geeft een grafische weergave van deze bitstroomgeneratie. Figuur 24: De generatie van de deterministische random bitstroom β Afleiden van de RC4-sleutel Een tweede beveiliging in het stego-systeem wordt bekomen door het vercijferen van de klaartekst. De vercijfering gebeurt met een stroomcijfer zodat de ontvangstzijde van de stego-sessie al kan starten met ontcijferen bij het ontvangen van de eerste byte. Uit praktische overwegingen werd er voor het stroomcijfer RC4 27 gekozen, dat als een veilig stroomcijfer beschouwd wordt. RC4 is een symmetrisch stroomcijfer met een variabele sleutellengte en werd gecreëerd door Ron Rivest van RSA Security Inc. in Het algoritme zelf is buitengewoon eenvoudig en kan efficiënt geïmplementeerd worden in software waardoor RC4 zeer snel 28 is. In het stego-systeem wordt de klaartekst vercijferd met de RC4-sleutel alvorens hem te verwerken in de schuiltekst. Aan de ontvangstzijde van de stego-sessie wordt de cijfertekst door het stego-systeem uit de stego-tekst gehaald. klaartekst door de cijfertekst te ontcijferen met de RC4-sleutel. De ontvanger bekomt de 27 De cryptografische bibliotheek van OpenSSL implementeert het stroomcijfer Arcfour [11] hetgeen compatibel is met RC4, een gepatenteerd cijfer van RSA Security Inc. 28 Voorbeeld : voor de generatie van een RC4 sleutelstroom op een PIII-processor met het besturingssysteem Linux, zijn er slechts 7.3 klokcycli per gegenereerde byte nodig. [55] 43

44 3.3 Codetabel 3 THEORETISCH MODEL De RC4-sleutel wordt tijdens de initialisatiefase uit de sessiesleutel afgeleid. Dit wordt gedaan om de vercijfering onafhankelijk te laten verlopen van de generatie van β. De 1024 bit sessiesleutel wordt opgedeeld in acht blokken van 128 bit. Er wordt met de bits van de eerste datablok een XOR-bewerking gedaan met de overeenkomstige bits van de tweede datablok. Met de resulterende datablok wordt dezelfde bewerking gedaan met de bits van de volgende datablok. Dit proces wordt herhaald tot alle acht datablokken verwerkt zijn tot een resulterende datablok, de 128 bit RC4-sleutel. Figuur 25 geeft een grafische weergave van deze RC4 sleutelafleiding. Figuur 25: De RC4 sleutelafleiding 3.3 Codetabel Situering Zoals eerder vermeld in de probleemstelling 1.2 wordt in deze thesis een binaire boodschap gecodeerd d.m.v. woordsubstitutie. Om dit mogelijk te maken moeten de woorden gekoppeld zijn aan een binaire representatie. Om een bericht door te sturen, moet deze binaire representatie voor ieder woord hetzelfde zijn bij de zender en ontvanger. De binaire representatie kan echter verschillen, telkens er een nieuwe sessie tussen gebruikers wordt opgestart. Op deze manier zal de afluisteraar, die niet dezelfde binaire representaties van de woorden kent, een heel ander bericht zien dan het werkelijk verstuurd bericht. Om niet iedere keer uit te rekenen welke binaire representatie een gevonden woord heeft, wordt een codetabel opgemaakt. In een eerste poging worden in het begin van de sessie alle gekende woorden met hun bijhorende synoniemen ingelezen in een hash-tabel. Daarna wordt aan de hand van de β, de deterministische bitstroom, een binaire representatie toegekend aan ieder woord. Hierbij moet wel rekening gehouden worden met het gegeven dat een bepaald synoniem bij meerdere woorden kan horen. Al deze zelfde 44

45 3.3 Codetabel 3 THEORETISCH MODEL synoniemen moeten dus ook dezelfde binaire representatie krijgen. Omdat de bitstroom identiek is voor zender en ontvanger, zal de codetabel ook identiek zijn. Deze methode wordt schematisch weergegeven in figuur 26. Figuur 26: Een voorstelling van de codetabel Codetabel generatie De methode die voorgesteld is in figuur 26 is niet optimaal. Bij het woord big is er maar één synoniem met een binaire representatie 0, en vier synoniemen met een binaire representatie 1. Indien de zender het woord big typt, en een 0 doorgestuurd moet worden, heeft de zender geen keuze, en zal deze voor heavy moeten kiezen. Door ook gebruik te maken van NULL-synoniemen (die geen binaire representatie voorstellen), kan dit probleem eenvoudig opgelost worden. De zender zal altijd tussen deze NULL-synoniemen kunnen kiezen. Samen met de synoniemen waarvan de representatie overeenstemt met het huidige, te verzenden deel van het bericht (de geschikte synoniemen) is de keuze voor de zender wat uitgebreider. In deze thesis wordt gestreefd naar een situatie waarin ongeveer 50% van de synoniemen NULL-synoniemen zijn, 25% een binaire representatie 0 (de 0-synoniemen) bevatten en 25% een binaire representatie 1 (de 1-synoniemen) bevatten. Om dit te realiseren, wordt iedere representatie van een synoniem (0, 1 of NULL) gekozen door twee bits van de bistroom. 00 stelt een 0 voor, 11 stelt een 1 voor en een 10 of 01 stelt een NULL voor. Een tweede verschil met de eerste methode is dat het oorspronkelijk getypt woord ook bij de synoniemen lijst gevoegd wordt. Dit oorspronkelijk getypt woord moet dus ook voorzien zijn van een binaire representatie. Enerzijds is hierdoor de keuze mogelijkheid van de zender weer groter, anderzijds kan het zijn dat het oorspronkelijk getypt woord een NULL-representatie bevat, of een geschikt synoniem is. In dit geval mag het oor- 45

46 3.3 Codetabel 3 THEORETISCH MODEL spronkelijk getypt woord in de zin blijven staan. Deze methode om een codetabel te genereren is weergegeven in figuur 27. Figuur 27: De generatie van de codetabel Om een overzicht te geven van de spreiding van de synoniemen in de volledige thesaurus is een boxplot 29 opgemaakt. Deze boxplot geeft procentueel weer hoeveel van de synoniemen ieder woord bezit met een bepaalde representatie. Figuur 28 geeft een mogelijke spreiding van de synoniemen weer na de generatie van een codetabel. Hierin valt af te leiden dat bij de generatie woorden voorkomen die geen enkel synoniem hebben met een represenatie 0, maar ook woorden waarbij alle synoniemen een represantie 0 hebben. Toch bevatten 50% van de woorden tussen 22% en 58% synoniemen met een representatie 0, op analoge manier kan dit voor de 1- en NULL-synoniemen afgeleid worden Codetabel optimalisatie Zoals te zien is in figuur 27, is de codetabel nog niet optimaal. Bij great is er maar één 0-synoniem (16.67%), bij big en large is er zelfs geen enkel 0-synoniem. Om de codetabel beter te laten aanleunen bij de vooropgestelde eisen, ondergaat de codetabel enkele optimalisatie stappen. Zoals vermeld wordt geprobeerd om de verhouding 25/25/50 van de representaties van de synoniemen zo goed mogelijk te benaderen. Een goede spreiding van de synoniemen is weergegeven in figuur 29. Ideaal zou immers zijn dat ieder woord precies aan de verhouding 25/25/50 voldoet, maar dit is praktisch niet haalbaar. De spreiding van de synoniemen na de codetabel generatie wordt weergegeven in figuur In de beschrijvende statistiek is een boxplot een grafische weergave van de vijf-getallensamenvatting. Deze vijf-getallensamenvatting bestaat uit het minimum, het eerste kwartiel, de mediaan (of 2e kwartiel), het derde kwartiel en het maximum van de waargenomen data. Een boxplot is daarmee een weliswaar sterk vereenvoudigde, maar zeer bruikbare, voorstelling van de verdeling van de data [56]. 46

47 3.3 Codetabel 3 THEORETISCH MODEL Deze wijkt duidelijk nog veel af van de ideale spreiding. De codetabel optimalisatie probeert de binaire representatie van de synoniemen zo aan te passen dat de spreiding zo dicht mogelijk bij deze ideale spreiding aanleunt. Deze optimalisatie moet deterministisch zijn, zodat deze bij zender en ontvanger identiek dezelfde operaties uitvoert. Figuur 28: De spreiding van de synoniemen na het genereren van een codetabel, zonder optimalisatiestappen Figuur 29: Een goede spreiding van de synoniemen Meer dan 40% NULL-synoniemen Zoals aangegeven in de boxplot van de goede spreiding (figuur 29) wordt een werkvoorbeeld genomen waar ieder woord minstens 40% N U LL-synoniemen moet bevatten. De eerste stap van de codetabel optimalisatie zorgt hiervoor. Voor ieder woord in de tabel wordt berekend hoeveel N U LL-synoniemen dit woord bevat. Bevat het woord minder dan 40% NULL-synoniemen, dan krijgen de meest frequente synoniemen een NULLrepresentatie. De meest frequente synoniemen zijn hiervoor gekozen, omdat deze vaak beter in de zin passen, en op deze manier altijd gebruikt kunnen worden. Zo wordt heel de codetabel doorlopen en aangepast. De spreiding na deze optimalisatiestap is 47

48 3.3 Codetabel 3 THEORETISCH MODEL weergegeven in figuur 30. Hierin valt op dat de meeste woorden veel meer dan 40% N U LL-synoniemen bevatten. De synoniemen van de woorden die verder in de thesaurus staan worden ook later aangepast. Maar deze synoniemen komen ook voor bij woorden eerder in de thesaurus. Als deze synoniemen later in de optimalisatiestap N U LL-synoniemen worden, stijgt het aantal N U LL-synoniemen bij de woorden eerder in de thesaurus. Figuur 30: De spreiding van de synoniemen na een eerste optimalisatiestap Meer dan 40% en minder dan 60% NULL-synoniemen De tweede optimalisatiestap beperkt het aantal N U LL-synoniemen. In de eerste stap worden enkel bij de woorden met te weinig N U LL-synoniemen aanpassingen gedaan. Bij deze stap worden ook bij de woorden met meer dan 60% NULL-synoniemen aanpassingen gedaan. Bij deze woorden worden enkele N U LL-synoniemen omgevormd tot een 0- of 1-synoniem. Hiervoor worden de meest frequente woorden, die in de vorige stap niet omgevormd zijn tot N U LL-synoniemen, omgevormd. De keuze van de nieuwe representatie is afhankelijk van het aantal 0- of 1-synoniemen bij dit woord. Het NULL-synoniem krijgt de representatie die het minst voorkomt als representatie van de synoniemen van het gegeven woord. Hierdoor daalt het percentage N U LL-synoniemen, maar stijgt het aantal 0- of 1-synoniemen. De spreiding na deze optimalisatiestap is weergegeven in figuur 31. Het nadeel hierbij is dat synoniemen die eerder tot N U LL-synoniemen zijn gemaakt, door de eerste stap, nu weer een representatie kunnen worden toegekend. Dit is niet gewenst, omdat er nu weer woorden voorkomen met minder dan 40% N U LL-synoniemen. Dit is opgelost door de synoniemen, die in de eerste optimalisatiestap zijn aangepast, niet meer te wijzigen. De spreiding door deze aanpassing is weergegeven in figuur

49 3.3 Codetabel 3 THEORETISCH MODEL Figuur 31: De spreiding van de synoniemen na een tweede optimalisatiestap Figuur 32: De spreiding van de synoniemen na een tweede optimalisatiestap met het vastzetten van de gewijzigde synoniemen Herhalen van de optimalisatie stappen Door de codetabel slechts één keer door beide stappen te optimaliseren, is de spreiding van de synoniemen nog steeds niet voldoende. We verbeteren de spreiding door deze stappen te herhalen totdat de synoniemen niet meer wijzigen. In onze thesaurus zijn beide stappen zes keer herhaald, om stabiel te zijn. De spreiding hierbij is weergeven in figuur 33. Hierbij valt op dat het minimum aantal NULL-synoniemen ligt nu niet meer op 0%, maar op 40%, wat een zeer goede vooruitgang is. Dit wil zeggen dat bij ieder woord zeker 40% van de synoniemen gekozen kunnen worden. Bij de vorige stappen was dit bij enkele uitzonderingen nog 0%. Het minimum aantal N U LL-synoniemen verminderen tot 30% Na het herhalen van de optimalisatie stappen ligt de box van de NULL-synoniemen toch te hoog. Door het verminderen van het minimum aantal N U LL-synoniemen tot 30% komt deze box lager te liggen en benadert zo beter de goede spreiding van figuur

50 3.3 Codetabel 3 THEORETISCH MODEL Figuur 33: De spreiding van de synoniemen na het herhalen van de twee optimalisatie stappen Door deze vermindering van de N U LL-synomien stijgt het aantal 0- en 1-synoniemen. De kans dat zo een synoniem met betekenis wordt doorgestuurd is nu ook groter, wat voor een betere effectiviteit zorgt. Deze spreiding is weergegeven in figuur 34. Figuur 34: De spreiding van de synoniemen na het verlagen van het minimum aantal NULLsynoniemen Eventuele uitbreidingen Om een betere payload van het stego-systeem te krijgen, kan de codetabel uitgebreid worden. Door representaties van meerdere bits te gebruiken, sturen we meerdere bits per woord door. Het nadeel hierbij is dat de gebruiker een kleinere keuze aan synoniemen zal hebben. Figuur 35 toont het verschil in payload en aantal synoniemen tussen de module zonder en met deze uitbreiding. In dit voorbeeld wordt steeds een representatie van twee bits gebruikt, ook zijn er geen N U LL-synoniemen meer. Deze twee parameters kunnen nog gewijzigd worden, om veranderingen in de payload en het aantal mogelijke synoniemen te krijgen. 50

51 3.3 Codetabel 3 THEORETISCH MODEL Figuur 35: Vergelijking tussen de originele en de uitgebreide codetabel Op basis van de Huffman-code [34, 5] kan nog een tweede uitbreiding uitgewerkt worden. Bij deze methode krijgen niet alle representaties evenveel bits toegekend. De meest frequente synoniemen krijgen maar één bit toegekend, en worden dus in 50% van de gevallen gebruikt. Minder frequent gebruikte synoniemen krijgen meerdere bits toegekend, maar worden dus ook minder vaak gebruikt. De logica hierachter is dat de synoniemen die minder frequent gebruikt worden ook minder goed in de zin passen. Als ze in een zin geforceerd worden, sturen ze veel informatie door. Een voorbeeld om bits toe te kennen aan synoniemen met behulp van de methode met Huffman-code, is voorgesteld in figuur 36. Vóór het synoniem staat de representatie van dit synoniem. Achter het synoniem staat de kans dat dit synoniem gebruikt wordt. Figuur 36: Bits toekennen aan synoniemen met behulp van de methode met Huffman-code 51

52 4 IMPLEMENTATIE 4 Implementatie In dit hoofdstuk wordt meer informatie gegeven over de ontwikkelde plugin en het gebruik ervan in X-Chat. Het implementeren van de plugin in X-Chat stelt enkele minimumvereisten aan de gebruikte computer. Enkele van deze vereisten zijn een voldoende snelle processor, een voldoende groot geheugen, maar ook bibliotheken die nodig zijn voor een goede werking van de plugin. Het installeren van de plugin zelf behoeft ook wat verduidelijking, zodat de plugin kan werken en benodigde data-bestanden ter beschikking heeft. Verder worden enkele suggesties van uitbreidingen voorgesteld. Het daarop volgende punt verduidelijkt het gebruik van de plugin. Een laatste punt in dit hoofdstuk geeft enkele data weer van testen die met de plugin gedaan zijn. 4.1 Plugin Minimumvereisten Zoals vermeld in het begin van dit hoofdstuk zijn enkele minimumvereisten opgesteld aan de gebruikte computer: Een getest besturingssysteem. De ontwikkelde plugin is getest op verschillende besturingssystemen, waarvan een overzicht in Andere besturingssystemen kunnen mogelijk problemen geven op de plugin. Voldoende snelle processor. Het is vrij moeilijk om een exacte waarde te geven voor de minimum kloksnelheid van de processor. Het verwerken van de thesaurus, frequentielijst en het data-bestand vraagt veel rekenwerk. De traagste processor waarop de plugin getest is, is een AMD64 Turion 1.6 GHz. Voldoende groot werkgeheugen. De thesaurus en het data-bestand zijn vrij grote bestanden, om deze te verwerken is er voldoende werkgeheugen nodig. De woorden met hun synoniemen worden ook opgeslagen in het geheugen, hiervoor is er werkgeheugen nodig. De plugin is getest met een minimum werkgeheugen van 512 MB. De grafische bibliotheek GTK+. Onder Windows is het voldoende om de runtimebibliotheek van GTK+ 2 [57] te installeren. Onder Linux is het nodig de GTK+ ontwikkelingsbibliotheek te installeren, omdat de plugin een eerste keer gecompileerd moet worden. De IRC-cliënt X-Chat. De plugin is ontwikkeld voor de IRC-cliënt X-Chat, deze moet dus geïnstalleerd zijn op de gebruikte computer. 52

53 4.1 Plugin 4 IMPLEMENTATIE Installatie Als de gebruikte computer voldoet aan de minimumvereisten, kan de plugin geïnstalleerd worden. Onder Windows is de plugin gecompileerd tot een dynamically linked library of DLL. Deze DLL mag eender waar op de harde schijf staan. Onder Linux zal de plugin gecompileerd worden tot een shared library of so-bestand met het linux-commando 30 make. Hierbij zullen de nodige bestanden en de plugin op de juiste plaats gecopieerd worden. Om de plugin successvol te compileren is ook de ontwikkelingsbibliotheek van OpenSSL vereist. De plaats van de thesaurus en de frequentielijst is afhankelijk van het gebruikte commando. Als het data-bestaand aangemaakt wordt met het X-Chatcommando \file moeten de thesaurus en de frequentielijst op een vaste plaats staan. Onder Windows is dit de installatiemap van X-Chat, onder Linux is dit in een aangemaakte map in de gebruikersmap, namelijk /.xchat2/stego/. Eventueel mogen deze bestanden ook op een andere plaats staan, maar dan moeten deze paden opgegeven worden met het X- Chatcommando \file <locatie thesaurus><locatie frequentielijst>. Met behulp van de thesaurus en de frequentielijst wordt het data-bestand aangemaakt (zie 4.1.4) Initialisatie Bij het inladen in X-Chat zal de plugin beginnen met een initialisatie. In deze initialisatie behandelt de plugin enkele stappen die nodig zijn om te kunnen werken. De stappen die uitgevoerd worden zijn: Een nieuwe, voorlopig lege, sessie aanmaken. De status op inactief zetten. GTK+ initialiseren. Een nieuwe, voorlopig lege, data-structuur en code-tabel aanmaken. Informatie opvragen over de andere gebruiker en in geval van de zender ook het te versturen bericht. 30 linux-commando: commando in een console van Linux. X-Chatcommando: commando in het tekstvenster van X-Chat. 53

54 4.1 Plugin 4 IMPLEMENTATIE Kijken of het data-bestand aanwezig is, en eventueel een melding geven dat deze aangemaakt moet worden zoals vermeld in Als deze eerste initialisatiestap voltooid is, kan de zender de tweede initialisatiestap starten met het X-Chatcommando \init. Hierbij zal de zender de sleutelovereenkomst met behulp van het Diffie-Hellman algoritme starten. De zender start hierbij eerst de sessie met de functie dh start session(); In deze functie worden de publieke en private waarde aangemaakt, de publieke waarde wordt opgeslaan in een tekstbestand en doorgestuurd naar de ontvanger via DCC. De status van de zender wordt nu gezet op zender van de sleutelovereenkomst. De ontvanger ziet dat de andere gebruiker hem een bestand wil doorsturen en weet ook dat zijn status nog inactief is. Met deze informatie weet de ontvanger dat het bestand de publieke waarde van de zender bevat. De ontvanger zal het bestand ontvangen en de publieke waarde van de zender uitlezen en opslaan in het geheugen. De ontvanger zal op dezelfde manier als de zender de sessie starten en een eigen publieke en private waarde aanmaken. De ontvanger plaatst zijn publieke waarde in een tesktbestand en probeert deze door te sturen naar de zender. De status van de ontvanger is nu gezet op ontvanger van de sleutelovereenkomst. De zender merkt op dat de ontvanger een bestand wil doorsturen en weet dat het bestand de publieke waarde van de ontvanger bevat. De zender zal op zijn beurt het bestand ontvangen en de publieke waarde van de ontvanger uitlezen en opslaan in het geheugen. Op dit moment beschikken zowel de zender als ontvanger over drie waardes: Hun eigen private waarde. De publieke waarde van de zender. De publieke waarde van de ontvanger. Met deze drie waardes kunnen beide partijen dezelfde sessie-sleutel S aanmaken. Hieruit kunnen de zender en ontvanger de RC4-sleutel en de bitstroom β afleiden. De zender zal het bericht vercijferen met deze RC4-sleutel, de ontvanger zal later het bericht terug ontcijferen met deze RC4-sleutel. Omdat het handig is dat de ontvanger weet wanneer het bericht afgelopen is, wordt vooraan de cijfertekst acht bits toegevoegd. Deze acht bits stellen de lengte van het bericht voor in aantal bytes. Zowel zender als ontvanger zullen vervolgens de data-structuur invullen met alle woorden en hun bijhorende synoniemen en de codetabel genereren en optimaliseren met de bitstroom β. De zender krijgt nu de status van zender en de ontvanger de status van ontvanger. Op dit moment is de initialisatie aan beide zijden afgelopen en kan de zender chatten om de geheime boodschap door te zenden. 54

55 4.1 Plugin 4 IMPLEMENTATIE Aanmaken van het data-bestand Het data-bestand met alle woorden en hun bijhorende synoniemen wordt aangemaakt vanuit de thesaurus en de frequentielijst. Deze bestanden zijn vrij groot en om de belasting voor de computer te verminderen wordt het data-bestand in verschillende stappen aangemaakt. In de eerste stap worden enkel de woorden van thesaurus bewerkt, in de thesaurus staat achter ieder woord het aantal verschillende betekenissen van synoniemen. Aangezien in het data-bestand enkel het woord staat, wordt dit achtervoegsel verwijderd. In deze stap worden ook alle woorden met minder dan 3 letters en woorden die niet met een letter beginnen weggelaten 31. In het tweede deel worden enkel de synoniemen van de thesaurus bewerkt. In de thesaurus staan alle synoniemen met eenzelfde betekenis achter elkaar, gescheiden met een pipe-teken. Deze stap zet ieder synoniem op een aparte regel, en verwijdert alle synoniemen met minder dan drie letters. De derde stap verwijdert alle generic terms en antonyms. Dit zijn synoniemen met een verwante betekenis en tegengestelde van het gegeven woord. Deze woorden zullen steeds de betekenis van de zin veranderen, en zijn dus niet geschikt voor in het databestand. De volgende stap bewerkt de frequentielijst. In deze lijst staat op iedere regel een woord met extra informatie, zoals het aantal keer dit woord is voorgekomen, wat soort woord dit is, en in hoeveel bestanden dit woord is teruggevonden. Voor het aanmaken van het data-bestand is enkel het woord met zijn frequentie noodzakelijk, niet deze extra gegevens, deze worden dus uit de frequentielijst gehaald. In de thesaurus zitten zeer veel woorden, ook exotische woorden en woorden die horen bij een bepaald thema. Deze woorden worden bijna nooit gebruikt, maar nemen wel geheugen in. In de frequentielijst staan enkel de meest frequente woorden. Door enkel de woorden en synoniemen van de thesaurus te behouden die ook voorkomen in de frequentielijst, wordt het data-bestand veel kleiner. Dit gebeurt in de volgende stap. In de voorlaatste stap worden alle synoniemen per woord gesorteerd volgens frequentie. In de codetabel optimalisatie worden namelijk de meest frequente woorden gewijzigd tot N U LL-synoniemen. Om dit te kunnen verwezelijken is het makkelijk om de synonie- 31 Dit zijn vaak geen echte woorden, maar vaak afkortingen. Deze zorgen vaak voor verwarring: zo bevat het Engelse lidwoord a de synoniemen vitamin, angstom, ampere en atom bomb. 55

56 4.2 Gebruik 4 IMPLEMENTATIE men van een woord te sorteren volgens frequentie. Een tweede voordeel hierbij is dat op deze manier de meest frequente synoniemen bovenaan in de drop-downbox staan. Deze worden het vaakst gebruikt, en zijn zo het snelste terug te vinden. De laatste stap verwijdert alle woorden die minder dan vier synoniemen hebben. Bij deze woorden is het moeilijk om een juiste spreiding van de representaties te bekomen, maar ook zal voor iedere representatie er maar één synoniem ter beschikking zijn. Hierdoor zal de gebruiker verplicht worden om een bepaald synoniem te gebruiken, en dat is niet gewenst. 4.2 Gebruik Een eerste stap die nodig is om de stego-module te gebruiker is het inladen van de plugin. De plugin kan ingeladen woorden door in het menu XChat te klikken op Plugin of script laden. Hierbij zal een standaard venster om bestanden te openen verschijnen, waarin gezocht kan worden naar de locatie van de plugin. Als de plugin geselecteerd is, zal wanneer op de knop openen geklikt wordt de plugin geladen worden. Wanneer de plugin geladen is, zal automatisch een pop-up venster verschijnen, zoals in figuur 37. Hierin zal de zender de gebruikersnaam van de ontvanger moeten invullen, alsook het bericht dat hij wil verzenden. De ontvanger zal enkel de gebruikersnaam van de zender moeten invullen. Als de plugin voor de eerste keer gebruikt wordt en het data-bestand nog niet aangemaakt is, of een nieuwe thesaurus of frequentielijst gebruikt wordt, zal de gebruiker eerst het data-bestand moeten aanmaken, zoals vermeld in Eens alle informatie over de andere gebruiker en het te verzenden bericht gekend is, kan de zender de initialisatie starten met het X-Chatcommando \init. Hierbij zullen alle initialisatiestappen van uitgevoerd worden. De enige handelingen die de gebruikers moeten uitvoeren is het accepteren van de DCC-bestandenuitwisseling. Het inladen van de woorden en hun synoniemen, het genereren en optimaliseren van de codetabel en het vercijferen van de boodschap gebeuren allemaal automatisch. Als de initialisatie voltooid is, kunnen de gebruikers beginnen te chatten. Voor de zender zal er bij iedere zin een pop-up verschijnen waarin hij een keuze kan maken van de verschillende synoniemen voor de woorden die in het data-bestand staan. Bij de ontvanger wordt de vooruitgang bij iedere ontvangen zin van de zender getoond, met het bericht dat hij al ontvangen heeft. Figuur 38 tot figuur 44 verduidelijken dit proces. 56

57 4.2 Gebruik 4 IMPLEMENTATIE Figuur 37: Het pop-upvenster bij het inladen van de plugin Figuur 38: De zender typt een zin in 57

58 4.2 Gebruik 4 IMPLEMENTATIE Figuur 39: Een pop-up na het typen van een zin Figuur 40: De keuze van de synoniemen, de geschikte en N U LL-synoniemen zijn gescheiden 58

59 4.2 Gebruik 4 IMPLEMENTATIE Figuur 41: De vooruitgang aan de zijde van de zender na het typen van een zin Figuur 42: De vooruitgang aan de zijde van de ontvanger na het ontvangen van een zin 59

60 4.2 Gebruik 4 IMPLEMENTATIE Figuur 43: Het voltooien van het zenden van het bericht Figuur 44: Het voltooien van het ontvangen van het bericht 60

61 4.3 Technische gegevens 4 IMPLEMENTATIE 4.3 Technische gegevens In dit deel worden enkele cijfers van de implementatie en enkele testen weergegeven. Later in het besluit zullen deze cijfers ook besproken worden. Synoniemlijsten De gebruikte thesaurus is een Engelse thesaurus afkomstig van het softwarepakket Open- Office [58]. In deze thesaurus worden naast synoniemen ook verwante termen en antoniemen meegegeven van elke woord. Deze worden uit de thesaurus gefilterd omdat ze geen goed alternatief bieden voor het woord waaraan ze gekoppeld zijn. In tabel 4.3 wordt achtereenvolgens het totaal aantal woorden, het totaal aantal synoniemen voor alle woorden en het gemiddeld aantal synoniemen per woord weergegeven voor de originele thesaurus, de thesaurus zonder verwante termen en antoniemen en het zelf gegenereerde data-bestand. In het zelf gegenereerde data-bestand zijn de woorden met minder dan 4 synoniemen verwijderd. Thesaurus inclusief Thesaurus exclusief verwante termen verwante termen Eigen data-bestand en antoniemen en antoniemen Aantal woorden Aantal synoniemen Synoniemen/woord Tabel 2: Een overzicht van data van de gebruikte thesaurus en het gegenereerde data-bestand Efficiëntietest Voor deze efficiëntietest zijn drie verschillende personen onafhankelijk van elkaar op een willekeurige server en op een willekeurige kanalen opgevolgd. Hierbij is nagegaan hoeveel van de woorden die zij gebruikten voorkwamen in de codetabel. Uit deze waardes kunnen we besluiten wat de payload 32 is. Dit cijfer geeft weer hoeveel bits per getypt woord gemiddeld doorgestuurd worden. Persoon 1 Persoon 2 Persoon 3 Totaal Aantal woorden Treffers in codetabel Payload Tabel 3: Effiëntietest van de plugin 32 Payload = gemiddeld aantal bits per woord (0.50) treffers in codetabel / aantal woorden 61

62 4.3 Technische gegevens 4 IMPLEMENTATIE We vergelijken de payload van het ontworpen stego-systeem met de payload van het stego-systeem CryptoBola JPEG [27], wat in sectie gebruikt wordt in een voorbeeld. Er werd een afbeelding van 58 kb in een afbeelding van 385 kb verborgen. Dit komt overeen met een payload van 58/385 = 0.151, wat wil zeggen dat er ongeveer 65 bits nodig zijn om 1 bit te kunnen verbergen. De startpagina van CryptoBola leert ons het volgende voorbeeld: in een foto van 139 kb kan maximaal 31 kb aan data verborgen worden. Dit resulteert in een payload van

63 5 BESLUIT 5 Besluit Linguïstische steganografie is één van de meer geavanceerde methodes om data in tekst te verbergen. De betere methode om linguïstische steganografie uit te voeren, zoals Bergmair [5] in zijn thesis bespreekt, is door middel van woordsubstitutie. Enkele gekende linguïstische stego-systemen zijn onder andere: LUNABLE [59] van Vineeta Chand en C. Orhan Orgun, NICETEXT [60] van Mark T. Chapman en Tyrannosaurus Lex [61] van Keith Winstein. Al deze aangehaalde stego-systemen werken aan de hand van autonome woordsubstitutie. Een nadeel van deze stego-systemen is dat omwille van de automatisering van de woordsubstitutie, zinnen onnatuurlijk kunnen gaan lijken of semantisch niet meer in orde zijn, waardoor ze niet meer in de oorspronkelijke context van de zin passen. Het stego-systeem dat in deze thesis is ontwikkeld, is geïnspireerd door de ideeën van Bergmair, maar met dat verschil dat we de afluisteraar en monitor Wendy niet als een geautomatiseerd proces beschouwen. De mogelijkheid dat Wendy een intelligent proces of persoon is wordt ook in rekening gebracht. Het toepassen van geautomatiseerde woordsubstitutie zou betekenen dat we de stego-engine zouden moeten uitrusten met artificiële intelligentie, die het probleem van woord-dubbelzinnigheid bij synoniemen kan oplossen binnen elke zin. Dit is, tot op heden, nog steeds een zeer moeilijk op te lossen probleem binnen het werkgebied van artificiële intelligentie. Om deze reden wordt in deze thesis een oplossing voorgesteld die menselijke interactie aan de stego-engine toevoegt. Op deze manier wordt een half-automatische stego-engine verkregen, die het probleem van de woord-dubbelzinnigheid met behulp van menselijke interactie kan oplossen. De menselijke interactie wordt voorzien aan de stego-engine door middel van een grafisch pop-up venster. De gebruiker kiest de synoniemen zo, zodat de context en het persoonsgebonden karakter van de zin behouden blijft. In deze thesis wordt het linguïstische stego-systeem ontworpen als een plugin voor de IRC-cliënt X-Chat. De plugin maakt gebruik van de externe bibliotheek GLib, de cryptografische bibliotheek OpenSSL en de grafische bibliotheek GTK+. De plugin beschikt onder andere over een stego-engine en enkele cryptografische primitieven. Aan de hand van de Engelse thesaurus van OpenOffice en een frequentielijst kan een thesaurus van eigen formaat gegenereerd worden. Ook maakt het algoritme van de stego-engine de codetabel afhankelijk van de sessie-sleutel. Zo bekomen we aan beide kanten een deterministische codetabel. Door gewoon te communiceren, niet noofdzakelijk met elkaar, wordt een klaartekst overgebracht naar de ontvanger. Uit de vergelijking van de payload van het ontworpen stego-systeem (tabel 4.3) met 63

64 5 BESLUIT de payload van het stego-systeem CryptoBolaJPEG [27], kunnen we opmerken dat de payload van beide stego-systemen in dezelfde grootteorde ligt. Deze vergelijking gaat echter enkel op als een woord uit de schuiltekst gelijkgesteld wordt aan een bit uit de afbeelding. Hieruit kan opgemerkt worden dat het produceren van bijvoorbeeld 139 kb 33 schuiltekst veel lastiger is dan het genereren van een foto van deze bestandsgrootte. De hoeveelheid schuiltekst die nodig is om klaartekst te verbergen is redelijk veel, waardoor een lange stego-sessie met veel berichten nodig is om een kleine hoeveelheid data door te sturen. Dit maakt dat het stego-systeem, voorgesteld in deze thesis, enkel geschikt is voor het verzenden van kleine boodschappen. Suggesties De payload kan eventueel verhoogd worden door het gebruik van de Huffman-code zoals in deel besproken is. Er is in deze thesis bewust niet voor het toepassen van Huffman-code gekozen. Alhoewel de payload hiermee stijgt, daalt het aantal beschikbare synoniemen per woord. Hierdoor wordt de gebruiker geforceerd om bepaalde synoniemen te kiezen en ontstaan er zinnen die niet meer semantisch in orde zijn. Eén van de belangrijkste doelstelling van deze thesis was het ondetecteerbaar blijven voor mens en computer. Mensen zijn in staat semantisch incorrecte zinnen snel op te merken en aangezien een stego-systeem faalt als de steganografische communicatie opgemerkt wordt, is dit ten zeerste te vermijden. Een andere manier om de payload te verhogen is het uitbreiden van de stego-engine, voor het herkennen en verwerken van meervouden, afkortingen, punten, komma s en schrijffouten. De originele thesaurus bevat namelijk geen meervouden. Door het weglaten van een komma of een punt, die tegen een woord staat geschreven, kunnen er ook al meer woorden worden herkend, waardoor de payload stijgt. Nog een andere methode tot het versnellen van de data-overdracht, is het aanmaken van een eigen ascii-codetabel. Elke karakter wordt in het huidige stego-systeem voorgesteld door een 8 bit tekenloos getal. Als enkel tekstberichten doorgestuurd dienen te worden, hoeven enkel de karakters a z, A Z en 0 9 gecodeerd te worden. Dit zijn in totaal 62 karakters. Alle karakters kunnen op deze manier dus ook enkel door 6 bits voorgesteld worden 34. Dit resulteert in een comprimering van de data tot 75% van de originele datagrootte. Een methode die de payload of data-overdracht niet verandert, maar wel de duur van stego-sessie verkort, is het inlezen van een bestaande tekst in de stego-engine. Op deze manier hoeft de tekstinvoer naar de stego-engine niet zelf gemaakt worden, wat een kb = = bit = een tekst van woorden bit = 2 6 = 64 mogelijkheden 64

65 5 BESLUIT tijdwinst oplevert. Een nadeel van deze methode is dat als de afluisteraar de originele schuiltekst in bezit heeft of kan raadplegen, hij het verschil tussen beide kan waarnemen. Als de stego-communicatie gedetecteerd wordt, heeft het stego-systeem gefaald. Verder onderzoek Indien twee gebruikers vaak met elkaar chatten zonder de plugin te gebruiken, kan een frequentielijst gemaakt worden, speciaal gebaseerd op de interactie tussen deze twee personen. De codetabel zou dan met deze specifieke frequentielijst gegenereerd kunnen worden. Een zelflerende module zou ontwikkeld kunnen worden die in de stego-engine het frequentiegebruik bijhoud. De twee frequentielijsten die beide partijen gebruiken bij het starten van een stego-sessie dienen wel identiek te zijn om zo een identieke codetabel te kunnen verkrijgen aan weerszijden. Verder kunnen er nog testen uitgevoerd worden op de efficiëntie van de huidige datastructuur en het gebruik van een database (bijvoorbeeld SQLite) in de plaats hiervan. Voor de Windowsgebruikers kan er onderzoek gedaan worden naar het ontwikkelen en gebruik maken van een statische GTK+-bibliotheek in plaats van een dynamische. Al de nodige GTK+-functionaliteiten zouden dan in één enkele DLL gecompileerd worden. Het gevolg hiervan zou zijn, dat voor de Windowssystemen enkel de GTK+-DLL meegeleverd moet worden en de gebruiker niet een hele GTK+ runtime-bibliotheek moet installeren om de plugin te kunnen gebruiken. Om het stego-systeem tegen actieve aanvallers te beschermen, kan het stego-systeem robuuster gemaakt worden door een fout-verbeterende code toe te voegen na de vercijfering. Het uitdenken van betere en efficiëntere manieren om de sleutelovereenkomst uit te voeren. DCC kan bijvoorbeeld gebruikt worden om het IP-adres van de zender te ontdekken. De zender zal op hetzelfde moment een tweede connectie openen op een andere poort en op deze socket luisteren tot de ontvanger hierop connecteert. Zo wordt er een rechtreekse TCP/IP-connectie tot stand gebracht, waarover de sleutelovereenkomst kan verlopen. 65

66 REFERENTIES Referenties [1] David Kahn. Codebreakers: The Story of Secret Writing. Simon and Schuster, 1230 Avenue of the Americas, Rockefeller Center, New York City, [2] Prof. Dr. Ir. Bart Preneel and Ir. Stefaan Seys. Cryptologie en netwerkbeveiliging: Een overizcht. Technical report, Departement Elektrotechniek-ESAT, K.U.Leuven. [3] G. J. Simmons. The prisoners problem and the subliminal channel. In David Chaum, editor, Advances in Cryptology: Proceedings of Crypto 83, pages Plenum Press, [4] Advanced Encryption Standard. Encryption_Standard. [5] Richard Bergmair. Towards linguistic steganography: A systematic investigation of approaches, systems, and issues. final year thesis, April handed in in partial fulfillment of the degree requirements for the degree B.Sc. (Hons.) in Computer Studies to the University of Derby. [6] Alfred J. Menezes, Scott A. Vanstone, and Paul C. Van Oorschot. Handbook of Applied Cryptography. CRC Press, Inc., Boca Raton, FL, USA, [7] L. Rutten. Datacommunicatie 2, [8] Auguste Kerckhoffs. La cryptographie militaire. Journal des Sciences Militaires, IX:5 38, jan [9] Jaap-Henk Hoepman and Bart Jacobs. Increased security through open source. Commun. ACM, 50(1):79 83, [10] Data encryption standard. Standard. [11] Kalle Kaukonen and Rodney Thayer. A stream cipher encryption algorithm arcfour. July [12] Evan Herk. RSA (cryptografie). (Cryptografie). [13] E. Rescorla. Diffie-Hellman key agreement method. RFC2631, June [14] Whitfield Diffie and Martin E. Hellman. New directions in cryptography. IEEE Transactions on Information Theory, IT-22(6): , [15] Hashfunctie. 66

67 REFERENTIES [16] Sha-familie. [17] Message authentication code. authentication_code. [18] Hmac. [19] Stefan Katzenbeisser and Fabien A. P. Petitcolas. Information Hiding Techniques for Steganography and Digital Watermarking. Artech House, Inc., Norwood, MA, USA, [20] Rajarathnam Chandramouli and Nasir D. Memon. Analysis of LSB based image steganography techniques. In Proceedings of the 2001 International Conference on Image Processing (ICIP volume 3, 2001), pages , [21] Neil F. Johnson and Sushil Jajodia. Exploring steganography: Seeing the unseen. IEEE Computer, 31(2):26 34, [22] J. J. Chae and B. S. Manjunath. Data hiding in video. In 6th IEEE International Conference on Image Processing (ICIP 99), volume 1, pages , Oct [23] Gopalan Kaliappan and Wenndt Stanley and Adams Scott and Haddad Darren. Audio steganography by amplitude or phase modification. In Delp Edward J. and Ping Wah Wong, editors, Security and Watermarking of Multimedia Contents V., volume 5020 of Presented at the Society of Photo-Optical Instrumentation Engineers (SPIE) Conference, pages 67 76, june [24] Kamran Ahsan. Covert channel analysis and data hiding in TCP/IP. gray-world.net/papers/ahsan02.pdf, August [25] Eric Cole. Hiding in Plain Sight: Steganography and the Art of Covert Communication. John Wiley & Sons, Inc., New York, NY, USA, [26] Davi Figueiredo. Hide-in-picture. hide-in-picture. [27] Cryptobola jpeg. [28] Andrew Brown. S-Tools version 4, [29] Krista Bennett. Linguistic steganography: Survey, analysis, and robustness concerns for hiding information in text. Technical Report TR , Purdue CE- RIAS, May [30] Peter Wayner. Mimic functions. Cryptologia, XVI(3): , July

68 REFERENTIES [31] Peter Wayner. Disappearing Cryptography Information Hiding: Steganography & Watermarking. Morgan Kaufmann Publishers, Los Altos, CA 94022, USA, second edition, Chapters 6 and 7 serve as good introductions to mimic functions. [32] Mark Chapman, George I. Davida, and Marc Rennhard. A practical and effective approach to large-scale automated linguistic steganography. In Proceedings of the 4th International Conference on Information Security(ISC 2001), pages , London, UK, Springer-Verlag. [33] Richard Bergmair and Stefan Katzenbeisser. Towards human interactive proofs in the text-domain. In Kan Zhang and Yuliang Zheng, editors, Proceedings of the 7th Information Security Conference, volume 3225 of Lecture Notes in Computer Science, pages Springer Verlag, September [34] David A. Huffman. A method for the construction of minimum redundancy codes. Proceedings of the Institute of Radio Engineers, 40(9): , Sep [35] J. Oikarinen and D. Reed. Internet relay chat protocol. RFC1459, May [36] I. Eidelshtein and V. Taubkin. Data101 : IRC basics. data101/irc_basics.htm, [37] KVIrc. Dcc negotiation and connection. connection.html. [38] Troy Rollo. A description of the DCC protocol. irchelp/rfc/dccspec.html. [39] BitchX IRC client. [40] BersIRC IRC client. [41] ChatZilla IRC client. [42] Gaim IRC client. [43] Hydra IRC client. [44] Konversation KDE IRC client. [45] mirc IRC client. [46] Visual IRC client. [47] X-Chat IRC client. 68

69 REFERENTIES [48] Gpl general public license. Public_License. [49] MinGW. [50] GCC. [51] The OpenSSL project. [52] GTK+ reference manual for GTK [53] GLib reference manual for GLib [54] Doxygen. [55] Bart Preneel, Bart Van Rompay, Sidi Ben Örs, Alex Biryukov, Louis Granboulan, Emmanuelle Dottax, Markus Dichtl, Markus Schafheutle, Pascale Serf, Stefan Pyka, Eli Biham, Elad Barkan, Orr Dunkelman, J. Stolin, Mathieu Ciet, Jean-Jacques Quisquater, Francesco Sica, Håvard Raddum, and Matthew Parker. Performance of optimized implementations of the NESSIE primitives. Deliverable D21, NESSIE Project, February [56] Bart Dewit. Boxplot. [57] The GIMP for windows. [58] OpenOffice.org. [59] Vineeta Chand and C. Orhan Orgun. Exploiting linguistic features in lexical steganography: Design and proof-of-concept implementation. In HICSS 06: Proceedings of the 39th Annual Hawaii International Conference on System Sciences, page 126.2, Washington, DC, USA, IEEE Computer Society. [60] Mark T. Chapman. Hiding the hidden: A software system for concealing ciphertext in innocuous text. Master s thesis, The University of Wisconsin-Milwaukee, May [61] Keith Winstein. Lexical steganography through adaptive modulation of the word choice hash, January

70 BIJLAGEN Bijlagen Bijlage A: Inhoud van de CD-Rom 71 Bijlage B: Tijdslijn 72 70

71 BIJLAGEN Bijlage A: Inhoud van de CD-Rom 71

72 BIJLAGEN Bijlage B: Tijdslijn Hier volgt een schematisch overzicht van de belangrijkste mijlpalen die gehaald zijn in verband met het ontwerpen van de plugin en het schrijven van de tekst. 72

Datacommunicatie Cryptografie en netwerkbeveiliging

Datacommunicatie Cryptografie en netwerkbeveiliging Datacommunicatie Cryptografie en netwerkbeveiliging ir. Patrick Colleman Inhoud Voorwoord 1 1. Inleiding Wat 2 2. Model 5 3. Systemen 5 3.1 Substitutiesystemen 6 3.1.1 Caesar 6 3.1.2 Monoalfabetische vercijfering

Nadere informatie

slides10.pdf December 5,

slides10.pdf December 5, Onderwerpen Inleiding Algemeen 10 Cryptografie Wat is cryptography? Waar wordt cryptografie voor gebruikt? Cryptographische algoritmen Cryptographische protocols Piet van Oostrum 5 dec 2001 INL/Alg-10

Nadere informatie

De cryptografie achter Bitcoin

De cryptografie achter Bitcoin De cryptografie achter Bitcoin Benne de Weger b.m.m.d.weger@tue.nl augustus 2018 digitale handtekeningen 1 doel: authenticatie sterke verbinding aanleggen tussen een document en een identiteit wordt doorgaans

Nadere informatie

Public Key Cryptography. Wieb Bosma

Public Key Cryptography. Wieb Bosma Public Key Cryptography de wiskunde van het perfecte kopje koffie Wieb Bosma Radboud Universiteit Nijmegen Bachelordag 2 april 2011 Nijmegen, 6 november 2010 0 Nijmegen, 6 november 2010 1 cryptografie

Nadere informatie

Cryptografische beveiliging op het Internet

Cryptografische beveiliging op het Internet Cryptografische beveiliging op het Internet Benne de Weger b.m.m.d.weger@tue.nl augustus 2018 hybride cryptografie 1 klare symmetrische versleuteling geheimschrift versturen geheimschrift symmetrische

Nadere informatie

Netwerken. Beveiliging Cryptografie

Netwerken. Beveiliging Cryptografie Netwerken 15 Beveiliging Cryptografie Lennart Herlaar 2 november 2016 Onderwerpen Beveiliging Cryptografie Cryptografische algoritmen en protocollen Toepassing van cryptografie in beveiliging Lennart Herlaar

Nadere informatie

De digitale handtekening

De digitale handtekening De digitale handtekening De rol van de digitale handtekening bij de archivering van elektronische documenten Prof. dr. Jos Dumortier http://www.law.kuleuven.ac.be/icri Probleemstelling: «integriteit» Elektronisch

Nadere informatie

Veilig e-mailen. Waarom e-mailen via een beveiligde verbinding? U vertrouwt de verbinding met de e-mailserver van InterNLnet niet

Veilig e-mailen. Waarom e-mailen via een beveiligde verbinding? U vertrouwt de verbinding met de e-mailserver van InterNLnet niet Veilig e-mailen E-mail heeft zich inmiddels ruimschoots bewezen als communicatiemiddel. Het is een snelle en goedkope manier om met anderen waar ook ter wereld te communiceren. Als gevolg hiervan vindt

Nadere informatie

Agenda SSN Week 3. Gastcollege Stemcomputers Gastcollege PKI Secret key Public Key Hashes DES AES Praktikum: Cryptool en RSAFAQ

Agenda SSN Week 3. Gastcollege Stemcomputers Gastcollege PKI Secret key Public Key Hashes DES AES Praktikum: Cryptool en RSAFAQ Agenda SSN Week 3 Gastcollege Stemcomputers Gastcollege PKI Secret key Public Key Hashes DES AES Praktikum: Cryptool en RSAFAQ Projecten Consultancy vraag Werken in groepen van 4 Niet in de samenstelling

Nadere informatie

Cryptografie: de wetenschap van geheimen

Cryptografie: de wetenschap van geheimen Cryptografie: de wetenschap van geheimen Benne de Weger b.m.m.d.weger@tue.nl augustus 2018 Cryptografie als Informatiebeveiliging 1 beveiliging: doe iets tegen risico s informatie-risico s en eisen: informatie

Nadere informatie

Wireshark. Open Source Vroeger Ethereal Wireless kan lastig zijn

Wireshark. Open Source Vroeger Ethereal Wireless kan lastig zijn Agenda SSN Week 3 Protocolanalyse Wireshark Doorlopen boek Voorbereiding SSN Project Secret key Public Key Hashes DES AES Praktikum: Cryptool en RSAFAQ Wireshark Open Source Vroeger Ethereal Wireless kan

Nadere informatie

informatica. cryptografie. overzicht. hoe & wat methodes belang & toepassingen moderne cryptografie

informatica. cryptografie. overzicht. hoe & wat methodes belang & toepassingen moderne cryptografie informatica cryptografie overzicht hoe & wat methodes belang & toepassingen moderne cryptografie 1 SE is op papier hoe & wat vragen komen uit methode en verwijzingen die in de methode staan in mappen RSA

Nadere informatie

??? Peter Stevenhagen. 7 augustus 2008 Vierkant voor wiskunde

??? Peter Stevenhagen. 7 augustus 2008 Vierkant voor wiskunde 1 ??? Peter Stevenhagen 7 augustus 2008 Vierkant voor wiskunde 2 Wiskunde en cryptografie Peter Stevenhagen 7 augustus 2008 Vierkant voor wiskunde 3 Crypto is voor iedereen Peter Stevenhagen 7 augustus

Nadere informatie

Elliptische krommen en digitale handtekeningen in Bitcoin

Elliptische krommen en digitale handtekeningen in Bitcoin Elliptische krommen en digitale handtekeningen in Bitcoin Bas Edixhoven Universiteit Leiden KNAW Bitcoin symposium Deze aantekeningen zal ik op mijn homepage plaatsen. Bas Edixhoven (Universiteit Leiden)

Nadere informatie

we secure YOUR network Versleuteling voice en data verkeer voor optimale beveiliging verbindingen

we secure YOUR network Versleuteling voice en data verkeer voor optimale beveiliging verbindingen we secure YOUR network Versleuteling voice en data verkeer voor optimale beveiliging verbindingen 2connect-IT informatiedag 2012 Agenda Introductie Mobiele communicatie Combinatie met 2connect-IT Introductie

Nadere informatie

Inventus Software. Encryption Services. Antum Secured Message System. Jan Muyldermans

Inventus Software. Encryption Services. Antum Secured Message System. Jan Muyldermans Inventus Software Encryption Services Secured Message System Jan Muyldermans 2011 2 Voor wat staat Inventus Software? Inventus Software werd opgericht in 2008 met als doel de privacy van de gebruiker beter

Nadere informatie

4Passief: n Afluisteren. n Geen gegevens gewijzigd of vernietigd. n Via de routers van WAN. n Via draadloze verbindingen. 4Fysieke afsluiting

4Passief: n Afluisteren. n Geen gegevens gewijzigd of vernietigd. n Via de routers van WAN. n Via draadloze verbindingen. 4Fysieke afsluiting Telematica Hoofdstuk 20 4Passief: n Afluisteren Bedreigingen n Alleen gegevens (inclusief passwords) opgenomen n Geen gegevens gewijzigd of vernietigd n Op LAN kan elk station alle boodschappen ontvangen

Nadere informatie

Inhoud. Dus u denkt dat internetbankieren veilig is? Informatiebeveiliging Cryptografie Internetbankieren. 26 september 2009 Harald Vranken

Inhoud. Dus u denkt dat internetbankieren veilig is? Informatiebeveiliging Cryptografie Internetbankieren. 26 september 2009 Harald Vranken Dus u denkt dat internetbankieren veilig is? 26 september 2009 Harald Vranken Inhoud Informatiebeveiliging 2 Informatiebeveiliging Introductie Informatie betekenisvolle gegevens waardevol (privacy, bedrijfsinformatie)

Nadere informatie

Cryptografie & geheimschrift: hoe computers en chips met elkaar praten

Cryptografie & geheimschrift: hoe computers en chips met elkaar praten Cryptografie & geheimschrift: hoe computers en chips met elkaar praten Ingrid Verbauwhede Computer Security & Industrial Cryptography Departement Elektrotechniek K.U.Leuven Ingrid Verbauwhede 1 October

Nadere informatie

Cryptografie en stegografie versleutel je bestanden

Cryptografie en stegografie versleutel je bestanden Cryptografie en stegografie versleutel je bestanden Wat is cryptografie? Cryptografie of geheimschrift (uit het Grieks, κρυπτει kryptei verborgen, en γράφω gráfo schrijven ) houdt zich bezig met technieken

Nadere informatie

Postkwantumcryptografie

Postkwantumcryptografie 1 Bron: https://www.aivd.nl/publicaties/publicaties/2014/11/20/informatiebladover-quantumcomputers Postkwantumcryptografie Bescherm uw data vandaag tegen de dreiging van morgen Factsheet FS-2017-02 versie

Nadere informatie

Verzending van gestructureerde berichten via SFTP Veel gestelde vragen (FAQ)

Verzending van gestructureerde berichten via SFTP Veel gestelde vragen (FAQ) Verzending van gestructureerde berichten via SFTP Veel gestelde vragen (FAQ) 1 Algemeen Wat is SFTP? SFTP staat voor SSH File Transfer Protocol of Secure File Transfer Protocol en maakt deel uit van SSH

Nadere informatie

Informatie coderen en kraken

Informatie coderen en kraken 1 Introductie Informatie coderen en kraken een cryptografie workshop door Ben van Werkhoven en Peter Peerdeman In dit practicum cryptografie raak je bekend met een aantal simpele vormen van cryptografie

Nadere informatie

Transport Layer Security. Presentatie Security Tom Rijnbeek

Transport Layer Security. Presentatie Security Tom Rijnbeek Transport Layer Security Presentatie Security Tom Rijnbeek World Wide Web Eerste webpagina: 30 april 1993 Tegenwoordig: E-mail Internetbankieren Overheidszaken (DigiD) World Wide Web Probleem: World Wide

Nadere informatie

Digitale geldtransacties. Stefanie Romme Wiskunde, Bachelor Begeleider: Wieb Bosma

Digitale geldtransacties. Stefanie Romme Wiskunde, Bachelor Begeleider: Wieb Bosma Digitale geldtransacties Stefanie Romme 3013170 Wiskunde, Bachelor Begeleider: Wieb Bosma Radboud Universiteit Nijmegen 5 juli 2012 Samenvatting Sinds de opkomst van het internet zijn elektronische geldtransacties

Nadere informatie

niet: achterop een ansichtkaart schrijven postbode (en wie al niet meer) leest mee

niet: achterop een ansichtkaart schrijven postbode (en wie al niet meer) leest mee Het geheim van goede koffie Benne de Weger oktober 2013 b.m.m.d.weger@tue.nl http://www.win.tue.nl/~bdeweger versturen van geheimen hoe moet je een geheim opsturen als onderweg iemand kan afluisteren?

Nadere informatie

Het RSA Algoritme. Erik Aarts - 1 -

Het RSA Algoritme. Erik Aarts - 1 - Het RSA Algoritme Erik Aarts - 1 - 1 Wiskunde... 3 1.1 Het algoritme van Euclides... 3 1.1.1 Stelling 1... 4 1.2 Het uitgebreide algoritme van Euclides... 5 1.3 Modulo rekenen... 7 1.3.1 Optellen, aftrekken

Nadere informatie

Project 4 - Centrale Bank. Rick van Vonderen TI1C

Project 4 - Centrale Bank. Rick van Vonderen TI1C Project 4 - Centrale Bank Rick van Vonderen 0945444 TI1C 23 mei 2018 Inhoudsopgave 1 Inleiding 2 2 Beheren 3 2.1 Git...................................................... 3 2.2 Risicolog...................................................

Nadere informatie

RSA. F.A. Grootjen. 8 maart 2002

RSA. F.A. Grootjen. 8 maart 2002 RSA F.A. Grootjen 8 maart 2002 1 Delers Eerst wat terminologie over gehele getallen. We zeggen a deelt b (of a is een deler van b) als b = qa voor een of ander geheel getal q. In plaats van a deelt b schrijven

Nadere informatie

Zoek- en sorteeralgoritmen en hashing

Zoek- en sorteeralgoritmen en hashing Zoek- en sorteeralgoritmen en hashing Femke Berendsen (3689301) en Merel van Schieveen (3510190) 9 april 2013 1 Inhoudsopgave 1 Inleiding 3 2 Zoek- en sorteeralgoritmen 3 2.1 Grote O notatie..........................

Nadere informatie

Uitwerking tentamen Analyse van Algoritmen, 29 januari

Uitwerking tentamen Analyse van Algoritmen, 29 januari Uitwerking tentamen Analyse van Algoritmen, 29 januari 2007. (a) De buitenste for-lus kent N = 5 iteraties. Na iedere iteratie ziet de rij getallen er als volgt uit: i rij na i e iteratie 2 5 4 6 2 2 4

Nadere informatie

De geheimen van het Web. Motivatie

De geheimen van het Web. Motivatie De geheimen van het Web Cryptografie in ons dagelijks leven Vincent Rijmen Institute for Applied Information Processing and Communications (IAIK) - Krypto Group Faculty of Computer Science Graz University

Nadere informatie

De wiskunde achter de Bitcoin

De wiskunde achter de Bitcoin De wiskunde achter de Bitcoin Bas Edixhoven Universiteit Leiden NWD, Noordwijkerhout, 2015/01/31 Deze aantekeningen zal ik op mijn homepage plaatsen. Bas Edixhoven (Universiteit Leiden) De wiskunde achter

Nadere informatie

Algoritmes in ons dagelijks leven. Leve de Wiskunde! 7 April 2017 Jacobien Carstens

Algoritmes in ons dagelijks leven. Leve de Wiskunde! 7 April 2017 Jacobien Carstens Algoritmes in ons dagelijks leven Leve de Wiskunde! 7 April 2017 Jacobien Carstens Wat is een algoritme? Een algoritme is een eindige reeks instructies die vanuit een gegeven begintoestand naar een beoogd

Nadere informatie

Toepassingen van de Wiskunde in de Digitale Wereld

Toepassingen van de Wiskunde in de Digitale Wereld Toepassingen van de Wiskunde in de Digitale Wereld Eindhoven 17 juli 2010 Henk van Tilborg Technische Universiteit Eindhoven 1 Beschermen van digitale gegevens. Bijna alle informatie (muziek, video, foto's,

Nadere informatie

De rol van de digitale handtekening bij de archivering van elektronische documenten

De rol van de digitale handtekening bij de archivering van elektronische documenten De rol van de digitale handtekening bij de archivering van elektronische documenten De toenemende digitalisering heeft verregaande gevolgen voor de archiefwereld. Bijna alle documenten worden momenteel

Nadere informatie

EDIVAT Versie 2.5 Januari 2003

EDIVAT Versie 2.5 Januari 2003 EDIVAT Versie 2.5 Januari 2003 Inhoudsopgave Algemeen...3 Werking...3 TOEGANG TOT EDIVAT...4 Praktisch Dossier...5 Configuratie...5 Aanmaken van de BTW-aangifte...6 Transfer EDIVAT van de BTW AANGIFTE...7

Nadere informatie

Update Hoofdstuk 11 Beveiligde E mail. 11.4.1 Software installeren. gebaseerd op de volgende versie: Mozilla Thunderbird 3.1.10

Update Hoofdstuk 11 Beveiligde E mail. 11.4.1 Software installeren. gebaseerd op de volgende versie: Mozilla Thunderbird 3.1.10 Update Hoofdstuk 11 Beveiligde E mail gebaseerd op de volgende versie: Mozilla Thunderbird 3.1.10 11.4.1 Software installeren 5. Vervalt De Importeerassistent zit niet meer in de nieuwe versie 6. Vervalt

Nadere informatie

Download de software - U vindt deze op onze website: www.no-backup.eu

Download de software - U vindt deze op onze website: www.no-backup.eu Installatie Business (Windows) Download de software - U vindt deze op onze website: www.no-backup.eu -------------------------------------------------------------------------------------------------------

Nadere informatie

Trusted Third Party SFTP Extranet via de Filezilla-client

Trusted Third Party SFTP Extranet via de Filezilla-client Trusted Third Party SFTP Extranet via de Filezilla-client Maart 2013 1 INDEX 1.Inleiding...3 2.Een sleutelpaar genereren (publiek-privé)...3 2.1 Starten...3 2.2 Het sleutelpaar genereren en configureren...3

Nadere informatie

Software Test Plan. Yannick Verschueren

Software Test Plan. Yannick Verschueren Software Test Plan Yannick Verschueren November 2014 Document geschiedenis Versie Datum Auteur/co-auteur Beschrijving 1 November 2014 Yannick Verschueren Eerste versie 1 Inhoudstafel 1 Introductie 3 1.1

Nadere informatie

BEKNOPTE BESCHRIJVING VOORZIENING BRIEFSTEMMEN WATERSCHAPSVERKIEZINGEN 2008

BEKNOPTE BESCHRIJVING VOORZIENING BRIEFSTEMMEN WATERSCHAPSVERKIEZINGEN 2008 BEKNOPTE BESCHRIJVING VOORZIENING BRIEFSTEMMEN WATERSCHAPSVERKIEZINGEN 2008 1. Inleiding Van 13 november tot 25 november om 12.00 uur kiezen de ingezetenen van de waterschappen via directe verkiezingen

Nadere informatie

HANDLEIDING SMTP DIENST BEDRIJVENWEB NEDERLAND B.V.

HANDLEIDING SMTP DIENST BEDRIJVENWEB NEDERLAND B.V. HANDLEIDING SMTP DIENST BEDRIJVENWEB NEDERLAND B.V. Uitgave : 1.0 KORTE OMSCHRIJVING In dit document wordt beschreven hoe u gebruik kunt maken van de SMTP dienst van Bedrijvenweb Nederland B.V. om e-mail

Nadere informatie

Probabilistische aspecten bij public-key crypto (i.h.b. RSA)

Probabilistische aspecten bij public-key crypto (i.h.b. RSA) p. 1/21 Probabilistische aspecten bij public-key crypto (i.h.b. RSA) Herman te Riele, CWI Amsterdam Nationale Wiskunde Dagen Noordwijkerhout, 31 januari 2015 p. 2/21 verzicht Binair exponentiëren RSA Factorisatie-algoritmen

Nadere informatie

aé=êçä=î~å=çé=åêóéíçäçöáé=éå=çé=çáöáí~äé=ü~åçíéâéåáåö= áåò~âé=çé=îéáäáöüéáç=î~å=éäéâíêçåáëåüé=áåñçêã~íáéj ìáíïáëëéäáåö

aé=êçä=î~å=çé=åêóéíçäçöáé=éå=çé=çáöáí~äé=ü~åçíéâéåáåö= áåò~âé=çé=îéáäáöüéáç=î~å=éäéâíêçåáëåüé=áåñçêã~íáéj ìáíïáëëéäáåö aé=êçä=î~å=çé=åêóéíçäçöáé=éå=çé=çáöáí~äé=ü~åçíéâéåáåö= áåò~âé=çé=îéáäáöüéáç=î~å=éäéâíêçåáëåüé=áåñçêã~íáéj ìáíïáëëéäáåö müáäáééé=p`eo^bmbk éêçãçíçê=w mêçñkçêkáê=cê~åë=ibjbfob = báåçîéêü~åçéäáåö=îççêöéçê~öéå=íçí=üéí=äéâçãéå=î~å=çé=öê~~ç=

Nadere informatie

PhPlist Gebruikers Handleiding

PhPlist Gebruikers Handleiding PhPlist Gebruikers Handleiding Auteur: Sander Duivenvoorden Bedrijf: Buildnet webservices E-mail: support@buildnet.nl Datum: 23-09-2008 Laatste wijziging: 17-10-2008 Versie: 1.1 1 Inleiding Het verzenden

Nadere informatie

Kunnen we IoT-elektronica wel beveiligen?

Kunnen we IoT-elektronica wel beveiligen? Editie juni 2017 Data science and data security, Internet of Things Kunnen we IoT-elektronica wel beveiligen? Onderzoekers van imec COSIC KU Leuven maakte een innovatieve cryptografiechip om zuinige IoT-sensoren

Nadere informatie

Handleiding Virtru. VIRTRU installeren KLIK HIER

Handleiding Virtru. VIRTRU installeren KLIK HIER Handleiding Virtru Wat is Virtru? Virtru is een gratis plug-in voor het beveiligd versturen van e-mails. Het e-mailbericht en zijn bijlagen worden op die manier versleuteld verstuurd, de inhoud hiervan

Nadere informatie

Opgaven Getaltheorie en Cryptografie (deel 4) Inleverdatum: 13 mei 2002

Opgaven Getaltheorie en Cryptografie (deel 4) Inleverdatum: 13 mei 2002 Opgaven Getaltheorie en Cryptografie (deel 4) Inleverdatum: 13 mei 2002 19.a) Laat zien dat 5 een voortbrenger is van F 37. b) In het sleuteldistributiesysteem van Diffie en Hellman (met G = F 37, α =

Nadere informatie

Les D-02 Datacommunicatie op Ethernet en Wifi netwerken

Les D-02 Datacommunicatie op Ethernet en Wifi netwerken Les D-02 Datacommunicatie op Ethernet en Wifi netwerken In deze les staan we stil bij datacommunicatie op Ethernet netwerken en Wifi netwerken. 2.1 Wat is datacommunicatie? We spreken van datacommunicatie

Nadere informatie

Les D-04 Foutdetectie en correctie

Les D-04 Foutdetectie en correctie Les D-04 Foutdetectie en correctie In deze les staan we stil bij het ontdekken (detectie) van fouten bij datacommunicatie en bij het herstellen (correctie) van fouten bij datacommunicatie. We bespreken

Nadere informatie

Hoe je het cryptosysteem RSA soms kunt kraken. Benne de Weger

Hoe je het cryptosysteem RSA soms kunt kraken. Benne de Weger Hoe je het cryptosysteem RSA soms kunt kraken Benne de Weger 28 aug. / 4 sept. RSA 1/38 asymmetrisch cryptosysteem versleutelen met de publieke sleutel ontsleutelen met de bijbehorende privé-sleutel gebaseerd

Nadere informatie

STUDIEWIJZER CRYPTOGRAPHY BACHELOR IN DE TOEGEPASTE INFORM ATICA SEMESTER 5 ACADEMIEJAAR LECTOR JOHAN GALLE

STUDIEWIJZER CRYPTOGRAPHY BACHELOR IN DE TOEGEPASTE INFORM ATICA SEMESTER 5 ACADEMIEJAAR LECTOR JOHAN GALLE Cryptography BACHELOR IN DE TOEGEPASTE INFORM ATICA SEMESTER 5 ACADEMIEJAAR 2017-2018 LECTOR JOHAN GALLE STUDIEWIJZER CRYPTOGRAPHY Onderdeel van de opleiding Bachelor in de Toegepaste Informatica 1 VEREISTE

Nadere informatie

SecureTransfer versie 1. Handleiding Secure Transfer. Rijkscloud ODC-Noord. 1 van 11

SecureTransfer versie 1. Handleiding Secure Transfer. Rijkscloud ODC-Noord. 1 van 11 Handleiding Secure Transfer Rijkscloud ODC-Noord 1 van 11 Inhoud 1 Beschrijving en functionaliteit... 3 2 Account aanmaken... 4 3 Inloggen/uitloggen... 6 4 Het versturen van een bestand... 7 5 Een persoon

Nadere informatie

Beschrijving pseudonimisatieplatform ZorgTTP

Beschrijving pseudonimisatieplatform ZorgTTP Beschrijving pseudonimisatieplatform ZorgTTP copyright ZorgTTP 2016 De rechten van intellectuele en industriële eigendom, waaronder het auteursrecht, op alle informatie in dit document berusten bij ZorgTTP

Nadere informatie

FACTORISATIE EN CRYPTOGRAFIE

FACTORISATIE EN CRYPTOGRAFIE FACTORISATIE EN CRYPTOGRAFIE COMPUTERPRACTICUM UvA-MASTERCLASS WISKUNDE 1993 G.C.M. Ruitenburg Faculteit Wiskunde en Informatica Universiteit van Amsterdam 1993 INLEIDING In dit computer prakticum volgen

Nadere informatie

6,2. Werkstuk door een scholier 1687 woorden 9 juni keer beoordeeld. Informatica

6,2. Werkstuk door een scholier 1687 woorden 9 juni keer beoordeeld. Informatica Werkstuk door een scholier 1687 woorden 9 juni 2011 6,2 101 keer beoordeeld Vak Informatica Inleiding in de gevaren van het internet In ons dagelijks leven gaat er tegenwoordig bijna geen dag voorbij zonder

Nadere informatie

Complex multiplication constructions in genus 1 and 2

Complex multiplication constructions in genus 1 and 2 Complex multiplication constructions in genus 1 and 2 Peter Stevenhagen Universiteit Leiden AMS San Diego January 7, 2008 1 Cryptografie 2 Cryptografie cryptografie: kunst om geheimschrift te schrijven

Nadere informatie

Handleiding voor de AttachingIT Outlook oplossing. AMachingIT B.V.

Handleiding voor de AttachingIT Outlook oplossing. AMachingIT B.V. Handleiding voor de AttachingIT Outlook oplossing AMachingIT B.V. Inhoudsopgave Inhoudsopgave...1 AMachingIT voor Outlook...2 Bijlages selecteren met AMachingIT voor Outlook...2 Worden al mijn bijlagen

Nadere informatie

Grafen. Indien de uitgraad van ieder punt 1 is, dan bevat de graaf een cykel. Indien de ingraad van ieder punt 1 is, dan bevat de graaf een cykel.

Grafen. Indien de uitgraad van ieder punt 1 is, dan bevat de graaf een cykel. Indien de ingraad van ieder punt 1 is, dan bevat de graaf een cykel. Grafen Grafen Een graaf bestaat uit een verzameling punten (ook wel knopen, of in het engels vertices genoemd) en een verzameling kanten (edges) of pijlen (arcs), waarbij de kanten en pijlen tussen twee

Nadere informatie

BWI-werkstuk geschreven door: Aart Valkhof Maart 2003. PGP: Pretty Good Privacy. Een overzicht.

BWI-werkstuk geschreven door: Aart Valkhof Maart 2003. PGP: Pretty Good Privacy. Een overzicht. BWI-werkstuk geschreven door: Aart Valkhof Maart 2003 PGP: Pretty Good Privacy. Een overzicht. PGP: Pretty Good Privacy. Een overzicht. De vrije Universiteit Faculteit der Wiskunde en Informatica Studierichting

Nadere informatie

Handleiding. Gebruik Veilig Mailen Portal. voor Externe partijen. Inhoud

Handleiding. Gebruik Veilig Mailen Portal. voor Externe partijen. Inhoud Handleiding Gebruik Veilig Mailen Portal voor Externe partijen Inhoud Een beveiligde mail? Ik zie alleen een PDF in de bijlage...... 1 Hoe kan ik de mail lezen? Hoe weet ik het wachtwoord van de PDF?...

Nadere informatie

Tweede Huiswerk Security 26 of 28 oktober, 11.00, Nabespreken op Werkcollege.

Tweede Huiswerk Security 26 of 28 oktober, 11.00, Nabespreken op Werkcollege. Tweede Huiswerk Security 26 of 28 oktober, 11.00, Nabespreken op Werkcollege. Kijk het huiswerk van je collega s na en schrijf de namen van de nakijkers linksboven en het totaalcijfer rechts onder de namen

Nadere informatie

WEP, chopchop en WPA

WEP, chopchop en WPA WEP, chopchop en WPA Ian Zwaan 28 januari 2009 Ian Zwaan () WEP, chopchop en WPA 28 januari 2009 1 / 23 Inhoudsopgave 1 Inleiding 2 Wired Equivalent Privacy 3 Cyclic Redundancy Check 4 Chopchop 5 Beck-Tews

Nadere informatie

Cryptografie met krommen. Reinier Bröker. Universiteit Leiden

Cryptografie met krommen. Reinier Bröker. Universiteit Leiden Cryptografie met krommen Reinier Bröker Universiteit Leiden Nationale Wiskundedagen Februari 2006 Cryptografie Cryptografie gaat over geheimschriften en het versleutelen van informatie. Voorbeelden. Klassieke

Nadere informatie

Inhoudsopgave. Onderzoeksrapport: SSL; Dion Bosschieter; ITopia

Inhoudsopgave. Onderzoeksrapport: SSL; Dion Bosschieter; ITopia SSL veilig of niet? Dion Bosschieter Dit is een onderzoeksrapport dat antwoord geeft op de vraag: Kan een gebruiker er zeker van zijn dat SSL veilig is? ITopia Dion Bosschieter 23-04- 2012 Inhoudsopgave

Nadere informatie

De wiskunde en toepassing. van de cryptologie

De wiskunde en toepassing. van de cryptologie De wiskunde en toepassing van de cryptologie Honours Class TU/e 4 Januari 2010 Henk C.A. van Tilborg 1 Beschermen van digitale gegevens. Bijna alle informatie (muziek, video, foto's, documenten, bestanden)

Nadere informatie

Bijlage Inlezen nieuwe tarieven per verzekeraar

Bijlage Inlezen nieuwe tarieven per verzekeraar ! Bijlage inlezen nieuwe tarieven (vanaf 3.2) Bijlage Inlezen nieuwe tarieven per verzekeraar Scipio 3.303 biedt ondersteuning om gebruikers alle tarieven van de verschillende verzekeraars in één keer

Nadere informatie

Vakgroep CW KAHO Sint-Lieven

Vakgroep CW KAHO Sint-Lieven Vakgroep CW KAHO Sint-Lieven Objecten Programmeren voor de Sport: Een inleiding tot JAVA objecten Wetenschapsweek 20 November 2012 Tony Wauters en Tim Vermeulen tony.wauters@kahosl.be en tim.vermeulen@kahosl.be

Nadere informatie

Concept. Inleiding. Advies. Agendapunt: 04 Bijlagen: - College Standaardisatie

Concept. Inleiding. Advies. Agendapunt: 04 Bijlagen: - College Standaardisatie Forum Standaardisatie Wilhelmina v Pruisenweg 104 2595 AN Den Haag Postbus 84011 2508 AA Den Haag www.forumstandaardisatie.nl COLLEGE STANDAARDISATIE Concept CS07-05-04I Agendapunt: 04 Bijlagen: - Aan:

Nadere informatie

Programmeren A. Genetisch Programma voor het Partitie Probleem. begeleiding:

Programmeren A. Genetisch Programma voor het Partitie Probleem. begeleiding: Programmeren A Genetisch Programma voor het Partitie Probleem begeleiding: Inleiding Het Partitie Probleem luidt als volgt: Gegeven een verzameling van n positieve integers, vindt twee disjuncte deelverzamelingen

Nadere informatie

Fout detecterende en verbeterende codes

Fout detecterende en verbeterende codes Profielwerkstuk Fout detecterende en verbeterende codes Een compacte module over het onderwerp fouten detectie en verbetering Gemaakt door Roy van Schaijk, Boris Kloeg en Willy Mackus Inhoudsopgave. Introductie

Nadere informatie

Beschrijving webmail Enterprise Hosting

Beschrijving webmail Enterprise Hosting Beschrijving webmail Enterprise Hosting In dit document is beschreven hoe e-mail accounts te beheren zijn via Enterprise Hosting webmail. Webmail is een manier om gebruik te maken van e-mail functionaliteit

Nadere informatie

1 Rekenen in eindige precisie

1 Rekenen in eindige precisie Rekenen in eindige precisie Een computer rekent per definitie met een eindige deelverzameling van getallen. In dit hoofdstuk bekijken we hoe dit binnen een computer is ingericht, en wat daarvan de gevolgen

Nadere informatie

1 De werkmap beschermen

1 De werkmap beschermen 1 De werkmap beschermen Er zijn veel redenen om een werkmap, of delen ervan, te willen afschermen of beschermen. Het kan zijn dat delen van een werkblad gegevens bevatten die nodig zijn bij een berekening,

Nadere informatie

Spreekbeurt Nederlands Cryptologie

Spreekbeurt Nederlands Cryptologie Spreekbeurt Nederlands Cryptologie Spreekbeurt door een scholier 1371 woorden 5 maart 2006 6,2 25 keer beoordeeld Vak Nederlands Cryptologie Algemeen Cryptologie bestaat uit twee Griekse woorden: krypto

Nadere informatie

Augustus 4/20032012. De beveiliging van Wi-Fi-netwerken. 2001 WEP Attack. Figuur 1: Ontwikkeling van de Wi-Fi-beveiliging

Augustus 4/20032012. De beveiliging van Wi-Fi-netwerken. 2001 WEP Attack. Figuur 1: Ontwikkeling van de Wi-Fi-beveiliging Technische Periodieke uitgave publicatie van de van SmalS-MvM Smals Augustus 4/20032012 De beveiliging van Wi-Fi-netwerken Cryptografische Aspecten Inleiding Julien Cathalo is doctor in de toegepaste wetenschappen.

Nadere informatie

Beveiliging van persoonlijke bestanden door middel van encryptie een tutorial door Nick heazk Vannieuwenhoven

Beveiliging van persoonlijke bestanden door middel van encryptie een tutorial door Nick heazk Vannieuwenhoven Beveiliging van persoonlijke bestanden door middel van encryptie een tutorial door Nick heazk Vannieuwenhoven Ten Geleide Voor het beveiligen van onze persoonlijke bestanden zullen we gebruik maken van

Nadere informatie

Inleiding... 3. Het e-mailadres... 3. Hoe werkt e-mail?... 3. Je emailadres registreren... 4. Aanmelden bij Outlook... 7. Schermonderdelen...

Inleiding... 3. Het e-mailadres... 3. Hoe werkt e-mail?... 3. Je emailadres registreren... 4. Aanmelden bij Outlook... 7. Schermonderdelen... E-MAIL INHOUD Inleiding... 3 Het e-mailadres... 3 Hoe werkt e-mail?... 3 Je emailadres registreren... 4 Aanmelden bij Outlook... 7 Schermonderdelen... 8 Mailen... 10 Een mail lezen... 10 Een mail versturen...

Nadere informatie

Cryptografie. Ralph Broenink

Cryptografie. Ralph Broenink Cryptografie Ralph Broenink 2 Inhoudsopgave Inhoudsopgave... 2 Voorwoord... 3 Soorten cryptografie... 4 Klassieke cryptografie... 5 Caesarrotatie... 5 Rot13... 5 Atbash... 5 Vigenèrecijfer... 5 Vernam-cijfer...

Nadere informatie

1. INLEIDING. 2 2. PROCESBESCHRIJVING PO NAAR VO. 2 3. HET MAKEN VAN EEN OKR EN TOEVOEGEN AAN HET DOD. 3 4. OKR TOEVOEGEN AAN HET DOD. 10 5.

1. INLEIDING. 2 2. PROCESBESCHRIJVING PO NAAR VO. 2 3. HET MAKEN VAN EEN OKR EN TOEVOEGEN AAN HET DOD. 3 4. OKR TOEVOEGEN AAN HET DOD. 10 5. HANDLEIDING OKR MAKEN + TOEVOEGEN AAN DOD + VERSTUREN DOD INHOUDSOPGAVE 1. INLEIDING... 2 2. PROCESBESCHRIJVING PO NAAR VO... 2 3. HET MAKEN VAN EEN OKR EN TOEVOEGEN AAN HET DOD... 3 4. OKR TOEVOEGEN AAN

Nadere informatie

Activiteit 18. Kid Krypto Publieke sleutel encryptie. Samenvatting. Vaardigheden. Leeftijd. Materialen

Activiteit 18. Kid Krypto Publieke sleutel encryptie. Samenvatting. Vaardigheden. Leeftijd. Materialen Activiteit 18 Kid Krypto Publieke sleutel encryptie Samenvatting Encryptie is de sleutel tot informatie veiligheid. En de sleutel tot moderne encryptie is, dat een zender door alleen publieke informatie

Nadere informatie

Computernetwerken Deel 2

Computernetwerken Deel 2 Computernetwerken Deel 2 Beveiliging Firewall: toegang beperken IDS: inbraak detecteren en alarmeren Encryp>e: gegevens verbergen Firewall Waarom? Filteren van pakkeben Wildcard mask: omgekeerd subnetmasker

Nadere informatie

Profielwerkstuk Informatica en Wiskunde Is RSA-cryptografie nu veilig genoeg en wat betekent dit voor de toekomst van digitale beveiliging?

Profielwerkstuk Informatica en Wiskunde Is RSA-cryptografie nu veilig genoeg en wat betekent dit voor de toekomst van digitale beveiliging? Profielwerkstuk Informatica en Wiskunde Is RSA-cryptografie nu veilig genoeg en wat betekent dit voor de toekomst van digitale beveiliging? Door Nahom Tsehaie en Jun Feng Begeleiders: David Lans en Albert

Nadere informatie

Crypto, Certificaten, SSL, PKI What can possibly go wrong? ISC2 cryptonight 10 juni 2014

Crypto, Certificaten, SSL, PKI What can possibly go wrong? ISC2 cryptonight 10 juni 2014 Crypto, Certificaten, SSL, PKI What can possibly go wrong? ISC2 cryptonight 10 juni 2014 Introductie Arthur Donkers & Ralph Moonen Partners bij ITSX arthur@itsx.com ralph@itsx.com IANAC 10 juni 2014 ISC2

Nadere informatie

Code signing. Door: Tom Tervoort

Code signing. Door: Tom Tervoort Code signing Door: Tom Tervoort Wat is code signing? Digitale handtekening onder stuk software Geeft garanties over bron Voorkomt modificatie door derden Bijvoorbeeld met doel malware toe te voegen Ontvanger

Nadere informatie

Let op! In dit PDF-bestand wordt voor de voorbeelden gebruikgemaakt van de Instant Messaging-software Windows Live Messenger.

Let op! In dit PDF-bestand wordt voor de voorbeelden gebruikgemaakt van de Instant Messaging-software Windows Live Messenger. 1 Veilig chatten Chatten is een populaire manier van contact maken en onderhouden op internet. Het is simpel gezegd het uitwisselen van getypte berichten. Dat kan met familie, vrienden en andere bekenden,

Nadere informatie

Introductiehandleiding Webmail Dussense Boys

Introductiehandleiding Webmail Dussense Boys Introductiehandleiding Webmail Dussense Boys Versie: 1.0 Naam: E-mail: H.A.P.P. Ribbers e.ribbers@dussenseboys.nl Inhoudsopgave Inleiding... 3 Account... 3 Inloggen met uw gebruikersaccount... 4 Introductie

Nadere informatie

cbox UW BESTANDEN GAAN MOBIEL! VOOR ANDROID-SMARTPHONES EN -TABLETS GEBRUIKERSHANDLEIDING

cbox UW BESTANDEN GAAN MOBIEL! VOOR ANDROID-SMARTPHONES EN -TABLETS GEBRUIKERSHANDLEIDING cbox UW BESTANDEN GAAN MOBIEL! VOOR ANDROID-SMARTPHONES EN -TABLETS GEBRUIKERSHANDLEIDING Inleiding cbox is een applicatie die u eenvoudig op uw computer kunt installeren. Na de installatie wordt in de

Nadere informatie

Handleiding wordpress

Handleiding wordpress Handleiding wordpress Wordpress versie 3.0.4 Handleiding versie 1.1 Auteur Website Geert Hoekzema www.geerthoekzema.nl www.geerthoekzema.nl geert@geerthoekzema.nl 1 Inhoudsopgave Inleiding... 3 Beginnen

Nadere informatie

De nieuwste build van CarmenTV Injector heeft een aantal verbeterde en nieuwe functies.

De nieuwste build van CarmenTV Injector heeft een aantal verbeterde en nieuwe functies. CarmenTV Injector De nieuwste build van CarmenTV Injector heeft een aantal verbeterde en nieuwe functies. Het beginscherm van Injector vindt u hierboven. In het scherm ziet u een overzicht van taken, welke

Nadere informatie

Projectieve Vlakken en Codes

Projectieve Vlakken en Codes Projectieve Vlakken en Codes 1. De Fanocode Foutdetecterende en foutverbeterende codes. Anna en Bart doen mee aan een spelprogramma voor koppels. De ene helft van de deelnemers krijgt elk een kaart waarop

Nadere informatie

Shannon Theory of Cryptology

Shannon Theory of Cryptology Shannon Theory of Cryptology TU Eindhoven Dinsdag, 21 maart 2000 Prof.dr.ir. C.J.A. Jansen Philips Crypto B.V. / TUE-WIN-DW Agenda Inleiding Cipher Systems Shannon s Cipher System Model Cryptografisch

Nadere informatie

Introductie in cryptografie

Introductie in cryptografie LinuxFocus article number 243 http://linuxfocus.org Introductie in cryptografie door Pierre Loidreau Over de auteur: Pierre werkt als docent/onderzoeker aan de ENSTA (Ecole

Nadere informatie

Microsoft Office 365. Handleiding

Microsoft Office 365. Handleiding Dit document omvat een effiëciente handleiding voor de webinterface van Microsoft Office 365. Het mailsysteem, contacten beheren, agenda onderhouden en het gebruiken van de cloudservice OneDrive zijn de

Nadere informatie

Recognition and Detection of Objects Using Visual and Textual Cues S. Karaoğlu

Recognition and Detection of Objects Using Visual and Textual Cues S. Karaoğlu Recognition and Detection of Objects Using Visual and Textual Cues S. Karaoğlu Samenvatting Met dit proefschrift richten we onze aandacht op object herkenning en detectie voor een beter begrip in afbeeldingen.

Nadere informatie

bla bla Guard Gebruikershandleiding

bla bla Guard Gebruikershandleiding bla bla Guard Gebruikershandleiding Guard Guard: Gebruikershandleiding publicatie datum woensdag, 03. september 2014 Version 1.0 Copyright 2006-2013 OPEN-XCHANGE Inc., Dit document is intellectueel eigendom

Nadere informatie

Hoofdstuk 6: Digitale signalen

Hoofdstuk 6: Digitale signalen Hoofdstuk 6: Digitale signalen 6. Algemeenheden Het decimale talstelsel is het meest gebruikte talstelsel om getallen voor te stellen. Hierin worden symbolen gebruikt ( t.e.m. 9 ) die ondubbelzinning de

Nadere informatie

Binair Binair = tweewaardig Beperkt aantal mogelijke waarden (discreet aantal in amplitude) Wij zijn gewoon aan decimaal (tiendelig)

Binair Binair = tweewaardig Beperkt aantal mogelijke waarden (discreet aantal in amplitude) Wij zijn gewoon aan decimaal (tiendelig) Binair Binair = tweewaardig Beperkt aantal mogelijke waarden (discreet aantal in amplitude) Wij zijn gewoon aan decimaal (tiendelig) In elektronische realisatie zijn 10 verschillende toestanden moeilijk

Nadere informatie