基于可认证加密计数器的加密数据统计分析方法

文档序号:28216622发布日期:2021-12-28 22:21阅读:149来源:国知局
基于可认证加密计数器的加密数据统计分析方法

1.本发明涉及数据加密统计领域,特别是涉及一种基于可认证加密计数器的加密数据统计分析方法。


背景技术:

2.为了对加密数据进行统计分析,现有技术有:多方安全计算、同态加密技术,多方安全计算的统计分析功能很有限,比如进行数值大小比较;而要实现对加密数据的统计分析,需要全同态加密技术,其计算开销非常大,且效率低下。


技术实现要素:

3.有鉴于此,本发明的目的在于提供一种基于可认证加密计数器的加密数据统计分析方法,对数据属性计数,数据加密后,数据分析者利用此可认证加密计数器对数据进行统计分析有效提高加密数据统计效率,降低计算开销。
4.为实现上述目的,本发明采用如下技术方案:
5.一种基于可认证加密计数器的加密数据统计分析方法,包括以下步骤:
6.步骤s1:对于数据库中所有表的属性创建对应的可认证加密计数器,每个可认证加密计数器对应一个加密的二进制向量ev
ctr

7.步骤s2:对每个可认证加密计数器,采用可认证广播签密算法进行加密;
8.步骤s3:二进制向量ev
ctr
利用加同态加密算法进行加密,运行时对此加密的二进制向量进行逻辑与、逻辑或混合运算,实现密文下的统计分析。
9.进一步的,所述步骤s1具体为:
10.设数据库有n个表tb={tb1,tb2,
……
,tb
n
},表tb
i
中有m个属性attr={attr1,attr2,
……
,attr
m
},每个属性有l种取值,即有attr_value={{attr1_v1,attr1_v2,
……
,attr1_v
l1
}
11.{attr2_v1,attr2_v2,
……
,attr2_v
l2
}
……
12.{attr
m
_v1,attr
m
_v2,
……
,attr
m
_v
ln
}}
13.每个属性自带一个唯一标识的计数器,计数器id为id
ctr
=f(tb||attr||attr_value),构建的计数器为ctr={ctr1,ctr2,
……
,ctr
n
},其中
14.进一步的,所述可认证广播签密算法采用同态广播签密算法,包括五个多项式时间算法setup,keygen,signcrypt,designcrypt,verify,具体如下:
15.setup(1
λ
):输入安全参数λ,输出公共参数params;
16.keygen
s
(params):输入公共参数params,输出发送者的公私钥对(pk
s
,sk
s
);
17.keygen
r
(params,t,i):输入公共参数params和接收者号数i={1,2,

,t},输出接收者的公钥pk
r
和t个私钥(sk1,sk2,

,sk
t
);
18.signcrypt(params,pk
r
,sk
s
,m):输入公共参数params,pk
r
,sk
s
和明文消息m以及一个子集s∈{1,2,

,t},输出广播签密消息hbsc(m)=<hdr,s>,hdr是头部,s是接收者集
合;
19.designcrypt(params,pk
s
,sk
i
,hbsc(m)):输入加密者的公钥pk
s
,一个验证者的私钥sk
i
和密文hbsc(m),输出明文消息m;
20.verify(pk
s
,sk
i
,hbsc(m),m

):输入加密者的公钥pk
s
,一个验证者的私钥sk
i
,密文hbsc(m)及待验证消息m

,如果m=m

,则输出1,否则0。
21.进一步的,所述可认证加密计数器基于hbsc算法的加同态性,实现密文下的均值计算,具体为:
22.设有n个加密计数器,其明文和密文值分别为(m1,m2,

,m
n
)与(c1,c2,

,c
n
),则计算c
sum
=∏
ni=1
c
i
,则计数器的总和sum和均值μ分别为:
23.sum=d(c
sum
),μ=sum/n。
24.进一步的,所述可认证加密计数器针对每个属性计数,分析者可以验证其计数结果。
25.进一步的,所述统计分析包括简单条件统计分析与复杂条件统计分析。
26.进一步的,所述简单条件统计分析直接利用可认证加密计数器取得统计分析结果。
27.进一步的,所述复杂条件统计分析,具体如下:设计一个d维的二进制向量,其中d大于记录数量,针对每个计数器,对于该属性取值的记录record,将二进制向量中位置为“hash(record)mod d”的值置1,其余位置0。
28.进一步的,所述加同态加密算法采用paillier密码算法,具体如下:
29.设c=e(m)表示对消息m加密得到密文c,d(c)表示对密文c解密得到明文m,设c1=e(m1),c2=e(m2),paillier密码算法具有下列性质:
30.d(c1*c2)=m1+m2
31.将向量中每个元素分别利用paillier密码算法加密。
32.一种基于可认证加密计数器的加密数据统计分析系统,包括处理器、存储器以及存储在所述存储器上的计算机程序,所述处理器执行所述计算机程序时,具体执行如权利要求1

9任一项所述的加密数据统计分析方法中的步骤。
33.本发明与现有技术相比具有以下有益效果:
34.本发明对数据属性计数,数据加密后,数据分析者利用此可认证加密计数器对数据进行统计分析有效提高加密数据统计效率,降低计算开销。。
附图说明
35.图1是本发明方法原理示意图。
具体实施方式
36.下面结合附图及实施例对本发明做进一步说明。
37.参考图1,在本实施例中,提供一种基于可认证加密计数器的加密数据统计分析方法,包括以下步骤:
38.步骤s1:对于数据库中所有表的属性创建对应的可认证加密计数器,每个可认证加密计数器对应一个加密的二进制向量ev
ctr

39.在本实施例中,优选的,设数据库有n个表tb={tb1,tb2,
……
,tb
n
},表tb
i
中有m个属性attr={attr1,attr2,
……
,attr
m
},每个属性有l种取值,即有
40.attr_value={{attr1_v1,attr1_v2,
……
,attr1_v
l1
}
41.{attr2_v1,attr2_v2,
……
,attr2_v
l2
}
……
42.{attr
m
_v1,attr
m
_v2,
……
,attr
m
_v
ln
}}
43.每个属性自带一个唯一标识的计数器,计数器id为id
ctr
=f(tb||attr||attr_value),需要的计数器为ctr={ctr1,ctr2,
……
,ctr
n
},其中
44.举例:用户信息表“userinfo”包含的属性attr={gender,location,education,income},当增加一条记录{male,fuzhou,master,10

20w},属性gender的计数器id
ctr
=f(userinfo||gender||male)、属性location的计数器id
ctr
=f(userinfo||location||fuzhou)、属性education的计数器id
ctr
=f(userinfo||education||master)及属性income的计数器id
ctr
=f(userinfo||income||10

20w)的值增1,当删除一条记录时,就将以上计数器的值减1。
45.步骤s2:对每个可认证加密计数器,采用可认证广播签密算法进行加密;
46.在本实施例中,可认证加密计数器利用可认证广播签密算法加密,可实现认证功能及多个分析者解密功能,既可以验证加密结果,又具有广播性质,即可以由多个接收者解密。
47.其中可认证性使得分析者在解密计数器时对密文进行验证,确定是合法的计数器。广播性质可以实现多个分析者的统计分析。
48.定义(同态广播签密算法hbsc)由五个多项式时间算法组成:hbsc=(setup,keygen,signcrypt,designcrypt,verify),其形式化定义如下:
49.–
params

setup(1
λ
):输入安全参数λ,输出公共参数params.
50.–
(pk
s
,sk
s
)

keygen
s
(params):输入公共参数params,输出发送者(加密者)的公私钥对(pk
s
,sk
s
).
51.–
(pk
r
,sk
i
)

keygen
r
(params,t,i):输入公共参数params和接收者号数i={1,2,

,t},输出接收者(验证者)的公钥pk
r
和t个私钥(sk1,sk2,

,sk
t
).
52.–
hbsc(m)

signcrypt(params,pk
r
,sk
s
,m):输入公共参数params,pk
r
,sk
s
和明文消息m以及一个子集s∈{1,2,

,t},输出广播签密消息hbsc(m)=<hdr,s>,hdr是头部,s是接收者集合.
53.–
m

designcrypt(params,pk
s
,sk
i
,hbsc(m)):输入加密者的公钥pk
s
,一个验证者的私钥sk
i
和密文hbsc(m),输出明文消息m.
54.–
{0,1}

verify(pk
s
,sk
i
,hbsc(m),m

):输入加密者的公钥pk
s
,一个验证者的私钥sk
i
,密文hbsc(m)及待验证消息m

,如果m=m

,则输出1,否则0.
55.hbsc具有加法同态性质,因此对于任意两条明文消息m1和m2,任意公私钥对((pk
s
,sk
s
),(pk
r
,sk
r
))

keygen(params),都满足:
56.designcrypt(pk
s
,sk
r
,signcrypt(pk
r
,sk
s
,m1)
·
signcrypt(pk
r
,sk
s
,m2))=m1+m2.
57.hbsc算法具有签密性质,消息使用指定用户的公钥加密,因此只有拥有私钥的用户可以解密消息。消息解密后,该用户再使用发送者的公钥验证签名,可以保证消息来源可
信,从而实现认证。
58.因为hbsc算法的加同态性,设计的可认证加密计数器可以实现密文下的均值计算,设有n个加密计数器,其明文和密文值分别为(m1,m2,

,m
n
)与(c1,c2,

,c
n
),则计算c
sum
=∏
ni=1
c
i
,则这些计数器的总和sum和均值μ为:
59.sum=d(c
sum
),μ=sum/n
60.步骤s3:二进制向量ev
ctr
利用加同态加密算法进行加密,运行时对此加密的二进制向量进行逻辑与、逻辑或混合运算,实现密文下的统计分析。
61.在本实施例中,二进制向量ev
ctr
利用加同态加密算法,如paillier,设计一种向量加密算法,后面可以对此加密的二进制向量进行逻辑与、逻辑或及其混合运算,实现密文下的统计分析功能。
62.优选的,paillier密码算法具有加同态性,设c=e(m)表示对消息m加密得到密文c,d(c)表示对密文c解密得到明文m,设c1=e(m1),c2=e(m2),paillier密码算法具有下列性质:
63.d(c1*c2)=m1+m2
64.将向量中每个元素分别利用paillier密码算法加密。假设用户表“userinfo”中满足条件1:“籍贯”为“北京”的记录对应的二进制向量为a1=(a
11
,a
12
,

,a
1d
),将每个元素分别利用paillier密码算法加密得到c1=(c
11
,c
12
,

,c
1d
)。满足条件2:年龄在“30

40”区间的记录对应的二进制向量为(a
21
,a
22
,

,a
2d
),将每个元素分别利用paillier密码算法加密得到c2=(c
21
,c
22
,

,c
2d
)。那么要求既满足条件1又满足条件2的记录数量,可以转化为求“条件1and条件2”,就可以转化为求向量内积“a1·
a
2”,而因为a1和a2均已加密,运算要在其密文c1和c2上进行,因此计算“c
1i
*c
2i”,然后解密“c
1i
*c
2i”,根据其同态性,解密结果为“m
1i
+m
2i”,那么当两个条件都满足时,其解密结果必须等于2,最后对解密结果2计数,就知道有多少条记录满足两个条件。以上是两个条件的逻辑与,三个条件的逻辑与则是对解密结果3计数,四个条件对解密结果4计数。
65.如果要求满足两个条件之一的统计分析,即逻辑或,可以转化为求“条件1or条件2”。仍然以上述例子为例,假设用户表“userinfo”中满足条件1:“籍贯”为“北京”的记录对应的二进制向量为a1=(a
11
,a
12
,

,a
1d
),将每个元素分别利用paillier密码算法加密得到c1=(c
11
,c
12
,

,c
1d
)。满足条件2:年龄在“30

40”区间的记录对应的二进制向量为(a
21
,a
22
,

,a
2d
),将每个元素分别利用paillier密码算法加密得到c2=(c
21
,c
22
,

,c
2d
)。
66.那么要求满足条件1或满足条件2的记录数量,可以转化为求“条件1or条件2”,因为a1和a2均已加密,运算要在其密文c1和c2上进行,因此计算“c
1i
*c
2i”,然后解密“c
1i
*c
2i”,根据其同态性,解密结果为“m
1i
+m
2i”,因为逻辑或只要有一个条件满足即满足整体,因此只要解密结果≥1,就满足条件,因此对解密结果≥1进行计数,就知道有多少条记录满足条件。以上是两个条件的逻辑或,多个条件的逻辑或也是对解密结果≥1进行计数。
67.在本实施例中,优选的,可认证加密计数器针对每个属性计数,分析者可以验证其计数结果。
68.在本实施例中,优选的,统计分析功能分为简单条件统计分析与复杂条件统计分析。
69.简单条件统计分析指可以直接利用可认证加密计数器取得统计分析结果,比如可
认证加密计数器是针对用户表“userinfo”的属性“籍贯”为“北京”进行计数,那么要统计“籍贯”为“北京”的人数,直接解密该可认证加密计数器即可得到统计结果。
70.复杂条件统计分析则不能直接通过可认证加密计数器取得统计分析结果,比如需要统计“籍贯”为“北京”且年龄在“30

40”区间的人数,则需要统计用户表“userinfo”中“籍贯”为“北京”且年龄在“30

40”区间的记录数,需要设计一个二进制向量来表明哪些记录满足该属性取值,同时因为向量是加密存储的,需要设计针对加密二进制向量的计算协议来实现该统计分析功能。
71.针对复杂统计分析,我们设计一个d(大于记录数量)维的二进制向量,针对每个计数器,对于该属性取值的记录record,将二进制向量中位置为“hash(record)mod d”的值置1,其余位置0。
72.假设用户表“userinfo”中满足条件1:“籍贯”为“北京”的记录对应的二进制向量为v1=(1,0,1,
……
,),满足条件2:年龄在“30

40”区间的记录对应的二进制向量为v2=(1,0,1,
……
,),那么要求既满足条件1又满足条件2的记录数量,可以转化为求“条件1and条件2”,就可以转化为求向量内积“v1·
v
2”。
73.同理,如果要求满足两个条件之一的统计分析,可以转化为求“条件1or条件2”,也可以转化为求向量内积“v1·
v
2”。
74.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
75.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
76.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
77.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
78.以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例。但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1