Kirjoittaja |
Viesti |
palle
| Perjantaina, 3. helmikuuta, 2006 - klo 13.17: | | Ongelma olis ku pitäs saaha yks ohjelma tehtyä: Eli pitäs saada koodausohjelma saksalaisten 2 maailmansodan ajoilta olevasta koneesta. ELI tässä olis haaveiltu toteutusmenetelmä: tekstit suluissa on ohjeita ***************************************************************** (Alkuteksti ja valinta) Koodausohjelma 2005 Mitä haluaisit tehdä? (1) LUODA KOODATUN VIESTIN (2) LUKEA KOODATUN VIESTIN ----------------------------------------------- (JOS käyttäjä valitsee "1" tulosta seuraava: ) (Käyttäjä valitsee koodiavaimen pituuden) LUO KOODATTU VIESTI Syötä koodiavaimen pituus (2-5): esim.3 (Ohjelma luo avaimen) Ohjelma on luonut seuraavan avaimen: 8, 1, 2 (Seuraavaksi käyttäjä syöttää viestin joka pitäisi koodata) Kirjoita viesti jonka tahtoisit koodata: ENGLAND (Ohjelma koodaa koodisanan koodiavaimen avulla) Luomasi koodisana: MOITBPL > (Ohjelma palaa alkuun) ----------------------------------------------- (JOS käyttäjä valitsee "2" tulosta seuraava: ) (Käyttäjä syöttää koodiavaimen jolla koodisana puretaan) LUE KOODATTU VIESTI Syötä koodiavaimen pituus: 3 (Käyttäjä syöttää tarvittavat koodinumerot) Kirjoita nr 1: 8 Kirjoita nr 2: 1 Kirjoita nr 3: 2 (Käyttäjä syöttää koodatun viestin) Syötä koodattu sana jonka haluat lukea: MOITBPL (Ohjelma koodaa sanan alkuperäiseen muotoon ja tulostaa sen) Viestisi on purettu ja se on: ENGLAND > (Ohjelma palaa alkuun)
|
Jon
| Perjantaina, 3. helmikuuta, 2006 - klo 13.35: | | Niin mikä tässä on varsinainen ongelma? Mihin homma tyrehtyy?
|
Jani Kuituniemi
| Perjantaina, 3. helmikuuta, 2006 - klo 16.07: | | Lisäksi: noita Enigma emulaattoreita on aika kasa maailmalla. Oletko ihan varma, että kannattaa alkaa tehdä alusta asti itse?
|
Piru
| Perjantaina, 3. helmikuuta, 2006 - klo 16.44: | | Eikös nämä kotitehtävät ole tarkoitettu tehtäväksi itse?
|
palle
| Perjantaina, 3. helmikuuta, 2006 - klo 17.55: | | Olen alkanut itsepäisesti opiskelemaan ohjelmointia ja ostin kirjat sun muut mutten oikeen tajua täysin miten tuo tehtäis parhaiten. Ei ole rahoitusta koulunpenkille enää joten ... En siis oikeen ymmärrä että miten ne randominumerot yhistetään silleen että ne vaihtas koodais sen sanan int-arvot... ehkä vaan sen verran avuja ku näyttää olevan nihkeetä tää helppaus?
|
Piru
| Perjantaina, 3. helmikuuta, 2006 - klo 18.10: | | No ensin pitää kaivaa tuo algoritmi esiin jostain. Siis miten tuota avainta käytetään viestien koodaamiseen ja purkuun. Ilman algoritmia ei koodaus/enkoodaus rutkuja voi tietenkään ohjelmoida. fgets() rivin lukemiseen, sscanf() tai atoi() merkkijonon muuttamiseen numeroksi (int). printf:llä tuloksia ruudulle (%d tulostaa intin). Loppu onkin ihan algoritmin toteutusta ja ohjelmarakenteiden viilausta.
|
Joanna
| Perjantaina, 3. helmikuuta, 2006 - klo 19.31: | | Tunnustan että tuota lukiessa tuli ensimmäisenä mieleen että jollakulla on harkkatyö tekemättä ja tarvitsee apuja pisteiden saamiseksi kotiin.. :-) Mutta asiaan.. Tehdäksesi selauslaitteen pitää tietää miten se käsittelee salausavainta ja salattavaa koodia rutiinin aikana. Jos kyseessä olisi oikeasti esim Enigma:n (kuuluisin saklsalainen salauskone, kannattaa etsiä netistä) teko niin sitten tietoa on helppo hankkia ja netistä löytyy muistaakseni valmiita testikoneita (esim Javalla tehtyjä) joihin voi verrata omaa ohjelmansa toimintaa.. Tosin ulkomuistista mainitsemani Enigma tarvitsee enemmän tietoa kuin vain kolmen numeron ketjun että salausavaimen saa muodostettua joten siitä ei luultavasti ole kyse.
|
Jani Kuituniemi
| Perjantaina, 3. helmikuuta, 2006 - klo 21.02: | | No, jos nuo kolme numeroa vastaavat niitä kolmen koodauslevyn asentoa niin niiden lisäksi tarvitset vielä sen ristikytkentä-taulun asetukset kysyttäväksi käyttäjältä jotta homma voisi toimia.
|
Frn
| Perjantaina, 3. helmikuuta, 2006 - klo 23.28: | | En tunne Enigma-algoritmia, mutta hakukoneella löytyy varmasti. Kuitenkin tuon esimerkin perusteella näkee selvästi, että kyseessä on aakkosiin perustuva merkistö, jossa kuhunkin merkkiin lisätään avaimen yhden nimeron arvo ja siirrytään eteenpäin. kun avain loppuu, se alkaa alusta. Erittäin yksinkertainen toteutus siis. Kyllähän tämä kovasti on ainakin perinteisen harjoitustehävän näköinen. Muistelisin itsekin, että Enigma olisi ollut hieman monimutkaisempi viritys, mutta eikös sitä paranneltu muutamaankin otteeseen.
|
Joanna
| Lauantaina, 4. helmikuuta, 2006 - klo 0.28: | | Kannattaa niiden jotka eivät ole tutustuneet katsoa vaikkapa http://en.wikipedia.org/wiki/Enigma_machine Tuo näyttäisi sisältävän aika hyvän selityksen siitä miten ne roottorit toimivat.
|