加密算法的实现方法和系统转让专利

申请号 : CN201610682435.8

文献号 : CN106101150A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 朱希禄

申请人 : 北京锐安科技有限公司

摘要 :

本发明公开了一种加密算法的实现方法和系统,包括:第一终端据第一设定规则生成第一密钥对;将第一公钥发送给第二终端;第二终端据第一公钥生成第二密钥对;将第二公钥发送给第一终端;第一终端据第二设定规则用第一私钥对第一数据进行加密生成第一密文,据第二设定规则生成第一密文解密规则,据第一密文生成数据校验包,据第一私钥和数据校验包生成数据校验包密文,将第一密文和数据校验包密文发给第二终端;第二终端用第一公钥解密数据校验包密文得到数据校验包,校验第一密文是否有效;若有效,获取解密规则,据第二私钥和第一公钥生成本地密钥,使用本地密钥和解密规则解密第一密文。本发明的技术方案实现了增加信息传递的可靠性和安全性。

权利要求 :

1.一种加密算法的实现方法,其特征在于,包括:

第一终端根据第一设定规则生成第一密钥对,其中,所述第一密钥对由第一公钥和第一私钥组成;

所述第一终端将所述第一公钥发送给第二终端;

所述第二终端根据所述第一公钥生成第二密钥对,其中,所述第二密钥对由第二公钥和第二私钥组成;

所述第二终端将所述第二公钥发送给所述第一终端;

所述第一终端根据第二设定规则采用所述第一私钥对第一数据进行加密生成第一密文,根据所述第二设定规则生成所述第一密文的解密规则,根据所述第一密文生成数据校验包,再根据所述第一私钥和所述数据校验包生成数据校验包密文,并将所述第一密文和所述数据校验包密文发送给所述第二终端;

所述第二终端采用所述第一公钥解密所述数据校验包密文得到所述数据校验包,使用所述数据校验包校验所述第一密文是否有效;

若所述第一密文有效,则所述第二终端获取所述解密规则,根据所述第二私钥和所述第一公钥生成本地密钥,使用所述本地密钥和所述解密规则解密所述第一密文。

2.根据权利要求1所述的方法,其特征在于,所述第一设定规则包括:根据用户定义的第一算法产生的规则或根据程序随机挑选的第二算法产生的规则。

3.根据权利要求2所述的方法,其特征在于,所述用户定义的第一算法包括:根据用户选取的至少两种加密算法以及所述用户选取的至少两种加密算法的使用排列顺序所产生的算法。

4.根据权利要求3所述的方法,其特征在于,所述用户定义的第一算法包括:先使用MD5加密算法,再使用SHA加密算法,最后使用HMAC加密算法所产生的算法。

5.根据权利要求1所述的方法,其特征在于,所述第二设定规则包括:根据用户定义的第三算法产生的规则或根据程序随机挑选的第四算法产生的规则。

6.根据权利要求5所述的方法,其特征在于,所述用户定义的第三算法包括:根据用户选取的至少两种加密算法以及所述用户选取的至少两种加密算法的使用排列顺序所产生的算法。

7.根据权利要求6所述的方法,其特征在于,所述用户定义的第三算法包括:先使用RSA加密算法,再使用DH加密算法所产生的算法。

8.根据权利要求1所述的方法,其特征在于,还包括:所述第二终端采用所述第一公钥对第二数据进行加密生成第二密文;

所述第二终端将所述第二密文发送给所述第一终端;

所述第一终端采用所述第一私钥解密所述第二密文。

9.一种加密算法的实现系统,其特征在于,包括:

第一密钥对生成模块,配置在第一终端中,用于第一终端根据第一设定规则生成第一密钥对,其中,所述第一密钥对由第一公钥和第一私钥组成;

第一公钥发送模块,配置在所述第一终端中,用于所述第一终端将所述第一公钥发送给第二终端;

第二密钥对生成模块,配置在所述第二终端中,所述第二终端根据所述第一公钥生成第二密钥对,其中,所述第二密钥对由第二公钥和第二私钥组成;

第二公钥发送模块,配置在所述第二终端中,用于所述第二终端将所述第二公钥发送给所述第一终端;

第一密文生成模块,配置在所述第一终端中,用于所述第一终端根据第二设定规则采用所述第一私钥对第一数据进行加密生成第一密文,根据所述第二设定规则生成所述第一密文的解密规则,根据所述第一密文生成数据校验包,再根据所述第一私钥和所述数据校验包生成数据校验包密文,并将所述第一密文和所述数据校验包密文发送给所述第二终端;

数据校验包校验模块,配置在所述第二终端中,用于所述第二终端采用所述第一公钥解密所述数据校验包密文得到所述数据校验包,使用所述数据校验包校验所述第一密文是否有效;

第一密文解密模块,配置在所述第二终端中,用于若所述第一密文有效,则所述第二终端获取所述解密规则,根据所述第二私钥和所述第一公钥生成本地密钥,使用所述本地密钥和所述解密规则解密所述第一密文。

说明书 :

加密算法的实现方法和系统

技术领域

[0001] 本发明实施例涉及计算机数据处理技术,尤其涉及一种加密算法的实现方法和系统。

背景技术

[0002] 随着计算机网络技术的迅猛发展和手机银行类APP(Application,应用程序)的广泛应用,使得信息的安全传递显得尤为重要,为了保证信息在处理、存储以及传递过程中的可靠性和权威性,数据加密技术被广泛应用。
[0003] 目前,加密技术通常分为两大类“对称式”和“非对称式”。对称式加密技术就是加密和解密使用同一个密钥,这种加密技术在当今被广泛采用,例如DES加密标准就是一种典型的“对称式”加密算法。非对称式加密技术就是加密和解密使用不同的两个密钥,分别称为“公钥”和“私钥”,它们两个必需配对使用才能打开加密文件,RSA加密算法就是一种典型的非对称加密算法。
[0004] 由于各种解密数据的相关技术不断发展,现有的加密算法无论难易,在使用单一的或固定不变的现有加密算法进行数据加密时,加密后的数据都越来越容易被破解。

发明内容

[0005] 有鉴于此,本发明实施例提供一种加密算法的实现方法和系统,以克服各种现有加密技术越来越容易被破解的缺陷。
[0006] 第一方面,本发明实施例提供了一种加密算法的实现方法,包括:
[0007] 第一终端根据第一设定规则生成第一密钥对,其中,所述第一密钥对由第一公钥和第一私钥组成;
[0008] 所述第一终端将所述第一公钥发送给第二终端;
[0009] 所述第二终端根据所述第一公钥生成第二密钥对,其中,所述第二密钥对由第二公钥和第二私钥组成;
[0010] 所述第二终端将所述第二公钥发送给所述第一终端;
[0011] 所述第一终端根据第二设定规则采用所述第一私钥对第一数据进行加密生成第一密文,根据所述第二设定规则生成所述第一密文的解密规则,根据所述第一密文生成数据校验包,再根据所述第一私钥和所述数据校验包生成数据校验包密文,并将所述第一密文和所述数据校验包密文发送给所述第二终端;
[0012] 所述第二终端采用所述第一公钥解密所述数据校验包密文得到所述数据校验包,使用所述数据校验包校验所述第一密文是否有效;
[0013] 若所述第一密文有效,则所述第二终端获取所述解密规则,根据所述第二私钥和所述第一公钥生成本地密钥,使用所述本地密钥和所述解密规则解密所述第一密文。
[0014] 在上述方法中,优选的是,所述第一设定规则包括:
[0015] 根据用户定义的第一算法产生的规则或根据程序随机挑选的第二算法产生的规则。
[0016] 在上述方法中,优选的是,所述用户定义的第一算法包括:
[0017] 根据用户选取的至少两种加密算法以及所述用户选取的至少两种加密算法的使用排列顺序所产生的算法。
[0018] 在上述方法中,优选的是,所述用户定义的第一算法包括:
[0019] 先使用MD5加密算法,再使用SHA加密算法,最后使用HMAC加密算法所产生的算法。
[0020] 在上述方法中,优选的是,所述第二设定规则包括:
[0021] 根据用户定义的第三算法产生的规则或根据程序随机挑选的第四算法产生的规则。
[0022] 在上述方法中,优选的是,所述用户定义的第三算法包括:
[0023] 根据用户选取的至少两种加密算法以及所述用户选取的至少两种加密算法的使用排列顺序所产生的算法。
[0024] 在上述方法中,优选的是,所述用户定义的第三算法包括:
[0025] 先使用RSA加密算法,再使用DH加密算法所产生的算法。
[0026] 在上述方法中,优选的是,其特征在于,还包括:
[0027] 所述第二终端采用所述第一公钥对第二数据进行加密生成第二密文;
[0028] 所述第二终端将所述第二密文发送给所述第一终端;
[0029] 所述第一终端采用所述第一私钥解密所述第二密文。
[0030] 第二方面,本发明实施例提供了一种加密算法的实现系统,包括:
[0031] 第一密钥对生成模块,配置在第一终端中,用于第一终端根据第一设定规则生成第一密钥对,其中,所述第一密钥对由第一公钥和第一私钥组成;
[0032] 第一公钥发送模块,配置在所述第一终端中,用于所述第一终端将所述第一公钥发送给第二终端;
[0033] 第二密钥对生成模块,配置在所述第二终端中,所述第二终端根据所述第一公钥生成第二密钥对,其中,所述第二密钥对由第二公钥和第二私钥组成;
[0034] 第二公钥发送模块,配置在所述第二终端中,用于所述第二终端将所述第二公钥发送给所述第一终端;
[0035] 第一密文生成模块,配置在所述第一终端中,用于所述第一终端根据第二设定规则采用所述第一私钥对第一数据进行加密生成第一密文,根据所述第二设定规则生成所述第一密文的解密规则,根据所述第一密文生成数据校验包,再根据所述第一私钥和所述数据校验包生成数据校验包密文,并将所述第一密文和所述数据校验包密文发送给所述第二终端;
[0036] 数据校验包校验模块,配置在所述第二终端中,用于所述第二终端采用所述第一公钥解密所述数据校验包密文得到所述数据校验包,使用所述数据校验包校验所述第一密文是否有效;
[0037] 第一密文解密模块,配置在所述第二终端中,用于若所述第一密文有效,则所述第二终端获取所述解密规则,根据所述第二私钥和所述第一公钥生成本地密钥,使用所述本地密钥和所述解密规则解密所述第一密文。
[0038] 本发明实施例提供的一种加密算法的实现方法及系统,通过第一终端根据第一设定规则生成第一公钥和第一私钥,第二终端根据第一公钥生成第二公钥和第二私钥,第一终端根据第二设定规则采用第一私钥对第一数据进行加密生成第一密文,根据第二设定规则生成第一密文的解密规则,根据第一密文生成数据校验包,再根据第一私钥和数据校验包生成数据校验包密文,将第一密文和数据校验包密文发送给第二终端,第二终端采用第一公钥解密数据校验包密文得到数据校验包,校验第一密文是否有效,若有效,则第二终端根据第二私钥和第一公钥生成本地密钥,使用本地密钥解密密文,解决了在使用单一的或固定不变的现有加密算法进行数据加密时,加密后的数据都越来越容易被破解的技术问题,克服了各种现有加密技术越来越容易被破解的缺陷,实现了增加信息传递的可靠性和安全性。

附图说明

[0039] 图1是本发明第一实施例中的一种加密算法的实现方法的流程示意图;
[0040] 图2是本发明第二实施例中的一种加密算法的实现方法的流程示意图;
[0041] 图3是本发明第三实施例中的一种加密算法的实现方法的流程示意图;
[0042] 图4是本发明第四实施例中的一种加密算法的实现方法的流程示意图;
[0043] 图5是本发明第五实施例中的一种加密算法的实现系统的结构图。

具体实施方式

[0044] 下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
[0045] 第一实施例
[0046] 图1为本发明第一实施例提供的一种加密算法的实现方法的流程示意图,该方法适用于信息需要安全传递的场景,可以由加密算法的实现系统执行,其中该系统可由软件和/或硬件实现,并一般可集成于终端中。如图1所示,该方法包括:
[0047] 步骤110、第一终端根据第一设定规则生成第一密钥对,其中,所述第一密钥对由第一公钥和第一私钥组成;
[0048] 在本实施例中,第一终端具体是指能够发送、接收数据,并能够运行密钥生成、加密以及解密等相关软件(例如:密钥生成器等)的设备。典型的可以是:电脑、智能手机等终端。
[0049] 在本实施例中,第一设定规则具体是指用户选取的密钥对生成规则。其中,密钥对的生成规则具体可以是用户自定义的或程序随机挑选的等,本实施例对此不进行限制。其中,用户选取密钥对生成规则的方式具体可以是用户通过安装在第一终端中的密钥生成器选取生成规则等。其中,密钥生成器具体可以是具有随机挑选密钥生成规则和/或根据用户自定义的规则生成密钥生成规则的功能的软件等软件。
[0050] 在本实施例中,密钥对的生成方式具体是指第一终端使用密钥生成软件、依据第一设定规则以及密钥种子生成第一密钥对。其中,密钥生成软件具体是指可以输入或通过该软件选择密钥的生成规则,最终生成密钥对的软件。其中,密钥种子具体可以是密钥生成软件中存储的、也可以是密钥生成软件生成的、还可以是密钥生成软件通过输入操作获取的,本实施例对此不进行限制。本领域技术人员可以理解的是,密钥一般是由密钥生成软件依据密钥生成规则,对密钥种子进行相应的数据处理得到的。
[0051] 其中,密钥对是由第一私钥和第一公钥组成的。本领域技术人员可以理解的是,非对称式加密技术的加密和解密过程需要使用不同的两个密钥,分别称为“公钥”和“私钥”,它们两个必需配对使用才能对数据进行加密和解密工作。
[0052] 步骤120、所述第一终端将所述第一公钥发送给第二终端;
[0053] 在本实施例中,第二终端具体是指能够发送、接收数据,并能够运行密钥生成、加密以及解密等相关软件(例如:密钥生成器等)的设备。典型的可以是:电脑、智能手机等终端。
[0054] 在本实施例中,第一终端将所述第一公钥发送给第二终端的方式具体可以是通过无线网络(例如:WIFI网络以及移动4G网络等)、有线网络以及蓝牙等,本实施例对此不进行限制。
[0055] 本领域技术人员可以理解的是,非对称加密技术中公钥是对外公开的,所以公钥的传输途径是不需要采取保密措施的。
[0056] 步骤130、所述第二终端根据所述第一公钥生成第二密钥对,其中,所述第二密钥对由第二公钥和第二私钥组成;
[0057] 在本实施例中,第二终端根据所述第一公钥生成第二密钥对具体是指第二终端使用与第一终端使用的密钥生成软件所匹配的密钥生成软件,依据第一公钥以及第二密钥对生成规则生成第二密钥对。其中,与第一终端使用的密钥生成软件所匹配的密钥生成软件具体是指可生成、输入和/或已存储密钥生成规则,并且使用该密钥生成规则生成的第二密钥对以及其他所需密钥,可以与第一密钥对配合使用,以进行对数据的加密和解密工作的密钥生成软件。其中,第二密钥对生成规则具体可以是密钥生成软件中存储的生成规则,也可以是密钥生成软件生成的生成规则,本实施例对此不进行限制。
[0058] 步骤140、所述第二终端将所述第二公钥发送给所述第一终端;
[0059] 在本实施例中,第二终端将所述第二公钥发送给第一终端的方式具体可以是通过无线网络(例如:WIFI网络以及移动4G网络等)、有线网络以及蓝牙等,本实施例对此不进行限制。
[0060] 步骤150、所述第一终端根据第二设定规则采用所述第一私钥对第一数据进行加密生成第一密文,根据所述第二设定规则生成所述第一密文的解密规则,根据所述第一密文生成数据校验包,再根据所述第一私钥和所述数据校验包生成数据校验包密文,并将所述第一密文和所述数据校验包密文发送给所述第二终端;
[0061] 在本实施例中,第二设定规则具体是指用户选取的第一密文的生成规则。其中,第一密文生成规则具体可以是用户自定义的或程序随机挑选的等,本实施例对此不进行限制。其中,用户选取第一密文生成规则的方式具体可以是用户通过安装在第一终端中的加密软件选取生成规则等。
[0062] 在本实施例中,第一密文的生成方式具体是指第一终端使用具有数据加密功能的软件,根据第二设定规则和第一私钥,对第一数据进行加密,从而得到第一密文。其中,具有数据加密功能的软件具体是指具有随机挑选密文生成规则和/或根据用户自定义的规则生成密文生成规则,以及根据密文生成规则生成密文解密规则等功能的软件。进一步地,所述具有数据加密功能的软件与所述第一终端使用的密钥生成软件可以是同一个软件,本领域技术人员可以理解的是,在现有技术中,密钥生成功能以及数据加密功能可以集成在一个软件中。
[0063] 在本实施例中,第一密文的解密规则的生成方式具体是指所述具有数据加密功能的软件根据第二设定规则生成第一密文解密规则。本领域技术人员可以理解的是,在加密算法已知的情况下,可以按照一定规则计算出解密算法。
[0064] 在本实施例中,数据校验包的生成方式具体是指第一终端使用具有数据加密功能的软件,依据生成规则和第一密文生成数据校验包。其中,生成规则具体是指第一终端使用的具有数据加密功能的软件存储的,用于依据加密后的数据生成该加密数据的数据校验包的规则,典型的可以是:散列函数算法等规则。
[0065] 在本实施例中,数据校验包密文的生成方式具体是指第一终端使用具有数据加密功能的软件,依据第一私钥、数据校验包和数据校验包密文生成规则生成数据校验包密文。其中,数据校验包密文生成规则具体可以是用户自定义的或第一终端使用的具有数据加密功能的软件随机挑选的等,本实施例对此不进行限制。
[0066] 在本实施例中,第一终端将第一密文和数据校验包密文发送给第二终端的方式具体可以是通过无线网络(例如:WIFI网络以及移动4G网络等)、有线网络以及蓝牙等,本实施例对此不进行限制。
[0067] 步骤160、所述第二终端采用所述第一公钥解密所述数据校验包密文得到所述数据校验包,使用所述数据校验包校验所述第一密文是否有效;
[0068] 在本实施例中,数据校验包密文的解密方式具体是指第二终端使用解密软件,根据第一公钥和数据校验包密文的解密规则解密数据校验包密文。其中,解密软件具体是指可以输入或读取解密规则并且可以输入解密密钥的解密软件。其中,数据校验包密文解密规则的获取方式具体可以是读取保密专员输入的解密规则或读取存储介质中存储的解密规则,该存储介质由保密专员取得并将其连接至第二终端等获取方式,本实施例对此不进行限制。
[0069] 在本实施例中,校验第一密文是否有效具体是指依据数据校验包的内容,校验第一密文的完整性和正确性。其中,数据校验包的内容具体可以包括:密文的长度、密文的数字字符个数以及密文的英文字符个数等,本实施例对此不进行限制。
[0070] 步骤170、若所述第一密文有效,则所述第二终端获取所述解密规则,根据所述第二私钥和所述第一公钥生成本地密钥,使用所述本地密钥和所述解密规则解密所述第一密文。
[0071] 在本实施例中,解密规则的获取方式具体可以是读取保密专员输入的解密规则或读取存储介质中存储的解密规则,该存储介质由保密专员取得并将其连接至第二终端等获取方式,本实施例对此不进行限制。
[0072] 在本实施中,本地密钥的生成方式具体是指第二终端使用所述与第一终端使用的密钥生成软件所匹配的密钥生成软件,根据第二私钥、第一公钥以及本地密钥的生成规则生成本地密钥。其中,本地密钥的生成规则具体可以是已存储在与第一终端使用的密钥生成软件所匹配的密钥生成软件中的,也可以是与第一终端使用的密钥生成软件所匹配的密钥生成软件生成的,本实施例对此不进行限制。
[0073] 在本实施例中,第一密文的解密方式具体是指第二终端使用解密软件,根据解密规则和本地密钥解密第一密文。其中,解密软件具体是指可以输入和/或读取解密规则,对加密数据进行解密的软件。进一步地,所述解密软件和所述与第一终端使用的密钥生成软件所匹配的密钥生成软件可以是同一个软件,本领域技术人员可以理解的是,在现有技术中,密钥生成功能以及数据解密功能可以集成在一个软件中。
[0074] 本发明实施例提供的一种加密算法的实现方法,通过第一终端根据第一设定规则生成第一公钥和第一私钥,第二终端根据第一公钥生成第二公钥和第二私钥,第一终端根据第二设定规则采用第一私钥对第一数据进行加密生成第一密文,根据第二设定规则生成第一密文的解密规则,根据第一密文生成数据校验包,再根据第一私钥和数据校验包生成数据校验包密文,将第一密文和数据校验包密文发送给第二终端,第二终端采用第一公钥解密数据校验包密文得到数据校验包,校验第一密文是否有效,若有效,则第二终端根据第二私钥和第一公钥生成本地密钥,使用本地密钥解密密文,解决了在使用单一的或固定不变的现有加密算法进行数据加密时,加密后的数据都越来越容易被破解的技术问题,克服了各种现有加密技术越来越容易被破解的缺陷,实现了增加信息传递的可靠性和安全性。
[0075] 第二实施例
[0076] 图2为本发明第二实施例提供的一种加密算法的实现方法的流程示意图。本实施例以上述实施例为基础进行优化,在本实施例中,将所述第一设定规则优化为:根据用户定义的第一算法产生的规则或根据程序随机挑选的第二算法产生的规则。
[0077] 相应的,本实施例的方法具体包括:
[0078] 步骤210、第一终端根据用户定义的第一算法产生的规则或根据程序随机挑选的第二算法产生的规则生成第一密钥对,其中,所述第一密钥对由第一公钥和第一私钥组成;
[0079] 在本实施例中,用户定义的第一算法具体是指用户选取的至少两种加密算法以及所述用户选取的至少两种加密算法的使用排列顺序所产生的算法。典型的加密算法可以是:MD5、SHA以及HMAC等加密算法。
[0080] 其中,用户选取的至少两种加密算法的使用排列顺序具体是指在密钥对的生成过程中,用户选取的所有加密算法对密钥种子的加密顺序。其中,用户定义第一算法的方式具体可以是用户通过第一终端使用的密钥生成软件定义第一算法,也可以是用户通过与第一终端使用的密钥生成软件匹配的其他软件定义第一算法等,本实施例对此不进行限制。其中,与第一终端使用的密钥生成软件匹配的其他软件具体是指具有允许用户定义密钥生成算法并根据该算法生成相应的密钥生成规则,以及可以与第一终端使用的密钥生成软件通讯并传输所述密钥生成规则等功能的软件。
[0081] 在本实施例中,用户定义的第一算法产生的规则具体是指用户定义的第一算法所确定的第一密钥对生成规则。
[0082] 在一个具体的例子中,用户选取了三种加密算法,分别是MD5、SHA和HMAC,用户选取的加密算法的使用排列顺序是先使用MD5,再使用SHA,最后使用HMAC,相应的,第一终端根据用户选取的规则生成第一密钥对的过程为:第一终端先使用MD5加密算法对密钥种子进行加密得到数据A,然后使用SHA加密算法对数据A进行加密得到数据B,最后使用加密算法HMAC对数据B进行加密得到第一密钥对。
[0083] 在本实施例中,程序随机挑选的第二算法具体是指程序随机挑选的至少两种加密算法以及所述程序随机挑选的至少两种加密算法的使用排列顺序所产生的算法。其中,所述程序具体可以是第一终端使用的密钥生成软件,也可以是与与第一终端使用的密钥生成软件匹配的其他软件,本实施例对此不进行限制。其中,与第一终端使用的密钥生成软件匹配的其他软件具体是指能够随机挑选加密算法并根据该算法生成相应的密钥生成规则,以及可以与第一终端使用的密钥生成软件通讯并传输所述密钥生成规则等功能的软件。
[0084] 在本实施例中,程序随机挑选的第二算法产生的规则具体是指程序随机挑选的第二算法所确定的第一密钥对生成规则。
[0085] 步骤220、所述第一终端将所述第一公钥发送给第二终端;
[0086] 步骤230、所述第二终端根据所述第一公钥生成第二密钥对,其中,所述第二密钥对由第二公钥和第二私钥组成;
[0087] 步骤240、所述第二终端将所述第二公钥发送给所述第一终端;
[0088] 步骤250、所述第一终端根据第二设定规则采用所述第一私钥对第一数据进行加密生成第一密文,根据所述第二设定规则生成所述第一密文的解密规则,根据所述第一密文生成数据校验包,再根据所述第一私钥和所述数据校验包生成数据校验包密文,并将所述第一密文和所述数据校验包密文发送给所述第二终端;
[0089] 步骤260、所述第二终端采用所述第一公钥解密所述数据校验包密文得到所述数据校验包,使用所述数据校验包校验所述第一密文是否有效;
[0090] 步骤270、若所述第一密文有效,则所述第二终端获取所述解密规则,根据所述第二私钥和所述第一公钥生成本地密钥,使用所述本地密钥和所述解密规则解密所述第一密文。
[0091] 本发明实施例提供的一种加密算法的实现方法,通过第一终端根据用户定义的第一算法产生的规则或根据程序随机挑选的第二算法产生的规则生成第一公钥和第一私钥,第二终端根据第一公钥生成第二公钥和第二私钥,第一终端根据第二设定规则采用第一私钥对第一数据进行加密生成第一密文,根据第二设定规则生成第一密文的解密规则,根据第一密文生成数据校验包,再根据第一私钥和数据校验包生成数据校验包密文,将第一密文和数据校验包密文发送给第二终端,第二终端采用第一公钥解密数据校验包密文得到数据校验包,校验第一密文是否有效,若有效,则第二终端根据第二私钥和第一公钥生成本地密钥,使用本地密钥解密密文,解决了在使用单一的或固定不变的现有加密算法进行数据加密时,加密后的数据都越来越容易被破解的技术问题,克服了各种现有加密技术越来越容易被破解的缺陷,实现了密钥生成规则的多样性和不易获知性,以及增加信息传递的可靠性和安全性。
[0092] 在上述实施例的基础上,优选是所述用户定义的第一算法包括:根据用户选取的至少两种加密算法以及所述用户选取的至少两种加密算法的使用排列顺序所产生的算法。
[0093] 这样设置的好处是:使得密钥生成规则具有多样性,同时使得密钥生成规则不易获知。
[0094] 第三实施例
[0095] 图3为本发明第三实施例提供的一种加密算法的实现方法的流程示意图。本实施例以上述实施例为基础进行优化,在本实施例中,将所述第二设定规则优化为:根据用户定义的第三算法产生的规则或根据程序随机挑选的第四算法产生的规则。
[0096] 相应的,本实施例的方法具体包括:
[0097] 步骤310、第一终端根据第一设定规则生成第一密钥对,其中,所述第一密钥对由第一公钥和第一私钥组成;
[0098] 步骤320、所述第一终端将所述第一公钥发送给第二终端;
[0099] 步骤330、所述第二终端根据所述第一公钥生成第二密钥对,其中,所述第二密钥对由第二公钥和第二私钥组成;
[0100] 步骤340、所述第二终端将所述第二公钥发送给所述第一终端;
[0101] 步骤350、所述第一终端根据用户定义的第三算法产生的规则或根据程序随机挑选的第四算法产生的规则采用所述第一私钥对第一数据进行加密生成第一密文,根据用户定义的第三算法产生的规则或根据程序随机挑选的第四算法产生的规则生成所述第一密文的解密规则,根据所述第一密文生成数据校验包,再根据所述第一私钥和所述数据校验包生成数据校验包密文,并将所述第一密文和所述数据校验包密文发送给所述第二终端;
[0102] 在本实施例中,用户定义的第三算法具体是指用户选取的至少两种加密算法以及所述用户选取的至少两种加密算法的使用排列顺序所产生的算法。典型的加密算法可以是:RSA以及DH等加密算法。
[0103] 其中,用户选取的至少两种加密算法的使用排列顺序具体是指在第一密文的生成过程中,用户选取的所有加密算法对第一数据的加密顺序。其中,用户定义第三算法的方式具体可以是用户通过第一终端使用的具有数据加密功能的软件定义第三算法,也可以是用户通过与第一终端使用的具有数据加密功能的软件匹配的其他软件定义第三算法等,本实施例对此不进行限制。其中,与第一终端使用的具有数据加密功能的软件匹配的其他软件具体是值具有允许让用户定义加密算法并根据该加密算法生成相应的加密规则,以及可以与第一终端使用的具有数据加密功能的软件通讯并传输所述加密规则等功能的软件。
[0104] 在本实施例中,用户定义的第三算法产生的规则具体是指用户定义的第三算法所确定的第一数据的加密规则。
[0105] 在一个具体的例子中,用户选取了两种加密算法,分别是RSA和DH,用户选取的加密算法的使用排列顺序是先使用RSA,再使用DH,相应的,第一终端根据用户选取的规则对第一数据的加密过程为:第一终端先使用RSA加密算法对第一数据进行加密得到数据A,然后使用DH加密算法对数据A进行加密得到第一密文。
[0106] 在本实施例中,程序随机挑选的第四算法具体是指程序随机挑选的至少两种加密算法以及所述程序随机挑选的至少两种加密算法的使用排列顺序所产生的算法。其中,所述程序具体可以是第一终端使用的有数据加密功能的软件,也可以是与第一终端使用的有数据加密功能的软件匹配的其他软件,本实施例对此不进行限制。其中,与第一终端使用的具有数据加密功能的软件匹配的其他软件具体是指能够随机挑选加密算法并根据该加密算法生成相应的加密规则,以及可以与第一终端使用的具有数据加密功能的软件通讯并传输所述加密规则等功能的软件。
[0107] 在本实施例中,程序随机挑选的第四算法产生的规则具体是指程序随机挑选的第四算法所确定的第一数据的加密规则。
[0108] 步骤360、所述第二终端采用所述第一公钥解密所述数据校验包密文得到所述数据校验包,使用所述数据校验包校验所述第一密文是否有效;
[0109] 步骤370、若所述第一密文有效,则所述第二终端获取所述解密规则,根据所述第二私钥和所述第一公钥生成本地密钥,使用所述本地密钥和所述解密规则解密所述第一密文。
[0110] 本发明实施例提供的一种加密算法的实现方法,通过第一终端根据第一设定规则生成第一公钥和第一私钥,第二终端根据第一公钥生成第二公钥和第二私钥,第一终端根据用户定义的第三算法产生的规则或根据程序随机挑选的第四算法产生的规则采用第一私钥对第一数据进行加密生成第一密文,根据第二设定规则生成第一密文的解密规则,根据第一密文生成数据校验包,再根据第一私钥和数据校验包生成数据校验包密文,将第一密文和数据校验包密文发送给第二终端,第二终端采用第一公钥解密数据校验包密文得到数据校验包,校验第一密文是否有效,若有效,则第二终端根据第二私钥和第一公钥生成本地密钥,使用本地密钥解密密文,解决了在使用单一的或固定不变的现有加密算法进行数据加密时,加密后的数据都越来越容易被破解的技术问题,克服了各种现有加密技术越来越容易被破解的缺陷,实现了数据加密规则的多样性和不易获知性、以及增加信息传递的可靠性和安全性。
[0111] 在上述实施例的基础上,优选是所述用户定义的第三算法包括:根据用户选取的至少两种加密算法以及所述用户选取的至少两种加密算法的使用排列顺序所产生的算法。
[0112] 这样设置的好处是:使得数据加密规则具有多样性,同时使得数据加密规则不易获知。
[0113] 第四实施例
[0114] 图4为本发明第四实施例提供的一种加密算法的实现方法的流程示意图。本实施例以上述实施例为基础进行优化,在本实施例中,还可以包括:所述第二终端采用所述第一公钥对第二数据进行加密生成第二密文;所述第二终端将所述第二密文发送给所述第一终端;所述第一终端采用所述第一私钥解密所述第二密文。
[0115] 相应的,本实施例的方法具体包括:
[0116] 步骤410、第一终端根据第一设定规则生成第一密钥对,其中,所述第一密钥对由第一公钥和第一私钥组成;
[0117] 步骤420、所述第一终端将所述第一公钥发送给第二终端;
[0118] 步骤430、所述第二终端根据所述第一公钥生成第二密钥对,其中,所述第二密钥对由第二公钥和第二私钥组成;
[0119] 步骤440、所述第二终端将所述第二公钥发送给所述第一终端;
[0120] 步骤450、所述第一终端根据第二设定规则采用所述第一私钥对第一数据进行加密生成第一密文,根据所述第二设定规则生成所述第一密文的解密规则,根据所述第一密文生成数据校验包,再根据所述第一私钥和所述数据校验包生成数据校验包密文,并将所述第一密文和所述数据校验包密文发送给所述第二终端;
[0121] 步骤460、所述第二终端采用所述第一公钥解密所述数据校验包密文得到所述数据校验包,使用所述数据校验包校验所述第一密文是否有效;
[0122] 步骤470、若所述第一密文有效,则所述第二终端获取所述解密规则,根据所述第二私钥和所述第一公钥生成本地密钥,使用所述本地密钥和所述解密规则解密所述第一密文;
[0123] 步骤480、所述第二终端采用所述第一公钥对第二数据进行加密生成第二密文;
[0124] 在本实施例中,第二密文的生成方式具体是指第二终端使用加密软件,根据第一公钥和加密规则对第二数据进行加密。其中,加密规则具体可以是用户自定义的或第二终端使用的加密软件随机挑选的等,本实施例对此不进行限制。其中,第二终端使用加密软件、第二终端使用的解密软件以及第二终端使用的密钥生成软件可以是同一个软件,本领域技术人员可以理解的是,密钥生成功能、数据加密功能以及数据解密功能可以集成在一个软件中。
[0125] 步骤490、所述第二终端将所述第二密文发送给所述第一终端;
[0126] 在本实施例中,第二终端将第二密文发送给第一终端的方式具体可以是通过无线网络(例如:WIFI网络以及移动4G网络等)、有线网络以及蓝牙等,本实施例对此不进行限制。
[0127] 步骤4100、所述第一终端采用所述第一私钥解密所述第二密文。
[0128] 在本实施例中,第二密文的解密方式具体是指第一终端使用解密软件,根据解密规则和第一私钥解密第二密文。
[0129] 其中,解密软件具体是指可以输入或读取解密规则并且可以输入解密密钥的解密软件,第一终端使用的解密软件、第一终端使用具有数据加密功能的软件以及第一终端使用的密钥生成软件可以是同一个软件。其中,解密规则的获取方式具体可以是读取保密专员输入的解密规则或读取存储介质中存储的解密规则,该存储介质由保密专员取得并将其连接至第二终端等获取方式,本实施例对此不进行限制。
[0130] 本发明实施例提供的一种加密算法的实现方法,通过第一终端根据第一设定规则生成第一公钥和第一私钥,第二终端根据第一公钥生成第二公钥和第二私钥,第一终端根据第二设定规则采用第一私钥对第一数据进行加密生成第一密文,根据第二设定规则生成第一密文的解密规则,根据第一密文生成数据校验包,再根据第一私钥和数据校验包生成数据校验包密文,将第一密文和数据校验包密文发送给第二终端,第二终端采用第一公钥解密数据校验包密文得到数据校验包,校验第一密文是否有效,若有效,则第二终端根据第二私钥和第一公钥生成本地密钥,使用本地密钥解密密文,然后第二终端采用第一公钥对第二数据加密生成第二密文,第二终端将第二密文发送给第一终端,第一终端采用第一私钥解密第二密文,解决了在使用单一的或固定不变的现有加密算法进行数据加密时,加密后的数据都越来越容易被破解的技术问题,克服了各种现有加密技术越来越容易被破解的缺陷,实现了第二终端对数据加密简单直接的同时增加了信息传递的可靠性和安全性。
[0131] 第五实施例
[0132] 图5为本发明第五实施例提供的一种加密算法的实现系统的结构图。如图5所示,所述系统包括:第一密钥对生成模块101、第一公钥发送模块102、第二密钥对生成模块103、第二公钥发送模块104、第一密文生成模块105、数据校验包校验模块106和第一密文解密模块107。
[0133] 其中:
[0134] 第一密钥对生成模块101,配置在第一终端中,用于第一终端根据第一设定规则生成第一密钥对,其中,所述第一密钥对由第一公钥和第一私钥组成;
[0135] 第一公钥发送模块102,配置在所述第一终端中,用于所述第一终端将所述第一公钥发送给第二终端;
[0136] 第二密钥对生成模块103,配置在所述第二终端中,所述第二终端根据所述第一公钥生成第二密钥对,其中,所述第二密钥对由第二公钥和第二私钥组成;
[0137] 第二公钥发送模块104,配置在所述第二终端中,用于所述第二终端将所述第二公钥发送给所述第一终端;
[0138] 第一密文生成模块105,配置在所述第一终端中,用于所述第一终端根据第二设定规则采用所述第一私钥对第一数据进行加密生成第一密文,根据所述第二设定规则生成所述第一密文的解密规则,根据所述第一密文生成数据校验包,再根据所述第一私钥和所述数据校验包生成数据校验包密文,并将所述第一密文和所述数据校验包密文发送给所述第二终端;
[0139] 数据校验包校验模块106,配置在所述第二终端中,用于所述第二终端采用所述第一公钥解密所述数据校验包密文得到所述数据校验包,使用所述数据校验包校验所述第一密文是否有效;
[0140] 第一密文解密模块107,配置在所述第二终端中,用于若所述第一密文有效,则所述第二终端获取所述解密规则,根据所述第二私钥和所述第一公钥生成本地密钥,使用所述本地密钥和所述解密规则解密所述第一密文。
[0141] 本发明实施例提供的一种加密算法的实现系统,通过第一终端根据第一设定规则生成第一公钥和第一私钥,第二终端根据第一公钥生成第二公钥和第二私钥,第一终端根据第二设定规则采用第一私钥对第一数据进行加密生成第一密文,根据第二设定规则生成第一密文的解密规则,根据第一密文生成数据校验包,再根据第一私钥和数据校验包生成数据校验包密文,将第一密文和数据校验包密文发送给第二终端,第二终端采用第一公钥解密数据校验包密文得到数据校验包,校验第一密文是否有效,若有效,则第二终端根据第二私钥和第一公钥生成本地密钥,使用本地密钥解密密文,解决了在使用单一的或固定不变的现有加密算法进行数据加密时,加密后的数据都越来越容易被破解的技术问题,克服了各种现有加密技术越来越容易被破解的缺陷,实现了增加信息传递的可靠性和安全性。
[0142] 上述实施例中提供的加密算法的实现系统可执行本发明任意实施例所提供的加密算法的实现方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的加密算法的实现方法。
[0143] 注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。