Viikko 1 |
|
|
25.7. |
~ 5 |
Aiheeseen perehtyminen |
26.7. |
~ 5 |
Aiheeseen perehtyminen |
27.7. |
5 |
Projektin pystytys, dokumentoinnin kirjoitus, aiheen tarkennus |
Viikko 2 |
|
|
31.7. |
8 |
Vigenere cipherin toteutus ja sen testit, Keyed Vigenere salauksen aloitus |
1.8. |
6 |
Toteutus transposition cipher ja sen testit, ja alustava Keyed Vigenere |
2.8. |
5 |
Transposition cipherin jatkamista, Autokey Vigenere cipherin toteutus ja testit, dokumentaation päivittämistä |
3.8. |
5 |
Javadocin kirjoittamista luokille, mutaatiotestauksen(?) kokeilu, jacoco- ja javadoc-raporttien luonnin testaus, käyttöliittymä (jota ei vielä edes ole) poistettiin testauskattavuudesta, Keyed Vigenere cipherille testejä |
Viikko 3 |
|
|
6.8. |
1 |
Salauksen murtamisen alkutoimia ja tutkimusta |
9.8. |
11 |
IndexOfCoincidence ja FrequencyAnalysis -luokkien avulla Vigenere cipherin murtamista eli salausavaimen löytämistä (alustava koodi, ei refaktoroitu), apuluokkia ja -algoritmeja (mm. suurin yhteinen tekijä) |
10.8. |
8 |
Lisää testejä, javadocin täydennystä, tutkimusta, dokumentaation kirjoitusta, iteratiivinen euclid |
Viikko 4 |
|
|
13.8. |
8 |
Geneerinen merge sort 1. versio, geneerinen insertion sort sekä näille + primitiivityyppi järjestysalgoille testejä, yleistä testikattavuuden parantamista, yleistä tutkimusta |
15.8. |
8 |
Testikattavuuden kasvattamista erityisesti IndexOfCoincidence luokalle ja samalla yhden virheen korjaus, testejä varten tiedoston IC_test.xlsx luonti, jonka avulla lasketaan testisyötteitä ja johon dokumentoidaan myös testejä |
16.8. |
9 |
Testien luonnin jatkoa, työmäärältään hyvin massiivisen testin luonti IndexOfCoincidence-luokalle taulukkolaskentaohjelman avulla ja jo testattujen oman ohjelman funktioiden avulla (osajonojen tulostus ja osajonon dekryptaus jokaisella aakkosella), Perehtymistä Transposition cipherin murtamiseen |
17.8. |
15 |
Transposition cipherin murtaminen lyhyillä avaimilla käyden läpi kaikki avaimen kirjainten järjestysten permutaatiot läpi, quad-, tri, bi ja monogram statistiikan laskeminen tekstitiedostossa olevan datan perusteella, permutaatioiden generointi, kaikille näille testejä. Dokumentaation päivittämistä |
Viikko 5 |
|
|
18.8. |
1 |
Combinatorics-luokan optimoinnin kokeilua (josta lopulta vain taulukoiden int[] -> byte[] muutos päätyi koodiin), Ngrams -luokan tekstitiedoston lukemisen virhetilanteille testejä |
20.8. |
3 |
Hajautustaulujen toteutukseen liittyvä tutkimus |
21.8. |
6 |
Lisää tutkimusta, kahteen suuntaan linkitetyn listan toteutus ja testit, ja yhteentörmäykset ketjutuksella ratkaisevan perushajautustaulun toteutuksen aloitus |
22.8. |
~ 8 |
Hajautustaulun (HashTable luokka) sekä linkitetyn listan uudelleensuunnittelu ja toteutus, Vigenere cipherin ja sen varianttien refaktorointi siten että hajautustataulu on tarpeeton, Hill climbing algoritmin tutkimusta |
23.8. |
8 |
HashedSet luokan ja sille oman kahteen suuntaan linkitetyn listan luonti mallintamaan suurinpiirtein Javan HashSettiä, Hill climbing algoritmin aloittelu, dokumentaation lisäys |
24.8. |
7 |
Graafisen käyttöliittymän hyvin karu ei-refaktoroitu luonnos, missä nyt olemassa toiminnallisuus siirtyä päävalikosta salaukseen ja takaisin, mutta ei vielä liitettyä algoritmillista toiminnallisuutta, testikattavuuden nosto, dokumentoinnin päivitys |
Viikko 6 |
|
|
25.8. |
6 |
Käyttöliittymään lisätty kaikkien salausten perustoiminnallisuus ilman syötteentarkistusta (ja ilman tekstin manipulointityökalua, joka toivotavasti tulossa), samalla KeyedVigenereCipher refaktoroitiin siten että aakkostoavaimen voi muuttaa set-metodilla |
26.8. |
2 |
Dokumentoinnin päivitys ja käyttöliittymässä alustavien ohjetekstien lisäys eri salauksille |
27.8. |
6 |
Lehmer random number generaattorin luonti ja testit |
28.8. |
11 |
Käyttöliittymään 1. versio murtamistoiminnallisuudesta, HillClimber luokan päivitys |
29.8. |
~ 5 |
Vigenere cipherin murtamisen algoritmistamisten yritelmiä |
30.8. |
2 |
Kuvien ja ohjelman toimintaa kaappaavan gifin lisäys dokumentaatioon tukemaan kommentointia |
31.8. |
~ 10 |
Salauksen murtamisen suorituskykytestauksen suunnittelu ja ensimmäinen toteutus sekä testiaineiston luonti, yleistä dokumentaation päivitystä |
Viikko 7 |
|
|
3.9. |
6 |
Plaintext-testiaineiston täydentämistä sopivan pituisilla teksteillä |
4.9. |
5 |
Vigenere-salauksen murtamisen suorituskykytestin luonti ja dokumentointi, HashTable ylivuotolistojen pituuksien testauksen aloitus |
5.9. |
4 |
HashTable:n (ja sitä kautta HashedSetin) ylivuotolistojen pituuksien testaus |
7.9. |
7 |
Suortiuskykytestauksen viimeistely, dokumentoinnnin täydentäminen |