Probeer het Vierkant-cijfer

Gebruik de onderstaande tools om een bericht te versleutelen of te ontsleutelen:

Versleutelen

Resultaat:

Ontsleutelen

Resultaat:

Gegenereerde Matrices

Prachtige momenten in de geschiedenis

Het Vierkant-cijfer: Historische Achtergrond en Versleutelingsprincipes

Het Vierkant-cijfer is een symmetrische versleutelmethode uitgevonden door de Fransman Felix Delastelle (1840–1902) en maakt deel uit van de moderne cryptografie. Deze versleutelmethode versleutelt letters in paren met behulp van vier 5×5 matrixen, elk met 25 letters. Meestal wordt de letter Q weggelaten, of worden I en J als dezelfde letter beschouwd. Alternatief kan de methode worden aangepast om 6×6 matrixen te gebruiken om 10 cijfers op te nemen.

Tijdens het versleutelingsproces worden twee Engelse woorden gekozen als sleutels, zoals "example" en "keyword". Na het verwijderen van dubbele letters worden de overgebleven letters in volgorde in de matrixen geplaatst. Deze twee matrixen worden in de rechterbovenhoek en linkeronderhoek geplaatst, terwijl de matrixen linksboven en rechtsonder het alfabet van A tot Z gebruiken om de matrixen te vormen, wat de Vierkant-cijfer-matrix creëert.

Om een bericht te versleutelen, worden de letters in paren gescheiden, zoals "hello world" dat "he ll ow or ld" wordt. Op basis van de posities in de matrixen worden de overeenkomstige versleutelde letters gevonden. Bijvoorbeeld, bij het versleutelingsproces van "he" wordt de positie van "h" in de matrix linksboven en de positie van "e" in de matrix rechtsonder gevonden. Vervolgens wordt in de matrix rechtsboven de letter in dezelfde rij als "h" en dezelfde kolom als "e" gelokaliseerd, en in de matrix linksonder wordt de letter in dezelfde kolom als "h" en dezelfde rij als "e" gevonden. Deze twee letters vormen het versleutelde cijfertekst.

De zwakte van het Vierkant-cijfer ligt in het geval waar twee letters in dezelfde kolom staan, de oorspronkelijke letters worden gebruikt, wat ongeveer 20% van de inhoud kan blootleggen. Daarnaast, aangezien het een symmetrische versleutelmethode is, is het gemakkelijk te kraken door geregistreerde vergelijkingen, wat resulteert in een lage beveiliging. Een ander probleem is dat het alleen een even aantal karakters kan versleutelen. Als er een oneven aantal is, kan het laatste resterende karakter niet worden versleuteld, en het gebruik van het oorspronkelijke karakter of opvulling maakt de cijfertekst kwetsbaarder voor blootstelling.

Als onderdeel van de klassieke cryptografie, hoewel het Vierkant-cijfer niet de veiligheid biedt van moderne versleutelingsalgoritmen, heeft de eenvoud en historische betekenis ervan inspiratie geboden voor moderne versleutelingsmethoden.

Stap-voor-stap Gids voor Vierkant-cijfer Versleuteling

De volgende is een gedetailleerde stap-voor-stap gids voor het versleutelen met het Vierkant-cijfer, met de sleutelwoorden "Four" en "Cipher" en de klare tekst "Hello World".

Stap 1: Voorbereiding

  • Kies Sleutelwoorden
    • sleutel1 = "Four"
    • sleutel2 = "Cipher"
  • Bereid de Klare Tekst voor
    • Klare tekst is "Hello World".
  • Converteer de Klare Tekst naar een Geschikt Formaat voor Versleuteling
    • Converteer naar hoofdletters en vervang de letter J door I: Hello World -> HELLOWORLD
    • Verwijder niet-alfabetische karakters: HELLOWORLD
    • Als de lengte van de klare tekst oneven is, voeg dan het teken X toe aan het einde.

Stap 2: Genereer Lettervierkanten

Gebruik de sleutelwoorden om vier 5x5 lettervierkanten te genereren. Het alfabet laat doorgaans de letter J weg, waarbij I wordt gebruikt.

Functie om Lettervierkanten te Genereren

                
                function createSquare(keyword) {
                    let alphabet = "ABCDEFGHIKLMNOPQRSTUVWXYZ";
                    let used = {};
                    let square = "";
                    keyword = keyword.toUpperCase().replace(/J/g, 'I');
                    for (let i = 0; i < keyword.length; i++) {
                        if (!used[keyword[i]]) {
                            (used[keyword[i]]) = true;
                            square += keyword[i];
                        }
                    }
                    for (let i = 0; i < alphabet.length; i++) {
                        if (!used[alphabet[i]]) {
                            square += alphabet[i];
                        }
                    }
                    return square;
                }
                
            

Genereer 4 Lettervierkanten

Vierkant 1 (square1) en Vierkant 4 (square4) met sleutel1 = "FOUR":

                
                F O U R A
                B C D E G
                H I K L M
                N P Q S T
                V W X Y Z
                
            

Vierkant 2 (square2) en Vierkant 3 (square3) met sleutel2 = "CIPHER":

                
                C I P H E 
                R A B D F
                G K L M N
                O Q S T U
                V W X Y Z
                
            

Stap 3: Versleutelingsproces

Verdeel de klare tekst in paren van letters en versleutel elk paar. Voorbeeld klare tekst: HELLOWORLD.

Verdeel Klare Tekst

HELLOWORLD -> HE LL OW OR LD

Versleutel Elk Paar Letters

Gebruik de volgende functie om de positie van letters in de vierkanten te vinden:

                
                    function findPosition(square, char) {
                        let index = square.indexOf(char);
                        let row = Math.floor(index / 5);
                        let col = index % 5;
                        return [row, col];
                    }
                
            

Versleutel elk paar letters stap voor stap:

  • Versleutel Paar "HE"
    • H staat op positie (2, 0) in square1
    • E staat op positie (1, 3) in square4
    • Neem (2, 3) uit square2 -> M
    • Neem (1, 0) uit square3 -> R
    • Resultaat: HE -> MR
  • Versleutel Paar "LL"
    • L staat op positie (2, 3) in square1
    • L staat op positie (2, 3) in square4
    • Neem (2, 3) uit square2 -> M
    • Neem (2, 3) uit square3 -> M
    • Resultaat: LL -> MM
  • Versleutel Paar "OW"
    • O staat op positie (0, 1) in square1
    • W staat op positie (4, 1) in square4
    • Neem (0, 1) uit square2 -> I
    • Neem (4, 1) uit square3 -> W
    • Resultaat: OW -> IW
  • Versleutel Paar "OR"
    • O staat op positie (0, 1) in square1
    • R staat op positie (0, 3) in square4
    • Neem (0, 3) uit square2 -> H
    • Neem (0, 1) uit square3 -> I
    • Resultaat: OR -> HI
  • Versleutel Paar "LD"
    • L staat op positie (2, 3) in square1
    • D staat op positie (1, 2) in square4
    • Neem (2, 2) uit square2 -> L
    • Neem (1, 3) uit square3 -> D
    • Resultaat: LD -> LD

Definitieve Cijfertekst

Combineer de versleutelde paren letters. De cijfertekst voor HELLOWORLD is: MRMMIWHILD

Vergelijking van Vierkant-cijfer, Dubbele Playfair Cijfer, en Playfair Cijfer

Overeenkomsten

  • Polygrafische Substitutie Cijfers
    • Het Vierkant-cijfer, Dubbele Playfair-cijfer en Playfair-cijfer zijn allemaal polygrafische substitutie cijfers. Dit betekent dat ze paren of groepen letters gebruiken als de basisunit voor versleuteling en ontsleuteling, in plaats van individuele letters.
  • Lettermatrixen
    • Alle drie de cijfermethoden gebruiken lettermatrixen voor versleuteling en ontsleuteling. Elke methode is afhankelijk van de posities van letters in deze matrixen om substituties of transformaties uit te voeren.
  • Doel
    • Het ontwerpdoel van deze cijfers is om de veiligheid van traditionele substitutie-cijfers met enkele letters te verbeteren door de complexiteit van de versleuteling te vergroten, waardoor eenvoudige frequentieanalyse-aanvallen worden voorkomen.

Verschillen

Vierkant-cijfer

  • Lettermatrixen: Gebruikt vier 5x5 lettermatrixen.
  • Versleutelingsunit: Verwerkt twee letters tegelijk.
  • Stappen:
    • Vier lettermatrixen: Twee matrixen worden gegenereerd uit sleutelwoorden en de andere twee zijn meestal in standaard alfabetische volgorde.
    • Verdeel de klare tekst in paren van letters.
    • Vind de positie van elk paar letters in twee verschillende matrixen en vind vervolgens de overeenkomstige versleutelde letters in de andere twee matrixen.
  • Complexiteit: Verhoogt de complexiteit en veiligheid door meer matrixen te gebruiken in vergelijking met het Playfair-cijfer.

Dubbele Playfair Cijfer

  • Lettermatrixen: Gebruikt twee 5x5 lettermatrixen.
  • Versleutelingsunit: Verwerkt twee letters tegelijk.
  • Stappen:
    • Twee lettermatrixen worden gegenereerd uit verschillende sleutelwoorden.
    • Verdeel de klare tekst in paren van letters.
    • Gebruik de eerste matrix om de positie van de eerste letter te vinden en de tweede matrix om de positie van de tweede letter te vinden, vervang vervolgens de letters volgens de regels.
  • Complexiteit: Voegt complexiteit en veiligheid toe door een tweede matrix in te voeren in vergelijking met het enkele Playfair-cijfer.

Playfair Cijfer

  • Lettermatrixen: Gebruikt één 5x5 lettermatrix.
  • Versleutelingsunit: Verwerkt twee letters tegelijk.
  • Stappen:
    • Eén lettermatrix wordt gegenereerd uit een sleutelwoord.
    • Verdeel de klare tekst in paren van letters.
    • Vervang de letters op basis van hun positionele relatie (dezelfde rij, dezelfde kolom of verschillende rijen en kolommen).
  • Complexiteit: Verhoogt de complexiteit in vergelijking met eenvoudige substitutie-cijfers met enkele letters, maar is minder complex dan het Dubbele Playfair- en Vierkant-cijfer.

Vergelijkingstabel

Kenmerk Vierkant-cijfer Dubbele Playfair Cijfer Playfair Cijfer
Aantal Lettermatrixen 4 2 1
Versleutelingsunit Twee letters tegelijk Twee letters tegelijk Twee letters tegelijk
Sleutelwoorden Twee sleutelwoorden Twee sleutelwoorden Eén sleutelwoord
Complexiteit Hoog Middel Laag
Versleutelingsregels Gebruikt vier matrixen om substituties te vinden Gebruikt twee matrixen om substituties te vinden Gebruikt één matrix om substituties te vinden

Transpositie en Substitutie

Het Traité Élémentaire de Cryptographie van Felix Delastelle onderzoekt diepgaand de methoden van transpositie en substitutie in de cryptografie. Bij transpositie worden de posities van de letters in de klare tekst gewijzigd om het bericht te versleutelen. Bijvoorbeeld door de volgorde van letters om te keren, zoals in het geval van "Paul est parti pour Lyon", wat wordt "NOYLRUOPITRAPTSELUAP". Een andere methode is groepering, waarbij de klare tekst in een vooraf bepaalde vorm wordt geplaatst en vervolgens letters worden geëxtraheerd in een afgesproken volgorde om de cijfertekst te vormen.

Origineel in het Frans:
"L'inversion consiste à transposer ou déplacer les lettres du texte clair suivant une méthode convenue entre les correspondants, de telle sorte qu'il soit facile aux initiés de rétablir l'ordre primitif."

Vertaling in het Engels:
"Inversie bestaat uit het verplaatsen of verschuiven van de letters van de klare tekst volgens een afgesproken methode tussen de correspondenten, zodat het voor de ingewijden gemakkelijk is om de oorspronkelijke volgorde te herstellen."

Origineel in het Frans:
Le renversement s'effectue en écrivant les lettres du clair en sens inverse de l'ordre normal, la dernière lettre devenant la première, l'avant-dernière la seconde, l'antépénultième la troisième, etc. Exemple: "Paul est parti pour Lyon" s'écrira "NOYLRUOPITRAPTSELUAP". Le renversement peut s'appliquer soit au texte entier, soit successivement à chaque mot ou à des groupes d'un nombre de lettres convenu. La phrase ci-dessus, divisée en deux groupes de dix lettres, donnerait: "RAPTSELUAPNOYLRUOPIT". Et en quatre groupes de cinq lettres: "ELUAPRAPTSUOPITNOYLR".

Vertaling in het Engels:
De omkering wordt uitgevoerd door de letters van de klare tekst in omgekeerde volgorde te schrijven, waarbij de laatste letter de eerste wordt, de voorlaatste de tweede, de antepenultime de derde, enz. Voorbeeld: "Paul est parti pour Lyon" zou worden geschreven als "NOYLRUOPITRAPTSELUAP". De omkering kan worden toegepast op de gehele tekst, of opeenvolgend op elk woord of op groepen van een afgesproken aantal letters. De bovenstaande zin, verdeeld in twee groepen van tien letters, zou opleveren: "RAPTSELUAPNOYLRUOPIT". En in vier groepen van vijf letters: "ELUAPRAPTSUOPITNOYLR".

Origineel in het Frans:
"De nombreux systèmes ont été imaginés dans ce but: 1 Renversement des lettres; 2 Groupements divers; 3 Carrés et grilles; 4 Méthodes diverses."

Vertaling in het Engels:
"Verschillende systemen zijn bedacht voor dit doel: 1 Omdraaiing van letters; 2 Diverse groeperingen; 3 Vierkanten en roosters; 4 Diverse methoden."

Origineel in het Frans:
"Il est évident que le renversement ne donne aucune sécurité au point de vue du secret, les dépêches écrites dans ce système ne résistant pas à un examen un peu sérieux."

Vertaling in het Engels:
"Het is duidelijk dat omkering geen enkele veiligheid biedt vanuit het oogpunt van geheimhouding; berichten die in dit systeem zijn geschreven, weerstaan geen serieuze analyse."