Python - Caesar Cipher

Security in Systemen hfd. 8

Leerdoelen

  • Werken met builtin python functies

Opdracht Caesar Cipher

  • Maak een script dat een substitutie uitvoert (encryptie)
  • Security Boris Sondagh Hfd. 8 Cryptografie

Encryptie door Caesar

  • Julias Caesar gebruikte het als communicatie middel
  • Voor commando's aan zijn generaals
    • Een shift van 3
  • Er schijnen meer complexe varianten geweest te zijn
  • ROT13 is precies in het midden

Tekst en nummers

  • Computerswerken met binaire getallen
  • Mensen werken met tekst
  • Tekst moet omgezet worden naar nummers
  • Er moet een vertaaltabel zijn van character naar nummer
  • De meest bekende tabel: ASCII-tabel

ASCII table

  • A = 0100 0001 = 65
    • B is dan 66 etc.
  • a = 0110 0001 = 97
    • b is dan 98 etc.
  • 0 = 0011 0000 = 48
    • 48 + 9 = 57

Python char conversie

  • Karakters omzetten naar nummers
  • Built in functions
    • ord zet character om in decimale waarde
    • chr zet decimale waarde om in character

Voorbeeld code schuiven

naam="MijnTekst1"

for char in naam:
    int_char = ord(char)     # Get numeric value of char
    int_char += 1            # Shift one to the right
    enc_char = chr(int_char) # Get character from value
    print(f"{char} – {enc_char}")

Hou het simpel

  • We willen berichten omzetten
    • Alleen hoofdletters, kleine letters en cijfers
      • Uppercase, lowercase and numbers
    • Alle andere tekens doen we niets mee!

Extra handigheidjes

  • Per variabele kan je vaststellen of deze uppercase, lowercase of een nummer is
    • <var-naam>.isupper
    • <var-naam>.islower
    • <var-naam>.isnumeric
  • De uitkomst is True als hij waar is

Voorbeeld code detectie

naam="MijnTekst1"

for char in naam:
    if char.isupper():
        case = ‘Hoofdletter’
    elif char.islower():
        case = ‘Kleine letter’
    elif char.isnumeric():
				case = ‘Nummer’

    print(f"{char} – {case}")

Opdracht Caesar Cipher

  • Maak een script dat een substitutie uitvoert (encryptie)
    • Security Boris Sondagh Hfd. 8 Cryptografie
  • Denk erom dat je
    • na de Z weer bij A moet beginnen
    • na z weer bij a moet beginnen
    • na 9 weer bij de 0 komt
    • leestekens niet verandert
  • De gebruiker kiest voor de verschuiving een waarde tussen 1 en 9
  • Gebruik if/elif/else, for, while en try/except
  • Functies maken het leven simpel