CN102946315A - 一种采用分组方式构造mac码的方法及系统 - Google Patents

一种采用分组方式构造mac码的方法及系统 Download PDF

Info

Publication number
CN102946315A
CN102946315A CN201210465402XA CN201210465402A CN102946315A CN 102946315 A CN102946315 A CN 102946315A CN 201210465402X A CN201210465402X A CN 201210465402XA CN 201210465402 A CN201210465402 A CN 201210465402A CN 102946315 A CN102946315 A CN 102946315A
Authority
CN
China
Prior art keywords
message
key
grouping
mac code
sheet
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.)
Granted
Application number
CN201210465402XA
Other languages
English (en)
Other versions
CN102946315B (zh
Inventor
张文科
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Westone Information Industry Inc
Original Assignee
Chengdu Westone Information Industry Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chengdu Westone Information Industry Inc filed Critical Chengdu Westone Information Industry Inc
Priority to CN201210465402.XA priority Critical patent/CN102946315B/zh
Publication of CN102946315A publication Critical patent/CN102946315A/zh
Application granted granted Critical
Publication of CN102946315B publication Critical patent/CN102946315B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明涉及密码通信技术领域,本发明公开了一种采用分组方式构造MAC码的方法,其具体包含以下步骤:1.设定第一个分组的初始密钥,并根据第一个分组的初始密钥构造出后续N-1个分组的密钥,得到N个密钥分组;将原始消息填充为n个长度固定的消息分组;2.依序采用密钥分组加密对应的消息分组,第一个密钥分组加密第一个消息分组,第二个密钥分组加密第二个消息分组,依次类推,最后将加密结果进行异或运算,得到MAC码。本发发明的方法一方面可以实现并行处理,另外一方面降低了加密运算的次数,降低了系统的开销。本发明还公开了一种构造MAC码的系统。

Description

一种采用分组方式构造MAC码的方法及系统
技术领域
本发明涉及密码通信技术领域,尤其涉及一种采用分组方式构造MAC码的方法及系统。
背景技术
MAC码全称为Message Authentication  Code(消息认证码),是用来保证数据完整性的一种工具。数据完整性是信息安全的基本要求,可以防止数据被未经授权的篡改。随着网络技术的不断进步,尤其是电子商务、电子政务的不断发展,保证信息的完整性变得越来越重要。尤其双方在一个不安全的信道上通信的时候,需要有一种方法能够保证所发送的数据能被另一方验证没有遭受未经授权的篡改。MAC码就能够达到这一目的,其方法是:首先在参与通信的双方共享一个密钥分组,通信时(这里使用A和B代表参与通信的双方),A发送一个消息给B,并将这一消息使用MAC算法和共享密钥计算出一个值,即MAC码,将MAC码附加在这一消息之后传送给B。B接收消息后,使用同样的MAC算法和共享密钥计算出MAC码,和接收到的MAC码比较。如果两个MAC码相同,B就认为消息在传送过程中没有被篡改,如果不相同,B就认为消息在传送过程中被修改了。
现有技术中的MAC算法是将共享密钥和消息作为输入,计算出MAC码的运算方法或函数。目前,构造MAC码的方法很多,主要有3种类型:一种是基于带密钥的HASH函数,一种是基于分组密码算法的,还有一种是基于流密码的。基于带密钥的HASH函数设计MAC码的主要有HMAC,如可以采用MD5、SHA等具有迭代结构的HASH函数来构造MAC码。基于分组密码算法的主要为CBC_MAC方法,其为基于IEEE 802.1x认证的CCMP(CBC-MAC Protocol)加密技术,  CBC_MAC一般仅适用于对相同长度的消息进行认证,在消息长度变化的情况下是不安全的,同时它的构造方法决定了该算法不支持并行计算。
发明内容
针对现有技术中分组方式构造MAC码的方法不能并行加密的技术问题,提供一种采用分组方式构造MAC码的方法。本发明还提供了一种采用分组方式构造MAC码的系统。
本发明的目的通过下述技术方案来实现:
一种采用分组方式构造MAC码的方法,其具体包含以下步骤:1.设定第一个分组的初始密钥,并根据第一个分组的初始密钥构造出后续N-1个分组的密钥,得到N个密钥分组;将原始消息填充为n个长度固定的消息分组;2.依序采用密钥分组加密对应的消息分组,第一个密钥分组加密第一个消息分组,第二个密钥分组加密第二个消息分组,依次类推,最后将加密结果进行异或运算,得到MAC码。
更进一步地,上述方法还包括当n大于N时,将每个消息分组表示成m个消息片,并将n*m个消息片压缩成N*m个消息片。
更进一步地,上述消息片压缩和密钥构造同时进行。
更进一步地,上述N等于4。
更进一步地,上述密钥分组的长度和消息分组的长度分别为128比特。
更进一步地,上述消息片的长度为32比特。
更进一步地,上述步骤1中构造密钥具体包括以下步骤:设定第一个分组的初始密钥                                                
Figure 201210465402X100002DEST_PATH_IMAGE001
;则后续三个分组的密钥
Figure 592983DEST_PATH_IMAGE002
Figure 201210465402X100002DEST_PATH_IMAGE003
Figure 649406DEST_PATH_IMAGE004
分别为:
Figure 201210465402X100002DEST_PATH_IMAGE005
其中T为循环将位移动设定的位数,S为查找设定的位进行设定的替换,M为加法运算,
Figure 135937DEST_PATH_IMAGE008
为随机产生的常数,L为将顺序进行设定的变化。
更进一步地,上述压缩消息片的过程具体为:
Figure 201210465402X100002DEST_PATH_IMAGE009
其中,
Figure 74943DEST_PATH_IMAGE010
Figure 201210465402X100002DEST_PATH_IMAGE011
分别为n个分组的消息片和为4个分组的消息片;
矩阵A是m xm 的矩阵,其中
Figure 835089DEST_PATH_IMAGE012
;矩阵B是n x4 的矩阵,其中
Figure 201210465402X100002DEST_PATH_IMAGE013
本发明还公开了一种采用分组方式构造MAC码的系统,其具体包括密码构造模块,消息处理模块、MAC码生成模块;
所述密码构造模块用于设定第一个分组的初始密钥,并根据第一个分组的初始密钥构造出后续N-1个分组的密钥,得到N个密钥分组;
所述消息处理模块用于将原始消息填充为n个长度固定的消息分组;
所述MAC码生成模块用于依序采用密钥分组加密对应的消息分组,第一个密钥分组加密第一个消息分组,第二个密钥分组加密第二个消息分组,依次类推,最后将加密结果进行异或运算,得到MAC码。
更进一步地,上述消息处理模块包括消息压缩模块,当n大于N时,将每个消息分组表示成m个消息片,所述消息压缩模块用于将n*m个消息片压缩成N*m个消息片。
本发明的有益效果:上述构造MAC码的方法每一个分组加密的过程都可以并行运行,同时减少了构造MAC码过程中加密运算的次数,降低了系统的开销,对于任何长度的数据最多也只需要进行N次加密运算就可以构造出MAC码。而对于1Mb的消息数据,分组长度为128比特采用CBC_MAC则需要做8192次加密运算,同时CBC_MAC的加密运算还不支持并行计算。因此本发发明的方法一方面可以实现并行处理,另外一方面降低了加密运算的次数,降低了系统的开销。
附图说明
图1为本发明的采用分组方式构造MAC码的方法流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了便于描述,本发明中表示n比特的向量集,
Figure DEST_PATH_IMAGE015
称为字节,
Figure 553219DEST_PATH_IMAGE016
称为字;表示比特异或运算。+表示模加法。
Figure 346732DEST_PATH_IMAGE018
表示比特(字)循环左移i比特。
如图1所示的采用分组方式构造MAC码的方法流程图。本发明公开了一种采用分组方式构造MAC码的方法,其具体包含以下步骤:1.设定第一个分组的初始密钥,并根据第一个分组的初始密钥构造出后续N-1个分组的密钥,得到N个密钥分组;将原始消息填充为n个长度固定的消息分组;2.依序采用密钥分组加密对应的消息分组,第一个密钥分组加密第一个消息分组,第二个密钥分组加密第二个消息分组,依次类推,最后将加密结果进行异或运算,得到MAC码。上述构造MAC码的方法每一个分组加密的过程都可以并行运行,同时减少了构造MAC码过程中加密运算的次数,降低了系统的开销,对于任何长度的数据最多也只需要进行N次加密运算就可以构造出MAC码。而对于1Mb的消息数据,分组长度为128比特采用CBC_MAC则需要做8192次加密运算,同时CBC_MAC的加密运算还不支持并行计算。因此本发发明的方法一方面可以实现并行处理,另外一方面降低了加密运算的次数,降低了系统的开销。
更进一步地,上述方法还包括,当n大于N时,将每个消息分组表示成m个消息片,并将n*m个消息片压缩成N*m个消息片。在消息长度较长,消息分组数量大于密钥分组数量时,采用将消息分组压缩为N个,对应N个密钥,并进行相应的密码运算,使得本发明的方法即使在消息长度较长的情况下,也只需要进行N次密码运算。
更进一步地,上述方法中消息片压缩和密钥构造同时进行。增加了系统运行的速度,使得更加快速地构造出MAC码。
更进一步地,上述N等于4,密钥分组的长度为128比特,消息分组的长度为128比特,消息片的长度为32比特。分为4组密钥一方面使得信息的安全性得到保障,另外一方面也保证了密码算法的效率。本发明在用于处理长度较长的消息时具有特别的优势,故将密钥的分组长度设定为128比特,对应消息分组的长度也为128比特。
更进一步地,上述步骤1具体为设定第一个分组的初始密钥
Figure 527046DEST_PATH_IMAGE001
;则后续三个分组的密钥
Figure 219059DEST_PATH_IMAGE002
Figure 145951DEST_PATH_IMAGE003
分别为
Figure 465440DEST_PATH_IMAGE006
Figure 678246DEST_PATH_IMAGE007
其中T为循环将位移动设定的位数,S为查找设定的位进行设定的替换,M为加法运算,为随机产生的常数,L为将顺序进行设定的变化。 
T循环变化为将位循环移动设定的位数,例如输入,输出
Figure 781518DEST_PATH_IMAGE020
Figure DEST_PATH_IMAGE021
S查找为根据需要将每一个位替换为设定的值:输入
Figure 635073DEST_PATH_IMAGE022
,输出
Figure DEST_PATH_IMAGE023
Figure 903768DEST_PATH_IMAGE024
Figure DEST_PATH_IMAGE025
加法
Figure 526379DEST_PATH_IMAGE026
。输入,输入
Figure 186348DEST_PATH_IMAGE020
。输出
Figure 193487DEST_PATH_IMAGE028
Figure DEST_PATH_IMAGE029
常数
Figure 732921DEST_PATH_IMAGE030
,需要满足随机性要求,产生方法不做具体要求,可以取的小数点后384比特,也可以取3的3次立方根后的384比特等等方法。根据上述方法构造出的三个分组的密钥和原有的初始密钥完全不同,保证了密码算法的安全性。
更进一步地,上述压缩消息片的过程具体为:
Figure 613153DEST_PATH_IMAGE009
其中,
Figure 51087DEST_PATH_IMAGE010
Figure 649866DEST_PATH_IMAGE011
分别为n个分组的消息片和为4个分组的消息片;
矩阵A是m xm 的矩阵,其中
Figure 60119DEST_PATH_IMAGE012
;矩阵B是n x4 的矩阵,其中
Figure 360519DEST_PATH_IMAGE013
矩阵A和B是数,矩阵W是字(32比特),数n和字W相乘,表示字W的循环左移n位,即W<<<n。矩阵乘中的加法表示异或运算。经过消息压缩后,得到4个分组。消息压缩得到消息片
Figure DEST_PATH_IMAGE031
,将字
Figure 223433DEST_PATH_IMAGE031
分成4个分组,第一个分组是
Figure 634691DEST_PATH_IMAGE032
,第二个分组是
Figure DEST_PATH_IMAGE033
,第三个分组是
Figure 633871DEST_PATH_IMAGE034
,第四个分组是
Figure DEST_PATH_IMAGE035
。将这4个分组分别用密钥加密,再将4个加密结果做异或运算,得到MAC码。
本发明还公开了一种采用分组方式构造MAC码的系统,其具体包括密码构造模块,消息处理模块、MAC码生成模块;
所述密码构造模块用于设定第一个分组的初始密钥,并根据第一个分组的初始密钥构造出后续N-1个分组的密钥,得到N个密钥分组;
所述消息处理模块用于将原始消息填充为n个长度固定的消息分组;
所述MAC码生成模块用于依序采用密钥分组加密对应的消息分组,第一个密钥分组加密第一个消息分组,第二个密钥分组加密第二个消息分组,依次类推,最后将加密结果进行异或运算,得到MAC码。
上述构造MAC码的系统每一个分组加密的过程都可以并行运行,同时减少了构造MAC码过程中加密运算的次数,降低了系统的开销,对于任何长度的数据最多也只需要进行N次加密运算就可以构造出MAC码。
上述说明示出并描述了本发明的一个优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

Claims (10)

1.一种采用分组方式构造MAC码的方法,其具体包含以下步骤:1.设定第一个分组的初始密钥,并根据第一个分组的初始密钥构造出后续N-1个分组的密钥,得到N个密钥分组;将原始消息填充为n个长度固定的消息分组;2.依序采用密钥分组加密对应的消息分组,第一个密钥分组加密第一个消息分组,第二个密钥分组加密第二个消息分组,依次类推,最后将加密结果进行异或运算,得到MAC码。
2.如权利要求1所述的采用分组方式构造MAC码的方法,其特征在于所述方法还包括当n大于N时,将每个消息分组表示成m个消息片,并将n*m个消息片压缩成N*m个消息片。
3.如权利要求2所述的采用分组方式构造MAC码的方法,其特征在于所述消息片压缩和密钥构造同时进行。
4.如权利要求3所述的采用分组方式构造MAC码的方法,其特征在于所述N等于4。
5.如权利要求4所述的采用分组方式构造MAC码的方法,其特征在于所述密钥分组的长度和消息分组的长度分别为128比特。
6.如权利要求5所述的采用分组方式构造MAC码的方法,其特征在于所述消息片的长度为32比特。
7.如权利要求6所述的采用分组方式构造MAC码的方法,其特征在于所述步骤1中构造密钥具体包括以下步骤:设定第一个分组的初始密钥                                                
Figure 201210465402X100001DEST_PATH_IMAGE001
;则后续三个分组的密钥
Figure 423184DEST_PATH_IMAGE002
Figure 201210465402X100001DEST_PATH_IMAGE003
Figure 402641DEST_PATH_IMAGE004
分别为:
Figure 201210465402X100001DEST_PATH_IMAGE005
Figure 201210465402X100001DEST_PATH_IMAGE007
其中T为循环将位移动设定的位数,S为查找设定的位进行设定的替换,M为加法运算,
Figure 263073DEST_PATH_IMAGE008
为随机产生的常数,L为将顺序进行设定的变化。 
8.如权利要求7所述的采用分组方式构造MAC码的方法,其特征在于所述压缩消息片的过程具体为:
Figure 201210465402X100001DEST_PATH_IMAGE009
其中,
Figure 139762DEST_PATH_IMAGE010
Figure 201210465402X100001DEST_PATH_IMAGE011
分别为n个分组的消息片和为4个分组的消息片;
矩阵A是m xm 的矩阵,其中
Figure 775274DEST_PATH_IMAGE012
;矩阵B是n x4 的矩阵,其中
Figure DEST_PATH_IMAGE013
9.一种采用分组方式构造MAC码的系统,其特征在于具体包括密码构造模块,消息处理模块、MAC码生成模块;
所述密码构造模块用于设定第一个分组的初始密钥,并根据第一个分组的初始密钥构造出后续N-1个分组的密钥,得到N个密钥分组;
所述消息处理模块用于将原始消息填充为n个长度固定的消息分组;
所述MAC码生成模块用于依序采用密钥分组加密对应的消息分组,第一个密钥分组加密第一个消息分组,第二个密钥分组加密第二个消息分组,依次类推,最后将加密结果进行异或运算,得到MAC码。
10.如权利要求9所述的采用分组方式构造MAC码的系统,其特征在于所述消息处理模块包括消息压缩模块,当n大于N时,将每个消息分组表示成m个消息片,所述消息压缩模块用于将n*m个消息片压缩成N*m个消息片。
CN201210465402.XA 2012-11-19 2012-11-19 一种采用分组方式构造mac码的方法及系统 Active CN102946315B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210465402.XA CN102946315B (zh) 2012-11-19 2012-11-19 一种采用分组方式构造mac码的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210465402.XA CN102946315B (zh) 2012-11-19 2012-11-19 一种采用分组方式构造mac码的方法及系统

Publications (2)

Publication Number Publication Date
CN102946315A true CN102946315A (zh) 2013-02-27
CN102946315B CN102946315B (zh) 2015-08-26

Family

ID=47729224

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210465402.XA Active CN102946315B (zh) 2012-11-19 2012-11-19 一种采用分组方式构造mac码的方法及系统

Country Status (1)

Country Link
CN (1) CN102946315B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103957225A (zh) * 2014-05-26 2014-07-30 飞天诚信科技股份有限公司 一种处理扩展安全报文的方法及装置
CN104113543A (zh) * 2014-07-18 2014-10-22 中国科学院软件研究所 一种基于分组密码的消息鉴别方法
CN106559218A (zh) * 2015-09-29 2017-04-05 中国电力科学研究院 一种智能变电站计量数据的安全采集方法
CN114465820A (zh) * 2022-03-31 2022-05-10 京东方科技集团股份有限公司 数据加密方法、数据加密设备、电子设备、程序及介质
CN114513311A (zh) * 2022-02-25 2022-05-17 上海芯钛信息科技有限公司 一种改进消息认证码算法的方法、装置、设备和介质
CN116319111A (zh) * 2023-05-24 2023-06-23 北京中超伟业信息安全技术股份有限公司 一种基于进化算法的数据链式传输方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101202623A (zh) * 2006-11-13 2008-06-18 韩国电子通信研究院 消息验证码产生方法、验证/加密和验证/解密方法
CN101594227A (zh) * 2008-05-30 2009-12-02 华为技术有限公司 数据加密和解密的方法、装置及通信系统
CN101938351A (zh) * 2010-09-16 2011-01-05 北京航空航天大学 一种实现分组密码加密的密钥扩展方法
US20110138182A1 (en) * 2008-08-19 2011-06-09 Nxp B.V. Method for Generating a Cipher-based Message Authentication Code

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101202623A (zh) * 2006-11-13 2008-06-18 韩国电子通信研究院 消息验证码产生方法、验证/加密和验证/解密方法
CN101594227A (zh) * 2008-05-30 2009-12-02 华为技术有限公司 数据加密和解密的方法、装置及通信系统
US20110138182A1 (en) * 2008-08-19 2011-06-09 Nxp B.V. Method for Generating a Cipher-based Message Authentication Code
CN101938351A (zh) * 2010-09-16 2011-01-05 北京航空航天大学 一种实现分组密码加密的密钥扩展方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103957225A (zh) * 2014-05-26 2014-07-30 飞天诚信科技股份有限公司 一种处理扩展安全报文的方法及装置
CN103957225B (zh) * 2014-05-26 2017-03-29 飞天诚信科技股份有限公司 一种处理扩展安全报文的方法及装置
CN104113543A (zh) * 2014-07-18 2014-10-22 中国科学院软件研究所 一种基于分组密码的消息鉴别方法
CN104113543B (zh) * 2014-07-18 2017-03-15 中国科学院软件研究所 一种基于分组密码的消息鉴别方法
CN106559218A (zh) * 2015-09-29 2017-04-05 中国电力科学研究院 一种智能变电站计量数据的安全采集方法
CN114513311A (zh) * 2022-02-25 2022-05-17 上海芯钛信息科技有限公司 一种改进消息认证码算法的方法、装置、设备和介质
CN114465820A (zh) * 2022-03-31 2022-05-10 京东方科技集团股份有限公司 数据加密方法、数据加密设备、电子设备、程序及介质
CN116319111A (zh) * 2023-05-24 2023-06-23 北京中超伟业信息安全技术股份有限公司 一种基于进化算法的数据链式传输方法及系统

Also Published As

Publication number Publication date
CN102946315B (zh) 2015-08-26

Similar Documents

Publication Publication Date Title
Aljawarneh et al. A resource-efficient encryption algorithm for multimedia big data
US8175265B2 (en) Systems and methods for implementing block cipher algorithms on attacker-controlled systems
CN106850221B (zh) 信息加密、解密方法及装置
US10009171B2 (en) Construction and uses of variable-input-length tweakable ciphers
CN109639428B (zh) 从位混合器构造安全散列函数的方法
CN101202623B (zh) 消息验证码产生方法、验证/加密和验证/解密方法
CN102946315B (zh) 一种采用分组方式构造mac码的方法及系统
CN104333446B (zh) 一种新型超轻量级qtl分组密码实现方法
WO2014136386A1 (ja) タグ生成装置、タグ生成方法およびタグ生成プログラム
US11463235B2 (en) Encryption device, encryption method, program, decryption device, and decryption method
US20140317407A1 (en) Incremental mac tag generation device, method, and program, and message authentication device
CN110880967B (zh) 采用分组对称密钥算法对多消息并行加解密方法
CN101826959B (zh) 一种面向字节的密钥流生成方法及加密方法
CN103414552A (zh) 一种利用二叉树遍历方式进行加密、解密方法及装置
CN116488795B (zh) 一种gcm-aes处理方法和装置
Abbas et al. An efficient implementation of PBKDF2 with RIPEMD-160 on multiple FPGAs
CN106921486A (zh) 数据加密的方法和装置
CN105162580A (zh) 基于ofb模式和分组密码vh的轻量级流密码技术vho
CN101262334A (zh) 蓝牙数据传输加密方法
Leon et al. Performance analysis of the confidentiality security service in the IEEE 802.11 using WEP, AES-CCM, and ECC
CN112737767A (zh) 抗差分功耗分析与时间攻击的消息认证码生成方法及系统
Mahajan et al. Hybrid Methods for Increasing Security of IoT and Cloud Data
CN108616351A (zh) 一种全动态加密解密方法及加密解密装置
US20170366355A1 (en) Parity check message authentication code
Tsantikidou et al. Minimal Resource Required E-Health System with End-to-End Authenticated Encryption Mechanism

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