我有很多小秘密,我想在数据库中加密存储.数据库客户端将具有密钥,并且数据库服务器将不处理加密和解密.我的所有秘密都是16字节或更少,这意味着使用AES时只有一个块.我使用常量IV(和密钥)使加密确定性,我做确定性加密的原因是能够使用密文轻松查询数据库,并确保相同的秘密不会存储两次(通过使列UNIQUE ).只要密钥是秘密的,我可以看到这样做应该没有问题.但我想确定:我是对还是错?如果我错了,可以做些什么攻击?
BTW:哈希在这里很无用,因为可能的明文数量相对较少.使用哈希,获得原始明文是微不足道的.