llustrasjonsfoto: Idiosyncrasy by Pulpolux !!! - CC BY-NC 2.0
IT/IKT

Identitetsnummer i Norge

Gjennom arbeidet med Feide har jeg møtt på langt flere typer identitetsnummer enn jeg ante eksisterte da jeg begynte med dette for en del år siden. Noen er veldefinerte og enkle å kjenne igjen, mens andre er utformet slik at de ikke kan skilles fra andre. Du har også de fiktive nummerne saksbehandlere bare plukker rett ut av lufta ved hjelp av fri fantasi. Dette kaoset av forskjellige typer identitetsnummer kan skape store problemer når du benytter dem som entydige indentifikatorer for personer. Om du ikke holder tunga rett i munnen.

Vi har i disse dager en ny gjennomgang av bruken av identitetsnummer i Feide, og dermed ble denne siden til. Dette er en oversikt over noen av identitetsnummerene i bruk i Norge, noen nasjonale og noen sektorspesifikke. Det finnes sikkert flere, men her er: fødselsnummer, D-nummer, DUF-nummer, S-nummer, «VGO-nummer», H-nummer og FH-nummer.

Fødselsnummer

Fødselsnummer er det nummeret de fleste tenker på når det snakkes om identitetsnummer i Norge. Og i tillegg, når de fleste snakker om «fødselsnummer» så inkluderer de også gjerne alle de fødselsnummerlignende nummer som er beskrevet under.

Fødselsnummer er definert i Forskrift for folkeregistrering §2-2:

Fødselsnummeret skal ha elleve siffer. De seks første siffer består av vedkommendes fødselsdato i rekkefølge to siffer for dag, to for måned, to for år. De fem siste siffer, personnummeret, består av tre individsiffer og to kontrollsiffer.
Som individsiffer for personer født:
a) 1854-1899 brukes serien 749-500,
b) 1900-1999 brukes serien 499-000,
c) 1940-1999 brukes også serien 999-900,
d) 2000-2039 brukes serien 999-500.
Kvinner skal ha like tall og menn ulike tall som siste individsiffer.

For mer informasjon om kontrollsiffer og hvordan disse regnes ut se her.

Om man ikke vet hvilken type identetitsnummer man får inn i et IT-system må man se på hvlke tall som kommer, om man ut i fra dette entydig kan si hvilken type idetnitetsnummer det er, og så om det er et gyldig identitetsnummer.

Grafisk kan man illustrere bruken av tall i et vanlig fødselsnummer slik:

idnr-f-600px

De fleste av tallene benyttes, men naturlig nok ikke dager over 31 og måneder over 12. Delvis gjennomsiktige tall viser at dette brukes sjeldenere enn de andre i kolonnen. F.eks. at 3 benyttes betydelig sjeldenere enn 0, 1 og 2 som første tall i dagssiffer.

Om alle bare kunne hatt et vanlig fødselsnummer som norsk identitetsnummer så hadde ikke dette vært så ille, om vi ser bort i fra den innebygde informasjonslekkasjen. Men den gang ei.

 

D-nummer

D-nummer utstedes til en del av de som ikke får lov til å få et vanlig fødselsnummer, men ikke alle.

D-nummer er definert i Forskrift for folkeregistrering §2-5, samt hvem som kan få det utstedt i §2-6.

D-nummeret skal ha elleve siffer. De seks første siffer består av vedkommendes fødselsdato i rekkefølge to siffer for dag der første er tillagt fire, to for måned, to for år. De fem siste siffer, personnummeret, består av tre individsiffer og to kontrollsiffer.

 

Som individsiffer for personer født:
a) før 1. januar 2000 brukes serien 000-499,
b) etter 1. januar 2000 brukes serien 500-999.

 

Kvinner skal ha like tall og menn ulike tall som siste individsiffer.

I praksis er reglene rimelig lik fødselsnummer, men det første tallet i dagssifferne får et tillegg på 4. En som er født den 23. i en måned få 63 som de to første sifferne i D-nummeret. Kontrollsiffer regnes ut likt som for fødselsnummer.

Det finnes en misoppfatning om at alle individsifre i D-nummer starter med 0. Dette vil være tilfelle for de 98 første som får D-nummer med en gitt fødselsdato og som er født før år 2000, men gjelder ikke generelt. Om det blir mange personer med samme fødselsdato vil flere tall brukes, og for de født etter år 2000 begynner serien på 5.

Grafisk vil bruken av siffer se slik ut:

idnr-d-600px

Hvor stor sannsynligheten for at første individsiffer blir noe annet enn 0 eller 5 vet jeg ikke, men alle nummerne fra 0-9 er med i definisjonen og vi må forvente at de faktisk kan bli tatt i bruk.

 

DUF-nummer

DUF-nummer er et 12-sifret identitetsnummer som tildeles av Utlendingsdirektoratet når noen søker om opphold eller innreise i landet.

Jeg har ikke funnet noen offisiell informsjon på nett som beskriver oppbyggingen, men ut i fra det jeg har hørt er dette et løpenummer med kontrollsiffer på slutten. Det er lett å kjenne igjen maskinelt, i og med at det har 12 siffer. Det i seg selv kan skape problemer i en del IT-systemer som forventer at norske identitetsnummer har 11 siffer.

En del av de som får et DUF-nummer vil få et D-nummer eller vanlig fødselsnummer etterhvert.

Jeg har ikke klart å finne mye offisiell informasjon om oppbygningen av DUF-nummer på nett, men det ser ut til å være følgende:

———–
Syntax:
———–
12 siffer

YYYYLLLLLLKK

Y=Årstall
L=Løpenummer
K=Kontrollsiffer

—————-
verifisering:
—————-

INPUT: DUFNR

Hvis DUFNR ikke har lengde 12 -> ikke gyldig

Hvis DUFNR ikke er et tall -> ikke gyldig

int kontroll=2 siste siffer i DUFNR
int[] d_siffer=LØPENR+ÅRSTALL (altså array lengde 10)

int[] da = new int[]{4,6,3,2,7,5,4,6,3,2}

int tmp = 0;

for(int i=9; i>=0; i–){
tmp = da[i] * d_siffer[i];
}

tmp = tmp mod 11

if(tmp == kontroll) –> duf gyldig
else –> ikke gyldig

 

Eksempler:201017238203
200816832910

Lettere omskrevet i som en php-funksjon vil du få:

For en standalone sjekk bør det sjekkes
1. $duf skal være en 12 tegn lang streng
2. $duf skal bare bestå av tall
3. checkDUF($duf)
/**
* Validate a 12-digit DUF-number.
*
* @param string $duf The DUF number.
* @return boolean TRUE if valid, FALSE otherwise.
*/
private static function checkDUF($duf) {
assert(‘is_string($duf)’);
assert(‘strlen($duf) === 12’);

/* $duf format: YYYYLLLLLLKK */
$k = (int)substr($duf, 10, 2);

/* Note: $weight changed from original to avoid changing $duf to LLLLLLYYYY. */
$weight = array(4,6,3,2,4,6,3,2,7,5);

$sum = 0;
for ($i = 0; $i < 10; $i++) {
$sum += (int)$duf[$i] * $weight[$i];
}

$sum = $sum % 11;
return $k === $sum;
}

 

S-nummer

S-nummer, også kalt SO-nummer, er et identitetsnummer som benyttes i utdanningssektoren, i høyere utdanning. Nummeret utstedes av Samordna opptak, typisk til de som hverken har, og kanskje aldri skal ha, fødselsnummer eller D-nummer. Nummeret brukes bare internt i sektoren av UH-institusjonene og ikke av personen selv.

Jeg har ikke funnet noen offisell informasjon på nett som beskriver oppbyggingen, men brukerhåndbøkene til FS beskriver det som:

S-nummer dd[m+5]myy 1xxxx (eks 046185 13010). Personnr er vanligvis mellom 10000 og 14000.

Oppdatering 3. des – Jeg har fått to oppdateringer med mer informasjon fra UiO og Samordna opptak:

Nummerene bygges opp med de samme reglene som fødselsnummer, dvs med personnummer i form av 3 siffer løpenummer og 2 kontrollsiffer.  Samme ordning med kjønnsbaser partall/oddetall.  Løpenummeret starter fra 100, og det er ikke gitt noen begrensninger på hvor langt opp man kommer (avhengig av hvor mange som trenger S-nummer/SO-nummer for en gitt dato).
Nytt S-nr genereres ved å loope fra 12000 til 19999 og returnere første
nr der kjønn- og kontrollsifre stemmer og der nummeret ikke er brukt fra
før. I 1998-2002 ble også 10000-11999 brukt og før det igjen ble 90000+ brukt.

Nye S-nummer legger dermed til 5 på første månedssiffer samt at første individsiffer er 1. De to siste individsifrene og kontrollsifrene er som for vanlige fødselsnummer. Det ser ut til at veldig gamle S-nummer, fra før 1998, har 9 som første individsiffer

Grafisk vil bruken av siffer se slik ut:

idnr-s-600px

I og med at de legger til 5 på første månedssiffer, og at første individsiffer alltid er 1 (eller 9), er også dette nummeret relativt lett å kjenne igjen. Så lenge det er internt i utdanningssektoren. S-nummer kolliderer med H-nummer i helsesektoren.

 

«VGO-nummer»

Det jeg her kaller «VGO-nummer» har ikke noe offisielt navn, så vidt meg bekjent. Dette er en type identitetsnummer som benyttes i videregående opplæring, på samme måte som S-nummerne i høyere utdanning. Oppbygningen legger opp til en oppdelt modell der tildeling av nummer skjer fylkesvis.

Oppbyggingen av «VGO-nummer» er definert i Utdanningsdirektoratets registreringshåndbok:

Regler for fiktivt fødselsnummer:

 

Fødselsdato består av gyldig dato + 40 dager (for eksempel 011285 blir til 411285).

 

Personnummer består av 99 + kjønnshenvisning (partall = jenter, oddetall = gutter) + fylkesnummer (ledende null – eks for Akershus 02). Dersom det allerede er opprettet en person i Vigo med 99 kan dette erstattes med 98, 97 osv.

«VGO-nummer» benytter samme regel som D-nummer med å legge til 4 i første dagssiffer, men sier at de to første individsifrene skal begynne med 99 og arbeide seg nedover ved behov. Nummeret benytter ikke kontrollsiffer, men har fylkesnummeret som de to siste sifrene.

Grafisk vil bruken av siffer se slik ut:

idnr-vgo-600px

Slik dette idenitetsnummeret er bygd opp kan vi ikke se om et nummer vi får er et «VGO-nummer» eller et D-nummer. I en del tilfeller kan vi se at det er et D-nummer, da «VGO-nummeret» ikke benytter alle tallene i nest siste siffer, men ikke den andre veien.

idnr-vgo-d-600px

En kan argumentere for at sannsynligheten for kollisjon er liten på grunn av måten de ser ut til å brukes, men tallmengden «VGO-nummer» benytter er et subsett av tallmengden som er i D-nummer.

 

H-nummer

H-nummer er hjelpenummer brukt i helsesektoren. H-nummer skal ikke benyttes på tvers av organisasjoner og gis til de som ikke har fødselsnummer eller D-nummer, eller ikke kan gjøre rede for disse når de registreres.

Oppbyggingen av H-nummer er definert i KITH Standard 1001:2010:

Virksomhetsinterne H-nummer er bygd opp på samme måte som fødselsnummeret bortsett fra at tredje siffer skal tillegges 4, dvs. måned går fra 41 til 52. Kontrollsiffer og kjønn beregnes på samme måte som for fødselsnummer.

 

Ettersom det for virksomhets interne H-nummer tillates
fiktive fødselsdatoer, vil en ikke med tilstrekkelig grad av sikkerhet kunne bestemme fødselsdato ut fra H-nummeret alene.

Så på samme måte som S-nummer legger man til et fast tall til første månedssiffer. H-nummer legger til 4, mens S-nummer legger til 5.

Grafisk vil bruken av siffer se slik ut:

idnr-h-600px

Her har vi overlapp med S-nummerene. Men i og med at det er i en annen sektor og H-nummer bare skal brukes internt i en organisasjon, samt når FH-nummer ikke kan genereres, så skal det i teorien ikke være noe problem på nasjonal basis.

 

FH-nummer

Da H-nummer ikke kan benyttes på tvers av organisasjoner ble det opprettet et nytt felles identitetsnummer i helsesektoren. FH-nummer, eller felles hjelpenummer, utstedes på samme grunnlag som de gamle H-nummerne, og er foretrukket fremfor disse.

Oppbyggingen av FH-nummer er definert i KITH Standard 1001:2010:

Et FH-nummer består av et ni-siffret tall mellom 800.000.000 og 999.999.999 etterfulgt av to kontrollsiffer som beregnes for samme måte som for fødselsnummer.

 

Verken kjønn, fødselsdato eller rekkefølge for tildeling kan avledes av et FH-nummer.

Så FH-nummeret er et rent tilfeldig nummer som begynner på 8 eller 9 og har to kontrollsiffer på slutten.

Grafisk vil bruken av siffer se slik ut:

idnr-fh-600px

Da FH-nummer alltid benytter 8 eller 9 som første siffer kolliderer de ikke med noen av de andre identitetsnummerne i denne oversikten.

 

Andre identitetsnummer

Det finnes helt sikkert andre identitetsnummer i Norge som jeg ikke har oversikt over. Forhåpentligvis er disse definert på en fornuftig måte, og kan brukes sammen med de nasjonale identitetsnummerne, fødselsnummer, D-nummer og DUF-nummer, innenfor den sektoren de er ment for.

I tillegg vet vi også om en god del tilfeller i utdanningssektoren der organisasjoner bare finner på sine egne måter å lage fiktive 11-sifrede identitetsnummer på. I mitt hode stiller disse enda litt svakere enn det H-nummeret, og kan ikke benyttes på tvers av organisasjoner.

 

Konklusjon

Den første konklusjonen er vel at identitetsnummer i Norge er noe herk! Forhåpentligvis kan det bli bedre med det nye folkeregisteret, men det er langt frem ennå. Inntil da, og lenge etterpå, må vi nok leve med det kaoset vi har i dag.

Jeg har spesielt spesielt tatt for meg de identitetsnummerne jeg vet om i utdanning og helse her. Dette fordi det i noen tilfeller kan være et overlapp i fagsystemer mellom disse sektorene, spesielt i høyere utdanning.

Så lenge man holder seg til fødselsnummer, D-nummer, S-nummer og FH-nummer ser det ut til at IT-systemer greit kan skille idetitetsnummerne fra hverandre og unikt identifisere en person. Også uten at en i forkant må vite hvilken nummertype det er.

Blander vi inn «VGO-nummer», H-nummer eller andre organiasjonsinterne metoder vil det oppstå problemer. Man kan ikke entydig si at et nummer er én spesifikk type nummer eller tilhører én gitt person innenfor sektoren/på nasjonal basis.

(Om noen har utfyllende informasjon om disse nummertypene, ser feil el.l. tar jeg gjerne i mot mer informasjon.)

 

Illustrasjonsfoto: Idiosyncrasy by Pulpolux !!!CC BY-NC 2.0

Diskusjon

Legg igjen en kommentar

Fyll inn i feltene under, eller klikk på et ikon for å logge inn:

WordPress.com-logo

Du kommenterer med bruk av din WordPress.com konto. Logg ut / Endre )

Twitter picture

Du kommenterer med bruk av din Twitter konto. Logg ut / Endre )

Facebookbilde

Du kommenterer med bruk av din Facebook konto. Logg ut / Endre )

Google+ photo

Du kommenterer med bruk av din Google+ konto. Logg ut / Endre )

Kobler til %s