Riimut vielä kesytän

Edellinen Seuraava

Lapsuuteni aikaisen vanhan rakkaan kirjan Salakirjoitus olen esitellyt jossakin jo aiemmin. Siinä oli nuo salaperäiset viikinkien riimut (vaikka ne sinänsä eivät olekaan salakirjoitusta), tässä versiossa vain 16 erilaista merkkiä. Jossakin toisessa riimujen versiossa oli 24 erilaista merkkiä. Kumpikaan luku ei sinänsä minua kovin paljon miellytä, mutta ehkä tavallisten riimujen kanssa voisi silti elää.

Tosin me länsi-suomalaisetkaan emme luultavasti ole olleet viikinkejä. Pohjoismainen skandinaavinen viikinki-identiteetti voisi kuitenkin sopia mikrovaltio Myllynsaarelle, joten harkitsen vakavasti riimujen käyttöä valtion viestinnässä.

Riimuilla voisi olla jokin rooli salakirjoituksessakin, varsinkin jos modulus on pieni. Lukuun mahtuu enemmän merkkejä jos merkkivalikoima on suppea. Tosin ero esim. 16:n ja 37:n merkin välillä ei ole valtavan suuri. Ilman mitään pakkaamista 10-numeroiseen positiiviseen kokonaislukuun mahtuisi 37 merkin merkistöllä 6 merkkiä ja 16:n merkin merkistöllä 8 merkkiä.

Kahdeksalla merkillä pystyisi kuitenkin ilmaisemaan salaisen agentin 007 eli James Bondin nimen riimujen tyyliin IAMSBONT joten ero olisi joissakin tapauksissa merkittävä. E-kirjaimelle ei ole riimua joten tuo lie kirjoitettu niin oikein kuin on mahdollista.

Ärsyttävästi tässä aika suppeassa merkistössä on kaksi I -kirjainta ja kaksi R -kirjainta ja lisäksi on oma merkkinsä TH:lle vaikka sekä T että H olisivat erillisinäkin käytettävissä. Ehkä täytyy jatkossa antaa noille kolmelle tuhlailevasti esitetylle merkille oma erilainen merkityksensä?


Rauman kirjaston petroolilamput


Onkohan Raumalla paljonkin luettu kirjallisuutta valopetroolilla toimivan lampun valossa?

Joka tapauksessa Rauman kaupunginkirjastossa on oikein hieno vanhojen petroolikäyttöisten lamppujen ja lämmittimien näyttely. Ihan kateeksi käy.

Olen kyllä lukenut jostakin Petromax-lampusta, mutta en ole sellaista ennen nähnyt luonnossa ja josko edes kuvassakaan. Tjaah, noh tarkemmin muistellen olikohan sellainen jossakin sota-ajan elokuvassa isokokoisena sairaalan lamppuna? Vaikuttava näky kieltämättä, oikea kulttuuriaarre.

Lamput ja keittimet ovat lasiseinäisessä vitriinissä joka heijastelee ympäristön valoja, joten kuvista ei saa mahdollisimman hyviä.

Tilley oli kylläkin armeija-ajoilta telttakäytössä jonkin verran tuttu laite. Ainakin siinä oli erikoisaineesta tehty kirkkaasti valaiseva sukka jonka sisällä liekki paloi. Vehkeeseen täytyi ajoittain pumputa painetta. Hyvä vehje silloin kun toimi.

Muuten olen ollut enemmänkin kyntteli- ja öljylamppumiehiä. En omaa mitään syvällistä teknistä tietoa edes retkikeittimistä, puhumattakaan petroolilampuista.

Öljylampustahan yleisesti kerrotaan että aikoinaan isä sen osti ja äiti sen sitten särki. Petroolilamput ovat ehkä olleet maamme torpissa harvinaisempaa herkkua.

Vai olisiko ollut niin että sähkövalo alkoi jo yleistyä silloin kun hyviä ja edullisia petrolilamppuja alkoi olla yleisesti saatavilla?

Melkoista "pelaamista" se petroolilampun käyttö taitaa käytännössä olla. Petroolilamppu lie teknisesti jonkin verran vaativampi kuin tavallinen öljylamppu.

Tämä näyttely todistaa että tekniikka on ihmisen ystävä eikä vihollinen. Ei puutu kuin lampun henki ja Aladdin.

Harvinaisen hienoa jälkeä ovat järjestäjät saaneet aikaan. Varsinkin vanhempi väki katseli näyttelyä kiinnostuneena. Parhaimmat kiitokset näyttelyn avarakatseisille järjestäjille omastani ja edustamani yhtiön ... eikun sosiaaliryhmän ... hallintoneuvoston, eli työttömien opiskelijoiden ja kadun miesten puolesta.

Ja mitä muuta Rauman kirjastosta

Kirjaston viereisen rakennuksen kiipeilevä ruskan väreissä komeileva kasvillisuus alkaa jo harventua syksyn tuulissa.

Kun olen edellä kuvannut Porin kirjaston poistokirjoja ja vaihtokirjahyllyä niin täytyypä dokumentoida myös Rauman pääkirjaston vastaavat toteutukset. Lähestyn kuvauskohdetta äärimmäisen varovasti, kuin kielletyillä retkillä liikkuen, kameran salama ja äänet pois kytkettynä. En kuitenkaan näe missään kylttiä joka kieltäisi kuvaamisen. Kaupustelu kyllä on kielletty, samoin rullaluistelu. Hivuttaudun huomaamattomasti kuvauskohteiden vierelle toivoen ettei minua tulkita häiriköksi ja heitetä ulos.

Raumalla myytäviä poistokirjoja on kaksipuolinen hyllystö ja sen takana pöytä johon yleensä on kerätty poistettuja lastenkirjoja. Vähemmän tavaraa kuin Porissa, jossa myyntikirjoille on varattu kokonainen huone, mutta sanoisin silti että Raumalla tarjonta on laadukkaampaa ja kiintoisampaa.

Asiakkaiden vaihtokirjoille on pienehkö laari jonka yläpuolella oleva teksti kehoittaa kierrättämään kirjoja. Voipa kylläkin olla että tämä on nuorten pyörittämän kahvila Käpälän järjestämä palvelu. Vaihtokirjat ovat kuitenkin saatavilla lauantainakin jolloin kahvila Käpälä ei ole auki.

Lisäksi on erikseen poistettujen lehtien myyntihylly lehtilukusalin suunnalla. Poistetut lehdet ovat viime aikoina paljolti olleet vanhoja Tekniikan maailmoja ja Tuulilaseja joihin en suurta vetoa tunne. Ruotsalainen Teknikens Värld ja saksalainen Auto Motor und Sport olisivat paljon kiinnostavampia.

Samoin kiinnostavia olisivat venäläiset ОГОНЁК -kuvalehdet, mutta niitäkään ei viime aikoina ole ollut poistettuina saatavilla tässä kauheassa vanhojen kotimaisten autolehtien tulvassa. Vanhat TM:t tuntuvat mojuvan siellä poistettujen lehtien hyllyssä ikuisesti. Ehkä korkeintaan joskus harmaahapsisena köyryselkäisenä vapisevana vanhuksena voin rollaattorin kanssa ohi köpötellessäni löytää sieltä vielä jotakin mielenkiintoista?

Syvemmällä kirjastossa on vielä pieni hyllykkö jossa on pieni erä kirjastolle lahjoitettuja kirjoja varustettuna tekstillä "Ota tästä".

Jos Maila Talvio tuntuu kiehtovalta nimeltä niin tuossa alahyllyllä olisi ilmaiseksi tarjolla ikiomaksi useampiakin hänen punaselkäisiä kirjojaan ilman mitään palauttamisen velvoitetta.

Ja kyllähän meikäläisen on tullut kirjaston poistokirjoja taas hamstrattua enemmän kuin lääkäri määrää. Seuraavassa on kympin arvoinen satsi jossa on paljon mielenkiintoista, vaikkakaan ei ehkä ihan divarin kaikkein kirkkaimpia helmiä.

Ihan piruuttani olen ostanut useampiakin astrologiaa käsitteleviä vanhoja kirjoja. Tämä on vastareaktioni astrologian julkiselle mollaamiselle.

Aiheessa on kaikesta huolimatta jotakin kiehtovaa ja haluaisin kirjoittaa siitä jotakin, rakentavassa hengessä tokikin, sillä en ole mikään Ursa-tyylinen inhoskeptikko enkä muukaan UFOntorjuntakomppanian tyhmä tykkimies.

En vaan oikein tunnu löytävän sitä punaisen langan päätä, sillä astrologia on kokonaisuutena epämääräisen tuntuinen, kovin takkuinen lankakerä.

Nyt tekee kuitenkin mieli valmistautua toiseen kirjan vaihtoon. Koulun kirjastossa Porin Vähäraumassa on myös vaihtokirjahylly jota suunnittelen tämän urhoollisen tekoni näyttämöksi. Pitäisi vaan löytää sopiva oma kirja. Ehkä sillä ei niin suurta väliä ole minkä vaihtokirjan sieltä löytää. Lähinnä ajattelen että pois vaihdettava kirja voisi olla jokin dubletti, sellainen joita minulla on kaksi. Ja toki sen on oltava jokin hyväkuntoinen kelpo kirja, sellainen jota ainakin minä arvostan.

Kun siellä koululla on toisinaan hiukan kansainvälisempikin tunnelma niin ajattelin ensisijaiseksi vaihdokiksi kuuluisan brittiläisen Sir Arthur Eddingtonin vanhaa kirjaa The Expanding Universe. Uskokaa tai älkää mutta kumpikin näistä on löytynyt raumalaisesta antikvariaatista silloin kun Raumalla vielä sellaisia oli muistaakseni markka-ajan loppupuolella noin kolmenkympin kappalehintaan.

Aivan samanlaisia nuo eivät ole. Avoimena kuvattu vaaleanvihrein kansin varustettu on ensimmäistä painosta vuodelta 1933. Hyväkuntoisen alkuperäisen kansipaperin peittämät tummanvihreän kannet pitävät sisällään neljännen painoksen vuodelta 1946. Sisällössä ei ehkä ole eroja, sillä kirjat eivät ole eri editiota. Kirjat ovat pienehköjä ja kuvia on niukasti, mutta mielestäni historiallisesti ihan merkittäviä popularisoituja tähtitieteellisiä esityksiä.

Nykyisinhän avaruuden laajenemista tunkee jokaisesta tuutista kyllästymiseen asti ja melkoisen typerästikin esitettynä, mutta esimerkiksi vuonna 1946 tilanne oli erilainen. Silloin kirjoittajat olivat fiksuja.

Kuten kansipaperin teksti kertoo, "I deal with the view now tentatively held that the whole material universe of stars and galaxies is dispersing ...", eli kyseessä oli aivan uusi idea ja kirjoittajalla oli aihetta kohtaan terveen kriittinen asenne. Umpityhmä paatos ja ruuansulatusvaivainen leipäpappeus loistavat poissaolollaan. Kosmologinen Pyhä Henki ei ole vielä vaivautuneen oloisena poistunut vaivihkaa Uranian temppelin takaovesta, hermostuneesti sivuilleen pälyillen, suoraa katsekontaktia väistellen, häpeissään kengänkärkiään tuijotellen.

Tuon kansipaperein varustetun nuoremman kappaleen vuodelta 1946 voisin ehkä vaihtaa johonkin toiseen kirjaan koulun vaihtokirjahyllyssä. Alkuperäiset kansipaperit ovat enempi hienostelua, jota en kovasti arvosta, mutta ehkä joku muu arvostaa. Minä haluan mieluiten pitää alkuperäisen, eli sen vanhemman painoksen jolle tulee nyt ikää kunnioitettavat 80 vuotta.


Mikro-RSA:n periaate
Valitaan salaiset
alkuluvut p ja q

n = p * q

d = salainen avain
e = julkinen avain

d * e = 1 mod φ(n)

Salattava teksti 
lukuna 0 < x < n

Salakirjoitus 
julkisella avaimella
y = xe mod n

Salauksen avaus 
salaisella avaimella
x = yd mod n

Mikrovaltiolle sopiva RSA-toteutus?

Mikrovaltio Myllynsaaren salaisen palvelun KGP:n kryptografiasivustoa täytyy valmistella. Jätetään riimut hautumaan ja ryhdytään demoilemaan tunnettua julkisen avaimen RSA -salakirjoitusalgoritmia mikrovaltiolle sopivassa muodossa vanhan ja vaatimattoman Sharp EL-9900 laskimen avustuksella.

Joudumme valitettavasti tyytymään korkeintaan 5-numeroisin lukuihin, sillä muuten menetämme suorassa kertolaskussa kokonaisluvun vähiten merkitseviä numeroita, joiden merkitystä ei suinkaan pidä tässä yhteydessä väheksyä, vaikka nimitinkin niitä "vähiten merkitseviksi" ; kryptografian kannalta ne ovat oleellisia.

Tempppuilemalla olisi mahdollista laskea modulaarisen potenssiinkorotuksen kertolasku tehokkaasti isommillakin luvuilla, mutta tässä yhteydessä tyydymme sellaisiin lukuihin joiden tulon voi laskea 10-numeroisella laskimella suoraan.

Niinpä valitsemme järjestelmän pohjaksi alkuluvut joiden tulo on 5-numeroinen. Nämä ovat oikeasti salaisia mutta kun tässä kyse on vain demosta niin eipä haitanne vaikka ovat näkyvilläkin. Todellinen turvallisuus jää joka tapauksessa näin pienillä luvuilla vain haaveeksi.

Julkisen avaimen e voimme vapaasti valita kunhan se on positiivinen ja hiukan pienempi kuin n ja kunhan olemme varmoja että gcd(e, φ(n)) = 1, eli luvut ovat suhteellisia alkulukuja joilla siis ei ole yksikköä suurempia yhteisiä tekijöitä. Tavanomaista on valita julkiseksi eksponentiksi e pienehkö pariton luku kuten 3 tai 17. Julkisen eksponentin suuruus ei ole kovin kriittinen turvallisuuden kannalta ja kun se on nimenomaan julkinen niin mitäpä haittaa vaikka se onkin helposti arvattavissa.

Oheisen sepustuksen perusteella tiedämme että RSA-avainten välillä täytyy olla suhde d * e = 1 mod φ(n). Mutta paljonko on φ(n), eli lukua n pienempien suhteellisten alkulukujen määrä? Lukuteoria tulee avuksi ja kertoo että kun p ja q ovat alkulukuja, on φ(p*q) = (p-1)*(q-1). Jos valitsemme alkuluvuiksi p = 313 ja q = 317 niin tässä tapauksessa on φ(n) = (313 - 1) * (317 - 1) = 312 * 316 = 98592.

Sharp EL-9900 ohjelma
Modulaarinen inverssi
( T = B-1 mod M )

Input B
Input M
M -> A
0 -> N
1 -> T
A int/ B -> Q
A - QB -> R
While R > 0
  N - QT -> P
  Gosub 1
  P remain M -> E
  T -> N
  E -> T
  B -> A
  R -> B
  A int/ B -> Q
  A - QB -> R
WEnd
Print T
End

Label 1
While P < 0
  P + M -> P
WEnd
Return

Toinen edellä esiintyvä osaongelma on d * e = 1 mod ... joka käytännössä tarkoittaa että avaimet d ja e ovat toistensa inverssejä modulo (p-1)(q-1). Nimittäin vain inverssien (modulo M) keskinäinen tulo on yksikön suuruinen modulo M. Inverssi on kuitenkin mahdollinen vain jos luvuilla ei ole (yksikköä suurempaa) yhteistä tekijää moduluksen M kanssa.

Avainta e vastaavan parin z etsiminen manuaalisesti kokeilemalla erilaisia arvoja tyyliin e * z mod M kunnes tulokseksi löytyy 1 olisi ehkä realistista jos modulus M olisi vain parikymmentä. Näinkin ison kuin 5-numeroisen moduluksen kanssa sellainen olisi kuitenkin aika järjetön hanke. Niinpä teemme laskimelle lyhyen ohjelman joka ratkaisee annetun luvun B inverssin modulo M.

Tämän laskelman oikeasti tekee vain se osapuoli jonka salaisesta avaimesta on kyse. Ideaalisesti vain hän tietää alkuluvut p ja q ja pystyy laskemaan tulon (p-1)(q-1) joka tarvitaan inverssiä ratkaistaessa. Oikeasti alkuluvut p ja q sekä tulo (p-1)(q-1) tulisikin hävittää pysyvästi heti kun avaimet on laskettu. Niiden jättäminen jonnekin lojumaan vaarantaa koko järjestelmän turvallisuuden koska salainen eksponentti on ne tietäen helppo selvittää.

Kokonaisjaon olen tässä esittänyt tyyliin int/ joka ei ole aivan sama merkintä kuin Sharpissa. Ja muutenkin notaatio hiukan poikkeaa silloin kun se tuntuu välttämättömältä.

Sharp ei salli jaettavalle negatiivista arvoa jakojäännöstä laskettaessa joten pieni aliohjelma varmistaa että argumentin arvo on vastaava positiivinen luku modulo M. Laskimissa on yleensäkin syytä olla huolellinen negatiivisten lukujen ja modulusten kanssa. Jos X on negatiivinen kokonaisluku, niin ei suinkaan voi olettaa että olisi (VÄÄRIN!!!) X mod M = (-X) mod M (VÄÄRIN!!!) kun X < 0 ja M > 0.

On hyvä kokeilla jokaisella laskimella erikseen miten se reagoi negatiivisiin lukuihin. On syytä pitää mielessä että koska 0 mod M = 0 ja M mod M = 0 , niin täytyyhän olla (-1) mod M = M - 1 kun M > 0 ja (M + 1) mod M = 1.

Tässä inverssin algoritmissa on lähteenä ollut edellä mainittu koulun kirjaston kirja. Tosin en ymmärrä lähteen pseudokoodin viimeisten rivien tarkoitusta. Kun silmukan lopetusehtona on että kokonaisjaon jakojäännös ei ole nollaa suurempi niin mitä järkeä on enää silmukan jälkeen testata jakojäännöksen arvoa? Kun silmukka loppuu r-arvolla nolla niin eihän r silloin silmukan jälkeen koskaan ole yksi. Lisäksi moduluksena tuossa kirjan pseudokoodissa toimii a eikä n. Siinä lienee kirjoitusvirhe?

Joka tapauksessa varmistamme jo etukäteen ettei luvuilla ole yksikköä suurempia yhteisiä tekijöitä, joten kirjassa esitettyä virhettä "... has no inverse ..." ei voi tässä sattua.

Numeerinen RSA-esimerkki

Valitaan julkiseksi eksponentiksi se tavanomainen e = 17. Sharp vakuuttaa valmiilla funktiollaan että gcd (e, φ(n)) = gcd (17, 98592) = 1 , joten voimme edetä turvallisin mielin. Vastaavaksi salaiseksi avaimeksi eli e:n modulaariseksi inverssiksi saadaan oheisella ohjelmalla luku d = 86993. Moduluksena inverssiä laskettaessa toimii φ(n) = (p-1)(q-1) = 98592.

Kokeillaanpa sitten kryptata vaikkapa salainen viesti jota esittää tässä lähes mahdollisimman suuri kokonaisluku x = 98543. Vastaanottajan salaista avainta me emme (leikisti) tiedä, mutta eipä meidän tarvitsekaan.

Modulaarisen potenssiinkorotuksen moduluksena toimii salaisten alkulukujen tulo n = p * q = 313 * 317 = 99221 joka saa olla julkinen. Käytämme vastaanottajan julkista avainta e ja edellisessä jutussa esitettyä modulaarisen potenssiinkorotuksen ohjelmaa. Laskemme xe mod n = 9854317 mod 99221 = 53488.

Lähetämme siis vastaanottajalle salatun viestin jota edustaa luku 53488. Vastaanottaja käyttää salaista avaintaan d jonka vain hän tuntee ja laskee xd mod n = 5348886993 mod 99221 = 98543 , joka lopputulos on siis sama kuin lähettäjän alkuperäinen viesti. Näin olemme siis todenneet että systeemi pelaa lähes yhtä hyvin kuin joukkoliikennevälineen tualetti.

Näin pienillä luvuilla turvallisuus vaan ei voi toteutua oikeasti. Viisinumeroinen julkinen modulus n on niin pieni että sen pystyy helposti jakamaan alkutekijöihin ja siten selvittämään alkuluvut p ja q. Sen jälkeen on helppo laskea (p-1)(q-1) ja ratkaista salainen eksponentti d kun julkinen eksponentti e tunnetaan. Ja sittenhän salat jo aukeavatkin ja digitaaliset allekirjoitukset voi väärentää. Oikeasti lukujen täytyy olla niin suuria että julkisen moduluksen n tekijöihin jako on epärealistista joka vaatii 10-järjestelmässä noin 100-numeroisen luvun. Lisäksi on eduksi jos alkuluvut p ja q valitaan siten että luvut p-1 ja q-1 sisältävät myös isoja alkutekijöitä.

Merkit luvuiksi ja luvut merkeiksi

Tuollainen lukujen kanssa palloittelu ei ehkä tee lukijaan suurtakaan vaikutusta, mutta onhan niin että tekstiä on helppo muuttaa kokonaisluvuksi ja päinvastoin. Tässä vaan joudutaan 5-numeroisten lukujen kanssa tyytymään aika lyhyisiin teksteihin.

Jos merkistössä on 37 erilaista merkkiä niin vain 3 merkkiä onnistuu kryptata kerrallaan. Riimuja sentään mahtuisi yksi enemmän jos erilaisia riimuja on 16 kpl. Voidaan nimittäin todeta että 373 = 50653 ja 164 = 65536. Pykälää suuremmat merkkien määrät voisivat jo ylittää sallitun viiden numeron rajan.

37-merkkinen merkistö joka sisältää mm. esperanton erikoismerkit
ß A B C D E F G H I J K L M N O P Q R S
koodi: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

T U V W X Y Z Å Ä Ö Ü Ĉ Ĝ Ĥ Ĵ Ŝ Ŭ
koodi: 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

Kaikkihan tietävät että esimerkiksi 10-järjestelmän luku 1234 = 1*1000 + 2*100 + 3*10 + 4*1, eli yksi tuhat, kaksi satasta, kolme kymppiä ja neljä yksikköä. Se voitaisiin merkitä myös näin kantaluvun 10 potenssein 1234 = 1*103 + 2*102 + 3*101 + 4*100. Samaa paikkajärjestelmän periaatetta voi soveltaa myös tekstiin. Teksti voidaan esittää kokonaislukuna jossa kertoimina ovat merkkien nolla-kantaiset koodit ja kantalukuna merkistön erilaisten merkkien lukumäärä.

Olettakaamme että haluamme koodata esimerkiksi tekstin "KGP" kokonaisluvuksi ylläolevan merkistön puitteissa. Tämä voidaan tehdä tulkitsemalla tekstiä samoin kuin lukua, paikkajärjestelmän mukaisesti, käyttäen kertoimena merkistön erilaisten merkkien määrää 37.

Tekstin "KGP" muunto kokonaisluvuksi
Kirjain Koodi Paikkakerroin Tulo = Koodi * Paikkakerroin
K 11 372 = 1369 11 * 1369 = 15059
G 7 371 = 37 7 * 37 = 259
P 16 370 = 1 16 * 1 = 16
Tulojen summa: 15334

Niinpä luku 15334 kuvaa tekstiä "KGP" ylläolevaa merkistöä käyttäen. Se voitaisiin salakirjoittaa ja lähettää vastaanottajalle joka pystyy salauksen avauksen jälkeen helposti selvittämään lukua vastaavan selvätekstin kokonaisjakoa ja kokonaisjaon jakojäännöstä käyttäen. Hän tietää kyseisen merkistön, sen moduluksen 37 ja menetteleee vanhan Sharp-laskimensa kanssa näin ( käyttäen kokonaisjaolle merkintää int/ ):

Luvun 15334 muunto merkeiksi
Kokonaisjako Quotient Remainder ja sitä vastaava merkki
15334 int/ 37 414 16 P
414 int/ 37 11 7 G
11 int/ 37 0 11 K

Jokaisen jakolaskun jälkeen siis "Quotient" eli osamäärä siirtyy seuraavan jakolaskun jaettavaksi ja "Remaider" eli kokonaisjaon jakojäännös on merkin koodi. Kun osamäärä menee nollaan, ei jakoja enää tarvitse jatkaa.

Ja itse asiassa kun osamäärä on toiseksi viimeisessä jakolaskussa pienempi kuin modulus 37 niin näkeehän siitäkin jo suoraan mitä viimeisessä jakolaskussa tulisi jakojäännökseksi.

Tulos täytyy vaan lukea takaperin, eli taulukkoa alhaalta ylös edeten se on sama kuin alkuperäinen teksti "KGP".

Jokainen positiivinen luku vastaa tiettyä tekstiä tietyn merkistön puitteissa ja lähes kaikki tekstit ovat esitettävissä yksikäsitteisesti kokonaislukuna. Tässä systeemissä tosin on se pienehkö ongelma että koodattava teksti ei saisi alkaa merkillä jonka koodi on nolla. Niinpä merkistön alkuun on valittu meillä harvinainen kaksois-ässä ß joka mielestäni ei saksassakaan aloita mitään sanaa.

Entäpä riimut ja venäläiset kirjaimet?

31 venäläistä kirjainta (ei sisällä ihan kaikkia kyrillisiä merkkejä)
Ы А Б Й В Г Д Е Ё Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Э Ю Я
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
y a b j v g d e z i k l m n o p r s t u f h e

Merkistön alkuun on sijoitettu merkki jolla mikään sana ei voine alkaa, koska ensimmäisen merkin koodi on nolla. Luvustahan ei pysty sanomaan "montako nollaa sen edessä on", joten täytyy voida olettaa ettei etunollia ole.

16-merkkiset riimut
F U TH O R K H N I A S T B M I R
Riimu:
Koodi: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

-sanoja (kuten ) emme erikoisesti halua harrastaa, koska olemme siivoa väkeä, joten eiköhän se sovi riimumerkistön alkuun kuten se vanhassa lastenkirjassakin oli.

Riimuja käyttäen voisi kirjoittaa vaikkapa mikrovaltio Myllynsaaren (Insulo de Muelejo) ensimmäisen salaisen agentin 001 (etunollat takaavat lisenssin potkaista polveen) nimen jota vastaava luku ylläolevien koodien mukaan olisi 12*163 + 3*162 + 7*161 + 11*160 = 12*4096 + 3*256 + 7*16 + 11*1 = 50043, eli sen vielä pystyisi salaamaan ylläesitettyä mikrovaltio-RSA:ta käyttäen yhdessä osassa.

En kuitenkaan edes mikrovaltiossa ole aivan näin tiukkoihin rajoihin tyytyväinen, joten jatkokehittelyä tarvitaan.

Kolminumeroiset alkuluvut eivät tyydytä. Uskon että vielä löydän keinon jolla vanhan Sharp-laskimenkin kanssa pystyy laskemaan tarkasti ehkä jopa 10-numeroisten kokonaislukujen kertolaskuja ohjelmassa ja silloin alkuluvut voivat jo olla 5-numeroisia - huomattava parannus. Tuo menetelmä tulisi modulaarisen potenssiinkorotuksen sisään. Inverssin laskenta ei sellaista vaadi koska se toimii aivan iloisesti 10-numeroisilla luvuilla. Viisinumeroisia alkulukuja saa kätevästi suoraan matemaattisesta CRC-taulukkokirjasta. Sen pitemmälle ei ehkä tavallisen laskimen kanssa kannata RSA:ta yrittää.

Uudemmilla laskimilla voisi ehkä jatkaa siitä, ne kun hanskaavat isot kokonaisluvut suoraan, mutta luultavasti vasta normi tietokone selaimella JavaScriptin kanssa pystyisi todelliseen turvallisuuteen. En vaan ole vielä saanut päätetyksi pyrimmekö me edes Myllynsaaressa todelliseen turvallisuuteen julkisen avaimen menetelmissä, vai tyydymmekö pelkkiin yleviin puhdasotsaisiin periaatteisiin? Isojen lukujen perässä juokseminen on kuitenkin niin maailmallista ja raadollista, epäestettistä puuhaa etten tiedä sopiiko sellainen mikrovaltio Myllynsaaren valtionuskonnon papeille eli Pyhille Miehille ja Naisille. Tekninen edistys vaatii jatkuvasti käyttämään yhä suurempia lukuja turvallisuuden varmistamiseksi ja RSA ei edes sijoitu siinä vertailussa hyvin, sillä RSA-lukujen tarvittava koko kasvaa suhteellisen nopeasti verrattuna ECC-menetelmiin.

Korkeaotsaisena tavoitteena kryptoanalyytikon nopeasti harmaantuvat hapset

Pienenä jippona voisimme muuttaa vaikkapa venäläisen sanan БАНЯ (lausutaan "banja") riimuiksi. Tämä vielä onnistuisi kryptata yo. salakirjoituksen pienen moduluksen puitteissa koska Б-kirjaimen koodi on niin pieni.

Kun sanan БАНЯ merkkien koodit yo. 31-merkkisessä merkistössä ovat 2, 1, 15 ja 30 niin sana olisi lukuna 2*313 + 1*312 + 15*311 + 30*310 = 2*29791 + 1*961 + 15*31 + 30*1 = 61038

Kun tätä lukua 61038 ja sen osamääriä jaetaan silmukassa yo. riimujen kantaluvulla 16, saadaan kokonaisjaon jakojäännökset 14, 6, 14, 14 jotka tulevat siis käänteisessä järjestyksessä. Niinpä tuo venäläinen saunaa tarkoittava sana riimuina ilmaistuna olisi jonka normi lausuntatapa olisi "IIHI".

Tarkistuksen vuoksi voi laskea että riimuistakin tulee alkuperäinen luku 14*163 + 14*162 + 6*161 + 14*160 = 61038. Ja tarkistaa voi myös että luvusta 61038 ja sen osamääristä saadaan kokonaisjaoin kantaluvun 31 kanssa jakojäännöksiksi alkuperäiset venäläisten merkkien koodit käänteisessä järjestyksessä 30, 15, 1 ja 2.

Jos yrittäisimme käsitellä tuota samaa 4-kirjaimista venäläistä sanaa takaperin niin 5-numeroinen moduluksemme ei enää riittäisikään sillä Я -kirjaimen koodi on 30, eli jo sen osalta lukuun tulisi liian iso 6-numeroinen termi 30*313 = 893730

Tämäntapainen jippo voisi olla salakirjoituksessa hauska lisäefekti. Salakirjoitukseksi sitä ei varsinaisesti sinänsä voi nimittää koska muunnos on näinkin helppo ja periaatteessa vakio, eli muuttuvaa avainta ei ole.

Lisää vääntöä tuohon saisi esimerkiksi niin että riimut koodattaisiin vaihtelevanpituisin bittijonoin eli jokin riimu koodattaisiin vaikkapa bitein 10, toinen riimu bitein 110, kolmas riimu 1110 jne. Kupletin juoni on siinä että bittejä järjestyksessä lukien täytyy pystyä päättelemään milloin kunkin merkin bittijono päättyy ja seuraava alkaa. Kaikki merkit eivät ole bitteinä saman pituisia. Tällöin kokonaisjaot 16:lla eivät kelpaisi, vaan pitäisi lukea bittijonoa ja tulkita sitä bitti kerrallaan. Esimerkiksi bittijonossa 111011010102 näyttäisi olevan ensin kolmas riimu, sitten toinen riimu ja lopuksi ensimmäinen riimu kaksi kertaa eli yhteensä neljä riimua jotka - jos pitäydytään ylläolevaan riimujen järjestykseen - voisi yrittäää ääntää THUFF, mitä se sitten tarkoittaneekin.

Tuon esimerkin arvo 10-järjestelmän lukuna olisi 1*210 + 1*29 + 1*28 + 0*27 + 1*26 + 1*25 + 0*24 + 1*23 + 0*22 + 1*21 + 0*20 = 1024 + 512 + 256 + 64 + 32 + 8 + 2 = 189810, jonka pystyisi koodaamaan kolmella 31-merkkisen kyrillisen kirjaimiston merkillä joiden koodit ovat jakojäännöksistä saatavat 7, 30 ja 1. Oikeaan suuntaan käännettynä neljän riimun koodattu teksti olisi siis ilmaistavissa kolmella venäläisellä kirjaimella АЯЕ. Laajemmassa länsimaisessa 37-merkkisessä kirjaimistossa jakojäännökset olisivat 11, 14 ja 1 eli vastaavaksi tekstiksi tulisi ANK.

Jonkinlaista lisäarvoa salakirjoituksen kannalta näkisin syntyvän siitä että sanojen merkkeinä ilmaistut pituudet muuttuvat näissä muunnoksissa. Erikoista iloa tässä yhteydessä tuottaa myös se että yllä kuvattujen merkistöjen kantaluvut 31 ja 37 ovat alkulukuja joten ne eivät ihan äkkiä mene tasan esim. luvun 16 kanssa. Pienen valtion tiedustelupalveluna meidän on hyödynnettävä kaikki mahdolliset keinot. Olemme brutaaleja. Meillä ei ole varaa moraaliin ja hienotunteisuuteen.


Galleria