2015-05-27 223 views
2

考虑这种情况:加密AES密钥?

Key1 = random key 
Key2 = random key 
CombinedKey = Key1.encrypt (Key2) 

Input = "test" 
Step1 = CombinedKey.encrypt (Input) 
Step2 = key2.decrypt (step1) 
Result = key1.decrypt (step2) 

是结果== “测试” 如果加密类型是AES?或者对于任何其他加密算法?

回答

2

号AES是不是一个组。为了简单起见,我们只是这样说:AES加密不可交换。换句话说,由于AES不是一个组,因此不存在密钥X,使用密钥Y和密钥Z进行加密,密钥X可以一步解密。没有捷径。

如果你使用CombinedKey加密Input,那么只有CombinedKey将解密它。使用key2来解密Step1将导致只有垃圾,而不是中间结果。

+0

这很伤心,但你的答案是完美的。 –

+0

:)这实际上是一件好事,虽然它在您的使用情况下可能不方便。 :) –