一种数据加密、解密的方法及设备与流程

文档序号:12662371阅读:299来源:国知局
一种数据加密、解密的方法及设备与流程
本发明属于软件算法领域,尤其涉及一种数据加密、解密的方法及设备。

背景技术:
云计算作为一种新型的网络计算模式,以一种相比传统IT更经济的方式向用户提供按需的IT服务(计算、存储和应用等)。由于云计算的发展理念符合当前低碳经济与绿色计算的总体趋势,它得到了世界各国政府和企业的大力倡导与推动,正带来计算领域、商业领域的巨大变革。但在已经实现的云计算服务中,隐私安全问题一直令人担忧,并已经成为阻碍云计算发展和推广的主要因素之一。用户的隐私数据包括可用来识别或定位个人信息(例如电话号码、地址和信用卡号等),敏感的信息(例如个人的健康状况、财务信息、公司的重要文件等)。云计算的隐私安全问题源于云计算的数据外包和服务租赁的特点。用户数据存储到云环境中,人们失去对数据的直接控制力,可能会导致个人隐私数据的泄漏和滥用。加密是一种常用的保护用户机密数据的方法,支持关系运算的加密技术是一种加密方法,它通过加密保证数据安全,同时加密后的数据能支持关系运算,从而可直接对密文进行范围检索,排序等操作。Agrawal等人基于桶划分和分布概率映射的思想提出了一个保序对称加密算法OPES,支持对加密数值数据的各种关系运算;Boldyreva等人提出一个基于折半查找和超几何概率分布的保序对称加密算法OPSE,支持对加密数据的各种关系运算,以上两种保序的加密方法的优点是保序性,即密文反映了明文的大小关系,从而方便服务提供者对密文数据建立索引,加快查找速度,并易于实现各种关系运算。Agrawal等人方案的不足是当定义域较大时桶划分的计算负载较大,而且面对已知明文的攻击时,当输入分布的桶与对应的输出分布的桶中点的个数足够多时,可以通过解方程的方式破解。Boldyreva等人的方法由于在计算超几何概率时需要进行多次组合运算,其计算负载较大。综上,保序的加密算法的缺点是它们都不能同时满足高效性和安全性的要求。

技术实现要素:
本发明实施例的目的在于提供一种数据加密解密的方法,可以实现保序性、安全性、计算和存储负载负担少、数据域变化对计算负载影响小等优点。第一方面,一种数据加密的方法,所述方法包括:将待加密数据由明文字符串转换成美国信息交换标准代码ASCII码,并将转换后的ASCII码的位数凑成预先设置的定义域值的倍数,所述预先设置的定义域值是每次加密的所述ASCII码的位数;根据所述预先设置的定义域值确定随机树的高度,同时根据用户密钥和待加密数据生成从随机树的根节点到所述待加密数据对应的叶子节点的路径,并在所述叶子节点所属的区间范围内选择一个随机数,形成所述待加密数据的密文。结合第一方面,在第一方面的第一种可能的实现方式中,所述根据用户密钥和待加密数据生成从随机数的根节点到所述待加密数据对应的叶子节点的路径具体为:确定所述随机树的层数、分割份数、所述用户密钥、所述待加密数据、待划分区间的最小值和最大值;所述分割份数是将所述待划分区间等间隔划分的份数;其中,每层随机树的长度是值域的长度加上间隔域的长度;根据所述用户密钥和当前节点的美国信息交换标准代码生成随机树的种子;将每段所述待划分区间的值域等间隔划分成所述分割份数,通过所述随机树的种子产生随机数,通过所述随机树的种子产生的所述随机数用于产生间隔域、每段间隔域的分割份数和选择的子节点,同时使得分割后的总的间隔域长度等于分割前的间隔域长度;确定所述待加密数据的节点位置,所述节点位置的最小值是三个值之和,所述三个值分别是所述节点位置上一层随机树的最小值、到所述节点位置的值域间隔值的总和、到所述节点位置的间隔域间隔值的总和;判断所述节点位置是否是所述选择的子节点,若是,则所述节点位置的最大值是三个值之和,所述三个值分别是所述节点位置的最小值、所述节点位置的值域间隔值、所述间隔域在所述节点位置的值;若否,则所述节点位置的最大值是两个值之和,所述两个值分别是所述节点位置的最小值、所述节点位置的值域间隔值。结合第一方面,在第一方面的第二种可能的实现方式中,所述并在所述叶子节点所属的区间范围内选择一个随机数,形成所述待加密数据的密文包括:当所述待加密数据位于随机数的最后一层时,在所述待加密数据所在的子节点的区间范围内,选择一个随机数,形成所述待加密数据的密文。第二方面,一种数据解密的方法,所述方法包括:获取用户密钥和待解密数据;根据所述用户密钥和所述待解密数据恢复所述从随机树的根节点到所述待加密数据对应的叶子节点的路径,将所述待解密数据进行解密;将解密后的数据经过消除填充值后转换为明文字符串。结合第二方面,在第二方面的第一种可能的实现方式中,所述根据所述用户密钥和所述待解密数据恢复所述从随机树的根节点到所述待解密数据对应的叶子节点的路径具体为:确定所述随机树的高度、分割份数、所述用户密钥、所述待解密数据、待划分区间的最小值和最大值;所述分割份数是将所述待划分区间等间隔划分的份数,其中,每层随机树的长度是值域的长度加上间隔域的长度;根据所述用户密钥和当前节点的美国信息交换标准代码生成随机树的种子;将所述待划分区间等间隔划分成所述分割份数,通过所述随机树的种子产生随机数,通过所述随机树的种子产生的所述随机数用于产生每段待划分区间间隔域,所述间隔域的分割份数和选择的子节点,同时使得分割后的总的间隔域长度等于分割前的间隔域长度;根据每个子节点的范围的最小值,判断所述密文所处的位置;根据所述密文所处的位置,计算出当前节点的美国信息交换标准代码,根据所述用户密钥和当前节点的美国信息交换标准代码生成随机树的种子;根据所述随机数的种子产生随机数,通过所述随机数将所述节点数所处待划分区间分成两个区域值,所述两个区域值是下一层随机树的总的值域值和下一次随机树的总的间隔域值;确定所述待解密数据的节点位置,所述节点位置的最小值是三个值之和,所述三个值分别是所述节点位置上一层随机树的最小值、到所述节点位置的值域间隔值的总和、到所述节点位置的间隔域间隔值的总和;判断所述节点位置是否是所述选择的子节点,若是,则所述节点位置的最大值是三个值之和,所述三个值分别是所述节点位置的最小值、所述节点位置的值域间隔值、所述间隔域在所述节点位置的值;若否,则所述节点位置的最大值是两个值之和,所述两个值分别是所述节点位置的最小值、所述节点位置的值域间隔值。第三方面,一种数据加密的设备,所述设备包括:第一转换单元,用于将待加密数据由明文字符串转换成美国信息交换标准代码ASCII码,并将转换后的ASCII码的位数凑成预先设置的定义域值的倍数,所述预先设置的定义域值是每次加密的所述ASCII码的位数;加密单元,用于根据所述预先设置的定义域值确定随机树的高度,同时根据用户密钥和待加密数据生成从随机树的根节点到所述待加密数据对应的叶子节点的路径,并在所述叶子节点所属的值域范围内选择一个随机数,形成所述待加密数据的密文。结合第三方面,在第三方面的第一种可能的实现方式中,所述加密单元中执行步骤所述根据用户密钥和待加密数据生成从随机数的根节点到所述待加密数据对应的叶子节点的路径具体为:第一确定单元,用于确定所述随机树的层数、分割份数、所述用户密钥、所述待加密数据、待划分区间的最小值和最大值;所述分割份数是将所述待划分区间等间隔划分的份数;其中,每层随机树的长度是值域的长度加上间隔域的长度;第一生成单元,用于根据所述用户密钥和当前节点的美国信息交换标准代码生成随机树的种子;第一划分单元,用于将每段所述待划分区间的值域等间隔划分成所述分割份数,通过所述随机树的种子产生随机数,所述随机数用于产生间隔域、每段间隔域的分割份数和选择的子节点,同时使得分割后的总的间隔域长度等于分割前的间隔域长度;第二确定单元,用于确定所述待加密数据的节点位置,所述节点位置的最小值是三个值之和,所述三个值分别是所述节点位置上一层随机树的最小值、到所述节点位置的值域间隔值的总和、到所述节点位置的间隔域间隔值的总和;第一判断单元,用于判断所述节点位置是否是所述选择的子节点,若是,则所述节点位置的最大值是三个值之和,所述三个值分别是所述节点位置的最小值、所述节点位置的值域间隔值、所述间隔域在所述节点位置的值;若否,则所述节点位置的最大值是两个值之和,所述两个值分别是所述节点位置的最小值、所述节点位置的值域间隔值。结合第三方面,在第三方面的第二种可能的实现方式中,所述加密单元中执行步骤并在所述叶子节点所属的值域范围内选择一个随机数,形成所述待加密数据的密文中的密文包括:当所述待加密数据位于随机数的最后一层时,在所述待加密数据所在的子节点的区间范围内,选择一个随机数,形成所述待加密数据的密文。第四方面,一种数据解密的设备,所述设备包括:获取单元,用于获取用户密钥和待解密数据;解密单元,用于根据所述用户密钥和所述待解密数据恢复所述从随机树的根节点到所述待解密数据对应的叶子节点的路径,将所述待解密数据进行解密;第二转换单元,用于将解密后的数据经过消除填充值后转换为明文字符串。结合第四方面,在第四方面的第一种可能的实现方式中,所述解密单元中执行步骤根据所述用户密钥恢复所述从随机树的根节点到所述待解密数据对应的叶子节点的路径具体为:第三确定单元,用于确定所述随机树的高度、分割份数、所述用户密钥、所述待解密数据、待划分区间的最小值和最大值;所述分割份数是将所述待划分区间等间隔划分的份数,其中,每层随机树的长度是值域的长度加上间隔域的长度;第二生成单元,用于根据所述用户密钥和当前节点的美国信息交换标准代码生成随机树的种子;第二划分单元,用于将所述待划分区间等间隔划分成所述分割份数,通过所述随机树的种子产生随机数,所述随机数用于产生每段待划分区间间隔域,所述间隔域的分割份数和选择的子节点,同时使得分割后的总的间隔域长度等于分割前的间隔域长度;第二判断单元,用于根据每个子节点的范围的最小值,判断所述密文所处的位置;计算单元,用于根据所述密文所处的位置,计算出当前节点的美国信息交换标准代码,根据所述用户密钥和当前节点的美国信息交换标准代码生成随机树的种子;第三划分单元用于根据所述随机数的种子产生随机数,通过所述随机数将所述节点数所处待划分区间分成两个区域值,所述两个区域值是下一层随机树的总的值域值和下一次随机树的总的间隔域值;第四确定单元,用于确定所述解密数据的节点位置,所述节点位置的最小值是三个值之和,所述三个值分别是所述节点位置上一层随机树的最小值、到所述节点位置的值域间隔值的总和、到所述节点位置的间隔域间隔值的总和;第三判断单元,用于判断所述节点位置是否是所述选择的子节点,若是,则所述节点位置的最大值是三个值之和,所述三个值分别是所述节点位置的最小值、所述节点位置的值域间隔值、所述间隔域在所述节点位置的值;若否,则所述节点位置的最大值是两个值之和,所述两个值分别是所述节点位置的最小值、所述节点位置的值域间隔值。与现有技术相比,本发明实施例通过根据用户密钥和待加密数据生成从随机树的根节点到所述待加密数据对应的叶子节点的路径,将所述待加密数据进行加密,并根据所述用户密钥恢复所述从随机树的根节点到所述待解密数据对应的叶子节点的路径,将所述待解密数据进行解密。可以实现保序性、安全性、计算和存储负载负担少、数据域变化对计算负载影响小等优点。附图说明为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例一提供的一种加密的方法流程图;图2是本发明实施例二提供的一种加密的方法流程图;图3是本发明实施例三提供的一种加密解密的方法流程图;图4是本发明实施例三提供的一种加密解密的方法示意图;图5是本发明实施例四提供的一种数据加密设备的装置结构图;图6是本发明实施例四提供的一种数据加密设备的装置结构图;图7是本发明实施例五提供的一种数据解密设备的装置结构图;图8是本发明实施例五提供的一种数据解密设备的装置结构图;图9是本发明实施例六提供的一种数据加密设备的装置结构图;图10是本发明实施例七提供的一种数据解密设备的装置结构图。具体实施方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。实施例一参考图1,图1是本发明实施例一提供的一种数据加密的方法流程图。如图1所示,该方法包括以下步骤:步骤101,将待加密数据由明文字符串转换成美国信息交换标准代码ASCII码,并将转换后的ASCII码的位数凑成预先设置的定义域值的倍数,所述预先设置的定义域值是每次加密的所述ASCII码的位数;本步骤中,接收用户输入的一串明文字符串,预先将所述明文字符串转换成美国信息交换标准代码。预先设置定义域,所述定义域的值是每次加密的所述美国信息交换标准代码的位数,例如,预先定义每次加密12位美国信息交换标准代码,将转换后的美国信息交换标准代码的位数凑成12的倍数。具体的,假设用户输入一串字符串为ABCDEF…..,将每个字符转换成ASCII码,并凑成3位ASCII码,如A的ASCII码为65,凑成065,假设随机数的定义域值为12,随机数高度为6层,即每层加密2位ASCII码,每次则总共加密12位。将转换成ASCII码的待加密数据每次取22位,并在22位ASCII码后面添加一个22的标识凑成24位,即每次运行2次随机树加密算法,加密24位ASCII码。当最后只剩下十位ASCII码,则在10位ASCII码后面添加00,再添加10位随机数,再添加10,标识待加密数据的ASCII码的位数,凑成24位进行加密。当最后只剩下一位ASCII码,则在一位ASCII码后面添加00,再添加19位随机数,再添加01,标识待加密数据的ASCII码的位数,凑成24位进行加密。依次类推。步骤102,根据所述预先设置的定义域值确定随机树的高度,同时根据用户密钥和待加密数据生成从随机树的根节点到所述待加密数据对应的叶子节点的路径,并在所述叶子节点所属的区间范围内选择一个随机数,形成所述待加密数据的密文。本步骤中,若预先设置的定义域是12位美国信息交换标准代码,并预先设置每次存放2位美国信息交换标准代码,则随机数的高度为6,即根据所述预先设置的定义域值确定随机数的高度。本步骤中,所述根据用户密钥和待加密数据生成从随机数的根节点到所述待加密数据对应的叶子节点的路径具体为:确定所述随机树的层数,分割份数,所述用户密钥,所述待加密数据,待划分区间的最小值和最大值;所述分割份数是将所述待划分区间等间隔划分的份数;其中,每层随机树的长度是值域的长度加上间隔域的长度;具体的,确定所述随机树的高度level,分割份数num,所述用户密钥key,所述待加密数据x,待划分区间的最小值min和最大值max,所述num是将所述待划分区间等间隔划分的份数,vf是所述待划分区间的值域,gf是所述待划分区间的间隔域。根据所述用户密钥和当前节点的美国信息交换标准代码生成随机树的种子;具体的,当所述随机树位于第零层level=n,n=0时,随机树种子ran_root=key;当level=n,n=1,2….level-2时,所述ran_root=key+xn,其中,n=0时,xn=0,n=1时,xn=第零层随机数加密的待加密数据;n=2时,xn=第零层随机数和第一层随机数加密的待加密数据;n=level-2时,xn=第零层随机数,第一层随机数….第level-2层加密的待加密数据。将所述每段值域等间隔划分成所述分割份数,通过所述随机树的种子产生随机数,所述随机数用于产生间隔域、每段间隔域的分割份数和选择的子节点,同时使得分割后的总的间隔域长度等于分割前的间隔域长度;具体的,根据所述ran_root产生间隔域gf,间隔域gf分裂份数m和从num个子节点中随机选择m个子节点,满足且确定所述待加密数据的节点位置,所述节点位置的最小值是三个值之和,所述三个值分别是所述节点位置上一层随机树的最小值、到所述节点位置的值域间隔值的总和、到所述节点位置的间隔域间隔值的总和;具体的,判断x的位置为i,满足x>xi-1且x≤xi,dn=vfn-1/num,ddn=gfn-1,vfn-1=(maxn-1-minn-1)*rn-1,gfn-1=(maxn-1-minn-1)*(1-rn-1),rn-1是根据ran_root在第n-1层的值产生的随机数。判断所述节点位置是否是所述选择的子节点,若是,则所述节点位置的最大值是三个值之和,所述三个值分别是所述节点位置的最小值、所述节点位置的值域间隔值、所述间隔域在所述节点位置的值;若否,则所述节点位置的最大值是两个值之和,所述两个值分别是所述节点位置的最小值、所述节点位置的值域间隔值。具体的,判断i是否是所述m个子节点中的任意一个,若是,则maxn=minn+dn+ddn*random(key+xi),否则,maxn=minn+dn。具体的,加密算法参考算法1。可实现的,所述并在所述叶子节点所属的区间范围内选择一个随机数,形成所述待加密数据的密文包括:当所述待加密数据位于随机数的最后一层时,在所述待加密数据所在的子节点的区间范围内,选择一个随机数,形成所述待加密数据的密文。具体的,当level=n,n=level-1时,则所述待加密数据x的密文ciphertext=minn+(maxn-minn)*random(key+xn)。本发明核心部分构建了一种随机数据结构——随机树。随机树是一棵多叉树,其高度由定义域决定,树中每个节点都对应定义域中的一点,并占据值域中的一段子区间,子节点区间是对父节点区间的一种随机划分。基于随机树的加密算法算法OPEART具有以下特点:(1)加密或解密过程中,不需要生成整棵树,而只需要生成树中从根节点到叶子节点之间的一条路径,计算负载小;(2)计算负载不会随着定义域的变化而变化,适合于定义域较大或动态变化的应用;(3)无需建立索引,节省了数据拥有者的计算和存储负载。本发明是一种加密算法,密文具有保序性,支持关系运算,并且具有IND-DNCPA安全性。本发明实施例通过根据用户密钥和待加密数据生成从随机树的根节点到所述待加密数据对应的叶子节点的路径,将所述待加密数据进行加密,并根据所述用户密钥恢复所述从随机树的根节点到所述待加密数据对应的叶子节点的路径,将所述待加密数据进行解密。可以实现保序性、安全性、计算和存储负载负担少、数据域变化对计算负载影响小等优点。实施例二参考图2,图2是本发明实施例二提供的一种数据解密的方法流程图。如图2所示,该方法包括以下步骤:步骤201,获取用户密钥和待解密数据;步骤202,根据所述用户密钥和所述待解密数据恢复所述从随机树的根节点到所述待解密数据对应的叶子节点的路径,将所述待解密数据进行解密;根据所述用户密钥恢复所述从随机树的根节点到所述待解密数据对应的叶子节点的路径具体为:确定所述随机树的高度、分割份数、所述用户密钥、所述待解密数据、待划分区间的最小值和最大值;所述分割份数是将所述待划分区间等间隔划分的份数,其中,每层随机树的长度是值域的长度加上间隔域的长度;具体的,确定所述随机树的高度level,分割份数num,所述用户密钥key,所述待加密数据的密文ciphertex,待划分区间的最小值min和最大值max,所述num是将所述待划分区间等间隔划分的份数,vf是所述待划分区间的值域,gf是所述待划分区间的间隔域。根据所述用户密钥和当前节点的美国信息交换标准代码生成随机树的种子;具体的,当所述随机树位于第零层level=n,n=0时,随机树种子ran_root=key。将所述待划分区间等间隔划分成所述分割份数,通过所述随机树的种子产生随机数,所述随机数用于产生每段待划分区间间隔域,所述间隔域的分割份数和选择的子节点,同时使得分割后的总的间隔域长度等于分割前的间隔域长度;具体的,根据所述ran_root产生间隔域gf,间隔域gf分裂份数m和从num个子节点中随机选择m个子节点,满足且根据每个子节点的范围的最小值,判断所述密文所处的位置;所处的位置等于所述密文值减去所述子节点的最小值再减去到所述子节点之前的间隔域值后得到的值除以所述子节点的值域分割的间隔;具体的,假设每个节点所处范围的下限为min(xk),其中k∈(0,num-1),判断ciphertext的位置为i,满足ciphertex≤min(xk),且ciphertex>min(xk-1),根据所述密文所处的位置,计算出当前节点的美国信息交换标准代码,根据所述用户密钥和当前节点的美国信息交换标准代码生成随机树的种子;当level=n,n=1,2….level-2时,所述ran_root=key+xn,其中,n=0时,xn=0,n=1时,xn=第零层随机数加密的待加密数据;n=2时,xn=第零层随机数和第一层随机数加密的待加密数据;n=level-2时,xn=第零层随机数,第一层随机数….第level-2层加密的待加密数据。根据所述随机数的种子产生随机数,通过所述随机数将所述节点数所处待划分区间分成两个区域值,所述两个区域值是下一层随机树的总的值域值和下一次随机树的总的间隔域值;确定所述解密数据的节点位置,所述节点位置的最小值是三个值之和,所述三个值分别是所述节点位置上一层随机树的最小值、到所述节点位置的值域间隔值的总和、到所述节点位置的间隔域间隔值的总和;具体的,dn=vfn-1/num,ddn=gfn-1,vfn-1=(maxn-1-minn-1)*rn-1,gfn-1=(maxn-1-minn-1)*(1-rn-1),rn-1是根据ran_root在第n-1层的值产生的随机数。判断所述节点位置是否是所述选择的子节点,若是,则所述节点位置的最大值是三个值之和,所述三个值分别是所述节点位置的最小值、所述节点位置的值域间隔值、所述间隔域在所述节点位置的值;若否,则所述节点位置的最大值是两个值之和,所述两个值分别是所述节点位置的最小值、所述节点位置的值域间隔值。具体的,判断i是否是所述m个子节点中的任意一个,若是,则maxn=minn+dn+ddn*random(key+xi),否则,maxn=minn+dn。加密算法参考算法2。步骤203,将解密后的数据经过消除填充值后转换为明文字符串。本步骤中,将填充的00或者22等填充值消除掉后,得到由明文字符串转换的ASCII码,然后由所述ASCII码再转换为明文字符串。本发明核心部分构建了一种随机数据结构——随机树。随机树是一棵多叉树,其高度由定义域决定,树中每个节点都对应定义域中的一点,并占据值域中的一段子区间,子节点区间是对父节点区间的一种随机划分。基于随机树的加密算法算法OPEART具有以下特点:(1)加密或解密过程中,不需要生成整棵树,而只需要生成树中从根节点到叶子节点之间的一条路径,计算负载小;(2)计算负载不会随着定义域的变化而变化,适合于定义域较大或动态变化的应用;(3)无需建立索引,节省了数据拥有者的计算和存储负载。本发明是一种加密算法,密文具有保序性,支持关系运算,并且具有IND-DNCPA安全性。本发明实施例通过根据用户密钥和待加密数据生成从随机树的根节点到所述待加密数据对应的叶子节点的路径,将所述待加密数据进行加密,并根据所述用户密钥恢复所述从随机树的根节点到所述待加密数据对应的叶子节点的路径,将所述待加密数据进行解密。可以实现保序性、安全性、计算和存储负载负担少、数据域变化对计算负载影响小等优点。实施例三参考图3所示,图3是本发明实施例三提供的一种数据加密和数据解密的方法示意图。如图3所示,步骤301,将明文字符串转换成美国信息交换标准代码ASCII码,并将转换后的ASCII码的位数凑成12的倍数,12是每次加密的所述ASCII码的位数;当每次加密为12位ASCII码时,则第零层随机树的总的长度可以为1015。步骤302,根据12确定随机树的高度为6,同时根据用户密钥和待加密数据生成从随机树的根节点到所述待加密数据对应的叶子节点的路径,并在所述叶子节点所属的区间范围内选择一个随机数,形成所述待加密数据的密文;假设转换后的ASCII码为012345678901,每层随机树加密2位ASCII码,具体的,当随机树位于第零层level=n,n=0时,随机树种子ran_root=key,根据随机树的种子产生划分第零层随机树总长度为值域vf0和间隔域gf0,vf0+gf0=1015,将值域vf0划分为100份,并根据随机树的种子产生间隔域gf0的分割份数m和选择的子节点m,同时使得分割后的总的间隔域长度等于分割前的间隔域长度。第零层待加密的数据为01,将放入划分的第一个值域区间01内,如图4所示。判断01的区间是否属于选择的子节点,若是,则01区间的最大值为max=min+01的值域+01的间隔域;若否,则01区间的最大值为max=min+01的值域。01的值域为vf0/100。在第零层01的区间内,按照随机树的种子ran_root=key+01,生成第一层随机数,根据所述第一层的随机数将第零层01区间的区间值,划分为第一层的值域vf1和间隔域gf1,其中01区间值等于01区间的最大值减去01区间的最小值,vf1+gf1=01区间值。将vf1等间距划分100份,按照所述第一层随机数划分第一层的间隔域的份数和选择的子节点。第一层待加密的数据为23,将放入划分的第23个值域区间内。判断23的区间是否属于选择的子节点,若是,则23区间的最大值为max=min+23的值域+23的间隔域;若否,则23区间的最大值为max=min+23的值域。23的值域为vf1/100。在第一层23的区间内,按照随机树的种子ran_root=key+0123,生成第二层随机数,根据所述第二层的随机数将第一层23区间的区间值,划分为第二层的值域vf2和间隔域gf2,其中23区间值等于23区间的最大值减去23区间的最小值,vf2+gf2=23区间值。将vf2等间距划分100份,按照所述第二层随机数划分第二层的间隔域的份数和选择的子节点。第二层待加密的数据为45,将放入划分的第45个值域区间内。判断45的区间是否属于选择的子节点,若是,则45区间的最大值为max=min+45的值域+45的间隔域;若否,则45区间的最大值为max=min+45的值域。45的值域为vf2/100。在第二层45的区间内,按照随机树的种子ran_root=key+012345,生成第三层随机数,根据所述第三层的随机数将第二层45区间的区间值,划分为第三层的值域vf3和间隔域gf3,其中45区间值等于45区间的最大值减去45区间的最小值,vf3+gf3=45区间值。将vf3等间距划分100份,按照所述第三层随机数划分第三层的间隔域的份数和选择的子节点。第三层待加密的数据为67,将放入划分的第67个值域区间内。判断67的区间是否属于选择的子节点,若是,则67区间的最大值为max=min+67的值域+67的间隔域;若否,则67区间的最大值为max=min+67的值域。67的值域为vf3/100。在第三层67的区间内,按照随机树的种子ran_root=key+01234567,生成第四层随机数,根据所述第四层的随机数将第三层67区间的区间值,划分为第四层的值域vf4和间隔域gf4,其中67区间值等于67区间的最大值减去67区间的最小值,vf4+gf4=67区间值。将vf4等间距划分100份,按照所述第四层随机数划分第四层的间隔域的份数和选择的子节点。第四层待加密的数据为89,将放入划分的第89个值域区间内。判断89的区间是否属于选择的子节点,若是,则89区间的最大值为max=min+89的值域+89的间隔域;若否,则89区间的最大值为max=min+89的值域。89的值域为vf4/100。在第四层89的区间内,按照随机树的种子ran_root=key+0123456789,生成第五层随机数,根据所述第五层的随机数将第四层89区间的区间值,划分为第五层的值域vf5和间隔域gf5,其中89区间值等于89区间的最大值减去89区间的最小值,vf5+gf5=89区间值。将vf5等间距划分100份,按照所述第五层随机数划分第五层的间隔域的份数和选择的子节点。第五层待加密的数据为01,将放入划分的第01个值域区间内。判断01的区间是否属于选择的子节点,若是,则01区间的最大值为max=min+01的值域+01的间隔域;若否,则01区间的最大值为max=min+01的值域。01的值域为vf5/100。具体的,当level=n,n=5时,则所述待加密数据x的密文ciphertext=min5+(max5-min5)*random(key+x5)。x5=01+23+45+67+89(0123456789)。步骤303,根据所述用户密钥和所述待加密数据的密文恢复所述从随机树的根节点到所述待加密数据对应的叶子节点的路径,将所述待加密数据的密文进行解密;具体的,根据加密算法的规则,生成第零层的随机树(最好说一下第0层的key=key,与明文无关),判断密文ciphertext的值位于第零层的哪个区间,按照步骤202的ciphertext的数值,位于第零层的01区间,即得到01ASCII码;根据01的ASCII码和用户密钥生成第一层的随机树,继续判断ciphertext的数值位于第一层的随机树的哪个区间,根据步骤202,位于第一层的23区间,即得到23ASCII码;根据23的ASCII码和用户密钥生成第二层的随机树,继续判断ciphertext的数值位于第二层的随机树的哪个区间,根据步骤202,位于第二层的45区间,即得到45ASCII码;根据45的ASCII码和用户密钥生成第三层的随机树,继续判断ciphertext的数值位于第三层的随机树的哪个区间,根据步骤202,位于第三层的67区间,即得到67ASCII码;根据67的ASCII码和用户密钥生成第四层的随机树,继续判断ciphertext的数值位于第四层的随机树的哪个区间,根据步骤202,位于第四层的89区间,即得到89ASCII码;根据89的ASCII码和用户密钥生成第五层的随机树,继续判断ciphertext的数值位于第五层的随机树的哪个区间,根据步骤202,位于第四层的01区间,即得到01ASCII码。步骤304,将解密后的所述待加密数据经过消除填充值后。具体的,在最后一个加密解密的数据才需要消除填充值,因为前面的加密解密的数据格式是有效的22位+22构成一个24位的字符串。本发明实施例通过根据用户密钥和待加密数据生成从随机树的根节点到所述待加密数据对应的叶子节点的路径,将所述待加密数据进行加密,并根据所述用户密钥恢复所述从随机树的根节点到所述待加密数据对应的叶子节点的路径,将所述待加密数据进行解密。可以实现保序性、安全性、计算和存储负载负担少、数据域变化对计算负载影响小等优点。实施例四参考图5所示,图5是本发明实施例四提供的一种数据加密的设备结构图。如图5所示,所述设备包括如下单元:第一转换单元501,用于将待加密数据由明文字符串转换成美国信息交换标准代码ASCII码,并将转换后的ASCII码的位数凑成预先设置的定义域值的倍数,所述预先设置的定义域值是每次加密的所述ASCII码的位数;加密单元502,用于根据所述预先设置的定义域值确定随机树的高度,同时根据用户密钥和待加密数据生成从随机树的根节点到所述待加密数据对应的叶子节点的路径,并在所述叶子节点所属的区间范围内选择一个随机数,形成所述待加密数据的密文;具体的,加密单元502包括:第一确定单元601,用于确定所述随机树的层数,分割份数,所述用户密钥,所述待加密数据,待划分区间的最小值和最大值;所述分割份数是将所述待划分区间等间隔划分的份数;其中,每层随机树的长度是值域的长度加上间隔域的长度;第一生成单元602,用于根据所述用户密钥和当前节点的美国信息交换标准代码生成随机树的种子;第一划分单元603,用于将每段所述待划分区间的值域等间隔划分成所述分割份数,通过所述随机树的种子产生随机数,所述随机数用于产生间隔域、每段间隔域的分割份数和选择的子节点,同时使得分割后的总的间隔域长度等于分割前的间隔域长度;第二确定单元604,用于确定所述待加密数据的节点位置,所述节点位置的最小值是三个值之和,所述三个值分别是所述节点位置上一层随机树的最小值、到所述节点位置的值域间隔值的总和、到所述节点位置的间隔域间隔值的总和;第一判断单元605,用于判断所述节点位置是否是所述选择的子节点,若是,则所述节点位置的最大值是三个值之和,所述三个值分别是所述节点位置的最小值、所述节点位置的值域间隔值、所述间隔域在所述节点位置的值;若否,则所述节点位置的最大值是两个值之和,所述两个值分别是所述节点位置的最小值、所述节点位置的值域间隔值。本发明实施例通过根据用户密钥和待加密数据生成从随机树的根节点到所述待加密数据对应的叶子节点的路径,将所述待加密数据进行加密,并根据所述用户密钥恢复所述从随机树的根节点到所述待加密数据对应的叶子节点的路径,将所述待加密数据进行解密。可以实现保序性、安全性、计算和存储负载负担少、数据域变化对计算负载影响小等优点。实施例五参考图7所示,图7是本发明实施例五提供的一种数据解密的设备结构图。如图7所示,所述设备包括如下单元:获取单元701,用于获取用户密钥和待解密数据;解密单元702,用于根据所述用户密钥和所述待解密数据恢复所述从随机树的根节点到所述待解密数据对应的叶子节点的路径,将所述待解密数据进行解密;所述解密单元702包括:第三确定单元801,用于确定所述随机树的高度、分割份数、所述用户密钥、所述待解密数据、待划分区间的最小值和最大值;所述分割份数是将所述待划分区间等间隔划分的份数,其中,每层随机树的长度是值域的长度加上间隔域的长度;第二生成单元802,用于根据所述用户密钥和当前节点的美国信息交换标准代码生成随机树的种子;第二划分单元803,用于将所述待划分区间等间隔划分成所述分割份数,通过所述随机树的种子产生随机数,所述随机数用于产生每段待划分区间间隔域,所述间隔域的分割份数和选择的子节点,同时使得分割后的总的间隔域长度等于分割前的间隔域长度;第三判断单元804,根据每个子节点的范围的最小值,判断所述密文所处的位置;所处的位置等于所述密文值减去所述子节点的最小值再减去到所述子节点之前的间隔域值后得到的值除以所述子节点的值域分割的间隔;计算单元805,用于根据所述密文所处的位置,计算出当前节点的美国信息交换标准代码,根据所述用户密钥和当前节点的美国信息交换标准代码生成随机树的种子;第三划分单元806,用于根据所述随机数的种子产生随机数,通过所述随机数将所述节点数所处待划分区间分成两个区域值,所述两个区域值是下一层随机树的总的值域值和下一次随机树的总的间隔域值;第四确定单元807,用于确定所述解密数据的节点位置,所述节点位置的最小值是三个值之和,所述三个值分别是所述节点位置上一层随机树的最小值、到所述节点位置的值域间隔值的总和、到所述节点位置的间隔域间隔值的总和;第三判断单元808,用于判断所述节点位置是否是所述选择的子节点,若是,则所述节点位置的最大值是三个值之和,所述三个值分别是所述节点位置的最小值、所述节点位置的值域间隔值、所述间隔域在所述节点位置的值;若否,则所述节点位置的最大值是两个值之和,所述两个值分别是所述节点位置的最小值、所述节点位置的值域间隔值。第二转换单元703,用于将解密后的所述待加密数据经过消除填充值后转换为明文字符串。本发明实施例通过根据用户密钥和待加密数据生成从随机树的根节点到所述待加密数据对应的叶子节点的路径,将所述待加密数据进行加密,并根据所述用户密钥恢复所述从随机树的根节点到所述待加密数据对应的叶子节点的路径,将所述待加密数据进行解密。可以实现保序性、安全性、计算和存储负载负担少、数据域变化对计算负载影响小等优点。实施例六参考图9,图9是本发明实施例六提供的一种数据加密的设备结构图。参考图9,图9是本发明实施例提供的一种数据加密的设备900,,本发明具体实施例并不对所述设备的具体实现做限定。所述设备900包括:处理器(processor)901,通信接口(CommunicationsInterface)902,存储器(memory)903,总线904。处理器901,通信接口902,存储器903通过总线904完成相互间的通信。通信接口902,用于与数据解密设备进行通信;处理器901,用于执行程序A。具体地,程序A可以包括程序代码。处理器901可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecificIntegratedCircuit),或者是被配置成实施本发明实施例的一个或多个集成电路。存储器903,用于存放程序A。存储器903可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。程序A具体可以包括以下用于实现以下功能的代码:将明文字符串转换成美国信息交换标准代码ASCII码,并将转换后的ASCII码的位数凑成预先设置的定义域值的倍数,所述预先设置的定义域值是每次加密的所述ASCII码的位数;根据所述预先设置的定义域值确定随机树的高度,同时根据用户密钥和待加密数据生成从随机树的根节点到所述待加密数据对应的叶子节点的路径,并在所述叶子节点所属的区间范围内选择一个随机数,形成所述待加密数据的密文。实施例七参考图10,图10是本发明实施例七提供的一种数据解密的设备结构图。参考图10,图10是本发明实施例提供的一种数据解密的设备1000,,本发明具体实施例并不对所述设备的具体实现做限定。所述设备1000包括:处理器(processor)1001,通信接口(CommunicationsInterface)1002,存储器(memory)1003,总线1004。处理器1001,通信接口1002,存储器1003通过总线1004完成相互间的通信。通信接口1002,用于与数据加密设备进行通信;处理器1001,用于执行程序A。具体地,程序A可以包括程序代码。处理器1001可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecificIntegratedCircuit),或者是被配置成实施本发明实施例的一个或多个集成电路。存储器1003,用于存放程序A。存储器1003可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。程序A具体可以包括以下用于实现以下功能的代码:获取用户密钥和待加密数据的密文;根据所述用户密钥和所述待加密数据的密文恢复所述从随机树的根节点到所述待加密数据对应的叶子节点的路径,将所述待加密数据的密文进行解密;将解密后的所述待加密数据经过消除填充值后转换为明文字符串。以上所述仅为本发明的优选实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明要求包含范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1