一种结构化数字水印加密方法及装置
文献发布时间:2023-06-19 09:36:59
技术领域
本申请实施例涉及数据脱敏技术领域,具体涉及一种结构化数字水印加密方法及装置。
背景技术
在现有的数据脱敏产品中,主要采用对数据加密的方法,现有的加密算法是对原名的明文数据按照某种算法进行处理,使其成为不可读的代码,通常成为密文。通过这样的途径来达到保护数据不被非法人窃取、阅读的目的,这种方法破坏了数据的完整性,导致数据无法正常使用。
在大数据时代,数据模型越来越复杂,数据量越来越大,客户对数据安全诉求越来越强,对结构化数据水印的需求越来越强,为了保证数据的完整性的前提下,对数据进行保护,以及数据泄露后,进行追责处理,结构化数据水印可以更好的解决此问题。现有技术手段主要不能保证数据的完整性。
发明内容
为此,本申请实施例提供一种结构化数字水印加密方法及装置,该方法通过对数据的分解,用算法重新生成新数据的方法,解决对数据加密后的完整性问题。首先随机生成一个0到9的数字(每10条数据随机生成的数字都不能重复),此数字当做索引值,通过索引的值找到密钥对应的值,把索引值和对应的密钥值替换需要水印的数据的前两位的值,后面的数据通过把前一位的生成的新数据当做索引值进行依次替换对应密钥中的值。其具体技术方案如下:
根据本申请实施例提供的一种结构化数字水印加密方法,包括步骤:
步骤1创建密钥;所述密钥为0至9的数十位数字;
步骤2生成随机数;所述随机数为0至9中的一位数字;
步骤3以所述随机数作为索引,找到密钥中索引对应的数字,并以所述索引替换待加密信息的首位信息,索引对应的数字替换待加密信息的下位信息;
步骤4用已被替换的待加密信息的最后一位作为索引,重复步骤3,直到所有待加密信息加密结束。
进一步的,若所述待加密信息为字母、符号或文字信息时,所述步骤3具体包括:
步骤31以所述随机数作为索引,找到密钥中索引对应的数字;
步骤32将所述随机数和所述密钥中索引对应的数字转换成二进制;
步骤33将所述索引值对应的密钥值转换成二进制替换待加密信息的首位数据对应的二进制中后四位的值;
步骤34将所述索引值对应的密钥值转换成二进制替换待加密信息的下一位数据对应的二进制中后四位的值。
进一步的,步骤4具体包括:
步骤41将已完成加密的待加密信息转换成新的数据;
步骤42将所述新数据的最后一位转换成二进制,并以所述二进制的最后四位作为索引值,重复步骤34,直到所有待加密信息加密结束。
进一步的,每10条数据随机生成的数字都能重复。
进一步的,包括:
密钥创建模块,用于创建密钥;所述密钥为0至9的数十位数字;
随机数生成模块,用于生成随机数;所述随机数为0至9中的一位数字;
替换模块,用于以所述随机数作为索引,找到密钥中索引对应的数字,并以所述索引替换待加密信息的首位信息,索引对应的数字替换待加密信息的下位信息;
替换重复模块,用于用已被替换的待加密信息的最后一位作为索引,重复将待加密信息输入至所述替换模块进行替换,直到所有待加密信息加密结束。
进一步的,所述替换重复模块还包括:
数据类型判断,用于判断所述待加密信息为数字信息还是字母、符号或文字信息;
索引模块,用于判断出所述待加密信息为字母、符号或文字信息时,以所述随机数作为索引,找到密钥中索引对应的数字;
二进制转换模块,用于将所述随机数和所述密钥中索引对应的数字转换成二进制;
索引替换模块,用于将所述索引值对应的密钥值转换成二进制替换待加密信息的首位数据对应的二进制中后四位的值;
密钥值替换模块,用于将所述索引值转换成二进制替换待加密信息的下一位数据对应的二进制中后四位的值。
进一步的,还包括溯源模块,用于将完成加密过程的待加密信息转换成二进制,比对所述密钥值与所述索引值对应的二进制的值,完成逆向溯源过程。
本申请提供的一种结构化数字水印加密方法,通过对数据的分解,用算法重新生成新数据的方法,解决对数据加密后的完整性问题。首先随机生成一个0到9的数字,每10条数据随机生成的数字都不能重复,此数字当做索引值,通过索引的值找到密钥对应的值,把索引值和对应的密钥值替换需要水印的数据的前两位的值,后面的数据通过把前一位的生成的新数据当做索引值进行依次替换对应密钥中的值。既保证了数据的安全,也保证了数据的可用性,并能追溯到数据泄露的根源。使企业提高了数据的安全性。
附图说明
为了更清楚地说明本申请的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引伸获得其它的实施附图。
本说明书所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本申请可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本申请所能产生的功效及所能达成的目的下,均应仍落在本申请所揭示的技术内容能涵盖的范围内。
图1为本申请实施例1提供的一种结构化数字水印加密方法的流程图;
图2为本申请实施例1提供的一种结构化数字水印加密方法的数字信息加密过程示意图;
图3为本申请实施例1提供的一种结构化数字水印加密方法的字母、符号或文字信息的加密过程示意图;
图4为本申请实施例1提供的一种结构化数字水印加密方法的逆向溯源过程示意图。
具体实施方式
以下由特定的具体实施例说明本申请的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本申请的其他优点及功效,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参见图1为本申请实施例1提供的一种结构化数字水印加密方法的流程图,包括步骤:
步骤1创建密钥;所述密钥为0至9的数十位数字;每10条数据随机生成的数字都不能重复。
步骤2生成随机数;所述随机数为0至9中的一位数字;
步骤3以所述随机数作为索引,找到密钥中索引对应的数字,并以所述索引替换待加密信息的首位信息,索引对应的数字替换待加密信息的下位信息;
步骤4用已被替换的待加密信息的最后一位作为索引,重复步骤3,直到所有待加密信息加密结束。
由于在现实生活中需要加密的信息往往不局限于数字信息,还包括符号、字母、文字信息等,针对不同的加密对象,采用的加密方式也稍有差别。如果待加密信息是全数字型的,就可以直接按照上述步骤对待加密的信息进行加密。如果是所述待加密信息为字母、符号或文字信息时,需要对上述索引值、密钥以及待加密信息都进行二进制转换,其加密过程为:
所述步骤3具体包括:
步骤31以所述随机数作为索引,找到密钥中索引对应的数字;
步骤32将所述随机数和所述密钥中索引对应的数字转换成二进制;
步骤33将所述索引值对应的密钥值转换成二进制替换待加密信息的首位数据对应的二进制中后四位的值;
步骤34将所述索引值对应的密钥值转换成二进制替换待加密信息的下一位数据对应的二进制中后四位的值。
在处理字母、符号或文字信息时,上述步骤4具体包括:
步骤41将已完成加密的待加密信息转换成新的数据;
步骤42将所述新数据的最后一位转换成二进制,并以所述二进制的最后四位作为索引值,重复步骤34,直到所有待加密信息加密结束。
本申请提供的一种结构化数字水印加密方法,通过对数据的分解,用算法重新生成新数据的方法,解决对数据加密后的完整性问题。首先随机生成一个0到9的数字,每10条数据随机生成的数字都不能重复,此数字当做索引值,通过索引的值找到密钥对应的值,把索引值和对应的密钥值替换需要水印的数据的前两位的值,后面的数据通过把前一位的生成的新数据当做索引值进行依次替换对应密钥中的值。既保证了数据的安全,也保证了数据的可用性,并能追溯到数据泄露的根源。使企业提高了数据的安全性。
下面结合具体例子对本申请一种结构化数字水印加密方法进行描述。参见图2为本申请实施例1提供的一种结构化数字水印加密方法的数字信息加密过程示意图。
例1:设置密钥为:5932867041;需要水印的数据为:13546581156;需要水印的位数为:最后2位;假如从0到9随机生成的随机数为4,把2当做索引对应的密钥值为8(索引从0开始),这样水印后的数据是13546581148。
例2:假如水印的位数为:最后4位;0到9随机生成的随机数为3,把3当做索引对应的密钥值为2,把32替换数据后四位中的前2位,后2位替换方式把前一位当做索引,也就是下一位2做为索引去找到密钥对应的数为3,然后3在做为索引找到密钥的值为2,这样水印后的数据是13546583232。
再参见图3为本申请实施例1提供的一种结构化数字水印加密方法的字母、符号或文字信息的加密过程示意图。例3:设置密钥为:5932867041;需要水印的数据为:辽宁省沈阳市铁西区昆山路;需要水印的位数为:最后2位;假如从0到9随机生成的随机数为7,把7当做索引对应的密钥的值为0,把“山”做为Unicode字符转为二进制为0101110001110001,把索引的值7转为二进制替换“山”对应的二进制值的后四位,7的二进制为0111,替换后的二进制为0101110001110111对应的Unicode字符为“屷”,然后把“路”做为Unicode字符转为二进制为1000110111101111,把密钥的值0转为二进制替换“路”对应的二进制值的后四位,0的二进制为0000,替换后的二进制为1000110111100000对应的Unicode字符为“跠”,这样水印后的数据为“辽宁省沈阳市铁西区昆屷跠”。
例4:假如水印的位数为:最后3位;从0到9随机生成的随机数为9,把9当做索引对应的密钥的值为1,把“昆”做为Unicode字符转为二进制为0110011000000110,把索引的值9转为二进制替换“昆”对应的二进制值的后四位,9的二进制为1001,替换后的二进制为0110011000001001对应的Unicode字符为“昉”,然后把“山”做为Unicode字符转为二进制为0101110001110001,把密钥的值1转为二进制替换“山”对应的二进制值的后四位,1的二进制为0001,替换后的二进制为0101110001110001对应的Unicode字符为“山”,然后密钥的值1做为索引来替换最后一个字,索引1对应的密钥值为9,把密钥的值9转为二进制替换“路”对应的二进制值的后四位,9的二进制为1001,替换后的二进制为1000110111101001对应的Unicode字符为“跩”,这样水印后的数据为“辽宁省沈阳市铁西区昉山跩”。
本申请能追溯到数据泄露的根源,其具体过称为:将完成加密过程的待加密信息转换成二进制,比对所述密钥值与所述索引值对应的二进制的值,完成逆向溯源过程。参见图4为本申请实施例1提供的一种结构化数字水印加密方法的逆向溯源过程示意图,通过创建的密钥和水印的数据进行对比。对比算法为:通过把目标数据转成二进制(数字转成二进制,字母、符号、中文转成二进制取后四位),然后对比密钥中索引加上密钥值对应的二进制的值。比如,
虽然,上文中已经用一般性说明及具体实施例对本申请作了详尽的描述,但在本申请基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本申请精神的基础上所做的这些修改或改进,均属于本申请要求保护的范围。
- 一种结构化数字水印加密方法及装置
- 数字水印加密方法及装置