Eenvoudige cijfers: beschrijving van populaire codes en cijfers

Inhoudsopgave:

Eenvoudige cijfers: beschrijving van populaire codes en cijfers
Eenvoudige cijfers: beschrijving van populaire codes en cijfers
Anonim

De behoefte om correspondentie te versleutelen ontstond in de oudheid en er verschenen eenvoudige vervangende cijfers. Versleutelde berichten bepaalden het lot van vele veldslagen en beïnvloedden de loop van de geschiedenis. In de loop van de tijd hebben mensen steeds geavanceerdere coderingsmethoden uitgevonden.

Code en cipher zijn trouwens verschillende concepten. De eerste betekent dat elk woord in het bericht wordt vervangen door een codewoord. De tweede is om elk symbool van informatie te coderen met behulp van een specifiek algoritme.

Nadat de wiskunde informatie begon te coderen en de theorie van cryptografie was ontwikkeld, ontdekten wetenschappers veel nuttige eigenschappen van deze toegepaste wetenschap. Decoderingsalgoritmen hebben bijvoorbeeld geholpen dode talen te ontrafelen, zoals het oude Egyptisch of het Latijn.

Steganografie

Steganography is ouder dan codering en encryptie. Deze kunst bestaat al heel lang. Het betekent letterlijk "verborgen schrift" of "cijfer schrijven". Hoewel steganografie niet helemaal voldoet aan de definities van een code of cijfer, is het bedoeld om informatie voor vreemden te verbergen.oog.

Steganografie of cryptografie
Steganografie of cryptografie

Steganografie is het eenvoudigste cijfer. Ingeslikte tonen bedekt met was zijn typische voorbeelden, of een bericht op een geschoren hoofd dat zich verbergt onder volwassen haar. Het duidelijkste voorbeeld van steganografie is de methode die wordt beschreven in veel Engelse (en niet alleen) detectiveboeken, wanneer berichten worden verzonden via een krant, waar letters onopvallend zijn gemarkeerd.

Het grootste nadeel van steganografie is dat een oplettende vreemdeling het kan opmerken. Om te voorkomen dat het geheime bericht gemakkelijk kan worden gelezen, worden daarom encryptie- en coderingsmethoden gebruikt in combinatie met steganografie.

ROT1 en Caesarcijfer

De naam van dit cijfer is ROTate 1 letter vooruit, en het is bekend bij veel schoolkinderen. Het is een eenvoudig substitutiecijfer. De essentie ligt in het feit dat elke letter wordt gecodeerd door alfabetisch met 1 letter vooruit te schuiven. A -> B, B -> C, …, Z -> A. We coderen bijvoorbeeld de zin "onze Nastya huilt luid" en we krijgen "algemeen Obtua dspnlp rmbsheu".

Het ROT1-cijfer kan worden gegeneraliseerd tot een willekeurig aantal offsets, dan wordt het ROTN genoemd, waarbij N het getal is waarmee de codering van letters moet worden verschoven. In deze vorm is het cijfer al sinds de oudheid bekend en wordt het het "Caesarcijfer" genoemd.

Cyrillische schijf voor het cijfer van Caesar
Cyrillische schijf voor het cijfer van Caesar

Caesar-cijfer is heel eenvoudig en snel, maar het is een eenvoudig enkelvoudig permutatiecijfer en daarom gemakkelijk te breken. Met zo'n nadeel is het alleen geschikt voor kinderachtige grappen.

Transpositionele of permutatiecijfers

Dit soort eenvoudige permutatiecodes is serieuzer en werd nog niet zo lang geleden actief gebruikt. Tijdens de Amerikaanse Burgeroorlog en de Eerste Wereldoorlog werd het gebruikt om berichten te verzenden. Zijn algoritme bestaat uit het herschikken van de letters op plaatsen - schrijf het bericht in omgekeerde volgorde of herschik de letters in paren. Laten we bijvoorbeeld de zin "Morsecode is ook een cijfer" -> "akubza ezrom - hedgehog rfish" versleutelen.

Met een goed algoritme dat willekeurige permutaties voor elk teken of elke groep ervan bepaalde, werd het cijfer bestand tegen eenvoudig kraken. Maar! Alleen op tijd. Omdat het cijfer gemakkelijk kan worden verbroken door eenvoudige brute kracht of woordenboekvergelijking, kan tegenwoordig elke smartphone de decodering aan. Daarom, met de komst van computers, is dit cijfer ook in de categorie van kinderen terechtgekomen.

Morsecode

Het ABC is een medium voor informatie-uitwisseling en zijn belangrijkste taak is om berichten gemakkelijker en begrijpelijker te maken voor verzending. Al is dit in strijd met waar encryptie voor bedoeld is. Desalniettemin werkt het als de eenvoudigste cijfers. In het Morse-systeem heeft elke letter, elk cijfer en elk leesteken zijn eigen code, die bestaat uit een groep streepjes en punten. Bij het verzenden van een bericht met behulp van de telegraaf vertegenwoordigen streepjes en stippen lange en korte signalen.

Cyrillisch en Latijn in morsecode
Cyrillisch en Latijn in morsecode

Telegraaf en morsecode… Morse was degene die in 1840 voor het eerst patent had op "zijn" uitvinding, hoewel soortgelijke apparaten vóór hem in Rusland en Engeland waren uitgevonden. Maar wat maakt het nu uit … Telegraaf en alfabetMorsecode had een zeer grote impact op de wereld, waardoor bijna onmiddellijke verzending van berichten over continentale afstanden mogelijk was.

Monoalfabetische substitutie

De hierboven beschreven ROTN- en Morse-code zijn voorbeelden van monoalfabetische vervangende lettertypen. Het voorvoegsel "mono" betekent dat tijdens de versleuteling elke letter van het oorspronkelijke bericht wordt vervangen door een andere letter of code uit het enige versleutelingsalfabet.

Het ontcijferen van eenvoudige substitutiecijfers is niet moeilijk, en dit is hun grootste nadeel. Ze worden opgelost door eenvoudige opsomming of frequentieanalyse. Het is bijvoorbeeld bekend dat de meest gebruikte letters van de Russische taal "o", "a", "i" zijn. Er kan dus worden aangenomen dat in de cijfertekst de letters die het vaakst voorkomen, ofwel "o", of "a", of "en" betekenen. Op basis van deze overwegingen kan het bericht zelfs zonder computerzoekactie worden ontsleuteld.

Het is bekend dat Mary I, Queen of Scots van 1561 tot 1567, een zeer complex monoalfabetisch substitutiecijfer met verschillende combinaties gebruikte. Toch waren haar vijanden in staat de berichten te ontcijferen, en de informatie was voldoende om de koningin ter dood te veroordelen.

Gronsfeld-cijfer, of polyalfabetische substitutie

Eenvoudige cijfers worden nutteloos verklaard door cryptografie. Daarom zijn er veel verbeterd. Het Gronsfeld-cijfer is een wijziging van het Caesar-cijfer. Deze methode is veel beter bestand tegen hacken en ligt in het feit dat elk teken van de gecodeerde informatie wordt versleuteld met een van de verschillende alfabetten, die cyclisch worden herhaald. Het kan worden gezegd dat dit een multidimensionale toepassing isde eenvoudigste substitutiecode. In feite lijkt het Gronsfeld-cijfer erg op het hieronder besproken Vigenère-cijfer.

ADFGX-coderingsalgoritme

Dit is het meest bekende cijfer uit de Eerste Wereldoorlog dat door de Duitsers werd gebruikt. Het cijfer kreeg zijn naam omdat het coderingsalgoritme alle cijfergrammen naar de afwisseling van deze letters leidde. De keuze van de letters zelf werd bepaald door hun gemak bij verzending via telegraaflijnen. Elke letter in het cijfer wordt weergegeven door twee. Laten we eens kijken naar een interessantere versie van het ADFGX-vierkant dat cijfers bevat en ADFGVX wordt genoemd.

A D F G V X
A J Q A 5 H D
D 2 E R V 9 Z
F 8 Y I N K V
G U P B F 6 O
V 4 G X S 3 T
X W L Q 7 C 0

Het ADFGX-kwadraatalgoritme is als volgt:

  1. Kies willekeurige n letters voor kolommen en rijen.
  2. Een N x N-matrix bouwen.
  3. Voer het alfabet, de cijfers en de karakters in die willekeurig over de cellen in de matrix zijn verspreid.

Laten we een soortgelijk vierkant maken voor de Russische taal. Laten we bijvoorbeeld een vierkant ABCD maken:

A B B G D
A E/E N b/b A I/Y
B W V/F G/R З D
B Sh/Sh B L X I
G R M O Yu P
D F T T S U

Deze matrix ziet er vreemd uit omdat een rij cellen twee letters bevat. Dit is acceptabel, de betekenis van het bericht gaat niet verloren. Het kan gemakkelijk worden hersteld. Versleutel de zin "Compact cipher" met behulp van deze tabel:

1 2 3 4 5 6 7 8 9 10 11 12 13 14
Zin K O M P A K T N S Y Ш & F R
Cipher bw gv gb waar ag bw db ab dg hel wa hel bb ha

Het uiteindelijke versleutelde bericht ziet er dus als volgt uit: "bvgvgbgdagbvdbabdgvdvaadbbga". Natuurlijk voerden de Duitsers een soortgelijke lijn door nog een aantal cijfers uit. En uiteindelijk bleek het erg stabielom het versleutelde bericht te kraken.

Vigenère-cijfer

Dit cijfer is een orde van grootte beter bestand tegen kraken dan monoalfabetische, hoewel het een eenvoudig tekstvervangend cijfer is. Vanwege het robuuste algoritme werd het echter lang als onmogelijk beschouwd om te hacken. De eerste vermelding ervan dateert uit de 16e eeuw. Vigenère (een Franse diplomaat) wordt ten onrechte gecrediteerd als de uitvinder. Om beter te begrijpen wat er op het spel staat, kunt u de Vigenère-tabel (Vigenère-vierkant, tabula recta) voor de Russische taal beschouwen.

Vigenère-tafel met Russisch alfabet
Vigenère-tafel met Russisch alfabet

Laten we beginnen met het coderen van de zin "Kasperovich lacht". Maar om versleuteling te laten slagen, is een sleutelwoord nodig - laat het "wachtwoord" zijn. Laten we nu beginnen met encryptie. Om dit te doen, schrijven we de sleutel zo vaak dat het aantal letters ervan overeenkomt met het aantal letters in de gecodeerde zin, door de sleutel te herhalen of te knippen:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
Zin: K A С P E R O B & W С M E E T С I
Sleutel P A R O L b P A R O L b P A R O L

Nu, met behulp van de Vigenère-tabel, zoals in het coördinatenvlak, zoeken we naar een cel die het snijpunt is van letterparen, en we krijgen: K + P=b, A + A=B, C + P=C, enz.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
Cipher: b B B Yu С N Yu G Sch F E Y X F G A L

We snappen dat "Kasperovich lacht"="bvusnyugschzh eykhzhgal".

Het kraken van het Vigenère-cijfer is zo moeilijk omdat frequentieanalyse de lengte van het trefwoord moet weten om te werken. Dus de hack is om willekeurig de lengte van het sleutelwoord te gooien en te proberen de geheime boodschap te kraken.

Er moet ook worden vermeld dat naast een volledig willekeurige sleutel, een volledig andere Vigenère-tabel kan worden gebruikt. In dit geval bestaat het Vigenère-plein uit een regel voor regel geschreven Russisch alfabet met een verschuiving van één. Dat verwijst naar het ROT1-cijfer. En net als in het Caesarcijfer, kan de offset van alles zijn. Bovendien hoeft de volgorde van de letters niet alfabetisch te zijn. In dit geval kan de tabel zelf de sleutel zijn, zonder te weten welke het onmogelijk is om het bericht te lezen, zelfs niet als je de sleutel kent.

Codes

Echte codes bestaan uit overeenkomsten voor elkwoorden van een aparte code. Om ermee te werken zijn zogenaamde codeboeken nodig. In feite is dit hetzelfde woordenboek, dat alleen vertalingen van woorden in codes bevat. Een typisch en vereenvoudigd voorbeeld van codes is de ASCII-tabel - een internationaal cijfer van eenvoudige karakters.

ASCII-codetabel
ASCII-codetabel

Het belangrijkste voordeel van codes is dat ze erg moeilijk te ontcijferen zijn. Frequentie-analyse werkt bijna niet als ze worden gehackt. De zwakte van de codes zijn in feite de boeken zelf. Ten eerste is hun voorbereiding een complex en duur proces. Ten tweede, voor vijanden veranderen ze in een gewenst object en de onderschepping van zelfs maar een deel van het boek dwingt je om alle codes volledig te veranderen.

In de 20e eeuw gebruikten veel staten codes om geheime gegevens over te dragen, waarbij het codeboek na een bepaalde periode werd gewijzigd. En ze jaagden ook actief op boeken van buren en tegenstanders.

Enigma

Iedereen weet dat Enigma de belangrijkste codeermachine van de nazi's was tijdens de Tweede Wereldoorlog. De structuur van Enigma omvat een combinatie van elektrische en mechanische circuits. Hoe het cijfer eruit zal zien, hangt af van de initiële configuratie van Enigma. Tegelijkertijd verandert Enigma automatisch de configuratie tijdens het gebruik, waarbij één bericht op verschillende manieren over de gehele lengte wordt versleuteld.

In tegenstelling tot de eenvoudigste cijfers, gaf "Enigma" triljoenen mogelijke combinaties, waardoor het kraken van versleutelde informatie bijna onmogelijk werd. Op hun beurt hadden de nazi's voor elke dag een bepaalde combinatie voorbereid, die zegebruikt op een bepaalde dag om berichten te verzenden. Daarom, zelfs als Enigma in handen van de vijand zou vallen, deed het niets om berichten te decoderen zonder elke dag de juiste configuratie in te voeren.

Nazi Enigma codeermachine
Nazi Enigma codeermachine

Hack "Enigma" werd actief geprobeerd tijdens de hele militaire campagne van Hitler. In Engeland werd in 1936 hiervoor een van de eerste computerapparatuur (Turing-machine) gebouwd, die in de toekomst het prototype van computers zou worden. Zijn taak was om de werking van enkele tientallen Enigma's tegelijkertijd te simuleren en onderschepte nazi-berichten er doorheen te leiden. Maar zelfs de Turingmachine was slechts af en toe in staat om de boodschap te kraken.

Encryptie met openbare sleutel

De meest populaire coderingsalgoritmen, die overal in technologie en computersystemen wordt gebruikt. De essentie ervan ligt in de regel in de aanwezigheid van twee sleutels, waarvan er één openbaar wordt verzonden en de tweede geheim (privé). De openbare sleutel wordt gebruikt om het bericht te versleutelen en de privésleutel wordt gebruikt om het te ontsleutelen.

Versleutelingsalgoritme voor openbare sleutels
Versleutelingsalgoritme voor openbare sleutels

De openbare sleutel is meestal een heel groot getal dat slechts twee delers heeft, één en het getal zelf niet meegerekend. Samen vormen deze twee delers een geheime sleutel.

Laten we een eenvoudig voorbeeld bekijken. Laat de openbare sleutel 905 zijn. De delers zijn de getallen 1, 5, 181 en 905. Dan is de geheime sleutel bijvoorbeeld het getal 5181. Zeg je te makkelijk? Wat als in de rol?publiek nummer een nummer is met 60 cijfers? Wiskundig moeilijk om de delers van een groot getal te berekenen.

Voor een levendiger voorbeeld: stel je voor dat je geld opneemt bij een geldautomaat. Bij het uitlezen van de kaart worden persoonsgegevens versleuteld met een bepaalde publieke sleutel en aan de kant van de bank wordt de informatie ontsleuteld met een geheime sleutel. En deze openbare sleutel kan voor elke bewerking worden gewijzigd. En er zijn geen manieren om snel belangrijke delers te vinden bij het onderscheppen ervan.

Duurzaamheid van lettertypen

De cryptografische kracht van een coderingsalgoritme is het vermogen om hacking te weerstaan. Deze parameter is de belangrijkste voor elke codering. Het is duidelijk dat de eenvoudige substitutiecodering, die door elk elektronisch apparaat kan worden ontsleuteld, een van de meest onstabiele is.

Tegenwoordig zijn er geen uniforme normen waarmee het mogelijk zou zijn om de sterkte van het cijfer te beoordelen. Dit is een moeizaam en langdurig proces. Er zijn echter een aantal commissies die op dit gebied normen hebben opgesteld. Bijvoorbeeld de minimumvereisten voor de Advanced Encryption Standard of AES-coderingsalgoritme ontwikkeld door NIST USA.

Ter referentie: het Vernam-cijfer wordt erkend als het meest resistente cijfer tegen breken. Tegelijkertijd is het voordeel dat het, volgens het algoritme, het eenvoudigste cijfer is.

Aanbevolen: