首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分组密码加密8字节/ 64位-使用64或128位密码?

分组密码加密8字节/ 64位-使用64或128位密码?
EN

Cryptography用户
提问于 2014-11-16 11:03:58
回答 1查看 3.3K关注 0票数 3

问题是:我有一个传输流,它要求我在发射机和接收器之间加密。数据大小最多为8个字节,因此我似乎只能使用欧洲央行,因为我只能使用一个块--如果数据少的话,最多只能使用8字节,而我打算使用随机数据(接收方可以从解密的数据中计算出正确的长度)。

我一直在寻找64位密码,并想出了最流行的: DES,3 DES,TEA,XTEA,XXTEA,Blowfish。我已经打折了DES、3 DES和Blowfish,因为它们的代码大小(没有足够的空间来实现它,以及对我们正在使用的嵌入式平台上的加密/解密速度的担忧)

我不想喝茶,因为从我所读到的情况看,它似乎不安全。

还有比TEA更安全的64位密码吗,但不需要大量的代码空间和大量的常量数据,就像Blowfish那样?

可以使用128位密码并将结果“修剪”到64位吗?

EN

回答 1

Cryptography用户

发布于 2015-09-08 23:22:22

如果满足以下所有条件,您可以安全地使用欧洲央行:

  • 您的消息可以在一个固定大小的表单中进行毫不含糊的编码,该格式等于密码的块大小。例如,您的消息都具有相同的大小,它们都小于块大小,或者它们都小于块大小,并且它们从来没有拖尾空字节。
  • 您只需要消息的机密性,而不是真实性或完整性(也就是说,您不需要防止攻击者修改正在传输的消息,可能在不知道其内容的情况下)。
  • 你不介意观察者能判断你是否发送了两次相同的信息。

即使你不认为你需要真实性或完整性检查,仔细考虑整个系统的设计。如果对手提交假消息(要么是用整块布制作的,要么是对合法消息的修改),会发生什么情况?如果对手在观察到之前的消息后重新提交了它的效果,会发生什么?

如果消息都是由同一个实体产生和接收的,并且发送方和接收方可以就某种消息标识符(例如,每个消息递增的数字)达成一致,那么就会有一个更好的模式:计数器模式(CTR)。CTR有几个优点:

  • 通过将消息号混合到加密中,内容相同的消息具有不同的、不可链接的密文。
  • CTR将块密码转换为流密码,因此您可以发送与消息长度匹配的确切字节数(位数,甚至字节数)。
  • CTR只需要双方加密,而不需要解密,这可以使代码大小保持不变。

只有当发送方和接收方就每条消息的初始计数器值达成一致时,CTR才能工作。通常,初始计数器值是作为密文的前缀发送的,但是如果您已经有了消息的唯一标识符,则可以重新使用它。

CTR对所有消息的每个块都需要不同的计数器值。对于短于块长度的邮件,此要求简化为不对不同邮件重用计数器值。

请注意,CTR无助于消息完整性。它甚至使得在没有解密的情况下对密文进行可预测的更改变得非常简单(在密文中翻转一点,在明文中翻转相应的位)。

票数 2
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/20267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档