Encryption SHA1与RSA:what';他们之间有什么区别?

Encryption SHA1与RSA:what';他们之间有什么区别?,encryption,cryptography,rsa,sha,Encryption,Cryptography,Rsa,Sha,SHA1和RSA之间有什么区别?它们只是不同的算法,还是在某种程度上根本不同(即用于不同的事情)。根本不同 SHA1是一种散列算法,它是一种单向函数,将任意大小的输入转换为固定长度的输出(本例中为160位)。加密散列函数是指除了暴力之外,不可能找到两个输出相同的输入的函数(例如,对于128位函数,您需要平均尝试2^64个消息才能找到这样一个“冲突”,原因是所谓的生日悖论-谷歌搜索更多信息) 事实上,对于SHA1来说,情况已不再如此——该算法(至少在密码术语方面)现在已被破坏,王晓云等人描述的碰撞

SHA1和RSA之间有什么区别?它们只是不同的算法,还是在某种程度上根本不同(即用于不同的事情)。

根本不同

SHA1是一种散列算法,它是一种单向函数,将任意大小的输入转换为固定长度的输出(本例中为160位)。加密散列函数是指除了暴力之外,不可能找到两个输出相同的输入的函数(例如,对于128位函数,您需要平均尝试2^64个消息才能找到这样一个“冲突”,原因是所谓的生日悖论-谷歌搜索更多信息)

事实上,对于SHA1来说,情况已不再如此——该算法(至少在密码术语方面)现在已被破坏,王晓云等人描述的碰撞攻击击败了经典的生日攻击。SHA2系列并没有被打破,NIST正在就SHA3算法或算法系列达成一致

编辑-谷歌现在已经生成并发布了一个实际的SHA1冲突

RSA是一种非对称加密算法,它将输入加密到输出,然后输出可以解密(与无法反转的哈希算法相比)。它使用的加密密钥(公共密钥)与解密密钥(私有密钥)不同。因此,这可以用于接收来自其他人的加密消息-您可以发布公钥,但只有使用私钥的您才能解密使用私钥加密的消息


如果您为RSA反转密钥,它可以用于生成数字签名-通过使用您的私钥加密某些内容,任何人都可以使用公钥对其进行解密,如果他们确定公钥属于您,那么他们相信您就是加密原始密钥的人。这通常与散列函数一起完成-散列输入,然后用私钥加密,为输入消息提供固定长度的数字签名。

SHA1是散列算法(文档和证书签名),而RSA是加密/解密算法(安全通信).

安全哈希算法(SHA)算法接收长度小于264位的消息,并生成160位的消息摘要。该算法略慢于MD5,但更大的消息摘要使其更安全地抵御暴力冲突和反转攻击。安全哈希标准(SHS,FIPS 180)中规定的算法由NIST开发。SHA-1是对1994年出版的SHA的修订版;修订版纠正了SHA中未发布的缺陷。它的设计与Rivest开发的MD4哈希函数家族非常相似。ANSI X9.30标准中也描述了SHA-1

RSA是一种公钥密码算法。这是已知的第一个适用于签名和加密的算法,也是公钥密码学最早的重大进展之一。RSA广泛应用于电子商务协议中,并且被认为是安全的,因为有足够长的密钥和最新的实现

最显著的区别在于,SHA是一种加密算法,而RSA既是加密算法又是签名算法。


2005年8月16日,有消息称,在2^63次行动中,有可能在SHA-1中发现碰撞。这项研究结果是由北京清华大学的王晓云教授,以及安德鲁·姚教授和弗朗西斯·姚教授共同完成的。它扩展了Wang、Yin和Yu的工作,证明了在2^69操作中可以发现碰撞。这意味着在SHA中发生冲突比在RSA中更容易,但值得注意的是,从未发现过两个相似的密钥发生冲突。

SHA1是一个加密哈希函数,而RSA是一个加密算法

散列函数获取一段数据并返回一个固定长度的字符串。在加密哈希函数中,所有返回字符串都具有相同的概率。仅给出散列数,您无法确定输入,也无法找到另一个给出相同散列的输入(概率非常小)。Sha1有一些安全缺陷


加密算法提供一段数据,但输出的长度不是固定的——您的加密。给定输出(加密),您可以(如果您有正确的密钥)确定输入。

正如其他人所评论的,它们是为不同功能服务的根本不同的东西。您使用RSA将信息置乱为看似随机的形式,而使用SHA1确保消息的完整性(即,所有位均未更改)。在安全应用程序中,您将使用一个或两个,具体取决于您需要的功能。

前面的答案已经足够解释了。但我想你问这个问题只是因为SHA和RSA经常一起出现,所以让我解释一下原因

首先,请记住

RSA不是有效的,但SHA是有效的。 假设您下载了Windows7,并想确定它是否是Microsoft提供的原始Windows7。如果微软只是用RSA加密Windows7,这将需要很长时间,我们根本无法忍受。因此,微软在Windows7上使用SHA1并生成160位长的数据。然后微软用RSA(使用它的私钥)为这个160位长的数据签名


然后,您需要做的就是确保您的公钥来自Microsoft。然后使用SHA1生成160位长的数据。然后使用RSA公钥对Microsoft的签名进行解密。然后,您只需比较两个160位长的数据,看看它们是否匹配。

您所说的“根本不同”是什么意思?相关:,。碰撞的问题传统上称为“生日悖论”,而不是“效应”。听说过这两种说法,但edi会吗