您好、欢迎来到现金彩票网!
当前位置:秒速时时彩开奖 > 算法保密 >

在有限专家间评议加密算法是不是比直接公开更安全?

发布时间:2019-07-09 23:40 来源:未知 编辑:admin

  感觉从管理上进行专业水平和诚信信度考量后,专门指定一个人员可控的专家组,在组内公开新设计的密码算法进行同行评议,然后交给人员可控,保证水平和信度的编程团队闭源实现和内部测试,从人员管理上避免社工攻击的发生,同时将算法和密钥同时保密,这样才是最安全的吧? 毕竟说起来给一段密文,不告诉你加密算法,你就是知道密钥也不好破译吧?为什么一定要对全公共领域公开呢? ———————————————— 关于闭门造…

  这是一个经典问题了,常常被问起。其他回答有些已经从专业角度进行了阐述。我尝试从通俗的角度再补充一下。

  一提起密码学,大家第一反应是联想到战争、军事,但如今的世界,密码学最广泛也是最基本的用途却是在保护普通人的通信安全——比如让你在使用网银的时候密码不会被其他人截获进而偷走你的钱。

  站在这个角度看,很快就会发现,要想让全世界70亿人口仰仗一种不公开的加密算法隐约存在一些障碍。不过,在开始讨论之前,我们还是先做一些非常非常理想(而不切实际的)假设:

  在如此乌托邦般理想的背景下,全世界满心欢喜,翘首以待,希望立刻使用这一算法来保障全世界的通信安全!(此处应有BGM,世界500强CEO欢聚一堂纷纷竖起大拇指对提出这一算法天才致以最高的敬意——虽然并没有人知道他是怎么做到的——而且我也不清楚大家怎么就能如此单纯的相信他说的是真的……)

  就在这欢声笑语一片祥和,世界大同的瞬间,有一个工程师突然发现了一个问题——怎么才能把这个算法用起来呢?另一个工程师也恍然大悟,一拍大腿脱口而出:是啊,算法根本没公开啊!

  全世界都愣住了,光忙着庆祝,却忽略了一个问题——除了算法的作者谁也不知道怎么去加密和解密,没人能写出算法!怎么办?

  这时候隔壁老王提提裤子站了起来,提议由算法的发明人,定制一种硬件芯片,秘密制造,然后在不公开其硬件构造的情况下,统一分发给大家!

  热烈的掌声,经久不息。但老张不乐意了,老张站起来缓缓道:硬件好是好,但是我们公司的几亿台嵌入式设备已经在运行,要升级硬件难度太大。首先你的芯片有多大,尺寸太大肯定不行,我们的设备体积有限;耗电多少,太耗电那也行不通;速度呢,能达到每秒处理 X Mbit 吗?我们的系统是硬实时系统,响应时间不能超过 Y ms……如果可以,还有个问题,价格呢?如果太贵,我们怕是要破产。而且硬件的东西,做上去就无法更改了,你们最好一次做对,要是出问题想改那也是难呐……

  会场陷入了一片沉默……一些工程师开始交头接耳。老张顿了顿,说道:可以搞软件的嘛,提供一个预编译好的二进制库给我们就行了,这样我们不用升级硬件,也能用上这项伟大的发明!

  算法的发明人经过短暂的考虑,微笑着点点头表示了同意。笑容又出现在每个人的脸上。除了会场角落的一群人……

  他们轻蔑的看着狂欢的人群,为他们的天真报以最深的同情——这是一群安全研究人员,就在上个月,他们破解了一个被认为“绝对安全”的芯片,完全逆向出了其中的算法。在他们眼中,这场闹剧虽然可笑,但却也是一个闷声发大财的绝佳机会……

  同上,任何保密算法一旦变成了软件,就有可能被逆向还原(实际上不是有可能而是一定可以)

  所以结论:算法的保密性在现实世界行不通。甚至可以说,任何想要大规模广泛应用保护几十亿人的密码学算法,都根本无法实现保密,最终不管是你愿意还是不愿意都会公开。原因是,算法要给人用,就要变为硬件或者软件,而这二者都不安全,可以通过研究它们逆向还原出算法。

  上面聊完了民用,我们知道一点,一旦需要[广泛]应用一种加密算法,那么保密就是不可能的。接下来我们考虑军事环境下,能否实现加密算法的保密呢?

  在理想的世界里,好人和坏人泾渭分明;英雄的意志如同钢铁般从不会被诱惑;每一个兢兢业业的军人如同机器般准确,从不犯错……

  可惜现实世界里的军队绝非如此,光是间谍问题就解决不了。间谍也许偷不走你的算法设计文档,但他/她可以偷走你安装了相应加解密芯片的设备,于是问题又回到和前述类似的情况,你的算法很可能被逆向还原……

  而更实际的情况其实是,在军事领域,直接收买/绑架/威胁相关人员更加方便,破解芯片有时候反而纯属多余。这方面二战中已经数不胜数。都是血泪教训。

  三、可是,如果公开的是安全的,那么我将其再做保密不是[更加]安全么?一个思维陷阱

  这可能是提问者最困惑的问题。这就相当于,如果你们口口声声说公开的最安全,那么我把它再做一层保护,也就是保密起来,那不是双保险?!

  一个算法,敢叫安全的,一个专家说了不算,十个也不算,所有专家都这么说才算,所以你得[公开]了,最后才敢叫安全

  你都保密了,就没有人知道它到底安全不安全,只有一小撮人[认为]它安全,所以你保密的是一个[安全]的算法吗?也许是,也许不是

  历史经验证明,发明安全的算法难度之高,远超想象,由此可知,在 2 的情况下,你小心翼翼维护的所谓[安全]算法 99.99% 其实是个不堪一击的东西

  安全不是[天生]属性,而是公开后[实践]赋予的衍生属性。你无法在保密一个东西的同时确定它是安全的,你只能[自认为]它是。

  现实世界的任何加密算法赋予的安全性都是[有限]的,实际上加密算法只是在不断的抬升[破解的代价]而已,主要是时间代价

  由上可知,几乎没有人真正能够判定一个加密算法是否[安全],只能以有限的知识对其进行估计,但经过大众的参与,一些久经考验的加密算法被发现[很难]破解,我们才可以谨慎认为它们相对安全

  仔细想想就会发现,其实现代密码学最大的进步就是承认了不完美,这一点可以说是经典密码学到现代密码学精神内核上最本质的区别,也改变了密码学研究的方向。究竟需要多大的胆量,才可以把自己的算法公之于众的同时,声称它是安全的?同时当全世界绞尽脑汁都无法将其撼动分毫时,作者内心会感受到多高的荣誉?

  加密算法本质都是一个函数 F。而与其相对的解谜算法可以称为 F。这很好理解。问题是,构造 F 一定要知道 F 吗?能否在不知道原始加密算法的情况下,直接构造一个函数来实现和 F 相同的解密功能?实际上是有可能的,如果有大量的明文和密文对(这个条件通常很容易满足),然后 F 满足特定的数学性质,那么就可以找到一个 U 函数,实现 F 的功能。

  如果加密一次会变得安全的话,那么加密两次、三次、四次呢?是否更加安全?事实上可能恰恰相反,安全性有可能反而降低。混用加密算法也会带来此类问题。这一点也常常让人意外。

  特定的加密算法,某些长度的密钥有助于增强安全性,而另一些则会削弱,这实际是一个很复杂的问题。实际上好的加密算法至少保证密钥长度增长的同时安全性增强,但许多算法并不能在这方面给予保证,让人很意外。

  同一个加密算法,选择两个相同长度的密钥 X 和 Y,它们加密出来的结果一样安全吗?不一定:

  其它各种坑就不说了,请参考专业书籍……你了解的越多,你终将会发现,密码学真的非常非常复杂,因此如果谁胆敢声称安全,即使是这个行业的顶级人员,也常常被打脸。一般只敢提出一些新想法启发思路。而证明其安全性是一个很漫长的过程。

  其实这个题是一个很有意思的问题。这个问题的答案并非我们想象的那么简单,

  题主假设所涉及的算法是通过具有专业领域知识的专家组设计和测试,再由可靠的编程团队闭源实现和测试的。也就是说,我们需要假定这个算法本身被认为是安全和可靠的。

  ,而又带来了更高的管理成本。我好像给出了一个看似互相矛盾的结论啊?注意,前者我使用的是

  这里要澄清一下,密码学可不仅仅有那些我们都知道的算法,如DES、AES、RSA、SHA系列什么的。在密码学发展的历史长河中,学者和专家们提出过无数种算法。而所有这些算法最后沉淀下来的就剩下我们广泛接受,写在课本里面的这几个算法了。其他算法,或者效率不高,或者被其他学者专家在短时间或者长时间内所攻破。今天我们就来看看密码学算法的设计和攻破的流程。我认为,这个流程就能回答答主的问题了。

  1997年,密码学界三位顶级密码学研究者Goldreich,Goldwasser,Halevi在密码学顶级会议CRYPTO上发表论文《Public-key cryptosystems from lattice reduction problems》,提出了一个基于格的数字签名方案,这个方案在密码学历史上被称为GGH方案。这个方案本质上不能说是一种具体的方案,而是一种签名方案的构造框架,可以在这个框架上应用不同的格,可以构造出不同的数字签名方案。

  当时密码学界还没有广泛接受形式化安全证明,所以这个方案提出时,三位顶级学者并没有给出方案的安全性证明。这个方案经过未来数年的研究,也没有人能够证明方案的安全性。当然了,也没有人提出针对方案的攻击算法。2001年,密码学顶级研究者Hoffstein,Howgrave-Graham,Pipher,Silverman,Whyte提出了GGH方案的一个具体事例,叫做NTRUSign签名方案。之所以叫NTRU,是因为这个方案的具体构造使用了NTRU公司建议使用的NTRU格代数结构。当然了,这个格代数结构有点复杂,我这里就不讲了。有趣的是,NTRUSign签名方案是在2001年提出的,但相关论文是2003年在密码学著名会议CT-RSA上发表的,题目为《NTRUSIGN: Digital signatures using the NTRU lattice》。

  这个方案有什么好处呢?这个方案最大的好处是效率特别高。签名结果的长度大约为1700比特。签名和验证的速度非常快,甚至

  。这个方案是GGH数字签名方案构造框架的实现。在那时,GGH框架没有发现什么漏洞,NTRU格也没发现什么问题(到现在,NTRU格也被广泛用于密码学方案构造中)。这么好的算法,没有道理不成为标准啊。在2002年,IEEE P1363.1的version 8标准中正式收录了这个方案,作为数字签名算法的标准。

  我放的两个图中,讲解的这个人叫Oded Regev。这个人于2006年,在密码学顶级会议EUROCRYPT上发表了论文《Learning a parallelepiped: Cryptanalysis of GGH and NTRU signatures》。在论文中,Oded提出了一种攻击GGH框架的算法,在

  。基本上,IEEE P1363.1中给出参数中,基于GGH的签名方案的一半具体参数都被攻破了。而我放上来的图,就是Oded在Winter School on Cryptography 2012上讲解它的攻击方案(2nd BIU Winter School)。

  看到这里,题主可能会说了:看吧!算法公开了,结果被破解了,还是不公开的好!但实际上,我们注意一下算法攻击的要求:要知道

  。但在实际中,想拿到400个同一个私钥下的消息/签名对似乎并不简单。很可能还没签署那么多签名,公/私钥就更新了。所以,这个攻击算法从实际角度说确实破解了GGH方案和NTRUSign方案,但是在签名次数较少的前提下,方案还是可以使用的。这也就意味着,虽然方案不安全了,但是也没那么不安全,我们至少知道方案在什么条件下是不安全的,并且可以在全世界范围内逐渐更新算法库,将有问题的算法更新掉,从而减小损失。

  从这方面讲,算法的公开是有意义的。一个经过精挑细选的算法,破解的难度是非常大的。整个破解需要数年,甚至数十年的努力。各种专家、学者不停地对算法进行研究,逐渐在限制条件比较小的前提下破解方案。同时,由于算法的破解本身也是公开的研究成果。顶级学者专家会公开某一著名算法的破解进度。这样,

  业内的人士就可以逐渐了解到,算法被攻击到什么程度,是否需要设计并提出新的算法,是否需要对算法进行更新了

  现在已经是4G时代了,原来的2G手机相信大家早已经扔掉,或者放在时间胶囊里面了吧… 在2G手机的通信过程中,实际上也使用了密码学算法,就是A3、A5和A8算法。其中:

  A5算法是通信的加密算法。其中包括1987年提出的A5/1算法,和1989年提出的A5/2算法。

  我们这里仅谈一谈加密算法A5。在早期,为了基站资源的垄断,同时也为了保护通信数据的安全性,A5系列算法都是保密的。然而,在1994年,一位通信界的匿名用户(匿名用户很可怕…)公开了两个算法的设计思路。1999年,Marc Briceno从GSM电话中,通过

  在算法设计之初,所有人都希望算法是安全的。在1987年和1989年,A5系列算法的设计者们想必也是领域内的杰出专家,所设计的算法肯定也值得信赖。然而,由于算法的保密性,A5系列算法一直没有得到学者们的深入研究。但是,由于1999年算法的彻底暴露,各个领域的学者专家们,

  早在1999年,Jovan Dj. Golić就在密码学顶级会议CRYPTO上发表论文《Cryptanalysis of Alleged A5 Stream Cipher》(注意这个Alleged,当时算法还没有完全被逆向工程恢复出来),直接从算法的构造思路分析算法的安全性,指出A5系列算法存在安全漏洞。在算法被逆向工程完全恢复出来的次年,Alex Biryukov,Adi Shamir(没错,就是RSA中的S),以及David Wagner于2000年在密码学著名会议FSE上发表论文《Real Time Cryptanalysis of A5/1 on a PC》,他们指出,如果能得知2分钟通话时间内的明文和密文消息,就可以在

  。不过,这个攻击首先需要预计算大约300GB的数据。到2004-2005年,算法基本已经被彻底攻破了。

  由于算法的保密,一旦算法在未来被泄露,学者们使用未来所研究的攻击方法对之前设计的算法进行攻击,很容易找到其中的漏洞,并在几年之内彻底破解算法,完全不给系统安全的设计者更新算法的时间。要知道,截至2011年,全世界仍有10亿人在使用A5算法进行通信!

  所以,算法保密当然有它的道理。如果真的保证算法的严格保密,在闭环中使用算法的话,在较长时间内当然可以保证算法的安全性。但是,一旦未来的某一天,算法被泄露出去。专家学者们使用未来的攻击算法进行破解,很可能在非常短的时间内破解算法,使得安全工程师们完全没有机会快速对算法进行更新。

  既然这样,为何要花费如此多的人力、物力,保证算法的保密性?反过来,直接公开算法,供学者们进行充分研究,等算法的破解与更新趋于稳定后,制定相关的标准,并随时对标准进行更新和补充,这样不是更好?

  在 19 世纪后期,Kerckhoffs 发表了一篇论文来阐述这个问题。他认为加密方法不必保密,需要保密的是密钥。原因有三个:

  与维护算法的保密性相比,维护密钥的保密性更容易。一个密钥可能只有 100bit ,而安全地保存一个长度数千倍的加密算法要难得多。而且算法的细节可能泄露,不止是内部专家,逆向工程也可能学习到一些细节。

  万一密钥暴露了,Alice 和 Bob 可以很容易地更换密钥;而万一算法被攻破,重新设计一个很好的加密算法要难得多。事实上,我们需要定期更换密钥,这种情况下保证加密算法的保密性简直不可能。

  万一有多对人员需要加密其通信,这些人可以使用相同的算法和不同的密钥,而使用不同的程序则太难。

  公开的设计可以承受公开的钻研和分析,因此可以更加强壮。构造良好的密码学方案非常困难,更广泛地被研究可以证明其安全性。

  系统的安全取决于算法的保密性,对代码的逆向抵抗力很差。密钥不是代码的一部分,不存在这个问题。

  。公钥密码学仅仅是为了管理公钥、进行密钥合法性的检验,就引入了认证中心的概念。由此来看,很难想象为了管理算法获取权、分发机制需要建立多么复杂的验证机制。而如果仅仅是把密钥保密而算法公开,“人员可控”,“保证水平和可信度的团队”,“人员管理以避免社工”这三方面的开销都可以减到最低,而优点则是换来了海量的密码学研究人员帮忙审阅算法的可用性。况且,在保密方面,人,

  我大概猜到了题主的意思。算法不公开并没有什么问题。部队的军用算法,甚至是部分的商用算法也是不公开的。但是,

  其目的并不是为了保密性的提高,而是仅仅是为了增加破解的成本而已,甚至仅仅是为了让不懂行的上级认为“更安全”鹅以(滑稽脸

  。而它们中的绝大部分,也都是基于公开的密码学算法进行改进实现的(比如换条椭圆曲线啦什么的)。

  密码学问题归根结底是(加密/破解)成本问题。目前建立在证书机制上的web登录框架,甚至可以把临时会话的token更新时间压缩到1min以内,这是因为算法本身是预先部署于client和server上的,密钥的交换根本用不了太多的时间。如果算法保密,难道算法每隔一分钟在全球重新部署一次吗?

  另外,轮子哥哥@vczh的说法并不严谨。例如,我用ASIC或者FPGA实现了一套算法,总共使用了10亿个晶体管,其中绝大部分是诚心混淆用的,那么芯片的酸洗+电子显微镜快照进行破解,终归是要以年计算的时间的(依然是成本问题)。这对于部分秘密的破解来说,时间开销和设备、人力成本开销也是不可接受的。所以“软件能逆向,所以干脆算法公开”并不是密码学算法公开的理由,说的理由才是。

  最重要的是,对手早破解了,你们还蒙在鼓里,自以为安全呢,结果被对手不断利用。比如日本和德国二战失败的一个重要原因就是密码算法被破译,却长期浑然不知。

  相反,加密算法公开的一个重要原因就是,能够吸引全世界的密码学专家来研究和破解。一旦被破解,算法就会被作废。这样做的好处就是,确保你使用的算法的安全性,至少在已知的公开密码学范围内,是非常安全的。比如RSA 2048,算法原理很简单,破解方法也很简单,只要你CPU计算能力足够强,但问题是,目前世界上还找不到这么强能力的CPU,即使把这些电脑全部加起来。等CPU能力不断提升后,那就再提升一下RSA的密钥长度,比如4096位。

  当然,有些机构比如NSA,破解了也不一定会公开。这个就无解了,这种层面远不是一般的商业机构和企业需要担心的,它比拼的是国家的综合实力和数学智力。

  不是相信别国的科学家,是相信数学知识和科学真理。你知道RSA为什么安全吗?它建立在大数因式分解很困难的基础上。你知道DH为什么安全吗?它建立在离散对数求取很困难的基础上。算法都公开了,原理和代码都摆在那了,谁要你相信它国?谁要你相信它国的科学家了?自己不会看?

  首先,依赖于保密算法流程是极度不安全的,这一原则也是在经历过惨痛的教训后才得出的教训,因此我们可以看到,从之前的DES到现在广泛使用的AES和RSA,以及椭圆曲线,都是公开算法的。加密的复杂度均是依赖于数学计算的难度或者一些目前不可解的数学问题。其次,任何加密算法必须写入到软件或者硬件中才能发挥作用,但是软件可以被反汇编,硬件可以被专业搞电子的进行逆向开发洗板,一层层了解到整个电路,进而获得算法的流程,这是无法避免的。我国的电子芯片行业也凭借这个方法获得了很多突破。因此,依靠保密算法是不靠谱的。

  对了,捎带说一句,对于国密从SM1到现在的SM4,SHA256,很多算法不公开的原因不是因为我们要依靠保密算法来保密,而是我共一贯的风格,涉及到军事政治等方面的一律保密,就和前几年连部队番号都是保密的一样。

  密码学安全里除了“保密”(confidentiality),另外一个很让人困扰、觉得难以解决的问题就是“可信”(trust, 包含至少integrity和authnticatibility)。我们总需要相信些什么,比如密钥分布的平均随机性,安全的公私钥分发,受保护的信道等等。

  实际部署中,我们需要相信CA,相信系统预置的证书,相信加密算法的实现。而这些往往基于对CA维护者(可能是政府),软件厂商(微软、谷歌)的信任。这种信任,同样在不停地被专业人员(研究者、白帽子)和非专业人员不停地拷问着。

  而小范围、步步严控,又没办法向外界说明的算法以及它的评审标准,怎么取信第三方使用者?难道又是那句“不管你信不信,反正我是信了”?

  Enigma的故事已经告诉我们,靠对算法的保密提高保密性能是不靠谱的。保密还得靠保护秘钥。

  1. 召集最顶尖的专家在封闭条件下可以造出公开算法环境下更安全的算法;

  我的观点是: 那些军工技术、商业机密什么的,更多的是工程实践上技术更先进,但从基础理论看的话,是不会突破现有理论的。

  正如@之幽说的, 军方用的加密技术,算法基本上还是公开的那一些,只是说他们选取了一条特别的椭圆曲线而已。

  流体力学理论告诉大家,造飞机飞到天上是可行的,但飞机具体细节参数,就属于工程技术了;

  密码学理论告诉大家,算法这么写是难以破解的,而具体算法的细节参数(选取哪一条椭圆曲线,padding怎么填)什么的,也是工程技术。

  首先,我不认为存在所谓“最顶尖的专家”, 现代数学、计算机科学的分支是非常多的,还真不是能简单地数出来的。

  而且现代科学研究基本不是那种单个单个人的组织模式,你看到的一个个“专家”基本上都是一个一个的group,里面有助理教授、博士后、博士等等。

  更常见的情况是专家本人大概想了一个大致的思路,然后让下面小弟们具体去研究这个思路是否走得通,然后一点一点做出来的。

  只是召集若干个“专家”大抵是不行的,而召集若干个专家的group话.. 那其实就几乎是把整个领域的人给召集起来了,跟“公开”也没多大区别了。

  反正真正会去破解这些算法的人都在这个领域里,公开不公开给普通人,真没啥关系。

  先说结论:密码算法的设计是科学(数学),而安全是实践。密码算法的安全性不是一个理论问题,而是一个工程和实践问题,所以没有绝对的是或非这样的答案。

  在当前的实践中,中外各国的最高机密系统基本上都在使用未公开的加密算法。但(!)是(!),那并不是因为那些保密算法一定比目前的公开算法更优秀(呃,怎么定义“更优秀”?漏洞更少?加密占有资源占用更少而解密占有资源更多?都不一定,具体的系统各有不一样的定义和需求),而是因为保密算法在它们使用场景下的综合成本更低。

  比较两种做法:第一种是找一帮研究密码的专家设计一套算法,再找一帮很厉害的人分别做软硬件实现,然后交给那些信得过的人只在特定的场景下使用;第二种是广泛征求各方推荐和反驳,公开算法和实现,所有人都可以公开使用。

  这两种做法的安全性哪个更高呢?别急着回答。如果对密码相关行业有所了解,应该很明确地知道,第一种在包括国密办系统和NSA是广泛存在的,第二种则是NIST确定新算法(如AES和SHA-3)的基本流程。

  现在的密码学教科书都是支持公开密码算法的,然而这种支持的落脚点是密码系统的安全性不能依赖算法保密,而不是说密码算法的保密毫无意义。谁说我用保密的算法就不用密钥了?不知道算法也能破解,也并不意味着算法保密不能增加破解难度啊。

  实际上,对公开算法的研究并不是完全公开的,毕竟“科学无国界,但科学家都有自己的祖国”。就说王小云教授在公布对SHA-1攻击的进展时,就有人怀疑实际取得进展的时间要比消息披露早不少呢。软件漏洞有0-day,算法的不足也可以有,甚至一定有。

  最后要说的是,看了题主在其他答案下的回复,我的看法与很多人一样,题主并不明白自己在问的在说的到底是什么,对很多概念缺乏基本的了解。虽然我的答案可能基本满足题主的需要(2333),我还是建议题主去找本密码学教科书从头看起。。。

  专业造轮子,拉黑抢前排。/div

  我们讲句大实话,用三种不同的现有的合格的公开的对称密码学算法,组成一个复合的对称加解密系统,那么,如果这三种对称密码学都存在一些破绽(假如有),那么也很难实际攻击。

  更别提你可以加padding随机数之类的东西,甚至先gzip压缩一下,然后打乱一下。

  =============================================================

  课本讲的道理,是密码学界督促大家,没有水平,不要自己造东西,要相信久经考验的密码学算法,是经过差分、原像等复杂的攻击方法进行测试的。民用系统不要自己搞一套东西,然后设计者压根就不是密码学专家,就一个民科,那肯定出问题。

  现在要是有人直接用AES,然后分组加密算法乱来,不搭配完整性校验,那也是白搭。好的分组加密算法,不搭配好的分组模式,本身就存在一大类攻击。

  ============================================================

  想起来很久以前还有一个故事,说当时AES拿的票太多了,有人怀疑是美国国安部门插手的。这种事,人言可畏。信息安全,本来就有一个独立自主的原则。

  我个人觉得,如果军方实现自己的密码学算法的时候,能找一个好一点的框架开始做,在自己有一些密码学基础的情况下(而不是随随便便找会用密码学算法的程序员),也不会改出问题来的。

  别把密码学当作多神秘的东西。有一大堆混淆和打乱,你加多加少,安全性是降不下去的。你愿意浪费一点性能,可以做的事儿太多了。

  =============================================================

  民用密码学系统一直都重视效率,SHA3标准开始的时候,MD6就被刷下来了,因为它为了解决差分攻击,但是性能一直降不下来。Rivest甚至提出了很多优化的方法,甚至直接出面说:我觉得要求SHA3候选算法性能和SHA2相比xxxx是不合理的。

  安全和性能是折中的。你AES、RC6轮流转几圈,或者什么Feistel架构用SHA3、MD6跑两三圈,你这密码就特别难破。即使里面有一两样出了问题,也不会导致木桶效应。只是性能差一点了。

  应用密码学算法要讲场景的,做网络安全也是要讲场景的。我觉得我这个场景对安全要求很高,我就像预防未知风险,我就是多个算法组合一起来推,我性能开销是大了一点,我的可用性和便利性虽然下降,但是我的安全性绝对下不去那么多。

  再说了,现在的对称加密算法,分组长度就已经太小了。现在公钥密码学可以载的分组长度不小了,完全可以设计分组长度更大的算法。你分组长度大,不管如何中间相遇攻击就变困难了啊,这样你用密码系统组合就更有效了啊。

  =============================================================

  前面巍然说的是公钥密码学。其实如果有朝一日,shor算法实现了(虽然作为支持曹珍富老师的派别认为这件事不会发生),那我们的公钥密码学,许多公钥密码学上的算法,也不安全。

  我个人上述内容不考虑公钥密码学。军事上,我觉得也不应该用那么多公钥密码学。

  对称密码学让我觉得可靠一些。公钥密码学和对称密码学,很大程度上压根是两套理论。

  =============================================================

  如果楼主真是想多获得点反方意见而不是只是为了辩论,我这里加一句。但是我绝对不会再辩论下去了。

  现在的密码学已经是非常分工仔细的工作了,任何一个人都只能在某一个领域牛。而且任意找几个顶级大学的博士,也会比某些几十年的专家在某一方面牛那么一点点。

  密码学目前都是基于限门的,限门的成立大部分并没有数学上严谨的证明。所以不停的会有研究结果发现限门在某些小场景下用某种特殊的攻击方法能够成功。所以rsa有很多坑,并不是可以随便用。而这些坑的发现不是每个顶级专家有功夫去做的。专家再牛也需要一定的工作量去做事情。“人数*牛b程度*工作时间”才能得到有效的结果。工作时间包括现在的和历史的。牛b程度达不到百万倍吧,人数x历史时间能

http://homeschoolwwh.com/suanfabaomi/525.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有