《信息安全技术 杂凑函数 第1部分:总则.docx》由会员分享,可在线阅读,更多相关《信息安全技术 杂凑函数 第1部分:总则.docx(12页珍藏版)》请在第一文库网上搜索。
1、ICS35.030CCS180中华人民共和OBI家标准GB/T18238.1202X代替GB/T18238.12000信息安全技术杂凑函数第1部分:总则Informationsecuritytechno1ogyHash-functions一Part1:Genera1(ISO/IEC10118-1:2016,Informationtechno1ogy-Securitytechniques一Hash-functions一Part1:Genera1,MOD)(征求意见稿)2023年6月16日在提交反馈意见时,请将您知道的相关专利连同支持性文件一并附上。XXXX-XX-XX发布XXXX-XX-XX实施
2、国家市场监督管理总局关在国家标准化管理委员会发布目次前言11引言IV1范围12规范性引用文件13术语与定义14符号24.1 一般符号24.2 编码约定35要求36杂凑函数的通用模型36. 1概述36.2 杂凑运算36. 2.1概述37. 2.2步骤1(填充)38. 2.3步骤2(分割)39. 2.4步骤3(迭代)410. 2.5步骤4(输出变换)46.3 通用模型的使用4附录A(规范性附录)填充方法5附录B(资料性附录)安全性注意事项6参考文献7本文件按照GB/T1.12023标准化工作导则第1部分:标准化文件的结构和起草规则的规定起草。本文件是GB/T18238信息安全技术杂凑函数的第1部分
3、。GB/T18238已经发布了以下部分:一第1部分:总则;第2部分:采用分组密码的杂凑函数;第3部分:专门设计的杂凑函数。本文件代替GB/T18238.1-2000信息技术安全技术散列函数第1部分:概述,与GB/T18238.12000相比,除结构调整和编辑性改动外,主要技术变化如下:a)增加了GB/T250692023规范性引用文件(见第2章);b)更改了术语“无碰撞散列函数”为“抗碰撞杂凑函数”(见3.1,2000年版的2.1);c)更改了术语“散列码”为“杂凑值”(见3.3,2000年版的2.3);d)增加了术语“输出变换”、“轮函数”等(见第3章);e)增加了符号与、Di.Hi.h、1
4、1,12、九、q、T、(见第4章);f)增加了第6章“杂凑函数的通用模型”(见第6章);g)删除了附录A关于初始化值的指南、附录C参考标准(见2000年版的附录A、附录C);h)删除了附录B中填充方法1,将填充方法2调整为填充方法1,增加了填充方法2;将附录B调整为附录A(见附录A.3,2000年版的附录B);i)增加了资料性附录B,介绍安全性注意事项(见附录B)。本文件修改采用ISO/IEC10118-1:2016信息技术安全技术杂凑函数第1部分:总则和ISO/IEC10118-1:2016/Amd.1:2023信息技术安全技术杂凑函数第1部分:总则补篇1:海绵函数的填充方法。本文件与ISO
5、/IEC10118T:2016及ISO/IEC10118T:2016/Amd.1:2023的技术差异及原因如下:一增加了“引言”,将“范围”中关于杂凑函数的介绍内容移至“引言”; 增加了规范性引用文件GB/T250692023(见第3章); 增加了符号小q(见第4章); 删除了规范性附录B“ISO/IEC10118(所有部分)采纳杂凑函数的原则”;一删除了ISO/IEC10118-1:2016/Amd.1:2023的填充方法3,因为本系列文件规定的杂凑函数未使用该填充方法。本文件做了下列编辑性改动:一为与我国技术标准体系协调,将标准名称更改为信息安全技术杂凑函数第1部分:总则; 增加了ISO/
6、IEC10118-1:2016111&1:2023的内容; 删除了资料性附录C.3中的示例1; 更改了参考文献。本文件由全国信息安全标准化技术委员会(SAC/TC260)提出并归口。本文件起草单位:中电科网络安全科技股份有限公司、国家密码管理局商用密码检测中心、中国电子技术标准化研究院、中国科学院信息工程研究所、中国科学院软件研究所、中国科学院大学、山东大学、西安西电捷通无线网络通信股份有限公司、格尔软件股份有限公司、北京信安世纪科技股份有限公司、山东得安信息技术有限公司、华为技术有限公司、北京江南天安科技有限公司、智巡密码(上海)检测技术有限公司、北京海泰方圆科技股份有限公司。本文件主要起草
7、人:本文件及其所代替文件的历次版本发布情况为:2000年首次发布为GB/T18238.12000;一一本次为第一次修订。杂凑函数使用特定的算法将任意长度(通常设有上限)的比特串映射到固定长度的比特串。杂凑函数可以用于:将消息压缩为摘要,用于数字签名机制的输入;一一向用户承诺一个给定的比特串,而不泄露该比特串。注:GB/T18238(所有部分)中规定的杂凑函数不涉及密钥的使用。但是,这些杂凑函数可以与密钥搭配使用,以构建消息鉴别码(MeSSageAuthenticationCode,MC)0消息鉴别码提供数据源鉴别和消息完整性保护。GB/T15852.2给出了杂凑函数计算MAC的技术。GB/T1
8、8238分为以下部分:第1部分:总则该部分规定了杂凑函数的要求和通用模型,指导GB/T18238的其它部分;一一第2部分:采用分组密码的杂凑函数该部分规定了采用分组密码的杂凑函数;第3部分:专门设计的杂凑函数该部分规定了专门设计的杂凑函数。信息安全技术杂凑函数第1部分:总则1范围本文件规定了杂凑函数的要求和通用模型,描述了杂凑运算的四个步骤,并给出了通用模型的使用方法。本文件包含GB/T18238(所有部分)所共用的定义、符号和要求。2规范性引用文件下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅所注日期的版本适用于本文件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适
9、用于本文件。GB/T250692023信息安全技术术语3术语与定义GB/T250692023界定的以及下列术语和定义适用于本文件。抗碰撞杂凑函数co1Iision-resistanthash-function抗碰撞散列函数满足如下性质的杂凑函数:找出映射到同一输出的任何两个不同输入在计算上是不可行的。注:计算可行性依赖于特定安全要求和环境。来源:GB/T250692023,3.322,有修改数据串datastring杂凑函数的输入比特串。杂凑值hashva1ue密码杂凑运算的结果。来源:GB/T250692023,3.764杂凑函数hash-function散列函数将任意长比特串映射为定长比特
10、串的函数,满足下列性质:一给定一个输出比特串,寻找一个输入比特串来产生该输出比特串,在计算上不可行;一给定一个输入比特串,寻找另一个不同的输入比特串来产生相同的输出比特串,在计算上不可行。来源:GB/T250692023,3.505初始化值initia1izationvaIueIV在密码变换中,为增强安全性或使密码设备同步而引入的用于数据变换的起始数据。来源:GB/T250692023,3.80输出变换outputtransformation在算法中,对迭代操作的输出所进行的变换。填充padding向某一数据串附加额外比特的操作。来源:GB/T250692023,3.598轮函数round-f
11、unction构成杂凑函数的主要部件之一,将两个长度分别为1I和6的比特串转换为一个长度为G的比特串,被迭代地用于杂凑函数的计算过程。注1:轮函数记为。(一)。该函数输入长度为1I的数据串和长度为G的前一个轮函数的输出值(或初始化值),输出一个长度为G的比特串。注2:在该领域的文献中,多个术语具有与轮函数相同或相似的含义。例如:压缩函数和迭代函数。4符号4.1 一般符号下列符号适用于本文件。当B是由多个Tn比特字构成的序列时,用。0)表示B的第i个Tn比特字。特别地,当m=8时,Bi是8的第i个字节。D:数据串。Di:数据。经填充后的第i个n比特分组。H:杂凑值。Hi:用于存储杂凑运算中间结果
12、的比特串,其长度为12。h:杂凑函数。IV:初始化值。11:输入到轮函数”的两个比特串中,第一个比特串的比特长度。12:输入到轮函数。的两个比特串中,第二个比特串的比特长度,也是轮函数。输出值的比特长度,以及初始值W的比特长度。1x:比特串X的比特长度。n:n比特分组密码算法E的分组长度。q:经过填充和分割操作后,输入数据比特串。的分组个数。T:输出变换,比如截短。Xnr:按顺序将比特串X和y连接所构成的比特串。X匕比特串X和比特串y的异或(其中1X=1y)。:轮函数。4.2 编码约定如果需要定义“最高有效比特/字节”和“最低有效比特/字节”(例如,将比特/字节串视为数值),则一个分组的最左边
13、的比特/字节被视为最高有效比特/字节。5要求实体在使用杂凑函数前,应将数据串表示为统一形式,使得即使各个实体环境中表示数据串的方式可能不同,但各方操作的比特串是完全相同的。为使得数据串的长度达到要求,GB/T18238(所有部分)中规定的杂凑函数需进行填充操作。具体填充方法可采用附录A中描述的方法。4.3 函数的通用模型6.1 概述GB/T18238(所有部分)中规定的杂凑函数要求使用轮函数0。GB/T18238的后续部分中规定的杂凑函数输出长度为比特的杂凑值,其中1H不大于轮函数0中的入26.2 杂凑运算6.2.1 概述在GB/T18238后续部分规定的杂凑函数使用轮函数0和长度为6的初始化
14、值/V。对于给定的弧IV的值应是固定的。通过以下四个步骤计算数据串。的杂凑值H。6.2.2步骤1(填充)对数据串。进行填充操作,以确保其长度是G的整数倍。具体方法可采用附录A中描述的方法。6.2.3步骤2(分割)填充后的数据串。被分割成多个11比特长的分组其中,表示第一个分组,。2表示第二个分组,以此类推。填充和分割过程如图1所示。添加的填充将被杂凑的数据填充分割图1填充和分割示意图6.2.4步骤3(迭代)令%=IV,以如下方式迭代计算长度为G比特的串的田,/。对i=1,q,依次计算:Hi=(KDi,H-)6.2.5步骤4(输出变换)对步骤3的输出/执行变换T,得到1H比特的杂凑值H。示例:变
15、换T可以是截短操作。6.3通用模型的使用GB/T18238的后续部分规定了基于通用模型的杂凑函数的示例。在每个示例中,描述一个具体杂凑函数都需要定义以下内容:参数G,12;一一填充方法;初始化值/V;一一轮函数0;输出变换7。在实际中使用通用模型所定义的杂凑函数还需要选择参数附录A(规范性附录)填充方法A.1概述GBT18238其它部分所规定的,杂凑值的计算可能需要选择一种填充方法,使得填充后的数据串的比特长度为的整数倍。本附录列出了两种填充方法。如存在填充,这些填充比特串无需随原消息存储或发送。验证者应知道填充比特串是否已经被存储或发送,以及使用的是何种填充方法。A.2方法1在数据串右侧填充一个比特“1”,然后在所得到的比