一种加密方法、解密方法和相关装置 |
|||||||
申请号 | CN201110331957.0 | 申请日 | 2011-10-27 | 公开(公告)号 | CN103096302B | 公开(公告)日 | 2016-03-02 |
申请人 | 华为技术有限公司; | 发明人 | 张丽佳; 陈璟; | ||||
摘要 | 本 发明 实施例 公开了一种加密方法、解密方法与相关装置,本发明能够保证小数据的安全传输。其中,加密方法包括:生成密钥流,所述密钥流用于对初始层3消息中部分待加密数据进行加密,所述部分待加密数据包括小数据;将所述密钥流与所述初始层3消息进行异或运算,生成部分数据被加密后的初始层3消息,发送所述部分数据被加密后的初始层3消息,所述初始层3消息中包括增加的加密指示,所述加密指示用于标识所述初始层3消息中部分待加密数据被加密,以使得网络侧根据所述增加的加密指示生成密钥流,再根据生成的密钥流对部分数据被加密后的初始层3消息进行解密。 | ||||||
权利要求 | 1.一种加密的方法,其特征在于,包括: |
||||||
说明书全文 | 一种加密方法、解密方法和相关装置技术领域[0001] 本发明涉及通信技术领域,尤其涉及一种加密方法、解密方法和相关装置。 背景技术[0002] 机器对机器(英文全称为Machine to Machine,简称:M2M)技术是无线通信和信息技术的整合,是指无需人工干预,在机器与机器之间直接进行的通信技术。 [0003] M2M通信也称机器类通信(英文全称为Machine Type Communication,简称:MTC),M2M通信系统与传统的人对人(英文全称为Human to Human,简称:H2H)通信系统有很大不同,M2M通信系统由于其设备数量巨大、低移动性、通信流量小等特点,具有机器类通信的很多特性。在目前的第三代合作伙伴计划(英文全称为The 3rd Generation Partnership Project,简称:3GPP)标准中将M2M通信系统称为MTC通信系统,并在小数据传输情况下开始利用短消息业务(英文全称为Short Message Service,简称:SMS)或者网络协议(英文全称为Internet Protocol,简称:IP)数据包实现机器与机器之间的通信。 [0004] 当SMS小数据或者IP数据包小数据封装在TAU request或者新的初始层3消息中时,如何对初始层3消息中的小数据部分以及其他需要保护的参数提供机密性保护。 发明内容[0005] 本发明实施例提供了一种加密方法、解密方法和相关装置,用于对初始层3消息中部分待加密的数据提供机密性保护。 [0006] 一方面,本发明实施例提供了一种加密方法,包括: [0007] 生成密钥流,所述密钥流用于对初始层3消息中部分待加密数据进行加密,所述部分待加密数据包括小数据;将所述密钥流与所述初始层3消息进行异或运算,生成部分数据被加密后的初始层3消息; [0008] 发送所述部分数据被加密后的初始层3消息,所述初始层3消息中包括增加的加密指示,所述加密指示用于标识所述初始层3消息中部分待加密数据被加密,以使得网络侧根据所述增加的加密指示生成密钥流,再根据生成的密钥流对部分数据被加密后的初始层3消息进行解密。 [0009] 一方面,本发明实施例提供了一种解密的方法,包括: [0010] 接收部分数据被加密后的初始层3消息,所述所述初始层3消息中包括增加的加密指示,所述加密指示用于标识所述初始层3消息中部分待加密数据被加密; [0011] 根据所述初始层3消息中的所述增加的加密指示,生成密钥流,所述密钥流用于对所述初始层3消息中部分被加密数据进行解密,所述部分被加密数据包括小数据; [0012] 将所述密钥流与所述初始层3消息进行异或运算,生成部分数据被解密后的初始层3消息。 [0013] 另一方面,本发明实施例提供了一种加密装置,包括: [0014] 生成单元,用于生成密钥流,所述密钥流用于对初始层3消息中部分待加密数据进行加密,所述部分待加密数据包括小数据; [0015] 处理单元,用于将所述生成单元生成的密钥流与所述初始层3消息进行异或运算,生成部分数据被加密后的初始层3消息; [0016] 传输单元,用于发送所述处理单元处理后的部分数据被加密后的初始层3消息,所述初始层3消息中包括增加的加密指示,所述加密指示用于标识所述初始层3消息中部分待加密数据被加密。 [0017] 另一方面,本发明实施例提供了一种解密装置,包括: [0018] 传输单元,用于接收部分数据被加密后的初始层3消息,所述初始层3消息中包括增加的加密指示,所述加密指示用于标识所述初始层3消息中部分待加密数据被加密; [0019] 生成单元,用于根据所述初始层3消息中的所述增加的加密指示,生成密钥流,所述密钥流用于对所述初始层3消息中部分被加密数据进行解密,所述部分被加密数据包括小数据; [0020] 处理单元,将所述密钥流与所述初始层3消息进行异或运算,生成部分被解密后的初始层3消息。 [0021] 从以上技术方案可以看出,本发明实施例具有以下优点: [0022] 本发明实例通过生成密钥流,所述密钥流用于对初始层3消息中部分待加密数据进行加密,所述部分待加密数据包括小数据,将所述密钥流与所述初始层3消息进行异或运算,生成部分数据被加密后的初始层3消息,发送所述部分数据被加密后的初始层3消息,所述初始层3消息中包括增加的加密指示,所述加密指示用于标识所述初始层3消息中部分待加密数据被加密。从而能够对初始层3消息进行部分数据加密,避免现有技术中不能对初始层3消息进行机密性保护的问题,从而保证了小数据的安全传输。附图说明 [0023] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的技术人员来讲,还可以根据这些附图获得其他的附图。 [0024] 图1为本发明实施例提供的一种加密方法的一个实施例示意图; [0025] 图2为本发明实施例提供的一种加密方法的另一个实施例示意图; [0026] 图3为本发明实施例提供的一种解密方法的一个实施例示意图; [0027] 图4为本发明实施例提供的一种加密装置的一个实施例示意图; [0028] 图4a为本发明实施例提供的一种加密装置的另一个实施例示意图; [0029] 图4b为本发明实施例提供的一种加密装置的另一个实施例示意图; [0030] 图4c为本发明实施例提供的一种加密装置的另一个实施例示意图; [0031] 图4d为本发明实施例提供的一种加密装置的另一个实施例示意图; [0032] 图5为本发明实施例提供的一种解密装置的一个实施例示意图; [0033] 图5a为本发明实施例提供的一种解密装置的另一个实施例示意图; [0034] 图5b为本发明实施例提供的一种解密装置的另一个实施例示意图。 [0035] 图5c为本发明实施例提供的一种解密装置的另一个实施例示意图; [0036] 图5d为本发明实施例提供的一种解密装置的另一个实施例示意图。 具体实施方式[0037] 本发明实施例提供了一种加密方法、解密方法和相关装置,用于对初始层3消息中部分待加密的数据提供机密性保护。 [0038] 为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域的技术人员所获得的所有其他实施例,都属于本发明保护的范围。 [0039] 在现有技术中存在一种短消息的传输方案中:对于移动台发起(英文全称为Mobile Originate,英文简称:MO)的SMS小数据或者IP数据包小数据传输,上行加密的SMS小数据或者IP数据包小数据被封装在跟踪区域更新请求消息(英文全称为Tracking Area Update request,英文简称:TAU request)或者新的初始层3消息中,下行加密的SMS小数据或者IP数据包小数据被封装在S1接口的下行非接入层传输消息(英文全称为Downlink NAS transport message,NAS的英文全称为Non Access Stratum)中。对于移动台接收(英文全称为Mobile Terminated,简称:MT)的SMS小数据或者IP数据包小数据传输,下行加密的SMS小数据或者IP数据包小数据被封装在S1接口的下行非接入层传输消息中,上行加密的SMS小数据或者IP数据包小数据被封装在S1接口的上行非接入层传输消息(英文全称为Uplink NAS transport message)中。 [0040] 在上述小数据传输方案中,S1接口的下行非接入层传输消息和上行非接入层传输消息中携带的NAS消息不属于初始层3消息,在现有的加密机制中可以对这些消息进行机密性和完整性保护。但是对于TAU request或者新的初始层3消息属于初始层3消息,按照现有的加密机制中当存在有效安全上下文时会进行完整性保护,却不会对这类消息进行机密性保护,但是按照小数据传输方案的要求却需要对SMS小数据或者IP数据包小数据进行机密性保护,需要考虑当SMS小数据或者IP数据包小数据封装在TAU request或者新的初始层3消息中时,如何对初始层3消息中的小数据部分以及其他需要保护的参数提供机密性保护。 [0041] 为了解决上述技术问题,本发明提供了如下技术方案: [0042] 图1为本发明实施例提供的一种加密方法的一个实施例示意图,包括: [0043] 101、生成密钥流,所述密钥流用于对初始层3消息中部分待加密数据进行加密,所述部分待加密数据包括小数据。 [0044] 102、将所述密钥流与所述初始层3消息进行异或运算,生成部分数据被加密后的初始层3消息。 [0045] 103、发送所述部分数据被加密后的初始层3消息,所述初始层3消息中包括增加的加密指示,所述加密指示用于标识所述初始层3消息中部分待加密数据被加密,以使得网络侧根据所述增加的加密指示生成密钥流,再根据生成的密钥流对部分数据被加密后的初始层3消息进行解密。 [0046] 本发明实例通过生成密钥流,所述密钥流用于对初始层3消息中部分待加密数据进行加密,所述部分待加密数据包括小数据,将所述密钥流与所述初始层3消息进行异或运算,生成部分数据被加密后的初始层3消息,发送所述部分数据被加密后的初始层3消息,所述初始层3消息中包括增加的加密指示,所述加密指示用于标识所述初始层3消息中部分待加密数据被加密。从而能够对初始层3消息进行部分数据加密,避免现有技术中不能对初始层3消息进行机密性保护的问题,从而保证了小数据的安全传输。 [0047] 在本发明实施例中,3GPP标准的MTC通信系统通过在NAS信令中携带短消息或者IP数据包实现机器与机器之间的小数据通信,机器之间通信传输的数据由于数据量较小,被称之为小数据,小数据通常携带在短消息或IP数据包中。对于MO的SMS小数据或者IP数据包小数据传输,通常SMS小数据或者IP数据包小数据被封装在初始层3层3消息中,为了实现对短消息小数据的部分加密,本发明实施例中生成的初始层3消息中包括增加的加密指示,以使网络侧能够识别出初始层3消息部分数据被加密,在接收端接收到该初始层3消息之后需要进行解密。其中初始层3消息具体可以包括:跟踪区域更新请求消息(英文全称为TAU request)或新的初始层3消息,在实际应用中短消息小数据或IP数据包小数据具体携带在哪个消息中由具体的应用场景决定,此处不再限定。需要说明的是,新的初始层3消息为MTC通信系统新定义的初始层3消息用于传输小数据。 [0048] 在实际应用中,初始层3消息中包括增加的加密指示,一种可实现的方式是具体可以包括: [0049] 在初始层3消息中的安全头类型参数中增加完整性保护和部分加密参数,将安全头类型参数设定为完整性保护和部分加密参数。 [0050] 需要说明的是,现有的安全头类型参数(英文全称为Security header type)具体可以包括两个参数但不局限于这个两个参数,这两个参数分别为:完整性保护参数(英文全称为Integrity protected)、完整性保护和加密参数(英文全称为Integrity protected and ciphered)。在本发明实施例中,在Security header type中增加一个完整性保护和部分加密参数(英文全称为Integrity protected and partly ciphered),用于指示对初始层3消息中部分待加密的数据进行了加密,增加了完整性保护和部分加密参数之后,将安全头类型参数设定为完整性保护和部分加密参数,以网络侧识别出所述初始层3消息部分被加密的数据。 [0051] 在实际应用中,初始层3消息中包括增加的加密指示,另一种可实现的方式是具体可以包括:在初始层3消息中增加小数据传输指示,将安全头类型参数设定为完整性保护参数。 [0052] 在实际应用中,初始层3消息中包括增加的加密指示,另一种可实现的方式是具体可以包括:在初始层3消息中增加小数据传输指示,将安全头类型参数设定为完整性保护和加密参数。 [0053] 需要说明的是,在本发明实施例中,在初始层3消息中增加小数据传输指示,表示的是初始层3消息携带了部分被加密的短消息小数据或者IP数据包小数据,需要网络侧在接收到初始层3消息后对部分被加密数据进行解密。 [0054] 在本发明实施例中,生成用于对初始层3消息中部分待加密的数据进行加密的密钥流,本发明实施例中初始层3消息中部分待加密的数据包括小数据,但并不局限于小数据,在实际应用中由于小数据是封装在短消息或者网络之间互连的协议(Internet Protocol,IP)数据包中,而加密是对整个短消息或IP数据包进行加密,部分待加密的数据通常包括短消息或IP数据包,但是还包括有短消息报头或IP报头,在实际应用中部分待加密的数据其包括内容由具体的实现场景决定,此处不做限定。 [0055] 在本发明实施例中,生成密钥流具体可以通过演进分组系统加密算法(英文简称为EEA,全称为EPS Encryption Algorithm,EPS的英文全称为Evolved Packet System)。图2为本发明实施例提供的一种加密方法的另一个实施例示意图,例如如图2所示,为数据加密机制,首先由发送端将明文和通过EEA生成的密钥流进行异或实现对明文的加密,然后接收端接收到密文后,通过EEA生成密钥流,将密文和生成的密钥流进行异或实现对密文的解密,在图2中: [0056] KEY为加密的密钥参数,可以为不同用户生成不同的密钥流。 [0057] BEARER为无线承载标识参数,可以为同一用户的不同承载生成不同的密钥流,对于NAS信令来说BEARER为常量0x00。 [0058] DIRECTION指的是传输方向参数,可以为同一用户的同一承载上不同传输方向生成不同的密钥流。对于上行消息,DIRECTION值为0;对于下行消息,DIRECTION值为1。 [0059] COUNT为计数器值参数,可以为同一用户的同一承载上的同一传输方向上的相同消息生成不同的密钥流。 [0060] LENGTH为长度参数,可以生成与明文长度相同的密钥流,LENGTH值只会影响密钥流的长度,不会影响密钥流中的比特。 [0061] KEY STREAM BLOCK为生成的密钥流。 [0062] PLAIN TEXT BLOCK为部分待加密的数据(即明文)。 [0063] CIPHER TEXT BLOCK为生成的密文。 [0064] 在实际应用中,生成密钥流,一种可实现的方式是具体可以包括: [0065] 将需要生成的密钥流的长度参数(即LENGTH)的值设定为初始层3消息中部分待加密的数据的长度值,长度参数是演进分组系统加密算法的输入参数,将所述长度参数作为输入参数通过所述演进分组系统加密算法生成密钥流。 [0066] 需要说明的是,将密钥流的LENGTH值设定为初始层3消息中部分待加密的数据的长度值,然后按照EPS加密算法生成密钥流,例如初始层3消息中部分待加密的数据的长度值为3比特,则生成的密钥流中LENGTH值就为3比特。 [0067] 将所述密钥流与所述初始层3消息中的部分待加密数据进行异或运算,生成部分数据被加密后的初始层3消息。例如,初始层3消息中的部分待加密数据的长度值为3,则输入参数LENGTH值设为3,假设生成的密钥流是101,初始层3消息中的部分待加密数据是110,那么最终密钥流与初始层3消息中的部分待加密数据进行异或后生成的部分被加密数据是011。 [0068] 在实际应用中,生成密钥流,另一种可实现的方式是具体可以包括: [0069] 将需要生成的密钥流的长度参数的值设定为初始层3消息中变量长度值或初始层3消息的长度值,长度参数是演进分组系统加密算法的输入参数;将所述长度参数作为输入参数通过所述演进分组系统加密算法生成密钥流;根据所述部分待加密数据的长度截短所述生成的密钥流,所述截短的密钥流的长度与所述初始层3消息中部分待加密的数据的长度值相同。 [0070] 生成部分数据被加密后的初始层3消息的一种实现方式为:将所述密钥流与所述初始层3消息中的部分待加密数据进行异或运算,生成部分数据被加密后的初始层3消息。 [0071] 需要说明的是,将密钥流的输入参数LENGTH值设定为初始层3消息的长度值或者初始层3消息的变量长度值(但初始层3消息的变量长度要大于部分待加密的数据的长度,初始层3消息的长度值也大于部分待加密的数据的长度),然后按照EPS加密算法生成密钥流,由于只需要对初始层3消息中部分待加密的数据进行加密,故生成密钥流之后对该密钥流进行截短,截短后的密钥流长度与初始层3消息中部分待加密的数据长度相同,在对密钥流进行截短时既可以从最高位开始至最低位的方式进行截短,也可以从最低位开始至最高位的方式进行截短,或者根据其他截短规则,在实际应用中可以根据具体的实现场景而决定,此处不作限定。例如,初始层3消息的长度值或者初始层3消息的变量长度值为9,则将LENGTH值设为9,假设生成的密钥流是111010100,初始层3消息中的部分待加密数据的长度是5,那么根据从最高位开始至最低位的方式对生成的密钥流进行截短,截短后的密钥流是11101,假设初始层3消息中部分待加密数据是00110,那么最终截短后的密钥流与初始层3消息中的部分待加密数据进行异或后生成的部分被加密数据是11011。 [0072] 需要说明的是,若初始层3消息的变量长度值等于待加密部分的长度,请参照前述“将需要生成的密钥流的长度参数(即LENGTH)的值设定为初始层3消息中部分待加密的数据的长度值”的描述,此处不再赘述。 [0073] 在实际应用中,生成密钥流,另一种可实现的方式是具体可以包括: [0074] 将需要生成的密钥流的LENGTH的值设定为初始层3消息的长度值(初始层3消息的长度值大于部分待加密的数据的长度),将所述长度参数作为输入参数通过所述演进分组系统加密算法生成密钥流,根据初始层3消息的格式与部分待加密的数据的长度获取初始层3消息中部分待加密的数据的起始比特位和终止比特位,保留密钥流中与起始比特位至终止比特位相对应的比特位,将所述密钥流中的除所述起始比特位至终止比特位之外的其它比特位置换为零。 [0075] 需要说明的是,将密钥流的LENGTH的值设定为初始层3消息的长度值,然后按照EPS加密算法生成密钥流,由于只对初始层3消息中部分待加密的数据进行加密,故生成密钥流之后可以获取初始层3消息中部分待加密的数据的起始比特位和终止比特位,然后保留密钥流中与起始比特位至终止比特位相对应的比特位,将密钥流中除所述起始比特位至终止比特位之外的的其它比特位置换为零,相当于只对初始层3消息中部分待加密的数据进行加密。例如,初始层3消息的长度值是17,那么LENGTH参数设为17,假设生成的密钥流为01011010100111001,在初始层3消息中部分待加密的数据其起始比特位为第4位,部分待加密的数据其终止比特位为第8位,则对于密钥流而言,需要保留生成的密钥流中从第4位开始至第8位的比特位(即将比特位11010保留),而将密钥流中的其它比特位置换为零,则最终与初始层3消息进行异或运算的密钥流为00011010000000000。假设初始层3消息为11111010000000111,那么生成的部分数据被加密后的初始层3消息为 11100000000000111。 [0076] 在实际应用中,生成密钥流,另一种可实现的方式是具体可以包括:将需要生成的密钥流的LENGTH的值设定为初始层3消息的变量长度值(但变量部分长度要大于部分待加密的数据的长度),将所述长度参数作为输入参数通过所述演进分组系统加密算法生成密钥流,根据初始层3消息的格式与部分待加密的数据的长度获取初始层3消息中部分待加密的数据的起始比特位和终止比特位,保留密钥流中与起始比特位至终止比特位相对应的比特位,将所述密钥流中的除所述起始比特位至终止比特位之外的其它比特位置换为零。生成部分数据被加密后的初始层3消息的一种实现方式为:所述将所述密钥流与所述初始层3消息中的变量进行异或运算,生成部分数据被加密后的初始层3消息。 [0077] 需要说明的是,将密钥流的LENGTH的值设定为初始层3消息的变量长度值,然后按照EPS加密算法生成密钥流,由于只对初始层3消息中部分待加密的数据进行加密,故生成密钥流之后可以获取初始层3消息中部分待加密的数据的起始比特位和终止比特位,然后保留密钥流中与起始比特位至终止比特位相对应的比特位,将密钥流中的其它比特位置换为零,相当于只对初始层3消息中部分待加密的数据进行加密。例如,假设生成的密钥流为01011010100111001,在初始层3消息中部分待加密的数据其起始比特位为第4位,部分待加密的数据其终止比特位为第8位,则对于密钥流而言,需要保留生成的密钥流中从第4位开始至第8位的比特位(即将比特位11010保留),而将密钥流中的其它比特位置换为零,则最终与初始层3消息的变量部分进行异或运算的密钥流为00011010000000000。假设初始层3消息的变量部分为11111010000000111,那么加密后的变量部分为11100000000000111。 [0078] 在本发明实施例中,通过步骤101生成密钥流之后,将该密钥流与初始层3消息或初始层3消息的变量或者初始层3消息的部分待加密的数据进行异或运算,就可以得到部分数据被加密后的初始层3消息。例如,如图2所示,在发送端,将PLAIN TEXT BLOCK与KEY STREAM BLOCK进行异或运算,就可以得到CIPHER TEXT BLOCK。同样,对于接收端,在接收到CIPHER TEXT BLOCK之后,将CIPHER TEXT BLOCK与KEY STREAM BLOCK进行异或运算之后,就可以解密出PLAIN TEXT BLOCK。 [0079] 在本发明实施例中,初始层3消息中包括增加的加密指示,以使网络侧在接收到初始层3消息后获知该初始层3消息部分数据被加密,然后生成用于对初始层3消息中部分待加密的数据进行加密的密钥流,最后通过异或运算得到部分数据被加密后的初始层3消息,实现了对初始层3消息中部分待加密的数据提供机密性保护。 [0080] 以上实施例介绍了本发明实施例提供的加密的方法,接下来介绍本发明实施例提供的解密的方法,图3为本发明实施例提供的一种解密方法的一个实施例示意图,请参阅图3所示,包括: [0081] 301、接收部分数据被加密后的初始层3消息,所述初始层3消息中包括增加的加密指示,所述加密指示用于标识所述初始层3消息中部分待加密数据被加密; [0082] 302、根据所述初始层3消息中的所述增加的加密指示,生成密钥流,所述密钥流用于对所述初始层3消息中部分被加密数据进行解密,所述部分被加密数据包括小数据; [0083] 303、将所述密钥流与所述初始层3消息进行异或运算,生成部分数据被解密后的初始层3消息。 [0084] 本发明实施例通过接收部分数据被加密后的初始层3消息,所述初始层3消息中包括增加的加密指示,所述加密指示用于标识所述初始层3消息中部分待加密数据被加密,根据所述初始层3消息中的所述增加的加密指示,生成密钥流,所述密钥流用于对所述初始层3消息中部分被加密的数据进行解密,所述部分被加密数据包括小数据,将所述密钥流与所述初始层3消息进行异或运算,生成解密后的初始层3消息。从而能够对初始层3消息进行部分数据解密,避免现有技术中不能对初始层3消息进行机密性保护的问题,从而保证了小数据的安全传输。 [0085] 在本发明实施例中,对于MTC通信系统的接收端,在接收到MTC通信系统中的发送端发送的部分数据被加密的初始层3消息后,接收端根据初始层3消息中的增加的加密指示,获取到初始层3消息部分数据已经被加密。 [0086] 在实际应用中,根据初始层3消息中的增加的加密指示获取初始层3消息部分数据已经被加密,一种可实现的方式是: [0087] 根据初始层3消息中的完整性保护和部分加密参数,获取初始层3消息部分数据已经被加密。 [0088] 需要说明的是,如果初始层3消息中的安全头类型参数被设置为完整性保护和部分加密参数,则可以获知该初始层3消息部分数据已经被加密了。 [0089] 在实际应用中,根据初始层3消息中的增加的加密指示获取初始层3消息部分数据已经被加密,另一种可实现的方式是: [0090] 根据初始层3消息中的小数据传输指示和完整性保护参数,获取初始层3消息部分数据已经被加密。 [0091] 或,根据初始层3消息中的小数据传输指示和完整性保护和加密参数,获取初始层3消息部分数据已经被加密。 [0092] 即,若在初始层3消息中存在小数据传输指示,则无论初始层3消息中的安全头类型参数被设定为完整性保护参数,还是被设定为完整性保护和加密参数,都可以获知该初始层3消息部分数据已经被加密。 [0093] 在本发明实施例中,在获取到初始层3消息中部分数据已经被加密之后,生成用于对初始层3消息中部分被加密的数据进行解密的密钥流,本发明实施例中初始层3消息中部分被加密的数据包括小数据,但并不局限于小数据,在实际应用中由于小数据是封装在短消息或者IP数据包中,而加密是对整个短消息或IP数据包进行加密,加密的部分通常包括短消息或IP数据包,但是还包括有短消息报头或IP报头。 [0094] 在实际应用中,生成密钥流,一种可实现的方式是具体可以包括: [0095] 将需要生成的密钥流的长度参数(即LENGTH)的值设定为初始层3消息中部分被加密的数据的长度值,长度参数是演进分组系统加密算法的输入参数;将所述长度参数作为输入参数通过所述演进分组系统加密算法生成密钥流。 [0096] 需要说明的是,将密钥流的LENGTH的值设定为初始层3消息中部分被加密的数据长度值,然后按照EPS加密算法生成密钥流,例如初始层3消息中加密的部分的长度值为3比特,则生成的密钥流中LENGTH的值就为3比特。 [0097] 生成部分数据被解密后的初始层3消息一种实现方式可以包括:将所述密钥流与所述初始层3消息中的部分被加密数据进行异或运算,生成部分数据被解密后的初始层3消息。例如,初始层3消息中的部分被加密数据的长度值为3,则将LENGTH值设为3,假设生成的密钥流是101,初始层3消息中的部分被加密数据是011,那么最终密钥流与初始层3消息中的部分被加密数据进行异或后生成的解密后数据是110。 [0098] 在实际应用中,生成密钥流,另一种可实现的方式是具体可以包括:将长度参数的值设定为初始层3消息中变量长度值或初始层3消息的长度值,长度参数是演进分组系统加密算法的输入参数;将所述长度参数作为输入参数通过所述演进分组系统加密算法生成密钥流;根据所述部分被加密数据的长度截短所述生成的密钥流,所述截短的密钥流的长度与所述初始层3消息中被加密的部分的长度值相同。 [0099] 生成部分数据被解密后的初始层3消息一种实现方式可以包括:将所述密钥流与所述初始层3消息中的部分被加密数据进行异或运算,生成部分数据被解密后的初始层3消息。 [0100] 需要说明的是,将密钥流的LENGTH值设定为初始层3消息的长度值或者初始层3消息的变量长度值(但变量部分长度要大于部分待加密的数据的长度,初始层3消息的长度值也大于部分待加密的数据的长度),然后按照EPS加密算法生成密钥流,由于只需要对初始层3消息中加密的部分进行解密,故生成密钥流之后对该密钥流的长度进行截短,与初始层3消息中部分被加密的数据长度相同,在对密钥流进行截短时既可以从最高位开始至最低位的方式进行截短,也可以从最低位开始至最高位的方式进行截短,或者根据其他截短规则,在实际应用中可以根据具体的实现场景而决定,此处不作限定。例如,初始层3消息的长度值或者初始层3消息的变量长度值为9,则将LENGTH值设为9,假设生成的密钥流是111010100,初始层3消息中的部分被加密数据的长度是5,那么根据从最高位开始至最低位的方式对生成的密钥流进行截短,截短后的密钥流是11101,假设初始层3消息中部分被加密数据是11011,那么最终截短后的密钥流与初始层3消息中的部分被加密数据进行异或后生成的解密数据是00110。 [0101] 在实际应用中,生成密钥流,另一种可实现的方式是具体可以包括: [0102] 将长度参数的值设定为初始层3消息的长度值(初始层3消息的长度值大于部分被加密的数据的长度),将所述长度参数作为输入参数通过所述演进分组系统加密算法生成密钥流,根据所述初始层3消息的格式与所述部分被加密数据的长度获取所述初始层3消息中被加密数据的起始比特位和终止比特位,保留所述密钥流中与所述起始比特位至所述终止比特位相对应的比特位,将所述密钥流中的除所述起始比特位至终止比特位之外的其它比特位置换为零。 [0103] 需要说明的是,将密钥流的LENGTH的值设定为初始层3消息的长度值,然后按照EPS加密算法生成密钥流,由于只对初始层3消息中部分被加密的数据进行解密,故生成密钥流之后可以获取初始层3消息中部分被加密的数据的起始比特位和终止比特位,然后保留密钥流中与起始比特位至终止比特位相对应的比特位,将密钥流中的其它比特位置换为零,相当于只对初始层3消息中部分被加密的数据进行解密。例如,初始层3消息的长度值是17,那么LENGTH参数设为17,假设生成的密钥流为01011010100111001,在初始层3消息中部分被加密的数据其起始比特位为第4位,部分被加密的数据其终止比特位为第8位,则对于密钥流而言,需要保留生成的密钥流中从第4位开始至第8位的比特位(即将比特位11010保留),而将密钥流中的其它比特位置换为零,则最终与部分数据被加密的初始层3消息进行异或运算的密钥流为00011010000000000。假设部分数据被加密的初始层3消息为11100000000000111,那么解密后的初始层3消息为11111010000000111。在实际应用中,生成密钥流,另一种可实现的方式是具体可以包括: [0104] 将长度参数的值设定为初始层3消息的变量长度值(初始层3消息的变量长度值大于部分被加密的数据的长度),所述长度参数是演进分组系统加密算法的输入参数,将所述长度参数作为输入参数通过所述演进分组系统加密算法生成密钥流,根据所述初始层3消息的格式与所述部分被加密数据的长度获取所述初始层3消息中被加密数据的起始比特位和终止比特位,保留所述密钥流中与所述起始比特位至所述终止比特位相对应的比特位,将所述密钥流中的除所述起始比特位至终止比特位之外的其它比特位置换为零。 [0105] 生成部分数据被解密后的初始层3消息一种实现方式可以为,所述将所述密钥流与所述初始层3消息中的变量进行异或运算,生成部分数据被解密后的初始层3消息。 [0106] 需要说明的是,将密钥流的LENGTH的值设定为初始层3消息的变量长度值,然后按照EPS加密算法生成密钥流,由于只对初始层3消息中部分被加密的数据进行解密,故生成密钥流之后可以获取初始层3消息中部分被加密的数据的起始比特位和终止比特位,然后保留密钥流中与起始比特位至终止比特位相对应的比特位,将密钥流中的其它比特位置换为零,相当于只对初始层3消息中部分被加密的数据进行解密。例如,初始层3消息的变量长度值是17,那么LENGTH参数设为17,假设生成的密钥流为01011010100111001,在初始层3消息中部分被加密的数据其起始比特位为第4位,部分被加密的数据其终止比特位为第8位,则对于密钥流而言,需要保留生成的密钥流中从第4位开始至第8位的比特位(即将比特位11010保留),而将密钥流中的其它比特位置换为零,则最终与部分数据被加密的初始层3消息的变量进行异或运算的密钥流为00011010000000000。假设初始层3消息的变量为11100000000000111,那么解密后的变量为11111010000000111。在本发明实施例中,将该密钥流与初始层3消息或初始层3消息的变量部分或者初始层3消息的加密的部分进行异或运算,就可以得到解密的初始层3消息。例如,如图2所示,在接收端,将CIPHER TEXT BLOCK与KEY STREAM BLOCK进行异或运算,就可以得到PLAIN TEXT BLOCK。 [0107] 在本发明实施例中,根据初始层3消息中的增加的加密指示获取该初始层3消息部分数据已经被加密,故需要对初始层3消息中部分被加密的数据进行解密,然后生成用于对初始层3消息中部分被加密的数据进行解密的密钥流,最后通过异或运算得到解密的初始层3消息,实现了对初始层3消息中加密的部分提供机密性保护。 [0108] 以上实施例介绍了本发明实施例提供的加密方法和解密方法,接下来介绍本发明实施例提供的加密装置和解密装置,本发明实施例提供的加密装置和解密装置具体可以应用在MTC通信系统中。MTC通信系统的应用种类丰富,包括但不限于以下五大应用:自动仪表(例如水电气表)、远程监控、工业安全与家庭自动化、支付系统(自动柜员机、支持终端和停车计时收费表等)以及车辆远程控制(如车队管理、过路费收费、车辆恢复以及根据驾驶情况支付保费等),而车载应用则包括免提、远程通信系统、内置导航、紧急呼叫、远程诊断和内置报警等。 [0109] 本发明实施例提供的加密的装置,图4为本发明实施例提供的一种加密装置的一个实施例示意图,如图4所示,加密装置400,包括: [0110] 生成单元401,用于生成密钥流,所述密钥流用于对初始层3消息中部分待加密数据进行加密,所述部分待加密数据包括小数据。 [0111] 处理单元402,用于将所述密钥流与所述初始层3消息进行异或运算,生成部分数据被加密后的初始层3消息。 [0112] 传输单元403,用于发送所述处理单元处理后的部分数据被加密后的初始层3消息,所述初始层3消息中包括增加的加密指示,所述加密指示用于标识所述初始层3消息中部分待加密数据被加密。 [0113] 图4a为本发明的一个装置实施例,该实施例是图4所示的实施例进一步细化,所述装置400还包括: [0114] 第一设置单元404,用于将长度参数的值设定为所述初始层3消息中所述部分待加密数据的长度值,所述长度参数为演进分组系统加密算法的输入参数。 [0115] 其中,所述生成单元401具体用于将所述第一设置单元404设置的长度参数作为输入参数通过所述演进分组系统加密算法生成密钥流。 [0116] 其中,所述处理单元402具体用于将所述生成单元401生成的密钥流与所述初始层3消息中的部分待加密数据进行异或运算,生成部分数据被加密后的初始层3消息。 [0117] 图4b为本发明实施例提供的一种加密装置的另一个实施例示意图,所述加密装置400还包括: [0118] 第二设置单元405,用于将长度参数的值设定为所述初始层3消息中变量长度值,所述长度参数是演进分组系统加密算法的输入参数; [0119] 其中,所述生成单401具体用于将所述第二设置单元405设置的长度参数作为输入参数通过所述演进分组系统加密算法生成密钥流; [0120] 所述加密装置400还包括: [0121] 第一格式处理单元406,用于根据所述初始层3消息的格式与所述部分待加密数据的长度获取所述初始层3消息中待加密数据的起始比特位和终止比特位,保留所述密钥流中与所述起始比特位至所述终止比特位相对应的比特位,将所述密钥流中的除所述起始比特位至终止比特位之外的其它比特位置换为零。 [0122] 其中,所述处理单元402具体用于将所述第一格式处理单元406处理后的密钥流与所述初始层3消息中的变量进行异或运算,生成部分数据被加密后的初始层3消息。 [0123] 图4c为本发明实施例提供的一种加密装置的另一个实施例示意图,所述加密装置400还包括: [0124] 第三设置单元407,用于将长度参数的值设定为所述初始层3消息的长度值,所述长度参数是演进分组系统加密算法的输入参数。 [0125] 其中,所述生成单元401具体用于将所述第三设置单元407设置的长度参数作为输入参数通过所述演进分组系统加密算法生成密钥流。 [0126] 所述加密装置400还包括: [0127] 第二格式处理单元408,用于根据所述初始层3消息的格式与所述部分待加密数据的长度获取所述初始层3消息中待加密数据的起始比特位和终止比特位,保留所述密钥流中与所述起始比特位至所述终止比特位相对应的比特位,将所述密钥流中的除所述起始比特位至终止比特位之外的其它比特位置换为零。 [0128] 图4d为本发明实施例提供的一种加密装置的另一个实施例示意图,所述加密装置400还包括: [0129] 第四设置单元409,用于将长度参数的值设定为所述初始层3消息中变量长度值或所述初始层3消息的长度值,所述长度参数是演进分组系统加密算法的输入参数。 [0130] 其中,所述生成单元401具体用于将所述设置单元设置的长度参数作为输入参数通过所述演进分组系统加密算法生成密钥流。 [0131] 所述加密装置400还包括: [0132] 第三格式处理单元410,用于根据所述部分待加密数据的长度截短所述生成的密钥流,所述截短的密钥流的长度与所述初始层3消息中部分待加密的数据的长度值相同。 [0133] 其中,所述处理单元402具体用于将所述格式处理单元处理后的密钥流与所述初始层3消息中的部分待加密数据进行异或运算,生成部分数据被加密后的初始层3消息。 [0134] 需要说明的是,所述初始层3消息为跟踪区域更新请求消息TAU request,或新的初始层3消息。 [0135] 采用本发明的装置,通过生成密钥流,所述密钥流用于对初始层3消息中部分待加密数据进行加密,所述部分待加密数据包括小数据,将所述密钥流与所述初始层3消息进行异或运算,生成部分数据被加密后的初始层3消息,发送所述部分数据被加密后的初始层3消息,所述初始层3消息中包括增加的加密指示,所述加密指示用于标识所述初始层3消息中部分待加密数据被加密。从而能够对初始层3消息进行部分数据加密,避免现有技术中不能对初始层3消息进行机密性保护的问题,从而保证了小数据的安全传输。 [0136] 图5为本发明实施例提供的一种解密装置的一个实施例示意图,解密装置500,包括: [0137] 传输单元501,用于接收部分数据被加密后的初始层3消息,所述初始层3消息中包括增加的加密指示,所述加密指示用于标识所述初始层3消息中部分待加密数据被加密。 [0138] 生成单元502,用于根据所述初始层3消息中的所述增加的加密指示,生成密钥流,所述密钥流用于对所述初始层3消息中部分被加密数据进行解密,所述部分被加密数据包括小数据。 [0139] 处理单元503,将所述密钥流与所述初始层3消息进行异或运算,生成部分数据被解密后的初始层3消息。 [0140] 图5a为本发明实施例提供的一种解密装置的另一个实施例示意图,图5a所示的实施例为图5所示实施例的进一步细化,解密装置500包括: [0141] 第一设置单元504,用于将长度参数的值设定为所述初始层3消息中所述部分被加密数据的长度值,所述长度参数为演进分组系统加密算法的输入参数。 [0142] 其中,所述生成单元502具体用于将所述第一设置单元504设置的长度参数作为输入参数通过所述演进分组系统加密算法生成密钥流。 [0143] 所述处理单元503具体用于将所述生成单元生502成的密钥流与所述初始层3消息中的部分被加密数据进行异或运算,生成部分数据被解密后的初始层3消息。 [0144] 图5b为本发明实施例提供的一种解密装置的另一个实施例示意图,图5b所示的实施例与图5所示的实施例进一步细化,解密装置500还包括: [0145] 第二设置单元505,用于将长度参数的值设定为所述初始层3消息中变量长度值,所述长度参数是演进分组系统加密算法的输入参数。 [0146] 所述生成单元502具体用于将所述第二设置单元505设置的长度参数作为输入参数通过所述演进分组系统加密算法生成密钥流。 [0147] 所述解密装置500还包括: [0148] 第一格式处理单元506,用于根据所述初始层3消息的格式与所述部分被加密数据的长度获取所述初始层3消息中被加密数据的起始比特位和终止比特位,保留所述密钥流中与所述起始比特位至所述终止比特位相对应的比特位,将所述密钥流中的除所述起始比特位至终止比特位之外的其它比特位置换为零。 [0149] 所述处理单元503具体用于将所述第一格式处理单元506处理后的密钥流与所述初始层3消息中的变量进行异或运算,生成部分数据被解密后的初始层3消息。 [0150] 图5c为本发明实施例提供的一种解密装置的另一个实施例示意图,图5c所示的实施例与图5所示的实施例进一步细化,解密装置500还包括: [0151] 第三设置单元507,用于将长度参数的值设定为所述初始层3消息的长度值,所述长度参数是演进分组系统加密算法的输入参数。 [0152] 所述生成单元502具体用于将所述第三设置单元507设置的长度参数作为输入参数通过所述演进分组系统加密算法生成密钥流。 [0153] 解密装置500还包括: [0154] 第二格式处理单元508,用于根据所述初始层3消息的格式与所述部分被加密数据的长度获取所述初始层3消息中被加密数据的起始比特位和终止比特位,保留所述密钥流中与所述起始比特位至所述终止比特位相对应的比特位,将所述密钥流中的除所述起始比特位至终止比特位之外的其它比特位置换为零。 [0155] 图5d为本发明实施例提供的一种解密装置的另一个实施例示意图,图5d所示的实施例与图5所示的实施例进一步细化,解密装置500还包括: [0156] 第四设置单元509,用于将长度参数的值设定为所述初始层3消息中变量长度值或所述初始层3消息的长度值,所述长度参数是演进分组系统加密算法的输入参数。 [0157] 所述生成单元502具体用于将所述第四设置单元509设置的长度参数作为输入参数通过所述演进分组系统加密算法生成密钥流。 [0158] 解密装置500还包括: [0159] 第三格式处理单元510,用于根据所述部分被加密数据的长度截短所述生成的密钥流,所述截短的密钥流的长度与所述初始层3消息中被加密的部分的长度值相同。 [0160] 所述处理单元503具体用于将所述第三格式处理单元510处理后的密钥流与所述初始层3消息中的部分被加密数据进行异或运算,生成部分数据被解密后的初始层3消息。 [0161] 采用本发明提供的装置,通过接收部分数据被加密后的初始层3消息,所述初始层3消息中包括增加的加密指示,所述加密指示用于标识所述初始层3消息中部分待加密数据被加密,根据所述初始层3消息中的所述增加的加密指示,生成密钥流,所述密钥流用于对所述初始层3消息中部分被加密的数据进行解密,所述部分被加密数据包括小数据,将所述密钥流与所述初始层3消息进行异或运算,生成解密后的初始层3消息。从而能够对初始层3消息进行部分数据解密,避免现有技术中不能对初始层3消息进行机密性保护的问题,从而保证了小数据的安全传输。 [0162] 需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,其带来的技术效果与本发明方法实施例相同,具体内容可参见本发明如图3所示的方法实施例中的叙述,此处不再赘述。 [0163] 在本发明实施例中,根据初始层3消息中的增加的加密指示获取该初始层3消息部分数据已经被加密,故需要对初始层3消息进行解密,然后生成用于对初始层3消息中部分加密数据进行解密的密钥流,最后通过异或运算得到解密的初始层3消息,实现了对初始层3消息中部分待加密数据提供机密性保护。 [0164] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。 [0165] 以上对本发明所提供的一种加密方法、解密方法和相关装置进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。 |