Encryption 一种散列函数与RSA的比较

Encryption 一种散列函数与RSA的比较,encryption,hash,compare,rsa,Encryption,Hash,Compare,Rsa,我想将散列函数和RSA加密与另一个参数进行比较。 我有一个带有一些散列函数的算法,我想声明这些散列的计算负载小于一个RSA 我可以说将它们与乘法参数进行比较吗,例如,每个参数有多少次乘法 如何在通信负载方面进行比较?我怎么能说RSA中的输出长度是多少呢?听起来你好像在比较苹果和橙子 A通常需要接受任意长的输入,计算它所需的时间通常应与输入的长度成线性比例。因此,一个有用的度量是,比如说,“兆字节每秒” (具体来说,这将是一个度量,这是散列长输入时的相关度量。对于短消息,更相关的度量是,基本上是散

我想将散列函数和RSA加密与另一个参数进行比较。 我有一个带有一些散列函数的算法,我想声明这些散列的计算负载小于一个RSA

我可以说将它们与乘法参数进行比较吗,例如,每个参数有多少次乘法


如何在通信负载方面进行比较?我怎么能说RSA中的输出长度是多少呢?

听起来你好像在比较苹果和橙子

A通常需要接受任意长的输入,计算它所需的时间通常应与输入的长度成线性比例。因此,一个有用的度量是,比如说,“兆字节每秒”

(具体来说,这将是一个度量,这是散列长输入时的相关度量。对于短消息,更相关的度量是,基本上是散列零长度输入所需的最短时间。考虑到吞吐量和延迟,通常可以计算出散列长输入所需时间的相当好的近似值任意给定长度的输入,如时间=延迟+长度/吞吐量。)

另一方面,只能加密小于模数的消息,模数是在生成密钥时选择的(可以是1024到4096位),以“使用RSA加密长消息”人们通常会使用:首先使用对称密码加密消息,比如使用合适的随机选择的密钥,然后使用RSA加密AES密钥

同样的长度限制也适用于使用RSA的消息—RSA本身只能对小于模数的消息进行签名。这种情况下的标准解决方法是先对消息进行散列,然后对散列值进行签名。(还有很多重要的细节,比如涉及到的,我不打算在这里讨论,因为我们还没有开始,但这些对于安全来说绝对是至关重要的。)


关键是,在这两种情况下,RSA操作本身都需要固定的时间,而不管消息长度如何,因此,对于足够长的消息,大部分时间将由AES或哈希函数消耗,而不是由RSA本身消耗。因此,当您说“声明这些哈希的计算负载小于一个RSA”时,我会说这是毫无意义的,至少除非你为你的散列确定了一个特定的输入长度。(如果你确定了,我的下一个问题是“这个特定的输入长度有什么特别之处?”)

没有什么比经验证据更好的了。为什么不对它们进行基准测试呢?