通付盾--全球领先数字化安全服务提供商 覆盖数字身份安全、业务安全、数据安全、终端安全的数字化安全框架
信息安全资讯
QQ咨询 在线咨询 400-8318-116 免费申请试用

安全资讯

通付盾加密实验室的那些密码精灵们

来源:本站原创 时间:2019-06-26 作者:adminX

    2019年6月25日,十三届全国人大常委会第十一次会议初次审议了中国密码法草案,草案提出,密码分为核心密码、普通密码和商用密码,实行分类管理;特定范围的商用密码实行进口许可和出口管制。


    《密码法(草案)》中的密码,是指使用特定变换对信息等进行加密保护或者安全认证的产品、技术和服务。密码主要功能有两个:一个是加密保护,另一个是安全认证。


    (1)加密保护是指使用数学变换,将原来可读的信息变成不能识别的符号序列。简单地说,加密保护就是将明文变成密文。

    (2)安全认证是指使用数学变换,确认信息是否被篡改、是否来自可靠信息源以及确认行为是否真实。简单地说,安全认证就是确认主体和信息的真实可靠性。


    通付盾加密实验室从2013年组建之初,就一直坚定的以保护广大网民的用户身份和隐私为己任,历时多年,走了很多的弯路,而且长期研究密码及其应用是非常枯燥无味的,这一重磅消息的发出,着实让通付盾加密实验室的小伙伴们欣喜若狂。


    密码的世界是异常美丽和灵动的,这种美丽来源于各种变幻和精绝的巧合;研究密码的过程是一个了解世界的过程,世间万物的规则都藏匿在一系列公式和参数中,等待着我们去了解和运用。今天就让我们来扒一扒加密实验室的那些密码精灵们。


密码应用


    通付盾加密实验室承载了公司对于身份认证和隐私保护相关产品的研发任务。在身份认证领域,国密算法体系的应用以及与区块链去中心化技术的结合组成了通付盾多因子身份认证、身份网关、身份证明等一系列产品的安全基础。


SM2椭圆曲线算法


   由国家密码管理局于2010年12月17日发布,全称为椭圆曲线算法。椭圆曲线并不是椭圆,之所以称为椭圆曲线是因为它们是用三次方程来表示的,并且该方程与计算椭圆周长的方程相似。我国国家密码管理局在ECC算法的基础上提出了SM2算法。相比于一般的ECC算法,SM2算法对加密运算过程进行了修改,提升了复杂度,进一步加强了安全性。而且SM2算法中的加密运算使用国产的加密设备实现,拥有完全的自主权,保证了国家信息体系的安全性。


SM3信息摘要算法


   摘要函数在密码学中具有重要的地位,被广泛应用在数字签名、消息认证、数据完整性检测等领域。摘要函数通常被认为需要满足三个基本特性:碰撞稳固性、原根稳固性和第二原根稳固性。2005年,Wang等人给出了MD5算法和SHA-1算法的碰撞攻击方法,现今被广泛应用的MD5算法和SHA-1算法不再是安全的算法。SM3密码摘要算法是中国国家密码管理局2010年公布的中国商用密码杂凑算法标准。SM3算法适用于商用密码应用中的数字签名和验证,是在SHA-256基础上改进实现的一种算法。SM3算法采用Merkle-Damgard结构,消息分组长度为512位,摘要值长度为256位。SM3算法的压缩函数与SHA-256的压缩函数具有相似的结构,但是SM3算法的设计更加复杂,比如压缩函数的每一轮都使用2个消息字。现今为止,SM3算法的安全性相对较高。


SM4分组密码算法


    是用于无线局域网和可信计算系统的专用分组密码算法,该算法的分组长度为128比特,密钥长度为128比特。SM4算法是我国制定WAPI标准的组成部分,同时也可以用于其它环境下的数据加密保护。


    通付盾加密实验室在深入理解SM系列算法的原理和特点的基础上,对其进行深入的技术实现及运用,在性能和安全性上均取得一定的突破,并运用于身份认证的关键环节中。例如,在通付盾多因子身份认证产品HUE中,就是基于SM2、SM3、SM4在移动互联网时代构建起坚固的身份认证密码体系。


1.jpg


    在隐私保护方面,与数据和隐私加密封锁的思路不同,通付盾加密实验室更多的研究和使用的是能解决隐私保护和数据利用冲突的密码算法。


代理重加密(ProxyRe-Encryption)


    一个PRE方案可由五个算法组成:KeyGen,ReKeyGen, Encrypt, ReEncrypt, Decrypt.


    (1)密钥生成算法KeyGen(1k) →(pki, ski) :输入安全参数1k,k∈K,KeyGen为用户i输出一对公私钥(pki, ski)


    (2)代理重加密密钥生成算法ReKeyGen(pkA, skA, pkB, skB) →rkA→B :输入Alice的公私钥对(pkA,skA)和Bob的公私钥对(pkB, skB),ReKeyGen输出一个代理重加密密钥rkA→B。此时,Alice是委托者,Bob是被委托者。


    (3)加密算法Encrypt(pki, m) →ci :输入用户i的公钥pki以及消息m∈M,Encrypt算法输入消息m的密文c_i∈C_1。


    (4)代理重加密算法ReEncrypt(rkA→B, cA)→cB :输入一个代理重加密密钥rkA→B和Alice的密文cA,ReEncrypt输出针对Bob的重加密密文c_B∈C_2。


    (5)解密算法Decrypt(ski, ci) →m:输入用户i的私钥ski和密文ci,Decrypt输出消息m或者错误符号⊥表明密文ci不合法。


    在代理重加密系统中,一个拥有代理重加密密钥rkA→B的半可信代理者能够将Alice公钥下的密文c_A∈C_1重加密为Bob公钥下针对同一明文m∈M的密文c_B∈C_2。然后,Bob能够解密并获得消息m∈M,同时,该代理者无法获得任何信息(如skA,skB和m)。


同态加密(HomomorphicEncryption)


    封锁式的加密方案关注的都是数据存储安全。即,我要给其他人发个加密的东西,或者要在计算机或者其他服务器上存一个东西,我要对数据进行加密后在发送或者存储。没有密钥的用户,不可能从加密结果中得到有关原始数据的任何信息。只有拥有密钥的用户才能够正确解密,得到原始的内容。我们注意到,这个过程中用户是不能对加密结果做任何操作的,只能进行存储、传输。对加密结果做任何操作,都将会导致错误的解密,甚至解密失败。同态加密方案最有趣的地方在于,其关注的是数据处理安全。同态加密提供了一种对加密数据进行处理的功能。也就是说,其他人可以对加密数据进行处理,但是处理过程不会泄露任何原始内容。同时,拥有密钥的用户对处理过的数据进行解密后,得到的正好是处理后的结果。


     同态加密-RSA的实现方案:


    (1)密钥生成算法

    随意选择两个大的质数p和q,p不等于q,计算N=pq。根据欧拉函数,求得r = (p-1)(q-1)。选择一个小于r的整数 e,求得e关于模r的模反元素,命名为d。(模反元素存在,当且仅当e与r互质)将 p 和 q 的记录销毁。(N,e)是公钥,(N,d)是私钥。


    (2)加密算法

    假设Bob想给Alice送一个消息m,他知道Alice产生的N和e。他使用起先与Alice约好的格式将m转换为一个小于N的整数n,比如他可以将每一个字转换为这个字的Unicode码,然后将这些数字连在一起组成一个数字。假如他的信息非常长的话,他可以将这个信息分为几段,然后将每一段转换为n。用下面这个公式他可以将n加密为c:n^e  ≡ c (mod N),Bob算出c后就可以将它传递给Alice。


    (3)解密算法

    Alice得到Bob的消息c后就可以利用她的密钥d来解码。她可以用以下这个公式来将c转换为n:c^d  ≡ n(mod N),得到n后,她可以将原来的信息m重新复原。


    (4)乘法同态性

    对于明文m_1和m_2,加密后密文为c_1=〖m_1〗^e (mod N)和c_2=〖m_2〗^e (mod N)。则c_1∙c_2 (mod N)=〖m_1〗^e∙〖m_2〗^e (mod N)=(m_1∙m_2 )^e  (mod N)解密后即为m_1∙m_2。


零知识证明(zero-knowledge proof)


    零知识证明实质上是一种涉及两方或更多方的协议,即两方或更多方完成一项任务所需采取的一系列步骤。证明方向验证方证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证方泄漏任何关于被证明消息的信息。大量事实证明,零知识证明在密码学中非常有用。如果能够将零知识证明用于验证,将可以有效解决许多问题。


    一个常用的零知识证明实现算法(如zk-SNARKs)大体由四部分组成:


    (1)多项式问题的转化

     需要证明的问题转化为多项式问题 t(x)h(x)=w(x)v(x),证明者提交证明让验证者确认多项式成立。


    (2)随机取样验证

    验证者随机取样秘密的验证数值s,将多项式乘法和多项式函数相等的验证减小到数值上的简单的乘法和等值验证:t(s)h(s)=w(s)v(s)。相对于验证多项式相等t(s)h(s)=w(s)v(s),随机取样验证,简单,验证数据少。随机挑选验证,安全性肯定不及多项式等式验证,但如果确实足够随机,安全性还是相当高的。


    (3)同态编码/加密

    使用具有一些同态性质的编码/加密函数E,但不是全同态加密,这允许在不知道s的情况下计算E(t(s)), E(t(s)), E(t(s)), E(t(s))。“同态”是函数的特殊性质,包括加法同态性和乘法同态性。加法同态性指E(x+y)可以由E(x)和E(y)计算出来,乘法同态性指E(x∙y)可以由E(x)和E(y)计算出来。


    (4)零知识

    证明者和验证者之间除了“问题证明与否”知识外,不知道其他任何知识(不知道随机挑选值,不知道挑选值的多项式计算结果等等)。


    与数据和隐私加密封锁的思路不同,通付盾加密实验室更多的研究和使用的是如何解决隐私保护和数据利用之间的冲突问题,与区块链机器信任机制的结合进一步提高了如上算法实现的可靠性与可用性。


2.jpg


密码发明


时空码


    早在2013年,通付盾团队就申请了“一种云密码系统及其运行方法”(专利号:201310083174.4)和“一种短动码的实现方法及其应用”(专利号201310391105.X)的发明专利,并分别于2015年1月和5月获得专利授权。这些发明专利也是通付盾“时空码”产品的技术原型,目前搭载“时空码”的通付盾多因子身份认证产品已在金融、物流、医疗健康领域发挥着重要的作用,作为这些行业客户数字化转型的“守门人”,保护用户的数字身份和网络财产安全。如在云密码的发明专利申请申请书中描述:


3‘.jpg


3.jpg4.jpg


基于区块链的身份认证及隐私保护系统


    充分吸收和结合以密码学、Bitcoin为代表的国际开放技术社区多年来的技术积累与理论突破,包括诸如 zkSNARK,基于椭圆曲线的双线性配对理论、快速区块广播、隔离见证、Merkle跳表快速检索等技术。参与身份认证的各方均可加入区块链,通过共识协议完成(认证节点、用户节点及其他服务节点)身份的管理,兼顾用户个人隐私保护与监管是系统重点关注的问题,通过采用基于双线性配对理论的信息隐藏技术、zkSNARK零知识证明技术,用户可选择将一部分个人隐私信息加密隐藏后提交作为身份凭据的一部分。如此一来,即便认证节点 被攻击,也不会导致用户隐私信息泄露。


5.jpg


    密码是国之重器,尤其在这个关注信息安全、关注用户数据保护的新时代。密码又是数字精灵,具有巧夺天工之美和鬼斧神工之力!

                                                                    ————通付盾加密实验室



通付盾加密实验室简介


    通付盾加密实验室成立于2013年,团队由毕业于威斯康星麦迪逊、斯坦福、中国科学技术大学、同济大学等国内外顶尖院校的研究人员及学者组成,是国内最早一批研究区块链及相关加密技术的团队,长期从事数字身份认证、数据隐私保护等领域的技术研究及产品开发,致力于打造数字经济时代的身份及隐私安全基础设施。积极参与相关标准制定工作,承接并成功结项央行重点研究课题和创新应用示范项目。区块链专利数量国际领先。


    通付盾加密实验室运用基于区块链、可验证声明、零知识证明、安全多方计算、代理重加密等技术研发了数据安全区块链-铠链(KeyChain)和去中心化数字身份DAPP-通付盾(AuthID),2018年3月已成功上线。致力于保护用户数字身份主权和数据隐私安全。


帮助文档
联系我们
  • 商务咨询:info@tongfudun.com
  • 售后服务:service@tongfudun.com
  • 市场合作:info@tongfudun.com
  • 英才招聘:jobs@tongfudun.com
  • 蓝海基金:bp@tongfudun.com
  • 联系电话:400-831-8116
随时随地了解通付盾动态 敬请关注:

通付盾
官方微博

通付盾
官方公众号