Yhteensattuma indeksi on kryptoanalyysikonsultti tekniikka keksi William F. Friedman vuonna 1920 (julkaistu indeksi Sattuma ja sen sovellukset Cryptography ) ja parantaa hänen yhteistyökumppaninsa Salomon Kullback .
Hakemisto antaa mahdollisuuden tietää, onko teksti salattu yksiaakkosellisella tai moniaakkosellisella numerolla tutkimalla salatun viestin kirjainten toistamisen todennäköisyyttä. Se antaa myös tiedon avaimen todennäköisestä pituudesta .
Hakemisto lasketaan seuraavalla kaavalla: n : llä sanoman kirjainten kokonaismäärä , A : n numero, B: n määrä jne.
Ranskassa sattumaindeksi on noin 0,0746. Tasaisesti jakautuneille kirjeille (puolueeton satunnainen sisältö) indeksi on 0,0385. Hakemisto ei vaihdu, jos kirjaimet on tehty etukäteen yksiaakkosella. Toisin sanoen, jos korvataan esimerkiksi 'a' merkinnällä 'z' ja 'z' sanalla 'a', indeksi ei muutu.
Siinä tapauksessa, että käytetään useita aakkosia, mutta aakkosien lukumäärää ei tunneta, sattumaindeksi voi olla arvokas liittolainen tämän luvun määrittämisessä. Käytämme sitten seuraavaa kaavaa:
Kun viestissä on n kirjainten kokonaismäärä, m aakkosten lukumäärä, IC- kieli analysoidun kielen hakemisto ja 0,0385 on tasaisesti jakautunutta sisältöä vastaava termi. Vaihtelemalla m voimme verrata tämän kaavan kautta saatuja indeksejä klassisen kaavan mukaiseen todelliseen indeksiin.
Toisin sanoen aakkoset, joissa on 26 kirjainta, äärettömän pitkä teksti ja satunnainen piirtäminen ilman ennakkoluuloja. Todennäköisyys saada tietty kirje on 1/26. Kahden saman kirjaimen saamisen todennäköisyys on (1/26) 2 . Kahden identtisen kirjaimen parin saamisen todennäköisyys on luokkaa: 26 * (1/26) 2 = (1/26) = 0,0385 (Ensimmäinen kirjain piirretään satunnaisesti, toisen todennäköisyys on 1/26 olla identtinen). Tämä on sattuman hakemisto viestille, jossa on tasaisesti jaetut kirjaimet.
Otetaan nyt käyttöön puolueellisuus jakautumisessa ja päättelyssä äärellisen pituisessa tekstissä. Meillä on 100 kirjaintekstiä, eikä yksiköiden määrä kutakin kirjainta varten ole sama. Oletetaan, että meillä on 20 kirjainta "A", 5 kirjainta "B", 7 kirjainta "C" jne. Ja vain yksi "Z". Tässä tapauksessa mahdollisuus löytää mikä tahansa identtisten kirjainten pari on: (20/100) * (19/99) + (5/100) * (4/99) + (7/100) * (6/99) + ... + (1/100) * (0/99). Sitten meillä on likiarvo satunnaisindeksistä kieltä, joka seuraa tätä jakaumaa.
Voimme myös saada arvion tekstissä käytetystä kielestä tarkastelemalla sen sattumaindeksiä, jolloin kirjainten jakauma ei ole sama kielien välillä. Indeksit voivat vaihdella hieman analyysissä huomioitujen lähteiden ja tekstien mukaan. Esimerkiksi Friedman antaa indeksin ranskaksi 0,0778.
Kieli | Indeksi |
---|---|
Venäjän kieli | 0,0529 |
Serbia | 0,0643 |
Ruotsin kieli | 0,0644 |
Englanti | 0,0667 |
Esperanto | 0,0690 |
Kreikka | 0,0691 |
Norjan kieli | 0,0694 |
Tanskan kieli | 0,0707 |
Suomalainen | 0,0737 |
italialainen | 0,0738 |
Portugalin kieli | 0,0745 |
arabi | 0,0758 |
Saksan kieli | 0,0762 |
heprealainen | 0,0768 |
Espanja | 0,0770 |
japanilainen | 0,0772 |
Ranskan kieli | 0,0778 |
Hollannin kieli | 0,0798 |
Malesialainen | 0,0852 |
Hakemisto on erittäin hyödyllinen salauksen purkamisen automaattisen tarkistuksen aikana, erityisesti kaikkien avainten tyhjentävän haun aikana. Väärät avaimet tarjoavat indeksin, joka on hyvin lähellä tasaisesti jaetun satunnaisdatan hakemistoa. Siksi avain, jolla on korkeampi indeksi, on todennäköisesti oikea. Enigma- koneen kaltaiselle salaukselle tämä käyttö on mielenkiintoista (vaikkakin anakronistista), koska Enigma-yhteyskonsoli suorittaa yksiaakkosellisen salauksen. Tämä tarkoittaa, että liitäntäkotelon kokoonpano ei vaikuta sattumaindeksiin, ja siksi avaimen hakutila supistuu roottoreiden mahdollisiin kokoonpanoihin.
Tällaista menetelmää voidaan teoriassa käyttää kaikentyyppisissä salauksissa automaattisen hyökkäyksen aikana, vaikka tämä menetelmä on nykyisten tietokoneiden ulottumattomissa nykyaikaisia salausjärjestelmiä varten.