【问题标题】:calculating Key Check value using a Key Value使用 Key Value 计算 Key Check 值
【发布时间】: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


【解决方案1】:

我现在不能给你一个代码,但我建议你把 KV 当作一个字符串(或数组或字符),这样你就可以很容易地将它分成两部分。类似的东西。

【讨论】:

  • KV 以十六进制值给出...我必须将其转换为 ASCII 然后使用还是应该按原样使用它们。
  • @john:不要将其转换为 ASCII。它是二进制数据,所以直接使用它。
猜你喜欢
  • 2015-11-22
  • 2017-02-01
  • 1970-01-01
  • 2013-03-23
  • 1970-01-01
  • 1970-01-01
  • 2015-10-12
  • 1970-01-01
  • 2015-05-11
相关资源
最近更新 更多