Caesarcijferproject

Op deze pagina werk je met het Caesarcijfer.

Een Caesarcijfer (of schuifcijfer) is een simpele versleutelingsmethode. Iedere letter in zogenaamde 'klare tekst' (de niet-versleutelde tekst), verschuift een vast aantal posities in het alfabet. Na de 'Z', start de verschuiving weer bij de 'A'. Verschuif 'ABCZ123abcz' vier posities en je krijgt 'EFGD567efgd'. Deze techniek is vernoemd naar Julius Caesar, omdat hij zijn brieven versleutelde op deze manier.

In dit project ontwikkel je een programma dat een schuifcijfer gebruikt dat niet na de 'Z' naar de 'A' verschuift. In plaats daarvan gebruiken we andere tekens zoals '[' en '{'.

In de computer worden alle tekens van je toetsenbord (niet alleen letters en hoofdletters, maar ook spaties, leestekens, cijfers en andere symbolen) opgeslagen als een getallenreeks. Om te zorgen dat iedere computer dezelfde tekens naar dezelfde getallen omzet, gebruikt iedere computer Unicode als standaardprotocol. Over het algemeen hoeft een programmeur niet te weten welk getal naar welk teken verwijst, maar soms moet je een teken specificeren door het getal te noemen. De tabel hieronder geeft de Unicode voor een aantal tekens.


Geen Afbeelding

Het unicode waarde vanblok rapporteert het getal dat gebruikt wordt voor een bepaald teken:
Geen Afbeelding

Het unicode als letterblok rapporteert het teken dat wordt weergegeven voor een bepaald getal in Unicode:
Geen Afbeelding


Waarom staan er leestekens en symbolen zoals = ? @ # ^ * { of ~?

Wanneer een bepaalde set tekens over een redelijke afstand verschoven wordt, dan mag je aannemen dat de nieuwe tekens nog steeds leesbare tekens zijn. De nieuwe set kan wel niet-alfanumerieke tekens bevatten. (Niet-alfanumeriek betekent: geen letters of cijfers.)

Als we bijvoorbeeld een verschuiving van 4 plaatsen gebruiken om de volgende tekst te versleutelen:

De slag om Arnhem was op 17 september 1944

dan krijgen we:

Hi$wpek$sq$Evrliq$[ew$st$5;$witxiqfiv$5=88

  • Welk teken in de versleutelde tekst staat voor een spatie in de platte tekst?
  • In deze code, wordt een 1 een 5 en een 4 een 8, dus de verschuiving van 4 is duidelijk te zien. Wat wordt een 9?


  1. Versleutel en decodeer met pen en papier een kort bericht met een schuifcijfer.
  2. Ontwikkel een algoritme voor deze procedure dat werkt voor elke invoertekst en voor elke verschuivingswaarde.
  3. Probeer nu het schuifcijfer met jouw algoritme in Snap! te bouwen. Loop je vast, kijk dan naar deze pagina voor hints.
  4. Je haalt een versleuteld bericht uit Snap! door met de rechtermuisknop te klikken op de variabele die je versleutelde bericht bevat, en daarna 'exporteren...' te selecteren. Nu zal een tekstbestand worden gedownload met daarin je versleutelde bericht.

    Geen Afbeelding

  5. Test nu je programma. Kies samen met je partner een verschuiving voor de versleuteling. Gebruik daarna je programma om een geheim bericht te versleutelen en stuur dit bericht naar je partner, via bijvoorbeeld een e-mail. Laat je partner daarna het bericht ook weer ontcijferen met je programma.
  6. Ik mis een aantal letters, waar zijn ze heen?
    Als je je versleutelde bericht niet gewoon kopieert en plakt, maar op een andere manier overneemt (bijvoorbeeld door het op te schrijven of in je telefoon te typen), dan verdwijnen mogelijk een aantal tekens uit je bericht. Dit komt doordat sommige Unicode-tekens na 126 afdruktekens dingen symboliseren zoals 'verwijder'. Deze tekens worden niet weergegeven in Snap!, dus je kunt ze niet met de hand kopiëren. Met copy and paste via 'Ctrl-C' en dan 'Ctrl-V', lukt het wel. In opdracht A van 'Een stapje verder', ontwikkel je een methode om dit probleem te omzeilen.

  1. Bouw een versie van de Caesarcijfer die niet alleen de tekens verschuift, maar ook weer bij het begin van het alfabet begint wanneer het einde is bereikt. Beperk het alfabet tot de set leesbare tekens, zie de Unicodetabel bovenaan de pagina.
  2. Als je een lang bericht tegenkomt dat versleuteld is met een Caesarcijfer, wat is dan een manier om de code te kraken als je de waarde van de verschuiving niet kent? Bespreek de zwakke punten van een Caesarcijfer en hoe het gemakkelijk te breken is.
  3. Doe wat onderzoek naar andere soorten versleutelingen die vroeger gebruikt werden. Zoek bijvoorbeeld naar het Vigenèrecijfer, dat veel gebruikt is tijdens de Tweede Wereldoorlog.
  4. Bedenk je eigen versleuteling? en bouw het in Snap!.
Terug Volgende