Suma lub cyfra kontrolna - cd.System PESEL - rys historyczny wg MSWIARok 1970 Rok 1972 Rok 1973 Rok 1974 Nadawanie numeru PESELArt. 18.
Numer PESEL jest zmieniany w przypadku:
Numer PESEL - cyfra kontrolnaDla numeru PESEL algorytm obliczenia cyfry kontrolnej przebiega następująco: każdej z pozycji cyfr numeru nadany został stały współczynnik zwany wagą pozycji. Każdą cyfrę numeru mnoży się przez odpowiednią wagę i sumuje się wynik mnożenia. Otrzymany wynik dzieli się modulo 10 i odejmuje od 10.
Jak łatwo zauważyć odjęcie wyniku od 10 nic w zasadzie nie zmienia
ale widocznie twórcy systemu PESEL (Powszechy Elektroniczny System Ewidencji
Ludności) dostali rozkaz (a były to lata siedemdziesiąte) aby trochę
utrudnić rozszyfrowanie tego systemu zachodnim szpiegom :-). Powyższy algorytm jest w zasadzie modyfikacją ogólniejszego algorytmu stosowanego przy weryfikacji numerow NIP, REGON, ISBN, ISSN, EAN itd. W ogólnym algorytmie sumę iloczynów cyfr i wag dzieli się modulo N (oblicza resztę z dzielenia przez N). Dla N=10 wynik dzielenia modulo N jest po prostu ostatnią cyfrą sumy.
Oto przykład dla numeru PESEL 49040501580
1 3 7 9 1 3 7 9 1 3 --> wagi
X X X X X X X X X X Y --> cyfry nr PESEL (Y- cyfra kontrolna)
czyli:
1 3 7 9 1 3 7 9 1 3
* 4 9 0 4 0 5 0 1 5 8
-----------------------
suma=(1*4+3*9+7*0+9*4+1*0+3*5+7*0+9*1+1*5+3*8)=
=( 4+ 27+ 0+ 36+ 0+ 15+ 0+ 9+ 5+ 24)= 120
120 mod 10 = 0
10 - 0 = 10 ----> cyfra kontrolna ?
korekta: dla wyniku 10 ----> cyfra kontrolna = 0
|
|
Uzyskany wynik jest cyfrą kontrolną numeru, który w naszym przypadku ma postać: 49040501580 i dotyczy kobiety urodzonej: 5 kwietnia 1949 roku. W przypadku wprowadzenia błędnego numeru PESEL, komputer po obliczeniu cyfry kontrolnej może ten błąd wykryć, gdyż np: jeśli pomylimy się i zamiast 49040501580 podamy 46040501580 to otrzymamy:
1 3 7 9 1 3 7 9 1 3
* 4 6 0 4 0 5 0 1 5 8
-----------------------
suma=(1*4+3*6+7*0+9*4+1*0+3*5+7*0+9*1+1*5+3*8)=
=( 4+ 18+ 0+ 36+ 0+ 15+ 0+ 9+ 5+ 24)= 111
111 mod 10 = 1
10 - 1 = 9
Obliczona cyfra kontrolna to 9, podczas gdy prawidłowa cyfra to 0.
Oczywiście może nastąpić przypadek błędnego wprowadzenia także ostatniej
cyfry. Weryfikacja numeru PESEL Łukasz Pilorz (2006) bardzo sprytnie zauważył, że "... wystarczy zmienić
kolejność wag na 9-7-3-1, by pozbyć się za jednym zamachem dodatkowego
kroku i problemu "10-0=10". Szkoda, że sam na to nie wpadłem :) 10 10 10 10
stare wagi -1 -3 -7 -9
________________________
nowe wagi 9 7 3 1
dla nowych wag:
9 7 3 1 9 7 3 1 9 7
* 4 9 0 4 0 5 0 1 5 8
-----------------------
suma=(9*4+7*9+3*0+1*4+9*0+7*5+3*0+1*1+9*5+7*8)=
=( 36+ 63+ 0+ 4+ 0+ 35+ 0+ 1+ 45+ 56)= 240
240 mod 10 = 0 wynik jest cyfrą kontrolną
nie wymaga odejmowania od 10
Alternatywne zestawy wag do weryfikacji - (dopisane 27.10.2011r) Do algorytmu weryfikacji można też użyć innych zestawów wag. Jaki jest związek między tymi czterema zestawami wag? Dla członków MENSY nie powinno być problemu z odgadnięciem :-) Druga zagadka. Skoro każdy zetaw może byc użyty, to który z nich jest używany przez MSWiA i system PESEL? Niestety nie ma oficjalnego dokumentu na ten temat. Dlaczego w wagach użyto cyfr 1 3 7 9 ?
Proszę zwrócić uwagę, że w wagach brak jest cyfry 5. Dlaczego? Bardziej matematyczny dowód sensowności użycia wag 1 3 7 9 przy dzieleniu modulo 10 oraz wyższość dzielenia modulo 11 pokazałem na stronie wagi. Jest tam także analizowana odporność powyższych wag i wag algorytmu Luhna na czeskie błędy. Weryfikacja sensowności numeru PESELJak wiadomo w numerze PESEL są zakodowane informacje o dacie urodzenia i płci danej osoby. Prawdziwość numeru PESEL, tzn. czy konkretny PESEL jest przypisany jakiejś osobie, można tylko zweryfikować w samym systemie PESEL. A do tego systemu mają tylko dostęp wybrane urzędy. Zwykły obywatel może się dowiedzieć za pieniądze! Można natomiast, oprócz cyfry kontrolnej, sprawdzić sensowność daty urodzenia. Przykładowy numer PESEL =49040501580 zdekodujemy: 49 oznacza rok urodzenie 1949, A jak jest załatwiany problem wieku XIX, XX, XXI? Wiadomo, że numer roku może przyjąć dowolną wartość od 00 do 99, natomiast numer miesiąca wartości od 01 do 12. Gorzej jest z numerem dnia w miasiącu gdyż jest to wartość zmienna w zakresie od 1 do 31. W różnych miesiącach może to być 30 lub 31, a dla lutego może być to 28 lub 29 zależnie od przestępności roku. Jednym słowem trzeba użyć jakiejś procedury, która sprawdzi poprawność daty. W PHP jest to dość proste. Krótko: taki PESEL 00000000000 ma prawidłową cyfrę kontrolną,
ale jest w oczywisty sposób bezsensowny. Rozkodowana data urodzenia to: Czy algorytm sumy kontrolnej jest optymalny ?W jednym z tekstów w internecie podano, że stopa błędów tego algorytmu
wynosi 2,3% - być może chodzi o czeskie błędy. Ale według mnie wynosi
10% co łatwo wyliczyć jeśli uwzględnimy, że cyfra kontrolna może przyjąć
10 wartości, z których jedna jest prawidłowa. Z elementarnego rachunku
prawdopodobieństwa wychodzi 1/10*100% = 10%. Ciekawostki w kodowaniu numeru PESEL
Tak zwany System PESEL2Komunikat o zakończeniu realizacji Projektu PESEL2 - serwer MSWiARealizacja Projektu PESEL2, tworzonego przez MSWiA w ramach działania 1.5 Sektorowego Programu Operacyjnego Wzrost Konkurencyjności Przedsiębiorstw, została zakończona dnia 30 września 2008 roku. W grudniu 2007 roku, z uwagi na znaczące opóźnienia w realizacji Projektu w latach 2005-2007, MSWiA opracowało plan naprawczy, który zakładał istotne ograniczenie zakresu projektu do elementów realizowalnych w czasie pozostałym do rozliczenia projektu. Uzgodniony zakres usług obejmował gruntowną modernizację infrastruktury sprzętowej centralnych rejestrów państwowych wraz z uruchomieniem w jej środowisku e-usług. Z powodzeniem wykonano modernizację systemu rejestrów państwowych funkcjonującego na przestarzałym środowisku informatycznym "JANTAR" (pochodzącym z lat 70-tych). Zrealizowano również następujące usługi:
Usługi są dostępne dla przedsiębiorców: pierwsze dwie w trybie teletransmisji, a trzecia przez elektroniczną Platformę Usług Administracji Publicznej. Przebudowując rejestry państwowe, zdecydowano się wykorzystać rozwiązania technologiczne pozwalające sprawnie i dynamicznie zreformować eksploatowane systemy w celu ich dostosowania do planowanego odmiejscowienia czynności urzędowych. Pomyślnie zrealizowane zadania nakreślone w ramach planu naprawczego stanowią podstawy do rozpoczęcia przez MSWiA prac nad projektem pl.ID - elektronicznym dokumentem tożsamości. 17 listopada 2008 |
|
Licznik = (od 21 lipca 2000) |