HSM KitHSM 工具箱
中文

DUKPT 密钥派生完整教程

支付安全# DUKPT# 密钥派生# POS# ATM
最后更新: 2026年1月14日3 分钟阅读By HSM Kit Team
现在需要计算吗?
使用我们免费的在线 DUKPT 工具 工具。

DUKPT(每次交易派生唯一密钥)是一种密钥管理方案,为每笔交易生成唯一的加密密钥。本教程解释完整的派生过程。

什么是 DUKPT?

DUKPT 提供的方法可以:

  1. 从单个基础密钥派生唯一的交易密钥
  2. 确保即使一个交易密钥泄露也不会暴露其他密钥
  3. 支持数百万笔交易而不会耗尽密钥

关键组件

基础派生密钥 (BDK)

由收单方/处理机构持有的主密钥。永远不会离开安全的密钥管理系统。

初始 PIN 加密密钥 (IPEK)

从 BDK 和初始 KSN 派生。注入到 PIN 输入设备中。

密钥序列号 (KSN)

包含以下内容的唯一标识符:

  • 密钥集 ID (KSI):标识 BDK
  • 设备 ID:每个设备唯一
  • 交易计数器:每次交易递增

格式:KKKKKKKKKKTTTTTTTTTT(80 位)

  • K:密钥集 ID + 设备 ID
  • T:交易计数器(21 位)

当前交易密钥

使用 KSN 的计数器部分从 IPEK 派生。

派生过程

步骤 1:计算 IPEK

IPEK = TDES_Encrypt(BDK, 计数器归零的 KSN) 
     || TDES_Encrypt(BDK XOR C0C0..., 计数器归零的 KSN)

步骤 2:未来密钥派生

对于每笔交易:

  1. 从 IPEK(或当前密钥寄存器)开始
  2. 对于计数器中的每个置位位(从左到右):
    • 应用"黑盒"函数
    • XOR 和加密以派生中间密钥
  3. 最终结果是当前密钥

步骤 3:工作密钥派生

从当前密钥派生特定的工作密钥:

  • PIN 加密密钥 (PEK):与掩码 0x00000000000000FF00000000000000FF 进行 XOR
  • MAC 密钥:与掩码 0x000000000000FF00000000000000FF00 进行 XOR
  • 数据加密密钥:与掩码 0x0000000000FF00000000000000FF0000 进行 XOR

实际示例

给定:

  • BDK:0123456789ABCDEFFEDCBA9876543210
  • KSN:FFFF9876543210E00001

步骤 1:提取初始 KSN(计数器归零)

初始 KSN:FFFF9876543210E00000

步骤 2:计算 IPEK

IPEK:6AC292FAA1315B4D858AB3A3D7D5933A

步骤 3:为计数器 1 派生

当前密钥:042666B49184CFA368DE9628D0397BC9

步骤 4:派生 PEK

PEK:042666B49184CF5C68DE962BD0397B36

安全考虑

  1. 计数器耗尽:在 2^21(约 200 万)笔交易后,设备需要重新注入
  2. 未来密钥保密:即使当前密钥泄露,也无法派生未来密钥
  3. BDK 保护:BDK 绝不能暴露;所有安全性都依赖于它

AES DUKPT

现代实现使用 AES 而非 TDES:

  • 128/192/256 位密钥大小
  • 增强的安全性
  • 更大的计数器空间
  • 不同的派生算法(NIST SP 800-108)

自己动手试试

使用我们的 DUKPT 工具:

  • 从 BDK 和 KSN 计算 IPEK
  • 逐步派生交易密钥
  • 生成 PIN、MAC 和数据加密密钥
  • 可视化整个派生树
相关工具
DUKPT 工具