CN103490900B - 加密认证方法及设备 - Google Patents
加密认证方法及设备 Download PDFInfo
- Publication number
- CN103490900B CN103490900B CN201310456644.7A CN201310456644A CN103490900B CN 103490900 B CN103490900 B CN 103490900B CN 201310456644 A CN201310456644 A CN 201310456644A CN 103490900 B CN103490900 B CN 103490900B
- Authority
- CN
- China
- Prior art keywords
- piecemeal
- encrypted
- encryption
- packet
- length
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 65
- 235000013399 edible fruits Nutrition 0.000 claims description 4
- 238000013519 translation Methods 0.000 claims description 3
- 230000014616 translation Effects 0.000 claims description 3
- 239000000203 mixture Substances 0.000 claims description 2
- 230000007423 decrease Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000033228 biological regulation Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
Landscapes
- Storage Device Security (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种加密认证方法及设备。方法包括:根据采用的加密算法所支持的分组长度,对待加密和认证报文中的待加密数据进行分组,并根据采用的认证算法所支持的分块长度,对所述待加密和认证报文中的待认证数据进行分块;如果所述分块长度大于所述分组长度,则以分块为单位,对所述分块包含的分组进行加密处理,获得包含加密结果的加密分块,对所述加密分块进行认证,获得认证结果;或者,如果所述分组长度大于所述分块长度,则以分组为单位,对所述分组进行加密,得到加密结果,对所述加密结果包含的分块分别进行认证,得到每个分块的认证结果。本发明技术方案可以减少加密认证过程中对内存的访存次数,提高处理性能。
Description
技术领域
本发明涉及网络通信技术,尤其涉及一种加密认证方法及设备,属于因特网安全技术领域。
背景技术
因特网协议安全性(Internet Protocol Security,简称为IPSEC)是由因特网工程任务组(Internet Engineering Task Force,简称为IETF)定义的一个安全标准框架,用于保证数据的安全传输。它包括了认证头(Authentication Header,简称为AH)、封装安全载荷(EncapsulatingSecurity Payload,简称为ESP)、因特网密钥交换(Internet Key Exchange,简称为IKE)协议和用于网络加密和认证的一系列算法。
AH协议可以为数据传输提供源认证、数据完整性校验服务。源认证可以检测通信端的身份合法性,防止他人冒充。完整性校验能够检测数据在传输中是否被篡改。ESP协议具有除AH能够提供的安全服务外,还可以提供数据机密性服务,用于保证数据在传输过程中不被偷窥。AH协议由于不提供数据机密性服务,因此不需要对AH协议的报文进行加密。而ESP协议提供了上面提到的安全服务的全部支持,在某些配置下,它既需要对数据进行加密,还需要对数据进行认证。
无论是加密还是认证,都需要对数据进行大量数学运算和访存操作。以发送端的处理过程为例,具体为:中央处理单元(Central Processing Unit,简称为CPU)在发送端先从内存中读取待加密的报文,进行数学计算,对报文进行加密,然后将加密结果写回内存;接下来的认证过程,CPU再次从内存读取加密后的数据进行数学计算,完成认证。由此可见,在没有硬件支持的情况下,如果使用纯软件进行加密和认证处理将非常耗时,并且会占用大量CPU)资源进行数学运算,需要频繁访问内存以获取数据,由此造成系统性能下降。为解决该问题,现有技术提出了采用硬件部分完成数学运算,但CPU仍要参与数据的存取,仍然需要频繁访问内存,处理性能仍不高。
发明内容
本发明提供一种加密认证方法及设备,用以减少加密认证过程中对内存的访存次数,提高处理性能。
第一方面提供一种加密认证方法,包括:
根据采用的加密算法所支持的分组长度,对待加密和认证报文中的待加密数据进行分组,并根据采用的认证算法所支持的分块长度,对所述待加密和认证报文中的待认证数据进行分块;
如果所述分块长度大于所述分组长度,则以分块为单位,对所述分块包含的分组进行加密处理,获得包含加密结果的加密分块,对所述加密分块进行认证,获得认证结果;或者,如果所述分组长度大于所述分块长度,则以分组为单位,对所述分组进行加密,得到加密结果,对所述加密结果包含的分块分别进行认证,得到每个分块的认证结果。
第二方面提供一种加密认证装置,包括:
分组模块,用于根据采用的加密算法所支持的分组长度,对待加密和认证报文中的待加密数据进行分组;
分块模块,用于根据采用的认证算法所支持的分块长度,对所述待加密和认证报文中的待认证数据进行分块;
加密认证模块,用于在所述分块长度大于所述分组长度时,以分块为单位,对所述分块包含的分组进行加密处理,获得包含加密结果的加密分块,对所述加密分块进行认证,获得认证结果;或者,在所述分组长度大于所述分块长度时,以分组为单位,对所述分组进行加密,得到加密结果,对所述加密结果包含的分块分别进行认证,得到每个分块的认证结果。
第三方面提供一种网络设备,包括第二方面提供的任一加密认证装置。
本发明提供的加密认证方法及设备,通过对待加密和认证报文中的待加密数据进行分组,并对待加密和认证报文中的待认证数据进行分块,然后以分块为单位,对分块包含的分组进行加密后再对分块进行认证,或者以分组为单位,先对分组加密后再对分组包含的分块进行认证。与现有技术相比,本发明中以分块或分组为单位,加密后立即进行认证,而加密的数据量相对较小,此时加密结果尚保存在CPU的缓存中,只需从缓存中读取加密结果进行认证即可,不需要从内存中读取加密结果,减少了内存读取次数,有利于提高加密认证的处理性能。
附图说明
图1为现有技术中加密和认证的时序图;
图2为本发明实施例提供的一种加密认证方法的流程图;
图3为使用了ESP协议的待加密和认证的报文结构示意图;
图4为本发明实施例提供的一种混合加密认证的时序图;
图5为本发明实施例提供的一种加密认证装置的结构示意图。
具体实施方式
在介绍本发明技术方案之前,先对现有技术中由纯软件或由软硬件进行加密认证的过程进行简单说明,以便于更好地理解本发明。
根据IPSEC的规定,在报文发送端,首先需要对数据进行加密,然后再对加密后的数据进行认证。在报文接收端,首先需要对数据进行认证,然后再进行解密。
报文发送端的处理过程为:CPU先从内存中读取待加密的报文,由CPU或专用硬件单元进行数学计算,完成加密,然后CPU将加密结果写回内存;接下来的认证过程,由CPU再次从内存读取加密后的数据,再由CPU或专用硬件单元进行数学计算,完成认证,该过程的时序图如图1所示。报文接收端的处理过程是报文发送端的逆过程,即先对报文进行认证,再进行解密。现有技术中的加密过程和认证过程严格的串行化,且需要频繁的访问内存以获取数据,造成系统性能下降。
图2为本发明实施例提供的一种加密认证方法的流程图。如图2所示,所述方法包括:
201、根据采用的加密算法所支持的分组长度,对待加密和认证报文中的待加密数据进行分组,并根据采用的认证算法所支持的分块长度,对所述待加密和认证报文中的待认证数据进行分块。
202、如果所述分块长度大于所述分组长度,则以分块为单位,对所述分块包含的分组进行加密处理,获得包含加密结果的加密分块,对所述加密分块进行认证,获得认证结果;或者,如果所述分组长度大于所述分块长度,则以分组为单位,对所述分组进行加密,得到加密结果,对所述加密结果包含的分块分别进行认证,得到每个分块的认证结果。
本实施例提供的方法可用于对任何即需要加密又需要认证的报文进行加密认证处理,为便于描述将这种即需要加密又需要认证的报文称为待加密和认证报文。本发明实施例对待加密和认证报文采用的协议不做限定,例如可以是但不限于:ESP协议。
在实际应用中,根据协议的不同,报文中需要加密和需要认证的数据可能不尽相同。在本实施例中,将待加密和认证报文中需要加密的数据称为待加密数据,将待加密和认证报文中需要认证的数据称为待认证数据。根据协议的不同,待加密数据和待认证数据可能相同,也可能不相同。例如,对于ESP协议的报文来说,待认证数据是从ESP头开始到报文结束;而待加密数据是从初始向量(Initialization Vector,简称为IV)字段结束的下一个字节开始到报文结束。也就是说,在本发明实施例中,待加密数据可以和待认证数据相同。或者,待加密数据可以和待认证数据也可以不相同,例如,对于ESP协议来说,所述待认证数据包括所述待加密数据和报头数据,所述报头数据包括ESP头和IV字段。
具体的,在加密认证开始前,确定采用的加密算法和认证算法。本实施例采用的加密算法通常是支持固定长度的分组加密算法,例如可以是数据加密算法(Data Encryption Algorithm,简称为DES),高级加密标准(AdvancedEncryption Standard,简称为AES),或三重数据加密算法(Triple DataEncryption Algorithm,简称为3DES)。相应的,本实施例采用的认证算法可以是译作安全散列算法(Secure Hash Algorithm,简称为SHA)或信息-摘要算法第5版(Message-Digest Algorithm 5,简称为MD5)等。其中,上述加密算法和认证算法的任一组合均可应用于本实施例提供的方法中,也就是说,本实施例提供的方法可适用于MD5和DES,MD5和AES,MD5和3DES,SHA和DES,SHA和3DES,或SHA和AES等混合加密的场景。
在确定采用的加密算法后,加密认证装置可以按照加密算法支持的分组长度,对待加密和认证报文中的待加密数据进行分组。具体的,加密认证装置可以按照分组长度,依次对所述待加密数据进行划分,形成至少一个长度为所述分组长度的分组,其中,如果最后一个分组的长度小于所述分组长度,则对最后一个分组进行扩充,使得扩充后的分组的长度等于所述分组长度。在确定采用的认证算法后,加密认证装置可以按照认证算法支持的分块长度,对待加密和认证报文中的待认证数据进行分块。具体的,加密认证装置可以按照分块长度,依次对待认证数据进行划分,形成至少一个分块,其中,如果最后一个分块的长度小于所述分块长度,则对最后一个分块进行扩充,使得扩充后的分块的长度等于所述分块长度。
在此说明,上述对分组或分块进行扩充的具体实施方式可参照现有协议的规定,在本发明实施例中不做限定。另外,如果最后一个分组和最后一个分块均需要进行扩充,则可以根据分块长度和分组长度的大小关系,较大者在较小者扩充的基础上进一步进行扩充,例如,如果分组长度小于分块长度,则最后一个分块可以在最后一个分组扩充后的基础上进一步扩充;如果分块长度小于分组长度,则最后一个分组可以在最后一个分块扩充的基础上进一步扩充。
在对待加密数据进行分组并对待认证数据进行分块之后,根据分块长度和分组长度的大小关系,确定以分块为单位还是以分组为单位进行加密认证。
具体的,如果分块长度大于分组长度,说明一个分块至少会包含一个分组,则加密认证装置以分块为单位,对该分块包含的分组进行加密处理,获得包含加密结果的加密分块,再对加密分块进行认证,获得认证结果;这样通过对逐个分块进行相同的处理,就会得到整个待加密和认证报文对应的加密认证结果。进一步可选的,加密认证装置可以在每得到一个分块的认证结果后,将认证结果存储到内存中。
如果分组长度大于分块长度,说明一个分组至少包含一个分块,则加密认证装置以分组为单位,对该分组进行加密处理,获得加密结果,再对加密结果包含的分块分别进行认证,得到每个分块的认证结果。进一步可选的,加密认证装置可以在每得到一个分块的认证结果,就存储到内存中,或者,也可以在得到一个分组内所有分块的认证结果后统一存储到内存中。
由上述可见,与现有技术相比,本实施例提供的方法以分块或分组为单位,加密后立即进行认证,而加密的数据量相对较小,此时加密结果尚保存在CPU的缓存中,只需从缓存中读取加密结果进行认证即可,不需要从内存中读取加密结果,减少了内存读取次数,有利于提高加密认证的处理性能。
在实际应用中,更多的是分块长度大于分组长度的应用场景。在分块长度大于分组长度的应用场景中,可能存在分块包含的分组并非整数个,也就是说分块可能会包含某个分组的一部分,而不是该分组的全部。举例说明,对ESP协议的报文来说,由于待认证数据是从ESP头开始到报文结束,而待加密数据是从IV字段结束的下一个字节开始到报文结束,因此,如果ESP头和IV字段的长度之和不为分组长度的整数倍,就会出现分块包含非整数个分组的情况。
为便于描述,用于以下方式来表达分块包含非整数个分组。一种情况是:分块包含第i个分组,第(i+1)个分组,…第(i+N-1)个分组,以及第(i+N)个分组的部分,即非整个分组出现在分块的最后部分;另一种情况是:分块包第j个分组的部分,以及第(j+1)个分组,…第(j+M)个分组,即非整个分组出现在分块的开始部分。其中,i、j、N、M均为自然数。对于上述两种情况,加密认证装置具体可以采用下面的方式对分块包含的分组进行加密处理,获得含加密结果的加密分块,进而对所述加密分块进行认证,获得认证结果,但不限于此。在此说明,如果分块包含非整数个分组,则分块具体包含哪些分组以及哪个分组的哪部分数据在按照分组长度和分块长度分别对待加密数据和待认证数据进行划分的过程中自然而然就会确定,所以加密认证装置可以识别分块具体包含哪些分组以及哪个分组的哪部分数据。
如果分块包含第i个分组,第(i+1)个分组,…第(i+N-1)个分组,以及第(i+N)个分组的部分,则对所述第i个分组,第(i+1)个分组,…第(i+N-1)个分组,以及第(i+N)个分组进行加密处理,获得包含加密结果的加密分块,并对所述加密分块中第i个分组,第(i+1)个分组,…第(i+N-1)个分组的加密结果,以及第(i+N)个分组的加密结果中属于所述分块的部分进行认证,获得认证结果;其中,第(i+N)个分组的加密结果的其它部分将会在处理下一个分块的过程中被直接应用;
如果所述分块包含第j个分组的部分,以及第(j+1)个分组,…第(j+M)个分组,则对所述第(j+1)个分组,…第(j+M)个分组进行加密处理,获得包含加密结果的加密分块,并对第j个分组的加密结果中属于所述分块的部分,以及所述加密分块中第(j+1)个分组,…第(j+M)个分组的加密结果进行认证,获得认证结果。其中,第j个分组的加密结果是在处理上一个分块时获得的,所述上一个分块包括第j个分组的其它部分,且第j个分组的其它部分出现在所述上一个分块的最后部分。
图3为使用了ESP协议的待加密和认证的报文结构示意图。下面以图3所示报文为例,对分块长度大于分组长度的场景做进一步说明。如图3所示,图3所示报文中待认证数据是从ESP头开始到报文结束,而待加密数据是从IV字段结束的下一个字节开始到报文结束。
假设,IPSEC使用的认证算法有MD5或SHA,以64字节为单位,即分块长度为64字节;IPSEC使用的加密算法为AES,以16字节为单位,即所述分组长度为16字节。在这里说明一下,本发明各实施例中所述加密算法只改变分组内容但不改变分组的长度,即加密前后的数据长度保持不变。则对上述待认证数据进行分块的结果,如图3中所示的Block0、Block1、…BlockN;对上述待加密数据进行分组的结果,如图3中所示的0、1、2、3、…。
在混合加密认证处理过程中,首先对Block0进行处理。Block0中包含ESP头和IV字段,该部分只进行认证,不需要进行加密。除ESP头和IV字段之外,Block0还包含部分既要认证又需要加密的数据,即分组0、1、2。这里,首先使用AES算法依次对分组0,1,2进行加密,分别得到分组0,1,2的加密结果,为便于描述本发明实施例中将分组0,1的加密结果以及分组2的加密结果中属于Block0的部分之和记为加密结果enc_result0;由于ESP头、IV字段和enc_result0的长度之和已经大于或者等于64字节了,于是可以使用MD5或SHA算法开始对ESP头、IV字段和enc_result0进行认证,得到认证结果auth_result0。
需要特殊处理的是,分组2既有部分数据位于Block0,也有部分数据位于Block1,即Block0包含非整数个分组的情况。如果ESP头部和IV字段的长度之和不为分组长度的整数倍就会出现这种情况。对于这种情况,依然对分组2进行加密,而在认证的时候,只对包含在Block0中的那部分进行认证。
接下来,对Block1进行处理。首先,要使用AES算法完成对分组3,4,5,6的加密,加密后的分组3、分组4、分组5、分组6包含在Block1中的部分、以及分组2包含在Block1中的部分的长度之和等于64字节,于是可以使用MD5或SHA算法对这部分数据进行认证,得到认证结果auth_result1。其中,分组6中包含在Block2中的部分,则放到下一步进行认证。
按照上述方法依次处理Block2,Block3…,直到完成对最后一个分块,即BlockN的处理。
在此说明,对于BlockN的大小很可能不足64字节,但是为了是分组长度的整数倍,可以对最后一个分块进行扩充,保证BlockN为64字节,然后再进行认证,得到认证结果。可选的,可以在划分BlockN的时候,对BlockN进行扩充,使之为64字节;或者,也可以在对BlockN完成加密后,再进行扩充,使BlockN为64字节。
上述混合加密认证的时序图如图4所示。以分块为单位,数据被加密后立刻进行认证,且由于加密数据相对较小,加密的结果还保存在缓存(Cache)中,在进行认证时,只需要从Cache中读取加密的结果进行认证即可,避免了从内存中读取加密结果,减少了内存的读取次数,能够显著提升混合加密认证的性能。而在现有技术方案中,由于要先完成对整个报文的加密,才开始进行认证,则原有的加密结果很可能被冲刷出Cache,此时进行认证的话,将出现大量Cache缺失,增加内存访问次数,导致性能急剧下降。
进一步,本发明实施例提供的方法不仅可以应用于纯软件方式进行加密认证的应用场景,而且在具有支持超标量和独立加密单元和认证单元的机器上,本发明实施例提供的方法可以使加密单元和认证单元的硬件加速指令并行执行,进一步提高性能。
在此说明,本发明上述实施例给出了混合加密认证方法的详细流程和具体实现,该混合加密认证方法一般应用于报文发送端,那么与报文发送端相对应的报文接收端也会采用与上述混合加密认证方法相适应的方法对接收到的报文进行认证和解密。基于本发明上述实施例提供的混合加密认证方法的详细流程和具体实现,本领域技术人员很容易想到在报文接收端同样会以分组或分块为单位,先对分组或分块进行认证,再进行解密,详细流程不再赘述。
图5为本发明实施例提供的一种加密认证装置的结构示意图。如图5所示,所述装置包括:分组模块51、分块模块52和加密认证模块53。
分组模块51,用于根据采用的加密算法所支持的分组长度,对待加密和认证报文中的待加密数据进行分组。
分块模块52,用于根据采用的认证算法所支持的分块长度,对所述待加密和认证报文中的待认证数据进行分块。
加密认证模块53,与分组模块51和分块模块52连接,用于在所述分块长度大于所述分组长度时,以分块为单位,对所述分块包含的分组进行加密处理,获得包含加密结果的加密分块,对所述加密分块进行认证,获得认证结果;或者,在所述分组长度大于所述分块长度时,以分组为单位,对所述分组进行加密,得到加密结果,对所述加密结果包含的分块分别进行认证,得到每个分块的认证结果。
在一可选实施方式中,所述待加密数据与所述待认证数据相同。
在一可选实施方式中,所述待认证数据包括所述待加密数据和报头数据。以采用ESP协议的报文为例,所述报头数据包括ESP头和IV字段。
基于上述,分块模块52具体可用于按照所述分块长度,依次对所述待认证数据进行划分,获得至少一个分块,如果最后一个分块的长度小于所述分块长度,对所述最后一个分块进行扩充,使得扩充后的分块的长度等于所述分块长度。
在一可选实施方式中,加密认证模块53用于对所述分块包含的分组进行加密处理,获得包含加密结果的加密分块,对所述加密分块进行认证,获得认证结果,包括:
加密认证模块53具体可用于在所述分块包含第i个分组,第(i+1)个分组,…第(i+N-1)个分组,以及第(i+N)个分组的部分时,对所述第i个分组,第(i+1)个分组,…第(i+N-1)个分组,以及第(i+N)个分组进行加密处理,获得包含加密结果的加密分块,并对所述加密分块中第i个分组,第(i+1)个分组,…第(i+N-1)个分组的加密结果,以及第(i+N)个分组的加密结果中属于所述分块的部分进行认证,获得认证结果;或者在所述分块包第j个分组的部分,以及第(j+1)个分组,…第(j+M)个分组,则对所述第(j+1)个分组,…第(j+M)个分组进行加密处理,获得包含加密结果的加密分块,并对第j个分组的加密结果中属于所述分块的部分,以及所述加密分块中第(j+1)个分组,…第(j+M)个分组的加密结果进行认证,获得认证结果;其中,i、j、N、M均为自然数。
在此说明,本实施例采用的加密算法包括但不限于:DES,AES,或3DES;本实施例采用的认证算法包括但不限于:SHA或MD5。
本实施例提供的加密认证装置可以作为报文发送端实现,或可以设置在报文发送端实现。
本实施例提供的加密认证装置的各功能模块可用于执行图2所示方法实施例的流程,其具体工作原理不再赘述,详见方法实施例的描述。
本实施例提供的加密认证装置,通过对待加密和认证报文中的待加密数据进行分组,并对待加密和认证报文中的待认证数据进行分块,然后以分块为单位,对分块包含的分组进行加密后再对分块进行认证,或者以分组为单位,先对分组加密后再对分组包含的分块进行认证。与现有技术相比,本实施例的加密认证装置以分块或分组为单位,加密后立即进行认证,而加密的数据量相对较小,此时加密结果尚保存在CPU的缓存中,只需从缓存中读取加密结果进行认证即可,不需要从内存中读取加密结果,减少了内存读取次数,有利于提高加密认证的处理性能。
本发明实施例提供一种网络设备,该网络设备包括上述实施例提供的加密认证装置,关于加密认证装置的工作原理和实现结构可参见上述实施例的描述,在此不再赘述。
本实施例提供的网络设备可以作为报文发送端,用于采用上述方法实施例提供的加密认证方法对待发送的报文进行加密和认证,然后发送给报文接收端。本实施例提供的网络设备,同样具有减少内存读取次数,有利于提高加密认证的处理性能的优势。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (11)
1.一种加密认证方法,其特征在于,包括:
根据采用的加密算法所支持的分组长度,对待加密和认证报文中的待加密数据进行分组,并根据采用的认证算法所支持的分块长度,对所述待加密和认证报文中的待认证数据进行分块;
如果所述分块长度大于所述分组长度,则以分块为单位,对所述分块包含的分组进行加密处理,获得包含加密结果的加密分块,每个分块加密完成后立即对所述加密分块进行认证,获得认证结果;或者,如果所述分组长度大于所述分块长度,则以分组为单位,对所述分组进行加密,得到加密结果,每个分组加密完成后立即对所述加密结果包含的分块分别进行认证,得到每个分块的认证结果。
2.根据权利要求1所述的方法,其特征在于,所述待加密数据与所述待认证数据相同;或者,所述待认证数据包括所述待加密数据和报头数据。
3.根据权利要求1所述的方法,其特征在于,所述根据采用的认证算法所支持的分块长度,对所述待加密和认证报文中的待认证数据进行分块,包括:
按照所述分块长度,依次对所述待认证数据进行划分,获得至少一个分块,如果最后一个分块的长度小于所述分块长度,对所述最后一个分块进行扩充,使得扩充后的分块的长度等于所述分块长度。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述对所述分块包含的分组进行加密处理,获得包含加密结果的加密分块,对所述加密分块进行认证,获得认证结果,包括:
如果所述分块包含第i个分组,第(i+1)个分组,…第(i+N-1)个分组,以及第(i+N)个分组的部分,则对所述第i个分组,第(i+1)个分组,…第(i+N-1)个分组,以及第(i+N)个分组进行加密处理,获得包含加密结果的加密分块,并对所述加密分块中第i个分组,第(i+1)个分组,…第(i+N-1)个分组的加密结果,以及第(i+N)个分组的加密结果中属于所述分块的部分进行认证,获得认证结果;或者
如果所述分块包第j个分组的部分,以及第(j+1)个分组,…第(j+M)个分组,则对所述第(j+1)个分组,…第(j+M)个分组进行加密处理,获得包含加密结果的加密分块,并对第j个分组的加密结果中属于所述分块的部分,以及所述加密分块中第(j+1)个分组,…第(j+M)个分组的加密结果进行认证,获得认证结果;
其中,i、j、N、M均为自然数。
5.根据权利要求1-3任一项所述的方法,其特征在于,所述加密算法为数据加密算法DES,高级加密算法AES,或三重数据加密算法3DES;所述认证算法为译作安全散列算法SHA或消息摘要算法第5版MD5。
6.一种加密认证装置,其特征在于,包括:
分组模块,用于根据采用的加密算法所支持的分组长度,对待加密和认证报文中的待加密数据进行分组;
分块模块,用于根据采用的认证算法所支持的分块长度,对所述待加密和认证报文中的待认证数据进行分块;
加密认证模块,用于在所述分块长度大于所述分组长度时,以分块为单位,对所述分块包含的分组进行加密处理,获得包含加密结果的加密分块,每个分块加密完成后立即对所述加密分块进行认证,获得认证结果;或者,在所述分组长度大于所述分块长度时,以分组为单位,对所述分组进行加密,得到加密结果,每个分组加密完成后立即对所述加密结果包含的分块分别进行认证,得到每个分块的认证结果。
7.根据权利要求6所述的装置,其特征在于,所述待加密数据与所述待认证数据相同;或者,所述待认证数据包括所述待加密数据和报头数据。
8.根据权利要求6所述的装置,其特征在于,所述分块模块具体用于按照所述分块长度,依次对所述待认证数据进行划分,获得至少一个分块,如果最后一个分块的长度小于所述分块长度,对所述最后一个分块进行扩充,使得扩充后的分块的长度等于所述分块长度。
9.根据权利要求6-8任一项所述的装置,其特征在于,所述加密认证模块用于对所述分块包含的分组进行加密处理,获得包含加密结果的加密分块,对所述加密分块进行认证,获得认证结果,包括:
所述加密认证模块具体用于在所述分块包含第i个分组,第(i+1)个分组,…第(i+N-1)个分组,以及第(i+N)个分组的部分时,对所述第i个分组,第(i+1)个分组,…第(i+N-1)个分组,以及第(i+N)个分组进行加密处理,获得包含加密结果的加密分块,并对所述加密分块中第i个分组,第(i+1)个分组,…第(i+N-1)个分组的加密结果,以及第(i+N)个分组的加密结果中属于所述分块的部分进行认证,获得认证结果;或在所述分块包第j个分组的部分,以及第(j+1)个分组,…第(j+M)个分组,则对所述第(j+1)个分组,…第(j+M)个分组进行加密处理,获得包含加密结果的加密分块,并对第j个分组的加密结果中属于所述分块的部分,以及所述加密分块中第(j+1)个分组,…第(j+M)个分组的加密结果进行认证,获得认证结果;
其中,i、j、N、M均为自然数。
10.根据权利要求6-8任一项所述的装置,其特征在于,所述加密算法为数据加密算法DES,高级加密算法AES,或三重数据加密算法3DES;所述认证算法为译作安全散列算法SHA或消息摘要算法第5版MD5。
11.一种网络设备,其特征在于,包括:权利要求6-10任一项所述的加密认证装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310456644.7A CN103490900B (zh) | 2013-09-29 | 2013-09-29 | 加密认证方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310456644.7A CN103490900B (zh) | 2013-09-29 | 2013-09-29 | 加密认证方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103490900A CN103490900A (zh) | 2014-01-01 |
CN103490900B true CN103490900B (zh) | 2017-01-04 |
Family
ID=49830874
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310456644.7A Active CN103490900B (zh) | 2013-09-29 | 2013-09-29 | 加密认证方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103490900B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111615106B (zh) * | 2019-02-25 | 2023-09-26 | 阿里巴巴集团控股有限公司 | 一种语音数据包的加密方法及装置 |
CN113014385B (zh) * | 2021-03-25 | 2023-09-01 | 黑龙江大学 | 一种双网口硬件网络数据加密系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100560658B1 (ko) * | 2003-02-17 | 2006-03-16 | 삼성전자주식회사 | 고속의 오프셋 코드북 모드를 위한 암호화 장치 및 그 방법 |
US20120284524A1 (en) * | 2011-05-03 | 2012-11-08 | Texas Instruments Incorporated | Low overhead nonce construction for message security |
-
2013
- 2013-09-29 CN CN201310456644.7A patent/CN103490900B/zh active Active
Non-Patent Citations (3)
Title |
---|
"The Security of the Cipher Block Chaining;Mihir Bellarea, 1, Joe Kilianb, Phillip Rogawayc, 2;《Journal of Computer and System Sciences》;20001229;第61卷(第3期);第362–399页 * |
"一种新的一阶段加密认证模式";徐津温,巧燕,王大印;《电子学报》;20091030;第37卷(第10期);第2187-2192页 * |
"基于分组密码的加密认证码";胡予濮,肖国镇,张建中;《西安电子科技大学学报》;20100323;第26卷(第2期);第1-3页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103490900A (zh) | 2014-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109886040B (zh) | 数据处理方法、装置、存储介质及处理器 | |
US8484486B2 (en) | Integrated cryptographic security module for a network node | |
US10904231B2 (en) | Encryption using multi-level encryption key derivation | |
US20230308424A1 (en) | Secure Session Resumption using Post-Quantum Cryptography | |
CN109728914B (zh) | 数字签名验证方法、系统、装置及计算机可读存储介质 | |
CN103546289A (zh) | 一种基于USBKey的安全传输数据的方法及系统 | |
CN106302422B (zh) | 业务加密、解密方法和装置 | |
CN105100076A (zh) | 一种基于USB Key的云数据安全系统 | |
CN102138300A (zh) | 消息认证码预计算在安全存储器中的应用 | |
US20170012774A1 (en) | Method and system for improving the data security during a communication process | |
CN101582109A (zh) | 数据加密方法及装置、数据解密方法及装置、固态硬盘 | |
US9917695B2 (en) | Authenticated encryption method using working blocks | |
WO2015186829A1 (ja) | 送信ノード、受信ノード、通信ネットワークシステム、メッセージ作成方法およびコンピュータプログラム | |
CN106209352A (zh) | 具有前向安全性的有效密钥衍生 | |
Shreejith et al. | Security aware network controllers for next generation automotive embedded systems | |
CN114553557B (zh) | 密钥调用方法、装置、计算机设备和存储介质 | |
US20230269078A1 (en) | Key sharing method, key sharing system, authenticating device, authentication target device, recording medium, and authentication method | |
CN106257858A (zh) | 一种远端存储设备的数据加密方法、装置及系统 | |
CN103490900B (zh) | 加密认证方法及设备 | |
CN115865448A (zh) | 一种数据自加密装置和方法 | |
CN109255225A (zh) | 基于双重身份认证的硬盘数据安全管理装置 | |
CN105071941A (zh) | 分布式系统节点身份认证方法及装置 | |
CN106257859A (zh) | 一种密码使用方法 | |
CN111460463B (zh) | 电子存证保存和公证方法、装置、设备及存储介质 | |
CN115001744B (zh) | 一种云平台数据完整性验证方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: Cangshan District of Fuzhou City, Fujian province 350002 Jinshan Road No. 618 Garden State Industrial Park 19 floor Patentee after: RUIJIE NETWORKS CO., LTD. Address before: Cangshan District of Fuzhou City, Fujian province 350002 Jinshan Road No. 618 Garden State Industrial Park 19 floor Patentee before: Fujian Xingwangruijie Network Co., Ltd. |
|
CP01 | Change in the name or title of a patent holder |