Encryption 如何定义加密算法';就比特而言,它的强度是多少?

Encryption 如何定义加密算法';就比特而言,它的强度是多少?,encryption,bits,Encryption,Bits,我正在设计一种加密算法。该算法是对称的(单密钥) 你如何用比特来衡量算法的强度?密钥长度是算法的强度吗 编辑: 第1课:不要设计加密算法,AES和其他加密算法 由学者设计和标准化是有原因的 第2课:加密算法的强度不是以位来衡量的,而是以密钥大小来衡量的。算法的强度取决于它的设计。一般来说,使用较大密钥大小的算法更难使用暴力,因此更强 您可以比较同一算法的密钥长度。在不同的算法之间,它没有太多的意义 如果该算法是好的(对于一些国产的东西来说,很难证明这一点),那么它就可以通过更长的密钥大小获得更高

我正在设计一种加密算法。该算法是对称的(单密钥)

你如何用比特来衡量算法的强度?密钥长度是算法的强度吗

编辑:

第1课:不要设计加密算法,AES和其他加密算法 由学者设计和标准化是有原因的

第2课:加密算法的强度不是以位来衡量的,而是以密钥大小来衡量的。算法的强度取决于它的设计。一般来说,使用较大密钥大小的算法更难使用暴力,因此更强


您可以比较同一算法的密钥长度。在不同的算法之间,它没有太多的意义

如果该算法是好的(对于一些国产的东西来说,很难证明这一点),那么它就可以通过更长的密钥大小获得更高的安全性。添加一位(同样,如果算法好的话)应该会使暴力破解所需的工作量加倍(因为现在可能有两倍多的密钥)

不过,更重要的一点是,这只适用于“好”算法。如果您的算法被破坏(即,由于某些设计缺陷,可以在不尝试所有密钥的情况下对其进行解密),那么延长密钥的长度可能没有多大帮助

如果你告诉我你发明了一个1024位密钥的算法,我无法判断它比一个已经发布的256位算法好还是坏(我会出于安全考虑,假设更坏)


如果你的比赛中有两种算法,告诉裁判密钥大小并不能帮助他们决定哪种算法更好。

假设算法是可靠的,并且它使用了整个密钥范围

将每个键字节的唯一字节值数提高到字节数的幂次方


因此,如果您只使用ASCII字符A-Z,A-Z,0-9,这是62个唯一值-使用这些值的10字节键是62^10。如果您使用的是所有256个值,0x00-0xFF,则10字节的密钥为256^10(或每字节10*8位=2^80)。

首先,这是否严重?如果是,现在就停下来。不要这样做。设计算法是世界上最难的事情之一。除非你有多年破译密码的经验,否则你不会设计任何远程安全的东西

AES和RSA有两个截然不同的用途。区别不仅仅是签字。RSA是一种公钥算法。我们使用它进行加密、密钥交换和数字签名。AES是一种对称分组密码。我们使用它进行批量加密。RSA非常慢。AES非常快。大多数现代密码系统使用一种混合方法,使用RSA进行密钥交换,然后使用AES进行批量加密

通常,当我们说“128位强度”时,我们指的是密钥的大小。这是难以置信的欺骗性,因为一个算法的强度远大于它的密钥的大小。换句话说,仅仅因为你有一个百万位的密钥,它就没有任何意义

算法的强度是根据其密钥大小以及对密码分析攻击的抵抗力来定义的。我们说,如果存在比暴力更好的攻击,那么算法就被破坏了

因此,对于AES和128位密钥,如果不存在小于2^128的攻击,AES被认为是“安全的”。如果有的话,我们认为它是“断裂的”(在学术意义上)。其中一些攻击(用于搜索)包括差分密码分析、线性密码分析和相关的密钥攻击

我们如何对算法施加暴力也取决于它的类型。像AES这样的对称分组密码是通过尝试每一个可能的密钥来强制执行的。但是对于RSA,密钥的大小就是模的大小。我们并不是通过尝试每一个可能的键来打破这一点,而是通过因子分解。所以RSA的强度取决于当前的数论状态。因此,钥匙的大小并不总是告诉你它的实际强度。RSA-128非常不安全。通常RSA密钥大小为1024位+

具有56位密钥的DES比几乎所有业余密码都要强大

如果你对设计算法感兴趣,你应该从打破别人的习惯开始。Bruce Schenier有一门密码分析自学课程,可以帮助您开始:


FEAL是有史以来最坏的密码之一。它为学习分组密码密码分析提供了一个很好的起点。源代码是可用的,并且有无数关于它的发表论文,所以如果你陷入困境,你可以随时“查找答案”

哦,老兄,这真是个难题。一个是肯定的-密钥长度显示加密算法的强度

我只能想到加密算法强度的两个衡量标准:

  • 向专业密码分析师展示你的算法。算法强度将与密码分析员破解加密所花费的时间成正比
  • 强加密算法使加密数据看起来非常随机。所以-你的加密数据。算法强度应与加密数据的随机程度成正比
    警告-此标准仅适用于玩自满游戏,并不显示真正的加密方案强度

所以,真正的衡量标准是第一,但有了第二,你们可以玩得很开心

我的快速而肮脏的定义是“AES需要具有相同平均破解时间的位数”。你可以用任何你喜欢的方法来衡量时间,比如操作、墙时间等等。如果您的破解时间与理论上的40位AES消息一样长(比128位AES少2^88个时间),那么无论您是否使用64000位密钥,它都是40位强的

这就是诚实,当然,在加密世界很难找到诚实。为了搞笑,将其与普通RSA密钥进行比较