Senovės pasaulyje atsirado poreikis šifruoti susirašinėjimą ir atsirado paprasti pakaitiniai šifrai. Šifruoti pranešimai lėmė daugelio mūšių likimą ir turėjo įtakos istorijos eigai. Laikui bėgant žmonės išrado vis pažangesnius šifravimo metodus.
Kodas ir šifras, beje, yra skirtingos sąvokos. Pirmasis reiškia kiekvieno pranešimo žodžio pakeitimą kodiniu žodžiu. Antrasis – užšifruoti kiekvieną informacijos simbolį naudojant tam tikrą algoritmą.
Matematikai pradėjus koduoti informaciją ir sukūrus kriptografijos teoriją, mokslininkai atrado daug naudingų šio taikomojo mokslo savybių. Pavyzdžiui, dekodavimo algoritmai padėjo atskleisti mirusias kalbas, tokias kaip senovės egiptiečių ar lotynų.
Steganografija
Steganografija yra senesnė nei kodavimas ir šifravimas. Šis menas gyvuoja labai seniai. Tai pažodžiui reiškia „paslėptas rašymas“arba „rašymas šifru“. Nors steganografija ne visai atitinka kodo ar šifro apibrėžimus, ji skirta informacijai paslėpti nuo nepažįstamų žmonių.akis.
Steganografija yra paprasčiausias šifras. Praryti užrašai, padengti vašku, yra tipiški pavyzdžiai arba žinutė ant nuskustos galvos, kuri slepiasi po išaugusiais plaukais. Ryškiausias steganografijos pavyzdys yra daugelyje angliškų (ir ne tik) detektyvų knygų aprašytas metodas, kai žinutės perduodamos per laikraštį, kur nepastebimai pažymėtos raidės.
Pagrindinis steganografijos trūkumas yra tai, kad dėmesingas nepažįstamasis gali tai pastebėti. Todėl, kad slaptas pranešimas nebūtų lengvai perskaitomas, šifravimo ir kodavimo metodai naudojami kartu su steganografija.
ROT1 ir Cezario šifras
Šio šifro pavadinimas yra PASUKTI 1 raide į priekį ir jį žino daugelis moksleivių. Tai paprastas pakeitimo šifras. Jos esmė slypi tame, kad kiekviena raidė yra užšifruota abėcėlės tvarka perkeliant 1 raide į priekį. A -> B, B -> C, …, Z -> A. Pavyzdžiui, užšifruojame frazę „mūsų Nastya garsiai verkia“ir gauname „bendras Obtua dspnlp rmbsheu“.
ROT1 šifrą galima apibendrinti iki savavališko poslinkių skaičiaus, tada jis vadinamas ROTN, kur N yra skaičius, kuriuo raidžių šifravimas turėtų būti perkeltas. Šia forma šifras buvo žinomas nuo seniausių laikų ir vadinamas „Cezario šifru“.
Cezario šifras yra labai paprastas ir greitas, tačiau tai paprastas vienos permutacijos šifras, todėl jį lengva sulaužyti. Turėdamas tokį trūkumą, tinka tik vaikiškoms išdaigoms.
Transpoziciniai arba permutacijos šifrai
Šie paprastų permutacijų šifrų tipai yra rimtesni ir buvo aktyviai naudojami ne taip seniai. Amerikos pilietinio karo ir Pirmojo pasaulinio karo metu jis buvo naudojamas žinutėms siųsti. Jo algoritmas susideda iš raidžių pertvarkymo į vietas - parašykite pranešimą atvirkštine tvarka arba pertvarkykite raides poromis. Pavyzdžiui, užšifruokime frazę "Morzės kodas taip pat yra šifras" -> "akubza ezrom - ežiukas rfish".
Naudojant gerą algoritmą, kuris nustatė savavališkas kiekvieno simbolio ar jų grupės permutacijas, šifras tapo atsparus paprastam įtrūkimui. Bet! Tik tinkamu laiku. Kadangi šifras lengvai sulaužomas naudojant paprastą brutalią jėgą arba suderinant žodyną, šiandien jį iššifruoti gali bet kuris išmanusis telefonas. Todėl, atsiradus kompiuteriams, šis šifras taip pat perėjo į vaikų kategoriją.
Morzės kodas
ABC yra informacijos mainų priemonė, kurios pagrindinė užduotis – palengvinti ir suprasti pranešimus. Nors tai prieštarauja tam, kam skirtas šifravimas. Nepaisant to, jis veikia kaip paprasčiausi šifrai. Morzės sistemoje kiekviena raidė, skaičius ir skyrybos ženklas turi savo kodą, sudarytą iš brūkšnelių ir taškų grupės. Siunčiant pranešimą telegrafu, brūkšneliai ir taškai žymi ilgus ir trumpus signalus.
Telegrafas ir Morzės kodas… Morsė pirmą kartą užpatentavo „savo“išradimą 1840 m., nors prieš jį panašūs prietaisai buvo išrasti Rusijoje ir Anglijoje. Bet kam dabar rūpi… Telegrafas ir abėcėlėMorzės abėcėlė turėjo labai didelę įtaką pasauliui, o tai leido beveik akimirksniu perduoti pranešimus žemyno atstumu.
Monoalfabetinis pakeitimas
Aukščiau aprašytas ROTN ir Morzės kodas yra vienabėcėlinių pakaitinių šriftų pavyzdžiai. Priešdėlis „mono“reiškia, kad šifravimo metu kiekviena pradinio pranešimo raidė pakeičiama kita raide arba kodu iš vienintelės šifravimo abėcėlės.
Iššifruoti paprastus pakaitinius šifrus nėra sunku, ir tai yra pagrindinis jų trūkumas. Jie išsprendžiami paprastu surašymu arba dažnių analize. Pavyzdžiui, žinoma, kad dažniausiai vartojamos rusų kalbos raidės yra „o“, „a“, „i“. Taigi galima daryti prielaidą, kad šifruotame tekste dažniausiai pasitaikančios raidės reiškia arba „o“, arba „a“, arba „ir“. Remiantis šiais svarstymais, pranešimą galima iššifruoti net neatliekant kompiuterio paieškos.
Žinoma, kad Marija I, Škotijos karalienė 1561–1567 m., naudojo labai sudėtingą monoalfabetinį pakeitimo šifrą su keliais deriniais. Tačiau jos priešai sugebėjo iššifruoti pranešimus, o informacijos pakako, kad karalienė būtų nuteista mirti.
Gronsfeldo šifras arba daugiaalfabetinis pakaitalas
Paprasti šifrai kriptografija paskelbiami nenaudingais. Todėl daugelis jų buvo patobulinti. Gronsfeldo šifras yra Cezario šifro modifikacija. Šis metodas yra daug atsparesnis įsilaužimui ir slypi tame, kad kiekvienas užkoduotos informacijos simbolis yra užšifruotas naudojant vieną iš skirtingų abėcėlių, kurios kartojasi cikliškai. Galima sakyti, kad tai daugiamatė programapaprasčiausias pakeitimo šifras. Tiesą sakant, Gronsfeldo šifras yra labai panašus į toliau aptartą Vigenère šifrą.
ADFGX šifravimo algoritmas
Tai garsiausias I pasaulinio karo šifras, kurį naudojo vokiečiai. Šifruotė gavo savo pavadinimą, nes šifravimo algoritmas paskatino visas šifravimo programas keisti šias raides. Pačių raidžių pasirinkimą lėmė jų patogumas perduodant telegrafo linijomis. Kiekviena raidė šifre pavaizduota dviem. Pažiūrėkime į įdomesnę ADFGX kvadrato versiją, kurioje yra skaičiai ir kuris vadinamas ADFGVX.
A | D | F | G | V | X | |
A | J | Q | A | 5 | H | D |
D | 2 | E | R | V | 9 | Z |
F | 8 | Y | Aš | N | K | V |
G | U | P | B | F | 6 | O |
V | 4 | G | X | S | 3 | T |
X | W | L | Q | 7 | C | 0 |
ADFGX kvadratūros algoritmas yra toks:
- Pasirinkite atsitiktines n stulpelių ir eilučių raides.
- N x N matricos kūrimas.
- Įveskite abėcėlę, skaičius ir simbolius, atsitiktinai išsklaidytus po langelius į matricą.
Padarykime panašų kvadratą rusų kalbai. Pavyzdžiui, sukurkime kvadratą ABCD:
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 | Aš |
G | R | M | O | Yu | P |
D | F | T | T | S | U |
Ši matrica atrodo keistai, nes langelių eilutėje yra dvi raidės. Tai priimtina, pranešimo prasmė neprarandama. Jį galima nesunkiai atkurti. Užšifruokite frazę „Kompaktiškas šifras“naudodami šią lentelę:
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | |
Frazė | K | O | M | P | A | K | T | N | S | Y | Ш | & | F | R |
Šifras | bw | gv | gb | kur | ag | bw | db | ab | dg | pragaras | wa | pragaras | bb | ha |
Taigi, galutinis užšifruotas pranešimas atrodo taip: „bvgvgbgdagbvdbabdgvdvaadbbga“. Žinoma, vokiečiai panašią eilutę vykdė dar keliais šifrais. Ir galų gale jis pasirodė labai stabiluskad nulaužtumėte šifruotą pranešimą.
Vigenère šifras
Šis šifras yra daug didesniu laipsniu atsparesnis įtrūkimui nei vienabėcėliniai, nors tai paprastas teksto pakeitimo šifras. Tačiau dėl tvirto algoritmo ilgai buvo manoma, kad nulaužti neįmanoma. Pirmasis jo paminėjimas datuojamas XVI a. Vigenère'as (prancūzų diplomatas) klaidingai priskiriamas jo išradėjui. Norėdami geriau suprasti, kas yra pavojuje, apsvarstykite Vigenère lentelę (Vigenère kvadratas, tabula recta) rusų kalba.
Pradėkime koduoti frazę „Kasperovičius juokiasi“. Bet kad šifravimas pavyktų, reikia raktinio žodžio – tebūnie „slaptažodis“. Dabar pradėkime šifravimą. Norėdami tai padaryti, raktą įrašome tiek kartų, kad raidžių skaičius iš jo atitiktų raidžių skaičių šifruotoje frazėje, pakartodami raktą arba iškirpdami:
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | |
Frazė: | K | A | С | P | E | R | O | B | & | W | С | M | E | E | T | С | Aš |
Raktas | P | A | R | O | L | b | P | A | R | O | L | b | P | A | R | O | L |
Dabar, naudodami Vigenère lentelę, kaip ir koordinačių plokštumoje, ieškome langelio, kuris yra raidžių porų sankirta, ir gauname: K + P=b, A + A=B, C + P=C ir tt
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | |
Šifras: | b | B | B | Yu | С | N | Yu | G | Sch | F | E | Y | X | F | G | A | L |
Mes suprantame, kad „Kasperovičius juokiasi“=„bvusnyugschzh eykhzhgal“.
Išlaužti Vigenère šifrą taip sunku, nes dažnio analizei reikia žinoti raktinio žodžio ilgį, kad veiktų. Taigi įsilaužimas yra atsitiktinai įvesti raktinio žodžio ilgį ir pabandyti nulaužti slaptą pranešimą.
Taip pat reikėtų paminėti, kad be visiškai atsitiktinio rakto galima naudoti ir visiškai kitokią Vigenère lentelę. Šiuo atveju Vigenère kvadratą sudaro eilutė po eilutės parašyta rusiška abėcėlė su vienu poslinkiu. Tai nurodo ROT1 šifrą. Ir kaip Cezario šifre, poslinkis gali būti bet koks. Be to, raidžių tvarka nebūtinai turi būti abėcėlės tvarka. Šiuo atveju raktas gali būti pati lentelė, kurios nežinant, net žinant raktą bus neįmanoma perskaityti pranešimo.
Kodai
Tikruosius kodus sudaro kiekvieno atitiktysatskiro kodo žodžiai. Norint su jais dirbti, reikalingos vadinamosios kodų knygos. Tiesą sakant, tai yra tas pats žodynas, kuriame yra tik žodžių vertimai į kodus. Tipiškas ir supaprastintas kodų pavyzdys yra ASCII lentelė – tarptautinis paprastų simbolių šifras.
Pagrindinis kodų privalumas yra tai, kad juos labai sunku iššifruoti. Dažnio analizė beveik neveikia, kai į juos įsilaužiama. Kodų silpnybė, tiesą sakant, yra pačios knygos. Pirma, jų paruošimas yra sudėtingas ir brangus procesas. Antra, priešams jie virsta norimu objektu, o net dalies knygos perėmimas verčia visiškai pakeisti visus kodus.
XX amžiuje daugelis valstybių naudojo kodus slaptiems duomenims perduoti, po tam tikro laikotarpio keisdamos kodų knygą. Be to, jie aktyviai ieškojo kaimynų ir priešininkų knygų.
Enigma
Visi žino, kad „Enigma“buvo pagrindinė nacių šifravimo mašina Antrojo pasaulinio karo metais. „Enigma“struktūra apima elektrinių ir mechaninių grandinių derinį. Kaip pasirodys šifras, priklauso nuo pradinės Enigma konfigūracijos. Tuo pačiu metu „Enigma“automatiškai pakeičia savo konfigūraciją veikimo metu, šifruodama vieną pranešimą keliais būdais per visą jo ilgį.
Priešingai nei paprasčiausi šifrai, „Enigma“pateikė trilijonus galimų kombinacijų, todėl šifruotos informacijos nulaužimas tapo beveik neįmanomas. Savo ruožtu naciai kiekvienai dienai paruošdavo tam tikrą derinį, kurį jienaudojamas tam tikrą dieną žinutėms siųsti. Todėl net jei Enigma pateko į priešo rankas, ji nieko nepadarė, kad iššifruotų pranešimus, kiekvieną dieną neįvesdama tinkamos konfigūracijos.
Hack "Enigma" buvo aktyviai teisiamas per visą Hitlerio karinę kampaniją. Anglijoje 1936 metais tam buvo pastatytas vienas pirmųjų skaičiavimo įrenginių (Turing machine), kuris ateityje tapo kompiuterių prototipu. Jo užduotis buvo imituoti kelių dešimčių mįslių veikimą vienu metu ir per jas paleisti perimtas nacių žinutes. Tačiau net Tiuringo mašina tik retkarčiais sugebėjo nulaužti pranešimą.
Viešojo rakto šifravimas
Populiariausias iš šifravimo algoritmų, kuris visur naudojamas technologijose ir kompiuterinėse sistemose. Jos esmė, kaip taisyklė, slypi dviejų raktų buvime, iš kurių vienas yra perduodamas viešai, o antrasis yra slaptas (privatus). Viešasis raktas naudojamas pranešimui užšifruoti, o privatus raktas naudojamas jam iššifruoti.
Viešasis raktas dažniausiai yra labai didelis skaičius, turintis tik du daliklius, neskaitant vieno ir paties skaičiaus. Kartu šie du dalikliai sudaro slaptą raktą.
Panagrinėkime paprastą pavyzdį. Tegul viešasis raktas yra 905. Jo dalikliai yra skaičiai 1, 5, 181 ir 905. Tada slaptasis raktas bus, pavyzdžiui, skaičius 5181. Sakai per lengva? O jei vaidmenyjeviešasis numeris bus 60 skaitmenų skaičius? Matematiškai sunku apskaičiuoti didelio skaičiaus daliklius.
Aiškesniam pavyzdžiui įsivaizduokite, kad išimate pinigus iš bankomato. Skaitant kortelę asmens duomenys užšifruojami tam tikru viešuoju raktu, o banko pusėje – slaptu raktu iššifruojama informacija. Ir šis viešasis raktas gali būti keičiamas kiekvienai operacijai. Ir nėra būdų greitai rasti pagrindinių daliklių jį perimant.
Šrifto patvarumas
Šifravimo algoritmo kriptografinis stiprumas yra gebėjimas atsispirti įsilaužimui. Šis parametras yra svarbiausias bet kokiam šifravimui. Akivaizdu, kad paprastas pakeitimo šifras, kurį gali iššifruoti bet koks elektroninis įrenginys, yra vienas nestabiliausių.
Šiandien nėra vienodų standartų, pagal kuriuos būtų galima įvertinti šifro stiprumą. Tai sunkus ir ilgas procesas. Tačiau yra keletas komisijų, kurios parengė šios srities standartus. Pavyzdžiui, minimalūs reikalavimai išplėstiniam šifravimo standartui arba AES šifravimo algoritmui, kurį sukūrė NIST USA.
Nurodymui: Vernam šifras pripažintas labiausiai atspariu sulaužymui šifru. Tuo pačiu metu jo pranašumas yra tas, kad pagal algoritmą tai yra paprasčiausias šifras.