Vapaamuurarien aakkoset. Koodaus
MATEMATIIKKA
Vestn. Ohm. un-ta. 2016. Nro 3. S. 7-9.
UDC 512.4 V.A. Romankov
VAIHTOEHTO SEMANTTISELLISESTI VAHVASTA SALAUKSESTA PERUSTEELLA RSA*
Artikkelin päätavoitteena on ehdottaa toista tapaa valita yksi RSA-salausjärjestelmään perustuvan salausjärjestelmän pääparametreista, jota kirjoittaja on ehdottanut aiemmissa töissä. Alkuperäinen versio perustuu monimutkaisiin elementtien järjestysten määrittämiseen modulaaristen renkaiden multiplikatiivisissa ryhmissä. Ehdotettu menetelmä muuttaa tämän perustan toiseksi vaikeaksi ongelmaksi määrittää, kuuluvatko modulaaristen renkaiden multiplikatiivisten ryhmien elementit näiden ryhmien potenssiin. Tällaisen ongelman erikoistapaus on klassinen jäännöksen neliöllisyyden määrittämistehtävä, jota pidetään laskennallisesti vaikeana. Tämä tehtävä määrittää semanttisen vakauden tunnettu järjestelmä Goldwasser-Micali-salaus. Ehdotetussa versiossa salausmenetelmän semanttinen vahvuus perustuu ongelman laskennalliseen monimutkaisuuteen määrittää, kuuluvatko modulaaristen renkaiden multiplikatiivisten ryhmien elementit näiden ryhmien potenssiin.
Avainsanat: RSA-salausjärjestelmä, salaus julkinen avain, modulaarinen rengas, neliöjäännös, semanttinen stabiilius.
1. Johdanto
Tämän työn tarkoituksena on esitellä uusia elementtejä tekijän vuonna ottamaan käyttöön RSA-pohjaiseen salausmalliin. Nimittäin: ehdotetaan toista tapaa määritellä tässä kaaviossa esiintyvät alaryhmät. Tämä menetelmä johtaa siihen, että taustalla oleva laskennallisesti monimutkainen ongelma modulaaristen renkaiden multiplikatiivisten ryhmien elementtien järjestysten määrittämisessä korvataan laskennallisesti monimutkaisella ongelmalla näiden ryhmien annettujen potenssien syöttämisessä. Erikoinen tapaus viimeinen ongelma on klassinen ongelma sen määrittämisessä, onko modulaarisen renkaan multiplikatiivisen ryhmän elementin jäännös neliöllinen.
Rivest, Shamir ja Adleman esittelivät julkisen avaimen RSA-salausjärjestelmän vuonna 1977. Sitä käytetään laajalti kaikkialla maailmassa ja se sisältyy lähes kaikkiin kryptografian oppikirjoihin. Katso esimerkiksi tästä järjestelmästä ja sen kryptografisesta vahvuudesta.
Järjestelmän perusversio on deterministinen, eikä sillä tästä syystä ole semanttisen salaisuuden ominaisuutta, joka on tärkein julkisen avaimen salausjärjestelmän kryptografisen vahvuuden indikaattori. Siksi käytännössä käytetään järjestelmän muunnelmia, joiden tarkoituksena on tuoda siihen todennäköisyyselementti ja siten varmistaa semanttisen salaisuuden ominaisuuden toteutuminen.
Asennus: salausalusta
Olkoon n kahden suuren erillisen alkuluvun p ja q tulo. Jäännösrengas Zn on valittu salausjärjestelmän alustaksi. Moduuli n ja alusta Zn ovat järjestelmän avoimia elementtejä, luvut p ja q ovat salaisia.
* Tutkimusta tuki Venäjän perustutkimussäätiö (projekti 15-41-04312).
© Romankov V.A., 2016
Romankov V.A.
Euler-funktiota merkitään φ:N ^ N, in tässä tapauksessa otetaan arvo φ(n)= (p-1)(q-1). Siten renkaan Zn multiplikatiivisen ryhmän Z*n järjestys on (p-1)(q-1). Näistä käsitteistä katso esimerkiksi.
Seuraavaksi valitaan kaksi alaryhmää M ja H ryhmän Z*n yhteisaloitusjaksojen r ja t vastaavasti. Nämä alaryhmät ehdotetaan määriteltäväksi niiden generoivien elementtien kautta M = gr(g1,...,gk), H = gr(j1,...,hl). Muista, että ryhmän G jakso t(G) on pienin luku t siten, että dr = 1 mille tahansa elementille geG. Ryhmän Z*n jakso on luku t (n), joka on yhtä suuri kuin lukujen p-1 ja q-1 pienin yhteinen kerrannainen. Alaryhmät M ja H voivat olla syklisiä ja ne voidaan määrittää yhdellä generoivalla elementillä. Alaryhmien M ja H generoivat elementit katsotaan avoimina, kun taas alaryhmien r ja t jaksoja pidetään salaisina.
Kohdassa ja selitetään, kuinka tehokkaasti suoritetaan määrätty alaryhmien M ja H valinta, kun tiedetään salaiset parametrit p ja q. Lisäksi voit ensin asettaa r:n ja t:n ja sitten valita p ja q, ja vasta sitten suorittaa lisätoimia. Huomaa, että tiettyjen kertalukujen elementtien rakentaminen äärellisiin kenttiin suoritetaan standardinmukaisella tehokkaalla menettelyllä, joka on kuvattu esimerkiksi. Siirtyminen annettujen kertalukujen elementtien konstruointiin modulaaristen renkaiden Zn multiplikatiivisiin ryhmiin Z*n tapahtuu ilmeisellä tavalla käyttämällä kiinalaista jäännöslausetta tai . Asennus: avainten valinta Salausavain e on mikä tahansa luonnollinen luku, jonka alkuluku on r. Purkuavain d = ^ lasketaan yhtälöstä
(te)d1 = 1 (modr). (1)
Avain d on olemassa, koska parametri d1 lasketaan te:n ja r:n keskinäisen ensisijaisuuden vuoksi. Avain e on julkinen, avain d ja parametri d1 ovat salaisia.
Salausalgoritmi Lähettääkseen viestin avoimen verkon kautta - m alaryhmän M elementti, Alice valitsee satunnaisen alkion h alaryhmästä H ja laskee elementin hm. Vaihteisto näyttää
c = (hm)e (modn). (2)
Salauksen purkualgoritmi
Bob purkaa vastaanotetun viestin c salauksen seuraavasti:
cd=m(modn). (3)
Oikean salauksen purkamisen selitys
Koska ed=1 (modr), on olemassa kokonaisluku k siten, että ed = 1 + rk. Sitten
cd = (hm)ed = (ht)edi m (mr)k = m (mod n). (4) Eli elementti h kirjoitetaan aliryhmän H alkioksi ryhmäsanan u(x1,.,xl) arvon muodossa alaryhmän H generoivista alkioista h1t... ,hl. Itse asiassa me
valitse sana u(x1,.,xl) ja laske sitten sen arvo h = u(h1t..., hl). Tämä tarkoittaa erityisesti sitä, että generointielementit h1t... ,hl ovat auki.
Järjestelmän kryptografinen vahvuus
Kaavan kryptografinen vahvuus perustuu vaikeuteen määrittää tämän alaryhmän jakso tai järjestys ryhmän Z*n alaryhmän H tietyistä generoivista elementeistä. Jos elementin järjestys voitaisiin laskea tehokkaalla algoritmilla, niin laskemalla alaryhmän H generoivien alkioiden kertaluvut o rd(h1), ..., ord(hl), saataisiin sen jakso t = t (H), yhtä suuri kuin niiden pienin yhteinen kerrannainen . Tämä mahdollistaisi varjostustekijän h poistamisen tästä salausvaihtoehdosta muuntamalla c1 = met(modri), vähentämällä salauksen purkuprosessin klassiseen RSA-järjestelmään julkisella salausavaimella et.
3. Toinen tapa määritellä alaryhmä H
Tässä artikkelissa ehdotetaan toista vaihtoehtoa aliryhmän H määrittämiseksi tarkasteltavassa salausjärjestelmässä. Tarkastellaan ensin sen erikoistapausta, joka liittyy tunnistettuun ratkaisemattomaan ongelmaan ryhmän Z*n jäännöksen neliöllisyyden määrittämisessä. Muista, että jäännöstä aeZ^ kutsutaan neliömäiseksi, jos on sellainen elementti xeZ*n, että x2= a (modn). Kaikki neliötähteet muodostavat ryhmän Z*n alaryhmän QZ*n. Ryhmän mielivaltaisen jäännöksen neliöllisyyden määrittämisongelmaa pidetään laskennallisesti vaikeasti ratkaistavana. Tunnettu semanttisesti vahva Goldwasser-Micali-salausjärjestelmä perustuu tähän ominaisuuteen. Sen semanttinen stabiilisuus määräytyy täysin jäännöksen neliöllisyyden määrittämisongelman ratkaisemattomuudesta.
Oletetaan, että parametrit p ja q valitaan ehdolla p, q = 3 (mod 4), eli p = 4k +3, q = 41 +3. Jäännösten neliölliseen luonteeseen liittyvissä kaavioissa tämä oletus näyttää luonnolliselta ja esiintyy melko usein. Jos se pätee, kuvaus p:QZ*n ^ QZ*n, p:x^x2 on bijektio.
Ryhmän neliöllisten tähteiden alaryhmän QZ*n indeksi on 4 Z*n:ssä, katso esimerkiksi. Sen järjestys o^^2^) on yhtä suuri kuin φ(n)/4 = (4k + 2)(41 + 2)/4= 4kl + 2k + 21 + 1, eli se on pariton luku.
Yllä olevassa salauskaaviossa oletetaan H = QZ*n. Millä tahansa alaryhmän H alkiolla on pariton järjestys, koska jakso t(Z*n), joka on yhtä suuri kuin lukujen p - 1 = 4k +2 ja q - 1 = 41 +2 pienin yhteinen kerrannainen, on jaollinen kahdella , mutta ei jaollinen 4:llä. Suurin mahdollinen vaihtoehto M:lle on 4:n kertaluvun aliryhmä, jonka alkioiden kertaluku on 2 tai 4. Jos on olemassa tehokas tapa tilauksen (tai ainakin sen pariteetin) laskeminen mielivaltainen elementti
Semanttisesti vahva RSA-salausvaihtoehto
ryhmä 2*n, niin jäännöksen neliöllisyyden määritysongelma on tehokkaasti ratkaistu. Kaavan haittana tällä valinnalla on tekstiavaruuden alhainen teho - alaryhmä M. Itse asiassa kaavio kopioi jo mainitun tunnetun Gol-Dwasser-Micali-kaavion.
Saamme suuremmat mahdollisuudet seuraavalla valinnallamme. Olkoon alkuluku, jota voidaan pitää riittävän suurena. Olkoot p ja q alkulukuja siten, että ainakin yksi luvuista p - 1 tai q - 1 on jaollinen luvulla s. Selitetään, että voidaan valita s ja sitten tehokkaasti löytää p tai q annetulla ominaisuudella. Oletetaan, että lukua p haetaan muodossa 2sx +1. x muutetaan ja tuloksena olevan p:n yksinkertaisuus tarkistetaan, kunnes se osoittautuu yksinkertaiseksi.
Määritellään aliryhmä Н =, joka koostuu ryhmän 2*n alkioiden s-potensseista (s = 2:lle tämä on aliryhmä QZ*n). Jos p = 52k + su + 1 ja q = 521 + sv +1 (tai q = sl + V +1), jossa luvut u ja V eivät ole jaollisia s:llä, niin alaryhmän järjestys o^(H) H, jolla on 2 ryhmässä *n indeksi b2 (tai indeksi s, jos q = sl + V +1), on yhtä suuri kuin B2k1 + Bku + b1n + w>. Tämä tilaus on s. Tämä tarkoittaa erityisesti sitä, että alaryhmän H alkioilla on kertalukuja, jotka eivät ole jaollisia s:llä. Jos alkio on aliryhmän H ulkopuolella, sen järjestys jaetaan s:llä, koska s jakaa ryhmän järjestyksen. Jos ryhmän 2*n alkion järjestyksen laskemisen (tai sen jaollisuuden määrittämisen s:llä) ongelma on tehokkaasti ratkaistavissa ryhmässä 2*n, niin myös aliryhmään pääsyn ongelma ratkeaa siinä tehokkaasti.
Valittaessa alaryhmä H tällä tavalla, meillä on mahdollisuus valita M:ksi syklinen alaryhmä, jonka kertaluokka on r = 52 (tai kertaluokkaa s). Tällainen alaryhmä on olemassa, koska ryhmän 2*n järjestys on yhtä suuri kuin (p-1)^-1) = (52k + vi)^21 + sv) (tai (52k + vi)^1 + V)), on jaollinen luvulla 52 (sillä). H:n määrittämiseksi riittää, että määritetään s. Lisäksi mille tahansa alaryhmän M valinnalle meillä on M*2 =1. Jos sanomaa m purettaessa on mahdollista saada muotoa tel oleva elementti, jossa ed on koprime s:n kanssa, niin etsimällä kokonaisluvut y ja z siten, että edy + s2z = 1, voidaan laskea teL = m.
Alaryhmän H generoivia elementtejä ei kuitenkaan mainita tyyppiä määritettäessä, joten jos ryhmän 2*n elementtien järjestysten laskemiseen on olemassa algoritmi, tämä ei mahdollista alaryhmän jaksoa.
H, mikä olisi ollut mahdollista alkuperäisessä versiossa alkaen .
Kaavan version kryptografinen vahvuus perustuu vaikeuteen määrittää ryhmän 2*n elementin järjestys. Ehdotetussa versiossa se perustuu Z*s-alaryhmän jakson määrittämisen vaikeuteen. Semanttinen vahvuus Tiedoksi, että c = (hm")e (modn) on salattu viesti muotoa (2), jossa heH, m" = m1 tai m" = m2. Salausta pidetään semanttisesti vahvana, jos se on mahdotonta määrittää tehokkaasti mitä kaikki -vastaa c. Oikea vastaus mt (i = 1 tai 2) saadaan jos ja vain jos cmje kuuluu H:lle. Tämä tarkoittaa, että salaus on semanttisesti vahva silloin ja vain, jos esiintymisongelma H on käytännössä ratkaisematon tässä artikkelissa käsitellyssä tapauksessa s-tähteiden Z*s-alaryhmään pääsyn ongelma. Erikoistapauksessa s = 2 saadaan hyvin tunnettu, vaikeasti pidetty ongelma *n, johon Goldwasser-Micali-salausjärjestelmän ja useiden muiden salausjärjestelmien semanttinen vahvuus perustuu.
KIRJALLISUUS
Romankov V. A. Uusi semanttisesti vahva RSA-pohjainen julkisen avaimen salausjärjestelmä // Sovellettu diskreetti matematiikka. 2015. nro 3 (29). s. 32-40.
Rivest R., Shamir A., Adleman L. Menetelmä digitaalisten allekirjoitusten ja julkisen avaimen salausjärjestelmien hankkimiseksi // Comm. ACM. 1978. Voi. 21, nro 2. P. 120126.
Hinek M. RSA:n ja sen muunnelmien krypta-analyysi. Boca Raton: Chapman & Hall/CRC, 2010.
Kappale Y. Y. Kryptanalyyttiset hyökkäykset RSA:ta vastaan. Berliini: Springer, 2008.
Leima M., alhainen R.M. Sovellettu kryptausanalyysi. Salausten rikkominen todellisessa maailmassa. Hoboken: JohnWiley&Sons, 2007.
Roman"kov V.A. Uusi todennäköisyyspohjainen julkisen avaimen salaus, joka perustuu RAS-salausjärjestelmään // Croups, Complexity, Cryptology. 2015. Vol. 7, No. 2. P. 153156.
Romankov V.A. Johdatus kryptografiaan. M.: Foorumi, 2012.
Menezes A., Ojrschot P.C., Vanstone S.A. Sovellettavan kryptografian käsikirja. Boca Raton: CRC Press, 1996.
Goldwasser S., Micali S. Todennäköisyyspohjainen salaus ja kuinka pelata henkistä pokeria pitämällä salassa kaikki osittaiset tiedot // Proc. 14th Symposium on Theory of Computing, 1982, s. 365-377.
Verkkosuunnittelijat ja -kehittäjät käyttävät mielellään ammattikieltä ja hankaluuksia, joita meidän on joskus vaikea ymmärtää. Tämä artikkeli keskittyy semanttiseen koodiin. Selvitetään mikä se on!
Mikä on semanttinen koodi?
Vaikka et olisi web-suunnittelija, tiedät todennäköisesti, että sivustosi on kirjoitettu HTML-kielellä. HTML oli alun perin tarkoitettu välineeksi kuvailla asiakirjan sisältöä sen sijaan, että se näyttäisi visuaalisesti miellyttävältä. Semanttinen koodi palaa tähän alkuperäiseen konseptiin ja rohkaisee web-suunnittelijoita kirjoittamaan koodia, joka kuvaa sisältöä sen sijaan, että miltä sen pitäisi näyttää. Esimerkiksi sivun otsikko voidaan ohjelmoida seuraavasti:
Tämä on sivun otsikko
Tämä tekisi otsikosta suuren ja lihavoitun, jolloin se näyttää sivun otsikolta, mutta siinä ei ole mitään, mikä kuvaisi sitä koodin "otsikkona". Tämä tarkoittaa, että tietokone ei tunnista sitä sivun otsikoksi.
Kun kirjoitat otsikkoa semanttisesti, jotta tietokone tunnistaisi sen "otsikkona", meidän on käytettävä seuraavaa koodia:
Tämä on otsikko
Otsikon ulkoasu voidaan määrittää erillinen tiedosto, jota kutsutaan "Cascading Style Sheetsiksi" (CSS), häiritsemättä kuvaavaa (semanttista) HTML-koodiasi.
Miksi semanttinen koodi on tärkeä?
Tietokoneen kyky tunnistaa sisältöä oikein on tärkeää useista syistä:
- Monet näkövammaiset ihmiset luottavat puheselaimiin lukeakseen sivuja. Tällaiset ohjelmat eivät pysty tulkitsemaan sivuja tarkasti, ellei niitä ole selkeästi selitetty. Toisin sanoen semanttinen koodi toimii saavutettavuuden välineenä.
- Hakukoneiden on ymmärrettävä, mistä sisällöstäsi on kyse voidakseen sijoittaa sinut oikein hakukoneissa. Semanttisella koodilla on maine sijoitteluiden parantajana. hakukoneet, koska "hakurobotit" ymmärtävät sen helposti.
Semanttisella koodilla on myös muita etuja:
- Kuten yllä olevasta esimerkistä näet, semanttinen koodi on lyhyempi ja lataus on nopeampaa.
- Semanttinen koodi tekee sivuston päivittämisestä helpompaa, koska voit käyttää otsikkotyylejä koko sivustossa sivukohtaisen sijaan.
- Semanttinen koodi on helppo ymmärtää, joten jos uusi web-suunnittelija poimii koodin, hänen on helppo jäsentää.
- Koska semanttinen koodi ei sisällä suunnitteluelementtejä, muuta ulkonäkö verkkosivusto on mahdollista ilman koko HTML:n uudelleenkoodausta.
- Jälleen kerran, koska suunnittelu pidetään erillään sisällöstä, semanttinen koodi sallii kuka tahansa lisätä tai muokata sivuja ilman hyvää silmää suunnitteluun. Kuvaat vain sisällön, ja CSS määrittää, miltä sisältö näyttää.
Kuinka voit varmistaa, että verkkosivusto käyttää semanttista koodia?
Päällä tällä hetkellä ei ole työkalua, joka voi tarkistaa semanttisen koodin. Kaikki johtuu siitä, että koodin värit, fontit tai asettelut tarkistetaan sisällön kuvauksen sijaan. Jos koodianalyysi kuulostaa pelottavalta, hyvä lähtökohta on kysyä web-suunnittelijaltasi, onko hän koodaamassa semantiikkaa? Jos hän katsoo sinua tyhjän päälle tai alkaa puhua naurettavaa, voit olla varma, että hän ei koodaa tällä tavalla. Tällä hetkellä sinun on päätettävä, annatko hänelle uuden suunnan hänen työssään vai etsitkö itsellesi uuden suunnittelijan?!
HTML-koodin semantiikka on aina kuuma aihe. Jotkut kehittäjät yrittävät aina kirjoittaa semanttista koodia. Toiset arvostelevat dogmaattisia kannattajia. Ja jotkut eivät edes tiedä, mikä se on ja miksi sitä tarvitaan. Semantiikka määritellään HTML:ssä tageissa, luokissa, tunnuksissa ja attribuuteissa, jotka kuvaavat tarkoitusta, mutta eivät määrittele niiden sisältämää tarkkaa sisältöä. Eli puhumme sisällön ja sen muodon erottamisesta.
Aloitetaan ilmeisellä esimerkillä.
Huono koodin semantiikka
Hyvä koodin semantiikka
Jonkun kirjoittaman artikkelin teksti. Inko Gnito- sen kirjoittaja.Artikkelin otsikko
Olipa HTML5 mielestäsi käyttövalmis tai ei, käyttö Mutta kaikkea ei esitetä niin selvästi HTML5-tunnisteilla. Katsotaanpa joukko luokan nimiä ja katsotaan, täyttävätkö ne semanttiset vaatimukset. Ei semanttinen koodi. Tämä on klassinen esimerkki. Jokainen CSS-ruudukon työpöytä käyttää tämäntyyppisiä luokkanimiä ruudukkoelementtien määrittämiseen. Olipa kyseessä "yui-b", "grid-4" tai "spanHalf" - tällaiset nimet ovat lähempänä merkintöjen määrittämistä kuin sisällön kuvaamista. Niiden käyttö on kuitenkin väistämätöntä useimmissa tapauksissa, kun työskennellään modulaaristen ruudukkomallien kanssa. Semanttinen koodi. Alatunniste on saanut vahvan merkityksen web-suunnittelussa. Tämä on sivun alaosa, joka sisältää elementtejä, kuten toistuvan navigoinnin, käyttöoikeudet, tekijän tiedot ja niin edelleen. Tämä luokka määrittelee ryhmän kaikille näille elementeille kuvaamatta niitä. Jos olet siirtynyt käyttämään HTML5:tä, on parempi käyttää elementtiä Ei semanttinen koodi. Se määrittelee sisällön tarkasti. Mutta miksi tekstin pitää olla suurta? Erottuako pienemmistä teksteistä? "standOut" (korostus) on sopivampi tässä tapauksessa. Voit päättää muuttaa korostustekstin tyyliä, mutta et tee mitään sen koon suhteen, jolloin luokan nimi saattaa hämmentää sinua. Semanttinen koodi. Tässä tapauksessa puhumme sovellusliittymän elementin (esimerkiksi kappaleen tai painikkeen) tärkeystason määrittämisestä. Korkeamman tason elementissä voi olla kirkkaat värit ja suurempi koko, kun taas alemman tason elementit voivat sisältää enemmän sisältöä. Mutta tässä tapauksessa tyyleille ei ole tarkkaa määritelmää, joten koodi on semanttinen. Tämä tilanne on hyvin samanlainen kuin tagien käyttäminen Semanttinen koodi. Kunpa jokaisen luokan nimi olisi niin selkeästi määritelty! Tässä tapauksessa meillä on kuvaus osiosta, jossa on sisältöä, jonka tarkoitus on helppo kuvata, kuten "tweetit", "sivut" tai "admin-nav". Ei semanttinen koodi. Tässä tapauksessa puhumme tyylin asettamisesta sivun ensimmäiselle kappaleelle. Tätä tekniikkaa käytetään kiinnittämään lukijoiden huomio materiaaliin. On parempi käyttää nimeä "intro", joka ei mainitse elementtiä. Mutta on vielä parempi käyttää valitsinta tällaisille kappaleille, kuten artikkeli p:first-of-type tai h1 + p . Ei semanttinen koodi. Tämä on hyvin yleinen luokan nimi, jota käytetään elementtien muotoilun järjestämiseen. Mutta siinä ei ole mitään, mikä liittyisi sisällön kuvaukseen. Useat semanttiset teoreetikot suosittelevat käyttämään luokan nimeä, kuten "ryhmä". On todennäköistä, että he ovat oikeassa. Koska tämä elementti epäilemättä palvelee useiden muiden elementtien ryhmittelyä, suositeltu nimi kuvaa paremmin sen tarkoitusta yksityiskohtiin sukeltamatta. Ei semanttinen koodi. Liian yksityiskohtainen kuvaus sisältömuodosta. On parempi valita jokin muu nimi, joka kuvaa sisältöä sen muodon sijaan. Semanttinen koodi. Luokka kuvaa sisällön tilan erittäin hyvin. Esimerkiksi onnistumisviestillä voi olla täysin erilainen tyyli kuin virheviestillä. Ei semanttinen koodi. Tässä esimerkissä yritetään määritellä sisällön muoto eikä tarkoitus. "plain-jane" on hyvin samanlainen kuin "normaali" tai "tavallinen". Ihanteellinen CSS-koodi tulee kirjoittaa siten, että sisällön muotoa kuvaavia luokkien nimiä, kuten "tavallinen", ei tarvita. Ei semanttinen koodi. Tämän tyyppisiä luokkia käytetään yleensä määrittämään sivustoelementtejä, joita ei pitäisi sisällyttää linkkiketjuun. Tässä tapauksessa on parempi käyttää jotain kuten rel=nofollow linkeissä, mutta ei luokkaa kaikelle sisällölle. Ei semanttinen koodi. Tämä on yritys kuvata sisällön muotoa, ei sen tarkoitusta. Oletetaan, että verkkosivustollasi on kaksi artikkelia. Ja haluat antaa heille erilaisia tyylejä. "Elokuva-arvostelut" on sinisellä taustalla ja "Breaking News" on punainen tausta ja suurempi kirjasinkoko. Yksi tapa ratkaista ongelma on tämä: Toinen tapa on tämä: Varmasti, jos haastat useita kehittäjiä siitä, mikä koodi vastaa paremmin semanttisia vaatimuksia, suurin osa varmasti viittaa ensimmäiseen vaihtoehtoon. Se vastaa täydellisesti tämän oppitunnin materiaalia: tarkoituksen kuvaus ilman linkkejä muotoiluun. Ja toinen vaihtoehto ilmaisee muodon ("blueBg" on luokan nimi, joka muodostuu kahdesta englanninkielisestä sanasta, jotka tarkoittavat "sinistä taustaa"). Jos päätät yhtäkkiä muuttaa elokuva-arvostelujen suunnittelua - esimerkiksi tehdä vihreän taustan, luokan nimi "blueBg" muuttuu kehittäjän painajaiseksi. Ja nimen "elokuva-arvostelu" avulla voit ehdottoman helposti muuttaa suunnittelutyylejä säilyttäen samalla erinomaisen koodituen. Mutta kukaan ei väitä, että ensimmäinen esimerkki on parempi kaikissa tapauksissa poikkeuksetta. Oletetaan, että tiettyä sinisen sävyä käytetään monissa paikoissa sivustolla. Se on esimerkiksi tausta joillekin sivupalkin alatunnisteille ja alueille. Voit käyttää seuraavaa valitsinta: Elokuva-arvostelu, alatunniste > div:nth-of-type(2), sivuun > div:nth-of-type(4) ( tausta: #c2fbff; ) Tehokas ratkaisu, koska väri määräytyy vain yhdestä paikasta. Mutta tällaista koodia on vaikea ylläpitää, koska siinä on pitkä valitsin, jota on vaikea visuaalisesti ymmärtää. Tarvitset myös muita valitsimia yksilöllisten tyylien määrittämiseen, mikä johtaa koodin toistoon. Tai voit valita toisenlaisen lähestymistavan ja pitää ne erillään: Elokuva-arvostelu ( tausta: #c2fbff; /* Värin määritelmä */ ) alatunniste > div:nth-of-type(2) ( tausta: #c2fbff; /* Ja vielä yksi asia */ ) sivuun > div:nth-of - type(4) ( tausta: #c2fbff; /* Ja vielä yksi asia */ ) Tämä tyyli auttaa pitämään CSS-tiedoston järjestyksessä (eri alueet on määritelty eri osioissa). Mutta maksettava hinta on määritelmien toisto. Suurilla sivustoilla saman värin tunnistaminen voi olla useita tuhansia kertoja. Kauhea! Ratkaisu olisi käyttää luokkaa, kuten "blueBg", määrittämään väri kerran ja lisäämään se HTML-koodiin, kun haluat käyttää tätä mallia. Tietenkin on parempi kutsua sitä "mainBrandColor" tai "secondaryFont" päästäksesi eroon muotoilun kuvauksesta. Voit uhrata koodisemantiikan säästääksesi resursseja. (korvaukset). Korvaussalauksissa kirjaimet muutetaan muista kirjaimista samasta aakkosesta koodattaessa, kirjaimet muutetaan täysin erilaisiksi - kuviksi, muiden aakkosten symboleiksi, eri merkkijonoiksi jne. Lähdetekstin aakkosten ja koodisymbolien välinen vastaavuustaulukko laaditaan, ja tämän taulukon mukaisesti tapahtuu yksi-yhteen-koodaus. Koodauksen purkamiseksi sinun on tunnettava kooditaulukko. Ihmiselämän eri alueilla on käytössä suuri määrä koodeja. Tunnettuja koodeja käytetään lähinnä helpottamaan tiedon välittämistä tavalla tai toisella. Jos kooditaulukko on vain lähettimen ja vastaanottimen tiedossa, tuloksena on melko primitiivinen salaus, joka on helposti sovellettavissa taajuusanalyysiin. Mutta jos henkilö on kaukana koodausteoriasta eikä tunne tekstin taajuusanalyysiä, hänen on melko ongelmallista purkaa sellaiset salaukset. Yksinkertaisin salaus. Kutsutaan A1Z26 tai venäläisessä versiossa A1Я33. Aakkosten kirjaimet korvataan niiden sarjanumeroilla. "NoZDR" voidaan salata muodossa 14-15-26-4-18 tai 1415260418. Kirjaimet, numerot ja jotkin merkit liittyvät pisteiden ja viivojen joukkoon, jotka voidaan välittää radion, äänen, koputuksen, valolennätin ja lippusignaalin välityksellä. Koska merimiehillä jokaiseen kirjaimeen liittyy myös vastaava lippu, on mahdollista välittää viesti lippujen avulla. Pistekirjoitus on sokeille tarkoitettu tuntolukujärjestelmä, joka koostuu kuuden pisteen merkeistä, joita kutsutaan soluiksi. Solu koostuu kolmesta korkeudesta ja kahdesta leveydestä. Erilaiset pistekirjoitusmerkit muodostetaan sijoittamalla pisteitä solun eri kohtiin. Mukavuuden vuoksi kohdat on kuvattu luettaessa seuraavasti: 1, 2, 3 vasemmalta ylhäältä alas ja 4, 5, 6 oikealta ylhäältä alas. Kun kirjoitat tekstiä, noudata seuraavia sääntöjä: yksi solu (välilyönti) ohitetaan sanojen välissä; pilkun ja puolipisteen jälkeen solua ei ohiteta; viiva kirjoitetaan yhdessä edellisen sanan kanssa; numeron eteen asetetaan digitaalinen merkki. Tietokonetehtävässä ja arvoituksessa kirjaimet voidaan koodata niiden koodien mukaan erilaisiin koodisivuihin - tietokoneissa käytettyihin taulukoihin. Kyrillisissä teksteissä on parasta käyttää yleisimpiä koodauksia: Windows-1251, KOI8, CP866, MacCyrillic. Vaikka monimutkaiseen salaukseen voit valita jotain eksoottisempaa. Voit koodata käyttämällä heksadesimaalilukuja tai muuntaa ne desimaaliluvuiksi. Esimerkiksi E-kirjaimella KOI8-R:ssä on koodi B3 (179), CP866:ssa - F0 (240) ja Windows-1251:ssä - A8 (168). Tai voit etsiä kirjaimia oikeista taulukoista, jotta ne vastaavat niitä vasemmasta, niin teksti osoittautuu kirjoitetuksi "hulluilla sanoilla", kuten èαᬫº∩íαδ
(866→437) tai Êðàêîçÿáðû
(1251→Latin-1). Tai voit vaihtaa merkkien yläosan alemmaksi taulukossa. Sitten Windows-1251:ssä "krakozyabry":n tilalle tulee "jp"jng ap(), eikä "HELICOPTER" - "BEPRNK(R". Tällainen koodisivun muutos on klassinen merkittävimmän bitin menetys aikana Tässä tapauksessa latinalaiset merkit voidaan koodata 128 merkin käänteisellä siirrolla. Tämä koodaus on muunnos salauksesta - ROT128, ei vain tavalliselle aakkoselle, vaan valitulle koodisivulle. Salauksen tarkkaa alkuperää ei tunneta, mutta jotkut tämän järjestelmän löydetyistä tietueista ovat peräisin 1700-luvulta. Tämän salauksen muunnelmia käyttivät ruusuristiläinen ritarikunta ja vapaamuurarit. Jälkimmäiset käyttivät sitä melko usein salaisissa asiakirjoissaan ja kirjeenvaihdossaan, minkä vuoksi salausta alettiin kutsua vapaamuurarien salakirjaksi. Jopa vapaamuurarien hautakivissä voit nähdä kirjoituksia tällä koodilla. Samanlaista salausjärjestelmää käyttivät Yhdysvaltain sisällissodan aikana George Washingtonin armeija sekä Yhdysvaltain konfederaation osavaltioiden liittovaltion vankiloiden vangit. Alla on kaksi (sininen ja punainen) vaihtoehtoa tällaisten salausten ruudukon täyttämiseksi. Kirjaimet on järjestetty pareittain, parin toinen kirjain piirretään symbolilla, jossa on piste: On keksitty laaja valikoima salauksia, joissa yksi aakkosten merkki (kirjain, numero, välimerkki) vastaa yhtä (harvoin useampaa) graafista merkkiä. Suurin osa niistä keksittiin käytettäväksi tieteiselokuvissa, sarjakuvissa ja tietokonepeleissä. Tässä on joitain niistä: Yksi tunnetuimmista kirjailijoiden korvaussalauksista on "". Sen keksi ja kuvasi englantilainen kirjailija Arthur Conan Doyle yhdessä Sherlock Holmesia käsittelevistä teoksistaan. Aakkosten kirjaimet korvataan symboleilla, jotka näyttävät pieniltä miehiltä eri asennoissa. Kirjassa pieniä miehiä ei keksitty kaikille aakkosten kirjaimille, joten fanit muokkasivat ja muokkasivat symboleja luovasti, ja tuloksena oli tämä salaus: Mutta Thomas More kuvasi sellaisen aakkoston tutkielmassaan "Utopia" vuonna 1516: 4.1. Salauksen perusteet Korvausmenetelmää käyttävän salauksen olemus on seuraava. Anna venäjänkieliset viestit salata ja näiden viestien jokainen kirjain on korvattava. Siis kirjaimellisesti A lähdeaakkostoa verrataan tiettyyn symbolijoukkoon (salauksen vaihto) M A, B – M B, …, I – M I. Salauksen vaihdot valitaan siten, että mitkä tahansa kaksi joukkoa ( M I Ja M J, i ≠ j) ei sisältänyt identtisiä elementtejä ( M I ∩ M J = Ø). Kuvassa 4.1 näkyvä taulukko on korvaavan salauksen avain. Tietäen sen, voit suorittaa sekä salauksen että salauksen purkamisen. Kuva 4.1. Salauskorvaustaulukko Kun salataan, jokainen kirjain A avoin viesti korvataan millä tahansa joukon merkillä M A. Jos viesti sisältää useita kirjaimia A, sitten jokainen niistä korvataan millä tahansa merkillä kohteesta M A. Tästä johtuen yhden avaimen avulla on mahdollista saada eri versiot salakirjoituksesta samalle avoimelle viestille. Sarjoista lähtien M A, M B, ..., M I eivät leikkaa pareittain, niin jokaiselle salaussymbolille voidaan yksiselitteisesti määrittää, mihin joukkoon se kuuluu, ja siten minkä avoimen viestin kirjaimen se korvaa. Siksi salauksen purku on mahdollista ja avoin viesti määritetään ainutlaatuisella tavalla. Yllä oleva kuvaus substituutiosalausten olemuksesta koskee kaikkia niiden muunnelmia lukuun ottamatta , joissa samoilla substituutiosalauksilla voidaan salata alkuperäisen aakkoston eri merkkejä (ts. M I ∩ M J ≠ Ø, i ≠ j). Usein monet käyttäjät käyttävät korvausmenetelmää työskennellessään tietokoneella. Jos et muista unohtamisen vuoksi vaihda näppäimistön merkistöä latinasta kyrilliseen, venäjän aakkosten sijasta tekstiä syötettäessä tulostetaan latinalaisten aakkosten kirjaimet ("salauksen vaihdot"). Alkuperäisten ja salattujen viestien tallentamiseen käytetään tiukasti määriteltyjä aakkosia. Alkuperäisten ja salattujen viestien tallennuksen aakkoset voivat vaihdella. Molempien aakkosten merkit voidaan esittää kirjaimilla, niiden yhdistelmillä, numeroilla, kuvilla, äänillä, eleillä jne. Esimerkkinä voidaan mainita tanssivat miehet A. Conan Doylen tarinasta () ja riimukirjeen käsikirjoitus () J. Vernen romaanista ”Matka maan keskustaan”. Korvaussalaukset voidaan jakaa seuraaviin alaluokat(lajikkeet). Kuva 4.2. Korvaussalausten luokitus I. Tavalliset salaukset. Salauskorvaukset koostuvat samasta määrästä merkkejä tai erotetaan toisistaan erottimella (välilyönti, piste, viiva jne.). Sloganin koodi. Tietylle salaukselle salauksen korvaustaulukon rakentaminen perustuu iskulauseeseen (avaimeen) - helppo muistaa sana. Salauksen korvaustaulukon toinen rivi täytetään ensin iskusanalla (ja toistuvat kirjaimet hylätään) ja sitten muilla kirjaimilla, jotka eivät sisälly iskulauseen sanaan, aakkosjärjestyksessä. Jos esimerkiksi iskulause "UNCLE" on valittu, taulukko näyttää tältä. Kuva 4.4. Taulukko iskulauseen salauskorvauksista Kun alkuperäinen viesti "ABRAMOV" salataan yllä olevalla avaimella, salausohjelma näyttää tältä "YAPDKMI". Polybian aukio. Salauksen keksi kreikkalainen valtiomies, komentaja ja historioitsija Polybios (203-120 eKr.). Venäläisten aakkosten ja intialaisten (arabialaisten) numeroiden suhteen salauksen olemus oli seuraava. Kirjaimet kirjoitetaan 6x6 neliöön (ei välttämättä aakkosjärjestyksessä). Kuva 4.5. Taulukko Polybian neliön salauskorvauksista Salattu kirjain korvataan sen neliön (rivi-sarakkeen) koordinaatilla, johon se on kirjoitettu. Esimerkiksi, jos alkuperäinen viesti on "ABRAMOV", salaus on "11 12 36 11 32 34 13". Muinaisessa Kreikassa viestejä välitettiin optisella lennätyksellä (soihtujen avulla). Jokaiselle viestin kirjaimelle nostettiin ensin kirjeen rivinumeroa vastaava määrä taskulamppuja ja sitten sarakkeen numero. Taulukko 4.1. Venäläisten kirjainten esiintymistiheys teksteissä Vastaavia taulukoita on olemassa kirjainpareille (bigrammi). Esimerkiksi usein kohdatut suurmerkit ovat "to", "but", "st", "po", "en" jne. Toinen tekniikka salausgrammien rikkomiseen perustuu mahdollisten kirjainyhdistelmien poistamiseen. Esimerkiksi teksteistä (jos ne on kirjoitettu ilman kirjoitusvirheitä) et löydä yhdistelmiä "chya", "shchi", "b" jne. Yksi-yhteen korvaavien salausten rikkomisen vaikeuttamiseksi jo muinaisina aikoina välilyönnit ja/tai vokaalit suljettiin pois alkuperäisistä viesteistä ennen salausta. Toinen tapa, joka vaikeuttaa avaamista, on salaus bigrammit(kirjainpareina). 4.3. Polygrammien salakirjoitus Polygrammin korvaussalaukset- nämä ovat salauksia, joissa yksi salauskorvaus vastaa useita lähdetekstin merkkejä kerralla. Biggramin salausportit. Taulukkomuodossa esitetty Portan salakirjoitus on ensimmäinen tunnettu suursalaus. Hänen pöytänsä koko oli 20 x 20 solua; vakioaakkoset kirjoitettiin yläreunaan vaakasuoraan ja pystysuoraan vasemmalle (se ei sisältänyt kirjaimia J, K, U, W, X ja Z). Taulukon soluihin voitiin kirjoittaa mitä tahansa numeroita, kirjaimia tai symboleja - Giovanni Porta itse käytti symboleja - edellyttäen, että yhdenkään solun sisältö ei toistu. Suhteessa venäjän kieleen salauksen korvaustaulukko voi näyttää tältä. Kuva 4.10. Ports-salauksen vaihtotaulukko Salaus suoritetaan käyttämällä alkuperäisen viestin kirjainpareja. Parin ensimmäinen kirjain osoittaa salauksen vaihtorivin, toinen - sarakkeen. Jos alkuperäisessä viestissä on pariton määrä kirjaimia, siihen lisätään apumerkki ("tyhjä merkki"). Esimerkiksi alkuperäinen viesti "AB RA MO V", salattu - "002 466 355 093". Kirjainta "I" käytetään apusymbolina. Playfair cipher (englanniksi: "Fair game"). 1850-luvun alussa. Charles Wheatstone keksi niin kutsutun "suorakulmaisen salauksen". Leon Playfair, Wheatstonen läheinen ystävä, puhui tästä salakirjoituksesta virallisella illallisella vuonna 1854 sisäministeri Lord Palmerstonille ja prinssi Albertille. Ja koska Playfair tunnettiin hyvin sotilaallisissa ja diplomaattisissa piireissä, nimi "Playfair cipher" annettiin ikuisesti Wheatstonen luomukselle. Tämä salaus oli ensimmäinen aakkosellinen bigrammisalaus (Portan bigrammitaulukossa käytettiin symboleja, ei kirjaimia). Se oli suunniteltu varmistamaan lennätinviestinnän salaisuus, ja brittiläiset joukot käyttivät sitä buurien ja ensimmäisessä maailmansodassa. Sitä käytti myös Australian saarten rannikkovartiosto toisen maailmansodan aikana. Salaus mahdollistaa symboliparien (digrammien) salauksen. Siten tämä salaus kestää paremmin murtumista kuin yksinkertainen korvaussalaus, koska taajuusanalyysi on vaikeampaa. Se voidaan suorittaa, mutta ei 26 mahdolliselle merkille (latinalaiset aakkoset), vaan 26 x 26 = 676 mahdollista bigrammaa. Bigg-taajuusanalyysi on mahdollista, mutta se on huomattavasti vaikeampaa ja vaatii paljon suuremman määrän salatekstiä. Viestin salaamiseksi on tarpeen jakaa se bigrammeiksi (kahden merkin ryhmiksi), ja jos kaksi identtistä symbolia löytyy bigrammista, lisätään ennalta sovittu apusymboli niiden väliin (alkuperäisessä - X, venäjän aakkosille - minä). Esimerkiksi sanasta "salattu viesti" tulee "salattu viesti" minä viestintää minä" Avaintaulukon muodostamiseksi valitaan iskulause ja se täytetään Trisemus-salausjärjestelmän sääntöjen mukaisesti. Esimerkiksi iskulauseen "UNCLE" avaintaulukko näyttää tältä. Kuva 4.11. Playfair-salauksen avainpöytä Sitten lähdetekstin merkkiparit salataan seuraavien sääntöjen mukaisesti: 1. Jos lähdetekstin biggram-symbolit esiintyvät yhdellä rivillä, nämä symbolit korvataan vastaavien symbolien oikealla puolella olevissa lähimmissä sarakkeissa olevilla symboleilla. Jos merkki on rivin viimeinen, se korvataan saman rivin ensimmäisellä merkillä. 2. Jos lähdetekstin biggram-merkit esiintyvät yhdessä sarakkeessa, ne muunnetaan saman sarakkeen merkeiksi, jotka sijaitsevat suoraan niiden alapuolella. Jos merkki on sarakkeen alin merkki, se korvataan saman sarakkeen ensimmäisellä merkillä. 3. Jos lähdetekstin suursymbolit ovat eri sarakkeissa ja eri riveissä, ne korvataan symboleilla, jotka sijaitsevat samoilla riveillä, mutta jotka vastaavat suorakulmion muita kulmia. Esimerkki salauksesta. Biggrammi "for" muodostaa suorakulmion - se korvataan "zhb"; Biggrammi "shi" on yhdessä sarakkeessa - korvattu sanalla "yu"; Biggrammi "fr" on yhdellä rivillä - se korvataan "xc":llä; Biggrammi "ov" muodostaa suorakulmion - se korvataan "yzh"; Biggrammi "an" on yhdellä rivillä - korvattu "ba":lla; Biggrammi "mutta" muodostaa suorakulmion - se korvataan "am"; Biggrammi "es" muodostaa suorakulmion - se korvataan "gt":llä; Biggrammi "oya" muodostaa suorakulmion - se korvataan "ka":lla; Biggrammi "noin" muodostaa suorakulmion - se korvataan sanalla "pa"; Biggrammi "shche" muodostaa suorakulmion - se korvataan "shyolla"; Biggrammi "ni" muodostaa suorakulmion - se korvataan "an":lla; Biggrammi "ee" muodostaa suorakulmion ja korvataan "gi". Koodi on "zhb yue xs yzh ba am gt ka pa she an gi". Salauksen purkamiseksi sinun on käytettävä näiden sääntöjen käänteistä hylkäämistä merkit minä(tai X), jos niissä ei ole järkeä alkuperäisessä viestissä. Se koostui kahdesta levystä - ulkoisesta kiinteästä levystä ja sisäisestä liikkuvasta levystä, joille aakkosten kirjaimet oli painettu. Salausprosessi sisälsi selväkielisen kirjaimen etsimisen ulkoiselta asemalta ja sen korvaamisen sen alla olevan sisäisen aseman kirjaimella. Tämän jälkeen sisäistä levyä siirrettiin yksi paikka ja toinen kirjain salattiin uudella salaaakkostolla. Avain tähän salaukseen oli levyjen kirjainten järjestys ja sisäisen levyn alkusijainti suhteessa ulkoiseen levyyn. Trisemus-pöytä. Yksi saksalaisen apotti Trisemuksen keksimistä salakirjoista oli moniaakkosinen salakirjoitus, joka perustui niin kutsuttuun "Trisemus-taulukkoon" - pöytään, jonka sivut olivat yhtä suuret kuin n, Missä n– aakkosten merkkien määrä. Matriisin ensimmäisellä rivillä kirjaimet kirjoitetaan niiden järjestyksen mukaisessa järjestyksessä aakkostossa, toisessa - sama kirjainsarja, mutta syklisellä siirrolla yhden sijainnin verran vasemmalle, kolmannella - syklisellä siirtyä kaksi asentoa vasemmalle jne. Kuva 4.17. Trisemus-pöytä Ensimmäinen rivi on myös selväkielisten kirjainten aakkoset. Tekstin ensimmäinen kirjain on salattu ensimmäisellä rivillä, toinen kirjain toisella ja niin edelleen. Viimeisen rivin käytön jälkeen he palaavat ensimmäiseen. Joten viesti "ABRAMOV" on muotoa "AVTGRUZ". Vigenère-salausjärjestelmä. Vuonna 1586 ranskalainen diplomaatti Blaise Vigenère esitti Henrik III:n toimeksiannosta kuvauksen yksinkertaisesta mutta melko vahvasta salakirjoista, joka perustui Trisemus-taulukkoon. Ennen salausta avain valitaan aakkosmerkeistä. Itse salausmenettely on seuraava. Ensimmäisen rivin avoimen viestin i:s merkki määrittää sarakkeen ja avaimen i:s merkki vasemmanpuoleisessa sarakkeessa määrittää rivin. Rivin ja sarakkeen leikkauskohdassa on i:s merkki salakirjoituksessa. Jos avaimen pituus on lyhyempi kuin viesti, sitä käytetään uudelleen. Esimerkiksi alkuperäinen viesti on "ABRAMOV", avain on "UNCLE", salauskoodi on "DAFIYOYE". Rehellisyyden nimissä on huomattava, että tämän salauksen tekijä kuuluu italialaiselle Giovanni Battista Bellasolle, joka kuvaili sen vuonna 1553. Historia "jätti huomioimatta tärkeän tosiasian ja nimesi salauksen Vigenèren mukaan huolimatta siitä, ettei hän tehnyt mitään sen luomiseksi .” Bellazo ehdotti salaisen sanan tai lauseen kutsumista salasana(italialainen salasana; ranskalainen parole - sana). Vuonna 1863 Friedrich Kasiski julkaisi algoritmin tämän salauksen hyökkäämiseksi, vaikkakin on tunnettuja tapauksia, joissa jotkut kokeneet kryptanalyytikot ovat rikkoneet hänen salauksensa aiemmin. Erityisesti vuonna 1854 ensimmäisen analyyttisen tietokoneen keksijä Charles Babbage mursi salauksen, vaikka tämä tosiasia tuli tunnetuksi vasta 1900-luvulla, kun ryhmä tutkijoita analysoi Babbagen laskelmia ja henkilökohtaisia muistiinpanoja. Tästä huolimatta Vigenère-salauksella oli maine erittäin kestävänä manuaalista halkeilua vastaan pitkään. Niinpä kuuluisa kirjailija ja matemaatikko Charles Lutwidge Dodgson (Lewis Carroll) kutsui artikkelissaan "The Alphabetic Cipher", joka julkaistiin lastenlehdessä vuonna 1868, Vigenère-salausta särkymättömäksi. Vuonna 1917 suosittu tiedelehti Scientific American kuvaili myös Vigenère-salausta särkymättömäksi. Pyörivät koneet. Albertin ja Bellason ideoita käytettiin sähkömekaanisten pyörivien koneiden luomiseen 1900-luvun ensimmäisellä puoliskolla. Osa niistä oli käytössä eri maissa 1980-luvulle asti. Suurin osa heistä käytti roottoreita (mekaanisia pyöriä), joiden suhteellinen sijainti määräsi nykyisen vaihdon suorittamiseen käytetyn salakirjoituksen. Tunnetuin pyörivistä koneista on saksalainen toisen maailmansodan Enigma-kone. Yhden roottorin lähtönastat kytketään seuraavan roottorin tulonastoihin ja kun alkuperäistä viestisymbolia painetaan näppäimistöllä, sähköpiiri valmistuu, minkä seurauksena salauksen vaihtosymbolilla varustettu lamppu syttyy. Kuva 4.19. Enigma-roottorijärjestelmä [www.cryptomuseum.com] Enigman salausvaikutus näkyy kahdella peräkkäin painetulla näppäimellä - virta kulkee roottoreiden läpi, "heijastuu" heijastimesta ja sitten taas roottoreiden läpi. Kuva 4.20. Salausjärjestelmä Huom. Harmaat viivat osoittavat muita mahdollisia sähköpiirit jokaisen roottorin sisällä. Kirje A salataan eri tavalla, kun peräkkäisiä näppäimiä painetaan ensin G, sitten sisään C. Signaali kulkee eri reitillä, koska yksi roottoreista pyörii alkuperäisen viestin edellisen kirjaimen painamisen jälkeen. 3. Kuvaile korvaussalausten tyypit. ,
,
, ja niin edelleen, mutta muihin käyttöliittymäelementteihin.
Mutta...
A1Z26
morseaakkoset
Pistekirjoitus
Koodisivut
Tekijänoikeussalaukset
Tanssivia miehiä
Thomas Moren aakkoset
Salauskirjat animaatiosarjasta "Gravity Falls"
Bill Cipher
Stanford Pines (päiväkirjailija)
Jedi-aakkoset Star Warsista
Alien aakkoset Futuramasta
Supermanin kryptoniset aakkoset
Bionicle aakkoset
A B ...
minä
M A M B ...
M I
A B IN G D E Joo JA Z JA Y TO L M N NOIN P R KANSSA T U F X C H Sh SCH Kommersant Y b E Yu minä
D minä JA N A B IN G E Joo JA Z Y TO L M NOIN P R KANSSA T U F X C H Sh SCH Kommersant Y b E Yu
1
2
3
4
5
6
1
A B IN G D E
2
Joo JA Z JA Y TO
3
L M N NOIN P R
4
KANSSA T U F X C
5
H Sh SCH Kommersant Y b
6
E Yu minä -
-
-
Ei. Kirje Taajuus, % Ei. Kirje Taajuus, %
1
NOIN 10.97
18
b 1.74
2
E 8.45
19
G 1.70
3
A 8.01
20
Z 1.65
4
JA 7.35
21
B 1.59
5
N 6.70
22
H 1.44
6
T 6.26
23
Y 1.21
7
KANSSA 5.47
24
X 0.97
8
R 4.73
25
JA 0.94
9
IN 4.54
26
Sh 0.73
10
L 4.40
27
Yu 0.64
11
TO 3.49
28
C 0.48
12
M 3.21
29
SCH 0.36
13
D 2.98
30
E 0.32
14
P 2.81
31
F 0.26
15
U 2.62
32
Kommersant 0.04
16
minä 2.01
33
Joo 0.04
17
Y 1.90
A B IN G D E
(joo)JA Z JA
(Y)TO L M N NOIN P R KANSSA T U F X C H Sh SCH Kommersant Y b E Yu minä
A 001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
B 032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
IN 063
064
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091
092
093
G 094
095
096
097
098
099
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
D 125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
HÄNEN) 156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
JA 187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
Z 218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
minä (Y) 249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
TO 280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
L 311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
M 342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
N 373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
NOIN 404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
P 435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
R 466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
KANSSA 497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
T 528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
U 559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
F 590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
X 621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
C 652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
H 683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
Sh 714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
SCH 745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
Kommersant 776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
Y 807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
b 838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
E 869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
Yu 900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
minä 931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
D minä JA N A B
IN G E Joo JA Z
Y TO L M NOIN P
R KANSSA T U F X
C H Sh SCH Kommersant Y
b E Yu -
1
2
A B IN G D E Joo JA Z JA Y TO L M N NOIN P R KANSSA T U F X C H Sh SCH Kommersant Y b E Yu minä
B IN G D E Joo JA Z JA Y TO L M N NOIN P R KANSSA T U F X C H Sh SCH Kommersant Y b E Yu minä A
IN G D E Joo JA Z JA Y TO L M N NOIN P R KANSSA T U F X C H Sh SCH Kommersant Y b E Yu minä A B
G D E Joo JA Z JA Y TO L M N NOIN P R KANSSA T U F X C H Sh SCH Kommersant Y b E Yu minä A B IN
D E Joo JA Z JA Y TO L M N NOIN P R KANSSA T U F X C H Sh SCH Kommersant Y b E Yu minä A B IN G
E Joo JA Z JA Y TO L M N NOIN P R KANSSA T U F X C H Sh SCH Kommersant Y b E Yu minä A B IN G D
Joo JA Z JA Y TO L M N NOIN P R KANSSA T U F X C H Sh SCH Kommersant Y b E Yu minä A B IN G D E
JA Z JA Y TO L M N NOIN P R KANSSA T U F X C H Sh SCH Kommersant Y b E Yu minä A B IN G D E Joo
Z JA Y TO L M N NOIN P R KANSSA T U F X C H Sh SCH Kommersant Y b E Yu minä A B IN G D E Joo JA
JA Y TO L M N NOIN P R KANSSA T U F X C H Sh SCH Kommersant Y b E Yu minä A B IN G D E Joo JA Z
Y TO L M N NOIN P R KANSSA T U F X C H Sh SCH Kommersant Y b E Yu minä A B IN G D E Joo JA Z JA
TO L M N NOIN P R KANSSA T U F X C H Sh SCH Kommersant Y b E Yu minä A B IN G D E Joo JA Z JA Y
L M N NOIN P R KANSSA T U F X C H Sh SCH Kommersant Y b E Yu minä A B IN G D E Joo JA Z JA Y TO
M N NOIN P R KANSSA T U F X C H Sh SCH Kommersant Y b E Yu minä A B IN G D E Joo JA Z JA Y TO L
N NOIN P R KANSSA T U F X C H Sh SCH Kommersant Y b E Yu minä A B IN G D E Joo JA Z JA Y TO L M
NOIN P R KANSSA T U F X C H Sh SCH Kommersant Y b E Yu minä A B IN G D E Joo JA Z JA Y TO L M N
P R KANSSA T U F X C H Sh SCH Kommersant Y b E Yu minä A B IN G D E Joo JA Z JA Y TO L M N NOIN
R KANSSA T U F X C H Sh SCH Kommersant Y b E Yu minä A B IN G D E Joo JA Z JA Y TO L M N NOIN P
KANSSA T U F X C H Sh SCH Kommersant Y b E Yu minä A B IN G D E Joo JA Z JA Y TO L M N NOIN P R
T U F X C H Sh SCH Kommersant Y b E Yu minä A B IN G D E Joo JA Z JA Y TO L M N NOIN P R KANSSA
U F X C H Sh SCH Kommersant Y b E Yu minä A B IN G D E Joo JA Z JA Y TO L M N NOIN P R KANSSA T
F X C H Sh SCH Kommersant Y b E Yu minä A B IN G D E Joo JA Z JA Y TO L M N NOIN P R KANSSA T U
X C H Sh SCH Kommersant Y b E Yu minä A B IN G D E Joo JA Z JA Y TO L M N NOIN P R KANSSA T U F
C H Sh SCH Kommersant Y b E Yu minä A B IN G D E Joo JA Z JA Y TO L M N NOIN P R KANSSA T U F X
H Sh SCH Kommersant Y b E Yu minä A B IN G D E Joo JA Z JA Y TO L M N NOIN P R KANSSA T U F X C
Sh SCH Kommersant Y b E Yu minä A B IN G D E Joo JA Z JA Y TO L M N NOIN P R KANSSA T U F X C H
SCH Kommersant Y b E Yu minä A B IN G D E Joo JA Z JA Y TO L M N NOIN P R KANSSA T U F X C H Sh
Kommersant Y b E Yu minä A B IN G D E Joo JA Z JA Y TO L M N NOIN P R KANSSA T U F X C H Sh SCH
Y b E Yu minä A B IN G D E Joo JA Z JA Y TO L M N NOIN P R KANSSA T U F X C H Sh SCH Kommersant
b E Yu minä A B IN G D E Joo JA Z JA Y TO L M N NOIN P R KANSSA T U F X C H Sh SCH Kommersant Y
E Yu minä A B IN G D E Joo JA Z JA Y TO L M N NOIN P R KANSSA T U F X C H Sh SCH Kommersant Y b
Yu minä A B IN G D E Joo JA Z JA Y TO L M N NOIN P R KANSSA T U F X C H Sh SCH Kommersant Y b E
minä A B IN G D E Joo JA Z JA Y TO L M N NOIN P R KANSSA T U F X C H Sh SCH Kommersant Y b E Yu