密码算法最新动态

admin 4769 28
密码算法最新动态

百度网盘课程

通用入口链接!10000G.课程都有!一起学习吧!

立即点击↓ 获取课程!

密码算法最新动态与算法

徐丽娟中国软件测试中心

一、“密码”和“密码”

现实生活中提到的“密码”这个词,比如开机密码、微信密码、银行卡支付密码,其实都是密码。密码只是进入个人电脑、手机、电子邮件或个人银行账户的“通行证”。这是一种简单而基本的身份认证手段。这些密码不同于《密码法》草稿中的“密码”。真正的“密码”隐藏在安全的支付设备和网络系统中,默默守护着国家机密信息的安全和我们每个人的信息安全。

《密码法》中的密码是指使用特定转换方法对信息进行加密和保护的产品、技术和服务等。《密码法》由5章44条组成,将密码分为核心密码、普通密码和商业密码。其中,核心密码和普通密码用于保护国家秘密信息,核心密码保护信息的最高密级为绝密级,普通密码保护信息的最高密级为机密级。核心密码和常用密码都是国家机密。密码管理部门应当依照本法及相关法律、行政法规和国家有关规定,对核心密码和常用密码进行严格统一管理。商业密码用于保护不属于国家机密的信息。公民、法人和其他组织可以依法使用商业密码保护网络和信息安全。

二、商业密码

国内自主开发的商用密码算法主要有:ZUC、SM2、SM3、SM4、SM9等。这些密码算法涵盖了串行密码、分组密码、非对称密码中的椭圆曲线密码和密码哈希算法,它们的结合可以为需要密码技术作为支撑的各种工业应用提供坚实可靠的基础。

1.对称密码算法

序列密码ZUC(祖冲之)算法和分组密码(SM4)算法属于对称密码算法,即一个加密方和一个解密方分别使用相同的密钥进行加密和解密,从而提供保密性保证。

ZUC算法目前主要应用于通信领域。2011年9月,基于我国ZUC算法的加密算法128-EEA3和完整性保护算法128-EIA3,与美国和欧洲的AES一起,成为4G移动通信密码学的国际标准。

SM4算法最初是作为中国独立无线局域网的安全标准WAPI的专用密码算法发布的,后来成为分组密码算法的国家行业标准。自SM4算法最初用于无线局域网芯片的WAPI协议以来,支持SM4算法的WAPI无线局域网芯片有350多种型号,全球累计出货量超过70亿。在金融领域,仅支持SM4算法的智能密钥出货就超过1.5亿。

2.非对称密码算法

非对称密码算法也称为公钥密码算法。公钥密码算法包括公钥加密和私钥签名(即数字签名,可以保证真实性和不可否认性),打破了对称密码算法必须使用同一密钥进行加密和解密的限制。公钥加密算法使用不同的密钥进行加密和解密。其中加密的密钥是公开的,称为公钥;解密的密钥是保密的,称为私钥。公钥和私钥密切相关,公钥可以从私钥中导出,但从公钥中导出私钥在计算上是不可行的。SM2算法(椭圆曲线公钥密码算法)和SM9算法(身份密码算法)是我国颁布的商业密码标准算法中的公钥密码算法。国外常见的公钥密码算法有RSA和算法。

基于SM2算法的数字签名技术在我国电子认证领域得到了广泛的应用。SM2算法于2017年被国际标准化组织(ISO)采用,并成为国际标准-3的一部分。SM9算法取用户身份(如邮箱地址、手机号、QQ号等)。)作为公钥,不需要数字证书、证书库或密钥库,省略了交换数字证书和公钥的过程,使得安全系统易于部署和管理,非常适合端到端离线安全通信、云数据加密、基于属性的加密、基于策略的加密等各种场合。与SM2算法一起,SM9数字签名算法于2017年被国际标准化组织采用,并成为国际标准-3的一部分。

3.密码散列算法

密码哈希算法,也称为哈希函数、哈希算法和哈希函数,是将任意长的输入字符串转换为固定长的输出字符串的函数。中国商用密码标准中的密码哈希算法是SM3算法,2018年10月成为国际标准。SM3算法的输出长度固定在256位。输入长度理论上是无限的。实际上,根据填充规范的要求,输入长度不能超过264位。仅使用SM3算法不能提供完整性保护,需要与key一起使用,即带key的hash算法(HMAC):使用hash算法,将一个key和一条消息作为输入,生成一条消息摘要作为输出。HMAC可用作数据完整性检查,以检查数据是否未经授权而被更改。它还可以用于消息认证,以确保消息来源的合法性。

SM3算法应用广泛。比如智能电网领域,使用SM3算法的智能电表接近10亿用户,都可以安全稳定运行。金融系统约7亿张银行磁条卡更新为密码芯片卡,发行动态代币7726万张。这些卡和代币都使用SM3算法。

第三,密码的等级保护

中国软件测试中心连续四年被评为网络安全等级保护评估机构先进单位。我们可以看到,级别保护中有很多与密码相关的要求。-2019 《信息安全技术网络安全等级保护基本要求》中与密码相关的要求如密码算法最新动态下:

1.真实性

在通信之前,通信双方都应该基于密码学进行验证或认证。

应使用密码、密码学和生物技术等两种或两种以上的认证技术对用户进行认证,至少应通过密码学实现一种认证技术。

2.保密

应采用密码技术来保证通信过程

数据的保密性。

应采用密码技术保证重要数据在传输过程中的保密性,包括但不限于鉴别数据、重要业务数据和重要个人信息等;

应采用密码技术保证重要数据在存储过程中的保密性,包括但不限于鉴别数据、重要业务数据和重要个人信息等。

  3.完整性

应采用校验技术或密码技术保证通信过程中数据的完整性;

应采用密码技术保证重要数据在传输过程中的完整性,包括但不限于鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等;

应采用密码技术保证重要数据在存储过程中的完整性,包括但不限于鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等;

  (4)不可否认性

在可能涉及法律责任认定的应用中,应采用密码技术提供数据原发证据和数据接收证据,实现数据原发行为的抗抵赖和数据接收行为的抗抵赖。

(5)密码管理要求

应确保密码产品与服务的采购和使用符合国家密码管理主管部门的要求。

应进行上线前的安全性测试,并出具安全测试报告,安全测试报告应包含密码应用安全性测试相关内容。

  密码管理应遵循密码相关国家标准和行业标准;

密码管理应使用国家密码管理主管部门认证核准的密码技术和产品。

(6)利用密码技术可以有效解决的问题

可信验证:可基于可信根对系统引导程序、系统程序、重要配置参数和边界防护应用程序等进行可信验证,并在应用程序的所有执行环节进行动态可信验证,在检测到其可信性受到破坏后进行报警,并将验证结果形成审计记录送至安全管理中心,并进行动态关联感知;应采用可信验证机制对接入到网络中的设备进行可信验证,保证接入网络的设备真实可信

远程管理:当进行远程管理时,应采取必要措施防止鉴别信息在网络传输过程中被窃听

集中管理:应能够建立一条安全的信息传输路径,对网络中的安全设备或者安全组件进行管理。

  四、小结

当今密码技术在保护信息安全方面的应用越来越广泛,促使云计算、大数据、人工智能、区块链、移动互联网、物联网等新技术产业蓬勃发展。相信随着《中华人民共和国密码法》的颁布与实施、等级保护制度的实施,我国数字经济将继续高质量发展。

[责编:战钊]

区域链和区块链一样吗 区块链技术的应用

区块链作为一种新技术,越来越受到人们的关注。它是传统技术在互联网时代的新应用,包括分布式数据存储技术、共识机制和密码学。随着各种区块链研究联盟的建立,相关研究得到了越来越多的资金和人员的支持。区块链的应用已经扩展到很多领域,其在金融行业的应用也引起了很多关注。金融行业是我国网络安全的重点行业之一,系统和数据安全非常重要。因此,区块链技术在安全层面面临的挑战值得深入研究。

报告首先详细介绍了区块链密码算法,然后分析了区块链面临的安全问题,最后从不同角度对针对区块链的攻击进行了全面的分析和研究。经过分析,在平台安全、匿名和隐私、技术壁垒等方面存在许多亟待解决的问题。这些问题是区块链技术应用到更多核心领域需要关注和解决的关键问题,值得进一步探索和深入研究。

区块链密码算法

以下是对区块链使用的哈希算法、零知识证明和环签名等密码算法的详细分析。

1.散列算法

哈希算法是区块链的基本技术。哈希函数的本质是将一组任意长度(有限)的数据映射到一组定义长度的数据流。如果该函数也满足:

(1)任意输入的一组数据的Hash值的计算非常简单;

(2)很难找到哈希值相同的两个不同的数据。

满足上述两个属性的哈希函数也称为加密哈希函数。哈希函数通常是指没有矛盾时的加密哈希函数。对于哈希函数,找到它被称为冲突。流行的散列函数是MD5、SHA1、SHA2和SHA3。

比特币使用的是大多数区块链系统使用的算法。所以这里简单介绍一下。

1.算法步骤

:附加填充位。填充消息,使消息长度与448模512(长度=)一致,要填充的位数范围从1到512,填充位串的最高位是1,其余位是0。

:附加长度值。将64位表示的初始消息(填充前)的位长度附加到步骤1的结果(低位字节优先)。

:初始化缓存。256位缓存用于存储哈希函数的中间结果和最终结果。

:处理512位(16个字)数据包序列。该算法使用六个基本逻辑函数,由64次迭代运算组成。每一步都以256位缓存值为输入,然后更新缓存内容。每一步都使用一个32位的常量Kt和一个32位的Wt。其中Wt是包,t=1,2,16。

第五步:所有512位数据包处理完毕后,SHA256算法最后一个数据包的输出是256位报文。

密码算法最新动态与算法

哈希函数作为加密和签名系统的核心算法,其安全性关系到整个区块链系统的底层安全性。因此,有必要关注哈希函数的研究现状。

2.哈希函数的研究现状

2004年,中国密码学家王小云演示了MD5算法的碰撞,并给出了第一个例子(碰撞函数MD4 4,MD5,HAVAL-128andRIPEMD,CRYPTO 2004的尾部会话,how to breakmd 5 AnDover HashFunction,EuroCrypt2005)。攻击的复杂度很低,在普通电脑上只需要几秒钟。2005年,王小云教授及其同事针对SHA-1算法提出了一种碰撞算法,但计算复杂度为2的63次方,在实际情况下难以实现。

2017年2月23日,谷歌安全博客发布了全球首个公开的SHA-1哈希碰撞例子。经过两年的联合研究和巨大的计算机时间,研究人员在他们的研究网站marked上给出了两个内容不同但SHA-1消息摘要相同的PDF文件,这意味着在理论研究长期警告SHA-1算法之后,SHA-1算法的实际攻击案例也浮出水面,这也标志着它的出现。

2007年,NIST官方宣布将在全球范围内收集下一代密码的新哈希算法,并举办SHA-3竞赛。新的哈希算法将被称为SHA-3,作为一种新的安全哈希标准,它增强了现有的FIPS180-2标准。算法提交于2008年10月结束,NIST分别于2009年和2010年举行了两轮会议,通过两轮筛选选出进入最后一轮的算法,最终在2012年宣布了获胜算法。公开竞争的整个过程都是仿照高级加密标准AES的收集过程。2012年10月2日,凯克被选为NIST竞赛的获胜者,成为SHA-3。

Keccak算法由SHA-3候选人于2008年10月提交。Keccak使用创新的海绵引擎来散列消息文本。它设计简单,便于硬件实现。Keccak可以以2n的最小复杂度抵抗攻击,其中n为哈希大小。它有很大的安全范围。到目前为止,第三方密码分析表明,Keccak没有严重的弱点。

KangarooTwelve算法是最近提出的Keccak变体。其计算轮次已减少到12轮,但与原算法相比,其功能并未调整。

二、零知识证明

在密码学中,零知识证明(ZKP)是一方使用的一种策略,用来向另一方证明它知道一条消息X,而不泄露与X有关的任何其他内容

,其中前者称为证明者(Prover),后者称为验证者(Verifier)。设想一种场景,在一个系统中,所有用户都拥有各自全部文件的备份,并利用各自的私钥进行加密后在系统内公开。假设在某个时刻,用户Alice希望提供给用户Bob她的一部分文件,这时候出现的问题是Alice如何让Bob相信她确实发送了正确的文件。一个简单地处理办法是Alice将自己的私钥发给Bob,而这正是Alice不希望选择的策略,因为这样Bob可以轻易地获取到Alice的全部文件内容。零知识证明便是可以用于解决上述问题的一种方案。零知识证明主要基于复杂度理论,并且在密码学中有广泛的理论延伸。在复杂度理论中,我们主要讨论哪些语言可以进行零知识证明应用,而在密码学中,我们主要讨论如何构造各种类型的零知识证明方案,并使得其足够优秀和高效。

在1985年,ShafiGoldwasser,SilvioMicali和CharlesRackoff发表的TheKnowledgeComplexityofInteractiveProof-System一文中首次提出了零知识证明的概念。文章中引入了交互证明系统(interactiveproofsystem)模型并构思了知识复杂性(knowledgecomplexity)这一概念(即证明方传递给验证者知识量的度量)。同时作者给出了几种可以运用于零知识证明的具体困难问题--二次非剩余问题。之后的相关工作表明所有多项式时间内可以被验证的判定性问题(NP问题)都存在零知识证明。更进一步,任何可以通过交互式证明系统证明的判定性问题(IP问题)和多项式空间内可判定的问题(PSPACE问题)是等价的,并且都有零知识证明。目前除了交互式零知识证明以外,还有两个主要变种:并行零知识证明和非交互零知识证明。

Zcash是首个使用零知识证明机制的区块链系统,能够提供完全的支付保密性,使用公有区块链来维护一个去中心化的网络,Zcash与比特币有一定的相似性,相同的是Zcash的代币ZEC总量是2100万元,不同的是Zcash交易的时候自动隐藏区块链上所有交易的发送者、接受者以及数额,只有拥有查看密钥的人才能看到交易的内容,用户具有完全的控制权,可以自行选择向其他任何一个人提供查看的密钥。

Zcash的原理就是在比特币交易的区块链的主链上加上一条侧链,这条侧链可以将付费者和收款者在数字货币的交易过程中把数字货币分成好几份,再重新在全网上发一遍,达到完全匿名交易的目的。采用了POW的分配方式,在前四年旷工的挖矿所得有20%会自动分配给Zcash的团队以及投资者的,与比特币等数字货币不同的是Zcash更加注重隐私和对交易透明的可控性。Zcash系统允许用户进行私人交易,也能维护支持交易的完整性,Zcash项目的出现,解决了比特币的监视风险,为比特币公开交易记录监控风险提供了解决方案。

三、环签名群签名

1、群签名

在一个群签名方案中,一个群体中的任意一个成员可以以匿名的方式代表整个群体对消息进行签名。与其他数字签名一样,群签名是可以公开验证的,且可以只用单个群公钥来验证。群签名一般流程:

(1)初始化,群管理者建立群资源,生成对应的群公钥(GroupPublicKey)和群私钥(GroupPrivateKey)群公钥对整个系统中的所有用户公开,比如群成员、验证者等。

(2)成员加入,在用户加入群的时候,群管理者颁发群证书(GroupCertificate)给群成员。

(3)签名,群成员利用获得的群证书签署文件,生成群签名。

(4)验证,同时验证者利用群公钥仅可以验证所得群签名的正确性,但不能确定群中的正式签署者。

(5)公开,群管理者利用群私钥可以对群用户生成的群签名进行追踪,并暴露签署者身份。

2、环签名

2001年,Rivest,shamir和Tauman三位密码学家首次提出了环签名。是一种简化的群签名,只有环成员没有管理者,不需要环成员间的合作。环签名方案中签名者首先选定一个临时的签名者集合,集合中包括签名者。然后签名者利用自己的私钥和签名集合中其他人的公钥就可以独立的产生签名,而无需他人的帮助。签名者集合中的成员可能并不知道自己被包含在其中。

环签名方案由以下几部分构成:

(1)密钥生成。为环中每个成员产生一个密钥对(公钥PKi,私钥SKi)。

(2)签名。签名者用自己的私钥和任意n个环成员(包括自己)的公钥为消息m生成签名a。

(3)签名验证。验证者根据环签名和消息m,验证签名是否为环中成员所签,如果有效就接收,否则丢弃。

环签名满足的性质:

(1)无条件匿名性:攻击者无法确定签名是由环中哪个成员生成,即使在获得环成员私钥的情况下,概率也不超过1/n。

(2)正确性:签名必需能被所有其他人验证。

(3)不可伪造性:环中其他成员不能伪造真实签名者签名,外部攻击者即使在获得某个有效环签名的基础上,也不能为消息m伪造一个签名。

3、环签名和群签名的比较

(1)匿名性。都是一种个体代表群体签名的体制,验证者能验证签名为群体中某个成员所签,但并不能知道为哪个成员,以达到签名者匿名的作用。

(2)可追踪性。群签名中,群管理员的存在保证了签名的可追踪性。群管理员可以撤销签名,揭露真正的签名者。环签名本身无法揭示签名者,除非签名者本身想暴露或者在签名中添加额外的信息。提出了一个可验证的环签名方案,方案中真实签名者希望验证者知道自己的身份,此时真实签名者可以通过透露自己掌握的秘密信息来证实自己的身份。

(3)管理系统。群签名由群管理员管理,环签名不需要管理,签名者只有选择一个可能的签名者集合,获得其公钥,然后公布这个集合即可,所有成员平等。

区块链安全性研究

尽管区块链的防篡改、分布式存储、用户匿名等技术优势为其发展应用提供了大量的创新空间,但目前区块链技术在各领域的应用模式仍处于大量探索阶段,其深入应用仍需漫长的整合和发展过程。区块链技术本身仍存在一些内在安全风险,去中心化、自组织的颠覆性本质也可能在技术应用过程中引发一些不容忽视的安全问题。其主要分为系统安全和应用安全两大类。

一、系统安全

系统安全主要指的是底层代码安全、密码算法的安全以及共识机制的安全。底层代码安全是其应用和再开发的保障,其底层代码的漏洞对于其区块链项目的打击是致命,需要及时地进行修补。密码算法的安全是区块链不可篡改性和匿名性的一个保证,密码协议永远是跟随着当前科技的发展不断变化的,在量子时代,需要研究更加安全的抗量子密码协议确保密码算法的安全。在共识算法的设计中存在着著名的Trilemma(三难问题),即Secure(安全性)、Scalability(可扩展性)和Decentralization(去中心化)三者不可兼得,而目前几乎所有的区块链项目都遇到这种挑战。

1、底层代码的安全性

区块链底层相当于操作系统,由于开发者在开发过程中的疏忽造成的系统漏洞极大程度上影响系统的安全性,并且区块链的更新十分繁琐和困难,出现漏洞后的更新很可能造成硬分叉,因此底层代码的安全性十分重要。2018年8月的BitcoinABC(Bitcoincash全节点执行的开源代码)代码漏洞事件向我们展现了底层代码漏洞的危害性。根据BitcoinABC的官方报告,黑客可以通过这个漏洞构建一个恶意交易,该交易将被某一特定版本的BitcoinABC接收,但会被其他所有版本的比特币现金拒绝。这样一个漏洞的结果可能是形成比特币现金的分叉,即使使用敏感版本的矿工接受了恶意交易,其他矿工也不会接受的。BitcoinABC表示他们已经直接向相关的矿业池运营商提供了补丁。这一事件说明漏洞总是会发生,但在重构这样一个关键代码时,应该花更多的时间和精力进行代码审查。

2、密码算法的安全性

随着量子计算机的发展将会给现在使用的密码体系带来重大的安全威胁。区块链主要依赖椭圆曲线公钥加密算法生成数字签名来安全地交易,目前最常用的ECDSA、RSA、DSA等在理论上都不能承受量子攻击,将会存在较大的风险,越来越多的研究人员开始关注能够抵抗量子攻击的密码算法。

3、共识机制的安全性

对于一个共识协议,要满足以下三个特性:

CommonPrefix:对于任何两个诚实节点,他们的本地视图除却最后有限个块之后,所有诚实节点看到的链的视图是一致的。

ChainGrowth:保证区块链能够正常的增长,并且增长速度稳定。

ChainQuality:对于一条链,任意截取其中一段,总有一部分是诚实节点产生的块。

以下列出目前一些针对共识的攻击手段。

3.151%攻击

在比特币中,若恶意用户控制节点中大多数的计算资源(超过51%),就有能力新改写整个公有账本,这被称为51%攻击。由于区块链网络的开放性和当前整个网络的算力不均衡性,尤其是专业挖矿芯片公司的产生与大矿池的形成,使其发生51%攻击的可能性显著提高。51%攻击会引发对于区块链的破坏以及对整个密码货币的破坏,不管攻击成功与否都会让其置于自私挖矿,双花攻击,分叉攻击等危险之下。

最近Horizen团队,对于51%攻击提出了其创新的解决方案:通过延时函数升级他们的工作量验证共识算法,来处罚蓄谋这种攻击的矿工。

3.2自私挖矿

比特币的经济激励机制和自身的去中心化的特性是比特币系统依然能够良好运行的关键。但是,由于矿工的逐利性和当前比特币系统算力的不均衡,使得当前比特币系统受到了严峻的挑战,以色列学者IttayEyal在2014年提出了自私挖矿(selfishmining)的攻击方式。攻击者只要能控制全网超过1/3的算力,就可以发起自私挖矿攻击,获取更大的收益,并对网络安全造成威胁。

最近,康奈尔大学两位研究员CyrilGrunspan和RicardoPerez-Marco的论文中通过探讨攻击向量与时间的关系,给出其相应的解决方案。

3.3分区攻击

在P2P网络里,只要控制一定数量的节点,就可以进行EclipseAttack[,从而发起51%攻击,控制整个网络。这是一种分区攻击。分区攻击通过区块链部分网络的完全隔离实现即使当前控制的算力小于51%,但仍能发起51%攻击。由于分区攻击发起的前提为控制被隔离网络的所有节点,所以攻击成本较大,分区攻击并不是单独发起的往往伴随着双花,自私挖矿等攻击,使其攻击者获得较大利益。

3.4NAS攻击(Nothingatstake)

针对PoW共识算法的出现的算力集中问题,PoS的提出在一定程度上解决了上述问题

相关阅读

  • 基于国密算法 李大为老婆赵怡然
  • 5g最新披露 5G套餐签约用户超87万户
  • 电脑密码怎么设置 密码
  • 开密码算法最新动态发算法 他们工作是如何合作的
  • 区域链和区块链一样吗 区块链技术的应用
  • 2020热议 热议
  • 合肥工业大学是双一流大学吗? 做实高质量党建
  • 2020年将加快郑州大学、大学“双一流”建设 加快郑州大学、河南大学“双一流
  • 密码算法最新动态
  • 版权声明:内容来源于互联网和用户投稿 如有侵权请联系删除

    本文地址:http://0561fc.cn/17256.html

    标签: #密码算法最新动态