我对该主题进行了一些研究,但找不到与我的问题相似的任何内容。所以我希望你们中的一些伟大的人可以帮助我。
我想在我的应用程序中的两个单独客户端之间的网络中使用 AES128 加密(CFB 模式)。正在交换的数据仅由特定结构的文本字符串组成,例如,第一个字节总是告诉接收者他们正在接收的消息类型,以便他们可以处理它们。使用 AES 我想确保消息的机密性,但现在出现了“完整性”的问题。
通常,您会考虑使用 MAC。但是,如果接收者能够正确解密消息,是否可以保证没有人更改过消息,也就是说,由于字符串的格式,消息可以在他的应用程序中正确使用?第三方更改(甚至 1 位)加密消息不会在解密期间导致垃圾吗?
此外,让我们假设该应用程序是一个多方点对点游戏,其中两个玩家在一个私有但 AES 加密的通道上相互通信。现在消息的发起者不公平,并故意发送欺诈性加密消息来传达消息已被随机第三方更改的印象(迫使玩家退出)。现在收件人将没有机会确定消息是否已被更改或发件人是否存在欺诈行为,对吗?那么在这种情况下,诚信没有多大用处,可以忽略不计?
这听起来像是一个奇怪的例子。但这是我最近在类似应用程序中遇到的问题,我问自己是否有解决问题的方法,或者我是否了解了 AES 加密的基本理念。