...
Først litt historie:
En gang for lenge siden regjerte Julius Cæsar over Romerriket. Han var en svært suksessfull militær general og som et ledd i hans militære strategi skal han visstnok ha benyttet seg av det vi idag kaller for et Cæsarschiffer. Dette er en veldig enkel form for kryptering der hver bokstav i klarteksten erstattes med en annen bokstav et gitt antall steg lenger ut i alfabetet. For eksempel hvis vi skal skrive bokstaven A i cæsarchiffer og bruker en såkalt steglengde eller "nøkkel" på 3, vil vi få ut D.
Et eksempel på det engelske alfabetet og dets cæsarchiffer med nøkkel på 3:
Code Block |
---|
Klartekst: ABCDEFGHIJKLMNOPQRSTUVWXYZ Chiffertekst: DEFGHIJKLMNOPQRSTUVWXYZABC |
Som du kan se så hopper man tilbake til start når man kommer til slutten av alfabetet, slik at neste bokstav etter Z blir A etc.
a)
Lag nå funksjonen
caesar(word, key)
, som tar inn en bokstav word
og forskyver hver bokstav (som er av typen char
) i word
med key
antall tegn i alfabetet.Bokstavene skal forskyves til høyre dersom step er positiv og til venstre dersom den er negativ.
Chifferet skal kun kjøres på bokstaver i det engelske alfabetet, dvs.
a-z
. Du kan anta at det kun tas inn små bokstaver.Code Block | ||
---|---|---|
| ||
>> caesar('terningen', 3) ans = 'whuqlqjhq' |
b)
Utvid nå funksjonen du lagde i deloppgave a) til å kunne håndtere setninger (hvis den ikke allerede gjør det).
...
Code Block | ||
---|---|---|
| ||
>> caesar('terningen er kastet.', 3) ans = 'whuqlqjhq hu ndvwhw.' >> >> plaintext('whuqlqjhq hu ndvwhw.', 3) ans = 'terningen er kastet.' |
...