我有一个看起来很怪异的问题。
我正在将大约15年前编写的程序翻译成C#。该程序的一部分是密钥生成并将其存储在文件介质中。
以下是我关注的部分。此特定方法从我们称之为Key1
的主3DES密钥生成3DES派生密钥。
此方法使用Key1
来封送Key1
,我们将其称为wrap1
。
在下一步中,它使用Key1
来包裹wrap1
我们称之为wrap2
。
wrap2
存储在媒介中,Key1
并且wrap1
丢失。
根据我的理解,在用于加密和解密之前,应该打开包装的密钥;但是我不确定我们是否可以在没有用来包装密钥的情况下解开密钥。
请注意我无法访问使用此密钥的程序部分,以查看其使用方式。
问题是否可以检索以这种方式包装的密钥?
答案 0 :(得分:1)
为什么呢?用自己包装一把钥匙是没有意义的。这就像购买脱水水:只需加水即可重建。您需要密钥key1
才能解密wrap1
- 然后您会得到什么?你回来了key1
,这就是你已经拥有的。
当然,没有密钥(并且无法猜测)的人无法解密包装的密钥。这就是密钥包装的工作原理。所以,不,仅仅wrap1
或仅wrap2
,您无法推断出key1
的价值。