1、Adopted by INCITS (InterNational Committee for Information Technology Standards) as an American National Standard.Date of ANSI Approval: 12/24/2003Published by American National Standards Institute,25 West 43rd Street, New York, New York 10036Copyright 2003 by Information Technology Industry Council
2、 (ITI).All rights reserved.These materials are subject to copyright claims of International Standardization Organization (ISO), InternationalElectrotechnical Commission (IEC), American National Standards Institute (ANSI), and Information Technology Industry Council(ITI). Not for resale. No part of t
3、his publication may be reproduced in any form, including an electronic retrieval system, withoutthe prior written permission of ITI. All requests pertaining to this standard should be submitted to ITI, 1250 Eye Street NW,Washington, DC 20005.Printed in the United States of AmericaReference numberISO
4、/IEC 10118-3:2003(E)ISO/IEC 2003INTERNATIONAL STANDARD ISO/IEC10118-3Second edition2003-05-01Information technology Security techniques Hash-functions Part 3: Dedicated hash-functions Technologies de linformation Techniques de scurit Fonctions de brouillage Partie 3: Fonctions de brouillage ddies IS
5、O/IEC 10118-3:2003(E) PDF disclaimer This PDF file may contain embedded typefaces. In accordance with Adobes licensing policy, this file may be printed or viewed but shall not be edited unless the typefaces which are embedded are licensed to and installed on the computer performing the editing. In d
6、ownloading this file, parties accept therein the responsibility of not infringing Adobes licensing policy. The ISO Central Secretariat accepts no liability in this area. Adobe is a trademark of Adobe Systems Incorporated. Details of the software products used to create this PDF file can be found in
7、the General Info relative to the file; the PDF-creation parameters were optimized for printing. Every care has been taken to ensure that the file is suitable for use by ISO member bodies. In the unlikely event that a problem relating to it is found, please inform the Central Secretariat at the addre
8、ss given below. ISO/IEC 2003 All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized in any form or by any means, electronic or mechanical, including photocopying and microfilm, without permission in writing from either ISO at the address below or I
9、SOs member body in the country of the requester. ISO copyright office Case postale 56 CH-1211 Geneva 20 Tel. + 41 22 749 01 11 Fax + 41 22 749 09 47 E-mail copyrightiso.org Web www.iso.org Published in Switzerland ii ISO/IEC 2003 All rights reserved ISO/IEC 2003 All rights reserved iiiContents PageF
10、oreword.vi1 Scope.12 Normative references 13 Terms and definitions14 Symbols (and abbreviated terms) 24.1 Symbols specified in ISO/IEC 10118-1.24.2 Symbols specific to this part 25 Requirements .36 Model for dedicated hash-functions 47 Dedicated Hash-Function 1 (RIPEMD-160)47.1 Parameters, functions
11、 and constants47.1.1 Parameters47.1.2 Byte ordering convention .47.1.3 Functions 57.1.4 Constants57.1.5 Initializing value .67.2 Padding method.77.3 Description of the round-function78 Dedicated Hash-Function 2 (RIPEMD-128)88.1 Parameters, functions and constants88.1.1 Parameters88.1.2 Byte ordering
12、 convention .88.1.3 Functions 98.1.4 Constants98.1.5 Initializing value .98.2 Padding method.98.3 Description of the round-function99 Dedicated Hash-Function 3 (SHA-1) 109.1 Parameters, functions and constants119.1.1 Parameters119.1.2 Byte ordering convention .119.1.3 Functions 119.1.4 Constants119.
13、1.5 Initializing value .119.2 Padding method.129.3 Description of the round-function1210 Dedicated Hash-Function 4 (SHA-256) 1310.1 Parameters, functions and constants1310.1.1 Parameters1310.1.2 Byte ordering convention .1310.1.3 Functions 1310.1.4 Constants1410.1.5 Initializing value .1410.2 Paddin
14、g method.1410.3 Description of the round-function1411 Dedicated Hash-Function 5 (SHA-512) 1511.1 Parameters, functions and constants15ISO/IEC 10118-3:2003(E) ISO/IEC 10118-3:2003(E) iv ISO/IEC 2003 All rights reserved11.1.1 Parameters. 1511.1.2 Byte ordering convention. 1611.1.3 Functions . 1611.1.4
15、 Constants. 1611.1.5 Initializing value. 1711.2 Padding method 1711.3 Description of the round-function. 1712 Dedicated Hash-Function 6 (SHA-384) . 1812.1 Parameters, functions and constants. 1912.1.1 Parameters. 1912.1.2 Byte ordering convention. 1912.1.3 Functions . 1912.1.4 Constants. 1912.1.5 In
16、itializing value. 1912.2 Padding method 1912.3 Description of the round-function. 1913 Dedicated Hash-Function 7 (WHIRLPOOL) 1913.1 Parameters, functions and constants. 2013.1.1 Parameters. 2013.1.2 Byte ordering convention. 2013.1.3 Functions . 2013.1.4 Constants. 2113.1.5 Initializing value. 2113.
17、2 Padding method 2113.3 Description of the round-function. 22Annex A (informative) Examples. 23A.1 Dedicated Hash-Function 1 23A.1.1 Example 1. 23A.1.2 Example 2. 23A.1.3 Example 3. 23A.1.4 Example 4. 25A.1.5 Example 5. 25A.1.6 Example 6. 25A.1.7 Example 7. 25A.1.8 Example 8. 25A.1.9 Example 9. 28A.
18、1.10 Example 10. 28A.1.11 Example 11. 28A.2 Dedicated Hash-Function 2 28A.2.1 Example 1. 28A.2.2 Example 2. 29A.2.3 Example 3. 29A.2.4 Example 4. 30A.2.5 Example 5. 30A.2.6 Example 6. 30A.2.7 Example 7. 30A.2.8 Example 8. 31A.2.9 Example 9. 33A.2.10 Example 10. 33A.2.11 Example 11. 33A.3 Dedicated H
19、ash-Function 3 34A.3.1 Example 1. 34A.3.2 Example 2. 34A.3.3 Example 3. 34A.3.4 Example 4. 35A.3.5 Example 5. 36A.3.6 Example 6. 36A.3.7 Example 7. 36ISO/IEC 10118-3:2003(E) ISO/IEC 2003 All rights reserved vA.3.8 Example 8 .36A.3.9 Example 9 .39A.3.10 Example 10 .39A.3.11 Example 11 .39A.4 Dedicate
20、d Hash-Function 4.39A.4.1 Example 1 .39A.4.2 Example 2 .40A.4.3 Example 3 .40A.4.4 Example 4 .41A.4.5 Example 5 .42A.4.6 Example 6 .42A.4.7 Example 7 .42A.4.8 Example 8 .42A.4.9 Example 9 .45A.4.10 Example 10 .45A.4.11 Example 11 .46A.5 Dedicated Hash-Function 5.46A.5.1 Example 1 .46A.5.2 Example 2
21、.46A.5.3 Example 3 .46A.5.4 Example 4 .50A.5.5 Example 5 .50A.5.6 Example 6 .50A.5.7 Example 7 .50A.5.8 Example 8 .50A.5.9 Example 9 .51A.5.10 Example 10 .51A.5.11 Example 11 .57A.6 Dedicated Hash-Function 6.57A.6.1 Example 1 .57A.6.2 Example 2 .58A.6.3 Example 3 .58A.6.4 Example 4 .61A.6.5 Example
22、5 .61A.6.6 Example 6 .61A.6.7 Example 7 .62A.6.8 Example 8 .62A.6.9 Example 9 .62A.6.10 Example 10 .62A.6.11 Example 11 .69A.7 Dedicated Hash-Function 7.69A.7.1 Example 1 .69A.7.2 Example 2 .69A.7.3 Example 3 .69A.7.4 Example 4 .72A.7.5 Example 5 .72A.7.6 Example 6 .72A.7.7 Example 7 .72A.7.8 Exampl
23、e 8 .72A.7.9 Example 9 .77Annex B (informative) Formal specifications .78B.0 Introduction 78B.1 Specification of Dedicated Hash-Function 1.78B.1.1 Auxiliary functions.84B.2 Specification of Dedicated Hash-Function 2.84B.3 Specification of Dedicated Hash-Function 3.86Annex C (normative) Object Identi
24、fiers.90Bibliography 91ISO/IEC 10118-3:2003(E) vi ISO/IEC 2003 All rights reservedForeword ISO (the International Organization for Standardization) and IEC (the International ElectrotechnicalCommission) form the specialized system for worldwide standardization. National bodies that are members oISO
25、or IEC participate in the development of International Standards through technical committeesestablished by the respective organization to deal with particular fields of technical activity. ISO and IEC technical committees collaborate in fields of mutual interest. Other international organizations,
26、governmental and non-governmental, in liaison with ISO and IEC, also take part in the work. In the field of informationtechnology, ISO and IEC have established a joint technical committee, ISO/IEC JTC 1. International Standards are drafted in accordance with the rules given in the ISO/IEC Directives
27、, Part 2. The main task of the joint technical committee is to prepare International Standards. Draft InternationaStandards adopted by the joint technical committee are circulated to national bodies for voting. Publication aan International Standard requires approval by at least 75 % of the national
28、 bodies casting a vote. Attention is drawn to the possibility that some of the elements of this document may be the subject of patenrights. ISO and IEC shall not be held responsible for identifying any or all such patent rights. ISO/IEC 10118-3 was prepared by Joint Technical Committee ISO/IEC JTC 1
29、, Information technologySubcommittee SC 27, IT Security techniques. This second edition cancels and replaces the first edition (ISO/IEC 10118-3:1998), which has been technicallrevised. ISO/IEC 10118 consists of the following parts, under the general title Information technology Securitechniques Hash
30、-functions: Part 1: General Part 2: Hash-functions using an n-bit block cipher Part 3: Dedicated hash-functions Part 4: Hash-functions using modular arithmetic Further parts may follow. ISO/IEC 2003 All rights reserved 1Information technology Security techniques Hash-functions Part 3: Dedicated hash
31、-functions 1 ScopeThis part of ISO/IEC 10118 specifies dedicated hash-functions, i.e., specially designed hash-functions. The hash-functions in this part of ISO/IEC 10118 are based on the iterative use of a round-function. Seven distinct round-functions are specified, giving rise to distinct dedicat
32、ed hash-functions.The first and third dedicated hash-functions in clauses 7 and 9 respectively provide hash-codes of lengths up to160 bits; the second in clause 8 provides hash-codes of lengths up to 128 bits; the fourth in clause 10 provideshash-codes of lengths up to 256 bits; the sixth in clause
33、12 provides hash-codes of a fixed length, 384 bits; and thefifth and seventh in clauses 11 and 13 respectively provide hash-codes of lengths up to 512 bits.2 Normative referencesISO/IEC 10118-1: 2000, Information technology Security techniques Hash-functions Part 1: General3 Terms and definitions3.1
34、blocka bit-string of length L1, i.e., the length of the first input to the round-function.3.2worda string of 32 bits used in dedicated hash-functions 1, 2, 3 and 4 of clauses 7, 8, 9 and 10 respectively, or a stringof 64 bits used in dedicated hash-functions 5 and 6 of clauses 11 and 12 respectively
35、.3.3matrixan 8 by 8 matrix in which each entry is a string of 8 bits used in dedicated hash-function 7 of clause 13.The following referenced documents are indispensable for the application of this document. For datedreferences, only the edition cited applies. For undated references, the latest editi
36、on of the referenceddocument (including any amendments) applies. For the purposes of this document, the definitions given in ISO/IEC 10118-1 and the following apply. INTERNATIONAL STANDAR ISO/IEC 10118-3:2003(E)ISO/IEC 10118-3:2003(E)2 ISO/IEC 2003 All rights reserved4 Symbols (and abbreviated terms
37、)4.1 Symbols specified in ISO/IEC 10118-1This part of ISO/IEC 10118 makes use of the following symbols and notations defined in ISO/IEC 10118-1.BiA byte.D Data.H Hash-code.IV Initializing value.L1The length (in bits) of the first of the two input strings to the round-function .L2The length (in bits)
38、 of the second of the two input strings to the round-function , of the output string from theround-function , and of the IV.LXLength (in bits) of a bit-string X. A round-function, i.e., if X, Y are bit-strings of lengths L1and L2respectively, then (X, Y) is the stringobtained by applying to X and Y.
39、X Y Exclusive-or of strings of bits X and Y (where LX= LY).4.2 Symbols specific to this partFor the purpose of this part of ISO/IEC 10118, the following symbols and notations apply:ai, aiSequences of indices used in specifying a round-function.Ai A sequence of constant matrices used in specifying th
40、e round-function defined in clause 13.c0Function taking a string of 64 elements of GF(28) as input, and giving an 8 by 8 matrix with entries from GF(28)as output, used in specifying the round-function defined in clause 13.c1, c2, c3Functions taking an 8 by 8 matrix of elements of GF(28) as input, an
41、d giving an 8 by 8 matrix with entriesfrom GF(28) as output, used in specifying the round-function defined in clause 13.c4Function taking two 8 by 8 matrices of elements of GF(28) as input, and giving an 8 by 8 matrix with entriesfrom GF(28) as output, used in specifying the round-function defined i
42、n clause 13.Ci, CiConstant words used in the round-functions.C An 8 by 8 circulant matrix with entries chosen from GF(28) used in specifying the round-function in clause 13.DiA block derived from the data-string after the padding process.di, ei, fi, giFunctions taking either one or three words as in
43、put and producing a single word as output, used inspecifying round-functions.HiA string of L2bits which is used in the hashing operation to store an intermediate result.GF(28) A field defined as GF(2)x / p8(x) where p8(x) = x8+ x4+ x3+ x2+ 1. The elements of the field are 8-bitstrings.M An 8 by 8mat
44、rix whose entries are chosen from GF(28). ISO/IEC 2003 All rights reserved3q The number of blocks in the data string after the padding and splitting processes.Rn() The operation of right shift by n bits, i.e., if A is a word and n is a non-negative integer then Rn(A) denotes theword obtained by righ
45、t-shifting the contents of A by n places.s A nonlinear substitution box, which replaces an element x GF(28) with another element sx GF(28);Sn() The operation of circular left shift by n bit positions, i.e., if A is a word and n is a non-negative integer thenSn(A) denotes the word obtained by left-sh
46、ifting the contents of A by n places in a cyclic fashion.Sn() The operation of circular right shift by n bit positions, i.e., if A is a word and n is a non-negative integer thenSn(A) denotes the word obtained by right-shifting the contents of A by n places in a cyclic fashion.ti, tiShift-values used
47、 in specifying a round-function.W, Xi, Xi, Yi, ZiWords used to store the results of intermediate computations.W, X, Ki, Y, Z Matrices with entries chosen from GF(28) used to store the results of intermediate computations. The bit-wise logical AND operation on bit-strings, i.e., if A, B are words the
48、n AB is the word equal to the bit-wise logical AND of A and B.V The bit-wise logical OR operation on bit-strings, i.e., if A, B are words then AVB is the word equal to the bit-wise logical OR of A and B. The bit-wise logical NOT operation on a bit-string, i.e., if A is a word then A is the word equa
49、l to the bit-wiselogical NOT of A. The modulo 2waddition operation, where w is the number of bits in a word. I.e., if A and B are words, thenAB is the word obtained by treating A and B as the binary representations of integers and computing theirsum modulo 2w, where the result is constrained to lie between 0 and 2w-1 inclusive. The value of w is 32 fordedicated hash-functions 1-4, defined in clauses 7-10, and 64 for dedicated hash-functions 5 and 6, defined inclauses 11 a