Why is DUKPT encryption preferred over RSA for encrypting card data on POS terminals?

249 Views Asked by At

I'm currently working on a project involving encryption of card data on POS terminals, and I've come across two popular encryption algorithms: DUKPT (Derived Unique Key Per Transaction) and RSA (Rivest-Shamir-Adleman). I'm wondering why DUKPT is commonly preferred over RSA for this specific use case.

Thank you in advance for your valuable insights!

1

There are 1 best solutions below

2
On

This might not come as a good question for SO as the response you are seeking might be opinion based and is not really programming-related.

The answer is in this case almost the same as for any comparison between symmetric and asymmetric cryptography. In case of your question, DUKPT is a key management scheme aimed at providing unique symmetric key for each particular communication for multiple clients communicating to a central server. It is based on a pre-shared secret where each individual client has a different initial key and compromise of this key does not affect security of other clients, while the server can use just one key to derive any of the transaction keys of any of the clients. Because it is using symmetric cryptographic algorithm, the calculations are much lighter than private key exponent operations in case of RSA. The RSA algorithm by itself does not describe how to establish session keys or anything of a kind - it's just a method to provide confidentiality for the message. Its properties can be used i.e. with Diffie-Hellman protocol to exchange keys and it may provide forward secrecy that is not achievable with DUKPT, but has larger computational footprint during decryption which may become a bottleneck if it is required to do at larger scale.

The DUKPT requires sharing those initial secrets but is far more effective for implementations with higher number of concurrent operations.