Rodné číslo: Estructura tècnica
El rodné číslo (DNI txec) és un número de identificació única assignat a cada persona nascuda o registrada a la República Txeca. És similar al SSN nord-americà però amb validació tècnica integrada.
Format: 10 dígits, sovint escrits com RRMMDDXXXX o RRMMDDsXXX on:
- RRMMDD: Data de naixement (any, mes, dia) en format YY-MM-DD
- sXXX: Seqüenciador aleatori de 3 dígits (s = signe per a sexe/ciutadania)
Validació de suma de verificació mòdul 11: El desè dígit és un dígit de verificació calculat usant algoritme de suma de verificació de mòdul 11:
- Pesa els primers 9 dígits amb seqüència de pes: 8, 7, 6, 5, 4, 3, 2, 1, 0
- Suma ponderada = (dígit[0] × 8) + (dígit[1] × 7) + ... + (dígit[8] × 0)
- Resta suma de 11: remainder = 11 - (suma mod 11)
- Si remainder = 10, el dígit de verificació = 0; si remainder = 11, el dígit de verificació = 1; sinó, remainder = dígit de verificació
Exemple:
- Número: 8553280123
- Pesa: (8×8) + (5×7) + (5×6) + (3×5) + (2×4) + (8×3) + (0×2) + (1×1) + (2×0) = 64+35+30+15+8+24+0+1+0 = 177
- Remainder = 11 - (177 mod 11) = 11 - 1 = 10 → dígit de verificació = 0
- Validació: últim dígit és 3, calcul don dígit = 0 → Número inválid
Auditoria de conformitat GDPR: Com verificar anonimització
Com que el rodné číslo té suma de verificació estructurada, les organitzacions que anonimitzen números txecs han de verificar que:
-
Els números originals estan efectivament redactats o anonimitzats
- Cercar qualsevol número de 10 dígits en els documents anonimitzats
- Si es troben números de 10 dígits, validar que complissin la suma de verificació de mòdul 11 (si complixen, podrien ser rodné číslo reals)
-
Els números anonimitzats no complissin la suma de verificació
- Alguns sistemes d'anonimització reemplacen números amb altres números aleatoris
- Si els números aleatoris casualmente validen com a suma de verificació de mòdul 11, podrien ser confosos amb números reals
- Verificar que la taxa de validació de suma de verificació en números anonimitzats és < 1/11 (expected value for random numbers)
-
Els números encriptats romandran indistingibles de números aleatoris
- Si els números estan encriptats (AES-256), la sortida serà una cadena hex de 32 caràcters, no un número de 10 dígits
- Això és millor que reemplaçament amb números aleatoris, ja que és impossible confondre encriptació amb data real
Validació tècnica per a auditoria GDPR
Script per a verificació de suma de verificació de rodné číslo (Python):
import re
def validate_rodne_cislo(number_str):
"""Validar suma de verificació de rodné číslo mòdul 11"""
if not re.match(r'^\d{10}$', number_str):
return False
digits = [int(d) for d in number_str[:9]]
weights = [8, 7, 6, 5, 4, 3, 2, 1, 0]
weighted_sum = sum(d * w for d, w in zip(digits, weights))
remainder = 11 - (weighted_sum % 11)
if remainder == 10:
check_digit = 0
elif remainder == 11:
check_digit = 1
else:
check_digit = remainder
return int(number_str[9]) == check_digit
# Auditoria: cercar números validables en documents anonimitzats
import os
def audit_anonymization(directory):
found_valid = []
found_total = 0
for filename in os.listdir(directory):
with open(os.path.join(directory, filename), 'r') as f:
text = f.read()
# Cercar qualsevol seqüència de 10 dígits
for match in re.finditer(r'\b\d{10}\b', text):
number = match.group()
found_total += 1
if validate_rodne_cislo(number):
found_valid.append((filename, number))
print(f"Total 10-digit sequences: {found_total}")
print(f"Valid rodné číslo (potential leaks): {len(found_valid)}")
for filename, number in found_valid:
print(f" Found in {filename}: {number}")
return len(found_valid) == 0 # auditoria passa si NO es troben números reals
# Córrer auditoria
audit_anonymization('/path/to/anonymized/documents')
Expected output per a documents correctament anonimitzats:
- Total 10-digit sequences: X (qualsevol nombre)
- Valid rodné číslo: 0 (cap fuga de números reals)
- Auditoria: PASSA
Implicacions de conformitat ÚOOÚ
Ofice for Personal Data Protection (ÚOOÚ) de Txèquia aplica GDPR i pot exigir:
- Documentació de procediments de anonimització
- Validació de que els números txecs han estat irreversiblement anonimitzats
- Testing periodic de documents anonimitzats per a fuites potencials
Organitzacions que procesan números rodné číslo han de mantenir:
- Procediments documentats de anonimització
- Registres d'auditoria de documents processats
- Evidència que validació de suma de verificació s'ha realitzat després de anonimització
Fonts: