【发布时间】:2012-04-24 06:24:51
【问题描述】:
我正在使用 C 语言进行编程。我在组件中获得了 TMK(终端主密钥),例如 TMK1 = 32byte hex value TMK2 = 32 byte hex value 。 我需要使用这 2 个 Key 值计算 Key 检查值。 我知道 DES 算法用于实现这一点,但我不知道完整的过程。 请提供一个示例程序来执行此操作。
我正在尝试:
1.取KV:XXXX XXXX XXXX XXXX YYYY YYYY YYYY YYYY
2.将其分为左右部分,每个部分为64位长: 左=XXXX XXXX XXXX XXXX 右=YYYY YYYY YYYY YYYY
3.用零初始化一个 64 位缓冲区。调用这个缓冲区结果。
4.DES用Left加密Result。
5.DES 用 Right 解密结果。
6.DES用左加密结果
平台:Linux、C语言
【问题讨论】:
-
让我想起了一些旧的 ANSI 银行标准,X9.9 或类似的东西。
-
你说你不知道使用的算法,但你告诉我们的更少。我们怎么可能给出有用的答案?
-
我主要关心的是如何划分 TMK 内容并将其用于如上所述的连续 3DES 算法..
-
@john 你有一个 16 字节的三重 DES 密钥。那有什么问题呢?您提到的步骤是正确的。
-
假设您使用 3DES,那么它就像:Calculating 3DES Key Check Value (KCV)
标签: c encryption cryptography openssl key-management