专利转让平台_买专利_卖专利_中国高校专利技术交易-买卖发明专利上知查网

全部分类
全部分类
一种多用户进行数据安全共享的方法

一种多用户进行数据安全共享的方法

IPC分类号 : H04L29/06

申请号
CN201410821945.X
可选规格
  • 专利类型: 发明专利
  • 法律状态: 有权
  • 申请日: 2014-12-25
  • 公开号: CN104539608A
  • 公开日: 2015-04-22
  • 主分类号: H04L29/06
  • 专利权人: 桂林电子科技大学

专利摘要

本发明属于信息安全领域,涉及一种多用户数据安全共享的方法。该方法可以将分发给不同用户的数据采用单个非精确数据进行共享,共享的数据采用精确数据和各级密码映射得出,获得不同的密码的人可以获得不同质量的数据,使得数据的误差范围可以得到不同程度的控制,获得的密码越多,就可以得到越精确的数据,这样可以减少发送信息的次数,让不同的用户各取所需。

权利要求

1.一种多用户数据安全共享方法,其特征为采用多个密码k1,k2,┅,kn对真实数据m作非精确化处理,将不精确数据c=f(m,k1,k2,┅,kn)共享,已知k1,k2,┅,kn的人可以计算出m,已知k1,k2,┅,kn-1的人可以求m的可能值m′的误差d=m′‐m在一个较小的取值范围Dn-1范围内,在已知k1,k2,┅,kn-2时,误差控制在一个比Dn-1大的取值范围Dn-2范围内,以此类推,知道的密码数量越少,误差越大。

2.如权利要求1所述的多用户数据安全共享方法,其特征为:共享的不精确数据c=m+S1(k1)+S2(k2),┅,+Sn(kn);

自变量kn的取值范围内,Si(ki)的最大值和最小值分别为Si(max)和Si(min),Si(max)和Si(min)由如下方程组确定:

T1(max)=S1(max)+┅+Sn(max)

T1(min)=S1(min)+┅+Sn(min)

T2(max)=S2(max)+┅+Sn(max)

T2(min)=S2(min)+┅+Sn(min)

Ti+1(max)=Si+1(max)+┅+Sn(max)

Ti+1(min)=Si+1(min)+┅+Sn(min)

Tn(max)=Sn(max)

Tn(min)=Sn(min)

其中Ti(max)和Ti(min)分别为Di-1中的最大值和最小值。

3.如权利要求2所述的多用户数据安全共享方法,其特征为Si(ki)采用如下方法得出:选取一个在ki的取值范围内是单调函数f(x),令Si(ki)=f(ki)*a+b,

将ki的最大值ki(max)和最小值ki(min),分别带入函数,得出方程组:

Si(max)=f(ki(max))*ai+bi

Si(min)=f(ki(min))*ai+bi

从而确定ai和bi。

4.如权利要求2所述的多用户数据安全共享方法,其特征为:采用线性函数Si(ki)=ai*ki+bi。

5.如权利要求2所述的多用户数据安全共享方法,其特征为:对于每一级的ki,相应设定公开数pi,并且规定约定的序列值si,c=精确数据m+{[Ek1(f(公开数p1,约定序列值s1))modN1]*d1+r1}+[Ek2(f(公开数p2+约定序列值s2))modN2+r2]*d2+┅+[Ekn(f(公开数pn+约定序列值sn))modNn+rn]*dn,其中Ni为[Si(max)‐Si(min)]/di的四舍五入值,ri代表调整值,将误差调到Si(max)和Si(min)之间,取‐[Si(max)‐Si(min)]/2;E ki(x)为安全的加密算法,其下标ki为密钥,输入x当做明文进行加密,f(公开数p,约定序列值s)是一个函数值随着s的变化而不同的函数,其输出是整数。

6.如权利要求5所述的多用户数据安全共享方法,其特征为di的确定方法如下:

1)Si(max)‐Si(min)为整数,且Eki(f(公开数pi,约定序列值s i))的取值范围大于Ni的时候,可以选取di=1,Ni=Si(max)‐Si(min);

2)当Si(max)‐Si(min)不是整数的时候,尽量选取较小的di使得[Si(max)‐Si(min)]/di为整数,且Eki(f(公开数pi,约定序列值s i))的取值范围大于[Si(max)‐Si(min)]/di的时候,Ni=[Si(max)‐Si(min)]/di;

3)不满足上述1和2的时候,Eki(f(公开数pi,约定序列值si))的取值范围小于[Si(max)‐Si(min)]/di的时候,在满足Eki(f(公开数pi,约定序列值si))的取值范围大于[Si(max)‐Si(min)]/di的条件下尽量选取较大的di,取Ni为[Si(max)‐Si(min)]/di四舍五入的结果。

说明书

技术领域

本发明属信息安全领域,涉及一种多用户进行数据安全共享的方法。

背景技术

随着信息技术的发展,许多服务也趋向于信息化,数字化,一些服务提供的内容即为数据。在许多时候,数据直接进行共享或广播比较方便,成本很低,便于管理,网络、群等都便于数据的共享和广播。一般情况下,共享的数据都是未经加密的,会造成信息泄露等安全问题,即使是将数据加密,所有用户都能同时解密。但是有时候,一个服务提供者可能希望提供差异化的服务,服务提供的对象是数据,在许多营销策略中,会尝试提供免费、收费和vip等不同等级的服务,因为免费用户照样会带来间接的收益和正面的影响。我们可以将这类差异化的服务的对象也应用到有价值数据提供中。

免费、收费和vip用户可以获得自己想要的数据精度,这样服务提供者可以拥有更多的客户的同时,又可以从部分愿意获得更高精度数据的用户获得一定的收益,有些用户看重这个数据,有些用户乐意花钱,有些用户可以从高精度数据中获得更多收益。没有密码的人得到看起来也是差不多,但是精度差的数据,这样可以吸引大量的不愿意付费的大群体,以集聚人气和影响力。在网络上提供免费,其边际数据成本几乎为0。

数据一般在网络上共享的时候,很难防止被监听和获取,而且数据提供者也希望通过尽量少的数据来对用户提供差异化的数据。

现有的技术缺乏相应的解决方案,在本专利中,通过对数据加以处理,使得数据精度变差,但是在有密码,甚至于多级密码的情况下就可以获得更高级的精度,直到正确的值。

发明内容

在本发明中,将提供的精确数值进行多级的可以控制误差的“不精确化”,使得广播或共享的数据是有误差的,而不同的用户拥有零到多个密码,通过这些不同的密码,获得不同的数据精度。

多用户数据安全共享的流程依次为:1.发送方根据需要设计不同级别用户误差范围,2.发送方设计非精确化计算方法,3.发送方公开计算方法,给不同用户共享不同级别密码,4.发送方共享非精确数据,5.接受方得出精确数据或非精确的取值范围。

假设精确数据为m,有多级的密码K1,K2,┅,Kn,它们各自都是随机变量,各自有一个取值范围,用集合SK1,SK2,┅,SKn,优选地,一般分配的密码采用离散的整数比较方便,假设给不同级别的用户分配了不同级别的密码,最低级的用户可以是没有任何密码,数据m有多级的密码k1,k2,┅,kn,可以用这些密码计算出精确的m。

被发送方共享的不精确数据为c=f(m,k1,k2,┅,kn),要求函数保证当部分密码已经给定,而其他密码是随机的时候,误差在控制范围之内。

将我们所关注误差表示为d=D(m,c),常见的问题中,误差是两个数值之差,比如体温的误差,也有一部分误差是两个数值的比值。

大多数情况下,我们感受的误差可以认为是给出值和真实值之差,即d=c‐m,我们这里考虑这种情形下的数据共享。在知道不同密码的时候,我们可以确定一个精确值(真实值)m的范围,这个范围内的推测值(或者说在此条件下m的可能值)m′与真实值m可能存在误差,这个误差可以是从0到某个数的一个范围。

本方案要求在所有的密码k1,k2,┅,kn时可以确定m,即可以无误地确定m,在已知k1,k2,┅,kn-1时,推测值m′与真实值m的误差d=m′‐m控制在一个较小的取值范围(或集合)Dn-1范围内,在已知k1,k2,┅,kn-2时,误差控制在一个比Dn-1大的取值范围(或集合)Dn-2范围内,以此类推,知道的密码数量越少,误差取值范围越大。这个误差的取值范围根据需要设定。

另外,如果要求用户在不知道任何密码的前提下对数据m完全未知,可以对c采用一次加密,也可以是加大误差的取值范围。

为了方便实现,我们可以简化函数,将函数限定为

c=m+S1(k1)+S2(k2),┅,+Sn(kn)

的形式,误差由各级密码独立地产生,并且误差累加,这会便于求解和简化问题。

每一个函数Si(ki)在ki的取值范围内有最大值Si(max)和最小值Si(min),一般最小值为负,最大值为正。这样的函数很多,只要保证函数的取值范围在上述范围内即可。

不知道密码的用户获得数据的误差范围为T1(max)=S1(max)+┅+Sn(max)到T1(min)=S1(min)+┅+Sn(min),知道k1的用户的误差范围为T2(max)=S2(max)+┅+Sn(max)到T2(min)=S2(min)+┅+Sn(min),知道k1到ki的用户的误差范围为Ti+1(max)=Si+1(max)+┅+Sn(max)到Ti+1(min)=Si+1(min)+┅+Sn(min),知道k1到kn-1的用户的误差范围为Tn(max)=Sn(max)到Tn(min)=Sn(min),知道所有密码的用户得到数据的误差为0。误差范围是发送者根据需要设定的。

在现实中,人们根据需求可以设定上述的各级用户的误差范围Ti(max)和Ti(min),于是根据上面列出的所有等式建立方程组,

T1(max)=S1(max)+┅+Sn(max)

T1(min)=S1(min)+┅+Sn(min)

T2(max)=S2(max)+┅+Sn(max)

T2(min)=S2(min)+┅+Sn(min)

Ti+1(max)=Si+1(max)+┅+Sn(max)

Ti+1(min)=Si+1(min)+┅+Sn(min)

Tn(max)=Sn(max)

Tn(min)=Sn(min)

可以得出所有的Si(max)和Si(min)。

我们设定这种要求可以用建立一个表来实现,但是查表存在一定的不便,也没有现存的建表方法,如果通过一定运算得出,则更方便。

所以本发明采用计算来实现。传统的加减法和取模运算的运算量低,而且方法简短,所以这里利用这类方法设计,这样根据所有的Si(max)和Si(min)设定取值范围在这个区域内的函数Si(ki)即可。

Si(ki)可以采用一定的方法构造,比如,对于ki,我们可以随意选取一个在ki的取值范围内是单调递增或递降的函数f(x),令

Si(ki)=f(ki)*a+b,

ki是有一个取值范围的,将ki的最大值ki(max)和最小值ki(min),分别带入函数,得出方程组

Si(max)=f(ki(max))*ai+bi

Si(min)=f(ki(min))*ai+bi

解方程即可得ai和bi。这样就可以找到合适的函数。

用户收到c以后,可以根据自己已知的各个ki,得出大致的数据范围,当然他也可以取平均值,对于不知道这个数据是经过非精确化处理的,他就会直接以为c就是那个精确的值,起到误导的效果。

本方案的的有益技术效果有:可以通过共享单个数据就给不同级别的用户分发不同精确程度的数据,同时,具有误导性,因为没有密码的人得到看起来也是差不多,似乎是正常数据,但是他获得数据精度差,不知道本数据是结果非精确化处理的人可能会被误导。而且发送者所要求的精度可以通过函数的设计控制。

优选地,可以要求Si(ki)在Si(max)和Si(min)区间范围内是均匀分布的。这样得到的不精确结果的误差更加随机。

网络上共享的数据可能是多次的,而且前后有时差,比如一天一次。在经过一段时间后,除了这个共享的不精确数据c是已知的外,最终完全精确的数据m,以及各级的不精确数据也可能会以各种形式泄露出来,比如对气温的预报结果到了时间还是会被知道的。在考虑上述的因素的安全性的情况下,我们提出优选实施方案A如下:

人们根据需求可以设定上述的各级用户的误差范围Ti(max)和Ti(min),根据上述关系式可以建立方程组,

T1(max)=S1(max)+┅+Sn(max)

T1(min)=S1(min)+┅+Sn(min)

T2(max)=S2(max)+┅+Sn(max)

T2(min)=S2(min)+┅+Sn(min)

Ti+1(max)=Si+1(max)+┅+Sn(max)

Ti+1(min)=Si+1(min)+┅+Sn(min)

Tn(max)=Sn(max)

Tn(min)=Sn(min)

可以计算出所有的Si(max)和Si(min)。

对于每一级的ki,相应设定公开数pi,并且规定约定的序列值si产生方式,这个数要求保证每一次发送消息的时候si不一样即可。约定序列值可以是双方能同步的时间,也可以是序号,达到每次约定序列值不一样,而且双方能够同步即可。

c=精确数据m+{[Ek1(f(公开数p1,约定序列值s1))modN1]*d1+r1}+[Ek2(f(公开数p2+约定序列值s2))modN2+r2]*d2+┅+[Ekn(f(公开数pn+约定序列值sn))modNn+rn]*dn

di的选取可以有较大的随意性,Ni为[Si(max)‐Si(min)]/di的四舍五入值。

优选的确定方法如下:

1)Si(max)‐Si(min)为整数,且Eki(f(公开数pi,约定序列值si))的取值范围大于Ni的时候,可以选取di=1,Ni=Si(max)‐Si(min);

2)当Si(max)‐Si(min)不是整数的时候,尽量选取较小的di使得[Si(max)‐Si(min)]/di为整数,且Eki(f(公开数pi,约定序列值si))的取值范围大于[Si(max)‐Si(min)]/di的时候,Ni=[Si(max)‐Si(min)]/di;

3)不满足上述1和2的条件,比如遇到一些无理数等情形无法保证[Si(max)‐Si(min)]/di为整数或者[Si(max)‐Si(min)]/di为整数时候,Eki(f(公开数pi,约定序列值si))的取值范围小于[Si(max)‐Si(min)]/di的时候,在满足Eki(f(公开数pi,约定序列值si))的取值范围大于[Si(max)‐Si(min)]/di的条件下尽量选取较大的di,取Ni为[Si(max)‐Si(min)]/di四舍五入的结果。

ri代表调整值,将误差调到Si(max)和Si(min)之间,可以取‐[Si(max)‐Si(min)]/2。

E ki(x)为安全的加密算法,其下标ki为密钥,输入x当做明文进行加密。由于安全密码算法在已知明文f(公开数pi,约定序列值si)和密文Eki(f(公开数pi,约定序列值si))的值的时候,很难推算出ki,这样可以保证ki不被他人通过获得的已知明文f(公开数pi,约定序列值si)和Eki(f(公开数pi,约定序列值si))的值推算出来。

f(公开数p,约定序列值s)是一个运算量比较低,而且函数值随着s的变化而不同的函数,要求其输出是整数,可以采用一个一般的函数,将计算的结果去掉负号,取整,如果加密算法是分组密码算法,还需要将前面得到的值填充至分组长度倍数,双方约定相同填充方式即可,比如可以填充0,填充长度不超过一个分组长度。这样函数f输出的值即可作为加密算法的明文进行计算。

本优选方案的有益技术效果有:不知道密钥(密码)的情况下,无法根据这些参数推导出密钥来。由于加密的公开参数附加了序列值,使得每一次加密得到的结果不一样,即使是前面发送数据ci对应的精确消息mi泄露,也不影响以后的数据加密安全性,不会造成ki泄露,所以不用反复共享密码,可以多次使用前面分配的ki。

附图说明

图1为本发明的流程框图。

具体实施方式

以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。

实施例1为本安全共享方法的实施例,假设有一长度的值存在各种不同的社会价值,对于不同的群体的价值是不一样的,有些人只需要知道很大致的一个长度,但是对于一些特别用户,需要更加精确的长度,而还有一些用户需要完全精确的长度。他们利用这一信息的方式不同,这个信息对于他们也存在不同的价值,所以,他们愿意为此支付的费用也不同。为了简化例子,我们假设有3种级别的用户,不愿意付费的低级用户,愿意付少量费用的中级用户和较高费用的高级用户,免费用户可以获得100cm的正负误差,T1(max)=100cm,T1(min)=‐100cm,200cm的误差范围,中级用户的正负误差为10cm,T2(max)=10cm,T2(min)=‐10cm,高级用户的误差为0。

T1(max)=S1(max)+S2(max)=100cm

T1(min)=S1(min)+S2(min)=‐100cm

T2(max)=S2(max)+S3(max)=10cm

T2(min)=S2(min)+S3(min)=‐10cm

所以有S2(max)=10cm

S2(min)=‐10cm

S1(max)=90cm

S1(min)=‐90cm

c=m+S1(k1)+S2(k2)

选取满足条件的函数可以有许多方法,比如前面提到的方法就可以利用递增函数或者递减函数来找到。但是为了达到概率分布均等,更随机的结果,我们采用线性函数S1(k1)=a1*(k1)+b1;S2(k2)=a2*(k2)+b2。为了方便,对于i=1,2,我们假设ki的取值范围均为0-10之间的整数,在计算中我们忽略单位cm。

可得a1=18,b1=‐90,a2=2,b2=‐10,

现在消息的发送者告知中级用户k1=1,告诉高级用户k1=1,k2=5,现在发送者将一个精确长度的消息m=670,计算出c=m+S1(k1)+S2(k2)=670+1*18‐90+5*2‐10=598,将598在网络上共享,对于低级用户,他不知道k1和k2,所以他可能认为精确数据为598,如果他知道存在非精确的处理,他可能知道数据取值范围为498‐698之间,中级用户知道m=c‐S1(k1)‐S2(k2)=598‐1*18+90‐S2(k2)=670‐S2(k2),所以他可以取中间值670,或者是可以确定精确值的范围是660-680。

在本实施例基础上,可以将函数替换为更加复杂的函数,无论是否是递增或递降的都可以,但是单调的函数会比较方便,而且分布会比较随机。此外,如果需要防止不知道密码的免费用户获取非精确的信息,也可以对数据做一次加密,而这个加密用的密钥也要分发给所有的不同级别的付费用户。

实施例2为优选实施方案A的示例,定期产生的数据具有价值,对于不同的群体的价值是不一样的。为了更便于理解,我们在实施例1的基础上来改进,假设有3种级别的用户,不愿意付费的低级用户,愿意付少量费用的中级用户和较高费用的高级用户,同样免费用户可以获得100cm的正负误差,T1(max)=100cm,T1(min)=‐100cm,中级用户的误差为10cm,T2(max)=10cm,T2(min)=‐10cm,高级用户的误差为0。后面我们忽略单位cm。

T1(max)=S1(max)+S2(max)=100cm

T1(min)=S1(min)+S2(min)=‐100cm

T2(max)=S2(max)+S3(max)=10cm

T2(min)=S2(min)+S3(min)=‐10cm

所以有S2(max)=10cm

S2(min)=‐10cm

S1(max)=90cm

S1(min)=‐90cm

设定

c=m+{[Ek1(f(公开数p1,约定序列值s1))modN1]*d1+r1}+[Ek2(f(公开数p2+约定序列值s2))modN2+r2]*d2,

g1=f(p1,s1)=padding(p1+s1)

g2=f(p2,s2)=padding(p2+s2)

padding()表示将自变量做填充处理,以改变自变量为一个128bit的分组,一般情况下自变量的长度不会超过128bit,所以填充的方法为在前面添加0直到长度达到128bit,这样相当于在数值上不变。约定的序列值为发送的序号,从1开始,每次加1,当然采用其他的信息,比如时间也可。

加密算法E均为128bit的AES加密算法,d1=d2=1,N1=180,N2=20,r1=‐90,r2=‐10,密钥k的取值范围为密钥空间中的数值,由于密码算法的数据较大,而且每一次计算的结果不同,所以,这里的示例中不给出具体的值。

现在消息的发送者告知中级用户k1,告诉高级用户k1,k2,现在发送者将一个精确消息m,计算出c在网络上共享,不同的用户,可能得出不同的取值范围或者均值,知道所有k的用户可以得出精确值。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

一种多用户进行数据安全共享的方法专利购买费用说明

专利买卖交易资料

Q:办理专利转让的流程及所需资料

A:专利权人变更需要办理著录项目变更手续,有代理机构的,变更手续应当由代理机构办理。

1:专利变更应当使用专利局统一制作的“著录项目变更申报书”提出。

2:按规定缴纳著录项目变更手续费。

3:同时提交相关证明文件原件。

4:专利权转移的,变更后的专利权人委托新专利代理机构的,应当提交变更后的全体专利申请人签字或者盖章的委托书。

Q:专利著录项目变更费用如何缴交

A:(1)直接到国家知识产权局受理大厅收费窗口缴纳,(2)通过代办处缴纳,(3)通过邮局或者银行汇款,更多缴纳方式

Q:专利转让变更,多久能出结果

A:著录项目变更请求书递交后,一般1-2个月左右就会收到通知,国家知识产权局会下达《转让手续合格通知书》。

动态评分

0.0

没有评分数据
没有评价数据
×

打开微信,点击底部的“发现”

使用“扫一扫”即可将网页分享至朋友圈

×
复制
用户中心
我的足迹
我的收藏

您的购物车还是空的,您可以

  • 微信公众号

    微信公众号
在线留言
返回顶部