我计划使用对称加密将文件从计算机A传输到B.密码手动输入两台计算机,永远不会在线传输。根据我的理解,IV不是保密的,而是与加密数据一起传输,每次都应该随机化一个新的块。我的问题是..为什么?我不能每次只给它一块价值0的块吗?它必须有一些存在的理由..
答案 0 :(得分:2)
IV用于加密您传输的第一个块。你用IV对第一个明文块进行异或,然后加密结果。
每条消息的唯一IV确保第一个块从一个消息更改为下一个消息,即使内容和加密密钥都相同也是如此。如果没有它,即使攻击者无法读取实际内容,消息也可能会受到流量分析的影响。一个典型的例子是一种消息格式,其中每条消息以基本相同的标题开头,但是带有" To:"字段告诉消息的来源,或者" Re:"部分讲述这个主题。
在这种情况下,随着时间的推移分析可以揭示将第一个块与流量类型,(显然)触发消息的事件等相关联的模式。基于此,攻击者可以(例如)在检测到不同类型的事件时至少有一些想法,即使不能直接解密/读取任何明文。
摘要:每条消息的唯一IV确保每个消息的加密版本在消息之间是不同的,即使/如果内容和密钥相同。