一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种用户数据安全存储管理方法与流程

2023-08-14 21:07:19 来源:中国专利 TAG:


1.本发明涉及数据存储技术领域,具体涉及一种用户数据安全存储管理方法。


背景技术:

2.随着5g、云计算和人工智能的大规模应用,生成的数据量相较以前呈现急剧增长的趋势,这给数据的处理和共享带来较大的压力。如今常采用的方法是租用公有云或者建立私有云存储数据,通过云服务器对处理后的数据进行共享。而这些云服务器的出现通过负载均衡等技术手段降低了存储成本,但是中心化的数据存储存在被攻击而导致信息泄露的风险;数据存储加密程度不高或密文算法不完善均会造成敏感数据被窃取或篡改。因此,在云服务器上存储用户数据需要一个安全有效的加密方法,实现数据共享中的安全访问和策略控制。
3.现有技术中对用户数据的共享加密大多采用代理重加密,降低对公有云的完全信任和依赖度,实现发送者和接收者之间的点对点共享数据。该方法对于大规模数据而言,需要对每个密钥进行加密解密操作,这不但会使得系统的可拓展性受阻,还会由于代理服务器频繁记录用户的密钥转换操作而导致用户身份和行为信息的泄露。


技术实现要素:

4.为了解决现有方法在对用户数据进行加密时存在的信息被泄露的问题,本发明的目的在于提供一种用户数据安全存储管理方法,所采用的技术方案具体如下:本发明提供了一种用户数据安全存储管理方法,该方法包括以下步骤:获取每个用户的用户数据、用户id、用户身份码、身份组别;根据各身份组别中用户身份码以及用户的数量,生成各身份组别对应的基准素数;基于所述基准素数获取映射函数,根据所述基准素数和所述映射函数,分别得到各身份组别对应的秘密参数和公开参数;根据用户身份码和所述秘密参数,确定各身份组别的用户私钥;根据用户id和所述公开参数,确定各身份组别的系统公钥;根据各身份组别中各用户id和所述系统公钥,确定各身份组别的重加密密钥;基于所述用户私钥、所述系统公钥、用户id、所述秘密参数和所述映射函数对各身份组别中用户的用户数据进行加密获得各身份组别的初始密文;根据用户数据对应的类型判断是否进行二次加密,若是,则根据所述重加密密钥对所述初始密文进行加密得到各身份组别的目标密文;若否,则将所述初始密文作为目标密文。
5.优选的,所述根据各身份组别中用户身份码以及用户的数量,生成各身份组别对应的基准素数,包括:对于任一身份组别:根据该身份组别中用户身份码以及用户的数量,得到该身份组别对应的素数影响量;若所述素数影响量为奇数,则将素数影响量作为该身份组别对应的目标素数影响量;若
所述素数影响量为偶数,则将素数影响量与常数1的和值作为该身份组别对应的目标素数影响量;对所述目标素数影响量进行素性测试获得该身份组别对应的基准素数。
6.优选的,采用如下公式计算该身份组别对应的素数影响量:其中,为该身份组别对应的素数影响量;n为该身份组别中用户的数量,为该身份组别中用户身份码的第1个字符;为该身份组别中用户身份码的第2个字符;为该身份组别中用户身份码的第m个字符;m为用户身份码的长度;ascii()为机器码转换函数,将字符转换为8位机器码;b2d()为将二进制数转换为十进制数的进制转化函数;

表示异或运算。
7.优选的,所述基于所述基准素数获取映射函数,包括:对于任一身份组别:随机生成两个p阶乘法循环群,分别记为第一循环群和第二循环群,其中,p为该身份组别对应的基准素数;基于所述第一循环群和所述第二循环群,获得双线性映射函数、第一单射函数和第二单射函数;所述映射函数包括双线性映射函数、第一单射函数和第二单射函数。
8.优选的,根据所述基准素数和所述映射函数,分别得到各身份组别对应的秘密参数和公开参数,包括:对于任一身份组别:在区间[0,p]中选取一个随机数记为第一随机数;以该身份组别对应的基准素数为底数,以所述第一随机数为指数的指数函数的值作为该身份组别对应的秘密参数;获取第一循环群的生成元和第二循环群的生成元;基于所述双线性映射函数、所述第一循环群、所述第二循环群、所述第一单射函数、所述第二单射函数、所述第一循环群的生成元、所述第二循环群的生成元和对应的基准素数,构建六元组;将所述六元组作为该身份组别对应的公开参数。
[0009]
优选的,所述根据用户身份码和所述秘密参数,确定各身份组别的用户私钥,包括:对于任一身份组别:将该身份组别中用户身份码映射到第一单射函数中获得第一参数,将该身份组别对应的秘密参数映射到第二单射函数中获得第二参数;将所述第一参数和所述第二参数组成的二元组作为该身份组别的用户私钥。
[0010]
优选的,所述根据用户id和所述公开参数,确定各身份组别的系统公钥,包括:将各身份组别中用户的身份码作为对应身份组别的系统公钥。
[0011]
优选的,所述根据各身份组别中各用户id和所述系统公钥,确定各身份组别的重加密密钥,包括:对于任一身份组别:将该身份组别中用户身份码映射到第一单射函数中获得第三参数,以所述第三参数为底数,以该身份组别对应的秘密参数为指数的指数函数值作为第一特征值;对该身份组别中各用户id进行哈希拓宽操作获得各用户对应的编码序列;基于所述编码序列构建各用户的标识摘要矩阵,所述标识摘要矩阵的大小为;将该身份组
别对应的系统公钥在二进制下各字符的每一位对应的序号与数值的乘积,记为各字符的每一位对应的第一指标;将各字符的所有位对应的第一指标的和值确定为各字符的参考指标;基于该身份组别对应的系统公钥在二进制下所有字符的参考指标,构建该身份组别的特征矩阵,所述特征矩阵的大小为;将该身份组别中各用户的标识摘要矩阵与所述特征矩阵的乘积作为对应用户的参码矩阵;将该身份组别中所有用户的参码矩阵的和值记为第一和值;分别计算所述第一特征值与所述第一和值的乘积,获得该身份组别的重加密密钥。
[0012]
优选的,所述基于所述用户私钥、所述系统公钥、用户id、所述秘密参数和所述映射函数对各身份组别中用户的用户数据进行加密获得各身份组别的初始密文,包括:对于任一身份组别:在区间[0,p)中选取一个随机数记为第二随机数;根据该身份组别对应的用户私钥、系统公钥、映射函数和所述第二随机数,获得该身份组别的初始密文。
[0013]
优选的,根据用户数据对应的类型判断是否进行二次加密,若是,则根据所述重加密密钥对所述初始密文进行加密得到各身份组别的目标密文;若否,则将所述初始密文作为目标密文,包括:若用户数据对应的类型为共有信息,则基于初始密文中的第一个数据、重加密密钥以及所述双线性映射函数获得第一映射值;将初始密文中的第二个数据与所述第一映射值的乘积记为第二特征值;基于初始密文中的第一个数据和所述第二特征值获得对应身份组别的目标密文;若用户数据对应的类型为私有信息,则将所述初始密文作为目标密文。
[0014]
本发明至少具有如下有益效果:本发明在对用户数据进行加密时,首先对身份组别进行了分析,确定了每个身份组别的用户私钥和系统公钥,进而获得了每个身份组别的重加密密钥,结合用户私钥、系统公钥、用户id对用户数据进行一次加密,通过利用用户身份来达成对于密钥的转换工作,保护了用户的身份和行为隐私,又结合用户数据的类型判断是否需要进行二次加密,进而获得了目标密文,本发明通过用户的身份组别以及用户数据的类型对不同用途的数据进行不同的加密,从而使得共享数据能够被正确的用户群所使用,以减轻加密、解密的工作负载,提高了系统的可拓展性,降低了用户数据被泄露的风险。
附图说明
[0015]
为了更清楚地说明本发明实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
[0016]
图1为本发明实施例所提供的一种用户数据安全存储管理方法的流程图。
具体实施方式
[0017]
为了更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的一种用户数据安全存储管理方法进行详细说明
如下。
[0018]
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。
[0019]
下面结合附图具体的说明本发明所提供的一种用户数据安全存储管理方法的具体方案。
[0020]
一种用户数据安全存储管理方法实施例:本实施例提出了一种用户数据安全存储管理方法,如图1所示,本实施例的一种用户数据安全存储管理方法包括以下步骤:步骤s1,获取每个用户的用户数据、用户id、用户身份码、身份组别。
[0021]
本实施例所针对的具体场景为:为了防止用户数据不易被窃取,保证用户数据的安全,需要对用户数据进行加密处理,本实施例将对待加密的用户数据进行加密处理,以提高数据的安全性,降低被泄露的风险。
[0022]
现有技术大多采用代理重加密的方法对用户数据进行加密,降低对公有云的完全信任和依赖度,实现发送者和接收者之间的点对点共享数据。该方法对于大规模数据而言,需要对每个数据进行加密解密操作,这不但会使得系统的可拓展性受阻,还会由于代理服务器频繁记录用户的密钥转换操作而导致用户身份和行为信息的泄露。本实施例在对用户信息进行加密时,首先结合用户身份和对应身份组别下的用户数量生成基准素数,随后依据素数的循环群形成一个双线性映射,并选取相应的映射函数,结合基准素数生成随机数,得到公开参数以及秘密参数,然后进行密钥分配操作,利用公开参数和秘密参数分别生成用户私钥和系统公钥,结合公开参数获取重加密密钥,最后利用用户私钥和系统公钥对用户信息进行一次加密得到初始密文,再结合用户信息所需要共享到的用户组别,利用对应的重加密密钥对初始密文进行加密得到目标密文。
[0023]
本实施例主要是根据用户身份对用户数据进行安全存储即加密存储操作,所以首先在信息管理系统中获取每个用户的用户数据、用户id、用户身份信息、身份组别等相关信息,并对信息做相应的冗余处理、错误检测等预处理,确保所需信息的正确性。
[0024]
步骤s2,根据各身份组别中用户身份码以及用户的数量,生成各身份组别对应的基准素数;基于所述基准素数获取映射函数,根据所述基准素数和所述映射函数,分别得到各身份组别对应的秘密参数和公开参数。
[0025]
在对用户信息进行加密时,首先需要结合用户身份和对应身份组别下的用户数量生成基准素数,随后依据素数的循环群形成一个双线性映射,并选取相应的单射函数,结合基准素数生成随机数,得到公开参数以及秘密参数。然后进行密钥分配操作,利用公开参数和秘密参数,分别生成用户私钥和系统公钥,并结合公开参数获得重加密密钥。最后利用用户私钥和系统公钥对用户数据进行一次加密得到一次密文,然后结合用户数据的类型判断是否需要二次加密,若是,则结合重加密密钥获得目标密文。需要说明的是,用户私有的相关信息则不需要进行代理重加密操作。
[0026]
由于整个加密算法的安全性基础是基于大素数难以获取问题,而随机获取的大素数与数据之间的关联性较低,从而安全性较低,因此利用用户身份以及相关数量信息,来获取大素数生成的影响量,使得素数的生成随机性降低,从而能够保证后续生成的大素数的安全性更高。基于此,本实施例接下来将先计算每个身份组别对应的素数影响量。
[0027]
对于任一身份组别:该身份组别对应的素数影响量的具体计算公式为:其中,为该身份组别对应的素数影响量;n为该身份组别中用户的数量,为该身份组别中用户身份码的第1个字符;为该身份组别中用户身份码的第2个字符;为该身份组别中用户身份码的第m个字符;m为用户身份码的长度;ascii()为机器码转换函数,将字符转换为8位机器码;b2d()为将二进制数转换为十进制数的进制转化函数;

表示异或运算。
[0028]
采用上述方法,确定了该身份组别对应的素数影响量,接下来本实施例将对素数影响量做奇偶性校验,若素数影响量为奇数,则不做改动,也即将素数影响量作为目标素数影响量;若素数影响量为偶数,则将素数影响量与常数1的和值作为目标素数影响量。对目标素数影响量进行15-20次miller-rabin素性测试获得基准素数。至此,采用上述方法,获得了该身份组别对应的基准素数。
[0029]
对于任一身份组别:随机生成两个p阶乘法循环群,分别记为第一循环群和第二循环群,其中,p为该身份组别对应的基准素数。基于所述第一循环群和所述第二循环群,获得双线性映射函数、第一单射函数和第二单射函数;所述映射函数包括双线性映射函数、第一单射函数和第二单射函数。本实施例随机生成p阶乘法循环群,令为的生成元,为的生成元,获得双线性映射函数和单射函数,具体如下:具体如下:其中,为第一循环群,为第二循环群,e为双线性映射函数,为第一单射函数,为第二单射函数,为第二循环群的生成元。
[0030]
对于任一身份组别:在区间[0,p]中选取一个随机数记为第一随机数;以该身份组别对应的基准素数为底数,以所述第一随机数为指数的指数函数的值作为该身份组别对应的秘密参数;获取第一循环群的生成元和第二循环群的生成元;基于所述双线性映射函数、所述第一循环群、所述第二循环群、所述第一单射函数、所述第二单射函数、所述第一循环群的生成元、所述第二循环群的生成元和对应的基准素数,构建六元组;将所述六元组作为该身份组别对应的公开参数。该身份组别对应的公开参数表示为,其中,为该身份组别对应的公开参数。
[0031]
至此,采用上述方法,能够获得每个身份组别对应的秘密参数和公开参数。
[0032]
步骤s3,根据用户身份码和所述秘密参数,确定各身份组别的用户私钥;根据用户id和所述公开参数,确定各身份组别的系统公钥;根据各身份组别中各用户id和所述系统公钥,确定各身份组别的重加密密钥。
[0033]
本实施例已经获得了每个身份组别对应的秘密参数和公开参数,接下来将分别确定每个身份组别的用户私钥和系统公钥,进而确定每个身份组别的重加密密钥。
[0034]
具体的,对于任一身份组别:将该身份组别中用户身份码映射到第一单射函数中获得第一参数,将该身份组别对应的秘密参数映射到第二单射函数中获得第二参数;将所述第一参数和所述第二参数组成的二元组作为该身份组别的用户私钥。将该身份组别中用户的身份码作为该身份组别的系统公钥。该身份组别的用户私钥表示为:其中,为该身份组别的用户私钥,为该身份组别中用户身份码,为第一参数,为该身份组别对应的秘密参数,为第二参数。
[0035]
采用上述方法,分别获得了该身份组别的系统公钥和用户私钥,接下来本实施例将确定该身份组别的重加密密钥。
[0036]
具体的,将该身份组别中用户身份码映射到第一单射函数中获得第三参数,以所述第三参数为底数,以该身份组别对应的秘密参数为指数的指数函数值作为第一特征值;对该身份组别中各用户id进行哈希拓宽操作获得各用户对应的编码序列;基于所述编码序列构建各用户的标识摘要矩阵,所述标识摘要矩阵的大小为;将该身份组别对应的系统公钥在二进制下各字符的每一位对应的序号与数值的乘积,记为各字符的每一位对应的第一指标;将各字符的所有位对应的第一指标的和值确定为各字符的参考指标;基于该身份组别对应的系统公钥在二进制下所有字符的参考指标,构建该身份组别的特征矩阵,所述特征矩阵的大小为;将该身份组别中各用户的标识摘要矩阵与所述特征矩阵的乘积作为对应用户的参码矩阵;将该身份组别中所有用户的参码矩阵的和值记为第一和值;分别计算所述第一特征值与所述第一和值的乘积,获得该身份组别的重加密密钥。
[0037]
本实施例首先对该身份组别中所有用户的用户id利用哈希函数进行转换操作,以便进行后续的重加密密钥生成操作,本实施例分别对该身份组别中每个用户id进行哈希拓宽操作获得每个用户对应的编码序列,进而构建该身份组别中每个用户的标识摘要矩阵。对于该身份组别中的任一用户,其对应的标识摘要矩阵具体为:其对应的标识摘要矩阵具体为:其中,j为该用户的标识摘要矩阵;md5( )为一种哈希算法,其可以对任意字符串生成唯一的128位二进制数;j为该用户对应的编码序列,本实施例将由128位二进制数构成的序列作为了编码序列;为该用户对应的编码序列中的第1位二进制数,为该用户对应的编码序列中的第16位二进制数,为该用户对应的编码序列中的第113位二进制数,为该用户对应的编码序列中的第128位二进制数。
[0038]
本实施例首先将哈希拓宽后的哈希值进行压缩,将其规置到8位字符串;将该身份组别对应的系统公钥在二进制下各字符的每一位对应的序号与数值的乘积,记为各字符的每一位对应的第一指标;将各字符的所有位对应的第一指标的和值确定为各字符的参考指标;基于该身份组别对应的系统公钥在二进制下所有字符的参考指标,构建该身份组别的特征矩阵。该身份组别的特征矩阵的具体计算公式为:
其中,r为该身份组别的参码矩阵,为该身份组别对应的系统公钥在二进制下第k个字符的参考指标,为该身份组别对应的系统公钥在二进制下第k个字符的每i位的数值,i为序号,为该身份组别对应的系统公钥在二进制下第1个字符的参考指标,为该身份组别对应的系统公钥在二进制下第2个字符的参考指标,为该身份组别对应的系统公钥在二进制下第3个字符的参考指标,为该身份组别对应的系统公钥在二进制下第4个字符的参考指标,为该身份组别对应的系统公钥在二进制下第5个字符的参考指标,为该身份组别对应的系统公钥在二进制下第6个字符的参考指标,为该身份组别对应的系统公钥在二进制下第7个字符的参考指标,为该身份组别对应的系统公钥在二进制下第8个字符的参考指标,j为该用户的标识摘要矩阵,该身份组别对应的系统公钥在二进制下所有字符的参考指标构成的矩阵,为该身份组别对应的系统公钥在二进制下所有字符的参考指标构成的矩阵的转置,为该身份组别的特征矩阵。为该身份组别对应的系统公钥在二进制下第k个字符的每i位对应的第一指标。
[0039]
将该身份组别中所有用户的参码矩阵的和值记为第一和值;将该身份组别中用户身份码映射到第一单射函数中获得第三参数,以所述第三参数为底数,以该身份组别对应的秘密参数为指数的指数函数值作为第一特征值;分别计算所述第一特征值与所述第一和值的乘积,获得该身份组别的重加密密钥。该身份组别的重加密密钥为:其中,为该身份组别的重加密密钥,y为该身份组别中用户的数量,为该身份组别中第t个用户的参码矩阵,表示第三参数,表示第一特征值,表示第一和值。
[0040]
采用上述方法,能够后的每个身份组别的重加密密钥。
[0041]
步骤s4,基于所述用户私钥、所述系统公钥、用户id、所述秘密参数和所述映射函数对各身份组别中用户的用户数据进行加密获得各身份组别的初始密文;根据用户数据对应的类型判断是否进行二次加密,若是,则根据所述重加密密钥对所述初始密文进行加密得到各身份组别的目标密文;若否,则将所述初始密文作为目标密文。
[0042]
代理重加密需要将重加密密钥委托到可信第三方,由第三方对用自己公钥加密的密文执行重加密,从而转换为可用另一方私钥解密的密文,并且代理加密方不可获取明文信息,从而实现密文安全共享。接下来本实施例将利用用户私钥和系统公钥对用户信息进行一次加密,随后对用户信息进行分类,针对不同的类型进行不同的处理,得到加密密文。
[0043]
具体的,对于任一身份组别:在区间[0,p)中选取一个随机数记为第二随机数;根据该身份组别对应的用户私钥、系统公钥、映射函数和所述第二随机数,获得该身份组别的初始密文。该身份组别的初始密文的具体表达式为:其中,r为第二随机数,为该身份组别的初始密文,为该身份组别对应的用户私钥,为该身份组别对应的系统公钥,为该身份组别对应的用户私钥和系统公钥映射到第二单射函数中获得的映射值,为用户id映射到第一单射函数中获得的映射值,为该身份组别中第m个用户的用户信息,为第一循环群的生成元。
[0044]
采用上述方法,能够获得每个身份组别的初始密文。
[0045]
然后对用户数据进行分类辨别,对于私有信息,直接将初始密文作为最终的加密密文,对于需要进行分组共享的数据,则获取相应分组的重加密密钥,进行重加密操作得到最终的加密密文。具体的,若用户数据对应的类型为共有信息,则基于初始密文中的第一个数据、重加密密钥以及所述双线性映射函数获得第一映射值;将初始密文中的第二个数据与所述第一映射值的乘积记为第二特征值;基于初始密文中的第一个数据和所述第二特征值获得对应身份组别的目标密文;若用户数据对应的类型为私有信息,则将所述初始密文作为目标密文。当用户数据对应的类型为共有信息时,对应的目标密文的具体表达式为:其中,为目标密文,为初始密文中的第一个数据,为初始密文中的第二个数据,为将初始密文中的第一个数据和重加密密钥映射到双线性映射函数中获得的映射值。
[0046]
整合所有目标密文获得最终的加密密文,在得到加密密文后,根据不同信息的分享群聚,将其存储到不同的数据库中,以便后续的使用。
[0047]
本实施例在对用户数据进行加密时,首先对身份组别进行了分析,确定了每个身份组别的用户私钥和系统公钥,进而获得了每个身份组别的重加密密钥,结合用户私钥、系统公钥、用户id对用户数据进行一次加密,通过利用用户身份来达成对于密钥的转换工作,保护了用户的身份和行为隐私,又结合用户数据的类型判断是否需要进行二次加密,进而获得了目标密文,本实施例通过用户的身份组别以及用户数据的类型对不同用途的数据进行不同的加密,从而使得共享数据能够被正确的用户群所使用,以减轻加密、解密的工作负载,提高了系统的可拓展性,降低了用户数据被泄露的风险。
[0048]
需要说明的是:以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表