我目前正在从事一个 voip 项目,并且对 AES-CBC 模式的实现有疑问。我知道对于基于文本消息通信的即时消息,重要的是为每条消息生成一个 IV,以避免在通信过程中第一个 block 是冗余的情况下可能猜测第一个 block 。
但是对音频数据做同样的事情有用吗?由于音频数据比明文复杂得多,我想知道为每个音频 block 生成一个 IV 是否明智(这意味着每秒有很多 IV,超过 40 个),或者这只会减慢一切一无所有?还是只在对话开始时生成一个 IV 就足够了?
提前致谢,
诺利安
最佳答案
您不需要每次都生成新的 IV。
例如,在 SSH 和 TLS 中,只有一个 IV 用于整个数据 session ,并且只有在几 GB 数据之后才需要重新加密。
关于音频、AES CBC 和 IV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3535481/