AURORA: A Cryptographic Hash Algorithm Family

Size: px
Start display at page:

Download "AURORA: A Cryptographic Hash Algorithm Family"

Transcription

1 AURORA: A Cryptographic Hash Algorithm Family Submitters: Sony Corporation 1 and Nagoya University 2 Algorithm Designers: Tetsu Iwata 2, Kyoji Shibutani 1, Taizo Shirai 1, Shiho Moriai 1, Toru Akishita 1 January 9, 2009

2 2

3 Executive Summary We present a new hash function family AURORA as a candidate for a new cryptographic hash algorithm (SHA-3) family. The hash function family AURORA consists of the algorithms: AURORA- 224, AURORA-, AURORA-34, AURORA-512, AURORA-224M, and AURORA-M, where AURORA-224M and AURORA-M are optional instances that are designed to have multicollision resistance. AURORA-224 and AURORA- are constructed from the secure and efficient compression function using a security-enhanced Merkle-Damgård transform, i.e., the strengthened Merkle- Damgård transform with the finalization function. The compression function is designed based on the well-established design techniques for blockciphers, and uses the Davies-Meyer construction. Since most of existing attacks on hash functions exploited simplicity of message scheduling, we employ a secure message scheduling, which is a different design philosophy from the MDx family including SHA-2. AURORA-34 and AURORA-512 employ a novel domain extension transform called the Double- Mix Merkle-Damgård (DMMD) transform. The DMMD transform consists of two parallel lines of the compression functions and the mixing functions inserted at intervals. This domain extension transform enables an efficient collision-resistant construction for double length hash functions. Furthermore, the combination of the compression function and the DMMD transform achieves further efficiency by sharing the message scheduling of two compression functions. The overall structure of AURORA-224M and AURORA-M is the same as AURORA- 34/512 except constants and the final mixing function. The DMMD transform also opens a new efficient way of providing multi-collision resistance. By using the DMMD transform, AURORA- 224M and AURORA-M efficiently achieve multi-collision resistance. As a result, the AURORA family achieves consistency of the design, because all algorithms use similar -bit compression functions as building blocks. Moreover, the AURORA family achieves high efficiency on many platforms. In software implementation on the NIST reference platform (64-bit), AURORA- achieves 15.4 cycles/byte and AURORA-512 achieves 27.4 cycles/byte. Also, AURORA shows good performance across a variety of platforms, because it uses platform-independent operations. In hardware implementation, AU- RORA enables a variety of implementations, from high-speed to area-restricted implementations. Using a 0.13µm CMOS ASIC library, AURORA- can be implemented with only 11.1 Kgates in an area-optimized implementation. In a speed-optimized implementation, AURORA- achieves the highest throughput of 10.4 Gbps. For AURORA-512, the smallest size is 14.6 Kgates and the highest throughput is 9.1 Gbps. These good performance both in hardware and in software in a single algorithm family which is based on the above design techniques makes a clear distinction between the AURORA family and the SHA-2 family. 3

4 4

5 Contents 1 Introduction 7 2 Specification of AURORA Notation Building Blocks Message Scheduling Module: MSM Chaining Value Processing Module: CPM Byte Diffusion Function: BD F-Functions: F 0, F 1, F 2, and F Data Rotating Function: DR Specification of AURORA Overall Structure Compression Function: CF Finalization Function: FF Alternate Method for Computing CF and FF Specification of AURORA Specification of AURORA Overall Structure Compression Functions: CF 0, CF 1,..., CF Mixing Function: MF Mixing Function for Finalization: MFF Specification of AURORA Specification of AURORA-M (optional) Overall Structure Compression Functions: CF M 0, CF M 1,..., CF M Mixing Function: MF M Mixing Function for Finalization: MFF M Specification of AURORA-224M (optional) Constant Values Constant Values for AURORA-224/ Constant Values for AURORA-34/ Constant Values for AURORA-224M/M List of Constant Values Pseudocodes AURORA Examples Design Rationale of AURORA AURORA Domain Extension Compression Function AURORA Domain Extension Double-Mix Merkle-Damgård transform

6 3.2.2 Compression Function AURORA-M Domain Extension Compression Function Components and Constants AURORA Structure F-function Data Rotating Function Truncation Functions Constant Generation Initial Value Security of AURORA Expected Strength Security Argument Security of HMAC using AURORA Security Proofs of DMMD Transform Security Properties of AURORA structure Algorithm Analysis Collision Attacks Preimage Attacks Second Preimage Attacks Length-Extension Attack Multicollision Attack Slide Attacks Tunable Security Parameters Number of Rounds Variable Hash Size Efficient Implementation of AURORA Software Implementation Implementation Types Evaluation Results Hardware Implementation Optimization Techniques of F-functions Data Path Architectures Evaluation Results Applications of AURORA Digital Signature Keyed-Hash Message Authentication Code (HMAC) Key Establishment Schemes Using Discrete Logarithm Cryptography Random Number Generation Using Deterministic Random Bit Generators Advantages and Limitations 121 6

7 Chapter 1 Introduction This document describes the algorithm specifications and supporting documentation including design rationale, security, efficient implementation, applications, advantages and limitations of the hash function family AURORA, which we submit as a candidate for a new cryptographic hash algorithm (SHA-3) family. Since SHA-3 is expected to provide a substitute of the SHA-2 family, AURORA is designed to preserve certain properties of the SHA-2 family including the input parameters, the output sizes, collision resistance, preimage resistance, second-preimage resistance, and the one-pass streaming mode of execution, according to the requirements for SHA-3 candidates [3]. Moreover, AURORA is designed to offer features that exceed the SHA-2 family. AURORA is designed based on the following design philosophy: Security: Its security level should be guaranteed by security proofs or security arguments as far as possible. There is no known structural weakness in the design of the domain extension transform, and the security of the hash function is supported by security proofs. In the design of a compression function, the structure and the components should be chosen to facilitate analysis and to utilize the well-established techniques for blockcipher design and analysis. It should be designed based on different design criteria from the MDx family including SHA-2 so that a possibly successful attack on SHA-2 is unlikely to be applicable to it. Implementation Efficiency and Flexibility: It should be designed to have better efficiency than the SHA-2 family on many platforms. Also, it should be designed to be less platform-specific. It should be implemented efficiently in a wide range of software platforms (32-bit, 64- bit and -bit processors with various compilers and operating systems) without too dedicated optimization techniques for specific processors. It should be suitable to flexible hardware implementations with wide variety of area/speed trade-offs. Originality: It should contain technical breakthroughs to improve security and/or efficiency, not just a combination of existing techniques. Similarity among the Algorithm Family: According to the NIST requirements [3] (NIST does not intend to select a wholly distinct algorithm for each of the minimally required message digest sizes), all the hash function instances with hash sizes of 224,, 34, and 512 bits should be designed under a consistent design philosophy. Concretely, by using the same structure and components, e.g., S-boxes and matrices, they should provide security arguments and performance evaluation in a unified framework. 7

8 Table 1.1: AURORA family. Name max. message message block chaining value hash size size (bits) size (bits) size (bits) (bits) AURORA (2 64 1) AURORA- 512 (2 64 1) 512 AURORA (2 64 1) AURORA (2 64 1) optional instances AURORA-224M 512 (2 64 1) AURORA-M 512 (2 64 1) The hash function family AURORA. To practice the design philosophy, we designed the hash function family AURORA which consists of the algorithms called AURORA-224, AURORA-, AURORA-34, AURORA-512, AURORA-224M, and AURORA-M. AURORA-224, AURORA-, AURORA-34 and AURORA-512 support hash sizes of 224,, 34, and 512 bits, respectively. AURORA-224M and AURORA-M support hash sizes of 224 and bits, respectively. They are optional instances that are designed to have multi-collision resistance by increasing the internal chaining value size ( M means multi-collision resistance). Every instance of the AURORA family supports a maximum message length of 512 (2 64 1) bits, which meets the minimum acceptability requirement regarding the maximum message length. Table 1.1 presents the basic properties of the AURORA family. AURORA-224 and AURORA- are constructed from the secure and efficient compression function using a security-enhanced Merkle-Damgård transform, i.e., the strengthened Merkle- Damgård transform with the finalization function. The compression function is designed based on the well-established design techniques for blockciphers, and uses the Davies-Meyer construction. Since most of existing attacks on hash functions exploited simplicity of message scheduling, we employ a secure message scheduling, which is a different design philosophy from the MDx family including SHA-2. AURORA-34 and AURORA-512 employ a novel domain extension transform called the Double- Mix Merkle-Damgård (DMMD) transform. The DMMD transform consists of two parallel lines of the compression functions and the mixing functions inserted at intervals. This domain extension transform enables an efficient collision-resistant construction for double length hash functions. Furthermore, the combination of the compression function of AURORA and the DMMD transform achieves further efficiency by sharing the message scheduling of two compression functions. The overall structure of AURORA-224M and AURORA-M is the same as AURORA- 34/512 except constants and the final mixing function. The DMMD transform also opens a new efficient way of providing multi-collision resistance. By using the DMMD transform, AURORA- 224M and AURORA-M efficiently achieve multi-collision resistance. As a result, the AURORA family achieves consistency of the design, because all algorithms use similar -bit compression functions as building blocks. Moreover, the AURORA family achieves high efficiency on many platforms. In software implementation on the NIST reference platform (64-bit), AURORA- achieves 15.4 cycles/byte and AURORA-512 achieves 27.4 cycles/byte. Also, AURORA shows good performance across a variety of platforms, because it uses platform-independent operations. In hardware implementation, AU- RORA enables a variety of implementations, from high-speed to area-restricted implementations. Using a 0.13µm CMOS ASIC library, AURORA- can be implemented with only 11.1 Kgates in an area-optimized implementation. In a speed-optimized implementation, AURORA- achieves the highest throughput of 10.4 Gbps. For AURORA-512, the smallest size is 14.6 Kgates and the highest throughput is 9.1 Gbps.

9 Organization of the document. This document is organized as follows: Chapter 2 describes the specification of the AURORA family. Chapter 3 provides the design rationale. Chapter 4 explains all aspects of security: security argument and algorithm analysis. Chapter 5 shows efficient implementation results of AURORA. Chapter 6 describes the usage of AURORA in important applications. Finally, AURORA s advantages and limitations are described in Chapter 7. 9

10 10

11 Chapter 2 Specification of AURORA 2.1 Notation We first describe notation, conventions and symbols used throughout this document. We use the prefix 0x to denote hexadecimal numbers. A bit string x with the suffix, x (n), indicates that x is n bits. This suffix is omitted if there is no ambiguity. For bit strings x and y, x y or (x, y) is their concatenation. For bit strings x and y, x y means that the bit string x is updated by the bit string y. For an nl-bit x, we write (x 0 (n), x 1 (n),..., x l 1 (n) ) x (nl) to mean that x is divided into (x 0, x 1,..., x l ), where (x 0 (n) x 1 (n) x l 1 (n) ) = x (nl). For a bit string x (n) and an integer l, x n l is the l-bit left cyclic shift of x, and x n l is the l-bit right cyclic shift of x. For bit strings x 0, x 1,..., x n 1, {x j } 0 j<n is a shorthand for (x 0, x 1,..., x n 1 ). For an integer l, 0 l is the l times repetition of zero bits and 1 l is the l times repetition of one bits. For a bit string x, x is the bit-wise complement of x. For an element of GF(2 n ) represented as a polynomial x n 1 α n 1 + x n 2 α n x 1 α + x 0 where α is a root of an irreducible polynomial, x n 1 x n 2... x 1 x 0 denotes the bit representation of the polynomial. 11

12 Following variables and symbols have specific meanings. M The input message. M i The i-th block of the message (after the padding). m The length of M in blocks (after the padding). H i The i-th chaining value. MSM The Message Scheduling Module. CPM The Chaining value Processing Module. BD The Byte Diffusion function. DR The Data Rotating function. PROTL The Partial ROTating Left function. PROTR The Partial ROTating Right function. Pad The Padding function. Len n The Length of the input message in blocks encoded into n bits. TF n The Truncation Function that outputs n bits. F 0, F 1, F 2, and F 3 The F-Functions. M 0, M 1, M 2, and M 3 The matrices used in the F-functions. S The S-box. Following symbols are used for AURORA-224/. CF The Compression Function for AURORA-224/. MS L and MS R The Message Scheduling functions for CF. CP The Chaining value Processing function for CF. FF The Finalization Function for AURORA-224/. MSF L and MSF R The Message Scheduling functions for Finalization for FF. CPF The Chaining value Processing function for Finalization for FF. CONM L,j and CONM R,j The CONstants for MS L, MS R, MSF L, and MSF R. CONC j The CONstant for CP and CPF. Following symbols are used for AURORA-34/512. CF 0, CF 1,..., CF 7 The Compression Functions for AURORA-34/512. MF The Mixing Function for AURORA-34/512. MFF The Mixing Function for Finalization for AURORA-34/512. MS L,s and MS R,s The Message Scheduling functions for CF s (0 s 7), MF (s = ), and MFF (s = 9). CP L,s and CP R,s The Chaining value Processing functions for CF s (0 s 7), MF (s = ), and MFF (s = 9). CONM L,s,j and CONM R,s,j The CONstants used in MS L,s and MS R,s, respectively. CONC L,s,j and CONC R,s,j The CONstants used in CP L,s and CP R,s, respectively. Following symbols are used for AURORA-224M/M. CF M 0, CF M 1,..., CF M 7 The Compression Functions for AURORA-224M/M. MF M The Mixing Function for AURORA-224M/M. MFF M The Mixing Function for Finalization for AURORA-224M/M. MS M L,s and MS M R,s The Message Scheduling functions for CF M s (0 s 7), MF M (s = ), and MFF M (s = 9). CP M L,s and CP M R,s The Chaining value Processing functions for CF M s (0 s 7), MF M (s = ), and MFF M (s = 9). CONM M L,s,j and CONM M R,s,j The CONstants used in MS M L,s and MS M R,s, respectively. CONC M L,s,j and CONC M R,s,j The CONstants used in CP M L,s and CP M R,s, respectively. 12

13 2.2 Building Blocks In this section, specifications of the essential building blocks for constructing AURORA algorithms are described Message Scheduling Module: MSM The message scheduling module, MSM, takes the following two inputs; a bit string X (), and a set of bit strings {Y j (32) } 0 j<32. The output is a set of bit strings {Z j (32) } 0 j<72. MSM internally uses a byte diffusion function BD : ({0, 1} 32 ) ({0, 1} 32 ), which is a permutation over ({0, 1} 32 ) and is defined in Sec MSM is parameterized by two functions F and F, where { F : {0, 1} 32 {0, 1} 32, F : {0, 1} 32 {0, 1} 32 (2.1). We write MSM [F, F ] when we emphasize that it is parameterized by functions F and F. We now describe the specification of MSM [F, F ]. Step 1. Let (X 0 (32), X 1 (32),..., X 7 (32) ) X (). Step 2. Let (X 1, X 3, X 5, X 7 ) (X 1, X 3, X 5, X 7 ) (Y 0, Y 1, Y 2, Y 3 ). Step 3. Let (Z 0, Z 1,..., Z 7 ) (X 0, X 1,..., X 7 ). Step 4. (7 round iterations) The following operations are iterated for i = 1 to 7. (X 0, X 1,..., X 7 ) BD(X 0, X 1,..., X 7 ) (X 0, X 2, X 4, X 6 ) (F (X 0 ), F (X 2 ), F (X 4 ), F (X 6 )) (X 1, X 3, X 5, X 7 ) (X 1, X 3, X 5, X 7 ) (Y 4i, Y 4i+1, Y 4i+2, Y 4i+3 ) (X 1, X 3, X 5, X 7 ) (X 1, X 3, X 5, X 7 ) (X 0, X 2, X 4, X 6 ) (Z i, Z i+1,..., Z i+7 ) (X 0, X 1,..., X 7 ) Step 5. (-th round) Then the following operations are executed. (X 0, X 1,..., X 7 ) BD(X 0, X 1,..., X 7 ) (X 0, X 2, X 4, X 6 ) (F (X 0 ), F (X 2 ), F (X 4 ), F (X 6 )) (X 1, X 3, X 5, X 7 ) (X 1, X 3, X 5, X 7 ) (X 0, X 2, X 4, X 6 ) (Z 64, Z 65,..., Z 71 ) (X 0, X 1,..., X 7 ) Step 6. Finally, the output is {Z j (32) } 0 j<72. See Fig. 2.1 for an illustration and Fig for a pseudocode Chaining Value Processing Module: CPM The chaining value processing module, CPM, takes the following three inputs; a bit string X (), a set of bit strings {Y j (32) } 0 j<144, and a set of bit strings {W j (32) } 0 j<6. 13

14 X X 0 X 1 X 2 X 3 X 4 X 5 X 6 X 7 Y 0 Y 1 Y 2 Y 3 Z 0 Z 1 Z 2 Z 3 Z 4 Z 5 Z 6 Z 7 BD F Y 4 F Y 5 F Y 6 F Y 7 Z Z 9 Z 10 Z 11 Z 12 Z 13 Z 14 Z 15 BD F Y F Y 9 F Y 10 F Y 11 Z 16 Z 17 Z 1 Z 19 Z 20 Z 21 Z 22 Z 23 BD F Y 4i F Y 4i+1 F Y 4i+2 F Y 4i+3 Z i Z i+1 Z i+2 Z i+3 Z i+4 Z i+5 Z i+6 Z i+7 BD F Y 2 F Y 29 F Y 30 F Y 31 Z 56 Z 57 Z 5 Z 59 Z 60 Z 61 Z 62 Z 63 BD F F F F Z 64 Z 65 Z 66 Z 67 Z 6 Z 69 Z 70 Z 71 Figure 2.1: {Z j (32) } 0 j<72 MSM [F, F ](X (), {Y j (32) } 0 j<32 ). 14

15 The output is a bit string Z (). CPM internally uses a byte diffusion function BD, which is also used in MSM, and is defined in Sec As with MSM, CPM is parameterized by two functions F and F over {0, 1} 32, and we write CPM [F, F ] when we use functions F and F. We now describe the specification of CPM [F, F ]. Step 1. Let (X 0 (32), X 1 (32),..., X 7 (32) ) X (). Step 2. Let (X 1, X 3, X 5, X 7 ) (X 1, X 3, X 5, X 7 ) (W 0, W 1, W 2, W 3 ). Step 3. Let (X 0, X 1,..., X 7 ) (X 0, X 1,..., X 7 ) (Y 0, Y 1,..., Y 7 ). Step 4. (16 round iterations) The following operations are iterated for i = 1 to 16. (X 0, X 1,..., X 7 ) BD(X 0, X 1,..., X 7 ) (X 0, X 2, X 4, X 6 ) (F (X 0 ), F (X 2 ), F (X 4 ), F (X 6 )) (X 1, X 3, X 5, X 7 ) (X 1, X 3, X 5, X 7 ) (W 4i, W 4i+1, W 4i+2, W 4i+3 ) (X 1, X 3, X 5, X 7 ) (X 1, X 3, X 5, X 7 ) (X 0, X 2, X 4, X 6 ) (X 0, X 1,..., X 7 ) (X 0, X 1,..., X 7 ) (Y i, Y i+1,..., Y i+7 ) Step 5. (17-th round) Then the following operations are executed. (X 0, X 1,..., X 7 ) BD(X 0, X 1,..., X 7 ) (X 0, X 2, X 4, X 6 ) (F (X 0 ), F (X 2 ), F (X 4 ), F (X 6 )) (X 1, X 3, X 5, X 7 ) (X 1, X 3, X 5, X 7 ) (X 0, X 2, X 4, X 6 ) (X 0, X 1,..., X 7 ) (X 0, X 1,..., X 7 ) (Y 136, Y 137,..., Y 143 ) Step 6. Finally, the output is Z () (X 0 (32) X 1 (32) X 7 (32) ). See Fig. 2.2 for an illustration and Fig for a pseudocode Byte Diffusion Function: BD The byte diffusion function, BD, takes a bit string (X 0 (32), X 1 (32),..., X 7 (32) ) as the input, and outputs the updated bit string (X 0 (32), X 1 (32),..., X 7 (32) ). It works as follows. Step 1. For i = 0, 1,..., 7, X i (32) is divided into a 4-byte sequence as (x 4i (), x 4i+1 (), x 4i+2 (), x 4i+3 () ) X i (32), and (X 0 (32), X 1 (32),..., X 7 (32) ) is now regarded as a sequence of bytes; (x 0 (), x 1 (),..., x 31 () ) = (X 0 (32), X 1 (32),..., X 7 (32) ). Step 2. Next we permute (x 0, x 1,..., x 31 ) according to the permutation π defined in Fig. 2.3, where the i-th byte x i is moved to the π(i)-th byte. In other words, let x π(i) = x i for i = 0, 1,..., 31. Then (x 0, x 1,..., x 31) is the result of the permutation. For example, x 0 = x 4, x 1 = x 29, and so on. Step 3. For i = 0, 1,..., 7, the 4-byte sequence (x 4i (), x 4i+1 (), x 4i+2 (), x 4i+3 ()) is concatenated to form the updated X i (32) = (x 4i () x 4i+1 () x 4i+2 () x 4i+3 ()), and the output is (X 0 (32), X 1 (32),..., X 7 (32) ). See Fig. 2.4 for an illustration and Fig for a pseudocode. 15

16 X X 0 X 1 X 2 X 3 X 4 X 5 X 6 X 7 W 0 W 1 W 2 W 3 Y 0 Y 1 Y 2 Y 3 Y 4 Y 5 Y 6 Y 7 BD F W 4 F W 5 F W 6 F W 7 Y Y 9 Y 10 Y 11 Y 12 Y 13 Y 14 Y 15 BD F W F W 9 F W 10 F W 11 Y 16 Y 17 Y 1 Y 19 Y 20 Y 21 Y 22 Y 23 BD F W 4i F W 4i+1 F W 4i+2 F W 4i+3 Y i Y i+1 Y i+2 Y i+3 Y i+4 Y i+5 Y i+6 Y i+7 BD F W 64 F W 65 F W 66 F W 67 Y Y 129 Y 130 Y 131 Y 132 Y 133 Y 134 Y 135 BD F F F F Y 136 Y 137 Y 13 Y 139 Y 140 Y 141 Y 142 Y 143 Z 0 Z 1 Z 2 Z 3 Z 4 Z 5 Z 6 Z 7 Z Figure 2.2: Z () CPM [F, F ](X (), {Y j (32) } 0 j<144, {W j (32) } 0 j<6 ). 16

17 i π(i) i π(i) Figure 2.3: Definition of the permutation π( ) : {0, 1,..., 31} {0, 1,..., 31}. X 0 X 1 X 2 X 3 X 4 X 5 X 6 X 7 X 0 X 1 X 2 X 3 X 4 X 5 X 6 X 7 Figure 2.4: (X 0 (32), X 1 (32),..., X 7 (32) ) BD(X 0 (32), X 1 (32),..., X 7 (32) ) F-Functions: F 0, F 1, F 2, and F 3 We use four F-functions, F 0, F 1, F 2, and F 3, where they take 32-bit input X as input and produce 32-bit output Y. Each function is used as an instantiation of a parameter functions F or F in MSM and CPM. Before defining these F-functions, we first define the S-box S : {0, 1} {0, 1}, and four 4 4 matrices, M 0, M 1, M 2 and M 3. The S-box S : x () y () is defined as follows. y = { g(f(x) 1 ) if f(x) 0 g(0) if f(x) = 0. The inverse function is performed in GF((2 4 ) 2 ) defined by an irreducible polynomial z 2 +z + {1001} for which the underlying GF(2 4 ) is defined by an irreducible polynomial z 4 + z + 1. Moreover, f : x () y () and g : x () y () are affine transformations over GF(2), which are defined as f : y 0 y 1 y 2 y 3 y 4 y 5 y 6 y 7 = x 0 x 1 x 2 x 3 x 4 x 5 x 6 x , (2.2)

18 Table 2.1: S a.b.c.d.e.f 0. d9 dc d3 69 bd 00 4d eb c2 b 5d b7 6d 1. f e 19 d d 34 0f 7c ec ce d1 a 74 fb e b5 5c 1a bb d f c fd 4b a4 cd e 99 1f 4. ad 63 c9 6b f7 2 9f 65 2f 5f d b 0e 1b e0 ac 26 a1 e3 f af f f 3f a2 9 9a a3 91 4c 7f ea 01 1c 7. 1e 2d 9 39 e6 9c 0a 54 0c 51 6c 43 ae db a6 f4 06 da e2 7 1d e1 35 fc ed bc 47 d5 9. c0 ab cc a 0 2b 09 b0 93 d4 c5 b3 d0 df a9 aa a. 7a 36 2a d6 b2 fa e b1 a0 6 5a c7 b. fe 76 bf c4 f2 3e 4a 0b f1 ef a7 27 e5 c c. de 9b d 3c 56 d7 c 60 6a 79 ee a5 31 2e d. ff 95 dd 25 3b 55 ca 52 9e 2c 15 4f e d e. 72 3a 7b 4 f b4 3 6f b9 c1 45 e9 f. ba b6 6e 5e be 7e 20 f d2 cb c3 cf 5b and g : y 0 y 1 y 2 y 3 y 4 y 5 y 6 y 7 = x 0 x 1 x 2 x 3 x 4 x 5 x 6 x (2.3) where (x 0(1) x 1(1) x 2(1) x 3(1) x 4(1) x 5(1) x 6(1) x 7(1) ) x () and (y 0(1) y 1(1) y 2(1) y 3(1) y 4(1) y 5(1) y 6(1) y 7(1) ) y (). Table 2.1 shows the output values of S. The four matrices are defined as follows. 0x01 0x02 0x02 0x03 M 0 = 0x03 0x01 0x02 0x02 0x02 0x03 0x01 0x02, (2.4) 0x02 0x02 0x03 0x01 0x01 0x06 0x0 0x02 M 1 = 0x02 0x01 0x06 0x0 0x0 0x02 0x01 0x06, (2.5) 0x06 0x0 0x02 0x01 0x03 0x01 0x02 0x02 M 2 = 0x02 0x03 0x01 0x02 0x02 0x02 0x03 0x01, (2.6) 0x01 0x02 0x02 0x03 0x06 0x0 0x02 0x01 M 3 = 0x01 0x06 0x0 0x02 0x02 0x01 0x06 0x0. (2.7) 0x0 0x02 0x01 0x06 1

19 Multiplications are operated over GF(2 ) defined by an irreducible polynomial z +z 4 +z 3 +z Now we describe F-functions. Step 1. Let (x 0 (), x 1 (), x 2 (), x 3 () ) X (32). Step 2. Let (x 0, x 1, x 2, x 3 ) (S(x 0 ), S(x 1 ), S(x 2 ), S(x 3 )). Step 3. For i {0, 1, 2, 3}, the output of F i is Y (32) = (y 0 () y 1 () y 2 () y 3 () ), where y 0 y 1 y 2 y Data Rotating Function: DR = M i x 0 x 1 x 2 x 3. The data rotating function, DR, takes the following two inputs; a set of bit strings {X j (32) } 0 j<72, and a set of bit strings {Y j (32) } 0 j<72. The output is a set of bit strings {Z j (32) } 0 j<144. DR uses the following two functions; { PROTL : ({0, 1} 32 ) ({0, 1} 32 ), PROTR : ({0, 1} 32 ) ({0, 1} 32 ), which we define as PROTL(X 0 (32), X 1 (32),..., X 7 (32) ) = (X 0 (32), X 1 (32),..., X 7 (32)), (2.) where X i = X i for i = 0, 2, 4, 5, 6, 7, and (X 1 X 3) = (X 1 X 3 ) Similarly, we define PROTR(X 0 (32), X 1 (32),..., X 7 (32) ) = (X 0 (32), X 1 (32),..., X 7 (32)), (2.9) where X i = X i for i = 0, 2, 4, 5, 6, 7, and (X 1 X 3) = (X 1 X 3 ) In other words, they rotate the two words by one bit, where these words are concatenated and regarded as one 64 bit string. Now DR works as follows. Step 1. For inputs {X j (32) } 0 j<72 and {Y j (32) } 0 j<72, we define {Z j (32) } 0 j<144 by iterating the following operations for i = 0 to. { (Z16i, Z 16i+1,..., Z 16i+7 ) PROTL(X i, X i+1,..., X i+7 ) (Z 16i+, Z 16i+9,..., Z 16i+15 ) PROTR(Y i, Y i+1,..., Y i+7 ) Step 2. The output is {Z j (32) } 0 j<144 defined in the above operations. See Fig. 2.5 for an illustration and Fig for a pseudocode. 19

20 X 0 X 1 X 7 (Z 1 Z 3 ) (X 1 X 3 ) 64 1 Z 0 Z 1 Z 7 Y 0 Y 1 Y 7 (Z 9 Z 11 ) (Y 1 Y 3 ) 64 1 Z Z 9 Z 15 X X 9 X 15 (Z 17 Z 19 ) (X 9 X 11 ) 64 1 Z 16 Z 17 Z 23 Y Y 9 Y 15 (Z 25 Z 27 ) (Y 9 Y 11 ) 64 1 Z 24 Z 25 Z 31 X 16 X 17 X 23 (Z 33 Z 35 ) (X 17 X 19 ) 64 1 Z 32 Z 33 Z 39 Y 16 Y 17 Y 23 (Z 41 Z 43 ) (Y 17 Y 19 ) 64 1 Z 40 Z 41 Z X 64 X 65 X 71 (Z 129 Z 131 ) (X 65 X 67 ) 64 1 Z Z 129 Z 135 Y 64 Y 65 Y 71 (Z 137 Z 139 ) (Y 65 Y 67 ) 64 1 Z 136 Z 137 Z 143 Figure 2.5: {Z j (32) } 0 j<144 DR({X j (32) } 0 j<72, {Y j (32) } 0 j<72 )

21 2.3 Specification of AURORA Overall Structure AURORA- takes the input message of length at most 512 (2 64 1) = bits, and outputs the hash value of bits. It internally uses a compression function CF and a finalization function FF, where { CF (, ) : {0, 1} {0, 1} 512 {0, 1}, FF (, ) : {0, 1} {0, 1} 512 {0, 1}. The compression function CF is defined in Sec and a finalization function FF is defined in Sec Now AURORA- works as follows. Step 1. The input message M is padded with the following padding function Pad( ); Pad(M) = M 1 0 b Len 64, (2.10) where b is the minimum non-negative integer (possibly zero) such that M + b + 65 = 512m for some integer m, and Len 64 is an encoding of M /512 in 64-bit string. That is, Len 64 is the length of M in blocks, where a partial block counts for one block, and b is the minimal integer such that the total length of Pad(M) is a multiple of 512 bits. Then Pad(M) is divided into blocks M 0, M 1,..., M m 1 each of length 512 bits, i.e., we let (M 0 (512), M 1 (512),..., M m 1 (512) ) Pad(M). Step 2. Let H 0 () = 0, and compute H 1 (), H 2 (),..., H m 1 () by iterating for i = 0 to m 2. H i+1 CF (H i, M i ) Note that when Pad(M) has one block (i.e., when m = 1 and Pad(M) = M 0 ), then Step 2 is not executed. Step 3. Finally, let H m FF (H m 1, M m 1 ), and the output is H m (). See Fig. 2.6 for an illustration and Fig for a pseudocode. M 0 M 1 M 2 M m 2 M m 1 H 0 CF CF CF CF FF H m H 1 H 2 H 3 H m 2 H m 1 Figure 2.6: AURORA Compression Function: CF The compression function, CF, takes the chaining value H i of bits and the input message block M i of 512 bits, and outputs the chaining value H i+1 of bits. 21

22 It internally uses two message scheduling functions MS L and MS R, a data rotating function DR, and a chaining value processing function CP, where These functions are described below. MS L ( ) : {0, 1} ({0, 1} 32 ) 72, MS R ( ) : {0, 1} ({0, 1} 32 ) 72, DR(, ) : ({0, 1} 32 ) 72 ({0, 1} 32 ) 72 ({0, 1} 32 ) 144, CP(, ) : {0, 1} ({0, 1} 32 ) 144 {0, 1}. Components of CF MS L is an instance of MSM described in Sec , and for any X {0, 1}, it is defined as MS L (X) = MSM [F 0, F 1 ](X, {CONM L,j (32) } 0 j<32 ), (2.11) where F 0 and F 1 are F-functions defined in Sec , and {CONM L,j (32) } 0 j<32 is the set of constants defined in Sec Similarly, for any X {0, 1}, MS R is defined as MS R (X) = MSM [F 2, F 3 ](X, {CONM R,j (32) } 0 j<32 ), (2.12) where F 2 and F 3 are F-functions defined in Sec , and {CONM R,j (32) } 0 j<32 is the set of constants defined in Sec DR is the data rotating function defined in Sec CP is an instance of CPM described in Sec , and for any X {0, 1} and Y ({0, 1} 32 ) 144, it is defined as CP(X, Y ) = CPM [F 1, F 0 ](X, Y, {CONC j (32) } 0 j<6 ), (2.13) where F 0 and F 1 are F-functions defined in Sec , and {CONC j (32) } 0 j<6 is the set of constants defined in Sec Specification of CF Now we present the specification of CF. Step 1. Let (M L (), M R () ) M i (512), and let X () H i (). Step 2. Let {T L,j (32) } 0 j<72 MS L (M L () ). Step 3. Let {T R,j (32) } 0 j<72 MS R (M R () ). Step 4. Let {U j (32) } 0 j 144 DR({T L,j (32) } 0 j<72, {T R,j (32) } 0 j<72 ). Step 5. Let Y () CP(X (), {U j (32) } 0 j<144 ). Step 6. Finally, the output is H i+1 () Y () X (). See Fig. 2.7 for an illustration and Fig. 2.1 for a pseudocode. 22

23 M i M L M R X H i T L,0 T L,1 T L,7 T R,0 T R,1 T R,7 U 0 U 1 U 7 U U 9 U 15 T L, T L,9 T L,15 U 16 U 17 U 23 MS L T R, T R,9 T R,15 DR U 24 U 25 U 31 CP MS R T L,64 T L,65 T L,71 T R,64 T R,65 T R,71 U U 129 U 135 U 136 U 137 U 143 Y H i+1 Figure 2.7: H i+1 () CF (H i (), M i (512) ) Finalization Function: FF The finalization function, FF, is used at the last step of the hash value computation. It takes the chaining value H m 1 of bits and the last input message block M m 1 of 512 bits, and outputs the final hash value H m of bits. FF is structurally equivalent to CF, and the only difference is the constants used in the components. FF internally uses message scheduling functions for finalization, MSF L and MSF R, a data rotating function DR, and a chaining value processing function for finalization, CPF. They have the following syntax. These functions are described below. Components of FF MSF L ( ) : {0, 1} ({0, 1} 32 ) 72, MSF R ( ) : {0, 1} ({0, 1} 32 ) 72, DR(, ) : ({0, 1} 32 ) 72 ({0, 1} 32 ) 72 ({0, 1} 32 ) 144, CPF (, ) : {0, 1} ({0, 1} 32 ) 144 {0, 1}. For any X {0, 1}, MSF L is defined as (2.14) MSF L (X) = MSM [F 0, F 1 ](X, {CONM L,j (32) } 32 j<64 ), (2.15) where F 0 and F 1 are F-functions defined in Sec , and {CONM L,j (32) } 32 j<64 is the set of constants defined in Sec For any X {0, 1}, MSF R is defined as MSF R (X) = MSM [F 2, F 3 ](X, {CONM R,j (32) } 32 j<64 ), (2.16) where F 2 and F 3 are F-functions defined in Sec , and {CONM R,j (32) } 32 j<64 is the set of constants defined in Sec

24 DR is the data rotating function defined in Sec For any X {0, 1} and Y ({0, 1} 32 ) 144, CPF is defined as CPF (X, Y ) = CPM [F 1, F 0 ](X, Y, {CONC j (32) } 6 j<136 ), (2.17) where F 0 and F 1 are F-functions defined in Sec , and {CONC j (32) } 6 j<136 is the set of constants defined in Sec Specification of FF Now the finalization function FF works as follows. Step 1. Let (M L (), M R () ) M m 1 (512), and let X () H m 1 (). Step 2. Let {T L,j (32) } 0 j<72 MSF L (M L () ). Step 3. Let {T R,j (32) } 0 j<72 MSF R (M R () ). Step 4. Let {U j (32) } 0 j 144 DR({T L,j (32) } 0 j<72, {T R,j (32) } 0 j<72 ). Step 5. Let Y () CPF (X (), {U j (32) } 0 j<144 ). Step 6. Finally, the output is H m () Y () X (). See Fig for a pseudocode. 24

25 2.3.4 Alternate Method for Computing CF and FF The compression function CF and the finalization function FF, components of AURORA- hash computation method, are described in an alternative way which requires less memory space in implementation. Firstly, three component functions RoundC, RoundM L and RoundM R are defined here for an alternate computation method. Components RoundC, RoundM L and RoundM R RoundC (i) ( ) : ({0, 1} 32 ) ({0, 1} 32 ) is a round function of the structure for CP. present the computation steps of RoundC (i) ( ). Now we RoundC (i) (X 0, X 1,..., X 7 ) : (X 0, X 1,..., X 7 ) BD(X 0, X 1,..., X 7 ) (X 0, X 2, X 4, X 6 ) (F 1 (X 0 ), F 0 (X 2 ), F 1 (X 4 ), F 0 (X 6 )) If i 17, do the following line (X 1, X 3, X 5, X 7 ) (X 1, X 3, X 5, X 7 ) (CONC 4i, CONC 4i+1, CONC 4i+2, CONC 4i+3 ) (X 1, X 3, X 5, X 7 ) (X 1, X 3, X 5, X 7 ) (X 0, X 2, X 4, X 6 ) Output (X 0, X 1,..., X 7 ) Similarly, round functions RoundM L and RoundM R for MS L and MS R are defined by replacing F-functions and constants as follows. RoundM (i) L (X 0, X 1,..., X 7 ) : (X 0, X 1,..., X 7 ) BD(X 0, X 1,..., X 7 ) (X 0, X 2, X 4, X 6 ) (F 0 (X 0 ), F 1 (X 2 ), F 0 (X 4 ), F 1 (X 6 )) If i, do the following line (X 1, X 3, X 5, X 7 ) (X 1, X 3, X 5, X 7 ) (CONM L,4i, CONM L,4i+1, CONM L,4i+2, CONM L,4i+3 ) (X 1, X 3, X 5, X 7 ) (X 1, X 3, X 5, X 7 ) (X 0, X 2, X 4, X 6 ) Output (X 0, X 1,..., X 7 ) RoundM (i) R (X 0, X 1,..., X 7 ) : (X 0, X 1,..., X 7 ) BD(X 0, X 1,..., X 7 ) (X 0, X 2, X 4, X 6 ) (F 2 (X 0 ), F 3 (X 2 ), F 2 (X 4 ), F 3 (X 6 )) If i, do the following line (X 1, X 3, X 5, X 7 ) (X 1, X 3, X 5, X 7 ) (CONM R,4i, CONM R,4i+1, CONM R,4i+2, CONM R,4i+3 ) (X 1, X 3, X 5, X 7 ) (X 1, X 3, X 5, X 7 ) (X 0, X 2, X 4, X 6 ) Output (X 0, X 1,..., X 7 ) Alternative Specification of CF Now we present an alternative computation method of CF. Step 1. Initialize input values. { (X0(32), X 1(32),..., X 7(32), Y 0(32), Y 1(32),..., Y 7(32) ) M i(512) (Z 0(32), Z 1(32),..., Z 7(32) ) H i () Step 2. Add constant values to the initial values. (X 1, X 3, X 5, X 7 ) (X 1, X 3, X 5, X 7 ) (CONM L,0, CONM L,1, CONM L,2, CONM L,3 ) (Y 1, Y 3, Y 5, Y 7 ) (Y 1, Y 3, Y 5, Y 7 ) (CONM R,0, CONM R,1, CONM R,2, CONM R,3 ) (Z 1, Z 3, Z 5, Z 7 ) (Z 1, Z 3, Z 5, Z 7 ) (CONC 0, CONC 1, CONC 2, CONC 3 ) 25

26 Step 3. Do the first round function. (Z 0, Z 1,..., Z 7 ) (Z 0, Z 1,..., Z 7 ) (X 0, X 1, X 2, X 3, X 4, X 5, X 6, X 7 ) (Z 0, Z 1,..., Z 7 ) RoundC (1) (Z 0, Z 1,..., Z 7 ) (Z 0, Z 1,..., Z 7 ) (Z 0, Z 1,..., Z 7 ) (Y 0, Y 1, Y 2, Y 3, Y 4, Y 5, Y 6, Y 7 ) Step 4. The following operations are iterated for j = 1 to. (X 0, X 1,..., X 7 ) RoundM (j) L (X 0, X 1,..., X 7 ) (Y 0, Y 1,..., Y 7 ) RoundM (j) R (Y 0, Y 1,..., Y 7 ) (Z 0, Z 1,..., Z 7 ) RoundC (2j) (Z 0, Z 1,..., Z 7 ) (Z 0, Z 1,..., Z 7 ) (Z 0, Z 1,..., Z 7 ) (X 0, X 1, X 2, X 3, X 4, X 5, X 6, X 7 ) (Z 0, Z 1,..., Z 7 ) RoundC (2j+1) (Z 0, Z 1,..., Z 7 ) (Z 0, Z 1,..., Z 7 ) (Z 0, Z 1,..., Z 7 ) (Y 0, Y 1, Y 2, Y 3, Y 4, Y 5, Y 6, Y 7 ) Step 5. Finally, the output is H i+1 () (Z 0, Z 1,..., Z 7 ) H i. In the above specification, X 1, X 3, Y 1 and Y 3 are defined as (X 1 X 3) = (X 1 X 3 ) 64 1 and (Y 1 Y 3) = (Y 1 Y 3 ) Alternative Specification of FF An alternative specification of FF is obtained by replacing constants in the specification of CF as CONC j CONC j+32, CONM L,j CONM L,j+32 and CONM R,j CONM R,j

27 2.4 Specification of AURORA-224 AURORA-224 takes the input message of length at most 512 (2 64 1) = bits, and outputs the hash value of 224 bits. It uses the same padding function Pad, the compression function CF, and the finalization function FF as AURORA- defined in Sec The difference is that AURORA-224 uses H 0 = 1 as the initial value, and the output of FF is truncated to 224 bits by the truncation function TF 224. The truncation function, TF 224 ( ) : {0, 1} {0, 1} 224, first parses the input H m () into a sequence of bytes H m () = (m 0 (), m 1 (),..., m 31 () ) and drops m 7, m 15, m 23, and m 31 to produce the 224-bit hash value H m (224) = (m 0 (), m 1 (),..., m 27 ()). That is, for the -bit input H m () = (m 0 (), m 1 (),..., m 31 () ), the 224-bit output is H m (224) = (m 0 (), m 1 (),..., m 27 () ), where m i = m i for 0 i 6 m i = m i+1 for 7 i 13 m i = m i+2 for 14 i 20 m i = m i+3 for 21 i 27 Now we describe the specification of AURORA-224. Step 1. The input message M is first padded with Pad( ) in (2.10), and the result of Pad(M) is divided into blocks M 0, M 1,..., M m 1 each of length 512 bits, i.e., let (M 0 (512), M 1 (512),..., M m 1 (512) ) Pad(M). Step 2. Let H 0 () = 1, and compute H 1 (), H 2 (),..., H m 1 () by iterating for i = 0 to m 2. H i+1 CF (H i, M i ) Note that when Pad(M) has one block (i.e., when m = 1 and Pad(M) = M 0 ), then Step 2 is not executed. Step 3. Let H m FF (H m 1, M m 1 ), and the output is H m (224) TF 224(H m () ). See Fig for a pseudocode. 27

28 2.5 Specification of AURORA Overall Structure AURORA-512 takes the input message of length at most 512 (2 64 1) = bits, and outputs the hash value of 512 bits. It internally uses eight compression functions CF 0, CF 1,..., CF 7, a mixing function MF, and a mixing function for finalization MFF, where CF s (, ) : {0, 1} 512 {0, 1} 512 {0, 1} 512 for s {0, 1,..., 7}, MF ( ) : {0, 1} 512 {0, 1} 512, MFF ( ) : {0, 1} 512 {0, 1} 512. The compression functions CF 0, CF 1,..., CF 7 are defined in Sec , the mixing function MF is defined in Sec , and the mixing function for finalization MFF is defined in Sec Now we describe the specification of AURORA-512. Step 1. The input message M is padded with the padding function Pad( ) in (2.10), and Pad(M) is divided into blocks M 0, M 1,..., M m 1 each of length 512 bits, i.e., let (M 0 (512), M 1 (512),..., M m 1 (512) ) Pad(M). Step 2. Now let H 0 (512) Then compute H 1 (512), H 2 (512),..., H m (512) by iterating the following operations for i = 0 to m 1. { Hi+1 CF i mod (H i, M i ) if (0 < i < m 1) (i mod = 7) then H i+1 MF (H i+1 ) Step 3. Finally, the output is H m (512) MFF (H m (512) ). See Fig. 2. for an illustration and Fig for a pseudocode Compression Functions: CF 0, CF 1,..., CF 7 The compression function, CF s, where s {0, 1,..., 7}, takes the chaining value H i of 512 bits and the input message block M i of 512 bits, and outputs the chaining value H i+1 of 512 bits. For each s {0, 1,..., 7}, CF s internally uses two message scheduling functions MS L,s and MS R,s, a data rotating function DR, and two chaining value processing functions CP L,s and CP R,s, where MS L,s ( ) : {0, 1} ({0, 1} 32 ) 72, MS R,s ( ) : {0, 1} ({0, 1} 32 ) 72, DR(, ) : ({0, 1} 32 ) 72 ({0, 1} 32 ) 72 ({0, 1} 32 ) 144, CP L,s (, ) : {0, 1} ({0, 1} 32 ) 144 {0, 1}, CP R,s (, ) : {0, 1} ({0, 1} 32 ) 144 {0, 1}. These functions are defined below. Components of CF 0, CF 1,..., CF 7 For any X {0, 1}, MS L,s is defined as MS L,s (X) = MSM [F 0, F 1 ](X, {CONM L,s,j (32) } 0 j<32 ), (2.1) where F 0 and F 1 are F-functions defined in Sec , and {CONM L,s,j (32) } 0 j<32 is the set of constants defined in Sec

29 M 0 M 1 M 7 H 0 CF 0 CF 1 CF 7 MF H 1 H 2 H 7 H H times M M 9 M 15 CF 0 CF 1 CF 7 MF H H 9 H 10 H 15 H 16 H 16 times M m 2 M m 1 CF l 2 CF l 1 MFF H m H m 2 H m 1 H m Figure 2.: AURORA-512, where l = m mod. 29

30 For any X {0, 1}, MS R,s is defined as MS R,s (X) = MSM [F 2, F 3 ](X, {CONM R,s,j (32) } 0 j<32 ), (2.19) where F 2 and F 3 are F-functions defined in Sec , and {CONM R,s,j (32) } 0 j<32 is the set of constants defined in Sec DR is the data rotating function defined in Sec For any X {0, 1} and Y ({0, 1} 32 ) 144, CP L,s is defined as CP L,s (X, Y ) = CPM [F 1, F 0 ](X, Y, {CONC L,s,j (32) } 0 j<6 ), (2.20) where F 0 and F 1 are F-functions defined in Sec , and {CONC L,s,j (32) } 0 j<6 is the set of constants defined in Sec For any X {0, 1} and Y ({0, 1} 32 ) 144, CP R,s is defined as CP R,s (X, Y ) = CPM [F 3, F 2 ](X, Y, {CONC R,s,j (32) } 0 j<6 ), (2.21) where F 2 and F 3 are F-functions defined in Sec , and {CONC R,s,j (32) } 0 j<6 is the set of constants defined in Sec Specification of CF 0, CF 1,..., CF 7 Now the compression function CF s works as follows. Step 1. Let (M L (), M R () ) M i (512), and (X L (), X R () ) H i (512). Step 2. Let {T L,j (32) } 0 j<72 MS L,s (M L () ). Step 3. Let {T R,j (32) } 0 j<72 MS R,s (M R () ). Step 4. Let {U j (32) } 0 j 144 DR({T L,j (32) } 0 j<72, {T R,j (32) } 0 j<72 ). Step 5. Let Y L () CP L,s (X L (), {U j (32) } 0 j<144 ). Step 6. Let Y R () CP R,s (X R (), {U j (32) } 0 j<144 ). Step 7. Finally, the output is H i+1 (512) (Y L () X L () Y R () X R () ). See Fig. 2.9 for an illustration and Fig for a pseudocode Mixing Function: MF The mixing function MF is used to mix the chaining values every after eight calls of CF s. It takes the chaining value H i of 512 bits and outputs the updated chaining value H i of 512 bits. It internally uses two message scheduling functions MS L, and MS R,, a data rotating function DR, and two chaining value processing functions CP L, and CP R,, where These functions are defined below. MS L, ( ) : {0, 1} ({0, 1} 32 ) 72, MS R, ( ) : {0, 1} ({0, 1} 32 ) 72, DR(, ) : ({0, 1} 32 ) 72 ({0, 1} 32 ) 72 ({0, 1} 32 ) 144, CP L, (, ) : {0, 1} ({0, 1} 32 ) 144 {0, 1}, CP R, (, ) : {0, 1} ({0, 1} 32 ) 144 {0, 1}. 30

31 M i H i M L M R X L X R T L,0 T L,1 T L,7 U 0 U 1 U 7 T R,0 T R,1 T R,7 U U 9 U 15 T L, T L,9 T L,15 U 16 U 17 U 23 MS L,s MS R,s T R, T R,9 T R,15 DR U 24 U 25 U 31 CP L,s CP R,s T L,64 T L,65 T L,71 U U 129 U 135 T R,64 T R,65 T R,71 U 136 U 137 U 143 Y L Y R Z L Z R H i+1 Figure 2.9: H i+1 (512) CF s (H i (512), M i (512) ). Components of MF For any X {0, 1}, MS L, is defined as MS L, (X) = MSM [F 0, F 1 ](X, {CONM L,,j (32) } 0 j<32 ), (2.22) where F 0 and F 1 are F-functions defined in Sec , and {CONM L,,j (32) } 0 j<32 is the set of constants defined in Sec For any X {0, 1}, MS R, is defined as MS R, (X) = MSM [F 2, F 3 ](X, {CONM R,,j (32) } 0 j<32 ), (2.23) where F 2 and F 3 are F-functions defined in Sec , and {CONM R,,j (32) } 0 j<32 is the set of constants defined in Sec DR is the data rotating function defined in Sec For any X {0, 1} and Y ({0, 1} 32 ) 144, CP L, is defined as CP L, (X, Y ) = CPM [F 1, F 0 ](X, Y, {CONC L,,j (32) } 0 j<6 ), (2.24) where F 0 and F 1 are F-functions defined in Sec , and {CONC L,,j (32) } 0 j<6 is the set of constants defined in Sec For any X {0, 1} and Y ({0, 1} 32 ) 144, CP R, is defined as CP R, (X, Y ) = CPM [F 3, F 2 ](X, Y, {CONC R,,j (32) } 0 j<6 ), (2.25) where F 2 and F 3 are F-functions defined in Sec , and {CONC R,,j (32) } 0 j<6 is the set of constants defined in Sec

32 Specification of MF Now we describe the specification of MF. Step 1. Let (X L (), X R () ) H i (512). Step 2. Let {T L,j (32) } 0 j<72 MS L, (X L () ). Step 3. Let {T R,j (32) } 0 j<72 MS R, (X R () ). Step 4. Let {U j (32) } 0 j 144 DR({T L,j (32) } 0 j<72, {T R,j (32) } 0 j<72 ). Step 5. Let Y L () CP L, (X L (), {U j (32) } 0 j<144 ). Step 6. Let Y R () CP R, (X R (), {U j (32) } 0 j<144 ). Step 7. Finally, the output is H i (512) (Y L () X L () Y R () X R () ). See Fig for an illustration and Fig for a pseudocode. H i X L X R T L,0 T L,1 T L,7 U 0 U 1 U 7 T R,0 T R,1 T R,7 U U 9 U 15 MS L, MS R, T L, T L,9 T L,15 T R, T R,9 T R,15 DR U 16 U 17 U 23 U 24 U 25 U 31 CP L, CP R, T L,64 T L,65 T L,71 U U 129 U 135 T R,64 T R,65 T R,71 U 136 U 137 U 143 Y L Y R Z L Z R H i Figure 2.10: H i (512) MF (H i (512) ) Mixing Function for Finalization: MFF The mixing function for finalization MFF is used at the last computation of the final hash value. MFF is structurally equivalent to MF, and the only difference is the constants used in the components. It takes the last chaining value H m of 512 bits and outputs the updated value H m of 512 bits, which is the final hash value. It internally uses two message scheduling functions MS L,9 32

33 and MS R,9, a data rotating function DR, and two chaining value processing functions CP L,9 and CP R,9, where MS L,9 : {0, 1} ({0, 1} 32 ) 32 ({0, 1} 32 ) 72, MS R,9 : {0, 1} ({0, 1} 32 ) 32 ({0, 1} 32 ) 72, DR : ({0, 1} 32 ) 72 ({0, 1} 32 ) 72 ({0, 1} 32 ) 144, (2.26) CP L,9 : {0, 1} ({0, 1} 32 ) 144 ({0, 1} 32 ) 6 {0, 1}, CP R,9 : {0, 1} ({0, 1} 32 ) 144 ({0, 1} 32 ) 6 {0, 1}. These functions are defined below. Components of MFF For any X {0, 1}, MS L,9 is defined as MS L,9 (X) = MSM [F 0, F 1 ](X, {CONM L,9,j (32) } 0 j<32 ), (2.27) where F 0 and F 1 are F-functions defined in Sec , and {CONM L,9,j (32) } 0 j<32 is the set of constants defined in Sec Similarly, for any X {0, 1}, MS R,9 is defined as MS R,9 (X) = MSM [F 2, F 3 ](X, {CONM R,9,j (32) } 0 j<32 ), (2.2) where F 2 and F 3 are F-functions defined in Sec , and {CONM R,9,j (32) } 0 j<32 is the set of constants defined in Sec DR is the data rotating function defined in Sec For any X {0, 1} and Y ({0, 1} 32 ) 144, CP L,9 is defined as CP L,9 (X, Y ) = CPM [F 1, F 0 ](X, Y, {CONC L,9,j (32) } 0 j<6 ), (2.29) where F 0 and F 1 are F-functions defined in Sec , and {CONC L,9,j (32) } 0 j<6 is the set of constants defined in Sec For any X {0, 1} and Y ({0, 1} 32 ) 144, CP R,9 is defined as CP R,9 (X, Y ) = CPM [F 3, F 2 ](X, Y, {CONC R,9,j (32) } 0 j<6 ), (2.30) where F 2 and F 3 are F-functions defined in Sec , and {CONC R,9,j (32) } 0 j<6 is the set of constants defined in Sec Specification of MFF Now we describe the specification of MFF. Step 1. Let (X L (), X R () ) H m (512). Step 2. Let {T L,j (32) } 0 j<72 MS L,9 (X L () ). Step 3. Let {T R,j (32) } 0 j<72 MS R,9 (X R () ). Step 4. Let {U j (32) } 0 j 144 DR({T L,j (32) } 0 j<72, {T R,j (32) } 0 j<72 ). Step 5. Let Y L () CP L,9 (X L (), {U j (32) } 0 j<144 ). Step 6. Let Y R () CP R,9 (X R (), {U j (32) } 0 j<144 ). Step 7. Finally, the output is H m (512) (Y L () X L () Y R () X R () ). See Fig for a pseudocode. 33

34 2.6 Specification of AURORA-34 AURORA-34 takes the input message of length at most 512 (2 64 1) = bits, and outputs the hash value of 34 bits. It uses the same padding function Pad, the compression functions CF 0, CF 1,..., CF 7, the mixing function MF, and the mixing function for finalization MFF as AURORA-512 defined in Sec The difference is that AURORA-34 uses H 0 = as the initial value, and the output of MFF is truncated to 34 bits by the truncation function TF 34. The truncation function, TF 34 ( ) : {0, 1} 512 {0, 1} 34, first parses the input H m (512) into a sequence of bytes H m (512) = (m 0 (), m 1 (),..., m 63 () ) and drops the following bytes; m 6, m 7, m 14, m 15, m 22, m 23, m 30, m 31, m 3, m 39, m 46, m 47, m 54, m 55, m 62, m 63, to produce the 34-bit hash value H m (34) = (m 0 (), m 1 (),..., m 47 () ). That is, for the 512-bit input H m (512) = (m 0 (), m 1 (),..., m 63 () ), the 34-bit output is H m (34) = (m 0 (), m 1 (),..., m 47 ()), where m i = m i for 0 i 5 m i = m i+2 for 6 i 11 m i = m i+4 for 12 i 17 m i = m i+6 for 1 i 23 m i = m i+ for 24 i 29 m i = m i+10 for 30 i 35 m i = m i+12 for 36 i 41 m i = m i+14 for 42 i 47 Now we describe the specification of AURORA-34. Step 1. The input message M is first padded with Pad( ) in (2.10), and the result of Pad(M) is divided into blocks M 0, M 1,..., M m 1 each of length 512 bits, i.e., let (M 0 (512), M 1 (512),..., M m 1 (512) ) Pad(M). Step 2. Let H 0 (512) = 1 512, and compute H 1 (512), H 2 (512),..., H m (512) by iterating for i = 0 to m 1. { Hi+1 CF i mod (H i, M i ) if (0 < i < m 1) (i mod = 7) then H i+1 MF (H i+1 ) Step 3. Let H m (512) MFF (H m (512) ), and output H m (34) TF 34(H m (512) ). See Fig for a pseudocode. 34

The Advanced Encryption Standard

The Advanced Encryption Standard Lecturers: Mark D. Ryan and David Galindo. Cryptography 2017. Slide: 48 The Advanced Encryption Standard Successor of DES DES considered insecure; 3DES considered too slow. NIST competition in 1997 15

More information

Cristina Nita-Rotaru. CS355: Cryptography. Lecture 9: Encryption modes. AES

Cristina Nita-Rotaru. CS355: Cryptography. Lecture 9: Encryption modes. AES CS355: Cryptography Lecture 9: Encryption modes. AES Encryption modes: ECB } Message is broken into independent blocks of block_size bits; } Electronic Code Book (ECB): each block encrypted separately.

More information

The Hash Function JH 1

The Hash Function JH 1 The Hash Function JH 1 16 January, 2011 Hongjun Wu 2,3 wuhongjun@gmail.com 1 The design of JH is tweaked in this report. The round number of JH is changed from 35.5 to 42. This new version may be referred

More information

Secret Key Systems (block encoding) Encrypting a small block of text (say 64 bits) General considerations for cipher design:

Secret Key Systems (block encoding) Encrypting a small block of text (say 64 bits) General considerations for cipher design: Secret Key Systems (block encoding) Encrypting a small block of text (say 64 bits) General considerations for cipher design: Secret Key Systems Encrypting a small block of text (say 64 bits) General considerations

More information

Introduction. CSC/ECE 574 Computer and Network Security. Outline. Introductory Remarks Feistel Cipher DES AES

Introduction. CSC/ECE 574 Computer and Network Security. Outline. Introductory Remarks Feistel Cipher DES AES CSC/ECE 574 Computer and Network Security Topic 3.1 Secret Key Cryptography Algorithms CSC/ECE 574 Dr. Peng Ning 1 Outline Introductory Remarks Feistel Cipher DES AES CSC/ECE 574 Dr. Peng Ning 2 Introduction

More information

Improved S-Box Construction from Binomial Power Functions

Improved S-Box Construction from Binomial Power Functions Malaysian Journal of Mathematical Sciences 9(S) June: 21-35 (2015) Special Issue: The 4 th International Cryptology and Information Security Conference 2014 (Cryptology 2014) MALAYSIAN JOURNAL OF MATHEMATICAL

More information

The Hash Function Fugue

The Hash Function Fugue The Hash Function Fugue Shai Halevi William E. Hall Charanjit S. Jutla IBM T.J. Watson Research Center October 6, 2009 Abstract We describe Fugue, a hash function supporting inputs of length upto 2 64

More information

Cryptographic Hash Function. Norwegian University of Science and Technology. Trondheim, Norway

Cryptographic Hash Function. Norwegian University of Science and Technology. Trondheim, Norway Cryptographic Hash Function BLUE MIDNIGHT WISH Norwegian University of Science and Technology Trondheim, Norway Danilo Gligoroski Vlastimil Klima Svein Johan Knapskog Mohamed El-Hadedy Jørn Amundsen Stig

More information

Practical Free-Start Collision Attacks on full SHA-1

Practical Free-Start Collision Attacks on full SHA-1 Practical Free-Start Collision Attacks on full SHA-1 Inria and École polytechnique, France Nanyang Technological University, Singapore Joint work with Thomas Peyrin and Marc Stevens Séminaire Cryptologie

More information

CHAPTER 5 A BLOCK CIPHER INVOLVING A KEY APPLIED ON BOTH THE SIDES OF THE PLAINTEXT

CHAPTER 5 A BLOCK CIPHER INVOLVING A KEY APPLIED ON BOTH THE SIDES OF THE PLAINTEXT 82 CHAPTER 5 A BLOCK CIPHER INVOLVING A KEY APPLIED ON BOTH THE SIDES OF THE PLAINTEXT 83 5.1 Introduction In a pioneering paper, Hill [5] developed a block cipher by using the modular arithmetic inverse

More information

A Very Efficient Pseudo-Random Number Generator Based On Chaotic Maps and S-Box Tables M. Hamdi, R. Rhouma, S. Belghith

A Very Efficient Pseudo-Random Number Generator Based On Chaotic Maps and S-Box Tables M. Hamdi, R. Rhouma, S. Belghith A Very Efficient Pseudo-Random Number Generator Based On Chaotic Maps and S-Box Tables M. Hamdi, R. Rhouma, S. Belghith Abstract Generating random numbers are mainly used to create secret keys or random

More information

The Rijndael Block Cipher

The Rijndael Block Cipher The Rijndael Block Cipher Vincent Leith MATH 27.2 May 3, 2 A brief look at the mathematics behind the Rijndael Block Chiper. Introduction The Rijndael Block Chiper was brought about by Joan Daemen and

More information

ARIRANG. Designed by CIST ARIRANG. Designed by CIST. Algorithm Name : ARIRANG

ARIRANG. Designed by CIST ARIRANG. Designed by CIST. Algorithm Name : ARIRANG ARIRANG Algorithm Name : ARIRANG Principal Submitter : Jongin Lim Tel : +82 2 3290 4044 Fax : +82 2 928 9109 Email : jilim@korea.ac.kr Organization : Korea Univ. Postal address : Center for Information

More information

Introduction to Information Security

Introduction to Information Security Introduction to Information Security Lecture 4: Hash Functions and MAC 2007. 6. Prof. Byoungcheon Lee sultan (at) joongbu. ac. kr Information and Communications University Contents 1. Introduction - Hash

More information

Applications of Finite Sets Jeremy Knight Final Oral Exam Texas A&M University March 29 th 2012

Applications of Finite Sets Jeremy Knight Final Oral Exam Texas A&M University March 29 th 2012 Finite Fields and Cryptography Applications of Finite Sets Jeremy Knight Final Oral Exam Texas A&M University March 29 th 2012 A field is a set that 1. is associative, commutative, and distributive for

More information

Foundations of Network and Computer Security

Foundations of Network and Computer Security Foundations of Network and Computer Security John Black Lecture #5 Sep 7 th 2004 CSCI 6268/TLEN 5831, Fall 2004 Announcements Please sign up for class mailing list by end of today Quiz #1 will be on Thursday,

More information

Foundations of Network and Computer Security

Foundations of Network and Computer Security Foundations of Network and Computer Security John Black Lecture #6 Sep 8 th 2005 CSCI 6268/TLEN 5831, Fall 2005 Announcements Quiz #1 later today Still some have not signed up for class mailing list Perhaps

More information

Cryptanalysis of Edon-R

Cryptanalysis of Edon-R Cryptanalysis of Edon-R Dmitry Khovratovich, Ivica Nikolić, and Ralf-Philipp Weinmann University of Luxembourg Abstract. We present various types of attacks on the hash family Edon- R. In a free start

More information

Week 12: Hash Functions and MAC

Week 12: Hash Functions and MAC Week 12: Hash Functions and MAC 1. Introduction Hash Functions vs. MAC 2 Hash Functions Any Message M Hash Function Generate a fixed length Fingerprint for an arbitrary length message. No Key involved.

More information

Cryptographic Hashes. Yan Huang. Credits: David Evans, CS588

Cryptographic Hashes. Yan Huang. Credits: David Evans, CS588 Cryptographic Hashes Yan Huang Credits: David Evans, CS588 Recap: CPA 1. k KeyGen(1 n ). b {0,1}. Give Enc(k, ) to A. 2. A chooses as many plaintexts as he wants, and receives the corresponding ciphertexts

More information

Invariant Subspace Attack Against Full Midori64

Invariant Subspace Attack Against Full Midori64 Invariant Subspace Attack Against Full Midori64 Jian Guo 1, Jérémy Jean 1, Ivica Nikolić 1, Kexin Qiao 1,2, Yu Sasaki 1,3, and Siang Meng Sim 1 1 Nanyang Technological University, Singapore 2 Institute

More information

MASKED INVERSION IN GF(2 N ) USING MIXED FIELD REPRESENTATIONS AND ITS EFFICIENT IMPLEMENTATION FOR AES

MASKED INVERSION IN GF(2 N ) USING MIXED FIELD REPRESENTATIONS AND ITS EFFICIENT IMPLEMENTATION FOR AES Chapter X MASKED INVERSION IN GF( N ) USING MIXED FIELD REPRESENTATIONS AND ITS EFFICIENT IMPLEMENTATION FOR AES SHAY GUERON 1,, ORI PARZANCHEVSKY 1 and OR ZUK 1,3 1 Discretix Technologies, Netanya, ISRAEL

More information

Linearization and Message Modification Techniques for Hash Function Cryptanalysis

Linearization and Message Modification Techniques for Hash Function Cryptanalysis Linearization and Message Modification Techniques for Hash Function Cryptanalysis Jian Guo Institute for Infocomm Research, Singapore. ASK 2011, 30 August 2011 Jian Guo Linearization and Message Modification

More information

ENEE 459-C Computer Security. Message authentication (continue from previous lecture)

ENEE 459-C Computer Security. Message authentication (continue from previous lecture) ENEE 459-C Computer Security Message authentication (continue from previous lecture) Last lecture Hash function Cryptographic hash function Message authentication with hash function (attack?) with cryptographic

More information

Low-weight Pseudo Collision Attack on Shabal and Preimage Attack on Reduced Shabal-512

Low-weight Pseudo Collision Attack on Shabal and Preimage Attack on Reduced Shabal-512 Low-weight Pseudo Collision Attack on Shabal and Preimage Attack on Reduced Shabal-512 Takanori Isobe and Taizo Shirai Sony Corporation 1-7-1 Konan, Minato-ku, Tokyo 108-0075, Japan {Takanori.Isobe,Taizo.Shirai}@jp.sony.com

More information

Pseudo-cryptanalysis of the Original Blue Midnight Wish

Pseudo-cryptanalysis of the Original Blue Midnight Wish Pseudo-cryptanalysis of the Original Blue Midnight Wish Søren S. Thomsen DTU Mathematics, Technical University of Denmark September 28, 2009 Abstract The hash function Blue Midnight Wish (BMW) is a candidate

More information

4.3 Analog Value Representation

4.3 Analog Value Representation 4.3 Analog Value Representation Introduction This section describes the analog values for all the measuring ranges and output ranges which you can use with the analog modules. Converting analog values

More information

Lecture 14: Cryptographic Hash Functions

Lecture 14: Cryptographic Hash Functions CSE 599b: Cryptography (Winter 2006) Lecture 14: Cryptographic Hash Functions 17 February 2006 Lecturer: Paul Beame Scribe: Paul Beame 1 Hash Function Properties A hash function family H = {H K } K K is

More information

Avoiding collisions Cryptographic hash functions. Table of contents

Avoiding collisions Cryptographic hash functions. Table of contents Avoiding collisions Cryptographic hash functions Foundations of Cryptography Computer Science Department Wellesley College Fall 2016 Table of contents Introduction Davies-Meyer Hashes in Practice Hash

More information

REU 2015: Complexity Across Disciplines. Introduction to Cryptography

REU 2015: Complexity Across Disciplines. Introduction to Cryptography REU 2015: Complexity Across Disciplines Introduction to Cryptography Symmetric Key Cryptosystems Iterated Block Ciphers Definition Let KS : K K s be a function that produces a set of subkeys k i K, 1 i

More information

A Composition Theorem for Universal One-Way Hash Functions

A Composition Theorem for Universal One-Way Hash Functions A Composition Theorem for Universal One-Way Hash Functions Victor Shoup IBM Zurich Research Lab, Säumerstr. 4, 8803 Rüschlikon, Switzerland sho@zurich.ibm.com Abstract. In this paper we present a new scheme

More information

Attacks on hash functions. Birthday attacks and Multicollisions

Attacks on hash functions. Birthday attacks and Multicollisions Attacks on hash functions Birthday attacks and Multicollisions Birthday Attack Basics In a group of 23 people, the probability that there are at least two persons on the same day in the same month is greater

More information

Type 1.x Generalized Feistel Structures

Type 1.x Generalized Feistel Structures Noname manuscript No. (will be inserted by the editor) Type 1.x Generalized eistel Structures Shingo Yanagihara Tetsu Iwata Received: date / Accepted: date Abstract We formalize the Type 1.x Generalized

More information

Understanding Cryptography A Textbook for Students and Practitioners by Christof Paar and Jan Pelzl. Chapter 11 Hash Functions ver.

Understanding Cryptography A Textbook for Students and Practitioners by Christof Paar and Jan Pelzl. Chapter 11 Hash Functions ver. Understanding Cryptography A Textbook for Students and Practitioners by Christof Paar and Jan Pelzl www.crypto-textbook.com Chapter 11 Hash Functions ver. October 29, 2009 These slides were prepared by

More information

CPSC 467: Cryptography and Computer Security

CPSC 467: Cryptography and Computer Security CPSC 467: Cryptography and Computer Security Michael J. Fischer Lecture 16 October 30, 2017 CPSC 467, Lecture 16 1/52 Properties of Hash Functions Hash functions do not always look random Relations among

More information

Cryptographic Hash Function

Cryptographic Hash Function Cryptographic Hash Function EDON-R Norwegian University of Science and Technology Trondheim, Norway Danilo Gligoroski Rune Steinsmo Ødegård Marija Mihova Svein Johan Knapskog Ljupco Kocarev Aleš Drápal

More information

Unit 3. Digital encoding

Unit 3. Digital encoding Unit 3. Digital encoding Digital Electronic Circuits (Circuitos Electrónicos Digitales) E.T.S.I. Informática Universidad de Sevilla 9/2012 Jorge Juan 2010, 2011, 2012 You are free to

More information

An Improved Fast and Secure Hash Algorithm

An Improved Fast and Secure Hash Algorithm Journal of Information Processing Systems, Vol.8, No.1, March 2012 http://dx.doi.org/10.3745/jips.2012.8.1.119 An Improved Fast and Secure Hash Algorithm Siddharth Agarwal*, Abhinav Rungta*, R.Padmavathy*,

More information

Message Authentication Codes (MACs)

Message Authentication Codes (MACs) Message Authentication Codes (MACs) Tung Chou Technische Universiteit Eindhoven, The Netherlands October 8, 2015 1 / 22 About Me 2 / 22 About Me Tung Chou (Tony) 2 / 22 About Me Tung Chou (Tony) Ph.D.

More information

New Attacks on the Concatenation and XOR Hash Combiners

New Attacks on the Concatenation and XOR Hash Combiners New Attacks on the Concatenation and XOR Hash Combiners Itai Dinur Department of Computer Science, Ben-Gurion University, Israel Abstract. We study the security of the concatenation combiner H 1(M) H 2(M)

More information

SMASH - A Cryptographic Hash Function

SMASH - A Cryptographic Hash Function SMASH - A Cryptographic Hash Function Lars R. Knudsen Department of Mathematics, Technical University of Denmark Abstract. 1 This paper presents a new hash function design, which is different from the

More information

Public-key Cryptography: Theory and Practice

Public-key Cryptography: Theory and Practice Public-key Cryptography Theory and Practice Department of Computer Science and Engineering Indian Institute of Technology Kharagpur Appendix A: Symmetric Techniques Block Ciphers A block cipher f of block-size

More information

Keccak sponge function family main document

Keccak sponge function family main document Keccak sponge function family main document Guido Bertoni 1 Joan Daemen 1 Michaël Peeters 2 Gilles Van Assche 1 http://keccak.noekeon.org/ Version 1.1 January 9, 2009 1 STMicroelectronics 2 NXP Semiconductors

More information

Cryptographic Hash Functions

Cryptographic Hash Functions Cryptographic Hash Functions Çetin Kaya Koç koc@ece.orst.edu Electrical & Computer Engineering Oregon State University Corvallis, Oregon 97331 Technical Report December 9, 2002 Version 1.5 1 1 Introduction

More information

Distinguishing Attacks on MAC/HMAC Based on A New Dedicated Compression Function Framework

Distinguishing Attacks on MAC/HMAC Based on A New Dedicated Compression Function Framework Distinguishing Attacks on MAC/HMAC Based on A New Dedicated Compression Function Framework Zheng Yuan 1,2,3, Haixia Liu 1, Xiaoqiu Ren 1 1 Beijing Electronic Science and Technology Institute, Beijing 100070,China

More information

Impossible Differential-Linear Cryptanalysis of Reduced-Round CLEFIA-128

Impossible Differential-Linear Cryptanalysis of Reduced-Round CLEFIA-128 Impossible Differential-Linear Cryptanalysis of Reduced-Round CLEFIA-8 Zheng Yuan,,, ian Li, Beijing Electronic Science & Technology Institute, Beijing 7, P.R. China zyuan@tsinghua.edu.cn, sharonlee95@6.com

More information

REU 2015: Complexity Across Disciplines. Introduction to Cryptography

REU 2015: Complexity Across Disciplines. Introduction to Cryptography REU 2015: Complexity Across Disciplines Introduction to Cryptography Iterated Block Ciphers Definition Let KS : K K s be a function that produces a set of subkeys k i K, 1 i s from any key k K. A block

More information

From 5-pass MQ-based identification to MQ-based signatures

From 5-pass MQ-based identification to MQ-based signatures From 5-pass MQ-based identification to MQ-based signatures Ming-Shing Chen 1,2, Andreas Hülsing 3, Joost Rijneveld 4, Simona Samardjiska 5, Peter Schwabe 4 National Taiwan University 1 / Academia Sinica

More information

ECS 189A Final Cryptography Spring 2011

ECS 189A Final Cryptography Spring 2011 ECS 127: Cryptography Handout F UC Davis Phillip Rogaway June 9, 2011 ECS 189A Final Cryptography Spring 2011 Hints for success: Good luck on the exam. I don t think it s all that hard (I do believe I

More information

Domain Extender for Collision Resistant Hash Functions: Improving Upon Merkle-Damgård Iteration

Domain Extender for Collision Resistant Hash Functions: Improving Upon Merkle-Damgård Iteration Domain Extender for Collision Resistant Hash Functions: Improving Upon Merkle-Damgård Iteration Palash Sarkar Cryptology Research Group Applied Statistics Unit Indian Statistical Institute 203, B.T. Road,

More information

New attacks on Keccak-224 and Keccak-256

New attacks on Keccak-224 and Keccak-256 New attacks on Keccak-224 and Keccak-256 Itai Dinur 1, Orr Dunkelman 1,2 and Adi Shamir 1 1 Computer Science department, The Weizmann Institute, Rehovot, Israel 2 Computer Science Department, University

More information

A B CDE F B FD D A C AF DC A F

A B CDE F B FD D A C AF DC A F International Journal of Arts & Sciences, CD-ROM. ISSN: 1944-6934 :: 4(20):121 131 (2011) Copyright c 2011 by InternationalJournal.org A B CDE F B FD D A C A BC D EF C CE C A D ABC DEF B B C A E E C A

More information

CPSC 467: Cryptography and Computer Security

CPSC 467: Cryptography and Computer Security CPSC 467: Cryptography and Computer Security Michael J. Fischer Lecture 15 October 20, 2014 CPSC 467, Lecture 15 1/37 Common Hash Functions SHA-2 MD5 Birthday Attack on Hash Functions Constructing New

More information

Sponge Functions. 1 Introduction. Guido Bertoni 1, Joan Daemen 1, Michaël Peeters 2, and Gilles Van Assche 1

Sponge Functions. 1 Introduction. Guido Bertoni 1, Joan Daemen 1, Michaël Peeters 2, and Gilles Van Assche 1 Sponge Functions Guido Bertoni 1, Joan Daemen 1, Michaël Peeters 2, and Gilles Van Assche 1 gro.noekeon@noekeon.org 1 STMicroelectronics 2 NXP Semiconductors Abstract. A good cryptographic hash function

More information

Specification on a Block Cipher : Hierocrypt L1

Specification on a Block Cipher : Hierocrypt L1 Specification on a Block Cipher : Hierocrypt L1 Toshiba Corporation September 2001 Contents 1 Design principle 3 1.1 Data randomizing part........................ 3 1.1.1 Nested SPN structure....................

More information

Hash Functions. Ali El Kaafarani. Mathematical Institute Oxford University. 1 of 34

Hash Functions. Ali El Kaafarani. Mathematical Institute Oxford University. 1 of 34 Hash Functions Ali El Kaafarani Mathematical Institute Oxford University 1 of 34 Outline 1 Definition and Notions of Security 2 The Merkle-damgård Transform 3 MAC using Hash Functions 4 Cryptanalysis:

More information

Functional Graph Revisited: Updates on (Second) Preimage Attacks on Hash Combiners

Functional Graph Revisited: Updates on (Second) Preimage Attacks on Hash Combiners Functional Graph Revisited: Updates on (Second) Preimage Attacks on Hash Combiners Zhenzhen Bao 1,2, Lei Wang 1,3, Jian Guo 2, and Dawu Gu 1 1 Shanghai Jiao Tong University, Shanghai, China 2 Nanyang Technological

More information

Cryptanalysis on HMAC/NMAC-MD5 and MD5-MAC

Cryptanalysis on HMAC/NMAC-MD5 and MD5-MAC Cryptanalysis on HMAC/NMAC-MD5 and MD5-MAC Xiaoyun Wang 1,2, Hongbo Yu 1, Wei Wang 2, Haina Zhang 2, and Tao Zhan 3 1 Center for Advanced Study, Tsinghua University, Beijing 100084, China {xiaoyunwang,

More information

STRIBOB : Authenticated Encryption

STRIBOB : Authenticated Encryption 1 / 19 STRIBOB : Authenticated Encryption from GOST R 34.11-2012 or Whirlpool Markku-Juhani O. Saarinen mjos@item.ntnu.no Norwegian University of Science and Technology Directions in Authentication Ciphers

More information

Security Analysis of the Compression Function of Lesamnta and its Impact

Security Analysis of the Compression Function of Lesamnta and its Impact Security Analysis of the Compression Function of Lesamnta and its Impact Shoichi Hirose 1, Hidenori Kuwakado 2, Hirotaka Yoshida 3, 4 1 University of Fukui hrs shch@u-fukui.ac.jp 2 Kobe University kuwakado@kobe-u.ac.jp

More information

Security II: Cryptography exercises

Security II: Cryptography exercises Security II: Cryptography exercises Markus Kuhn Lent 2015 Part II Some of the exercises require the implementation of short programs. The model answers use Perl (see Part IB Unix Tools course), but you

More information

Preimage and Pseudo-Collision Attacks on Step-Reduced SM3 Hash Function

Preimage and Pseudo-Collision Attacks on Step-Reduced SM3 Hash Function Preimage and Pseudo-Collision Attacks on Step-Reduced SM3 Hash Function Gaoli Wang 1 and Yanzhao Shen 1 1 School of Computer Science and Technology, Donghua University, Shanghai 201620, China wanggaoli@dhu.edu.cn,

More information

ACCRS/QUALITY CORE CORRELATION DOCUMENT: ALGEBRA I

ACCRS/QUALITY CORE CORRELATION DOCUMENT: ALGEBRA I ACCRS/QUALITY CORE CORRELATION DOCUMENT: ALGEBRA I Revised March 25, 2013 Extend the properties of exponents to rational exponents. 1. [N-RN1] Explain how the definition of the meaning of rational exponents

More information

Cryptanalysis of the 10-Round Hash and Full Compression Function of SHAvite-3-512

Cryptanalysis of the 10-Round Hash and Full Compression Function of SHAvite-3-512 Downloaded from orbit.dtu.dk on: Jan 8, 219 Cryptanalysis of the 1-Round Hash and Full Compression Function of SHAvite-3-512 Gauravaram, Praveen; Leurent, Gaëtan; Mendel, Florian; Plasencia, Maria Naya;

More information

Preimage Attacks on Reduced Tiger and SHA-2

Preimage Attacks on Reduced Tiger and SHA-2 Preimage Attacks on Reduced Tiger and SHA-2 Takanori Isobe and Kyoji Shibutani Sony Corporation 1-7-1 Konan, Minato-ku, Tokyo 108-0075, Japan {Takanori.Isobe,Kyoji.Shibutani}@jp.sony.com Abstract. This

More information

An introduction to Hash functions

An introduction to Hash functions An introduction to Hash functions Anna Rimoldi eriscs - Universitée de la Méditerranée, Marseille Secondo Workshop di Crittografia BunnyTN 2011 A. Rimoldi (eriscs) Hash function 12 September 2011 1 / 27

More information

2: Iterated Cryptographic Hash Functions

2: Iterated Cryptographic Hash Functions 2: Iterated ryptographic Hash Functions we want hash function H : ({0, 1} n ) {0, 1} n of potentially infinite input size instead we have compression function F : {0, 1} m {0, 1} n {0, 1} n and define

More information

Hashes and Message Digests Alex X. Liu & Haipeng Dai

Hashes and Message Digests Alex X. Liu & Haipeng Dai Hashes and Message Digests Alex X. Liu & Haipeng Dai haipengdai@nju.edu.cn 313 CS Building Department of Computer Science and Technology Nanjing University Integrity vs. Secrecy Integrity: attacker cannot

More information

Complementing Feistel Ciphers

Complementing Feistel Ciphers Complementing Feistel Ciphers Alex Biryukov 1 and Ivica Nikolić 2 1 University of Luxembourg 2 Nanyang Technological University, Singapore alex.biryukov@uni.lu inikolic@ntu.edu.sg Abstract. In this paper,

More information

Breaking H 2 -MAC Using Birthday Paradox

Breaking H 2 -MAC Using Birthday Paradox Breaking H 2 -MAC Using Birthday Paradox Fanbao Liu 1,2, Tao Xie 1 and Changxiang Shen 2 1 School of Computer, National University of Defense Technology, Changsha, 410073, Hunan, P. R. China 2 School of

More information

Parallel Cube Tester Analysis of the CubeHash One-Way Hash Function

Parallel Cube Tester Analysis of the CubeHash One-Way Hash Function Parallel Cube Tester Analysis of the CubeHash One-Way Hash Function Alan Kaminsky Department of Computer Science B. Thomas Golisano College of Computing and Information Sciences Rochester Institute of

More information

On High-Rate Cryptographic Compression Functions

On High-Rate Cryptographic Compression Functions On High-Rate Cryptographic Compression Functions Richard Ostertág and Martin Stanek Department o Computer Science Faculty o Mathematics, Physics and Inormatics Comenius University Mlynská dolina, 842 48

More information

CIS 6930/4930 Computer and Network Security. Topic 4. Cryptographic Hash Functions

CIS 6930/4930 Computer and Network Security. Topic 4. Cryptographic Hash Functions CIS 6930/4930 Computer and Network Security Topic 4. Cryptographic Hash Functions 1 The SHA-1 Hash Function 2 Secure Hash Algorithm (SHA) Developed by NIST, specified in the Secure Hash Standard, 1993

More information

Algebraic properties of SHA-3 and notable cryptanalysis results

Algebraic properties of SHA-3 and notable cryptanalysis results Algebraic properties of SHA-3 and notable cryptanalysis results Christina Boura University of Versailles, France ICMC 2015, January 9, 2014 1 / 51 Cryptographic Hash Functions H : {0,1} {0,1} n m H h =

More information

Leftovers from Lecture 3

Leftovers from Lecture 3 Leftovers from Lecture 3 Implementing GF(2^k) Multiplication: Polynomial multiplication, and then remainder modulo the defining polynomial f(x): (1,1,0,1,1) *(0,1,0,1,1) = (1,1,0,0,1) For small size finite

More information

SMASH - A Cryptographic Hash Function

SMASH - A Cryptographic Hash Function SMASH - A Cryptographic Hash Function Lars R. Knudsen Department of Mathematics, Technical University of Denmark Abstract. 1 This paper presents a new hash function design, which is different from the

More information

Introduction to Cybersecurity Cryptography (Part 4)

Introduction to Cybersecurity Cryptography (Part 4) Introduction to Cybersecurity Cryptography (Part 4) Review of Last Lecture Blockciphers Review of DES Attacks on Blockciphers Advanced Encryption Standard (AES) Modes of Operation MACs and Hashes Message

More information

Cryptographic Hash Functions Part II

Cryptographic Hash Functions Part II Cryptographic Hash Functions Part II Cryptography 1 Andreas Hülsing, TU/e Some slides by Sebastiaan de Hoogh, TU/e Hash function design Create fixed input size building block Use building block to build

More information

Some Attacks on Merkle-Damgård Hashes

Some Attacks on Merkle-Damgård Hashes Overview Some Attacks on Merkle-Damgård Hashes John Kelsey, NIST and KU Leuven May 8, 2018 m 0 m 1 m 2 m 3 10*L h 0 h 1 h 2 h final Introduction 1 / 63 Overview Cryptographic Hash unctions Thinking About

More information

Evaluation Report. Security Level of Cryptography SHA-384 and SHA- 512

Evaluation Report. Security Level of Cryptography SHA-384 and SHA- 512 Branche Développement France Télécom R&D FTR&D/DTL/SSR/80/HG Evaluation Report Security Level of Cryptography SHA-384 and SHA- 512 Dr. Henri Gilbert Dr. Helena Handschuh France Télécom R&D DTL/SSR Gemplus

More information

Beyond the MD5 Collisions

Beyond the MD5 Collisions Beyond the MD5 Collisions Daniel Joščák Daniel.Joscak@i.cz S.ICZ a.s. Hvězdova 1689/2a, 140 00 Prague 4; Faculty of Mathematics and Physics, Charles University, Prague Abstract We summarize results and

More information

Practical Free-Start Collision Attacks on 76-step SHA-1

Practical Free-Start Collision Attacks on 76-step SHA-1 Practical Free-Start Collision Attacks on 76-step SHA-1 Inria and École polytechnique, France Nanyang Technological University, Singapore Joint work with Thomas Peyrin and Marc Stevens CWI, Amsterdam 2015

More information

The MD6 hash function

The MD6 hash function The MD6 hash function Ronald L. Rivest Computer Science and Artificial Intelligence Laboratory Massachusetts Institute of Technology Cambridge, MA 02139 rivest@mit.edu Benjamin Agre Daniel V. Bailey Sarah

More information

Introduction. Outline. CSC/ECE 574 Computer and Network Security. Secret Keys or Secret Algorithms? Secrets? (Cont d) Secret Key Cryptography

Introduction. Outline. CSC/ECE 574 Computer and Network Security. Secret Keys or Secret Algorithms? Secrets? (Cont d) Secret Key Cryptography Outline CSC/ECE 574 Computer and Network Security Introductory Remarks Feistel Cipher DES AES Topic 3.1 Secret Key Cryptography Algorithms CSC/ECE 574 Dr. Peng Ning 1 CSC/ECE 574 Dr. Peng Ning 2 Secret

More information

Security Properties of Domain Extenders for Cryptographic Hash Functions

Security Properties of Domain Extenders for Cryptographic Hash Functions Security Properties of Domain Extenders for Cryptographic Hash Functions Elena Andreeva, Bart Mennink, and Bart Preneel Abstract Cryptographic hash functions reduce inputs of arbitrary or very large length

More information

Developing a Distributed Java-based Speech Recognition Engine

Developing a Distributed Java-based Speech Recognition Engine The ITB Journal Volume 5 Issue 1 Article 2 2004 Developing a Distributed Java-based Speech Recognition Engine Tony Ayers Institute of Technology Blanchardstown, tony.ayers@itb.ie Brian Nolan Institute

More information

3C - A Provably Secure Pseudorandom Function and Message Authentication Code. A New mode of operation for Cryptographic Hash Function

3C - A Provably Secure Pseudorandom Function and Message Authentication Code. A New mode of operation for Cryptographic Hash Function 3C - A Provably Secure Pseudorandom Function and Message Authentication Code. A New mode of operation for Cryptographic Hash Function Praveen Gauravaram 1, William Millan 1, Juanma Gonzalez Neito 1, Edward

More information

Introduction to Cybersecurity Cryptography (Part 4)

Introduction to Cybersecurity Cryptography (Part 4) Introduction to Cybersecurity Cryptography (Part 4) Review of Last Lecture Blockciphers Review of DES Attacks on Blockciphers Advanced Encryption Standard (AES) Modes of Operation MACs and Hashes Message

More information

Selma City Schools Curriculum Pacing Guide Grades Subject: Algebra II Effective Year:

Selma City Schools Curriculum Pacing Guide Grades Subject: Algebra II Effective Year: Selma City Schools Curriculum Pacing Guide Grades 9-12 Subject: Algebra II Effective Year: 2013-14 Nine 1 Nine 2 Nine 3 Nine 4 X X Time CC COS QC Literacy DOK Lesson References/Activities Date Taught Test

More information

Online Cryptography Course. Collision resistance. Introduc3on. Dan Boneh

Online Cryptography Course. Collision resistance. Introduc3on. Dan Boneh Online Cryptography Course Collision resistance Introduc3on Recap: message integrity So far, four MAC construc3ons: PRFs ECBC- MAC, CMAC : commonly used with AES (e.g. 802.11i) NMAC : basis of HMAC (this

More information

1 Cryptographic hash functions

1 Cryptographic hash functions CSCI 5440: Cryptography Lecture 6 The Chinese University of Hong Kong 24 October 2012 1 Cryptographic hash functions Last time we saw a construction of message authentication codes (MACs) for fixed-length

More information

How (not) to efficiently dither blockcipher-based hash functions?

How (not) to efficiently dither blockcipher-based hash functions? How (not) to efficiently dither blockcipher-based hash functions? Jean-Philippe Aumasson, Raphael C.-W. Phan FHNW, Switzerland Loughborough University, UK 1 / 29 CONTENT OF THE TALK Dithered hashing Blockcipher-based

More information

Hash Functions. A hash function h takes as input a message of arbitrary length and produces as output a message digest of fixed length.

Hash Functions. A hash function h takes as input a message of arbitrary length and produces as output a message digest of fixed length. Hash Functions 1 Hash Functions A hash function h takes as input a message of arbitrary length and produces as output a message digest of fixed length. 0 1 1 0 1 0 0 1 Long Message Hash Function 1 1 1

More information

Provable Chosen-Target-Forced-Midx Preimage Resistance

Provable Chosen-Target-Forced-Midx Preimage Resistance Provable Chosen-Target-Forced-Midx Preimage Resistance Elena Andreeva and Bart Mennink (K.U.Leuven) Selected Areas in Cryptography Toronto, Canada August 11, 2011 1 / 15 Introduction Hash Functions 2 /

More information

The MD6 hash function A proposal to NIST for SHA-3

The MD6 hash function A proposal to NIST for SHA-3 The MD6 hash function A proposal to NIST for SHA-3 Ronald L. Rivest Computer Science and Artificial Intelligence Laboratory Massachusetts Institute of Technology Cambridge, MA 02139 rivest@mit.edu Benjamin

More information

Methods and Tools for Analysis of Symmetric Cryptographic Primitives

Methods and Tools for Analysis of Symmetric Cryptographic Primitives Methods and Tools for Analysis of Symmetric Cryptographic Primitives Oleksandr Kazymyrov University of Bergen Norway 14th of October, 2014 Oleksandr Kazymyrov Methods and Tools for Analysis of Symmetric

More information

Cryptography and Security Final Exam

Cryptography and Security Final Exam Cryptography and Security Final Exam Solution Serge Vaudenay 29.1.2018 duration: 3h no documents allowed, except one 2-sided sheet of handwritten notes a pocket calculator is allowed communication devices

More information

The Security of Abreast-DM in the Ideal Cipher Model

The Security of Abreast-DM in the Ideal Cipher Model The Security of breast-dm in the Ideal Cipher Model Jooyoung Lee, Daesung Kwon The ttached Institute of Electronics and Telecommunications Research Institute Yuseong-gu, Daejeon, Korea 305-390 jlee05@ensec.re.kr,ds

More information

Nanyang Technological University, Singapore École normale supérieure de Rennes, France

Nanyang Technological University, Singapore École normale supérieure de Rennes, France Analysis of BLAKE2 Jian Guo Pierre Karpman Ivica Nikolić Lei Wang Shuang Wu Nanyang Technological University, Singapore École normale supérieure de Rennes, France The Cryptographer s Track at the RSA Conference,

More information

CS533 Fall 2017 HW5 Solutions. CS533 Information Retrieval Fall HW5 Solutions

CS533 Fall 2017 HW5 Solutions. CS533 Information Retrieval Fall HW5 Solutions CS533 Information Retrieval Fall 2017 HW5 Solutions Q1 a) For λ = 1, we select documents based on similarity Thus, d 1> d 2> d 4> d 3 Start with d 1, S = {d1} R\S = { d 2, d 4, d 3} MMR(d 2) = 0.7 Maximum.

More information