Tabula recta

Tabula recta i kryptografi (fra latin tabula rēcta) er en kvadratisk tabel af alfabeter, som hver linje er dannet ved at flytte den foregående linje til venstre. Udtrykket blev opfundet af den tyske forfatter og munk Johann Trithemius [1] i 1508 og brugt i hans Trithemius-chiffer.

Trithemius ciffer

Trithemius-chifferet blev udgivet af Johannes Trithemius i hans bog "Polygraphy", som regnes for det første trykte værk om kryptologi.

Trithemius brugte tabula recta til at definere en polyalfabetisk ciffer, som svarede til Leon Battista Albertis diskciffer, bortset fra at rækkefølgen af ​​bogstaverne i målalfabetet ikke var blandet. Tabula recta omtales ofte, når man diskuterer pre-computer-cifre, herunder Vigenère-chifferet og den mindre kendte Blaise de Vigenère-autonøgle-ciffer. Alle polyalfabetiske cifre baseret på Cæsar-cifret kan beskrives i form af tabula recta.

Tabula recta bruger en bogstavsfirkant med 26 bogstaver i alfabetet, efterfulgt af 26 rækker af yderligere bogstaver, hver forskudt til venstre for den forrige. Dette skaber i det væsentlige 26 forskellige Cæsar-cifre.

Den resulterende chiffertekst ligner en tilfældig streng eller blok af data. På grund af den variable forskydning er bogstavernes naturlige frekvenser skjult. Men hvis angriberen ved, at denne metode er blevet brugt, er det let at knække den. Chifferen er sårbar over for angreb, fordi den mangler en nøgle, hvilket er i strid med Kerckhoffs' kryptologiprincip.

Forbedringer

I 1553 udviklede Giovan Battista Bellaso en vigtig udvidelse af Trithemius-metoden, der nu kaldes Vigenère-cifferet . Bellaso tilføjede en tast, der bruges til at diktere chifferens alfabetskifte med hvert bogstav. Denne metode blev fejlagtigt tilskrevet Blaise de Vigenère, som udgav en lignende autonøgle-ciffer i 1586.

Den klassiske Trithemius-cifre (ved at bruge et skift med én) svarer til Vigenère-cifferet med "ABCDEFGHIJKLMNOPQRSTUVWXYZ" som nøglen. Det svarer også til et Cæsar-chiffer, hvor skiftet øges med 1 med hvert bogstav, der starter fra 0.

Brug

I hoveddelen af ​​tabula recta er hvert alfabet forskudt et bogstav til venstre for det over det. Dette danner 26 rækker af forskudte alfabeter, der slutter med et alfabet, der begynder med Z. Adskilt fra disse 26 alfabeter er en overskriftsrække øverst og en overskriftskolonne til venstre, som hver indeholder bogstaverne i alfabetet i AZ-rækkefølge.

For at kryptere og dekryptere tekst kan tabula recta bruges på flere tilsvarende måder. Oftest bruges den venstre kolonne i overskriften til almindelige bogstaver, både i kryptering og dekryptering. Denne brug vil blive beskrevet nedenfor. For at tyde Trithemius-chifferet skal man først på tabula recta finde de bogstaver, der skal tydes: det første bogstav i den første inderste kolonne, det andet bogstav i den anden kolonne, og så videre; bogstavet umiddelbart til venstre i overskriftskolonnen er det tilsvarende dechiffrerede bogstav i klartekst. Hvis man antager et standardskift på 1 uden brug af en nøgle, vil HFNOS-chifferteksten blive dekrypteret som HELLO (H->H, F->E, N->L, O->L, S->O). Så for at dechifrere det andet bogstav i denne tekst for eksempel, skal du først lede efter F i den anden inderste kolonne, og derefter flytte lige til venstre, helt til kolonnen længst til venstre i overskriften, for at finde det tilsvarende bogstav i almindelig tekst: E.

Dataene krypteres på den modsatte måde, idet man først finder hvert bogstav i beskedens almindelige tekst i kolonnen længst til venstre i tabula recta-overskriften og matcher det med det tilsvarende bogstav i de indre kolonner. For eksempel er det første bogstav i en meddelelse i venstre kolonne i overskriften, og derefter matches det mod bogstavet lige overfor i "A"-kolonnen. Det næste bogstav matches derefter mod det tilsvarende bogstav i "B"-kolonnen, og så videre, indtil hele beskeden er krypteret. Hvis den trithemske ciffer er repræsenteret som nøglen ABCDEFGHIJKLMNOPQRSTUVWXYZ, så kan krypteringsprocessen repræsenteres som at finde skæringspunktet for linjen, der indeholder bogstavet, der skal krypteres, med den kolonne, der svarer til det aktuelle bogstav i nøglen. Det bogstav, hvor disse rækker og kolonner skærer hinanden, er chiffertekstbogstavet.

Programmatisk kan chifferen beregnes ved at sætte A = 0, B = 1... {\displaystyle A=0,B=1...} {\displaystyle A=0,B=1...}, derefter krypteringsprocessen vil være som følger: ciphertext = ( almindelig tekst + nøgle ) ( mod 26 ) {\displaystyle ciphertext=(plaintext+key)\!\!\!\!\!{\pmod {26)))) {\displaystyle ciphertext=(plaintext+key) )\!\!\!\!\!\!{\pmod {26}}}. Dekryptering sker på en lignende måde, idet der udveksles chiffertekst og almindelig tekst. Nøglen kan defineres som værdien af ​​et bogstav fra den ledsagende chiffertekst i en løbende nøgleciffer, en konstant for en Cæsar-ciffer eller et nultal med en eller anden periode i Trithemius' brug.

Noter

  1. Trithemius, Johann  // Wikipedia. — 2021-09-07.