发布信息

一种基于隐私保护的分布式数据库系统以及保密方法与流程

作者:admin      2022-09-28 06:05:58     515



电子通信装置的制造及其应用技术1.本发明属于数据库与数据安全技术领域,具体地说是一种基于隐私保护的分布式数据库系统以及保密方法。背景技术:2.随着互联网络的高速发展,大数据越发成为我国社会与经济发展的重要因素,国家层面已经将大数据的发展上升到战略高度,大数据的私密数据泄露和敏感信息窃取等信息安全提出了更大的挑战。3.在各个行业,随着业务发展迅猛,很多系统都会面临着高并发、大数据量等多种场景。比如金融行业,由于互联网络的高速发展,用户可以在线缴纳电费、水费等各种费用。这些数据的泄露会造成严重的安全问题。一些恶意者可以根据用户缴纳的水电费来判断用户家中是否有人。严重威胁用户的安全。4.目前,传统的单机数据库的处理能力已经难以支撑这些业务发展,解决这种问题的常见方法就是应用系统通过分库分表。但是这种解决方案需要应用系统做大量大改造,需要感知数据存储位置。同时增加了运维的复杂性。所以分布式数据库的设计就可以解决这些传统数据库的问题。分布式数据库具有“逻辑统一、物理分散”的特点。5.同时分布式数据库中的隐私数据在传输数据的过程中的数据安全也是迫在眉睫的问题。现有的分布式数据库很多是在数据节点与数据节点之间、数据节点与管理节点之间和用户与管理节点之间进行数据加密。对于一些在不同时间段随机生成的密钥,一般会随着加密数据一起存储到数据库中,这样密钥在传输过程中很容易泄露。对用户的数据安全造成很严重的危害。技术实现要素:6.针对上面这些问题,本发明的目的在于提供基于隐私保护的分布式数据库系统。该系统提出将对数据加密解密的模块全部放置在管理节点上。降低在各节点之间进行数据加密解密,而导致数据泄露的隐患。同时,该系统提出了密钥模块,将所有的密钥保存在密钥模块的密钥表中,对数据加密和解密都在管理节点进行,密钥也只在管理节点中传输。避免了在分布式数据库的各节点中传输密钥导致密钥泄露的严重问题。7.本发明为实现上述目的所采用的技术方案是:一种基于隐私保护的分布式数据库系统的保密方法,包括以下步骤:8.1)用户输入数据至管理节点的数据传输模块,通过数据传输模块将数据发送至数据标准化模块,并进行格式标准化处理,得到格式标准化后的数据;9.2)密钥管理模块生成秘钥和密钥id,将密钥和密钥id存入密钥表中,并将密钥和密钥id发送至数据隐私保护模块的数据加密模块;10.3)将格式标准化后的数据发送至数据隐私保护模块的数据加密模块,并根据秘钥进行数据加密,得到数据密文;将数据密文通过数据签名认证模块进行签名处理后,打包数据密文包,并通过数据传输模块传输至本地数据库节点;11.4)本地数据库节点的传输模块接收到传输来的数据密文包后,本地数据库节点通过签名认证模块进行签名认证;认证通过后,将数据发送给数据存储模块,以将数据存储在本地数据库节点;12.5)当本地数据库节点m与本地数据库节点n进行数据交互时,本地数据节点m通过管理节点与本地数据库节点n实现交互;13.6)管理节点的数据传输模块接收用户发来的查询消息,并且将查询消息发送给数据签名认证模块进行签名,并通过数据传输模块输出给各本地数据库节点;14.7)本地数据库节点接收到签名后的查询消息,由传输模块将签名后的查询消息发送给签名认证模块对数据进行签名认证,认证通过之后,将查询消息发送给数据查询模块;15.8)本地数据库节点通过数据查询模块对本地存储的数据进行查询,将查询到的数据发送到签名认证模块进行签名,将签名数据发送给传输模块,由传输模块发送给管理节点的数据传输模块,管理节点的数据签名认证模块将数据进行签名验证,验证通过以后,将数据发送给解密模块,通过数据解密模块对数据进行解密,生成明文,将解密后的明文传送给用户。16.所述步骤2),具体为:17.密钥管理模块在固定t时间段内生成一个idt和一个随机密钥keyt;18.将生成的idt和keyt存入密钥表;将密钥和密钥id发送至数据隐私保护模块,作为在t时间段内对数据进行加密的密钥。19.所述步骤3),包括以下步骤:20.3-1)数据标准化模块使用数据格式标准化准则,即:21.id+time+dbid+data=newdata22.其中,id为当前输入数据的编号,time为当前时间,dbid为本地数据库节点的编号,data为当前输入数据,newdata为标准化后的数据,作为明文;23.3-2)将标准化处理后的数据newdata发送给数据加密模块;24.3-3)数据加密模块接收到传来的数据后,在t时间段使用keyt对数据进行加密,加密公式,即:25.cipherdata=keyt(newdata)26.其中,cipherdata表示加密后得到的密文,作为原始加密数据,newdata表示标准化后的数据,keyt表示t时刻的密钥;27.3-4)对得到的密文cipherdata进行签名,使用固定的签名私钥进行数字签名;28.将密文cipherdata、签名完成的密文、管理节点的签名公钥、哈希函数以及密钥的idt打包为数据密文包,经数据传输模块发送给本地数据库节点。29.所述步骤3-3)具体为:30.a.初始化向量iv,向量iv的长度为length(keyt),且为长度与随机密钥长度相等的字符串;31.b.对明文newdata进行分组,得到分组分组的长度为length(keyt),即t时间段内密钥keyt的长度;n为分组数量;32.c.对最后一个分组进行填充操作,即在最后一个分组中添加数num,即:[0033][0034]在最后一个分组中添加num个num;如果最后一个明文分组长度和密钥长度相同,则再填加长度为length(keyt)值全为length(keyt)的分组,使得最后一个明文分组保持长度一致;[0035]d.对第一个分组明文和初始化向量iv进行异或操作,并对异或的结果进行加密操作,即:[0036][0037]其中,cipherdatan表示第n个密文分组,第n个明文分组;[0038]e.加密后得到的密文cipherdatan与下一个分组明文进行异或操作,得到的异或结果进行加密操作,循环步骤e,直到最后一个分组加密完成得到最后的密文cipherdata。[0039]步骤4)中,所述本地数据库节点通过签名认证模块进行签名认证,具体为:[0040]4-1)本地数据库节点的传输模块将接收到管理节点传输来的数据密文包,并发送给签名认证模块;[0041]4-2)签名认证模块将接收来的哈希函数对未签名的密文cipherdata进行哈希计算,得到新的散列值a;[0042]4-3)签名认证模块使用签名公钥对已经加密的签名完成的密文进行解密操作,得到散列值b;[0043]4-4)对比散列值a和散列值b,如果相同则签名结果则为true,则表明数据是管理节点发送的并且数据为损失,将该数据发送给本地数据库节点中数据存储模块;否则为false,则表明该数据是恶意发送的数据或者数据在传输途中已经缺失,那么丢弃该数据;[0044]4-5)数据存储模块将发送来的数据存储在本地数据库中。[0045]所述步骤5),具体为:[0046]5-1)本地数据节点m的数据查询模块生成交互信息;并将交互信息发送给签名认证模块,对交互信息进行签名;[0047]5-2)本地数据节点m的传输模块将签名完的交互消息、未签名的交互消息和本地数据节点签名公钥以及哈希函数打包为交互数据包发送至管理节点;[0048]5-3)管理节点的数据签名认证模块对接收的交互数据包进行签名认证;将签名验证结果为true的交互消息的原始交互消息进行重新签名;[0049]5-4)管理节点的数据传输模块将重新签名的交互消息、未签名的交互消息和管理节点的签名公钥以及哈希函数打包为新的交互数据包发送给本地数据节点n。[0050]5-5)本地数据节点n的签名认证模块对新的交互数据包记进行签名认证;将签名验证结果为true的交互消息发送给数据查询模块,并从数据存储模块中取出数据;[0051]5-6)将取出数据发送至签名认证模块进行签名,得到签名后的数据;[0052]5-7)由本地数据节点n将签名完的数据、未签名的数据、本地数据节点n的签名公钥以及哈希函数发送给管理节点,通过管理节点的数据签名认证模块再次进行签名认证。[0053]5-8)管理节点的数据签名认证模块再次对验证通过后的原数据进行签名,将签名完的数据、未签名的数据、管理节点n的签名公钥以及哈希函数发回本地数据节点m;[0054]5-9)本地数据节点m的签名认证模块对新的数据包进行签名认证;将签名验证结果为true的数据存入存储模块。[0055]管理节点对本地数据节点发送的数据进行签名认证,具体为:[0056]所述管理节点对本地数据节点发送的数据,包括:交互信息数据包、数据密文包或查询信息;[0057](1)管理节点将传输来的含有签名后的数据传输给数据签名认证模块进行签名认证;[0058](2)管理节点通过哈希函数对未签名的数据进行哈希计算,得到新的散列值c;[0059](3)根据本地数据库节点签名公钥对签名完成的交互消息进行解密操作,得到散列值d;[0060](4)对比散列值c和散列值d,如果相同则签名结果则为true,表明数据是本地数据库节点发送来的;否则为false;表明该数据是入侵者恶意发送来的数据,此时丢弃该数据;[0061](5)将签名结果为true的签名后的数据进行重新签名;将重新签名的数据、未签名的数据、管理节点的签名公钥以及哈希函数发送给本地数据库节点。[0062]步骤8)中,所述管理节点的数据传输模块将数据进行签名验证,解密生成明文,将解密后的明文传送给用户,具体为:[0063]8-1)管理节点将从本地数据库节点传输过来的签名数据发送给数据签名认证模块;[0064]8-2)数据签名认证模块使用本地数据库节点的签名公钥对发送来的签名数据进行解密操作,得到在本地数据库节点的计算的散列值e;[0065]8-3)数据签名认证模块使用接收来的哈希函数对未签名的数据进行哈希计算得到新的散列值f;[0066]8-4)对比散列值e和散列值f,如果两个散列值相等,那么签名结果为true,否则签名结果为false;[0067]8-5)如果签名验证结果为true,则表明数据是本地数据库发送的并且在传输过程中没有缺失;将该数据传输给数据解密模块进行解密操作;如果签名验证结果为false,则表明该数据是入侵者恶意发送来的数据或者数据在传输过程中已经缺失,那么丢弃该数据;[0068]8-6)将idt传输给密钥模块,在密钥表中进行查询,查询出对应的密钥keyt,将密钥keyt发送给数据隐私保护模块中的解密模块;[0069]8-7)数据解密模块使用传输来的密钥keyt对加密的密文进行解密得到明文,即:[0070]newdata=keyt(cipherdata)[0071]将得到的明文发送给用户,进行可视化的显示。[0072]步骤8-5)中,所述如果签名验证结果为true,则表明数据是本地数据库发送的;将该数据传输给数据解密模块进行解密操作,包括以下步骤:[0073]获取初始向量iv和密钥keyt;[0074]将密文进行分组,分组长度就是length(keyt),得到密文分组...,[0075]对第一个密文分组进行解密操作,再对解密结果和初始向量iv进行异或操作,得到明文分组即:[0076][0077]对密文分组进行解密操作,对解密后的分组和密文分组进行异或操作得到明文分组[0078]遍历所有密文分组,直到所有的密文分组全部解密结束,组合所有的明文分组,得到组合的明文newdata;[0079]根据组合后的明文newdata的最后一个明文newdata的数值y,进行填充数据的删除操作,最后一个值为y,则删除y位,得到最后的明文data。[0080]一种基于隐私保护的分布式数据库系统,包括:管理节点和n个本地数据库节点;[0081]所述管理节点,包括:数据传输模块、数据标准化模块、数据隐私保护模块以及秘钥管理模块;[0082]所述数据传输模块,用于将用户输入的数据发送至数据标准化模块,输出数据隐私保护模块签名认证后的交互信息数据包、数据密文包或查询信息至本地数据库节点、以及接收本地数据库节点签名认证后交互信息数据包、数据密文包或查询信息;[0083]所述数据标准化模块用于接收数据传输模块接收到的数据进行数据格式标准化处理,并将格式标准化后的数据发送至数据隐私保护模块;[0084]所述秘钥管理模块,用于生成秘钥和密钥id,将密钥和密钥id存入密钥表中,并将密钥和密钥id发送至数据隐私保护模块;[0085]所述数据隐私保护模块,包括:数据签名认证模块、数据加密模块以及数据解密模块;[0086]数据签名认证模块,用于对接收到本地数据库节点的交互信息数据包、数据密文包或查询信息进行签名认证处理,并将签名认证处理后的数据发送至本地数据库节点;[0087]数据加密模块,用于将标准化后用户输入的数据,并根据秘钥管理模块发送来的秘钥进行数据加密,得到数据密文;[0088]数据解密模块,用于对加密的密文进行解密得到明文通过数据传输模块发送给用户;[0089]所述本地数据库节点,包括:传输模块、签名认证模块、数据存储模块以及数据查询模块;[0090]所述传输模块,用于与管理节点之间的数据交互;[0091]所述签名认证模块,用于对管理节点发送至本地数据节点库的交互信息数据包、数据密文包或查询信息进行签名认证、以及对本地数据节点库的数据进行签名;[0092]数据存储模块,用于存储管理节点发送的数据密文包;[0093]所述数据查询模块,用于生成交互信息、以及根据管理节点发送的查询消息对本地的数据存储模块中的数据进行查询。[0094]本发明具有以下有益效果及优点:[0095]1、本发明提出将对数据加密解密的模块全部放置在管理节点上。降低在各节点之间进行数据加密解密,而导致数据泄露的隐患。[0096]2、本发明提出了在管理节点设置密钥模块,将所有的密钥保存在密钥模块的密钥表中,对数据加密和解密都在管理节点进行,密钥也只在管理节点中传输。避免了在分布式数据库的各个节点中传输密钥导致密钥泄露的严重问题。附图说明[0097]图1为本发明的数据存储的流程图;[0098]图2为本发明的本地数据节点交互流程图;[0099]图3为本发明的用户查询数据流程图;[0100]图4为本发明的数据隐私模块数据加密的流程图;[0101]图5为本发明的数据隐私模块数据解密的流程图;[0102]图6为本发明的密钥模块生成密钥的流程图;[0103]图7为本发明的系统结构示意图。具体实施方式[0104]下面结合附图及实施例对本发明做进一步的详细说明。本发明的优点和特征将更清楚。需要说明的是,附图采用非常简化的形式且均使用非精确的比例,仅用以方便清晰地辅助说明本发明实施方式的目的。为了使本发明的目的、特征和优点能够更加明显易懂,请参阅附图。须知,本说明书所附图所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的认识了解与阅读,并非用以限定本发明实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容能涵盖的范围内。[0105]如图1所示,为本发明的数据存储的流程图,本发明提供了基于隐私保护的分布式数据库系统,具体包括以下步骤:[0106]1)用户将数据通过数据传输模块传入数据标准化模块进行数据格式标准化。[0107]2)密钥模块生成随机密钥加入密钥表,并且将密钥和密钥id传输给数据隐私保护模块。[0108]其中,密钥管理模块的加密过程体现在如图6所示,密钥管理模块在固定t时间段内生成一个idt和一个随机密钥keyt;[0109]将生成的idt和keyt存入密钥表;将密钥和密钥id发送至数据隐私保护模块,作为在t时间段内对数据进行加密的密钥。[0110]3)标准化格式后的数据传入数据隐私保护模块中的数据加密模块。使用此时刻的随机密钥进行数据加密,得到数据密文后,对加密后的数据密文进行签名认证。最后将数据打包传输给本地数据节点。[0111]步骤3)具体为:包括以下步骤:[0112]3-1)数据标准化模块使用数据格式标准化准则,即:[0113]id+time+dbid+data=newdata[0114]其中,id为当前输入数据的编号,time为当前时间,dbid为本地数据库节点的编号,data为当前输入数据,newdata为标准化后的数据,作为明文;[0115]3-2)将标准化处理后的数据newdata发送给数据加密模块;[0116]3-3)数据加密模块接收到传来的数据后,在t时间段使用keyt对数据进行加密,加密公式,即:[0117]cipherdata=keyt(newdata)[0118]其中,cipherdata表示加密后得到的密文,作为原始加密数据,newdata表示标准化后的数据,keyt表示t时刻的密钥;[0119]关于步骤3-3)的具体解密方法如下:[0120]a.初始化向量iv,向量iv的长度为length(keyt),且为长度与随机密钥长度相等的字符串;[0121]b.对明文newdata进行分组,得到分组...,分组的长度为length(keyt),即t时间段内密钥keyt的长度;n为分组数量;[0122]c.对最后一个分组进行填充操作,即在最后一个分组中添加数num,即:[0123][0124]在最后一个分组中添加num个num;如果最后一个明文分组长度和密钥长度相同,则再填加长度为length(keyt)值全为length(keyt)的分组,使得最后一个明文分组保持长度一致;[0125]d.对第一个分组明文和初始化向量iv进行异或操作,并对异或的结果进行加密操作,即:[0126][0127]其中,cipherdatan表示第n个密文分组,第n个明文分组;[0128]e.加密后得到的密文cipherdatan与下一个分组明文进行异或操作,得到的异或结果进行加密操作,循环步骤e,直到最后一个分组加密完成得到最后的密文cipherdata。[0129]3-4)对得到的密文cipherdata进行签名,使用固定的签名私钥进行数字签名;[0130]将密文cipherdata、签名完成的密文、管理节点的签名公钥、哈希函数以及密钥的idt打包为数据密文包,经数据传输模块发送给本地数据库节点。[0131]4)本地数据节点的传输模块接收到传输来的数据后,进行签名认证。认证通过后,将数据传输给数据存储模块,将数据存储再本地数据库节点。[0132]其中,步骤3)中对数据进行签名以及步骤4)中对数据进行签名认证,具体步骤为:[0133]管理节点使用已生成的密钥对,使用私钥对数据进行签名,使用哈希函数对数据进行哈希计算得到哈希值。使用签名算法中的函数对哈希值进行签名。将得到的签名后的数据、密钥对的公钥以及原始数据都发送给本地数据节点。本地数据节点对原始消息进行哈希运算,得到原始数据的哈希值。使用签名算法中的函数以及签名公钥对原始数据的哈希值进行签名。对比发送来的签名数据,如果两个签名数据的结果相同,那么证明数据是管理节点发来的数据,则对数据进行其它操作。如果对比两个结果不同,那么该数据就是恶意攻击者发送来的数据,则对数据进行丢弃。[0134]签名验证分为三步。第一步是发送者使用内置函数进行哈希计算,得到散列值,使用签名私钥对散列值进行加密。此处的管理节点就是发送方。[0135]第二步就是,将未签名的数据、已经签名的数据和发送者的签名公钥(包含进行哈希计算的哈希函数)发送给接收者。[0136]第三步就是,接收者接收到这些数据,使用发送方的公钥对加密的签名进行解密操作得到在发送方计算好的散列值。再使用发送方发送来的哈希函数计算未签名的那个密文得到散列值。[0137]接收方拿自己计算的散列值和发送方计算的散列值进行比较,如果正确就表明这个数据是发送方发送来的,并且在中途没有被更改。[0138]在本次签名认证的过程中,为管理节点相本地数据库节点发送数据,本地数据库节点再进行签名认证的,其中为步骤4)的步骤,具体包括如下签名认证方法:[0139]4-1)本地数据库节点的传输模块将接收到管理节点传输来的数据密文包,并发送给签名认证模块;[0140]4-2)签名认证模块将接收来的哈希函数对未签名的密文cipherdata进行哈希计算,得到新的散列值a;[0141]4-3)签名认证模块使用签名公钥对已经加密的签名完成的密文进行解密操作,得到散列值b;[0142]4-4)对比散列值a和散列值b,如果相同则签名结果则为true,则表明数据是管理节点发送的并且数据为损失,将该数据发送给本地数据库节点中数据存储模块;否则为false,则表明该数据是恶意发送的数据或者数据在传输途中已经缺失,那么丢弃该数据;[0143]4-5)数据存储模块将发送来的数据存储在本地数据库中。[0144]如图2为本发明的本地数据节点交互流程图,本发明提供了基于隐私保护的分布式数据库系统,具体包括以下步骤:[0145]5)当本地数据节点m与本地数据节点n进行数据交互时,本地数据节点m向管理节点发送交互信息。[0146]6)管理节点接收本地数据节点m的交互消息,再将交互消息发送给本地数据节点n。[0147]7)本地数据节点n对传输来的交互消息进行处理。将获取的数据传送给管理节点。[0148]8)分布式数据库系统的管理节点的数据传输模块将接收来的数据进行签名认证,签名认证通过后,将数据重新签名。将签名数据等发送给本地数据节点m。[0149]9)本地数据节点m的传输模块接收到数据后,将数据传输给签名认证模块,验证通过后将数据传输给数据存储模块对数据进行处理。[0150]关于本发明中步骤5)~步骤9),其中,具体包括以下步骤:[0151]5-1)本地数据节点m的数据查询模块生成交互信息;并将交互信息发送给签名认证模块,对交互信息进行签名;[0152]5-2)本地数据节点m的传输模块将签名完的交互消息、未签名的交互消息和本地数据节点签名公钥以及哈希函数打包为交互数据包发送至管理节点;[0153]5-3)管理节点的数据签名认证模块对接收的交互数据包进行签名认证;将签名验证结果为true的交互消息的原始交互消息进行重新签名;[0154]5-4)管理节点的数据传输模块将重新签名的交互消息、未签名的交互消息和管理节点的签名公钥以及哈希函数打包为新的交互数据包发送给本地数据节点n。[0155]5-5)本地数据节点n的签名认证模块对新的交互数据包记进行签名认证;将签名验证结果为true的交互消息发送给数据查询模块,并从数据存储模块中取出数据;[0156]5-6)将取出数据发送至签名认证模块进行签名,得到签名后的数据;[0157]5-7)由本地数据节点n将签名完的数据、未签名的数据、本地数据节点n的签名公钥以及哈希函数发送给管理节点,通过管理节点的数据签名认证模块再次进行签名认证。[0158]5-8)管理节点的数据签名认证模块再次对验证通过后的原数据进行签名,将签名完的数据、未签名的数据、管理节点n的签名公钥以及哈希函数发回本地数据节点m;[0159]5-9)本地数据节点m的签名认证模块对新的数据包进行签名认证;将签名验证结果为true的数据存入存储模块。[0160]关于上述文中提及的管理节点对本地数据库节点发送的数据进行签名认证,所有关于管理节点对接收数据的签名认证方法均为相同的方法,具体方法如下:[0161]管理节点对本地数据节点发送的数据,包括:交互信息数据包、数据密文包或查询信息;[0162](1)管理节点将传输来的含有签名后的数据传输给数据签名认证模块进行签名认证;[0163](2)管理节点通过哈希函数对未签名的数据进行哈希计算,得到新的散列值c;[0164](3)根据本地数据库节点签名公钥对签名完成的交互消息进行解密操作,得到散列值d;[0165](4)对比散列值c和散列值d,如果相同则签名结果则为true,表明数据是本地数据库节点发送来的;否则为false;表明该数据是入侵者恶意发送来的数据,此时丢弃该数据;[0166](5)将签名结果为true的签名后的数据进行重新签名;将重新签名的数据、未签名的数据、管理节点的签名公钥以及哈希函数发送给本地数据库节点。[0167]如图3为本发明的用户查询数据流程图,本发明提供了基于隐私保护的分布式数据库系统,具体包括以下步骤:[0168]10)分布式数据库系统的管理节点的数据传输模块接收用户发来的查询消息,并且将查询消息发送给数据隐私保护模块进行签名。之后由数据传输模块传送给各本地数据节点。[0169]11)本地数据节点接收到查询消息之后,由传输模块将查询消息发送给签名认证模块对数据进行签名认证。认证通过之后,将查询消息发送给数据查询模块。[0170]12)由数据查询模块对本地存储的数据进行查询,本地数据节点将查询到的数据发送到签名认证模块,将签完名的数据发送给传输模块,由传输模块发送给分布式数据库的管理节点。[0171]13)分布式数据库的管理节点的数据传输模块将数据发送至数据签名认证模块进行签名验证,解密生成明文,将解密后的明文传送给用户。[0172]步骤13)中,具体实现方式如下:[0173]13-1)管理节点将从本地数据库节点传输过来的签名数据发送给数据签名认证模块;[0174]13-2)数据签名认证模块使用本地数据库节点的签名公钥对发送来的签名数据进行解密操作,得到在本地数据库节点的计算的散列值e;[0175]13-3)数据签名认证模块使用接收来的哈希函数对未签名的数据进行哈希计算得到新的散列值f;[0176]13-4)对比散列值e和散列值f,如果两个散列值相等,那么签名结果为true,否则签名结果为false;[0177]13-5)如果签名验证结果为true,则表明数据是本地数据库发送的并且在传输过程中没有缺失;将该数据传输给数据解密模块进行解密操作;如果签名验证结果为false,则表明该数据是入侵者恶意发送来的数据或者数据在传输过程中已经缺失,那么丢弃该数据;[0178]13-6)将idt传输给密钥模块,在密钥表中进行查询,查询出对应的密钥keyt,将密钥keyt发送给数据隐私保护模块中的解密模块;[0179]13-7)数据解密模块使用传输来的密钥keyt对加密的密文进行解密得到明文,即:[0180]newdata=keyt(cipherdata)[0181]将得到的明文发送给用户,进行可视化的显示。[0182]如图4为本发明的数据隐私模块数据加密的流程图,本发明提供了基于隐私保护的分布式数据库系统,具体包括以下步骤:[0183]数据隐私保护模块接收到传来的数据后,在t时间段使用keyt对数据进行加密,加密公式如下所示:[0184]cipherdata=keyt(newdata)[0185]首先,初始化向量iv,向量iv的长度为length(keyt)。[0186]其次,对明文newdata进行分组,得到分组...,分组的长度就是length(keyt),即t时间段内密钥keyt的长度。[0187]再次,对最后一个分组进行填充操作,即在最后一个分组中添加的数num由下面公式所示:[0188][0189]在最后一个分组中添加num个num。使得最后一个明文分组保持长度一致。[0190]之后,对第一个分组明文和初始化向量iv进行异或操作并且对异或的结果进行加密操作,公式如下所示:[0191][0192]最后,加密得到的密文cipherdatan与第下一个分组明文进行异或操作,得到的异或结果如上一步的加密操作一样进行加密操作。一直循环此操作,直到最后一个分组加密完成得到最后的密文cipherdata。[0193]如图5为本发明的数据隐私模块数据解密的流程图,本发明提供了基于隐私保护的分布式数据库系统,具体包括以下步骤:[0194]首先,获取初始向量iv和密钥keyt。[0195]其次,将密文进行分组,分组长度就是length(keyt),得到密文分组...,[0196]再次,对第一个密文分组进行解密操作,再对解密结果和初始向量iv进行异或操作,得到明文分组公式如下所示:[0197][0198]之后,对密文分组进行解密操作,对解密后的分组和密文分组进行异或操作得到明文分组按顺序根据上一步进行循环解密。直到所有的密文分组全部解密结束。[0199]最后,组合所有的明文分组,得到组合的明文newdata。根据组合后的明文newdata的最后一个数字的数值y,进行删除加密时填充的y个数字。得到最后的明文data。[0200]如图5为本发明的密钥模块生成密钥的流程图,本发明提供了一种加密或解密的步骤过程;[0201]其中,加密过程具体体现在上述的步骤2)中,包括以下步骤:[0202]首先,密钥模块在t时刻内生成idt和keyt。在设置的固定时长,随机生成一个新的密钥。[0203]其次,将生成的idt和keyt存入密钥模块中的密钥表中。[0204]再次,将t时刻内生成的idt和keyt传入到数据隐私保护模块。供给数据隐私保护模块的数据加密模块对数据进行加密操作。[0205]而当数据隐私保护模块需要对数据进行解密操作时,数据隐私保护模块会根据idt进入密钥模块的密钥表中进行查询,将查询到的密钥发送给数据隐私保护模块,数据隐私保护模块可以使用密钥对加密数据进行解密操作,得到明文返回给用户。[0206]如图7所示,为本发明的系统结构示意图,本发明包括:管理节点和n个本地数据库节点;[0207]管理节点,包括:数据传输模块、数据标准化模块、数据隐私保护模块以及秘钥管理模块;[0208]数据传输模块,用于将用户输入的数据发送至数据标准化模块,输出数据隐私保护模块签名认证后的交互信息数据包、数据密文包或查询信息至本地数据库节点、以及接收本地数据库节点签名认证后交互信息数据包、数据密文包或查询信息;[0209]数据标准化模块用于接收数据传输模块接收到的数据进行数据格式标准化处理,并将格式标准化后的数据发送至数据隐私保护模块;[0210]秘钥管理模块,用于生成秘钥和密钥id,将密钥和密钥id存入密钥表中,并将密钥和密钥id发送至数据隐私保护模块;[0211]数据隐私保护模块,包括:数据签名认证模块、数据加密模块以及数据解密模块;[0212]数据签名认证模块,用于对接收到本地数据库节点的交互信息数据包、数据密文包或查询信息进行签名认证处理,并将签名认证处理后的数据发送至本地数据库节点;[0213]数据加密模块,用于将标准化后用户输入的数据,并根据秘钥管理模块发送来的秘钥进行数据加密,得到数据密文;[0214]数据解密模块,用于对加密的密文进行解密得到明文通过数据传输模块发送给用户;[0215]本地数据库节点,包括:传输模块、签名认证模块、数据存储模块以及数据查询模块;[0216]传输模块,用于与管理节点之间的数据交互;[0217]签名认证模块,用于对管理节点发送至本地数据节点库的交互信息数据包、数据密文包或查询信息进行签名认证、以及对本地数据节点库的数据进行签名;[0218]数据存储模块,用于存储管理节点发送的数据密文包;[0219]数据查询模块,用于生成交互信息、以及根据管理节点发送的查询消息对本地的数据存储模块中的数据进行查询。[0220]参考图1~3和图6~7,可以体现出,将加密解密模块从节点中间转移到了管理节点中,为数据的安全更为可靠。以及在管理节点中的密钥模块避免了加密密钥在节点中间传输,以防密钥泄露。[0221]本发明提出将对数据加密解密的模块全部放置在管理节点上。降低在各节点之间进行数据加密解密,而导致数据泄露的隐患。[0222]本发明提出了在管理节点设置密钥模块,将所有的密钥保存在密钥模块的密钥表中,对数据加密和解密都在管理节点进行,密钥也只在管理节点中传输。避免了在分布式数据库的个节点中传输密钥导致密钥泄露的严重问题。[0223]以上所述仅为本发明的实施方式,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进、扩展,均包含在本发明的保护范围内。









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部