tarkistusmerkit.teppovuori.fi

Tarkistusmerkkien laskentamenetelmi�

Eli melkein kaikki mit� olet aina halunnut tiet�� tarkistusmerkeist�,
mutta et ole koskaan tullut kysyneeksi

Copyright © Teppo Vuori 01.01.2024

Sis�lt�



Johdanto

Yleist�

Ihminen tekee helposti virheit� sy�tt�ess��n numerosarjoja tietokoneelle. Tarkistusmerkin avulla useimmat sy�tt�virheet voidaan havaita v�litt�m�sti. Erityisen hy�dyllist� t�m� on silloin, kun numerosarjaa ei voida tarkistaa mill��n muulla keinolla. Pankkisiirron viitenumero on hyv� esimerkki t�llaisesta tapauksesta.

Tarkiste on merkki, joka liitet��n numero- ja/tai kirjainjonoon ja joka lasketaan jollakin matemaattisella kaavalla jonon muista merkeist�. Tietoja sy�tett�ess� tietokone vertaa sy�tetty� ja laskettua merkki� toisiinsa, ja jos ne eiv�t ole samat, on tapahtunut virhe. Kansainv�linen standardointij�rjest� ISO on standardoinut useita tarkistusmenetelmi� (standardi ISO 7064).

Yhdess� ainoassa laajasti k�ytetyss� sovelluksessa tarkisteet voivat v�hentyneiden virheiden ansiosta est�� monia hankalia tilanteita ja s��st�� selvittelykustannuksissa jopa miljoonia euroja vuodessa. ��rimm�isiss� tapauksissa, kuten verensiirroissa, voi s��sty� ihmishenki�. L�hes aina tarkisteella varustettu merkkijono on tunniste: Henkil�n, esineen, aineen tai asian.

Sovellusala

Erilaisista tunnuksista, numeroista ja koodeista voitaisiin kirjoittaa paljon laajemmatkin kuvaukset, mutta t�m�n dokumentin aiheena on p��s��nt�isesti vain tarkistusmerkin laskenta, ja toissijaisesti tarkistettavien tietojen rakenteen kuvaus. Dokumentin aihepiiriin eiv�t kuulu konekielisiss� tiedoissa k�ytett�v�t tarkistus- ja korjausmenetelm�t, joiden yhteydess� esiintyy usein termi tarkistussumma (checksum). Ulkopuolelle on rajattu my�s salaukseen perustuvat tarkistusmenetelm�t. Viivakoodeihin liittyv�t menetelm�t kuuluvat aihepiiriin yleens� vain jos my�s selv�kielinen tieto on tapana merkit� n�kyviin. Sek� tarkistussummista, salauksesta ett� viivakoodeista on Internetiss� niin paljon muiden kirjoittamaa materiaalia, ettei minulla ole n�ihin aiheisiin mit��n lis�tt�v��, joten keskityn asioihin, joita ihmiset voivat helposti havaita ilman mit��n laitteita. Dokumentissa ei ole ohjelmointiesimerkkej�, mutta kirjoittamassani erillisess� Tuatara-ohjelmapaketissa on JavaScript-ohjelmia joidenkin tavallisimpien tarkistusten laskemista varten. T�ss� dokumentissa on linkkej� vastaavissa kohdissa.

Kehystetty ja tavallista pienempi teksti sis�lt�� syvent�vi� taustatietoja, jotka voivat antaa aiheesta laajemman n�kemyksen, mutta eiv�t ole oleellisia tarkisteiden laskennan tai tarkistettavien tietojen rakenteen ymm�rt�misen kannalta.

Kuten seuraavasta kappaleesta k�y ilmi, t�ll� dokumentilla ei voi olla kohderyhm��, mutta jos voisi, ensisijaisesti siihen kuuluisivat ohjelmoijat, koska l�hes jokainen meist� koodaa joskus jonkin t�m�ntyyppisen tarkistuksen. Muutaman sovelluksen kohdalla tiedot ovat valitettavasti puutteelliset, mik� on ao. tapauksissa mainittu, mutta yleens� kuvaukset on pyritty tekem��n sellaisella tarkkuudella, ett� ohjelman kirjoittaminen niiden perusteella on mahdollista. Ilmeisesti t�ss� on my�s onnistuttu, koska kyselyj� asiasta tulee hyvin harvoin. Kohderyhm�n puuttuessa kaikki lukijat ovat yht� tervetulleita.

Varoitukset

Vaikka kaikki mieleen tulleet keinot on k�ytetty, jotta jokainen yksityiskohta saataisiin mahdollisimman huolellisesti varmistetuksi, esitettyjen tietojen luotettavuudesta ei anneta mit��n takuuta! Minulla ei ole mit��n mahdollisuutta kontrolloida yht�k��n t�ss� dokumentissa kuvatuista sovelluksista, joten siin�kin tapauksessa ett� kirjoittamani teksti pit�� paikkansa kirjoitushetkell�, mihin tahansa menetelm��n tai sovellukseen voi milloin tahansa tulla muutoksia ilman, ett� asiasta vastaavat henkil�t ilmoittavat siit� minulle (ilmoitus olisi tietysti hyvin toivottava). Tiedot on koottu pelk�st��n henkil�kohtaisen mielenkiinnon vuoksi, ei k�ytt�� varten. Mahdollinen k�ytt� tapahtuu kokonaan k�ytt�j�n omalla vastuulla! Todella p�tev�n selvityksen kirjoittamiseen t�st� aiheesta tarvittaisiin matemaatikko, jollainen min� en ole. Tosin t�m� voi olla hyv�kin asia – luulen useampien ihmisten ymm�rt�v�n kirjoittamaani teksti� kuin matemaattisia merkint�j�. Lukijan kannattaa olla tarkkana sen suhteen, mitk� asiat on esitetty faktoina, mitk� taas ep�varmoina tietoina tai spekulaatioina.

Jos sy�t�t tarkisteellisia tietoja tietoj�rjestelm��n, ja saat virheilmoituksen, selvit� ao. l�hteest� tiedon oikea sis�lt�. �l� yrit� muokata tarkistetta muodollisesti oikeaksi! Toisaalta, siit� ett� esim. henkil�tunnus, Y-tunnus tai pankkitilin numero on muodollisesti virheet�n ei automaattisesti seuraa, ett� vastaava henkil�, yritys tai pankkitili on todella olemassa, tai ett� tunniste kuuluu sille, jolle sen v�itet��n kuuluvan.

L�hteet ja tietojen levitys

Esitetyt tiedot perustuvat osittain omiin havaintoihini, mutta suurin osa on koottu monista eri l�hteist�, jotka on mahdollisuuksien mukaan mainittu ao. kohdissa. Kiit�n kaikkia niit� henkil�it� ja yhteis�j�, joilta per�isin olevia tietoja olen k�ytt�nyt. Erityisen kiitoksen saavat yst�v�ni Tapani Tarvainen arvokkaiden matemaattisten taustatietojen antamisesta ja veljeni Hannu Vuori Coden-tunnuksen tarkistusmenetelm�n selvitt�misest�. Sukulaiset ja ty�toverit ansaitsevat kiitokset k�rsiv�llisyydest�, luottamuksesta ja avusta monien yksityiskohtien tarkistamisessa.

Parhaan tietoni mukaan kaikki t�ss� esitetyt tiedot ovat julkisia, ja se ett� min� levit�n niit� ei loukkaa kenenk��n tekij�n- tai muita oikeuksia eik� riko mit��n salassapitom��r�yksi�. Omasta puolestani annan luvan levitt�� t�t� dokumenttia kokonaisuudessaan vapaasti muualla kuin Internetiss� tai muissa tietoverkoissa, edellytt�en ettei levityksest� perit� maksua eik� t�h�n dokumenttiin tehd� muutoksia. Muutosoikeuden pid�t�n itsell�ni. T�t� dokumenttia on k�sitelt�v� yhten� kokonaisuutena; mit��n sen osaa ei saa irrottaa asiayhteydest��n. Internetiss� linkitys on ainoa sallittu levitystapa, koska dokumenttiin tulee ajoittain muutoksia ja koska ylim��r�iset kopiot v��rist�v�t k�vij�tilastoja. Dokumentin k�yt�st� opetustarkoituksiin muuten kuin linkitt�m�ll� on ilmoitettava minulle.

T�m�n sivun oikea kotipaikka on http://tarkistusmerkit.teppovuori.fi/tarkmerk.htm.

Luulin kirjoittaneeni yll�olevan kappaleen niin, ettei se j�t� mit��n ep�selv�ksi, mutta toistuvien v��rien tulkintojen vuoksi yrit�n viel� v��nt�� oleellisimman ns. rautalangasta:

T�st� dokumentista EI saa tehd� kopioita, jotka n�kyv�t Internetiss� muussa kuin yll�olevassa osoitteessa!

Of this document it is FORBIDDEN to make copies, which can be seen on the Internet at any other than the original address!

Ep�selviss� tapauksissa kannattaa ensin kysy� minulta. Palautesivu l�ytyy t��lt�.

Palaute ja jatkokehitys

Kuvattuja menetelmi� sopii kokeilla vastaantuleviin numerosarjoihin – muihinkin kuin t�ss� mainittuihin. Mahdollisista virheist�, vanhentuneista tiedoista tai muista merkitt�vist� havainnoista pyyd�n ilmoittamaan s�hk�postitse. Merkitt�vi� havaintoja ovat esim. vahvistus jonkin ep�varmaksi mainitun asian paikkansapit�vyyteen, t�ydennys johonkin annettuun tietoon (kts. Avoimia kysymyksi�) tai tieto jostakin t�ss� mainitsemattomasta numerosarjasta, johon jokin kuvatuista menetelmist� sopii. Tai jos haluat vain kertoa lukeneesi t�m�n, niin sekin on kiva tiet��. Otan my�s hyvin mielell�ni vastaan ehdotuksia t�h�n dokumenttiin teht�vist� lis�yksist�. Helpoimmin mukaan p��sev�t j�rjestelm�t, joihin tavallinen ihminen voi suhteellisen usein t�rm�t� normaalissa el�m�ss� (Suomessa) tai jotka ovat jollakin tavalla erityisen mielenkiintoisia (puhtaasti subjektiivisen mielipiteeni perusteella, mutta se kattaa aika paljon). L�hde jossa menetelm� kuvataan on tietysti my�s eduksi. T�rkeimpien avustajien nimet julkistetaan jos he antavat siihen luvan. Yrit�n parhaan kykyni mukaan selvent�� mahdollisia ep�selvi� kohtia jos joku sellaisista huomauttaa. Dokumentti n�ytt�� olevan pysyv�sti keskener�inen ja p�ivityksi� tehd��n sen mukaan miten tietoja l�ytyy. Osittain keskener�isyys johtuu my�s siit�, ett� maailma ymp�rill� muuttuu koko ajan.

Edell�kuvattua palautetta on kaikkien lukijoiden hy�dyksi tullutkin, mist� esit�n kiitokset niillekin palautteen l�hett�jille, joita ei nimelt� mainita.

Erityismaininnan ansaitsee Kari H�nninen (Finn-ID Oy), joka l�hetti minulle mm. lukukyn�n viivakoodien lukemista varten osoitukseksi siit�, kuinka hy�dyllisen� h�n t�t� dokumenttia pit��.

T�ll� sivulla k�vij�ist� ker�t��n tilastotietoja, joista er��t ovat osoittautuneet hy�dyllisiksi sivua kehitett�ess�.

Termej�

Tekstiss� esiintyy toistuvasti sana "jakoj��nn�s". Jos sen merkitys on lukijalle hiukankin ep�selv�, asia kannattaa tarkistaa ao. liitteest�, jossa on my�s selitetty kongruenssi ja sen symboli (≡). Jos luulet osam��r�n desimaaliosaa jakoj��nn�kseksi, sinulla on ehdottomasti aihetta lukea em. liite.

Monessa tapauksessa tarkistusmenetelm�ll� ei ole erityist� nime�. Niinp� t�ss� dokumentissa on paikoin k�ytetty otsikkona sovellusaluetta, jolla menetelm�� k�ytet��n. Silloinkin kun nimi on olemassa, se ei v�ltt�m�tt� ole kovin yksil�iv�; tyypillisesti nime� "Moduli n" (tai joskus "Modulo n", englanniksi my�s "Modulus n") k�ytet��n kaikista menetelmist�, joissa tehd��n jakolasku luvulla n, vaikka kaikki muut yksityiskohdat olisivat erilaisia. Muutenkin samaa nime� – esim. IBM Check – voidaan k�ytt�� kesken��n aivan erilaisista menetelmist�. Joskus nimeen liitet��n t�sment�vi� m��reit�. Useimmat t�ss� dokumentissa k�ytetyt nimet eiv�t ole kovin "virallisia", mutta otsikointia varten jotakin on pit�nyt keksi�. Nimi� yritet��n sent��n k�ytt�� johdonmukaisesti, mutta joskus pitk��nkin k�yt�ss� ollutta nime� voidaan joutua muuttamaan jonkin uuden menetelm�n kuvausta lis�tt�ess�. Koska jakaja n�ytt�� olevan useimpien tarkistusmenetelmien t�rkein yksitt�inen ominaisuus ja monessa tapauksessa nime�misen peruste, menetelm�t kuvataan jakajan suuruuden mukaan laskevassa j�rjestyksess�, joka n�ytt�� my�s olevan likimain sama kuin paremmuusj�rjestys, parhaasta alkaen.

Lukuohje: Jos menetelm�n nimess� esiintyy sana "moduli" (tai "mod"), sit� seuraava luku luetaan tavaomaiseen tapaan, eli esim. "Moduli 34" = "moduli kolmekymment� nelj�", koska 34 on jakaja jota menetelm�ss� k�ytet��n sellaisenaan. Jos taas menetelm�n nimess� eiintyy sana "kerroin", sit� seuraavat numerot luetaan yksitellen, esim. "Kerroin 137" = "kerroin yksi kolme seitseman", koska 137 ei t�ss� ole luku, vaan luettelo menetelm�ss� k�ytett�vist� painokertoimista, joista kutakin k�ytet��n erikseen. Selvemp�� olisi kirjoittaa esim. 1-3-7, mutta t�m� johtaisi joissakin tapauksissa ei-toivottuihin rivinvaihtoihin.

L�hinn� toiston v�hent�miseksi olen k�ytt�nyt sanoja "tarkistenumero" ja "tarkistusnumero" silloin kun kyseess� todella on numero, ja sanoja "tarkistemerkki" ja "tarkistusmerkki" kun my�s kirjaimet ovat mahdollisia. Sanaa "tarkiste" k�yt�n synonyymina kaikille edell�mainituille. Muuta merkityseroa en ole n�ille nimityksille antanut. Joissakin muissa dokumenteissa k�ytet��n my�s nime� "tarkastusmerkki", mutta t�m� sana viittaa paremminkin merkint��n tehdyst� tarkastuksesta (esim. jalometallin pitoisuuden osoittava tarkastusmerkki). ATK-sanakirjan mukaan kyseess� on "varmistusmerkki" tai "varmistusnumero", mutta muualla n�it� nimityksi� k�ytet��n tavallisesti tarkoittamaan salasanaa tai sellaiseen verrattavaa merkkijonoa.

Minulle on huomautettu, ett� suomen kielen s��nt�jen mukaan t�llaisessa yhteydess� pit�isi puhua tarkastamisesta eik� tarkistamisesta, ja ihan tottahan t�m� on.

Tarkastaa = K�yd� l�pi ja todeta.
Tarkistaa = Todeta ja korjata.
(L�hde: Tiede-lehti 3/2009 s. 17 palsta Omat sanat)
T�ss� dokumentissa kuvattujen tarkisteiden avulla virheit� voidaan todeta mutta ei korjata. Useita viikkoja kest�neen kokeilun j�lkeen on kuitenkin tilastotietojen perusteella todettava, ett� vain harva etsii t�llaisia tietoja jotakin tarkastamisesta johdettua sanaa k�ytt�en, vaikka t�m� dokumentti on nykyisin sellaisillakin sanoilla l�ydett�viss�. Niinp� en aio t�m�n johdosta tehd� mit��n muutoksia. Siit� riippumatta mit� merkityksi� kielitieteilij�t ja sanakirjojen laatijat sanoille antavat, min� yrit�n kirjoittaa dokumentiia, jonka ihmiset l�yt�v�t hakukoneiden avulla itselleen tuttuja sanoja k�ytt�en. T�h�n liittyen en my�sk��n k�yt� termi� "tarkastusluku", joka mielest�ni muutenkin sopisi k�ytett�v�ksi vain jos tarkisteessa on enemm�n kuin yksi merkki.

Siit�kin on huomautettu, ett� k�yt�n sanaa moduli, vaikka jakoj��nn�ksen toinen nimi on modulo. Todellisuudessa k�yt�n kyll� sanaa modulo kun on kysymys nimenomaan jakoj��nn�ksest� tai sen laskemisesta, kun taas moduli esiintyy menetelmien nimiss�, jotka muutenkin ovat usein vain mielivaltaisia valintoja. T�st� olen keskustellut yhden matemaatikon kanssa, eik� modulissa ole h�nen mielest��n mit��n vikaa t�ll� tavalla k�ytettyn�. Voi olla jopa hyv� asia, ett� menetelmien nimiss� k�ytet��n eri sanaa, koska useimmiten menetelm� sis�lt�� muutakin kuin jakoj��nn�ksen laskemisen; eri sanan k�ytt� voi tehd� selvemm�ksi sen, ett� viitataan tarkistusmenetelm��n eik� vain jakoj��nn�ksen laskentaan. Itse en ole tuota modulia keksinyt, vaan se on per�isin jostakin dokumentista, jota en pysty en�� j�ljitt�m��n (Luhnin moduli 10). Alun perin kyseess� voi hyvinkin olla k��nn�svirhe, mutta nyt se on p��ssyt sen verran vakiintumaan, ett� olen aika haluton sit� muuttamaan.

Monissa dokumenteissa tunnisteita nimitet��n numeroiksi, vaikka ne sis�lt�isiv�t kirjaimia (arkkiesimerkkin� auton rekisterinumero), ja erityisesti tarkisteen laskennan yhteydess� yksitt�isi� kirjaimia itse��n sanotaan numeroiksi. Esityksen lyhent�miseksi otan itselleni vapauden noudattaa joskus samaa k�yt�nt��.

Tarkiste on englanniksi "check digit" tai "check character". On olemassa yleisesti k�ytetty termi "control number" (tai joskus "control digit"), mutta t�m�n dokumentin mukaista tarkistenumeroa sill� tarkoitetaan yleens� vain, jos kirjoittajan �idinkieli ei ole englanti; tavallisemmin ilmaus tarkoittaa jotakin tunnistetta tai sellaisen osaa. Sekaannukseen voi vaikuttaa se, ett� tarkistenumero on ranskaksi "chiffre de contr�le". "Check mark" suomennetaan joskus tarkistusmerkiksi, mutta sill� ei tarkoiteta samaa asiaa kuin t�ss� dokumentissa. Saksaksi tarkistusnumero on "Pr�fziffer".

Uusimmat muutokset

T�m� dokumentti ei ole kuollut, mutta on jo pitk��n viett�nyt hiljaiseloa: Teen kyll� edelleen muutoksia ja lis�yksi�kin, mutta yleens� vain silloin, kun jokin ulkoinen tekij� antaa niihin aiheen. Sit� vastoin dokumenttiin n�hden rinnakkainen Tuatara-ohjelmapaketti on jatkuvasti aktiivisen yll�pidon alainen.
  • 02.10.2012 Poistettu kuvaus Microsoftin vanhoista tuotetunnuksista.
  • 16.08.2013 Kirjoitettu uudelleen eurosetelien sarjanumeroiden kuvaus ottaen huomioon uusi 2013 alkaen liikkelle laskettu setelisarja.
  • 21.02.2014 Pohjoismaisen tuotenumeron (Vnr) kuvaus poistettu vanhentuneena.
  • 28.06.2014 Poistettu maininnat ajokortin hallinnollisesta numerosta, koska sen tarkisteen laskenta on muuttunut. N�m� tiedot voidaan palauttaa, jos asiasta saadaan riitt�v�n tarkkoja tietoja.
  • 30.08.2014 Poistettu MSI-viivakoodin tarkisteen laskennan kuvaus dokumentin aihepiiriin huonosti sopivana.
  • 26.09.2017 P�ivitetty tietoja Henkil�tunnusten yksil�numeroista.
  • 24.04.2020 Lis�tty Dammin algoritmin kuvaus.
  • 20.06.2021 Tarkennettu tietoja ep�standardeista OVT-tunnuksista.
  • 25.01.2022 Lis�tty maininta GSRN-tunnuksesta.
  • 01.01.2024 Kuvaus Henkil�tunnuksen uusista v�limerkeist� lis�tty.
T�h�n listaan ei merkit� pieni� muutoksia.

Moduli 97-10

Menetelm�� k�ytet��n kansainv�lisen tilinumeron ja siihen liittyvien RF-viitteen ja IPI:n maksunaihekoodin tarkistamiseen.

Kansainv�linen tilinumero (IBAN)

IBAN-muunnos- ja -tarkistusohjelma

Kansainv�linen pankkitilin numero (International Bank Account Number, IBAN) otettiin Suomessa k�ytt��n 01.10.2001 kansainv�lisen maksuliikenteen helpottamiseksi. Vuoden 2007 alusta IBAN:in k�ytt� kansainv�lisiss� eurom��r�isiss� maksuissa EU:n sis�ll� on ollut pakollista. Vuoden 2008 aikana IBAN otettiin k�ytt��n my�s Suomen sis�isess� maksuliikenteess�, ja 01.07.2010 alkaen se on ollut pakollinen paperilaskuissa ja tilisiirtolomakkeissa; s�hk�isiss� laskuissa se on pakollinen 01.01.2011 alkaen, ja yritysten ym. pankeille toimittamissa maksuaineistoissa (esim. palkat) 01.11.2011 alkaen. Periaatteessa se on pakollinen yksityisillekin, mutta pankit voivat tehd� muunnoksen automaattisesti. Finanssialan keskusliitto ilmoitti 02.06.2014 ett� muunnospalvelu lakkaa l�hikuukausina.

Numero muodostuu kolmesta osasta:

  1. ISO 3166-1 -standardin mukainen kaksikirjaiminen maatunnus, suomalaisissa tileiss� FI ("�f ii", ei "�f yksi", kuten jotkut ovat kirjoittaneet).
  2. Kaksinumeroinen tarkiste, joka lasketaan kaikissa maissa samalla tavalla.
  3. Loppuosa muodostetaan varsinaisesta tilinumerosta, johon joissakin maissa lis�t��n pankin tunnus. S��nn�t vaihtelevat maittain, kuten tilinumeroiden rakennekin. Samasta syyst� t�m�n osan (Basic Bank Account Number, BBAN) pituus vaihtelee, ja voi enimmill��n olla 30 merkki�, mutta on yksitt�isess� maassa aina sama. Joissakin maissa k�ytet��n my�s kirjaimia, mutta Suomessa ei. Mahdolliset v�limerkit j�tet��n pois. Suomessa t�m� osa on aikaisempi kotimainen tilinumero 14-numeroisessa konekielisess� muodossa.
IBAN:issa ei k�ytet� pieni� kirjaimia. Konekielinen IBAN on yhten�inen merkkijono, mutta paperilla se voidaan luettavuuden parantamiseksi jakaa nelj�n merkin ryhmiksi vasemmalta alkaen. Tarkisteen laskenta on monivaiheinen (esimerkkin� suomalainen tilinumero, mutta 1. vaihetta lukuun ottamatta prosessi on sama maasta riippumatta):
  1. Alkuper�inen (suomalainen) tilinumero (esim. 159030-776) muokataan 14-numeroiseen konekieliseen muotoon (15903000000776) ellei se jo t�ss� muodossa ole. Katso pankkitilin numero. Huomaa ett� suomalaiset 4- ja 5-alkuiset tilinumerot k�sitell��n eri tavalla kuin muut. T�ss� kohdassa tilinumero siis on BBAN-muodossa.
  2. Numerosarjan loppuun liitet��n maatunnus (t�ss� tapauksessa FI) ja kaksi nollaa (15903000000776FI00).
  3. Korvataan kukin kirjain numeroparilla Taulukon 1 mukaisesti (15903000000776151800). Sama korvaus tehd��n my�s BBAN-tilinumeroon sis�ltyville kirjaimille niiss� tapauksissa joissa kirjaimia k�ytet��n.
  4. Lasketaan n�in saadusta luvusta modulo 97. Tarvittaessa katso Jakoj��nn�s ja kongruenssi, jossa kerrotaan my�s miten lasketaan jakoj��nn�s suuresta luvusta.
  5. Jakoj��nn�s (61) v�hennet��n 98:sta. Tulos (37) on tarkiste.
  6. Jos tulos on pienempi kuin 10, lis�t��n etunolla. Tarkisteen mahdolliset arvot ovat siis 02..98.
  7. Liitet��n maatunnus ja kaksinumeroinen tarkiste BBAN-muodossa olevan tilinumeron eteen (FI3715903000000776). Tulos voidaan esitt�� my�s ryhmiteltyn� (FI37 1590 3000 0007 76).
Oman IBAN:in saa pankista ja muiden IBAN:it ao. tahoilta, eik� niit� pit�isi tehd� itse. Pankit tulostavat IBAN:in jokaiseen tiliotteeseen. Ei tarvitse menn� kauemmas kuin Viroon, kun IBAN:in muodostamiseen tarvitaan muutakin tietoa kuin maatunnus, tarkiste ja virolainen tilinumero. Tarkisteen muodostamista todenn�k�isempi tarve on annetun tilinumeron tarkistaminen, mik� onkin paljon helpompaa (jatketaan eo. suomalaista esimerkki�, mutta tarkistus tehd��n samalla tavalla my�s ulkomaisille IBAN:eille):
  1. Siirret��n maatunnus ja tarkiste tilinumeron loppuun (15903000000776FI37).
  2. Korvataan kirjaimet numeropareilla (15903000000776151837).
  3. Jaetaan saatu luku 97:ll�.
  4. Jos IBAN on virheet�n, jakoj��nn�s on 1 (n�in tapahtuu esimerkiss�).

CRC-menetelmill� (Cyclic Redundancy Check) on samantapainen ominaisuus:
<Tarkisteellinen tieto> mod <Menetelm�kohtainen jakaja> = 0
eli tarkiste m��r�ytyy niin, ett� jakoj��nn�s on tarkistettavasta tiedosta riippumatta vakio.

IBAN:in on m��ritellyt Eurooppalaisten pankkien standardointij�rjest� (European Committee for Banking Standards, ECBS) dokumentissa EBS204 (European Banking Standard), ja se on my�s ISO:n standardi 13616. Nykyisin IBAN:ia yll�pit�� ISO:n valtuuttamana SWIFT (Society for Worldwide Interbank Financial Telecommunications). IBAN on kehitetty k�ytett�v�ksi Euroopan Unionissa, ja sit� k�ytt�v�t kaikki Euroopan maat paitsi Ven�j�. Kosovo k�ytt�� ep�virallista maakoodia XK 01.02.2015 alkaen. Euroopan ulkopuolella IBAN:ia k�ytt�� kolmisenkymment� maata; n�ihin eiv�t kuulu (marraskuussa 2018) seuraavat OECD-maat: Australia (AU), Chile (CL), Etel�-Korea (KR), Japani (JP), Kanada (CA), Meksiko (MX), Uusi-Seelanti (NZ) ja Yhdysvallat (US), eiv�t my�sk��n mm. seuraavat taloudellisesti t�rke�t OECD:n ulkopuoliset maat: Argentiina (AR), Etel�-Afrikka (ZA), Hongkong (HK), Indonesia (ID), Intia (IN), Iran (IR), Kiina (CN), Kolumbia (CO), Malesia (MY), Singapore (SG), Taiwan (TW), Thaimaa (TH) ja Ven�j� (RU). T�ss� listassa aikaisemmin mainitut Brasilia (BR), Egypti (EG) ja Pakistan (PK) ovat ottaneet IBAN:in k�ytt��n. K�ytt�jien m��r� on muutenkin kasvussa – 13 uutta maata vuosina 2014..2018. Yhdysvalloissa on asetettu ty�ryhm� asiaa selvitt�m��n; jos t�m� johtaa positiiviseen tulokseen, useat (kymmenet?) maat voivat seurata esimerkki�.

Varsinainen (suomalainen) tilinumero voidaan tarkistaa siten kuin ao. kappaleessa on kuvattu (�l� luota siihen, ett� t�m� pit�isi paikkansa 31.01.2014 j�lkeen). Muiden tilinumeroiden t�ydellinen tarkistaminen olisi monimutkaista. Joissakin maissa kaikkien pankkien tilinumeroille on yhten�inen tarkistusmenettely, joka on yleens� julkinen, mutta vaihtelee tietysti maasta toiseen. Toisissa maissa k�ytet��n pankkikohtaisia menetelmi�, jotka eiv�t aina ole julkisia. Joidenkin pankkien tilinumeroissa ei ole tarkistetta lainkaan. Julkisten tietojen perusteella voidaan kuitenkin tarkistaa se, ett� numeroita ja kirjaimia on k�ytetty vain sellaisissa positioissa, joissa ne ovat sallittuja. On todellakin ymm�rrett�v��, ett� kansainv�liseen maksuliikenteeseen on haluttu kehitt�� yksi yhten�inen tarkistusmenetelm�.

Internetist� l�ytyy sivuja, joilla tarjotaan mahdollisuutta muodostaa IBAN mist� tahansa tilinumerosta k�ytt�en ao. maan maakoodia, mutta n�in ei todellisuudessa voi tehd�. IBAN:in muodostaminen edellytt��, ett� ko. maan pankit ovat sopineet IBAN:in perustana k�ytett�v�n BBAN-tilinumeron muodosta, ja t�llainen sopimus on tehty vain maissa, jotka ovat liittyneet tai liittym�ss� IBAN:in k�ytt�jien joukkoon, eiv�tk� pankkikohtaiseen tilinumeroon sis�ltyv�t tiedot kaikissa maissa riit� BBAN:in muodostamiseen. Yritys muodostaa IBAN j�rjestelm�n ulkopuolisten maiden tilinumeroista on merkitykset�n tai pahimmillaan harhaanjohtava. Toinen tavanomainen virhe mainituilla sivuilla on, ett� ne sallivat mink� tahansa k�yt�ss� olevan maakoodin, vaikka on useita alueita, jotka eiv�t k�yt� omia maakoodejaan t�llaisessa yhteydess�. Kaiken lis�ksi s��nt�jen mukaan IBAN:in muodostaminen on tilinpit�j�pankin yksinoikeus.

P�invastainen muunnos – IBAN:in muuttaminen kotimaiseksi tilinumeroksi – on suomalaisille tilinumeroille helppo. Vaikken tied� mit��n tilannetta, jossa t�llaiselle muunnokselle olisi todellista tarvetta, kerron silti miten se tehd��n oikein, koska Netiss� on asiasta paljon harhaanjohtavaa tietoa: J�t� alusta pois kirjaimet FI ja seuraavat kaksi numeroa. J�ljelle j��v�t 14 numeroa ovat suomalainen tilinumero (esim. FI02 2045 3504 1005 27 → 2045 3504 1005 27). Tarvittaessa voit poistaa v�lily�nnit ja/tai lis�t� 6. numeron j�lkeen v�liviivan (esim. 204535-04100527). Usein neuvotaan my�s poistamaan "ylim��r�iset" nollat, mutta t�m� ei koskaan ole pakollista, ja voi v��rin tehtyn� pahimmillaan johtaa virheelliseen mutta toimivaan tilinumeroon, jolloin maksu menee v��r�lle tilille, eli kehotus nollien poistamiseen on v�hint��n vastuuton – t�sm�lliselt� n�ytt�v� ohjekaan ei v�ltt�m�tt� sovi kaikkiin tilanteisiin (esimerkkitapauksessa er��t n�kem�ni ohjeet tuottaisivat muodollisesti moitteettoman mutta silti v��r�n tilinumeron). Tietysti nollien poistamiseen on oikeakin tapa, mutta k�yt� sit� vain jos varmasti tied�t mit� olet tekem�ss�. Muunnosta ei pid� tehd� suomalaisille IBAN:eille joiden 5. merkki on 7, koska t�llaiset pankit eiv�t ole koskaan k�ytt�neet suomalaisen standardin mukaisia tilinumeroita. Muiden maiden IBAN:eille ei ole yhten�ist� s��nt��.

Netist� l�ytyvien tietojen mukaan varsinkin Afrikassa on maita, joiden tilinumerot n�ytt�v�t IBAN:eilta, mutta joita ei mainita SWIFT:in yll�pit�m�ss� virallisessa IBAN-rekisteriss�. T�t� ei tietenk��n mik��n est�, mutta t�llaisille tileille maksettaessa ei v�ltt�m�tt� toteudu IBAN:in t�rkein etu: Vastaanottajan tilinumeron oikeellisuuden tarkistaminen ennen maksun l�hett�mist�, eik� vasta sitten kun maksu on saapunut m��r�konttoriin (oikeaan tai v��r��n) tai pahimmassa tapauksessa v��r�lle tilille.

Monet n�ytt�v�t uskovan, ett� BBAN ja kansallinen tilinumero ovat sama asia. Joskus ovatkin, mutta yleisesti t�h�n ei pid� luottaa. Tarkkaan ottaen BBAN on kansallisen tilinumeron esitysmuoto, jonka ainoa teht�v� on toimia IBAN:in muodostamisen l�ht�kohtana. Alkuper�isen tilinumeron muokkaaminen BBAN:iksi voi sis�lt�� esim. pankkitunnuksen lis��misen (samalla pankilla voi olla useita erilaisia tunnuksia) ja/tai nollien lis��misen, jotta BBAN saadaan oikean pituiseksi. Muokkaus on usein pankkikohtainen. Huomaa ett� joissakin maissa maa- tai pankkikohtaisista tilinumerostandardeista on luovuttu kokonaan, jolloin "alkuper�inen tilinumero" on menett�nyt kaiken merkityksens�; Suomessa t�m� prosessi on viety melkein loppuun (elokuussa 2013).

Jos kaksinumeroista tarkistetta ei pidet� liian pitk�n�, t�m� menetelm� sopii mainiosti moneen muuhunkin k�ytt��n, koska tarkistettavan merkkijonon pituutta ei ole rajoitettu, tarkistuksessa voidaan k�sitell� sek� numeroita ett� kirjaimia, ja virheenpaljastuskyky on erinomainen. Menetelm� sis�ltyy ISO:n standardiin 7064, mutta kirjainten k�sittely on luultavasti standardiin tehty laajennus, ja tarkisteen siirt�minen l�helle merkkijonon alkua poikennee sekin standardista.

L�htein� on k�ytetty em. EBS204:n ja SWIFT:in yll�pit�m�n virallisen IBAN-rekisterin lis�ksi mm. Suomen pankkiyhdistyksen (vuoden 2007 alusta Finanssialan keskusliitto) julkaisua "Kansainv�linen tilinumero IBAN (International Bank Account Number) ulkomaan maksuliikenteess�, Ohje ohjelmataloille, 21.09.2000 / V1.0".

Maksuliikenteess� k�ytet��n my�s pankki- tai konttorikohtaista BIC-koodia (�l� sekoita t�t� konttiliikenteen BIC-koodiin) ja joissakin maissa (ei Suomessa) pankki- tai konttorikohtaista clearing-koodia. Clearing-koodin nimi ([National] Clearing Code, Routing Number, Sort Code yms.), muoto ja siten oletettavasti my�s mahdollisen tarkisteen laskenta on maakohtainen. BIC-koodissa ei ole tarkistetta, joten se voidaan tarkistaa vain ao. pankin tiedoista tai vertaamalla koodiluetteloon esim. tietokannassa (Bank Identifier Code, tunnetaan kehitt�j�ns� mukaisesti my�s SWIFT-koodina, ISO-standardi 9362). My�s BIC l�ytyy tiliotteesta. BIC:in k�ytt� SEPA-alueella p��ttyi maansis�isiss� maksuissa 31.01.2014 ja kansainv�lisess�kin rahaliikenteess� IBAN:illa maksettaessa 31.01.2016. SEPA:n ulkopuolella BIC:in k�ytt� jatkuu.

RF-viite

Tarkisteen lis�ys- ja tarkistusohjelma
Juoksevaan numeroon perustuvien suomalaisten viitenumeroiden ja/tai niist� johdettujen RF-viitteiden generointiohjelma
Monimutkaisempien RF-viitteiden generointiohjelma

RF-viite eli KV-viite eli kansainv�linen viite eli kansainv�linen viitenumero eli myyj�viite eli (Global) (Structured) Creditor Reference eli RF Creditor Reference (ISO 11649) on kansainv�liseen k�ytt��n tarkoitettu suomalaista Pankkisiirron viitenumeroa vastaava tunniste, joka rakenteeltaan muistuttaa suuresti Kansainv�list� tilinumeroa (IBAN). RF-viitteit� saa k�ytt�� 01.12.2010 alkaen sek� kotimaisessa ett� kansainv�lisess� rahaliikenteess�. Kuten kotimaisen viitenumeron, my�s RF-viitteen tarkoitus on yhdist�� vastaanotettu maksu l�hetettyyn laskuun, joten RF-viitteenkin tuottaa laskuttaja. Jossakin vaiheessa kotimaisista viitenumeroista luovuttanee, ja RF-viitteet j��v�t ainoaksi vaihtoehdoksi. Varsinaista p��t�st� t�st� ei kuitenkaan ole viel� tehty (elokuussa 2014).

  • RF-viitteen alussa on maatunnuksen sijasta isot kirjaimet RF (sanasta reference; RF ei [elokuussa 2014] ole mink��n maan tunnus standardissa ISO 3166-1, vaikka se kyrillisill� kirjaimilla kirjoitettuna [РФ] on Ven�j�n federaation ccTLD Internetiss�).
  • Positioissa 3..4 on tarkiste, joka lasketaan aivan samoin kuin IBAN:issa. Tarkistuksessa voidaan k�ytt�� samaa yksinkertaistettua menettely� kuin IBAN:issa.
  • Painetussa muodossa ryhmittely nelj�n merkin ryhmiin vasemmalta alkaen kuten IBAN:issa. Konekielisen� yhten�inen merkkijono.
  • Viitteen sis�lt� on enint��n 21 merkki� pitk�, numerot 0..9 ja kirjaimet A..Z ovat sallittuja. Kokonaispituus on siis enint��n 25 merkki�. Sis�ll�n minimipituutta standardi ei m��rittele, joten yhdenkin merkin pit�isi riitt��.
  • Viitteen sis�ll�ss� my�s pienet kirjaimet ovat sallittuja, mutta ne ovat tarkistetta laskettaessa samanarvoisia kuin isot kirjaimet, joten RF-viitett� ei pit�isi muodostaa niin, ett� sen merkitys riippuu isojen ja pienten kirjainten v�lisest� erosta. Ero voi kadota matkan varrella, eik� tarkiste paljasta t�llaista muutosta. Tekem�ni ohjelmat eiv�t tuota viitteisiin pieni� kirjaimia, mutta sallivat ne tarkistuksessa.
  • Viitteen sis�ll�n mahdolliset etunollat (tarkistetta seuraavat nollat) eiv�t vaikuta tarkisteeseen. Jotkin tietoj�rjestelm�t saattavat poistaa t�llaiset nollat viitteit� k�sitelless��n; esim. suomalaisesta pankkiviivakoodista (versio 5) on yleens� mahdotonta p��tell�, onko viitteen sis�ll�ss� alun perin ollut etunollia. Koska etunollat ovat hy�dytt�mi�, suosittelen niist� aiheutuvan turhan ty�n j�tt�mist� teett�m�tt�, vaikka suureksi ongelmaksi ne muodostuvat vain jos joku k�ytt�� niit� kuvitellen niiden olevan merkitsevi� (nollien katoaminen voi esim. est�� huonosti kirjoitettua ohjelmaa tunnistamasta l�hetetty� ja vastaanotettua viitett� samaksi). Tekem�ni ohjelmat eiv�t tuota etunollia RF-viitteiden sis�ll��n, ja poistavat etunollat RF-viitteit� tarkistettaessa. – Kaikki t�m� siis koskee viitteen sis�lt��; tarkiste voi alkaa nollalla.
  • Finanssialan keskusliiton julkaisussa "Kansainv�lisen viitteen k�ytt��notto suomalaisessa yrityksess� 1.12.2010" sanotaan (sivu 4, kappale 2.2): "Suomessa k�ytett�v� kansainv�linen viite on muodostettava nykyisest� suomalaisen standardin mukaisesta viitteest�." T�ll�in sis�ll�ss� ei tietenk��n voi k�ytt�� kirjaimia, ja sis�lt��n on liitett�v� kotimaisen viitenumeron tarkiste. Laskun voi maksaa joko viitenumerolla tai RF-viitteell�, ja molemmissa tapauksissa vastaanottajalle v�littyy sama viitetieto. Pankkiviivakoodistandardista ei viel� ole versiota, joka sallisi kirjainten k�yt�n viitteen sis�ll�ss�, vaikka versio 5 k�ytt�� RF-viitett�.
Esimerkki RF-viitteest�: RF97 C2H5 OH
  1. Viitteen sis�ll�n loppuun liitet��n RF ja kaksi nollaa (C2H5OHRF00).
  2. Korvataan kukin kirjain numeroparilla Taulukon 1 mukaisesti (1221752417271500).
  3. Lasketaan n�in saadusta luvusta modulo 97. Tarvittaessa katso Jakoj��nn�s ja kongruenssi, jossa kerrotaan my�s miten lasketaan jakoj��nn�s suuresta luvusta.
  4. Jakoj��nn�s (1) v�hennet��n 98:sta. Tulos (97) on tarkiste.
  5. Jos tulos on pienempi kuin 10, lis�t��n etunolla. Tarkisteen mahdolliset arvot ovat siis 02..98.
  6. Liitet��n RF ja kaksinumeroinen tarkiste viitteen sis�ll�n eteen (RF97C2H5OH, paperimuodossa RF97 C2H5 OH).
Tarkistus:
  1. Siirret��n RF ja tarkiste viitteen loppuun (C2H5OHRF97).
  2. Korvataan kirjaimet numeropareilla (1221752417271597).
  3. Jaetaan saatu luku 97:ll�.
  4. Jos RF-viite on virheet�n, jakoj��nn�s on 1 (n�in tapahtuu esimerkiss�).
T�m� kansainv�linen standardi on kehitetty Suomessa ja Suomen aloitteesta (Olli K�hk�nen ja Markku Ranta, Nordea), jotta kansainv�liset maksut saataisiin toimimaan yht� sujuvasti kuin Suomen sis�iset. Standardissa on varauduttu siihen, ett� tulevaisuudessa otetaan k�ytt��n muita samankaltaisia tunnisteita, joissa on eri alkukirjaimet.

L�hteen� on monien muiden ohella k�ytetty Finanssialan keskusliiton (FK) julkaisua "Kansainv�lisen viitenumeron (ISO 11649) rakenne ja tarkisteen laskenta 1.11.2009". Julkaisussa oli alun perin virhe, jonka korjaaminen kesti kauan. Korjauksen yhteydess� p�iv�yst� ei muutettu, eik� korjauksesta ole mit��n mainintaa, joten eri versioiden erottaminen on vaikeaa jos ei tied� mist� on kysymys. Jos k�yt�t em. julkaisua, varmista ett� se on haettu FK:n kotisivulta 23.07.2011 tai my�hemmin.

IPI:n maksunaihekoodi

RF-viite korvannee maksunaihekoodin useimmissa tapauksissa 01.12.2010 alkaen.

Kansainv�lisess� maksuliikenteess� k�ytett�v�n IPI:n (International Payment Instruction) suomalaista viitenumeroa vastaavan maksunaihekoodin (Details of payment) tarkistus tehd��n hyvin samantapaisella menetelm�ll� kuin IBAN:in. Maksunaihekoodin maksimipituus ilman tarkistetta on 18 merkki�. Numerot 0..9 ja isot kirjaimet A..Z ovat sallittuja. Koodi on m��ritelty ECBS:n (European Committee for Banking Standards) standardissa EBS206 (European Banking Standard). Tarkisteen laskenta:

  1. Korvataan kirjaimet numeroilla aivan samoin kuin IBAN:in tarkistuksessa.
  2. Lis�t��n loppuun kaksi nollaa.
  3. Lasketaan n�in saadusta luvusta modulo 97. Tarvittaessa katso Jakoj��nn�s ja kongruenssi, jossa kerrotaan my�s miten lasketaan jakoj��nn�s suuresta luvusta.
  4. Jakoj��nn�s v�hennet��n 98:sta. Jos tulos on yksinumeroinen, lis�t��n etunolla (esim. 98 - 94 = 04). N�in saatu kaksinumeroinen luku on tarkiste.
  5. Alkuper�isen maksunaihekoodin alkuun lis�t��n tarvittaessa nollia niin, ett� pituudeksi tulee 18 merkki�.
  6. Lis�t��n alkuun tarkiste, jolloin kokonaispituus on 20 merkki�.
  7. Painetussa muodossa maksunaihekoodi jaetaan v�lily�nneill� nelj�n merkin ryhmiin.
Esimerkki: 567812F48K012
  1. 567812F48K012 → 567812154820012
  2. 567812154820012 → 56781215482001200
  3. 56781215482001200 mod 97 = 44
  4. 98 - 44 = 54
  5. 567812F48K012 → 00000567812F48K012
  6. 00000567812F48K012 → 5400000567812F48K012
  7. 5400000567812F48K012 → 5400 0005 6781 2F48 K012
Tarkistus voidaan tehd� kuten IBAN:issa, eli siirret��n tarkiste koodin loppuun, korvataan kirjaimet numeroilla ja lasketaan modulo 97. Jos maksunaihekoodi on virheet�n, jakoj��nn�s on aina 1 (esim. 0000056781215482001254 mod 97 = 1).

Maksun aihe voi vaihtoehtoisesti olla enint��n 35 merkki� pitk� vapaamuotoinen merkkijono, johon ei liity tarkistetta. IPI:ss� on varattu kentt� sen ilmoittamiseen, kumpaa muotoa k�ytet��n.


Moduli 34

Coden

Coden on kuusimerkkinen tunnus, joita yhdysvaltalainen Chemical Abstracts Service (CAS) antaa julkaisuille. Tunnuksen saa ilmaiseksi, luetteloa julkaisuista ja niiden tunnuksista myyd��n kalliilla hinnalla. Tunnuksia on kahta p��tyyppi�:
  • Sarjamuotoiset julkaisut: AAAAET, jossa AAAA on julkaisun nimest� johdettu mnemoninen (muistamista tukeva) koodi, E erottaa toisistaan koodit jotka muuten olisivat samanlaisia ja T on tarkiste.
  • Yksitt�iset julkaisut: NNAAGT, jossa NNAA on julkaisun tunniste ja kaksi viimeist� merkki� ovat kuten edell�.
A ja G ovat isoja kirjaimia A..Z, N on numero 0..9, E on iso kirjain yleens� aakkosten alkup��st� (A..G) ja T on numero 2..9 tai iso kirjain A..Z.

Esimerkkej�: JPERFA, 53AKAE

Jotkin l�hteet esitt�v�t Codenin ilman tarkistetta. Lis�ksi Codenin sijasta k�ytet��n joskus 00-alkuista koodia, jossa ei ole t�m�n kuvauksen mukaista tarkistetta.

Tarkisteen laskenta:

  1. Jokainen tarkistettava merkki korvataan numeroarvolla seuraavien taulukoiden mukaisesti:
    Merkki ABCDEFG HIJKLMN OPQRSTU VWXYZ
    Arvo 1 2 3 4 5 6 7 8 91011121314 15161718192021 2223242526
    Merkki 1 2 3 4 5 6 7 8 9 0
    Arvo 2728293031 3233343536
    Eli my�s numerot korvataan toisilla arvoilla. T�t� ei aivan samalla periaatteella tehd� miss��n toisessa tuntemassani menetelm�ss�.
  2. Saadut arvot kerrotaan painokertoimilla, jotka ovat vasemmalta oikealle 11, 7, 5, 3, ja 1.
  3. Tulot lasketaan yhteen.
  4. Summa jaetaan 34:ll�.
  5. Jos jakoj��nn�s on 1..26, tarkiste on kirjain joka saadaan k�ytt�m�ll� eo. taulukkoa k��nteisesti. Muussa tapauksessa tarkiste on numero 2..9, joka saadaan seuraavasta taulukosta:
    Jakoj��nn�s 272829303132330
    Tarkiste 2 3 4 5 6 7 89
Esimerkki 1: CYSTE3
	  C   Y   S   T   E   3
	  3  25  19  20   5
	 11   7   5   3   1
	 33 175  95  60   5   = 368 ≡ 28 (mod 34) → 3
Esimerkki 2: 48THAM
	  4   8   T   H   A   M
	 30  34  20   8   1
	 11   7   5   3   1
	330 238 100  24   1   = 693 ≡ 13 (mod 34) → M
Huom! T�m� kuvaus ei tarkisteen laskennan osalta perustu mihink��n julkaistuun dokumenttiin, vaan yli 2200 aidon Codenin analysointiin. Tutkituista koodeista 20 (alle 1 %) ei l�p�ise t�ss� kuvattua tarkistusta, mutta niist� 19 on ilmeisi� lukuvirheit�, eli joku on lukenut merkin toiseksi hiukan samann�k�iseksi tai samalta kuulostavaksi, ja t�m� v��r� merkki on sitten n�pp�ilty. 16 tapauksessa virhe oli tarkisteessa ja vain 3 tapauksessa varsinaisessa koodissa, joten tekee mieli v�itt�� ett� t�m� menetelm� aiheuttaa itse useimmat niist� virheist�, jotka sen avulla havaitaan. Yhden virheen syntytapa j�i arvoitukseksi; koodi on aivan erilainen kuin ao. julkaisussa. Kuten muutkin kokemukset osoittavat, samat virheelliset koodit l�ytyv�t Internetist� monelta sivulta, mik� viittaa siihen ett� niit� kopioidaan paikasta toiseen ilman tarkistusta. My�s oikeat versiot l�ytyv�t; kaikissa 20 tapauksessa olen varmistanut, ett� oikeiksi tulkitsemani versiot ovat todellisia, k�yt�ss� olevia koodeja.

Codenin tarkistuksesta olen kirjoittanut my�s englanninkielisen kuvauksen, koska sellaista ei n�yt� Internetist� muualta l�ytyv�n. Kuvaus sis�lt�� hieman lis�tietoja em. virheellisist� koodeista.


Moduli 31

T�t� menetelm�� k�ytet��n henkil�tunnuksen, s�hk�isen asiointitunnuksen, kiinteist�tunnuksen ja Tapiolan vakuutusnumeron tarkistamiseen.

Suomalainen henkil�tunnus (HETU)

HETU:n tarkistusohjelma

Henkil�tunnuksen avulla ihmiset pystyt��n yksil�im��n erilaisissa hallinnollisissa tietoj�rjestelmiss�.

Vuoteen 1964 saakka tunnuksen nimi oli ty�el�kekortin numero, ja niit� antoi El�keturvakeskus (ETK) vuosina 1962..1972. My�hemmin niit� jakoi my�s Kansanel�kelaitos (Kela) vuosina 1964..1974. Vuosina 1964..1970 tunnistetta nimitettiin sosiaaliturvatunnukseksi eli sotuksi. Vuoden 1971 alusta nimi on ollut henkil�tunnus, ja nykyisin sellaisen antaa V�est�rekisterikeskus (VRK) jokaiselle Suomen kansalaiselle, sek� ulkomaalaisille joilla on Suomessa kotipaikka. T�m�n mukaisesti on joskus k�ytetty my�s nime� v�est�rekisteritunnus. V�est�rekisterikeskuksen kotisivulla annettu englanninkielinen nimi on Personal Identity Number, joka lienee virallinen k��nn�s. T�m� voidaan lyhent�� PIN, mutta on muistettava ett� samaa lyhennett� k�ytet��n my�s muista koodeista. Henkil�tunnus on m��ritelty V�est�tietoasetuksessa (886/1993).

Henkil�tunnus on muotoa PPKKVVSNNNT, jossa:

PPKKVV Syntym�aika; p�iv�, kuukausi ja kaksi viimeist� numeroa vuosiluvusta; tarvittaessa k�ytet��n etunollia. My�s 29.2. voi olla henkil�tunnuksessa syntym�p�iv�n�, esim. 290272.
SNNNYksil�numero
S Vuosiluvun kaksi ensimm�ist� numeroa osoittava v�limerkki, "+" 1800-luvulla syntyneill�, "-", "U", "V", "W", "X" tai "Y" 1900-luvulla syntyneill�, "A", "B", "C", "D", "E" tai "F" 2000-luvulla syntyneill� (asetus 690/2022). K�ytet��n isoja kirjaimia.
NNN Kolminumeroinen luku, etunollitettu, naisilla parillinen, miehill� pariton. Sukupuolen selvitt�miseen riitt�� tietysti kent�n viimeisen numeron tutkiminen.
T Tarkistusmerkki.

Tarkistusmerkin laskenta: Numeroiden PPKKVVNNN muodostama luku jaetaan 31:ll�. Jos jakoj��nn�s on yksinumeroinen, se on tarkistusmerkki. Muuten jakoj��nn�s m��r�� tarkistusmerkkin� k�ytett�v�n kirjaimen seuraavasti:

10 A11 B12 C13 D 14 E15 F16 H
17 J18 K19 L20 M 21 N22 P23 R
24 S25 T26 U27 V 28 W29 X30 Y

Esimerkki: 120464-126J

  • "-" osoittaa ett� henkil� on syntynyt 1900-luvulla
  • 12.04.1964 on muodollisesti virheet�n p�iv�m��r�
  • 126 on parillinen, joten kyseess� on nainen
  • 120464126 mod 31 = 17 → J joten tunnus hyv�ksyt��n

Mahdollisia lis�tarkistuksia: P�iv�m��r�n muoto voidaan tarkistaa – ja kannattaa tarkistaa, sill� tarkistemerkki paljastaa tietyt p�iv�m��r�kent�n sis�lt�virheet varmuudella vain jos p�iv�ys on muodollisesti virheet�n; vrt. Ruotsalainen henkil�tunnus. Miss��n virheett�m�ss� henkil�tunnuksessa ei voi esiinty� syntym�aikoja, jotka ovat varhaisempia kuin 1850. Tulevaisuuteen sijoittuvien syntym�aikojen pit�isi my�s olla mahdottomia (henkil�tunnuksia ei anneta etuk�teen). Tapauksesta riippuen rajaus voisi olla tiukempi; esim. hyv�ksyt��n vain t�ysi-ik�iset henkil�t. Yksil�numero ei koskaan ole pienempi kuin 002. Kaikki teoriassa mahdolliset syntym�vuoden ja yksil�numeron yhdistelm�t eiv�t ole oikeasti k�yt�ss�.

V�limerkki ei vaikuta tarkisteeseen. Katso kohtaa Muutosten ennakointi.

Henkil�tunnuksen p��asiallinen kehitt�j� oli henkivakuutusyhti� Salaman johtaja, matemaatikko ja sota-ajan legendaarinen salakirjoitusekspertti Erkki Pale, joka oli lainattu suunnittelup��llik�ksi ETK:n tietojenk�sittely� hoitaneeseen Oy Tietokonepalvelu Ab:hen. Apuna toimi matemaatikko Matti Kurimo. Mallia otettiin ruotsalaisesta henkil�tunnuksesta, mutta syntym�ajan j�rjestys vaihdettiin, v�limerkin k�ytt�� selkiytettiin ja tarkiste lis�ttiin (ruotsalaisessa tunnuksessa tarkiste otettiin k�ytt��n viisi vuotta my�hemmin).

Ajokorteissa, Kela-korteissa ja vuoden 2004 kes�kuusta alkaen annetuissa henkil�kortin ja Kela-kortin yhdistelmiss� on henkil�tunnuksen sis�lt�v� Code 39 -viivakoodi, joka voidaan lukea mm. kauppojen hinnantarkistuspisteiss�, vaikka ne on tarkoitettu Tuotekoodien lukemiseen. Jotkin laitteet saattavat antaa pelk�n virheilmoituksen tuntemattomasta tuotteesta, mutta toiset n�ytt�v�t lis�ksi lukemansa tunnuksen. Jos henkil�tunnuksesi tunnistetaan tuotteeksi, voi olla syyt� huolestua.

Olen n�hnyt sanomalehdess� kuvan aidosta ajokortista, josta henkil�tunnus (t�ss� tapauksessa tarkkaan ottaen ajokortin numero) oli poistettu, mutta viivakoodi oli j�tetty n�kyviin. Vaikka koodin loppuosa oli hiukan tuhruinen, tunnuksen 280264-051U lukeminen onnistui ensimm�isell� yrityksell�, osittain siksi ett� ko. viivakoodi siet�� h�iri�it� melko hyvin. Henkil�tunnus on t�ss� suhteessa poikkeuksellisen helppo kohde. Saman lehden toisessa numerossa passin tunnistetietosivulta varsinainen henkil�tunnus oli peitetty peukalolla, mutta alemmalta koneellisesti luettavalta rivilt� tunnus 140457-107D oli helposti n�ht�viss�. Pelk�n tunnuksen tiet�minen ei vie pitk�lle, mutta koska artikkeleissa kerrottiin my�s muita tietoja kuten nimi, kotipaikka ja ammatti, t�m� on selv� tietoturvariski.

Lehtitietojen mukaan erityisesti Pohjois-Suomessa aikaisemmilla vuosikymmenill� syntyneiden henkil�iden syntym�p�iv�t on monesti kirjattu v��rin. Tietoja on ilmeisesti kirjattu nipuissa kunkin kuukauden 15. ja viimeinen p�iv�, jonka vuoksi n�m� p�iv�t esiintyv�t syntym�p�ivin� tavallista useammin. Yleis�lt� maaliskuussa 2003 saatujen tietojen mukaan nykyisinkin esiintyy tapauksia, joissa henkil�n tarkkaa syntym�p�iv�� ei tiedet� (esim. pakolaiset), jolloin p�iv�ksi usein kirjataan 0101, mik� voi my�hemmin korjaantua, jos tarkempia tietoja saadaan. Molempien ilmi�iden kerrotaan n�kyv�n tilastopiikkein�.

Olen tuntenut henkil�n, joka ei ollut tunnistanut omaa syntym�aikaansa henkil�tunnuksessaan ("ylim��r�iset" nollat h�m�siv�t), eik� sen vuoksi ollut oppinut "pitk��" numerosarjaa ulkoa.

S��nn�llinen lauseke (Regular expression, RegEx)

T�ydellisen muototarkistuksen tekeminen henkil�tunnukselle s��nn�llisen lausekkeen avulla olisi luultavasti vaikeampaa kuin saman asian hoitaminen ohjelmakoodissa, mutta aika pitk�lle p��see t�ll�:

/^(0[1-9]|[12]\d|3[01])(0[1-9]|1[0-2])([5-9]\d\+|\d\d[-U-Y]|[0-2]\d[A-F])\d{3}[\dA-Z]$/

Luettavuuden parantamiseksi sama v�lily�nneill� ryhmiteltyn�. Huomaa ett� t�m� ei toimi kaikissa ohjelmointikieliss� (ryhm�t ovat p�iv�, kuukausi, vuosi & v�limerkki, juokseva numero ja tarkiste):

/^  (0[1-9]|[12]\d|3[01])  (0[1-9]|1[0-2])  ([5-9]\d\+|\d\d[-U-Y]|[0-2]\d[A-F])  \d{3}  [\dA-Z]  $/x

Rajoituksia:

  • Lauseke varmistaa ett� kuukauden p�iv� on 01..31 ja kuukausi 01..12, mutta ei ota huomioon kuukausien pituuksia. T�m�kin riitt�� takaamaan, ett� 42. p�iv� tuohikuuta ei kelpaa syntym�p�iv�ksi.
  • Lauseke sallii vuosiluvut 1850..2029. 1800-luvun hyv�ksynn�n voi haluttaessa j�tt�� pois. Lauseketta on p�ivitett�v� ennen vuotta 2030, tai lauseke voidaan tuottaa ohjelmallisesti.
  • Lauseke sallii yksil�numerot 000..999, vaikka todellisuudessa numerot alkavat 002:sta.
  • Lauseke sallii tarkisteena 26 kirjainta A..Z, vaikka vain 21 kirjainta on todella k�yt�ss� (voidaan odottaa ett� luvattomat kirjaimet havaitaan tarkistetta laskettaessa).
  • Lauseke edellytt�� isoja kirjaimia, mutta jos ohjelma ei t�llaisessa tapauksessa muuta k�ytt�j�n sy�tt�mi� pieni� kirjaimia isoiksi, ohjelman kirjoittaja syyllistyy t�rke��n laiskuuteen. K�ytt�j�� ei pid� rasittaa t�llaisilla pikkuasioilla ilman todella hyv�� syyt�. Tietokannassa tms. on joka tapauksessa aiheellista k�ytt�� isoja kirjaimia.
Vertailu s��nn�lliseen lausekkeeseen ja tarkisteen oikeellisuuden varmistaminen voivat kuitenkin hyvin riitt�� useimpien virheiden havaitsemiseen esim. nettisivulla (serveriss� on joka tapauksessa teht�v� perusteellinen tarkistus), jos tyydyt��n vain ilmoittamaan ett� sy�tt�tieto on virheellinen, mutta ei kerrota tarkemmin mill� tavalla. Useimmat tunnisteet ovat rakenteeltaan henkil�tunnusta yksinkertaisempia, jolloin s��nn�lliseen lausekkeeseen perustuva tarkistus toimii paremmin.

Henkil�tunnuksen k�ytt� Suomessa

Ihmisest� voisi luoda aika kattavan profiilin yhdist�m�ll� kaikki tiedot joihin liittyy henkil�tunnus tai toteamalla ett� jotakin tietoa ei l�ydy. Olen yritt�nyt luetella t�ss� joitakin mieleen tulleita asioita, joita Suomen kansalainen tai sellaisena esiintyv� ei tiet��kseni voi Suomessa tehd� – ainakaan laillisesti – ilman henkil�tunnusta:
  • Asua miss��n (ei voi tehd� ilmoitusta maistraattiin)
  • Tehd� ansioty�t� tai asioida ty�voimatoimistossa
  • Hankkia ajokorttia
  • Solmia avioliittoa
  • Vaihtaa etu- tai sukunime�
  • Olla holhouksen alaisena tai t�llaisen henkil�n edunvalvojana
  • Y�py� hotellissa, motellissa tms.
  • Hoitaa julkista luottamusteht�v�� (kansanedustaja, kunnanvaltuutettu ym.)
  • Toimia j�rjestyksenvalvojana
  • Tehd� kaivosvaltausta
  • Hankkia kirjastokorttia
  • Opiskella koulussa tai muussa oppilaitoksessa
  • Mets�st��
  • K�ytt�� neuvola- tai terveyspalveluja, ml. silm�lasien hankkiminen optikolta
  • Avata pankkitili� → ei pankki- tai luottokorttia, ei pankkilainaa (ei my�sk��n kirjautumista pankkitunnuksia vaativiin palveluihin Internetiss� eik� k�ytt�oikeutta toisen pankkitiliin)
  • Saada panttilainaa
  • Saada perint��
  • Ottaa vastaan kirjattua tai vakuutettua postil�hetyst�, tai mit� tahansa postil�hetyst� pelk�ll� l�hetystunnuksella (ilman saapumisilmoitusta), jos posti vaatii henkil�tunnuksen
  • Toimia radioamat��rin� tai harrastuslent�j�n�
  • Saada rekister�idyksi kiinte�� omaisuutta, tai useita muita rekister�it�vi� omaisuuden lajeja (ml. arvo-osuusj�rjestelm��n merkitt�v�t arvopaperit, useimmat moottoriajoneuvot ja kaikki tuliaseet)
  • Kuulua rekister�ityyn uskonnolliseen yhdyskuntaan
  • Toimia rekister�idyn yhdistyksen puheenjohtajana tai nimenkirjoittajana
  • Antaa tai saada rekister�it�v�� lahjaa
  • Tehd� rikosilmoitusta
  • Saada sosiaaliturvaa tai el�kett�
  • Toimia s��ti�n hallituksessa
  • Matkustaa ulkomaille (passi, henkil�kortti)
  • Ottaa vakuutusta
  • ��nest�� valtiollisissa tai kunnallisissa vaaleissa tai kansan��nestyksess�
  • Luovuttaa verta
  • Lis�ksi monilla yrityksill� ja laitoksilla on oikeus kielt�yty� lainauksesta, vuokrauksesta tai j�lkik�teen laskutettavien tavaroiden tai palvelujen toimittamisesta henkil�ille, jotka eiv�t ilmoita henkil�tunnustaan
Eip� tarvitse my�sk��n maksaa v�litt�mi� veroja eik� menn� armeijaan. Ilman henkil�tunnusta voi hakea patenttia tai kuulua rekister�ityyn yhdistykseen tai puolueeseen. Otan hyvin mielell�ni vastaan ilmoituksia virheist� ja varsinkin puutteista (referenssin kanssa). Huomaa kuitenkin ett�:
  • Listan toinen kohta kattaa jo kaikki ammatit, joihin liittyy jokin ilmoitusvelvollisuus, luvanvaraisuus tai rekister�ityminen (esim. toiminta ammattilent�j�n�).
  • T�ss� ei kaivata mit��n kuukausilippujuttuja, vaan p��s��nt�isesti asioita jotka jollakin tavalla perustuvat s��d�kseen tai viranomaism��r�ykseen.

Olen lukenut v�itteen, ett� Suomessa olisi satoja suomalaisia, joilla ei ole henkil�tunnusta ja jotka siis puuttuvat v�est�tietoj�rjestelm�st�. Mit��n perustelua ei tietenk��n esitetty. Asia on luonteeltaan vaikeasti tilastoitava, mutta en oikein osaa kuvitella, ett� tilanne Suomessa voisi hyvin oleellisesti poiketa Tanskasta: Lukemani tutkimuksen mukaan siell� tavattiin 15 vuoden aikana kuolleina vain kaksi ihmist�, joita ei l�ytynyt v�est�tietoj�rjestelm�st�, vaikka olisi pit�nyt. Ekstrapoloimalla tunnuksettomien ihmisten kokonaism��r�ksi saadaan noin kymmenen. Menetelm� ei tietenk��n ole t�ysin luotettava, mutta antanee suuruusluokan. Veikkaan ett� se antaa paremminkin yl�- kuin alarajan.

Henkil�tunnukset muissa maissa

Suomalaista vastaava henkil�tunnus ei ole aivan yleismaailmallinen ilmi�, mutta mm. Pohjoismaissa ja Baltiassa niit� k�ytet��n. Tunnukset ovat hiukan eri muotoisia, mutta kaikki sis�lt�v�t l�hes t�sm�lleen samat tiedot: Yksil�numero, sukupuoli (paitsi ehk� Islannissa ja Latviassa), tarkiste ja syntym�aika, jossa vuosiluku on kaksinumeroinen mutta kaksi ensimm�ist� numeroa ovat p��telt�viss� jostakin muusta kohdasta. Viel� oleellisempaa on se, ett� tunnuksia k�ytet��n paljolti samalla tavalla. Muuallakin tunnuksia toki on, mutta niiden k�yt�ss� on suurta vaihtelua. Aivan ilmeisesti yhdess�k��n Pohjoismaassa ei ole alun perin otettu kunnolla huomioon sit�, ett� tunnukset eiv�t saisi loppua kesken edes muutamassa vuosisadassa. Esim. Virossa t�m� on ymm�rretty, mutta siell� koko j�rjestelm� onkin paljon uudempi.

Taulukko on osittain koottu ep�virallisten l�hteiden perusteella.

IslantiPPKKVV-NNTS
(kennitala)
S: Vuosiluvun kaksi ensimm�ist� numeroa osoittavaa numeroa ei oteta huomioon tarkistetta laskettaessa
Tunnuksesta ei (luultavasti) voi p��tell� sukupuolta
LatviaPPKKVV-NNNNT
(personas kods)
NNNN: Ensimm�inen numero saattaa osoittaa vuosiluvun kaksi ensimm�ist� numeroa
Tunnuksesta ei voi p��tell� sukupuolta
Liettua, ViroSVVKKPPNNNT
(asmens kodas,
isikukood)
S: Numero osoittaa sek� henkil�n sukupuolen ett� vuosiluvun kaksi ensimm�ist� numeroa
NorjaPPKKVVNNNTT
(f�dselsnummer)
NNN: Yksil�numero osoittaa my�s henkil�n sukupuolen ja yhdess� vuosiluvun kahden viimeisen numeron kanssa vuosiluvun kaksi ensimm�ist� numeroa
TT: Tarkisteita on kaksi
RuotsiVVKKPPSNNNT
(personnummer)
S: V�limerkki vaihdetaan kun henkil� t�ytt�� sata vuotta; v�limerkki� ei oteta huomioon tarkistetta laskettaessa
NNN: Yksil�numero osoittaa my�s sukupuolen
SuomiPPKKVVSNNNT
(henkil�tunnus)
S: Vuosiluvun kaksi ensimm�ist� numeroa osoittavaa v�limerkki� ei oteta huomioon tarkistetta laskettaessa
NNN: Yksil�numero osoittaa my�s sukupuolen
TanskaPPKKVV-SNNT
(CPR-nummer,
personnummer)
S: Yksil�numeron ensimm�inen numero yhdess� vuosiluvun kahden viimeisen numeron kanssa osoittaa vuosiluvun kaksi ensimm�ist� numeroa
T: Tarkiste osoittaa my�s sukupuolen; tammikuussa 2005 ilmoitettiin, ett� tulevaisuudessa viimenen numero ei en�� toimi tarkisteena

Joskus n�kee my�s mainintoja "tulossa olevasta EU-henkil�tunnuksesta", mutta sit� saatanee ainakin virallisesti odottaa viel� pitk��n, sill� kaikissa maissa ei ole Pohjoismaistyyppist� v�est�tietoj�rjestelm��, ja historiallisista syist� esim. Saksa hyvin luultavasti vastustaa t�llaista tunnusta kaikin keinoin. Portugalissa perustuslaki nimenomaan kielt�� yleisk�ytt�iset henkil�tunnukset. Tietysti on mahdollista, ett� vainoharhainen terroristijahti muuttaa ainakin hallitusten n�kemyksi�.

01.06.2004 otettiin ETA-maissa ja Sveitsiss� k�ytt��n Eurooppalainen sairaanhoitokortti (European Health Insurance Card, EHIC-kortti). Jos kortissa oleva numero on Euroopan laajuisesti yksil�iv� (kuten hyvin luultavasti on), se voi my�hemmin vaivihkaa levit� muuhun k�ytt��n, koska monissa maissa on n�hty ett� siihen t�llaisilla tunnuksilla on hyvin suuri potentiaali. Er��t yksityisyytt� puolustavat kansalaisj�rjest�t tuomitsivat kortin jyrk�sti jo ennen sen k�ytt��nottoa. Kortti on kuitenkin toistaiseksi vain harvoilla, koska sit� ei anneta pyyt�m�tt�. – My�hempi havainto: Numero ei pysy samana kortin vaihtuessa, mik� vaikeuttaa numeron k�ytt�� henkil�n yksil�intiin.

Esimerkiksi Yhdysvalloissa k�ytett�v� Social Security Number (SSN) ja Kanadassa k�ytett�v� Social Insurance Number (SIN) eiv�t vastaa Suomalaista henkil�tunnusta, koska niit� ei ole annettu kaikille kansalaisille.

Suomalaisen henkil�tunnuksen yksil�numerosta

Henkil�tunnusten yksil�numeroista liikkuu paljon v��ri� tietoja, joiden levitt�miseen syyllistyv�t joskus sellaisetkin henkil�t, jotka voisivat helposti p��st� k�siksi luotettaviin ensik�den tietoihin ennen kuin puhuvat l�pi� p��h�ns�. Yrit�n t�ss� oikoa er�it� vastaan tulleita virheit�, vaikkei asia varsinaisesti t�h�n dokumenttiin kuulukaan. Ne joita asia ei kiinnosta, voivat toki ohittaa t�m�n kappaleen.

Havaintoja k�yt�nn�st�

  • Havainnot perustuvat muodollisesti virheett�miin tunnuksiin, jotka eiv�t v�ltt�m�tt� ole aitoja. Hyvin luultavasti aineistossa esiintyy keksittyj� vuosi-yksil�numero -yhdistelmi� eli "kohinaa", joka on my�s yritetty sellaiseksi tulkita. Oletus kuitenkin on, ett� suuri enemmist� tunnuksista on aitoja. T�t� tukee se, ett� kun harvinaiset syntym�vuosi-yksil�numero -yhdistelm�t j�tet��n pois, j�ljelle j��v�t muodostavat loogisen kokonaisuuden, joka sopii hyvin yhteen muista l�hteist� saatujen tietojen kanssa.
  • Tiedot perustuvat yli 6000 henkil�tunnukseen, joka vastaa yli yht� promillea Suomen v�est�st�. Haastattelututkimuksessa t�m� olisi poikkeuksellisen laaja otanta.
  • Yksil�numeroita on tarkasteltu taulukoituina v�himmill��n 25 kappaleen nipuissa. Esitetyt rajat perustuvat t�h�n, eik� niit� pid� ymm�rt�� tarkoiksi.
  • 1800-luvulla syntyneist� on liian v�h�n havaintoja. Voidaan olettaa ett� k�yt�nn�t ovat soveltuvilta osin samoja kuin 1900-luvun alussa syntyneill�.
  • Suhteessa nuorempiin ik�luokkiin aineistossa on yll�tt�v�n paljon aivan 1900-luvun alussa syntyneit�, mutta yksil�numerot eiv�t viittaa siihen, ett� t�m� johtuisi sata vuotta nuoremmista, joiden v�limerkki on sy�tetty v��rin.
  • 1900..1948 syntyneille yksil�numeroita on jaettu alueilta 002..224 ja 450..649, mutta yl�rajat ovat huomattavasti pienemm�t jakson alussa.
  • 1949..1996 syntyneille numeroita on n�ht�v�sti jaettu pienimm�st� vapaasta numerosta eteenp�in, mutta n. vuodesta 1980 alkaen on ilmeist�, ett� pienimm�t numerot 002:sta l�htien on jo annettu sata vuotta aikaisemmin syntyneille. Hyvin luonnollisesti ilmi� vahvistuu ajan kuluessa, ja n�iss� ik�luokissa yksil�numeroiden yl�raja kasvaa v�hitellen 324:st� 399:��n. P�ivitt�inen vaihtelu n�ytt�� kuitenkin olevan suurta, ja pieni�kin numeroita esiintyy jakson loppuun saakka.
  • 1988..1996, erityisesti 1994..1996, aineistossa esiintyy suuria yksil�numeroita tavallista enemm�n, mutta hyvin hajanaisesti, ja 1995..1996 my�s kokonaism��r� on suurempi kuin edelt�vin� tai seuraavina vuosina. Mahdollisesti n�m� ovat 1800-luvun lopulla syntyneit�, joille on sy�tetty v��r� v�limerkki, mutta kyse voi my�s olla alaik�isist� tai nuorista t�ysi-ik�isist�, jotka yritt�v�t v��rent�� itselleen hiukan vanhempia tunnuksia. Yksil�numeroiden jakauma tukee molempia em. oletuksia, mutta voihan t�m� olla pelkk�� sattumaakin. Luokitellaan kohinaksi, koska on vaikeaa uskoa, ett� numeroita olisi oikeasti jaettu n�in sattumanvaraisesti, kun samaan aikaan pienempi� numeroita on k�ytetty tavanomaisen systemaattisesti.
  • Jakotavassa on tapahtunut muutos luultavasti 01.07.1997 — tuona vuonna syntyneille numeroita on selv�sti jaettu kahdelta alueelta, suunnilleen yht� paljon kummaltakin — mutta valitettavasti havaintoja on poikkeuksellisen v�h�n.
  • Vuodesta 1998 alkaen 500:aa pienempi� yksil�numeroita ei n�ht�v�sti ole jaettu. Vaikka t�llaista kohinaa esiintyy, se ei ole tavanomaista suurempaa. Numerot keskittyv�t alueelle 575..674, ja 774:�� suuremmat voidaan taas luokitella kohinaksi. T�ss�kin on ilmeist�, ett� numeroita 450:st� yl�sp�in on ajan my�t� kasvavassa m��rin jaettu sata vuotta aikaisemmin syntyneille, mutta pienenevien ik�luokkien vuoksi t�m� ei ainakaan viel� (lokakuussa 2017) n�y niin, ett� numeroiden yl�raja olisi nuorimmilla ik�luokilla noussut — tosin alle 7-vuotiaista on melko v�h�n havaintoja.
  • Jos j�tet��n tarkastelun ulkopuolelle 1800-luku ja organisaatiokohtaiset yksil�numerot 900..999, edell� kuvatun perusteella vain n. 35 %:a kaikista teoriassa mahdollisista vuosi-yksil�numero -yhdistelmist� on todella k�yt�ss�. Tarkempi tieto t�st� auttaisi v��renn�sten paljastamisessa.
Muita havaintoja

1900-luvulla numeroita on p��s��nt�isesti jaettu siten, ett� numerointi aloitetaan kunakin p�iv�n� 002:sta (tyt�t) tai 003:sta (pojat). Tunnuksia jakoi siis ensin El�keturvakeskus ja my�hemmin Kansanel�kelaitos, mutta 1964..1972 molemmat jakoivat tunnuksia samanaikaisesti. Jottei samaa tunnusta annettaisi kahdelle ihmiselle, ETK jakoi 1946 ja sit� ennen syntyneille numeroita v�lilt� 002..449 ja Kela v�lilt� 450..999. 1947 ja sen j�lkeen syntyneille Kela jakoi numeroita v�lilt� 002..549 ja ETK v�lilt� 550..999. (Tuo on siis se, miten asia kerrotaan, mutta n�it� isompia numeroita ETK jakoi n�ht�v�sti vain muutamana vuotena syntyneille, eik� alaraja v�ltt�m�tt� pid� paikkaansa.) Jotta mahdollisimman harvoille ihmisille tulisi useampia tunnuksia, laitokset vaihtoivat tietoja, mutta reaaliaikaisia j�rjestelmi� ei tuolloin ollut. Numeroita ei siis ole aina jaettu aukottomina sarjoina, kuten joskus luullaan. L�hde: Tietotekniikan alkuvuodet Suomessa, Suomen Atk-kustannus Oy, 1993, ISBN 951-762-182-5, ss. 189..204, Henkil�tunnus: Kansalaisen tunnistusongelman ratkaisu 1960-luvulla.

Aikalaismuistikuvana minulle on kerrottu, ett� Kela antoi tunnuksia aluksi vain niille, jotka joutuivat tekemisiin Kelan kanssa joko sosiaaliturvaan tai terveyshuollosta maksettaviin korvauksiin liittyen, ja vasta kun suurin osa ty�el�kkeiden piiriin kuulumattomista oli saanut tunnuksensa t�ll� tavalla, tunnukset jaettiin yhten� massaoperaationa kaikille, joilta sellainen viel� puuttui – tai yritettiin jakaa, ihan kaikkien kohdalla t�m� ei tietysti onnistunut, vaan yksitt�istapauksissa tunnuksia annettiin my�hemminkin. Tuo massaoperaatio tapahtui ehk� vasta kirjanpidon siirrytty� VRK:lle.

Yksil�numerot 000 ja 001 eiv�t ole k�yt�ss�. Syy t�h�n ei n�yt� en�� olevan edes V�est�rekisterikeskuksen ylitarkastajan tiedossa. Asia on p��tetty ETK:ssa, p��tt�j�t ovat j��neet el�kkeelle, monet jo kuolleetkin, eiv�tk� he ilmeisesti dokumentoineet perustelujaan. Oma arvaukseni on, ettei kenenk��n haluta olevan ykk�nen (eik� my�sk��n t�ysi nolla), aivan samoin kuin vaaleissa ei ole ehdokasta numero yksi. Numeroinnin alkaminen kakkosesta on kuitenkin kiistaton fakta.

Nykyisin numeroiden jakaminen ilmeisesti aloitetaan kunakin p�iv�n� 500:sta tai jostakin sit� suuremmasta numerosta. T�ss� kohdassa, kuten joissakin muissakin teksteiss�, on aikaisemmin annettu ymm�rt��, ett� muutos suurempiin numeroihin olisi tapahtunut 01.01.2000, mutta er��n henkil�rekisterin ja muun aineiston tutkiminen on johtanut p��telm��n, ett� muutos onkin tapahtunut jo 01.07.1997. Syy muutokseen voisi olla 01.07.1962 voimaan tullut Ty�ntekij�in el�kelaki (TEL, 395/1961), jonka nojalla pieni� yksil�numeroita alettiin jakaa 01.07.1897 ja my�hemmin syntyneille, jolloin sata vuotta my�hemmin olisi tullut tarve siirty� suurempiin numeroihin – tosin alun perin tunnuksia jaettiin vain poikkeustapauksissa ennen 01.07.1907 syntyneille, koska laki p��s��nt�isesti ei koskenut niit�, jotka olivat t�ytt�neet 55 vuotta lain tullessa voimaan.

Sadan vuoden v�lein syntyneille ei ole aikaisemmin annettu samoja yksil�numeroita, mutta joulukuusta 2023 alkaen on mahdollista antaa tunnuksia, jotka eroavat muista vain v�limerkin kohdalla. Toiselle henkil�lle ei kuitenkaan anneta tunnusta, joka on kerran jollekulle annettu, vaikka tunnus jostakin syyst� poistuisi k�yt�st� (mahdollisia syit� on useita).

Joskus tapaa v�itteit� joiden mukaan Suomessa asuville ulkomaalaisille ja er�ille muille ryhmille annettaisiin henkil�tunnuksia, joissa yksil�numerointi aloitetaan esim. 700:sta tai jostakin viel� suuremmasta luvusta. Er��n tuntemani alankomaalaisen vuonna 1998 annetussa suomalaisessa henkil�tunnuksessa yksil�numero on pienempi kuin 300. Er��n pakolaisena Suomeen tulleen ja my�hemmin Suomen kansalaisuuden saaneen irakilaisen henkil�tunnuksessa yksil�numero on pienempi kuin 200, ja tunnus on pysynyt samana alusta alkaen. Teoria ei siis ainakaan n�iss� tapauksissa ole oikea. Hiukan per�� t�llaisissa v�itteiss� silti on: Yksil�numerot 900..999 on varattu organisaatioiden sis�iseen k�ytt��n. Ainakin Helsingin ja Jyv�skyl�n yliopistot ovat antaneet t�llaisia tunnuksia ulkomaisille opiskelijoilleen ja/tai ty�ntekij�illeen, mutta n�m� eiv�t ole virallisia V�est�tietoj�rjestelm��n kirjattuja tunnuksia. Vastaavaa k�yt�nt�� harjoitetaan muissakin laitoksissa, kuten sairaaloissa, kun kyseess� on henkil� jolla ei ole aitoa suomalaista henkil�tunnusta, esim. ulkomaalaiset. K�yt�nt� on koskenut my�s vastasyntyneit�, mutta nykyisin kaikki sairaaloissa syntyv�t saavat heti pysyv�n henkil�tunnuksen. Ilmeinen tarkoitus on v�ltt�� p��llekk�isyytt� todellisten tunnusten kanssa ja tehd� n�m� laitosten sis�iset tunnukset helposti muista erottuviksi. Virallisissa henkil�tunnuksissa t�llainen erottelu antaisi varmasti joillekin tahoille aiheen valittaa syrjinn�st�, kuten Ruotsissa kerrotaan tapahtuneen. Onhan ihmisten jakamista eriarvoisiin ryhmiin ep�ilty jopa sill� perusteella, ett� jotkin henkil�tunnukset p��ttyv�t numeroon ja toiset kirjaimeen, vaikka t�m� asia m��r�ytyy t�ysin satunnaisesti. -->

Kuitenkin, joulukuusta 2023 alkaen uusia v�limerkkein� k�ytett�vi� kirjaimia jaetaan k�yt�nn�ss� vain maahanmuuttajille.

Kerrotaan ett� joillekin yksil�ille olisi annettu "v��r�n" sukupuolen henkil�tunnus, mutta V�est�tietoasetus velvoittaa maistraatit korjaamaan t�llaiset virheet viipym�tt�, joten kyseess� ei pit�isi olla pysyv� tilanne.

L�htein� on k�ytetty mm. Jere K�pyahon artikkelia Tarkista henkil�tunnus Pascalilla, Mikrobitti 1/2000, ss. 70..73, sek� saman kirjoittajan viesti� Internetin keskusteluryhm�ss� sfnet.atk.ohjelmointi 02.12.1999. Joitakin yksityiskohtia on tarkistettu tutkimalla n. 30 000 aitoa henkil�tunnusta.

S�hk�inen asiointitunnus (SATU)

V�est�rekisterikeskuksen (VRK) luonnolliselle henkil�lle antama S�hk�inen AsiointiTUnnus SATU on m��ritelty laissa 21.8.2009/661 ja asetuksessa 25.2.2010/128. Tunnus on julkinen ja sit� k�ytet��n – hyvin harvoin – s�hk�isen henkil�kortin (FINEID, Finnish Electronic ID Card) v�lityksell� henkil�n tunnistamiseen mm. Internetiss� erilaisia viranomaispalveluita k�ytett�ess�, ja se on samalla tavalla yksil�iv� kuin henkil�tunnus, mutta ei sis�ll� henkil��n liittyvi� tietoja, eli se on ns. "tyhm�" tunniste. SATU on keskeinen tekij� Henkil�n S�hk�isess� Tunnistamisessa (HST). Tunnuksessa on kahdeksan numeroa ja tarkiste, joka voi olla numero tai kirjain. Tarkiste lasketaan samalla periaatteella kuin henkil�tunnuksessa.

Esimerkki: 10011187H (aito, l�ydetty V�est�rekisterikeskuksen kotisivulta)

10011187 mod 31 = 16 → H

SATU on englanniksi FINUID (Finnish Unique Identification Number).

Kiinteist�tunnus

V�est�tietoasetus (886/1993 14�) m��r��, ett� kiinteist�tunnuksessa voidaan (mutta ei ole pakko) k�ytt�� tarkistusmerkki�, joka lasketaan samalla periaatteella kuin henkil�tunnuksessa. Julkisen hallinnon suositus (JHS) numero 101 sis�lt�� asiasta yksityiskohtaisemman kuvauksen, mutta t�m� suositus on korvattu JHS 138:lla, josta tarkiste vain mainitaan. Kiinteist�rekisteriasetuksessa (970/1996), jossa muuten m��ritell��n kiinteist�tunnuksen muoto, tarkistetta ei edes mainita. Koska V�est�tietoasetuksen ja JHS 101:n mukaisia tarkisteita kuitenkin n�kee joskus (harvoin) k�ytett�v�n, kuvaus on otettu t�h�n dokumenttiin.

Tunnus muodostuu nelj�st� osasta, jotka ovat (suluissa kyseisen osan pituus; kent�t etunollitetaan tarvittaessa):

  1. Kunta (3)
  2. Sijaintialue (3)
  3. Ryhm� (4)
  4. Yksikk� (4)
Kiinteist�tunnus esitet��n 14-numeroisena (+ tarkiste, joka voi olla my�s kirjain), esim. 42740300020017, tarkisteellisena 42740300020017D.

Tarkisteen laskeminen: Kiinteist�tunnus jaetaan 31:ll�. Jakoj��nn�s m��r�� tarkisteen kuten henkil�tunnuksessa. Esimerkki:

30100101130004 mod 31 = 21 → N

eli tarkisteellinen tunnus on 30100101130004N.

Yksi k�yt�nn�n ongelma on se, ett� 14-numeroisen luvun jakaminen voi tuottaa vaikeuksia joillekin ohjelmointikielille. Tarvittaessa katso Jakoj��nn�s ja kongruenssi, jossa kerrotaan my�s miten lasketaan jakoj��nn�s suuresta luvusta.

Tapiolan vakuutusnumero

Eri vakuutusyhti�ill� ei n�yt� olevan yhten�ist� k�yt�nt�� vakuutusnumeroiden (vakuutustunnusten) muodostamisessa. Havaituissa tapauksissa (12 kpl) Tapiolan vakuutusnumerot ovat muotoa 999-9999999-X, jossa "9" on numero ja "X" on tarkiste, joka lasketaan kuten Suomalaisessa henkil�tunnuksessa. Esimerkki: 353-3590353-K:
	3533590353 mod 31 = 18 → K
Muiden vakuutusyhti�iden mahdollisesti k�ytt�mi� tarkisteita en ole onnistunut selvitt�m��n.

ISBN- ja ISSN-numero

Tuotekoodin muodostamiseen ISBN- tai ISSN-numerosta on olemassa standardimenettely. ISBN- tai ISSN-numero on my�s osa BICI tai SICI -tunnistetta.

Samaa tarkistusta sovelletaan hiukan muunnellen moottoriajoneuvon sarjanumeroon sek� kemikaalin indeksi- ja EINECS-numeroon.

ISMN, ISWC, ISAN ja ISTC ovat rinnakkaisia j�rjestelmi�, mutta niiden tarkisteet lasketaan eri tavoilla.

ISBN-numero

ISBN-numeron tarkistusohjelma

T�ss� kuvattu ISBN-j�rjestelm� (ISO-standardi 2108) otettiin k�ytt��n vuonna 1972. 01.01.2007 se korvattiin uudella ISBN-13:lla, ja samalla tarkisteen laskentatapa vaihtui. Vanhan j�rjestelm�n kuvaus s�ilytet��n kuitenkin t�ss� dokumentissa, koska sen mukaisia koodeja on miljardeissa julkaisuissa, ja tulee olemaan pitk�lle tulevaisuuteen. Erotukseksi uudesta vanha j�rjestelm� tunnetaan nykyisin my�s nimell� ISBN-10.

ISBN = International Standard Book Number. T�llainen numero l�ytyy useimpien kirjojen takakannesta, mutta sen voi l�yt�� muistakin julkaisuista, kuten kartoista ja CD-ROM:eista. Numero muodostuu yhdeks�st� numerosta ja tarkistemerkist�, joka voi olla numero tai X-kirjain. ISBN-numero voidaan jakaa (standardin mukaan v�liviivoilla, mutta k�yt�nn�ss� joskus v�lily�nneill� tai pisteill�) nelj�ksi ryhm�ksi: Maa tai kielialue, kustantaja, nimike ja tarkistemerkki. Viimeisen� oleva tarkistemerkki on aina omana ryhm�n��n, mutta muuten ryhmien koot eiv�t ole kiinte�t, vaikka numeroiden kokonaism��r� on vakio. Kenttien mahdolliset etunollat ovat merkitsevi�, eli niit� ei saa j�tt�� pois. Tarkistemerkin laskennassa otetaan huomioon vain numerot, joten ryhmittely ei siihen vaikuta. Tarkistusmenetelm� tunnetaan nimell� Moduli 11, mutta samalla nimell� viitataan muihinkin menetelmiin, joissa lukua 11 k�ytet��n jakajana. ISBN-numeroiden tapauksessa menetelm�st� on kaksi versiota, jotka kuitenkin tuottavat saman tarkisteen.

Laskentatavasta riippumatta t�m�n menetelm�n virheenpaljastuskyky� pidet��n varsin hyv�n�.

Laskentatapa 1

Numeroita painotetaan kertoimilla, jotka ovat samat kuin numeroiden positiot 1..9 vasemmalta oikealle. Tulot lasketaan yhteen ja summa jaetaan 11:ll�. Jos jakoj��nn�s on 0..9, se on tarkistusmerkki. Jos jakoj��nn�s on 10, tarkistusmerkki on X (= 10 roomalaisilla numeroilla).

Esimerkki 1: 0-14-007621-2 (Isaac Asimov, Asimov's New Guide to Science, Penguin Books 1987)

	0  1  4  0  0  7  6  2  1  2
	1  2  3  4  5  6  7  8  9
	0  2 12  0  0 42 42 16  9  = 123 ≡ 2 (mod 11)
Esimerkki 2: 951-0-20711-X (Petteri J�rvinen, Windows 95 K�ytt�j�n k�sikirja, WSOY 1995)
	9  5  1  0  2  0  7  1  1  X
	1  2  3  4  5  6  7  8  9
	9 10  3  0 10  0 49  8  9  = 98 ≡ 10 (mod 11) → X

Laskentatapa 2

T�m� on se tapa joka kuvataan useimmissa l�hteiss�, mutta yleens� esitet��n vain miten numero tarkistetaan (mihin menetelm� paremmin soveltuukin), ei sit� miten tarkiste muodostetaan. Numeroita painotetaan kertoimilla 10..2 vasemmalta oikealle ja tulot lasketaan yhteen. Tarkiste on luku, joka summaan on lis�tt�v�, jotta tulos olisi tasan jaollinen 11:ll�. Jos lis�tt�v� luku on 10, tarkiste on X.

Esimerkki 1: 0-14-007621-2

	 0  1  4  0  0  7  6  2  1  2
	10  9  8  7  6  5  4  3  2
	 0  9 32  0  0 35 24  6  2  = 108 ≡ 9 (mod 11)
	                              11 - 9 = 2
Esimerkki 2: 951-0-20711-X
	 9  5  1  0  2  0  7  1  1  X
	10  9  8  7  6  5  4  3  2
	90 45  8  0 12  0 28  3  2  = 188 ≡ 1 (mod 11)
	                              11 - 1 = 10 → X
Eri menetelmien sopiminen samaan numerosarjaan perustuu siihen, ett� saman numeron painotuksesta eri laskentatavoissa saatavat tulot – kuten kertoimetkin – ovat toistensa vastalukuja modulo 11 -j�rjestelm�ss�. Kerroin 123:lla on my�s kaksi laskentatapaa, joiden suhde toisiinsa on hyvin samanlainen kuin t�ss�.

ISSN-numero

ISSN-numeron tarkistusohjelma

ISSN = International Standard Serial Number. T�llainen numero l�ytyy – ei aina kovin helposti – monista lehdist� ja muista julkaisusarjoista, joiden tunnisteina niit� k�ytt�v�t mm. kirjastot. ISSN-numero on yleens� sama kaikilla saman lehden numeroilla. Numero muodostuu kahdesta nelj�n merkin ryhm�st�, jotka on erotettu v�liviivalla. Viimeinen merkki on tarkistusmerkki, ja se voi olla numero tai X-kirjain. Muut merkit ovat numeroita. Toisin kuin ISBN- tai ISBN-13 -j�rjestelm�ss�, numeroilla ei ole erityisi� merkityksi�.

Tarkistusmerkin laskentamenetelm� on muuten sama kuin ISBN-numeroilla, mutta koska numerosarja on lyhyempi, alusta j�tet��n kaksi kerrointa pois, eli kertoimet ovat vasemmalta oikealle 3..9 tai 8..2. Molempia ISBN-numeroissa k�ytett�vi� laskentatapoja voidaan siis soveltaa.

Esimerkki 1: 0888-8507 (PC Magazine)

	0  8  8  8  8  5  0  7
	3  4  5  6  7  8  9
	0 32 40 48 56 40  0  = 216 ≡ 7 (mod 11)
Esimerkki 2: 0357-4121 (Prosessori)
	0  3  5  7  4  1  2  1
	8  7  6  5  4  3  2
	0 21 30 35 16  3  4  = 109 ≡ 10 (mod 11)
	                       11 - 10 = 1
Suomalaisissa lehdiss� on usein my�s Jakelukoodi. Joissakin julkaisuissa on ISSN-numeron lis�ksi ISBN- tai ISBN-13 -numero. S�hk�isten julkaisujen yhteydess� voi esiinty� nimitys e-ISSN, mutta sen muoto ei n�yt� poikkeavan tavanomaisesta.

ISSN-numeroiden jakamisesta

ISSN-numeron pit�isi siis olla pelkk� "tyhm�" tunniste, jonka osilla ei ole itsen�ist� merkityst�. Eri maille jaetaan kuitenkin ISSN-numeroiden alkuosia viiden tai (harvoin) kymmenen kappaleen lohkoina. Kussakin j�rjestelm��n kuuluvassa maassa on kansallinen elin, joka jakaa numeroita julkaisuille, ja kukin maa on saanut k�ytt��ns� yhden tai useampia numerolohkoja. Er�it� muitakin kansainv�lisi� tunnisteita jaetaan samalla periaatteella. On kuitenkin syyt� varoa liian pitk�lle menevien johtop��t�sten tekemist� "tyhmien" tunnisteiden perusteella.

Moottoriajoneuvon sarjanumero

Moottoriajoneuvon sarjanumero (Vehicle Identification Number, VIN) on kansainv�lisesti m��ritelty standardissa ISO 3779. T�m�n 17 kirjaimesta ja numerosta muodostuvan merkkijonon voi l�yt�� esim. rekisteriotteesta, ja tietysti se on merkitty my�s itse ajoneuvoon moneen paikkaan, joista yksi on usein kojelauta siten, ett� numero on luettavissa ulkopuolelta tuulilasin l�pi (edest� katsottaessa tuulilasin oikeassa alanurkassa eli yleens� ohjaajan puolella). Yhdysvalloissa ja Kanadassa aina, ja muualla mahdollisesti, sarjanumerossa on tarkistusmerkki positiossa 9. Laskenta on kirjainten k�sittely� lukuun ottamatta kuin yhdistelm� ISBN-numeron tarkisteen eri laskentatavoista:
  1. Sarjanumeroon sis�ltyv�t kirjaimet korvataan numeroilla taulukon mukaisesti. Kirjaimia I, O ja Q ei k�ytet�; numerointiin on j�tetty aukot vastaaviin kohtiin.
    A 1B 2C 3D 4E 5F 6G 7 H 8 
    J 1K 2L 3M 4N 5 P 7  R 9
     S 2T 3U 4V 5W 6X 7 Y 8Z 9
  2. Kutakin tarkistettavaa numeroa tai kirjaimen numeroarvoa painotetaan position mukaan; positiolle 9 ei ole kerrointa, koska siin� on tarkistusmerkki (nollaa voi tarvittaessa k�ytt�� kertoimena):
    Positio12345678 1011121314151617
    Kerroin876543210 98765432
  3. Tulot lasketaan yhteen ja summa jaetaan 11:ll�. Jakoj��nn�s on tarkistusmerkki. Jos jakoj��nn�s on 10, tarkistusmerkki on X.
Esimerkki: 1HGCB7569MA202978
                                                      Kirjaimet
1  H  G  C  B  7  5  6  9  M  A  2  0  2  9  7  8     korvattu
   8  7  3  2              4  1                     ← numeroilla
8  7  6  5  4  3  2 10     9  8  7  6  5  4  3  2
8 56 42 15  8 21 10 60    36  8 14  0 10 36 21 16 = 361 ≡ 9 (mod 11)
Sarjanumero kertoo ainakin valmistusmaan, merkin, mallin ja yksil�numeron, Pohjois-Amerikassa sarjanumerot ovat tarkemmin m��riteltyj� kuin kansainv�lisess� standardissa, mutta yhteensopivia standardin kanssa. Ne osoittavat my�s tehtaan ja valmistusvuoden (yksil�n todellinen tai mallin ensimm�inen valmistusvuosi; sama tunnus toistuu 30 vuoden v�lein). Mallitiedot ovat valmistajakohtaisia. Nykyinen j�rjestelm� tuli k�ytt��n 1981; sit� vanhemmat sarjanumerot ovat valmistajakohtaisia.

Painokertoimien summa 89 ≡ 1 (mod 11), josta seuraa ett� numerosarja jossa on 17 ykk�st� l�p�isee tarkistuksen, joten se sopii ensimm�iseksi testitapaukseksi, jos tehd��n ohjelmaa sarjanumeroiden tarkistusta varten.

Em. esimerkkitapaus on havaittu Jyv�skyl�ss� Matarankadulla n. vuonna 1998. Internetist� l�ytyv� CarFax-palvelu osaa pelk�n sarjanumeron perusteella kertoa autosta seuraavaa:

Year/Make/Model:1991 HONDA ACCORD EX/EXR
Body Style:Sedan 4 DR
Engine Type:2.2L L4 SOHC PFI 16V
Manufactured In:UNITED STATES
(4-ovinen Sedan, 2,2 litran 4-sylinterinen 16-venttiilinen rivimoottori jossa yksi yl�puolinen nokka-akseli ja polttoaineen suorasuihkutus. Jostakin syyst� ei mainita tehdasta, joka sarjanumeron perusteella sijaitsee Ohiossa.)

Kemikaalin indeksi- ja EINECS-numero

Kemikaaleille on useita kansainv�lisi� tunnistej�rjestelmi�: Indeksinumero, EINECS-numero (ml. ELINCS- ja NLP-numero) ja CAS-numero. N�iden lis�ksi on olemassa ainakin YK/UN-numero, RTECS-numero (Registry of Toxic Effects of Chemical Substances) ja ICSC-numero (International Chemical Safety Card) joissa ei n�yt� olevan tarkisteita. Huom! Tunnisteiden nimiss� on sekavuutta; sen lis�ksi ett� samalla tunnisteella voi olla useita nimi�, samaa nime� k�ytet��n joskus eri tunnisteista. Esimerkiksi Indeksinumero tunnetaan my�s nimell� EU-numero, mutta jotkut k�ytt�v�t t�t� nime� EINECS/ELINCS/NLP-numeroista, joten sekaannuksia voi tapahtua helposti. Jos et l�yd� etsim��si tietyll� nimell�, katso muista kemikaalien tunnisteita k�sittelevist� kappaleista.

Koska kemikaalit luokitellaan eri tunnistej�rjestelmiss� eri perusteilla, on tavallista ett� erilaisissa luetteloissa ja kuvauksissa annetaan jokaisesta aineesta v�hint��n kolmen eri j�rjestelm�n mukaiset koodit; joskus vain niiden yhdistelm� on t�ysin yksil�iv�.

Kemikaalin indeksinumero

Kemikaalin indeksinumero on muotoa AAA-BBB-CC-T, jossa AAA on joko t�rkeimm�n alkuaineen j�rjestysnumero alkuaineiden jaksollisessa j�rjestelm�ss� (001:st� teoriassa v�h�n yli sataan, mutta k�yt�nn�ss� transuraaneihin perustuvat kemikaalit lienev�t harvinaisia) tai orgaanisen aineen ryhm�numero (AAA >= 601), BBB on juokseva numero, CC osoittaa aineen olomuodon ja T on tarkiste, joka lasketaan soveltamalla ISBN-numeron tarkistusmenetelm��. Esimerkkej�: Ammoniakki 007-001-00-5 (007 = typpi) ja suolahappo 017-002-01-X (017 = kloori):
	 0  0  7 - 0  0  1 - 0  0 - 5
	 1  2  3   4  5  6   7  8
	 0  0 21   0  0  6   0  0   = 27 ≡ 5 (mod 11)
	 0  1  7 - 0  0  2 - 0  1 - X
	10  9  8   7  6  5   4  3
	 0  9 56   0  0 10   0  3   = 78 ≡ 1 (mod 11)
	                              11 - 1 = 10 → X
(ammoniakki NH3 + suolahappo HCl → ammoniumkloridi NH4Cl = salmiakki)

Tutkittujen esimerkkien perusteella n�ytt�� silt�, ett� aineen olomuodolla ei niink��n tarkoiteta kiinte��, nestem�ist� tai kaasua, vaan paremminkin onko aine puhdasta, vai onko kyseess� esim. kemikaalin vesiliuos.

Kemikaalin EINECS-numero

T�ss� tarkastellaan kolmea tunnistej�rjestelm��, jotka ovat l�heist� sukua toisilleen:
  • EINECS = European Inventory of Existing Commercial Chemical Substances = Euroopassa kaupallisessa k�yt�ss� 01.01.1971 .. 18.09.1981 olleiden kemikaalien luettelo (100 196 kemikaalia).
  • ELINCS = European List of Notified Chemical Substances = Euroopassa 19.09.1981 alkaen ilmoitettujen kemikaalien luettelo.
  • NLP = No longer polymers = Ei en�� polymeereja. N�m� ovat aineita, jotka on 31.10.1993 saakka luokiteltu polymeereiksi, ja joita ei sen vuoksi tarvinnut merkit� luetteloon, mutta joiden luokitusta on my�hemmin muutettu, jolloin niille perustettiin oma luettelo.
Tunnisteen muoto on luettelosta riippumatta sama: AAA-BBB-T, jossa T on tarkiste (v�liviivoja ei aina k�ytet�). Luettelot erottuvat toisistaan k�ytt�m�ll� eri osia samasta koodiavaruudesta: EINECS-numerossa AAA on 200..310, ELINCS-numerossa AAA >= 400 ja NLP-numerossa AAA >= 500. Tarkiste lasketaan soveltamalla ISBN-numeron tarkistusmenetelm�� l�hes samalla tavalla kuin indeksinumerossa. Esimerkkej�: Ammoniakki 231-635-3 ja suolahappo 231-595-7:
	 2  3  1 - 6  3  5 - 3
	 1  2  3   4  5  6
	 2  6  3  24 15 30   = 80 ≡ 3 (mod 11)
	 2  3  1 - 5  9  5 - 7
	10  9  8   7  6  5
	20 27  8  35 54 25   = 169 ≡ 4 (mod 11)
	                       11 - 4 = 7
Tunnisteet muodostetaan siten, ett� tarkiste on aina v�lill� 0..9, eli indeksinumerosta poiketen arvoa X ei koskaan tarvita. Huom. 1! Tieto tarkisteen laskennasta ei perustu mihink��n julkaistuun dokumenttiin, vaan yli tuhannen aidon EINECS-numeron ja l�hes 700 aidon NLP-numeron analysointiin. ELINCS-numeroita on l�ydetty tutkittaviksi vain muutama. (My�hemmin on julkaistu dokumentti, joka vahvistaa t�ss� annetut tiedot.) Huom. 2! Useat l�hteet antavat naledi-nimiselle aineelle (englanniksi naled) v��r�n EINECS-numeron 206-098-6, mutta my�s oikea numero 206-098-3 l�ytyy monesta paikasta. Huom. 3! Virallisessakin luettelossa tarkisteena voi olla pieni l-kirjain jos oikea tarkiste on ykk�nen. En oikein osaa kuvitella t�llaisen virheen syntyv�n muuten kuin OCR-ohjelmassa.

EINECS-numerosta k�ytet��n my�s (luultavasti vanhentuneita) nimi� EEC-numero, ETY-numero ja EY-numero. Wikipedian mukaan my�s EINECS, ELINCS ja NLP ovat vanhentuneita, ja niiden sijasta pit�isi k�ytt�� nime� EC-numero tai EC# (European Commission). T�t� EC-numeroa ei pid� sekoittaa toiseen samannimiseen j�rjestelm��n, jonka on m��ritellyt kansainv�linen elin nimelt� Enzyme Commission (EC), ja jota k�ytet��n entsyymien (katalyyttien) yksil�intiin. N�iden numeroiden muoto on erilainen eik� niiss� ole tarkistetta. Sekaannusten v�hent�miseksi aion ainakin toistaiseksi pit�� otsikoinnin nykyisess� muodossaan.


Y-tunnus muunnelmineen

Y-tunnuksen muunnelmia ovat ALV-numero, EORI-numero ja OVT-tunnus.

Y-tunnus

Y-tunnuksen tarkistusohjelma

Yritys- ja yhteis�tunnus. Y-tunnuksella on 01.04.2001 alkaen korvattu Kaupparekisterinumero, S��ti�rekisterinumero ja LY-tunnus (Liike- ja yhteis�tunnus), jonka kanssa Y-tunnus on rakenteeltaan identtinen (laki 244/2001, asetus 288/2001). Y-tunnuksen antaa joko Verohallitus (VH) tai Patentti- ja rekisterihallitus (PRH), kun yritys tai yhteis� merkit��n Yritys- ja yhteis�tietoj�rjestelm��n (YTJ). Vanhat LY-tunnukset kelpaavat sellaisenaan Y-tunnuksiksi. Y-tunnus on englanniksi Business ID, kun taas Yritys- ja yhteis�tunnus on Business Identity Code. Tunnuksen voi usein l�yt�� esim. laskusta tai kirjelomakkeesta. Tarkisteen laskenta on m��ritelty em. asetuksessa.

Tunnus on muotoa NNNNNNN-T.

  1. Tunnuksen numeroita (7 kpl, tarvittaessa lis�t��n alkuun nolla; numeroita oli aikaisemmin kuusi, ja t�t� vanhaa muotoa voi hyvin harvoin n�hd� viel�kin) painotetaan vasemmalta l�htien kertoimilla 7, 9, 10, 5, 8, 4 ja 2.
  2. Tulot lasketaan yhteen.
  3. Summa jaetaan 11:ll�.
  4. Jos jakoj��nn�s on 0, tarkistusnumero on 0.
    Ei anneta tunnuksia, jotka tuottaisivat jakoj��nn�ksen 1.
    Jos jakoj��nn�s on 2..10, tarkistusnumero on 11 miinus jakoj��nn�s.
Esimerkki 1: 1572860-0
	1  5  7  2  8  6  0  - 0
	7  9 10  5  8  4  2
	7 45 70 10 64 24  0  = 220 ≡ 0 (mod 11) → 0
Esimerkki 2: 0737546-2
	0  7  3  7  5  4  6  - 2
	7  9 10  5  8  4  2
	0 63 30 35 40 16 12  = 196 ≡ 9 (mod 11) → 2
Kertoimista on lis�tietoja standardiin ISO 7064 sis�ltyv�n menetelm�n Mod 11-2 kuvauksessa.

Kuten Y-tunnus, my�s rikosrekisterinumero muodostuu seitsem�st� merkist�, v�liviivasta ja tarkistusnumerosta, mutta muuten sis�ll�st� tai tarkisteen laskentatavasta ei ole mit��n tietoa. Esimerkkej� kaivataan.

ALV-numero

Suomalaisen ALV-numeron tarkistusohjelma

ALV-numeroa tarvitaan Euroopan Unionin j�senmaiden v�lisess� kaupassa. Y-tunnuksesta saadaan ALV-numero lis��m�ll� alkuun kirjaimet FI ja j�tt�m�ll� v�liviiva pois. Esim. 0174592-8 → FI01745928. Suomalaiselle ALV-numerolle voidaan siis tehd� sama tarkistus kuin Y-tunnukselle. ALV-numerosta voidaan my�s muodostaa Y-tunnus.

EU:n s��nt�jen mukaan ALV-numerossa on kaksikirjaiminen maatunnus ja enint��n kaksitoista muuta merkki�, jotka voivat olla numeroita, kirjaimia tai joissakin tapauksissa "+" tai "*". Maatunnus on useimmiten standardin ISO 3166-1 mukainen, mutta ainakin Kreikan kohdalla k�ytet��n poikkeavaa tunnusta EL (standardissa GR). Tarkistusmenetelm� on maakohtainen; esim. useimmissa englantilaisissa VAT-numeroissa on kaksinumeroinen tarkiste (modulo 97). Valitettavasti laajin l�yt�m�ni yhteenveto eri maiden menetelmist� on saksankielinen, joten en osaa lukea sit� kovin hyvin (dokumentista on my�s englanninkielinen k��nn�s, mutta sen tekij� on ilmeisesti puolalainen, eik� tulos ole sen helpommin luettava kuin alkuper�inen). Lis�ksi aitojen esimerkkien puute tekee useimpien kohtien tarkistamisen mahdottomaksi, eik� dokumentissa ole tietoja kaikista nykyisist� j�senmaista. Kaikissa dokumentoiduissa tapauksissa jokin tarkistus on kuitenkin k�yt�ss�. Hiukan ihmettelen sit�, ettei tarkistukseen ole kehitetty IBAN:in kaltaista yhten�ist� menettely�. Euroopan komissio jopa nimenimaan kielt�ytyy kertomasta tarkistusmenetelmi�. EU:lla on kuitenkin ilmainen nettipalvelu, josta voi tarkistaa mille taholle jokin numero on rekister�ity, jolloin sen muotokin tulee tarkistetuksi.

ALV = arvonlis�vero = Value Added Tax = VAT. ALV-numero = ALV-tunniste = ALV-tunnus = VAT-numero = VAT-tunnus.

Osoitteesta http://www.braemoor.co.uk/software/vat.shtml l�ytyy JavaScript-ohjelmapaketti, jolla voidaan tarkistaa useiden maiden VAT-numeroita.

Niille lukuisille henkil�ille, jotka etsiv�t tietoja yhdysvaltalaisista VAT-numeroista: VAT on eurooppalainen (ranskalainen) keksint�. Yhdysvalloissa vain Michiganin osavaltiolla on ollut arvonlis�veroa muistuttava k�yt�nt�, ja siit�kin luovuttiin vuoden 2008 lopussa. Ei siis ole luultavaa ett� VAT-numeroitakaan olisi maanlaajuisesti k�yt�ss�, mutta jotkin yhdysvaltalaiset yritykset saattavat ilmoittaa eurooppalaisen VAT-numeron, jos niill� on sellainen – t�ll�in kyseess� on tavallisesti yritys, jolla on asiakkaita EU:n alueella. ALV:n sijasta Yhdysvalloissa perit��n myyntiveroa (sales tax), joka on osavaltiokohtainen (ei kaikissa osavaltioissa). T�t� varten yrityksill� on Sales Tax Number (jos on). Liittovaltion tasolla yrityksill� ja yhteis�ill� on verottajan (IRS, Internal Revenue Service) antama tunnus, josta k�ytet��n mm. seuraavia nimi�:

  • Federal Taxpayer Identification Number
  • Federal Tax Identification Number (FTIN)
  • Federal Identification Number (FIN)
  • Taxpayer Identification Number (TIN)
  • Employer Identification Number (EIN)
  • Federal Employer Identification Number (FEIN)
Tunnuksen muoto on tavallisesti 99-9999999.

EORI-numero

Suomalaisen EORI-numeron tarkistusohjelma

EORI-numero (Economic Operator Registration and Identification number, taloudellisen toimijan rekister�inti- ja tunnistenumero) on EU:n m��rittelem� tunniste, jota k�ytet��n erin�isiss� Tullille annettavissa ilmoituksissa. Suomalaiset toimijat saavat EORI-numeron Suomen tullilta, ja k�ytt�v�t samaa numeroa kaikissa EU-maissa. Tunnistetta on voitu k�ytt�� 01.07.2009 alkaen, ja 01.07.2010 alkaen sen k�ytt� on pakollista.

Suomalainen EORI-numero muodostetaan tavallisesti lis��m�ll� Y-tunnuksen eteen Suomen ISO 3166-1 -maatunnus FI. Esimerkkej�:

	0763403-0 → FI0763403-0
	2229125-9 → FI2229125-9
EORI-numero on siis l�hes identtinen ALV-numeron kanssa, mutta s�ilytt�� Y-tunnuksen v�liviivan. Tarkiste tietysti lasketaan kuten Y-tunnuksessa. – Vaikka tunnisteen muodostaminen n�ytt�� niin yksinkertaiselta, ett� sen voisi tehd� itsekin, sit� voi k�ytt�� vasta kun Tulli on sen rekister�inyt.

Yll�oleva perustuu Suomen tullin julkaisemiin tietoihin. EU:n julkaisemien dokumenttien mukaan EORI-numerossa on kaksikirjaiminen maatunnus ja maakohtaisesti yksil�iv� enint��n 15-merkkinen alfanumeerinen tunnus. T�ss� on ristiriita, koska Y-tunnuksen v�liviiva ei ole alfanumeerinen merkki. Kuitenkin EU:n yll�pit�m� nettipalvelu, josta EORI-numeroita voi tarkistaa, hyv�ksyy suomalaiset EORI:t v�liviivan kanssa, mutta ei ilman sit�. Yll�olevat esimerkit l�p�isev�t tarkistuksen (maaliskuussa 2012).

OVT-tunnus

Suomalaisen OVT-tunnuksen tarkistusohjelma

Organisaatioiden V�lisess� Tiedonsiirrossa k�ytett�v� OVT-tunnus, englanniksi Party Identification (sananmukaisesti osapuolitunniste), voidaan muodostaa Y-tunnuksesta. OVT-tunnuksessa on 12..17 numeroa ja sen tavanomainen muoto on 0037AAAAAAAABBBBB jossa:

  • 0037 on ISO-standardin 6523 mukainen Suomen verohallinnon koodi (International Code Designator, ICD)
  • AAAAAAAA on Y-tunnus tarkisteineen mutta ilman v�liviivaa
  • BBBBB on organisaation osan tunnus, esim. kustannuspaikka; ei pakollinen, numeerinen, enint��n viisi numeroa, tasataan kent�n vasempaan reunaan.
Nykyisin OVT-tunnusten t�rkein k�ytt�alue on verkkolaskutus, jossa tunnusta k�ytet��n osoitteena. Aikaisemmin niit� k�ytettiin paljon EDI-sanomien osoitteina (Electronic Data Interchange). OVT on EDI:n suomenkielinen vastine. Pitemm�ss� muodossa EDIFACT (Electronic Data Interchange for Administration, Commerce and Transport). OVT-tunnus on m��ritelty Suomen standardisoimisliiton standardissa SFS 5748, jonka kehitt�j�ksi on merkitty Suomen tiedonsiirtoyhdistys / Tietotekniikan kehitt�miskeskus. L�hteet: Mm. em. standardi ja julkisen hallinnon suositukset (JHS) 111 ja 141.

Minulle on kerrottu, ett� verkkolaskutuksessa organisaation osan tunnuksessa k�ytet��n yleisesti kirjaimia, mik� on vastoin standardia. Tuatara-ohjelmapakettini ker��m�t tilastotiedot antavat v�itteille jonkin verran tukea. Uskon, ett� standardinvastaisten tunnusten k�ytt��n on ainakin kolme syyt�:

  • Vaikka OVT-tunnuksen muoto on standardoitu, mik��n taho ei jaa tunnuksia keskitetysti, vaan organisaatiot muodostavat tunnuksensa itse. Kukaan ei siis valvo, ett� standardia noudatetaan.
  • Standardi ei ole vapaasti saatavilla, vaan siit� pit�isi maksaa (minulla on yliopiston kirjaston 07.12.1992 p�iv�tyst� vapaakappaleesta omaan k�ytt��n otettu valokopio). Hinta ei ole niin suuri, ett� se mink��n firman tms. rahoissa tuntuisi, mutta pienikin summa luo helposti byrokraattisen esteen, jonka vuoksi standardi ei p��dy sit� tarvitsevien k�ytt��n.
  • Jotkin tahot levitt�v�t v��r�� tietoa standardin sis�ll�st�.
Standardit ovat suosituksia, joten niiden noudattamiseen ei ole juridista pakkoa, mutta ket��n ei my�sk��n voida velvoittaa hyv�ksym��n tunnisteita, joiden muoto ei vastaa ao. standardia. Tuatara-ohjelmapakettini ei hyv�ksy ep�standardeja OVT-tunnuksia.

Joskus OVT-tunnuksia n�kee vaihtelevin tavoin v�lily�nneill� ryhmiteltyin�, oletettavasti luettavuuden parantamiseksi. Standardi ei ryhmittely� eksplisiittisesti salli eik� kiell�, muttei sit� my�sk��n miss��n kohdassa k�yt�. Minusta t�m� voidaan tulkita implisiittiseksi kielloksi – t�llaisia asioita ei standardeissa yleens�k��n ole tapana mainita, ellei ryhmittely� erikseen sallita; jos sallitaan, siit� my�s annetaan ohjeet.

(Koska OVT-tunnuksessa ei Y-tunnuksen tarkisteen lis�ksi ole erillist� tarkistetta, kuvaus t�ss� laajuudessa ei oikeastaan kuulu t�m�n dokumentin aihepiiriin, mutta kuvausta on t�ydennetty, koska tilastointi osoittaa ett� hakukoneiden kautta sit� etsit��n t��lt� aika usein.)


Moduli 11

T�ss� kappaleessa kuvataan useita menetelmi�, joissa k�ytet��n eri painokertoimia, mutta jakaja on kaikissa sama, ja jakoj��nn�ksen k�sittelyss� on selv�� yht�l�isyytt�. Kaikkien menetelmien virheenpaljastuskyky on my�s samaa hyv�� tasoa, mutta kahta tarkistetta k�ytt�v� norjalainen henkil�tunnus on sovelluksena poikkeuksellisen toimintavarma – tavalliset virheet havaitaan aina, ja muut hyvin suurella todenn�k�isyydell�, jopa kaikki kahden numeron virheet havaitaan yht� erikoistapausta lukuun ottamatta.

Norjalainen henkil�tunnus

Seuraavat tiedot perustuvat enimm�kseen norjankieliseen Wikipediaan. Varoitus! En osaa norjaa, enk� ole l�yt�nyt yht��n aitoa norjalaista henkil�tunnsta johon n�it� tietoja voisi verrata. Virheet ovat mahdollisia.

1964 k�ytt��n otettu norjalainen henkil�tunnus f�dselsnummer (usein personnummer, vaikka t�m� nimi tarkkaan ottaen tarkoittaa vain tunnuksen viitt� viimeist� numeroa) muodostuu yhdest�toista numerosta PPKKVVNNNTT seuraavasti:

  • PPKKVV: Syntym�aika, p�iv�, kuukausi ja vuosiluvun kaksi viimeist� numeroa
  • NNN: Yksil�numero, miehill� pariton, naisilla parillinen
  • TT: Kaksi tarkistetta
1. tarkisteen laskenta: Tunnuksen yhdeks�� ensimm�ist� numeroa painotetaan vasemmalta oikealle kertoimilla 3, 7, 6, 1, 8, 9, 4, 5 ja 2. Tulot lasketaan yhteen. Tarkiste on numero joka summaan on lis�tt�v�, jotta tulos olisi tasan jaollinen 11:ll�.

2. tarkisteen laskenta: Tunnuksen kymment� ensimm�ist� numeroa painotetaan vasemmalta oikealle kertoimilla 5, 4, 3, 2, 7, 6, 5, 4, 3 ja 2. Tulot lasketaan yhteen. Tarkiste on numero joka summaan on lis�tt�v�, jotta tulos olisi tasan jaollinen 11:ll�. Ensimm�inen tarkiste otetaan siis mukaan toisen tarkisteen laskentaan.

S��nt�jen mukaan lis�tt�v� arvo voisi olla 10, mutta t�llaisia tunnuksia ei anneta, joten kumpikin tarkiste on aina yksinumeroinen. Hihasta ravistettu esimerkki: 09128517526

	0  9  1  2  8  5  1  7  5  2  6
	3  7  6  1  8  9  4  5  2
	0 63  6  2 64 45  4 35 10  = 229 ≡ 9 (mod 11) → 2
	0  9  1  2  8  5  1  7  5  2  6
	5  4  3  2  7  6  5  4  3  2
	0 36  3  4 56 30  5 28 15  4  = 181 ≡ 5 (mod 11) → 6
Syntym�vuoden kaksi ensimm�ist� numeroa ovat p��telt�viss� kahden viimeisen numeron ja yksil�numeron yhdistelm�st�:
  • Vanhat s��nn�t, vuoteen 1999 saakka:
    • 000..499: Henkil� on syntynyt 1900-luvulla
    • 500..749: Henkil� on syntynyt 1800-luvulla
    • 750..999: Erikoistapauksia, esim. ulkomailla syntyneet
  • Uudet s��nn�t, vuodesta 2000 alkaen (tiedot maaliskuulta 2012):
    • 000..499: Henkil� on syntynyt 1900-luvulla
    • 500..749: Henkil� on syntynyt v�lill� 1854..1899
    • 500..999: Henkil� on syntynyt v�lill� 2000..2039
    • 900..999: Henkil� on syntynyt v�lill� 1940..1999 (erikoistapauksia, esim. ulkomailla syntyneet)
S��nn�t eiv�t ole aivan aukottomat, ja muutenkin on ilmeist� ett� j�rjestelm� vaatii muutoksia viimeist��n vuonna 2040. Norjassa k�ytet��n my�s tilap�isi� henkil�tunnuksia nimelt� D-numero (D-nummer), jotka muistuttavat tavallisia tunnuksia, mutta ensimm�iseen numeroon on lis�tty 4, eli jos esim. syntym�p�iv� on 16.04.1981, p�iv� esitet��n muodossa 560481. Lis�ksi on k�yt�ss� H-nummer, joka sekin muistuttaa tavallista henkil�tunnusta, mutta kolmanteen numeroon lis�t��n 4; t�llainen numero voidaan antaa tilap�isesti esim. sairaalassa henkil�lle, jolla ei ole muuta tunnusta tai jonka tunnusta ei pystyt� selvitt�m��n.

Hamming-koodi ja 10-j�rjestelm�

Richard Hamming keksi 1949 Hamming-koodin, jota edelleen k�ytet��n tallennettujen tai siirrett�vien bin��risten tietojen tarkistuksessa. Menetelm� pystyy korjaamaan kaikki yhden bitin virheet sek� havaitsee kaikki kahden bitin virheet ja suurimman osan isommista virheist�. Periaatteessa menetelm� soveltuu my�s muille kantaluvuille kuin 2, mutta t�ll�in kahden numeron virhe voidaan tulkita korjattavissa olevaksi yhden numeron virheeksi, mink� lis�ksi tarkisteita tarvitaan v�hint��n kaksi. Pelkk��n virheiden havaitsemiseen esim. Moduli 97-10 on yksinkertaisempi, joskin my�s hiukan heikompi. Yksi dokumentti vakuuttaa kuitenkin ettei em. virhetulkintaa tapahdu, jos kantaluvuksi valitaan 11, tarkisteita on kaksi ja tarkistettavia numeroita on enint��n yhdeks�n, mutta vaikka edell�kuvattu norjalainen henkil�tunnus vastaa tuntomerkkej�, kahden numeron virheen tunnistaminen ei silti aina onnistu, koska painokertoimet on valittu huonosti. Kappaleessa Verhoeffin menetelm� mainittu "The Laws of Cryptography with Java Code" kuvaa miten menetelm�� k�ytet��n oikein 10-j�rjestelm�n numeroille.

Islantilainen henkil�tunnus

Islantilainen henkil�tunnus kennitala on muotoa PPKKVV-NNTS, jossa
  • PPKKVV: Syntym�aika, p�iv�, kuukausi ja vuosiluvun kaksi viimeist� numeroa
  • NN: Satunnainen yksil�numero
  • T: Tarkiste
  • S: Vuosiluvun toinen numero
Tarkisteen laskenta: Tunnuksen kahdeksaa ensimm�ist� numeroa painotetaan oikealta alkaen numeroilla 2, 3, 4, 5, 6, 7, 2 ja 3. Tulot lasketaan yhteen. Tarkiste on numero joka summaan on lis�tt�v� jotta tulos olisi tasan jaollinen 11:ll�. Ei anneta tunnuksia, joissa lis�tt�v� olisi 10. Esimerkki: Syntym�p�iv� 19.05.1975, yksil�numero 46 → 190575-4629:
	1  9  0  5  7  5  -  4  6  2  9
	3  2  7  6  5  4     3  2
	3 18  0 30 35 20    12 12  = 130 ≡ 9 (mod 11) → 2
Tunnus kirjoitetaan usein ilman v�liviivaa. Huomaa ett� viimeinen numero ei ole tarkistuksessa mukana, mutta nykyisin se ei voi olla muu kuin 8, 9 tai 0. Tunnuksesta ei (luultavasti) voi p��tell� henkil�n sukupuolta. L�hde: Statistics Iceland.

Islannissa k�ytet��n my�s tunnuksia, jotka ovat muuten samanmuotoisia kuin henkil�tunnukset, mutta n�ytt�� silt� ett� ensimm�iseen numeroon on lis�tty 4; n�m� ovat luultavasti yritysten ja/tai yhteis�jen tunnuksia. Esimerkki: 590169-7579. My�s n�iden tunnusten nimi on kennitala.

Latvialainen henkil�tunnus

Huom! T�m� kappale ei tarkisteen laskennan osalta perustu mihink��n julkaistuun dokumenttiin, vaan yhdess� Internetist� l�ytyneess� keskusteluketjussa olevaan PHP-esimerkkiskriptiin ja Internetist� l�ytyneiden oletettavasti aitojen henkil�tunnusten tutkimiseen. Keskustelu lienee latviankielinen, mutta skriptin kommentit ovat englanniksi.

Latvialainen henkil�tunnus (personas kods) on muotoa PPKKVV-SNNNT, jossa:

  • PPKKVV on henkil�n syntym�aika (p�iv�, kuukausi ja kaksi viimesit� numeroa vuosiluvusta).
  • S:n sanotaan osoittavan vuosisadan 0 = 19. 1 = 20. ja 2 = 21. mutta pid�n mahdollisena – jopa todenn�k�isen� – ett� oikea tulkinta onkin 0 = 1800-luku, 1 = 1900-luku ja 2 = 2000-luku.
  • NNN on yksil�numero.
  • T on tarkiste.
Henkil�n sukupuolta luultavasti ei voi p��tell� henkil�tunnuksesta. Tarkisteen laskenta em. skriptin mukaan:
  1. Annetaan apumuuttujalle alkuarvo 1.
  2. Tunnuksen kymment� ensimm�ist� numeroa painotetaan vasemmalta oikealle kertoimilla 1, 6, 3, 7, 9, 10, 5, 8, 4 ja 2.
  3. Kukin tulo v�hennet��n apumuuttujasta.
  4. Jaetaan tulos 11:ll�. Jakoj��nn�s on tarkiste.
Jakoj��nn�s lasketaan skriptiss� kaavalla apu - floor(apu / 11) � 11 jossa floor-funktio palauttaa suurimman kokonaisluvun, joka ei ole suurempi kuin funktion argumentti. Huomaa ett� funktion argumentti on t�ss� laskennassa aina negatiivinen luku; t�llaisessa tapauksessa joidenkin ohjelmointikielten int-funktio palauttaa saman tuloksen kuin floor, toisten taas ei. Kaava antaa tuloksen, joka matemaatikoiden mielest� on oikea jakoj��nn�s. Useiden ohjelmointikielten mod-funktio tai vastaava operaattori antaa saman tuloksen, mutta useissa muissa, mm. PHP:ss�, n�in ei tapahdu jos jaettava on negatiivinen. Koska skriptiss� ei ole mitenk��n otettu huomioon sit� mahdollisuutta, ett� jakoj��nn�s voisi olla 10, eik� sellaista tullut vastaan my�sk��n aitoja tunnuksia tutkittaessa, voidaan olettaa ett� yksil�numero valitaan siten, ettei t�llaista tilannetta koskaan esiinny. Esimerkki (todenn�k�isesti aito): 290758-10403
	2  9  0  7  5  8  1  0  4  0  3
	1  6  3  7  9 10  5  8  4  2
	2 54  0 49 45 80  5  0 16  0  = 251
	1 - 251 = -250; -250 - floor(-250 / 11) � 11 = 3
Eo. kuvaus poikkeaa useimmista muista tarkistusmenetelmist�, koska siin� k�sitell��n negatiivisia lukuja. Samaan tulokseen p��st��n tutummalta vaikuttavalla ja lyhyemm�ll� tavalla seuraavasti:
  1. Tunnuksen kymment� ensimm�ist� numeroa painotetaan vasemmalta oikealle kertoimilla 1, 6, 3, 7, 9, 10, 5, 8, 4 ja 2.
  2. Lasketaan tulot yhteen ja lis�t��n 9.
  3. Jaetaan summa 11:ll�.
  4. V�hennet��n jakoj��nn�s 10:st�. Erotus on tarkiste.
Esimerkki:
	2  9  0  7  5  8  1  0  4  0  3
	1  6  3  7  9 10  5  8  4  2
	2 54  0 49 45 80  5  0 16  0  = 251
	10 - (251 + 9) mod 11 = 3
Em. skriptin perusteella t�ss� laskentatavassa jakoj��nn�s ei koskaan ole 0 jos tunnus on virheet�n. Kertoimista on lis�tietoja standardiin ISO 7064 sis�ltyv�n menetelm�n Mod 11-2 kuvauksessa.

Moduli 11-11

Virolainen ja liettualainen henkil�tunnus

Virolainen henkil�tunnus

Virolainen henkil�tunnus isikukood (IK) on muotoa SVVKKPPNNNT jossa:
  • S: Numero osoittaa syntym�vuoden kaksi ensimm�ist� numeroa ja henkil�n sukupuolen seuraavasti:
    • 1 tai 2: 1800-luku
    • 3 tai 4: 1900-luku
    • 5 tai 6: 2000-luku
    • Pariton numero: Mies
    • Parillinen numero: Nainen
  • VVKKPP: Syntym�aika; vuosi (kaksi viimeist� numeroa), kuukausi ja p�iv�
  • NNN: Yksil�numero
  • T: Tarkiste
Kaikki kent�t ovat numeerisia. Tarkisteen laskenta:
  1. Tunnuksen numeroita painotetaan vasemmalta oikealle kertoimilla 1, 2, 3, 4, 5, 6, 7, 8, 9 ja 1.
  2. Tulot lasketaan yhteen. Summa jaetaan 11:ll�.
  3. Jos jakoj��nn�s on pienempi kuin 10, se on tarkiste; t�ll�in ohitetaan loput ty�vaiheet.
  4. Jos jakoj��nn�s on 10, yritet��n uudelleen kertoimilla 3, 4, 5, 6, 7, 8, 9, 1, 2 ja 3.
  5. Jos jakoj��nn�s on pienempi kuin 10, se on tarkiste.
  6. Jos jakoj��nn�s on 10, tarkiste on 0.
Esimerkki: 37107290014
	3  7  1  0  7  2  9  0  0  1  4
	1  2  3  4  5  6  7  8  9  1
	3 14  3    35 12 63        1  = 131 ≡ 10 (mod 11)
	                                → Uusi yritys
	3  7  1  0  7  2  9  0  0  1  4
	3  4  5  6  7  8  9  1  2  3
	9 28  5    49 16 81        3  = 191 ≡ 4 (mod 11)
Tiedot perustuvat vironkieliseen Wikipediaan, Internetin keskusteluryhmist� l�ytyneisiin ohjelmaesimerkkeihin ja vironkielisiin tietoihin sek� Internetist� l�ytyneiden tunnusten tutkimiseen. Varoitus! En osaa viroa, joten olen voinut ymm�rt�� jonkin kohdan v��rin. Keskusteluryhmien tiedot ovat ristiriitaisia: Tavallisin ero edell�kuvattuun on maininta, jonka mukaan viimeisess� kohdassa pit�isi lukea: "Jos jakoj��nn�s on 10, tunnus on virheellinen." Internetist� l�ytyneiden tunnusten joukossa on kuitenkin yksi (36506280030), joka sopii yhteen esitt�m�ni kuvauksen kanssa, mutta on vaihtoehtoisen kuvauksen mukaan virheellinen. Toisaalta 50 tunnuksen joukossa on viisi, jotka esitt�m�ni kuvauksen mukaan ovat virheellisi�, joukossa yksi jossa ensimm�inen numero on 4 kun sen luultavasti pit�isi olla 3 (olettaen ett� J�ri on miehen etunimi). Tunnukset ovat per�isin hyvin sekalaisista l�hteist�, joten niiss� voi todella olla virheit�.

Liettualainen henkil�tunnus

Mm. englanninkielisen Wikipedian ja Perlin CPAN-kirjastosta l�ytyv�n tarkistusohjelman mukaan liettualainen henkil�tunnus (asmens kodas) on t�ysin identtinen virolaisen henkil�tunnuksen kanssa, paitsi ett� ensimm�isess� positiossa numerot 7 ja 8 on jo varattu 2100-luvulla syntyville.

Moduli 11-0

Osuuspankin konttoritunnus

Osuuspankkien tilinumeroissa on lopussa samanlainen tarkiste kuin muillakin Suomessa toimivilla pankeilla, mutta sen lis�ksi tilinumeron alussa olevan kuusinumeroisen konttoritunnuksen viimeinen numero on edelt�vist� numeroista laskettu tarkiste. Laskenta (vrt. Moduli 11-5):
  1. Tarkistettavia numeroita painotetaan vasemmalta alkaen kertoimilla 2, 3, 9, 5 ja 7.
  2. Tulot lasketaan yhteen.
  3. Summa jaetaan 11:ll�.
  4. Jakoj��nn�s m��r�� tarkisteen seuraavasti:
    • Jos jakoj��nn�s on 0 tai 1, tarkiste on 0.
    • Jos jakoj��nn�s on 2..10, tarkiste on 11 miinus jakoj��nn�s.
Esimerkki (Keski-Suomen Osuuspankki):
	 5  2  9  0  5  0 - N N N N N N N T
	 2  3  9  5  7
	10  6 81  0 35  = 132 ≡ 0 (mod 11) → 0
Osuuspankkien tilinumerot tunnistaa siit�, ett� ensimm�inen numero on 5. Paikallisosuuspankeilla ensimm�inen numero kuitenkin on 4, kuten s��st�pankeilla, eik� t�t� tarkistusta k�ytet�. Muiden pankkien tilinumeroissa ei tarkistetta ole konttoritunnuksessa havaittu. Huom! T�m� kuvaus ei perustu mihink��n julkaistuun dokumenttiin, vaan yleis�lt� tammikuussa 2002 saatuihin tietoihin ja aitojen tilinumeroiden tutkimiseen.

Moduli 11-5

Postin l�hetystunnus

T�m� tarkistus on todettu toimivaksi kirjattujen ja pikakirjeiden 13-merkkisiss� l�hetystunnuksissa. Sama tarkistus voi olla k�yt�ss� my�s muissa l�hetyksiss�, joiden l�hetystunnukset ovat samanmuotoisia, sill� tarkistusmenetelm� sis�ltyy UPU:n standardiin S10 (Union postale universelle / Universal Postal Union / Maailman postiliitto). Sit� vastoin esim. tavallisten kotimaisten postipakettien 21-merkkisiss� l�hetystunnuksissa ei n�yt� olevan mit��n tarkistetta. Tunnuksen osat ovat:
  1. Kaksi kirjainta, jotka osoittavat l�hetyksen tyypin (Service Indicator Code (SIC): Suomessa esim. LX = pikakirje, PE = postiennakko, RR = kirjattu kirje, VV = vakuutettu l�hetys; t�ydellist� luetteloa vaihtoehdoista ei ehk� ole lainkaan olemassa ja yksitt�inen koodi voi tarkoittaa eri asioita eri maissa).
  2. Kahdeksan yksil�iv�� numeroa, ei pelkki� nollia.
  3. Yksinumeroinen tarkiste (tai er�iss� erikoistapauksissa X-kirjain, joka ei ole tarkiste).
  4. Kaksikirjaiminen ISO 3166-1 -maatunnus, Suomessa FI.
Tarkiste lasketaan vain yksil�ivist� numeroista:
  1. Tarkistettavia numeroita painotetaan oikealta alkaen kertoimilla 7, 9, 5, 3, 2, 4, 6 ja 8.
  2. Tulot lasketaan yhteen.
  3. Summa jaetaan 11:ll�.
  4. Jakoj��nn�s m��r�� tarkisteen seuraavasti:
    • Jos jakoj��nn�s on 0, tarkiste on 5.
    • Jos jakoj��nn�s on 1, tarkiste on 0.
    • Jos jakoj��nn�s on 2..10, tarkiste on 11 miinus jakoj��nn�s.
Vrt. Moduli 11-0, jossa kerrointen j�rjestys on toinen ja tasan menev� jako k�sitell��n eri tavalla, mutta moni asia on samoin kuin t�ss�.

Esimerkki 1 (kirjattu kirje): RR026224385FI

	RR 0  2  6  2  2  4  3  8  5 FI
	   8  6  4  2  3  5  9  7
	   0 12 24  4  6 20 27 56  = 149 ≡ 6 (mod 11) → 5
Esimerkki 2 (pikakirje): LX056327445FI
	LX 0  5  6  3  2  7  4  4  5 FI
	   8  6  4  2  3  5  9  7
	   0 30 24  6  6 35 36 28  = 165 ≡ 0 (mod 11) → 5
Huom! T�m� kuvaus ei perustu mihink��n Suomessa julkaistuun dokumenttiin, vaan Internetist� l�ytyneisiin ulkomaisiin tietoihin, yleis�lt� syyskuussa 2002 saatuun vihjeeseen ja aitojen syksyll� 2002 postista saatujen osoitelappujen tutkimiseen.

Moduli 11-10

Merikuljetuskontin numero

ISO-standardin 6346 mukaan merikuljetuksissa k�ytett�vien konttien numerot ovat muotoa AAAU 999999-T, jossa:
  • AAA on kontin omistajan tai p��asiallisen operaattorin kirjaintunnus (BIC-koodi; �l� sekoita t�t� rahaliikenteen BIC-koodiin)
  • U on vakio (literaali), joka osoittaa ett� kyseess� on rahtikontti (er�iss� konttiliikenteeseen liittyviss� laitteissa t�ss� kohdassa voi olla J tai Z; muuten n�iden laitteiden tunnisteet noudattavat samoja s��nt�j�)
  • 999999 on yksil�numero
  • T on tarkiste, joka usein ymp�r�id��n suorakaiteen muotoisella kehyksell�
Omistajien tunnukset merkit��n Pariisissa sijaitsevan International Container Bureaun (Konttien ja intermodaalikuljetusten kansainv�linen yhteyselin = Bureau International des Containers et du Transport Intermodal = BIC) yll�pit�m��n rekisteriin. Yksil�numeron 1..4 ensimm�ist� numeroa voivat kertoa kontista omistajan m��rittelemi� tietoja (tyyppi, koko, materiaali), tai koko numerosarja voi olla pelkk� "tyhm�" tunniste. Tarkistus: Kirjaimet korvataan numeroilla seuraavan taulukon mukaisesti:
A 10B 12C 13D 14E 15F 16 G 17H 18I 19J 20K 21L 23 M 24
N 25O 26P 27Q 28R 29S 30 T 31U 32V 34W 35X 36Y 37 Z 38
Tarkistettavia numeroita ja kirjainten numeroarvoja painotetaan vasemmalta alkaen kertoimilla 1, 2, 4, 8 ... 512. Tulot lasketaan yhteen ja summa jaetaan 11:ll� (jonka vuoksi 11 ja sen kerrannaiset on j�tetty k�ytt�m�tt� annettaessa kirjaimille numeroarvoja). Jakoj��nn�s on tarkiste, paitsi jos jakoj��nn�s on 10, jolloin tarkiste on 0 (standardi suosittelee, mutta ei m��r��, ettei k�ytet� numeroita jotka antavat jakoj��nn�ksen 10). Esimerkki CPSU 102470-9 (CPS = Canada Maritime Ltd, Hamilton, Bermuda):
	 C    P    S    U    1    0    2    4    7    0 - 9
	13   27   30   32
	 1    2    4    8   16   32   64  128  256  512
	13   54  120  256   16    0  128  512 1792    0   = 2891
	2891 mod 11 = 9
Algoritmin toteutuksesta tietokoneohjelmassa annetaan menetelm�n Mod 37-2 yhteydess� vinkkej�, joita on kuitenkin v�h�n sovellettava.

Hampurilaisella Hapag-Lloyd -varustamolla on kaksi tunnusta, HLX (HLXU) ja HLC (HLCU), joista j�lkimm�isen tarkistus on poikennut standardista siten, ett� kirjaimille k�ytet��n seuraavia arvoja: H=4, L=0, C=2 ja U=9. Muuten tarkistus on sama kuin muillekin. Esimerkki HLCU 405447-0:

	 H    L    C    U    4    0    5    4    4    7 - 0
	 4    0    2    9
	 1    2    4    8   16   32   64  128  256  512
	 4    0    8   72   64    0  320  512 1024 3584   = 5588
	 5588 mod 11 = 0
T�st� k�yt�nn�st� on luovuttu, ja sen mukaisia kontteja on j�ljell� v�h�n jos ollenkaan. Kerrotaan my�s tapauksista, joissa omistajan tunnus on vaihdettu laskematta tarkistetta uudelleen. Valitettavasti minulla ei ole n�ist� luetteloa.

Esimerkit ovat aitoja. Aikaisemmin en ottanut t�m�n sovelluksen kuvausta mukaan dokumenttiin, koska luulin virheellisesti ettei aihe ket��n kiinnostaisi. Hyv� n�in, sill� ilman Timo Salmiselta huhtikuussa 2002 saatuja tietoja kuvaus olisi j��nyt puutteelliseksi. Monta yksityiskohtaa on t�ydennetty Internetist� l�ytyneiden tietojen perusteella, mink� lis�ksi on tutkittu n. 50 aitoa konttinumeroa, joihin sis�ltyy my�s em. poikkeuksia.

Kuljetuksen ja vakuuden viitenumerot

Kuljetuksen viitenumero

Kuljetuksen viitenumero (Movement Reference Number, MRN) on: "Tunnus, jonka Tullin j�rjestelm� antaa hyv�ksyess��n tietyt tulli-ilmoitukset vastaanotetuiksi. Annettu MRN ilmoitetaan asiakkaalle hyv�ksymissanomassa. MRN-numero annetaan passitusilmoituksille, vienti-ilmoituksille ja tietyille saapumisen ja poistumisen ilmoituksille." Kuljetuksen viitenumero on 18-merkkinen ja muodostuu seuraavista osista:
  • Vuosiluvun kaksi viimeist� numeroa
  • Kaksikirjaiminen ISO 3166-1 -maakoodi
  • Yksil�iv� tunniste, 13 aakkosnumeerista merkki� (0..9, A..Z)
  • Tarkiste, yksi numero
Tarkiste lasketaan standardin ISO 6346 mukaisesti kuten Merikuljetuskontin numerossa. Esimerkki: 99IT9876AB88901209
99IT 9876 AB88 9012 0
  1931      1012← Kirjaimet korvattu numeroilla
1248 163264128 25651210242048 409681921638432768 65536
91876248 144256448768 25606144819216384 3686401638465536 0

Tulojen summa, jakoj��nn�s ja tarkiste: 154031 mod 11 = 9 → 9

Vakuuden viitenumero

Vakuuden viitenumero eli Vakuuden viite eli Vakuusviite (Guarantee Reference Number, GRN) on tunniste, jonka Tulli antaa maahantuojan tms. asettamalle vakuustalletukselle, jolla Tulli varmistaa saatavansa. GRN-numero on 17- tai 24-merkkinen ja muodostuu seuraavista osista:
  • Vuosiluvun kaksi viimeist� numeroa
  • Kaksikirjaiminen ISO 3166-1 -maakoodi
  • Yksil�iv� tunniste, 12 aakkosnumeerista merkki� (0..9, A..Z)
  • Tarkiste, yksi numero
  • Toinen yksil�iv� tunniste, jota useimmiten ei k�ytet� ja jota ei oteta huomioon tarkistetta laskettaessa, 7 aakkosnumeerista merkki�
Tarkiste lasketaan samalla periaatteella kuin Kuljetuksen viitenumerossa. Esimerkki: 99IT1234AB7889662A001017 (alleviivaus osoittaa laskennassa huomioon otettavan osan t�t� esimerkki� varten, eik� kuulu GRN:n normaaliin esitystapaan)
99IT 1234 AB78 8966
  1931      1012← Kirjaimet korvattu numeroilla
1248 163264128 25651210242048 409681921638432768
91876248 1664192512 25606144716816384 327687372898304196608

Tulojen summa, jakoj��nn�s ja tarkiste: 434799 mod 11 = 2 → 2

L�hde (MRN:n rakenne): Komission asetus (EY) N:o 502/1999, annettu 12. p�iv�n� helmikuuta 1999, tietyist� yhteis�n tullikoodeksista annetun neuvoston asetuksen (ETY) N:o 2913/92 soveltamista koskevista s��nn�ksist� annetun asetuksen (ETY) N:o 2454/93 muuttamisesta, Euroopan yhteis�jen virallinen lehti 12.03.1999.

L�hde (GRN:n rakenne): Decision No 1/2001 of the EC-EFTA joint committee on common transit of 7 June 2001 amending the Convention of 20 May 1987 on a common transit procedure (2001/472/EC), Official Journal of the European Communities, 21.06.2001

L�hde (Tarkisteiden laskenta): Check character algorithm for the MRN and GRN, Brussels, 1 June 1999, Ref: DGXXI/0879/99 - Rev.1, DGXXI - TCP


Luhnin moduli 10

Tarkisteen lis�ys- ja tarkistusohjelma

Luhnin moduli 10 on ehk� kaikkein yleisimmin k�ytetty tarkistusmenetelm�, eik� ihme, sill� se on yksinkertainen ja silti sen virheenpaljastuskyky on varsin hyv� (katso silti Havaittuja heikkouksia). Menetelm�� k�ytet��n mm. seuraavissa tapauksissa:

Sama tarkistus n�ytt�� olevan esim. Sanoma Magazines Finlandin 9-numeroisessa asiakasnumerossa (numeron l�yt�� lehden osoitetiedoista nimen yl�puolelta sek� tilausvahvistuksen ja laskun yl�osasta). T�m�n dokumentin ulkopuolelle on j�tetty useita k�ytt�tarkoituksia, joihin menetelm�� sovelletaan Yhdysvalloissa ja muualla maailmassa. Englanninkielisess� tekstiss� t�st� menetelm�st� k�ytet��n usein nimi� Modulus 10 "Double-Add-Double", "Luhn formula" tai "Luhn-10 Algorithm". Joskus k�ytet��n nime� IBM Check, mutta samaa nimityst� k�ytet��n my�s Kerroin 137:st�. Menetelm� sis�ltyy ISO:n standardiin 7812-1, joka m��rittelee luotto- ja muiden samankaltaisten muovikorttien numeroinnin, sen sijaan ett� se olisi ISO 7064:ss�, joka on erityisesti tarkistusmenetelmi� kuvaava standardi. Laskenta:
  1. Tarkisteen edess� olevia numeroita painotetaan oikealta alkaen kertoimilla 2, 1, 2, 1 jne..
  2. Jos tulo on kaksinumeroinen, sen numerot lasketaan yhteen (asia ilmaistaan joskus niin, ett� tulosta v�hennet��n 9, mik� onkin tietokoneella helpompaa; t�llainen v�hennyslasku ei kuitenkaan toimi jos menetelm�st� muokataan versio jossa kantaluku on suurempi kuin 10 mutta v�lituloksia k�sitell��n 10-kantaisina).
  3. Tulot lasketaan yhteen.
  4. Tarkiste on numero, joka summaan on lis�tt�v� jotta tulos olisi tasan jaollinen kymmenell�.
Sovellusten kuvauksissa on useita esimerkkej�. Tulojen summaus kuvataan eri l�hteiss� monilla muillakin tavoilla, mutta yleens� niiden yht�pit�vyys eo. kuvauksen kanssa on niin ilmeinen, ettei kaikkien vaihtoehtojen yksityiskohtia ole mielek�st� k�yd� l�pi. Yhteenlaskun vaihdantalain (A + B = B + A) muistaminen riitt�� sen tunnistamiseen, ett� kyseess� on sama menetelm�. Jotkin kuvaukset n�ytt�v�t kuitenkin selv�sti erilaisilta:
  1. M��ritell��n tarkistetta edelt�v� positio parittomaksi.
  2. Summataan parittomissa positioissa olevat numerot.
  3. Kerrotaan summa kahdella.
  4. Lis�t��n summaan parittomissa positioissa olevien 4:� suurempien numeroiden lukum��r�.
  5. Lis�t��n summaan parillisissa positioissa olevat numerot (ei tarkistetta).
  6. Tarkiste on numero, joka summaan on lis�tt�v� jotta tulos olisi tasan jaollinen kymmenell�.
Kuvausten moninaisuus kertoo omalla tavallaan menetelm�n laajasta k�yt�st�. Menetelm�st� on my�s muunnelma, jossa kirjaimia A..Z k�sitell��n 36-kantaisen lukuj�rjestelm�n numeroina. National Metering Identifier Procedure (NMI) k�ytt�� versiota, jossa tarkiste voitaisiin laskea mille tahansa ASCII-merkeille.

Luhnin modulin sanotaan olevan vapaasti kenen tahansa k�ytett�viss� (vaikka se on patentoitu, patentti tuskin on en�� voimassa). Kaikista tarkistusmenetelmist� t�llaista ei nimenomaisesti sanota, mutta eip� ole my�sk��n tullut vastaan yht��n tapausta, jossa jonkin menetelm�n k�ytt� yritett�isiin kielt�� sill� perusteella, ett� joku omistaa siihen yksinoikeuden. Jokin t�m�ntapainen syy on kuitenkin voinut johtaa saman menetelm�n kuvaamiseen niin erilaisilla tavoilla, ett� niit� voisi ensi silm�yksell� pit�� eri menetelmin�. Tiedossani on my�s ainakin yksi sovellusalue, jolla menetelm�t pidet��n salaisina: Tanskalaisten pankkitilien numeroiden tarkistus. Joidenkin muidenkin tunnisteiden kehitt�j�t / yll�pit�j�t ilmoittavat ett� tarkistetta k�ytet��n, mutta kielt�yttyv�t kertomasta sen laskentatapaa.

Tarkistusmenetelm�n keksij�ksi ei yleens� nimet� henkil��, vaan yritys tai yhteis� jos mit��n, mutta t�m�n menetelm�n kehitt�j� oli IBM:ll� vv. 1941..1961 ty�skennellyt Hans Peter Luhn (1896..1964), joka tunnetaan automaattisen indeksoinnin pioneerina.

Pankkitilin numero

IBAN-muunnos- ja -tarkistusohjelma

Varoitus! 31.10.2011 pankit lopettivat t�m�n kappaleen mukaisten suomalaisten tilinumeroiden vastaanottamisen tilisiirtojen yhteydess�, poikkeuksena yksityishenkil�iden antamat maksuteht�v�t, joissa pankki voi muuttaa tilinumeron IBAN-muotoon automaattisesti. Finanssialan keskusliitto ilmoitti 02.06.2014 ett� muunnospalvelu lakkaa l�hikuukausina. Pyyd� tilin omistajalta IBAN-tilinumero! Vuoden 2012 j�lkeen suomalainen tilinumero ei saa esiinty� tilisiirtolomakkeessa. Suomalaisten tilinumeroiden tarkisteen laskentaa koskeva dokumentti on poistettu Finanssialan keskusliiton kotisivulta. Viimeinen suomalaisia tilinumeroita k�ytt�nyt sovellus – kotimainen suoraveloitus – poistui k�yt�st� 31.01.2014. �l� luota siihen, ett� t�ss� kuvattu tarkistus olisi k�yt�ss� sen j�lkeen avattujen pankkitilien numeroissa!

Vuonna 1971 k�ytt��n otetun standardin mukaan pankkitilin numerossa on kuusi numeroa, v�liviiva ja 2..8 numeroa. Tarkistusta varten numero on muokattava 14-numeroiseen konekieliseen muotoon lis��m�ll� tarvittaessa numerosarjaan nollia. Lis�yskohta ei ole kaikissa tapauksissa sama, vaan pankit jakautuvat kahteen ryhm��n sen mukaan, mihin lis�ys tehd��n. Ryhm� tunnistetaan tilinumeron ensimm�isest� numerosta. Muut kuin allamainitut numerot eiv�t ole k�yt�ss�, mutta 7- ja 9-alkuiset tilinumerot ovat kuuluneet ryhm��n 1. Er�iden nykyisten Suomessa toimivien pankkien BBAN-tilinumerot alkavat 7:ll�, mutta n�m� pankit ovat aina k�ytt�neet vain IBAN-tilinumeroita. L�hde: Suomen pankkiyhdistys (vuoden 2007 alusta Finanssialan keskusliitto), Suomalaisten tilinumeroiden rakenne, toukokuu 2000.

Ryhm� 1: 1. numero on 1, 2, 3, 6 tai 8 → lis�ys viivan j�lkeen

	999999-99999
	999999-00099999
	       ===
Esimerkki:
	117835-53192
	117835-00053192
	       ===
Ryhm� 2: 1. numero on 4 tai 5 → lis�ys viivaa seuraavan numeron j�lkeen
	999999-99999
	999999-90009999
	        ===
Esimerkki:
	574044-25478
	574044-20005478
	        ===
T�st� eteenp�in tarkistus on normaali Luhnin moduli 10 ja se on sama kaikille pankeille.

Esimerkki: 159030-776 (Hassen matkat)

	1 5 9 0 3 0 - 0 0 0 0 0 7 7 6
	2 1 2 1 2 1   2 1 2 1 2 1 2
	2 5 9 0 6 0   0 0 0 0 0 7 5 = 34 → 6
Jotkin osat tilinumerossa voivat kertoa esim. konttorin jossa tili on avattu, tililajin ja/tai asiakasryhm�n (yhteis� / yksityinen), mutta n�m� k�yt�nn�t vaihtelevat pankkiryhmitt�in. Osuuspankeissa tilinumeron alkuosa sis�lt�� erillisen tarkisteen. Suomalaisesta pankkitilin numerosta voidaan muodostaa kansainv�linen tilinumero IBAN, jolla my�s on oma tarkisteensa.

Arvo-osuustilin numero ja X-tunnus

Mm. kaikki p�rssiss� noteerattavat arvopaperit on kirjattu arvo-osuusj�rjestelm��n, ja jokaisella t�llaisia arvopapereita omistavalla t�ytyy olla arvo-osuustili. Arvo-osuustiln numero voi olla pitk� (enint��n 19 merkki�) tai lyhyt (10 merkki�). Pitk�n numeron muoto on RROOOOVVXXXXXXXXXNT jossa:
  • RR = Arvo-osuusrekisterin tunnus
  • OOOO = Osarekisteritunnus
  • VV = Vakio / vapaamuotoinen (Euroclear Finland Oy:ll� 00 [aikaisempi Suomen Arvopaperikeskus Oy, APK])
  • XXXXXXXXXN = 10-numeroinen tilinumero, jossa N on tarkiste
  • T = Koko tilinumeron tarkiste
Numerosarja voi olla yhten�inen tai se voidaan jakaa osiin v�lily�nneill� tai v�liviivoilla ainakin n�ill� tavoilla:
  • 6 numeroa + 12 numeroa + 1 numero tai
  • 2 numeroa + 4 numeroa + 12 numeroa + 1 numero
Osan VVXXXXXXXXXN alussa olevat nollat voidaan j�tt�� pois, erityisesti kun numerosarja esitet��n osiin jaettuna. Tarkistusta varten tilinumero on tarvittaessa ensin t�ydennett�v� 19-numeroiseksi lis��m�ll� poisj�tetyt nollat. Tilinumero voi sis�lt�� kirjaimia, jotka (yleis�lt� joulukuussa 1999 saatujen tietojen mukaan) korvataan ennen tarkisteen laskentaa numeroilla siten, ett� A korvataan numeroparilla 10, B → 11, C → 12 ... Z → 35 (numeroarvot ovat samat kuin passeissa, vaikka niit� k�ytet��n hieman eri tavalla). K�yt�nn�ss� ainoa havaittu kirjain on A 10-numeroisen tilinumeron 2. positiossa eli 19-numeroisen tilinumeron 10. positiossa. Tarkistettava numerosarja siis pitenee korvauksessa ja yleisemmist� k�yt�nn�ist� poiketen yksitt�ist� kirjainta korvaavan numeroparin numeroita k�sitell��n t�st� eteenp�in erillisin�. Esimerkki korvauksesta (k�ytet��n selvyyden vuoksi lyhytt� numerosarjaa): 327A9 → 327109

T�st� eteenp�in tarkistusmenettely on normaali Luhnin moduli 10. Esimerkkej�:

19-numeroinen: 04 4600 22A00003129 9, standardimuodossa: 044600 022A00003129 9

	0 4  4 6 0 0  0 2 2  A  0 0 0 0 3 1 2 9  9    A korvattu
	                    1 0                     ← numeroilla
	2 1  2 1 2 1  2 1 2 1 2 1 2 1 2 1 2 1 2
	0 4  8 6 0 0  0 2 4 1 0 0 0 0 0 3 2 2 9  = 41 → 9
10-numeroinen: 0000328112
	0 0 0 0 3 2 8 1 1 2
	2 1 2 1 2 1 2 1 2
	0 0 0 0 6 2 7 1 2 = 18 → 2
Huom! Tehtyjen havaintojen perusteella t�m� tarkistus koskee 10-numeroisia tilinumeroita vain jos numerosarja ei sis�ll� kirjaimia (esim. Euroclear Finland Oy:n tilinumerot). Tiedossa ei ole, k�ytet��nk� kirjaimia sis�lt�viss� 10-numeroisissa tilinumeroissa mit��n tarkistusta.

Euroclear Finland Oy antaa X-tunnuksia (= keinotekoinen tunnus = keinotekoinen asiakastunnus) ulkomaisille osingonmaksajille ja suomalaisten osakkeiden omistajille, joilla ei ole suomalaista henkil�- tai y-tunnusta. Tunnus muodostuu X-kirjaimesta ja kahdeksasta numerosta. Olen l�yt�nyt vain kaksi aitoa tunnusta, mutta molempiin sopii sama tarkistus kuin arvo-osuustilien numeroihin. Esimerkki X00476516:

	 X  0 0 4 7 6 5 1 6    X korvattu
	3 3                  ← numeroilla
	2 1 2 1 2 1 2 1 2
	6 3 0 0 8 7 3 5 2 = 34 → 6
X-tunnusta ei pid� sekoittaa CINS-tunnukseen, joka voi olla samann�k�inen kun CINS viittaa suomalaiseen arvopaperiin.

Huom! Edell� esitetty ei perustu mihink��n Netist� l�ytyneeseen kuvaukseen, vaan aidoista numeroista tekemiini havaintoihin, yleis�lt� saatuihin vihjeisiin, Netist� l�ytyneisiin pikkutietoihin ja merkitt�v�lt� osin dokumenttiin ja muihin tietoihin jotka l�hetti Marko Turpeinen hein�kuussa 2006.

ISIN ja CUSIP

ISIN = International Securities Identification Number, ISO 6166 -standardin mukainen kansainv�linen koodi, jota k�ytet��n arvopaperien tunnistamiseen. Koodissa on 12 merkki�:
  1. ISO 3166-1 -standardin mukainen kaksikirjaiminen maatunnus, suomalaisissa koodeissa FI. Poikkeus: Clearstream (ent. Cedel) ja Euroclear k�ytt�v�t kansainv�listen arvopaperien yhteydess� tunnusta XS, joka ei viittaa mihink��n maahan (ISO 3166-1 j�tt�� koodit AA, QM..QZ, XA..XZ ja ZZ organisaatioiden sis�iseen k�ytt��n).
  2. Arvopaperilajin 9-merkkinen tunniste, jossa saa olla numeroita 0..9 ja kirjaimia A..Z.
  3. Tarkiste, yksi numero.
Tarkiste lasketaan kuten Arvo-osuustilin numerossa. My�s kirjainten k�sittelytapa on sama. Esimerkki (Finnlines Oyj:n osake): FI0009003644
	 F   I  0 0 0 9 0 0 3 6 4 4    Kirjaimet korvattu
	1 5 1 8                      ← numeroilla
	2 1 2 1 2 1 2 1 2 1 2 1 2
	2 5 2 8 0 0 0 9 0 0 6 6 8 = 46 → 4
Kanadalaisilla ja yhdysvaltalaisilla arvopapereilla on CUSIP-koodi (Committee on Uniform Security Identification Procedures), jossa kirjainten k�sittely poikkeaa ISIN:ist� sen verran, ett� painotus kohdistuu suoraan kirjainta vastaavaan lukuun eik� sen numeroihin. Painotuksen j�lkeen summaukseen otetaan kuitenkin mukaan tulon numerot, ei itse tuloa. CUSIP-koodissa on kahdeksan numeroa tai kirjainta plus tarkiste; kolme ensimm�ist� merkki� ovat kuitenkin aina numeroita. Esimerkki: 392690QT3
	3 9 2 6 9 0  Q   T  3    Kirjaimet korvattu
	            2 6 2 9    ← numeroilla
	1 2 1 2 1 2   1   2
	3 9 2 3 9 0 2 6 5 8 = 47 → 3
CUSIP:iin sis�ltyy my�s k�site Private Placement Number (PPN). T�llaisissa numeroissa voi esiinty� er�it� erikoismerkkej�, joiden arvot tarkisteen laskennassa ovat: *=36, @=37, #=38.

Kansainv�lisi� arvopapereita varten CUSIP:ista on versio nimelt� CINS (CUSIP International Numbering System), jonka ensimm�isess� positiossa on numeron sijasta maa- tai aluetunnuksena kirjain. Muuten rakenne ja tarkisteen laskenta ovat samat. Suomi kuuluu alueeseen "muu Eurooppa", tunnuskirjain X (n�it� ei pid� sekoittaa X-tunnuksiin; sek� tunnuksen antaja, k�ytt�tarkoitus ett� tarkisteen laskenta ovat erilaiset, vaikka muoto saattaa olla sama).

CUSIP Service Bureau (CSB) voi muodostaa CUSIP- tai CINS-koodista CSB-ISIN -koodin lis��m�ll� eteen maakoodin (CA tai US) ja loppuun ISIN-koodin tarkisteen.

Arvopapereille on my�s muita tunnistej�rjestelmi�. Esim. SEDOL (Stock Exchange Daily Official List) on brittil�inen j�rjestelm�, jossa k�ytett�v� tarkiste on kuvattu mm. Wikipediassa. My�s SEDOL:ista voidaan muodostaa ISIN.

Pankkikortti, luottokortti ym.

T�m� koskee ainakin seuraavia kortteja:
  • Pankkikortit, ml. automaattikortit
  • Luottokortit: American Express (AmEx), Diner's Club, Eurocard, MasterCard, Visa
  • E-liikkeen KantaAsiakaskortti, K-kaupparyhm�n Plussa-kortti, S-kaupparyhm�n S-etukortti, Silja Linen kanta-asiakaskortti, Finnairin Plus-kortti (vuodesta 2001 alkaen jaettu malli, jossa on kolme kolmen numeron ryhm��)
Tarkistusmenettely on Luhnin moduli 10. Luultavasti samaa tarkistusta k�ytet��n hyvinkin monissa erilaisissa muovikorteissa, joita yritykset ja muut organisaatiot jakavat asiakkailleen / j�senilleen ja jotka ulkon��lt��n muistuttavat em. kortteja. Usein esiintyvi� tuntomerkkej� ovat: Luottokorttikoko; numero ja mahdollisesti muita tietoja pr�ss�ttyn� kohokuviona tai tavallisena painettuna tekstin� edess� alhaalla; magneettijuova takana ylh��ll�; tila haltijan nimikirjoitukselle takana keskell�, nykyisin usein mikropiirin kontaktiliuskat edess� vasemmalla. Samaa menetelm�� ei kuitenkaan k�ytet� n�iss� viranomaisten antamissa korteissa: Kela-kortti, henkil�kortti, ajokortti. N�ist� vain henkil�kortissa on oma numero; muut k�ytt�v�t henkil�tunnusta. (Joskus tapaa v�itteit�, ett� vanhemmissa pahvisissa ajokorteissa ei ole lainkaan numeroa, mutta kyll� sellaisen pit�isi l�yty�, jos kortin ottaa pois muovikotelosta ja avaa laskokset. T�st� voi olla apua ulkomaisissa autovuokraamoissa.)

Esimerkkej� tarkistuksesta:

Visa-kortti, keksitty numero:

	4 9 2 0  1 9 0 0  7 5 2 6  7 2 7 6
	2 1 2 1  2 1 2 1  2 1 2 1  2 1 2
	8 9 4 0  2 9 0 0  5 5 4 6  5 2 5 = 64 → 6
Silja Linen kanta-asiakaskortti, aidosta kortista hiukan muokattu numero:
	1 1 1 1  6 0  0 0 7 4 2 3 9 4  2 8
	2 1 2 1  2 1  2 1 2 1 2 1 2 1  2
	2 1 2 1  3 0  0 0 5 4 4 3 9 4  4 = 42 → 8
Monissa luottokorteissa (mm. Visa ja Mastercard / Eurocard) kortin taakse on painettu kolminumeroinen tarkistuskoodi. American Express -korteissa vastaava koodi on nelinumeroinen ja painettu kortin etupuolelle. Koodi tunnetaan nimill� CVC2 (Card Verification Code), CVV2 (Card Verification Value), CID (Card Identification Number) sek� usealla muulla nimell�. Koodia ei esitet� kohokuviona eik� sit� l�ydy kortin magneettijuovasta. Koodia voidaan k�ytt�� mm. Internetiss� tai puhelimitse varmistamaan, ett� maksajalla on maksuhetkell� hallussaan kortti eik� pelk�st��n sen magneettijuovalta luetut tai mankeloituun kuittiin j��neet tiedot. Koodeista k�ytet��n my�s lyhenteit� CVC tai CVV, mutta t�m� on virhe: T�m�nnimiset vanhemmat kooditkin ovat toki olemassa (my�s nimill� CVC1 ja CVV1), mutta ne on talletettu magneettijuovalle hoitamaan samantyyppist� teht�v�� s�hk�isiss� maksuissa - ne tekev�t magneettijuovan tietojen v��rent�misen muuten kuin kopioimalla l�hes mahdottomaksi. Kaikki n�m� koodit tunnetaan yhteisell� nimell� Card Security Code (CSC) tai Credit Card ID (CCID). CVC2 ja CVV2 lasketaan kortin numerosta ja viimeisest� voimassaoloajankohdasta julkisella Triple DES -salakirjoitusalgoritmilla (3DES tai DES3, Data Encryption Standard) k�ytt�en kunkin luottokorttiyhti�n omia salaisia avaimia, joita ulkopuoliset tiett�v�sti eiv�t ole onnistuneet selvitt�m��n. Tosin Internetiss� jotkut kauppaavat ohjelmia, joiden v�itet��n n�it� koodeja tuottavan; jos t�m� pit�� paikkansa, koodit ovat menett�neet merkityksens� turvatekij�in�, mutta min� en ole valmis t�llaiseen uskomaan.

Luottokortit ja Internet

Usein varoitetaan luottokorttien numeroiden l�hett�misest� Internetin kautta erityisesti salaamattomilla yhteyksill�. Yksi hyv� syy t�h�n on se, ett� koska numeron alusta l�ytyy kortin my�nt�j�n tunnus, luottokorttien numeroiden pituuden vaihtelu on pieni (yleens� vain yksi, joskus kaksi vaihtoehtoa / luottokorttiyhti�) ja numeron lopussa on yksi tai kaksi tarkistetta, mik� tahansa Internet-liikennett� tarkkaileva tietokone pystyy isostakin datavirrasta helposti tunnistamaan ja poimimaan talteen salaamattomat luottokorttinumerot. Sama koskee tietysti muitakin m��r�muotoisia sensitiivisi� tietoja, kuten henkil�tunnuksia. Toisaalta sanotaan my�s, ettei ole yht��n todistettua tapausta, jossa luottokortin numero olisi t�ll� tavoin joutunut v��riin k�siin, kun taas muulla tavoin sit� kyll� on tapahtunut.

Jakelukoodi

Kaikissa tutkituissa tapauksissa uudehkojen suomalaisten lehtien Tuotekoodissa on maatunnuksen (64) j�lkeen kustantajasta riippumatta numerot 1488, joita seuraava Lehtipisteiden k�ytt�m� 6-numeroinen Jakelukoodi pysyy samana lehden numerosta toiseen. Jakelukoodi sis�lt�� oman tarkisteensa, jonka laskentamenetelm� on Luhnin moduli 10. Sama koodi l�ytyy usein viivakoodin l�helt� toisestakin numerosarjasta (R-koodi), jonka muut osat l�ytyv�t my�s varsinaista Tuotekoodia seuraavasta EAN-5 -lis�koodista. Esimerkki tarkistuksesta (Tekniikan Maailma):
	6 4 1 4 8 8 8 1 5 0 0 1 8
	            2 1 2 1 2
	            7 1 1 0 0 = 9 → 1
Jakelukoodilla ei n�yt� olevan mit��n yhteytt� lehden ISSN-numeroon. Vanhoissa lehdiss� 1488:n tilalla voi olla 1411 ja muitakin eroja voi olla (tarkisteen tilalla n�ytt�� yleens� olevan 0). Lehdiss�, joissa ei ole Tuotekoodia, voi olla Jakelukoodin n�k�inen numerosarja, jossa tarkistusta ei v�ltt�m�tt� k�ytet� (t�m�kin voi olla nimelt��n R-koodi). T�llainen numerosarja voi l�yty� my�s sarjana ep�s��nn�llisesti julkaistavista kirjoista, kuten sarjakuva-albumeista, mutta numerosarjan loppuosan yksityiskohdat vaihtelevat kustantajasta riippuen. Huom! Tieto k�ytett�v�st� tarkistusmenetelm�st� ei perustu mihink��n julkaistuun dokumenttiin, vaan kymmenist� aidoista Jakelukoodeista tehtyihin havaintoihin.

T-koodi

T-koodi on Tukkukauppojen Oy:n (= Tuko Oy) kehitt�m� EAN-Tuotekoodin kaltainen 6..8-numeroinen tunniste. Se otettiin k�ytt��n 1970-luvulla, jolloin Tuotekoodit eiv�t viel� olleet niin yleisi� kuin nyt. Koodia k�ytet��n elintarvikkeissa ja k�ytt�tavaroissa, ja nykyisin sen voi l�yt�� esim. Anttilan tavaratalon hintalapuista - ei l�hesk��n kaikista, sill� useimmissa tuotteissa on EAN-koodi. Tarkisteen laskentamenetelm� on Luhnin moduli 10.

Esimerkki (vy�n hintalapusta): 3963659

	3 9 6 3 6 5 9
	1 2 1 2 1 2
	3 9 6 6 6 1 = 31 → 9
Hintalapussa on my�s viivakoodi, joka n�ytt�� Tuotekoodin viivakoodiesitykselt�, ja kyseess� onkin 02-alkuinen EAN-13, joka voidaan tulkita my�s 2-alkuiseksi UCC-12:ksi. N�m� on varattu kaupassa annettaviksi, erotukseksi tavanomaisista valmistajan antamista Tuotekoodeista. T�ss� tapauksessa EAN-13 -koodi sis�lt�� T-koodin tarkisteineen oikeaan reunaan tasattuna sek� tietysti Tuotekoodin tarkisteen. Eo. T-koodista muodostettu EAN-13:
	0  2  0  0  0  3  9  6  3  6  5  9  5
	1  3  1  3  1  3  1  3  1  3  1  3
	0  6  0  0  0  9  9 18  3 18  5 27  = 95 → 5
Koodin nimess� oleva T viittaa Tukoon. Huom! T�m� kuvaus ei perustu mihink��n julkaistuun dokumenttiin, vaan Raimo H�liselt� alkuvuodesta 2000 saatuihin tietoihin ja aidoista numeroista tehtyihin havaintoihin.

Nokian puhelimen sarjanumero

Kolmessatoista tutkitussa Nokian GSM-puhelimessa, jotka edustavat kahdeksaa eri mallia, sarjanumerossa (= IMEI, International Mobile station Equipment Identity) on viimeisen� tarkiste jonka laskentamenetelm� on Luhnin moduli 10. Mallit ovat 5110, 6110, 6150, 6210, 6250, 7110, 8210 ja 9110. Sama tarkistus ei kuitenkaan toimi malleissa 1630, 2110 ja 3110, joissa viimeinen numero n�ytt�� aina olevan nolla. Tarkistus on ilmeisesti otettu k�ytt��n vasta uudemmissa puhelimissa. Esimerkki:
	4 9 3 0 0 5 / 1 0 / 0 6 0 1 5 3 / 6
	1 2 1 2 1 2   1 2   1 2 1 2 1 2
	4 9 3 0 0 1   1 0   0 3 0 2 5 6 = 34 → 6
Kolme ensimm�ist� kauttaviivoin erotettua osaa ovat TAC (Type Approval Code, 6 numeroa), FAC (Final Assembly Code, 2 numeroa) ja SNR (Serial Number, 6 numeroa). TAC:n ensimm�iset numerot ovat tyyppihyv�ksynn�n my�nt�neen maan tunnus; kaikissa tutkituissa puhelimissa joko 44 (Yhdistynyt kuningaskunta) tai 49 (Saksa), eli t�m� n�ytt�isi olevan sama kuin ao. maan kansainv�linen suuntanumero. Suomessa tyyppihyv�ksytyn puhelimen maatunnus on kuitenkin 35, joka on vain suuntanumeron (358) alkuosa. TAC:n loput numerot oletettavasti osoittavat ep�suorasti puhelimen merkin ja mallin, mutta samanmallisissakin puhelimissa voi olla eri numeroita. FAC kertoo tehtaan, jossa loppukokoonpano on tehty - v�lillisesti siis my�s valmistusmaan; Nokialla on k�yt�ss� ainakin seuraavat koodit:
10Salo, Suomi90Special Products, Saksa
20Bochum, Saksa91Elcoteq, Tallinna, Viro
30Korea92Elcoteq, Suomi
40Beijing, Kiina93Elcoteq, Unkari
70Salo Components, Suomi 
Sama FAC voi esiinty� eri valmistajilla, koska erilaiset TAC:t est�v�t samaa FAC:t� k�ytt�vien tehtaiden sekoittamisen toisiinsa. SNR yksil�i puhelimen. Samaa IMEI-j�rjestelm�� k�ytt�v�t kaikki GSM-puhelinten (Global System for Mobile communications) valmistajat, mutta on ep�selv�� k�ytt�v�tk� kaikki tarkistetta. IMEI l�ytyy yleens� puhelimesta akun alta, mutta sen voi my�s kysy� n�pp�ilyll� *#06# (jos painettu ja puhelimen ilmoittama IMEI eiv�t ole samat, puhelimen historiassa voi olla jotakin h�m�r��).

IMEI:n sis�ll�st� on tarjolla runsaasti ristiriitaisia tietoja, joista monet voidaan todeta v��riksi koska ne eiv�t sovi yhteen todellisten puhelimissa olevien numeroiden kanssa. T�ss� annetut tiedot perustuvat omiin havaintoihini ja niiden kanssa parhaiten yhteensopiviin dokumentteihin, ml. kaksi ETSI:n (European Telecommunications Standards Institute) virallista standardim��rityst�.

Joskus v�itet��n ett� IMEI voi olla 16-numeroinen, mutta t�ll�in kyseess� on IMEISV, jossa tarkisteen tilalla on kaksinumeroinen SVN (Software Version Number). T�ss� muodossa tunnus voidaan l�hett�� puhelimesta tukiasemalle. Jos l�hetet��n pelkk� IMEI, tarkisteen paikalla on 0.

Edell�kuvattuja sarjanumeroita k�ytt�en yksitt�isess� tehtaassa voidaan valmistaa miljoona saman tyyppihyv�ksynn�n mukaista puhelinta, mutta t�m� ei ilmeisesti riit�. Koska esim. IMEI:n pident�minen olisi hyvin suurit�ist�, on ehdotettu mm. ett� IMEI muutetaan k�ytt�m��n heksadesimaalinumeroita; t�m� muutos olisi puhelinten valmistajille teknisesti yksinkertainen, koska nytkin IMEI talletetaan BCD-muodossa. Miljoonan sijasta voitaisiin valmistaa 16,7 miljoonaa puhelinta. Tarkisteen laskennan periaate pysyisi ennallaan, mutta laskenta teht�isiin 16-kantaisessa lukuj�rjestelm�ss�, jolloin menetelm� olisi nimelt��n "Luhnin moduli 16". Yhteensopivuuden s�ilytt�miseksi muutos ei tietenk��n koskisi olemassaolevia sarjanumeroita. Operaattorit ovat suhtautuneet hankkeeseen nihke�sti, ja k�yt�nn�ss� ratkaisu voikin olla FAC:n ja SNR:n yhdist�minen, jolloin yhdell� tyyppihyv�ksynn�ll� voidaan valmistaa sata miljoonaa puhelinta. N�in tarkisteen laskenta s�ilyisi ennallaan my�s GSM-puhelinten seuraajissa.

SIM-kortin sarjanumero

GSM-puhelimissa k�ytett�viss� SIM-korteissa (Subscriber Identity Module) on sarjanumero (Integrated Circuit Card ID, ICCID), jossa olevan tarkisteen laskentamenetelm� on Luhnin moduli 10. Esimerkki (keksitty):
	0 1 0 5  1 2 3 1  4 1 6 1
	2 1 2 1  2 1 2 1  2 1 2
	0 1 0 5  2 2 6 1  8 1 3 = 29 → 1
Usein jokin osa kortin numerosta voidaan tulkita valmistusajankohdaksi kuukauden tai ehk� jopa p�iv�n tarkkuudella. Jotkin muut osat numeroista voivat olla operaattori- tai maatunnuksia. Operaattorikohtaiset erot ovat kuitenkin niin suuria, ett� kattavan luettelon laatiminen olisi ty�l�st�, osittain arvailujen varassa, eik� varsinaisesti kuulu t�m�n dokumentin aihepiiriin.

Junakalustoyksik�n sarjanumero

Euroopan unionin 11.08.2006 tekem�n p��t�ksen mukaan EU:ssa otetaan k�ytt��n uusi junakaluston sarjanumeroj�rjestelm�, European Vehicle Number (EVN), joka n�ytt�� olevan aivan sama kuin j�rjestelm�, jonka on jo aikaisemmin m��ritellyt Kansainv�linen rautatieliitto UIC (Union Internationale des Chemins de Fer). Suomessa ensimm�inen uuden j�rjestelm�n mukainen numero otettiin k�ytt��n 10.11.2008, kun ensimm�inen p��kaupunkiseudun l�hiliikenteeseen hankituista Sm5- eli FLIRT-s�hk�moottorijunista tuotiin Suomeen. V�hitellen uudet numerot tulevat k�ytt��n kaikessa s��nn�llisesti k�ytett�v�ss� kalustossa. Uusi sarjanumerointi ei est� vetokaluston vanhojen tyyppimerkint�jen ja sarjanumeroiden (esim. Dv12 2714) eik� vaunujen tyyppi� osoittavien kirjainkoodien (esim. Gbln) k�ytt��. Uusi sarjanumero eli standarditunnus on muotoa AA BB CCCC DDD-T jossa:
  • AA osoittaa kalustoyksik�n tyypin (Sm5:ss� 94 = s�hk�moottorijuna, muu kuin suurnopeusjuna)
  • BB on maatunnus (Suomi = 10)
  • CCCC kertoo kalustoyksik�st� teknisi� tietoja (Sm5:ss� 2081); koodien merkitys riippuu kalustoyksik�n tyypist�; joissakin maissa t�m� osuus alleviivataan
  • DDD on yksil�numero
  • T on tarkiste, jonka laskentamenetelm� on Luhnin moduli 10
Esimerkkin� ensimm�inen Suomeen tuotu Sm5: 94 10 2081 001-1
	9 4  1 0  2 0 8 1  0 0 1 - 1
	2 1  2 1  2 1 2 1  2 1 2
	9 4  2 0  4 0 7 1  0 0 2 = 29 → 1
T�ydellinen koodiluettelo on kymmeni� sivuja pitk�, joten en edes yrit� toistaa sit� t�ss�. Sarjanumeron ryhmittelyss� on vaihtelua ainakin seuraavasti:
  • Vetokalustossa teknisten tietojen koodit ja yksil�numero voidaan kirjoittaa yhteen. Painetussa tekstiss� koko numerosarja voidaan kirjoittaa yhten�isen�, paitsi tarkiste joka t�ll�inkin erotetaan v�liviivalla.
  • Matkustajavaunuissa teknisten tietojen koodit voidaan esitt�� kahdessa kahden numeron ryhm�ss�, joiden v�liss� on v�liviiva.
  • Tavaravaunuissa koodi kirjoitetaan tilan salliessa (eli matalimpia avovaunuja lukuun ottamatta aina) kolmelle riville, ja mukaan liitet��n my�s kirjainkoodeja numerokoodien selitykseksi (esim. 10 VR). Kirjainkoodit eiv�t vaikuta tarkisteeseen.
Joissakin tapauksissa k�ytet��n poikkeavaa ryhmittely�, mutta minulla ei ole asiasta tarkempia tietoja. Ryhmittelyst� riippumatta koodin kokonaispituus on aina 12 numeroa. L�hde: Resiina-lehti 4/2008 s. 40 ja Internetist� l�ytynyt dokumentti.

Suomen rautateill� voi n�hd� my�s ulkomaisia vaunuja, useimmiten ven�l�isi� (maatunnus 20), joskus my�s ruotsalaisia (74).

Suomalaisten tavaravaunujen vanha numerointi

Ennen yhten�isen EU-numeroinnin k�ytt��nottoa suomalaisissa kotimaan liikenteen tavaravaunuissa on ollut sarjanumero, joka havaituissa tapauksissa muodostuu 5..6 numerosta, v�liviivasta ja tarkistenumerosta, jonka laskentamenetelm� on Luhnin moduli 10. Varsinainen numero m��r�ytyy siten, ett� ao. vaunusarjalle varatuista numeroista otetaan ensimm�inen vapaana oleva. L�hde: Resiina-lehti 3/1988 s. 30. Esimerkki: 463892-0
	4 6 3 8 9 2 - 0
	1 2 1 2 1 2
	4 3 3 7 9 4   = 30 → 0
Kansainv�lisen liikenteen vaunuissa UIC:n numerointia on k�ytetty jo pitk��n. - Australiassa veturien ja vaunujen kirjaimista ja numeroista muodostuvat sarjanumerot tarkistetaan omintakeisella moduli 23 -algoritmilla.

Yksil�intitunnus

Valitettavasti tomppeli lains��t�j� on valinnut tunnisteelle niin yleisluonteisen nimen, ett� otsikkoa voidaan joutua muuttamaan tulevaisuudessa. (Laki 46/2009)

Sosiaali- ja terveysalan lupa- ja valvontavirasto Valvira antaa l��k�rille ja hammasl��k�rille, valtioneuvoston asetuksessa s��detyt opinnot (= v�hint��n nelj� opintovuotta) suorittaneelle l��ketieteen tai hammasl��ketieteen opiskelijalle sek� l��kkeen m��r��miseen oikeutetulle sairaanhoitajalle, suuhygienistille ja optikolle Yksil�intitunnuksen, jota t�m�n tulee k�ytt�� laatiessaan mm. tutkimus-, hoito- ja l��kem��r�yksi� ja l��k�rintodistuksia.

Yksil�intitunnus korvasi 01.03.2009 Sairausvakuutusnumeron (SV-numero), joita Kansanel�kelaitos aikaisemmin antoi l��k�reille ja hammasl��k�reille. Vanhat Sv-numerot kelpaavat sellaisenaan Yksil�intitunnuksiksi, eik� l��k�rien tarvitse uusia leimasimiaan tunnuksen nimen muuttumisen vuoksi. Paremman tiedon toistaiseksi puuttuessa oletan, ett� tunnukset ovat samanmuotoisia (lakiteksti ei m��rittele Yksil�intitunnuksen tarkkaa muotoa). Sv-numero on kuusinumeroinen ja sen tarkistusmenetelm� on Luhnin moduli 10.

Esimerkki (keksitty): SV 275230

	2 7 5 2 3 0
	2 1 2 1 2
	4 7 1 2 6 = 20 → 0
Huom! Tieto k�ytett�v�st� tarkistusmenetelm�st� ei perustu mihink��n julkaistuun dokumenttiin, vaan ainoastaan l��kem��r�yksist� ja l��k�rintodistuksista tehtyihin havaintoihin.

Ruotsalainen henkil�tunnus (PNR)

Ruotsalainen henkil�tunnus personnummer (PNR) muistuttaa suomalaista, mutta syntym�ajan j�rjestys on vuosi-kuukausi-p�iv� ja tarkisteen laskentamenetelm� on Luhnin moduli 10. Sukupuoli tunnistetaan kuten Suomessa. Tunnuksia alettiin jakaa vuonna 1947; tuolloin annetut tunnukset kertovat jotakin henkil�n silloisesta asuinpaikasta. My�hemmin mutta ennen vuotta 1990 annetuissa tunnuksissa yksil�numerosta voidaan (useimmiten) p��tell� henkil�n syntym�paikka l��nin tarkkuudella. Tarkiste lis�ttiin 1967. V�limerkki on alun perin "-" mutta vaihtuu "+":ksi sin� vuonna jona henkil� t�ytt�� sata vuotta (on ihme jos t�m� ei aiheuta sekaannusta). L�hteen� on k�ytetty mm. Ruotsin verohallinnon kotisivua. (Ehk� maan luonteesta kertoo jotakin se, ett� Ruotsissa tunnukset antaa verohallinto, kun esim. Suomessa ja Tanskassa ne kuuluvat v�est�kirjanpidon toimialaan.)

Esimerkki ruotsalaisesta henkil�tunnuksesta: 720310-1212

	7 2 0 3 1 0 - 1 2 1 2
	2 1 2 1 2 1   2 1 2
	5 2 0 3 2 0   2 2 2 = 18 → 2
Ruotsalaisten valitsema tarkistusmenetelm� ei voine olla t�h�n tarkoitukseen paras mahdollinen, sill� syntym�aika muodostuu kahden numeron ryhmist�, eik� tarkistus paljasta n�iden ryhmien j�rjestyksen vaihtumista, eli vaikka p�iv�m��r� muistettaisiin sopivasti v��rin, tunnus olisi edelleen muodollisesti virheet�n. Eo. tunnuksesta muokattu esimerkki:
	7 2 1 0 0 3 - 1 2 1 2
	2 1 2 1 2 1   2 1 2
	5 2 2 0 0 3   2 2 2 = 18 → 2
Suomalaisessa henkil�tunnuksessa kahden p�iv�m��r��n kuuluvan kent�n (esim. p�iv�n ja kuukauden) vaihtuminen kesken��n havaitaan tarkisteen avulla aina, jos vaihto tuottaa muodollisesti virheett�m�n p�iv�m��r�n. Ruotsalaisessa tunnuksessa tarkiste ei paljasta t�llaista virhett� koskaan.

Yhden l�hteen mukaan p�iv� tai sek� p�iv� ett� kuukausi voivat olla nollia, mik� merkitsee ao. tiedon puuttumista. T�m� lienee tarpeen, koska Ruotsiin on muuttanut paljon ihmisi� maista, joissa tarkkoja syntym�p�ivi� ei aina ole merkitty muistiin. Jos t�llainen k�yt�nt� olisi my�s Suomessa, sen olisi varmaankin pit�nyt t�h�n menness� tulla jossakin vastaan. - Suomessa kerrotaan kyll� olevan henkil�it�, joiden virallinen syntym�p�iv� poikkeaa todellisesta, mutta heit� ei ole helppo yksil�id� pelk�n henkil�tunnuksen avulla.

Jos vuosiluvun kahta ensimm�ist� numeroa (18, 19 tai 20) tarvitaan, ne liitet��n varsinaisen henkil�tunnuksen eteen (niit� ei oteta huomioon tarkistetta laskettaessa). Juridisten henkil�iden vastaavassa tunnisteessa (organisationsnummer, annettu vuodesta 1975 alkaen) etuliite on tarvittaessa 16, esim. 16 916570-2292. N�m� tunnukset erottaa henkil�tunnuksista siit�, ett� positioissa 3..4 on kuukauden numeron sijasta 20 tai sit� suurempi luku. Tunnuksia k�ytt�v�t l�hinn� verottaja ja muut viranomaiset.

Ulkomaalaisille, joille ei voida antaa ruotsalaista henkil�tunnusta, mutta jotka tarvitsevat Ruotsissa jonkin tunnuksen, voidaan er�iden ruotsalaisten viranomaisten pyynn�st� antaa samordningsnummer, joka on muuten kuin personnummer, mutta kuukauden p�iv��n on lis�tty 60. T�llaisia henkil�it� ovat esim. tilap�isesti Ruotsissa ty�skentelev�t, naapurimaasta p�ivitt�in ty�ss� k�yv�t, yliopisto-opiskelijat, ruotsalaisissa laivoissa ty�skentelev�t, henkil�t jotka tarvitsevat ruotsalaisen ajokortin sek� vangit. N�it� tunnuksia on jaettu vuoden 2000 alusta alkaen.

Tunnukset ovat loppumassa kesken, koska Ruotsiin on muuttanut paljon ihmisi� maista, joissa syntym�p�iv�ksi kirjataan aina 1.1. tai 1.7., olipa todellinen syntym�p�iv� mik� tahansa. T�m�n vuoksi kes�kuussa 2008 on ehdotettu, ett� vuoden 2010 alusta alkaen annettavissa tunnuksissa (vastasyntyneet, maahanmuuttajat ja tunnusta vaihtavat) vuosi ja kuukausi ovat kuten nykyisin, mutta positioihin 5..6 tuotetaan syntym�p�iv�n sijasta satunnainen luku v�lilt� 01..31 (n�in asia on uutisoitu, mutta koska yhdeksi tavoitteeksi on asetettu mahdollisimman pienet muutoskustannukset, oletan ett� todellisuudessa yl�raja vaihtelee kuukauden pituuden mukaan kuten t�h�nkin saakka). Muuten tunnus pysyy ennallaan. Vanhat tunnukset eiv�t muutu. Samalla on ehdotettu, ett� jatkossa annetaan personnummer monille sellaisille henkil�ille, joille nyt annetaan samordningsnummer.


Moduli 10

Menetelm�� k�ytet��n Tuotekoodissa, ISMN-numerossa ja ISBN-13 -numeroissa. Sek� tavallisessa ett� lomitetussa 2/5 viivakoodissa (2 of 5 ja Interleaved 2 of 5) voidaan valinnaisesti k�ytt�� samaa tarkistusta.

Nimityst� Moduli 10 k�ytet��n usein muistakin kuin t�ss� kappaleessa kuvattavasta menetelm�st� (yhteens� ainakin kymmenest�). Yhteist� kaikille on luvun 10 k�ytt�minen jakajana, mutta muut yksityiskohdat vaihtelevat.

Tuotekoodi

Tuotekoodin tarkistusohjelma

Yleist�

Tuotekoodi l�ytyy sek� numerosarjana ett� viivakoodina useimmista kaupoissa myyt�vist� tuotteista. Tuotekoodi yksil�i tuotteen maailmanlaajuisesti valmistajalta l�pi koko jakeluketjun aina kassalle saakka, mik� helpottaa tavaroiden tunnistamista ja tuottaa suuria kustannuss��st�j�. Vuoden 2005 helmikuusta alkaen kaikkien Tuotekoodien muodostama j�rjestelm� ja siit� vastaava kansainv�linen organisaatio tunnetaan nimell� GS1 eli General Standard 1. Nimi viittaa siihen, ett� t�ll� alalla on vain yksi maailmanlaajuinen standardi. Aikaisemmin k�ytetyist� nimist� johdetut lyhenteet pysyv�t silti k�yt�ss� eri koodien nimiss�. T�ss� kuvattava tarkistusmenetelm� koskee seuraavia koodeja:
KoodiLyhyt kuvausVaihtoehtoisia nimi�Vastaava viivakoodi
EAN-13Suomessa ja useimmissa muissa maissa tavallisin, 13-numeroinen koodi.  EAN-13 ITF-14
EAN-88-numeroinen koodi; tarkoitettu k�ytett�v�ksi tuotteissa, joissa t�yspitk�lle koodille ei ole tilaa (k�yt�nt� ei aina vastaa teoriaa).  EAN-8
EAN-14EAN-13:n pidennetty 14-numeroinen versio. K�ytet��n yksitt�ist� kuluttajapakkausta suuremmissa tuote-eriss�.EAN/UCC-14, DUN-14 (Distribution Unit Number), SCC-14 (Shipping Container Code)ITF-14
UCC-1212-numeroinen koodi. K�ytet��n Yhdysvalloissa ja Kanadassa EAN-13:n sijasta. UPC-A UPC-E ITF-14
SSCC-18SSCC = Serial Shipping Container Code. 18-numeroinen koodi, jolla yksil�id��n tuotel�hetyksi�, ei tuotteita.SSCC, sarjatoimitusyksikk�koodiEAN-128
GSRN-tunnus, Global Service Relation Number, on 18-numeroinen tunniste, joka annetaan mm. s�hk�laitosten asiakkaille, mutta jota k�ytet��n laajasti muidenkin palveluiden vastaanottajien yksil�intiin. Sen tarkiste lasketaan samoin kuin SSCC-18:n (eli samoin kuin kaikkien tuotekoodien).
GLNGlobal Location Number. Vastaa muodoltaan EAN-13:a. K�ytet��n yritysten / laitosten ja niiden fyysisten, loogisten tai juridisten toimipaikkojen tunnistamiseen.EAN Location Number, EAN Location Code, International Location Number (ILN), maailmanlaajuinen osapuolitunnisteEAN-128
  • EAN-koodit (European Article Number tai International Article Number) ovat yleismaailmallisia.
  • UCC = Uniform Code Council, Tuotekoodeista Yhdysvalloissa ja Kanadassa vastaavan organisaation aikaisempi nimi, nykyisin GS1 USA.
  • UPC = Uniform Product Code, aikaisemmin Universal Product Code.
  • UPC-A on 12-numeroinen viivakoodi. Er��t UCC-12 -koodit voidaan nollia pois j�tt�m�ll� tiivist�� lyhyemmiksi, jolloin ne voidaan esitt�� UPC-E-viivakoodina, jota k�ytet��n kuten EAN-8:a. Tarkisteen laskeminen (ja kaikki muukin k�sittely tietoj�rjestelmiss�) edellytt�� koodin palauttamista 12-numeroiseksi.
  • Numeeriset koodit EAN-13, EAN-8, EAN-14 ja UCC-12 tunnetaan yhteisell� nimell� Global Trade Item Number (GTIN, maailmanlaajuinen tuotenumero).
  • GLN: Muutamissa maissa (Ranska, Benelux-maat, Etel�-Afrikka) tarkisteen laskenta voi poiketa kansainv�lisest� k�yt�nn�st�. GLN ja EAN-13 voivat olla identtisi�; sekaannuksen vaaraa ei ole, koska asiayhteydest� k�y aina ilmi kummasta on kyse.
  • Viivakoodit EAN-13, EAN-8, UPC-A ja UPC-E tunnetaan yhteisell� nimell� GS1-viivakoodi. N�it� k�ytet��n vain Tuotekoodien esitt�miseen. Koodit eroavat toisistaan siten, ett� viivakoodinlukija pystyy ne tunnistamaan, mutta kaikki perustuvat samaan symbolij�rjestelm��n.
  • ITF = Interleaved Two of Five (I25, lomitettu 2/5). Yleisk�ytt�inen viivakoodi, jota voidaan k�ytt�� mm. Tuotekoodien esitt�miseen. Muut kuin EAN-14 esitet��n ITF-muodossa yleens� vain, jos pinnan laatu tekee GS1-viivakoodin lukemisen tavallista alttiimmaksi virheille (esim. aaltopahvi). ITF on tiivis tapa esitt�� lyhyit� numerosarjoja. Se on my�s yksinkertainen - ainoa viivakoodi jota osaan lukea ilman k�sill� olevia dokumentteja.
  • Koodien nimiss� mainitut numerom��r�t sis�lt�v�t aina tarkistenumeron.
  • EAN-128:a ei kuvata t�ss� dokumentissa tarkemmin.
UCC-12 -koodia k�ytet��n siis USA:ssa ja Kanadassa - joskus my�s muunmaalaisissa tuotteissa, joita vied��n n�ihin maihin. UCC-12 voidaan tulkita EAN-13:n erityistapaukseksi, jossa ensimm�inen numero on aina nolla ja j�tet��n yleens� merkitsem�tt�. EAN-13 voidaan samalla tavalla tulkita EAN-14:n erityistapaukseksi. Tietoj�rjestelmiss� kaikki GTIN-koodit esitet��n 14-numeroisina, oikeaan reunaan tasattuina ja tarpeen mukaan etunollitettuina.
Kansainv�linen GS1 laatii Tuotekoodeja koskevat kansainv�liset standardit ja jakaa maatunnukset. Kussakin GS1:een liittyneess� maassa on kansallinen GS1-organisaatio (nimelt��n GS1 <maan nimi>), joka laatii kansainv�listen standardien puitteissa kansalliset standardit ja jakaa valmistajatunnukset. Kukin valmistaja antaa koodit omille tuotteilleen. T�m�n j�rjestelm�n puitteissa kukaan ei yll�pid� kansallista tuotetunnusrekisteri� tai kansainv�list� valmistajatunnusrekisteri�. (Tosin jotkin yritykset kokoavat koodiluetteloita ja myyv�t niit� tukku- ja v�hitt�isliikkeille.) J�rjestelm� on siis hyvin hajautettu, tulee toimeen minimim��r�ll� hallinnointia ja kustannuksia ja pystyy sopeutumaan paikallisiin tarpeisiin. Silti jokainen valmistajan antama Tuotekoodi on maailmanlaajuisesti uniikki. Ei mik��n v�h�inen saavutus.

Poikkeuksia: GS1 voi antaa tunnuksia suoraan valmistajille tai jopa yksitt�isille tuotteille maissa, joissa kansallista GS1-organisaatiota ei ole. EAN-8 -koodit kansallinen GS1 antaa suoraan yksitt�isille tuotteille, koska n�it� koodeja on melko rajoitetusti.

Vaikka t�ss� esityksen lyhent�miseksi puhutaan valmistajasta koodin antajana, t�ll� tarkoitetaan kaikkia niit� tahoja jotka antavat koodeja yksitt�isille tuotteille.

L�htein� on k�ytetty mm. GS1:n (entinen EAN International), GS1 USA:n (entinen Uniform Code Council) ja GS1 Finlandin (entinen EAN-Finland) kotisivuja. GS1 USA on GS1:n j�sen; Uniform Code Council oli rinnakkainen EAN Internationalin kanssa.

Tuotekoodin tavanomainen rakenne

EAN-8:n kaksi tai kolme ensimm�ist� numeroa ovat maatunnus ja seuraavat viisi tai nelj� numeroa osoittavat sek� valmistajan ett� tuotteen. Viimeinen numero on tarkiste. Monissa tapauksissa EAN-13 jakautuu osiin seuraavasti: Maatunnus (2 tai 3 numeroa), valmistaja (5 tai 4 numeroa), tuote (5 numeroa) ja tarkiste (1 numero). Valmistajatunnus voi kuitenkin olla pitempi ja tuotetunnus vastaavasti lyhyempi tai p�invastoin - pitemm�t valmistajatunnukset ovat halvempia. Useilla Euroopan mailla ja er�ill� muilla taloudellisesti t�rkeill� mailla (Japani) on kaksinumeroiset maatunnukset, kun taas pienemm�t, my�hemmin mukaan tulleet ja/tai Euroopan ulkopuoliset maat ovat saaneet kolminumeroiset maatunnukset. Joillakin isoilla Euroopan mailla (Italia) on useita kaksinumeroisia ja joillakin muilla isoilla mailla (Kiina) useita kolminumeroisia maakoodeja. My�s nelinumeroisia maatunnuksia on k�yt�ss�.

Suomalaiset koodit alkavat yleens� numeroilla 64, mutta maatunnus ei automaattisesti kerro valmistusmaata, vaan koodin voi antaa my�s esim. maahantuoja, pakkaaja tai kauppiaiden yhteenliittym�. Jos samaa tuotetta valmistetaan useissa maissa, kaikki voivat k�ytt�� yhden valmistusmaan tai yhti�n p��konttorin sijaintimaan koodia. Esim. suomalainen maahantuoja voi antaa thaimaalaiselle tonnikalapurkille suomalaisen Tuotekoodin, ja sek� suomalaisissa ett� italialaisissa Coca-Cola -pulloissa oli belgialainen Tuotekoodi (54; Suomessa koodi vaihtui 64-alkuiseksi vuonna 2008 kun siirryttiin k�ytt�m��n pantillisia kertak�ytt�pulloja). Suomessa valmistajatunnukset ovat yleens� 5- tai 7-numeroisia ja tuotetunnukset vastaavasti 5- tai 3-numeroisia. EAN-13:lla on useita erikoistapauksia.

Harvinainen 0-alkuinen EAN-13 on itse asiassa UCC-12, jollaiseksi viivakoodinlukijakin sen tunnistaa, vaikka se olisi tulostettu EAN-koodin n�k�isen�. T�m� voidaan ymm�rt�� niin, ett� 0 on Yhdysvaltain ja Kanadan poikkeuksellinen yksinumeroinen maatunnus, vaikkei asiaa kovin usein n�in esitet�. Olen n�hnyt t�llaisia koodeja CD-levyjen koteloissa. Toinen numero (= normaalisti UCC-12 -koodin ensimm�inen tulostuva numero) kertoo UCC-12 -koodin tarkemman tyypin, ja muut numerot ovat kuten EAN-13:ssa. Joissakin tapauksissa kahdella tai kolmella valmistajalla voi olla sama 5-numeroinen valmistajatunnus, jolloin ne erotetaan edelt�v�n numeron (0, 6 tai 7) perusteella. Vuodesta 2000 alkaen UCC-12 -koodit voivat alkaa my�s numeroilla 1, 8 ja 9 ja valmistajatunnuksen pituus voi vaihdella. UCC-12 -koodin ensimm�inen numero voi olla muu kuin t�ss� mainittu; t�llaisilla numeroilla on erityismerkityksi�. Yhdysvalloille on varattu my�s EAN-tunnusten maakoodit 10..13 ja Kanadalle 754..755.

Kuljetuspakkausten koodit

EAN-14 on muuten kuten EAN-13, mutta eteen on lis�tty yksi numero, joka kertoo jotakin kuljetuspakkauksen sis�ll�st�, tavallisesti sis�ll� olevien identtisten kuluttajapakkausten lukum��r�st�:
  • 0 = Tavallinen EAN-13 etunollitettuna (yksi pakkaus).
    Tai: Standardivalikoima erilaisia tuotteita, joilla kullakin on oma koodinsa. T�llaisessa tapauksessa EAN-14 yksil�i ko. valikoiman, ja koodin loppuosa poikkeaa sis�ll� olevien pakkausten koodeista.
  • 1..8 = Katsotaan tietokannasta ao. tuotteen kohdalta. Numero ei kerro kuluttajapakkausten m��r�� suoraan, ja numeroa vastaava yksikk�m��r� vaihtelee riippuen siit� mik� tuote on kyseess�. Numerosarjan loppuosa (paitsi tarkiste) on sama kuin er��n sis�ltyviss� tuotteissa.
  • 9 = Ep�m��r�inen koko eli tieto on saatava jostakin muualta. Sis�ll�ll� ei ole omaa koodia (esim. painon mukaan myyt�v� tuote).
Esimerkki: Panda salmiakkilakritsi. Yksitt�isen patukan koodi on 6412500070010. 40 patukkaa sis�lt�v�n laatikon koodi on 16412500070017, jonka selitteeksi on t�ss� tapauksessa merkitty "DUN" (vrt. kohta Yleist�). Molemmat koodit on merkitty pakkaukseen numeroin, ja EAN-14 my�s viivakoodilla ITF-14.

SSCC-18:ssa ensimm�inen numero kertoi aikaisemmin pakkauksen tyypin (ei kokoa), vaihtoehdot 0..4 olivat k�yt�ss�. Vuoden 2001 alusta l�htien l�hett�j� saa m��ritell� t�m�n numeron ja sen merkityksen vapaasti. Seuraavat numerot ovat l�hett�j�n tunnus, sama kuin EAN-13:n maa- ja valmistajatunnus, usein 7-numeroinen mutta pituus voi vaihdella. N�it� seuraa l�hetyksen sarjanumero, jolle l�hett�j� voi halutessaan m��ritell� sis�isen rakenteen omien tarpeidensa mukaan (tietokannan kautta selvitett�viss� esim. sis�lt�, l�hetysp�iv�, kuljetustapa ja vastaanottaja). Maatunnuksen, valmistajatunnuksen ja sarjanumeron yhteinen pituus on 16 numeroa. Viimeisen� on tarkiste. SSCC-18:n edess� voi olla sovellustunnus (00). Samaa SSCC-18:aa ei saa k�ytt�� uudelleen ennen kuin vuoden kuluttua edellisest� k�ytt�kerrasta. SSCC-18 -koodattu kuljetuspakkaus voi sis�lt�� pakkauksia, joiden p��ll� on EAN-14.

EAN-13:n erikoistapauksia

T�m� ei pyri olemaan t�ydellinen luettelo, vaan vain kokoelma esimerkkej� sen havainnollistamiseksi, kuinka monimuotoinen ilmi� Tuotekoodi on.

2- ja 02-alkuiset koodit on varattu k�ytett�viksi tuotteissa, joille valmistaja ei anna normaalia Tuotekoodia. T�llaisia ovat esim. painon mukaan myyt�v�t tuotteet. K�yt�nn�t vaihtelevat maittain. Suomessa k�ytett�v�t koodit muodostuvat seuraavista osista:

Kaupan sis�inen k�ytt�, mm. kaupassa punnittavat tuotteet ja pullonpalautuskuitit20Vakio 00 Tuotteen tunnus, 4 numeroaHH,HH Tarkiste
21HHH,H
22HHHH
28Tuotteen tunnus, 5 numeroa HHH,HH
Kaupan sis�inen k�ytt� 02Tuotteen tunnus, 10 numeroa
23 Vakio 00Tuotteen tunnus, 4 numeroa P,PPP
24PP,PP
25PPP,P
Tehtaalla yksitellen punnittavat tai muuten mitattavat tuotteet23 Valmistajan tunnus, 4 numeroa Tuotteen tunnus, 2 numeroaP,PPP
24PP,PP
25PPP,P

  • H = hinta, P = paino tai muu yksikk�. Desimaalipilkku ei sis�lly koodiin, vaan sen paikka p��tell��n koodin alkuosasta.
  • 21..22-alkuisissa koodeissa summa on py�ristetty, joten viivakoodista kassalla luettava hinta voi poiketa numeroin merkityst�.
  • Joissakin maissa on oma koodinsa kappaleittain myyt�ville tavaroille (eli koodi ilmoittaa hinnan tai painon sijasta esim. laatikossa olevien leivosten lajin ja lukum��r�n), mutta Suomessa k�ytet��n samoja koodeja kuin kaupassa punnittavilla tuotteilla. Loogisesti t�llainen koodi voisi olla Suomessa 26-alkuinen (PPPP).
  • Vakiomittainen tuote, jolla ei ole omaa EAN-koodia, voidaan yksil�id� kaupassa 02-alkuisella koodilla; t�st� on esimerkki kohdassa T-koodi.
  • GS1 Finland suosittelee, ett� myym�l�t antavat tuotteille tunnuksia seuraavan ryhmittelyn mukaisesti:
    • 0001..0999 Myym�l�n itse numeroimat tuotteet
    • 1000..1999 Liha, grillituotteet
    • 2000..2999 Liha- ja einesvalmisteet
    • 3000..3499 Juustot, kananmunat
    • 3500..3999 Leipomotuotteet
    • 4000..4999 Kalat ja �yri�iset
    • 5000..5999 Tuoreet hedelm�t
    • 6000..6999 Juurekset, vihannekset, marjat ja sienet
    • 7000..8999 Varalla
    • 9000..9999 Muut tuotteet
  • Vaikka 23..25-alkuisiin koodeihin tavallisesti sis�ltyy ostoksen paino, muut vaihtoehdot ovat mahdollisia. Jos esim. kauppa on antanut metreitt�in myyt�v�lle k�ydelle koodin 9876, hintalappuun tulostettu 2400987611257 tarkoittaa, ett� k�ytt� on ostettu 11,25 metri�, mist� kassaj�rjestelm� osaa laskea hinnan.
  • Valmiiksi pakattu liha on hyv� esimerkki valmistajan (pakkaajan) yksitellen punnitsemista tuotteista; koska pakkausten painoissa on vaihtelua, hinnat vaihtelevat samassa suhteessa.
  • Nelinumeroisesta valmistajan tunnuksesta voidaan muodostaa my�s vakiomittaiselle tuotteelle Tuotekoodi: 640VVVVTTTTTC, jossa V on valmistajan tunnus, T on tuotteen tunnus ja C on tarkiste. T�llainen valmistajan tunnus ei n�ht�v�sti voi olla 00-alkuinen.
Olen n�hnyt suomalaisessa tarjouskupongissa my�s 26-alkuisen EAN-13 -koodin (2610000002232), jollaisia GS1 Finland ei tunne.

Vain melko harvoissa tapauksissa pit�� paikkansa laajalle levinnyt k�sitys, jonka mukaan tuotteen hinta on jotenkin sis�llytetty Tuotekoodiin. Yleens� koodi on pelkk� tunniste, jonka avulla hinta l�ytyy tietokannasta. Asia tulee aika selv�ksi, jos ajatellaan vaikkapa suklaapatukkaa, jota myyd��n t�sm�lleen samanlaisessa pakkauksessa ja samalla Tuotekoodilla varustettuna kymmeniss� maissa kymmenill� valuutoilla, ja samankin valuutan puitteissa vaihtelevilla hinnoilla.

EAN-13:sta on joissakin maissa k�ytetty kansallisia nimi�, joihin lukemattomat tekstit Internetiss� edelleen viittaavat, vaikka GS1:n dokumentit eiv�t niit� nykyisin tunne. Esimerkkej�:

  • Japani: Japanese Article Number, JAN, maakoodit 45 ja 49
  • Etel�-Korea: Korean Article Number, KAN-13, maakoodi 880
  • Australia: Australian Product Code, APC, maakoodi 93
Suomessa myyt�vill� s�hk�tarvikkeilla on SSTL:n (Suomen s�hk�tukkuliikkeiden liitto) antama 7-numeroinen s�hk�numero, joka muodostuu kolmesta osasta: Kaksinumeroinen tuoteryhm�numero, kolminumeroinen alaryhm�numero ja kaksinumeroinen yksil�numero. Nimikkeit� on reilusti yli 100 000 ja n�ist� n. 30 %:lla on tavanomainen Tuotekoodi, mutta muille se muodostetaan alkuosasta 64100, s�hk�numerosta ja normaalista Tuotekoodin tarkisteesta. Esim: 1602012 → 6410016020123. - Hyvin samantapaiset s��nn�t koskevat Suomen putkikauppiasyhdistyksen (SPY) LVI-numeropankkiin rekister�ityj� tuotteita, joiden LVI-numero voidaan muuttaa Tuotekoodiksi etuliitteell� 64158.

Kirjoissa EAN-13:n ensimm�iset numerot ovat usein 978, jolloin seuraavat yhdeks�n numeroa ovat kirjan ISBN-numero (ISBN-10) ilman ISBN-numeron omaa tarkistemerkki�. Asia ilmaistaan joskus niin ett� kirjoilla on maatunnus, joka viittaa Bookland-nimiseen maahan, tai puhutaan Bookland-koodista ("kirjamaatunnus"), johon tyypillisesti kuuluu EAN-2 tai EAN-5 lis�koodi. Nimi voidaan kirjoittaa my�s muodossa Booklan tai BookLan, mutta merkityseroa ei n�yt� olevan. Joissakin kirjoissa ISBN-numeroa k�ytet��n suoraan Tuotekoodina, mik� n�ytt�isi olevan vastoin standardia (tarkiste lasketaan tietysti Tuotekoodin s��nn�ill�). Vuodesta 2007 alkaen kirjoissa k�ytet��n my�s 9791..9799-alkuisia koodeja, kts. ISBN-13. Lehdiss� (ei suomalaisissa, mutta ainakin australialaisissa, englantilaisissa, etel�afrikkalaisissa ja virolaisissa) ensimm�iset numerot ovat 977 ja seuraavat seitsem�n numeroa ovat lehden ISSN-numero j�lleen ilman tarkistemerkki�. Seuraavat kaksi numeroa ovat nollia tai sis�lt�v�t julkaisun tyypist� riippuvia lis�tietoja, esim. hintakoodin. Suomalaisissa lehdiss� Tuotekoodi muodostetaan nykyisin Jakelukoodista. 9790-alkuiset koodit taas ovat ISMN-numeroita.

Useiden ulkomaisten l�hteiden mukaan er�ill� muilla numeroilla alkavia koodeja k�ytet��n seuraaviin erityistarkoituksiin:

980Refund receipts
981..984Common Currency Coupons
99Coupons / In-Store Coupons

980-alkuisesta koodista on vain niukasti tietoja. N�ytt�� silt�, ett� sit� k�ytet��n kuiteissa, joita vastaan palautetaan rahaa joistakin ostoksista (esim. pullonpalautuskuitit). Koodin rakenne on maakohtainen, mutta suositus on ett� positiot 4..8 sis�lt�v�t kuitin yksil�iv�n numeron ja positiot 9..12 palautettavan summan.

Euroalueella 981..983-alkuisissa koodeissa positiot 4..7 yksil�iv�t alennuskupongin antajan, positiot 8..9 ovat kupongin referenssinumero (esim. tarjouskampanjan tunniste) ja positiot 10..12 ilmoittavat kupongin arvon. 981-alkuisessa koodissa arvo ilmoitetaan kymmenin� senttein� (maksimi 99,90 €), 982- ja 983-alkuisissa senttein� (maksimi 9,99 €). Jos tuote on ilmainen, arvo on 000. 984-alkuisesta koodista en l�yd� dokumenttia.

980..983-alkuisten koodien k�yt�st� Suomessa ei ole havaintoja.

99-alkuinen koodi tunnetaan my�s nimell� EAN-99, ja Suomessa sit� k�ytet��n ainakin K-kaupparyhm�n Plussa-pisteseteleiss� (Plussa-kortilla ker�t��n ostoksista Plussa-pisteit�, ja tietyll� pistem��r�ll� saa Plussa-pistesetelin, jolla voidaan maksaa ostoksia). Jokaisessa seteliss� on ilmeisesti yksil�llinen koodi, jolla ei n�yt� olevan helposti tunnistettavaa rakennetta. Koodeja on my�s Plussa-pistesetelien kanssa k�ytett�viss� tarjouskupongeissa. Muualla maailmassa t�llaiset alennuskupongit lienev�t yleisempi�. Ruotsissa k�ytett�viss� kupongeissa koodissa voi n�ky� kupongin arvo samaan tapaan kuin suomalaisissa 20..22-alkuisissa koodeissa. Yhdysvaltalaiset dokumentit taas kuvaavat aivan erilaisen rakenteen ja hiukan erilaisen k�ytt�tavankin. Ilmeisesti asia m��ritell��n maakohtaisesti.

Tarkistus

Numeerinen Tuotekoodi merkit��n viivakoodin alle, mutta my�s viivakoodin edess� ja j�ljess� on yleens� numeroita, jotka on otettava huomioon. Viimeinen numero on tarkiste. UCC-12:sta se voi joskus puuttua, vaikka se sis�ltyy viivakoodiin.

Tarkisteen laskenta: Tarkistusnumeron edess� olevia numeroita painotetaan kertoimilla 3, 1, 3, 1 jne. oikealta alkaen. Tulot lasketaan yhteen. Tarkistusnumero on numero, joka summaan on lis�tt�v� jotta tulos olisi tasan jaollinen kymmenell�. Esimerkkej�:

	 6  4  1  0  1  0  7  2  1  0  3  3  4		EAN-13
	 1  3  1  3  1  3  1  3  1  3  1  3		(Suomi)
	 6 12  1  0  1  0  7  6  1  0  3  9  = 46 → 4
	 9  7  8  9  5  2  5  1  5  9  0  0  4		EAN-13
	 1  3  1  3  1  3  1  3  1  3  1  3		(kirja)
	 9 21  8 27  5  6  5  3  5 27  0  0  = 116 → 4
	 5  4  4  9  0  2  4  6				EAN-8
	 3  1  3  1  3  1  3				(Belgia)
	15  4 12  9  0  2 12  = 54 → 6
	 0  5  4  6  5  1  1  9  1  0  9  9		UCC-12
	 3  1  3  1  3  1  3  1  3  1  3
	 0  5 12  6 15  1  3  9  3  0 27  = 81 → 9
	 0  3  3  7  5  9  0  5				UCC-12
							(tiivistetty)
	 0  3  3  0  0  0  0  0  7  5  9  5		Sama ilman
	 3  1  3  1  3  1  3  1  3  1  3		tiivistyst�
	 0  3  9  0  0  0  0  0 21  5 27  = 65 → 5
Viimeisess� esimerkiss� kannattaa huomata, ett� tarkisteen laskeminen suoraan tiivistetyst� muodosta antaa v��r�n tuloksen. Tiivistetty koodi voidaan palauttaa alkuper�iseen muotoonsa seuraavasti:
  • Jos viimeinen numero ennen tarkistusnumeroa (z) on 0..2:
    0 xxyyyz c → 0 xxz00 00yyy c
  • Jos viimeinen numero ennen tarkistusnumeroa on 3:
    0 xxxyy3 c → 0 xxx00 000yy c
  • Jos viimeinen numero ennen tarkistusnumeroa on 4:
    0 xxxxy4 c → 0 xxxx0 0000y c
  • Jos viimeinen numero ennen tarkistusnumeroa (z) on 5..9:
    0 xxxxxz c → 0 xxxxx 0000z c
Tarkistusnumero (c) pysyy samana, koska se lasketaan aina tiivist�m�tt�m�st� versiosta. Tiivistys tehd��n samoilla s��nn�ill� kuin yll�, edellytt�en ett� alkuper�inen koodi vastaa jotakin eo. malleista. Osa numeroavaruudesta on varattu yritysten sis�iseen k�ytt��n, jolloin muunnosta koskevat s��nn�t ovat erilaiset. Tiivistett�v�n koodin ensimm�inen numero voi olla vain 0 tai 1.

Muita tietoja ja lis�koodeja

EAN-13:n ensimm�inen numero ja UPC-E:n tarkiste eiv�t sis�lly viivakoodiin samalla tavalla kuin muut numerot, vaan ne p��tell��n siit�, miss� j�rjestyksess� ns. parillisia ja parittomia viivakoodisymboleja on k�ytetty kuuden ensimm�isen viivakoodiin sis�ltyv�n numeron esitt�miseen. UPC-E:n tapauksessa ensimm�inen numero piilotetaan viivakoodiin kuten tarkiste, ja se voi olla 0 tai 1, eli 6 viivakoodisymbolilla esitet��n 8 numeroa, jotka sitten laajennetaan 12-numeroiseksi UCC-12 -koodiksi.

L�hinn� painotuotteissa (mutta joskus olutt�lkeiss�kin) voidaan k�ytt�� varsinaisen EAN-8:n tai EAN-13:n lis�ksi 2- tai 5-numeroisia EAN-2 ja EAN-5 -koodeja, joiden tarkisteet lasketaan eri tavoilla kuin EAN-13:n, mutta koska tarkisteita ei tulosteta numeroina, vaan ne piilotetaan viivakoodisymbolien pariteettiin, niiden tarkempia kuvauksia ei ole otettu mukaan (EAN-5:ss� menetelm� on Kerroin 39). Vastaavia lis�koodeja voidaan k�ytt�� my�s UPC-A:n ja UPC-E:n kanssa. Lis�koodien merkitys vaihtelee. Olen my�s n�hnyt EAN-5:n erillisen� tarrassa, joka luultavasti sis�lsi varash�lyttimen.

Viivakoodisymbolien pariteetin k�ytt�� tiedon tallennukseen voidaan verrata siihen, jos ihmisten luettaviksi tarkoitettuja numeroita kirjoitetaan kahdella eri v�rill� tai s�vyll�, jotka eiv�t muuta merkkien j�rjestyst� tai numeerisia arvoja, mutta joiden valinnalla voidaan koodata mukaan jokin lis�tieto. Esim. viidest� numerosta kaksi on harmaita ja loput mustia, ja n�iden vuorottelu v�litt�� jonkin itse numeroiden merkityksest� riippumattoman tiedon. T�ss� tapauksessa vaihtoehtoja on kymmenen, mik� sopivasti riitt�� yhden ylim��r�isen numeron esitt�miseen: 98024   98024   98024   98024   98024
98024   98024   98024   98024   98024
Yhdistelmien merkitys on tietenkin sopimuksenvarainen. Muualla kuin (Tuotekoodien) viivakoodeissa t�llaista tuskin k�yt�nn�ss� tehd��n - t�ss� yritet��n vain havainnollistaa periaatetta. (Huom! Yll�olevat numerosarjat voivat tulostua kirjoittimelle t�ysin mustina, mutta n�yt�ll� niiden pit�isi n�ky� oikein.)

Suomalaisissa lehdiss� EAN-5:n kaksi ensimm�ist� numeroa ovat samat kuin ilmestymisvuoden kaksi viimeist� numeroa (2001 → 01) ja kolmas numero on kaikissa havaituissa tapauksissa nolla (poikkeuksena kuitenkin er��t vuoden 2001 alussa julkaistut lehdet, joissa koodi oli virheellinen). Kaksi viimeist� numeroa ovat viikkonumero jos lehti ilmestyy kerran viikossa tai useammin, muussa tapauksessa lehden numero. Esim. kuukausittain julkaistavan lehden vuoden 1998 viimeisen numeron koodi: 98012.

Tuotekoodit ovat yksil�ivi� siin� mieless�, ett� maailmasta ei pit�isi l�yty� samanaikaisesti kahta erilaista myynniss� olevaa tuotetta, joilla on sama valmistajan antama koodi, mutta kun jonkin tuotteen valmistus lopetetaan, sen koodi voidaan antaa toiselle tuotteelle nelj�n vuoden karenssiajan j�lkeen. Vaatteilla karenssiaika on kaksi ja puoli vuotta.

Viivakoodinlukijat ja atk-j�rjestelm�t, jotka on suunniteltu k�sittelem��n EAN-koodeja, pystyv�t useimmiten k�sittelem��n my�s UPC/UCC-koodeja. L�hinn� atk-j�rjestelmien puutteiden vuoksi t�m� ei aikaisemmin ole toisin p�in onnistunut, mutta vuoden 2005 alusta alkaen j�rjestelmien pit�isi olla yhteensopivia molempiin suuntiin.

Yleens� viivakoodin lukeminen edellytt��, ett� koodin edess� ja j�ljess� on alue, jossa ei ole mit��n merkint�j� ("quiet zone"). GS1-viivakoodeja k�ytett�ess� numeerisen koodin alussa ja/tai lopussa on joskus < tai > joiden k�rki osoittaa mihin saakka tyhj� alue ulottuu.

Tuotekoodi ja "Pedon luku" 666

T�t� teksti� en olisi halunnut kirjoittaa, mutta katsoin sen v�ltt�m�tt�m�ksi, kun t�m� dokumentti oli aiheeseen yhdistetty er��ll� Internetin keskustelupalstalla. Valitettavasti jotkut ovat p��tt�neet, ett� t�m�kin huuhaa on Yhdysvalloista Suomeen levitett�v�, joten yleisen harhaanjohtamisen v�ltt�miseksi jonkun t�ytyy my�s antaa rationaalinen vastine.

V�ite: Jokaisen Tuotekoodin viivakoodiesitykseen sis�ltyy Pedon luku 666. Numeron 6 viivakoodisymboli on kaksi kapeaa mustaa viivaa, ja t�m� yhdistelm� l�ytyy jokaisen viivakoodin alusta, keskelt� ja lopusta. Siis kolme kuutosta.

Lyhyt vastine: V�ite ei pid� paikkaansa, vaan perustuu siihen, ett� viivakoodij�rjestelm�� ei ole ymm�rretty oikein. Useimmat ihmiset eiv�t tunne viivakoodeja yksityiskohtaisesti, joten virheellinen tieto, jota joku vakavissaan todeksi v�itt��, on helppo hyv�ksy� ilman kritiikki�.

Pitempi vastine menee valitettavasti v�ist�m�tt� hiukan tekniseksi. Ymm�rt�mist� helpottaa, jos otat k�sille muutaman t�llaisen viivakoodin (mieluiten isokokoisia) koska t�ss� esityksess� ei ole mukana kuvia, paitsi jos seuraat lopussa olevaa linkki�. K�yt�n sanoja "musta" ja "valkoinen", jotka useimmiten osuvat kohdalleen, mutta muutkin vaihtoehdot ovat mahdollisia.

Viivakoodien kokoja ei yleens� m��ritell� absoluuttisesti, vaan k�ytet��n k�sitett� "yksikk�" ("unit", "element" tai "module"), jonka leveydelle m��ritell��n ala- ja yl�raja. Useimmiten kapein viiva on yhden yksik�n levyinen, ja muut t�m�n kokonaisia monikertoja. EAN-13:ssa ja UPC-A:ssa viivojen leveydet ovat 1, 2, 3 tai 4 yksikk��. Se mit� 666-intoilijat eiv�t ymm�rr� on, ett� mustien viivojen v�liin j��v�t valkoiset alueet (t�st� eteenp�in valkoiset viivat) ovat aivan yht� t�rkeit� kuin mustatkin. T�m� ymm�rryksen puute voi selitty� sill�, ett� aiheeseen perehtym�tt�m�t ihmiset rinnastavat viivakoodin tavalliseen tekstiin, jossa sanav�leill� on merkityst�, mutta niiden t�sm�llisill� leveyksill� yleens� ei. Viivakoodien maailmassa t�llainen talonpoikaisj�rki ei toimi. Valkoisten viivojen leveyksille on samat vaihtoehdot kuin mustilla viivoilla.

EAN-13 -viivakoodin alussa, keskell� ja lopussa on kohdistusviivat, jotka yleens� ovat muita pitempi� ja erottuvat siksi helposti. Viivojen pituudella ei kuitenkaan ole merkityst� koodia koneellisesti luettaessa. Kaikki viivakoodij�rjestelm�t k�ytt�v�t kohdistusviivoja tai muita alku- ja loppumerkkej�, joiden perusteella viivakoodinlukija tunnistaa yksik�n koon ja k�ytetyn j�rjestelm�n - useimmat lukijat pystyv�t lukemaan kymmeni� eri j�rjestelmi� ilman, ett� lukijalle etuk�teen kerrotaan mink� j�rjestelm�n viivakoodia on tarkoitus lukea. Koodissa on my�s 12 numerosymbolia, kuusi keskimm�isten kohdistusviivojen kummallakin puolella. Numeerisen koodin ensimm�iselle numerolle ei ole omaa viivakoodisymbolia, jonka vuoksi t�m� numero sijoitetaan tavallisesti viivakoodin eteen, eik� alle kuten muut numerot.

Kaikki kohdistusviivat ovat yhden yksik�n levyisi�. Alussa ja lopussa on kaksi mustaa ja yksi valkoinen viiva, siis yhteens� kolme yksikk�� kummassakin p��ss�. Keskell� on kolme valkoista ja kaksi mustaa viivaa, yhteens� viisi yksikk��. Jokainen numerosymboli muodostuu kahdesta mustasta ja kahdesta valkoisesta viivasta, joiden yhteinen leveys on seitsem�n yksikk��. Koodin vasemmalla puolella jokainen numerosymboli alkaa (vasemmalta oikealle edett�ess�) valkoisella viivalla, oikealla puolella taas mustalla.

Numeron 6 ja kohdistusviivojen samanlaisuus on n�k�harha, joka perustuu siihen, ett� valkoisia viivoja ei ymm�rret� symbolien merkityksellisiksi osiksi. Todellisuudessa numeron 6 symboli muodostuu kahdesta yhden yksik�n levyisest� mustasta viivasta, yhdest� yhden yksik�n levyisest� valkoisesta viivasta ja yhdest� nelj�n yksik�n levyisest� valkoisesta viivasta, eik� siis seitsem�n yksik�n levyisen� voi mitenk��n olla sama asia kuin kolmesta tai viidest� yksik�st� muodostuvat kohdistusmerkit. Jos huomio kohdistetaan vain valkoisiin viivoihin, havaitaan ett� jokaisessa numerosymbolissa on kaksi valkoista viivaa, kun taas kohdistusmerkeiss� niit� on yksi tai kolme. Eli ei mit��n yhdenn�k�isyytt�. Lis�ksi voidaan todeta, ett� koodin vasemmalla puolella kuutosen symboli voi esiinty� my�s muodossa, jossa musta ja valkoinen ovat vaihtaneet paikkaa. Suomalaisessa 64-alkuisessa koodissa t�m� voi tapahtua niiss� kahdessa positiossa, jotka ovat l�hinn� keskimm�isi� kohdistusviivoja. UPC-A -koodin vasemmalla puolella k�ytet��n vain t�t� muotoa, mink� 666-intoilijat poikkeuksetta j�tt�v�t vaille huomiota, koska heille ei sovi sellainen todellisuus, joka liian selv�sti poikkeaa heid�n teoriastaan.

Johtop��t�s: Viivakoodin kohdistusviivat eiv�t sis�ll� lukua 666.

Silti on v�itetty, ett� viivakoodin suunnittelijat olisivat tahallisesti valinneet numerolle 6 symbolin, joka "muistuttaa" kohdistusviivoja. Oman k�sitykseni mukaan he tiesiv�t mik� on kohdistusviivojen rakenne ja mit� ne tarkoittavat (eli niill� ei ole varsinaista tietosis�lt��), eik� heille tullut mieleen ett� joku alkaisi tulkita niit� joksikin mit� ne eiv�t ole. Numerosymbolit ja kohdistusviivat eiv�t edes muistuta toisiaan, kun koodia luetaan oikein.

My�s on esitetty, ett� kohdistusviivat vastaisivat esim. A-kirjaimia. Tuskin v�ite suoranaisesti v��r� on, muttei se ole my�sk��n yleisp�tev� totuus: Kun viivakoodeja tuotetaan jollakin ohjelmalla tai viivakoodifonttia k�ytt�en, kohdistusviivojen paikka suhteessa numerosarjaan voidaan joutua osoittamaan jotenkin, ja silloin niit� voi edustaa vaikkapa jokin kirjain. Valmiin viivakoodin tietosis�lt�n� on kuitenkin pelkki� numeroita. Viivakoodinlukija ei siit� kirjaimia l�yd�. T�m� siis koskee nimenomaan EAN-13:a ja UPC-A:ta - tietysti on olemassa muita viivakoodij�rjestelmi�, joilla voidaan esitt�� my�s kirjaimia.

Jos kohdistusviivat sittenkin v�ltt�m�tt� halutaan tulkita v��rin, osaisiko joku kertoa mist� alkaen jokin luku on muodostunut kolmesta erillisest� numerosta, joiden v�liss� on muita numeroita? T�ll� periaatteella mink� tahansa kolminumeroisen luvun l�yt�� mm. lukemattomista puhelinnumeroista (vaikkapa 626 3465). Tied�n kyll� taistelevani tuulimyllyj� vastaan, koska niihin jotka haluavat uskoa huuhaa-juttuja ei mik��n logiikka tai j�rki vaikuta.

Jostakin syyst� Pedon luvun etsij�t unohtavat mainita, etteiv�t he pysty uskottelemaan edes itselleen, ett� 666 olisi l�ydett�viss� UPC-E:st�, vaikka sen "pit�isi" l�yty� "kaikista" viivakoodeista.

Ilman v��r�� vaatimattomuutta uskallan v�itt�� tuntevani t�m�n asian paremmin kuin 95 % niist� ihmisist�, jotka uskovat siit� jotakin tiet�v�ns�. V�ite perustuu siihen, ett� olen kirjoittanut ohjelmapaketin, joka tuottaa EAN-13 -viivakoodeja k�ytt�m�tt� mit��n valmista viivakoodifonttia (eli tein "fontin" itse). T�t� tehdess�ni sain perehty� asiaan pikselin tarkkuudella. Kokeile vapaasti. Kaikissa testeiss�ni ohjelma on tuottanut virheett�m�n viivakoodin. Viivakoodi tuotetaan vain EAN-13:lle, vaikka ohjelma osaa tarkistaa muitakin. Koodi saattaa olla ep�ter�v� LCD-n�yt�ll�, jos resoluutio on asetettu ko. n�yt�n optimista poikkeavaksi. JavaScript-tuki on v�ltt�m�t�n.

666-vouhotuksella on yksi yhteinen piirre l�hes kaikkien muiden salaliittoteorioiden kanssa: Salaliittolaiset oletetaan niin tyhmiksi, ett� kuka tahansa asiaa edes pintapuolisesti "tutkinut" pystyy heid�n toimensa "paljastamaan", eiv�tk� salaliittolaiset ilmeisesti edes opi virheist��n mit��n, vaan samat henkil�t (varsinkin Yhdysvaltain liittovaltio) "j��v�t kiinni" kerran toisensa j�lkeen. Eik�h�n ole niin, ett� useimmat todelliset salaliitot todella pysyv�t salassa, ainakin niin kauan kuin niill� on merkityst�. Kaikki edell�sanottu siis tietysti sen lis�ksi, ett� itse "Pedon luku" on alun perinkin silkkaa p�ty�.

ISMN-numero

ISMN (International Standard Music Number) on painetuissa musiikkijulkaisuissa - esim. nuoteissa (nuottilehdiss�) tai nuotteja sis�lt�viss� kirjoissa - k�ytett�v� tunniste. Standardi on vuodelta 1993, joten t�t� vanhemmista julkaisuista numeroa ei kannata etsi�. (Minulle on vakuutettu, ett� nuottilehden yksitt�inen painos voi olla myynniss� vuosikymmeni�, ja k�yt�ss� viel�kin pitemp��n, joten vanhempiakin nuotteja k�ytet��n laajalti.)

Ennen vuotta 2008 k�ytt��n otetut ISMN-numerot muistuttavat rakenteeltaan ISBN-numeroa, mutta maa/kielialuetunnuksen tilalla on iso M-kirjain. T�t� seuraavat julkaisijan (3..7 numeroa) ja julkaisun (5..1 numeroa) tunnisteet, joiden yhteinen pituus on aina kahdeksan numeroa. Viimeisen� on tarkistenumero.

Vuoden 2008 aikana ISMN-numerot muuttuivat samaan tapaan kuin ISBN-numerot muuttuivat vuoden 2007 alussa (vrt. ISBN-13): Tunnisteen alkuun lis�ttiin 979 ja M-kirjain korvattiin nollalla. ISBN-numeroista poiketen tarkiste pysyy ennallaan. Standardi tuli voimaan 01.01.2008, mutta siirtym�aikaa oli vuoden loppuun.

Tarkisteen laskenta vastaa Tuotekoodin tarkisteen laskentaa. Vanhoissa tunnisteissa M-kirjaimelle k�ytet��n arvoa 3. Esimerkki:

ISMN M-2018-9185-9

	M  2  0  1  8  9  1  8  5  9
	3  1  3  1  3  1  3  1  3
	9  2  0  1 24  9  3  8 15 = 71 → 9
Sama tunnus uudessa muodossa: ISMN 979-0-2018-9185-9
	9  7  9  0  2  0  1  8  9  1  8  5  9
	1  3  1  3  1  3  1  3  1  3  1  3
	9 21  9  0  2  0  1 24  9  3  8 15 = 101 → 9
Vastaava EAN-13 -Tuotekoodi: 9 790201 891859. Vanhan ISMN-numeron ja siit� johdetun Tuotekoodin tarkisteet ovat aina samat. T�m� seuraa toisaalta siit� ett� laskentamenetelm� on sama, toisaalta tavasta jolla Tuotekoodi ISMN:st� muodostetaan. Uusi ISMN on sis�ll�lt��n sama kuin vastaava Tuotekoodi, vaikka numeroiden ryhmittelyss� voi olla eroa. Huomaa ett� jos etuliitett� 979 seuraa muu numero kuin 0, kyseess� ei ole ISMN vaan ISBN-13.

ISBN-13

ISBN-13:n tarkistusohjelma

ISBN = International Standard Book Number. ISBN-numeroa k�ytet��n tunnisteena monissa julkaisuissa, kuten kirjoissa, kartoissa ja CD-ROM:eissa. Vanhat ISBN-numerot loppuivat ep�taloudellisen jakotavan vuoksi er�ilt� osin kesken ennen vuotta 2010. Toukokuussa 2005 julkaistun uuden standardin mukaan ISBN-13 korvasi ISBN:n tietoj�rjestelmiss� viimeist��n 01.01.2007. Julkaisuissa uudenmallisia numeroita on voitu ottaa k�ytt��n jo aikaisemmin. Siirtym�vaiheessa molempia k�ytettiin rinnakkain. Suomessa ISBN-numeroita my�nt�� Kansalliskirjaston (entinen Helsingin yliopiston kirjasto) yhteydess� toimiva Suomen ISBN-keskus.

Koodi pitenee 10:st� 13 numeroon siten, ett� kaikkiin vanhoihin numeroihin lis�t��n etuliite 978 (sama jolla ISBN-numerosta on saatu Tuotekoodi). Samaa etuliitett� k�ytet��n my�s uusissa julkaisuissa niin pitk��n kuin vanhan j�rjestelm�n numeroita riitt�� k�ytett�viksi, eli joissakin tapauksissa kauan. N�iden rinnalle on otettu k�ytt��n etuliite 979; t�llaiset koodit jaetaan entist� talodellisemmin (eli pienempin� lohkoina), jotta koodien loppuminen ei kovin pian toistuisi. K�ytett�viss� oleva koodiavaruus kasvaa siis kaksinkertaiseksi - melkein muttei aivan, koska 1/10 t�st� uudesta alueesta on jo varattu ISMN-numeroille (9790-alkuiset koodit). Tarkiste lasketaan kuten Tuotekoodeissa, joten sek� olemassaolevien ett� tulevien julkaisujen ISBN-13 on (l�hes aina) sama kuin niiden EAN-13 -koodi. T�m� muutos on tilap�isratkaisu; lis�� muutoksia - esim. uusia etuliitteit� - tulee joskus my�hemmin.

Tunniste voidaan jakaa v�liviivoilla viiteen osaan, joista kolme keskimm�ist� ovat samat kuin vanhoissa ISBN-numeroissa.

  1. Etuliite 978 tai 979
  2. Maa tai kielialue
  3. Kustantaja
  4. Nimike
  5. Tarkiste
Kolminumeroinen etuliite ja viimeisen� oleva yksinumeroinen tarkiste ovat aina omina ryhmin��n, mutta muuten ryhmien koot eiv�t ole kiinte�t, vaikka numeroiden kokonaism��r� on vakio. Tarkisteen laskennassa otetaan huomioon vain numerot, joten ryhmittely ei siihen vaikuta. 979-alkuisten tunnisteiden maa- / kielialue- ja kustantajakoodit eiv�t yleens� ole samoja kuin 978-alkuisten tunnisteiden vastaavat koodit. Erityisesti 979-alkuisen tunnisteen maa- / kielialuekoodi ei voi alkaa 0:lla.

Esimerkki (Isaac Asimov, Asimov's New Guide to Science, Penguin Books 1987):

	Vanha ISBN-numero: 0-14-007621-2
	Uusi ISBN-13:  978-0-14-007621-9
	9  7  8  0  1  4  0  0  7  6  2  1  9
	1  3  1  3  1  3  1  3  1  3  1  3
	9 21  8  0  1 12  0  0  7 18  2  3  = 81 → 9
Vastaava Tuotekoodi (EAN-13 / Bookland) on 9 780140 076219.

ISMN-numero ja ISWC-koodi ovat rinnakkaisia j�rjestelmi�, mutta j�lkimm�isen tarkiste lasketaan eri tavalla.


Kerroin 137

Menetelm�� k�ytet��n pankkisiirron viitenumerossa, henkil�kortin numerossa ja verolipun numerossa.

Menetelm� tunnetaan nimell� IBM Check, mutta samaa nime� k�ytet��n my�s Luhnin moduli 10:st�.

Pankkisiirron viitenumero

Tarkisteen lis�ys- ja tarkistusohjelma
Viitenumeroiden generointiohjelma

Viitenumeron sis�ll�n m��rittelee yleens� laskun l�hett�j�, joka numeron perusteella pystyy yhdist�m��n l�hetetyn laskun ja vastaanotetun maksun. Viitenumerot otettiin Suomessa k�ytt��n 1979.

Viitenumerosta on usein l�ydett�viss� esim. j�sennumero, asiakasnumero ja/tai laskun numero. T�llaisten tietojen yhdistelm�t pident�v�t numerosarjaa t�ysin tarpeettomasti. Erityisen� �lytt�myyten� voidaan pit�� numerosarjan alussa olevia nollia, jotka ovat hyvi� ehdokkaita maailman turhimmaksi asiaksi. Viitenumeron tarkoitus on maksusuorituksen yksil�inti, ja t�h�n riitt�� yleens� muutama numero. Finanssialan keskusliiton mukaan "n�pp�ilyvirheiden v�ltt�miseksi viitenumeron tulee olla lyhyt". On my�nnett�v�, ett� redundanssi voi helpottaa virheellisell� viitenumerolla saapuneen maksun kohdistamista oikeaan laskuun, mutta onko t�st� saatava hy�ty niin suuri, ett� sen takia kannattaa samalla lis�t� virhemahdollisuuksia? Vrt. Tarkistettavan tiedon pituus.

Viitenumerossa on 4..20 numeromerkki�. Pituutta laskettaessa ei oteta huomioon etunollia, joita ei pit�isi ollakaan. Viimeinen numero on tarkiste, muut saa valita vapaasti. Lyhyt juokseva numero on hyv� valinta. Numerosarja ryhmitell��n viiden numeron ryhmiin oikealta tai vasemmalta alkaen. L�hde: Suomen pankkiyhdistys (vuoden 2007 alusta Finanssialan keskusliitto), Tilisiirto-opas, 20.03.2002. Laskenta:

  1. Tarkistetta edelt�vi� numeroita painotetaan oikealta alkaen kertoimilla 7, 3, 1, 7, 3, 1 jne.
  2. Tulot lasketaan yhteen.
  3. Tarkistusnumero on numero, joka summaan on lis�tt�v� jotta tulos olisi tasan jaollinen kymmenell�.
Esimerkki: 61 74354
	6  1   7  4  3  5  4
	1  3   7  1  3  7
	6  3  49  4  9 35  = 106 → 4
Tulojen viimeisten numeroiden yhteenlaskeminen antaa saman tarkistusnumeron.

Viitteellisten maksujen vastaanottaminen on yrityksille ja yhteis�ille halvempaa kuin viitteett�mien, joten viitenumeroa kannattaa k�ytt�� vaikkei sit� lainkaan tarvittaisi maksun yksil�intiin. T�llaiseen k�ytt��n sopivia vakioviitteit� ovat esim. 1313, 2121, 4242 ja 5555.

Viitenumero on englanniksi "reference number" tai "(Finnish domestic) creditor reference". T�t� tietoa etsiv�t yll�tt�v�n monet, vaikka sille pit�isi olla k�ytt�� vain harvoin, koska suomalaista viitenumeroa ei k�ytet� kansainv�lisess� maksuliikenteess�, jossa viitenumeron l�hin vastine on 01.12.2010 alkaen RF-viite ja aikaisemmin IPI:n maksunaihekoodi. Ainoa k�ytt�tarkoitus jonka t�lle k��nn�kselle keksin, on suomalaisten k�yt�nt�jen selitt�minen t��ll� asuville ulkomaalaisille – jos tied�t jonkin muun, ole hyv� ja kerro minullekin.

Koska on vaikea kuvitella, ett� pankit loputtomasti yll�pit�isiv�t rinnakkaisia j�rjestelmi�, on todenn�k�ist� ett� kotimaisista viitenumeroista luovutaan joskus 31.01.2014 j�lkeen kokonaan, ja k�ytt��n j��v�t vain RF-viitteet. Uudet sovellukset kannattaa suunnitella t�m�n mukaisesti.

Suomen Osto- ja Logistiikkayhdistys LOGY ry on ottanut saman tarkistusmenetelm�n k�ytt��n 12-numeroisissa rahtikirjanumeroissaan. Samaa tarkistusta k�ytet��n my�s pankkitilien numeroissa ainakin Virossa ja shekkien 9-numeroisissa reitityskoodeissa Yhdysvalloissa.

Samanlaisina toistuvissa maksuissa (esim. vuokra tai yhti�vastike) voidaan joka kerta k�ytt�� samaa viitenumeroa, jolloin maksu voidaan automatisoida.

Henkil�kortin numero

Pankkisiirron viitenumerossa k�ytett�v� Kerroin 137 -menetelm� sopii my�s seitsem�n tutkitun suomalaisen henkil�kortin numeroihin (kaksi vuoden 1999 maaliskuussa k�ytt��n otettua mallia, yksi vanhempi ja nelj� sirukorttia vuosilta 2004 ja 2006). Lehdiss� ja muualla julkaistuissa korttien kuvissa numero yleens� puuttuu, on lukukelvoton, sis�lt�� vain nollia tai on muuten ilmeisen keinotekoinen (esim. 000000033) tai manipuloitu, mutta havaituissa j�ljellej��viss� tapauksissa (6 kpl) toimii sama tarkistusmenetelm�. Lis�ksi yksi henkil� on ilmoittanut saman tarkistuksen sopivan oman korttinsa numeroon. Tarkistuksen sopiminen n�ihin numeroihin voi olla pelkk� sattuma, mutta oman mielivaltaisen tulkintani mukaan sattuman todenn�k�isyys on vain yksi yli 30 miljardista.

Esimerkki (sirukortti, Keskisuomalainen nro 156 07.06.2006 sivu 8):

	 5  0  3  2  2  7  8  1  4
	 3  7  1  3  7  1  3  7
	15  0  3  6 14  7 24  7  = 76 → 4
T�t� tarkistusmenettely� ei k�ytet� passien numeroissa, eik� se v�ltt�m�tt� ole kansainv�linen standardi henkil�korteissakaan. Muista uuden mallin mukaisessa henkil�kortissa olevista tarkisteista on lis�tietoja matkustusasiakirjojen yhteydess�.

Verolipun numero

T�m� kuvaus ei perustu mihink��n julkaistuun dokumenttiin, vaan vain kolmeen tutkittuun verolippuun, jotka kaikki liittyv�t dieselveron maksamiseen. Verolipun numeron ja vastaavan pankkisiirron viitenumeron v�linen yhteys on kuitenkin niin ilmeinen, ett� n�inkin pienen aineiston perusteella asiaa voidaan pit�� k�yt�nn�ss� todistettuna. T�ll� hetkell� ei ole tiedossa, k�ytet��nk� samaa tarkistusta esim. ennakkoverolipun numerossa, mutta t�t� tarkistusta ei k�ytet� sellaisessa verolipussa, jolla ilmoitetaan veronpalautuksesta tai maksettavasta j��nn�sverosta.

Dieselverolipun numeroon sis�ltyy auton rekisterinumero, jonka kirjaimet korvataan tarkisteen laskentaa varten numeroilla seuraavan taulukon mukaisesti:

A 11B 12C 13D 14E 15F 16 G 17H 18I 19J 20K 21L 22 M 23
N 24O 25P 26Q 27R 28S 29 T 30U 31V 32W 33X 34Y 35 Z 36
Taulukko on l�hes sama kuin passien kohdalla, mutta kunkin kirjaimen numero on yhden yksik�n suurempi. Avoimeksi j�� kuitenkin skandimerkkien k�sittely. Niiden numerot saattavat olla: � = 37, � = 38 ja � = 39. T�sm�lleen samalla korvauksella verolipun numerosta saadaan pankkisiirron viitenumero, sill� molempien tarkisteet lasketaan samalla tavalla. Esimerkki (keksitty): 23413VGA2561-8

	2  3  4  1  3     V     G     A  2  5  6  1 - 8
	               3  2  1  7  1  1
	1  3  7  1  3  7  1  3  7  1  3  7  1  3  7
	2  9 28  1  9 21  2  3 49  1  3 14  5 18  7 = 172 → 8
Rekisterinumero on siis VGA-256. Vastaava viitenumero on 2 34133 21711 25618.

Matkustusasiakirjat

Matkustusasiakirjoja ovat Passi, Viisumi ja Henkil�kortti. Kaikissa k�ytet��n samaa standardoitua menettely� tarkisteiden laskemiseksi.

Huom! Kansainv�listen standardien normaaliin tapaan t�ss� kuvatut k�yt�nn�t ovat vain suosituksia, eli valtiot voivat vapaasti my�nt�� standardeista poikkeavia matkustusasiakirjoja. Esim. mik��n n�kem�ni viisumi ei ainakaan kaikilta osin vastaa t�t� kuvausta. Lis�ksi standardi t�ss� muodossaan koskee vain passiin liimattavia viisumeita, ei leimoja, erillisi� papereita tai muovikortteja.

Allamainittava matkustusasiakirjan tyyppi tarkoittaa kahta merkki� ensimm�isen optisesti luettavan rivin alussa. Ensimm�inen merkki on P = Passi, V = Viisumi tai I = Henkil�kortti. Toinen merkki voi kertoa asiakirjan tarkemman tyypin - esim. passi voi olla diplomaattipassi (PD) tai viisumiin voi sis�lty� ty�lupa - mutta yleens� t�ss� kohdassa on v�limerkki.

On esitetty ett� paljastan t�ss� tietoja, joiden perusteella olisi mahdollista v��rent�� matkustusasiakirjoja. Ajatus on melko lapsellinen, sill� n�m� tiedot l�ytyv�t julkisista dokumenteista, joita kuka tahansa voi tilata nimellist� maksua vastaan, eik� t�ss� kuvata edes kaikkia julkisesti kerrottuja tai ao. asiakirjoista n�ht�viss� olevia turvatekij�it�, joiden lis�ksi on varmasti olemassa my�s salaisia tai hyvin vaikeasti havaittavia v��rent�mist� vaikeuttavia ominaisuuksia.

Passi

Viimeist��n vuodesta 1987 alkaen Suomessa my�nnetyiss� passeissa (paitsi ns. pikapasseissa) on ollut henkil�tietosivulla kaksi rivi�, jotka on tarkoitettu tietokoneen luettaviksi, mutta jotka ovat my�s ihmisen luettavissa. Rivien muoto on m��ritelty ICAO:n (International Civil Aviation Organization - Kansainv�linen siviili-ilmailuj�rjest�) dokumentissa 9303 osa 1.

Biometrisell� tunnisteella varustetuista passeista on joitakin lis�tietoja omassa kappaleessaan.

Ensimm�isell� rivill� ilmoitetaan matkustusasiakirjan tyyppi (tavallisesti "P<"), my�nt�j� (Suomessa "FIN") ja haltijan nimi. N�iden muoto on tarkoin m��ritelty, mutta niihin ei liity tarkisteita.

Toisen rivin malli:

	NNNNNNNN<TKKKAAAAAATSVVVVVVTHHHHHH<HHHH<<<TT
	----+----1----+----2----+----3----+----4----
1..9 Passin numero (N). Jos numero ei t�yt� koko kentt��, se tasataan vasempaan reunaan, ja kent�n loppu t�ytet��n v�limerkeill�, joka on t�ss� ja muissakin paikoissa "<". (Vasempaan reunaan tasauksesta on se erikoinen seuraus, ett� tarkisteen laskennan kannalta numeron alussa olevat nollat ovat merkitsevi�, mutta lopussa olevat eiv�t.)
10 Passin numeron tarkiste (T).
11..13 Passin haltijan kansalaisuus (K). Suomen kansalaisilla "FIN".
14..19 Passin haltijan syntym�aika (A), vuosi (kahdella numerolla), kuukausi ja p�iv�.
20 Syntym�ajan tarkiste (T).
21 Passin haltijan sukupuoli (S), "M" = Male, "F" = Female.
22..27 Passin viimeinen voimassaolop�iv� (V). Kuten syntym�aika.
28 Viimeisen voimassaolop�iv�n tarkiste (T).
29..42 Passin haltijan henkil�kohtainen tunniste, jonka kukin maa voi m��ritell� itse. Suomessa suomalainen henkil�tunnus (H), jossa "-" tai "+" on korvattu v�limerkill�, joilla on my�s t�ytetty kent�n loppuosa. 2000-luvulla syntyneiden henkil�tunnuksessa syntym�ajan ja yksil�numeron v�liss� oleva A-kirjain tulostuu sellaisenaan positioon 35. Joissakin maissa koko kentt� t�ytet��n v�limerkeill�, jolloin my�s kent�n tarkiste on v�limerkki tai nolla.
43 Henkil�kohtaisen tunnisteen tarkiste (T). T�t� ei pid� sekoittaa positiossa 39 olevaan tarkisteeseen, joka sis�ltyy itse henkil�tunnukseen ja joka on riippumaton passeja koskevasta standardista.
44 Passin numerosta, haltijan syntym�ajasta, passin viimeisest� voimassaolop�iv�st�, henkil�kohtaisesta tunnisteesta ja n�iden tarkisteista laskettu tarkiste (T).

Tarkisteiden laskenta: Tarkistettavia numeroita painotetaan vasemmalta alkaen kertoimilla 7, 3, 1, 7, 3, 1 jne.. Kirjaimille k�ytet��n numeerisia arvoja 10..35 seuraavasti:

A 10B 11C 12D 13E 14F 15 G 16H 17I 18J 19K 20L 21 M 22
N 23O 24P 25Q 26R 27S 28 T 29U 30V 31W 32X 33Y 34 Z 35
Tarkisteen laskennassa v�limerkki katsotaan nollaksi. Tulot lasketaan yhteen ja summa jaetaan kymmenell�. Jakoj��nn�s on tarkiste (= summan viimeinen numero).

Esimerkki. Tilan s��st�miseksi tuloista on merkitty n�kyviin vain viimeinen numero; vain sill� on merkityst� tarkisteen kannalta.

Yksitt�isten kenttien tarkisteet:

	13846165<8FIN6506157F0110174150665<076R<<<78
	731731731    731731  731731 73173173173173
	798881250    250235  031037 75028500721000
	=48→8        =17→7   =14→4  =37→7
Koko rivin tarkiste:
	13846165<8FIN6506157F0110174150665<076R<<<78
	7317317317   3173173 1731731731731731731731
	7988812506   8508151 0730714750285007210007 =148→8
Elokuun 2005 ja maaliskuun 2006 v�lisen� aikana uusien passien takakanteen on ilmestynyt viivakoodi, joka on tyyppi� "Lomitettu 2/5" (Interleaved 2 of 5 = I25 = ITF), ja joka sis�lt�� passin numeron sek� tarkisteen, jonka ko. viivakoodistandardin mukainen lasketamenetelm� on Moduli 10. Minun passissani sek� viivakoodin ett� numerosarjan alussa on etunolla, jota tarvitaan v�ist�m�tt� siksi, ett� ko. viivakoodilla esitett�vien numeroiden lukum��r�n on aina oltava parillinen, mutta etunolla voi liitty� my�s siihen, ett� passin numero voi standardin mukaan olla enint��n 9-numeroinen. Viivakoodilla ei ole mit��n tekemist� sen kanssa, onko passi koneellisesti luettava, vaan t�m� asia riippuu yksinomaan tunnistetietosivulla olevista koneellisesti luettavista tekstiriveist� (takakannen viivakoodi ei edes n�y, jos passissa k�ytet��n erillisi� kansia).

ICAO:n dokumentissa mainitaan, ett� v��rent�j�t tekev�t usein virheit� passien tarkisteiden laskemisessa. T�m� on yll�tt�v��; sek� virheiden tekeminen ett� sen kertominen julkisesti.

Biometrisell� tunnisteella varustettu passi

21.08.2006 alkaen Suomessa my�nnett�v�t passit sis�lt�v�t biometrisen tunnisteen. Julkisuudessa ja my�s t�ss� dokumentissa aikaisemmin esitettyjen tietojen mukaan olisi tapahtunut useita muitakin muutoksia, mutta todellisuudessa muutokset n�ytt�v�t olevan v�h�isi�:
  • Passin numero sis�lt�� kirjaimia. T�m�n on standardi ennenkin sallinut, mutta suomalaisissa passeissa niit� ei ole k�ytetty.
  • Takakannessa ollut tarra, jossa oli passin numero viivakoodina, on h�vinnyt (k�ytetty viivakoodij�rjestelm� ei salli kirjaimia, ja koneellisesti passin ulkopuolelta luettavissa oleva passin numero olisi turvallisuusriski).
Alemmalla koneellisesti luettavalla rivill� olevista tiedoista (passin numero, syntym�aika, passin viimeinen voimassaolop�iv�) muodostetaan salausavain, jota k�ytt�en lukulaite voi keskustella radioaalloilla passissa olevan RFID-sirun kanssa siten, etteiv�t ulkopuoliset p��se kaappaamaan passin tietoja - n�in teoriassa, mutta k�yt�nn�ss� on todistettu ett� suljetunkin passin tiedot voidaan lukea v�hint��n useiden metrien p��st�, ellei passin suojana k�ytet� kansia, joissa on metallifolio. Passin pit�minen taskussa tai laukussa ei vaikuta asiaan. Foliosta huolimatta ulkopuolisetkin voivat p��st� tietoihin k�siksi kun passi avataan. EU on tehnyt henkil�tietovarkaudet helpoiksi.

Viisumi

Sama dokumentti (ICAO 9303), joka m��rittelee kansainv�lisen standardin passille, m��rittelee sellaisen my�s viisumille (osa 2). Niiss�kin on kaksi koneellisesti luettavaa rivi�, joiden muoto poikkeaa vain v�h�n passeissa k�ytett�vist�. Tarkisteiden kannalta ainoa oleellinen ero on se, ett� toisen rivin positiot 29..44 ovat viisumin my�nt�j�n m��ritelt�viss�, joten niihin ei liity standardissa m��riteltyj� tarkisteita.

Henkil�kortti

Maaliskuusta 1999 alkaen Suomessa Suomen kansalaiselle annettava henkil�kortti kelpaa passin vaihtoehtona Euroopan Unionissa ja muutamassa muussa maassa. Kansainv�linen henkil�korttistandardi on m��ritelty samassa dokumentissa (ICAO 9303), joka m��rittelee standardin passeille (osa 3). Standardin t�m� osa ei ole ollut kirjoittajan k�ytett�viss�, vaan kuvaus perustuu viiteen tutkittuun suomalaiseen henkil�korttiin (plus kuviin n�ytekorteista) ja passeja koskevien tietojen soveltamiseen. Henkil�kortin numerosta on lis�tietoja kohdassa Kerroin 137.

Henkil�kortin koneellisesti luettavassa osassa takana alhaalla on kolme rivi� � 30 merkki�. Alimmalla rivill� on kortin haltijan nimi samassa muodossa kuin passissa, eik� t�ll� rivill� ole tarkisteita.

Ensimm�isen rivin malli:

	KKMMMNNNNNNNNNT<<<<<<<<<<<<<<<
	----+----1----+----2----+----3
1..2 Matkustusasiakirjan tyyppi, tavallisesti "I<" (K).
3..5 Kortin my�nt�j�. Suomalaisessa kortissa "FIN" (M).
6..14 Kortin numero (N).
15 Kortin numeron tarkiste (T). T�m� ei ole sama kuin kortin numeroon sis�ltyv� tarkiste, joka on positiossa 14 ja joka l�ytyy my�s kortin toiselta puolelta.
16..30 V�limerkkej�. Kuten passissa.

Toisen rivin malli:

	AAAAAATSVVVVVVTKKK<<<<<<<<<<<T
	----+----1----+----2----+----3
1..6 Kortin haltijan syntym�aika (A), vuosi (kahdella numerolla), kuukausi ja p�iv�.
7 Syntym�ajan tarkiste (T).
8 Kortin haltijan sukupuoli (S), "M" = Male, "F" = Female.
9..14 Kortin viimeinen voimassaolop�iv� (V) eli "Parasta ennen" -p�iv�ys. Kuten syntym�aika. Uuteen korttimalliin on tehty muitakin parannuksia, mutta t�m�n tiedon puuttuminen on se syy, jonka vuoksi aikaisemmat kortit eiv�t kelvanneet matkustukseen muualla kuin Pohjoismaissa. Vanhat kortit olivat voimassa vuoden 2002 loppuun saakka (laki 829/1999).
15 Viimeisen voimassaolop�iv�n tarkiste (T).
16..18 Kortin haltijan kansalaisuus (K). Suomen kansalaisilla "FIN".
19..29 V�limerkkej�.
30 Kortin numerosta, haltijan syntym�ajasta, kortin viimeisest� voimassaolop�iv�st� ja n�iden tarkisteista laskettu tarkiste (T).

Yksitt�isten kenttien tarkisteet lasketaan aivan samoin kuin passissa. Kenttien yhteinen tarkiste lasketaan my�s samalla tavalla, mutta on otettava huomioon ett� painokertoimien sarja jatkuu katkottomana ensimm�iselt� rivilt� toiselle. Esimerkki kenttien yhteisest� tarkisteesta:

	I<FIN2001064876<<<<<<<<<<<<<<<
	     7317317317317317317317317
	     4007068472 = 38
	7208207F0905046FIN<<<<<<<<<<<4
	3173173 1731731
	1204201 0305026 = 26 + 38 = 64 → 4
Standardi m��rittelee kaksi eri kokoista henkil�korttia. Suomessa annettavat ovat luultavasti pienemp�� mallia. Henkil�kortin ja Kela-kortin yhdistelm�ss� on viivakoodi, mutta se ei liity kortin k�ytt��n matkustusasiakirjana, vaan k�ytt��n Kela-korttina. Kortin koneellinen luettavuus seuraa edell�kuvatuista tekstiriveist�, ei viivakoodista.

Henkil�llisyyden todentamisesta

Henkil�llisyytens� voi todistaa mill� tahansa mink� kysyj� hyv�ksyy. Olen lukemattomia kertoja tehnyt t�m�n ty�nantajalta saadulla henkil�kortilla. Englannissa kelpaa kuulemma vaikka kaasulasku.

Joillakin ihmisill� on kuitenkin luja usko siihen, ett� on olemassa virallinen luettelo dokumenteista, joilla henkil�llisyyden voi todentaa. Katsotaan ensin sanakirjasta, mit� tarkoittaa "virallinen", ja havaitaan sen olevan oleellisesti sama kuin "s��d�kseen perustuva". S��d�ksi� ovat lait ja asetukset. Min� en kuitenkaan tuollaista yleisp�tev�� luetteloa s��d�skokoelmasta l�yd�, vaikka henkil�llisyyden todentaminen mainitaan useassa kohdassa. Jotakin sent��n l�ytyy:

V�est�tietoasetukseen (22.10.1993/886) tehdyn muutoksen (26.11.1999/1064, 34�) mukaan henkil�llisyys voidaan todeta "voimassa olevasta kotimaisesta poliisin my�nt�m�st� passista tai henkil�kortista taikka 1 p�iv�n� lokakuuta 1990 tai sen j�lkeen annetusta ajokortista".

Valtioneuvoston asetus 707/2006 sanoo muuten saman asian (monimutkaisemmin), mutta ajokorttia ei mainita. Nuo molemmat m��ritelm�t on tarkoitettu k�ytett�viksi tietyiss� erityistilanteissa, mutta niin kauan kun yleisemp�� m��ritelm�� ei ole, V�est�tietoasetuksessa mainittua voi mielest�ni pit�� virallisimpana mit� l�ytyy.

Ennen tuota vuoden 1999 asetusmuutosta henkil�kortti (ja sit� ennen henkil�llisyystodistus) oli ainoa dokumentti, jolla henkil�llisyys voitiin virallisesti todentaa, koska vain sit� koskevassa s��d�ksess� t�llainen k�ytt�tarkoitus mainittiin. Ajokortti on Ajokorttiasetuksen mukaan vain todistus ajo-oikeudesta, passi taas Passilain mukaan todistus oikeudesta matkustaa ulkomaille. Vaikka passia ja ajokorttia tuolloinkin yleisesti k�ytettiin henkil�llisyystodistuksina, t�m� ei perustunut mihink��n s��d�kseen.

Se jolla on parempaa tietoa kertokoon minullekin.


Kerroin 12

T�t� menetelm�� k�ytet��n hiukan erilaisina versioina PallasProssa ja UPS:n seurantanumerossa.

Kirjaston kortti tai kirja (PallasPro)

PallasPro on kirjastojen tietoj�rjestelm�, jonka puitteissa tuotetaan mm. asiakaskortteja (kirjastokortteja) sek� kirjoihin liimattavia nidetarroja. T�m� kuvaus perustuu yhteen Internetist� l�yt�m��ni lyhyeen dokumenttiin, jonka tiedot on p�iv�tty lokakuussa 2005, sek� kirjaston kirjoista ja muutamista korteista tehtyihin havaintoihin, jotka eiv�t ole t�ysin yhteensopivia dokumentin kanssa. PallaPro-j�rjestelm�� k�ytt�vien kirjastojen kirjastokorteissa ja kirjojen nidetarroissa k�ytet��n tunnuksia, joiden muoto on KKK L SSSSSSS T jossa:
  • KKK: Kuntanumero
  • L: A = Asiakas (kirjastokortti), N = Nide (kirjan tarra)
  • SSSSSSS: Yksil�iv� numero
  • T: Tarkiste, lasketaan vain yksil�iv�st� numerosta
Todellisuudessa kaikissa (oletettavasti vanhemmissa) korteissa ja kirjoissa ei k�ytet� tarkistetta, ja yksil�iv� numero voi olla lyhyempi. Tarkisteen laskenta:
  1. Tarkistettavia numeroita painotetaan vasemmalta oikealle kertoimilla 2, 1, 2, 1 jne..
  2. Tulot lasketaan yhteen.
  3. Summa jaetaan 10:ll�. Jakoj��nn�s (summan viimeinen numero) on tarkiste.
Esimerkki: 179 N 1138574 2
	1  1  3  8  5  7  4  2
	2  1  2  1  2  1  2
	2  1  6  8 10  7  8  = 42 → 2
Menetelm�n kyky paljastaa virheit� riippuu tarkistettavien numeroiden m��r�st�. Jos m��r� on pariton, kuten eo. esimerkiss�, kaikki vierekk�isten numeroiden keskin�iset vaihtumiset huomataan. Jos m��r� on parillinen, osa vaihdoista j�� havaitsematta, mutta yksitt�isten numeroiden muutokset havaitaan paremmin (kaikkia ei havaita koskaan). Numerosarjan pituuden muuttuminen huomataan suunnilleen yht� hyvin molemmissa tapauksissa. Kappaleessa Painokertoimet on selitetty, miksi t�t� menetelm�� ei voi pit�� suositeltavana.

UPS:n seurantanumero

United Parcel Service (UPS) on yhdysvaltalainen kuriiripalveluyritys, joka toimii maailmanlaajuisesti, my�s Suomessa. Jokaisella tavaral�hetyksell� on seurantanumero (tracking number), jonka avulla l�hetyksen kulkua palvelun toimipisteiden kautta voidaan seurata reaaliaikaisesti Internetiss� (ainakin t�m� on tarkoitus - asiakkaiden kertoman mukaan reaaliaikaisuus ei aina toteudu k�yt�nn�ss�). Seurantanumeron muoto on 1Z AAA AAA BB CCCC CCC T, jossa: 1Z on vakio (literaali), A on l�hett�j�n alfanumeerinen tunnus, B on alfanumeerinen palvelukoodi (toimitustapa), C on numeerinen l�hetyksen yksil�iv� tunnus ja T on tarkistenumero. Numero esitet��n usein yhten�isen� merkkijonona ilman v�lily�ntej�, mutta jos numero ryhmitell��n, edell�oleva tapa n�ytt�� olevan ainoa virallinen. Tarkisteen laskenta:
  1. Alussa olevaa 1Z-vakiota ei oteta mukaan tarkisteen laskentaan.
  2. Kirjaimet korvataan numeroilla seuraavan taulukon mukaisesti:
      A 2B 3C 4D 5E 6F 7G 8H 9
    I 0J 1K 2L 3M 4N 5O 6P 7Q 8R 9
    S 0T 1U 2V 3W 4X 5Y 6Z 7  
  3. Tarkistettavia numeroita (15 kpl) painotetaan vasemmalta alkaen kertoimilla 1, 2, 1, 2 jne..
  4. Tulot lasketaan yhteen.
  5. Tarkiste on numero, joka summaan on lis�tt�v�, jotta tulos olisi tasan jaollinen 10:ll�.
Esimerkki (aito): 1Z X7V 055 67 4371 648 2:
	1 Z X 7 V 0 5 5 6 7 4 3 7 1 6 4 8 2    Kirjaimet korvattu
	    5   3                            ← numeroilla
	    1 2 1 2 1 2 1 2 1 2 1 2 1 2 1
	    5 4 3 0 5 0 6 4 4 6 7 2 6 8 8 = 68 → 2
Tilan s��st�miseksi kustakin tulosta on merkitty n�kyviin vain viimeinen numero; vain sill� on merkityst� tarkisteen laskennassa. T�ll� tarkistuksella on oleellisesti samat heikkoudet kuin PallasProlla, mutta virhemahdollisuuksia lis�� se, ett� kussakin tapauksessa kolmella tai nelj�ll� eri merkill� on sama numeroarvo, esim. F = P = Z = 7. Huomaa ett� toisaalta F ja P, toisaalta Z ja 7 muistuttavat toisiaan, joten on helppo tehd� virheit�, joita tarkiste ei paljasta. Lis�ksi muutamassa tapauksessa tietokoneen n�pp�imist�ss� vierekk�in olevilla n�pp�imill� on sama numeroarvo. Vrt. Esimerkki kirjainten numeroarvoista.

Useiden l�hteiden mukaan UPS k�ytt�� my�s kahta muuta lyhyemp�� seurantanumerotyyppi�, mutten ole l�yt�nyt kuvausta niiden tarkisteiden laskennasta. Kun aitoja esimerkkej�k��n ei ole k�ytett�viss�, asiaa ei voi selvitt�� edes kokeilemalla.


Kerroin 234

IMO-numero

IMO = International Maritime Organization = Kansainv�linen merenkulkuj�rjest�. IMO-numero on kaupallista merenkulkua harjoittavan matkustaja- tai rahtilaivan tunniste, joka muodostuu kirjaimista IMO sek� seitsem�st� numerosta. Tunnuksia jakaa IHS Fairplay, aikaisemmin Lloyd's Register - Fairplay Ltd. Tunnisteen pit�isi olla selv�sti n�kyviss� laivan ulkopuolella (matkustajalaivoissa ylh��lt� katsottaessa), ja se merkit��n my�s laivaa koskeviin dokumentteihin. Numero s�ilyy samana koko laivan elini�n, riippumatta rakenteellisista muutoksista tai nimen tai omistajan vaihtumisesta. Numeroa, joka on kerran yhdelle laivalle annettu, ei koskaan anneta toiselle. Viimeinen numero on tarkiste. Laskenta:
  1. Tarkistettavia numeroita painotetaan oikealta vasemmalle kertoimilla 2, 3, 4, 5, 6 ja 7.
  2. Tulot lasketaan yhteen.
  3. Summa jaetaan 10:ll�. Jakoj��nn�s on tarkiste.
Esimerkki: IMO 7625811 (Kristina Katarina, Kotka)
	 7  6  2  5  8  1  1
	 7  6  5  4  3  2
	49 36 10 20 24  2  = 141 → 1
Menetelm� voitaisiin kuvata my�s niin, ett� kertoimet ovat 3..8 vasemmalta oikealle, ja tarkiste on numero joka summaan on lis�tt�v�, jotta tulos olisi tasan jaollinen kymmenell�.

Menetelm�ll� on samat vahvuudet ja heikkoudet kuin Kerroin 123:lla. N�m� on kuvattu Kemikaalin CAS-numeron yhteydess�. Huom! Tieto tarkisteen laskennasta ei perustu mihink��n julkaistuun dokumenttiin, vaan yli 50 aidon IMO-numeron analysointiin.

IMO-numeroiden tarkistuksesta olen kirjoittanut my�s englanninkielisen kuvauksen, koska sellaista ei n�yt� Internetist� muualta l�ytyv�n. Kuvaukseen liittyy tarkistusohjelma.

Huviveneill� on runkonumero (Hull Identification Number, HIN), joka on m��ritelty standardissa ISO 10087, mutta siin� ei ole tarkistetta.


Kerroin 123

T�t� menetelm�� k�ytet��n ISWC-koodissa ja kemikaalin CAS-numerossa. Ensinmainituissa on kuitenkin pieni lis�ys perusmenetelm��n n�hden.

Tarkisteen laskenta voidaan tehd� kahdella tavalla, joiden suhde toisiinsa on hyvin samanlainen kuin ISBN-numeron tapauksessa. Esimerkki (tarkemmat kuvaukset sovellusten yhteydess�):

Laskentatapa 1
1  9  5  5  6
6  7  8  9
6 63 40 45  = 154 → 6
      
Laskentatapa 2
1  9  5  5  6
4  3  2  1
4 27 10  5  = 46 → 6
      
Voidaan havaita, ett� tietyn numeron painotuksesta eri laskentatavoilla saatavien tulojen yhteenlasku antaa aina kymmenell� jaollisen summan, esim. 63+27=60. Kummassakin sovelluksessa k�ytet��n normaalisti sille ominaista laskentatapaa.

ISWC-koodi

ISWC = International Standard Work Code (ISO 15707). Ensimm�isess� vaiheessa k�yt�ss� on ISWC-T, jota k�ytet��n musiikkiteosten (T = Tune) tunnistamiseen. ISBN-, ISBN-13 ja ISMN-numerosta poiketen ISWC:ll� tunnistetaan teos, ei sen julkaisuasua. Tunniste muodostuu etuliitteest� ISWC, alkukirjaimesta T, yhdeks�st� numerosta ja tarkistenumerosta. Luettavuuden parantamiseksi merkit voidaan ryhmitell� v�liviivoilla ja pisteill�, mutta toisin kuin ISBN, ISBN-13 ja ISMN, ISWC on "tyhm�" tunniste, jonka numeroilla ei ole itsen�isi� merkityksi�. Tunniste ei siis kerro kohteestaan mit��n muuten kuin ao. tietokannan kautta.

Tarkisteen laskenta: Tunnisteen numeroita painotetaan vasemmalta alkaen kertoimilla 1, 2, 3 jne.. T-kirjaimen arvo tarkistetta laskettaessa on 1, joka on my�s sen painokerroin. Tulot lasketaan yhteen. Tarkiste on numero, joka summaan on lis�tt�v� jotta tulos olisi tasan jaollinen kymmenell�.

Esimerkki: ISWC T-041.559.258-3

	T - 0  4  1 . 5  5  9 . 2  5  8 - 3
	1   1  2  3   4  5  6   7  8  9
	1   0  8  3  20 25 54  14 40 72   = 237 → 3
ISWC:n sanotaan perustuvan "vahvasti" ISMN:n (alkuper�iseen) syntaksiin, mutta en havaitse kovin suuria yht�l�isyyksi� sen paremmin muodossa, sis�ll�ss� kuin tarkisteen laskennassakaan. Tosin ISWC:n piti alun perin olla samanmittainen kuin ISMN, joten sekaannusten v�ltt�miseksi valittiin toinen alkukirjain.

Standardointity�n ollessa kesken k�ytettiin my�s nime� Information System Work Code. ISWC:st� on ollut tarkoitus kehitt�� my�s muunnelmia muiden luovan ty�n tulosten tunnistamiseen, mutta ty� ei n�yt� edistyv�n.

Menetelm�n vahvuuksia ja heikkouksia on kuvattu Kemikaalin CAS-numeron kohdalla.

Kemikaalin CAS-numero

Kemikaalin tunnistamiseen k�ytetty CAS-numero (Chemical Abstracts Service Registry Number) on muotoa AAAA-BB-T, jossa AAAA:n pituus vaihtelee mutta on enint��n kuusi numeroa ja T on tarkiste. Laskenta: Tarkistettavia numeroita painotetaan oikealta alkaen kertoimilla 1, 2, 3 jne.. Tulot lasketaan yhteen ja summa jaetaan 10:ll�. Jakoj��nn�s on tarkiste. Esimerkkej�: Bentseeni 71-43-2 ja rikkihappo 7664-93-9:
	       7  1 - 4  3 - 2
	       4  3   2  1
	      28  3   8  3   = 42 → 2
	 7  6  6  4 - 9  3 - 9
	 6  5  4  3   2  1
	42 30 24 12  18  3   = 129 → 9
L�hde: CAS:n kotisivu. Kuten todetaan kappaleessa Painokertoimet, viisi ja kaikki parilliset numerot ovat t�m�ntyyppisess� j�rjestelm�ss� huonosti valittuja painokertoimia, mik� n�kyy siten ett� tarkistus ei aina paljasta edes kaikkein tavallisinta virhett�, eli yhden numeron vaihtamista toiseksi (kokeile mit� tapahtuu jos rikkihapon koodin ensimm�inen 6 korvataan 8:lla tai j�lkimm�inen 1:ll� - ensimm�isen muutoksen tuottama koodi ei ole ainoastaan muodollisesti virheet�n, vaan sit� vastaava aine on todella olemassa). Tarkistus paljastaa kuitenkin varsin hyvin kahden vierekk�isen numeron vaihtumisen kesken��n.

Kemikaaleille on my�s useita muita tunnistej�rjestelmi�.


Summa 10

Lounasseteli

T�ll� hetkell� (toukokuu 2012) k�ytett�viss� lounasseteleiss� on kaksi numerosarjaa, yksi alareunassa ja toinen oikeassa reunassa. Alareunan numerosarja voi n�ytt�� esim. t�llaiselta:
	13009 032    130770>
Kaksi ensimm�ist� numerosarjaa ovat luultavasti setelin sarjanumero, pelkk� juokseva numero ilman sis�ist� rakennetta. Oikealla puolella kaksi ensimm�ist� numeroa osoittavat mink� vuoden loppuun saakka seteli on voimassa (esimerkiss� 31.12.2013 saakka). Loput numerot osoittavat setelin arvon (esimerkiss� 7,70 €). Oikean reunan numerot samassa seteliss� ovat:
	24  282
Kun lasketaan yhteen sarjanumeron nelj� viimeist� numeroa ja lis�t��n kymmenen, saadaan oikean reunan kaksi ensimm�ist� numeroa, esimerkkiseteliss�:
	9 + 0 + 3 + 2 + 10 = 24
T�t� on pidett�v� eritt�in yksinkertaisena (eli heikkona) tarkistuksena, mutta toisaalta se on riitt�v�n yksinkertainen setelin vastaanottajan p��ss� laskettavaksi, ja ehk� juuri t�m� on tarkoituskin.

Kolme viimeist� numeroa on painettu mustalla mustalle, mutta numerot heijastavat valoa eri tavalla kuin tausta. Havaituissa tapauksissa viimeinen numero on aina sama kuin sarjanumeron viimeinen numero, mutta kahdesta edelt�v�st� numerosta ei ole tarkempia tietoja. Arvaus: Numerot ovat tarkisteita, ja ne hohtavat ultravioletti- tai infrapunavalossa tai ovat magneettista painov�ri�, tai ne on muuten helppo lukea koneellisesti, jonka j�lkeen niit� voidaan verrata laskettuihin tarkisteisiin.


Moduli 9

Menetelm�� k�ytet��n hiukan eri tavoin soveltaen matkashekkien ja eurosetelien sarjanumeroissa sek� muuntogeenisten organismien tunnisteissa.

Huom! Kun 10-kantaisia lukuja k�ytett�ess� tehd��n jako 9:ll�, jakoj��nn�s on sama siit� riippumatta, jaetaanko alkuper�inen kokonaisluku vai sen numeroiden summa. T�m� helpottaa jakoj��nn�ksen laskemista, jos jaettavana on suuri luku. Valitettavasti menetelm�� ei voi yleist�� muihin tarkisteita laskettaessa tavanomaisesti k�ytett�viin jakajiin. Sit� vastoin s��nt� on yleistett�viss� muille kantaluvuille: Kun B-kantaisia lukuja k�ytett�ess� tehd��n jako (B-1):ll�, jakoj��nn�s on sama siit� riippumatta, jaetaanko alkuper�inen kokonaisluku vai sen numeroiden summa (samaa kantalukua B on tietysti muistettava k�ytt�� joka kohdassa).

Matkashekin sarjanumero

American Expressin (AmEx) matkashekin oikeassa yl�nurkassa on yhdeks�nnumeroinen sarjanumero, joka toistuu osana shekin alareunassa olevaa optisesti tai magneettisesti luettavaa rivi�. T�ll� rivill� sarjanumeron loppuun on lis�tty tarkiste, joka valitaan siten ett� koko numerojonon summa - ja samalla numeroiden muodostama luku - on tasan jaollinen yhdeks�ll�. Sarjanumeroa edelt�v�t numerot eiv�t ole tarkistuksessa mukana. Esimerkki: Sarjanumero 445�643�619, numeroiden summa on 42 → tarkiste on 3 (42+3=45, joka on tasan jaollinen 9:ll�), tarkisteellinen numerojono on 4456436193.

T�m� tarkistus on todettu toimivaksi vuosina 1991 ja 2000 hankituissa AmExin shekeiss�. VISA:n matkashekeiss� kerrotaan k�ytett�v�n samaa tarkistusta. Joidenkin l�hteiden mukaan tarkisteen pit�isi sis�lty� itse sarjanumeroon, mutta havainnot eiv�t tue t�t�.

Virheenpaljastuskyky on vaatimaton kaikissa sellaisissa menetelmiss�, joissa tarkistettavat numerot lasketaan yhteen ilman painokertoimia. Vrt. Painokertoimet ja Havaittuja heikkouksia.

Eurosetelin sarjanumero

Euroseteleit� on kaksi sarjaa.
  • Vuonna 2002 k�ytt��n otettu alkuper�inen sarja, jonka sarjanumeroissa on yksi kirjain ja 11 numeroa. T�st� eteenp�in 2002-sarja.
  • Vuodesta 2013 alkaen k�ytt��n otettu uusittu sarja, jonka sarjanumeroissa on kaksi kirjainta ja 10 numeroa. T�st� eteenp�in 2013-sarja.
Kaikkien euroseteleiden sarjanumerot tarkistetaan samalla menetelm�ll�. Kirjaimet korvataan ASCII-koodeillaan seuraavan taulukon mukaisesti:
A 65B 66C 67D 68E 69F 70 G 71H 72I 73J 74K 75L 76 M 77
N 78O 79P 80Q 81R 82S 83 T 84U 85V 86W 87X 88Y 89 Z 90
T�m�n j�lkeen numerot, ml. viimeisen� oleva tarkiste, lasketaan yhteen (ei ole v�li� sill�, otetaanko yhteenlaskuun kirjainten ASCII-arvot vai arvojen yksitt�iset numerot). Jos sarjanumero on virheet�n, summa on jaollinen 9:ll�. Jos jaollisuus ei ole ilmeinen, numeroiden summausta toistetaan, kunnes j�ljell� on vain yksi numero, joka virheet�nt� sarjanumeroa tarkistettaessa on aina 9, ts. kun kirjain tai kirjaimet on korvattu numeroilla, sarjanumero on tasan jaollinen 9:ll�.

Esimerkkej�: 20 €:n seteli X09093074411, 5 €:n seteli SE2041459102 ja 10 €:n seteli UC3009629701

	 X  0 9 0 9 3 0 7 4 4 1 1
	88  0 9 0 9 3 0 7 4 4 1 1 =  54 →  9
	 X  0 9 0 9 3 0 7 4 4 1 1
	88  0 9 0 9 3 0 7 4 4 1 1 = 126 →  9
	 S  E 2 0 4 1 4 5 9 1 0 2
	83 69 2 0 4 1 4 5 9 1 0 2 =  54 →  9
	 S  E 2 0 4 1 4 5 9 1 0 2
	83 69 2 0 4 1 4 5 9 1 0 2 = 180 →  9
	 U  C 3 0 0 9 6 2 9 7 0 1
	85 67 3 0 0 9 6 2 9 7 0 1 =  63 →  9
	 U  C 3 0 0 9 6 2 9 7 0 1
	85 67 3 0 0 9 6 2 9 7 0 1 = 189 → 18 → 9
Esimerkeiss� 1, 3 ja 5 on summattu ASCII-arvojen numerot, mik� on helpompaa k�sin laskettaessa. Esimerkiss� 2, 4 ja 6 on summattu itse ASCII-arvot, mik� taas on helpompaa tietokoneohjelmassa.

Tarkiste voidaan laskea esim. seuraavalla kaavalla:

tarkiste = (350 - summa) mod 9 + 1
Jossa "summa" on tarkistettavien numeroiden summa (ml. kirjainten numeroarvot) ja 350 on mielivaltaisesti valittu luku, joka kuitenkin t�ytt�� seuraavat ehdot: Luku plus yksi on tasan jaollinen yhdeks�ll�; luku on v�hint��n suurimman tarkisteen (9) verran suurempi kuin suurin mahdollinen summa (261). Esim:
Summa ilman tarkistetta on 53
350 - 53 = 297
297 mod 9 = 0
0 + 1 = 1 (tarkiste)
53 + 1 = 54
54 mod 9 = 0 (eli tarkiste 1 toteuttaa tarkistuksen)
Huomaa ett� tarkiste ei koskaan ole 0, vaikka se toteuttaisi tarkistuksen yht� hyvin kuin 9. – N�inkin vaatimaton tarkistus riitt�nee koneelliseen lukuun, mutta olisi mielenkiintoista tiet��, sis�ltyyk� sarjanumeroon paremmin piilotettuja tarkistuksia, vrt. Tarkistettavan tiedon pituus (kehystetty teksti).

2002-sarjan setelien sarjanumeroissa kirjain osoittaa alkuper�maan seuraavan taulukon mukaisesti:

DViro PAlankomaat
ESlovakia RLuxemburg
FMalta SItalia
G
Kypros TIrlanti
HSlovenia URanska
JYhdistynyt kuningaskunta VEspanja
KRuotsi WTanska
LSuomi XSaksa
MPortugali YKreikka
NIt�valta ZBelgia
Kirjaimille A..C ei ole m��ritelty merkityksi�, mutta Latvia ehtinee liitty� euroalueeseen ja saanee kirjaimen C ennen kuin 2002-sarja on kokonaan korvattu 2013-sarjalla. Vastaavasti Liettua saanee B-kirjaimen. I, O ja Q on ilmeisesti j�tetty k�ytt�m�tt� sekaannusten v�ltt�miseksi – luultavasti kaikkia kirjaimia ei k�ytet� my�sk��n 2013-sarjan seteleiss�. J, K ja W eiv�t ole k�yt�ss�, koska n�m� maat eiv�t k�yt� euroja. R ei ole k�yt�ss�, koska Luxemurgissa liikkeelle laskettavissa seteleiss� on sen maan koodi, miss� setelit on painettu. Maat joille ensimm�isess� vaiheessa annettiin kirjaimet J..Z ovat k��nteisess� aakkosj�rjestyksess� omakielisten nimiens� mukaan, paitsi Tanska ja Kreikka (Ελλαδα / Ellada), joiden paikat on vaihdettu, luultavasti siksi ett� kreikan kieless� ei ole W:t�, mutta Υ (Ypsilon) on. Irlanti on englanninkielisen nimens� mukaisessa paikassa, ehk� siksi ett� maan ensimm�inen virallinen kieli iiri ei ollut EU:n virallinen kieli silloin kun asiasta p��tettiin.

2013-sarjan seteleiss� 1. kirjain osoittaa painopaikan. 2. kirjaimella ei ole informaatiosis�lt��, numeron vaihtaminen kirjaimeksi vain lis�� mahdollisten sarjanumeroiden lukum��r��.

Suurin osa n�ist� tiedoista ja paljon muuta l�ytyv�t my�s englanninkielisest� Wikipediasta. Tiedot on tarkistettu vertaamalla niit� todellisiin sarjanumeroihin. Wikipediassa on tietoja my�s mm. paljain silmin n�ht�v�n vesileiman viivakoodista, kuvank�sittely� vaikeuttavasta digitaalisesta vesileimasta, mikropainatuksesta, magneettisen musteen k�yt�st�, infrapuna- tai ultraviolettivaloon reagoivista materiaaleista, valokopioinnin est�v�st� EURion-kuviosta ja eurosetelin kuusimerkkisest� painokoodista (setelipaino, painolaatta, painoarkin rivi ja sarake). 2002-sarjan seteleiss� painokoodin osoittama setelipaino on usein eri maassa kuin miss� seteli on laskettu liikkeelle; 2013-sarjan seteleist� j�lkimm�ist� tietoa ei voi p��tell�.

2002-sarjan sarjanumeroiden tarkistus on aikaisemmin kuvattu ainakin kahdella muulla tavalla, joista yht� ei voi mielekk��sti soveltaa 2013-sarjaan, ja toinen tuottaa v��ri� tuloksia, joten yll�olevaa kuvausta on pidett�v� tuntemistani vaihtoehdoista ainoana oikeana.

Muuntogeenisen organismin tunniste

Muuntogeenisten organismien (Genetically Modified Organisms, GMO) ja niist� saatavien tuotteiden j�ljitt�miseksi Euroopan Unioni on ottanut k�ytt��n 11-merkkisen tunnisteen, joka on muodoltaan ja sis�ll�lt��n sama kuin OECD:n (Organisation for Economic Co-operation and Development, Taloudellisen yhteisty�n ja kehityksen j�rjest�) m��rittelem� BioTrack-tietokannassa ja bioturvallisuutta koskevassa tiedonv�litysj�rjestelm�ss� k�ytett�v� tunniste. Tunnistetta sanotaan my�s 9-merkkiseksi, mutta t�ll�in ei oteta huomioon v�liviivoja, vaikka ensimm�isen viivan sijainti on merkityksellinen. Tunnisteen muodolle on kaksi vaihtoehtoa:
  • AAA-BBBBB-T
  • AA-BBBBBB-T
AA on luvanhaltijan tunnus, joka voidaan muodostaa haltijan nimest�. BB yksil�i geneettisen muunnostapahtuman tai tapahtumat. Molemmat ovat aakkosnumeerisia (pieni� kirjaimia ei k�ytet�). T on numeerinen tarkiste. Toisin kuin useimmissa t�m�nkaltaisissa tunnisteissa, BB-osa ei ole luvanhaltijan vapaasti valittavissa, vaan kullekin tapahtumalle on luvanhaltijasta riippumaton tunniste (jonka tosin tietylle tapahtumalle ensimm�isen� lupaa hakeva voi m��ritell� varmistettuaan ensin ettei sama tunniste ole ennest��n k�yt�ss�). Tarkisteen laskenta:
  1. Kirjaimille A..Z k�ytet��n numeroarvoja 1..26 (A=1, B=2, C=3 ... Y=25, Z=26).
  2. Tunnisteen numerot ja kirjainten numeroarvot lasketaan yhteen.
  3. Jos summassa on enemm�n kuin yksi numero, ne lasketaan yhteen. T�t� toistetaan kunnes j�ljell� on vain yksi numero.
  4. J�ljelle j��v� numero (1..9) on tarkiste.
Esimerkkej�: Sokerijuurikas KM-���H71-4 ja tomaatti CGN-89322-3
	 K  M  -  �  �  �  H  7  1  -  4
	11 13     0  0  0  8  7  1  =  40; 4 + 0 = 4
	 C  G  N  -  8  9  3  2  2  -  3
	 3  7 14     8  9  3  2  2  =  48; 4 + 8 = 12; 1 + 2 = 3
Huomaa ett� erotukseksi O-kirjaimesta nolla esitet��n s��nn�nmukaisesti merkill� "�" (ISO Latin-1 -merkist�ss� heksadesimaalikoodi D8; sama kuin norjan ja tanskan iso �). T�m� on hyv� ottaa huomioon jos tehd��n ohjelma sy�tt�tietojen tarkistamiseksi - ei liene vahingoksi jos ohjelma hyv�ksyy nollat kahdella eri tavalla esitettyin� (� voi olla vaikea sy�tt��), mutta konvertoi tavalliset nollat oikeaan muotoon ennen tietojen l�hett�mist� eteenp�in.

L�hde: Komission asetus (EY) N:o 65/2004, Euroopan Unionin virallinen lehti 16.01.2004.

T�ss� sovelluksessa menetelm� on kokonaisuutena viel� hiukan heikompi kuin matkashekkien ja eurosetelien sarjanumeroita tarkistettaessa. Noissa sovelluksissa luku on todenn�k�isesti koneellista, jolloin heikkotehoinen tarkistusmenetelm� on ehk� viel� joten kuten puolusteltavissa, mutta t�m� sovellus on paremminkin er�iden lukumystiikka-taikauskon menetelmien kirjaimellinen toteutus kuin kunnollinen tarkistusmenetelm�. Ainoa mik� (toivottavasti) puuttuu on geenimuunnoksen vaikutusten arviointi tarkisteen perusteella lukumystiikan keinoin. Kymmenen kertaa parempia menetelmi� olisi l�hes yht� helppo k�ytt��. T�llainen "tarkistus" antaa kehitt�j�st��n OECD:st� huonon kuvan. Ei suositella k�ytett�v�ksi muualla. Katso Havaittuja heikkouksia.

Tunnisteiden k�yt�ss� n�ytt�isi olevan ongelma, jos luvanhaltija, jolla on 3-merkkinen tunnus, haluaa rekister�id� geenimuunnoksen, jolle on jo ennest��n annettu 6-merkkinen tunnus, mutta jos t�m� ei h�iritse OECD:t� eik� EU:ta, ei kai minunkaan tarvitse asiasta v�litt��.


Moduli 7

Lentolipun sarjanumero

T�m� kuvaus ei perustu mihink��n Suomessa julkaistuun dokumenttiin, ja toistaiseksi on tutkittu vain Austrian Airlinesin, British Airwaysin, Finnairin, KLM:n ja Lufthansan lippuja, mutta samanlaista tarkistusta kerrotaan k�ytett�v�n Yhdysvalloissa, ja menetelm� saattaa olla maailmanlaajuinen.

Lipun alareunassa on numerosarja, joka esiintyy useassa eri muodossa. Lipun kuittiosassa (siin� joka j�� matkustajalle lennon j�lkeen) numerosarjan alussa on 0, jonka j�lkeen tulee 3 + 10 numeroa, ja viimeisen� erikseen tarkiste joka lasketaan kaikista edelt�vist� numeroista jakamalla niiden muodostama luku 7:ll�. Jakoj��nn�s on tarkiste. Esimerkki:

	0 105 0812661740 2
	01050812661740 mod 7 = 2
Huomaa ett� tarkiste ei koskaan ole suurempi kuin 6. Varsinaisissa lipuissa numerot ovat muuten samat, mutta tavanomaisella menopaluulennolla menolipussa ensimm�inen numero on 1 ja paluulipussa 2. Tarkiste muuttuu vastaavasti:
	1 105 0812661740 5
	11050812661740 mod 7 = 5
	2 105 0812661740 1
	21050812661740 mod 7 = 1
Monimutkaisemmilla lennoilla numerointia jatketaan pitemm�lle. Kolminumeroinen osa on lentoyhti�n IATA-numero (International Air Transport Association - Kansainv�linen ilmakuljetusliitto; 074 = KLM, 105 = Finnair, 125 = British Airways, 220 = Lufthansa, 257 = Austrian Airlines jne.). Ilmoitetut numerom��r�t perustuvat muutamiin tutkittuihin lippuihin; muissa (varsinkin yhdysvaltalaisten lentoyhti�iden) lipuissa m��r�t voivat vaihdella.

Virheenpaljastuskyky on heikompi kuin kehittyneemmill� menetelmill� (vrt. Havaittuja heikkouksia), mutta erinomainen siihen n�hden kuinka yksinkertainen menetelm� on. Tarvittaessa katso Jakoj��nn�s ja kongruenssi, jossa kerrotaan my�s miten lasketaan jakoj��nn�s suuresta luvusta.


ISO 7064

Varoitus! T�m� kuvaus perustuu kokonaan toisen k�den tietoihin ja omiin havaintoihini. Virallinen standardi ei ole ollut k�ytett�viss�ni. Er��t l�htein� k�ytetyt sovellusten kuvaukset ovat keskener�isi�. T�ss� esitetyt tiedot voivat muuttua tai olla virheellisi�.

ISO (Kansainv�linen standardointij�rjest�, International Organization for Standardization) on m��ritellyt standardissa 7064 kahdeksan tarkistusmenetelm��, joita suositellaan k�ytett�viksi n�pp�ilyvirheiden havaitsemiseksi. Joillakin tahoilla n�ytt�� olevan vakaa usko standardin mukaisten menetelmien erinomaisuuteen. Menetelmien kehitt�misen tavoitteet ovat olleet seuraavat:

  • Havaitaan kaikki tapaukset, joissa yksitt�inen merkki vaihtuu toiseksi.
  • Havaitaan kaikki tai l�hes kaikki tapaukset, joissa kaksi merkki� vaihtavat paikkaa kesken��n.
  • Havaitaan kaikki tai l�hes kaikki tapaukset, joissa merkkien m��r� muuttuu.
  • Havaitaan suuri osa tapauksista, joissa kaksi merkki� vaihtuu toisiksi.
  • Havaitaan suuri osa kaikista muista virheist�.
Eli jotakuinkin samat tavoitteet kuin useimmissa standardin ulkopuolisissa tarkistusmenetelmiss�. Erikseen sanotaan ettei menetelmi� ole tarkoitettu seuraaviin tarkoituksiin:
  • Automaattinen virheiden korjaaminen
  • Tahallisten muutosten havaitseminen
  • Koneiden v�linen tiedonsiirto
Samat rajaukset sopivat hyvin kaikkiin t�ss� dokumentissa kuvattuihin menetelmiin.

Standardin ensimm�inen versio julkaistiin 1983 ja toinen vuonna 2003. Standardin mukaiset menetelm�t eiv�t n�yt� levinneen kovin laajalle. T�h�n on luullakseni useita syit�:

  • Monet nykyisin k�ytett�v�t menetelm�t ehtiv�t tulla k�ytt��n ennen standardin julkistamista, vaikken voi olla panematta merkille, ett� sen j�lkeenkin on laadittu useita ISO-standardeja, joissa k�ytet��n muita kuin t�h�n standardiin sis�ltyvi� menetelmi�.
  • Monien tarkistusmenetelmien kuvaukset ovat vapaasti saatavissa Internetist� (tosin parin menetelm�n kohdalla t�m� minun dokumenttini n�ytt�� olevan ainoa l�hde), mutta standardin virallinen kuvaus on erikseen tilattava ja siit� on my�s maksettava. Viimeksi tarkistaessani 23.03.2013 hinta oli 80 Sveitsin frangia (CHF) eli 65,51 € plus mahdollisesti postikulut ja ALV. Ep�virallisia kuvauksia on ollut vaikea l�yt��.
  • Tunnen vain viisi standardiin sis�ltyvist� kahdeksasta menetelm�st�, mutta er��t niist� ovat laskennallisesti monimutkaisempia ja siksi v�hemm�n houkuttelevia kuin standardin ulkopuoliset menetelm�t.
  • Vaikuttaa silt� ett� kuvaukset ovat matemaatikoiden toisille matemaatikoille kirjoittamia, vaikka kuvausten k�ytt�j�t olisivat p��asiassa ohjelmoijia, ja useille tuntemilleni ohjelmoijille (my�s minulle) monimutkaisempien matemaattisten merkint�jen lukeminen on jonkinasteinen haaste, eli standardia on vaikea ymm�rt��. T�ss� suhteessa toisen k�den kuvaukset ovat usein parempia.
Menetelm�t n�ytt�v�t kuitenkin tulevan v�hitellen k�ytt��n uusissa sovelluksissa. T�h�n viittaa ainakin se, ett� menetelmist� l�ytyy nyt (huhtikuussa 2005) tietoja helpommin kuin vuosi tai kaksi sitten.

Standardiin sis�ltyv�t menetelm�t ovat seuraavat (taulukossa "numero" tarkoittaa kymmenj�rjestelm�n numeroa 0..9 ja "kirjain" anglosaksisten aakkosten kirjainta A..Z):

"Puhtaat" menetelm�t
"Puhtaissa" menetelmiss� k�ytet��n vain yht� jakajaa, jota voidaan kuitenkin k�ytt�� useita kertoja samassa laskelmassa.
Menetelm�SovellusalueTarkisteetKommentti
ISO Mod 11-2Numerot1 numero tai X-kirjain Tarkempi kuvaus erillisess� kappaleessa.
ISO Mod 37-2Numerot ja kirjaimet1 numero tai kirjain tai * Tarkempi kuvaus erillisess� kappaleessa.
ISO Mod 97-10Numerot2 numeroa T�t� menetelm�� k�ytet��n IBAN:issa, RF-viitteess� ja IPI:n maksunaihekoodissa.
ISO Mod 661-26Kirjaimet2 kirjainta Ei lis�tietoja.
ISO Mod 1271-36Numerot ja kirjaimet2 numeroa tai kirjainta Ei lis�tietoja.
Hybridimenetelm�t
Hybridimenetlmiss� k�ytet��n kahta jakajaa, joista toinen vastaa k�sitelt�v�n merkist�n merkkien m��r�� (10, 26 tai 36) ja toinen on em. jakaja plus yksi.
Menetelm�SovellusalueTarkisteetKommentti
ISO Mod 11,10Numerot1 numero Tarkempi kuvaus erillisess� kappaleessa.
ISO/IEC Mod 27,26Kirjaimet1 kirjain Kuvataan samaksi kuin Mod 37,36 mutta rajattuna kirjainten k�sittelyyn.
ISO/IEC Mod 1271-36Numerot ja kirjaimet1 numero tai kirjain Ei lis�tietoja.
Ep�suorasti on p��telt�viss�, ett� standardi sallii perusmenetelmien muunnelmien k�ytt�misen sovelluksissa, joihin ei sopivaa menetelm�� ole valmiiksi tarjolla. ISO:n omat dokumentit mainitsevat ainakin menetelm�t Mod 16-3 ja Mod 37,36 t�h�n standardiin viitaten, vaikka t�m�nnimisi� menetelmi� ei standardiin sellaisenaan sis�lly. Oletan ett� standardi sis�lt�� tarkat ohjeet muunnelmien tekemiseksi, koska muuten on aivan liian helppoa luoda huonoja menetelmi�. Menetelmien nimien taustalla on varmaan jokin systeemi, mutta k�ytett�viss� olevien tietojen perusteella se ei ole minulle selvinnyt.

Joitakin menetelmi� nimitet��n rekursiivisiksi. T�ss� tapauksessa se tarkoittaa, ett� kunkin merkin k�sittelyss� k�ytet��n yhten� tekij�n� v�litulosta, joka on saatu edellisen merkin k�sittelyst�. Mod 11,10 on esimerkki. Nimitys sopii my�s standardin ulkopuolisiin Verhoeffin menetelm��n ja Dammin algoritmiin.

Dokumentin muista p��kappaleista poiketen t�ss� pyrit��n keskittym��n menetelmiin enemm�n kuin sovelluksiin.

Joidenkin menetelmien nimiss� esiintyv� IEC on International Electrotechnical Commission (S�hk�alan kansainv�linen standardointij�rjest�), joka toimii yhteisty�ss� ISO:n ja ITU:n (International Telecommunication Union, Kansainv�linen televiestint�liitto) kanssa. N�m� organisaatiot laativat valtaosan kansainv�lisist� standardeista strategisena partnerinaan WTO (World Trade Organization, Maailman kauppaj�rjest�). Standardoinnin ensisijainen teht�v� on kansainv�lisen kaupan helpottaminen.

Hieman yll�tt�en yksi kaikkein yleisimmist� tarkistusmenetelmist� - Luhnin moduli 10 - ei sis�lly ISO 7064:�n, vaan kuvataan standardissa ISO 7812-1.

Organisaation kansainv�linen nimi ISO ei ole lyhenne englanninkielisest� nimest� International Organization for Standardization eik� mist��n muustakaan, vaan se on johdettu kreikan sanasta "isos", joka tarkoittaa "yht�l�inen". Vrt. isobaari, isotermi, isotropia.

(Ajatus standardiin 7064 sis�ltyvien menetelmien ottamisesta mukaan t�h�n dokumenttiin on ollut mieless�ni useita vuosia, mutta aikaisemmin on ollut vaikeaa l�yt�� ristiriidatonta tietoa edes t�m�nk��n vertaa. Kimmokkeen yritt�� selvitt�� asiaa uudelleen antoi s�hk�postien vaihto Tuomas Salsteen kanssa tammikuussa 2005, mutta asian laajuuden ja muiden kiireiden vuoksi teksti valmistui vasta huhtikuussa. Samassa yhteydess� lis�sin kuvauksen Verhoeffin menetelm�st�, josta aikaisemmin oli vain maininta.)

Mod 11-2

T�m�n menetelm�n kohdalla joudun esitt�m��n viel� suurempia varauksia kuin standardiin sis�ltyvien menetelmien kuvauksissa yleens�: Ainoa l�yt�m�ni l�hde on yksi nettisivu, jolla algoritmi on koodattu useilla ohjelmointikielill�. Dokumentointi on enimm�kseen kiinaksi, ja kyseess� n�ytt�� olevan Kiinan kansantasavallan henkil�kortin vanhanmallisen numeron muuttaminen uudenmalliseksi, mihin sis�ltyy mm. tarkisteen lis��minen. Kuvauksen uskottavuutta saattaa lis�t� (tai sitten v�hent��) se, ett� kaikki osatekij�t ovat tuttuja jostakin muusta yhteydest�. Laskenta:
  1. Tarkistettavia numeroita painotetaan oikealta alkaen kertoimilla 1, 2, 4, 8, 5, 10, 9, 7, 3 ja 6. Kerroinsarjaa toistetaan tarvittaessa.
  2. Tulot lasketaan yhteen.
  3. Summa jaetaan 11:ll�.
  4. Jakoj��nn�s v�hennet��n 12:sta.
  5. Erotus jaetaan 11:ll�.
  6. Tarkiste m��r�ytyy jakoj��nn�ksen perusteella seuraavasti:
    • 0..9: Jakoj��nn�s on tarkiste.
    • 10: Tarkiste on X-kirjain.
Kuvauksesta on my�s versioita, joissa kohdat 4..6 on korvattu poimimalla tarkiste taulukosta, mutta n�enn�isest� monimutkaisuudestaan huolimatta k�ytt�m�ni versio on ohjelmakoodina lyhyempi. Ensimm�ist� kohtaa lukuun ottamatta menetelm� on oleellisesti sama kuin standardiin sis�ltyv� Mod 37-2, kun er��t vakiot ymm�rret��n k�ytett�v�st� merkist�st� riippuviksi. Esimerkki: 2713-22:8
	 2  7  1  3  -  2  2  :  8
	10  5  8  4     2  1
	20 35  8 12     4  2  =  81
	81 mod 11 = 4; 12 - 4 = 8; 8 mod 11 = 8 → 8
Kerroinsarja 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 ja 1 saadaan kaavalla 6^p mod 11 jossa p on position numero 0..10 vasemmalta oikealle. T�m� liittyy jotenkin lukuteoriaan ja erityisesti Fermat'n pieneen lauseeseen. Samaa kerroinsarjaa k�ytet��n my�s Y-tunnuksen ja sen muunnelmien tarkistuksessa sek� useissa muissa menetelmiss� eri puolilla maailmaa, mm. latvialaisessa ja it�saksalaisessa henkil�tunnuksessa (Personenkennzahl) ja erityisesti pankkitilien numeroiden ja muiden pankkitoimintaan liittyvien numerosarjojen tarkistuksissa, mutta vaikka kerroinsarja ja jakaja ovat samat, jakoj��nn�ksen k�sittely vaihtelee, eli kysymys ei v�ltt�m�tt� ole standardin ISO 7064 mukaisista menetelmist�, mutta joissakin tapauksissa kyseess� voi olla standardin muunnelma. Toistuneiden v��rink�sitysten vuoksi lienee aiheellista korostaa, ett� t�ss� kappaleessa kuvattua menetlm�� ei k�ytet� Y-tunnuksen ja sen muunnelmien tarkistamiseen, vaikka kerroinsarja perustuu samaan kaavaan.

Olen j�tt�nyt kuvauksesta pois yhden em. ohjelmissa esiintyv�n piirteen: Tarkistettaviin merkkijonoihin lis�t��n yhteen kohtaan muiden numeroiden v�liin numerot 19 ennen tarkisteen laskentaa, ja t�m� lis�ys sis�ltyy ohjelmien palauttamiin tarkisteellisiin merkkijonoihin. T�m� kuuluu sovellukseen, ei menetelm��n (syntym�vuoden muuttaminen kaksinumeroisesta nelinumeroiseksi).

Mod 37-2

Tarkistus voi kohdistua numeroihin 0..9 ja/tai kirjaimiin A..Z. Laskenta:
  1. Tarkistettavien merkkien positiot numeroidaan oikealta vasemmalle 1:st� alkaen. Tarkisteen positiota ei numeroida.
  2. Tarkistetta laskettaessa kirjaimille k�ytet��n numeerisia arvoja, jotka ovat samat kuin passien yhteydess� annetussa taulukossa.
  3. Kukin tarkistettava numero tai kirjaimen numeroarvo kerrotaan painokertoimella, joka on 2 potenssiin ko. position numero. Kertoimet ovat siis oikealta alkaen 2, 4, 8, 16 jne..
  4. Tulot lasketaan yhteen. (Tulot ovat parillisia, joten niin on summakin.)
  5. Summa jaetaan 37:ll�.
  6. Jakoj��nn�s v�hennet��n 38:sta.
  7. Erotus jaetaan 37:ll�.
  8. Tarkiste m��r�ytyy jakoj��nn�ksen perusteella:
    • 0..9: Jakoj��nn�s on tarkiste.
    • 10..35: Tarkiste on kirjain joka saadaan em. taulukosta jakoj��nn�ksen perusteella.
    • 36: Tarkiste on "*" (t�hti, asteriski).
Vaikka yll�oleva on menetelm�n tarkka kuvaus, sen soveltaminen sellaisenaan voi johtaa tehottomuuteen (toistuvat potenssiinkorotukset) tai pitki� merkkijonoja k�sitelt�ess� jopa ylivuotoon (isot painokertoimet). Molemmat voidaan helposti v�ltt��:
  1. K�sitell��n merkkijono vasemmalta oikealle.
  2. Kunkin merkin kohdalla numero tai kirjaimen numeroarvo lis�t��n apumuuttujaan (joka tietysti asetetaan nollaksi ennen silmukkaa).
  3. Lis�yksen j�lkeen apumuuttujan arvo kerrotaan kahdella ja tulosta otetaan modulo 37.
Eli kaavana silmukan runko muodostuu yhdest� ainoasta rivist� (tietysti ao. ohjelmointikielelle muokattuna):

sum = (sum + jono(ind1)) � 2 mod 37

Potenssiinkorotukset j��v�t pois, miss��n vaiheessa ei jouduta k�sittelem��n kovin suuria lukuja, ja lis�ksi algoritmin viides kohta on jo valmiiksi tehty kun silmukasta tullaan ulos.

Esimerkki: TAD 5728-V

	   T    A    D    5    7    2    8 - V    Kirjaimet korvattu
	  29   10   13                          ← numeroilla
	 128   64   32   16    8    4    2
	3712  640  416   80   56    8   16 = 4928
	4928 mod 37 = 7; 38 - 7 = 31; 31 mod 37 = 31 → V
Dokumentissa jossa kuvataan Mod 16-3 v�itet��n, ett� Mod 37-2 ei aina havaitse yksitt�isen merkin vaihtumista toiseksi. En havaitse menetelm�ss� mit��n piirrett�, josta t�llainen ominaisuus voisi seurata, eik� sellaista tullut esiin my�sk��n yli 10 miljoonassa testiss�, joissa havaittiin my�s kaikki vierekk�isten numeroiden keskin�iset vaihtumiset. T�llainen testi ei tietenk��n ole matemaattinen todistus.

Kansainv�linen verensiirtoyhdistys (International Society of Blood Transfusion, ISBT) on m��ritellyt standardin ISBT 128, jota k�ytet��n verenluovutus-, verivalmiste-, kudos- ja soluerien tunnistamiseen. Kuhunkin er��n liittyy joukko koodeja, joista useisiin liitet��n Mod 37-2:n mukainen tarkiste. Paitsi numero- ja kirjainjonoina, koodit esitet��n my�s viivakoodeina, ja standardin nimi viittaakin viivakoodij�rjestelm��n Code 128. Euroopan Unioni harkitsee verensiirtoihin ym. liittyvi� standardointitarpeita, ja kun ne on kartoitettu, p��tet��n tuleeko eurooppalaiseksi standardiksi ISBT 128, Eurocode vai kehitet��nk� kokonaan uusi j�rjestelm�.

Esimerkki: G1234 89 654321 Y

Suomen Punainen Risti (SPR) k�ytt�� ISBT 128:a.

Dokumentissa joka m��rittelee ISBT 128:n sanotaan, ett� jos t�t� menetelm�� k�ytett�ess� lasketaan tarkiste virheett�m�lle tarkisteelliselle merkkijonolle, tulos on aina * (t�hti). T�m� tieto helpottaa tarkistuksen koodaamista.

Mod 11,10

Ohjelma Mod 11,10 -menetelm�lle ja muunnelmille

Perusmenetelm� soveltuu vain numeroille 0..9, mutta menetelm�� voidaan muunnella. Perusmenetelm�ss� kantaluku on 10, mutta lukuarvon sijasta k�yt�n jatkossa termi� kantaluku, koska se helpottaa muunnelmien ymm�rt�mist�. Laskenta:

  1. Laskennassa k�ytett�v�lle v�litulokselle annetaan alkuarvoksi kantaluku.
  2. K�sitell��n numero kerrallaan vasemmalta oikealle.
    1. Lis�t��n tarkistettava numero v�litulokseen.
    2. Jaetaan v�litulos kantaluvulla. Jakoj��nn�s on uusi v�litulos. Jos kuitenkin jakoj��nn�s on nolla, sen sijasta k�ytet��n kantalukua.
    3. Kerrotaan v�litulos kahdella.
    4. Jaetaan v�litulos luvulla joka on kantaluku plus yksi. Jakoj��nn�s on uusi v�litulos (t�ss� vaiheessa v�litulos on aina v�lill� 1..kantaluku).
  3. Kun viimeisen tarkistettavan numeron k�sittelyst� saadun v�lituloksen ja (virheett�m�n) tarkisteen summa jaetaan kantaluvulla, jakoj��nn�s on yksi.
Kovasti yritt�m�ll� kohdan C olisi varmaan voinut muotoilla vaikeammin ymm�rrett�v�ksi, mutta n�in se n�kemiss�ni dokumenteissa on kirjoitettu. K�yt�nn�ss� tarkiste saadaan kaavalla

tarkiste = ( (kantaluku+1) - viimeinen_v�litulos ) mod kantaluku

Esimerkki: Lasketaan tarkiste numerosarjalle 23743 (VT = v�litulos, N = tarkistettava numero; muut otsikot viittaavat eo. listaan):

VTNB1B2B3B4
10212244
4377143
371010209
9413366
6399187
Josta em. kaavalla (11-7) mod 10 saadaan tarkisteeksi 4, eli tarkisteen kanssa 237434. Huomataan my�s ett� (7+4) mod 10 = 1, eli eo. listan kohta C tulee t�ytetyksi.

Jos tarkisteelliselle virheett�m�lle numerosarjalle lasketaan uusi tarkiste, se on aina kantaluku miinus yksi. T�m� tieto helpottaa sy�tetyn numerosarjan tarkistamista ohjelmassa. Eo. esimerkiss� siis 237434:lle saataisiin tarkisteeksi 9.

T�ll� menetelm�ll� ja sen muunnelmilla on ominaisuus, jota useimmilla t�ss� dokumentissa kuvatuilla menetelmill� ei ole: Tarkiste vaihtuu my�s tapauksessa, jossa tarkistettava numerosarja sis�lt�� pelkki� nollia, ja numerojono pitenee tai lyhenee yhden numeron verran. Testattu tapauksissa joissa kantaluku on 10, 16, 32 tai 36 ja tarkistettava numerojono on enint��n 20-merkkinen.

Menetelm�� k�ytet��n Saksassa verenluovutuspussien ja verivalmiste-erien tunnistamiseen, ja Eurocode-niminen organisaatio esitt�� samaa systeemi� kansainv�liseksi standardiksi. T�ss� tapauksessa koodi muodostuu seuraavista osista:

  1. 3-numeroinen maatunnus (ISO 3166-1); Suomen koodi on 246
  2. 3-numeroinen laitostunnus
  3. 9-numeroinen sarjanumero
  4. 1-numeroinen tarkiste
Eurocode-j�rjestelm�n mukaisia koodeja voidaan ainakin periaatteessa k�ytt�� tunnisteina my�s lukemattomissa muissa sovelluksissa. Sarjanumeron ja tarkisteen yhteinen pituus vaihtelee sovelluskohtaisesti 6..12 numeroon. Tarkiste voi olla 1- tai 2-merkkinen; se voi my�s puuttua (ei suositella) tai sen laskentamenetelm� voi vaihdella, mutta menetelm�n t�ytyy olla ISO-standardin mukainen. Koska tunniste ei sis�ll� sovellustunnusta, t�m� tieto on saatava jostakin muualta. Siin� miss� ISBT 128 soveltuu my�s kudos- ja soluerien tunnistamiseen, Eurocodeen n�m� ominaisuudet ovat vasta suunnitteilla.

Esimerkki: 276 616 973 212 561 5

Mod 11,10:n muunnelmat

Muutamista l�hteist� (ml. ISO:n dokumentit) on p��telt�viss�, ett� Mod 11,10:st� voidaan tehd� muunnelmia varsin helposti vaihtamalla kantalukua ja siit� riippuvia vakioita. Vain parilliset kantaluvut ovat mahdollisia. Esimerkkej�:
  • Mod 17,16 heksadesimaalinumeroille
  • Mod 37,36 merkkijonoille, joissa esiintyy numeroita 0..9 ja kirjaimia A..Z
Molemmissa tapauksissa kirjaimille k�ytet��n numeroarvoja, jotka n�kyv�t passien yhteydess� annetusta taulukosta. Tarkiste voi vaihdella v�lill� 0..kantaluku-1, eli se kuuluu aina samaan merkkijoukkoon johon tarkistus kohdistuu. My�s kantaluvun 32 k�ytt� voi olla mielek�st� (merkist� 0..9 ja A..V). T�ll�in jokaisen merkin voidaan tulkita vastaavan yht� viiden bitin ryhm��. ISO/IEC Mod 27,26 kuvataan samaksi kuin Mod 37,36, mutta rajattuna kirjainten A..Z k�sittelyyn, eli oletan ett� t�ss� menetelm�ss� kantaluku on 26, kirjaimia vastaavat numeroarvot ovat 0..25 ja muita eroja ei ole. Tuatara tuntee kantaluvut 10, 16, 32 ja 36, ja olen lis�nnyt my�s kantaluvun 26 niin, ett� sen valinta vastaa ISO/IEC Mod 27,26:ta sellaisena kuin olen menetelm�n ymm�rt�nyt.

Menetelm� havaitsee tavallisimmat virheet seuraavasti:

  • Yhden numeron vaihtuminen toiseksi havaitaan aina.
  • Kahden vierekk�isen numeron vaihtuminen kesken��n havaitaan aina, jos niiden erotus on muu kuin yksi. Erotuksen katsotaan olevan yksi my�s "ymp�ripy�r�hdyksess�", eli esim. kantaluvulla 16 F:n ja 0:n erotus on t�ss� tarkastelussa yksi.
  • Jos kahden vierekk�isen kesken��n vaihtuvan numeron erotus on yksi, vaihto j�� havaitsematta todenn�k�isyydell� 1/(n-1), jossa n on kantaluku. Huomaa ett� tapaukset, joissa vierekk�isten numeroiden erotus on yksi, todenn�k�isesti v�henev�t kantaluvun kasvaessa. (Pieness� testiaineistossa havaitsematta j��vien virheiden osuus voi poiketa eo. kaavasta paljonkin.)
  • Yksitt�isen numeron j�tt�minen pois tai lis��minen j�� havaitsematta toden�k�isyydell� 1/n, jossa n on kantaluku.
Havaitsematta j��v�t virheet ovat suurimmaksi osaksi erilaisia, mutta em. virheiden osalta menetelm� on kokonaisuutena varsin tarkasti yht� hyv� kuin Luhnin moduli 10. T�m� koskee my�s muunnelmia, kun molemmissa menetelmiss� k�ytet��n samaa kantalukua. Luhnin moduli ei kuitenkaan koskaan havaitse per�kk�isten numeroparien vaihtumista kesken��n, joka t�ss� menetelm�ss� j�� havaitsematta todenn�k�isyydell� 1/(n-1), jossa n on kantaluku.

Teoriassa l�hes mik� tahansa parillinen luku kelpaa kantaluvuksi, mutta k�yt�nn�n sovelluksissa 10:t� pienemm�t arvot eiv�t ole suositeltavia, koska t�llaiset menetelm�t eiv�t soveltuisi edes kaikille 10-j�rjestelm�n numeroille, ja jakajien pienentyess� menetelm�n suorituskyky heikkenee nopeasti. Vastaavasti jakajien (kantaluvun) kasvattaminen parantaa suorituskyky�, mutta jos kantaluku on suurempi kuin 36, on p��tett�v� mill� merkeill� suurempia numeroita esitet��n. Joidenkin ohjelmointikielten tuki eri kantaluvuille loppuu 36:een.

Muunnelmaa Mod 37,36 k�ytet��n mm. ISAN:in (International Standard Audiovisual Number) tarkistuksessa. ISAN on rinnakkainen j�rjestelmille ISBN, ISBN-13, ISSN, ISMN, ISWC ja ISTC. Nimen mukaisesti ISAN:ia k�ytet��n audiovisuaalisten t�iden tunnisteena, jonka rakenteesta on kaksi versiota:

  1. Perusmuoto:
    1. Etuliite ISAN, ei vaikuta tarkisteen laskentaan.
    2. 16 heksadesimaalinumeroa nelj�n� nelj�n numeron ryhm�n�, 12 ensimm�ist� numeroa ovat varsinainen tunnus, 4 viimeist� ovat teoksen osan tunnus (tai 0000).
    3. Tarkiste, numero 0..9 tai kirjain A..Z.
  2. Laajempi muoto (ei v�ltt�m�tt� k�yt�ss� alkuvaiheessa):
    1. Alkuosa = perusmuoto.
    2. Versionumero, kahdeksan heksadesimaalinumeroa, kahtena nelj�n numeron ryhm�n�.
    3. Tarkiste, numero 0..9 tai kirjain A..Z, lasketaan edelt�vist� 24 heksadesimaalinumerosta, mutta perusmuodon tarkistetta ei oteta laskentaan mukaan (vaikka laskentamenetelm� pystyisi senkin k�sittelem��n).
Esimerkki: ISAN A36F-012C-36DE-0000-K-27B9-C453-S

Etuliite erotetaan tunnisteesta v�lily�nnill�. Nelj�n numeron ryhm�t erotetaan toisistaan ja tarkisteista v�lily�nneill� tai v�liviivoilla. Tekstin� esitett�v�ss� muodossa ei k�ytet� pieni� kirjaimia. Huom. 1! ISAN:ia k�sitteleviss� dokumenteissa on useita esimerkkej�, joissa tarkisteet eiv�t vastaa t�t� kuvausta, mutta tarkisteiden laskenta on omassa liitteess��n kuvattu hyvin selv�sanaisesti. Huom. 2! Internetist� l�ytyy my�s dokumentteja joissa ISAN:in tarkisteen laskenta on kuvattu niin kuin menetelm� olisi Mod 11,10 tai Mod 17,16. Nuo dokumentit eiv�t kuitenkaan ole virallisia standardeja, vaan n�ytt�v�t liittyv�n standardin kehitt�misen aikaiseen keskusteluun. Lis�ksi olen melko varma siit�, ett� j�lkimm�isess� tapauksessa menetelm�n kuvaus on virheellinen (oikeat toimenpiteet mutta v��r� j�rjestys ja heikompi virheenpaljastuskyky).

Mod 16-3

T�m�n heksadesimaalinumeroille tarkoitetun menetelm�n sanotaan perustuvan standardiin ISO 7064, vaikka menetelm� ei sellaisenaan standardiin sis�lly. Laskenta:
  1. Tarkistettavia numeroita painotetaan oikealta alkaen (desimaalij�rjestelm�n) kertoimilla 3, 9, 11 ja 1. Kerroinsarjaa toistetaan tarpeen mukaan.
  2. Tulot lasketaan yhteen.
  3. Summa jaetaan (desimaalij�rjestelm�n) luvulla 16.
  4. Jakoj��nn�st� vastaava heksadesimaalinumero on tarkiste (= summan viimeinen numero, jos summaa k�sitell��n heksadesimaalilukuna).
Esimerkki: 3A-771.2
	3  A  -  7  7  1  .  2
	3 10     7  7  1        ← Vastaava desimaaliluku
	3  1    11  9  3
	9 10    77 63  3 = 162 ≡ 2 (mod 16)
Menetelm�� k�ytet��n sovelluksessa nimelt� International Standard Textual Work Code (ISTC), joka on rinnakkainen j�rjestelmille ISBN, ISBN-13, ISSN, ISMN, ISWC ja ISAN. Koodi muodostuu viidest� osasta:
  1. Etuliite ISTC (ei vaikuta tarkisteen laskentaan).
  2. Koodin antaneen organisaation tunniste, kolme heksadesimaalinumeroa.
  3. Vuosiluku, nelj� desimaalinumeroa, k�sitell��n tarkisteen laskennassa samoin kuin heksadesimaalinumeroita.
  4. Yksil�iv� numero, kahdeksan heksadesimaalinumeroa.
  5. Tarkiste, yksi heksadesimaalinumero.
Esimerkki: ISTC 0A9 2001 12C4F132 4

ISTC:ll� tunnistetaan tekstimuotoinen ty� sen eri k�sittelyvaiheissa kirjoittajan ja lukijan v�lill�, mutta lopulliselle julkaistavalle ty�lle annetaan jonkin muun j�rjestelm�n mukainen tunniste, kuten ISBN-numero, ISBN-13, SICI tai BICI.


Muita tarkistusmenetelmi�

T�h�n on koottu kuvauksia tarkistusmenetelmist�, joiden sovellukset jostakin syyst� eiv�t ainakaan koko laajuudessaan kuulu t�m�n dokumentin aihepiiriin.

Verhoeffin menetelm�

Ohjelma Verhoeffin menetelm�lle

Verhoeff ��nnett�nee suunnilleen "ferhuf".

Verhoeffin menetelm�lle on ominaista, ett� se on melko yksinkertainen ohjelmallisesti toteutettavaksi, mutta monimutkainen selitett�v�ksi, vaikka aion selitt�� pelk�n k�yt�nn�n toteutuksen, ja j�t�n teorian mahdollisimman v�hiin, kun en sit� edes ymm�rr�. Kaikki muut tuntemani menetelm�t ovat pelkki� yksinkertaisia laskentakaavoja, mutta t�h�n ei intuitioni riit�. Se vain toimii, kun minua fiksumpi on sen valmiiksi miettinyt.

Katso my�s Dammin algoritmi.

Menetelm�ss� k�ytet��n kolmea taulukkoa:

Verhoeffin permutaatiotaulu
 0123456789
00123456789
11576283094
25803796142
38916043527
49453126870
54286573901
62793806415
77046913258
  Verhoeffin "kertotaulu"
 0123456789
00123456789
11234067895
22340178956
33401289567
44012395678
55987604321
66598710432
77659821043
88765932104
99876543210
  Verhoeffin inversiotaulu
0123456789
0432156789

T�ss� "kertotaulussa" kertolaskun vaihdantalaki ei ole voimassa, eli A�B ei v�ltt�m�tt� ole sama kuin B�A. Kerrotaan ett� taulun sis�lt� on mahdollista j�rjest�� toisinkin niin, ett� menetelm� edelleen toimii, mutta t�m� on ainoa n�kem�ni vaihtoehto. Luultavasti vain hyvin harvat vaihtoehdot ovat toimivia, ja nekin tuottavat eri tarkisteita kuin t�ss� kuvataan. Jotkin l�hteet sanovat taulukkoa Verhoeffin "yhteenlaskutauluksi". Permutaatiotaulun kuusi viimeist� rivi� tuotetaan yleens� ohjelmasilmukassa sen sijaan ett� ne annettaisiin vakiona. Tuatarassa on esimerkki (l�hdekielisess� koodissa). My�s t�m�n taulun sis�ll�lle on muita toimivia vaihtoehtoja. Menetelm�:

  1. Tarkiste on ensimm�inen numero oikealta. M��ritell��n ett� tarkisteen positio on 0, ja vasemmalle edett�ess� positiot kasvavat 1:n v�lein. Positiot ovat samat my�s tarkistetta lis�tt�ess�, eli oikeanpuolimmaisen tarkistettavan numeron positio on silloinkin 1.
  2. Annetaan v�litulokselle alkuarvo 0.
  3. K�sitell��n numerosarjaa oikealta vasemmalle. Tarkistetta lis�tt�ess� aloitetaan oikeanpuolimmaisesta tarkistettavasta numerosta, tarkistusta teht�ess� tarkisteesta. Jokaisen numeron kohdalla:
    1. Poimitaan Verhoeffin permutaatiotaulusta numero, jonka rivin osoittaa k�sitelt�v�n numeron positio modulo 8 ja sarakkeen k�sitelt�v� numero itse.
    2. Poimitaan Verhoeffin kertotaulusta numero, jonka rivin osoittaa aikaisempi v�litulos ja sarakkeen Verhoeffin permutaatiotaulusta poimittu numero. Kertotaulusta poimittu numero on uusi v�litulos.
  4. Jos tehd��n tarkistusta ja numerosarja on virheet�n, v�litulos on 0 kun kaikki numerot on k�sitelty. Jos halutaan lis�t� tarkiste, se katsotaan viimeisen v�lituloksen perusteella Verhoeffin inversiotaulusta.
Pidet��n esimerkki lyhyen�, eli m��ritell��n (t�m�n menetelm�n kohdalla ei oikein voi puhua laskemisesta) tarkiste numerosarjalle 41:
  1. Poimitaan permutaatiotaulusta [1,1] → 5
  2. Poimitaan kertotaulusta [0,5] → 5
  3. Poimitaan permutaatiotaulusta [2,4] → 7
  4. Poimitaan kertotaulusta [5,7] → 3
  5. Poimitaan inversiotaulusta [3] → 2
Eli tarkisteellinen numerosarja on 412. Tarkistetaan:
  1. Poimitaan permutaatiotaulusta [0,2] → 2
  2. Poimitaan kertotaulusta [0,2] → 2
  3. Poimitaan permutaatiotaulusta [1,1] → 5
  4. Poimitaan kertotaulusta [2,5] → 7
  5. Poimitaan permutaatiotaulusta [2,4] → 7
  6. Poimitaan kertotaulusta [7,7] → 0
Viimeinen v�litulos on 0, kuten pit��kin.

Alankomaalainen matemaatikko Jacobus Verhoeff (1927-2018) julkaisi kehitt�m�ns� menetelm�n vuonna 1969. Menetelm�n sanotaan paljastavan jopa 99,8 % sy�tt�virheist�, mutta en tied� miten t�m� on laskettu. Tarkistus paljastaa sek� kaikki yhden numeron muutokset ett� kaikki kahden vierekk�isen numeron vaihtumiset kesken��n, ja yli 90 % kaikista muista virheist�, ja on siten toinen kahdesta parhaasta tunnetusta yksinumeroisen tarkisteen tuottavasta menetelm�st� (toinen on Dammin algoritmi, joka on samankaltainen, mutta yksinkertaisempi). K�yt�nn�n sovellukset n�ytt�v�t enimm�kseen olevan viel� suunnitteilla. Menetelm�� k�ytettiin saksalaisissa seteleiss� ennen euron k�ytt��n ottoa. Ainoa tuntemani nykyinen maininnan arvoinen sovellus on SNOMED Clinical Term Identifier (SCTID; SNOMED = Systematised Nomenclature of Medicine). Menetelm�� kuvataan mm. seuraavissa dokumenteissa (linkit viev�t t�m�n sivuston ulkopuolelle):

Em. ohjelmat sek� tekem�ni Tuataraan sis�ltyv� ohjelma antavat samalle numerosarjalle saman tarkisteen, kuten pit��kin, mutta er�iss� muissa esimerkeiss� esiintyv�t tarkisteet poikkeavat n�ist�. Valitettavasti noissa tapauksissa on esitetty vain menetelm� ja tulos, muttei ohjelmakoodia tai konkreettista esimerkki� algoritmin k�yt�st�, joten on vaikea sanoa johtuuko ero esim. kertotaulun toisenlaisesta j�rjestyksest� vai onko kyseess� virhe. Koska kuitenkin em. ohjelmista kaksi sis�ltyy kansainv�lisess� k�yt�ss� olevan sovelluksen viralliseen m��rittelyyn, olen valmis pit�m��n niiden (ja samalla tietysti oman ohjelmani) toimintaa oikeana.

Dammin algoritmi

Ohjelma Dammin algoritmille

Algoritmin on esitt�nyt H. Michael Damm v�it�skirjaansa liittyen vuonna 2004.

Dammin algoritmi on yksinkertaisempi kuin Verhoeffin menetelm�, mutta muuten siit� voidaan sanoa p��osin samat asiat.

  • Helpompi ohjelmallinen toteutus, ja paljon helpompi selitett�v�ksi kuin Verhoeffin menetelm� (mutta silti yht� ep�intuitiivinen).
  • Selit�n vain k�yt�nn�n toteutuksen, koska en ymm�rr� menetelm�n taustalla olevaa teoriaa.
  • Molemmat algoritmit paljastavat sek� kaikki yhden numeron muutokset ett� kaikki kahden vierekk�isen numeron vaihtumiset kesken��n, eli kaksi kolmesta tavallisimmasta virheest�. Kolmannen eli numerosarjan pituuden muuttumisen molemmat paljastavat 90 %:n todenn�k�isyydell�.
  • Minulla ei ole yksityiskohtaista tietoa menetelmien kyvyist� paljastaa harvinaisempia virheit�. Kyvyiss� on eroja, mutta menetelmien keskin�isest� paremmuudesta ei ole yksimielisyytt�. Kuitenkin juuri n�iden virheiden harvinaisuuden vuoksi erojen merkitys on v�h�inen.
  • Yksi selv� ero on se, ett� Dammin algoritmissa – kuten useimmissa tarkistusmenetelmiss� – etunollat eiv�t vaikuta tarkisteeseen, Verhoeffin menetelm�ss� vaikuttavat.
  • K�yt�nn�n sovellukset ovat ilmeisesti Verhoeffin menetelm��kin harvinaisempia, koska Dammin algoritmi ei ole kovin tunnettu, vaikka hyvin ansaitsisi olla. N�m� voivat olla hyvi� lis�syit� valita t�m� algoritmi k�ytt��n uusissa sovelluksissa.
  • Jos valitaan sopiva operaatiotaulu – kuten alempana oleva esimerkki – menetelm� paljastaa my�s kaikki englannin ��nt�myksest� helposti seuraavat virhetapaukset 13 ↔ 30, 14 ↔ 40 ... 19 ↔ 90.
  • Alla olevan taulukon sis�ll�n voi j�rjest�� muullakin toimivalla tavalla, mutta muita en ole n�hnyt – vain harvat vaihtoehdot toimivat, ja nekin eri tavalla kuin olen t�ss� kuvannut. Vaihda j�rjestyst� vain, jos olet v�itellyt filosofian tohtoriksi matematiikasta, ja uskot varmasti tiet�v�si mit� teet.
Algoritmissa k�ytet��n yht� operaatiotaulukkoa:
 0123456789
00317598642
17092154863
24206871359
31750983426
46123045978
53674209581
65869720134
78945362017
89438617205
92581436790

Algoritmi:

  1. Tarkiste on ensimm�inen numero oikealta.
  2. Annetaan v�litulokselle alkuarvo 0.
  3. K�sitell��n numerot vasemmalta oikealle. Kunkin numeron kohdalla aikaisempi v�litulos osoittaa rivin ja k�sitelt�v� numero sarakkeen, joiden osoittama numero poimitaan operaatiotaulukosta uudeksi v�litulokseksi.
  4. Tarkistetta lis�tt�ess� viimeinen v�litulos on tarkiste.
  5. Tarkistettaessa tarkiste k�sitell��n kuten muut numerot. Jos numerosarja on virheet�n, viimeinen v�litulos on 0.
Osaamiseni ei riit� menetelmien matemaattisten taustojen arviointiin, mutta k�yt�nn�n toteutuksena Dammin algoritmi n�ytt�� Verhoeffin menetelm�n yksinkertaistetulta muunnelmalta, jolla on jotakuinkin sama virheenpaljastuskyky. Esimerkki: M��ritell��n tarkiste numerosarjalle 1015:
  1. Poimitaan taulukosta [0,1] → 3
  2. Poimitaan taulukosta [3,0] → 1
  3. Poimitaan taulukosta [1,1] → 0
  4. Poimitaan taulukosta [0,5] → 9
Eli tarkisteellinen numerosarja on 10159. Tarkistetaan:
  1. Poimitaan taulukosta [0,1] → 3
  2. Poimitaan taulukosta [3,0] → 1
  3. Poimitaan taulukosta [1,1] → 0
  4. Poimitaan taulukosta [0,5] → 9
  5. Poimitaan taulukosta [9,9] → 0
Viimeinen v�litulos on 0, kuten pit��kin.

Katso my�s "Ihanteellinen" tarkistusmenetelm�.

Moduli 37

  1. Annetaan kullekin tarkistettavalle kirjaimelle numeerinen arvo passien yhteydess� esitetyn taulukon mukaisesti. Kaikille merkeille jotka eiv�t ole numeroita 0..9 tai kirjaimia A..Z annetaan arvo 36 (pieni� kirjaimia ei k�ytet�).
  2. Painotetaan tarkistettavia merkkej� oikealta alkaen kertoimilla 3, 1, 3, 1 jne.. Lasketaan tulot yhteen.
  3. Tarkisteen numeerinen arvo on luku, joka summaan on lis�tt�v� jotta tulos olisi tasan jaollinen 37:ll�.
    • Jos arvo on yksinumeroinen, se on tarkiste.
    • Jos arvo on 10..35, tarkiste on kohdassa 1 mainitun taulukon mukainen kirjain.
    • Jos arvo on 36, tarkiste on "#".
T�m� on yksi harvoista menetelmist�, joissa erikoismerkit otetaan huomioon. Niit� ei kuitenkaan tarkisteta t�ss� yksityiskohtaisesti, koska menetelm� on suunniteltu sovelluksiin, jossa erikoismerkkien lukum��r�, laji ja j�rjestys (mutta ei t�sm�llisi� positioita) on muuten tarkasti m��ritelty. Sovelluksia:
  • SICI - Serial Item and Contribution Identifier. K�ytet��n sarjamuotoisten julkaisujen yksitt�isten ilmentymien (esim. aikakauslehden numero) ja niiden toimituksellisen sis�ll�n (artikkelit, sis�llysluettelot, hakemistot, tiivistelm�t) yksil�intiin. SICI sis�lt�� julkaisun ISSN-numeron.
  • BICI - Book Item and Component Identifier. Muistuttaa SICI:� ja on sen pohjalta kehitetty, mutta k�ytet��n kirjojen sis�ll�n osien yksil�intiin. "#":n tilalla on "*". BICI sis�lt�� julkaisun ISBN- tai ISBN-13 -numeron.
Esimerkki (SICI): 0011-3204(199804)39:2<193:CCBC>2.0.CO;2-O Esimerkkin� oleva SICI voi jo sin�ns� n�ytt�� monimutkaiselta, mutta standardi on niin laaja ja sallii niin monenlaisia muunnelmia, etten edes yrit� kuvata sit� t�m�n tarkemmin. Tarkisteen laskeminen vie niin paljon tilaa, ett� j�t�n sen lukijalle harjoitusteht�v�ksi.

SICI:ll� tai BICI:ll� yksil�it�v�n ty�n tunnisteena voi ennen julkaisua olla ISTC-koodi.

Kerroin 39

  1. Tarkistettavia numeroita painotetaan oikealta alkaen kertoimilla 3, 9, 3, 9 jne..
  2. Tulot lasketaan yhteen.
  3. Summa jaetaan 10:ll�.
  4. Jakoj��nn�s on tarkiste.
Menetelm�� k�ytet��n EAN-5:ss� (katso kohtaa Tuotekoodi), mutta siin� tarkiste on helposti luettavissa vain koneellisesti viivakoodista.

Jakoj��nn�s ja kongruenssi

Jakoj��nn�s

T�ss� dokumentissa k�ytet��n useassa kohdassa k�sitett� jakoj��nn�s, joka saattaa olla outo joillekin lukijoille. Jakoj��nn�s (modulo, modulus, mod, remainder) l�ytyy funktiona tai operaattorina monista ohjelmoitavista laskimista ja l�hes kaikista ohjelmointikielist� (uudemmissa operaattorina usein on C-kielest� periytyv� %-merkki, esim. "a = b % c", muissa usein "mod", esim. "a = b mod c", funktiona "a = mod(b, c)"). N�iss� jakoj��nn�s voidaan usein laskea desimaaliluvuilla ja my�s negatiivisilla luvuilla, mutta t�ss� voidaan rajoittua k�sittelem��n ei-negatiivisia kokonaislukuja (0, 1, 2, 3 jne.).

Kokonaisluvuilla teht�v� jakolasku voi menn� tasan, eli esim. 48 / 6 = 8, jolloin jakoj��nn�s on 0. Useimmiten jako ei mene tasan, jolloin jakoj��nn�s poikkeaa nollasta, esim. 46 / 6 = 7 (kun desimaaleja ei k�ytet�) ja koska 6 � 7 = 42 ja 46 - 42 = 4, jakoj��nn�s on 4. Jakoj��nn�s on siis se osa jaettavasta joka j�� jakamatta (eli j�� jaossa "ylim��r�iseksi"). Jakoj��nn�s on aina v�hint��n nolla ja aina pienempi kuin jakaja. Huomaa erityisesti ett� kokonaislukujakolaskun jakoj��nn�s ei koskaan ole desimaaliluku ja ett� osam��r�� ei koskaan py�ristet� yl�sp�in. Aina pit�� my�s paikkansa ett�

jakaja � osam��r� + jakoj��nn�s = jaettava

jakoj��nn�s = jaettava - ( jaettava / jakaja ) � jakaja

jossa "/" tarkoittaa kokonaislukujakolaskua. Katso my�s "Jakoj��nn�ksen laskeminen suuresta luvuista" alempana t�ss� kappaleessa.

Toisin kuin usein v�itet��n, jakoj��nn�ksen voi satunnaisiin tarpeisiin laskea l�hes mill� tahansa taskulaskimella: Tehd��n jakolasku, v�hennet��n tuloksesta kokonaisosa, ja kerrotaan alkuper�isell� jakajalla. Tulos on yleens� desimaaliluku, joka on hyvin l�hell� kokonaislukua; tuo l�hin kokonaisluku on oikea vastaus. Esimerkki: 283 mod 11 = ?

283 / 11 = 25,727272
25,727272 - 25 = 0,727272
0,727272 � 11 = 7,999992 eli 283 mod 11 = 8

Jakoj��nn�ksen laskeminen suuresta luvuista

Suuren kokonaisluvun jakaminen jakoj��nn�ksen laskemiseksi ei suoraan onnistu kaikilla ohjelmointikielill�. Teht�v� voidaan kuitenkin jakaa pienempiin osiin. Oletetaan ohjelmointikieli, jossa suurimmat kokonaisluvut ovat 32-bittisi�, jolloin voidaan k�sitell� enint��n 9-numeroisia lukuja (liukulukuja ei niiden luontaisen ep�tarkkuuden vuoksi pid� t�ss� yhteydess� k�ytt�� jos k�ytett�v� kieli tukee kokonaislukuja – useimmat tukevat; muussa tapauksessa kannattaa harkita kielen vaihtamista).

Esimerkkin� Kansainv�linen tilinumero: 15903000000776151800 on jaettava 97:ll� siten, ett� halutaan tiet�� jakoj��nn�s, mutta ei v�litet� osam��r�st�. Erotetaan jaettavan ensimm�iset 7 numeroa (1590300) ja jaetaan saatu luku 97:ll�. Jakoj��nn�ksen (82) jatkoksi liitet��n 7 seuraavaa numeroa (0000776) ja saadaan uusi enint��n 9-numeroinen luku (820000776). T�m� jaetaan taas 97:ll�, ja liitet��n jakoj��nn�kseen (24) loput numerot (151800). Tuloksesta (24151800) lasketaan taas modulo 97 (61). – Tuatarassa on ohjelmakoodista esimerkki, joka on paljon t�t� sanallista kuvausta lyhyempi (kaksi koodirivi�).

Sama menetelm� soveltuu my�s muille jakajille ja pitemmillekin jaettaville. Sama periaate toimii vaikka suurimmat kokonaisluvut olisivat vain 16-bittisi�, mutta silloin suurimmat kerralla k�sitelt�v�t luvut voivat olla enint��n 4-numeroisia. Useimmat IBAN:it ovat sellaisenaan liian pitki� jopa 64-bittisill� (18-numeroisilla) kokonaisluvuilla laskettaessa. Aina eiv�t riit� edes 128-bittiset kokonaisluvut; teoriassa jaettava voisi olla jopa 66-numeroinen.

Kongruenssi

T�ss� dokumentissa k�ytet��n paljon my�s kongruenssin symbolia ≡ joka - samoin kuin sit� vastaava k�site - lienee useimmille lukijoille viel� oudompi kuin jakoj��nn�s. Heti alkuun voin todeta lohduttavasti, ett� jos ymm�rr�t jakoj��nn�ksen, kongruenssin ymm�rt�minen ei ole yht��n vaikeampaa, mutta yrit�n nyt kuitenkin ensin selitt�� asian (lyhyesti) vaikeammalla ja "virallisemmalla" tavalla, ihan kuin olisin oikea matemaatikko: Jos a:n ja b:n erotus on tasan jaollinen m:ll�, sanotaan ett� a ja b ovat kongruentteja modulo m, joka merkit��n:

a ≡ b (mod m)

T�ll� tiedolla sin�ns� emme ole saaneet aikaan muuta kuin rahtusen lukuteoreettista yleissivistyst�, mutta t�m�n dokumentin kannalta olennaisempaa on sama asia sanottuna toisella tavalla: Jos sek� a ett� b jaetaan m:ll�, saadaan sama jakoj��nn�s. Eli esim:

25 ≡ 3 (mod 11)

kertoo ett� kun 25 ja 3 (kumpikin erikseen) jaetaan 11:ll� jakoj��nn�s on sama - t�ss� tapauksessa 3. Huomaa ett� 25-3=22, joka on tasan jaollinen 11:ll�. Yleisesti lausekkeessa voisi 3:n tilalla yht� hyvin olla 14, 36 tai jokin muu ��rett�m�n monista vaihtoehdoista, ja lauseke olisi edelleen matemaattisesti virheet�n, mutta t�ss� dokumentissa j�lkimm�inen luku on aina nimenomaan sama kuin jakoj��nn�s, eli esimerkki voidaan lukea "kun 25 jaetaan 11:ll�, jakoj��nn�s on 3". Muutama huomautus on paikallaan:

  • Kongruenssin symbolia ei l�ydy kaikista fonteista, ja lis�ksi Opera-selaimella n�ytt�� olevan symbolin esitt�misess� vaikeuksia; symboli n�kyy oikein vain jos tekstin suurentaa j�rjett�m�n isoksi. Niille jotka eiv�t n�e symbolia oikein kerrottakoon ett� se muistuttaa yht�suuruusmerkki� / yht�l�isyysmerkki� (=), mutta p��llekk�isi� viivoja on kolme.
  • Geometriassa tunnetaan my�s kongruenssin k�site, mutta se tarkoittaa eri asiaa ja sille on hiukan erilainen symboli, jota en yrit� n�ytt�� koska se on viel� huonommin tuettu. �l� siis ihmettele, jos l�yd�t samalle sanalle eri selityksen.
  • Samaa symbolia k�ytet��n my�s muissa merkityksiss�, mm. kuvaamaan ekvivalenssia, joten �l� ihmettele sit�k��n jos l�yd�t samalle symbolille eri selityksen.

Taulukot

Taulukko 1
A 10B 11C 12D 13E 14F 15 G 16H 17I 18J 19K 20L 21 M 22
N 23O 24P 25Q 26R 27S 28 T 29U 30V 31W 32X 33Y 34 Z 35

Vaihtoehtoinen tarkistusmenettely

Tarkisteiden tuottajat ovat harvassa; useammin halutaan tarkistaa sy�tetty tarkistusmerkki. Aina voidaan laskea tarkiste ja verrata sit� annettuun, mutta monessa tapauksessa pelkk� tarkistus on helpompi tehd�. T�ll�in otetaan k�sitelt�v�ksi koko tarkistettava merkkijono ml. tarkiste. Tehd��n painotus, lasketaan summa ja jaetaan se ko. tietotyypin edellytt�m�ll� tavalla. Jos jakoj��nn�s on nolla, tarkiste t�sm��. Yksityiskohdat vaihtelevat tarkistettavasta tiedosta riippuen: Esimerkki 1: Y-tunnus 0989377-3
	 0  9  8  9  3  7  7  3
	 7  9 10  5  8  4  2  1
	 0 81 80 45 24 28 14  3  = 275 ≡ 0 (mod 11)
Esimerkki 2: ISBN 0-14-007621-2 (laskentatapa 2)
	 0  1  4  0  0  7  6  2  1  2
	10  9  8  7  6  5  4  3  2  1
	 0  9 32  0  0 35 24  6  2  2  = 110 ≡ 0 (mod 11)
Tietokoneella tai taskulaskimella luvun jaollisuus 11:ll� voidaan tietenkin selvitt�� helposti. Muuten voidaan k�ytt�� seuraavaa s��nt��: Poimitaan luvusta joka toinen numero ja lasketaan ne yhteen. Summataan erikseen loput numerot. Jos summat ovat samat tai niiden erotus on jaollinen 11:ll�, alkuper�inen luku on my�s jaollinen 11:ll�. Esim. 275: 2+5=7 joten luku on tasan jaollinen 11:ll�. Menetelm� on tietysti rekursiivinen. L�hde: Uusi Pikku J�ttil�inen, s. 869, WSOY 1985, ISBN 951-0-12416-8.

Yll� esitetty� ei voi sellaisenaan soveltaa Moduli 97-10:en, jonka yksinkertaistettu tarkistus on kuvattu itse menetelm�n yhteydess�, kuten Eurosetelin sarjanumeronkin. Kaikille menetelmille yksinkertaistettua tarkistusta ei ole.


Joitakin yleisi� havaintoja

Verhoeffin menetelm�, Dammin algoritmi ja jotkin standardiin ISO 7064 sis�ltyv�t menetelm�t ovat poikkeuksia, ja Moduli 11-11 vaatii pienen lis�yksen, mutta muuten jokainen edell�kuvatuista painotus-summaus-jakoj��nn�s-menetelmist� voidaan esitt�� tavalla, joka on yht�pit�v� seuraavien s��nt�jen kanssa:
  1. Kutakin tarkistettavaa merkki� vastaava numeerinen arvo tai arvon kumpikin numero kerrotaan kertoimella, joka saadaan jollakin yksinkertaisella s��nn�ll� kerrottavan positiosta.
  2. Tulot tai niiden numerot lasketaan yhteen.
  3. Summa jaetaan jollakin luvulla.
  4. Jakoj��nn�s m��r�� tarkisteen joka liitet��n tarkistettavaan merkkijonoon.
Kuten voidaan havaita, kaikki n�m� tarkistusmenetelm�t ovat periaatteeltaan melko yksinkertaisia. Hyv�n tarkistusmenetelm�n kehitt�miseen tarvittava matematiikka on kuitenkin hyvin monimutkaista, joten sit� voidaan suositella vain matemaatikoille. T�t� dokumenttia varten on tutkittu useita muitakin menetelmi� kuin ne, joiden kuvaukset on otettu mukaan. Poisj�t�n syyn� on ollut esim. tietojen puutteellisuus tai se ettei menetelm�ll� ole tiedossa olevia sovelluksia Suomessa, mik� tekee tietojen tarkistamisen vaikeaksi. Koska joku kuitenkin varoituksesta huolimatta haluaa kehitt�� oman menetelm�n, t�h�n on koottu yhteenvetona kaikista tutkituista j�rjestelmist� sellaisia tietoja, joita ei mainita eo. yksitt�isten j�rjestelmien kuvauksissa, joten n�m�k��n tiedot eiv�t mene lukijalta kokonaan hukkaan. Seuraavia asioita tarkastellaan:
  1. Tarkistettavan tiedon pituus
  2. K�ytett�v� merkist�
  3. Kirjainten numeroarvot
  4. Painokertoimet
  5. Jakaja sek� tarkisteen m��r�ytyminen
    jakoj��nn�ksen perusteella
  1. Mahdollinen lis�tarkistus
  2. Tarkisteen paikka
  3. Muutosten ennakointi
  4. Yhteenveto
  5. Tarkisteiden historian
    hyvin lyhyt oppim��r�

Tarkistettavan tiedon pituus

Tarkistettava numerosarja / merkkijono ei saisi olla liian pitk�. Noin 20 merkki� pitemm�t merkkijonot pit�isi tarkistaa pienemmiss� osissa (vrt. Passi) tai niiss� pit�isi muuten k�ytt�� useampaa kuin yht� tarkistemerkki� (vrt. Kansainv�linen tilinumero, RF-viite, IPI:n maksunaihekoodi). Pituus voi olla kiinte� (vrt. Henkil�tunnus), vaihtuva (vrt. Pankkisiirron viitenumero) tai muuten vaihtuva mutta tarkistusta varten tieto muokataan kiinte�mittaiseksi (vrt. Pankkitilin numero).

Yhden l�hteen mukaan merkkijonon pident�minen kahdella merkill� kasvattaa sy�tt�virheiden m��r�n kaksinkertaiseksi. Kannattaa siis pyrki� tiiviiseen esitystapaan sek� varsinaisissa tiedoissa ett� tarkisteissa. Useamman kuin kahden tarkistemerkin k�ytt��n pit�isi olla hyv�t perustelut.

Asialla on kuitenkin my�s k��nt�puolensa. Joissakin sovelluksissa (esim. merkkitavaroiden sarjanumerot) on v��renn�sten vaikeuttamiseksi j�rkev�� m��ritell� laaja koodiavaruus, josta k�ytet��n vain pieni osa. T�ll�in suurin osa oikean n�k�isist� koodeista voidaan todeta virheellisiksi sill� perusteella ett� ne eiv�t ole k�yt�ss�. T�m� on helppoa jos asia voidaan sy�tt�vaiheessa tarkistaa tietokannasta, jossa on kaikki k�yt�ss� olevat koodit. Aina t�m� ei ole mahdollista, ja silloin voidaan laatia salassapidett�vi� ja vaikeahkosti havaittavia s��nt�j� esim. t�h�n tapaan: "Jos numerosarjan nelj�s numero on pariton, toisen ja viidennen numeron muodostaman luvun on oltava tasan jaollinen kuudella. Jos nelj�s numero on parillinen ja kolmas numero on pariton, kuudennen numeron on oltava nelj� yksikk�� pienempi kuin kolmas numero, muuten kaksi yksikk�� suurempi." N�m� rajaukset sulkevat pois 86.5 % koodiavaruudesta, mik� on varsin sopiva m��r�, koska t�ll�in tietyn suuruisen k�ytt�kelpoisen koodiavaruuden saavuttamiseksi koodin pituutta on kasvatettava vain yhdell� numerolla verrattuna tilanteeseen jossa kaikki koodit olisivat k�yt�ss�. Muunnelmia voi keksi� l�hes rajattomasti, mutta t�llaisten s��nt�jen ei tietenk��n ole tarkoitus korvata tarkisteen k�ytt��. Huom! Menettely saattaa olla patentilla suojattu. (Vainoharhaisuuteen taipuvaisille on t�ss� hyv� kohde: Kuinka paljon on sellaisia asioita, jotka ovat vapaasti kaikkien n�ht�viss�, mutta joita eiv�t huomaa tai tunnista muut kuin asiaan vihkiytyneet.)

Samankaltaista menetelm�� k�ytet��n ilmeisesti my�s luottokorteissa niin, ett� suuri enemmist� p��llisin puolin oikean n�k�isist� (huonosti v��rennetyist�) korttien numeroista osuu koodiavaruuden osaan, joka ei ole k�yt�ss�. T�m� on yksi syy siihen, ett� v��rent�j�t haluavat oikeiden korttien numeroita malleiksi.

K�ytett�v� merkist�

Kaikki tutkitut j�rjestelm�t pystyv�t k�sittelem��n numeroita, mutta aika usein on pystytt�v� tarkistamaan my�s sellaisia merkkijonoja, joissa on kirjaimia. Jos on mahdollista rajata k�ytett�v�� merkist��, j�tet��n mielell��n pois kirjaimet, jotka on helppo sekoittaa numeroihin. Esim. suomalaisen henkil�tunnuksen tarkisteena ei k�ytet� kirjaimia G, I, O, Q ja Z. My�hemmin on huomattu ett� k�sin kirjoitettaessa my�s U ja V, 4 ja Y sek� 5 ja S sekoittuvat helposti. moottoriajoneuvon sarjanumerossa ei k�ytet� kirjaimia I, O ja Q, vaikka j�rjestelm�ss� muuten k�ytet��n runsaasti kirjainkoodeja. Er��st� toisesta j�rjestelm�st� taas on j�tetty pois I, L, O, S, Y ja Z. Hyvin harvat tutkituista j�rjestelmist� k�ytt�v�t muita kirjaimia kuin anglosaksisten aakkosten 26 isoa kirjainta A..Z, vaikka my�s skandimerkkien, pienten kirjainten ja erikoismerkkien huomioon ottaminen on mahdollista (vrt. Verolipun numero, Moduli 37).

Kirjainten numeroarvot

Tarkistettavien kirjainten numeeriset arvot valitaan joskus siten, ett� ne eiv�t ole samoja kuin my�hemmin k�ytett�v� jakaja tai sen monikerta. Esim. jos jakaja on 11, j�tet��n pois luvut 11, 22 ja 33 annettaessa kirjaimille numeerisia arvoja (vrt. Moduli 11-10). Kirjaimille annettavat arvot voivat olla my�s yksinumeroisia (nollasta poikkeavia), jolloin eri kirjaimille tulee samoja arvoja, tai k�ytet��n esim. arvoja 2..10 toistuvasti j�rjestelm�ss� jossa jakaja on 11.

Huom! Vaikka jokaiselle kirjaimelle annettaisiin oma numeerinen arvo, t�ll� on todellista merkityst� vain jos jakaja on suurempi kuin mik��n annetuista arvoista (vrt. Moduli 97-10), mik� puolestaan voi aiheuttaa ongelmia jakoj��nn�ksen k�sittelyss�. Jos taas samoja numeerisia arvoja k�ytet��n toistuvasti, kirjaimen tai numeron vaihtumista toiseksi ei aina huomata tarkistuksessa. Erillisess� kappaleessa on esimerkki sellaisista kirjainten numeroarvoista, joilla ongelmia voidaan v�hent��. Moduli 37 ja Kansainv�linen tilinumero ratkaisevat ongelman k�ytt�m�ll� riitt�v�n suurta jakajaa.

Painokertoimet

Painokertoimien valinnasta on useita esimerkkej� edellisiss� kappaleissa. Useimpia k�yt�nt�j� voidaan helposti laajentaa mielivaltaisen pituisille merkkijonoille. Painokertoimet ovat tavallisesti pienempi� kuin my�hemmin k�ytett�v� jakaja, mutta nollaa ei k�ytet� kertoimena, koska se est�isi merkin toiseksi vaihtumisen havaitsemisen. Kertoimien valinta on yksi t�rkeimmist� menetelm�n hyvyyteen vaikuttavista tekij�ist�. Ilman kertoimia mm. kaikki numeroiden j�rjestyksen vaihtumiset j�isiv�t huomaamatta, samoin kuin nollien lis��minen tai poisj�tt�minen.

Ihanteellisessa tapauksessa painotuksen pit�isi aina tuottaa t�ydellinen permutaatio painotettavasta merkkijoukosta, eli kun kaikki mahdolliset tarkistettavat merkit painotetaan tietyll� kertoimella, tuloksena pit�isi olla arvojoukko, joka sis�lt�� efektiivisesti erilaisia arvoja yht� monta kuin alkuper�isess� merkkijoukossa on erilaisia merkkej�. Mm. Luhnin moduli 10, Moduli 10 ja Kerroin 137 t�ytt�v�t t�m�n vaatimuksen numerosarjoja tarkistettaessa, kun taas Kerroin 123 on hyv� huono esimerkki p�invastaisesta. Asiaa on helpointa valaista esimerkkien avulla:

Alkuper�inen numero0123 456789
Luhnin moduli 10, painokerroin 2024 6813579
Kerroin 5 antaisi yht� hyv�n tuloksen05 16273849
Esim. 3 olisi huono kerroin036 9369369
Menetelm�ss� Kerroin 137 3 on hyv� kerroin03 69258147
Samoin 7 (9 olisi yht� hyv�)074 1852963
Mutta 5 olisi huono0505 050505
Samoin 2 (ja muut parilliset numerot)02 46802468
Muillakin kriteereill� asiaa voi tarkastella. Esim. menetelm�ss� Kerroin 137 (ja kaikissa sen sukulaisissa) voidaan havaita ett� jos kahden numeron erotus on 5, erotus on samansuuruinen viel� painotuksen j�lkeenkin, josta seuraa ett� t�llaisten numeroiden keskin�ist� vaihtumista ei huomata (katso kohtaa Havaittuja heikkouksia).

Yhdess� menetelm�ss� kertoimina k�ytet��n alkulukuja 2..53, joita kasvatetaan oikealta vasemmalle. Alkulukuja ovat positiiviset kokonaisluvut, jotka ovat tasan jaollisia vain 1:ll� ja itsell��n. Lukua 11 ei k�ytet� kertoimena vaan jakajana. Tarkistettavia merkkej� on 15, joten jokaisella on eri kerroin. Alkulukujen k�yt�n kertoimina sanotaan minimoivan tapaukset, joissa kaksi virhett� kumoaa toisensa, jolloin virheellinen numerosarja n�ytt�isi virheett�m�lt�.

Joissakin menetelmiss� ei k�ytet� painokertoimia lainkaan. Esimerkkej�:

  • Tarkiste valitaan siten, ett� koko numerosarjan summa on tasan jaollinen 9:ll� (vrt. Matkashekin sarjanumero) tai 10:ll�.
  • Tarkistettavien numeroiden summa jaetaan 10:ll�. Jakoj��nn�s on tarkiste.
  • Tarkistettavien numeroiden summa jaetaan 9:ll�. Jakoj��nn�s on tarkiste. Sama jakoj��nn�s saadaan jakamalla numeroiden muodostama luku 9:ll�.
  • Summataan tarkistettavat numerot. Toistetaan tuloksen numeroiden summausta tarvittaessa kunnes tulos on yksinumeroinen. Lopputulos on tarkiste. Jos tarkisteeksi saatu 9 korvataan 0:lla, tarkiste on aina sama kuin edellisess� kohdassa.
Menetelmien etuina ovat yksinkertaisuus ja tarkisteen yksinumeroisuus, mutta koska t�llaiset menetelm�t pystyv�t paljastamaan vain harvoja virhetyyppej�, ne soveltuvat l�hinn� koneelliseen lukuun, jossa useimpia k�sinsy�t�ss� esiintyvi� virheit� ei tapahdu. Samantyyppisi� menetelmi� k�ytet��nkin er�iss� viivakoodeissa, kuten Code 39 ja Codabar. Todenn�k�isin virhe on yhden merkin vaihtuminen toiseksi kuten k�sinsy�t�ss�kin, ja sellaisen n�m�kin menetelm�t useimmiten paljastavat. T�m�nkin virheen havaitseminen vaikeutuu, jos jakaja on lukuj�rjestelm�n kantalukua pienempi (vrt. Havaittuja heikkouksia, kohdat Moduli 9 ja Moduli 7). Huomaa my�s, ett� liian yksinkertainen menetelm� voi johtaa sy�tt�virheisiin, jos tietojen sy�tt�j� voi p��ss��n laskien "korjata" sis�ll�lt��n virheellisen numerosarjan muodollisesti virheett�m�ksi.

On olemassa my�s menetelmi�, joissa painokertoimia ei k�ytet�, mutta joissa sama vaikutus saadaan aikaan korvaamalla kukin numero ennen summausta toisella numerolla, joka katsotaan taulukosta. Oleellista on se, ett� eri numeropositioille k�ytet��n eri taulukoita. T�llaisia menetelmi� k�ytet��n ainakin er�iss� UCC-12 -koodeissa (tavanomaisen tarkisteen lis�ksi) ja italialaisissa pankkitilien numeroissa. Mik� tahansa painokertoimia k�ytt�v� menetelm� voidaan my�s kuvata t�m�n mallin mukaisesti.

Yhdess� esimerkkij�rjestelm�ss� painokertoimet ovat desimaalilukuja, ja osa niist� negatiivisia. Tavoitteena on tehd� k�ytetyn j�rjestelm�n selvitt�minen mahdollisimman vaikeaksi. Osittain t�m� tavoite voidaan saavuttaakin, mutta jos p�tev� matemaatikko p��see tutkimaan asiaa suuresta aineistosta, t�llainen temppuilu on t�ysin hy�dyt�nt�. Varjopuolena on lis�ksi se, ett� painokertoimien valinnassa on oltava aivan poikkeuksellisen huolellinen, jos halutaan ett� j�rjestelm� hoitaa my�s varsinaisen teht�v�ns�, siis sy�tetyn numerosarjan tarkistamisen. Tavoite saavutetaan helpommin k�ytt�m�ll� jotakin hyv�� mutta harvinaista menetelm�� (kts. Verhoeff tai Damm), jos asiaa yleens� pidet��n t�rke�n�.

Jakaja sek� tarkisteen m��r�ytyminen jakoj��nn�ksen perusteella

Jakajana on usein 10 (tai yleisemmin sanottuna lukuj�rjestelm�n kantaluku), mutta muissa tapauksissa k�ytet��n yleens� alkulukuja, kuten 11, 31 tai 43. Jos merkist�ksi valitaan numerot 0..9 ja kirjaimet A..Z, saadaan 36 merkki�. T�ll�in sopiva jakaja voisi olla esim. 37, joka on pienin k�ytett�vien merkkien lukum��r�� suurempi alkuluku (vrt. Moduli 37).

Jos jakaja on suurempi kuin 10, saadaan jakoj��nn�ksiksi lukuja, joita ei voi kymmenj�rjestelm�ss� suoraan esitt�� yhdell� numerolla. T�ll�in on useita vaihtoehtoja:

  1. Jos lukuj�rjestelm�n kantaluku on suurempi kuin 10, k�ytet��n ao. lukuj�rjestelm�n numeroita (vrt. Mod 11,10:n muunnelmat).
  2. K�ytet��n samaa numeroa edustamaan useampaa kuin yht� jakoj��nn�st�; esim. jakajan ollessa 11, 0 vastaa my�s jakoj��nn�st� 10 (vrt. Moduli 11-0, Moduli 11-5, Moduli 11-10).
  3. Varataan tarkisteelle enemm�n kuin yksi positio. T�ll�in jakaja voi olla vaikkapa 97 (suurin kaksinumeroinen alkuluku, vrt. Moduli 97-10).
  4. Ei k�ytet� merkkijonoja, jotka tuottavat ei-toivottuja jakoj��nn�ksi� (vrt. Y-tunnus muunnelmineen, EINECS-numero, Moduli 11).
  5. K�ytet��n tarkisteina my�s kirjaimia ja tarvittaessa erikoismerkkej� (vrt. Moduli 34, Moduli 31, Moduli 37).
  6. Keksit��n jotakin muuta (vrt. Moduli 11-11)
Kohdassa 5 voidaan k�ytt�� samaa muunnostaulua kuin annettaessa kirjaimille numeerisia arvoja, tai tarpeen mukaan tehd��n erilainen muunnostaulu (Moduli 34). Jos jakaja on 11, on tavanomaista korvata jakoj��nn�s 10 X-kirjaimella (= 10 roomalaisilla numeroilla, vrt. ISBN- ja ISSN-numerot). Eo. listan kohdissa 3..5 jakajan kasvattaminen parantaa menetelm�n virheenpaljastuskyky�, jos jakaja on alkuluku.

Niiss� tapauksissa joissa summataan tuloja eik� niiden numeroita (siis useimmiten), painokertoimia ja jakajaa valittaessa noudatetaan n�ht�v�sti sellaista s��nt��, ett� jakajalla ei ykk�st� lukuun ottamatta saa olla yhteisi� tekij�it� mink��n painokertoimen kanssa. T�m� s��nt� on automaattisesti voimassa jos jakaja on alkuluku ja kertoimet jakajaa pienempi� lukuja tai jakajaa suurempia alkulukuja, mutta jos esim. jakaja on kymmenen, viitosta ja parillisia numeroita ei yleens� k�ytet� kertoimina. Kerroin 123:n tutkiminen selitt�� miksi ei.

Ottaen huomioon mit� sanotaan kohdassa K�ytett�v� merkist�, k�ytt�kelpoinen jakaja voisi olla esim. 23 (alkuluku), ja tarkisteena voitaisiin t�ll�in k�ytt�� yht� kirjainta A..Z j�tt�m�ll� pois kirjaimet L, U ja V, mik� est�� useimmat samankaltaisesta ulkon��st� johtuvat sekaannukset. Samankaltaisuudesta kirjainten ja numeroiden v�lill� ei tarvitse v�litt��, jos numeroita ei k�ytet�.

Tanskalaisen henkil�tunnuksen tarkistusnumero osoittaa my�s henkil�n sukupuolen. T�m� on ainoa tiet�m�ni tapaus, jossa tarkisteella on kaksoismerkitys. On vaikea sanoa, mit� t�m� vaikuttaa tarkistuksen tehokkuuteen; vaikutus voi olla neutraali tai kielteinen, mutta tuskin my�nteinen.

Mahdollinen lis�tarkistus

Er�iss� j�rjestelmiss� merkkijonoon lis�t��n merkkijonon pituuden (modulo 10) kertova numero, joka otetaan huomioon tarkistetta laskettaessa. Esim. jos tarkistettava tieto on 7235, tulos on 72356x, jossa x on tarkiste ja 6 on koko merkkijonon pituus ml. tarkiste sek� pituuden osoittava numero itse. T�m� lis�numero voi tietysti olla muussakin paikassa, ja eri j�rjestelmien v�lill� voi olla eroa siin�, otetaanko t�m� numero ja tarkiste huomioon pituutta laskettaessa. Tarkistettavalla tiedolla voi olla minimipituus, jolloin tarvittaessa lis�t��n eteen nollia, jotka otetaan huomioon pituutta laskettaessa.

Tarkisteen paikka

Ylivoimaisesti yleisint� on sijoittaa tarkiste tarkistettavan merkkijonon loppuun, mutta yksitt�isi� havaintoja on my�s tapauksista, joissa tarkiste on alussa tai muiden merkkien v�liss� (vrt. Kansainv�linen tilinumero, RF-viite, IPI:n maksunaihekoodi, Islantilainen henkil�tunnus). T�llaisia k�yt�nt�j� kannattaa v�ltt��, ellei niiden noudattamiseen ole erityist� syyt�, sill� ne aiheuttavat ylim��r�ist� vaivaa, jos tarkisteellista tietoa halutaan joskus k�ytt�� esim. lajitteluavaimena.

Muutosten ennakointi

Sen lis�ksi ett� tarkisteet pident�v�t sy�tett�vi� merkkijonoja, niihin liittyy ainakin yksi muu ongelma: Tunnisteita ei aina osata suunnitella niin, ett� ne riitt�isiv�t kaikkiin tuleviin tarpeisiin. Muutos tunnisteessa edellytt�� usein muutosta my�s tarkisteen laskennassa, mutta koska olemassaolevia tunnisteita ei yleens� voida muuttaa, laskennan muutos on suunniteltava niin, ett� yhteensopivuus vanhojen tunnisteiden kanssa s�ilyy. Tarkiste tekee siis tunnisteesta huonommin muutoksiin sopeutuvan. Ainakin seuraavat tapaukset voidaan erottaa:
  • Ongelmia ei yleens� synny, jos tunniste on jo alun perin vaihtuvamittainen, kuten pankkisiirron viitenumero.
  • Alun perin kiinte�mittaiseksi m��ritellyn tunnisteen pident�minen. Jos t�m� voidaan hoitaa esim. lis��m�ll� vanhoihin tunnisteisiin nolla eteen, ja pident�m�ll� painokerrointen sarjaa vastaavasti, yhteensopivuus vanhojen tunnusten kanssa s�ilyy helposti. T�m� mahdollisuus kannattaa ottaa huomioon jo kerroinsarjaa ja sen k�sittelyj�rjestyst� valittaessa (loogisesti jatkettavissa, k�ytet��n oikealta vasemmalle). N�in on tehty esim. LY-tunnuksen (nykyisen Y-tunnuksen) kohdalla. ISBN-koodi taas on hyv� esimerkki tunnisteesta, jota ei voi t�ll� tavoin pident��, joten tunnisteiden loppuminen aiheuttaa suuremman remontin (ISBN-13).
  • Merkist�n laajentaminen. Jos tunnisteen jatkaminen ei ole helppoa, voidaan esim. alun perin numeroita 0..9 k�ytt�v� tunniste muuttaa heksadesimaaliseksi tai aletaan muuten k�ytt�� kirjaimia positioissa joissa aikaisemmin oli vain numeroita. Jos merkist�n laajentaminen koskee my�s tarkistetta, voidaan joutua ensin selvitt�m��n onko tunniste uuden vai vanhan k�yt�nn�n mukainen, ja sitten valitaan tarkisteen laskenta-algoritmi t�m�n mukaisesti. T�m� on k�mpel��, joten mieluummin on jo alusta alkaen valittava algoritmi, joka pystyy my�hemmin mukautumaan merkist�n laajentamiseen ilman ett� alkuper�isen merkist�n k�sittely muuttuu. T�m�n vaatimuksen t�ytt�v�t useimmat niist� t�ss� dokumentissa kuvatuista menetelmist�, jotka pystyv�t k�sittelem��n kirjaimia A..Z, mutta joissa tarkiste on numeerinen.
  • Muista vaihtoehdoista oli hieno esimerkki 24.05.2000 Helsingin sanomien yleis�nosastokirjoituksessa, jossa esitettiin miten henkil�tunnusten 2040-luvulla uhkaava yksil�numeroiden loppuminen olisi estett�viss�, jos tunnuksen v�limerkki otettaisiin mukaan tarkisteen laskentaan. Idea oli, ett� "+" ja "-" saisivat laskennassa arvon 0 ja "A" saisi arvon 1. T�m� numero liitett�isiin tarkistetta laskettaessa syntym�ajasta ja yksil�numerosta muodostetun luvun eteen ennen jakolaskua, jolloin vanhojen tunnusten tarkiste s�ilyisi ennallaan, ja kuitenkin 2000-luvulla voitaisiin k�ytt�� uudelleen jo kertaalleen k�ytettyj� yksil�numeroita ilman sekaannuksen vaaraa. T�m� ratkaisu ilmeisine jatkokehitelmineen voisi riitt�� vuosisadoiksi. Ik�v�� ett� hyv� ajatus esitettiin viitisen vuotta liian my�h��n.
Uudet tunnistej�rjestelm�t luonnollisesti suunnitellaan niin, ett� tunnisteet riitt�v�t kaikkiin odotettavissa oleviin tarpeisiin. Pitemm�ll� aikav�lill� voidaan saavuttaa merkitt�vi� s��st�j�, jos j�rjestelm� onnistutaan suunnittelemaan siten, ett� se pystyy sopeutumaan my�s ennakoimattomiin muutoksiin. Pankkiviivakoodin sis�lt� on esimerkki tapauksesta, jossa on sujuvasti pystytty ottamaan mukaan ymp�rist�muutos (siirtyminen markoista euroihin), vaikka koodin sis�lt�� suunniteltaessa Suomi ei ollut edes aloittanut neuvotteluja EU:n j�senyydest�, ja my�hemmin sama j�rjestelm� on taipunut niin IBAN-tilinumeroiden kuin RF-viitteidenkin k�ytt��n. CUSIP:in laajentaminen CINS:iksi on my�s kaunis esimerkki siit�, miten j�rjestelm��n j�tet��n tilaa muutoksille.

Yhteenveto

Hyv� tarkistusmenetelm� paljastaa tavanomaiset virheet aina ja muut suurella todenn�k�isyydell�. Tavanomaisimpia virheit� ovat yhden merkin vaihtaminen toiseksi, yhden merkin poisj�tt�minen / lis��minen ja kahden vierekk�isen merkin vaihtaminen kesken��n. Muut virhetyypit ovat merkitt�v�sti harvinaisempia; niiden yhteinen osuus on vain n. 5 % kaikista virheist�. Yhden merkin poisto / lis�ys havaitaan aina jos merkkijonon pituus on kiinte�, kuten henkil�tunnuksen tai ISBN-numeron. Muissa tapauksissa havaittavuutta voidaan parantaa em. lis�tarkistuksella.

Tavanomainen sy�tt�virhetiheys on yksi virhe n. 300 sy�tetty� merkki� kohden. (L�hde: Viivakoodiopas, s. 4, Juha-Elektro Oy, 1989. Sama lukema l�ytyy useista muista l�hteist�.) M��r� tuntuu pienelt�, mutta oppaassa tarkoitetaan ihmisi�, jotka ovat tottuneet t�llaiseen ty�h�n. Opas ei mainitse ett� numerosarjan pituus vaikuttaisi sy�tt�virheiden m��r��n (vrt. Tarkistettavan tiedon pituus).

T�ydellist� varmuutta t�llaiset tarkistusmenetelm�t eiv�t koskaan anna: T�ysin satunnainenkin merkkijono voi l�p�ist� tarkistuksen - jopa suuremmalla todenn�k�isyydell� kuin vain hiukan virheellinen. Jos tarkisteita on vain yksi, kahta merkki� muuttamalla voidaan aina saada virheellinen merkkijono joka l�p�isee tarkistuksen, mutta hyv�� tarkistusmenetelm�� k�ytett�ess� t�m� harvoin onnistuu vahingossa. Tahallista muutosta taas ei voida est�� mill��n t�m�ntyyppisell� tarkistuksella, jos muuttaja tuntee tarkistusmenetelm�n. Sama koskee koko tarkistettavan tiedon tuottamista RaHi-menetelm�ll�, josta monet t�m�n dokumentin sis�lt�m�t esimerkit ovat todisteina.

Tunnisteen muodollinen oikeellisuus ei siis takaa ett� tunniste todella on oikea. Tarkistusmerkin tutkiminen ja muut muototarkistukset ovat hy�dyllisi� mm. siksi, ett� ne v�hent�v�t tarpeetonta tietoliikennett�, ja auttavat havaitsemaan monia virheit� mahdollisimman aikaisessa vaiheessa, mik� helpottaa korjausta, mutta esim. muodollisesti virheet�n y-tunnus ei takaa sit�, ett� tunnus on todella k�yt�ss� ja kuuluu sille organisaatiolle jolle sen sanotaan kuuluvan. T�llaiset asiat voi tarkistaa vain ao. tietokannasta.

Konekielisiss� tiedoissa k�ytet��n joskus tarkistuskoodeja, joiden avulla virheit� ei ainoastaan havaita, vaan osa niist� pystyt��n jopa korjaamaan automaattisesti (virheenkorjauskoodi, ECC, Error Correction Code). T�ss� kuvatut tarkistukset eiv�t kuitenkaan siihen riit�, vaan k�sin teht�v�ss� sy�t�ss� oikea tieto on l�ydett�v� muulla tavalla. Katso kappaletta Hamming-koodi ja 10-j�rjestelm� jos rajoitetusti toimiva korjausmenetelm� kiinnostaa.

Matemaattisessa mieless� kaikkia t�ss� dokumentissa kuvattuja tarkisteiden laskentamenetelmi� voidaan nimitt�� yksisuuntaisen tiivistefunktion (one-way hash function) erikoistapauksiksi. T�t� kautta menetelm�t ovat et�ist� sukua salakirjoitukselle.

Mm. suomalaisen henkil�tunnuksen v�limerkki, postin l�hetystunnuksen kaksi ensimm�ist� ja kaksi viimeist� merkki�, jotkin matkustusasiakirjoissa esiintyv�t tietokent�t ja islantilaisen henkil�tunnuksen viimeinen numero j��v�t tarkisteen laskennan ulkopuolelle. On selv�� ettei t�m� ainakaan lis�� varmuutta tunnisteen oikeellisuudesta.

�lyk�s vai tyhm� tunniste?

Tunnisteet voidaan karkeasti jakaa �lykk�isiin ja tyhmiin. Kumpaakin k�ytet��n avaimena, jolla tunnistettavan kohteen muut tiedot l�ytyv�t esim. tietokannasta. Tyhm�ll� tunnisteella ei juuri muuta voi tehd�k��n, koska se on yleens� pelkk� numerosarja, jonka mill��n osalla ei ole itsen�ist� merkityst�, mutta �lyk�s tunniste kertoo kohteestaan jotakin my�s suoraan, esim. suomalainen henkil�tunnus sis�lt�� henkil�n syntym�ajan. Usein tyhm� tunniste on ainoa mahdollinen, mutta monessa tapauksessa �lyk�s voi n�ytt�� hyv�lt� ratkaisulta mm. siksi, ett� merkityksellisten numeroiden muistaminen on helpompaa kuin merkityksett�mien. �lykk�iden tunnisteiden heikkous on kuitenkin niiden joustamattomuus: Tunnistetta ei aina voi helposti muuttaa, vaikka sen osana oleva tieto (esim. kirjan kustantaja ISBN-numerossa) vaihtuisi, jolloin �lykkyys muuttuu painolastiksi. Tyhm�� tunnistetta ei tarvitse muuttaa; riitt�� ett� sill� l�ytyv�t muut tiedot p�ivitet��n. T�m�n vuoksi tyhmien tunnisteiden k�ytt� laajenee hitaasti �lykk�iden kustannuksella. �lyk�s tunniste voi olla hyv� valinta, jos kaikki sen osat ovat t�ysin pysyvi� tai tunniste on helposti muutettavissa (esim. merikuljetuskontin numero). Tyhm� tunniste edellytt�� yleens� yht� keskitetty� rekisteri�, kun taas �lyk�s tunniste antaa helpohkon mahdollisuuden tietojen ja niiden yll�pidon hajauttamiseen, koska tunnisteesta voidaan p��tell� mist� (esim. mink� maan) rekisterist� tietoja on etsitt�v�.

Esimerkkej�:
�lyk�s: ISBN-numero, kemikaalin indeksinumero.
Tyhm�: S�hk�inen asiointitunnus, ISWC-koodi.

Tarkisteiden historian hyvin lyhyt oppim��r�

Tarkisteen k�ytt� on yleens� mielek�st� vain silloin kun tarkistus voidaan tehd� koneellisesti, joten ennen tietokoneita tarkisteet olivat harvinaisia, paitsi ehk� matemaattisissa teorioissa. Esim. Yhdysvalloissa otettiin vuonna 1936 el�keturvan j�rjest�miseksi k�ytt��n Social Security Number (SSN), jossa ei viel�k��n (vuonna 2013) ole mink��nlaista virallista tarkistetta (jotkin organisaatiot lis��v�t oman tarkisteensa, mutta yhten�ist� k�yt�nt�� ei ole).

Kuitenkin viimeist��n 800-luvulla arabimatemaatikot tunsivat jo Moduli 9:� muistuttavan yksinkertaisen menetelm�n, jota k�ytettiin peruslaskutoimitusten tulosten tarkistamiseen 1900-luvulle saakka. Kuvaavan suomenkielisen nimen "Yhteenlasku modulo 9" selvitti huhtikuussa 2006 Helsingin yliopiston matematiikan ja tilastotieteen laitos Helsingin kaupunginkirjaston iGS-palvelun toimiessa v�litt�j�n�, mist� kiitokset molemmille. Muitakin samankaltaisia menetelmi� kehitettiin.

Varhaisin tiedossani oleva koneellinen sovellus on Elannon j�sennumero, jossa tarkiste otettiin k�ytt��n vuonna 1956, siis kaksi vuotta ennen kuin Postis��st�pankkiin tuli Suomen ensimm�inen kaupallis-hallinnollinen tietokone. Elannon j�rjestelm� toimi reik�korttikoneilla, joita suomalaiset virastot ja yritykset olivat tuolloin k�ytt�neet jo yli 30 vuotta.

Laajemmmin tarkisteiden hy�dyllisyys tietojen sy�t�ss� huomattiin kun tietokoneita alettiin k�ytt�� kaupallisiin ja hallinnollisiin tarkoituksiin 1950-luvun lopulla. Saksalais-yhdysvaltalainen Hans Peter Luhn sai patentin menetelm�lleen vuonna 1960, Suomessa alettiin jakaa ty�el�kekorttien numeroita 1962, alankomaalainen matemaatikko Jacobus Verhoeff julkaisi oman menetelm�ns� 1969 ja ISO-standardin 7064 ensimm�inen versio julkaistiin 1983.

Uusia tarkistetta k�ytt�vi� j�rjestelmi� suunnitellaan jatkuvasti, ja Damm julkaisi yksinkertaisen mutta tehokkaan algoritminsa vuonna 2004.

Tarkiste voidaan laskea my�s tekstist�, ja n�in usein tehd��nkin, mutta silloin kyse on bin��risist� menetelmist�, jotka j��v�t t�m�n dokumentin ulkopuolelle. Toisaalta jo esihistoriallisella ajalla runomuoto auttoi suullisen perim�tiedon v�littymist� mahdollisimman muuttumattomana sukupolvelta toiselle. Poljennolliset runomitat, kuten Kalevalassa, sopivat t�h�n erityisen hyvin, ja mahdollisten muutosten havaitsemista helpottaa kalevalainen tapa sanoa sama asia kahdesti eri sanoilla.

T�m�n dokumentin historia

Aloitin t�m�n dokumentin kokoamisen omaan k�ytt��ni 1990-luvun alussa, l�hinn� ajatellen ett� n�it� tietoja tullaan tarvitsemaan ohjelmia kirjoitettaessa, ja oikeassa olinkin. Vanhin s�ilynyt versio on vuodelta 1996; siin� kuvataan viisi menetelm�� ja kuusi sovellusta. V�hitellen menetelmien ja sovellusten ker��misest� tuli harrastus, ja dokumentti alkoi el�� omaa el�m��ns�, jossa edes potentiaalinen hy�tyk�ytt� ei en�� ollut t�rke��. Joitakin vuosia dokumentti oli vain muutaman henkil�n k�ytett�viss�, kunnes se vuonna 1998 siirrettiin Internetiin - tuolloin viel� pelkk�n� ASCII-tekstin� ilman HTML-tageja ja nimell� "Tarkistusmerkkien laskentamekanismeja". Omalle kotisivulleni dokumentti siirtyi seuraavana vuonna, jonka j�lkeen se on laajentunut yli kuusinkertaiseksi. Nykyinen nimi tuli k�ytt��n vuonna 2003.


Esimerkki kirjainten numeroarvoista

Mm. matkustusasiakirjoissa annetaan kirjaimille numeroarvot tarkisteen laskentaa varten, mutta menettely on hyvin kaavamainen. Arvot annetaan aakkosj�rjestyksess�, ja vaikka ne ovat kaksinumeroisia, laskentamenetelm�st� seuraa ett� vain viimeisell� numerolla on merkityst�. Matkustusasiakirjat on tarkoitettu luettaviksi koneellisesti, mutta k�sin teht�v�� sy�tt�� ajatellen valituksi tulleet arvot eiv�t ole parhaat mahdolliset. Parempaan tulokseen voidaan p��st� ennakoimalla tavallisimmat yhden merkin virheet k�sinsy�t�ss�.

T�m�n esimerkin arvoja valittaessa on otettu huomioon seuraavat asiat:

  • K�ytet��n kaikkia anglosaksisten aakkosten kirjaimia A..Z; isoille ja pienille kirjaimille ei anneta arvoja erikseen; muita kirjaimia, esim. ��kk�si�, k�ytet��n tunnisteissa niin harvoin, ettei niit� tarvitse ottaa huomioon
  • Kirjainten numeroarvot ovat yksinumeroisia nollasta poikkeavia - t�ll�in on helppo soveltaa jotakin yleisesti k�ytetty� Moduli 10 tai Moduli 11 -tyyppist� menetelm��, joka tuottaa yksimerkkisen tarkisteen; nollaa on hyv� v�ltt�� mm. siksi, ett� er��t menetelm�t eiv�t paljasta nollan ja jonkin muun numeron vaihtumista kesken��n
  • Mit��n numeroa ei k�ytet� kolmea kertaa enemp��
  • Kirjaimen numeroarvo ei saa olla sama kuin QWERTY-n�pp�imist�ss� viereisen kirjaimen tai numeron
  • Toisiaan suomalaiselta ��nneasultaan muistuttavilla kirjaimilla ei saa olla samaa arvoa - varsinkin puhelimessa voi tulla sekaannuksia (muissa kieliss� ��nt�misen ja n�pp�inj�rjestyksen huomioonottaminen voi tietysti johtaa toisenlaiseen lopputulokseen)
  • Toisiaan ulkon��lt��n muistuttavilla kirjaimilla ja/tai numeroilla ei saa olla samaa arvoa; ulkon�k�tarkastelussa otetaan huomioon my�s pienet kirjaimet ja pyrit��n ottamaan huomioon erilaiset fontit, (huolimattomasti) k�sin kirjoitettu teksti yms.
  • Aakkosj�rjestyksess� per�kk�isill� kirjaimilla ei tarvitse olla eri arvoja
Tulos aakkosj�rjestyksess�
A 7B 7C 9D 1E 5F 8 G 4H 8I 5J 2K 6L 9 M 1
N 4O 2P 6Q 3R 3S 6 T 2U 1V 3W 4X 7Y 5 Z 8
Tulos numeroj�rjestyksess�
12345 6789
DMUJOTQRVGNWEIY KPSABXFHZCL

Kuten toisaalla on todettu, virhemahdollisuuksia voidaan v�hent�� my�s j�tt�m�ll� joitakin hankalimpia kirjaimia kokonaan pois, mutta t�m� esimerkki on haluttu tehd� mahdollisimman yleiseksi.


Havaittuja heikkouksia

Kaikilla kuvatuilla menetelmill� on jokin heikkous, joka ei v�ltt�m�tt� vaivaa menetelm�� edell�kuvatussa k�ytt�tarkoituksessaan, mutta voi tehd� sen mahdollisissa muissa sovelluksissa, joten n�m� asiat kannattaa ottaa huomioon menetelm�� valittaessa. Huomaa ett� kun sama ongelma koskee useampia menetelmi�, kuvaus voi jossakin (yleens� ensimm�isess�) kohdassa olla pitempi kuin muualla. Joitakin tulkinnanvaraisia asioita on tietoisesti j�tetty pois, eik� luettelo varmaan muutenkaan ole t�ydellinen.
Menetelm�Ongelmat
Moduli 97-10Jakoj��nn�ksen laskeminen yhdeks�� numeroa pitemmist� luvuista voi olla ongelma joissakin ohjelmointikieliss�. Kiertotie on kuitenkin olemassa, vrt. Jakoj��nn�s ja kongruenssi, jossa kerrotaan my�s miten lasketaan jakoj��nn�s suuresta luvusta.
Tarkiste on kaksinumeroinen, mik� on liikaa joissakin sovelluksissa.
Moduli 34Yksitt�isen merkin vaihtumista toiseksi ei aina huomata.
Painokertoimien yleist�minen pitemmille numerosarjoille ei ole itsest��n selv��.
Vaikka 0:a ja 1:� ei k�ytet� tarkisteina, toisiaan muistuttavat numerot ja kirjaimet aiheuttavat virheit�.
Moduli 31Jakoj��nn�ksen laskeminen yhdeks�� numeroa pitemmist� luvuista voi olla ongelma joissakin ohjelmointikieliss�.
Y-tunnus muunnelmineen Painokertoimien yleist�minen pitemmille numerosarjoille ei ole itsest��n selv�� (mutta Mod 11-2 tekee kyll� hyv�n yrityksen).
Tarkistetta ei voida laskea mille tahansa numerosarjalle.
ISBN- ja ISSN-numeroPainokertoimien yleist�minen pitemmille numerosarjoille ei ole itsest��n selv��, vaikka moottoriajoneuvon sarjanumerossa sit� yritet��n (jossain m��rin menetelm�n tehokkuuden kustannuksella).
Moduli 11Menetelman joissakin versioissa painokertoimien yleist�minen pitemmille numerosarjoille ei ole itsest��n selv��.
Tarkistetta ei voida laskea mille tahansa numerosarjalle.
Moduli 11-11Yksi tarkiste (0) vastaa kahta eri jakoj��nn�st�, mik� est�� joidenkin virheiden havaitsemisen. Menetelm� on kuitenkin luultavasti parempi kuin useimmat joissa k�ytet��n samaa metettely�.
Moduli 11-0Painokertoimien yleist�minen pitemmille numerosarjoille ei ole itsest��n selv��.
Yksi tarkiste (0) vastaa kahta eri jakoj��nn�st�, mik� est�� joidenkin virheiden havaitsemisen.
Moduli 11-5Yksi tarkiste (5) vastaa kahta eri jakoj��nn�st�, mik� est�� joidenkin virheiden havaitsemisen.
Moduli 11-10Yksi tarkiste (0) vastaa kahta eri jakoj��nn�st�, mik� est�� joidenkin virheiden havaitsemisen.
Luhnin moduli 100:n ja 9:n vaihtumista kesken��n ei havaita.
Per�kk�isten numeroparien - esim. p�iv�m��r�n osien - vaihtumista kesken��n ei havaita. Vrt. Ruotsalainen henkil�tunnus.
Moduli 10Kahden numeron vaihtumista kesken��n ei havaita, jos niiden erotus on 5, eli esim. 8162 ja 8612 saavat saman tarkisteen.
Per�kk�isten numeroparien vaihtumista kesken��n ei havaita.
Kerroin 137Kahden numeron vaihtumista kesken��n ei havaita, jos niiden erotus on 5.
MatkustusasiakirjatKirjaimille valitut numeroarvot eiv�t ole parhaat mahdolliset. T�m�n vuoksi yksitt�isen merkin vaihtumista toiseksi ei aina huomata. Erillisess� kappaleessa on esimerkki vaihtoehdosta.
Kahden numeron vaihtumista kesken��n ei havaita, jos niiden erotus on 5.
Kerroin 12Yksitt�isen numeron vaihtumista toiseksi ei aina huomata.
Kahden numeron vaihtumista kesken��n ei aina huomata.
Per�kk�isten numeroparien vaihtumista kesken��n ei havaita.
Kerroin 234Yksitt�isen numeron vaihtumista toiseksi ei aina huomata.
Painokertoimien yleist�minen pitemmille numerosarjoille ei ole itsest��n selv��.
Kerroin 123Yksitt�isen numeron vaihtumista toiseksi ei aina huomata.
Tarkisteen ja sit� edelt�v�n numeron vaihtumista kesken��n ei huomata jos niiden erotus on 5.
Painokertoimien yleist�minen pitemmille numerosarjoille ei ole itsest��n selv��.
Moduli 9 0:n vaihtumista 9:ksi tai p�invastoin ei havaita, eli esim. 2307 ja 2397 saavat saman tarkisteen.
Mink��n numeroiden vaihtumista kesken��n ei havaita.
0:n tai 9:n lis��mist� tai poistamista muiden numeroiden v�list� ei havaita.
Kirjaimia k�sitelt�ess� havaitsematta j��vi� muutoksia on hiukan enemm�n.
Moduli 7Numeron vaihtumista toiseksi ei havaita, jos kyseess� on jokin seuraavista: 0↔7, 1↔8, 2↔9. Samojen numeroparien keskin�isi� paikanvaihtoja ei my�sk��n havaita.
Menetelm� on monia muita heikompi lis�ysten / poisj�tt�jen havaitsemisessa.
Jakoj��nn�ksen laskeminen yhdeks�� numeroa pitemmist� luvuista voi olla ongelma joissakin ohjelmointikieliss�.
Moduli 37Per�kk�isten numeroparien vaihtumista kesken��n ei havaita.
Kerroin 39Kahden numeron vaihtumista kesken��n ei havaita, jos niiden erotus on 5.
Per�kk�isten numeroparien vaihtumista kesken��n ei havaita.

Yksitt�isen menetelm�n rajoituksia voi joskus kiert�� k�ytt�m�ll� kahta eri menetelm�� jotka paikkaavat toistensa puutteet, mutta t�ll�in tarkisteitakin on kaksi tai useampia, kuten Luottokunnan my�nt�miss� luottokorteissa ja er�iss� viivakoodeissa. Matkustusasiakirjoissa olisi ollut hyv� tilaisuus laskea yhteinen tarkiste eri menetelm�ll� (esim. Luhnin moduli 10) kuin yksitt�isten kenttien tarkisteet, mutta mahdollisuutta ei ole hy�dynnetty. Er��ss� j�rjestelm�ss� 8-numeroiseen asiakasnumeroon on liitetty per�ti nelj� tarkistenumeroa: 1. lasketaan kuten ISBN-numerossa (asiakasnumerot valitaan niin ett� X-kirjainta ei tarvita), 2. ja 3. lasketaan Moduli 97-10:ll� ja 4. Luhnin moduli 10:ll�. Virheet on l�hes t�ysin eliminoitu, mutta menettely on aika raskas. K�ytt�j�organisaatio kuitenkin sai mit� halusi.

Jonkinasteisella mielenkiinnolla voidaan todeta, ett� henkil�kortin numero tarkistetaan kahdella eri menetelm�ll� yhteens� kolmeen kertaan, ja viel� sittenkin kahden numeron vaihtuminen kesken��n j�isi useassa tapauksessa havaitsematta. Tosin vaihtuminen ei koneellisessa luvussa ole kovin todenn�k�inen, mutta tilanne muuttuu jos koneellinen luku ei jostain syyst� onnistu, ja tiedot joudutaan sy�tt�m��n k�sin.

Luhnin moduli 10:n t�rkein puute voidaan kiert�� v�ltt�m�ll� numerosarjoja, joissa 0 ja 9 esiintyv�t vierekk�in, jos sovellus t�m�n sallii. Asia voidaan viel� erikseen tarkistaa tietoja sy�tett�ess�. Samaa periaatetta voi soveltaa er�isiin muihin menetelmiin, mutta juuri t�ss� se toimii parhaiten.

Eri menetelmien suorituskyvyst� n�kee niin vaihtelevia arvioita, ettei alempana oleva taulukko luultavasti ole sen huonompi kuin muutkaan. Suurimmaksi osaksi arvio koskee vain numeroiden sy�t�n tarkistamista. Kirjaimet vaikeuttaisivat arviointia joissakin tapauksissa kohtuuttomasti. T�m�n vuoksi Coden on j�tetty pois. Vain tavallisimmat virheet on otettu huomioon.

Olen muutaman kerran n�hnyt v�itteit�, joiden sis�lt� on suunnilleen seuraava: "Yhdell� tarkistusnumerolla voidaan havaita enint��n 90 % virheist�, koska tarkisteelle on vain 10 vaihtoehtoa, ja siksi t�ysin satunnainenkin numerosarja l�p�isee tarkistuksen 10 % todenn�k�isyydell�." T�llaisella havainnolla on merkityst� vain niille, jotka esim. laskua maksaessaan sy�tt�v�t saajan tilinumeroksi tai laskun viitenumeroksi satunnaisia numerosarjoja. Me muut yrit�mme sy�tt�� t�sm�llisesti m��r�ttyj� numeroita, ja vaikka t�ss� teht�v�t virheet itsess��n ovat satunnaisia, ne voidaan kuitenkin jakaa eri tyyppeihin, joiden esiintymistiheydet voidaan kokeellisesti selvitt��, ja sitten voidaan kehitt�� tarkisteiden laskentamenetelmi�, joilla tavallisimmat virheet havaitaan mahdollisimman usein. Kuten allaolevasta taulukosta n�kyy, hyv� tarkistusmenetelm� paljastaa yhdell�kin tarkistusnumerolla selv�sti enemm�n kuin 90 % tavallisimmista virheist�.

Havaitsematta j��vien virheiden osuus (%)
Menetelm�(t) Yhden numeron muuttaminen (3�) Vierekk�isten numeroiden vaihtaminen kesken��n Yhden numeron lis��minen / poistaminen Painotettu keskiarvo
Moduli 97-10 0 0 1.0 0.20
Moduli 37 0 0 2.7 0.54
Moduli 31 0 0 3.2 0.64
Y-tunnus muunnelmineen
ISBN- ja ISSN-numero
Moduli 11
0 0 9.1 1.82
Verhoeffin menetelm�
Dammin algoritmi
0 0 10.0 2.00
Luhnin moduli 10
Mod 11,10
0 2.2 10.0 2.44
Moduli 11-0
Moduli 11-5
Moduli 11-10 *
1.5 1.9 10.6 3.40
Moduli 10
Kerroin 137
Matkustusasiakirjat
Kerroin 39
0 11.1 10.0 4.22
Kerroin 12 5.9 0.8 10.3 5.76
Kerroin 123 2.8 .. 11.1 1.2 .. 5.6 10.0 6.85
Moduli 7 6.7 6.7 20.0 9.36
Moduli 9 2.2
8.6
100.0 20.0
11.1
25.32
27.38

Yhden numeron muuttaminen on tavanomaisin virhe, joten sille on annettu kolminkertainen paino keskiarvoja laskettaessa. T�m� vastaa Jacobus Verhoeffin havaintoja eri virhetyyppien yleisyydest�. Muiden kuin n�iden kolmen virhetyypin yhteinen osuus on vain n. viisi prosenttia kaikista virheist�.

* Prosenttiluvut koskevat todellisuudessa vain menetelm�� Moduli 11-0, mutta Moduli 11-5 ja Moduli 11-10 ovat niin samankaltaisia, etten usko tulosten merkitt�v�sti poikkeavan. Moduli 11-11 saattaa olla parempi tai huonompi, mutta en ole viel� tutkinut.

Kerroin 123:n tehokkuus riippuu monimutkaisella tavalla numerosarjan pituudesta. Ilmoitetut vaihteluv�lit ja keskiarvo perustuvat 2..9 tarkistettavaan numeroon. Arviossa ei ole otettu huomioon sit�, ett� er�it� menetelmi� k�ytet��n kiinte�mittaisten tietojen tarkistamiseen, jolloin yhden numeron lis��minen / poistaminen havaitaan aina. Tarkoitus on verrata menetelmi�, ei sovelluksia. Kerroin 234:n tehokkuus on luultavasti suunnilleen sama kuin Kerroin 123:n, mutta t�t� en ole yksityiskohtaisesti tutkinut.

Moduli 9:n kohdalla alemmat luvut koskevat tapausta jossa k�ytet��n my�s kirjaimia.

Huonokin tarkistusmenetelm� on tietysti paljon parempi kuin ei mit��n, mutta huonolla menetelm�ll� laskettu tarkistusmerkki vie resursseja yht� paljon kuin hyv�ll� menetelm�ll� laskettu, ajatellaanpa sitten laskentaan kuluvaa aikaa, muistin k�ytt�� tai ohjelman kirjoittamiseen tarvittavaa aikaa, joten miksi tyyty� huonoon kun hyvi�kin on tarjolla?

On matemaattisesti todistettu, ett� mik��n tarkistusmenetelm�, joka edustaa t�ss� dokumentissa kuvattuja painotus-summaus-jakoj��nn�s -tyyppej�, joka ei aseta rajoituksia tarkistettavalle numerosarjalle, ja jossa tarkiste on yksitt�inen kymmenj�rjestelm�n numero, ei voi paljastaa sek� kaikkia tapauksia joissa yksitt�inen numero vaihtuu toiseksi, ett� kaikkia tapauksia joissa kaksi vierekk�ist� numeroa vaihtuvat kesken��n. L�himm�ksi p��see Luhnin moduli 10. Muita yht� hyvi� menetelmi� voidaan kehitt��, mutta parempi tulos edellytt�� toisenlaista l�hestymistapaa, kuten esim. Verhoeffin menetelm�ss� tai Dammin algoritmissa.

Aikaisemmin taulukon prosenttiluvut kuvasivat sit�, kuinka suuren osan virheist� menetelm� paljastaa, mutta nykyinen versio on mielest�ni havainnollisempi. Nyt n�kyy selv�sti esim. se, ett� Luhnin moduli 10 - joka sent��n on Moduli 10 -tyyppisist� menetelmist� paras - p��st�� l�pi yli kymmenen kertaa niin paljon virheit� kuin Moduli 97-10, ja heikoin menetelm� on viel� yli kymmenen kertaa huonompi.


"Ihanteellinen" tarkistusmenetelm�

K�yt�nn�n tilanteet vaihtelevat, ja sen vuoksi mik��n yksitt�inen tarkistusmenetelm� ei voi olla paras joka tilanteessa. Tarkastellaan asiaa sen pohjalta, kuinka hyviksi eri menetelm�t on todettu kappaleessa Havaittuja heikkouksia. Asetetaan joitakin rajauksia sille, millaiseen sovellukseen menetelm�� halutaan k�ytt��:
  • Tarkistettava tieto ja tarkiste sis�lt�v�t vain numeroita 0..9. [T�m� on melko yleinen vaatimus. Jos tarkistetaan vain numeroita, mutta hyv�ksyt��n se ett� tarkiste saa joskus olla X-kirjain, ISBN-numeron tarkistus tai Mod 11-2 ovat sopivia yksimerkkisen tarkisteen tuottavia menetelmi�. Jos halutaan k�sitell� my�s kirjaimia A..Z, hyvi� yksimerkkisen tarkisteen tuottavia menetelmi� ovat Mod 37-2 ja Mod 11,10:n muunnelma Mod 37,36. Viel� parempi on Moduli 97-10 jos ollaan valmiita k�ytt�m��n kaksimerkkist� tarkistetta. Jos n�m� vaihtoehdot eiv�t miellyt�, lue kappale Esimerkki kirjainten numeroarvoista, jossa kuvataan miten kirjaimet voidaan korvata numeroilla lis��m�tt� virhemahdollisuuksia merkitt�v�sti, ja jatka sitten t�st� kohdasta eteenp�in.]
  • Tarkistusmenetelm� ei saa asettaa rajoituksia tarkistettavalle numerosarjalle. [Jos t�st� ollaan valmiita tinkim��n, parhaita yksinumeroisen tarkisteen tuottavia menetelmi� ovat Y-tunnus muunnelmineen ja Moduli 11. Huomaa ett� t�h�n ryhm��n eiv�t kuulu Moduli 11-0, Moduli 11-5, Moduli 11-10 ja Moduli 11-11.]
  • Tarkisteen on oltava yksinumeroinen.
N�ill� ehdoilla parhaat ovat Verhoeffin menetelm� ja Dammin algoritmi, joiden merkitt�vin heikkous on se, ett� numerosarjan pituuden muuttuminen j�� havaitsematta 10 %:n todenn�k�isyydell�. T�ll� ei tietenk��n ole merkityst�, jos tarkistettava numerosarja on kiinte�mittainen, jolloin mik��n tavanomainen virhe ei j�� havaitsematta, eli silloin n�it� menetelmi� voidaan suositella k�ytett�v�ksi sellaisenaan.

Jos numerosarja on vaihtuvamittainen, ja halutaan suurempaa varmuutta kuin mihin Verhoeffin menetelm� tai Dammin algoritmi yksin pystyv�t, tarvitaan kaksi tarkistetta. T�ll�in Moduli 97-10 on tietysti ilmeinen vastaus, onhan se Kansainv�lisen standardointij�rjest�n ISO:n m��rittelem�, ja em. taulukonkin mukaan paras l�yt�mist�ni menetelmist�. Silti on luvallista kysy�, voisiko t�st�kin viel� parantaa, ja vastaus on my�nteinen.

Kuten em. taulukosta havaitaan, parhaiden menetelmien heikoin kohta on numerosarjan pituuden muuttumisen j��minen havaitsematta, joskin pienell� todenn�k�isyydell�. Kappaleessa Mahdollinen lis�tarkistus kuvataan tarkiste, joka kertoo numerosarjan pituuden (mod 10). Jos t�m� tarkistus yhdistet��n Verhoeffin menetelm�ll� tai Dammin algoritmilla laskettuun tarkisteeseen, ja oletetaan ett� molemmat tarkisteet ovat numerosarjan lopussa, voidaan todeta seuraavaa:

  • Havaitaan kaikki tapaukset, joissa yksi numero on vaihdettu toiseksi.
  • Havaitaan kaikki tapaukset, joissa kaksi vierekk�ist� numeroa ovat v��r�ss� j�rjestyksess�.
  • Jos yksi numero on lis�tty tai poistettu
    • Havaitaan kaikki tapaukset joissa muutos ei vaikuta kahteen viimeiseen numeroon.
    • Havaitaan 99 % tapauksista, joissa muutos vaikuttaa kahteen viimeiseen numeroon.
Esim. jos tarkistettavia numeroita on kahdeksan (+ kaksi tarkistetta), lis�ys j�� havaitsematta todenn�k�isyydell� 2/11/100 = 0,18 %, poisto todenn�k�isyydell� 2/10/100 = 0,2 %. Kappaleen "Havaittuja heikkouksia" taulukossa t�llainen menetelm� saisi siis lukemat 0, 0, ja 0,19, painotettu keskiarvo 0,038 %, eli jopa Moduli 97-10 p��st�� l�pi yli viisinkertaisen m��r�n virheit� t�h�n verrattuna. Verhoeffin menetelm� on my�s hyv� harvinaisempien virheiden havaitsemisessa. Dammin algoritmin tehokkuus harvinaisempien virheiden kohdalla on asia, johon en viel� osaa ottaa kantaa. (Laskennallisesti menetelm�t paranevat jos numerosarja pitenee, mutta t�t� ei kannata liiaksi painottaa, koska samalla virhemahdollisuudetkin kasvavat.)

Verhoeffin menetelm�� pidet��n joskus liian monimutkaisena. Jos sit� t�st� syyst� ei haluta k�ytt��, ilmeisin korvike on Luhnin moduli 10, jota vastaavalla tavalla k�ytett�ess� em. lukemat ovat 0, 2,2 ja 0,19, painotettu keskiarvo 0,478 %, eli varsin hyv� mutta h�vi�� kuitenkin Moduli 97-10:lle, joten t�m� ei kelpaa ihanteelliseksi menetelm�ksi. Mod 11,10 olisi t�sm�lleen yht� luotettava, eik� auta laskennan yksinkertaistamisessa. Sit� vastoin Dammin algoritmi on jotakuinkin yht� hyv� kuin Verhoeffin menetelm�, mutta selv�sti yksinkertaisempi.

Lopputulos: Tehokkain tuntemani vaihtuvamittaisille numerosarjoille sopiva kaksinumeroinen tarkiste muodostuu siis seuraavista osista:

  1. Numerosta, joka osoittaa numerosarjan pituuden (mod 10), kuten on kuvattu kappaleessa Mahdollinen lis�tarkistus. T�m� numero otetaan mukaan toista tarkistetta laskettaessa.
  2. Tavanomainen tarkiste, joka lasketaan Verhoeffin menetelm�ll� tai Dammin algoritmilla.
Esimerkki: Numerosarja 9946-30/244.18 jossa 1 osoittaa numeroiden lukum��r�n (11 mod 10 = 1) ja 8 on Verhoeffin menetelm�n mukainen tarkiste. Dammin algoritmi antaa tarkisteeksi 7. N�it� voi kokeilla Tuatarassa.

Tarkisteita ei l�ydy kaikkialta

T�t� dokumenttia ensimm�ist� kertaa lukeva voi h�mm�sty� siit�, kuinka laajasti tarkisteita k�ytet��n, mutta ei niit� sent��n ihan joka paikassa ole.
  • Autojen rekisterinumerot: Suomalaisissa rekisterinumeroissa ei ole tarkistetta, mutta joissakin maissa (esim. Singapore) sellaista k�ytet��n. T�m� on luultavasti erityisen hy�dyllist� jos rekisterinumeroita tunnistetaan koneellisesti automaattisessa liikenteenvalvonnassa, sill� t�llaiseen tunnistukseen liittyy monia h�iri�tekij�it�.
  • Postipakettien j�ljitykseen k�ytett�v�t l�hetystunnukset: Suomessa otettiin huhtikuussa 2000 k�ytt��n uudet l�hetystunnukset, joissa ei ole tarkistetta. Useissa muissa l�hetystunnuksissa tarkisteita kuitenkin k�ytet��n.
  • Puhelinnumerot: Jokainen huomaa varmasti, ett� jos puhelinnumeroissa olisi tarkiste, virhesoitot olisivat selv�sti harvinaisempia kuin ne todellisuudessa ovat. Tarkisteen lis��mist� on suunniteltu ainakin Yhdysvalloissa, mutta toteutusta saadaan viel� odottaa, ehk� pitk��nkin.
  • Suomen markkojen sarjanumeroissa ei k�ytetty tarkisteita. Tarkisteita ei ole my�sk��n Yhdysvaltain dollareissa; t�m� on todettu tutkimalla sek� vanhan- ett� uudenmallisia 20 dollarin ja uudenmallisia viiden ja kymmenen dollarin seteleit�. Englantilaisista vuoden 2000 mallisista 10 punnan seteleist�k��n ei tarkisteita l�ytynyt. Sit� vastoin euroseteleiss� on tarkiste ja tarkisteiden k�yt�st� joissakin muissa seteleiss� on viitteit�.
  • Vakuutustunnukset (vakuutusnumerot): Ainakin joissakin tunnuksissa on tarkiste, mutta laskentamenetelm�� en ole pystynyt selvitt�m��n, paitsi Tapiolan kohdalla. Eri vakuutusyhti�iden tunnukset ovat muodoltaan erilaisia, ja on luultavaa ett� mit��n pankkitilien numeroiden tarkistukseen verrattavaa yhten�ist� k�yt�nt�� ei ole olemassa.
  • Ymp�rist�merkki: Pohjoismaissa k�ytett�v�n Joutsenmerkin yhteydess� on usein lupanumero (kaksi kolmen numeron ryhm��) jossa ei ole tarkistetta.
Er�it� poikkeuksia lukuun ottamatta tarkisteen k�yt�st� seuraa, ettei voi olla kahta samaan j�rjestelm��n kuuluvaa virheet�nt� numerosarjaa, jotka poikkeavat toisistaan vain yhdess� positiossa. N�in ollen jos esim. muutamassa uudessa seteliss� on per�kk�iset sarjanumerot, voidaan olla varmoja siit� ettei tarkistetta ole k�ytetty.

Avoimia kysymyksi�

On helppoa l�yt�� tietoja joistakin tarkistusmenetelmist� ja niiden sovelluksista, mutta toisten kohdalla monet yksityiskohdat j��v�t puutteellisiksi. Jos osaat antaa luotettaviin l�hteisiin perustuvia lis�tietoja jostakin t�ss� mainitusta avoimesta asiasta, ole hyv� ja l�het� tiedot s�hk�postitse minulle niin saadaan ne muidenkin luettaviksi. Ilmoita my�s saako nimesi mainita t�ss� dokumentissa.
  • IPI:n maksunaihekoodista on hyv�t dokumentit, muttei aitoja esimerkkej�.
  • Millaisia yksil�numeroita k�ytet��n 2000-luvulla annettavissa Henkil�tunnuksissa? Vaikka asiasta on jotakin tietoa, yksityiskohdat puuttuvat. Millaisia suunnitelmia V�est�rekisterikeskuksella on sit� v�ist�m�tt� tulossa olevaa tilannetta varten, kun kolme numeroa ei en�� riit�?
  • Onko Y-tunnuksella muita erikoistapauksia kuin Maatilatunnus ja aikaisemmin kuolinpesille ja yhtymille annetut 9-alkuiset numerot? Mit�? Erityisesti niit� voisivat olla 6- tai 7-alkuiset tunnukset, jos sellaisia on olemassa.
  • Rikosrekisterinumeron tarkisteen laskennasta ei ole k�ytett�viss� mit��n tietoja, eik� numeroista ole my�sk��n yht��n esimerkki�.
  • X-tunnuksista kaivataan lis�� esimerkkej�.
  • T-koodeista olisi hyv� l�yt�� dokumentoitua tietoa.
  • Onko Tuotekoodilla t�ss� dokumentissa mainitsemattomia erikoistapauksia? Mit�? 980..982-alkuisista EAN-13 -koodeista tarvittaisiin esimerkkej�, mieluummin jossakin asiayhteydess� kuin pelkkin� numerosarjoina. My�s 99-alkuisten k�yt�st� olisi hyv� saada lis�� suomalaisia esimerkkej� (muita kuin Plussa-pisteseteleit�).
  • Aidoista biometrisell� tunnisteella varustettujen passien koneellisesti luettavista riveist� ja takakannen viivakoodeista pit�isi saada esimerkkej�.
  • Uudenmallisten henkil�korttien takana olevista koneellisesti luettavista riveist� tarvittaisiin lis�� aitoja esimerkkej�.
  • Tiedossa ei ole sek��n, k�ytet��nk� ennakkoverolipun numerossa samaa tarkistusta kuin dieselverolipun numerossa tai miten dieselverolipun tapauksessa k�sitell��n skandimerkit.
  • Naudoilla on ihmisten henkil�tunnusta vastaava syntym�tunnus, joka n�ytt�� sis�ltyv�n nautojen EU-tunnukseen. Joissakin tapauksissa tunnukseen liitet��n tarkiste, jonka laskentamenetelm� on Kerroin 137. Tarkempia tietoja tunnusten muodosta kaivataan, koska l�ydetyt dokumentit ovat sekavia. Muiden tuotantoel�inten vastaavista tunnuksista tietoja on viel� v�hemm�n.
Esimerkkej� pyyd�n siksi, ett� yksinkertaisemmissa tapauksissa riitt�v�n monien aitojen esimerkkien tutkimisella voidaan suurelta osin korvata puutteelliset dokumentit. Lupaan olla k�ytt�m�tt� tietoja v��rin.
   P��sivu  Palaute   Valid CSS!

Ihmisten ei tarvitse v�litt�� seuraavasta sanaluettelosta, joka on tarkoitettu vain hakukoneille. T�h�n on koottu joitakin sanoja, jotka eiv�t muuten esiinny tekstiss� perusmuodossa tai lainkaan, mutta joita joku voi k�ytt�� etsiess��n t�ss� dokumentissa kuvattuja asioita. T�h�n ratkaisuun on turvauduttu, koska useimmat hakukoneet eiv�t en�� ota huomioon sellaisia dokumenttien metatietoja, joilla sama asia on aikaisemmin voitu hoitaa. Sanat olisi voitu piilottaa n�kyvist� tekem�ll� niist� samanv�risi� kuin tausta, mutta er��t hakukoneet j�tt�v�t sellaisetkin sanat vaille huomiota.

ajoneuvo auto automaattikortti elincs-numero euroseteli eu-tunnus kemikaali konttinumero latvia lentolippu liettua matkapuhelin matkashekki matkustusasiakirja merikuljetuskontti moottoriajoneuvo nainen pankkisiirto pankkisiirtolomake pankkitili puhelin rautatievaunu sim-kortti s��st�pankki tarkasta tarkastaminen tarkastus tarkastusmenetelm� tarkastusohjelma tavarakoodi tavaravaunu vakuutustunnus verkkolasku verolippu

eXTReMe Tracker