6
votes

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!!

1
You may have read things somewhere, but have you read the freely available Global Platform specifications?Maarten Bodewes
Yes,i read and I am working on global platform specifications. Basically its a question of scp02 and I do not find its answer in that GP22 specification.Bhanu

1 Answers

6
votes

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.