1. 如果加密算法是确定性的(相同的明文产生相同的密文),那么它对于选择明文攻击是不安全的

2. 随机化加密,每次对相同的密文加密,会产生不同的结果

AES加密模式

ecb:明文分块计算,块与块之间没有影响,可以并发加密。但是可能暴露明文的模式

cbc:每个明文分块都与上一个密文分块异或,然后再行加密。无法并发加密,错误传递,需要一个随机的初始化向量

ctr:约定一个从随机值k开始的计数器,然后用密钥对计数器加密,接着同明文XOR得到密文。类似于流密码,无需填充

唯密文攻击:只知道密文

已知明文攻击:得到了一些特定的明文与对应的密文

选择明文攻击:攻击者可以任意选择一些明文,并得到对应的密文

选择密文攻击:攻击者可以任意的制造或者选择一些密文,并得到对应的明文

选择文本攻击:攻击者可以制造任意的明文/密文,并得到对应的密文/明文,也就是选择明文攻击+选择密文攻击

这些攻击手段,从上往下,依次变强