我一直在尝试设计一种简单的存档格式,它允许我将一堆加密文件捆绑在一起。
我目前的想法是在消息中嵌入不是加密密钥,而是加密密钥的截断散列。
我假设发送方和接收方都已经获得了对称加密密钥,但我需要一种通信方法来识别密钥,我一直在考虑简单地发送密钥本身的截断安全哈希,但我是不确定这是否真的会损害密码的完整性。
具体来说,我正在使用 SHA-1 和 AES-128,我担心这种方法会有效地将安全性降低到强制所有 128 位密钥产生 SHA-1 冲突的问题,而且这对这样做,因为它完全使 AES 密码变得无用。
虽然我截断了 SHA-1 散列,但我仍然泄漏了 SHA-1 散列的 16 个字节,该散列对应于所使用的对称密钥。所以那里有歧义,但可能还不够。
我真的很希望能够识别用于以安全方式加密消息的加密密钥,而不必引入某种 ID 序列或外部簿记,但也许我正在尝试解决这里不可能的问题。
非常感谢您对此事的任何意见。