有很多安全算法。衡量加密算法安全性的方法之一就是找出其密钥大小。单个算法有很多密钥大小。
ECC(椭圆曲线密码学)具有163、256、384、512等。
RSA有1024、3072、7680、15360。我是从这里找到的
但是如何计算算法的密钥大小?单个算法如何具有不同的密钥大小?
我正在构建一个简单的密码算法,但是我不知道如何计算算法的密钥大小。
我的算法是通过代码假定来更改纯文本的字母
a = 2H,b = 3C,c = 8S ......,z = 6D
如果纯文本为“ cb”,则密文为“ 8S3C”。那么该算法的密钥大小是多少?我该如何计算?
密钥大小对应于安全强度。安全强度是攻击者破坏算法所需的精力,它取决于对算法的最佳了解。
例如,典型的安全强度是128位。如果您了解有关椭圆曲线密码学(ECC)的一些知识,您将了解到,通常情况下,攻击ECC的最佳算法具有平方根运行时间。因此,如果我们使用具有256位素数次子组的椭圆曲线,则曲线上的点数为2 ^ 256阶,这意味着对其进行攻击需要sqrt(2 ^ 256)= 2 ^ 128的运行时间。因此256位ECC(子组大小为256位,密钥大小为256位)为您提供128位的安全强度。
对于RSA,数学难度更大,因为破解它的时间取决于数域筛,其运行时间看起来像e ^ [(1.92 + o(1))(log n)^(1/3)* (log log n)^(2/3)],其中n是要分解的数字,log是自然对数。因此,要计算对应于128位安全性的密钥大小,我们需要求解2 ^ 128 = e ^ [(1.92 + o(1))(log n)^(1/3)*(log log n)^( 2/3)]。我想你会喜欢自己解决这个问题的:-)
注意:当我谈论安全强度时,我仅在谈论破坏它的计算能力。有人认为我们在计算中也应包括记忆。
如果您想进行更彻底的详细讨论,欢迎您阅读“选择加密密钥大小”。
为了选择密钥大小,您需要了解破解算法的工作,这意味着您应该是密码学家。不好意思告诉您,但是您的算法无法通过较大的密钥来保存:替换密码通过频率分析很容易被破坏。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句