La chiave unica derivata per transazione (DUKPT) è uno schema di gestione delle chiavi in cui per ogni transazione viene utilizzata una chiave univoca derivata da una chiave fissa. Pertanto, se una chiave derivata viene compromessa, i dati delle transazioni future e passate sono ancora protetti poiché le chiavi successive o precedenti non possono essere determinate facilmente. DUKPT è specificato in ANSI X9.24 parte 1
L'aspetto chiave di DUKPT è che per ogni transazione originata dal dispositivo PIN, la chiave per la crittografia deve essere unica. La chiave non deve avere alcuna relazione con le chiavi utilizzate in passato o le chiavi che potrebbero essere utilizzate per transazioni future. L'algoritmo di crittografia che deve essere utilizzato è TDES.
IPEK è derivato da Base Derivation Key (BDK). Gli input per creare IPEK sono l'ID dispositivo PIN e l'ID set di chiavi. L'ID del set di chiavi identifica univocamente il BDK. Quindi puoi vedere che, con un BDK, puoi avere più IPEK. Un IPEK per ogni dispositivo con ID univoco. Il BDK non deve essere noto al dispositivo PIN. Il BDK è una chiave super segreta che deve essere nota al gateway con cui tutti i dispositivi PIN comunicano. Il gateway deve conservare il BDK in modo sicuro in un dispositivo HSM. Il BDK non può essere condiviso tra i dispositivi PIN. Periodo. Così arriva l'IPEK da salvare.
Una volta che il terminale è stato inizializzato con IPEK, deve compilare i 21 registri Future Key richiamando un processo di trasformazione non reversibile. Gli input a questo sarebbero IPEK e un valore che è funzione del numero di registro. Quindi l'IPEK viene scartato. Ora il terminale ha 21 Future Keys memorizzati in 21 registri. Ora il dispositivo PIN può comunicare con il gateway, crittografare con la chiave generata insieme ai metadati che includono ID set di chiavi e ID dispositivo. Con questo metadati e il BDK, il gateway deve anche derivare la chiave per la decrittazione.