8

我正在尝试解密 IDTECH 信用卡读卡器的加密数据。

此详细信息已使用三重 DES 和使用 DUKPT 的 CBC 密码进行加密。

加密刷卡(来自 IDTECH 信用卡读卡器):

028801001F372300%*5150********7903^PAYPASS/MASTERCARD^************
***?*;5150********7903=***************?*8871B640F379F3BD8D057A13F81454
39B28D80BE8A43F3440D85928F576065EEE1BA54CAADFF67D552C2B0CBF1A9F
34B63402B967998FC7C80487C8A6DBFD46975985D3D7E865FEEF6A48930751DC9
71FDFCBC1989294B7EF6F0D0007AA731C31F574608EB85E57751DA48970F96B0E
8BECDB94D672D746C2CC75176FA6E0C9E6FEFE0B154A0959B6299490125000000
00197F6903

可用的解密详细信息::

Key Value: F5 BF 6B E8 55 AB 92 3A DE 7E 77 40 D8 46 F9 DE
KSN: 62 99 49 01 25 00 00 00 00 1A

解密数据(结果):ASCII 格式的数据

%B5150710200107903^PAYPASS/MASTERCARD^090910140000631??;5150710200
107903=090910140000631?0

任何安全算法或 JAVA 专家都可以指导我如何继续解密这些数据。

我正在寻找java中的解决方案。

以上信息是否足以解密数据或需要更多信息?

4

1 回答 1

6

您不太可能解密它,因为您还需要知道制造商嵌入到设备中的基本派生密钥 (BDK) 和/或初始 PIN 加密密钥 (IPEK)。您还需要知道他们如何从 BDK 生成 KSN。他们不太可能与您共享所有这些信息,因为这会使加密变得无用。

来源:http ://en.wikipedia.org/wiki/Derived_unique_key_per_transaction

这导致了下一个问题。为什么解密这些信息?返回数据的纯文本部分包含卡号的(PCI 兼容)段(前四位,后四位)。如果您能够解密完整的卡号,那么 PCI 合规性的全部重担将落在您的肩上,从而使使用 3rd 方设备变得毫无用处。

于 2013-04-23T12:51:35.920 回答