Kravspecifikation Fredrik Berntsson Version 1.1 Status Granskad FB 2016-02-01 Godkänd FB 2015-02-01
Dokumenthistorik Version Datum Utförda ändringar Utförda av Granskad 1.0 2015-02-01 Första versionen FB FB 2
1 Introduktion Kryptering av text utgör grunden för säker överföring av information. Kryptering med öppen nyckel innebär att systemet är utformat på ett sådant sätt att varje användare skapar ett par av nycklar: en för kryptering och en för avkryptering. Nyckeln för kryptering görs tillgänglig offentligt. Alla kan då skicka medellanden till denna mottagare men endast den som medellandet är avsett för kan läsa det. System med öppen nyckel för kryptering är väldigt trevliga att använda eftersom men inte behöver överföra krypteringsnycklar fysiskt innan kommunikation är möjlig. 1.1 Parter Med leverantör åsyftas i efterföljande text projektgruppen. Matematiska Institutionen (MAI) är beställare och kund. 1.2 Syfte och Mål Målet med projektarbetet är att inhämta kunskap i hur matematiska metoder kan användas i realistiska tillämpningar, samt inhämta tillräcklig kunskap inom tillämpningen kryptering för att förstå vilka möjligheter och begränsningar som metoderna som studeras har. Projektet har också som övergripande mål att ge träning i att utveckla ett system, ingenjörsmässiga arbetsmetoder, samt dokumentation och muntlig presentation. 1.3 Användning Beställaren skall kunna använda systemet för att kunna kryptera och avkryptera text. Systemet skall dessutom kunna generera bra krypteringsnycklar. Systemet skall utformas så att det är enkelt för användaren att vidareutveckla. 2 Systemöversikt Indata till systemet är kortare stycken svensk text. Systemet ska översätta den givna texten till ASCII-kod, som sedan krypteras efter att den har delats upp i block. Det ska också kunna avkryptera redan krypterade meddelanden. Det är viktigt att systemet kan generera offentliga och hemliga nycklar automatiskt. Systemet kan lämpligen bestå av följande delsystem: 3
en komponent som genererar nycklar, en komponent som krypterar, en komponent som avkrypterar. 2.1 Avgränsningar Systemet skall ses som en prototyp och inget högre krav ställs på användargränssnitt. Det räcker om systemet består av ett antal fristående funktioner som tillsammans kan användas för att lösa uppgiften. Det måste isåfall medfölja ett tydligt exempel där det visas hur de ingående funktionerna skall användas. 2.2 Generella krav på hela systemet Krav 1 Original Systemet skall kunna generera rimligt pålitliga nycklar. Systemet skall kryptera och avkryptera text korrekt. Krav 2 Original Krav 3 Original Systemet skall vara testat så att det är pålitligt och stabilt. 3 Beskrivning av systemet För att systemet ska vara säkert är det avgörande att den hemliga nyckeln genereras på ett bra sätt. Detta ställer krav på hur de primtal, som ger nyckeln, skapas. Bl.a. måste primtalen väljas slumpmässigt och inte vara för små. Det är också viktigt att de övriga parametrarna väljs väl (inte för stora) så att beräkningarna i systemet blir effektiva. Krav 4 Original Krav 5 Original Krav 6 Original Nycklar skall genereras på ett genomtänkt sätt efter en beprövad metod. Nycklar skall genereras på ett sätt som ger effektiva beräkningar. Skapa minst ett testexempel som visar att metoden fungerar. (1) Extra Då nycklarna genererats skall text krypteras. 4
Krav 7 Original Krav 8 Original Krav 9 Original Krav 10 Original Krav 11 Original Krav 12 Original Systemet skall kunna kryptera en given text. Beskriv matematiskt de formler som skall användas i delsystemet. Beskriv ingående hur text kan kodas som en följd heltal med given storlek. Systemet skall kunna koda text som en följd heltal. Systemet skall kunna återskapa text från en följd heltal. Systemet skall kunna hitta den hemliga nyckeln given den offentliga. (1) (1) 4 Tillämpningar Då syftet med systemet är att säkert överföra text skall ett antal exempel som visar hur systemet löser uppgiften skapas. Krav 13 Original Krav 14 Original 5 Ekonomi Illustera metoden att koda text som en följd heltal med ett exempel. Metoden är relativt beräkningskrävande. En effektivare men mindre säker metod är att använda ett substitutionskrypto för att koda ett text medellande. Endast kodnyckeln till subsititutionskryptot överförs då med RSA kryptering. Implementera en tilläggsfunktion som gör detta. Extra Krav 15 Original Projektet skall genomföras med en arbetsinsats på 80 timmar per student. * 5
6 Leveranser Vid slutleverans skall samtliga krav märkta vara uppfyllda. För grupper med 5 studeneter gäller att minst ett krav märkt Extra dessutom skall vara uppfyllt. För grupper med 6 studenter gäller att två Extra krav skall vara genomförda. För större grupper gäller att samtliga Extra krav skall vara uppfyllda. 6
Krav 16 Original Krav 17 Original Krav 18 Original Krav 19 Original Krav 20 Original Krav 21 Original Krav 22 Original Krav 23 Original Krav 24 Original Leverans av gruppkontrakt skall ske senast fredag 12/2 kl. 17.00 till handledare och kursansvarig Leverans av projektplan skall ske senast onsdag den 17/2 kl. 17.00 via e-post till beställaren och handledaren. Presentation av krav (1) skall ske muntligt för beställare senast fredag den 11/3 klockan 17.00. Detta sammanfaller med BP3. Delleverans omfattande det utvecklade systemet, bruksanvisning, och ett utkast till den konferensartikel som presenterar arbetet skall skickas till beställare och handledare senast onsdag 20/4 klockan 17.00. Slutleverans bestående av den artikel som beskriver gruppens arbete skall skickas till handledare och beställare senast onsdag 15/5. Det skall tydligt framgå i texten att alla - och *-krav skall är uppfyllda samt extrakrav enligt texten ovan. Statusrapporter skall skickas via e-post till beställare varannan måndag med start v. 7 och slut v. 20. Tidsrapporter för varje vecka skall skickas via e-post till handledare och beställare senast måndag 13.00 påföljande vecka Leverans av efterstudie till kursansvarig senast onsdag 27/5 klockan 17.00. Krav märkta * skall vara uppfyllda vid kursens avslutande och redovisning av detta sker genom mail till beställaren senast den 27/5 kl. 17.00. 7
7 Dokumentation För att beställaren skall kunna testa det utvecklade systemet behövs en bruksanvisning. Denna bruksanvisning skall förklara hur man gör för att använda systemets olika funktioner. En bruksanvisning skall följa med systemet Krav 25 Original Krav 26 Original En projektplan skall upprättas Krav 27 Original Mötesprotokoll skall föras vid alla möten Tidsrapporter skall sammanställas varje Krav 28 Original vecka Projektgruppensarbete skall beskrivas i en artikel som lämpar sig för att presenteras på en teknisk konferens. Artikeln skall innehålla nödvändig bakgrundsinformation, Krav 29 Original en beskrivning av vad som gjorts, samt exempel som illustrerar hur metoden fungerar. Detta dokument behöver inte följa LIPS mallarna. En litteraturstudie skall göras och någon, eller några, metoder för att generera nycklar skall identifieras. Dessutom skall någon Krav 30 Original metod för att koda text hittas. Detta för att beställaren skall kunna vidare utveckla projektet. Krav 31 Original En efterstudie skall skrivas. Alla dokument som lämna till beställare skall granskas, med avseende på både Krav 32 Original språk och innehåll, av minst en projektdeltagare, utöver den som skrev texten. Krav 33 Original Alla dokument skall följa LIPS-mallarna * * * * * * * 8 Utbildning Inom projektet erbjuds utbildning i Matlab. 8