当涉及到加密某些数据(其中的数据很大)时,对称密钥密码系统占主导地位。对称密钥算法,如AES、DES、Blowfish、IDEA等,将以更长的篇幅解释它们是如何工作和工作的,以及为什么一种比另一种更好。
但在非对称密码系统的情况下,情况并非如此。通常,非对称密码系统是在混合密码体制中引用的。如果使用对称密钥,则对实际数据进行加密,然后通过公钥对对称密钥进行加密。
即使在RSA的维基百科页面中,重点也只放在RSA的密钥交换过程上,而不是实际数据是如何通过它加密/解密的。
我对非对称密钥密码算法的了解最多的是:-
当涉及到不对称算法的实际加密/解密时,这是唯一可用的东西。即使这一点还没有得到解释,为什么他们会有这样的行为呢?
尽管它们可能不是一个很好的选择,但与对称密钥算法相比,至少应该提供一些关于其工作的信息。
在RSA中,这是对加密过程的描述:-
CT = (PT^E) % N
# where CT = Cipher Text, PT = Plain Text, N = Product of Two Large Primes, E = Public Key但是还没有解释加密过程中会发生什么。
我想得到一些用于加密/解密的非对称密码算法的信息,以便分析它们的内部工作。
发布于 2019-07-07 14:53:13
您错了,没有描述非对称加密/解密的加密标准。您可以将RSA命名为一个例子,然后您只需显示模幂。然而,在PKCS#1 --主要的RSA标准--中,描述了用公钥加密和用私钥解密的方法。目前,它包含PKCS#1 v1.5兼容的填充(正式名称RSAES-PKCS1-v1_5)和OAEP (官方名称RSAES-OAEP)。在该标准中,还有一些与这些计划所源自的旧标准的联系。
原则上,您可以简单地拆分块并对每个块进行加密。但是,输入块大小确实小于输出块大小。此外,对于私钥运算来说,模幂太昂贵了。与混合加密相比,没有太多的理由只选择RSA。您可以说您可以重新排列RSA块,因为它们总是以错误的顺序解密,但是AES-CBC也不提供任何完整性或消息身份验证,所以我一直认为这是不公平的。如果需要完整性或消息身份验证,则必须对加密块进行签名(或在加密之前签名,具体取决于用例)。
对于DSA和ECDSA,没有很好的加密方法。有ECDSA加密,但是由于ECDSA密钥的大小相对较小,所以它的效率甚至低于RSA加密。
https://crypto.stackexchange.com/questions/71809
复制相似问题