Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Secure Com SCP02 Session : What is the role of "Key Diversification data" returned in response of Initialized Update command

In response field of Initialized Update command, Key Diversification data (which contains manufacture ID and last two bytes of security domain AID) is returned to Off Card entity.

I would like to know for what purpose this data is used ?

I read somewhere that, this key diversification data is used in derivation of base keys at Off Card end's. I don't know this is right or wrong.

If it is right then how can the base keys are derived at off card's end using this diversification data ??

Please provide your suggestion!!

like image 712
Bhanu Avatar asked Feb 24 '14 08:02

Bhanu


1 Answers

Key Diversification Data is used to obtain keys for that card applying an algorithm to those bytes (which should be unique to the card) using a Master Key.

There are two widely used key derivation algorithms:

  • Visa2
  • EMV-CPS

They are very similar: they get a few of the 10-bytes of the Key Diversification Data from the response to INITIALIZE UPDATE, append a few fixed bytes and then encrypt them applying 3DES using the Master Key as encryption key.

The "fixed bytes" are different, so we get the three SCP02 keys we need:

  • 'F001' gives us the ENC key
  • 'F002' the MAC key
  • 'F003' the DEK key

Hope this helps! It is not described in the GlobalPlatform spec, so I takes a while to learn it.

like image 161
mictter Avatar answered Oct 20 '22 04:10

mictter