块密码加密模式与攻击防范
1. ECB 模式:简单但不安全
1.1 ECB 模式代码示例
在 Python 中使用 AES 的 ECB 模式进行加密的代码如下:
# set plaintext block p to the all-zero string
p = '\x00'*BLOCKLEN*2
# encrypt plaintext p to ciphertext c
c = aes_encrypt.update(p) + aes_encrypt.finalize()
print "enc(%s) = %s" % (blocks(p), blocks(c))
运行脚本后,可能得到如下密文块:
$ ./aes_ecb.py
k = 50a0ebeff8001250e87d31d72a86e46d
enc(00000000000000000000000000000000 00000000000000000000000000000000) =
5eb4b7af094ef7aca472bbd3cd72f1ed 5eb4b7af094ef7aca472bbd3cd72f1ed
1.2 ECB 模式的问题
- 语义安全性问题 :当使用 ECB 模式时,相同的密文块会向攻击者暴露相同的明文块,无论是在单个密文内还是不同密文之间。这表明 ECB 模式的块密码在语义上是不安全的。
超级会员免费看
订阅专栏 解锁全文
967

被折叠的 条评论
为什么被折叠?



