如何通过CBC或ECB模式检测消息是否是加密的?
我在AES 128 CBC或ECB中随机加密了一个函数,并在明文和密码文本之间进行加密,但是接缝与密码模式<代码>E 213无关。
如何检测分组密码模式
提前谢谢你
发布于 2013-12-21 13:35:10
问题说明中给出了大致的答案:
请记住,欧洲央行的问题在于它是无状态的和确定性的;相同的16字节明文块总是产生相同的16字节密码文本。
因此,假设某些重复的明文块发生在相同的密文块偏移量上,我们就可以继续寻找不同长度的重复密文块。
发布于 2013-07-03 12:40:25
我正在做同样的问题集,并且刚刚完成了这个问题(使用clojure)。
我的第一个提示是,如果您使用的是支持一流函数/lambda的语言,那么您需要做什么就更清楚了。
不管怎么说,让我们把这个问题分解一下:
首先,只需编写一个函数来验证黑盒是否正在向欧洲央行加密数据。你会怎么做?
它看起来可能类似于(下面的伪代码)
function boolean isEcbBlackbox(func f)
{ //what input can I use to determine this?
result = f("chosen input")
if(result ...) {//what property of result should I look for?
true
} else {
false
}
}
记住,欧洲央行的关键弱点是相同的明文块将被加密成相同的密文块。
编辑:这些挑战现在是公开的,所以我将链接到我的解决方案:
发布于 2018-02-01 19:50:09
基于密码文本% 16、24或32 (曾经是== 0)计算块大小
汉明距离应由密码块1和其余的密码块进行。
如果我们用浮点算术平均到每字节,如果这个值低于一定的阈值,那么它就是欧洲央行。
https://stackoverflow.com/questions/17382438
复制