Kryptering av bilder vid online backup ANDRÉ STRINDBY

Storlek: px
Starta visningen från sidan:

Download "Kryptering av bilder vid online backup ANDRÉ STRINDBY"

Transkript

1 Kryptering av bilder vid online backup ANDRÉ STRINDBY Examensarbete Stockholm, Sverige 2011

2 Kryptering av bilder vid online backup ANDRÉ STRINDBY Examensarbete i datalogi om 30 högskolepoäng vid Programmet för datateknik Kungliga Tekniska Högskolan år 2011 Handledare på CSC var Alexander Baltatzis Examinator var Stefan Arnborg TRITA-CSC-E 2011:043 ISRN-KTH/CSC/E--11/043--SE ISSN Kungliga tekniska högskolan Skolan för datavetenskap och kommunikation KTH CSC Stockholm URL:

3 Sammanfattning Denna rapport går igenom de delar som är viktiga för en applikation som hanterar online-backup av bilder. Det vill säga hur man får den säker, snabb och laglig. Målsättningen med säker är att alla bilder ska krypteras från klienten till servern, snabb att krypteringen inte får ta för lång tid och laglig att tillhandahållaren av applikationen inte ska hållas ansvarig för de bilder som ligger på servern. För att se vad som används idag (2010) för kryptering av bilder undersöktes Facebook, Flickr, Dropbox, KeepIt och Storegate. Facebook och Flickr gör ingen kryptering alls, medan Dropbox, KeepIt och Storegate använder SSL samt AES. Tre varianter av bildkryptering har undersökts, nämligen: 3D Chaotic Baker Maps, Advanced Encryption Standard (AES) samt Faber-Schauder Multivalue Transform (FMT) med AES. Då de flesta bilder redan är komprimerande i ett annat format än FTM, så finns det ingen anledning till varför man bör använda FMT med AES. 3D Chaotic Baker Maps är snabbare på att kryptera okomprimerade bilder än AES, men när det kommer till komprimerande bilder så är AES snabbare. Då 3D Chaotic Baker Maps uppfanns 2006 så är den inte en lika välkänd samt välbeprövad algoritm som AES och det är därför rekommenderat att använda AES. Huvudtanken för att få krypteringsdelen att gå fortare är att göra den på klientsidan. Då kommer användare inte behöva dela på serverresurser för att få kryptera bilderna. Secure Socket Layer (SSL) och Transport Layer Security (TLS) undersöktes för överföringen mellan server och klient. Det är inte mycket som skiljer de båda protokollen åt och det finns inte några direkta konkurrenter till dem heller. Vilken man väljer att använda spelar ingen större roll men att man bör använda en av dem är självklart ifall man vill uppnå säker överföring mellan klient och server. Det finns två lagar som pratar om ansvarsfrihet när det kommer till att bilderna lagras på tillhandahållarens server. Den första är lagen om ansvar för elektroniska anslagstavlor, som säger att den som tillhandahåller en elektronisk anslagstavla bör ha rimlig uppsikt över att den inte innehåller olagligt material (till exempel hets mot folkgrupp och brott mot upphovsrätten). Den andra lagen är E-handelslagen som innehåller bestämmelser om hur mellanhänder som bedriver verksamhet av rent teknisk karaktär inte ska kunna hållas ansvariga för den information de vidarebefordrar eller sparar. Rättsläget är oklart då fall av den här karaktären inte har prövats i svensk domstol.

4 Encryption for online backup of pictures Abstract This thesis examines the elements that are important to an application that handles online backup of pictures. That is, how you make the application safe, fast and legal. The requirement of safe is that all pictures will be encrypted from client to server. Fast is that the encryption should not take too long and the legal part is that the provider of the application should not be held responsible for the images on the server. To see what is used today (2010) for encryption of images was examined Facebook, Flickr, Dropbox, KeepIt and Great Gate. Facebook and Flickr does not apply encryption, while Dropbox, KeepIt and Storegate are using SSL and AES. Three variants of image encryption have been investigated: 3D Chaotic Baker Maps, AES and the compression method FMT with AES. Since most images are already stored in a compressed format other than FMT, there is no reason why you should use FMT with AES. 3D Chaotic Baker Maps is faster to encrypt the uncompressed images than AES, but when it comes to compressed pictures AES is faster. Today most images are compressed so AES will be a faster choice. Also 3D Chaotic Baker Maps was invented in 2006 and is therefore not an equally well-known and well-tried algorithm as AES. Two good reasons why you should use AES. The main idea to get the encryption working faster is to do it on the client-side. In that case users do not need to share the server resources to encrypt the images. SSL and TLS was examined for transmission between server and client. There is not much that separates the two protocols and there are not any competitors to them either. What you choose to use is not essential but that you should use one of them is a must if you want to achieve secure transmission between client and server. There are two Swedish laws that raise the question of who is responsible for the pictures stored on the server. The first law lagen om ansvar för elektroniska anslagstavlor says that the provider of an electronic bulletin board should in some degree monitor that it does not contain illegal material (for example hate speech and copyright infringement). The second law Ehandelslagen contains the regulations for providers that have services of purely technical nature, should not be held responsible for the information they transmit or store. However, there are no direct court cases of similar nature and therefore it is unclear what the outcome would be for a case of this nature.

5 Innehållsförteckning 1. Bakgrund Syfte Mål Undersökning Vad används för att kryptera bilderna idag? Dropbox Storegate KeepIt Flickr Facebook Alternativ på krypteringsalgoritmer i morgon? Vem ansvarar för bildernas innehåll? Lagen om elektroniska anslagstavlor E-handelslagen Teori Krypteringsalgoritmer D Chaotic Baker Maps AES FMT följt av AES Säker överföring SSL TLS Metodik Resultat Vad används för att kryptera bilderna idag? Krypteringsalgoritmer Säker överföring Vem ansvarar för bildernas innehåll? Slutsatser...16 Bilagor 1. 3D Chaotic Baker Maps i C++ 2. AES i C++ 3. Bild-lista 4. Testvärden 5. Skärmdump proof-of-conceptapplikation 6. Akronymer

6 Förord I bilaga 6 finns en lista över akronymer som används i rapporten. Ett tips kan vara att riva ut denna sida och ha bredvid sig om man tycker det är jobbigt med alla akronymer. Förövrigt vill jag tacka Open Mind hos vilka jag har gjort mitt examensjobb och då främst min handledare på företaget Johan Fredsberg som har sett till att arbetet gått framåt. Att sitta på ett kontor har gjort mitt arbete mycket effektivare än om jag suttit hemma bland tv-spel, filmer och andra nöjen. Utan dem hade jag inte gjort klart det i förtid och klarat mig ekonomiskt under tiden. Detta examensjobb är helt specificerat av mig och även om vägen inte blev helt rak var roligt och intressant att få genomföra det.

7 1. Bakgrund Som datanörd får man ofta hjälpa gamla vänner och bekanta med deras datorproblem. Den uppgift jag oftast får är att återskapa bilder som har blivit raderade av misstag eller försvunnit när datorn har kraschat. Många tänker inte på att göra regelbundna backuper och det är ännu fler som inte riktigt vet hur eller har något bra sätt att göra det på. Bränna ut bilderna på skivor är nog den vanligaste lösningen men även en av de krångligaste, då skivorna inte är så pålitliga och hållbara. På senare år har många backup-tjänster kommit till online, StoreGate är ett exempel på en sådan sida. Även sidor som inte är gjorda för backup blir utnyttjade till det, ett exempel här är Facebook. Men många tycker att det inte känns tryggt att lägga upp sina privata bilder på nätet. Det är då inte bara aspekten av att man inte vet om de verkligen kommer finnas kvar där när man behöver dem, utan även att man inte vet vem som kan se dem. Det är här mitt examensjobb kommer in i bilden, kryptering av bilder vid online-backup. Jag skulle gärna se en applikation som är en blandning av Flickr och Storegate. Det vill säga en applikation där man både kan skapa och dela med sig av album med sina bilder, men även spara sina bilder säkert för att slippa tänka på backuphantering. 1

8 2. Syfte Syftet med detta examensjobb är att undersöka hur man kan utveckla en applikation för online-backup av bilder som är säker, snabb och laglig. Med säker menas att bilderna ska vara krypterade vid överföring mellan server och klient, samt att de ska sparas krypterat på servern. Hur åstadkommer man detta? Vad använder dagens sidor för online-backup av bilder? Vad ligger på ritbordet som kan revolutionera morgondagens kryptering av bilder? Då säkerhet är ett väldigt stort område så begränsas detta i examensjobbet genom att endast säkerheten mellan klient och server samt lagring på servern tas upp. Alltså inte säkerheten i klienten vid visning av bilderna. Då användare ofta är otåliga får applikationen inte ta orimlig tid på sig för att ladda upp eller ner bilder mellan server och klienten. Då kryptering är kostsamt i prestanda, vad finns det för alternativ till att få applikationen att flyta på bättre? Den juridiska delen innefattar att få reda på vem som ansvarar för bilderna som ligger på servern. Är det användaren som laddat upp dem eller är det tillhandahållaren av tjänsten? Då bilderna är krypterade från att de lämnar klienten så kan inte tillhandahållaren av tjänsten se vad bilderna föreställer. Skulle bilderna vara olagliga så är det bara användaren och dem han väljer att dela med sig bilderna med som skulle kunna se dessa. Detta kanske påverkar vem som får det slutgiltiga ansvaret för bilderna. 2

9 3. Mål Undersöka om sidor som Facebook, Flickr och Storegate krypterar användarnas bilder och i vilken utsträckning de gör det, vid lagring och/eller överföring. Vad använder de för krypteringsalgoritmer för att få det att gå tillräckligt fort men ändå vara säkert. Målet innefattar även att få veta vad man bör tänka på när det gäller vem som ansvarar för bilderna och hur man kan ge ansvaret till användaren. Med den kunskap som fås från detta examensjobb så ska man kunna veta hur man utvecklar en applikation för online-backup av bilder som är säker, snabb och laglig. 3

10 4. Undersökning 4.1 Vad används för att kryptera bilderna idag? Hur fem olika sidor hanterar lagring och överföring av bilder har undersökts. Tre sidor (Dropbox, Storegate och KeepIt) som är specialiserade på just backup och två sidor (Facebook och Flickr) som inte är gjorda för att användas till backup men som utnyttjas till det ändå Dropbox Dropbox är väldigt tydliga med på hur mycket de krypterar på sin hemsida. Detta har gjort så att de är de enda jag inte ens behövt försöka kontakta. De använder SSL för att överföra filerna säkert mellan klienten och servern. Filerna krypteras på klienten med AES-256 och sparas krypterade på servern [2] Storegate Storegate krypterar både överföringen och lagringen av filer hos dem. Överföringen görs som vanligt via SSL [3]. För att få reda på vad för krypteringsalgoritm som används vid kryptering på hårddisken kontaktades Storegate och följande svar mottogs: Den information som finns ute på den publika hemsidan är den vi har valt att informera om. Annars har vi som policy att aldrig kommentera detaljerna kring säkerhetslösningarna i våra system. Av hänsyn till våra kunder avslöjar vi inte hur och var informationen lagras KeepIt Det enda KeepIt säger på sin hemsida är att de använder en 256 bitars krypteringsnyckel för att kryptera filerna på sina hårddiskar [1]. Men vid mailkontakt berättade de att de använder 256 bitars AES för att kryptera informationen på klienten. Sedan skickas detta till servern krypterat med 128 bitars AES för att sedan spara den redan krypterade informationen Flickr Flickr har inte någon information på sin hemsida om hur de överför eller lagrar bilderna, samt hur man kan kontakta dem. Så genom att skapa ett Flickr-konto och ladda upp ett par bilder samtidigt som all utgående trafik från datorn undersöktes utav Wireshark [8], kunde man se att ingenting skickades över SSL och att bilderna skickades helt okrypterat över TCP. När det kommer till hur de sparar bilderna har jag inte lyckats få fram någon information Facebook Facebook har precis som Flickr ingen information om detta på sin hemsida. Därför användes Wireshark även här för att se om bilderna överfördes med SSL. Efter en hel del letande bland all data så kom jag fram till att även Facebook skickar bilderna okrypterat, det går det vill säga ingen trafik över SSL. Man kan även ta länken till godtycklig bild och öppna den separat utan att vara inloggad på Facebook. Detta visar på att Facebook inte sparar bilderna krypterat eftersom ingen inloggning krävs för att se bilden. 4

11 4.2 Alternativ på krypteringsalgoritmer i morgon? Vid sökning efter en algoritm speciellt designad för att kryptera bilder så fanns det inte så många olika förslag. De flesta sidor nämner AES i något speciellt läge eller med komprimering före. Dock var det en artikel som stack ut från mängden. Den introducerar krypteringsalgoritmen kallad 3D Chaotic Baker Maps som är specialiserad just för att kryptera bilder. Mer om hur denna algoritm fungera och varför den är bra på just kryptering av bilder går att läsa i kapitel Vem ansvarar för bildernas innehåll? Vid rådfrågning av juriststuderande Matilda så var svaret att det finns inget liknande fall där det handlar om krypterade bilder i Sverige och därför är det svårt att säga vem som har ansvaret. Dock kunde hon tänka sig att man skulle kunna åberopa två lagar för göra anspråk på ansvarsfrihet Lagen om elektroniska anslagstavlor Lag (1998:112), om ansvar för elektroniska anslagstavlor, säger att den som tillhandahåller en elektronisk anslagstavla ska i rimlig omfattning ha uppsikt över anslagstavlan och ta bort meddelanden som strider mot lagen. De meddelanden det gäller är uppvigling, hets mot folkgrupp, barnpornografibrott, olaga våldsskildring och brott mot upphovsrätten [13]. Att inte ta bort de meddelanden som strider mot lagen är straffbart, både när det sker med uppsåt eller av oaktsamhet. Lagen tar hänsyn till att den elektroniska anslagstavlan kan bli orimligt stor för att kräva att tillhandahållaren aktivt ska kontrollera alla meddelandena. I dessa fall räcker det att användaren kan påtala förekomsten av olagliga meddelanden på en så kallad klagomur och att tillhandahållaren då bedömer och vidtar åtgärder mot dessa meddelanden omedelbart E-handelslagen E-handelslagen innehåller bestämmelser för hur mellanhänder som bedriver vissa verksamhetstyper av rent teknisk karaktär inte ska kunna hållas ansvariga för sådan information som de vidarebefordrar eller lagrar. Frihet från ansvar stadgas i e-handelslagen till att omfatta tre typer av tjänster [14]: 1. Ansvarsfrihet för sådan tjänsteleverantör som enbart vidarebefordrar information. Exempel på sådana tjänster är Internet access eller e-postsystem. 2. Ansvarsfrihet för viss tillfällig information i samband med överföring av information (cachning). 3. Ansvarsfrihet vid tillhandahållande av lagringsutrymme för information i funktion av värdtjänster. Värdtjänster motsvarar i allt väsentlighet begreppet elektronisk anslagstavla. Verksamheten behöver även vara rent teknisk, automatisk och av passiv natur för att ansvarsfriheten ska gälla. Med andra ord tjänsteleverantören får inte kontrollera eller ha kännedom om informationen och kan därigenom heller inte ändra eller sortera den [19]. 5

12 5. Teori 5.1 Krypteringsalgoritmer Kryptering av enbart bilder skiljer sig lite från att kryptera annan data. Detta på grund av att bilder oftast är stora och att intilliggande pixlar i bilderna har samma eller liknande värden. För att undvika homogena fält i bilder så kan man komprimera dem. Bildkomprimeringsalgoritmer söker just efter områden där pixlarna är homogena, för att kunna minska på mängden data som behövs för att spara bilden. Eftersom detta påverkar mängden data så påverkar det även krypteringstiden för bilden. Komprimeringen tar då även tid men den är försumbar mot tiden det tar att kryptera den mängd data som komprimeras bort D Chaotic Baker Maps Det som gör att kaos-baserade algoritmer passar för bildkryptering är att två liknande indata divergerar fort, detta kallas för avalanche effect, då en liten ändring i indata får lavinartad ändring i utdata [17]. I bild 1 kan man se denna effekt då bilden föreställande Lena krypteras med nyckel och sedan dekrypteras med samma nyckel och med en nyckel där den minst signifikanta biten har ändrats. Bild 1 - Bilderna illustrerar hur stor skillnaden blir genom att bara försöka dekryptera med en nyckel som är snarlik den som bilden krypterades med. Detta fås i denna algoritm genom omvandlingen från 2D data till 3D data samt Baker mappningen. Omvandlingen från 2D data till 3D data ger en bra blandning av indatan. Baker-mappningen är ett antal matematiska funktioner som beräknas på kuber av den omvandlade datan [15]. Bild 2 visar hur bilddatan divergerar efter Baker-mappningen. Den vänstra grafen föreställer de intilliggande pixlarnas samband i färg före kryptering av bilden Lena. Den högra grafen föreställer samma sak fast efter kryptering. 6

13 Bild 2 - Bilderna visar sambandet mellan två horisontellt intilliggande pixlar. Den vänstra bilden är för den okrypterade bilden och den högra är för den krypterade bilden. 3D Chaotic Baker Maps algoritmen går till på följande sätt: 1. Dela upp 128 bitars nyckeln till 3 st 24 bitars flyttal, ett 24 bitars heltal och 2 st 16 bitars heltal. 2. Bildens pixlar omvandlas till ett 3D objekt (en kub). Om H är höjden och W är bredden på bilden så ska M*N*L = W*H, där M är bredden, N är höjden och L är djupet på kuben. 3. Baker-mappningen körs över den staplade bilden, med nyckeln. 4. Sprid ut data med hjälp av en inverterbar funktion som använder sig av två tal från nyckeln. Ett av talen används som seed (24 bitars flyttal) och ett som antalet rundor som funktionen körs (16 bitars heltal). 5. Iterera över steg 3 och 4, antalet iterationer bestäms ifrån nyckelns sista värde (ett 16 bitars heltal). 6. Platta ut 3D objektet till en 2D bild, som nu är krypterad. Nyckellängden som används är 128 bitar, detta anses kunna motstå bruteforce attacker då det ger 4*10 38 olika nycklar [17]. Simulationer visar att medelhastigheten vid kryptering och dekryptering är 1,2 MB/s och kan nå upp till 2,8 MB/s på en 1 GHz Pentium IV dator [15]. Då 3D Chaotic Baker Maps koden inte är tillgänglig för allmänheten finns endast vissa delar av implementationen av algoritmen i C++ i bilaga 1. Vill man prova algoritmen själv finns det DLL-filer att ladda ner på skaparnas hemsida [11] AES Advanced Encryption Standard började tas fram 1997 för att ersätta DES (Data Encryption Standard) släpptes standarden som en FIPS och har sedan dess används världen över. AES är ett blockkrypto som kan köras med tre olika nyckellängder 128, 192 eller 256 bitar. Den innehåller iterativa steg och antalet rundor i dessa beror på vilken nyckel man väljer, 10, 12 respektive 14 [21 s.102]. Det finns ett antal olika lägen man kan köra AES i. ECB (Electronic Codebook) vilket är standarden för AES och betyder helt enkelt att man krypterar block av indatan helt oberoende på varandra. Detta läge har uppenbara svagheter för kryptering av bilder då två identiska indatablock kommer att bli två identiska kryptoblock, identiska indatablock är rätt vanligt vid bilder. På bild 3 kan man se detta fenomen samt skillnaden när man kör i CBC (Cipher Block Chaining) läge. I CBC läge gör man XOR mellan ett kryptoblock och det nästkommande indatablocket. Detta resulterar i att alla block utom det första beror på ett annat 7

14 block. Det första beror på en så kallad initialiseringsvektor, som innehåller slumpdata. CFB (Cipher Feedback) och OFB (Output Feedback) är två lägen som går ut på att man tar hjälp av en ström av nycklar. Det vill säga att man använder olika nycklar för olika block, vilket resulterar i att AES blir mer likt ett strömkrypto. När det kommer till säkerheten i bildkryptering så hjälper detta avsevärt, då två kryptoblock inte längre kan få samma värde. Bild 3 Här ser man tydligt säkerhetsproblemet med att bara köra AES i standard ECB läge. Samt skillnaden att köra AES i CBC läge. AES kryptering i ECB läge går till på följande sätt: 1. Initierar en variabel State som innehåller klartexten i block. Dessa kör man XOR på med RoundKey (tas ifrån huvudnyckeln). 2. För antalet rundor (10,12 eller 14) minus ett, gör följande på State; applicera en S-box (en matris med fördefinierade värden), skifta raderna, blanda kolumnerna och applicera RoundKey:n. 3. Applicera en S-box, skifta raderna och applicera RoundKey:n. 4. Definiera kryptotexten som State-blocken I bilaga 2 så finns det en implementation av AES i C-kod skriven för Kattis [9] FMT följt av AES Om man inte vill köra AES i något speciellt läge eller vill att sannolikheten för att få två identiska kryptoblock ska bli ännu mindre, så kan man först tillämpa FMT (Faber-Schauder Multi-scales Transformation) även känd som Faber-Schauders Wavelet Transformation. FMT eliminerar konstanta och linjära samband mellan intilliggande data, vilket medför att bilderna blir komprimerade [18]. Det vill säga, istället för att förvränga i krypteringen så förvränger man i indata. Man kan förklara FMT så att den räknar ut skalor med ett antal aritmetiska funktioner över de olika pixlarnas värden. Man tar sedan en pixel i en skala och beräknar skillnaden mellan den och de intilliggande pixlarna i den föregående skalan [16]. Områden som uppvisar en lokal topp för dessa skillnader motsvarar en 8

15 starkt lysande övergång för de grå värdena, medan övriga områden är de områden där nivån för grå är konstant. Se bild 4 för en av FMT skalorna av bilden Lena. Vilket gör att man kan även använda FMT till så kallad kantavkänning. Detta är inget som behandlas i denna rapport, men man kan även se den effekten i bild 4. Bild 4 - Till vänster är originalbilden, till höger är bilden i en av skalorna från FMT:n. Vid jämförelse mellan kompression av FMT och JPEG så är kompressions-nivån liknande och FMT har fördelen av att inte försämra bilden lika mycket. JPEG bygger på DCT transformation som tar block av pixlar [16]. Detta gör att bildens storlek måste vara delbar med den blockstorlek som DCT använder annars kommer bilden försämras, då pixlarnas omfång måste ändras. Man kan tänka sig att man viker ett papper för att komprimera det, när man sedan viker upp pappret så har man ett veck som har försämrats papprets fina yta. FMT omvandlar bildinformationen endast med hjälp av aritmetiska operationer, så den behåller pixlarnas omfång även efter transformationen [18]. Det är detta som gör att bilden inte kommer att försämras på samma sätt som vid JPEG kompression. När FMT är implementerat så är det bara att köra AES precis som vanligt. Hastigheten för denna variant ligger då på cirka 0,5 MB/s på en 1 GHz Pentium IV dator [16]. 5.2 Säker överföring För att åstadkomma säker överföring finns det egentligen bara två metoder att välja på och de är väldigt lika, SSL och TLS. Man kan självklart implementera sin egen metod eller bara kryptera all data hos klienten och sedan dekryptera den hos servern. Men då kanske användaren inte känner sig lika säker, samt att man måste testa sin säkerhet mot att bara köra SSL eller TLS och veta att det är flera som står bakom den säkerheten. 9

16 5.2.1 SSL SSL (Secure Socket Layer) utvecklades av Netscape och är idag en vanlig metod att använda för att åstadkomma säker överföring mellan två datorer. Tanken är att all information som går mellan de två datorerna ska vara krypterad, så att ingen annan kan manipulera eller avlyssna det som skickas. SSL hjälper även till med att identifiera den dator man vill kommunicera med [20 s.41]. Detta för att man ska undvika Man in the middle -attacker eller rent lurendrejeri. En av SSL:s fördelar är att informationen skickas oförändrad mellan datorerna, vilket gör så att nästan alla protokoll som kan köras över TCP kan även köras över SSL. Det protokollet som används mest med SSL är HTTP [20 s.51] som vid användning med SSL kallas för HTTPS, där det tillagda S:et står för secure. Bild 5 - Hur en SSL handskakning går till. För att initiera en säker SSL-anslutning så gör man en så kallad handskakning. Där klienten och servern hälsar på varandra och utbyter nödvändig information. Bild 5 visar hur handskakningen går till samt vad som skickas mellan servern och klienten. Detta gör så att man kan autentisera servern samt komma överens om de nycklar som man behöver för att kunna kryptera informationen som ska skickas. Informationen som ska skickas delas upp i mindre delar som sedan krypteras och skickas var och ett för sig. Innan varje del krypteras lägger man till något som kallas MAC (Message Authentication Code). MAC:en är där för att ge varje del integritet och autenticitet, detta gör den genom att köra informationen genom en hash-funktion som tar in en nyckel (känd av mottagaren). När mottagaren sedan har dekrypterat informationen kan han köra samma hash-funktion med samma nyckel och sedan jämföra den MAC som skickades med med den han skapade [20 s.61]. I bild 6 visas hur SSL paketen byggs upp från data. 10

17 Bild 6 - SSL paketens uppbyggnad från den data som skickas. Säkerheten i SSL beror på ett antal parametrar, dessa bör därför hållas i tryggt förvar och vara noggrant valda. Exempel på sådana parametrar är: serverns privata nyckel, använda en bra slumptalsgenerator vid handskakningen, kontrollera och lita endast på godkända certifikat samt välja en bra krypteringsalgoritm [20 s.140]. SSL är inte så snabbt som man skulle önska. Beroende på protokoll som används, serverhårdvara och nätverket så kan SSL anslutningar vara 2 till 100 gånger långsammare än vanliga TCP-anslutningar [20 s.175]. Att undvika prestandaförsämringar vid användning av SSL är omöjligt då all information som ska skickas måste krypteras, vilket är en beräkningstung process. En annan faktor som tar tid är handskakningarna, men även här är det kryptering och dekryptering som tar mest tid. Handskakningen sker endast en gång per anslutning så den tidskostnaden är oftast försumbar TLS TLS är IETF standard som utvecklades från SSLv3 och de två protokollen är väldigt lika [6]. De två största skillnaderna är att TLS är bakåtkompatibelt med tidigare versioner av SSL, det vill säga den kan skala ner till en mindre säker version ifall klienten inte stödjer TLS. TLS var inte bakåtkompatibelt från början, anledningen till att detta kom till var att TLS krävde trippel DES kryptering (3DES). Enligt Amerikansk lag så var det förbjudet att exportera kryptografi starkare än 40 bitar (3DES har 56, 112 eller 168 bitars nyckel [10]). Detta gjorde att man antingen kunde köra TLS inom USA med 3DES, eller inte köra 3DES och då kunna använda applikationen internationellt [20]. Den andra skillnaden är att TLS inte bara kan skicka trafik i säkert läge. TLS gör sin handskakning helt öppet och skulle något gå fel så avbryts anslutningen. Detta gör att man kan ha både säkra och osäkra anslutningar på samma port [7] (detta kan alltså inte SSL). SSL är det protokoll som används mest av de båda, detta på grund av historiska skäl. Det kom först och blev implementerat i HTTPS och används fortfarande där. 11

18 6. Metodik AES i CBC läge samt 3D Chaotic Baker Maps har testats för att se hur hastigheterna skiljer sig för de båda algoritmerna. Se bilaga 3 för en lista över de bilder som har krypterats. Varje bild har testats i fyra olika format: BMP, JPEG, PNG och TIF. Där TIF och BMP är okomprimerade till skillnad mot JPEG och PNG som är komprimerade. Det är olika bilder för olika upplösningar detta mest för att det var lättare att hålla koll på vilken bild som hade vilken upplösning. Upplösningarna är 800x600, 1024x768 samt 2048x1536. Tiden mättes under att varje enskild bild krypterades och dekrypterades, detta upprepades sedan tio gånger för att få en bättre bild av mätdatat. Allt testades på en Intel Core i3 M GHz, 3,68 GB RAM dator. Det ska noteras att endast prestanda i tid testas för de båda algoritmerna, det vill säga inga säkerhetstest. En proof-of-concept applikation har även utvecklats i Silverlight, där C#:s standardimplementation av AES användes för att kryptera bilderna. Här testades att ladda upp bilder i klump samt var eventuella flaskhalsar kan uppstå i applikationen. I bilaga 5 finns en skärmdump av applikationens utseende. 12

19 Krypteringstid (ms) 7. Resultat 7.1 Vad används för att kryptera bilderna idag? De sidor som är utvecklade för backup (KeepIt, Storegate och Dropbox) krypterar både överföring och lagring av datan. Eftersom det inte bara är bilder som lagras hos dem så krypteras informationen av olika AES varianter då det är en säker krypteringsalgoritm på all typ av data. Överföringen görs med SSL hos alla tre sidorna, vilket inte är så förvånande då detta är en välkänd och bra metod för att överföra data säkert. Facebook och Flickr är inte gjorda för att användas som backup för bilder och därför bryr de sig inte om att kryptera. Det skulle dessutom kosta resurser för att erbjuda sina användare kryptering av bilder, vilket de troligtvis inte vill spendera. Bilderna sparas i orginalstorlek på servern men för att minska på datatrafiken så förminskar Facebook och Flickr bilderna. Detta medför att de inte används för backup i samma utsträckning som om man kunde spara bilderna i deras originalstorlek. 7.2 Krypteringsalgoritmer Här följer ett urval av de diagram som skapades utifrån resultaten av testen som beskrevs i metodikkapitlet. Alla diagram och mätvärden finns att se i bilaga 4. Det man kan se genomgående i alla diagrammen är att AES prestanda varierar mer beroende på komprimeringsformatet medan 3D Chaotic Baker Maps (Baker) har liknande mätvärden oberoende på komprimeringsformat. Detta beror på att AES bygger på att man krypterar datan, alltså kommer de format som är mindre komprimerade ta mer tid än de andra. Baker håller bara på med pixelomvandling och baseras därför på bildstorleken och inte filstorleken. Alltså går Baker fortare än AES för råformat så som BMP och TIF, men för format som är komprimerade hårt (JPG i detta test) så vinner AES. Med PNG, som är lite lättare komprimerad, skiljer inte så mycket i tid mellan Baker och AES Testnr. AES BMP AES JPG AES PNG AES TIF Baker BMP Baker JPG Baker PNG Baker TIF Diagram 1 Penguins 800x600 13

20 Krypteringstid (ms) Krypteringstid (ms) AES BMP AES JPG AES PNG AES TIF Baker BMP Baker JPG Baker PNG Baker TIF Testnr. Diagram 2 Jellyfish 1024x AES BMP AES JPG AES PNG AES TIF Baker BMP Baker JPG Baker PNG Baker TIF Testnr. Diagram 3 Hydrangeas 2048x1536 I proof-of-concept applikationen testades det att ladda upp 10, 100 och 1000 bilder. Flaskhalsar som observerades var att om man tog hand om alla bilder på en gång i applikationens egen tråd, så kraschade webbläsaren som Silverlight applikationen kördes i. Lösningen på denna något självklara flaskhals var att initiera en ny tråd som hanterade uppladdningen av bilderna. Denna tråd itererade över bilderna och läste in, krypterade samt skickade iväg en bild i taget. Detta ledde till att man kan utnyttja köer i vid krypteringen, webbservicen och databasen. Man skulle kunna tänka sig att använda mer än en tråd och parallellisera hela processen, detta skulle hjälpa vid tillfällen då man laddar upp många bilder. Men då skulle köerna till webbservicen växa snabbare, vilket kan bidra till en ny flaskhals. Att ladda upp 100 bilder i storleken 1024x768 med JPG komprimering, med en total storlek av cirka 60 MB, tog cirka 35 s på en Intel Core i3 M GHz, 3,68 GB RAM dator. Hur applikationen ser ut under uppladdning kan ses i bild 7 nedan. När man använder sig av en extra tråd samt köer så blir tiden för krypteringen av varje bild densamma, oavsett hur många bilder man väljer att ladda upp. Denna tid låg på cirka 0,050 s/bild för bilder av på samma dator som ovan, det vill säga totalt cirka 5 s för alla hundra bilderna. 14

21 Bild 7 I väntan på att 100 bilder ska laddas upp till applikationen visas en laddningsruta där man bland annat ser en progressbar över hur stor del av bilderna som är klara. Totalt tog uppladdningen cirka 35 s varav 5 s bestod av krypteringen. 7.3 Säker överföring Det är inte mycket som skiljer SSL och TLS från varandra, men en sak är klar och det är att det inte finns något som konkurrerar med dem för säker överföring. Idag är SSL vanligast vid HTTP och detta av mest av historiska själ då SSL kom före. Många böcker och artiklar lägger in TLS under SSL, så när de skriver om SSL kan de lika gärna syfta på TLS också. Så lite skiljer det mellan de båda. Strävar man efter säker överföring är SSL eller TLS ett måste. 7.4 Vem ansvarar för bildernas innehåll? Det finns inget direkt liknande fall där man just hanterar krypterade bilder men de lagar kapitel 4.4 nämner är de lagar som bäst stämmer in på denna fråga. Den tänkta bild-backuptjänsten som diskuteras i detta examensarbete kommer att erbjuda tre funktioner som stämmer in på dessa lagar. De är: 1. Anslagstavla i form av att du ska kunna dela med dig av dina album med hjälp av lösenord och länk. 2. Passiv tjänst, då användaren själva laddar upp bilderna. 3. Att tillhandahållaren av tjänsten inte vet vad bilderna innehåller. Det man bör göra för att kunna åberopa ansvarsfrihet är följande saker: 1. Implementera en så kallad klagomur där användare av tjänsten kan informera tillhandahållaren om olagligheter. 2. Inte modifiera eller sortera den data som användaren lagrar med hjälp av tjänsten. 3. Se till att hela tjänsten är en passiv tjänst, det vill säga användaren måste aktivt ladda upp sina bilder. 4. Se till att användaren blir informerad om vad som inte är tillåtet, samt att tillhandahållaren förbehåller sig rätten att ta bort eventuella bilder utan förvarning. Eftersom det inte har funnits fall av liknande karaktär vid en domstol är detta lite av en gråzon i den svenska lagen. 15

22 8. Slutsatser Skillnaden i tid det tar för att kryptering och dekryptering med AES respektive 3D Chaotic Baker Maps varierar beroende på filstorlek och bildstorlek. Och visst kan man se en fördel för 3D Chaotic Baker Maps när det kommer till bilder som är lite eller icke komprimerade, men algoritmen faller på sin okändhet och att de flesta bilder oftast sparas komprimerade. AES är en standard som är välkänd och välanvänd, vilket innebär att säkerheten är bättre testad och övervakad. Även är det faktum att fler användare troligen känner till AES före 3D Chaotic Baker Maps är viktig då det är användaren som ska känna sig trygg att ladda upp sina bilder. AES är alltså det rekommenderade alternativet när det gäller att kryptera bilderna. I kapitel 7.2 stod det att läsa att medeltiden för att kryptera en 1024x768 bild med C#:s version av AES var 0,049 s/bild på den datorn. Varför krypterar inte då fler sidor bilderna? Det man måste tänka på här är att Silverlight applikationen som testades i kapitel 7.2 krypterar bilderna på klientens dator och skickar dem till servern. Detta är möjligt tack vare att Silverlight kör C# i bakgrunden och är en webbapplikation som laddas ner till webbläsaren och körs på klientdatorn. Facebook finns i många former och flera av dem har inte stöd att köra AES kod på klienten. Det resulterar i att de skulle behöva kryptera bilderna på servern och det är då det blir kostsamt för deras del. Att köra FMT innan AES är inte helt aktuellt då de flesta använder JPEG eller PNG format redan innan de laddar upp bilderna. Detta skulle då endast resultera i onödigt arbete som tar tid. Dessutom har JPEG så kallad EXIF taggar där information som till exempel kameramodell och datum då bilden togs sparas. Denna information går man miste om när man använder FMT. När det kommer till överföringen kvittar det fullständigt om man väljer TLS eller SSL. De är så lika att i de flesta böcker och artiklar syftar man till båda när man skriver om SSL. SSL är en självklarhet för den här aktuella applikationen. Vad man måste göra för att garanterat få ansvarsfrihet kan man inte säga. Det finns många möjligheter som skulle kunna åberopas vid eventuell dom. Däremot är sannolikheten liten att någon utomstående skulle upptäcka eventuella brottsligheter då bilderna alltid är krypterade förutom när de visas på användarens skärm. 16

23 Litteraturförteckning Webbsidor Adress Information hämtad [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] Artiklar [15] M. Yaobin et al, A Novel Fast Image Encryption Scheme Based On 3D Chaotic Baker Maps, International Journal of Bifurcation and Chaos, Vol. 14 No. 10 (2004) , World Scientific Punblishing Company [16] M. Benabdellah et al, Encryption-Compression of Images Based on FMT and AES Algorithm, Applied Mathematical Sciences, Vol. 1 No. 45 (2007) , Université Mohamed V Agdal [17] X. Tong et al, Image encryption scheme based on 3D baker with dynamical compound chaotic sequence cipher generator, Signal Processing 89 (2009) , Elsevier B.V. [18] H. Douzi et al, Faber-Schauder Wavelet Transform, Application to Edge Detection and Image Characterization, Journal of Mathematical Imaging and Vision 14 (2001) , Kluwer Academic Publishers [19] J. Jacobsson, Internetauktioners ansvar för de objekt som säljs via tjänsten, Juridiska fakulteten vid Lunds universitet, 2009

24 Böcker [20] E. Rescorla, SSL and TLS Designing and Building Secure Systems, Addison Wesley 2001, ISBN [21] D. Stinson, Cryptography Theory And Practice, Third Edition, Chapman & Hall/CRC 2006,ISBN

25 Bilagor Bilaga 1, 3D Chaotic Baker Maps i C++ /* permute a vector with random number A --- resource array length_of_a --- length of vector A seed --- random seed times --- times of permutation Example: Permute_N_Point([1,2,3,4,5], 80, 3); result:[ ] */ void Permute_N_Point( int * A, int length_of_a, unsigned int seed, int times) { int t, i, Pos, tmp; unsigned int seed1; seed1 = seed; for ( t = 0; t < times; t++) { srand(seed1); seed1 = rand(); for ( i = 0; i < length_of_a; i++) { Pos = rand() * i/rand_max; tmp = A[i]; A[i] = A[Pos]; A[Pos] = tmp; return; /* from 2D to 3D */ /* get WxLxH from a WidthxHeight image */ void Get_2D_to_3D_parameters( int width, int height, /* original 2D image's width and height*/ int * W, int * L, int * H, /* decomposed W(idth),L(ength) and H(eight) of a cube */ int seed_key, int shuffle_times) /* two keys represent seed and shuffle times respectively */ { int * data; FACTOR_LIST * lst; int n, tmp; n = width * height; lst = creat_factor_list(); int num = get_factors( n, lst); data = new int [num]; num = get_all_factors( lst, data ); lst = delete_all_element(lst); Permute_N_Point( data, num, seed_key, shuffle_times); * W = 1; * L = 1; * H = 1; for (int i = 0; i < num; i = i+3) { * W = (* W) * data[i]; if ( (i+1) < num ) * L = (* L) * data[i+1]; if ( (i+2) < num ) * H = (* H) * data[i+2]; delete data; if ( (*W) < (*H) ) { tmp = *W; *W = *H; *H = tmp; if ( (*L) < (*H) ) {

26 tmp = *L; *L = *H; *H = tmp; return; #define MAX_INTERVAL 30 void key_generation(char * key, int length, int width, int colors, int * key_l, int * num_key_l, int * key_w, int * num_key_w, double * logistic_key, int * XOR_key, int * seed_key, int * shuffle_times) { double Lo1; int remain, key_counter,tmp, Interval, i; char tp; /* generate key_l */ Lo1 = ((key[0]* key[1])* key[2])/ ; if ( (Lo1 <= 0) (Lo1 >=1) (Lo1 == 0.5) ) Lo1 = ; /* three bad point 0,1 and 0.5 */ for (i = 0; i < 50 + key[0]; i++) Lo1 = 4.0*Lo1*(1.0-Lo1); remain = length; Interval = remain > MAX_INTERVAL? MAX_INTERVAL : remain; key_counter = 0; do { do { Lo1 = 4.0*Lo1*(1.0-Lo1); while( (Lo1<0.2) (Lo1>0.8) ); Interval = remain > MAX_INTERVAL? MAX_INTERVAL : remain; tmp = (int)(interval*(lo1-0.2)/0.6); if ( tmp > 0 ) { key_l[key_counter] = tmp; remain = remain-key_l[key_counter++]; while( remain>1 ); if (remain == 1) key_l[key_counter++] = remain; * num_key_l = key_counter; /* generate key_w */ Lo1 = ((key[3]* key[4])* key[5])/ ; if ( (Lo1 <= 0) (Lo1 >=1) (Lo1 == 0.5) ) Lo1 = ; /* three bad point 0,1 and 0.5 */ for (i = 0; i < 50 + key[3]; i++) Lo1 = 4.0*Lo1*(1.0-Lo1); remain = width; Interval = remain > MAX_INTERVAL? MAX_INTERVAL : remain; key_counter = 0; do { do { Lo1 = 4.0*Lo1*(1.0-Lo1); while( (Lo1<0.2) (Lo1>0.8) ); Interval = remain > MAX_INTERVAL? MAX_INTERVAL : remain; tmp = (int)(interval*(lo1-0.2)/0.6); if ( tmp > 0 ) { key_w[key_counter] = tmp; remain = remain-key_w[key_counter++]; while( remain>1 ); if (remain == 1) key_w[key_counter++] = remain; * num_key_w = key_counter; /* generate logistic_key */ Lo1 = ((key[6]* key[7])* key[8])/ ; if ( (Lo1 <= 0) (Lo1 >=1) (Lo1 == 0.5) ) Lo1 = ; /* three bad point 0,1 and 0.5 */ for (i = 0; i < key[6]; i++) Lo1 = 4.0*Lo1*(1.0-Lo1); * logistic_key = Lo1; /* generate XOR key */

27 switch(colors) { case 2: tp = key[9] ^ key[10] ^ key[11]; tp = (tp&0x0f) ^ ((tp&0xf0)>>4); tp = (tp&0x03) ^ ((tp&0x0c)>>2); * XOR_key = (tp&0x01) ^ ((tp&0x02)>>1); break; case 16: * XOR_key = (key[9]&0x0f) ^ ((key[9]&0xf0)>>4) ^ (key[10]&0x0f) ^ ((key[10]&0xf0)>>4) ^ (key[11]&0x0f) ^ ((key[11]&0xf0)>>4); break; case 256: * XOR_key = key[9] ^ key[10] ^ key[11]; break; case 24: default: * XOR_key = ((int)(key[9])*256 + key[10])*256 + key[11]; break; /* generate seed_key */ * seed_key = (int)(key[12])*256+key[13]; /* generate shuffle_times */ * shuffle_times = (int)key[14]+key[15]; if ((*shuffle_times) < 5) * shuffle_times = 5; /* permute key_l and key_w */ Permute_N_Point( key_l, * num_key_l, (unsigned int) * seed_key, * shuffle_times); Permute_N_Point( key_w, * num_key_w, (unsigned int) * seed_key, * shuffle_times); return;

28 Bilaga 2, AES i C++ #include <iostream> using namespace std; void keyexpansion(unsigned char *key, unsigned char *expandedkey); void chiper(unsigned char *block, unsigned char *expandedkey); void addroundkey(unsigned char *expandedkey, unsigned char *block, int round); void mixcolumns(unsigned char *block); void rotword(unsigned char *word, int steps); //Initiera den fina S-boxen char sbox[] = { 0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5,0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76, 0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0,0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0, 0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc,0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15, 0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a,0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75, 0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0,0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84, 0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b,0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf, 0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85,0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8, 0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5,0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2, 0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17,0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73, 0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88,0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb, 0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c,0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79, 0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9,0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08, 0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6,0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a, 0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e,0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e, 0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94,0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf, 0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68,0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16; //Förkalkulerad multiplicationstabellen för multiplication med 2 och 3 char mult2[256] = { 0x00,0x02,0x04,0x06,0x08,0x0a,0x0c,0x0e,0x10,0x12,0x14,0x16,0x18,0x1a,0x1c,0x1e, 0x20,0x22,0x24,0x26,0x28,0x2a,0x2c,0x2e,0x30,0x32,0x34,0x36,0x38,0x3a,0x3c,0x3e, 0x40,0x42,0x44,0x46,0x48,0x4a,0x4c,0x4e,0x50,0x52,0x54,0x56,0x58,0x5a,0x5c,0x5e, 0x60,0x62,0x64,0x66,0x68,0x6a,0x6c,0x6e,0x70,0x72,0x74,0x76,0x78,0x7a,0x7c,0x7e, 0x80,0x82,0x84,0x86,0x88,0x8a,0x8c,0x8e,0x90,0x92,0x94,0x96,0x98,0x9a,0x9c,0x9e, 0xa0,0xa2,0xa4,0xa6,0xa8,0xaa,0xac,0xae,0xb0,0xb2,0xb4,0xb6,0xb8,0xba,0xbc,0xbe, 0xc0,0xc2,0xc4,0xc6,0xc8,0xca,0xcc,0xce,0xd0,0xd2,0xd4,0xd6,0xd8,0xda,0xdc,0xde, 0xe0,0xe2,0xe4,0xe6,0xe8,0xea,0xec,0xee,0xf0,0xf2,0xf4,0xf6,0xf8,0xfa,0xfc,0xfe, 0x1b,0x19,0x1f,0x1d,0x13,0x11,0x17,0x15,0x0b,0x09,0x0f,0x0d,0x03,0x01,0x07,0x05, 0x3b,0x39,0x3f,0x3d,0x33,0x31,0x37,0x35,0x2b,0x29,0x2f,0x2d,0x23,0x21,0x27,0x25, 0x5b,0x59,0x5f,0x5d,0x53,0x51,0x57,0x55,0x4b,0x49,0x4f,0x4d,0x43,0x41,0x47,0x45, 0x7b,0x79,0x7f,0x7d,0x73,0x71,0x77,0x75,0x6b,0x69,0x6f,0x6d,0x63,0x61,0x67,0x65, 0x9b,0x99,0x9f,0x9d,0x93,0x91,0x97,0x95,0x8b,0x89,0x8f,0x8d,0x83,0x81,0x87,0x85, 0xbb,0xb9,0xbf,0xbd,0xb3,0xb1,0xb7,0xb5,0xab,0xa9,0xaf,0xad,0xa3,0xa1,0xa7,0xa5, 0xdb,0xd9,0xdf,0xdd,0xd3,0xd1,0xd7,0xd5,0xcb,0xc9,0xcf,0xcd,0xc3,0xc1,0xc7,0xc5, 0xfb,0xf9,0xff,0xfd,0xf3,0xf1,0xf7,0xf5,0xeb,0xe9,0xef,0xed,0xe3,0xe1,0xe7,0xe5; char mult3[256] = { 0x00,0x03,0x06,0x05,0x0c,0x0f,0x0a,0x09,0x18,0x1b,0x1e,0x1d,0x14,0x17,0x12,0x11, 0x30,0x33,0x36,0x35,0x3c,0x3f,0x3a,0x39,0x28,0x2b,0x2e,0x2d,0x24,0x27,0x22,0x21, 0x60,0x63,0x66,0x65,0x6c,0x6f,0x6a,0x69,0x78,0x7b,0x7e,0x7d,0x74,0x77,0x72,0x71, 0x50,0x53,0x56,0x55,0x5c,0x5f,0x5a,0x59,0x48,0x4b,0x4e,0x4d,0x44,0x47,0x42,0x41, 0xc0,0xc3,0xc6,0xc5,0xcc,0xcf,0xca,0xc9,0xd8,0xdb,0xde,0xdd,0xd4,0xd7,0xd2,0xd1, 0xf0,0xf3,0xf6,0xf5,0xfc,0xff,0xfa,0xf9,0xe8,0xeb,0xee,0xed,0xe4,0xe7,0xe2,0xe1, 0xa0,0xa3,0xa6,0xa5,0xac,0xaf,0xaa,0xa9,0xb8,0xbb,0xbe,0xbd,0xb4,0xb7,0xb2,0xb1, 0x90,0x93,0x96,0x95,0x9c,0x9f,0x9a,0x99,0x88,0x8b,0x8e,0x8d,0x84,0x87,0x82,0x81, 0x9b,0x98,0x9d,0x9e,0x97,0x94,0x91,0x92,0x83,0x80,0x85,0x86,0x8f,0x8c,0x89,0x8a, 0xab,0xa8,0xad,0xae,0xa7,0xa4,0xa1,0xa2,0xb3,0xb0,0xb5,0xb6,0xbf,0xbc,0xb9,0xba, 0xfb,0xf8,0xfd,0xfe,0xf7,0xf4,0xf1,0xf2,0xe3,0xe0,0xe5,0xe6,0xef,0xec,0xe9,0xea, 0xcb,0xc8,0xcd,0xce,0xc7,0xc4,0xc1,0xc2,0xd3,0xd0,0xd5,0xd6,0xdf,0xdc,0xd9,0xda, 0x5b,0x58,0x5d,0x5e,0x57,0x54,0x51,0x52,0x43,0x40,0x45,0x46,0x4f,0x4c,0x49,0x4a, 0x6b,0x68,0x6d,0x6e,0x67,0x64,0x61,0x62,0x73,0x70,0x75,0x76,0x7f,0x7c,0x79,0x7a, 0x3b,0x38,0x3d,0x3e,0x37,0x34,0x31,0x32,0x23,0x20,0x25,0x26,0x2f,0x2c,0x29,0x2a, 0x0b,0x08,0x0d,0x0e,0x07,0x04,0x01,0x02,0x13,0x10,0x15,0x16,0x1f,0x1c,0x19,0x1a; int main(){ //Läser in input från kattis och parsar och utför AES //Initiera variabler för nyckeln och den förlängda nyckeln som vi förkalkulerar //Nyckeln är 16 byte stor (128 bitar) och vi behöver använda //11 nycklar totalt i AES (när vi har 128 bitars nyckel) unsigned char key[16], expandedkey[11*16], block[16]; fread(((char*)key), 1, 16, stdin); //Förläng nyckeln i förväg så sparar vi tid senare keyexpansion(key, expandedkey);

29 //Kryptera blocken while(fread(((char*)block), 1, 16, stdin) == 16){ chiper(block, expandedkey); fwrite(((char*)block), 1, 16, stdout); //Förlänger nyckeln, tar in en pekare till nyckeln samt en till den förlängda nyckeln void keyexpansion(unsigned char *key, unsigned char *expandedkey){ //Initiera "roundconstants" till deras värden unsigned char RCon[] = {0x1,0x2,0x4,0x8,0x10,0x20,0x40,0x80,0x1B,0x36; //Initiera en tempvariabel unsigned char tmp[4]; //Den första delen ska vara självaste nyckeln for(int i=0; i<16; i++){ expandedkey[i] = key[i]; //För självaste expansionen gör följande for(int i=16; i<176; i+=4){ //Spara in de föregående 32 bytesen av nyckeln i tmp tmp[0] = expandedkey[i-4]; tmp[1] = expandedkey[i-3]; tmp[2] = expandedkey[i-2]; tmp[3] = expandedkey[i-1]; if(i%16 == 0){ //Rotera ordet med 1 åt vänster rotword(tmp, 1); //Tillämpa sboxen på ordet tmp[0] = sbox[tmp[0]]; tmp[1] = sbox[tmp[1]]; tmp[2] = sbox[tmp[2]]; tmp[3] = sbox[tmp[3]]; //Gör XOR med roundconstant //(eftersom bara första byten är satt i RCon så räcker det med tmp[0]) tmp[0] = tmp[0] ^ RCon[i/16-1]; //XOR mellan vårt temporära ord och ordet vi hade för 4 rundor sedan expandedkey[i] = expandedkey[i-16] ^ tmp[0]; expandedkey[i+1] = expandedkey[i-15] ^ tmp[1]; expandedkey[i+2] = expandedkey[i-14] ^ tmp[2]; expandedkey[i+3] = expandedkey[i-13] ^ tmp[3]; void chiper(unsigned char *block, unsigned char *expandedkey){ unsigned char word[4]; //Lägg runda nolls nyckel addroundkey(expandedkey, block, 0); //för alla rundor upp till 10 for(int round=1; round<10; round++){ //Tillämpa sboxen på blocket for(int b=0; b<16; b++) block[b] = sbox[block[b]]; //Förskjut raderna for(int w=0; w<4; w++){ word[0] = block[w]; word[1] = block[w+4]; word[2] = block[w+8]; word[3] = block[w+12]; rotword(word, w); block[w] = word[0]; block[w+4] = word[1]; block[w+8] = word[2]; block[w+12] = word[3]; //Tillämpa mixkolumns mixcolumns(block); //Lägg till rundans nyckel addroundkey(expandedkey, block, round);

30 //Tillämpa sboxen på blocket for(int b=0; b<16; b++) block[b] = sbox[block[b]]; //Förskjut raderna for(int w=0; w<4; w++){ word[0] = block[w]; word[1] = block[w+4]; word[2] = block[w+8]; word[3] = block[w+12]; rotword(word, w); block[w] = word[0]; block[w+4] = word[1]; block[w+8] = word[2]; block[w+12] = word[3]; //Lägg till sista rundans nyckel addroundkey(expandedkey, block, 10); //Lägg till rundans nyckel genom att XORa med den mot blocket void addroundkey(unsigned char *expandedkey, unsigned char *block, int round){ for(int c=0; c<16; c+=4){ block[c] = block[c] ^ expandedkey[c+(round*16)]; block[c+1] = block[c+1] ^ expandedkey[c+(round*16 + 1)]; block[c+2] = block[c+2] ^ expandedkey[c+(round*16 + 2)]; block[c+3] = block[c+3] ^ expandedkey[c+(round*16 + 3)]; //Utför mixakolumner från Fips void mixcolumns(unsigned char *block){ unsigned char block0, block1, block2, block3; for(int c=0; c<16; c+=4){ block0 = block[c]; block1 = block[c+1]; block2 = block[c+2]; block3 = block[c+3]; block[c] = mult2[block0] ^ mult3[block1] ^ block2 ^ block3; block[c+1] = mult2[block1] ^ mult3[block2] ^ block3 ^ block0; block[c+2] = mult2[block2] ^ mult3[block3] ^ block0 ^ block1; block[c+3] = mult2[block3] ^ mult3[block0] ^ block1 ^ block2; //Rotera ett ord steps antal steg void rotword(unsigned char *word, int steps){ //Initiera en tempvariabel unsigned char tmp; switch (steps){ case 1: tmp = word[0]; word[0] = word[1]; word[1] = word[2]; word[2] = word[3]; word[3] = tmp; return; case 2: tmp = word[1]; word[1] = word[3]; word[3] = tmp; tmp = word[2]; word[2] = word[0]; word[0] = tmp; return; case 3: tmp = word[0]; word[0] = word[3]; word[3] = word[2]; word[2] = word[1]; word[1] = tmp; return;

31 Bilaga 3, Bild-lista Bilderna Chrysanthemum och Penguins hade upplösningen 800x600 pixlar och 24 bitars färgdjup. Bilderna Jellyfish och Tulips hade upplösningen 1024x768 pixlar och 24 bitars färgdjup. Bilderna Hydrangeas och Koala hade upplösningen 2048x1536 pixlar och 24 bitars färgdjup. Bilderna är Windows 7 exempelbilder. Alla sex bilderna konverterades til BMP, PNG och Tif format från deras orginalformat jpg.

32 Bilaga 4, Testvärden

33

Kryptografi - När är det säkert? Föreläsningens innehåll. Kryptografi - Kryptoanalys. Kryptering - Huvudsyfte. Kryptografi - Viktiga roller

Kryptografi - När är det säkert? Föreläsningens innehåll. Kryptografi - Kryptoanalys. Kryptering - Huvudsyfte. Kryptografi - Viktiga roller Föreläsningens innehåll Grunder Kryptografiska verktygslådan Symmetriska algoritmer MAC Envägs hashfunktioner Asymmetriska algoritmer Digitala signaturer Slumptalsgeneratorer Kryptering i sitt sammanhang

Läs mer

Säkerhet. Säker kommunikation - Nivå. Secure e-mail. Alice wants to send secret e-mail message, m, to Bob.

Säkerhet. Säker kommunikation - Nivå. Secure e-mail. Alice wants to send secret e-mail message, m, to Bob. Säkerhet Förra gången Introduktion till säkerhet och nätverkssäkerhet Kryptografi Grunder Kryptografiska verktygslådan Symmetriska algoritmer Envägs hashfunktioner Asymmetriska algoritmer Digitala signaturer

Läs mer

EIT060 Datasäkerhet - Projekt 2. Jacob Ferm, dt08jf0 Johan Paulsson, dt08jp8 Erik Söderqvist, dt08es8 Magnus Johansson, dt08mj9 26 februari 2011

EIT060 Datasäkerhet - Projekt 2. Jacob Ferm, dt08jf0 Johan Paulsson, dt08jp8 Erik Söderqvist, dt08es8 Magnus Johansson, dt08mj9 26 februari 2011 EIT060 Datasäkerhet - Projekt 2 Jacob Ferm, dt08jf0 Johan Paulsson, dt08jp8 Erik Söderqvist, dt08es8 Magnus Johansson, dt08mj9 26 februari 2011 Innehåll 1 Introduktion 1 2 SSL 1 2.1 Anslutningsprocessen.........................

Läs mer

Krypteringteknologier. Sidorna 580-582 (647-668) i boken

Krypteringteknologier. Sidorna 580-582 (647-668) i boken Krypteringteknologier Sidorna 580-582 (647-668) i boken Introduktion Kryptering har traditionellt handlat om skydda konfidentialiteten genom att koda meddelandet så att endast mottagaren kan öppna det

Läs mer

Grundfrågor för kryptosystem

Grundfrågor för kryptosystem Kryptering Ett verktyg, inte en tjänst! Kryptering förvandlar normalt ett kommunikationssäkerhetsproblem till ett nyckelhanteringsproblem Så nu måste du lösa nycklarnas säkerhet! 1 Kryptering fungerar

Läs mer

SSL/TLS-protokollet och

SSL/TLS-protokollet och Tekn.dr. Göran Pulkkis Överlärare i Datateknik SSL/TLS-protokollet och SSL-baserade applikationer Innehåll Secure Socket Layer (SSL) / Transport Layer Security (TLS) protokollet SSL-baserade applikationer

Läs mer

Kryptering. Av: Johan Westerlund Kurs: Utveckling av webbapplicationer Termin: VT2015 Lärare: Per Sahlin

Kryptering. Av: Johan Westerlund Kurs: Utveckling av webbapplicationer Termin: VT2015 Lärare: Per Sahlin Kryptering Av: Johan Westerlund Kurs: Utveckling av webbapplicationer Termin: VT2015 Lärare: Per Sahlin Inledning Den här rapporten ska hjälpa en att få insikt och förståelse om kryptering. Vad betyder

Läs mer

256bit Security AB Offentligt dokument 2013-01-08

256bit Security AB Offentligt dokument 2013-01-08 Säkerhetsbeskrivning 1 Syfte Syftet med det här dokumentet är att översiktligt beskriva säkerhetsfunktionerna i The Secure Channel för att på så vis öka den offentliga förståelsen för hur systemet fungerar.

Läs mer

RIV Tekniska Anvisningar Kryptografi. Version ARK_

RIV Tekniska Anvisningar Kryptografi. Version ARK_ RIV Tekniska Anvisningar Kryptografi ARK_0036 Innehåll 1. Inledning... 2 1.1 Målgrupp... 2 2. Om kryptografiska inställningar... 2 2.1 Cipher suites... 2 3. Krav och rekommendationer... 3 3.1 Cipher Suites...

Läs mer

Java Secure Sockets Extension JSSE. F5 Secure Sockets EDA095 Nätverksprogrammering! Roger Henriksson Datavetenskap Lunds universitet

Java Secure Sockets Extension JSSE. F5 Secure Sockets EDA095 Nätverksprogrammering! Roger Henriksson Datavetenskap Lunds universitet Java Secure Sockets Extension JSSE F5 Secure Sockets EDA095 Roger Henriksson Datavetenskap Lunds universitet Secure Sockets Layer SSL Transport Layer Security - TLS Protokoll och algoritmer för säker kommunikation

Läs mer

Kryptering HEMLIG SKRIFT SUBSTITUTION STEGANOGRAFI KRYPTOGRAFI

Kryptering HEMLIG SKRIFT SUBSTITUTION STEGANOGRAFI KRYPTOGRAFI 1/7 Kryptering Se kap. 6 HEMLIG SKRIFT STEGANOGRAFI Dolt data KRYPTOGRAFI Transformerat data - Transposition (Permutation) Kasta om ordningen på symbolerna/tecknen/bitarna. - Substitution Byt ut, ersätt.

Läs mer

Skydd för känsliga data

Skydd för känsliga data Skydd för känsliga data Daniel Bosk 1 Avdelningen för informations- och kommunikationssytem (IKS), Mittuniversitetet, Sundsvall. data.tex 1674 2014-03-19 14:39:35Z danbos 1 Detta verk är tillgängliggjort

Läs mer

Kryptering. Krypteringsmetoder

Kryptering. Krypteringsmetoder Kryptering Kryptering är att göra information svårläslig för alla som inte ska kunna läsa den. För att göra informationen läslig igen krävs dekryptering. Kryptering består av två delar, en algoritm och

Läs mer

Cipher Suites. Rekommendationer om transportkryptering i e-tjänster

Cipher Suites. Rekommendationer om transportkryptering i e-tjänster Cipher Suites Rekommendationer om transportkryptering i e-tjänster Innehåll 1. Bakgrund och syfte... 2 2. Revisionshistorik... 2 3. Inledning... 2 3.1 Cipher suites... 2 4. Protokoll för transportkryptering...

Läs mer

Datasäkerhet. Petter Ericson pettter@cs.umu.se

Datasäkerhet. Petter Ericson pettter@cs.umu.se Datasäkerhet Petter Ericson pettter@cs.umu.se Vad vet jag? Doktorand i datavetenskap (naturliga och formella språk) Ordförande Umeå Hackerspace Sysadmin CS 07-09 (typ) Aktiv från och till i ACC m.fl. andra

Läs mer

Torstens Digitalbildguide

Torstens Digitalbildguide Thor Stone Education Torstens Digitalbildguide 1 Det finns två huvudtyper av digital bild, vektorbaserad och pixelbaserad. - Vektorbaserade bilder bygger på en matematisk formel och kan storlekförändras

Läs mer

Beijer Electronics AB 2000, MA00336A, 2000-12

Beijer Electronics AB 2000, MA00336A, 2000-12 Demonstration driver English Svenska Beijer Electronics AB 2000, MA00336A, 2000-12 Beijer Electronics AB reserves the right to change information in this manual without prior notice. All examples in this

Läs mer

Kryptoteknik. Marcus Bendtsen Institutionen för Datavetenskap (IDA) Avdelningen för Databas- och Informationsteknik (ADIT)

Kryptoteknik. Marcus Bendtsen Institutionen för Datavetenskap (IDA) Avdelningen för Databas- och Informationsteknik (ADIT) Kryptoteknik Marcus Bendtsen Institutionen för Datavetenskap (IDA) Avdelningen för Databas- och Informationsteknik (ADIT) XOR XOR används ofta i kryptering: A B A B 0 0 0 0 1 1 1 0 1 Bit-flipping Om XOR

Läs mer

Försättsblad till skriftlig tentamen vid Linköpings Universitet

Försättsblad till skriftlig tentamen vid Linköpings Universitet Försättsblad till skriftlig tentamen vid Linköpings Universitet Datum för tentamen 2010-10-08 Sal Tid 8-12 Kurskod Provkod Kursnamn/benämning TDDD36 TEN2 Projekttermin: Säkra Mobila System Institution

Läs mer

C++ Slumptalsfunktioner + switch-satsen

C++ Slumptalsfunktioner + switch-satsen C++ Slumptalsfunktioner + switch-satsen Veckans avsnitt består av ett antal lite udda funktioner man kan ha nytta av när man skriver program. Det är en slumptalsgenerator och lite annat smått och gott.

Läs mer

EIT060 Datasäkerhet - Projekt 2. Jacob Ferm, dt08jf0 Johan Paulsson, dt08jp8 Erik Söderqvist, dt08es8 Magnus Johansson, dt08mj9 26 februari 2011

EIT060 Datasäkerhet - Projekt 2. Jacob Ferm, dt08jf0 Johan Paulsson, dt08jp8 Erik Söderqvist, dt08es8 Magnus Johansson, dt08mj9 26 februari 2011 EIT060 Datasäkerhet - Projekt 2 Jacob Ferm, dt08jf0 Johan Paulsson, dt08jp8 Erik Söderqvist, dt08es8 Magnus Johansson, dt08mj9 26 februari 2011 Innehåll 1 Introduktion 1 2 SSL 1 2.1 Anslutningsprocessen.........................

Läs mer

Metoder för sekretess, integritet och autenticering

Metoder för sekretess, integritet och autenticering Metoder för sekretess, integritet och autenticering Kryptering Att dölja (grekiska) Sekretess Algoritmen Att dölja Ordet kryptering kommer från grekiskan och betyder dölja. Rent historiskt sett har man

Läs mer

Designprinciper för säkerhet och Epilog. Marcus Bendtsen Institutionen för Datavetenskap (IDA) Avdelningen för Databas- och Informationsteknik (ADIT)

Designprinciper för säkerhet och Epilog. Marcus Bendtsen Institutionen för Datavetenskap (IDA) Avdelningen för Databas- och Informationsteknik (ADIT) Designprinciper för säkerhet och Epilog Marcus Bendtsen Institutionen för Datavetenskap (IDA) Avdelningen för Databas- och Informationsteknik (ADIT) Designprinciper för säkerhet Tumregler och utgångspunkter

Läs mer

Många företag och myndigheter sköter sina betalningar till Plusoch

Många företag och myndigheter sköter sina betalningar till Plusoch 70 80 60 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 40 20 30 Manual 2 Installation Många företag och myndigheter sköter sina betalningar till Plusoch Bankgirot

Läs mer

Föreläsning 7. DD2390 Internetprogrammering 6 hp

Föreläsning 7. DD2390 Internetprogrammering 6 hp Föreläsning 7 DD2390 Internetprogrammering 6 hp Innehåll Krypteringsöversikt (PKI) Java Secure Socket Extension (JSSE) Säkerhetsproblem 1. Vem är det man kommunicerar med Autentisering 2. Data kan avläsas

Läs mer

Introduktion Schenker-BTL AB, Stab IT Beskrivning över informationsintegreringmed Schenker, metodbeskrivning version 1.

Introduktion Schenker-BTL AB, Stab IT Beskrivning över informationsintegreringmed Schenker, metodbeskrivning version 1. Schenker har interna system som handhar information som är av intresse för våra kunder/partners. Idag finns ett flertal av dem tillgängliga via Internet, sk Online-tjänster. Dessa erbjuder inte bara hämtning

Läs mer

Solowheel. Namn: Jesper Edqvist. Klass: TE14A. Datum: 2015-03-09

Solowheel. Namn: Jesper Edqvist. Klass: TE14A. Datum: 2015-03-09 Solowheel Namn: Jesper Edqvist Klass: TE14A Datum: 2015-03-09 Abstract We got an assignment that we should do an essay about something we wanted to dig deeper into. In my case I dug deeper into what a

Läs mer

Inte bara det, vi har dessutom fått allt fler arbetsredskap. När vi inte har kontroll på enheterna är det svårare att skydda dem.

Inte bara det, vi har dessutom fått allt fler arbetsredskap. När vi inte har kontroll på enheterna är det svårare att skydda dem. 1 Jobbet har slutat vara något vi går till och det är numera något vi gör. Våra kollegor är vana att använda ny teknik hemma, de vill nu göra det på jobbet. Helst vill de dessutom jobba från sina enheter

Läs mer

Grundläggande datavetenskap, 4p

Grundläggande datavetenskap, 4p Grundläggande datavetenskap, 4p Kapitel 4 Nätverk och Internet Utgående från boken Computer Science av: J. Glenn Brookshear 2004-11-23 IT och medier 1 Innehåll Nätverk Benämningar Topologier Sammankoppling

Läs mer

SSL. Kristoffer Silverhav Robin Silverhav

SSL. Kristoffer Silverhav Robin Silverhav SSL Kristoffer Silverhav Krisi416@student.liu.se Robin Silverhav Robis807@student.liu.se TDTS09 Datornät och internetprotokoll Linköpings universitet 2011-02-23 Sammanfattning Denna rapport handlar om

Läs mer

Systemkrav och tekniska förutsättningar

Systemkrav och tekniska förutsättningar Systemkrav och tekniska förutsättningar Hogia Webbrapporter Det här dokumentet går igenom systemkrav, frågor och hanterar teknik och säkerhet kring Hogia Webbrapporter, vilket bl a innefattar allt ifrån

Läs mer

Datasäkerhet och integritet

Datasäkerhet och integritet Chapter 4 module A Networking Concepts OSI-modellen TCP/IP This module is a refresher on networking concepts, which are important in information security A Simple Home Network 2 Unshielded Twisted Pair

Läs mer

Styrteknik: Binära tal, talsystem och koder D3:1

Styrteknik: Binära tal, talsystem och koder D3:1 Styrteknik: Binära tal, talsystem och koder D3:1 Digitala kursmoment D1 Boolesk algebra D2 Grundläggande logiska funktioner D3 Binära tal, talsystem och koder Styrteknik :Binära tal, talsystem och koder

Läs mer

FÖRBERED UNDERLAG FÖR BEDÖMNING SÅ HÄR

FÖRBERED UNDERLAG FÖR BEDÖMNING SÅ HÄR FÖRBERED UNDERLAG FÖR BEDÖMNING SÅ HÄR Kontrollera vilka kurser du vill söka under utbytet. Fyll i Basis for nomination for exchange studies i samråd med din lärare. För att läraren ska kunna göra en korrekt

Läs mer

Att använda kryptering. Nyckelhantering och protokoll som bygger på kryptering

Att använda kryptering. Nyckelhantering och protokoll som bygger på kryptering Att använda kryptering Nyckelhantering och protokoll som bygger på kryptering 1 Nyckelhantering Nycklar måste genereras på säkert sätt Nycklar måste distribueras på säkert sätt Ägaren av en nyckel måste

Läs mer

Modul 6 Webbsäkerhet

Modul 6 Webbsäkerhet Modul 6 Webbsäkerhet Serverskript & Säkerhet Webbservrar & serverskript exponerar möjlighet för fjärranvändare att skicka data och köra kod vilket medför risker. Man ska aldrig lita på att alla vill göra

Läs mer

Kryptering & Chiffer Del 2

Kryptering & Chiffer Del 2 Kryptering & Chiffer Del Vigenere Vigenere är en annan krypteringsmetod som är mer avancerad än de två föregående. Denna metod är säkrare men långt ifrån säker om man använder dåliga nycklar. Det finns

Läs mer

Information technology Open Document Format for Office Applications (OpenDocument) v1.0 (ISO/IEC 26300:2006, IDT) SWEDISH STANDARDS INSTITUTE

Information technology Open Document Format for Office Applications (OpenDocument) v1.0 (ISO/IEC 26300:2006, IDT) SWEDISH STANDARDS INSTITUTE SVENSK STANDARD SS-ISO/IEC 26300:2008 Fastställd/Approved: 2008-06-17 Publicerad/Published: 2008-08-04 Utgåva/Edition: 1 Språk/Language: engelska/english ICS: 35.240.30 Information technology Open Document

Läs mer

Telia Connect för Windows

Telia Connect för Windows Telia Connect för Windows Version 3.0 Användarguide Updaterad: 3 juli 2007 Innehåll Ansluta till Internet...3 Information som presenteras av Telia Connect...4 Konfiguration av Telia Connect...7 Fliken

Läs mer

Självkörande bilar. Alvin Karlsson TE14A 9/3-2015

Självkörande bilar. Alvin Karlsson TE14A 9/3-2015 Självkörande bilar Alvin Karlsson TE14A 9/3-2015 Abstract This report is about driverless cars and if they would make the traffic safer in the future. Google is currently working on their driverless car

Läs mer

Stockholm Skolwebb. Information kring säkerhet och e-legitimation för Stockholm Skolwebb. skolwebb.stockholm.se

Stockholm Skolwebb. Information kring säkerhet och e-legitimation för Stockholm Skolwebb. skolwebb.stockholm.se S Stockholm Skolwebb Information kring säkerhet och e-legitimation för Stockholm Skolwebb Innehållsförteckning Säkerhet i Stockholm Skolwebb... 3 Roller i Stockholm Skolwebb... 3 Hur definieras rollerna

Läs mer

F5 Exchange 2007. 2013-01-16 Elektronikcentrum i Svängsta Utbildning AB 2013-01-16 1

F5 Exchange 2007. 2013-01-16 Elektronikcentrum i Svängsta Utbildning AB 2013-01-16 1 F5 Exchange 2007 2013-01-16 Elektronikcentrum i Svängsta Utbildning AB 2013-01-16 1 Spam Control and Filtering Elektronikcentrum i Svängsta Utbildning AB 2013-01-16 2 Idag: Relaying Spamhantering och filtrering

Läs mer

2.1 Installation of driver using Internet Installation of driver from disk... 3

2.1 Installation of driver using Internet Installation of driver from disk... 3 &RQWHQW,QQHKnOO 0DQXDOÃ(QJOLVKÃ'HPRGULYHU )RUHZRUG Ã,QWURGXFWLRQ Ã,QVWDOOÃDQGÃXSGDWHÃGULYHU 2.1 Installation of driver using Internet... 3 2.2 Installation of driver from disk... 3 Ã&RQQHFWLQJÃWKHÃWHUPLQDOÃWRÃWKHÃ3/&ÃV\VWHP

Läs mer

Lösenordsportalen Hosted by UNIT4 For instructions in English, see further down in this document

Lösenordsportalen Hosted by UNIT4 For instructions in English, see further down in this document Lösenordsportalen Hosted by UNIT4 For instructions in English, see further down in this document Användarhandledning inloggning Logga in Gå till denna webbsida för att logga in: http://csportal.u4a.se/

Läs mer

E V - C E R T I F I K AT: VA R F Ö R A N V Ä N D A D E N S TA R K A S T E S S L AUTENTISERINGSPROCESS?

E V - C E R T I F I K AT: VA R F Ö R A N V Ä N D A D E N S TA R K A S T E S S L AUTENTISERINGSPROCESS? E V - C E R T I F I K AT: VA R F Ö R A N V Ä N D A D E N S TA R K A S T E S S L AUTENTISERINGSPROCESS? D i n t a l a r e i d a g J o n a t h a n A g e r i u s W e b S e c u r i t y C o n s u l t a n t

Läs mer

Kelly, Kevin (2016) The Inevitable: Understanding the 12 Technological Forces The Will Shape Our Future. Viking Press.

Kelly, Kevin (2016) The Inevitable: Understanding the 12 Technological Forces The Will Shape Our Future. Viking Press. Every utopia is a fiction, with necessary flaws that prevent it from ever becoming real. I have not met a utopia I would even want to live in. H O W T O B U I L D A G E N C Y I N T H E F A C E O F U N

Läs mer

[HUR DU ANVÄNDER PAPP] Papp är det program som vi nyttjar för att lotta turneringar och se resultat.

[HUR DU ANVÄNDER PAPP] Papp är det program som vi nyttjar för att lotta turneringar och se resultat. PAPP Papp är det program som vi nyttjar för att lotta turneringar och se resultat. Förberedelser inför en turnering. Ladda ner papp för windows, spara zipfilen på lämpligt ställe på din dator och lägg

Läs mer

Din guide till IP RFID. Intertex Nu ännu starkare säkerhet för SIP. Snom - marknadens säkraste IP-telefon. Ur innehållet TALK TELECOM

Din guide till IP RFID. Intertex Nu ännu starkare säkerhet för SIP. Snom - marknadens säkraste IP-telefon. Ur innehållet TALK TELECOM for you Din guide till IP Nummer 7 2010 God Jul och Gott Nytt År önskar TALK TELECOM Ur innehållet RFID Säker passage med plastbricka Intertex Nu ännu starkare säkerhet för SIP Snom - marknadens säkraste

Läs mer

TDIU01 - Programmering i C++, grundkurs

TDIU01 - Programmering i C++, grundkurs TDIU01 - Programmering i C++, grundkurs Pekare och Listor Eric Elfving Institutionen för datavetenskap 31 oktober 2014 Översikt 2/41 Internminne Pekare Dynamiska datastrukturer (Enkellänkade) listor Arbeta

Läs mer

FrontPage Express. Ämne: Datorkunskap (Internet) Handledare: Thomas Granhäll

FrontPage Express. Ämne: Datorkunskap (Internet) Handledare: Thomas Granhäll FrontPage Express I programpaketet Internet Explorer 4.0 och 5.0 ingår också FrontPage Express som installeras vid en fullständig installation. Det är ett program som man kan använda för att skapa egna

Läs mer

Manual - Phonera Online Backup

Manual - Phonera Online Backup Manual - Phonera Online Backup Phonera Online Backup är enkel att installera och använda Först så ska du installera Phonera Online Backup. Du hittar installationsfilerna av backupklienten på adressen nedan:

Läs mer

Översättning av galleriet. Hjälp till den som vill...

Översättning av galleriet. Hjälp till den som vill... Hjälp till den som vill... $txt['aeva_title'] = 'Galleri'; $txt['aeva_admin'] = 'Admin'; $txt['aeva_add_title'] = 'Titel'; $txt['aeva_add_desc'] = 'Beskrivning'; $txt['aeva_add_file'] = 'Fil att ladda

Läs mer

1. Compute the following matrix: (2 p) 2. Compute the determinant of the following matrix: (2 p)

1. Compute the following matrix: (2 p) 2. Compute the determinant of the following matrix: (2 p) UMEÅ UNIVERSITY Department of Mathematics and Mathematical Statistics Pre-exam in mathematics Linear algebra 2012-02-07 1. Compute the following matrix: (2 p 3 1 2 3 2 2 7 ( 4 3 5 2 2. Compute the determinant

Läs mer

Gesäll provet Internetprogrammering I. Författare: Henrik Fridström. Personnummer: 870408-6654. Skola: DSV

Gesäll provet Internetprogrammering I. Författare: Henrik Fridström. Personnummer: 870408-6654. Skola: DSV Gesäll provet Internetprogrammering I Författare: Henrik Fridström Personnummer: 870408-6654 Skola: DSV Val av uppgift: En e-mail applikation med kryptering Bakgrund: Som sista uppgift i kursen Internetprogrammering

Läs mer

Att bygga enkla webbsidor

Att bygga enkla webbsidor Nivå 1 Att bygga enkla webbsidor All Code Clubs must be registered. Registered clubs appear on the map at codeclubworld.org - if your club is not on the map then visit jumpto.cc/18cplpy to find out what

Läs mer

Protokoll Föreningsutskottet 2013-10-22

Protokoll Föreningsutskottet 2013-10-22 Protokoll Föreningsutskottet 2013-10-22 Närvarande: Oliver Stenbom, Andreas Estmark, Henrik Almén, Ellinor Ugland, Oliver Jonstoij Berg. 1. Mötets öppnande. Ordförande Oliver Stenbom öppnade mötet. 2.

Läs mer

Annonsformat desktop. Startsida / områdesstartsidor. Artikel/nyhets-sidor. 1. Toppbanner, format 1050x180 pxl. Format 1060x180 px + 250x240 pxl.

Annonsformat desktop. Startsida / områdesstartsidor. Artikel/nyhets-sidor. 1. Toppbanner, format 1050x180 pxl. Format 1060x180 px + 250x240 pxl. Annonsformat desktop Startsida / områdesstartsidor 1. Toppbanner, format 1050x180 pxl. Bigbang (toppbanner + bannerplats 2) Format 1060x180 px + 250x240 pxl. 2. DW, format 250x240 pxl. 3. TW, format 250x360

Läs mer

Ökat personligt engagemang En studie om coachande förhållningssätt

Ökat personligt engagemang En studie om coachande förhållningssätt Lärarutbildningen Fakulteten för lärande och samhälle Individ och samhälle Uppsats 7,5 högskolepoäng Ökat personligt engagemang En studie om coachande förhållningssätt Increased personal involvement A

Läs mer

Schenker Privpak AB Telefon VAT Nr. SE Schenker ABs ansvarsbestämmelser, identiska med Box 905 Faxnr Säte: Borås

Schenker Privpak AB Telefon VAT Nr. SE Schenker ABs ansvarsbestämmelser, identiska med Box 905 Faxnr Säte: Borås Schenker Privpak AB Interface documentation for web service packageservices.asmx 2012-09-01 Version: 1.0.0 Doc. no.: I04304b Sida 2 av 7 Revision history Datum Version Sign. Kommentar 2012-09-01 1.0.0

Läs mer

Internets historia Tillämpningar

Internets historia Tillämpningar 1 Internets historia Redan i slutet på 1960-talet utvecklade amerikanska försvaret, det program som ligger till grund för Internet. Syftet var att skapa ett decentraliserat kommunikationssystem som skulle

Läs mer

Storegate Pro Backup. Innehåll

Storegate Pro Backup. Innehåll Storegate Pro Backup Välkommen! I denna manual kan du bland annat läsa om funktioner och hur du ska konfigurerar programmet. Läs gärna vårt exempel om versionshantering och lagringsmängd innan du konfigurerar

Läs mer

Rapport elbilar Framtidens fordon

Rapport elbilar Framtidens fordon Teknikprogrammet Klass TE14. Rapport elbilar Framtidens fordon Namn: Joel Evertsson Datum: 2015-03-09 Abstract This report is about electric car. We have worked with future vehicles and with this report

Läs mer

Plats för projektsymbol. Nätverket för svensk Internet- Infrastruktur

Plats för projektsymbol. Nätverket för svensk Internet- Infrastruktur Nätverket för svensk Internet- Infrastruktur NSII Nätverket för Svensk Internet-Infrastruktur Medlemmar: FMV, Frobbit, Netnod, STUPI, SUNET och TU-Stiftelsen Vi har några av världens ledande experter inom

Läs mer

Hur man skyddar sig på internet

Hur man skyddar sig på internet Hur man skyddar sig på internet Säkerhet är obehagligt Men vi har ju virusskydd!! Webbläsare Webbläsare Vårt största hot idag Tydligare vid fel, phishing, flikar SSL Tunnlar och certifikat, brutna certifikat,

Läs mer

Säkerhetsbrister & intrång

Säkerhetsbrister & intrång Säkerhetsbrister & intrång Internetdagarna 2001 Vem är Anders Ingeborn? Civilingenjör Datateknik KTH ixsecurity Frilansskribent Föredragshållare Innehåll Tekniska säkerhetsbrister Trender Erfarenheter

Läs mer

Överföring av filer med Zendto v 1.1. stora filer som inte kan skickas via e-post konfidentiella uppgifter som inte kan skickas via okrypterad e-post

Överföring av filer med Zendto v 1.1. stora filer som inte kan skickas via e-post konfidentiella uppgifter som inte kan skickas via okrypterad e-post Folkhälsans ZendTo ZendTo är till för enkel och säker överföring av stora filer som inte kan skickas via e-post konfidentiella uppgifter som inte kan skickas via okrypterad e-post ZendTo används via webbläsare,

Läs mer

TDDC74 Lab 02 Listor, sammansatta strukturer

TDDC74 Lab 02 Listor, sammansatta strukturer TDDC74 Lab 02 Listor, sammansatta strukturer 1 Översikt I denna laboration kommer ni att lära er mer om: Mer komplexa rekursiva mönster, procedurer och processer. Hur man kan hantera listor och andra enklare

Läs mer

Säker e-kommunikation 2009-04-22

Säker e-kommunikation 2009-04-22 Säker e-kommunikation 2009-04-22 Leif Forsman Logica 2008. All rights reserved Agenda - Inledning - Bakgrund och historik - Vilka risker och hot finns? - Vilka säkerhetslösningar finns det för att skydda

Läs mer

Objektorienterad Programkonstruktion. Föreläsning 16 8 feb 2016

Objektorienterad Programkonstruktion. Föreläsning 16 8 feb 2016 Objektorienterad Programkonstruktion Föreläsning 16 8 feb 2016 Kryptering För ordentlig behandling rekommenderas kursen DD2448, Kryptografins Grunder Moderna krypton kan delas in i två sorter, baserat

Läs mer

2011-11-02. E-legitimationer. Jonas Wiman. LKDATA Linköpings Kommun. jonas.wiman@linkoping.se

2011-11-02. E-legitimationer. Jonas Wiman. LKDATA Linköpings Kommun. jonas.wiman@linkoping.se E-legitimationer Jonas Wiman LKDATA Linköpings Kommun jonas.wiman@linkoping.se 1 Många funktioner i samhället bygger på möjligheten att identifiera personer För att: Ingå avtal Köpa saker, beställningar

Läs mer

Enkla datatyper minne

Enkla datatyper minne Enkla datatyper minne 143.56 sant Sonja A falskt 18 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 1 Addera två tal Algoritmen Summera tal Mata in två tal Beräkna Skriv ut resultat Mata in tal 1 Mata in

Läs mer

Skärmbilden i Netscape Navigator

Skärmbilden i Netscape Navigator Extratexter till kapitel Internet Skärmbilden i Netscape Navigator Netscape är uppbyggt på liknande sätt som i de flesta program. Under menyraden, tillsammans med verktygsfältet finns ett adressfält. I

Läs mer

Teknikprogrammet Klass TE14A, Norrköping. Jacob Almrot. Självstyrda bilar. Datum: 2015-03-09

Teknikprogrammet Klass TE14A, Norrköping. Jacob Almrot. Självstyrda bilar. Datum: 2015-03-09 Teknikprogrammet Klass TE14A, Norrköping. Jacob Almrot Självstyrda bilar Datum: 2015-03-09 Abstract This report is about when you could buy a self-driving car and what they would look like. I also mention

Läs mer

Inlämningsuppgift : Finn. 2D1418 Språkteknologi. Christoffer Sabel E-post: csabel@kth.se 1

Inlämningsuppgift : Finn. 2D1418 Språkteknologi. Christoffer Sabel E-post: csabel@kth.se 1 Inlämningsuppgift : Finn 2D1418 Språkteknologi Christoffer Sabel E-post: csabel@kth.se 1 1. Inledning...3 2. Teori...3 2.1 Termdokumentmatrisen...3 2.2 Finn...4 3. Implementation...4 3.1 Databasen...4

Läs mer

Behörighetssystem. Ska kontrollera att ingen läser, skriver, ändrar och/eller på annat sätt använder data utan rätt att göra det

Behörighetssystem. Ska kontrollera att ingen läser, skriver, ändrar och/eller på annat sätt använder data utan rätt att göra det Behörighetssystem Ska kontrollera att ingen läser, skriver, ändrar och/eller på annat sätt använder data utan rätt att göra det Systemet måste kunna registrera vilka resurser, d v s data och databärande

Läs mer

Tentamen PC-teknik 5 p

Tentamen PC-teknik 5 p Tentamen PC-teknik 5 p Namn:. Klass:... Program: Di2, Em3, Et3 Datum: 03-08-15 Tid: 13:30-18:30 Lokal: E171 Hjälpmedel: Linjal, miniräknare, Instruktionsrepertoar för 8086 (utdelas), Lathund, Pacific C

Läs mer

Tentamen MMG610 Diskret Matematik, GU

Tentamen MMG610 Diskret Matematik, GU Tentamen MMG610 Diskret Matematik, GU 2017-01-04 kl. 08.30 12.30 Examinator: Peter Hegarty, Matematiska vetenskaper, Chalmers/GU Telefonvakt: Peter Hegarty, telefon: 0766 377 873 Hjälpmedel: Inga hjälpmedel,

Läs mer

LAJKA-GUIDE. Jätteguide till molnets 9 bästa. näthårddiskar. 7 De bästa gratisalternativen 7 Så väljer du rätt 7 Smarta säkerhetstips

LAJKA-GUIDE. Jätteguide till molnets 9 bästa. näthårddiskar. 7 De bästa gratisalternativen 7 Så väljer du rätt 7 Smarta säkerhetstips Jätteguide till molnets 9 bästa näthårddiskar 7 De bästa gratisalternativen 7 Så väljer du rätt 7 Smarta säkerhetstips. Frågor och svar om näthårddiskar De nya nätdiskarna ger dig mer utrymme och fler

Läs mer

Chapter 3: Using Classes and Objects

Chapter 3: Using Classes and Objects Chapter 3: Using Classes and Objects I dessa uppgifter kommer du att lära dig om hur man använder klasser och metoder från java biblioteket. Du kommer inte att förstå allt som händer bakom metod anrop

Läs mer

Exempelsamling Assemblerprogrammering

Exempelsamling Assemblerprogrammering Exempelsamling Assemblerprogrammering I uppgifterna nedan utgå från följande programskelett: #include.data var1:.word 12 var2:.word 19 sum: prod:.float 0.set noreorder.text.globl start.ent start

Läs mer

Innehållsförteckning:

Innehållsförteckning: Dokumenttitel Datum Godkänd av Sid SIT24 Manual E-post 2007-03-09 Sign 1(14) Utgivare/Handläggare Dokumentbeteckning Version Info Klass Björn Carlsson SIT24 mailmanual.doc 1.0.2 Öppen SIT24 Manual E-Post

Läs mer

Klassdeklaration. Metoddeklaration. Parameteröverföring

Klassdeklaration. Metoddeklaration. Parameteröverföring Syntax: Class Declaration Modifier Class Body Basic Class Member Klassdeklaration class Class Member Field Declaration Constructor Declaration Method Declaration Identifier Class Associations Motsvarar

Läs mer

Introduktion till algoritmer - Lektion 1 Matematikgymnasiet, Läsåret 2014-2015. Lektion 1

Introduktion till algoritmer - Lektion 1 Matematikgymnasiet, Läsåret 2014-2015. Lektion 1 Kattis Lektion 1 I kursen används onlinedomaren Kattis (från http://kattis.com) för att automatiskt rätta programmeringsproblem. För att få ett konto på Kattis anmäler du dig på Programmeringsolympiadens

Läs mer

TDIU01 - Programmering i C++, grundkurs

TDIU01 - Programmering i C++, grundkurs TDIU01 - Programmering i C++, grundkurs Sammanfattning period 1 Eric Elfving Institutionen för datavetenskap 1 oktober 2013 Översikt Ett C++-programs uppbyggnad Variabler Datatyper Satser Uttryck Funktioner

Läs mer

Programmering B med Visual C++ 2008

Programmering B med Visual C++ 2008 Programmering B med Visual C++ 2008 Innehållsförteckning 1 Repetition och lite nytt...5 I detta kapitel... 5 Programexekvering... 5 Loop... 5 Källkod... 6 Verktyg... 6 Säkerhetskopiera... 6 Öppna, kompilera,

Läs mer

Support Manual HoistLocatel Electronic Locks

Support Manual HoistLocatel Electronic Locks Support Manual HoistLocatel Electronic Locks 1. S70, Create a Terminating Card for Cards Terminating Card 2. Select the card you want to block, look among Card No. Then click on the single arrow pointing

Läs mer

Digital bildhantering

Digital bildhantering Digital bildhantering En analog bild blir digital när den scannas. Bilden delas upp i småbitar, fyrkanter, pixlar. En pixel = den digitala bildens minsta byggsten. Hur detaljrik bilden blir beror på upplösningen

Läs mer

Tanka program KAPITEL 7. Shareware och freeware. Shareware. Freeware

Tanka program KAPITEL 7. Shareware och freeware. Shareware. Freeware KAPITEL 7 Tanka program Internet bokstavligen flödar av olika program man kan ladda ner. Det finns en del nyttiga program som är bra att känna till och använda. Allt för att göra det lättare för sig. I

Läs mer

EIT060 Datasäkerhet - Projekt 2. Jacob Ferm, dt08jf0 Johan Paulsson, dt08jp8 Erik Söderqvist, dt08es8 Magnus Johansson, dt08mj9 26 februari 2011

EIT060 Datasäkerhet - Projekt 2. Jacob Ferm, dt08jf0 Johan Paulsson, dt08jp8 Erik Söderqvist, dt08es8 Magnus Johansson, dt08mj9 26 februari 2011 EIT060 Datasäkerhet - Projekt 2 Jacob Ferm, dt08jf0 Johan Paulsson, dt08jp8 Erik Söderqvist, dt08es8 Magnus Johansson, dt08mj9 26 februari 2011 Innehåll 1 Introduktion 1 2 SSL 1 2.1 Anslutningsprocessen.........................

Läs mer

Forma komprimerat trä

Forma komprimerat trä Forma komprimerat trä - maskinell bearbetning av fria former Peter Conradsson MÖBELSNICKERI Carl Malmsten Centrum för Träteknik & Design REG NR: LiU-IEI-TEK-G 07/0025 SE Oktober 2007 Omslagsbild: Stol

Läs mer

Programmeringsteknik med C och Matlab

Programmeringsteknik med C och Matlab Programmeringsteknik med C och Matlab Kapitel 6: Filhantering Henrik Björklund Umeå universitet 13 oktober 2009 Björklund (UmU) Programmeringsteknik 13 oktober 2009 1 / 22 Textfiler Filer är sekvenser

Läs mer

Modul 3 Föreläsningsinnehåll

Modul 3 Föreläsningsinnehåll 2015-02-03 2015 Jacob Lindehoff, Linnéuniversitetet 1 Modul 3 Föreläsningsinnehåll Vad är ett certifikat? Användningsområden Microsoft Certificate Services Installation Laboration Ingår i Klustringslabben

Läs mer

Webbregistrering pa kurs och termin

Webbregistrering pa kurs och termin Webbregistrering pa kurs och termin 1. Du loggar in på www.kth.se via den personliga menyn Under fliken Kurser och under fliken Program finns på höger sida en länk till Studieöversiktssidan. På den sidan

Läs mer

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud. Analog Digitalitet Kontinuerlig Direkt proportionerlig mot källan Ex. sprittermometer Elektrisk signal som representerar ljud Diskret Digital Representation som siffror/symboler Ex. CD-skiva Varje siffra

Läs mer

Innehåll. Dokumentet gäller från och med version 2014.3 1

Innehåll. Dokumentet gäller från och med version 2014.3 1 Innehåll Introduktion... 2 Före installation... 2 Beroenden... 2 Syftet med programmet... 2 Installation av IIS... 2 Windows Server 2008... 2 Windows Server 2012... 6 Installation av webbapplikationen

Läs mer

TDDD80. Mobila och sociala applikationer Introduktion HTTP,SaaS. Anders Fröberg Institutionen för Datavetenskap (IDA)

TDDD80. Mobila och sociala applikationer Introduktion HTTP,SaaS. Anders Fröberg Institutionen för Datavetenskap (IDA) TDDD80 Mobila och sociala applikationer Introduktion HTTP,SaaS Anders Fröberg Institutionen för Datavetenskap (IDA) Internet Internet är världens största datornätverk och ett system för enkel och effektiv

Läs mer

Writing with context. Att skriva med sammanhang

Writing with context. Att skriva med sammanhang Writing with context Att skriva med sammanhang What makes a piece of writing easy and interesting to read? Discuss in pairs and write down one word (in English or Swedish) to express your opinion http://korta.nu/sust(answer

Läs mer

State Examinations Commission

State Examinations Commission State Examinations Commission Marking schemes published by the State Examinations Commission are not intended to be standalone documents. They are an essential resource for examiners who receive training

Läs mer

Installation av F13 Bråvalla

Installation av F13 Bråvalla Website: http://www.rbdesign.se Installation av F13 Bråvalla RBDESIGN FREEWARE - ESCK Norrköping-Bråvalla 1. Ladda ner och packa upp filerna i en mapp som du har skapat på ett lättöverskådligt ställe utanför

Läs mer