Romanian Autoritatea Națională de Supraveghere a Prelucrării Datelor cu Caracter Personal (ANSPDCP) опублікувала технічну оцінку 2024 року з примітним висновком: 78% інструментів PII, розгорнутих у румунських аутсорсингових операціях, не виявляють Cod Numeric Personal (CNP) з належною валідацією контрольної суми.
Структура CNP: чому це дані особливої категорії
Формат CNP: S RRMMDD JJ OOO C (13 цифр)
- S (1 цифра): Стать та сторіччя
- 1 = чоловіча, 1900–1999
- 2 = жіноча, 1900–1999
- 5 = чоловіча, 2000+
- 6 = жіноча, 2000+
- 7 = чоловік-іноземець
- 8 = жінка-іноземець
- RR: Рік народження (2 цифри)
- MM: Місяць народження
- DD: День народження
- JJ: Код повіту народження (01–46, 51–52 для Бухаресту, 99 для іноземних)
- OOO: Порядковий номер
- C: Контрольна цифра (зважена сума)
CNP кодує стать та дату народження — роблячи його даними, що «розкривають» характеристики за статтею 9 GDPR.
Технічна реалізація виявлення CNP
# Контрольна цифра CNP — алгоритм ANSPDCP
WEIGHTS = [2, 7, 9, 1, 4, 6, 3, 5, 8, 2, 7, 9]
def validate_cnp(cnp):
if not cnp.isdigit() or len(cnp) != 13:
return False
total = sum(int(cnp[i]) * WEIGHTS[i] for i in range(12))
remainder = total % 11
check = 1 if remainder == 10 else remainder
return int(cnp[12]) == check
Джерела: