首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分组密码和侧信道攻击中的流切片操作

分组密码和侧信道攻击中的流切片操作
EN

Cryptography用户
提问于 2020-10-01 20:22:13
回答 1查看 101关注 0票数 1

我的对称块密码工作起来有点像流密码,但它在128-bit块上工作。它在每一轮中生成一个128-bit块。在回合结束时,我要把它切成两个块,然后把它们相加在一起。我的意思是,在每一轮之后,我们取第一个a比特和第二个b比特的128-bit块,然后计算b+aa等于0 to 127,它是从密钥调度中计算出来的,应该与随机不可区分。但是这种切片可以通过侧通道攻击来攻击。攻击者可以在每一轮中找到a_{0}a_{1}a_{2}等。

但我的密码就像流密码。这意味着它按步骤一点一点地计算,然后将它们合并成一个块。通常,我用这个来制作128-bit块,用于范围0-127中的i

ct=0
ct=ct+bitv

bitv是位值01,它来自密码函数。我们只是在这里做一些二进制字符串/块。我的想法是在结束时不要分割块,而是首先计算第一个a位,就像i在range 0-a中的字符串一样,其中a与密钥调度中的随机数有些区别:

a=a+btiv

然后将范围i中的a+1-127字符串的其余部分计算为:

ct = ct + bitv + a

无论如何,我们仍然需要做两个循环" for“。第一是i在范围0-a和第二在范围a+1-127在圆内。有没有可能通过侧通道攻击来攻击它?攻击者能检测到第一个循环何时结束,第二个循环何时启动,然后找到a吗?

EN

回答 1

Cryptography用户

发布于 2020-10-02 02:42:35

关键的时间表应该被视为秘密。你的侧频道显示了关键的时间表。即使您的密钥调度与随机没有区别,攻击者通常仍然可以导出密钥。由于您的密钥调度与加密算法相同,因此与您的加密算法一样,它本身就容易受到相同的攻击。即使不是,您的密钥调度可能仍然不是一个安全的散列算法,因此甚至可以获得原始密钥。

大多数(所有)操作模式都是中断的,即使只显示了关键的时间表,但没有显示关键。有些人(稍微)比其他人更不坏。

任何依赖于数据的内存访问都启用了侧通道。即使内存访问的总数是恒定的,也不能假定这提供了安全性。如果我对位1,...,a执行一些计算,并且对位a+1,...,128执行另一个(可能是相同的)计算,我刚刚执行了一种不同的内存访问模式,并显示了a的值(在实现中这几乎是不可能修复的)。不要担心for循环需要一个if语句来告诉何时中断(编译器隐式地添加了它)。这意味着您已经允许缓存定时、分支预测和分支定时攻击。

对各种侧通道

的影响

  • 在不缓存内存的硬件中,缓存定时是可修复的。内存缓存存在于所有主要的体系结构中,不能绕过或禁用内存缓存。
  • 分支预测(也称为投机执行)只存在于试图预测分支的硬件中。这种行为存在于所有主要的体系结构中,不能被绕过。
  • 然而,分支定时攻击与硬件无关,并且会对每个系统产生相同的影响.因此,这些都是最糟糕的方面--渠道。

所有的侧通道攻击,即使是硬件依赖的,都被认为对安全的加密实现有害.

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

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

复制
相关文章

相似问题

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