anonym.legal
Назад до блогуGDPR та відповідність

ANSPDCP та румунський GDPR: чому виявлення CNP з...

ANSPDCP виявила, що 78% інструментів пропускають румунський CNP з належною валідацією.

April 21, 20267 хв читання
Romania ANSPDCPCNP checksum validationRomanian GDPRBPO complianceRomanian identifiers

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

Джерела:

Готові захистити свої дані?

Почніть анонімізувати PII з 285+ типами сутностей на 48 мовах.