有人可以用一个简单的例子来说明选定的密文攻击如何工作吗?

评论

您好,欢迎来到crypto.se。我也在聊天中向您发送了一条消息,以防万一,如果您在我们这里注册了帐户,也可以在此处获取回复通知和声誉。

#1 楼

在选择密文攻击中,假定攻击者可以诱骗知道秘密密钥的某人解密任意消息块并告诉他结果。攻击者可以选择一些任意的废话作为“加密的消息”,并要求查看其通常解密的(通常)不同的废话,并且他可以多次执行此操作。

显然已经具有此功能允许攻击者读取被拦截的消息,因为他可以要求将其解密。但是在这次攻击中,他的目标远没有那个雄心勃勃:他想推断出秘密密钥是什么,以便他可以自己加密消息,并且在他获得为他解密的内容消失之后也继续解密。

如果攻击者有很大的机会在解密“相对较少”的块之后能够推断出密钥并且自己不做太多工作以至于他也可以蛮力地破解它,那么攻击就成功了。 br />
“选择密文攻击”一词本身并没有说明攻击者如何选择他要求解密的废话块,或者为了从密钥库中恢复密钥而进行了何种计算。作为一个具体示例,假定将军A使用带有未知密钥的Vigenère密码向将军B发送消息。敌人可以某种方式拦截消息,并用自己选择的一些完全随机的字母代替它,例如NLLCJOVFXXHMLY。将军B对此进行解密,并得到无用的AKRUWNBXKWNEYX。感到困惑,并且不认为这种废话值得保密,他拿起一个不安全的电话,打给将军A:“您对AKRUWNBXKWNEYX到底是什么意思?他们是否在不告诉我的情况下更改了钥匙?”但是敌人正在窃听线路,并且现在知道NLLCJOVFXXHMLY解密为AKRUWNBXKWNEYX。然后,他可以减去两组废话,得到MATHMATHMATHMA,现在他知道密钥了。

(在此示例中,解密一条消息就足以使攻击者了解密钥。通常,攻击者还考虑了攻击者需要查询多条消息的攻击,也许使用对某条消息的响应来构造下一条消息)。

评论


$ \ begingroup $
我有点困惑,因为我读了一个定义,其中不允许对手在“挑战密文”上查询oracle!但是你是说他是?
$ \ endgroup $
– mixkat
2011年11月19日,0:16

$ \ begingroup $
在这种变体中,攻击者对密钥本身不感兴趣,而只是对解密拦截的消息(=“挑战密文”)感兴趣,而没有让受害者知道该消息。然后,他被允许向甲骨文询问除挑战之外的任何事情,并且如果对此的回应将使他能够解密挑战,他将获胜。一种方法是派生密钥,但是可以想象有些快捷方式并不能完全了解密钥。
$ \ endgroup $
–亨宁·马克霍尔姆
2011年11月19日,0:23

$ \ begingroup $
另外...攻击是否依赖于将军B将通过非安全电话呼叫并要求提供密钥的事实?换句话说,如果双方都不使用非安全线路,仍可以获取密钥(并解密消息)吗?
$ \ endgroup $
– mixkat
2011年11月19日,0:25

$ \ begingroup $
重要的事实是,攻击者以某种方式了解其测试消息解密的内容。它不需要像在不安全的线路上通话那样“明显有风险”,在更现代的环境中,我们可能会想到一个协议,其中加密的消息包含一个随机数,收件人以后将回显而不加密。 ,或其中加密邮件包含收件人应代表发件人发布的数据的设置。
$ \ endgroup $
– hmakholm留在Monica上
2011年11月19日,0:38

$ \ begingroup $
选择密文攻击的目标不一定是找到秘密(解密)密钥。仅仅是通过使用可以在攻击者可能设计的任何其他密文(不等同于挑战)上查询的解密预言,来了解某些“挑战”密文中有关加密消息的内容。
$ \ endgroup $
–克里斯·佩克特(Chris Peikert)
2014年10月11日14:57

#2 楼

我也称为选择密文攻击的另一种变体(由Henning解释的变体除外)是,攻击者不会获得与其选择的密文相对应的整个明文,而只会得到“有效”或“无效”之类的结果”,即他有一个验证预言,带有一些有用的“有效”定义。目的是解密以前捕获的某些消息。

使用该消息的一个示例是XML加密的最新弱点,用于Web服务时。


为了安全起见,我们通常有一些攻击模型,该模型精确地指定了攻击者可以做什么,以及它的目标是什么。一个示例是IND-CCA / IND-CCA2,攻击者可以使用加密预言和解密预言,然后提交两个纯文本(之前可能没有加密过),将密文返回给其中一个,然后尝试猜猜是哪一个。在自适应变体IND-CCA2中,攻击者在获得质询后还被允许使用更多解密oracle调用(质询密文除外),在非自适应情况下,仅允许更多加密。

(总的来说,在选择密文攻击的情况下,我们希望我们的算法/协议也很安全。)

评论


$ \ begingroup $
您不会将其与CPA混淆吗?我以为,在CCA攻击中,对手提交了2个密文并得到其中一个的解密!另外,IND属性到底是什么?我知道它代表不可区分性,但看不到它是如何关联的!对手是否发送了2条消息并试图将它们区别开来,还是...?
$ \ endgroup $
– mixkat
2011年11月19日14:40

$ \ begingroup $
在选择明文攻击中,攻击者选择了明文并查看了其加密。在选择密文攻击中,攻击者只能选择密文,并且可以看到它们的解密(当一个人拥有解密预言时),或者解密得很少(对于确认预言)。
$ \ endgroup $
–PaŭloEbermann
2011年11月19日的15:00

$ \ begingroup $
好!如果不允许攻击者在“被嗅探”的密文上查询oracle,那么攻击者如何才能真正获得纯文本?
$ \ endgroup $
– mixkat
2011年11月19日15:06

$ \ begingroup $
我是从Wikipedia获得此描述的。但是,众所周知,所有的IND属性(无法区分)就像“攻击者选择两个明文并看到其中一个的密文,然后必须猜测哪个明文”。 (这实际上与一个很常见的情况相关,在这种情况下,鲍勃确实发送了“是”或“否”的信息已经缩小了范围。)它们只是在攻击者必须执行此操作方面有所不同,例如仅密文攻击,选择明文攻击,选择密文攻击。
$ \ endgroup $
–PaŭloEbermann
2011年11月19日15:06

$ \ begingroup $
是的,我也得到了!我只是看不到它在选择的密文攻击场景中如何工作!我的意思是..我的看法是,最终归结为猜测!
$ \ endgroup $
– mixkat
2011年11月19日15:11