一种针对不同安全等级的加密方法及系统
技术领域
本发明涉及数据安全领域,尤其涉及一种针对不同安全等级的加密方法及 系统。
背景技术
随着科学技术的发展,人们对电脑技术的研究更加地全面,对机密信息的 探测途径越来越多。对于密码算法而言,传统仅局限于通信信道中信息的截取 与分析已经无法满足攻击者的需求,他们已经逐渐开始将目标定位于密码算法 的运行平台(如个人电脑、服务器等),通过越来越先进的技术对算法运行时的 内部状态进行观测、改动等操作,从而获取机密信息,破坏密码算法所要保护 的机密性、完整性、不可否认性等。
这样的攻击方式被称之为白盒攻击。传统的密码算法在这样的攻击环境的 平台上运行毫无安全性可言,因此需要研究开发出一种新的密码技术,能够在 不可信任平台上运行时保证所需的安全性,达到更高级别信息安全的目的。
白盒密码即是这样一种密码技术,通过结合代数、概率、混淆、软件保护、 信息隐藏等知识,研究如何设计安全的白盒密码算法和白盒攻击环境下密码算 法的安全评估;用于保护密码算法及其相关软件在不可信任环境下的安全执行; 白盒密码是对传统黑盒密码安全概念的一次颠覆,它将更加全面地保护机密信 息。
白盒密码可以应用到任何在不可信任的运行平台上执行的密码方案,因此 其应用前景非常的广泛,可以应用于数字内容的安全发行,为内容创作者和提 供者的数字资产提供防止盗窃或滥用的安全保护;可以应用于无线自组网络、 云计算等的安全计算,为不可信任终端处理机密信息提供防观测、防篡改、防 窃取等服务;可以应用于软件保护,破坏软件设计的原有的结构从而防止逆向 工程等等。
然而,在白盒密码的技术实现方面,到目前为止还未有公认的安全的且实 现效率较高的白盒密码方案出现,因此,设计能够抵抗白盒攻击的安全有效的 密码算法迫在眉睫,是目前保证网络安全的一个重要手段。
发明内容
为了解决上述技术问题,本发明提供一种针对不同安全等级的加密方法及 系统。
本发明是以如下技术方案实现的:
一种加密方法,所述方法应用于服务器-客户端架构或者服务器-浏览器架 构的分布式系统之中,所述方法包括:
服务器获取用户的数据加密请求,所述数据加密请求包括关键字、安全等 级标识、待加密数据的长度和用户标识;
根据所述关键字和用户标识获取用户所在的一个或者多个群组标识;所述 群组标识包括所述群组标识中的群组所具备的安全等级;若获取到的群组标识 为多个,则从中按照约定算法选择一个目标群组标识;若获取到的群组标识只 有一个,则获取到的群组标识即为目标群组标识;所述目标群组的安全等级不 低于所述安全等级标识表征的安全等级;
按照预设算法根据所述用户标识、目标群组标识和所述待加密数据的长度 得到特征值;所述特征值算法为p=Mid1+Nid2+mod(L/1024),其中p表示特征值, Mid1为用户标识对应的特征值第一分量,Nid2为目标群组标识对应的第二分量,L 为待加密数据长度,以kb为单位;
根据所述特征值在预设的加密算法集合中抽取加密因子并将所述加密因子传输至客户端,所述加密因子包括第一混合种子、第二混合种子、第一加密算法和 第二加密算法;
客户端获取用户输入的字符,并按照预设的采集顺序将获取到的字符进行 排列,并按照预设的第一混合算法将获取到的字符与所述第一混合种子混合以 生成目标字符串;
根据所述第一加密算法对所述目标字符串进行加密得到加密字符串;按照 预设的第二混合算法将所述加密字符串和所述第二混合种子进行混合以得到混 合加密字符串;
获取自身硬件信息,根据所述硬件信息和所述混合加密字符串生成加密密 钥;
根据所述第二加密算法将所述混合加密字符串,结合所述加密密钥运算得 到加密密文,将所述加密密文发送至服务器。
进一步地,所述第一混合种子和第二混合种子可以包括一个或多个字符串 的组合,所述字符串可以包括英文、数字、符号及其组合。
进一步地,若所述第一加密算法为公钥加密算法,则所述加密因子还包括 加密密钥,不同的第一加密算法所对应的公钥加密算法的保密级别和得到的加 密密钥长度不同。
进一步地,所述第一加密算法是异或运算或者对称算法等任意一种可逆运 算方法;所述第二加密算法是SM3、MD5等杂凑算法进行运算得到的算法。
进一步地,所述待加密数据可以为应用于某种加密算法的密钥。
进一步地,所述特征值为正整数。
一种加密系统,所述系统包括服务器和客户端,
所述服务器包括:
请求获取模块,用于服务器获取用户的数据加密请求,所述数据加密请求 包括关键字、安全等级标识、待加密数据的长度和用户标识;
目标群组标识获取模块,用于根据所述关键字和用户标识获取用户所在的 一个或者多个群组标识;所述群组标识包括所述群组标识中的群组所具备的安 全等级;若获取到的群组标识为多个,则从中按照约定算法选择一个目标群组 标识;若获取到的群组标识只有一个,则获取到的群组标识即为目标群组标识; 所述目标群组的安全等级不低于所述安全等级标识表征的安全等级;
特征值获取模块,用于按照预设算法根据所述用户标识、目标群组标识和 所述待加密数据的长度得到特征值;所述特征值算法为 p=Mid1+Nid2+mod(L/1024),其中p表示特征值,Mid1为用户标识对应的特征值第 一分量,Nid2为目标群组标识对应的第二分量,L为待加密数据长度,以kb为 单位;
加密因子处理模块,用于根据所述特征值在预设的加密算法集合中抽取加 密因子并将所述加密因子传输至客户端,所述加密因子包括第一混合种子、第 二混合种子、第一加密算法和第二加密算法;
所述客户端包括:
字符输入模块,用于获取用户输入的字符;
目标字符串生成模块,用于按照预设的采集顺序将获取到的字符进行排列, 并按照预设的第一混合算法将获取到的字符与所述第一混合种子混合以生成目 标字符串;
混合加密字符串得到模块,用于根据所述第一加密算法对所述目标字符串 进行加密得到加密字符串;按照预设的第二混合算法将所述加密字符串和所述 第二混合种子进行混合以得到混合加密字符串;
加密密钥生成模块,用于获取自身硬件信息,根据所述硬件信息和所述混 合加密字符串生成加密密钥;
加密密文处理模块,用于根据所述第二加密算法将所述混合加密字符串, 结合所述加密密钥运算得到加密密文,将所述加密密文发送至服务器。
本发明的有益效果是:
本发明提供一种针对不同安全等级的加密方法及系统,通过根据用户标识、 关键字以及安全等级标识获取加密因子,并根据加密因子对待加密数据进行加 密,所述待加密数据也可以是某个加密算法的密钥,使得整个加密过程实现了 将算法密钥融合到算法中的加密技术。充分利用用户的个人信息以及社交信息 获取对应的加密因子,并且用户还可以通过关键字和安全等级标识使得服务器 选取最为适合的加密因子,从而使得服务器可以对不同的用户反馈不同的加密 因子,使得加密因子因用户的需求而动态变动,从而在终端产生出不同的白盒 加密算法,不仅使得用户能够有更为自主的选择加密算法,而且能够进一步提 升加密的复杂度,提升了数据安全性。
附图说明
图1是本发明实施例提供的针对不同安全等级的加密方法流程图;
图2是本发明实施例提供的加密因子的获取方法流程图;
图3是本发明实施例提供的群组的查找方式流程图;
图4是本发明实施例提供的加密过程流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明 作进一步地详细描述。
实施例1:
一种针对不同安全等级的加密方法,所述方法应用于服务器-客户端架构或 者服务器-浏览器架构的分布式系统之中,如图1所示所述方法包括:
S101.服务器获取用户的数据加密请求,并返回加密因子。
具体地,所述数据加密请求包括关键字、安全等级标识、待加密数据的长 度和用户标识。所述待加密数据可以为某个加密算法的密钥。所述关键字可以 为空。
具体地,加密因子的获取方法如图2所示,包括下述步骤:
S1011.根据所述用户标识获取用户所在的一个或者多个群组标识;所述群 组标识包括所述群组标识中的群组所具备的安全等级。
S1012.判断获取到的群组标识的数量。
群组是可表示多用户之间通信关系的数据对象,群组中的各个用户标识所 对应的终端之间可以进行一对多、多对一以及多对多之间的通信。可利用群组 标识将多个用户标识联系起来而用来表示群组,群组中的任意一个用户标识所 对应的终端能够与该群组中的其它用户标识所对应的终端通信,从而可以实现 多方通信。群组包括但不限于即时通信群组、基于社交网络的群组、多人语音 通信组、多人视频通信组、基于已有的群组而建立的讨论组、多人会话组等。 不同的群组的安全等级可能不同,其对应的加密因子也可能产生不同,因此, 本实施例中对于群组的选择结果将直接影响到加密因子的获取结果,从而对终 端的加密复杂度产生影响。而用户并不能够完全按照自己的意愿选择加密因子, 而需要受制于用户所处的社会关系(群组),避免低等级的用户使用高等级的加 密服务而导致的资源浪费。
所述群组的查找方式如图3所示,包括:
S1.根据用户标识获取用户所在的群组集,所述群组集为用户所在的全部 群组构成的集合;
S2.在所述群组集中查找到与关键字匹配的群组;
服务器响应于该群组查找请求,根据群组查找请求所携带的关键字来查找 与该关键字匹配的群组。具体可以将该关键字进行分词获得关键字分词,判断 该关键字分词是否存在于群组的群组文本资料中来判断该关键字是否与该群组 匹配。从而可以查找到与关键字匹配的群组,获得查找到的群组。其中,群组 文本资料包括但不限于群组标识、群组名称、群组介绍信息、群组分类信息、群 组地理位置信息和群组标签信息等。
S3.根据多个维度的排序因子分别计算每个查找到的群组对应每一维度的 排序值。
排序值是对查找到的群组进行排序的数值形式的直接依据,比如可以百分 制分数的形式表示。预设了多个维度,对于每一个查找到的群组,服务器将计 算其对应多个维度中每一个维度的排序值。具体计算对应一个维度的排序值时, 根据该维度的排序因子进行计算。排序因子是指为对查找到的群组进行排序而 计算相应的排序值时应考虑的因素或成分。排序因子包括但不限于群组成员数 量、群组成员容量、是否为预设指定群组、群组活跃度、群组活跃等级、群组 地理位置、是否被举报存在安全风险的群组安全属性、经服务器自动分析而确 定的群组是否存在安全风险的群组安全属性、群组标志位、加入群组的难易等 级、群组资料完整度、群组有效管理数、群组信息丰富度、群组关系稠密度、 群组性别分布数据、群组年龄分布数据和根据关键字和群组文本资料计算获得 的文本相关度。
S4.根据多个维度各自的排序优先级别和每个查找到的群组所对应每一维 度的排序值对查找到的群组进行排序。
多个维度中每个维度各自具有排序优先级别,且每个维度的排序优先级别 高低各不相同,排序优先级别高的维度在排序时优先被考虑。具体地,总体上 按照排序优先级别从高到低的顺序而根据相应的维度的排序值对查找到的群组 进行排序,当多个群组对应同一维度的排序值相同时,再按照该多个群组对应 的排序优先级别仅次于该同一维度的维度的排序值来对该多个群组进行局部排 序。
S5.获取带有排序结果的一个或多个群组标识。
S6.从所述排序结果中删除不符合安全规定的群组标识,所述不符合安全 规定的群组的安全等级低于所述安全等级标识表征的安全等级。
S1013.若获取到的群组标识为多个,则从中按照约定算法选择一个目标群 组标识。
进一步地,服务器可以将S6中的结果反馈至用户,由用户选择目标群组标 识,也可以按照约定算法由服务器自行选择。
S1014.若获取到的群组标识只有一个,则获取到的群组标识即为目标群组 标识。
S1015.按照预设算法根据所述用户标识、目标群组标识和所述待加密数据 的长度得到特征值;所述特征值算法为p=Mid1+Nid2+mod(L/1024),其中p表示特 征值,Mid1为用户标识对应的特征值第一分量,Nid2为目标群组标识对应的第二 分量,L为待加密数据长度,以kb为单位。
具体地,Mid1和Nid2可以在服务器一侧进行设置,特征值算法也可以根据实 际需要进行变动。
S1016.根据所述特征值在预设的加密算法集合中抽取加密因子,所述加密 因子包括第一混合种子、第二混合种子、第一加密算法和第二加密算法。
加密算法集合用于表征特征值以及与特征相对应的加密因子之间的对应关 系,所述特征值为正整数,每个特征值对应于唯一的一组加密因子。特征值越 高,对应的加密因子越复杂,相应的,使用加密因子对数据进行加密的安全性 也就越高。
S102.客户端根据所述加密因子对数据进行加密,并将加密结果反馈至服 务器。
具体地,客户端加密过程如图4所示,包括:
S1021.获取用户输入的字符,并按照预设的采集顺序将获取到的字符进行 排列,并按照预设的第一混合算法将获取到的字符与所述第一混合种子混合以 生成目标字符串。
具体地,所述采集顺序用户可以与服务器约定。比如正向采集、逆向采集 以及跳跃采集均可。
S1022.根据所述第一加密算法对所述目标字符串进行加密得到加密字符 串。
进一步地,若所述第一加密算法为公钥加密算法,则所述加密因子还包括 加密密钥,不同的第一加密算法所对应的公钥加密算法的保密级别和得到的加 密密钥长度不同。
S1023.按照预设的第二混合算法将所述加密字符串和所述第二混合种子进 行混合以得到混合加密字符串。
进一步地,所述第一混合种子和第二混合种子可以包括一个或多个字符串 的组合,所述字符串可以包括英文、数字、符号及其组合。
S1024.获取自身硬件信息,根据所述硬件信息和所述混合加密字符串生成 加密密钥。
具体地,硬件相关信息包括屏幕参数、尺寸、材质、内存容量、外存容量、 CPU性能、摄像头像素、终端型号、应用终端IMEI、应用终端MAC地址中的任 意一种或多种。
S1025.根据所述第二加密算法将所述混合加密字符串,结合所述加密密钥 运算得到加密密文,将所述加密密文发送至服务器。
进一步地,所述第一加密算法还可以是异或运算或者对称算法等任意一种 可逆运算方法;所述第二加密算法可以是SM3、MD5等杂凑算法进行运算得到的 算法。
实施例2:
一种加密系统,所述系统包括服务器和客户端,
所述服务器包括:
请求获取模块,用于服务器获取用户的数据加密请求,所述数据加密请求包括关键字、 安全等级标识、待加密数据的长度和用户标识;
目标群组标识获取模块,用于根据所述关键字和用户标识获取用户所在的一个或者多 个群组标识;所述群组标识包括所述群组标识中的群组所具备的安全等级;若获取到的群组 标识为多个,则从中按照约定算法选择一个目标群组标识;若获取到的群组标识只有一个, 则获取到的群组标识即为目标群组标识;所述目标群组的安全等级不低于所述安全等级标识 表征的安全等级;
特征值获取模块,用于按照预设算法根据所述用户标识、目标群组标识和所述待加密 数据的长度得到特征值;所述特征值算法为p=Mid1+Nid2+mod(L/1024),其中p表示特征 值,Mid1为用户标识对应的特征值第一分量,Nid2为目标群组标识对应的第二分量,L为 待加密数据长度,以kb为单位;
加密因子处理模块,用于根据所述特征值在预设的加密算法集合中抽取加密因子并将 所述加密因子传输至客户端,所述加密因子包括第一混合种子、第二混合种子、第一加密算 法和第二加密算法;
所述客户端包括:
字符输入模块,用于获取用户输入的字符;
目标字符串生成模块,用于按照预设的采集顺序将获取到的字符进行排列,并按照预 设的第一混合算法将获取到的字符与所述第一混合种子混合以生成目标字符串;
混合加密字符串得到模块,用于根据所述第一加密算法对所述目标字符串进行加密得 到加密字符串;按照预设的第二混合算法将所述加密字符串和所述第二混合种子进行混合以 得到混合加密字符串;
加密密钥生成模块,用于获取自身硬件信息,根据所述硬件信息和所述混合加密字符 串生成加密密钥;
加密密文处理模块,用于根据所述第二加密算法将所述混合加密字符串,结合所述加 密密钥运算得到加密密文,将所述加密密文发送至服务器。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之 权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。