Hoppa till innehållet
AI-grafen
E· Universitetdatahantering· ca 60 min· utvecklande· verifierad 2026-09-20

Personuppgifter och anonymisering

Kunna identifiera personuppgifter i data och tillämpa pseudonymisering och dataminimering.

Förkunskaper

Intuition

Personuppgift är all information som kan kopplas till en identifierbar fysisk person — direkt eller indirekt.

TypExempel
Direkt identifierandenamn, personnummer, e-post, telefonnummer
Indirekt (kvasi-identifierare)postnummer + födelsedatum + kön, IP-adress, enhets-id
Känsliga kategorierhälsa, etnicitet, religion, politisk åsikt, sexuell läggning, biometri

Den mittersta raden är den som överraskar. Sweeney visade att postnummer, födelsedatum och kön räcker för att unikt identifiera ungefär 87 % av USA:s befolkning. Att ta bort namnet räcker alltså inte alls.

Formellt

Skillnaden som avgör vad lagen kräver:

  • Pseudonymisering: identifierare ersätts med ett id, men en nyckel finns kvar (eller åter­identifiering är möjlig). Datan är fortfarande personuppgifter och GDPR gäller fullt ut.
  • Anonymisering: återidentifiering är omöjlig även med extra information. Då gäller inte GDPR — men tröskeln är hög, och de flesta «anonymiserade» dataset är i praktiken pseudonymiserade.

Tekniker och vad de faktiskt ger:

TeknikSkyddBegränsning
Ta bort direkta identifierarelågtkvasi-identifierare kvarstår
k-anonymitetvarje rad delas av minst k andrasårbar för homogenitets- och bakgrundskunskapsattacker
l-diversitet, t-närhetvariation i känsliga attributkomplext, förstör nytta
Differentiell integritetmatematisk garanti via kalibrerat bruskostar noggrannhet; ε måste väljas och motiveras
Aggregeringhög om grupperna är storadetaljer går förlorade

Dataminimering är den starkaste och billigaste åtgärden: samla inte in det du inte behöver. En uppgift som aldrig samlats in kan inte läcka, inte missbrukas och inte behöva raderas.

För AI-system tillkommer att modellen kan memorera träningsdata. Carlini m.fl. har visat att exakta textsträngar går att extrahera ur språkmodeller. Personuppgifter i träningsdata är därför en risk även efter att datan raderats.

Kod

import re, hashlib, os

PII = {
    "personnummer": re.compile(r"\b(19|20)?\d{6}[-+]?\d{4}\b"),
    "epost": re.compile(r"[\w.+-]+@[\w-]+\.[\w.]+"),
    "telefon": re.compile(r"\b0\d{1,3}[-\s]?\d{5,8}\b"),
    "kortnummer": re.compile(r"\b(?:\d[ -]?){13,16}\b"),
}

def maskera(text: str) -> tuple[str, dict]:
    hittade = {}
    for namn, m in PII.items():
        text, n = m.subn(f"<{namn.upper()}>", text)
        if n:
            hittade[namn] = n
    return text, hittade

PEPPAR = os.environ["PSEUDONYM_PEPPER"].encode()      # hemlig, roteras inte lättvindigt
def pseudonymisera(identifierare: str) -> str:
    """Stabilt id utan att röja originalet. OBS: fortfarande personuppgift."""
    return hashlib.blake2b(identifierare.encode() + PEPPAR, digest_size=8).hexdigest()

text = "Kontakta Anna på [email protected] eller 070-1234567."
print(maskera(text))
# ('Kontakta Anna på <EPOST> eller <TELEFON>.', {'epost': 1, 'telefon': 1})
#            ↑ namnet fångas inte av regex — kräver NER eller manuell granskning

Exemplet visar begränsningen: regex fångar strukturerade identifierare men inte namn, platser eller fritext som avslöjar någon. Kombinera med NER och mänsklig granskning på ett stickprov.

Behärskning innebär

  • Identifierar direkta och indirekta personuppgifter
  • Tillämpar pseudonymisering och dataminimering
  • Förstår varför anonymisering är svårare än det låter

Logga in för att göra övningarna och bygga upp din behärskning.

Källor

Alla källor och licenser