java - 当消息很短且攻击者已知时,是否可以找到对称 key ?

标签 java security

我需要加密请求中的多个参数(使用 Java、AES(cbc)、128 位 key ):

String toencrypt = "name+birthdate+appid+userid"

我必须假设攻击者可以猜测所有值。这对猜测/查找对称 key 有什么影响?即使攻击者已知已加密的内容,对称 key 仍然安全吗?粗略估计的“因素”是什么,这使得找到 key 变得更容易? (例如,与没有已知内容的情况相比,找到 key 的速度可能快 1000...)

(我的问题只是关于攻击者可能知道要加密的内容这一事实的影响。由于长度限制,我不可能包含任何“随机”字符或盐等)。

还有另一个相关问题。如果我为 AES 函数的“初始化 vector ”选择与初始化 key 相同的数据,会对安全产生什么影响? 这对安全有影响吗?

非常感谢! 马库斯

最佳答案

这称为 known-plaintext attack 。所有像样的加密货币(包括 AES)都不容易受到它的攻击。<​​/p>

根据定义,只有加密 key 是 secret 的。假设初始 vector 、 key 导出算法等是已知的。因此,如果您对 IV 和 key 使用相同的数据,则可能会削弱您的安全性。您可以通过加密的强哈希运行数据,以便从已知的 IV 到 key 需要首先反转哈希。但最好不要将任何与 key 生成相关的数据用于其他任何用途。

关于java - 当消息很短且攻击者已知时,是否可以找到对称 key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1475991/

相关文章:

java - 无法在 Jenkins 客户端计算机中运行批处理脚本(.bat 文件)

java - Grails oauth 插件 : unable to create a new calendar event in google

java - 如何使用 Java 执行系统命令 (linux/bsd)

java - 如何对 Ebean 中的相关实体进行排序?

javascript - 使用 innerHTML,安全问题是什么?

sql-server - Azure SQL 数据库架构的访问控制权限

java - jstack 无法在服务器上运行

Asp.net Security : IIdentity. IsAuthenticated 默认实现

algorithm - 即使在 super 计算机中也能保证密码安全的密码哈希算法?

c# - 在 .NET 中加密短字符串的最佳方法是什么?