利索能及
我要发布
收藏
专利号: 2024102397809
申请人: 重庆硕睿云科技有限公司
专利类型:发明专利
专利状态:授权未缴费
更新日期:2024-10-31
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种计算机软件加密保护方法,包括:利用CPU的身份密钥对用户输入的账户密码进行加密,生成数字签名A1;获取存储的用户身份信息,根据用户身份信息和基于LWE算法,生成数字签名A2;匹配数字签名A1和数字签名A2,如果一致,则通过用户身份的初步验证;

当初步验证通过后,接收用户输入的一次性密码TOTP1;并使用与用户同步的时间种子,通过TOTP算法生成当前时刻的一次性密码TOTP2,将生成的一次性密码TOTP2和接收的一次性密码TOTP1进行匹配,如果一致,则通过第二次验证;

当通过第二次验证后,解除对加密软件的访问限制,允许用户访问加密软件;

获取用户访问加密软件的包含登录时间、登录地点和访问操作的行为数据,并根据行为数据建立行为基线模型;

采用机器学习模型检测用户的行为基线模型,当检测到异常时,锁定用户账号,拒绝访问;

时间种子由CPU的系统时钟和随机数生成;

生成数字签名A1,包括:

获取用户输入的账号密码;

利用存储Twisted Edwards曲线参数的CPU中的椭圆曲线数字签名算法ECDSA加密引擎,生成数字签名A1;

匹配数字签名A1和数字签名A2,包括:获取数字签名A1,数字签名A1包含坐标点r和整数U的有序对(r,s),其中,s为整数;

获取根据用户身份信息和基于LWE算法生成的数字签名A2;

利用本地存储的LWE算法解密私钥,对数字签名A2中的用户身份信息进行LWE解密,获取用户身份信息的明文;

对获取的用户身份信息的明文进行SHA256哈希运算,生成哈希值e;

输入坐标点r、整数U、哈希值e和公钥pubkey,通过ECDSA算法验证数字签名A1的有效性;

如果验证成功,则数字签名A1和数字签名A2匹配,初步验证通过。

2.根据权利要求1所述的计算机软件加密保护方法,其特征在于:利用存储Twisted Edwards曲线参数的CPU中的椭圆曲线数字签名算法ECDSA加密引擎,生成数字签名A1,包括:构建改进的Twisted Edwards曲线方程:

2 2 2 2 2

ax+by+cz=1+dxy

其中,a、b、d为曲线参数,x、y为点坐标;z为引入的第三个变量,c为变量z的系数;

获取用户输入的账号密码;

通过散列映射算法,将账号密码散列映射到构建的Twisted Edwards曲线上的一个点,作为ECDSA加密算法的输入点;

根据构建的Twisted Edwards曲线,利用ECDSA加密算法生成密钥对;

根据Twisted Edwards曲线、输入点和密钥对作为输入参数,进行ECDSA加密运算,得到数字签名A1。

3.根据权利要求2所述的计算机软件加密保护方法,其特征在于:利用ECDSA加密算法生成密钥对,包括:选择一个m比特长度的随机数种子S;

利用SHA‑256算法进行hash计算,得到hash(S);

通过截取的方式将hash(S)分为第一部分和第二部分,第一部分作为随机数序列;第二部分与随机数种子S进行异或,作为随机数种子S';

重复以上hash计算,更新随机数种子S',并输出第一部分作为随机数序列,直至随机数序列大于预设长度;

获取随机数序列中序数为Q的随机数,作为私钥privkey;

获取Twisted Edwards曲线中阶数最大的点作为生成元P;

计算公钥pubkey=privkey×P;

其中,第一部分和第二部分的长度为128比特。

4.根据权利要求3所述的计算机软件加密保护方法,其特征在于:数字签名A1包含坐标点r和整数U的有序对(r,s),其中,s为整数;

坐标点r:

r=pubkey×k,k表示随机整数;

整数U:

并取整;

h表示通过散列算法对用户输入的账号密码数据进行散列运算得到的散列值。

5.根据权利要求4所述的计算机软件加密保护方法,其特征在于:计算散列值h,包括:

初始化8个32位常数值;

获取用户输入的账号密码,按512位分割成数据块;

对每个数据块进行以下运算:

进行布尔逻辑运算和模32加法,计算压缩函数值;

对计算得到的压缩函数值进行随机置换排序;

将置换排序结果与当前散列值进行模32加法,更新散列值;

迭代计算,直至完成所有数据块的处理;

合并计算得到的散列值,输出一个256位值,作为最终散列值h;

其中,获取最终散列值h包括:

获取用户输入的账号密码,按照512位的长度将输入的账号密码分割为多个数据块,得到数据块序列M1,M2,.....,Mm;

将数据块Mi与常数IV进行布尔逻辑运算后,与模32进行加法运算,计算得到压缩函数值;

对计算得到的压缩函数值进行随机置换排序;

将置换排序后的结果与当前累积散列值{Hi}进行模32加法运算,得到更新后的散列值Hi;

重复散列值更新步骤,直到遍历所有的数据块,得到散列值H1,H2,.....,Hm;

将得到的m个32位中间散列值按顺序依次连接,得到一个32*m比特的组合值;

判断得到的32*m比特的组合值的长度,如果组合值的长度小于256比特,则添加填充比特,将组合值扩展到256比特,反之截取256位;

将得到的256位值作为最终的散列值h输出。

6.根据权利要求1所述的计算机软件加密保护方法,其特征在于:建立行为基线模型,包括:

获取包含登录时间、登录地点和访问操作的行为数据;

解析登录时间,获取时间粒度信息,将一天划分为24个小时区间作为时间分布直方图统计的特征;

解析登录地点,获取地址信息,将地址划分为办公区内和办公区外两类作为地点分布直方图统计的特征;

解析访问操作,将操作划分为读写操作和设置操作两类作为操作分布直方图统计的特征;

采用一维离散直方图统计函数,得到时间分布直方图统计的特征向量;

采用二值统计函数,得到地点分布直方图统计的特征向量;

采用二值统计函数,得到操作分布直方图统计的特征向量;

将得到的时间分布直方图统计的特征向量、地点分布直方图统计的特征向量和操作分布直方图统计的特征向量进行拼接,作为行为数据的统计特征向量。

7.根据权利要求6所述的计算机软件加密保护方法,其特征在于:建立行为基线模型,包括:

利用得到的统计特征向量,训练LSTM神经网络,作为行为基线模型。

8.根据权利要求7所述的计算机软件加密保护方法,其特征在于:异常检测,包括:

利用基于LSTM神经网络的行为基线模型,对获取的行为数据进行检测,得到检测分值,根据检测分值判断用户的行为是否异常。