一种业务端用户数据加密方法和解密方法转让专利

申请号 : CN202011217121.3

文献号 : CN112398832B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 董海鹏代波

申请人 : 四川长虹电器股份有限公司

摘要 :

本发明涉及加解密技术,其公开了一种业务端用户数据加密方法和解密方法,提高用户密钥存储的安全性和加解密的安全性。加密方法包括:A、业务端调用加密函数,传输参数包括业务标识、用户标识和待加密的用户明文数据;B、判断是否存在所述业务标识对应的业务密钥,若不存在,则生成对应的业务密钥;C、根据所述用户标识生成随机用户密钥,选择加密算法和加密参数,基于所述随机用户密钥对待加密的用户明文数据进行加密,生成用户数据密文;D、生成包括密钥头、业务密钥密文、用户密钥密文的密钥集;E、将生成的密钥集写入密钥文件。本发明适用于对业务端用户数据的加解密。

权利要求 :

1.一种业务端用户数据加密方法,其特征在于,包括以下步骤:A、业务端调用加密函数,传输参数包括业务标识、用户标识和待加密的用户明文数据;

B、判断是否存在所述业务标识对应的业务密钥,若不存在,则生成对应的业务密钥;

C、根据所述用户标识生成随机用户密钥,选择加密算法和加密参数,基于所述随机用户密钥对待加密的用户明文数据进行加密,生成用户数据密文;

D、生成密钥集:利用所述业务标识加上所述用户标识,填充固定长度,记为密钥头中缀;对所述密钥头中缀采用摘要算法生成数字形式摘要信息,填充固定长度,记录为密钥头前缀;利用步骤C中选择的加密算法加上加密参数对所述用户密钥进行加密,记为密钥头后缀;对所述业务密钥加密,填充固定长度,记为业务密钥密文;对所述用户密钥加密,填充固定长度,记录为用户密钥密文;

E、将生成的密钥集写入密钥文件;

步骤E中,所述将生成的密钥集写入密钥文件,具体包括:根据密钥头前缀数字摘要判断写入位置,按照数字摘要从小到大的顺序插入密钥文件:

根据每一条密钥集为固定长度,首先获取现有密钥文件内容长度,依据平衡二叉树算法,将指针移动到密钥文件长度二分之一处,获取此处密钥头前缀,若小于欲插入的密钥集中密钥头前缀摘要数值,则将密钥文件指针移动到后半段二分之一处;若大于欲插入的密钥集合密钥头前缀,则将密钥文件指针移动到前半段二分之一处,以此类推判断,直到要插入的密钥集中的密钥头前缀摘要数值处于前后两个密钥集的密钥头前缀摘要数值大小之间,此时,插入所述要插入的密钥集到密钥文件中,完成写入。

2.一种业务端用户数据解密方法,其特征在于,包括以下步骤:A、业务端调用解密函数,传输参数为加密密文;

B、根据加密密文生成规则逆向获取业务、业务用户和数据密文;

C、根据加密密钥头生成数字摘要,利用所述数字摘要在密钥文件中查询密钥集;

D、解析密钥集:根据业务密钥密文固定长度、用户密钥密文固定长度查找业务密钥及用户密钥,解密业务密钥,使用业务密钥解密用户密钥;

E、解析密钥头后缀获取加密算法及加密参数,使用用户密钥及对应加密时的加密算法及参数解密用户数据密文得到明文;

步骤C中,利用所述数字摘要在密钥文件中查询密钥集具体包括:根据所述数字摘要在密钥文件中进行平衡二叉树搜索,将指针移动到密钥文件长度二分之一处,获取此处密钥头前缀,若小于欲查找的密钥集合的密钥头前缀摘要数值,则将密钥文件指针移动到后半段二分之一处,若大于欲查找的密钥集的密钥头前缀,则将密钥文件指针移动到前半段二分之一处,以此类推判断,直到不可再二分为止,此时,找到对应的加密密钥集即为要查询的目标密钥集。

说明书 :

一种业务端用户数据加密方法和解密方法

技术领域

[0001] 本发明涉及加解密技术,具体涉及一种业务端用户数据加密方法和解密方法。

背景技术

[0002] 因特网作为信息传输的载体是不安全的信息媒介,它所遵循的通讯协议(TCP/IP协议)本身具有脆弱性。由于当初设计该协议的初衷并非出于对通信安全的考虑,而是出于
对通信自由的考量。因此,一些基于TCP/IP协议的服务也是极不安全;另一方面,因特网给
众多的商家带来了无限的商机,许多网络黑客依照经济利益或个人爱好,专门跟踪
Internet的特殊群体或个别敏感用户,盗取他们的网络身份或银行帐户信息,再冒充合法
用户的身份,进一步侵入信息系统,非法盗取经济、政治、军事机密。为了保证因特网的安全
和充分发挥其商业信息交换的价值,人们选择了数据加密技术,对访问Internet网络的用
户实施身份认证。
[0003] 加密技术在网络应用方面概括起来有:数据加密、身份认证、数字签名和(不可否认性)防止个人否认事实的行为(撒谎)。其次就是对于黑客的非法入侵行为在网络上进行
拦截。许多安全防护体系是基于密码的,密码一旦泄露出去可以导致很多的安全隐患,甚至
导致网络的全面崩溃。当人在网络上进行访问时必须进入第一道门坎——登录(Login)。系
统要求你键入的密码(Password)以明文的形式被传输到用户服务器上,系统自动对你的用
户身份进行鉴别,这就是身份认证。确定你的身份后才容许你访问该网络或进行彼此通讯。
身份认证是基于加密技术的一种网络防范行为,它的作用就是用来确定用户是否是真实
的。
[0004] 有些时候,用户可能需要对一些机密文件进行加密,并不一定因为要在网络间进行传输,而是要防止别人窃得计算机密码而获得该机密文件,因此要对数据实行加密,从而
实现多重保护。例如,通常使用的VPN系统,又如在UNIX系统中常用的crypt(3)命令对文件
进行加密,尽管这些加密手段已不是那么先进,甚至有被破解的较大可能性,但是最起码可
以保证文件的完整无误地传输到信息接受方。
[0005] 现有数据加解密方法要么基于某种特定的算法根据相应的密钥进行加解密处理,单纯的加解密算法本身有被破解的风险,密钥泄漏也会直接导致数据的泄漏,安全性较低;
要么基于底层的存储器特性和加解密场景的实际情况进行特殊处理,不具有较强的通用性
和适用性。

发明内容

[0006] 本发明所要解决的技术问题是:提出一种业务端用户数据加密方法和解密方法,提高用户密钥存储的安全性和加解密的安全性。
[0007] 本发明解决上述技术问题采用的技术方案是:
[0008] 一种业务端用户数据加密方法,包括以下步骤:
[0009] A、业务端调用加密函数,传输参数包括业务标识、用户标识和待加密的用户明文数据;
[0010] B、判断是否存在所述业务标识对应的业务密钥,若不存在,则生成对应的业务密钥;
[0011] C、根据所述用户标识生成随机用户密钥,选择加密算法和加密参数,基于所述随机用户密钥对待加密的用户明文数据进行加密,生成用户数据密文;
[0012] D、生成密钥集:利用所述业务标识加上所述用户标识,填充固定长度,记为加密头中缀;对所述加密头中缀采用摘要算法生成数字形式摘要信息,填充固定长度,记录为加密
头前缀;利用步骤C中选择的加密算法加上加密参数对所述用户密钥进行加密,记为加密头
后缀;对所述业务密钥加密,填充固定长度,记为业务密钥密文;对所述用户密钥加密,填充
固定长度,记录为用户密钥密文;
[0013] E、将生成的密钥集写入密钥文件。
[0014] 作为进一步优化,步骤E中,所述将生成的密钥集写入密钥文件,具体包括:
[0015] 根据加密头前缀数字摘要判断写入位置,按照数字摘要从小到大的顺序插入密钥文件:
[0016] 根据每一条密钥集为固定长度,首先获取现有密钥文件内容长度,依据平衡二叉树算法,将指针移动到密钥文件长度二分之一处,获取此处密钥头前缀,若小于欲插入的密
钥集中密钥头前缀摘要数值,则将密钥文件指针移动到后半段二分之一处;若大于欲插入
的密钥集合密钥头前缀,则将密钥文件指针移动到前半段二分之一处,以此类推判断,直到
要插入的密钥集中的密钥头前缀摘要数值处于前后两个密钥集的密钥头前缀摘要数值大
小之间,此时,插入所述要插入的密钥集到密钥文件中,完成写入。
[0017] 此外,本发明还提供了一种业务端用户数据解密方法,包括以下步骤:
[0018] A、业务端调用解密函数,传输参数为加密密文;
[0019] B、根据加密密文生成规则逆向获取业务、业务用户和数据密文;
[0020] C、根据加密密文头生成数字摘要,利用所述数字摘要在密钥文件中查询密钥集;
[0021] D、解析密钥集:根据业务密钥密文固定长度、用户密钥密文固定长度查找业务密钥及用户密钥,解密业务密钥,使用业务密钥解密用户密钥;
[0022] E、解析密钥头后缀获取加密算法及加密参数,使用用户密钥及对应加密时的加密算法及参数解密用户数据密文得到明文。
[0023] 作为进一步优化,步骤C中,利用所述数字摘要在密钥文件中查询密钥集具体包括:
[0024] 根据所述数字摘要在密钥文件中进行平衡二叉树搜索,将指针移动到密钥文件长度二分之一处,获取此处密钥头前缀,若小于欲查找的密钥集合的密钥头前缀摘要数值,则
将密钥文件指针移动到后半段二分之一处,若大于欲查找的密钥集的密钥头前缀,则将密
钥文件指针移动到前半段二分之一处,以此类推判断,直到不可再二分为止,此时,找到对
应的加密密钥集即为要查询的目标密钥集。
[0025] 本发明的有益效果是:
[0026] 采用自定义的密钥集、密文规则和密钥存储及索引查找规则对业务端用户数据进行加解密处理,实现针对不同业务,不同用户自定义对应用户密钥集的自定义加密,及根据
业务用户动态匹配查找对应密钥集进行动态密钥解密,从而提高用户密钥存储的安全性和
加解密的安全性。

附图说明

[0027] 图1为本发明中的业务端用户数据加密原理图;
[0028] 图2为本发明中的业务端用户数据解密原理图。

具体实施方式

[0029] 本发明旨在提出一种业务端用户数据加密方法和解密方法,提高用户密钥存储的安全性和加解密的安全性。本发明针对业务端,实现对不同业务创建不同业务密钥、同业务
不同用户创建不同用户密钥,采用不同算法及参数进行加密,生成自定义规则的密钥集,加
密密钥集持久化存储到密钥文件,按加密规则解析密文和密钥集进行数据解密处理,基于
密钥文件指针结合平衡二叉树算法快速读写密钥集,一业务用户一密钥集,加密动态更新
密钥写入处理,解密动态匹配密钥查询处理,可提升密钥存储安全性和数据加解密安全性。
[0030] 在具体实现上,本发明中的业务端用户数据加密方法如图1所示,其包括以下步骤:
[0031] A、业务端调用加密函数,传输参数包括业务标识、用户标识和待加密的用户明文数据;
[0032] B、判断是否存在所述业务标识对应的业务密钥,若不存在,则生成对应的业务密钥;
[0033] C、根据所述用户标识生成随机用户密钥,选择加密算法和加密参数,基于所述随机用户密钥对待加密的用户明文数据进行加密,生成用户数据密文;
[0034] D、生成密钥集:利用所述业务标识加上所述用户标识,填充固定长度,记为加密头中缀;对所述加密头中缀采用摘要算法生成数字形式摘要信息,填充固定长度,记录为加密
头前缀;利用步骤C中选择的加密算法加上加密参数对所述用户密钥进行加密,记为加密头
后缀;对所述业务密钥加密,填充固定长度,记为业务密钥密文;对所述用户密钥加密,填充
固定长度,记录为用户密钥密文;
[0035] E、将生成的密钥集写入密钥文件:根据加密头前缀数字摘要判断写入位置,按照数字摘要从小到大的顺序插入密钥文件:根据每一条密钥集为固定长度,首先获取现有密
钥文件内容长度,依据平衡二叉树算法,将指针移动到密钥文件长度二分之一处,获取此处
密钥头前缀,若小于欲插入的密钥集中密钥头前缀摘要数值,则将密钥文件指针移动到后
半段二分之一处;若大于欲插入的密钥集合密钥头前缀,则将密钥文件指针移动到前半段
二分之一处,以此类推判断,直到要插入的密钥集中的密钥头前缀摘要数值处于前后两个
密钥集的密钥头前缀摘要数值大小之间,此时,插入所述要插入的密钥集到密钥文件中,完
成写入。
[0036] 为了快速写入,单个密钥文件不宜过大,超过固定大小时,另写一个密钥文件,为便宜搜寻,密钥文件名格式一致,序号自增处理。
[0037] 本发明中的业务端用户数据解密方法如图2所示,其包括以下步骤:
[0038] A、业务端调用解密函数,传输参数为加密密文;
[0039] B、根据加密密文生成规则逆向获取业务、业务用户和数据密文;
[0040] C、根据加密密文头生成数字摘要,利用所述数字摘要在密钥文件中查询密钥集:根据所述数字摘要在密钥文件中进行平衡二叉树搜索,将指针移动到密钥文件长度二分之
一处,获取此处密钥头前缀,若小于欲查找的密钥集合的密钥头前缀摘要数值,则将密钥文
件指针移动到后半段二分之一处,若大于欲查找的密钥集的密钥头前缀,则将密钥文件指
针移动到前半段二分之一处,以此类推判断,直到不可再二分为止,此时,找到对应的加密
密钥集即为要查询的目标密钥集;
[0041] D、解析密钥集:根据业务密钥密文固定长度、用户密钥密文固定长度查找业务密钥及用户密钥,解密业务密钥,使用业务密钥解密用户密钥;
[0042] E、解析密钥头后缀获取加密算法及加密参数,使用用户密钥及对应加密时的加密算法及参数解密用户数据密文得到明文。
[0043] 实施例1:
[0044] 以对业务A中用户a数据进行加密处理为例,流程如下:
[0045] 1、对业务A用户a数据data加密开始,调用加密函数,传输参数A_id,a_id,data;
[0046] 2、判断有无A_id业务密钥A_key,若没有,则生成A业务密钥A_key,若有,则调用该业务密钥即可;
[0047] 3、生成随机用户密钥a_Key,选择用户数据加密算法alg_type,加密参数alg_param;
[0048] 4、用户a密钥集合生成:对业务标识加上用户标识加密,填充固定长度,记为加密头中缀,设为AAAaaa;对加密头采用摘要算法生成数字形式摘要信息,填充固定长度,记录
为加密头前缀,假设为111111;加密算法加上加密参数加密记为加密头后缀,设为
algtypealgparam;业务密钥加密,填充固定长度,记为业务密钥密文,假设为AmAmAm。用户
密钥加密,填充固定长度,记录为用户密钥密文,假设为amamam;则用户a的密钥集为11111
1AAAaaaalgtypealgparamAmAmAmamamam;
[0049] 5、用户a密文生成,业务标识加上用户标识加密,填充固定长度,记为密文头,假设为AAAaaa;数据加密记为数据密文,假设为dadada;
[0050] 6、密钥集合写入密钥文件,假设当前密钥密钥文件中已存在b、c、d、e用户4个用户密钥集,顺序分别为:
[0051] 111101AAAbbbalgtypealgparamAmAmAmbmbmbm,
[0052] 111102AAAcccalgtypealgparamAmAmAmcmcmcm,
[0053] 111112AAAdddalgtypealgparamAmAmAmdmdmdm,
[0054] 111113AAAeeealgtypealgparamAmAmAmememem;
[0055] 根据加密头前缀数字摘要判断写入位置,按照数字摘要从小到大的顺序插入密钥文件,根据每一条密钥集合为固定长度,首先获取现有密钥文件内容长度为38的4倍,依据
平衡二叉树算法,将指针移动到密钥文件长度二分之一处为38的2倍,获取此处密钥头前缀
为11112,大于欲插入的密钥集合密钥头前缀,则将密钥文件指针移动到38的1倍处,此时再
取得密钥头前缀11102,此时欲插入密钥头前缀11111大于111102小于111112,即为将目标
密钥集合顺序插入点,完成写入新的密钥集合,此时密钥文件中记录:
[0056] 111101AAAbbbalgtypealgparamAmAmAmbmbmbm,
[0057] 111102AAAcccalgtypealgparamAmAmAmcmcmcm,
[0058] 111111AAAaaaalgtypealgparamAmAmAmamamam,
[0059] 111112AAAdddalgtypealgparamAmAmAmdmdmdm,
[0060] 111113AAAeeealgtypealgparamAmAmAmememem,
[0061] 至此,完成用户数据加密和密钥集存储。
[0062] 实施例2:
[0063] 以对实施例1传输的加密密文进行解密为例,本实施例中的解密流程包括:
[0064] 1、业务端调用解密函数,传输参数为加密后密文AAAaaadadada;
[0065] 2、解析密文,逆向获取业务A,业务用户a,数据密文dadada;
[0066] 3、根据密文头AAAaaa生成数字摘要111111,根据此数字摘要在密钥密钥文件中进行平衡二叉树搜索,由于此时密钥集个数为奇数,将指针移动到密钥文件长度二分之一处
再减去单个密钥集长度的二分之一,获取此处密钥头前缀为111111,若小于欲查找的密钥
集合密钥头前缀摘要数值,则将密钥文件指针移动到后半段二分之一处,若大于欲查找的
密钥集合密钥头前缀,则将密钥文件指针移动到前半段二分之一处,以此类推判断,直到找
到相等值为止,而此时刚好获取到相等关系,则成功找到密文dadada对应的密钥集合为11
1111AAAaaaalgtypealgparamAmAmAmamamam。
[0067] 4、解析密钥集111111AAAaaaalgtypealgparamAmAmAmamamam,根据业务密钥密文固定长度、用户密钥密文固定长度获取到密钥头为111111AAAaaaalgtypealgparam,业务密
钥密文为AmAmAm,用户密钥密文为amamam,解密业务密钥密文得业务密钥A_key,使用业务
密钥解密用户密钥得a_key;
[0068] 5、解析密钥头中缀获取加密时算法得alg_type及加密参数得alg_param,使用用户密钥及对应加密时的加密算法及参数解密用户数据密文dadada得到明文data。