Encryptie door de permutatiemethode. Typen en methoden van cijfers

Inhoudsopgave:

Encryptie door de permutatiemethode. Typen en methoden van cijfers
Encryptie door de permutatiemethode. Typen en methoden van cijfers
Anonim

Aatbash, Scytal-codering, Cardano-rooster - bekende manieren om informatie te verbergen voor nieuwsgierige blikken. In de klassieke zin is een permutatiecijfer een anagram. De essentie ervan ligt in het feit dat de letters van de platte tekst volgens een bepaalde regel van plaats veranderen. Met andere woorden, de sleutel tot het cijfer is de herschikking van de karakters in het open bericht. De afhankelijkheid van de sleutel van de lengte van de versleutelde tekst gaf echter aanleiding tot veel ongemakken bij het gebruik van dit type codering. Maar slimme koppen hebben interessante, lastige oplossingen gevonden, die in het artikel worden beschreven.

Omgekeerde groepen

Om kennis te maken met encryptie door de permutatiemethode, laten we een van de eenvoudigste voorbeelden noemen. Het algoritme bestaat uit het verdelen van het bericht in n blokken, die vervolgens van achteren naar voren worden omgedraaid en verwisseld. Overweeg een voorbeeld.

"De dag was voorbij en de lucht is donkere lucht"

Laten we dit bericht in groepen verdelen. In dit geval is n=6.

"Denuh odily nebav cool cool"

Breid nu de groepen uit en schrijf ze vanaf het einde.

"hunned waben dzo methu yin"

Laten we op een bepaalde manier van plaats wisselen.

"ilido methu yin hunned waben dzo"

Voor een onwetend persoon in deze vorm is de boodschap niets meer dan onzin. Maar de persoon aan wie het bericht is geadresseerd, heeft natuurlijk de leiding over het decoderingsalgoritme.

Midden inzetstuk

Het algoritme van deze codering is iets gecompliceerder dan de coderingsmethode van permutatie:

  1. Verdeel het bericht in groepen met een even aantal tekens.
  2. Voeg extra letters in het midden van elke groep in.
Permutatie versleutelingsmethoden
Permutatie versleutelingsmethoden

Laten we naar een voorbeeld kijken.

  1. "Hij nam de wezens mee om te slapen".
  2. "Aarde yetv ariu drive lkosnu".
  3. "Zeamn yabtv arayu voabdi lkoasnu".

In dit geval werden afwisselende letters "a" en "ab" in het midden van de groepen ingevoegd. Inserts kunnen verschillend zijn, in verschillende aantallen en niet herhaald. Bovendien kun je elke groep uitbreiden, ze in willekeurige volgorde afspelen, enz.

Ciphergram "Sandwich"

Nog een interessant en eenvoudig voorbeeld van permutatie-encryptie. Om het te gebruiken, moet je de platte tekst in 2 helften verdelen en een van hen teken voor teken invoeren tussen de letters van de andere. Laten we een voorbeeld gebruiken.

Encryptie "sandwich"
Encryptie "sandwich"

"Van henwerken; Ik ben de enige, dakloos"

Verdeeld in twee helften met een gelijk aantal letters.

Van hun werk ben ik alleen dakloos

Schrijf nu de eerste helft van het bericht met meer letterafstand.

"O T en X T R U D DOL en Sh"

En in deze gaten zullen we de letters van de tweede helft plaatsen.

"Oyatoidhitnrbuedzodvolminshiy"

Groep tot slot de letters in een soort woorden (optionele bewerking).

"Oyatoi dhi tnrbue dzodvol minshhy"

Het is heel gemakkelijk om tekst te versleutelen met deze methode. De niet-ingewijden zullen de resulterende string-onzin enige tijd moeten uitvinden.

Permutaties langs de "route"

Dit is de naam die werd gegeven aan cijfers die in de oudheid veel werden gebruikt. De route in hun constructie was een geometrische figuur. De leesbare tekst werd in zo'n figuur geschreven volgens een bepaald schema en geëxtraheerd volgens het omgekeerde. Een van de opties kan bijvoorbeeld zijn om volgens het schema naar de tabel met leesbare tekst te schrijven: de slang kruipt met de klok mee in de cellen en het versleutelde bericht wordt samengesteld door de kolommen in één regel, van de eerste tot de laatste, af te schrijven. Dit is ook een permutatie-encryptie.

Eenvoudige permutatiecijfers
Eenvoudige permutatiecijfers

Laten we met een voorbeeld laten zien hoe tekst versleuteld kan worden. Probeer zelf de opnameroute en de compilatieroute van het cijfergram te bepalen.

"Bereid je voor om de oorlog te doorstaan".

We schrijven het bericht in een tabel van 3x9 cellen. Afmeting tafelkan worden bepaald op basis van de lengte van het bericht, of een vaste tabel kan meerdere keren worden gebruikt.

p r en r o t o naar l
r e d s naar me c l me
f a t b naar o th n y

We zullen het cijfer beginnen vanaf de rechterbovenhoek van de tabel.

"Launlvosoyatovvygidtaerprj"

Het omkeren van de beschreven stappen is niet moeilijk. Het is gemakkelijk genoeg om het tegenovergestelde te doen. Deze methode is uiterst handig, omdat het gemakkelijk is om de coderings- en decoderingsprocedure te onthouden. En het is ook interessant, omdat je elk cijfer voor het cijfer kunt gebruiken. Bijvoorbeeld een spiraal.

Verticale permutaties

Dit type cijfer is ook een variant van routepermutatie. Het is in de eerste plaats interessant door de aanwezigheid van een sleutel. Deze methode werd in het verleden veel gebruikt en gebruikte ook tabellen voor encryptie. Het bericht wordt op de gebruikelijke manier in de tabel opgenomen - van boven naar beneden, en het cijfergram wordt verticaal uitgeschreven, met inachtneming van de volgorde die wordt aangegeven door de sleutel of het wachtwoord. Laten we eens kijken naar een voorbeeld van een dergelijke versleuteling.

"Zowel met een pijnlijk pad als met compassie"

Laten we een tabel van 4x8 cellen gebruiken en ons bericht daarin op de gebruikelijke manier schrijven. En voor encryptiegebruik sleutel 85241673.

en c t me r o c t
n s m p y t e m
en c c o c t r a
d a n b e m

De sleutel wordt hieronder getoond.

8 5 2 4 1 6 7 3

Gebruik nu de sleutel als indicatie van de volgorde en schrijf de kolommen op een rij.

"Gusetmsntmayposysaottmserinid"

Het is belangrijk op te merken dat met deze versleutelingsmethode lege cellen in de tabel niet gevuld mogen worden met willekeurige letters of symbolen, in de hoop dat dit de cijfertekst compliceert. Integendeel, zo'n actie zal de vijanden een hint geven. Omdat de sleutellengte gelijk zal zijn aan een van de delers van de berichtlengte.

Verticale permutatie omgekeerd

Verticale permutatie is van belang omdat het decoderen van een bericht geen simpele omkering van het algoritme is. Wie de sleutel kent, weet hoeveel kolommen de tabel heeft. Om een bericht te decoderen, moet u het aantal lange en korte regels in de tabel bepalen. Dit bepa alt het begin, vanaf waar te beginnen met het schrijven van de cijfertekst naar de tabel om de leesbare tekst te lezen. Om dit te doen, delen we de lengteberichten door de lengte van de sleutel en we krijgen 30/8=3 en 6 in de rest.

permutatie cijfers
permutatie cijfers

Zo hebben we geleerd dat de tabel 6 lange kolommen en 2 korte kolommen heeft, gevuld met letters die niet volledig zijn. Als we naar de sleutel kijken, kunnen we zien dat de codering is gestart vanaf de 5e kolom en dat deze lang zou moeten zijn. We vinden dus dat de eerste 4 letters van de cijfertekst overeenkomen met de vijfde kolom van de tabel. Nu kun je alle letters op verschillende plaatsen opschrijven en de geheime boodschap lezen.

Cardano-rooster

Dit type verwijst naar de zogenaamde stencilcijfers, maar in wezen is het versleuteling door de methode van karakterpermutatie. De sleutel is een sjabloon in de vorm van een tafel met uitgesneden gaten erin. In feite kan elke vorm een stencil zijn, maar meestal wordt een vierkant of een tafel gebruikt.

Het Cardano-sjabloon is gemaakt volgens het volgende principe: de uitgesneden cellen mogen elkaar niet overlappen als ze 90° worden gedraaid. Dat wil zeggen, na 4 rotaties van het sjabloon rond zijn as mogen de sleuven erin nooit samenvallen.

Een eenvoudig Cardano-rooster als voorbeeld gebruiken (hieronder weergegeven).

Rooster Cardano
Rooster Cardano

Versleutel met dit stencil de zin "O Muzen, ik zal je aanspreken."

- O - M - -
U
З S
K
B A
M

Vul de stencilcellen met letters volgens de regel: eerst van rechts naar links en dan van boven naar beneden. Wanneer de cellen opraken, draait u het sjabloon 90 ° met de klok mee. Op deze manier krijgen we de volgende tabel.

I - - - - -
O B R
A Sch
y
С b

En draai het nogmaals 90°.

- - - - - С
B O
З
B A
N
b E

En de laatste afslag.

- - M - - -

Na het combineren van 4 tabellen in één, krijgen we het laatste versleutelde bericht.

I O M M G С
B O U B O R
G З A З Sch S
B G K G A U
G B G N G A
M С b b E G

Hoewel het bericht hetzelfde blijft, is het voor verzending handiger om een vertrouwd ogende cijfertekst te ontvangen. Om dit te doen, kunnen lege cellen worden gevuld met willekeurige letters en kunnen kolommen op één regel worden geschreven:

YAVGVGM OOZGVS MUAKGY MBZGN GOSCHAGE SRYUAG

Om dit bericht te decoderen, moet de ontvanger een exacte kopie hebben van het stencil dat is gebruikt om het te coderen. Dit cijfer werd lange tijd als redelijk stabiel beschouwd. Het heeft ook veel variaties. Bijvoorbeeld het gebruik van 4 Cardano roosters tegelijk, die elk roterenop mijn eigen manier.

Gimbal-grille-encryptie
Gimbal-grille-encryptie

Analyse van permutatiecijfers

Cryptanalyse van cijfers
Cryptanalyse van cijfers

Alle permutatiecijfers zijn kwetsbaar voor frequentieanalyse. Vooral in gevallen waar de lengte van het bericht vergelijkbaar is met de lengte van de sleutel. En dit feit kan niet worden veranderd door herhaaldelijk permutaties toe te passen, hoe complex ze ook zijn. Daarom kunnen in cryptografie alleen die cijfers die verschillende mechanismen tegelijk gebruiken, naast permutatie, stabiel zijn.

Aanbevolen: