好吧,我搞不懂这两种加密方法是如何工作的。我知道对称是传统的,并且在两个用户之间使用共享的私钥。
基本上,我想知道
非对称和对称加密方法。
发布于 2011-03-29 21:45:47
我建议从应用密码学开始。这是对密码学原理的一个很好的介绍。
如果您对密码学感兴趣,我强烈推荐应用密码学手册作为一项了不起的参考工作。一开始它太难处理了,但是它是免费的,所以现在就去拿一份副本吧:)当你完成了AC,阅读HAC。(实际上,精装版制作得很好,比几百页激光印刷纸更容易阅读;如果你喜欢PDF的外观,可以考虑购买它。)
对称加密的工作方式是将秘密输入与秘密密钥混合,使其(a)快速(b)不能从输出导出输入或密钥。混合的细节差别很大,但是有块密码和流密码;块密码的工作方式是一次查看8或16或32字节块中的输入数据,并在这些块中扩散输入和键。需要不同的操作方式来加密比块中更多的数据,不同的操作模式可能也可能不会在块之间传播数据。
对称密码非常适合大容量数据加密,从8字节到8 to,是加密数据的最佳选择。
非对称加密的工作原理是利用非常困难的数学问题,通过后门,如果你有一小部分非常重要的数据,就可以快速解决这个问题。常见的数学问题是保理大数和离散对数。非对称算法工作在固定的数据大小上,通常是1024-2048位用于RSA和贾迈勒,384位用于椭圆曲线版本的RSA或El。(椭圆曲线版本在计算时使用与整数不同的字段。RSA和El及类似的系统可以与指定乘法和加法操作的任何字段一起工作,ECC对该字段有不同的表示形式,可以神奇地将“更多”数据打包到位中。这是一种非常聪明的方法,可以让众所周知的机制融入更少的记忆中,而我的一句引言却无法公正地做到这一点。简单是令人惊奇的部分。)
非对称加密帮助解决了密钥分配问题问题,但几乎没有帮助:不需要O(N^2)密钥对在每一对希望使用加密技术的人之间进行交互,而是需要O(N)密钥,每人一对公共/私有密钥,每个人只需要知道其他人的公共部分。正如x509的复杂性所演示的那样,这仍然不是一个容易的问题,但是像openPGP和OpenSSH这样的机制有更简单的模型和机制,可以很好地用于许多用途。
非对称密码通常用于传输对称密码的会话密钥。即使只有少量的数据将被传输,加密者通常也会倾向于发送用对称密码加密的实际数据,并发送用非对称密码加密的密钥。一个巨大的好处是,您可以向100个不同的收件人发送消息,消息的大小为O(消息的大小+ 100*2048位) --您可以对每个收件人的会话密钥进行加密,并且只传输一次。巨大的成功。
非对称密码也用于数字签名。虽然可以为消息真实性使用对称密码,但不能使用对称密码来提供不可否认的签名。
非对称密码非常适合加密少量随机数据,如会话密钥和讯息摘要。它最好用来做钥匙和散列。
对称密码通常比非对称密码快得多,但由于它们被用于不同的目的,所以速度差异在实际中并不是一个问题。当然,速度可能因算法的不同而有很大差异(DES在软件上非常慢,在硬件上也可以很快,但是对于我的系统上的小数据集,AES的速度是它的1.8到3.3倍,而且在硬件上可能还要快得多)。
发布于 2011-03-29 21:54:06
执行摘要:
对称密码:比非对称密码快,但需要发送方和接收方共享一个密钥。以一种安全的方式向双方提供这个密钥本身就是一个重要的问题。
非对称密码:速度慢,但通过使用两个密钥来解决密钥分配问题,其中一个密钥可以很好地共享。
在实践中,这些可以结合起来,以获得两个世界的最佳(例如,HTTPS)。
https://stackoverflow.com/questions/5478952
复制相似问题