Encryption 将3DES密钥自身包裹起来

Encryption 将3DES密钥自身包裹起来,encryption,3des,Encryption,3des,我有一个连我自己都觉得奇怪的问题 我正在把一个大约15年前写的程序翻译成C。该程序的一部分是生成密钥并将其存储在文件介质中 这是我关心的部分。此特定方法从主3DES密钥生成3DES派生密钥,我们称之为Key1 此方法使用Key1包装Key1,我们称之为wrap1。 在下一步中,它使用Key1包装wrap1,我们称之为wrap2。 wrap2存储在介质中,并且Key1和wrap1丢失 根据我的理解,在用于加密和解密之前,应该先打开包装好的密钥;但是,我不确定我们是否可以在没有用来包装钥匙的情况下打

我有一个连我自己都觉得奇怪的问题

我正在把一个大约15年前写的程序翻译成C。该程序的一部分是生成密钥并将其存储在文件介质中

这是我关心的部分。此特定方法从主3DES密钥生成3DES派生密钥,我们称之为
Key1

此方法使用
Key1
包装
Key1
,我们称之为
wrap1
。 在下一步中,它使用
Key1
包装
wrap1
,我们称之为
wrap2
wrap2
存储在介质中,并且
Key1
wrap1
丢失

根据我的理解,在用于加密和解密之前,应该先打开包装好的密钥;但是,我不确定我们是否可以在没有用来包装钥匙的情况下打开钥匙

请注意,我无法访问程序中使用此键的部分,以查看如何使用此键


问题是否可以检索以这种方式包装的密钥?

为什么?用密钥本身包装密钥是没有意义的。这就像购买脱水水:只需加水进行复原。您需要密钥
key1
来解密
wrap1
——然后您会得到什么?您将返回
key1
,这是您已经拥有的


当然,没有密钥(并且猜不到)的人无法解密包装好的密钥。这就是钥匙包装的工作原理。因此,不,如果只是
wrap1
或只是
wrap2
,你无法推断
key1

的值,这正是我所想的,我需要确认我没有错。该软件太旧,可能是开发人员没有正确理解加密密钥。我想的是,他生成了一个完全随机的密钥,他们使用包装的密钥作为密钥本身。在收到申请的其他部分之前,我无法确认这一点。有趣的是,这个软件工作了15年,没有人抱怨安全漏洞!