详解 DUPKT

1. DUPKT 定义

DUKPT(Derived Unique Key Per Transaction)是被ANSI定义的一套密钥管理体系和算法(ANSIx9.24)。

2. 应用场景

用于解决金融支付领域的信息安全传输中的密钥管理问题。

再金融支付领域,一般的数据传递情况是这样的:

(金融机具)POS  <--->  (收单)Acquirer <---> (卡组织)EMV <---> (发卡行)Issuer

那么在这些节点中便涉及到了密钥交互的问题,于是便有了DUPKT

3. DUPKT的流程

在DUPKT体系中的3个重要的术语

BDK(Base Derivation Key):DUKPT密钥体系的根密钥,一般是一个双倍长或三倍长的T-DES密钥;

KSN(Key Serial Number):一串80bit的(20 hexadecimal digits)序号,由59bit的IKSN(Initial Key Serial Number)和21bit的EC(Encryption Counter)组成。

PEK(PIN Encryption Key):由BDK按照DUPKT的算法离散出来的密钥

DUPKT流程:

===== BDK:: 
Derivation Key:                             0123456789ABCDEFFEDCBA9876543210
===== KSN::
Initially Loaded Key Serial Number (KSN):     FFFF9876543210E00000 -> 11111111111111111001100001110110010101000011001000010000111000000000000000000000
1) lease than 10 bytes,pading FF            -> FFFF9876543210E00000
2) set-bits :                                               -> FFFF9876543210E00000
3) 初始PEK左部分:
    0123456789ABCDEFFEDCBA9876543210  DES-enc  FFFF9876543210E0 -> 6AC292FAA1315B4D
4) 初始PEK右部分:
    C0C0C0C000000000C0C0C0C000000000 XOR 0123456789ABCDEFFEDCBA9876543210

    ->  C1E385A789ABCDEF3E1C7A5876543210
    C1E385A789ABCDEF3E1C7A5876543210 DES-enc FFFF9876543210E0 -> 858AB3A3D7D5933A

-> 
Initially Loaded PIN Entry Device Key:        6AC292FAA1315B4D 858AB3A3D7D5933A
Assumed PIN:                                 1234
Assumed Primary Account Number:             4012345678909
Formatted PIN                                 041234FFFFFFFFFF
Clear ANSI PIN Block:                         041274EDCBA9876F
MAC and Data Encryption Input (ASCII)         4012345678909D987
MAC and Data Encryption Input
(padded hex)
                                            3430313233343536.3738393039443938.3700000000000000
======================== 
KSN:       FFFF9876543210E00001 -> 
INIT PEK: 6AC292FAA1315B4D 858AB3A3D7D5933A        
          left INIT PEK    right INIT PEK
1) set bits : 
    0000000000000001 or 9876543210E00001 -> 9876543210E00001
2) right Current PEK :
    初始PEK左部分 异或 KSN -> 密文1
    858AB3A3D7D5933A XOR 9876543210E00001 -> 1DFCE791C735933B
    初始PEK左部分 DES—ECB加密 密文1 -> 密文2
    6AC292FAA1315B4D DES-enc 1DFCE791C735933B -> ED54258B07ECE8F3
    初始PEK左部分 异或 密文2 -> 当前PEK右部分
    ED54258B07ECE8F3 XOR 858AB3A3D7D5933A -> 68DE9628D0397BC9
3) left Current PEK :
    初始PEK 异或 PEK向量
    6AC292FAA1315B4D 858AB3A3D7D5933A XOR C0C0C0C000000000C0C0C0C000000000
    ->     初始PEK分量
    AA02523AA1315B4D 454A7363D7D5933A
    初始PEK分量右部分 异或 KSN -> 密文1
    454A7363D7D5933A XOR 9876543210E00001 -> DD3C2751C735933B
    初始PEK分量左部分 DES加密 密文1 -> 密文2
    AA02523AA1315B4D DES-enc DD3C2751C735933B -> 416C15D746515C99  
    初始PEK分量右部分 异或 密文2 -> 当前PEK左部分
    416C15D746515C99 XOR 454A7363D7D5933A -> 042666B49184CFA3
========
042666B49184CFA3 68DE9628D0397BC9

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值