← 返回列表

一种基于DES算法的软件开发数据安全加密方法

申请号: CN202311724950.4
申请人: 莱芜职业技术学院
更新日期: 2026-03-09

专利详细信息

项目 内容
专利名称 一种基于DES算法的软件开发数据安全加密方法
专利类型 发明授权
申请号 CN202311724950.4
申请日 2023/12/15
公告号 CN117407906B
公开日 2024/3/12
IPC主分类号 G06F21/60
权利人 莱芜职业技术学院
发明人 闫爱涛; 孙芹
地址 山东省济南市莱芜高新区山财大街1号

摘要文本

本发明涉及数据处理技术领域,具体涉及一种基于DES算法的软件开发数据安全加密方法,包括:获取软件开发数据,对数据进行预处理,数据的分块预处理,实现数据的加密等级混合,根据等级混合后的加密数据生成密钥,通过确保密钥生成的安全,进一步确保数据加密的安全,根据密钥进行数据加密。本发明通过数据分块,将数据分为不同加密等级,在加密时使得加密过程有密级高低之分,而不是对所有的数据均进行同样的加密,有效降低加密的时间成本与计算成本。 来自专利查询网

专利主权项内容

1.一种基于DES算法的软件开发数据安全加密方法,其特征在于,该方法包括以下步骤:获取软件开发数据的二进制序列;根据软件开发数据的二进制序列得到软件开发数据进行加密时的若干密钥;对密钥进行密钥扩展得到派生子密钥,包括:随机选取两个密钥,分别记为第零密钥和第一密钥,将第零密钥和第一密钥中的二进制数据进行异或逻辑运算得到第一派生子密钥,从未进行随机选取的密钥中随机选取一个密钥,记为第二密钥,将第一派生子密钥和第二密钥进行异或逻辑运算得到第二派生子密钥,继续从未进行随机选取的密钥中随机选取一个密钥,记为第三密钥,将第三密钥和第二派生子密钥进行异或逻辑运算得到第三派生子密钥,以此类推,直至所有密钥都进行了随机选取并进行了异或逻辑运算,得到所有派生子密钥;根据密钥的选取顺序和派生子密钥的生成顺序得到软件开发数据进行加密时的密钥加密顺序;根据密钥加密顺序对软件开发数据的加密数据进行加密;所述根据软件开发数据的二进制序列得到软件开发数据进行加密时的若干密钥,包括的具体步骤如下:根据软件开发数据的二进制序列得到软件开发数据的二进制序列的数据组,根据软件开发数据的二进制序列的数据组得到初始数据序列,根据初始数据序列得到软件开发数据进行加密时的加密数据;根据加密数据得到加密数据分组,根据加密数据分组得到初始密钥,根据初始密钥得到软件开发数据进行加密时的密钥;所述根据软件开发数据的二进制序列得到软件开发数据的二进制序列的数据组,包括的具体步骤如下:对二进制序列每n位进行一次划分,可以得到若干个软件开发数据的二进制序列分块,将二进制序列分块按照划分顺序按列进行排列,排列完成后每n个二进制序列分块分为一个数据组,最终得到若干个软件开发数据的二进制序列的数据组,n为预设数值;所述根据软件开发数据的二进制序列的数据组得到初始数据序列,包括的具体步骤如下:将数据组置于矩阵中,可以得到一个n×n大小的数据组矩阵,数据组矩阵的每一行代表数据组中的每一个二进制序列分块,将数据组矩阵每一列作为一个数据组矩阵分块,得到n个数据组矩阵分块,将数据组矩阵分块按照划分顺序进行数据拼接得到初始数据序列;所述根据初始数据序列得到软件开发数据进行加密时的加密数据,包括的具体步骤如下:将所有初始数据序列依次进行拼接得到软件开发数据进行加密时的加密数据;所述根据加密数据得到加密数据分组,包括的具体步骤如下:预设分组组数基数B,对加密数据按照分组组数基数B进行第一次分组,第一次分组结束后得到加密数据的B个加密数据第一分组,若加密数据第一分组中数据位数小于A,A为预设数量,则对不足A的加密数据第一分组中的数据位数进行补零操作,将加密数据第一分组中数据位数小于A的补充到A,若加密数据第一分组中数据位数等于A,则不进行处理,若加密数据第一分组中数据位数大于A,则对数据位数大于A的加密数据第一分组进行第二次分组,将数据位数大于A的加密数据第一分组记为目标数据,同样对目标数据按照分组组数基数进行第二次分组,第二次分组结束后得到目标数据的若干个目标数据第二分组,同样判断目标数据第二分组中数据位数是否大于A,若目标数据第二分组中数据位数大于A,则继续进行分组,直至分组结束后分组中数据位数都小于等于A,最终得到加密数据的若干个加密数据分组;所述根据加密数据分组得到初始密钥,包括的具体步骤如下:按照分组顺序依次从每个第一分组中随机提取一位二进制数据,当提取出A位二进制数据后停止得到一个初始密钥,按照分组顺序依次从每个第二分组中也按照分组顺序随机提取一位二进制数据,当提取出A位二进制数据后停止得到一个初始密钥,以此类推,得到若干个初始密钥;所述根据初始密钥得到软件开发数据进行加密时的密钥,包括的具体步骤如下:将若干个初始密钥置于二维矩阵中,将二维矩阵进行行列互换,按照从左到右从上到下的顺序每取出A位二进制数据作为一个参考密钥,从而得到若干个参考密钥,在每一个参考密钥中每7位二进制数据中统计1的个数,当1的个数为奇数时在第8位加一位校验位0,当1的个数为偶数时在第8位加一位校验位1,得到一个密钥,最终获得若干个软件开发数据进行加密时的密钥。