INFO
This English text is a translation of the original German document, Pseudonymisierung, which was written to coordinate with our Data Protection Officer. It is provided for convenience; in case of discrepancies, the German version takes precedence.
Pseudonymization
Requirements
- The ID exchange process takes place via a trusted third party (TCA).
- Re-identification by the trusted third party must be possible.
- sIDs must remain consistent across repeated transmissions.
Transmission Process
In a transmission process, the CDA requests the assignment of original IDs (oIDs) to transport IDs ( tIDs) from the TCA. Before the patient bundle is sent to the research domain agent (RDA), the oIDs are replaced by tIDs.
After receiving the transport-pseudonymized patient bundle, the RDA requests the mapping of tIDs to stable pseudonyms (sIDs) and replaces the tIDs with sIDs.
Generation of Transport and Pseudonymized IDs
sID
The TCA uses gPAS to generate and store pseudonyms. Two pseudonyms are generated for each patient:
The keys used are the patient’s oID and the concatenation of the fixed string Salt and the oID. Note that Salt is a literal string, not a variable or actual salt.
The first pseudonym replaces the oID of the patient resource—i.e., it is a direct mapping to the patient’s sID and can be used for re-identification. The second pseudonym is used as a salt for generating pseudonyms for the remaining resources:
Security Note
The combination of alphabet size
tID
For each oID, a random number is generated to serve as the tID.
The mapping
is temporarily stored in a key-value store, so tIDs may vary between transmissions.
Example
Assume we have a patient with two resources:
Patient:
oID = 1,
Ressourcen:
[
Encounter: oID = 2,
Medication: oID = 3
]
The CDA sends the IDs to be pseudonymized to the TCA:
Transport Mapping: Replacing oIDs with tIDs
Once the CDA sends the oIDs to be pseudonymized to the TCA, temporary transport IDs (tIDs) are generated. These tIDs replace the original oIDs before the data is forwarded to the RDA.
Example Transport Mapping:
After this mapping, the bundle with transport-pseudonymized IDs is forwarded to the RDA:
transport-Patient:
tID = 84613221,
Ressourcen:
[
Encounter: tID = 34186571,
Medication: tID = 97354168
]
Research Mapping
After the RDA has received the transport-pseudonymized bundle, it requests the mapping of tIDs to stable pseudonyms (sIDs) from the TCA. These sIDs are intended for research purposes and remain constant across repeated transmissions.
Example Research Mapping:
The RDA then replaces the tIDs with the sIDs:
research-Patient:
<sID = d7dsjdg4,
Ressourcen: [
Encounter: sID = SHA256(5kf83442),
Medication: sID = SHA256(5kf83443)
]
Security Aspects
Brute-Forcing the Salt
Assume an attacker knows the oIDs and sIDs and attempts to establish a relationship between them. To do so, they try to brute-force the salt.
The time
where
With current hardware,
Alphabet Size | Length | Possible Combinations | Time at |
---|---|---|---|