GB T 15852.1-2008 信息技术.安全技术.消息鉴别码.第1部分 采用分组密码的机制.pdf
《GB T 15852.1-2008 信息技术.安全技术.消息鉴别码.第1部分 采用分组密码的机制.pdf》由会员分享,可在线阅读,更多相关《GB T 15852.1-2008 信息技术.安全技术.消息鉴别码.第1部分 采用分组密码的机制.pdf(26页珍藏版)》请在麦多课文档分享上搜索。
1、lCS 35040L 80 a亘中华人民共和国国家标准GBT 1 58521-2008ISOIEC 97971:1 999代替GBl5852 1995信息技术 安全技术 消息鉴别码第1部分:采用分组密码的机制2008-07-02发布Information technology-Security techniques-Message Authentication Codes(MACs)-Part 1:Mechanisms using a block cipher(ISOIEC 97971:1999,IDT)2008-1201实施丰瞀髁紫瓣警麟瞥星发布中国国家标准化管理委员会厘哪!GBT 1585
2、21-2008ISOEC 97971:1999前言引言1范围2规范性引用文件3术语和定义4符号和记法5要求6 MAC算法的模型一61消息填充62数据分割一63初始变换64迭代应用分组密码65输出变换66截断操作7 MAC算法71 MAC算法172 MAc算法273 MAC算法374 MAC算法4一75 MAC算法5一76 MAC算法6一附录A(资料性附录)例子A1 MAC算法1一A2 MAC算法2-A3 MAC算法3-A4 MAC算法4A5 MAC算法5A6 MAC算法6附录B(资料性附录)MAc参考文献目 次算法的安全性分析I111233444445555666789mn他H坫M毖刖 吾GB
3、T 158521-2008ISOIEC 97971:1999GBT 15852信息技术安全技术消息鉴别码分为2个部分:第1部分:采用分组密码的机制;第2部分:采用专用杂凑函数的机制。本部分是GBT 15852的第1部分,等同采用ISOIEC 97971:1999信息技术安全技术 消息鉴别码第1部分:采用分组密码的机制。除对国际标准中笔误做了修改外,也做了编辑性的修改并更新了参考文献。本部分是GB 15852 1995信息技术安全技术 用块密码算法作密码校验函数的数据完整性机制的修订版。本部分代替GB 15852 1995。与GB 15852 1995相比较,本部分增加了一种填充方法和三种消息鉴
4、别码(MAC)算法。GB 15852-1995附录A中的可选进程,在本部分中被调整到标准主体内。本部分的附录A和附录B是资料性附录。本部分由全国信息安全标准化技术委员会提出并归口。本部分修订单位:中国科学院软件研究所、信息安全国家重点实验室。本部分主要修订人:吴文玲、王鹏、张立廷、陈华。本部分所代替标准历次版本发布情况:GB 15852 1995GBT 158521-2008ISOIEC 97971 1 1999引 言本部分规定的前三种MAC算法通常称作CBC MAC。在ANSI X99中所规定的MAC算法是本部分中MAC算法的一种特例(当n一64、m一32时,使用MAC算法1、填充方法1和分
5、组密码DEA(见ANSI X392:1981)。在ANSI X919中所规定的MAC算法也是本部分中MAC算法的一种特例(当n一64、m一32时,使用MAC算法1或3、填充方法1和分组密码DEA(见ANSI X392:1981)。第4种MAC算法是CBC-MAC的一个变种,它使用了_个特殊的初始变换。当MAC算法的密钥长度是分组密码密钥长度两倍的时候,建议使用MAC算法4。第5种MAC算法并行使用MAC算法1,然后把所得到的两个结果相异或。第6种MAC算法并行使用MAC算法4,然后把所得到的两个结果相异或。本部分例子中提及的分组密码均为举例性说明,具体使用时均须采用国家密码管理部门批准的相应分
6、组密码。GBT 158521-2008IS0IEC 97971:1999信息技术安全技术消息鉴别码第1部分:采用分组密码的机制1范围GBT 15852的本部分规定了六种采用分组密码的消息鉴别码算法。这些消息鉴别码算法可用作数据完整性检验,检验数据是否被非授权地改变。同样这些消息鉴别码算法也可用作消息鉴别,保证消息源的合法性。数据完整性和消息鉴别的强度依赖于密钥的长度及其保密性、分组密码的算法强度以及分组长度、消息鉴别码的长度和具体的消息鉴别码算法。本部分适用于任何安全体系结构、进程及应用的安全服务。2规范性引用文件下列文件中的条款通过GBT 15852的本部分的引用而成为本部分的条款。凡是注日
7、期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本部分,然而,鼓励根据本部分达成协议的各方研究是否可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本部分。GBT 938721995信息处理系统开放系统互连基本参考模型第2部分:安全体系结构(idt ISO 74982:1989)GBT 1584312008信息技术 安全技术 实体鉴别 第1部分:概述(ISOIEC 9798 1:1997,IDT)GBT 17964-2008信息安全技术分组密码算法的工作模式3术语和定义下列术语和定义适用于本部分。31 本部分采用GBT 938721995中定义的如下术语。
8、311数据完整性data integrity数据没有被非授权地修改或破坏的性质。32下列术语和定义适用于本部分。321分组block一种定义了长度的比特串。322分组密码密钥block cipher key控制分组密码运算的密钥。323初始变换initial transformation消息鉴别码算法起始时所应用的函数。324消息鉴别码(MAC)算法密钥MAC algorithm key一种用于控制消息鉴别码算法运算的密钥。325消息鉴别码message authentication code(MAC)利用对称密码技术和秘密密钥,由消息所导出的数据项。任何持有这一秘密密钥的实体,可利用消】GB
9、T 158521-2008IS0IEC 97971:1999息鉴别码检查消息的完整性和始发者。326消息鉴别码算法message authentication code algorithm消息鉴别码算法简称MAC算法,其输入为密钥和消息,输出为一个固定长度的比特串,满足下面两个性质:对于任何密钥和消息,MAC算法都能够快速有效地计算。对于任何固定的密钥,攻击者在没有获得密钥信息的情况下,即使获得了一些(消息、MAC)对,对任何新的消息预测其MAC在计算上是不可行的。注1:一个MAC算法有时被称作一个密码校验函数。注2:计算不可行性依赖于使用者具体的安全要求及其环境。327输出变换output
10、transformation应用在算法中,对迭代操作的输出所进行的变换。33本部分采用GBT 158431 2008中定义的如下术语。331密文 ciphertext经变换,信息内容被隐藏起来的数据。332解密decipherment一个密文转换为一个明文的处理333加密 encipherment为产生密文,即隐藏相应数据的信息内容,而利用密码算法对数据进行的(可逆)变换。334密钥key一种用于控制密码变换操作(例如加密、解密、密码检验函数计算、签名生成或签名验证)的符号序列。335明文plaintext待加密的数据。34本部分采用GBT 17964-2008中定义的如下术语。341n比特分
11、组密码 nbit block cipher分组长度为n比特的分组密码。4符号和记法下列符号和记法适用于本部分。DDjd*(C)eK(P)gGHI最五M输人MAC算法的比特串;填充操作后,比特串D的一个消息块;使用分组密码e和密钥K对密文C进行解密使用分组密码e和密钥K对明文P进行加密输出变换;输出变换g的输出;MAC算法运算中的中间变量;初始变换;分组密码的密钥长度;MAc算法的密钥长度;GBT 158521-2008ISOIEC 97971:1999K,K,j,K“,K。,K,K”,K:,K。7,K2“分组密码的密钥;L 填充方法3中的表示长度的消息块;L。 比特串D的长度;m MAc值的长
12、度;n 分组密码的分组长度q 填充和分割操作之后比特串D的消息块个数;Jx 比特串x最左边j比特串;xoy 比特串x和比特串y的异或操作;xlly 比特串x和比特串y的连接;:一 MAC算法中使用的赋值符号,表示符号左边的值等于符号右边的值。5要求采用本部分MAC算法的使用者应当选择:1)分组密码P;2)从61中选取一种填充方法;3)从71中选取一种MAc算法;4)MAC的长度m;5)一种密钥诱导方法;MAC算法4、5和6需要此方法,MAC算法2也可能需要。MAc的长度m应该是一个正整数并且不大于分组长度。如果使用填充方法3,那么比特串D的比特长度应该小于2“。对于具体分组密码e、填充方法、M
13、AC算法、m的值以及密钥诱导方法(如果需要)的选择超出了本部分所规定的范围。注:上述选择将影响MAC算法的安全强度,具体请参考附录B。生成MAC和验证MAC应当使用同样的密钥。如果消息也加密,那么MAC算法密钥应当不同于用作加密的密钥。6 MAC算法的模型MAC算法的应用需要如下六步操作:消息填充、数据分割、初始变换、迭代应用分组密码、输出变换和截断操作。其中,第3步至第6步如图1所示。图1 MAC算法模型蓦爿旦华GBT 158521-2008ISOIEC 97971:199961消息填充在这一步骤中,用额外的比特串作为前缀或后缀对消息比特串D进行填充,使得填充后比特串的长度是n的整数倍。根据
14、选择的填充方法,填充比特串只用来计算MAC,所以这些填充比特串不必随原消息存储或发送。MAC的验证者应当知道填充比特串是否已经被存储或发送,以及使用的是何种填充方法。本部分规定了三种填充方法,其中的任何一种都可以被用在本部分所规定的六种MAC算法中。611填充方法1在消息比特串D的右侧填充0,尽可能少填充(甚至不填充),使填充后比特串的长度是n的整数倍。注1:面对简单伪造攻击,使用填充方法1的MAC算法可能是不安全的。详细信息参见附录B。注2;如果消息比特串D是空串,那么填充方弦1规定对其填充”个“0”。612填充方法2在消息比特串D的右侧填充一个比特“1”,然后在所得到的比特串右侧填充0,尽
15、可能少填充(甚至不填充),使填充后比特串的长度是n的整数倍。613填充方法3在消息比特串D的右侧填充“0”,尽可能少填充(甚至不填充),使填充后比特串的长度是n的整数倍。然后在所得到的比特串左侧填充一个消息块L。消息块L由尽可能少的“o”和比特串D长度Lo的二进制表示组成,其中位于LD二进制表示的左侧的“o”尽可能少,且使L的长度为”比特。L最右端的比特和L。的二进制表示中的最低位相对应。注:如果在计算MAC之前不知比特串的长度,则填充方法3不适用。62数据分割这一步骤中,把填充后的比特串分割成q个n比特块D z,D z,D。这里D,表示填充后比特串的第一个n比特,D:表示随后的n个比特,以此
16、类推。63初始变换初始变换J用来处理填充后比特串的第一个n比特块D-以得到H。本部分的六种MAC算法规定使用如下两种初始变换之一。63。1初始变换1初始变换1需要一个分组密码密钥K。按照如下的方法使用密钥K和分组密码e计算H-:Hl:=oK(D1)632初始变换2初始变换2需要两个分组密码密钥K和K”。按照如下的方法使用密钥K和K”,以及分组密码e计算H。:Hl:一8K”(6K(D1)64迭代应用分组密码对比特串D,和H。一。的异或值迭代应用分组密码得到Hz,Hs,H,:H。:一“(D。H。1),i一2,q如果q一1,那么第4步省略。65输出变换对于第4步得到的结果H。(若g一1,则为第3步得
17、到的结果),用输出函数g再处理。本部分规定了三种输出变换。651输出变换l输出变换l是一个恒等变换:G:一H。GBT 158521-2008ISOIEC 97971:1999652输出变换2输出变换2是用密钥K7和分组密码e对H。加密操作:G:一eF(H。)653输出变换3输出变换3首先用密钥K7和分组密码e对H。进行解密操作,然后用密钥K和分组密码e对得到的结果进行加密操作:G:一PK(dF(H。)66截断操作截取G最左边的m比特作为MAC值:MAC:一mG7 MAC算法本部分规定了六种MAC算法。每种MAC算法明确规定了初始变换和输出变换,但是没有明确规定填充方法;每个MAC算法可以结合6
18、1规定的任何一种填充方法使用。注:对填充方法的选择会影响MAC算法的安全强度,详细信息请见附录B。71 MAC算法1MAC算法1使用初始变换1和输出变换1。MAC算法密钥就是分组密码密钥K。MAc算法1如图2所示。MAC图2 MAC算法172 MAC算法2MAC算法2使用初始变换1和输出变换2。MAC算法密钥由两个分组密码密钥K和K8组成。K的值可以由K通过密钥诱导方法生成,但是应当满足K”K。注1:由K推导出K。的一个例子是对K从第一个4比特组开始,每隔4比特交替取补和不变;另外一个例子是通过主密钥生成K和K。注2:若K-K4,一个简单的异或伪造攻击就能够攻击MAC算法2,详细信息请见附录B
19、。注3:若K和K相互独立,MAC算法2针对密钥恢复攻击的安全强度低于MAC算法2采用的密钥长度所应该提供的安全强度,详细信息请见附录B。MAC算法2如图3所示。图3 MAC算法2MAC兰烈翼一GBT 158521-2008ISOIEC 9797-1 1 199973 MAC算法3MAC算法3使用初始变换1和输出变换3。MAC算法密钥由两个分组密码密钥K和K 7组成。密钥K和K 7应当独立选取。若K-K7,MAC算法3和MAC算法1一致。MAC算法3如图4所示。MAC图4 MAC算法374 MAC算法4MAC算法4使用初始变换2和输出变换2。MAC算法密钥由两个分组密码密钥K和K 7组成。密钥K
20、和K应当独立选取。另外,第三个密钥j,由K通过密钥诱导方法得出。密钥K、K7和K”应当互不相同。密钥K和K”用于初始变换2,密钥K和K 7用于输出变换2。注:对K7从第一个4比特组开始,每隔4比特交替取补和不变即是由K7推导出K”的一个例子,另外一个例子是通过主密钥生成K和K”。填充后比特串的长度应当不小于2n,即q2。MAc算法4如图5所示。MAC圈5 MAC算法475 MAC算法5MAC算法5使用两个并行的MAC算法1,分别得到两个中间量MAC。和MAC。MAC算法5的密钥就是分组密码密钥K。两个并行MAC算法1的密钥K。和K:由密钥K生成,而且应当满足K1K2。注:令K-一K,对K从第一
21、个4比特组开始,每隔4比特交替取补和不变生成,即是由K推导出K。和K。的一个例子;另外一个例子是通过密钥K生成K。和K。,而且满足K。K:。6塑一GBT 158521-2008ISOIEC 97971:1999将两个中间量MAC。和MAC2相异或,得到最终的MAC:MAc:一MAcl o MACz76 MAC算法6MAC算法6使用两个并行的MAC算法4,分别得到两个中间量MAC,和MACz。MAC算法6的密钥由两个分组密码密钥K和K 7组成。密钥K和K 7应当独立选取。两个并行MAC算法4的密钥(K,K,7)和(K。,K:7)由主密钥(K,K7)生成,而且应当满足K。K,7、K:K。和(K。,
22、K,7)(K:,K。)。注1:令K。=K、K。7一K7,对K。从第一个4比特组开始,每隔4比特交替取补和不变生成K2,对K,从第一个4比特组开始,每隔4比特交替取补和不变生成Kz 7即是由(K,K)推导出(K,Kt)和(Kz,Kz)的一个例子。注2:MAC算法4在其内部使用一个诱导的密钥K”,意味着MAC算法6总共使用六个密钥(K,KI,Kz”)和(,K。7,K:”)。建议使用前确保六个密钥互不相同。填充后比特串的长度应当不小于2n,即g2。将两个中间量MAC。和MAC2相异或,得到最终的MAC:MAC:一MACl0MACz7GBT 158521-2008ISOIEC 9797-1:1999附
23、录A(资料性附录)例 子本附录提供了使用DEA(见ANSI X392)生成MAC的过程示例。明文是如下的7比特ASCII码字(没有奇偶校验位):比特串1:Nowisthe timeforall一”,比特串2:“Nowisthetimeforit”,其中一表示一个空格。ASCII编码等同于ISO 646所使用的编码。这里使用的两个密钥是K-0123456789ABCDEF(16进制)和K7一FEDCBA9876543210(16进制),其中的密钥奇偶校验比特被省略。诱导密钥的方式是从第一个4比特组开始,每隔4比特交替取补和不变。对于MAC算法1、2、3和4,m一32;对于MAC算法5和6,m一6
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- GB 15852.1 2008 信息技术 安全技术 消息 鉴别 部分 采用 分组 密码 机制

链接地址:http://www.mydoc123.com/p-208997.html