数据加密方法和装置的制造方法

文档序号:8301391阅读:364来源:国知局
数据加密方法和装置的制造方法
【技术领域】
[0001]本发明涉及通信技术领域,尤其是涉及一种数据加密方法和装置。
【背景技术】
[0002]在传统的2G/3G模块应用中,模块数据一般都采用明文方式。但是,随着物联网的迅速发展,模块应用越来越广泛,数据安全要求也越来越重要,因此开始采用加密方式来保证数据安全。
[0003]现有技术中,对物联网通讯中的数据加密主要有两种方式。一种加密方式是对通道进行加密,提供安全通道,SSH能够提供安全的socket通道,基于SSH的数据可以进行透传,但这种加密方式不够灵活,不能针对特定的应用场合设计特定的安全加密方式。
[0004]另一种加密方式是对上层数据进行加密,可以灵活根据各种应用设计合适的安全加密算法,因此得到了广泛应用。目前主要应用3DES加密算法,3DES(或称为Triple DES)是三重数据加密算法(TDEA,Triple Data Encrypt1n Algorithm)块密码的通称。它相当于是对每个数据块应用三次DES加密算法。由于计算机运算能力的增强,原版DES密码的密钥长度变得容易被暴力破解;3DES即是设计用来提供一种相对简单的方法,即通过增加DES的密钥长度来避免类似的攻击。但现有的3DES加密方式,使用的密钥是唯一的、固定的,有被他人破解的风险,数据的安全性不高。

【发明内容】

[0005]本发明的主要目的在于提供一种数据加密方法和装置,旨在提高数据安全性。
[0006]为达以上目的,本发明提出一种数据加密方法,包括步骤:
[0007]预设至少两组密钥;
[0008]从预设的密钥中选取一组作为主密钥;
[0009]根据所述主密钥和3DES加密算法对数据进行加密。
[0010]优选地,所述从预设的密钥中选取一组作为主密钥包括:
[0011]生成一随机数,根据所述随机数和预设算法从预设的密钥中选取一组作为主密钥。
[0012]优选地,预设的每组密钥具有一索引号,所述预设算法为:N =〈(η &0χ07) % 5>,其中N为密钥索引号,η为随机数。
[0013]优选地,所述根据所述主密钥和3DES加密算法对数据进行加密包括:
[0014]根据所述主密钥、随机数和终端唯一标识码生成分散因子Kc ;
[0015]利用所述分散因子Kc和3DES加密算法对数据进行加密。
[0016]优选地,所述根据所述主密钥、随机数和终端唯一标识码生成分散因子Kc包括:
[0017]a、根据所述终端唯一标识码得到分散因子1,根据所述随机数得到分散因子2 ;
[0018]b、将所述分散因子I作为源数据,与所述主密钥进行3des-eCb计算,得到数据kl ;
[0019]C、将所述分散因子I进行异或运算后得到的结果作为源数据,与所述主密钥进行3des-ecb计算,得到数据k2 ;
[0020]d、利用所述分散因子2代替所述分散因子1,利用kl+k2代替所述主密钥,重复步骤b和C,获得Kl和K2,定义分散因子Kc = kl+k2o
[0021]本发明同时提出一种数据加密装置,包括设置模块、选取模块和加密模块,其中:
[0022]设置模块,用于预设至少两组密钥;
[0023]选取模块,用于从预设的密钥中选取一组作为主密钥;
[0024]加密模块,用于根据所述主密钥和3DES加密算法对数据进行加密。
[0025]优选地,所述选取模块用于:生成一随机数,根据所述随机数和预设算法从预设的密钥中选取一组作为主密钥。
[0026]优选地,所述设置模块用于:为预设的每组密钥编制一索引号;所述预设算法为:N = < (n&0x07) % 5>,其中N为密钥索引号,η为随机数。
[0027]优选地,所述加密模块用于:
[0028]根据所述主密钥、随机数和终端唯一标识码生成分散因子Kc ;
[0029]利用所述分散因子Kc和3DES加密算法对数据进行加密。
[0030]优选地,所述加密模块通过以下步骤生成所述分散因子Kc:
[0031]a、根据所述终端唯一标识码得到分散因子1,根据所述随机数得到分散因子2 ;
[0032]b、将所述分散因子I作为源数据,与所述主密钥进行3des-eCb计算,得到数据kl ;
[0033]C、将所述分散因子I进行异或运算后得到的结果作为源数据,与所述主密钥进行3des-ecb计算,得到数据k2 ;
[0034]d、利用所述分散因子2代替所述分散因子1,利用kl+k2代替所述主密钥,重复步骤b和C,获得Kl和K2,定义所述分散因子Kc = K1+K2。
[0035]本发明所提供的一种数据加密方法,通过预设多组密钥,每次加密时从多组密钥中选取一组作为主密钥,使得每次加密时所使用的密钥都不尽相同,因此不容易被他人破解,提高了数据的安全性。
[0036]进一步地,根据主密钥生成分散因子Kc (会话密钥),再利用分散因子Kc作为加密密钥对数据进行3DES加密,更不容易被他人破解,进一步提高了数据的安全性。
【附图说明】
[0037]图1是本发明的数据加密方法第一实施例的流程图;
[0038]图2是本发明的数据加密方法第二实施例的流程图;
[0039]图3是本发明实施例中生成分散因子Kc 一实例的流程图;
[0040]图4是本发明实施例中对数据解密的流程图;
[0041]图5是本发明的数据加密装置一实施例的模块示意图。
[0042]本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
【具体实施方式】
[0043]应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0044]本发明的数据加密方法,通过预设至少两组密钥,然后从预设的密钥中选取一组作为主密钥,最后根据主密钥和3DES加密算法对数据进行加密,包括直接利用主密钥对数据进行3DES加密,或者根据主密钥生成分散因子Kc,再利用分散因子Kc对数据进行3DES加密。以下通过具体实施例进行详细说明。
[0045]参见图1,提出本发明的数据加密方法第一实施例,所述数据加密方法包括以下步骤:
[0046]步骤SlO:预设多组密钥
[0047]本实施例中,终端和服务器中需要预埋多组密钥,或者至少两组密钥,原则上越多越好,本实施例优选预埋5组密钥。
[0048]步骤Sll:从多组密钥中选取一组作为主密钥
[0049]在对数据进行加密前,首先从预埋的多组密钥中选择一组作为加密的主密钥。在选择主密钥时,可以随机选择,也可以根据预设规则或者预设算法进行选择。
[0050]步骤S12:利用主密钥和3DES加密算法对数据进行加密
[0051]当选择了主密钥后,则利用该主密钥对数据进行3DES加密,具体加密方式与现有技术的3DES加密相同,在此不赘述。
[0052]根据3DES加密原则,在对数据进行加密前,必须保证待加密的数据长度为8的整数倍,如果不足8的倍数,则需要对该待加密数据进行填充,如在待加密数据后面补“20”,直至补充到8的整数倍。比如,假设待加密数据为一组16进制数据:{0x31,0x32, 0x33, Ox34,0x35,0x36,0x37,0x38,0x39},对其进行填充后变为:{0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20}。
[0053]本实施例的数据加密方法,由于预设了多组密钥,每次加密时所使用的密钥都不尽相同,因此不容易被他人破解,提高了数据的安全性。
[0054]参见图2,提出本发明的数据加密算法第二实施例,所述数据加密算法包括以下步骤:
[0055]步骤S20:预设多组密钥
[0056]本实施例中,每个终端都有一个唯一标识码,终端和服务器中需要预埋多组密钥,或者至少两组密钥,原则上越多越好,本实施例优选预埋5组密钥,例如设密钥组为:
[0057]{Oxdl, 0x21, OxfO, Oxlc, 0x2d, 0xb6, 0x30, 0xa2, 0x33, 0x81, 0x24, 0x9f, 0x7b, Oxle, 0x6f, 0x62,
[0058]0x11, 0xA2, OxBI, OxlC, 0x2D, 0xD6, 0x30, 0xA2, 0x33, 0x81, 0x24, 0x9F, 0x7B, OxlC,0x6A, 0x32,
[0059]0x21, 0x21, OxFO, OxlC, 0x2D, 0xB6, 0x30, 0xA2, 0x33, 0x81, 0x54, 0x9F, 0x7B, 0x11,0x6F, 0x66,
[0060]OxAI, 0x21, OxFO, OxlC, 0x2D, 0xB6, 0x30, 0xA2, 0x33, 0x81, 0x24, 0x9F, 0x7B, OxlE,0x6B, 0x42,
[0061]OxBI, 0x21, OxFO, 0x2C, 0x2D, 0xB6, 0x30, 0xA2, 0x33, 0x81, 0x24, 0x9F, 0x7B, OxlE,0x6A, 0xF3};
[0062]同时,本实施例还对生成的密钥进行编号,为每一密钥编制一索引号。例如,5组密钥分别对应索引号1-5。
[0063]步骤S21:生成一随机数
[0064]当需要对数据进行加密时,首先生成一随机数。
[0065]步骤S22:根据随机数和预设算法从多组密钥中选取一组作为主密钥
[0066]本实施例中,预设算法优选为表达式N=〈(η & 0x07) %5>,其中N为密钥索引号,η为随机数。假设随机数为25,则根据预设算法可得密钥索引号N =〈(25 & 0x07) % 5> =1,即选取索引号为I的密钥作为主密钥。
[0067]本领域技术人员可以理解,所述预设算法并不限于此,可以根据需要进行任意设定。例如,还可以将随机数限定为密钥索引号中的任意一个,当生成某一个随机数,则该随机数对应的密钥即选为主密钥,如生成的随机数为3,则选取索引号为3的密钥。
[0068]步骤S23:根据主密钥、随机数和终端唯一标识码生成分散因子Kc
[0069]步骤S24:利用分散因子Kc和3DES加密算法对数据进行加密
[0070]本实施例根据主密钥生成分散因子Kc (会话密钥),再利用分散因子Kc作为加密密钥对数据进行3DES加密,因此更不容易被他人破解,进一步提高了数据的安全性。
[0071]其中,如图3所示,对于步骤S23,可以优选通过以下方式生成分散因子Kc:
[0072]步骤S231:根据终端唯一标识码得到分散因子1,根据随机数得到分散因子2
[0073]其中,当终端唯一标识码(或称终端编号)和随机数不足8个字节时,需在后面填充“20”补足8个字节作为分散因子I和分散因子2。
[0074]假设终端唯一标识码为0x0001020304,则分散因子I为0x0001020304202020 ;随机数为 0x12345678
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1