一种针对密文数的运算方法及系统技术方案

技术编号:14235734 阅读:298 留言:0更新日期:2016-12-21 09:42
本发明专利技术涉及一种针对密文数的运算方法及系统,其中针对密文数的运算方法:当一个计算组件或装置进行包含密文数的代数运算时,计算组件或装置先从要运算的数导出n组数,每组数中包含有密文数,然后将n组数分别提交到n个密码服务器请求进行对应的代数运算;n个密码服务器接收到每组数后,分别解密其中的密文数,然后分别利用解密后得到的明文数进行计算组件或装置要求的运算,并将计算结果的密文数返回给计算组件或装置;计算组件或装置接收到n个密码服务器返回的密文数结果后,利用同态加密的加法运算得到最后的运算结果。本发明专利技术能在仅使用加法同态加密算法并不泄露参与运算的密文数的原明文数的情况下,实现密文的乘、除及幂运算。

Operation method and system for cipher number

The invention relates to a method and system for computing the number of computing method of the ciphertext, for ciphertext number: when a component or device algebra calculation contains ciphertext number, computing component or device from the number of operations to export n groups, each group contains a number of ciphertext number, then n number of groups were submitted to n a password server request to perform algebraic operations corresponding to the N; a password server receives each number, the number of ciphertext decryption respectively, and then use the number of plaintext decrypted by computing component or device requirements of the operation, returns the number of ciphertext and the calculation results for the calculation of the component or device the number of components or devices; the calculation results ciphertext return n password server received after using homomorphic encryption addition operation to get the final result. The invention can realize the multiplication, division and power operation of the ciphertext only by using the original plaintext number of the encryption algorithm which does not disclose the number of the ciphertext involved in the operation.

【技术实现步骤摘要】

本专利技术属于信息安全领域,特别是一种针对密文数的运算方法及系统
技术介绍
同态加密(homomorphic encryption)能在不对被加密的数(number)解密的情况下,通过对被加密的数的密文(即密文数,ciphertext number)的运算即可实现对密文的原数(即明文数,plaintext number)的运算,比如,设E是加密函数,D是解密函数,x、y是加密前的数(明文数),如果存在有效算法⊕(同态加密加法)使得:E(x+y)=E(x)⊕E(y),或x+y=D(E(x)⊕E(y))成立,则此加密算法E是加法同态加密算法;如果存在有效算法⊙(同态加密乘法)使得:E(x×y)=E(x)⊙E(y),或者 x×y=D(E(x)⊙E(y))成立,则此加密算法E是乘法同态加密算法。同态加密算法又分为全同态加密算法和部分同态加密算法。所谓全同态加密算法即同时支持加、减、乘、除同态加密运算的同态加密算法,而所谓部分同态加密算法即仅支持加、减、乘、除中部分同态加密运算的同态加密算法,如仅支持加法或减法同态加密运算的同态加密算法。相对于全同态,部分同态加密算法比较简单,但支持的同态加密运算有限;全同态加密算法虽然支持的同态加密运算多,但很复杂。目前虽然有全同态加密算法,但由于其太复杂,离实际应用相差很远。同态加密算法的重要用途之一是云计算,而云计算中使用同态加密算法的目的是在不泄漏参与运算的数的情况下,实现数的运算;实际上,只要能实现此目的,其实是否采用同态加密算法、采用怎样的同态加密算法并不重要;进一步地,可以注意到利用云计算平台进行资源委外(outsourcing) 的企业、机构大多也不会单独维护、运行自己的密码设备进行数据加密、解密(否则与其资源委外的策略相矛盾),而是同样会通过资源委外方式使用密码服务提供商提供的密码服务(进行数据加密、解密),因此,对于云计算中运算数的安全保护可以充分利用此一特点。
技术实现思路
本专利技术的目的,在于结合云计算的安全需求和特点,提出一种不使用全同态加密算法就能在不泄漏参与运算的数的情况下,实现数的各种代数运算的方案。为了实现上述目的,本专利技术的技术方案是一种针对密文数的运算方法,所述方法具体如下:所述密文数是经加法同态加密算法加密后的数;所述针对密文数的运算是指针对密文数加密前的原数即明文数的代数运算,并得到运算结果的密文数;当一个计算组件或装置进行包含密文数的代数运算时,计算组件或装置先从要运算的数导出n组数,每组数中包含有密文数(当然每组数中也许还包含明文数),然后将n组数分别提交到n个密码服务器请求进行对应的代数运算;n个密码服务器接收到每组数后,分别解密其中的密文数,然后分别利用解密后的明文数进行计算组件或装置要求的代数运算,并将计算结果(经同态加密后)的密文数返回给计算组件或装置;计算组件或装置接收到n个密码服务器返回的密文数结果后,利用同态加密的加法运算得到最后的运算结果;所述从要运算的数导出的n组数的特征是每个密码服务器无法从接收到的一组数中恢复出计算组件或装置进行代数运算时包含的密文数或密文数加密前的明文数;所述n大于或等于2,所述n在每次计算时不必相同(根据需要确定)。为了防止密码服务器合作作弊恢复出计算组件或装置进行运算时包含的密文数或密文数对应的原明文数,计算组件或装置除了将导出的n组数提交给n个密码服务器外,还将多组用于迷惑的数分别提交给多个密码服务器,对于密码服务器利用用于迷惑的数计算得到的结果,计算组件或装置将其丢弃。从以上描述并结合实施例可以看到,基于本专利技术的方案,仅使用加法同态加密算法即可实现密文数的各种代数运算,包括乘、除和幂运算(以及加法同态加密算法本身的同态加、减运算);在运算过程中,参与运算的密文数对应的原数本身是不会以明文形式出现的,所有出现在密码服务器、并被密码服务器解密的密文数并非参与运算的原始密文数,而是导出的密文数,只要不出现密码服务器合作作弊的情况,就可以避免原始密文数对应的明文数被泄露;在云计算应用中,基于如下安排和措施,可以有效避免密码服务器合作作弊的发生:1)通过密码服务器提供在线密码服务的机构是与提供云计算服务不同的、由国家有关主管部门授权的机构;国家对提供密码服务的机构有严格的管理规定和监管措施(这是一个特殊的、严格管理的行业),若有违规、违法情况的发生,将遭受国家主管部门的严厉处理,因此,提供密码服务的机构进行作弊的可能性很低;2)计算组件或装置除了将必要的n组数提交给n个密码服务器外,还可以发送额外的迷惑数据给多个密码服务器,进一步地,在云计算环境下,同一时刻会有大量并发计算发生,密码服务器要从大量的、包含迷惑数据的计算数据中恢复出原始密文数是很困难的,或者几乎不可能的;3)接入云计算平台的密码服务器可以来自不同的密码服务提供机构,多个密码服务机构合作作弊的可能性更小。故此,基于本专利技术的方案,可以在不使用全同态加密算法、不泄漏参与运算的数的情况下实现密文数的代数运算,包括乘、除和幂运算(当然,还包括加法同态加密算法本身的同态加、减运算)。附图说明图1 为本专利技术的密文数计算系统的结构示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的描述。本专利技术的具体实施首先是选择一个合适的加法同态加密算法,这种算法有很多,实施者可以根据需要选定。在加法同态加密算法的基础上,针对乘运算中乘数的不同情况、除运算中被除数和除数的不同情况,本专利技术的具体实施方式如下。实施例1:一个密文数乘以一个明文数具体实施方式如下:当一个计算组件或装置对一个密文数和一个明文数进行乘运算时,计算组件或装置先将密文数分解为n个密文数的同态加密加法和,然后以分解后的n个密文数中的每个密文数与要进行乘运算的明文数为一组形成n组数,然后将n组数分别提交到n个密码服务器请求进行乘运算;n个密码服务器接收到每组数后,分别解密其中的密文数,然后分别用密文数解密后得到的明文数与接收到的明文数进行乘运算,并将计算结果用加法同态加密算法加密后返回给计算组件或装置;计算组件或装置接收到n个密码服务器返回的密文数结果后,利用同态加密的加法运算得到最后的运算结果。实施例2:一个密文数除以一个明文数具体实施方式如下:当一个计算组件或装置进行一个密文数除以一个明文数的除运算时,计算组件或装置先将密文数分解为n个密文数的同态加密加法和,然后以分解后的n个密文数中的每个密文数与作为除数的明文数为一组形成n组数,然后将n组数分别提交到n个密码服务器请求进行除运算;n个密码服务器接收到每组数后,分别解密其中的密文数,然后分别用密文数解密后得到的明文数除以作为除数的明文数,并将计算结果用加法同态加密算法加密后返回给计算组件或装置;计算组件或装置接收到n个密码服务器返回的密文数结果后,利用同态加密的加法运算得到最后的运算结果。实施例3:一个明文数除以一个密文数具体实施方式如下:当一个计算组件或装置进行一个明文数除以一个密文数的运算时,计算组件或装置先用一个随机明文数乘以被除数明文数(作为被除数的明文数),形成新的被除数明文数,用所述针对密文数的运算方法计算除数密文数(作为除数的密文数)乘以同一个随机明文数,如用实施例1,形成新的除数密文数,然后将新的被除数明文数分解为本文档来自技高网
...
一种针对密文数的运算方法及系统

【技术保护点】
一种针对密文数的运算方法,其特征是:所述密文数是经加法同态加密算法加密后的数;所述针对密文数的运算是指针对密文数加密前的原数即明文数的代数运算,并得到运算结果的密文数;当一个计算组件或装置进行包含密文数的代数运算时,计算组件或装置先从要运算的数导出n组数,每组数中包含有密文数,然后将n组数分别提交到n个密码服务器,请求进行对应的代数运算;n个密码服务器接收到各自的一组数后,分别解密其中的密文数,然后分别利用解密后的明文数进行计算组件或装置要求的代数运算,并将计算结果的密文数返回给计算组件或装置;计算组件或装置接收到n个密码服务器返回的密文数结果后,利用同态加密的加法运算得到最后的运算结果;所述从要运算的数导出的n组数的特征是每个密码服务器无法从接收到的一组数中恢复出计算组件或装置进行代数运算时包含的密文数或密文数加密前的明文数;其中,n大于或等于2,且n在每次计算时不必相同。

【技术特征摘要】
1.一种针对密文数的运算方法,其特征是:所述密文数是经加法同态加密算法加密后的数;所述针对密文数的运算是指针对密文数加密前的原数即明文数的代数运算,并得到运算结果的密文数;当一个计算组件或装置进行包含密文数的代数运算时,计算组件或装置先从要运算的数导出n组数,每组数中包含有密文数,然后将n组数分别提交到n个密码服务器,请求进行对应的代数运算;n个密码服务器接收到各自的一组数后,分别解密其中的密文数,然后分别利用解密后的明文数进行计算组件或装置要求的代数运算,并将计算结果的密文数返回给计算组件或装置;计算组件或装置接收到n个密码服务器返回的密文数结果后,利用同态加密的加法运算得到最后的运算结果;所述从要运算的数导出的n组数的特征是每个密码服务器无法从接收到的一组数中恢复出计算组件或装置进行代数运算时包含的密文数或密文数加密前的明文数;其中,n大于或等于2,且n在每次计算时不必相同。2.根据权利要求1所述的针对密文数的运算方法,其特征是:计算组件或装置除了将导出的n组数提交给n个密码服务器外,还将多组用于迷惑的数分别提交给多个密码服务器,对于密码服务器利用用于迷惑的数计算得到的结果,计算组件或装置将其丢弃。3.一种基于权利要求1所述的针对密文数的运算方法的密文数与明文数的乘运算方法,其特征是:当一个计算组件或装置对一个密文数和一个明文数进行乘运算时,计算组件或装置先将密文数分解为n个密文数的同态加密加法和,然后以分解后的n个密文数中的每个密文数与要进行乘运算的明文数为一组形成n组数,然后将n组数分别提交到n个密码服务器请求进行乘运算;n个密码服务器接收到各自的一组数后,分别解密其中的密文数,然后分别用密文数解密后得到的明文数与接收到的明文数进行乘运算,并将计算结果用加法同态加密算法加密后返回给计算组件或装置;计算组件或装置接收到n个密码服务器返回的密文数结果后,利用同态加密的加法运算得到最后的运算结果。4.一种基于权利要求1所述的针对密文数的运算方法的密文数除以明文数的除运算方法,其特征是:当一个计算组件或装置进行一个密文数除以一个明文数的除运算时,计算组件或装置先将密文数分解为n个密文数的同态加密加法和,然后以分解后的n个密文数中的每个密文数与作为除数的明文数为一组形成n组数,然后将n组数分别提交到n个密码服务器请求进行除运算;n个密码服务器接收到各自的一组数后,分别解密其中的密文数,然后分别用密文数解密后得到的明文数除以作为除数的明文数,并将计算结果用加法同态加密算法加密后返回给计算组件或装置;计算组件或装置接收到n个密码服务器返回的密文数结果后,利用同态加密的加法运算得到最后的运算结果。5.一种基于权利要求1所述的针对密文数的运算方法的明文数除以密文数的除运算方法,其特征是:当一个计算组件或装置进行一个明文数除以一个密文数的运算时,计算组件或装置先用一个随机明文数乘以被除数明文数,形成新的被除数明文数,用所述针对密文数的运算方法计算除数密文数乘以同一个随机明文数,形成新的除数密文数,然后将新的被除数明文数分解为n个明文数的和,分解后的n个明文数称为新的被除数明文数的分量,然后以分解后的n个新的被除数明文数的分量中的每个分量与新的除数密文数为一组形成n组数,然后将n组数分别提交到n个密码服务器请求进行除法运算;所述随机明文数是一个随机生成的数;n个密码服务器接收到各自的一组数后,分别解密其中的新的除数密文数,得到新的除数明文数,然后分别用接收到的新的被除数明文分量除以解密得到的新的除数明文数,并将计算结果用加法同态加密算法加密后返回给计算组件或装置;计算组件或装置接收到n个密码服务器返回的密文数结果后,利用同态加密的加...

【专利技术属性】
技术研发人员:龙毅宏
申请(专利权)人:武汉理工大学
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1