Clave Única de Registro de Población
Mexico · Osoby fizyczne
Wklej lub wpisz numer – interpunkcja jest opcjonalna.
Inne identyfikatory
Europe
Azja i Bliski Wschód
Oceania
Co sprawdza to narzędzie – i czego nie sprawdzi
Narzędzie sprawdza strukturę numeru i jego cyfrę kontrolną według opublikowanego algorytmu danego dokumentu. Numer, który przechodzi test, jest poprawnie zbudowany: jest arytmetycznie spójny i mógłby zostać wydany.
Nie powie natomiast, czy numer rzeczywiście wydano, czy jest aktywny ani do kogo należy. Potwierdzić to może wyłącznie urząd skarbowy, przez własną usługę weryfikacji. Pozytywny wynik traktuj jako „wart wysłania", nigdy jako dowód tożsamości.
Cyfra kontrolna CURP przepuszcza ponad jedną piątą literówek na jednym znaku
Meksykański CURP kończy się cyfrą kontrolną liczoną modulo 10 na alfabecie 37 znaków. To niedopasowanie jest zabójcze dla wykrywania błędów: po przetestowaniu wszystkich 612 możliwych podstawień jednego znaku w poprawnym CURP aż 139 z nich — 22,7% — daje ciąg, który wciąż przechodzi. Cyfra mod 10 po prostu nie potrafi rozróżnić 37 symboli.
Jak to działa
- Sprawdza osiemnastoznakową strukturę i przelicza końcową cyfrę kontrolną.
- Wskazuje, która reguła strukturalna zawiodła, a nie tylko to, że coś zawiodło.
- Mówi, co cyfra kontrolna potrafi wychwycić, a czego nie, a jest tego mniej, niż większość zakłada.
alfabet: 0-9, następnie A-N, Ñ, O-Z (37 symboli, indeks 0-36) suma = Σ indeks(znakᵢ) × (18 − i) dla i = 0 … 16 cyfra kontrolna = (10 − (suma mod 10)) mod 10 wagi biegną od 18 w dół do 2; cyfra jest osiemnastym znakiem
Przykład z liczbami
Wyliczenie cyfry kontrolnej dla trzech korpusów CURP, a potem sprawdzenie, co ta cyfra wykrywa.
- BADD110313HCMLNS0 → cyfra kontrolna 6
- SABC560626MDFLRN0 → cyfra kontrolna 1
- MAAJ800101HDFRRN0 → cyfra kontrolna 9
- przetestowano 612 podstawień jednego znaku → 139 niewykrytych (22,7%)
- przetestowano 14 przestawień sąsiednich znaków → 1 niewykryte
Mniej więcej jeden błędnie wpisany znak na pięć przechodzi bez echa, a około 10% losowych ciągów przechodzi przypadkiem. Cyfra kontrolna wyklucza najgrubsze zniekształcenia i niewiele ponadto — jest kontrolą poprawności formatu, a nie obroną przed błędem przepisania.
Jak czytać wynik
- Słabość jest strukturalna, a nie wadą implementacji. Wykrycie każdego błędu jednego znaku wymaga modułu co najmniej tak dużego jak alfabet, i dlatego istnieją schematy mod 11 oraz dlatego chilijski RUT toleruje literę K, zamiast kurczyć się do mod 10.
- Porównaj kanadyjski SIN, gdzie Luhn łapie wszystkie 81 możliwych podstawień jednej cyfry. To samo zadanie, ta sama klasa identyfikatora i zupełnie inna gwarancja — dzieli je wybór modułu.
- Pierwsze 16 znaków wyprowadza się z nazwiska, daty urodzenia, płci i stanu, więc CURP nie jest nieprzejrzysty. Koduje wprost dane osobowe, co ma znaczenie dla sposobu jego przechowywania, logowania i wyświetlania.
- Strukturalnie poprawny CURP niekoniecznie został nadany. Tylko RENAPO może potwierdzić rejestrację, a żadne obliczenie offline nie ustali, że osoba o takim CURP istnieje.
Częste pytania
- Czy to wychwyci literówkę w moim CURP?
- Często nie. Spośród 612 możliwych zmian jednego znaku przetestowanych na poprawnym CURP aż 139 wciąż przeszło przez cyfrę kontrolną. Jeśli poprawność ma znaczenie, wymagaj wartości dwukrotnie i porównuj, bo sama suma kontrolna przepuszcza mniej więcej jedną piątą błędów wpisania.
- Czy poprawna cyfra kontrolna oznacza, że CURP jest prawdziwy?
- Nie. Oznacza, że osiemnaście znaków jest wewnętrznie spójnych, co udaje się także mniej więcej 10% losowych ciągów. Potwierdzenie, że CURP faktycznie nadano, wymaga RENAPO; nic policzonego offline tego nie ustali.