如果没有适当的密码分析,肯定没有什么好说的,但这听起来很警钟。
首先,密钥交换算法。秘密永远不会明文发送,这很好,但它是通过网络发送的,这是不好的。双方都有办法以任何方式共享一个永远不会通过网络发送的秘密。参见例如Diffie-Hellman。或者它是使用椭圆曲线的版本。好在他们使用了一个临时密钥,但是他们有针对MITM 攻击的保护吗?
第二,通讯关键。它似乎是由客户端生成的。并且依赖于客户端的伪随机数生成器。计算机不擅长生成随机数,而 javascript(具有不更难访问可以收集一些熵的操作系统)甚至更糟。因此,通信的关键仅取决于一个可能很差的伪随机数发生器。不好,它可能取决于客户端和服务器。
第三,xAES。虽然他们可能已经对其进行了一些改进,但这是不可能的。更有可能的是,它们稍微扰乱了阶段之间所需的交互,使结果的安全性大大降低。在野外有很多这样的尝试,其中大多数都比原来的要糟糕得多(也就是可以立即破解)。
第四,xAES 密钥长度。这一个值得它自己的段落。虽然密钥大小通常越多越好,但 8192 密钥大小听起来不合理。这种密钥大小对于非对称算法很常见,它需要更长的密钥大小(参见例如https://crypto.stackexchange.com/questions/6236/why-does-the-recommended-key-size-between-symmetric-and -asymmetric-encryption-di)(由于公钥和私钥是相互连接的),而不是对称的。拥有比常用密钥长 10 倍以上的密钥?听起来很腥。或者就像让人们相信我们使用了正确的密钥长度值,因为数字 8192 经常显示为 keysize。只是它不是那个keysize。
总体:没有具体的证据,但我认为它是蛇油。
问题更新后:
我对美国专利制度一无所知,也不想学习任何东西(我不是来自美国,还没有看到任何专利何时有任何好处)。我也不是密码学专家,尽管我确实比一般人知道得更多,甚至有一些学术知识和某种爱好。
每本严肃的密码学书籍/课程/任何东西都会警告您不要使用专有的、未经审查的密码算法,并且有一个很好的理由:很容易犯一些小错误,从而使系统完全不安全。确保它比下一个更安全的唯一方法是进行大量独立审查,并且许多密码学家试图破解它。如果有很多出版物试图为该算法考虑一些东西,但没有真正的成功,那我们就很漂亮了确保这个算法是安全的。就你所说的xAES算法没有这样的评论。这并不是说它不安全。它确实说没有人费心检查它的安全性。它可能和 AES 一样安全,它可能更安全,它可能不如 CAESAR 密码安全,它可能有一个后门,如果你知道它可以读取所有内容。虽然有些未经审查的算法是安全的(AES 在某个时间点是未经审查的算法),但可能性非常大。
我们对它的作者一无所知这一事实无济于事。当然,不能保证一个已知的名字会提出一个好的算法,机会更大,因为那些人知道为什么那成千上万的算法不安全。来自没有出版记录的人?来自匿名人士?这可能很好,但这只是一个疯狂的猜测。
TL;DR:如果没有算法,一些熟练的人会花一些时间来破解它,这是一个疯狂的猜测。这就是安全,我们不相信疯狂的猜测。
我们再次得到密钥长度。我无法添加任何新内容。除了它变得更好 - 以前他们声称密钥为 8kbit,现在为 16kbit。好笑,几天和最大使用密钥翻倍?这是一个固定的算法,还是他们只是在我们说话的时候更新它?同样,这种大小的密钥(无论是 8 kbit 还是 16 kbit)对于对称算法来说都是不合理的。比较一下:我的浏览器安装了很多安全证书。这些来自不同的 CA。其中大多数都有 2048 密钥。xAES 密钥大小比第一个数字小 4 倍。我们在这里谈论的是非对称密钥,它往往比相应的对称密钥 (xAES) 大至少 10 倍,它是对称密钥。告诉你:社区认为合理的大小是 x。我们告诉你我们有 32x 并且没有说明为什么我们认为 x 是不够的。现在我们有了 64 倍,而且理由更少。
要么 256 位密钥是安全的,要么拥有 32 倍大的密钥只是浪费资源,要么他们有理由相信它不是,在这种情况下,我希望看到这个原因。更大的密钥大小不会让我们在量子密码学方面走得更远,它是一个完全不同的野兽(想象一下一台机器可以一次尝试所有密钥,就像许多平行宇宙,正确的宇宙成为现实)。
最后,让我们回到他们的报价,稍微分析一下:
xAES 是从 AES 基础上打破的指数级难度级别。
如果您采用 2 倍大的密钥,并假设该算法是安全的,那么您就有 2 倍更难的算法。所以是的,如果你有成倍大的密钥,你有成倍地更难的密码。有点道理。但是我想看看这assume the algorithm is secure部分的证明。
AES 的密钥大小限制 > 265 位,其中开发了 xAES 以克服所有 AES 限制。
我假设 265 位是错字,AES 使用 128、192 或 256 位密钥。
对于 xAES,我们可以有 16kbit 的大小(~2 64倍 AES),
向我解释一下 16384 如何是 2 64倍于 256?16384/256=64。钥匙大了64倍。键空间(可能键的数量)是 2 64倍。这是令人困惑的术语。
就算用量子计算机来破解,也是极其困难的。
往上看。
xAES (extended AES) 是我们的专利加密算法,基于 AES,但具有更大的密钥大小(最大 8192 位),更复杂和更长的多项式(在步骤 MixColumn 中),灵活地使用 Gray-Sbox 或 Sbox(在步骤 SubBytes 中) ,
托马斯·波宁的回答没什么可补充的。但是:什么是更复杂的多项式?多项式很简单。更长的多项式只是更长,而不是更复杂。你可以说 100000 比 100 复杂。
和一些更多的安全修改(盐,密钥扩展等......)。
进行降低安全性的安全性修改非常容易,但很难进行提高安全性的安全性修改。有很多非常微妙的相互联系。您可以使机器中的齿轮以两倍的速度运行,但它会在所有其他齿轮都以先前速度运行的机器中造成严重破坏。
Salt:用于单向函数(“哈希”)的随机数据,通常不是秘密数据。请参阅https://en.wikipedia.org/wiki/Salt_(cryptography)。可以理解为填充,即添加(随机或确定性)数据以填充块或增加消息的“随机性”。不是对称密码的一部分,而是它的使用方式。
密钥扩展:拥有较小密钥并从中生成较大密钥或密钥集的过程,并根据需要具有各种属性。为后续轮次对称密码生成密钥的过程有时被称为(因为我们将密钥扩展为轮次中使用的几个子密钥),所以 AES 已经有了这个。
哦,看,我们使用了一些花哨的加密术语。从不同的背景来看太糟糕了。
看起来他们的首席执行官不知道他在说什么。他的每一个答案都越来越响亮。这里没有积分。
让我引用写 PGP 的人 Phill Zimmermann 的话:
任何认为自己设计了牢不可破的加密方案的人要么是极其罕见的天才,要么是天真和缺乏经验的人。不幸的是,我有时不得不与想要通过添加他们自己设计的加密算法来对 PGP 进行“改进”的潜在密码学家打交道。
我记得 1991 年与美国国家安全局高级密码学家布莱恩·斯诺的一次谈话。他说,他永远不会相信那些没有通过首先花费大量时间来破解密码而“赚到骨头”的人设计的加密算法。这很有意义。我观察到,在密码学的商业世界中,几乎没有人符合这一标准。“是的,”他自信地笑着说,“这让我们在 NSA 的工作变得轻松多了。” 一个不寒而栗的想法。我也没资格。
https://www.philzimmermann.com/EN/essays/SnakeOil.html
让我们看看 Bruce Schneier 的蛇油清单:https ://www.schneier.com/crypto-gram/archives/1999/0215.html#snakeoil 。在我看来,第 1、3、4、5 和 7 点非常适合。这是 9 分中的 5 分。