首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CRC32捕获错误,但是SHA的意义是什么?

CRC32捕获错误,但是SHA的意义是什么?
EN

Cryptography用户
提问于 2019-10-06 08:37:54
回答 3查看 3.5K关注 0票数 1

如果crc或CRC32是专为捕获错误而设计的,那么SHA或md4-5或任何其他散列函数的意义何在?我所做的是,我有一个190 mb的png文件(用搅拌器lol以16k分辨率呈现),我取了它的sha256和CRC32哈希,然后做了同样的操作,只更改了1位图像。就1点。我得到了不同的crc,但也有不同的sha256

190 mb ~1 520 000位

那么,如果他们都发现了这么小的错误,那又有什么意义呢?

EN

回答 3

Cryptography用户

回答已采纳

发布于 2019-10-06 11:04:09

那么,如果他们都发现了这么小的错误,那又有什么意义呢?

CRC*不能做的是SHA*和一些MD*可以,后者通常强大到足以阻止任何超级计算机用散列摘要创建两个不同的文件,因为CRC*没有这样的强度。

CRC*擅长检测“线噪声”错误,但在密码学方面缺乏一定的强度。

(从评论中)所以如果我正确理解,CRC的目的是让您知道存在错误,而SHA* MD*等专门设计成有不同的散列吗?

在某种程度上,CRC*可以让您知道“有线噪音”错误,但不是中间人破坏;SHA*和MD*是专门设计成“抗碰撞”的,这意味着任何“人性化-可能”的超级计算机不能用相同的散列摘要创建两个不同的文件。

一点背景

根据维基百科,CRC是由W. Wesley Peterson于1961年发明的。哈希函数(我相信)于1979年在“安全、认证和公钥系统”中(作为单向哈希函数)首次被描述出来。

票数 2
EN

Cryptography用户

发布于 2019-10-06 09:08:58

CRCs可以检测自然发生的错误.但是在密码学中,我们面对的是智能对手,它们可以利用CRCs的数学特性,在不改变CRC的情况下对文件进行任意的修改。这很容易,即使对大型CRCs来说也是如此。

哈希被设计用来防止这种攻击(称为第二次预图像攻击)和其他攻击,例如使用相同的哈希创建两个不同的文件(称为碰撞攻击)。

如果CRCs或密码散列不同,则它们的输入是不同的。在密码上下文中,如果CRCs相等,我们无法判断它们的输入是否相等;而如果密码散列相等,则它们的输入必须相等(或者所使用的哈希不是安全的加密哈希)。

票数 8
EN

Cryptography用户

发布于 2019-10-06 12:05:41

循环冗余检查主要用于快速检查数据完整性,主要用于检测意外数据损坏。CRCs不应该被攻击,甚至你的弟弟也不会攻击,它们很容易被逆转,并且有一个应用程序。把CRC看作是一台手持计算器的运作方式。

密码散列可以帮助保护国家一级的战略情报免受资金充足、效率高的对手和数据(如世界上最重要的金融交易)之害。密码散列期待来自最好的攻击者的猛烈攻击,他们有很多很多应用程序,比如创建密码原语,这是一项严肃的工作。把密码散列看作是我们现代高度计算机化的密码学的工作马。

根据你的观察,你的问题是有意义的。但关键是密码散列比CRC能做得更多。1980年的手持计算器可以乘以25519和7.11.IBM的顶峰超级计算机也可以做到这一点,每秒200千兆秒,并得到同样的结果。但这并不意味着计算器和超级计算机具有完全相同的能力。

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

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

复制
相关文章

相似问题

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