【发布时间】:2020-02-16 19:24:00
【问题描述】:
我正在尝试在 .Net 4.5 中验证支付卡。 EMV Book 2 Annex B1.1 说: DES3(K)[X] = DES(K L )[DES -1 (K R )[DES(K L )[X]]] 或者,X 的 3DES 表示:
块引用
- 用 16 字节密钥的左半部分加密 X
- 使用 16 字节密钥的右半部分解密该密文
- 用密钥的左半部分加密假定的明文。
你可以称之为 enc-dec-enc。 谁能向我保证.Net 的 TripleDESCryptoServiceProvider 是这样做的,而不是 enc-enc-enc? ms docs page 没说。
【问题讨论】:
-
TDES 确实对应于 enc-dec-enc 的情况,here,
TripleDESCryptoServiceProvider将相应地实现这一点。否则,这将是一个错误。通过对each子操作使用same DES key K(对应于24字节的TDES key K || K || K),可以很容易地检查实现。这样,三个子操作中的两个相互抵消,TDES 加密简化为简单的 DES 加密,即对应于DESCryptoServiceProvider的结果(对于 enc-enc-编码)。 -
换句话说,就@Topaco 所说,使用单个长度密钥您无法进行TDES。密钥至少应为双倍长度。
标签: encryption des 3des emv