1
ShadowStar 2015-12-01 13:32:27 +08:00
几乎常用的绝大部分加密算法都是这样的,你所说的只是加解密软件的问题。
|
2
stupidcat OP @ShadowStar 解密软件之所以会提示“错误”,是因为算法本身提供了相关信息(校验之类),那么,有没有不提供这种信息的算法?
|
3
PublicID 2015-12-01 13:38:57 +08:00
判断解密是否正确不是加密算法的事
|
5
stupidcat OP @PublicID 以 rar 加密为例,为什么 winrar 会提示密码错误?因为校验和对不上。这个校验和不就是该加密算法规定了要保存在密文中的内容吗。
是否存在某一种加密算法,不在密文中储存“校验和”、或是任何其他可以让解密软件判断出密码正确或错误的信息? |
6
RemRain 2015-12-01 13:50:21 +08:00 1
rar 是压缩算法, winrar 是软件,校验是软件做的,不是加密算法。 winrar 用的加密算法是 blowfish , blowfish 不含密码验证。
|
7
est 2015-12-01 13:51:24 +08:00
我早就说了, ssh 登陆提示信息无论成功与否一律改成 Permission denied, please try again. 。保证有奇效。
|
8
ShadowStar 2015-12-01 13:51:51 +08:00
RAR 不是加密
|
9
zjqzxc 2015-12-01 13:52:06 +08:00
事实上,就算是有这么一款加密软件(楼上意见解释了这个不是算法的事儿),暴力破解的难度并不会增加。。
如果密码正确,那么产生的信息一定是有意义的。如果压缩的是文件,那解密后的内容也一定要是文件才行。图片什么的都有头文件,查一下就知道是不是,是什么类型的文件了。纯文本内容直接尝试使用 utf8,gbk 等方式解码,能解出来就是正确的,解不出来就可以认为不对。 所以,就算是有这种软件,对暴力破解来说就是多了一个步骤而已(并增加了大量的 IO 次数?) |
12
comicfans44 2015-12-04 16:40:29 +08:00 1
首先加密算法只是变换,不会关心你的密钥是否正确。 rar 用错误密码解密并且选中保留损坏的文件,得到的就是你想要的无确认密码的加解密(得到一堆无用的二进制)。
根据 rar 的描述 http://www.rarlab.com/technote.htm#enchead If flag 0x0002 is present, RAR transforms the checksum preserving file or service data integrity, so it becomes dependent on encryption key. It makes guessing file contents based on checksum impossible. It affects both data CRC32 in file header and checksums in file hash record in extra area. checksum 是密码相关联的,因此对于寻找正确的密码没有帮助。 另外 @zjqzxc 的说法是正确的,人眼看不过来,但是有专门的库(比如 libmagic)用于识别文件类型,因此即使没有这个额外的确认信息,也不会减少被破解的可能。 你所描述的,其实是"裸"加密,去掉加密之外的一切信息,只剩下变换后的二进制。你自己随便编一个可逆变换就可以了。别人打死也猜不出来一个你乱编的算法是怎么变换的,当然也就没法解密了。 |
13
akagi 2015-12-05 23:26:04 +08:00
@comicfans44 然而也许可以用频率统计来减小解空间?
|
14
comicfans44 2015-12-07 09:36:15 +08:00
@akagi 不太了解你说的频率统计的方面的内容。具体的操作是?
|
15
akagi 2015-12-08 17:33:22 +08:00
@comicfans44 呃,只是个粗浅的想法。解密后的文件如果是规范的原始文件,即使是纯二进制流,也应该会有特定的频率统计特性。或许可以靠分析文件排除分布明显不合适的情况。
比如,首先统计字串的出现次数,然后统计某字串后接另一字串的出现次数…… 然后统计百分比什么的。 好像过于简陋了 .. |
16
comicfans44 2015-12-08 21:29:17 +08:00
@akagi 感觉这个还是比较困难的
|
17
Silicon 2015-12-09 04:43:45 +08:00 via Android
|