Gebruikersavatar
Back2Basics
Artikelen: 0
Berichten: 778
Lid geworden op: wo 05 aug 2015, 10:58

Waarom extra bewerking bij controlegetal RRN?

Het Belgische RijksRegisterNummer RRN, te vergelijken met het Nederlandse BurgerServiceNummer BSN, heeft op de laatste 2 posities een controlegetal A. Dat controlegetal A wordt verkregen door een restgetal B van 97 af te trekken; het verschil tussen B en 97 wordt bepaald, en vormt A.
 
 
Ter info:
Het RRN bestaat uit drie delen:
- je geboortedatum (YYMMDD),
- aangevuld met een 3-cijferig volgnummer CCC. Dat volgnummer is even voor vrouwen, en oneven voor mannen
- gecompleteerd met het 2-cijferige controlegetal A
 
De eerste twee delen vormen een nummer N: YYMMDDCCC. Het restgetal B wordt verkregen door het nummer N modulo 97 te nemen.
 
Voorbeeld uit Wikipedia:
Is een man geboren op 18 mei 1993, en hij heeft volgnummer 223 op die dag, dan is zijn nummer 93051822361. Immers, 930518223 gedeeld door 97 is 9592971 + 36. Het verschil van 97 en de rest levert 97 - 36 = 61 op.
 
Hierin is A=61 en B=36.
 
Waarom wordt deze extra stap gedaan? Mijn gevoel zegt dat het getal B net zoveel waarde heeft, of net zo sterk is, of net zo significant is als A. Weet iemand daar iets over?
Benm
Artikelen: 0
Berichten: 12.262
Lid geworden op: za 21 okt 2006, 01:23

Re: Waarom extra bewerking bij controlegetal RRN?

Dit is vergelijkbaar met de checksum van IBANs, als je daarop zoekt vind je meer informatie over de motivatie voor dit systeem. Die 97 min modulo-97 oplossing zorgt er grofweg voor dat de checkdigits niet kunnen overlappen: zou je het niet doen dan zouden bijv 02 en 99 beide geldige checkdigits zijn voor bepaalde gevallen.
Victory through technology
Gebruikersavatar
Math-E-Mad-X
Artikelen: 0
Berichten: 2.907
Lid geworden op: wo 13 sep 2006, 17:31

Re: Waarom extra bewerking bij controlegetal RRN?

Benm schreef: Die 97 min modulo-97 oplossing zorgt er grofweg voor dat de checkdigits niet kunnen overlappen: zou je het niet doen dan zouden bijv 02 en 99 beide geldige checkdigits zijn voor bepaalde gevallen.
 
Deze uitleg snap ik niet. B is sowieso altijd kleiner dan 97, dus 99 kan nooit een geldige checkdigit zijn.
while(true){ Thread.sleep(60*1000/180); bang_bassdrum(); }
Benm
Artikelen: 0
Berichten: 12.262
Lid geworden op: za 21 okt 2006, 01:23

Re: Waarom extra bewerking bij controlegetal RRN?

Tenzij je natuurlijk een typfout maakt in de checkdigits. Bovendien voorkomt het de triviale oplossing voor het geval 000..0000 dat bij een simpele modulo oplossing valide zou zijn, maar in dit geval dus 000..0097 moet zijn om te valideren.

Overigens zitten er wel meer eigenaardigheden in dergelijk checksums, denk bijvoorbeeld aan credit card nummers. Die van visa kaarten is zo gekozen dat 1111 1111 1111 1111 niet valideert, maar 4111 1111 1111 111 wel. Voor mastercard is het validerende voorbeeld 5555 5555 5555 4444.
Victory through technology

Terug naar “Praktische en overige technische wetenschappen”