Skip to main content

Clave Única de Registro de Población

Mexico · Osoby fizyczne

AAAA000000HAAAAA00

Wklej lub wpisz numer – interpunkcja jest opcjonalna.

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.

  1. BADD110313HCMLNS0 → cyfra kontrolna 6
  2. SABC560626MDFLRN0 → cyfra kontrolna 1
  3. MAAJ800101HDFRRN0 → cyfra kontrolna 9
  4. przetestowano 612 podstawień jednego znaku → 139 niewykrytych (22,7%)
  5. 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.