salakirjoitus

Johdanto §

Caesar-salakirjoitus on yksi varhaisimmista tunnetuista ja yksinkertaisimmista salakirjoituksista. Se on eräänlainen substituutiosalakirjoitus, jossa jokainen kirjain selkotekstissä ’siirretään’ tietty määrä paikkoja aakkostoa alaspäin. Esimerkiksi 1: n vuorolla A korvattaisiin B: llä, B: stä tulisi C ja niin edelleen. Menetelmä on nimetty Julius Caesarin mukaan, joka ilmeisesti käytti sitä kommunikoidessaan kenraaliensa kanssa.

monimutkaisemmat salausmenetelmät, kuten Vigenèren salakirjoitus, käyttävät Caesar-salausta yhtenä osana salausprosessia. Yleisesti tunnettu ROT13 ’salaus’ on yksinkertaisesti Caesar-salaus, jonka offset on 13. Caesar-salakirjoituslaite ei tarjoa pohjimmiltaan mitään viestintävarmuutta, ja se voidaan osoittaa, että se on helposti murrettavissa jopa käsin.

esimerkki §

salatun viestin välittäminen henkilöltä toiselle edellyttää ensin, että molemmilla osapuolilla on salakirjoituksen ”avain”, jotta lähettäjä voi salata sen ja vastaanottaja voi purkaa salauksen. Caesar-salakirjoituksessa avain on niiden merkkien määrä, joilla salakirjoitusta voidaan muuttaa.

tässä on nopea esimerkki caesar-salaukseen liittyvistä salaus-ja purkuvaiheista. Teksti, jonka salaamme, on ”puolusta linnan Itäistä muuria”, jonka Siirtymä (avain) on 1.

plaintext: defend the east wall of the castleciphertext: efgfoe uif fbtu xbmm pg uif dbtumf

on helppo nähdä, miten jokainen selkotekstin merkki siirtyy aakkostoa ylöspäin. Salauksen purkaminen on yhtä helppoa, käyttämällä offset -1.

plain: abcdefghijklmnopqrstuvwxyzcipher: bcdefghijklmnopqrstuvwxyza

on selvää, että jos käytetään eri avainta, cipher-aakkostoa siirretään eri määrä.

matemaattinen kuvaus §

missä k on jokaiseen kirjaimeen sovellettava avain (vaihto). Tämän funktion soveltamisen jälkeen tulos on numero, joka on sitten käännettävä takaisin kirjaimeksi. Salauksen purkutoiminto on:

JavaScript Example of the Caesar Cipher §

Plaintext

shift:

Ciphertext

muut toteutukset §

Caesar cipher code in various programming languages, Katso toteutukset sivulta.

omien viestien koodaamiseen Pythonissa voit käyttää pycipher-moduulia. Voit asentaa sen käyttämällä pip install pycipher. Jos haluat koodata viestit Caesar-salakirjoituksella (tai muulla salakirjoituksella, katso dokumentaatio tästä):

Kryptoanalyysi §

Katso Caesar-salakirjoituksen salaus, miten tämä salakirjoitus voidaan automaattisesti murtaa.

Kryptoanalyysi on koodien ja salakirjoitusten murtamisen taito. Caesarin salakirjoitus on luultavasti helpoin murrettava. Koska muutos on numero välillä 1 ja 25, (0 tai 26 johtaisi muuttumattomana tekstinä) voimme yksinkertaisesti kokeilla jokaista mahdollisuutta ja nähdä, mikä niistä johtaa pala luettavissa olevaa tekstiä. Jos satut tietää, mikä pala salakirjoitusta on, tai voit arvata pala, niin tämä antaa sinulle mahdollisuuden välittömästi löytää avain.

Jos tämä ei ole mahdollista, systemaattisempi lähestymistapa on laskea salakirjoitustekstin kirjainten frekvenssijakauma. Tämä koostuu laskemisesta, kuinka monta kertaa kukin kirjain näkyy. Luonnollinen Englanti teksti on hyvin erillinen jakelu, jota voidaan käyttää apua crack koodit. Jakauma on seuraava:

englanninkieliset Kirjainfrekvenssit

tämä tarkoittaa, että E-kirjain on yleisin ja esiintyy lähes 13% ajasta, kun taas z-kirjain esiintyy huomattavasti alle 1 prosentti ajasta. Caesar-salakirjoituksen soveltaminen ei muuta näitä kirjainfrekvenssejä, se vain siirtää niitä hieman eteenpäin (1: n vaihtuessa yleisin salakirjoituskirjain muuttuu f: ksi). Kryptoanalyytikon on vain löydettävä muutos, joka saa salakirjoitustaajuudet vastaamaan tarkasti luonnollisia englanninkielisiä taajuuksia, ja purettava teksti Tämän muutoksen avulla. Tätä menetelmää voidaan käyttää Caesar-salakirjoitusten murtamiseen helposti käsin.

Jos sinulla on vielä ongelmia, kokeile korvaavan salakirjoitussivun kryptoanalyysiosiota. Kaikki strategiat, jotka toimivat substitution cipher toimii myös Caesar cipher (mutta menetelmät, jotka toimivat Caesar cipher eivät välttämättä toimi yleisen substitution cipher).

jotta menetelmä toimisi hyvin tietokoneissa, tarvitsemme tavan selvittää, mikä 25 mahdollisesta salauksesta näyttää eniten englanninkieliseltä tekstiltä. Katso Caesar-salauksen Kryptoanalyysi siitä, miten se murtuu quadgram-tilastojen avulla. Avain (tai vaihto), joka johtaa salauksen korkeimman likelyhood on englanti teksti on todennäköisesti oikea avain. Tietenkin, enemmän salakirjoitusta sinulla on, sitä todennäköisemmin tämä on totta (tämä koskee kaikkia tilastollisia toimenpiteitä, mukaan lukien taajuus lähestymistapa edellä). Käytetään siis salaustekstiä, yritetään purkaa se jokaisella avaimella ja katsotaan sitten, mikä salauksen purku näyttää parhaalta. Tämä yksinkertainen kryptoanalyysimenetelmä toimii vain hyvin yksinkertaisissa salakirjoituksissa, kuten Caesar-salakirjoituksessa ja raideaidan salakirjoituksessa, jopa hieman monimutkaisemmissa salakirjoituksissa voi olla aivan liikaa avaimia kaikkien tarkistamiseen.

viitteet §

  • Wikipediassa on hyvä kuvaus tämän algoritmin salaus – /salauksenpurkuprosessista, historiasta ja kryptoanalyysistä
  • Simon Singhin ”The Code Book” on erinomainen johdatus salakirjoituksiin ja koodeihin, ja se sisältää osan caesar-salakirjoituksista.
  • Singh, Simon (2000). The Code Book: The Science of Secretary from Ancient Egypt to QuantumCryptography. ISBN 0-385-49532-3.



Vastaa

Sähköpostiosoitettasi ei julkaista.