我想使用共享密码/密钥来保护基于 TCP 的程序的通信。无需处理块大小、填充等的最简单方法是直接使用流密码。这样一来,明文和加密数据之间的数据量不会发生变化,而且修改也很简单。
仅使用流密码意味着没有身份验证,我一直认为/听说没有身份验证的加密不够安全,不应使用。
如果必须向流密码添加身份验证,我们将失去流密码添加的简单性,因为我们必须添加 HMAC 或使用经过身份验证的加密方法(如NaCl 中的crypto_secretbox),有最小消息长度,我们必须处理填充, ...
你会推荐什么?在某些特定情况下仅使用流密码而不进行身份验证是否安全?