将DES 96位密钥转换为64位

时间:2015-02-28 10:48:59

标签: encryption des

如何将96位密钥转换为64位密钥?我有一个 96位长的DES密钥(即745347651281)。我想将其转换为64位,我将用它来解密DES密文。

更新

  1. 有一个由RSA加密的“原始密钥”
  2. “原始密钥”使用RSA解密给我们(即745347651281)
  3. 这个(即745347651281)现在应该用于解密DES 文件。
  4. 注意:“原始密钥”是十六进制格式,在进行RSA解密之前我转换为整数(基数为16)。

1 个答案:

答案 0 :(得分:1)

您显示的密钥大小为48位,而不是96位大小 - 如果它被认为是指定的十六进制。没有奇偶校验的DES密钥的大小为56位。这意味着您必须创建缺少的奇偶校验位。 DES的平价描述如下:

  

KEY的每个8位字节中的一位可用于密钥生成,分发和存储中的错误检测。第8,16,......,64位用于确保每个字节都是奇校验。

请注意,这些位从左侧开始编号为1,这意味着每个字节的最小有效位用于奇偶校验。因此,您必须分配您在字节上给出的位,然后通过可能翻转最低有效位(使用XOR为1)来调整每个字节的奇偶校验。

通常,图书馆都支持这种操作。在Java中,您可以通过使用SecretKeyFactory生成DES密钥来实现此目的。