Caesarcijferproject

Op deze pagina, ga je werken met de Caesarcijfer.

Een Caesarcijfer (of schuifcijfer) is een simpele versleutelmethode. Iedere letter in zogenaamde "platte tekst" (de nog onversleutelde tekst), verschuift de letters in het alfabet een vast aantal posities. Na de 'Z', gaat de verschuiving weer door aan het begin, dus bij de 'A'. Dus als we bijvoorbeeld "ABCZ123abcz" 4 posities verschuiven krijgen we "EFGD567efgd". Deze techniek is vernoemd naar Julius Caesar, omdat hij zijn brieven versleutelde op deze manier.

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

In de computer worden alle tekens van je toetsenbord (Hoofdletters, kleine letters, spaties, leestekens, getallen en andere symbolen) opgeslagen als getallen. Om te zorgen dat iedere computer dezelfde tekens naar dezelfde getallen omzet, gebruikt iedere computer Unicode, dit is het standaardprotocol dat zegt welk getal welk teken moet zijn. Over het algemeen hoeft een programmeur niet te weten welk getal welk teken is, 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 zien we leestekens en symbolen zoals = ? @ # ^ * { of ~?

Als een bepaalde set tekens een redelijke afstand verschoven wordt dan mag je aannemen dat de nieuwe tekens nog steeds leesbare tekens zijn. De set kan wel een aantal non-alfanumerieke tekens bevatten. Non-alfanumeriek betekent dat het geen letters of cijfers zijn.

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 cijfertekst (de versleutelde versie) staat voor een spatie in de platte tekst?
  • Bij deze cijfer, wordt een 1 een 5 en een 4 een 8, dus de verschuiving van 4 is duidelijke te zien. Wat wordt een 9?

  1. Maak met pen en papier gebruik van een schuifcijfer om een kort bericht te versleutelen en daarna weer te ontcijferen om een gevoel te krijgen voor hoe de cijfer werkt.
  2. Ontwikkel een algoritme voor het versleutelen en ontcijferen dat werkt voor iedere tekst en iedere verschuiving.
  3. Probeer de schuifcijfer zelf in Snap! te bouwen met je algoritme, als je vastloopt, kijk dan naar deze pagina voor hints.
  4. Je kan het versleutelde bericht uit Snap! halen door met de rechtermuisknop op de variabele te klikken waarin je versleutelde bericht zit en daarna op "exporteren..." te klikken. Hierna 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 cijfer. Gebruik daarna je programma om een geheim bericht te versleutelen en stuur dit bericht naar je partner via bijvoorbeeld een email. 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 kopieert en plakt maar op een andere manier overneemt (bijvoorbeeld door het op te schrijven of in je telefoon te typen), dan mis je een aantal tekens in je bericht. Dit komt doordat Unicode-tekens na 126 niet meer leesbaar zijn, ze symboliseren dingen zoals "verwijder". Deze tekens zie je niet in Snap!, dus je kan ze niet met de hand kopiëren. Als je ze dus kopieert en plakt met bijvoorbeeld "Ctrl-C" en dan "Ctrl-V", dan heb je ze 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. Je wil wellicht dat je alfabet alleen leesbare tekens bevat, dus alleen de tekens in de Unicodetabel die bovenin de pagina stond.
  2. Als je een lang bericht tegenkomt dat versleuteld is met een Caesarcijfer, wat is dan een manier om het bericht te ontcijferen zonder dat je weet hoeveel plekken de tekens verschoven zijn? Bespreek de zwaktes van een Caesarcijfer en hoe het gemakkelijk te breken is.
  3. Doe wat onderzoek naar andere soorten cijfers die vroeger gebruikt werden. Zoek vooral naar het Vigenèrecijfer, die veel gebruikt is tijdens de Tweede Wereldoorlog.
  4. Bedenk je eigen cijfer en bouw het in Snap!.
Terug Volgende