1.一种计算机软件加密保护方法,包括:利用CPU的身份密钥对用户输入的账户密码进行加密,生成数字签名A当初步验证通过后,接收用户输入的一次性密码TOTP当通过第二次验证后,解除对加密软件的访问限制,允许用户访问加密软件;
获取用户访问加密软件的包含登录时间、登录地点和访问操作的行为数据,并根据行为数据建立行为基线模型;
采用机器学习模型检测用户的行为基线模型,当检测到异常时,锁定用户账号,拒绝访问;
时间种子由CPU的系统时钟和随机数生成。
2.根据权利要求1所述的计算机软件加密保护方法,其特征在于:生成数字签名A
获取用户输入的账号密码;
利用存储Twisted Edwards曲线参数的CPU中的椭圆曲线数字签名算法ECDSA加密引擎,生成数字签名A
3.根据权利要求2所述的计算机软件加密保护方法,其特征在于:利用存储Twisted Edwards曲线参数的CPU中的椭圆曲线数字签名算法ECDSA加密引擎,生成数字签名A构建改进的Twisted Edwards曲线方程:ax
其中,a、b、d为曲线参数,x、y为点坐标;z为引入的第三个变量,c为变量z的系数;
获取用户输入的账号密码;
通过散列映射算法,将账号密码散列映射到构建的Twisted Edwards曲线上的一个点,作为ECDSA加密算法的输入点;
根据构建的Twisted Edwards曲线,利用ECDSA加密算法生成密钥对;
根据Twisted Edwards曲线、输入点和密钥对作为输入参数,进行ECDSA加密运算,得到数字签名A
4.根据权利要求3所述的计算机软件加密保护方法,其特征在于:利用ECDSA加密算法生成密钥对,包括:选择一个m比特长度的随机数种子S;
利用SHA-256算法进行hash计算,得到hash(S);
通过截取的方式将hash(S)分为第一部分和第二部分,第一部分作为随机数序列;第二部分与随机数种子S进行异或,作为随机数种子S';
重复以上hash计算,更新随机数种子S',并输出第一部分作为随机数序列,直至随机数序列大于预设长度;
获取随机数序列中序数为Q的随机数,作为私钥privkey;
获取Twisted Edwards曲线中阶数最大的点作为生成元P;
计算公钥pubkey=privkey×P。
5.根据权利要求4所述的计算机软件加密保护方法,其特征在于:数字签名A1包含坐标点r和整数U的有序对(r,s);
坐标点r:
r=pubkey×k,k表示随机整数;
整数U:
h表示通过散列算法对用户输入的账号密码数据进行散列运算得到的散列值。
6.根据权利要求5所述的计算机软件加密保护方法,其特征在于:计算散列值h,包括:
初始化8个32位常数值;
获取用户输入的账号密码,按512位分割成数据块;
对每个数据块进行以下运算:
进行布尔逻辑运算和模32加法,计算压缩函数值;
对计算得到的压缩函数值进行随机置换排序;
将置换排序结果与当前散列值进行模32加法,更新散列值;
迭代计算,直至完成所有数据块的处理;
合并计算得到的散列值,输出一个256位值,作为最终散列值h。
7.根据权利要求2至6任一所述的计算机软件加密保护方法,其特征在于:匹配数字签名A
获取数字签名A
获取根据用户身份信息和基于LWE算法生成的数字签名A利用本地存储的LWE算法解密私钥,对数字签名A对获取的用户身份信息的明文进行SHA256哈希运算,生成哈希值e;
输入坐标点r、整数U、哈希值e和公钥pubkey,通过ECDSA算法验证数字签名A如果验证成功,则数字签名A
8.根据权利要求7所述的计算机软件加密保护方法,其特征在于:建立行为基线模型,包括:
获取包含登录时间、登录地点和访问操作的行为数据;
解析登录时间,获取时间粒度信息,将一天划分为24个小时区间作为时间分布直方图统计的特征;
解析登录地点,获取地址信息,将地址划分为办公区内和办公区外两类作为地点分布直方图统计的特征;
解析访问操作,将操作划分为读写操作和设置操作两类作为操作分布直方图统计的特征;
采用一维离散直方图统计函数,得到时间分布直方图统计的特征向量;
采用二值统计函数,得到地点分布直方图统计的特征向量;
采用二值统计函数,得到操作分布直方图统计的特征向量;
将得到的时间分布直方图统计的特征向量、地点分布直方图统计的特征向量和操作分布直方图统计的特征向量进行拼接,作为行为数据的统计特征向量。
9.根据权利要求8所述的计算机软件加密保护方法,其特征在于:建立行为基线模型,包括:
利用得到的统计特征向量,训练LSTM神经网络,作为行为基线模型。
10.根据权利要求9所述的计算机软件加密保护方法,其特征在于:异常检测,包括:
利用基于LSTM神经网络的行为基线模型,对获取的行为数据进行检测,得到检测分值,根据检测分值判断用户的行为是否异常。