一种基于全同态加密的密文处理系统及方法转让专利

申请号 : CN202310042543.9

文献号 : CN116049851B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李晓东金鑫

申请人 : 北京隐算科技有限公司

摘要 :

本发明公开了一种基于全同态加密的密文处理系统及方法,该系统包括:用户端和服务器端,其中:用户端包括:加解密模块、密钥管理模块、通讯模块和前端展示模块,服务器端包括:通讯层、控制层、计算层和数据库;使用该系统可以将原始数据在用户端进行全同态加密发送至服务器端,服务器端对数据进行密文存储和全同态运算,最终将密文运算结果发送回用户端,由用户端进行全同态解密,得到需要的处理结果;实现了服务器在不获取数据原始信息的情况下进行密文状态下的数据处理及存储,解决了现有方案中采用明文存储及传递信息方式造成数据安全性不高的问题,并且本发明支持在一台服务器上操作,也提高了效率,降低了成本。

权利要求 :

1.一种基于全同态加密的密文处理系统,其特征在于,该系统包括:用户端和服务器端,所述用户端与所述服务器端连接,其中:所述用户端包括:加解密模块、密钥管理模块、通讯模块和前端展示模块,其中:所述加解密模块用于对原始数据的全同态加密,以及对处理结果的全同态解密;

所述密钥管理模块用于控制生成加密密钥、解密密钥,存储密钥和销毁密钥,对密钥进行全生命周期管理;

所述通讯模块用于与所述服务器端的信息交互;

所述前端展示模块用于数据的可视化交互;

所述服务器端包括:通讯层、控制层、计算层和数据库,其中:

所述通讯层用于实现与所述用户端的信息交互;所述通讯层包括:第一输入缓存区和第一输出缓存区,其中:所述第一输入缓存区用于接收来自所述用户端的密文数据以及用户操作指令,并将所述密文数据和所述用户操作指令发送至控制层;

所述第一输出缓存区用于接收来自控制层的处理结果,并将所述处理结果发送至所述用户端;

所述控制层用于识别翻译从通讯层获得的用户操作指令、调用计算层的接口和获取数据库的数据;所述控制层包括:第二输入缓存区、第二输出缓存区、控制区、命令识别区和计算缓存区,其中:所述第二输入缓存区用于接收来自所述通讯层的第一输入缓存区传送的密文数据;

所述第二输出缓存区用于将控制层的处理结果传送于所述通讯层的第一输出缓存区;

所述控制区用于对控制层进行整体调度,控制对密文数据的相关操作,对操作任务进行时间调度和空间分配,所述控制区可向所述计算层调用计算函数,以及对数据库进行增删、改查和统计的操作;

所述命令识别区是一个命令解释器,用于识别用户操作指令以及将数据库操作命令翻译为控制层可识别的指令;

所述计算缓存区用于对密文数据的计算处理操作;

所述计算层为基于盲计算的数据计算库,用于向所述控制层提供数据计算处理接口;

所述数据库为基于模分量的密文数据存储,用于存储计算处理后的密文数据;所述数据库还用于对存储的密文数据分配随机标识符,所述数据库中所有数据均处于密文状态,每条密文数据均具有一个唯一的标识符,所述标识符用以区分不同密文数据,不包含所述密文数据的任何明文状态下的信息。

2.根据权利要求1所述的一种基于全同态加密的密文处理系统,其特征在于,在所述用户端,所述加解密模块根据用户的加密密钥对所述原始数据进行全同态加密得到密文数据,并将所述密文数据发送至所述服务器端的通讯层;所述加解密模块还根据用户的解密密钥对从所述服务器端的通讯层传回的处理结果进行全同态解密,得到明文状态的处理结果。

3.根据权利要求1所述的一种基于全同态加密的密文处理系统,其特征在于,所述服务器端的计算层包括:可编程模块和计算函数库,其中:所述可编程模块用于接收控制层命令识别区的指令,根据指令编译生成计算函数,所述计算函数在一定时间内会被释放掉或被添加至所述计算函数库中,所述计算函数可多次调用;

所述计算函数库用于存储全同态加、全同态乘的全同态运算函数,同时存储由所述可编程模块生成的所述计算函数。

4.一种基于全同态加密的密文处理方法,其特征在于,应用于如权利要求1‑3任一项所述的基于全同态加密的密文处理系统,实现服务器不获取原始数据信息进行密文状态下的数据处理及存储;该方法包括以下步骤:S1、用户端将原始数据进行全同态加密得到密文数据,并将所述密文数据发送至服务器端;

S2、服务器端的通讯层将来自用户端的加密数据传输至控制层中;所述控制层对加密数据的操作指令进行翻译识别,并调用计算层中的计算函数对密文数据进行计算获得处理结果;

S3、若密文数据的处理结果需要存储,则所述控制层将处理结果存储于数据库,若密文数据的处理结果不需要存储,则所述控制层将处理结果通过所述通讯层返回至所述用户端进行全同态解密;

所述步骤S2中、所述通讯层包括:第一输入缓存区和第一输出缓存区,其中:所述第一输入缓存区用于接收来自所述用户端的密文数据以及用户操作指令,并将所述密文数据和所述用户操作指令发送至控制层;

所述第一输出缓存区用于接收来自控制层的处理结果,并将所述处理结果发送至所述用户端;

所述控制层包括:第二输入缓存区、第二输出缓存区、控制区、命令识别区和计算缓存区,其中:所述第二输入缓存区用于接收来自所述通讯层的第一输入缓存区传送的密文数据;

所述第二输出缓存区用于将控制层的处理结果传送于所述通讯层的第一输出缓存区;

所述控制区用于对控制层进行整体调度,控制对密文数据的相关操作,对操作任务进行时间调度和空间分配,所述控制区可向所述计算层调用计算函数,以及对数据库进行增删、改查和统计的操作;

所述命令识别区是一个命令解释器,用于识别用户操作指令以及将数据库操作命令翻译为控制层可识别的指令;

所述计算缓存区用于对密文数据的计算处理操作;

所述步骤S3中、所述数据库对存储的密文数据分配随机标识符,数据库中所有数据均处于密文状态,每条密文数据均具有一个唯一的标识符,所述标识符用以区分不同密文数据,不包含密文数据的任何明文状态下的信息。

说明书 :

一种基于全同态加密的密文处理系统及方法

技术领域

[0001] 本发明涉及数据处理技术领域,特别涉及一种基于全同态加密的密文处理系统及方法。

背景技术

[0002] 随着现代社会对高计算能力需求的日益增长以及对数据存储及获取的便利性需要,个人或企业的本地计算机逐渐无法满足计算能力及移动获取数据的需要,云计算这类依托于云平台的新兴网络服务兴起,但是由于其外包服务模式以及云平台自身的数据安全问题造成了对云服务的信任危机。
[0003] 云计算可信与否成为用户业务向云迁移的最大顾虑.如何构建安全可信的云服务,成为近年来研究领域的热点之一。随着移动互联网的发展,越来越多的存储和计算在云端完成,人类日常活动产生的海量数据的存储和处理也被服务商外包到了云平台。
[0004] 在云平台下,来自外部的攻击或者来自内部的恶意泄露会造成用户数据隐私的泄露,致使公众或未经授权的第三方能够获取到相关数据,为了切实保护用户的隐私数据,确保云平台安全可靠,相关专家和学者在不断地进行探索。虽然目前关于云数据安全研究取得了诸多成果,但对数据安全保护的需求仍然是阻碍云计算业务发展的主要障碍。
[0005] 现有的方案中,为确保数据安全,采用秘密分享的方式,即使用多台服务器,将某一数据切分成不同的数据分量,这些数据分量在不同服务器上进行处理,每台服务器处理结束后进行再最后整合。
[0006] 这类方案是在明文状态下进行数据处理,虽然将数据分散到不同服务器仍然具有数据泄露的风险,数据安全性不高,且这类方案实现复杂,效率较低,同时多台服务器的维护导致了较高的成本开销,致使无法在实际应用中广泛推广。

发明内容

[0007] 鉴于上述技术问题,本发明提供至少解决上述部分技术问题的一种基于全同态加密的密文处理系统及方法,使用该系统可以将原始数据在用户端进行全同态加密发送至服务器端,服务器端对数据进行密文存储和全同态运算,最终将密文运算结果发送回用户端,由用户端进行全同态解密,得到需要的处理结果;本发明可以实现服务器在不获取数据原始信息的情况下进行密文状态下的数据处理及存储,解决了现有方案中采用明文存储及传递信息方式造成的数据安全性不高的问题,并且本发明支持在一台服务器上操作,提高了效率,降低了成本。
[0008] 为实现上述目的,本发明采取的技术方案为:
[0009] 第一方面,本发明提供一种基于全同态加密的密文处理系统,该系统包括:用户端和服务器端,所述用户端与所述服务器端连接,其中:
[0010] 所述用户端包括:加解密模块、密钥管理模块、通讯模块和前端展示模块,其中:
[0011] 所述加解密模块用于对原始数据的全同态加密,以及对处理结果的全同态解密;
[0012] 所述密钥管理模块用于控制生成加密密钥、解密密钥,存储密钥和销毁密钥,对密钥进行全生命周期管理;
[0013] 所述通讯模块用于与所述服务器端的信息交互;
[0014] 所述前端展示模块用于数据的可视化交互;
[0015] 所述服务器端包括:通讯层、控制层、计算层和数据库,其中:
[0016] 所述通讯层用于实现与所述用户端的信息交互;
[0017] 所述控制层用于识别翻译从通讯层获得的用户操作指令、调用计算层的接口和获取数据库的数据;
[0018] 所述计算层为基于盲计算的数据计算库,用于向所述控制层提供数据计算处理接口;
[0019] 所述数据库为基于模分量的密文数据存储,用于存储计算处理后的密文数据。
[0020] 进一步地,在所述用户端,所述加解密模块可以根据用户的加密密钥对所述原始数据进行全同态加密得到密文数据,并将所述密文数据发送至所述服务器端的通讯层;所述加解密模块还可以根据用户的解密密钥对从所述服务器端的通讯层传回的处理结果进行全同态解密,得到明文状态的处理结果。
[0021] 进一步地,所述服务器端的通讯层包括:第一输入缓存区和第一输出缓存区,其中:
[0022] 所述第一输入缓存区用于接收来自所述用户端的密文数据以及用户操作指令,并将所述密文数据和所述用户操作指令发送至控制层;
[0023] 所述第一输出缓存区用于接收来自控制层的处理结果,并将所述处理结果发送至所述用户端。
[0024] 进一步地,所述服务器端的控制层包括:第二输入缓存区、第二输出缓存区、控制区、命令识别区和计算缓存区,其中:
[0025] 所述第二输入缓存区用于接收来自所述通讯层的第一输入缓存区传送的密文数据;
[0026] 所述第二输出缓存区用于将控制层的处理结果传送于所述通讯层的第一输出缓存区;
[0027] 所述控制区用于对控制层进行整体调度,控制对密文数据的相关操作,对操作任务进行时间调度和空间分配,所述控制区可向所述计算层调用计算函数,以及对数据库进行增删、改查和统计的操作;
[0028] 所述命令识别区是一个命令解释器,用于识别用户操作指令以及将密文数据库操作命令翻译为控制层可识别的指令;
[0029] 所述计算缓存区用于对密文数据的计算处理操作。
[0030] 进一步地,所述服务器端的计算层包括:可编程模块和计算函数库,其中:
[0031] 所述可编程模块用于接收控制层命令识别区的指令,根据指令编译生成计算函数,所述计算函数在一定时间内会被释放掉或被添加至所述计算函数库中,所述计算函数可多次调用;
[0032] 所述计算函数库用于存储全同态加、全同态乘的全同态运算函数,同时存储由所述可编程模块生成的所述计算函数。
[0033] 进一步地,所述数据库还用于对存储的密文数据分配随机标识符,所述数据库中所有数据均处于密文状态,每条密文数据均具有一个唯一的标识符,用以区分不同密文数据;所述标识符仅用于数据标识,不包含所述密文数据的任何明文状态下的信息。
[0034] 第二方面:本发明还提供一种一种基于全同态加密的密文处理方法,应用于上述实施例的一种基于全同态加密的密文处理系统,实现服务器不获取原始数据信息进行密文状态下的数据处理及存储;该方法包括以下步骤:
[0035] S1、用户端将原始数据进行全同态加密得到密文数据,并将所述密文数据发送至服务器端;
[0036] S2、服务器端的通讯层将来自用户端的加密数据传输至控制层中;所述控制层对加密数据的操作指令进行翻译识别,并调用计算层中的计算函数对密文数据进行计算获得处理结果;
[0037] S3、若密文数据的处理结果需要存储,则所述控制层将处理结果存储于数据库,若密文数据的处理结果不需要存储,则所述控制层将处理结果通过所述通讯层返回至所述用户端进行全同态解密。
[0038] 与现有技术相比,本发明至少具有如下有益技术效果:
[0039] 1、本发明提供的一种基于全同态加密的密文处理系统,可以将原始数据在用户端进行全同态加密发送至服务器端,服务器端对数据进行密文存储和全同态运算,最终将密文运算结果发送回用户端,由用户端进行全同态解密,得到需要的处理结果;实现了服务器在不获取数据原始信息的情况下进行密文状态下的数据处理及存储,具备较高的安全性。
[0040] 2、本发明的系统结构设计简单合理,并可以支持在一台服务器上操作,节约了成本,提高了效率。
[0041] 3、本发明在数据的全生命周期均以密文形式进行操作,即使发生数据泄露等问题也不会将数据的真实信息泄露出去,保证了全生命周期的数据安全。
[0042] 4、本发明可识别用户命令并进行翻译,适用于各种全同态加密技术,具有较好的可扩展性。
[0043] 本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书以及附图中所特别指出的结构来实现和获得。
[0044] 下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

[0045] 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0046] 附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。
[0047] 图1为本发明实施例提供的一种基于全同态加密的密文处理系统的架构图。
[0048] 图2为本发明实施例提供的一种基于全同态加密的密文处理系统的原理图。
[0049] 图3为本发明实施例提供的一种基于全同态加密的密文处理方法的流程图。

具体实施方式

[0050] 为使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实施方式,进一步阐述本发明。
[0051] 在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“设置有”、“连接”等,应做广义理解,例如“连接”,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0052] 下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0053] 实施例1:
[0054] 参照图1和图2所示,本发明实施例提供了一种基于全同态加密的密文处理系统,该系统包括:用户端和服务器端,用户端与服务器端通讯连接。
[0055] 下面分别对上述系统的组成结构进行详细的说明:
[0056] 如图2所示,用户端分为四个模块:
[0057] 1)加解密模块,用于实现对原始数据的全同态加密以及对处理结果的全同态解密;
[0058] 2)密钥管理模块:控制生成加密密钥、解密密钥,存储密钥,销毁密钥,对密钥实现全生命周期管理;
[0059] 3)通讯模块,用于实现与服务器端的信息交互;
[0060] 4)前端展示模块:用于数据可视化交互,利用良好的图形化界面进行数据可视化,使得用户可以通过简单操作即可完成复杂的应用需求,本实施例中,用户端可采用web前端框架Vue实现前端展示,用于用户与服务器的交互,通过前端界面,用户通过相关操作使得用户端将加密数据发送至服务器端的通讯层。
[0061] 在本实施例中,在用户端,对原始数据M进行全同态加密:根据用户加密密钥EncryptKey对原始数据M进行全同态加密得到加密数据Cin;用户端将加密数据Cin发送至服务器端的通讯层;对服务器端返回的运算结果Cout进行全同态解密:根据用户解密密钥EncryptKey对从通讯层传输回来的运算结果Cout进行全同态解密,得到明文状态的处理结果。
[0062] 如图1和图2所示,服务器端包括:通讯层、控制层、计算层和数据库,其中:
[0063] ①、通讯层是用户端与服务器端实现信息交互的桥梁。通讯层以web后端框架springboot实现,为实现功能解耦,用于数据传输的功能化为单独一层即通讯层,该层实现的功能仅包括根据不同目的地发送不同数据信息。通讯层分为两个模块:输入缓存区(即第一输入缓存区)以及输出缓存区(即第一输出缓存区),其中,输入缓存区接收来自用户端的加密数据以及操作指令,并将其发送至控制层的输入缓存区;输出缓存区接收来自控制层的处理结果,并将其发送给用户端。
[0064] ②、控制层以web后端框架springboot实现;控制层分为五个模块:输入缓存区(即第二输入缓存区)、输出缓存区(即第二输出缓存区)以及控制区、命令识别区和计算缓存区,其中:
[0065] 在本实施例中,控制层的输入、输出缓存区用于实现控制层与计算层、数据库以及通讯层的信息传递;由控制区进行整体调度,控制对密文数据的各种操作,对各操作任务进行时间调度和空间分配,控制区可向计算层调用库函数,可以对数据库进行增删改查、简单统计等基础操作;命令识别区是一个命令解释器,可识别用户指令以及对数据库操作命令进行翻译,翻译为控制层可识别的指令;计算缓存区用于对数据的处理,此处开辟了一定的空间,用于对密文数据的计算等处理操作。
[0066] 具体工作时,从控制层输入缓存区中获取来自通讯层输入缓存区的加密数据Cin,将该加密数据的操作指令放入命令识别区进行翻译识别,获得相应处理信息后由控制区调用计算层中相关计算函数库或计算层可编程模块,以及由控制区向数据库中获取相关数据并在控制层的计算缓存区对密文数据进行处理,最终得到运算结果Cout,Cout中仅包含处理结果,不包含操作指令。若Cout不需要存储,则将Cout存入控制层输出缓存区,等待控制区调度,在合理时间内将运算结果Cout发送至通讯层输出缓存区。若Cout需要存储,则将Cout存储到数据库中,并命名为Cindex,index为数据标识,用以标识不同的密文数据。
[0067] ③、计算层分为两个模块:可编程模块以及计算函数库模块。可编程模块可接收控制层命令识别区的指令,按指令自动生成控制层可识别的计算函数,该计算函数可存储于计算层的计算函数库中,也可“一次一算”即在完成本次计算任务后自动销毁;以C语言为例,计算函数库中包含已经编写好的同态计算函数:同态加和同态乘,一些统计计算函数:求最大值、最小值、平均值等,一些来自可编程模块自动生成的计算函数。计算层向控制层提供接口,当控制层有计算任务时即可调用计算层的库函数。
[0068] ④、数据库采用全密文存储,数据库中数据以模分量的形式存储,模分量有真有假;即数据库中加密数据Cindex以模分量的形式进行存储,所有数据均处于密文状态,每条密文数据均有一个唯一标识符index,用以区分不同密文数据。index仅用于数据标识,不包含该密文数据的任何明文状态下的信息,不会造成数据泄露;实现加密数据Cindex的存储及简单查询。
[0069] 本发明的原理在于:
[0070] 为了确保数据全生命周期的安全性,实现服务器在不获取数据原始信息的情况下进行密文状态下的数据处理及存储:将原始数据在用户端进行全同态加密,将加密数据发送至服务器端,服务器端对数据进行密文存储和全同态运算,最终将密文运算结果发送回用户端,由用户端进行全同态解密,得到需要的处理结果。在整个服务器端的工作模式中,服务器端进行处理的数据均处于密文状态,在密文状态下对数据进行盲处理操作,即使服务器端发生数据泄漏或被攻击,原始数据及相关计算结果不能被攻击者获取,确保了数据安全。处理结果通过通讯层发送到用户端,用户端在本地进行全同态解密,获取预期数据处理结果,因此在数据的整个生命周期内本密文服务器构造方法实现了数据的全生命周期加密保护。
[0071] 本发明适用于全同态加密技术,由于全同态性,即:
[0072] E(a+b)=E(a)⊕E(b),E(a×b)=E(a)⨂E(b)
[0073] 其中,a,b分别代表原始数据,E代表全同态加密算法,符号⊕和⨂表示密文下的运算等价于明文下的运算。即对加密后的数据进行全同态处理相当于对明文做相同的处理,因此,可以在不获取数据的明文状态的情况下对数据进行了隐私保护下的处理。
[0074] 由上可知,本发明实施例提供了一种基于全同态加密的密文处理系统,使用该系统可以将原始数据在用户端进行全同态加密发送至服务器端,服务器端对数据进行密文存储和全同态运算,最终将密文运算结果发送回用户端,由用户端进行全同态解密,得到需要的处理结果;实现了服务器在不获取数据原始信息的情况下进行密文状态下的数据处理及存储,解决了现有方案中采用明文存储及传递信息方式造成的数据安全性不高的问题,并且本发明的系统结构设计简单合理,数据处理高效;支持在一台服务器上操作,提高了效率,降低了成本,也适用于各种全同态加密技术,具有较好的可扩展性。
[0075] 实施例2:
[0076] 如图3所示,本发明实施例还提供了一种基于全同态加密的密文处理方法,应用于实施例1的系统,实现服务器不获取原始数据信息进行密文状态下的数据处理及存储;该方法包括以下步骤:
[0077] S1、用户端将原始数据进行全同态加密得到密文数据,并将所述密文数据发送至服务器端;
[0078] S2、服务器端的通讯层将来自用户端的加密数据传输至控制层中;所述控制层对加密数据的操作指令进行翻译识别,并调用计算层中的计算函数对密文数据进行计算获得处理结果;
[0079] S3、若密文数据的处理结果需要存储,则所述控制层将处理结果存储于数据库,若密文数据的处理结果不需要存储,则所述控制层将处理结果通过所述通讯层返回至所述用户端进行全同态解密。
[0080] 结合图2和图3所示,下面分别对上述方法的具体流程进行详细的说明:
[0081] 在上述的步骤S1中,用户端对原始数据M进行全同态加密:以模分量的方式为例,根据用户加密密钥EncryptKey对原始数据M进行全同态加密得到加密数据Cin:具体实施为:
[0082] 1)根据用户加密密钥随机生成一个投影基B={b1,b2,...,bn}和位置基W={w1,w2,...,wn},0≤wi<t,其中B用于将原始信息分裂,b1,b2,...,bn为B中的元素,b1,b2,...,bn两两互素;W用来插入真实模分量,wi为真实模分量所在位置,t代表用于混淆的一个冗余向量的中冗余项的个数,wi小于t。
[0083] 2)将原始数据M分裂成真实模分量集m,根据模投影基集合B将原始数据M分裂,B={b1,b2,...,bn},其中b1,b2,...,bn为B中的元素,整数I对投影基B中的元素分别进行取模操作,得到真实模分量集合m={m1,m2,...,mn};mi=Mmodbi,i=1,2,...n;mod为优选的一种支持同态运算的运算符。
[0084] 3)依据真实模分量集m生成冗余集S:依据真实模分量集m={m1,m2,...,mn}中元素的值,生成n个分别包含t个冗余项的冗余向量,得到冗余集S={S1,S2,...,Sn};其中,Si={Si1,Si2,...,Sit},i=1,2,...,n。
[0085] 4)生成加密数据Cin:将真实模分量m分别插入S冗余集中,根据位置基W,W={w1,w2,...,wn},0≤wi<t,将原始模分量集m中的元素按照位置基W中元素代表的插入位置,依次代替冗余集原位置对应的元素,得到加密数据Cin,Cin={C1,C2,...,Cn},Ci={Ci1,Ci2,...,Cwi...,Cit}={Si1,Si2,...,mwi...,Sit},i=1,2,...,n;即Ci为真实模分量mi替换掉了冗余向量Si的t个冗余项中的第wi个冗余项后的模分量向量。
[0086] 在上述的步骤S2中,服务器端的通讯层将来自用户端的加密数据Cin传输至控制层输入缓存区中;进一步地,从控制层输入缓存区中获取来自通讯层输入缓存区的加密数据Cin,将该加密数据的操作命令放入命令识别区进行翻译识别,获得相应处理信息后由控制区调用计算层中相关计算库函数或计算层可编程模块,以及由控制区向数据库中获取相关数据并在控制层的计算缓存区对密文数据进行处理,处理方式采用全同态运算方式,如下式所示:
[0087] E(a+b)=E(a)⊕E(b),E(a×b)=E(a)⨂E(b)
[0088] 其中,a代表原始数据a,b代表原始数据b,E代表全同态加密算法,符号⊕和⨂表示密文下的运算等价于明文下的运算。
[0089] 由于同态性,对密文的操作就相当于对明文的操作,保证了在不知道明文的情况下可以对密文进行处理并得到正确的结果。
[0090] 进一步地,控制层计算缓存区对Cin进行全同态处理,最终得到加密数据Cout={Z1,Z2,...,Zn},Zi={Zi1,Zi2,...,Zit}。
[0091] 在上述的步骤S3中,若加密数据运算结果Cout不需要存储,则将运算结果Cout存入控制层的输出缓存区,等待控制区调度,在合理时间内将运算结果Cout发送至通讯层的输出缓存区。若Cout需要存储,则将Cout存储到数据库中,并命名为Cindex,index为数据标识,用以标识不同的密文数据。
[0092] 进一步地,在用户端,对服务器端返回的运算结果Cout进行全同态解密:根据用户解密密钥DecryptKey对从通讯层输出缓存区传输回来的运算结果Cout进行全同态解密,DecryptKey包含:真实模分量位置基W={w1,w2,...,wn}。根据真实模分量位置基W={w1,w2,...,wn}得到计算后的真实模分量R={r1,r2,...,rn}={Z1w1,Z2w2,...,Znwn,},进一步地,根据真实模分量R和对应的模基B利用中国剩余定理解出明文状态的处理结果,将处理结果展示在前端展示界面。
[0093] 本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的方法而言,由于其与实施例公开的系统相对应,相关之处参见系统部分说明即可。
[0094] 以上对本发明实施例进行了详细介绍,对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。
[0095] 对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。