(2) C on joukko, jonka alkioita kutsutaan sala(kirjoite)tuiksi viesteiksi (engl. ciphertext);



Samankaltaiset tiedostot
kaikille a R. 1 (R, +) on kommutatiivinen ryhmä, 2 a(b + c) = ab + ac ja (b + c)a = ba + ca kaikilla a, b, c R, ja

H = : a, b C M. joten jokainen A H {0} on kääntyvä matriisi. Itse asiassa kaikki nollasta poikkeavat alkiot ovat yksiköitä, koska. a b.

9 Matriisit. 9.1 Matriisien laskutoimituksia

on Abelin ryhmä kertolaskun suhteen. Tämän joukon alkioiden lukumäärää merkitään

Lineaarialgebra ja matriisilaskenta I

802328A LUKUTEORIAN PERUSTEET Merkintöjä ja Algebrallisia rakenteita

Matriisien tulo. Matriisit ja lineaarinen yhtälöryhmä

802320A LINEAARIALGEBRA OSA I

1 Lineaariavaruus eli Vektoriavaruus

Lineaarialgebra ja matriisilaskenta II. LM2, Kesä /141

n (n 1) avainten vaihtoa. Miljoonalle käyttäjälle avainten vaihtoja tarvittaisiin

R : renkaan R kääntyvien alkioiden joukko; R kertolaskulla varustettuna on

renkaissa. 0 R x + x =(0 R +1 R )x =1 R x = x

a b 1 c b n c n

jonka laskutoimitus on matriisien kertolasku. Vastaavasti saadaan K-kertoiminen erityinen lineaarinen ryhmä

Esko Turunen Luku 3. Ryhmät

Algebra I Matematiikan ja tilastotieteen laitos Ratkaisuehdotuksia harjoituksiin 3 (9 sivua) OT

Ennakkotehtävän ratkaisu

Käänteismatriisi 1 / 14

Ortogonaalinen ja ortonormaali kanta

Nimittäin, koska s k x a r mod (p 1), saadaan Fermat n pienen lauseen avulla

ja jäännösluokkien joukkoa

BM20A0700, Matematiikka KoTiB2

Kuvauksista ja relaatioista. Jonna Makkonen Ilari Vallivaara

Liittomatriisi. Liittomatriisi. Määritelmä 16 Olkoon A 2 M(n, n). Matriisin A liittomatriisi on cof A 2 M(n, n), missä. 1) i+j det A ij.

Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus

d Z + 17 Viimeksi muutettu

Matematiikka B2 - Avoin yliopisto

Algebra I, harjoitus 5,

Matematiikka B2 - TUDI

Johdatus tekoälyn taustalla olevaan matematiikkaan

Salakirjoitusmenetelmiä

k=1 b kx k K-kertoimisia polynomeja, P (X)+Q(X) = (a k + b k )X k n+m a i b j X k. i+j=k k=0

Lineaariset kongruenssiyhtälöryhmät

(1.1) Ae j = a k,j e k.

Matriisipotenssi. Koska matriisikertolasku on liitännäinen (sulkuja ei tarvita; ks. lause 2), voidaan asettaa seuraava määritelmä: ja A 0 = I n.

1 Matriisit ja lineaariset yhtälöryhmät

Liite 2. Ryhmien ja kuntien perusteet

10 Matriisit ja yhtälöryhmät

R 1 = Q 2 R 2 + R 3,. (2.1) R l 2 = Q l 1 R l 1 + R l,

Insinöörimatematiikka D

MAT Algebra 1(s)

MS-A0402 Diskreetin matematiikan perusteet

Jäännösluokat. Alkupala Aiemmin on tullut sana jäännösluokka vastaan. Tarkastellaan

ALGEBRA KEVÄT 2013 JOUNI PARKKONEN

Kannan vektorit siis virittävät aliavaruuden, ja lisäksi kanta on vapaa. Lauseesta 7.6 saadaan seuraava hyvin käyttökelpoinen tulos:

Talousmatematiikan perusteet: Luento 11. Lineaarikuvaus Matriisin aste Käänteismatriisi

Johdatus lineaarialgebraan

1 Kannat ja kannanvaihto

Mitään muita operaatioita symbolille ei ole määritelty! < a kaikilla kokonaisluvuilla a, + a = kaikilla kokonaisluvuilla a.

Matriisit, kertausta. Laskutoimitukset. Matriisikaavoja. Aiheet. Määritelmiä ja merkintöjä. Laskutoimitukset. Matriisikaavoja. Matriisin transpoosi

802355A Algebralliset rakenteet Luentorunko Syksy Markku Niemenmaa Kari Myllylä Topi Törmä Marko Leinonen

Teema 4. Homomorfismeista Ihanne ja tekijärengas. Teema 4 1 / 32

Ominaisarvo ja ominaisvektori

Lukuteorian kertausta

HY / Avoin yliopisto Lineaarialgebra ja matriisilaskenta II, kesä 2015 Harjoitus 1 Ratkaisut palautettava viimeistään maanantaina klo

Matematiikan ja tilastotieteen laitos Algebra I - Kesä 2009 Ratkaisuehdoituksia harjoituksiin 8 -Tehtävät sivua Heikki Koivupalo ja Rami Luisto

RSA-salausmenetelmä LuK-tutkielma Tapani Sipola Op. nro Matemaattisten tieteiden laitos Oulun yliopisto Syksy 2017

Ilkka Mellin Todennäköisyyslaskenta Liite 1: Joukko-oppi

Johdatus lukuteoriaan Harjoitus 2 syksy 2008 Eemeli Blåsten. Ratkaisuehdotelma

Matriisilaskenta. Harjoitusten 3 ratkaisut (Kevät 2019) 1. Olkoot AB = ja 2. Osoitetaan, että matriisi B on matriisin A käänteismatriisi.

802320A LINEAARIALGEBRA OSA III

Kuvaus. Määritelmä. LM2, Kesä /160

2017 = = = = = = 26 1

Algebran perusteet. 44 ϕ(105) = (105). Näin ollen

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä

1.1. Määritelmiä ja nimityksiä

Lineaarikuvauksen R n R m matriisi

Neliömatriisin adjungaatti, L24

Algebra I Matematiikan ja tilastotieteen laitos Ratkaisuehdoituksia harjoituksiin 8 (7 sivua)

Käänteismatriisin. Aiheet. Käänteismatriisin ominaisuuksia. Rivioperaatiot matriisitulona. Matriisin kääntäminen rivioperaatioiden avulla

3.2 Matriisien laskutoimitukset. 3.2 Matriisien laskutoimitukset. 3.2 Matriisien laskutoimitukset. 3.2 Matriisien laskutoimitukset

Matriisit, L20. Laskutoimitukset. Matriisikaavoja. Aiheet. Määritelmiä ja merkintöjä. Laskutoimitukset. Matriisikaavoja. Matriisin transpoosi

[a] ={b 2 A : a b}. Ekvivalenssiluokkien joukko

Determinantti 1 / 30

{I n } < { I n,i n } < GL n (Q) < GL n (R) < GL n (C) kaikilla n 2 ja

Ominaisarvo ja ominaisvektori

6. Tekijäryhmät ja aliryhmät

Ongelma 1: Miten tieto kannattaa koodata, jos sen halutaan olevan hyvin vaikeasti luettavaa?

Ville Turunen: Mat Matematiikan peruskurssi P1 1. välikokeen alueen teoriatiivistelmä 2007

Lineaarialgebra ja matriisilaskenta I

Määritelmä 1. Olkoot V ja W lineaariavaruuksia kunnan K yli. Kuvaus L : V. Termejä: Lineaarikuvaus, Lineaarinen kuvaus.

Kertausta: avaruuden R n vektoreiden pistetulo

Insinöörimatematiikka D

A = a b B = c d. d e f. g h i determinantti on det(c) = a(ei fh) b(di fg) + c(dh eg). Matriisin determinanttia voi merkitä myös pystyviivojen avulla:

2 j =

Yhteenlaskun ja skalaarilla kertomisen ominaisuuksia

g : R R, g(a) = g i a i. Alkio g(a) R on polynomin arvo pisteessä a. Jos g(a) = 0, niin a on polynomin g(x) nollakohta.

Matikkapaja keskiviikkoisin klo Lineaarialgebra (muut ko) p. 1/81

SALAUSMENETELMÄT. Osa 2. Etätehtävät

2.8. Kannanvaihto R n :ssä

7 Vapaus. 7.1 Vapauden määritelmä

Lineaariset yhtälöryhmät ja matriisit

Similaarisuus. Määritelmä. Huom.

(d) 29 4 (mod 7) (e) ( ) 49 (mod 10) (f) (mod 9)

MS-A0402 Diskreetin matematiikan perusteet

Talousmatematiikan perusteet: Luento 9. Matriisien peruskäsitteet Yksinkertaiset laskutoimitukset Transponointi Matriisitulo

Matriisit, L20. Laskutoimitukset. Matriisikaavoja. Aiheet. Määritelmiä ja merkintöjä. Laskutoimitukset. Matriisikaavoja. Matriisin transpoosi

MAT Algebra I (s) periodilla IV 2012 Esko Turunen

Lineaarialgebra ja matriisilaskenta I

Transkriptio:

2. Salausjärjestelmä Salausjärjestelmien kuvaamisessa käytetään usein apuna kolmea henkilöä : Liisa (engl. Alice), Pentti (engl. Bob) ja Erkki (eng. Eve eavesdrop 10 ). Salausjärjestelmillä pyritään viestin välittämisessä takaamaan mm. seuraavat: Luottamuksellisuus: Liisan Pentille lähettämää viestiä ei kukaan muu pysty lukemaan. Autenttisuus: Pentti tietää, että vain Liisa on voinut lähettää viestin. Eheys: Pentti tietää, että kukaan ei ole väärentänyt Liisan lähettämää viestiä. Kiistämättömyys: Liisa ei voi kiistää lähettäneensä viestiä. Miksi nämä ominaisuudet ovat tärkeitä? Tarkastellaan esimerkkiä: Oletetaan, että Liisa ostaa Pentiltä omenan verkon kautta. Liisa lähettää Pentille tiedot luottokortistaan, mitä hän haluaa ostaa ja toimitusosoitteen. Liisa ei halua, että nämä tiedot joutuvat vääriin käsiin. Pentti haluaa varmistua, että tilaus on tullut Liisalta eikä keneltäkään muulta, joka vain tekeytyy Liisaksi. Kumpikin haluaa, ettei kukaan pystyy väärentämään viestiä (esimerkiksi niin, että tilaukseen muutettaisiin päärynä omenan tilalle). Lopuksi Pentti haluaa, ettei Liisa voi myöhemmin kieltää tilanneensa Pentiltä omenaa. Määritelmä 2.1. Salausjärjestelmä (lyh. salain) on viiden joukon P, C, K, E ja D kokoelma niin, että seuraavat ehdot toteutuvat: (1) P on joukko, jonka alkioita kutsutaan selväkielisiksi viesteiksi (engl. plaintext); (2) C on joukko, jonka alkioita kutsutaan sala(kirjoite)tuiksi viesteiksi (engl. ciphertext); (3) C on joukko, jonka alkioita kutsutaan avaimiksi (engl. key); (4) E = {E k k K} on kokoelma funktioita E k : P C, joita kutsutaan salausfunktioiksi (engl. encryption function); (5) D = {D k k K} on kokoelma funktioita D k : C P, joita kutsutaan avausfunktioiksi (engl. decryption function). (6) jokaiselle e K on olemassa d K siten, että D d (E e (p)) = p kaikille p P. Huomaa, että viimeisen ehdon nojalla jokainen salausfunktio E e on injektio. Yleensä salaimen joukot ovat äärellisiä ja kuvaukset E e ja D d bijektioita. Salausmenetelmiä käsittelevässä kirjallisuudessa salausfunktiosta saatetaan käyttää nimitystä yksisuuntainen funktio. Tällainen määritellään funktioksi f : X Y, jolle arvot f(x) on helppoa laskea, mutta oleellisesti kaikille kuvajoukon f(x) alkioille y on laskennallisesti mahdotonta määrätä alkio x X, jolle f(x) = y. Vaikka lainausmerkkeihin sijoitetut ilmaisut ovat epämääräisiä, ne antavat jonkinlaisen idean yksisuuntaisuudesta: salausfunktiolla E e salatun viestin c = E e (p) avaaminen onnistuu helposti (näin ainakin pitäisi olla), kunhan tunnetaan salausavainta e vastaava avausavain d, p = D d (c). Mutta jos avaimia on paljon, on oikean avaimen etsiminen kuin neulan etsimistä heinäsuovasta. Avausavain d on siis eräänlainen takaportti. 9 Viimeksi muutettu 14.9.2012. 10 Tai miksei Catherine the Cryptoanalyst, Katariina kuin Kelju K. Kojootti, tai Seppo Salakuuntelija. 9

Esimerkki 2.2 (Caesarin salain). Olkoot P = C = K = {A, B,..., Z}. Kun kirjaimet samaistetaan kokonaislukujen jäännösluokkien kanssa, A := [0] 26, B := [1] 26,..., Z := [25] 26, on P = C = K = Z 26. Salaus- ja avausfunktioina olkoot E e : Z 26 Z 26, E e (x) := x + e, ja D d : Z 26 Z 26, D d (x) := x d. Jos jäännösluokat [a] 26 samaistetaan kokonaislukujen 0, 1,..., 25 kanssa, ovat salaus- ja avausfunktiot E e (x) = x + e mod 26 ja E d (x) = x d mod 26. Salausfunktio E e siirtää aakkoston kirjaimia e merkkiä eteenpäin (syklisesti), ja vastaavasti avausfunktio D d d merkkiä taaksepäin. Määritelmän viimeinen ehto toteutuu, avaimelle d = e. 2.1. Symmetrinen ja epäsymmetrinen salausjärjestelmä. Oletetaan, että Liisa käyttää viestin salaamiseen salausavainta e ja Pentti vastaavasti sen avaamiseen avausavainta d. Jos salausjärjestelmässä on aina d = e tai avausavain d on helposti laskettavissa, kun salausavain e tunnetaan, salausjärjestelmää kutsutaan symmetriseksi. Symmetrisessä salausjärjestelmässä Liisan ja Pentin pitää ennen viestinvaihto sopia salaus- ja avausavaimista. Tämän avainten vaihtamisen turvallisuus on keskeinen ongelma symmetrisessä järjestelmässä. Jos salausavain e joutuu väärin käsiin (Erkille), on avausavain d helppo määrätä ja näin Liisan Pentille lähettämät viestit myös helppo avata. Caesarin salain on esimerkki symmetrisestä salausjärjestelmästä. Epäsymmetrisessä salausjärjestelmässä d e ja avausavaimen d määrääminen salausavaimen e avulla (ilman erityisiä lisätietoja) on käytännöllisesti katsoen mahdotonta. Tällaisessä järjestelmässä salausavain e voidaan julkistaa. Jokainen, joka haluaa lähettää Pentille salakirjoitetun viestin, voi käyttää avainta e. Koska avausavaimen d määrääminen on mahdotonta, eivät muut (=Erkki) kuin ne, jotka tuntevat avaimen d, pysty avaamaan avaimella e salattuja viestejä. Tällaisessa järjestelmässä salausavainta e kutsutaan myös julkiseksi avaimeksi (tai julkisavaimeksi), avainta d salaiseksi avaimeksi ja järjestelmää julkisavainsalaukseksi. 2.2. Kirjaimet ja sanat. Viestien kirjoittamiseen tarvitaan kirjaimia tai muita symboleita. Aakkosto on äärellinen joukko, jota jatkossa merkitään kirjaimella Σ. Aakkoston Σ pituus on joukon Σ alkioiden lukumäärä. Joukon Σ alkoita kutsutaan symboleiksi tai kirjaimiksi. Esimerkkejä 2.3. a) Englanninkielisten viestien esittämisessä tavallinen aakkosto on Σ = {A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z} b) Tietokoneille luonnollinen aakkosto on kokonaislukujen jäännösluokkarengas Σ = Z 2 = {[0] 2, [1] 2 } Usein jäännösluokat [0] 2 ja [1] 2 samaistetaan lukujen ( bittien ) 0 ja 1 kanssa, jolloin lasketaan modulo 2. 10

11 Kuva 2.1. ascii-merkistön symbolit. Ensimmäiselle 32 merkille ja viimeiselle käytetään lyhennenimeä, muilla graafista symbolia. Kuva on lainattu sivulta http://en.wikipedia.org/wiki/ascii. c) Toinen tietokoneisiin luonnollisella tavalla liittyvä aakkosto on ns. ascii-merkistö 11. Tämä merkistö on standardoitu, tietokoneella seitsemällä bitillä esittävien merkkien joukko (kuva 2.1). Näitä vastaavat (desimaaliset) luvut x = (b 7, b 6,..., b 1 ) 2 = b 7 2 6 + b 6 2 5 + + b 2 2 + b 1, missä b 1,..., b 7 {0, 1}, t.s. luvut 0, 1,..., 127. Merkistön 32 ensimmäistä merkkiä (0 x < 31) ja viimeinen (x = 127) ovat tavallisessa tekstissä näkymättömiä ns. kontrollimerkkejä, joita on aikoinaan käytetty tietoliikenteen ohjausmerkkeinä. Merkki x = 32 on välilyönti; muilla on näkyvä graafinen vastine. Esimerkiksi 65 = A, 66 = B,..., 90 = Z. Koska tietokoneessa bittijonot järjestetään tavallisesti kahdeksan bitin muodostamiksi tavuiksi, on ascii-merkkien normaali bittijonoesitys (b 8, b 7, b 6,..., b 1 ) 2, missä b 8 = 0. Niin sanotuille laajennetuille ascii-merkistöille kahdeksas bitti b 8 = 1. Näihin merkistöihin on mukaan otettu eurooppalaisten kielten tarvitsemia aksentteja sisältäviä kirjaimia. Määritelmä 2.4. Olkoon Σ aakkosto. (1) Sana on jono (a n,..., a 1 ), missä a j Σ ja n N. Tyhjä sana on jono (), jolle n = 0. (2) Sanan w = (a n,..., a 1 ) pituus on sanan komponenttien lukumäärä n. (3) Sanojen w = (a n,..., a 1 ) ja v = (b m,..., b 1 ) yhdistetty sana on jono wv := (a n,..., a 1, b m,..., b 1 ). 11 American Standard Code for Information Interchange.

(4) Kaikkien sanojen joukkoa merkitään Σ ja kaikkien n N pituisten sanojen joukkoa Σ n. Huomautus 2.5. Epätyhjä joukko G on monoidi, jos siinä on määritelty laskutoimitus t.s. kuvaus : G G G siten, että 12 (i) (g 1 g 2 ) g 3 = (g 1 g 2 ) g 3 kaikille g 1, g 2, g 3 G (assosiatiivisuus); (ii) on olemassa alkio e G siten, että e g = g e = g kaikille g G. Alkiota e kutsutaan laskutoimituksen neutraalialkioksi. Joukko G on ryhmä, jos lisäksi on voimassa (iii) jokaiselle g G on olemassa käänteisalkio g 1, jolle g g 1 = g 1 g = e. Edelleen: ryhmä G on kommutatiivinen (tai Abelin ryhmä), jos lisäksi on voimassa (iv) g 1 g 2 = g 2 g 1 kaikille g 1, g 2 G (kommutatiivisuus). Esimerkiksi aakkoston Σ kaikkien sanojen joukko Σ on monoidi, kun laskutoimituksena on sanojen yhdistäminen. Neutraalialkio on tyhjä sana. Sen sijaan joukko Σ ei ole ryhmä eikä sen laskutoimitus ole kommutatiivinen (ainakaan, jos sen aakkostossa on enemmän kuin yksi symboli). Esimerkki 2.6 (Tärkeä). Olkoon n Z, n 2. Kun kokonaislukujen jäännösluokille [a] n laskutoimituksena yhteenlaskua, on pari (Z n, +) Abelin ryhmä. Jos laskutoimitukseksi valitaan kertolasku, on pari (Z n, ) monoidi (neutraalialkio [1] n ), mutta ei ryhmä. Joukolla Z n on kuitenkin erittäin tärkeä osajoukko, josta kertolaskulla saadaan Abelin ryhmä. Olkoon Z n := {x Z n x on kääntyvä}. Tällöin pari (Z n, ) on Abelin ryhmä. (Tämän todistaminen jätetään lukijan tehtäväksi. Todistus on suoraviivainen asetettujen ehtojen tarkistus, eikä siinä tarvita aiemmin alkion x = [a] n kääntyvyydelle todettua yhtäpitävää ehtoa syt(a, n) = 1.) 2.3. Lohkosalaus. Määritelmä 2.7. Olkoot Σ aakkosto ja n Z +. Salausjärjestelmä (P, C, K, E, D) on lohkosalain, jos sen selväkielisten viestien joukko P ja salattujen viestien joukko C ovat n-pituisten Σ-sanojen joukko Σ n. Luku n on lohkosalaimen lohkopituus. Lause 2.8. Lohkosalaimen salausfunktiot ovat bijektioita. Todistus. Jokaisen salausjärjestelmän salausfunktio E e E on injektio salaaavaa -ehdon D d (E e (p)) = p nojalla. Lohkosalaimelle salausfunktiot ovat kuvauksia E e : Σ n Σ n äärelliseltä joukolta itselleen, ja tällaiset kuvaukset ovat bijektioita. Huomautus 2.9. Epätyhjän joukon X bijektioita f : X X itselleen kutsutaan joukon X permutaatioiksi. Joukon X permutaatioiden joukkoa merkitään yleensä S(X). Lohkosalaimen salausfunktiot ovat siis permutaatioita. 12 Tarkkaan ottaen pitäisi käyttää ilmaisua pari (G, ) on monoidi, jos.... Joukossa G voi nimittäin olla useita erilaisia laskutoimituksia, joista osa toteuttaa monoidilta vaaditut ehdot, osa ei. 12

Myös lohkosalaimen avausfunktiot ovat bijektioita, koska ehdon D d (E e (p)) = p nojalla ne ovat surjektioita. Äärelliseltä joukolta itselleen menevä surjektio on bijektio. Lohkosalaimelle on siis D d = Ee 1. Yleisin mahdollinen n-pituisten Σ-sanojen salausjärjestelmä on seuraava: Asetetaan P := Σ n ja C := Σ n. Avaimiksi valitaan kaikki joukon Σ n permutaatiot eli K := S(Σ n ). Avainta π S(Σ n ) vastaava salausfunktio E π : Σ n Σ n on E π (w) := π(w). Salausfunktiota E π vastaava avausfunktio on D π : Σ n Σ n, D π (v) := π 1 (v). Tämän salausjärjestelmän avainten joukko on varsin suuri. Jos aakkoston Σ pituus on σ, on joukossa Σ n σ n sanaa ja tällöin joukolla Σ n on (σ n )! permutaatiota. Koska avaimia on paljon, voisi otaksua, että tähän yleiseen lohkosalaimeen perustuva salausmenetelmä olisi turvallinen. Näin yleisessä tilanteessa mielivaltaisen permutaation π S(Σ n ) esittäminen (tietokoneella) on kuitenkin vaikeaa, joten käytännön tilanteissa avaimet valitaan jostakin permutaatiojoukon S(Σ n ) osajoukosta, jonka permutaatioita on helpompi käsitellä. Toisessa ääripäässä lohkosalaimia on yksittäisten aakkoston merkkien permutointi. Jos englanninkielisille viesteille aakkostona on Σ = {A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z}, voitaisiin monimerkkinen viesti salata merkki merkiltä vaihtaen jokainen viestin merkki p merkiksi π(p), missä π S(Σ). Avaimia on nytkin melko paljon, 26! kappaletta. Tällainen salaus on kuitenkin helposti murrettavissa frekvenssianalyysin avulla. Nimittäin, englanninkielisissä teksteissä kirjain E on yleisin, T toiseksi yleisin, A kolmanneksi jne. Salatussa (riittävän pitkässä) viestissä merkin π(e) pitäisi siis olla yleisin, merkin π(t) toiseksi yleisin, merkin π(a) kolmanneksi yleisin jne. Vastaavanlaiset esiintymäfrekvenssit tunnetaan myös kirjainpareille, joten kirjainparien joukon Σ 2 permutaatioiden joukon käyttäminen salaamiseen ei ole turvallista. Huomautus 2.10. Joidenkin lohkosalausmenetelmien kohdalla turvallisuutta voi olla mahdollista lisätä käyttämällä moninkertaista salausta. Esimerkiksi kolminkertainen salaus voidaan järjestää seuraavasti: Valitaan kolme avainta k 1, k 2, k 3 K. Selväkielinen viesti p P salataan muotoon c := E k1 (D k2 (E k3 (p))) Tässä E k1 ja E k3 ovat avaimia k 1 ja k 3 vastaavat salausfunktiot ja D k2 avainta k 2 vastaava avausfunktio. Tämän kolminkertaisen salauksen avainten joukko on näennäisesti K 3, siis selvästi suurempi kuin alkuperäinen avainjoukko K. Joissakin tapauksissa moninkertaisella salauksella avainten joukko ei kuitenkaan kasva. Esimerkiksi edellisessä yksittäisten aakkoston merkkien permutoinnissa K = S({A,..., Z}), E π (w) = π(w) ja D π (v) = π 1 (v), jolloin E k1 (D k2 (E k3 (p))) = E k (p), missä k = k 1 k2 1 k 3 on kolmen permutaation yhdistettynä permutaationa joukon {A,..., Z} permutaatio. Avainten joukko ei siis nyt kasva lainkaan. 13

2.4. Lohkosalauksen käyttämisestä. Olkoon (P, C, K, E, D) lohkosalain, jonka lohkopituus on n ja aakkosto Σ. Elektronissa koodikirjatilassa (engl. electronic codebook mode, lyh. ECB) annettua lohkosalainta käytetään seuraavasti: Annettu selväkielinen viesti m, jonka pituus voi nyt olla pitempi kuin n, katkaistaan lohkopituuden n pituisiksi viestipätkiksi m j, 1 j l, siis l-jonoksi joukon P = Σ n alkioita. Jos viestin m pituus ei ole lohkopituuden n monikerta, täydennetään viestiä m niin, että sen pituus on luvun n monikerta. (Edellä luku l on viestin m pituus jaettuna luvulla n.) Kun salausavain on e K, salataan jokainen lohkopituuden n mittainen viestipätkiksi m j salausfunktiolla E e. Salattu viesti on nyt jono (c 1,..., c l ) := (E e (m 1 ),..., E e (m l )). Jos salausfunktiota E e vastaa avausfunktio D d, avataan viesti (c 1,..., c l ) komponenteittain (D d (c 1 ),..., D d (c l )). ECB-menetelmää (hieman yleistäen) voidaan käyttää myös tilanteissa, joissa salakirjoitettu viesti on pitempi kuin selväkielinen viesti. Myöhemmin RSA-salauksen yhteydessä saadaan esimerkki tällaisesta. Koska ECB-tilassa identtiset viestin osat w j salataan samanlaisiksi jonoiksi c j C, voi frekvenssianalyysin kaltainen menetelmä toimia salattujen viestien murtamiseksi. Lisäksi, jos Erkki tuntee salausavaimella k salatun viestin c j, voi hän muuttaa Liisan Pentille lähettämää viestiä m = (m 1,..., m l ) (c 1,..., c l ) vaihtamalla komponentin c j tilalle viestin c j. Erkki saattaa siis pystyä väärentämään Liisan Pentille lähettämiä viestejä. Salauslohkojen ketjutustilassa (engl. cipherblock chaining mode, lyh. CBC) edellä mainittuja ECB-tilan ongelmia korjataan niin, että seuraavan salattavan viestin komponentin w j salaamiseen ei käytetä pelkästään avainta k vaan myös aiemmin salattuja komponentteja c i, 1 i < j. CBC-tilan kuvaamiseksi luonnollisinta on käyttää aakkostoa Σ := Z 2 = {0, 1}. Tässä luvuilla 0 ja 1 lasketaan modulo 2; siis 0 + 0 = 0, 0 + 1 = 1 + 0 = 1 ja 1 + 1 = 0. Joukkoon Z n 2 määritellään laskutoimitus asettamalla (b 1,..., b n ) (c 1,..., c n ) := (b 1 + c 1,..., b n + c n ). Tätä laskutoimitusta kutsutaan usein n-bittisten jonojen poissulkevaksi tai -operaatioksi (engl. exclusive or, lyh. XOR). Tässä laskutoimituksessa vähennyslasku on helppoa: koska kaikille x, y Z 2 on (x + y) + y = x, on myös kaikille b, c Z n 2 voimassa (b c) c = b, t.s. jonon c vasta-alkio on c. CBC-tila käyttää apuna aloitusvektoria A Z n 2, joka saa olla julkinen. Oletetaan, että Liisa on lähettämässä viestiä m Pentille. Viesti m oletetaan nytkin jonoksi m = (m 1,..., m l ), missä m j Z n 2. CBC-tilassa asetetaan c 0 := A, ja c j := E e (c j 1 m j ), kun 1 j l. Pentille lähtetty salattu viesti on nyt jono c := (c 1,..., c l ). Viestin c avaamisen Pentti hoitaa seuraavasti: Olkoon D d salausfunktiota E e vastaava avausfunktio. Pentti laskee c 0 := A, ja m j := c j 1 D d (c j ), kun 1 j l. Lukijan tehtäväksi jätetään todeta, että Pentin näin saama viesti (m 1,..., m l ) on Liisan alkuperäinen viesti. 14

Lisää lohkosalauksen käyttötapoja löytyy kirjasta [1, 3.8.3 ja 3.8.4] (Salauksen takaisinketjutustila (engl. cipher feedback mode, lyh. CFB) ja tuloksen takaisinketjutustila (engl. ouput feedback mode, lyh. OFB)). 2.5. Affiini salain 1. Caesarin salainta voidaan yleistää varsin yksinkertaisella tavalla. Caesarin salaimen salausfunktioita olivat E e : Z 26 Z 26, E e (x) := x + e. Olkoon nyt m kokonaisluku, m 2. Valitaan aakkostoksi Σ := Z m sekä selvä- ja salattujen viestin joukoiksi P = C := Σ = Z m. Merkitään Z m := {α Z m α on kääntyvä}. Muistettakoon, että alkio α Z m on kääntyvä, jos ja vain jos syt(a, m) = 1, kun jäännösluokka α esitetään kokonaisluvun a avulla, α = [a] m. Avainten joukko olkoon K := {(α, β) Z 2 m α Z m} = Z m Z m. Affiinissa salaimessa, jonka lohkopituus on n = 1, valitaan salausfunktioiksi E k : Z m Z m, E k (x) := α x + β, kun k = (α, β) K. Jos α = [a] m ja β = [b] m, on E k ([x] m ) := a x + b mod m. Avausfunktiot ovat tällöin D k : Z m Z m, D k (y) := α y γ, kun k = (α, γ) K. Erityisesti, salausavainta k = (α, β) vastaa avausavain k = (α, β), missä α on alkion α käänteisalkio. Jos α = [a] m ja α = [a ] m on siis oltava a a 1 mod m. Kannattaa muistaa, että avausavain on helposti laskettavissa laajennetun Eukleideen algoritmin avulla. Jotta voisimme tarkastella hieman yleisempää affiinilineaarista lohkosalausta, tarkastelemme lyhyesti matriiseja, joiden alkiot kokonaislukujen jäännösluokkia tai yleisemmän renkaan alkioita. Aloitetaan eräillä yleisessä käytössä olevilla nimityksillä. (Mallina kannattaa pitää joukkoa Z m ja laskutoimituksina kokonaislukujen jäännösluokkien yhteen- ja kertolaskua). Pari (R, +), missä R on epätyhjä joukko ja + on joukon R laskutoimitus eli kuvaus R R R, on Abelin ryhmä, jos (i) (r 1 + r 2 ) + r 3 = (r 1 + r 2 ) + r 3 kaikille r 1, r 2, r 3 R (assosiatiivisuus); (ii) on olemassa nolla-alkio 0 R siten, että 0 + r = r + 0 = r kaikille r R. (iii) jokaiselle r R on olemassa vasta-alkio r, jolle r + ( r) = ( r) + r = 0; (iv) r 1 + r 2 = r 2 + r 1 kaikille r 1, r 2 R (kommutatiivisuus). Esimerkkejä 2.11. a) Pari (Z m, +), missä + on kokonaislukujen jäännösluokkien yhteenlasku, on Abelin ryhmä. b) Pari (Z m, ), missä on kokonaislukujen jäännösluokkien kertolasku, on myös Abelin ryhmä. Abelin ryhmän laskutoimitusta ei siis aina ole luonnollista merkitä yhteenlaskuna, vaikka määritelmä näin muotoiltaisiinkin. Silloin, kun laskutoimituksena on kertolasku, tässä sen merkintänä käytetty piste jätetään usein merkitsemättä. c) Kun tason origokeskisen yksikköympyrän kehän pisteet samaistetaan kompleksilukujen kanssa (tai paremminkin tason pisteille määritellään kompleksilukukertolasku), on yksikköympyrän kehä Abelin ryhmä. Kompleksiluvuista erittäin lyhyesti: 15

Tason pisteille (x, y), (x, y ) R 2 määritellään yhteenlasku tutulla komponentittaisella vektoriyhteenlaskulla ja kertolasku kaavalla (x, y) (x, y ) := (x x y y, x y + x y). Muista: tasovektoreille ei määritellä kertolaskua; lineaarialgebrassa esiintyviä kertolaskuja ovat vektorin kertominen luvulla ja vektoreiden sisätulo. Kertolasku on paljon luonnollisemman tuntuinen, kun otetaan käyttöön merkintä i := (0, 1). Tällöin jokainen tason piste (x, y) voidaan esittää muodossa (x, y) = x (1, 0) + y i, ja kertolaskun määritelmän nojalla i 2 = (1, 0). Muotoa x (1, 0), missä x R, käyttäytyvät yhteen- ja (tässä määritellyn) kertolaskun suhteen kuten reaaliluvut. Tapana on samaistaa x (1, 0) R 2 ja x R. Näin jokainen tason piste saa esityksen (x, y) = x + y i. Nyt määritelty kertolasku saa tässä esityksessä muodon (x + y i) (x + y i) = x x y y + (x y + x y) i. Jos toisaalta tulo (x + y i) (x + y i) laskettaisiin tavanomaisten laskusääntöjen mukaisesti, päästäisiin samaan tulokseen, kun luvulle i käytetään sääntöä i 2 = 1. Kompleksilukujen joukko C on taso R 2, kun se varustetaan tutulla komponentittaisella vektoriyhteenlaskulla ja kertolaskuna käytetään tässä määriteltyä kertolaskua. (Miksi vastaavaa ei tehdä muille euklidisille avaruuksille R n? Lyhyesti: näiden laskutoimitusten suhteen kompleksilukujen joukko C käyttäytyy kuten reaalilukujen joukko; muille joukoille R n tällaista kertolaskua ei ole olemassa. Avaruuteen R 4 voidaan määritellä kertolasku niin, kaikki muut tutut laskusäännöt säilyvät, mutta kertolaskun kommutatiivisuus menetetään. Kvaterniot lukualueiden kurssilla.) Oletetaan nyt, että pari (R, +) on Abelin ryhmä, ja että lisäksi annettuna on toinen laskutoimitus (kertolasku) : R R R, jolle on voimassa (i) (r 1 r 2 ) r 3 = (r 1 r 2 ) r 3 kaikille r 1, r 2, r 3 R (kertolaskun assosiatiivisuus); (ii) (r 1 + r 2 ) r 3 = r 1 r 3 + r 2 r 3 ja r 1 (r 2 + r 3 ) = r 1 r 2 + r 1 r 3 kaikille r 1, r 2, r 3 R (distribuutiivisuus); (iii) kertolaskulle on olemassa neutraalialkio (ykkösalkio) 1, jolle r 1 = 1 r = r kaikille r R. Kun yllä olevat ehdot toteutuvat, kolmikkoa (R, +, ) kutsutaan renkaaksi. Yleensä kertomerkki jätetään merkitsemättä. Jos kertolaskulle on lisäksi voimassa r 1 r 2 = r 2 r 1 kaikille r 1, r 2 R, sanotaan, että rengas on kommutatiivinen. Esimerkkejä 2.12. a) Kokonaislukujen joukko Z on kommutatiivinen rengas, kun yhteen- ja kertolasku ovat ne tutut. b) Kokonaislukujen jäännösluokkien joukko Z m on kommutatiivinen rengas, kun yhteen- ja kertolasku ovat jäännösluokille edustajien avulla aiemmin määritellyt laskutoimitukset. c) Kaikkien jatkuvien funktioiden f : R R muodostama joukko on kommutatiivinen rengas, kun funktioille f ja g määritellään summa f + g ja tulo f g (f + g)(t) := f(t) + g(t), (f g)(t) := f(t) g(t), t R. 16

d) Kaikkien kokoa m m olevien neliömatriisien A = [a i,j ] m i,j=1 joukko on rengas, kun yhteen- ja kertolasku ovat ne tutut lineaarilgebrassa määritellyt matriisien yhteen- ja matriisikertolasku. Neliömatriisien muodostama rengas ei ole kommutatiivinen (kun m > 1). Edellisen esimerkin jokaisessa kohdassa käy niin, että jollekin kyseisen renkaan alkiolla ei löydy käänteisalkiota. Yleisesti: Olkoot (R, +, ) rengas ja r R. Sanotaan, että alkio r on kääntyvä, jos on olemassa r R siten, että r r = r r = 1. Tällaista alkiota r kutsutaan alkion r käänteisalkioksi. Alkion r käänteisalkiota merkitään yleensä r 1. Jos kommutatiivisessa renkaassa jokaisella nollasta eroalla alkiolla on käänteisalkio, kutsutaan rengasta kunnaksi. Renkaan nollasta eroavaa alkiota a kutsutaan nollanjakajaksi, jos on olemassa alkio b 0 siten, että a b = 0. Rengasta R kutsutaan kokonaisalueeksi, jos se on kommutatiivinen ja siinä ei ole nollanjakajia (t.s. tavanomainen tulon nollasääntö pätee). Esimerkkejä 2.13. a) Kokonaislukujen renkaassa a Z on kääntyvä, jos ja vain jos a = ±1. Rengas Z on kokonaisalue, mutta ei kunta. b) Jäännösluokkarenkaassa [a] m Z m on kääntyvä, jos ja vain jos syt(a, m) = 1. Alkion [a] m käänteisalkio on jäännösluokka [a ] m Z m, missä a a 1 mod m. Jos m ei ole alkuluku, m = p q, missä p, q Z +, 1 < p, q < m, on [p] m [0] m ja [q] m [0] m, mutta [p] m [q] m = [p q] m = [0] m. Renkaassa Z m on siis nollanjakajia. Jos taas m on alkuluku, on Z m kunta (ja siis myös kokonaisalue). Nimittäin, alkuluvulle m ehto syt(a, m) = 1 toteutuu kaikille luvuille a {1,..., m 1}. Tällöin renkaan Z m jokainen nollasta eroava alkio on kääntyvä. Saadaan seuraava tärkeä tulos: Rengas Z m on kunta, jos ja vain jos m on alkuluku. c) Kaikkien jatkuvien funktioiden f : R R muodostamassa renkaassa alkio f on kääntyvä, jos ja vain jos f(t) 0 kaikille t R. Alkion f käänteisalkio on jatkuva funktio f : R R, jolle f (t) = 1/f(t) kaikille t R. Tätä funktiota merkitään yleensä 1/f, ei f 1. Tässä jatkuvien funktioiden muodostamassa renkaassa on nollanjakajia, joten se ei ole kokonaisalue. d) Neliömatriisien renkaassa alkio A = [a i,j ] m i,j=1 on kääntyvä, jos ja vain jos det A 0. Alkion A käänteisalkio on matriisin A käänteismatriisi A 1. Neliömatriisien renkaassa on nollanjakajia eikä se ole kommutatiivinen, jos m > 1, joten se ei ole kokonaisalue. Olkoon nyt R annettu kommutatiivinen rengas (vaikkapa R = Z m ). Kokoa k n oleva R-kertoiminen matriisi on matriisi a 1,1 a 1,2... a 1,n a A = [a i,j ] i=1...k = 2,1 a 2,2... a 2,n j=1...n......, a k,1 a k,2... a k,n missä alkiot a i,j R. Matriisien A = [a i,j ] i=1...k ja B = [a i,j ] i=1...k summa määritellään kaavalla j=1...n j=1...n A + B := [a i,j + b i,j ] i=1...k. j=1...n 17

Matriisien A = [a i,j ] i=1...k ja B = [a j,l ] j=1...n tulo (huomaa koot) määritellään kaavalla j=1...n l=1...p n A B := [c i,l ] i=1...k, missä c i,l := a i,j b j,l. l=1...p Kun rajoitutaan tarkastelemaan neliömatriiseja (siis k = n), muodostavat n n- kokoiset R-kertoimiset matriisit renkaan, ykkösalkiona yksikkömatriisi I n, jossa diagonaalilla on 1 ja muualla 0. (Väitettyjen ominaisuuksien tarkastaminen on varsin suoraviivainen lasku. Jos laskut käy läpi huolellisesti huomaa, että renkaan R ei tarvitse olla edes kommutatiivinen.) Neliömatriisin determinantti määritellään R-kertoimiselle matriisille kuten reaalikertoimisessa tapauksessa. Jos A = [a i,j ] n i,j=1 ja A i,j on se (n 1) (n 1) alimatriisi, joka saadaan, kun matriisista A poistetaan i. sarake ja j. rivi, niin n det A = ( 1) i+j a i,j A i,j. j=1 Yhtälailla det A = n i=1 ( 1)i+j a i,j A i,j. (Nämä kaavat vastaavat determinantin kehityssääntöjä j. rivin ja i. sarakkeen mukaan.) Suurin osa lineaarialgebran kurssilla käsiteltyjä matriisien tuloksia yleistyy sellaisenaan R-kertoimisille matriiseille. 13 Matriisin kääntyvyys tuo esiin yhden harvoista poikkeavista kohdista. Seuraavat kannattaa palauttaa mieleen lineaarialgebrasta: Matriisin A liittomatriisi adj A on matriisin [( 1) i+j A i,j ] n i,j=1 transpoosi. Liittomatriisin tärkein ominaisuus on yleisessäkin kommutatiivisessa renkaassa voimassa oleva kaava (adj A) A = A adj A = (det A) I n. Tulos kannattaa tarkistaa laskemalla se huolellisesti läpi ainakin tapauksessa n = 2. Tästä saadaan seuraava täsmennys matriisin kääntyvyydelle: R-kertoiminen neliömatriisi A on kääntyvä, jos ja vain jos det A on renkaan R kääntyvä alkio. Jos A on kääntyvä, saadaan sen käänteismatriisi kaavalla A 1 = (det A) 1 adj A. Nimittäin, jos det A on renkaan R kääntyvä alkio, niin edellisen liittomatriisikaavan nojalla matriisilla (det A) 1 adj A on käänteismatriisilta vaadittu ominaisuus. Jos taas A on kääntyvä, on olemassa matriisi B, jolle A B = I n. Determinantin tulo-ominaisuus on voimassa myös R-kertoimisille matriiseille, joten det A det B = det(a B) = det I n = 1. Tästä seuraa, että alkiolla det A R on käänteisalkio det B. 2.6. Affiini salain n. Palataan affiiniin salaimeen. Lohkkosalain, jonka aakkosto on Z m ja lohkopituus on n, on affiini, jos sen selväkielisten ja salattujen viestin joukot ovat P = C := Σ = Z n m, avainten joukko K := {(A, β) A on kääntyvä Z m -kertoiminen n n-matriisi ja β Z n m}, 13 Kutakuinkin kaikki lineaarialgebra yleistyy tilanteeseen, missä kertoimina ja vektorien koordinaatteina esiintyvät (reaali-)luvut korvataan yleisemmän kunnan alkioilla. Sen sijaan yleisemmän renkaan käyttäminen tuo monenlaisia ongelmia. Vektoriavaruuksien yleistyksiä, joissa kerroinjoukkona on kuntaa yleisempi rengas kutsutaan moduleiksi; ks. esim. [10, luku V]. j=1 18

ja salausfunktioina E k : Z n m Z n m, E k (x) := A x + β, kun k = (A, β) K. Tässä vektorit x, β Z n m tulkitaan sarakevektoreiksi, jolloin Ax on tavallinen matriisin ja sarakevektorin matriisitulo. Avausfunktiot ovat tällöin D k : Z n m Z n m, D k (y) := B y γ, kun k = (B, γ) K. Erityisesti, salausavainta k = (A, β) vastaa avausavain k = (B, β), missä B on matriisin A käänteismatriisi, B = (det A) 1 adj A, missä (det A) 1 on determinantin det A Z m käänteisalkio renkaassa Z m. Esimerkki 2.14 (Vigenèren salain; Blaise Vigenère 1500-luvulla). Valitaan P = C := Σ = Z n m ja K := Z n m sekä Avausfunktiot ovat tällöin E β : Z n m Z n m, E β (x) := x + β. D β : Z n m Z n m, D β (y) := y β. Vigenèren salaimen käyttö esimerkiksi aakkostolla Z 26 = {A, B,..., Z} voidaan tulkita tapahtuvan seuraavasti (näin sitä käytettiin ennen Euleria ja Gaussia): Salattavan viestin x ensimmäistä merkkiä x 1 siirretään aakkostossa avaimen β ensimmäisen merkin β 1 verran eteenpäin (tarvittaesa syklisesti aakkoston alkuun palaten). Seuraavaksi toista merkkiä x 2 siirretään avaimen toisen merkin β 2 verran eteenpäin, jne. Viestin avaaminen tapahtuu vastaavasti, nyt kuitenkin siirrot tehdään aakkostossa taaksepäin. Esimerkki 2.15 (Hillin salain; Lester S. Hill 1929). Valitaan P = C := Σ = Z n m, avainten joukko ja salausfunktiot K := {A A on kääntyvä Z m -kertoiminen n n-matriisi}, Avausfunktiot ovat tällöin E A : Z n m Z n m, E A (x) := A x. D B : Z n m Z n m, D B (y) := B y. Vaikka affiinin salaimen avainten joukko on suuri, voidaan affiinilla salaimella salattu viesti murtaa, jos samalla avaimella salattuja viestejä tunnetaan sekä selväkielisinä että salattuina riittävästi. Tällainen murtotapa tunnetaan tunnettujen selväkieliviestien hyökkäyksenä (engl. known plaintext attack). Oletetaan, että salausfunktiona on E k : Z n m Z n m, E k (x) := A x + β, missä salausavain k = (A, β). Tässä siis A on kääntyvä Z m -kertoiminen n n-matriisi ja β Z n m. Erkki haluaa saada selville avaimen k = (A, β). Oletetaan, että Erkki on saanut selville n + 1 selväkielistä viestiä p j, 0 j n, ja niiden avaimella k salatut viestit c j, 0 j n. Siis c j = Ap j + β, 0 j n. 19

Näistä yhtälöistä saadaan erotuksille c j c 0 ja p j p 0 yhtälöryhmä c j c 0 = A(p j p 0 ), 1 j n. Olkoon P n n-matriisi, jonka sarakkeina ovat erotukset p j p 0, 1 j n, ja vastaavasti C n n-matriisi, jonka sarakkeina ovat erotukset c j c 0, 1 j n. Tällöin edellinen yhtälöryhmä voidaan kirjoittaa matriisimuotoon C = A P. Jos tunnetut selväkieliset viestit p j, 0 j n, poikkeavat riittävän paljon toisistaan, tarkemmin sanottuna niin paljon, että matriisi P on kääntyvä, saadaan edellisestä yhtälöstä A = CP 1. Tämän jälkeen vektori β saadaan yhtälöstä c 0 = Ap 0 + β, β = Ap 0 c 0. Hieman edellistä päättelyä muuttamalla saadaan: Hillin salaimelle riittää tuntea n riittävän paljon toisistaan poikkeavaa selväkielistä viestiä; Vigenèren salaimelle riittää yksi selväkielinen viesti. Esimerkki 2.16. Oletetaan, että Hillin salainta on käytetty ECB-tilassa lohkopituudella n = 2, ja että selväkielistä viestiä HAND vastaa salattuna FOOT (aakkostona Z 26 = {A, B,..., Z}). Viestiä HAND vastaa nyt pari p 1 = (7, 0), p 2 = (13, 3), ja salattua viestiä FOOT vastaa c 1 = (5, 14), c 2 = (14, 19). Vastaavat (Z 26 -alkioiset) matriisit ovat P = [ 7 13 0 3 ] ja C = [ 5 14 14 19 Koska det P = 21, on syt(det P, 26) = 1, ja P on siis kääntyvä. Alkion det P käänteisalkioksi modulo 26 saadaan laajennetulla Eukleideen algorimilla (jolla sytkin lasketaan) (det P ) 1 5. Siis Hillin salaimen avaimeksi saadaan A = C P 1 = [ 5 14 14 19 ] ( 5 [ 3 13 0 7 ] ) = [ 75 165 210 245 ] ] [ 23 9 2 15 ] [ ] X J =. C P Vigenèren salain pysyi turvallisena vuoteen 1863 asti, jolloin Preussin armeijan upseeri F. W. Kasiski keksi tilastollisen menetelmän tunnistaa lohkopituus n. Kun lohkopituus n tunnetaan, tiedetään, että salatun viestin j. merkki, j + n. merkki, j + 2n. merkki jne on salattu käyttäen samaa avainta β j. Nämä n merkin välein olevat merkit on salattu Caesarin salaimella, jonka murtaminen ei ole vaikeaa. Vigenèren salain ja yleisempi affiini salain toimivat tässä esimerkkinä salaimista, joissa avainten joukko voi olla suuri, menetelmä on matemaattisesti elegantti, mutta joiden murtaminen on osoittautunut helpoksi. Esimerkki 2.17 (Vernamin kertakäyttöliuska). Vernamin salain voidaan kuvata seuraavasti: P = C = K := Σ = Z n 2 ja E k (p) := p k. Viestin p salaamiseksi Liisa valitsee avaimen k satunnaisesti, laskee c := p k ja lähettää viestin c Pentille. Viestin avaaminen on helppoa: p = c k. Avainta k ei pidä käyttää kuin kerran (tästä nimi); jos Erkki saa selville parin (p, c), hän saa myös avaimen k = p c. 20

Ongelmaksi muodostuu avausavaimen toimittaminen turvallisesti Pentille; Pentti tarvitsee jokaista lähtettävää viestiä p varten käytetyn avaimen k, käytännössä siis koodikirjan, josta löytävät jokaista käytettyä viestiä vastaavat avaimet. Käytännössä Vernamin salainta voivat käyttää (rikkaat) valtiot diplomaatti- ja sotilasviestintään. Salausmenetelmissä esittävissä oppikirjoissa menetelmä esitellään siksi, että sen voidaan osoittaa olevan täydellisesti salaavan. Tarkka määritelmä löytyy kirjasta [1, luku 4]. Seuraava tulos karakterisoi täydellisen salaavuuden tilanteessa, missä joukoissa P ja K on yhtä monta alkiota, ja jokaisen selväkielisen viestin p P todennäköisyys on positiivinen: Salain on täydellisesti salaava, jos ja vain jos avainten joukon K todennäköisyysjakauma on tasainen ja jokaiselle selväkieliselle viestille p P ja salatulle viestille c C on olemassa täsmälleen yksi avain k K siten, että E k (p) = c. 21