On expander hash functions

124
UCL Crypto Group Microelectronics Laboratory PhD private defense - March 2009 1 On expander hash functions Christophe Petit

Transcript of On expander hash functions

Page 1: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 1

On expander hash functions

Christophe Petit

Page 2: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 2

Hash functions: applications

I Cryptographic hash functions are compared to Swiss army knifesbecause of their multiple tools and uses

Figure 1: A hash function is used as a Swiss army knife

1

Page 3: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 3

Hash functions: properties

I Compressing functions: (key, message) → hash value

H : 0, 1κ × 0, 1∗ → 0, 1λ

I Main properties:I Collision resistanceI Preimage resistanceI Second preimage resistance

I Further properties:I XOR resistance, ADD resistance, non-multiplicativity ...I PRF, random oracle, ...

Page 4: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 3

Hash functions: properties

I Compressing functions: (key, message) → hash value

H : 0, 1κ × 0, 1∗ → 0, 1λ

I Main properties:I Collision resistanceI Preimage resistanceI Second preimage resistance

I Further properties:I XOR resistance, ADD resistance, non-multiplicativity ...I PRF, random oracle, ...

Page 5: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 4

Hash functions: constructions

I Standards exist (SHA)...

... but they are being broken !

I Current hash functionslook like this:

I While expander hasheslook like this:

(0, 0)

(1, 0)

(2, 0)

(0, 1)

(1, 1)

(2, 1)

(0, 2)

(1, 2)

(2, 2)

(0, 3)

(1, 3)

(2, 3)

(0, 4)

(1, 4)

(2, 4)(0, 5)

(1, 5)

(2, 5)

(0, 6)

(1, 6)

(2, 6)

(0, 7)

(1, 7)

(2, 7)

(0, 8)

(1, 8)

(2, 8)

(0, 9)

(1, 9)

(2, 9)

(0, 10)

(1, 10)

(2, 10)

(0, 11)(1, 11)

(2, 11)

(0, 12)

(1, 12)

(2, 12)

(0, 13)

(1, 13)

(2, 13)

(0, 14)

(1, 14)

(2, 14)

(0, 15)

(1, 15)

(2, 15)

(0, 16)

(1, 16)

(2, 16)

(0, 17)

(1, 17)

(2, 17)

(0, 18)

(1, 18)

(2, 18)

(0, 19)

(1, 19)

(2, 19)

(0, 20)

(1, 20)

(2, 20)

(0, 21)

(1, 21)

(2, 21)

(0, 22)

(1, 22)

(2, 22)

(0, 23)

(1, 23)

(2, 23)

(0, 24)

(1, 24)

(2, 24)

(0, 25)

(1, 25)

(2, 25)

(0, 26)

(1, 26)

(2, 26)

(0, 27)

(1, 27)

(2, 27)

(0, 28)

(1, 28)

(2, 28)

(0, 29)

(1, 29)

(2, 29)

(0, 30)

(1, 30)

(2, 30)

(0, 31)

(1, 31)

(2, 31)

(0, 32)

(1, 32)

(2, 32)

(0, 33)

(1, 33)(2, 33)

(0, 34)

(1, 34)

(2, 34)(0, 35)(1, 35)

(2, 35)

(0, 36)(1, 36)

(2, 36)

(0, 37)

(1, 37)

(2, 37)

(0, 38)

(1, 38)

(2, 38)

(0, 39)

(1, 39)

(2, 39)

(0, 40)

(1, 40)

(2, 40)

(0, 41)

(1, 41)

(2, 41)

(0, 42)

(1, 42)

(2, 42)

(0, 43)

(1, 43)

(2, 43)

(0, 44)

(1, 44)

(2, 44)

(0, 45)

(1, 45)

(2, 45)

(0, 46)

(1, 46)

(2, 46)

(0, 47)

(1, 47)

(2, 47)

(0, 48)

(1, 48)

(2, 48)

(0, 49)

(1, 49)

(2, 49)

(0, 50)

(1, 50)

(2, 50)

(0, 51)

(1, 51)

(2, 51)

(0, 52)

(1, 52)

(2, 52)

(0, 53) (1, 53)

(2, 53)

(0, 54)

(1, 54)

(2, 54)

(0, 55) (1, 55)

(2, 55)

(0, 56)

(1, 56)

(2, 56)

(0, 57)

(1, 57)

(2, 57)

(0, 58)

(1, 58)

(2, 58)

(0, 59)

(1, 59)

(2, 59)

(0, 60)

(1, 60)

(2, 60)

(0, 61)

(1, 61)

(2, 61)

(0, 62)

(1, 62)

(2, 62)

(0, 63)

(1, 63)

(2, 63)

(0, 64)

(1, 64)

(2, 64)

(0, 65)

(1, 65)

(2, 65)

(0, 66)

(1, 66)

(2, 66)

(0, 67)

(1, 67)

(2, 67)

(0, 68)

(1, 68)

(2, 68)

(0, 69)

(1, 69)

(2, 69)

(0, 70)

(1, 70)

(2, 70)

(0, 71)

(1, 71)

(2, 71)

(0, 72)

(1, 72)

(2, 72)

(0, 73) (1, 73)

(2, 73)(0, 74)

(1, 74)

(2, 74)

(0, 75)(1, 75)

(2, 75)

(0, 76)

(1, 76)

(2, 76)

(0, 77)

(1, 77)

(2, 77)

(0, 78)

(1, 78)

(2, 78)

(0, 79)

(1, 79)

(2, 79)

(0, 80)

(1, 80)

(2, 80)(0, 81)

(1, 81)

(2, 81)

(0, 82)

(1, 82)

(2, 82)

(0, 83)(1, 83)

(2, 83)

(0, 84)

(1, 84)

(2, 84)

(0, 85)

(1, 85)

(2, 85)

(0, 86)

(1, 86)

(2, 86)

(0, 87)

(1, 87)

(2, 87)

(0, 88)

(1, 88)

(2, 88)

(0, 89)

(1, 89)

(2, 89)

(0, 90)

(1, 90)

(2, 90)

(0, 91)

(1, 91)

(2, 91)

(0, 92)

(1, 92)

(2, 92)

(0, 93)

(1, 93)

(2, 93)

(0, 94)

(1, 94)

(2, 94)

(0, 95)

(1, 95)

(2, 95)

(0, 96)

(1, 96)

(2, 96)

(0, 97)

(1, 97)

(2, 97)

(0, 98)

(1, 98)

(2, 98)

(0, 99)

(1, 99)

(2, 99)

(0, 100)

(1, 100)

(2, 100)

(0, 101)

(1, 101)

(2, 101)

(0, 102)

(1, 102)

(2, 102)

(0, 103)

(1, 103)

(2, 103)

(0, 104)

(1, 104)

(2, 104)

(0, 105)

(1, 105)

(2, 105)(0, 106)

(1, 106)

(2, 106)

(0, 107)

(1, 107)

(2, 107)

(0, 108)

(1, 108)

(2, 108)

(0, 109)

(1, 109)

(2, 109)

(0, 110)

(1, 110)

(2, 110)

(0, 111)

(1, 111)

(2, 111)

(0, 112)

(1, 112)

(2, 112)

(0, 113)

(1, 113)

(2, 113)

(0, 114) (1, 114)

(2, 114)

(0, 115)

(1, 115)

(2, 115)

(0, 116)

(1, 116)

(2, 116)

(0, 117)

(1, 117)

(2, 117)

(0, 118)

(1, 118)

(2, 118)

(0, 119)

(1, 119)

(2, 119)

(0, 120)

(1, 120)

(2, 120)

(0, 121)

(1, 121)

(2, 121)

(0, 122)

(1, 122)

(2, 122)

(0, 123)

(1, 123)

(2, 123)(0, 124)

(1, 124)

(2, 124)

(0, 125)

(1, 125)

(2, 125)

(0, 126)

(1, 126)

(2, 126)

(0, 127)

(1, 127)

(2, 127)

(0, 128)

(1, 128)

(2, 128)

(0, 129)

(1, 129)

(2, 129)

(0, 130)

(1, 130)

(2, 130)

(0, 131)

(1, 131)

(2, 131)

(0, 132)

(1, 132)

(2, 132)

(0, 133)

(1, 133)

(2, 133)

(0, 134)

(1, 134)

(2, 134)

(0, 135)

(1, 135)

(2, 135)

(0, 136)

(1, 136)

(2, 136)

(0, 137)

(1, 137)

(2, 137)

(0, 138)

(1, 138)

(2, 138)

(0, 139)

(1, 139)

(2, 139)

(0, 140)

(1, 140)

(2, 140)

(0, 141)

(1, 141)

(2, 141)

(0, 142)

(1, 142)

(2, 142)

(0, 143)

(1, 143)(2, 143)

(0, 144)(1, 144)

(2, 144)

(0, 145)

(1, 145)

(2, 145)

(0, 146)

(1, 146)

(2, 146)

(0, 147)

(1, 147)

(2, 147)

(0, 148)

(1, 148)

(2, 148)

(0, 149)

(1, 149)

(2, 149)(0, 150)

(1, 150)

(2, 150)

(0, 151)

(1, 151)

(2, 151)

(0, 152)

(1, 152)

(2, 152)

(0, 153)

(1, 153)

(2, 153)

(0, 154)

(1, 154)

(2, 154)

(0, 155)

(1, 155)

(2, 155)

(0, 156)

(1, 156)

(2, 156)

(0, 157)

(1, 157)

(2, 157)

(0, 158)

(1, 158)

(2, 158)

(0, 159)

(1, 159)

(2, 159)

(0, 160)

(1, 160)

(2, 160)

(0, 161)

(1, 161)

(2, 161)

(0, 162)

(1, 162)

(2, 162)

(0, 163)

(1, 163)

(2, 163)

(0, 164)

(1, 164)

(2, 164)

(0, 165)

(1, 165)

(2, 165)

(0, 166)

(1, 166)

(2, 166)

(0, 167)

(1, 167)

(2, 167)

(0, 168)

(1, 168)

(2, 168)

(0, 169)

(1, 169)

(2, 169)

(0, 170)

(1, 170)

(2, 170)

(0, 171)

(1, 171)

(2, 171)

(0, 172)

(1, 172)

(2, 172)(0, 173)

(1, 173)

(2, 173)

(0, 174)

(1, 174)

(2, 174)

(0, 175)

(1, 175)

(2, 175)

(0, 176)

(1, 176)

(2, 176)

(0, 177)

(1, 177)

(2, 177)

(0, 178)

(1, 178)

(2, 178)

(0, 179)

(1, 179)

(2, 179)

(0, 180)

(1, 180)

(2, 180)

(0, 181)

(1, 181)

(2, 181)

(0, 182)

(1, 182)

(2, 182)

(0, 183)

(1, 183)

(2, 183)

(0, 184)

(1, 184)

(2, 184)(0, 185)

(1, 185)

(2, 185)

(0, 186)

(1, 186)

(2, 186)

(0, 187)

(1, 187)

(2, 187)

(0, 188)

(1, 188)

(2, 188)

(0, 189)

(1, 189)

(2, 189)

(0, 190)

(1, 190)

(2, 190)

(0, 191)

(1, 191)

(2, 191)

(0, 192)

(1, 192)

(2, 192)

(0, 193)

(1, 193)

(2, 193)

(0, 194)

(1, 194)

(2, 194)

(0, 195)

(1, 195)

(2, 195)

(0, 196)

(1, 196)

(2, 196)

(0, 197)

(1, 197)

(2, 197)

(0, 198)

(1, 198)(2, 198)

(0, 199)

(1, 199)

(2, 199)

(0, 200)

(1, 200)

(2, 200)

(0, 201)

(1, 201)

(2, 201)

(0, 202)

(1, 202)

(2, 202)

(0, 203)

(1, 203)

(2, 203)

(0, 204)

(1, 204)

(2, 204)

(0, 205)

(1, 205)

(2, 205)

(0, 206)

(1, 206)

(2, 206)

(0, 207)

(1, 207)

(2, 207)

(0, 208)

(1, 208)

(2, 208)

(0, 209)

(1, 209)

(2, 209)

(0, 210)

(1, 210)

(2, 210)

(0, 211)

(1, 211)

(2, 211)

(0, 212)

(1, 212)

(2, 212)

(0, 213)

(1, 213)

(2, 213)

(0, 214)(1, 214)

(2, 214)

(0, 215)

(1, 215)

(2, 215)

(0, 216)

(1, 216)

(2, 216)

(0, 217)

(1, 217)

(2, 217)

(0, 218)

(1, 218)

(2, 218)

(0, 219)

(1, 219)

(2, 219)

(0, 220)

(1, 220)

(2, 220)

(0, 221)

(1, 221)

(2, 221)

(0, 222)

(1, 222)

(2, 222)(0, 223)

(1, 223)(2, 223)

(0, 224)

(1, 224)

(2, 224)

(0, 225)

(1, 225)

(2, 225)

(0, 226)

(1, 226)

(2, 226)

(0, 227)

(1, 227)

(2, 227)

(0, 228)

(1, 228)

(2, 228)

(0, 229)

(1, 229)

(2, 229)

(0, 230)

(1, 230)

(2, 230)

(0, 231)

(1, 231)

(2, 231)

(0, 232)

(1, 232)

(2, 232)

(0, 233) (1, 233)

(2, 233)

(0, 234)

(1, 234)

(2, 234)

(0, 235)

(1, 235)

(2, 235)

(0, 236)

(1, 236)

(2, 236)

(0, 237)

(1, 237)

(2, 237)

(0, 238)

(1, 238)

(2, 238)

(0, 239)

(1, 239)

(2, 239)

(0, 240)

(1, 240)

(2, 240)

(0, 241)

(1, 241)

(2, 241)

(0, 242)

(1, 242)

(2, 242)

(0, 243)

(1, 243)

(2, 243)

(0, 244)

(1, 244)

(2, 244)

(0, 245)

(1, 245)

(2, 245)

(0, 246)

(1, 246)

(2, 246)

(0, 247)

(1, 247)

(2, 247)

(0, 248)

(1, 248)

(2, 248)

(0, 249)

(1, 249)

(2, 249)

(0, 250)

(1, 250)

(2, 250)

(0, 251)

(1, 251)

(2, 251)

(0, 252)

(1, 252)

(2, 252)

(0, 253)(1, 253)

(2, 253)

(0, 254)

(1, 254)

(2, 254)

(0, 255)

(1, 255)

(2, 255)

(0, 256)

(1, 256)

(2, 256)

(0, 257)

(1, 257)

(2, 257)

(0, 258)

(1, 258)

(2, 258)

(0, 259)

(1, 259)

(2, 259)

(0, 260)

(1, 260)

(2, 260)(0, 261)

(1, 261)

(2, 261)

(0, 262)

(1, 262)

(2, 262)

(0, 263)

(1, 263)

(2, 263)

(0, 264)

(1, 264)

(2, 264)

(0, 265)

(1, 265)

(2, 265)

(0, 266)

(1, 266)

(2, 266)

(0, 267)

(1, 267)

(2, 267)

(0, 268)

(1, 268)

(2, 268)

(0, 269)

(1, 269)(2, 269)

(0, 270)

(1, 270)

(2, 270)

(0, 271)

(1, 271)

(2, 271)

(0, 272)

(1, 272)

(2, 272)

(0, 273)

(1, 273)

(2, 273)

(0, 274)

(1, 274)

(2, 274)

(0, 275)

(1, 275)

(2, 275)

(0, 276)

(1, 276)

(2, 276)

(0, 277)

(1, 277)

(2, 277)

(0, 278)

(1, 278)

(2, 278)

(0, 279)

(1, 279)

(2, 279)

(0, 280)

(1, 280)

(2, 280)

(0, 281)

(1, 281)

(2, 281)

(0, 282)

(1, 282)

(2, 282)

(0, 283)

(1, 283)

(2, 283)

(0, 284)

(1, 284)

(2, 284)

(0, 285)

(1, 285)

(2, 285)

(0, 286)

(1, 286)

(2, 286)

(0, 287)

(1, 287)

(2, 287)

(0, 288)

(1, 288)(2, 288)

(0, 289)

(1, 289)

(2, 289)

(0, 290)

(1, 290)

(2, 290)

(0, 291)

(1, 291)

(2, 291)

(0, 292)

(1, 292)

(2, 292)

(0, 293)

(1, 293)

(2, 293)

(0, 294)

(1, 294)

(2, 294)

(0, 295)

(1, 295)

(2, 295)

(0, 296)

(1, 296)

(2, 296)

(0, 297)

(1, 297)

(2, 297)

(0, 298)

(1, 298)

(2, 298)

(0, 299)

(1, 299)

(2, 299)

(0, 300)

(1, 300)

(2, 300)

(0, 301)

(1, 301)

(2, 301)

(0, 302)

(1, 302)

(2, 302)

(0, 303)

(1, 303)

(2, 303)

(0, 304)

(1, 304)

(2, 304)

(0, 305)

(1, 305)

(2, 305)

(0, 306)

(1, 306)(2, 306)

(0, 307)

(1, 307)

(2, 307)

(0, 308)

(1, 308)

(2, 308)(0, 309)

(1, 309)

(2, 309)

(0, 310)

(1, 310)

(2, 310)

(0, 311)

(1, 311)

(2, 311)

(0, 312)

(1, 312)

(2, 312)

(0, 313)

(1, 313)

(2, 313)

(0, 314)

(1, 314)

(2, 314)

(0, 315)

(1, 315)

(2, 315)

(0, 316)

(1, 316)

(2, 316)

(0, 317)

(1, 317)(2, 317)

(0, 318)

(1, 318)

(2, 318)

(0, 319)

(1, 319)

(2, 319)

(0, 320)

(1, 320)

(2, 320)

(0, 321)

(1, 321)

(2, 321)

(0, 322)

(1, 322)

(2, 322)

(0, 323)

(1, 323)

(2, 323)

(0, 324)

(1, 324)

(2, 324)

(0, 325)

(1, 325)

(2, 325)

(0, 326)

(1, 326)

(2, 326)

(0, 327)

(1, 327)

(2, 327)

(0, 328)

(1, 328)

(2, 328)

(0, 329)(1, 329)

(2, 329)

(0, 330)

(1, 330)

(2, 330)

(0, 331)

(1, 331)

(2, 331)

(0, 332)

(1, 332)

(2, 332)

(0, 333)

(1, 333)

(2, 333)

(0, 334)

(1, 334)

(2, 334)

(0, 335)

(1, 335)

(2, 335)

(0, 336)

(1, 336)

(2, 336)

(0, 337)

(1, 337)

(2, 337)

(0, 338)

(1, 338)

(2, 338)

(0, 339)

(1, 339)

(2, 339)

(0, 340)

(1, 340)

(2, 340)

Page 6: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 4

Hash functions: constructions

I Standards exist (SHA)...

... but they are being broken !

I Current hash functionslook like this:

I While expander hasheslook like this:

(0, 0)

(1, 0)

(2, 0)

(0, 1)

(1, 1)

(2, 1)

(0, 2)

(1, 2)

(2, 2)

(0, 3)

(1, 3)

(2, 3)

(0, 4)

(1, 4)

(2, 4)(0, 5)

(1, 5)

(2, 5)

(0, 6)

(1, 6)

(2, 6)

(0, 7)

(1, 7)

(2, 7)

(0, 8)

(1, 8)

(2, 8)

(0, 9)

(1, 9)

(2, 9)

(0, 10)

(1, 10)

(2, 10)

(0, 11)(1, 11)

(2, 11)

(0, 12)

(1, 12)

(2, 12)

(0, 13)

(1, 13)

(2, 13)

(0, 14)

(1, 14)

(2, 14)

(0, 15)

(1, 15)

(2, 15)

(0, 16)

(1, 16)

(2, 16)

(0, 17)

(1, 17)

(2, 17)

(0, 18)

(1, 18)

(2, 18)

(0, 19)

(1, 19)

(2, 19)

(0, 20)

(1, 20)

(2, 20)

(0, 21)

(1, 21)

(2, 21)

(0, 22)

(1, 22)

(2, 22)

(0, 23)

(1, 23)

(2, 23)

(0, 24)

(1, 24)

(2, 24)

(0, 25)

(1, 25)

(2, 25)

(0, 26)

(1, 26)

(2, 26)

(0, 27)

(1, 27)

(2, 27)

(0, 28)

(1, 28)

(2, 28)

(0, 29)

(1, 29)

(2, 29)

(0, 30)

(1, 30)

(2, 30)

(0, 31)

(1, 31)

(2, 31)

(0, 32)

(1, 32)

(2, 32)

(0, 33)

(1, 33)(2, 33)

(0, 34)

(1, 34)

(2, 34)(0, 35)(1, 35)

(2, 35)

(0, 36)(1, 36)

(2, 36)

(0, 37)

(1, 37)

(2, 37)

(0, 38)

(1, 38)

(2, 38)

(0, 39)

(1, 39)

(2, 39)

(0, 40)

(1, 40)

(2, 40)

(0, 41)

(1, 41)

(2, 41)

(0, 42)

(1, 42)

(2, 42)

(0, 43)

(1, 43)

(2, 43)

(0, 44)

(1, 44)

(2, 44)

(0, 45)

(1, 45)

(2, 45)

(0, 46)

(1, 46)

(2, 46)

(0, 47)

(1, 47)

(2, 47)

(0, 48)

(1, 48)

(2, 48)

(0, 49)

(1, 49)

(2, 49)

(0, 50)

(1, 50)

(2, 50)

(0, 51)

(1, 51)

(2, 51)

(0, 52)

(1, 52)

(2, 52)

(0, 53) (1, 53)

(2, 53)

(0, 54)

(1, 54)

(2, 54)

(0, 55) (1, 55)

(2, 55)

(0, 56)

(1, 56)

(2, 56)

(0, 57)

(1, 57)

(2, 57)

(0, 58)

(1, 58)

(2, 58)

(0, 59)

(1, 59)

(2, 59)

(0, 60)

(1, 60)

(2, 60)

(0, 61)

(1, 61)

(2, 61)

(0, 62)

(1, 62)

(2, 62)

(0, 63)

(1, 63)

(2, 63)

(0, 64)

(1, 64)

(2, 64)

(0, 65)

(1, 65)

(2, 65)

(0, 66)

(1, 66)

(2, 66)

(0, 67)

(1, 67)

(2, 67)

(0, 68)

(1, 68)

(2, 68)

(0, 69)

(1, 69)

(2, 69)

(0, 70)

(1, 70)

(2, 70)

(0, 71)

(1, 71)

(2, 71)

(0, 72)

(1, 72)

(2, 72)

(0, 73) (1, 73)

(2, 73)(0, 74)

(1, 74)

(2, 74)

(0, 75)(1, 75)

(2, 75)

(0, 76)

(1, 76)

(2, 76)

(0, 77)

(1, 77)

(2, 77)

(0, 78)

(1, 78)

(2, 78)

(0, 79)

(1, 79)

(2, 79)

(0, 80)

(1, 80)

(2, 80)(0, 81)

(1, 81)

(2, 81)

(0, 82)

(1, 82)

(2, 82)

(0, 83)(1, 83)

(2, 83)

(0, 84)

(1, 84)

(2, 84)

(0, 85)

(1, 85)

(2, 85)

(0, 86)

(1, 86)

(2, 86)

(0, 87)

(1, 87)

(2, 87)

(0, 88)

(1, 88)

(2, 88)

(0, 89)

(1, 89)

(2, 89)

(0, 90)

(1, 90)

(2, 90)

(0, 91)

(1, 91)

(2, 91)

(0, 92)

(1, 92)

(2, 92)

(0, 93)

(1, 93)

(2, 93)

(0, 94)

(1, 94)

(2, 94)

(0, 95)

(1, 95)

(2, 95)

(0, 96)

(1, 96)

(2, 96)

(0, 97)

(1, 97)

(2, 97)

(0, 98)

(1, 98)

(2, 98)

(0, 99)

(1, 99)

(2, 99)

(0, 100)

(1, 100)

(2, 100)

(0, 101)

(1, 101)

(2, 101)

(0, 102)

(1, 102)

(2, 102)

(0, 103)

(1, 103)

(2, 103)

(0, 104)

(1, 104)

(2, 104)

(0, 105)

(1, 105)

(2, 105)(0, 106)

(1, 106)

(2, 106)

(0, 107)

(1, 107)

(2, 107)

(0, 108)

(1, 108)

(2, 108)

(0, 109)

(1, 109)

(2, 109)

(0, 110)

(1, 110)

(2, 110)

(0, 111)

(1, 111)

(2, 111)

(0, 112)

(1, 112)

(2, 112)

(0, 113)

(1, 113)

(2, 113)

(0, 114) (1, 114)

(2, 114)

(0, 115)

(1, 115)

(2, 115)

(0, 116)

(1, 116)

(2, 116)

(0, 117)

(1, 117)

(2, 117)

(0, 118)

(1, 118)

(2, 118)

(0, 119)

(1, 119)

(2, 119)

(0, 120)

(1, 120)

(2, 120)

(0, 121)

(1, 121)

(2, 121)

(0, 122)

(1, 122)

(2, 122)

(0, 123)

(1, 123)

(2, 123)(0, 124)

(1, 124)

(2, 124)

(0, 125)

(1, 125)

(2, 125)

(0, 126)

(1, 126)

(2, 126)

(0, 127)

(1, 127)

(2, 127)

(0, 128)

(1, 128)

(2, 128)

(0, 129)

(1, 129)

(2, 129)

(0, 130)

(1, 130)

(2, 130)

(0, 131)

(1, 131)

(2, 131)

(0, 132)

(1, 132)

(2, 132)

(0, 133)

(1, 133)

(2, 133)

(0, 134)

(1, 134)

(2, 134)

(0, 135)

(1, 135)

(2, 135)

(0, 136)

(1, 136)

(2, 136)

(0, 137)

(1, 137)

(2, 137)

(0, 138)

(1, 138)

(2, 138)

(0, 139)

(1, 139)

(2, 139)

(0, 140)

(1, 140)

(2, 140)

(0, 141)

(1, 141)

(2, 141)

(0, 142)

(1, 142)

(2, 142)

(0, 143)

(1, 143)(2, 143)

(0, 144)(1, 144)

(2, 144)

(0, 145)

(1, 145)

(2, 145)

(0, 146)

(1, 146)

(2, 146)

(0, 147)

(1, 147)

(2, 147)

(0, 148)

(1, 148)

(2, 148)

(0, 149)

(1, 149)

(2, 149)(0, 150)

(1, 150)

(2, 150)

(0, 151)

(1, 151)

(2, 151)

(0, 152)

(1, 152)

(2, 152)

(0, 153)

(1, 153)

(2, 153)

(0, 154)

(1, 154)

(2, 154)

(0, 155)

(1, 155)

(2, 155)

(0, 156)

(1, 156)

(2, 156)

(0, 157)

(1, 157)

(2, 157)

(0, 158)

(1, 158)

(2, 158)

(0, 159)

(1, 159)

(2, 159)

(0, 160)

(1, 160)

(2, 160)

(0, 161)

(1, 161)

(2, 161)

(0, 162)

(1, 162)

(2, 162)

(0, 163)

(1, 163)

(2, 163)

(0, 164)

(1, 164)

(2, 164)

(0, 165)

(1, 165)

(2, 165)

(0, 166)

(1, 166)

(2, 166)

(0, 167)

(1, 167)

(2, 167)

(0, 168)

(1, 168)

(2, 168)

(0, 169)

(1, 169)

(2, 169)

(0, 170)

(1, 170)

(2, 170)

(0, 171)

(1, 171)

(2, 171)

(0, 172)

(1, 172)

(2, 172)(0, 173)

(1, 173)

(2, 173)

(0, 174)

(1, 174)

(2, 174)

(0, 175)

(1, 175)

(2, 175)

(0, 176)

(1, 176)

(2, 176)

(0, 177)

(1, 177)

(2, 177)

(0, 178)

(1, 178)

(2, 178)

(0, 179)

(1, 179)

(2, 179)

(0, 180)

(1, 180)

(2, 180)

(0, 181)

(1, 181)

(2, 181)

(0, 182)

(1, 182)

(2, 182)

(0, 183)

(1, 183)

(2, 183)

(0, 184)

(1, 184)

(2, 184)(0, 185)

(1, 185)

(2, 185)

(0, 186)

(1, 186)

(2, 186)

(0, 187)

(1, 187)

(2, 187)

(0, 188)

(1, 188)

(2, 188)

(0, 189)

(1, 189)

(2, 189)

(0, 190)

(1, 190)

(2, 190)

(0, 191)

(1, 191)

(2, 191)

(0, 192)

(1, 192)

(2, 192)

(0, 193)

(1, 193)

(2, 193)

(0, 194)

(1, 194)

(2, 194)

(0, 195)

(1, 195)

(2, 195)

(0, 196)

(1, 196)

(2, 196)

(0, 197)

(1, 197)

(2, 197)

(0, 198)

(1, 198)(2, 198)

(0, 199)

(1, 199)

(2, 199)

(0, 200)

(1, 200)

(2, 200)

(0, 201)

(1, 201)

(2, 201)

(0, 202)

(1, 202)

(2, 202)

(0, 203)

(1, 203)

(2, 203)

(0, 204)

(1, 204)

(2, 204)

(0, 205)

(1, 205)

(2, 205)

(0, 206)

(1, 206)

(2, 206)

(0, 207)

(1, 207)

(2, 207)

(0, 208)

(1, 208)

(2, 208)

(0, 209)

(1, 209)

(2, 209)

(0, 210)

(1, 210)

(2, 210)

(0, 211)

(1, 211)

(2, 211)

(0, 212)

(1, 212)

(2, 212)

(0, 213)

(1, 213)

(2, 213)

(0, 214)(1, 214)

(2, 214)

(0, 215)

(1, 215)

(2, 215)

(0, 216)

(1, 216)

(2, 216)

(0, 217)

(1, 217)

(2, 217)

(0, 218)

(1, 218)

(2, 218)

(0, 219)

(1, 219)

(2, 219)

(0, 220)

(1, 220)

(2, 220)

(0, 221)

(1, 221)

(2, 221)

(0, 222)

(1, 222)

(2, 222)(0, 223)

(1, 223)(2, 223)

(0, 224)

(1, 224)

(2, 224)

(0, 225)

(1, 225)

(2, 225)

(0, 226)

(1, 226)

(2, 226)

(0, 227)

(1, 227)

(2, 227)

(0, 228)

(1, 228)

(2, 228)

(0, 229)

(1, 229)

(2, 229)

(0, 230)

(1, 230)

(2, 230)

(0, 231)

(1, 231)

(2, 231)

(0, 232)

(1, 232)

(2, 232)

(0, 233) (1, 233)

(2, 233)

(0, 234)

(1, 234)

(2, 234)

(0, 235)

(1, 235)

(2, 235)

(0, 236)

(1, 236)

(2, 236)

(0, 237)

(1, 237)

(2, 237)

(0, 238)

(1, 238)

(2, 238)

(0, 239)

(1, 239)

(2, 239)

(0, 240)

(1, 240)

(2, 240)

(0, 241)

(1, 241)

(2, 241)

(0, 242)

(1, 242)

(2, 242)

(0, 243)

(1, 243)

(2, 243)

(0, 244)

(1, 244)

(2, 244)

(0, 245)

(1, 245)

(2, 245)

(0, 246)

(1, 246)

(2, 246)

(0, 247)

(1, 247)

(2, 247)

(0, 248)

(1, 248)

(2, 248)

(0, 249)

(1, 249)

(2, 249)

(0, 250)

(1, 250)

(2, 250)

(0, 251)

(1, 251)

(2, 251)

(0, 252)

(1, 252)

(2, 252)

(0, 253)(1, 253)

(2, 253)

(0, 254)

(1, 254)

(2, 254)

(0, 255)

(1, 255)

(2, 255)

(0, 256)

(1, 256)

(2, 256)

(0, 257)

(1, 257)

(2, 257)

(0, 258)

(1, 258)

(2, 258)

(0, 259)

(1, 259)

(2, 259)

(0, 260)

(1, 260)

(2, 260)(0, 261)

(1, 261)

(2, 261)

(0, 262)

(1, 262)

(2, 262)

(0, 263)

(1, 263)

(2, 263)

(0, 264)

(1, 264)

(2, 264)

(0, 265)

(1, 265)

(2, 265)

(0, 266)

(1, 266)

(2, 266)

(0, 267)

(1, 267)

(2, 267)

(0, 268)

(1, 268)

(2, 268)

(0, 269)

(1, 269)(2, 269)

(0, 270)

(1, 270)

(2, 270)

(0, 271)

(1, 271)

(2, 271)

(0, 272)

(1, 272)

(2, 272)

(0, 273)

(1, 273)

(2, 273)

(0, 274)

(1, 274)

(2, 274)

(0, 275)

(1, 275)

(2, 275)

(0, 276)

(1, 276)

(2, 276)

(0, 277)

(1, 277)

(2, 277)

(0, 278)

(1, 278)

(2, 278)

(0, 279)

(1, 279)

(2, 279)

(0, 280)

(1, 280)

(2, 280)

(0, 281)

(1, 281)

(2, 281)

(0, 282)

(1, 282)

(2, 282)

(0, 283)

(1, 283)

(2, 283)

(0, 284)

(1, 284)

(2, 284)

(0, 285)

(1, 285)

(2, 285)

(0, 286)

(1, 286)

(2, 286)

(0, 287)

(1, 287)

(2, 287)

(0, 288)

(1, 288)(2, 288)

(0, 289)

(1, 289)

(2, 289)

(0, 290)

(1, 290)

(2, 290)

(0, 291)

(1, 291)

(2, 291)

(0, 292)

(1, 292)

(2, 292)

(0, 293)

(1, 293)

(2, 293)

(0, 294)

(1, 294)

(2, 294)

(0, 295)

(1, 295)

(2, 295)

(0, 296)

(1, 296)

(2, 296)

(0, 297)

(1, 297)

(2, 297)

(0, 298)

(1, 298)

(2, 298)

(0, 299)

(1, 299)

(2, 299)

(0, 300)

(1, 300)

(2, 300)

(0, 301)

(1, 301)

(2, 301)

(0, 302)

(1, 302)

(2, 302)

(0, 303)

(1, 303)

(2, 303)

(0, 304)

(1, 304)

(2, 304)

(0, 305)

(1, 305)

(2, 305)

(0, 306)

(1, 306)(2, 306)

(0, 307)

(1, 307)

(2, 307)

(0, 308)

(1, 308)

(2, 308)(0, 309)

(1, 309)

(2, 309)

(0, 310)

(1, 310)

(2, 310)

(0, 311)

(1, 311)

(2, 311)

(0, 312)

(1, 312)

(2, 312)

(0, 313)

(1, 313)

(2, 313)

(0, 314)

(1, 314)

(2, 314)

(0, 315)

(1, 315)

(2, 315)

(0, 316)

(1, 316)

(2, 316)

(0, 317)

(1, 317)(2, 317)

(0, 318)

(1, 318)

(2, 318)

(0, 319)

(1, 319)

(2, 319)

(0, 320)

(1, 320)

(2, 320)

(0, 321)

(1, 321)

(2, 321)

(0, 322)

(1, 322)

(2, 322)

(0, 323)

(1, 323)

(2, 323)

(0, 324)

(1, 324)

(2, 324)

(0, 325)

(1, 325)

(2, 325)

(0, 326)

(1, 326)

(2, 326)

(0, 327)

(1, 327)

(2, 327)

(0, 328)

(1, 328)

(2, 328)

(0, 329)(1, 329)

(2, 329)

(0, 330)

(1, 330)

(2, 330)

(0, 331)

(1, 331)

(2, 331)

(0, 332)

(1, 332)

(2, 332)

(0, 333)

(1, 333)

(2, 333)

(0, 334)

(1, 334)

(2, 334)

(0, 335)

(1, 335)

(2, 335)

(0, 336)

(1, 336)

(2, 336)

(0, 337)

(1, 337)

(2, 337)

(0, 338)

(1, 338)

(2, 338)

(0, 339)

(1, 339)

(2, 339)

(0, 340)

(1, 340)

(2, 340)

Page 7: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 4

Hash functions: constructions

I Standards exist (SHA)...

... but they are being broken !

I Current hash functionslook like this:

I While expander hasheslook like this:

(0, 0)

(1, 0)

(2, 0)

(0, 1)

(1, 1)

(2, 1)

(0, 2)

(1, 2)

(2, 2)

(0, 3)

(1, 3)

(2, 3)

(0, 4)

(1, 4)

(2, 4)(0, 5)

(1, 5)

(2, 5)

(0, 6)

(1, 6)

(2, 6)

(0, 7)

(1, 7)

(2, 7)

(0, 8)

(1, 8)

(2, 8)

(0, 9)

(1, 9)

(2, 9)

(0, 10)

(1, 10)

(2, 10)

(0, 11)(1, 11)

(2, 11)

(0, 12)

(1, 12)

(2, 12)

(0, 13)

(1, 13)

(2, 13)

(0, 14)

(1, 14)

(2, 14)

(0, 15)

(1, 15)

(2, 15)

(0, 16)

(1, 16)

(2, 16)

(0, 17)

(1, 17)

(2, 17)

(0, 18)

(1, 18)

(2, 18)

(0, 19)

(1, 19)

(2, 19)

(0, 20)

(1, 20)

(2, 20)

(0, 21)

(1, 21)

(2, 21)

(0, 22)

(1, 22)

(2, 22)

(0, 23)

(1, 23)

(2, 23)

(0, 24)

(1, 24)

(2, 24)

(0, 25)

(1, 25)

(2, 25)

(0, 26)

(1, 26)

(2, 26)

(0, 27)

(1, 27)

(2, 27)

(0, 28)

(1, 28)

(2, 28)

(0, 29)

(1, 29)

(2, 29)

(0, 30)

(1, 30)

(2, 30)

(0, 31)

(1, 31)

(2, 31)

(0, 32)

(1, 32)

(2, 32)

(0, 33)

(1, 33)(2, 33)

(0, 34)

(1, 34)

(2, 34)(0, 35)(1, 35)

(2, 35)

(0, 36)(1, 36)

(2, 36)

(0, 37)

(1, 37)

(2, 37)

(0, 38)

(1, 38)

(2, 38)

(0, 39)

(1, 39)

(2, 39)

(0, 40)

(1, 40)

(2, 40)

(0, 41)

(1, 41)

(2, 41)

(0, 42)

(1, 42)

(2, 42)

(0, 43)

(1, 43)

(2, 43)

(0, 44)

(1, 44)

(2, 44)

(0, 45)

(1, 45)

(2, 45)

(0, 46)

(1, 46)

(2, 46)

(0, 47)

(1, 47)

(2, 47)

(0, 48)

(1, 48)

(2, 48)

(0, 49)

(1, 49)

(2, 49)

(0, 50)

(1, 50)

(2, 50)

(0, 51)

(1, 51)

(2, 51)

(0, 52)

(1, 52)

(2, 52)

(0, 53) (1, 53)

(2, 53)

(0, 54)

(1, 54)

(2, 54)

(0, 55) (1, 55)

(2, 55)

(0, 56)

(1, 56)

(2, 56)

(0, 57)

(1, 57)

(2, 57)

(0, 58)

(1, 58)

(2, 58)

(0, 59)

(1, 59)

(2, 59)

(0, 60)

(1, 60)

(2, 60)

(0, 61)

(1, 61)

(2, 61)

(0, 62)

(1, 62)

(2, 62)

(0, 63)

(1, 63)

(2, 63)

(0, 64)

(1, 64)

(2, 64)

(0, 65)

(1, 65)

(2, 65)

(0, 66)

(1, 66)

(2, 66)

(0, 67)

(1, 67)

(2, 67)

(0, 68)

(1, 68)

(2, 68)

(0, 69)

(1, 69)

(2, 69)

(0, 70)

(1, 70)

(2, 70)

(0, 71)

(1, 71)

(2, 71)

(0, 72)

(1, 72)

(2, 72)

(0, 73) (1, 73)

(2, 73)(0, 74)

(1, 74)

(2, 74)

(0, 75)(1, 75)

(2, 75)

(0, 76)

(1, 76)

(2, 76)

(0, 77)

(1, 77)

(2, 77)

(0, 78)

(1, 78)

(2, 78)

(0, 79)

(1, 79)

(2, 79)

(0, 80)

(1, 80)

(2, 80)(0, 81)

(1, 81)

(2, 81)

(0, 82)

(1, 82)

(2, 82)

(0, 83)(1, 83)

(2, 83)

(0, 84)

(1, 84)

(2, 84)

(0, 85)

(1, 85)

(2, 85)

(0, 86)

(1, 86)

(2, 86)

(0, 87)

(1, 87)

(2, 87)

(0, 88)

(1, 88)

(2, 88)

(0, 89)

(1, 89)

(2, 89)

(0, 90)

(1, 90)

(2, 90)

(0, 91)

(1, 91)

(2, 91)

(0, 92)

(1, 92)

(2, 92)

(0, 93)

(1, 93)

(2, 93)

(0, 94)

(1, 94)

(2, 94)

(0, 95)

(1, 95)

(2, 95)

(0, 96)

(1, 96)

(2, 96)

(0, 97)

(1, 97)

(2, 97)

(0, 98)

(1, 98)

(2, 98)

(0, 99)

(1, 99)

(2, 99)

(0, 100)

(1, 100)

(2, 100)

(0, 101)

(1, 101)

(2, 101)

(0, 102)

(1, 102)

(2, 102)

(0, 103)

(1, 103)

(2, 103)

(0, 104)

(1, 104)

(2, 104)

(0, 105)

(1, 105)

(2, 105)(0, 106)

(1, 106)

(2, 106)

(0, 107)

(1, 107)

(2, 107)

(0, 108)

(1, 108)

(2, 108)

(0, 109)

(1, 109)

(2, 109)

(0, 110)

(1, 110)

(2, 110)

(0, 111)

(1, 111)

(2, 111)

(0, 112)

(1, 112)

(2, 112)

(0, 113)

(1, 113)

(2, 113)

(0, 114) (1, 114)

(2, 114)

(0, 115)

(1, 115)

(2, 115)

(0, 116)

(1, 116)

(2, 116)

(0, 117)

(1, 117)

(2, 117)

(0, 118)

(1, 118)

(2, 118)

(0, 119)

(1, 119)

(2, 119)

(0, 120)

(1, 120)

(2, 120)

(0, 121)

(1, 121)

(2, 121)

(0, 122)

(1, 122)

(2, 122)

(0, 123)

(1, 123)

(2, 123)(0, 124)

(1, 124)

(2, 124)

(0, 125)

(1, 125)

(2, 125)

(0, 126)

(1, 126)

(2, 126)

(0, 127)

(1, 127)

(2, 127)

(0, 128)

(1, 128)

(2, 128)

(0, 129)

(1, 129)

(2, 129)

(0, 130)

(1, 130)

(2, 130)

(0, 131)

(1, 131)

(2, 131)

(0, 132)

(1, 132)

(2, 132)

(0, 133)

(1, 133)

(2, 133)

(0, 134)

(1, 134)

(2, 134)

(0, 135)

(1, 135)

(2, 135)

(0, 136)

(1, 136)

(2, 136)

(0, 137)

(1, 137)

(2, 137)

(0, 138)

(1, 138)

(2, 138)

(0, 139)

(1, 139)

(2, 139)

(0, 140)

(1, 140)

(2, 140)

(0, 141)

(1, 141)

(2, 141)

(0, 142)

(1, 142)

(2, 142)

(0, 143)

(1, 143)(2, 143)

(0, 144)(1, 144)

(2, 144)

(0, 145)

(1, 145)

(2, 145)

(0, 146)

(1, 146)

(2, 146)

(0, 147)

(1, 147)

(2, 147)

(0, 148)

(1, 148)

(2, 148)

(0, 149)

(1, 149)

(2, 149)(0, 150)

(1, 150)

(2, 150)

(0, 151)

(1, 151)

(2, 151)

(0, 152)

(1, 152)

(2, 152)

(0, 153)

(1, 153)

(2, 153)

(0, 154)

(1, 154)

(2, 154)

(0, 155)

(1, 155)

(2, 155)

(0, 156)

(1, 156)

(2, 156)

(0, 157)

(1, 157)

(2, 157)

(0, 158)

(1, 158)

(2, 158)

(0, 159)

(1, 159)

(2, 159)

(0, 160)

(1, 160)

(2, 160)

(0, 161)

(1, 161)

(2, 161)

(0, 162)

(1, 162)

(2, 162)

(0, 163)

(1, 163)

(2, 163)

(0, 164)

(1, 164)

(2, 164)

(0, 165)

(1, 165)

(2, 165)

(0, 166)

(1, 166)

(2, 166)

(0, 167)

(1, 167)

(2, 167)

(0, 168)

(1, 168)

(2, 168)

(0, 169)

(1, 169)

(2, 169)

(0, 170)

(1, 170)

(2, 170)

(0, 171)

(1, 171)

(2, 171)

(0, 172)

(1, 172)

(2, 172)(0, 173)

(1, 173)

(2, 173)

(0, 174)

(1, 174)

(2, 174)

(0, 175)

(1, 175)

(2, 175)

(0, 176)

(1, 176)

(2, 176)

(0, 177)

(1, 177)

(2, 177)

(0, 178)

(1, 178)

(2, 178)

(0, 179)

(1, 179)

(2, 179)

(0, 180)

(1, 180)

(2, 180)

(0, 181)

(1, 181)

(2, 181)

(0, 182)

(1, 182)

(2, 182)

(0, 183)

(1, 183)

(2, 183)

(0, 184)

(1, 184)

(2, 184)(0, 185)

(1, 185)

(2, 185)

(0, 186)

(1, 186)

(2, 186)

(0, 187)

(1, 187)

(2, 187)

(0, 188)

(1, 188)

(2, 188)

(0, 189)

(1, 189)

(2, 189)

(0, 190)

(1, 190)

(2, 190)

(0, 191)

(1, 191)

(2, 191)

(0, 192)

(1, 192)

(2, 192)

(0, 193)

(1, 193)

(2, 193)

(0, 194)

(1, 194)

(2, 194)

(0, 195)

(1, 195)

(2, 195)

(0, 196)

(1, 196)

(2, 196)

(0, 197)

(1, 197)

(2, 197)

(0, 198)

(1, 198)(2, 198)

(0, 199)

(1, 199)

(2, 199)

(0, 200)

(1, 200)

(2, 200)

(0, 201)

(1, 201)

(2, 201)

(0, 202)

(1, 202)

(2, 202)

(0, 203)

(1, 203)

(2, 203)

(0, 204)

(1, 204)

(2, 204)

(0, 205)

(1, 205)

(2, 205)

(0, 206)

(1, 206)

(2, 206)

(0, 207)

(1, 207)

(2, 207)

(0, 208)

(1, 208)

(2, 208)

(0, 209)

(1, 209)

(2, 209)

(0, 210)

(1, 210)

(2, 210)

(0, 211)

(1, 211)

(2, 211)

(0, 212)

(1, 212)

(2, 212)

(0, 213)

(1, 213)

(2, 213)

(0, 214)(1, 214)

(2, 214)

(0, 215)

(1, 215)

(2, 215)

(0, 216)

(1, 216)

(2, 216)

(0, 217)

(1, 217)

(2, 217)

(0, 218)

(1, 218)

(2, 218)

(0, 219)

(1, 219)

(2, 219)

(0, 220)

(1, 220)

(2, 220)

(0, 221)

(1, 221)

(2, 221)

(0, 222)

(1, 222)

(2, 222)(0, 223)

(1, 223)(2, 223)

(0, 224)

(1, 224)

(2, 224)

(0, 225)

(1, 225)

(2, 225)

(0, 226)

(1, 226)

(2, 226)

(0, 227)

(1, 227)

(2, 227)

(0, 228)

(1, 228)

(2, 228)

(0, 229)

(1, 229)

(2, 229)

(0, 230)

(1, 230)

(2, 230)

(0, 231)

(1, 231)

(2, 231)

(0, 232)

(1, 232)

(2, 232)

(0, 233) (1, 233)

(2, 233)

(0, 234)

(1, 234)

(2, 234)

(0, 235)

(1, 235)

(2, 235)

(0, 236)

(1, 236)

(2, 236)

(0, 237)

(1, 237)

(2, 237)

(0, 238)

(1, 238)

(2, 238)

(0, 239)

(1, 239)

(2, 239)

(0, 240)

(1, 240)

(2, 240)

(0, 241)

(1, 241)

(2, 241)

(0, 242)

(1, 242)

(2, 242)

(0, 243)

(1, 243)

(2, 243)

(0, 244)

(1, 244)

(2, 244)

(0, 245)

(1, 245)

(2, 245)

(0, 246)

(1, 246)

(2, 246)

(0, 247)

(1, 247)

(2, 247)

(0, 248)

(1, 248)

(2, 248)

(0, 249)

(1, 249)

(2, 249)

(0, 250)

(1, 250)

(2, 250)

(0, 251)

(1, 251)

(2, 251)

(0, 252)

(1, 252)

(2, 252)

(0, 253)(1, 253)

(2, 253)

(0, 254)

(1, 254)

(2, 254)

(0, 255)

(1, 255)

(2, 255)

(0, 256)

(1, 256)

(2, 256)

(0, 257)

(1, 257)

(2, 257)

(0, 258)

(1, 258)

(2, 258)

(0, 259)

(1, 259)

(2, 259)

(0, 260)

(1, 260)

(2, 260)(0, 261)

(1, 261)

(2, 261)

(0, 262)

(1, 262)

(2, 262)

(0, 263)

(1, 263)

(2, 263)

(0, 264)

(1, 264)

(2, 264)

(0, 265)

(1, 265)

(2, 265)

(0, 266)

(1, 266)

(2, 266)

(0, 267)

(1, 267)

(2, 267)

(0, 268)

(1, 268)

(2, 268)

(0, 269)

(1, 269)(2, 269)

(0, 270)

(1, 270)

(2, 270)

(0, 271)

(1, 271)

(2, 271)

(0, 272)

(1, 272)

(2, 272)

(0, 273)

(1, 273)

(2, 273)

(0, 274)

(1, 274)

(2, 274)

(0, 275)

(1, 275)

(2, 275)

(0, 276)

(1, 276)

(2, 276)

(0, 277)

(1, 277)

(2, 277)

(0, 278)

(1, 278)

(2, 278)

(0, 279)

(1, 279)

(2, 279)

(0, 280)

(1, 280)

(2, 280)

(0, 281)

(1, 281)

(2, 281)

(0, 282)

(1, 282)

(2, 282)

(0, 283)

(1, 283)

(2, 283)

(0, 284)

(1, 284)

(2, 284)

(0, 285)

(1, 285)

(2, 285)

(0, 286)

(1, 286)

(2, 286)

(0, 287)

(1, 287)

(2, 287)

(0, 288)

(1, 288)(2, 288)

(0, 289)

(1, 289)

(2, 289)

(0, 290)

(1, 290)

(2, 290)

(0, 291)

(1, 291)

(2, 291)

(0, 292)

(1, 292)

(2, 292)

(0, 293)

(1, 293)

(2, 293)

(0, 294)

(1, 294)

(2, 294)

(0, 295)

(1, 295)

(2, 295)

(0, 296)

(1, 296)

(2, 296)

(0, 297)

(1, 297)

(2, 297)

(0, 298)

(1, 298)

(2, 298)

(0, 299)

(1, 299)

(2, 299)

(0, 300)

(1, 300)

(2, 300)

(0, 301)

(1, 301)

(2, 301)

(0, 302)

(1, 302)

(2, 302)

(0, 303)

(1, 303)

(2, 303)

(0, 304)

(1, 304)

(2, 304)

(0, 305)

(1, 305)

(2, 305)

(0, 306)

(1, 306)(2, 306)

(0, 307)

(1, 307)

(2, 307)

(0, 308)

(1, 308)

(2, 308)(0, 309)

(1, 309)

(2, 309)

(0, 310)

(1, 310)

(2, 310)

(0, 311)

(1, 311)

(2, 311)

(0, 312)

(1, 312)

(2, 312)

(0, 313)

(1, 313)

(2, 313)

(0, 314)

(1, 314)

(2, 314)

(0, 315)

(1, 315)

(2, 315)

(0, 316)

(1, 316)

(2, 316)

(0, 317)

(1, 317)(2, 317)

(0, 318)

(1, 318)

(2, 318)

(0, 319)

(1, 319)

(2, 319)

(0, 320)

(1, 320)

(2, 320)

(0, 321)

(1, 321)

(2, 321)

(0, 322)

(1, 322)

(2, 322)

(0, 323)

(1, 323)

(2, 323)

(0, 324)

(1, 324)

(2, 324)

(0, 325)

(1, 325)

(2, 325)

(0, 326)

(1, 326)

(2, 326)

(0, 327)

(1, 327)

(2, 327)

(0, 328)

(1, 328)

(2, 328)

(0, 329)(1, 329)

(2, 329)

(0, 330)

(1, 330)

(2, 330)

(0, 331)

(1, 331)

(2, 331)

(0, 332)

(1, 332)

(2, 332)

(0, 333)

(1, 333)

(2, 333)

(0, 334)

(1, 334)

(2, 334)

(0, 335)

(1, 335)

(2, 335)

(0, 336)

(1, 336)

(2, 336)

(0, 337)

(1, 337)

(2, 337)

(0, 338)

(1, 338)

(2, 338)

(0, 339)

(1, 339)

(2, 339)

(0, 340)

(1, 340)

(2, 340)

Page 8: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 5

Thesis’ objectives

I Study the security of expander hashesI Generic security Ch.4I Security of particular constructions Ch.5,6,7,DI Malleability Ch.8

I Study the efficiency of expander hashesI Hardware and software efficiency of particular

constructions Ch.4,7,9I Improved algorithms Ch.4,9,CI Parallelism Ch.4,8,9

I Study the applications of expander hashesI Model and use malleability Ch.8I Remove malleability Ch.9

Page 9: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 5

Thesis’ objectives

I Study the security of expander hashesI Generic security Ch.4I Security of particular constructions Ch.5,6,7,DI Malleability Ch.8

I Study the efficiency of expander hashesI Hardware and software efficiency of particular

constructions Ch.4,7,9I Improved algorithms Ch.4,9,CI Parallelism Ch.4,8,9

I Study the applications of expander hashesI Model and use malleability Ch.8I Remove malleability Ch.9

Page 10: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 5

Thesis’ objectives

I Study the security of expander hashesI Generic security Ch.4I Security of particular constructions Ch.5,6,7,DI Malleability Ch.8

I Study the efficiency of expander hashesI Hardware and software efficiency of particular

constructions Ch.4,7,9I Improved algorithms Ch.4,9,CI Parallelism Ch.4,8,9

I Study the applications of expander hashesI Model and use malleability Ch.8I Remove malleability Ch.9

Page 11: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 6

Outline

I Introduction

I Generic construction and attacksI Known instances

I OverviewI Focus 1 : Cryptanalysis of LPS and Morgenstern hash functionsI Focus 2 : Vectorial and projective Zemor-Tillich

I Perspectives

I Conclusion

Page 12: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 7

Outline

I Introduction

I Generic construction and attacksI Known instances

I OverviewI Focus 1 : Cryptanalysis of LPS and Morgenstern hash functionsI Focus 2 : Vectorial and projective Zemor-Tillich

I Perspectives

I Conclusion

Page 13: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 8

Expander hashes

I For a k-regular directed graph,color the edges with k colors, choose an initial vertex

0 1

2

3

45

6

7

0

m = 101

4

I Given a message m, decompose it into k-digits m = m1m2...mµ

I The digits fix a walk in the graph according to the coloringI For undirected graphs: forbid backtracking

Page 14: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 8

Expander hashes

I For a k-regular directed graph,color the edges with k colors, choose an initial vertex

0 1

2

3

45

6

7

0

m = 101

4

I Given a message m, decompose it into k-digits m = m1m2...mµ

I The digits fix a walk in the graph according to the coloring

I For undirected graphs: forbid backtracking

Page 15: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 8

Expander hashes

I For a k-regular directed graph,color the edges with k colors, choose an initial vertex

0 1

2

3

45

6

7

0

m = 101

4

I Given a message m, decompose it into k-digits m = m1m2...mµ

I The digits fix a walk in the graph according to the coloringI For undirected graphs: forbid backtracking

Page 16: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 9

Cayley hashes

I Cayley graphs: graphs built from groups

I Cayley hashes: expander hashes built from Cayley graphs

Example for S = s0, s1 and initial vertex 1:

H(11001) = s1s1s0s0s1

I Simplifies definition and study

I Allows parallelism: H(m1||m2) = H(m1) · H(m2)where · is group law

Page 17: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 9

Cayley hashes

I Cayley graphs: graphs built from groups

I Cayley hashes: expander hashes built from Cayley graphs

Example for S = s0, s1 and initial vertex 1:

H(11001) = s1s1s0s0s1

I Simplifies definition and study

I Allows parallelism: H(m1||m2) = H(m1) · H(m2)where · is group law

Page 18: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 10

Cayley hashes: security properties

hashproperties

graphproperties

groupproperties

collisionresistance

cycle / two-pathsproblem

representation /balance problem

preimageresistance

path-findingproblem

factorizationproblem

outputdistribution

expandingproperties

Kazhdanconstant

minimal collision“distance”

girth

Page 19: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 11

Representation problem

I Given a group G and S = s1, ...sk ⊂ G ,find a product in reduced form∏

1≤i≤N

sei

θ(i) = 1

where ei ∈ Z+, θ : 1, ...N → 1...k and∑

ei is “small”.

By reduced form, we mean that for each i , sθ(i+1) 6= sθ(i), s−1θ(i)

I The hardness of this problem highly depends on G and S !Of course, G must be non-Abelian

Page 20: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 11

Representation problem

I Given a group G and S = s1, ...sk ⊂ G ,find a product in reduced form∏

1≤i≤N

sei

θ(i) = 1

where ei ∈ Z+, θ : 1, ...N → 1...k and∑

ei is “small”.

By reduced form, we mean that for each i , sθ(i+1) 6= sθ(i), s−1θ(i)

I The hardness of this problem highly depends on G and S !Of course, G must be non-Abelian

Page 21: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 12

Attacks on expander hashes

I Birthday attack in time 2λ/2

I Exhaustive search in time 2λ

I “Meet-in-the-middle” preimage attacksI Preimages in time 2λ/2

I Because each step is invertible

I Multicollision attacksI t-collisions in time log2 t2λ/2 [Joux04]I Because of iterative structure

I Trapdoor attacksI Choose initial vertex and/or graph parameters

to help collision search

Page 22: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 12

Attacks on expander hashes

I Birthday attack in time 2λ/2

I Exhaustive search in time 2λ

I “Meet-in-the-middle” preimage attacksI Preimages in time 2λ/2

I Because each step is invertible

I Multicollision attacksI t-collisions in time log2 t2λ/2 [Joux04]I Because of iterative structure

I Trapdoor attacksI Choose initial vertex and/or graph parameters

to help collision search

Page 23: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 12

Attacks on expander hashes

I Birthday attack in time 2λ/2

I Exhaustive search in time 2λ

I “Meet-in-the-middle” preimage attacksI Preimages in time 2λ/2

I Because each step is invertible

I Multicollision attacksI t-collisions in time log2 t2λ/2 [Joux04]I Because of iterative structure

I Trapdoor attacksI Choose initial vertex and/or graph parameters

to help collision search

Page 24: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 12

Attacks on expander hashes

I Birthday attack in time 2λ/2

I Exhaustive search in time 2λ

I “Meet-in-the-middle” preimage attacksI Preimages in time 2λ/2

I Because each step is invertible

I Multicollision attacksI t-collisions in time log2 t2λ/2 [Joux04]I Because of iterative structure

I Trapdoor attacksI Choose initial vertex and/or graph parameters

to help collision search

Page 25: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 13

Attacks on expander hashes

I Subgroup attacks on Cayley hashes

I MalleabilityI Cayley hashes: for any m,m′

H(m||m′) = H(m) · H(m′)

I In general: given H(m) and m′, easy to compute H(m||m′)...... even if m itself cannot be computed from H(m) !

Page 26: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 13

Attacks on expander hashes

I Subgroup attacks on Cayley hashesI Malleability

I Cayley hashes: for any m,m′

H(m||m′) = H(m) · H(m′)

I In general: given H(m) and m′, easy to compute H(m||m′)...... even if m itself cannot be computed from H(m) !

Page 27: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 14

Outline

I Introduction

I Generic construction and attacksI Known instances

I OverviewI Focus 1 : Cryptanalysis of LPS and Morgenstern hash functionsI Focus 2 : Vectorial and projective Zemor-Tillich

I Perspectives

I Conclusion

Page 28: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 15

Outline

I Introduction

I Generic construction and attacksI Known instances

I OverviewI Focus 1 : Cryptanalysis of LPS and Morgenstern hash functionsI Focus 2 : Vectorial and projective Zemor-Tillich

I Perspectives

I Conclusion

Page 29: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 16

Zemor’s first proposal

I Construction [Zem91,Zem94]:Cayley hash with G = SL(2,Fp), v0 = ( 1 0

0 1 ) and

S = s0 = ( 1 10 1 ) , s1 = ( 1 0

1 1 )

I Cryptanalysis [TZ93]:I Collision “lifting” attack:

lift the representation problem from SL(2,Fp) to SL(2,Z+)I Also a preimage attackI This function is broken !

Page 30: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 16

Zemor’s first proposal

I Construction [Zem91,Zem94]:Cayley hash with G = SL(2,Fp), v0 = ( 1 0

0 1 ) and

S = s0 = ( 1 10 1 ) , s1 = ( 1 0

1 1 )

I Cryptanalysis [TZ93]:I Collision “lifting” attack:

lift the representation problem from SL(2,Fp) to SL(2,Z+)I Also a preimage attackI This function is broken !

Page 31: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 17

The Zemor-Tillich hash function (ZT)

I Construction : [TZ94]I Let Pn(X ) ∈ F2[X ] irreducible, degree n ∈ [130, 170]

Let K = F2[X ]/(Pn(X ))

I Take G = SL(2,K ),

S =s0 =

(X 11 0

), s1 =

(X X+11 1

)Take v0 = ( 1 0

0 1 )

I Reasonably efficientI 3 additions / bitI Binary fields arithmetic

Page 32: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 17

The Zemor-Tillich hash function (ZT)

I Construction : [TZ94]I Let Pn(X ) ∈ F2[X ] irreducible, degree n ∈ [130, 170]

Let K = F2[X ]/(Pn(X ))I Take G = SL(2,K ),

S =s0 =

(X 11 0

), s1 =

(X X+11 1

)Take v0 = ( 1 0

0 1 )

I Reasonably efficientI 3 additions / bitI Binary fields arithmetic

Page 33: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 17

The Zemor-Tillich hash function (ZT)

I Construction : [TZ94]I Let Pn(X ) ∈ F2[X ] irreducible, degree n ∈ [130, 170]

Let K = F2[X ]/(Pn(X ))I Take G = SL(2,K ),

S =s0 =

(X 11 0

), s1 =

(X X+11 1

)Take v0 = ( 1 0

0 1 )

I Reasonably efficientI 3 additions / bitI Binary fields arithmetic

Page 34: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 18

The Zemor-Tillich hash function (ZT)

I Partial cryptanalysis...I Generic issues of Cayley hashesI Invertibility for short messages [SGGB00]I Trapdoor attacks on Pn(X ) [CP94,AK98,SGGB00]I Projection to finite fields [G96]I Subgroup attacks for composite n [SGGB00]I Generic collision and preimage subgroup attacks in time 2n/2

(instead of 23n/2 and 23n for birthday and exhaustive) [PQTZ09]

... but fundamentally unbroken since 1994

I Vectorial and projective variants [PQTZ09]

Page 35: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 18

The Zemor-Tillich hash function (ZT)

I Partial cryptanalysis...I Generic issues of Cayley hashesI Invertibility for short messages [SGGB00]I Trapdoor attacks on Pn(X ) [CP94,AK98,SGGB00]I Projection to finite fields [G96]I Subgroup attacks for composite n [SGGB00]I Generic collision and preimage subgroup attacks in time 2n/2

(instead of 23n/2 and 23n for birthday and exhaustive) [PQTZ09]

... but fundamentally unbroken since 1994

I Vectorial and projective variants [PQTZ09]

Page 36: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 18

The Zemor-Tillich hash function (ZT)

I Partial cryptanalysis...I Generic issues of Cayley hashesI Invertibility for short messages [SGGB00]I Trapdoor attacks on Pn(X ) [CP94,AK98,SGGB00]I Projection to finite fields [G96]I Subgroup attacks for composite n [SGGB00]I Generic collision and preimage subgroup attacks in time 2n/2

(instead of 23n/2 and 23n for birthday and exhaustive) [PQTZ09]

... but fundamentally unbroken since 1994

I Vectorial and projective variants [PQTZ09]

Page 37: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 19

LPS and Morgenstern hash functions

I LPS hash function: use LPS Ramanujan graphs [LPS88, CGL07]

I Reasonably efficient (a few additions / step)

I Extension to Morgenstern Ramanujan graphs [PLQ07]

I CryptanalysisI Collision lifting attack [TZ08]I Extension to preimage attack [PLQ08]I Extension to collision and preimage for Morgenstern hash

[PLQ08]

I Both functions repaired by modifying S

Page 38: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 19

LPS and Morgenstern hash functions

I LPS hash function: use LPS Ramanujan graphs [LPS88, CGL07]

I Reasonably efficient (a few additions / step)

I Extension to Morgenstern Ramanujan graphs [PLQ07]I Cryptanalysis

I Collision lifting attack [TZ08]I Extension to preimage attack [PLQ08]I Extension to collision and preimage for Morgenstern hash

[PLQ08]

I Both functions repaired by modifying S

Page 39: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 19

LPS and Morgenstern hash functions

I LPS hash function: use LPS Ramanujan graphs [LPS88, CGL07]

I Reasonably efficient (a few additions / step)

I Extension to Morgenstern Ramanujan graphs [PLQ07]I Cryptanalysis

I Collision lifting attack [TZ08]I Extension to preimage attack [PLQ08]I Extension to collision and preimage for Morgenstern hash

[PLQ08]

I Both functions repaired by modifying S

Page 40: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 20

The Pizer hash function

I Use Pizer’s Ramanujan graphs [P90,CGL07]I (Not Cayley)I Vertices are supersingular elliptic curvesI Edges are isogenies of fixed degree

I Not broken so far, butI Much slower than previous instancesI No guarantee on the girth in general

Page 41: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 20

The Pizer hash function

I Use Pizer’s Ramanujan graphs [P90,CGL07]I (Not Cayley)I Vertices are supersingular elliptic curvesI Edges are isogenies of fixed degree

I Not broken so far, butI Much slower than previous instancesI No guarantee on the girth in general

Page 42: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 21

Outline

I Introduction

I Generic construction and attacksI Known instances

I OverviewI Focus 1 : Cryptanalysis of LPS and Morgenstern hash functionsI Focus 2 : Vectorial and projective Zemor-Tillich

I Perspectives

I Conclusion

Page 43: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 22

LPS hash function

I Construction: use LPS Ramanujan graphs [LPS88, CGL07]I Let l small prime, p large prime, p ≡ l ≡ 1 mod 4,

(lp

)= 1

Let i such that i2 = −1 mod pI Let G = PSL(2,Fp),

Let S = sj , j = 1...l + 1, where

sj =

(αj + iβj γj + iδj−γj + iδj αj − iβj

), j = 0, ..., l ;

and (αj , βj , γj , δj) are all the integer solutions ofα2 + β2 + γ2 + δ2 = l , with α > 0 and β, γ, δ

Page 44: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 23

Collisions for LPS Hash [TZ08]

I Idea of Tillich-Zemor attack : lift the representation problemfrom PSL(2,Fp) to Ω ⊂ SL(2,Z[i ]):

mod poo

i2 = −1 → i2 = −1

Fp → Z[i ]

PSL(2,Fp) → Ω ⊂ SL(2,Z[i ])(g0,j + ig1,j g2,j + ig3,j

−g2,j + ig3,j g0,j − ig1,j

)→

(g0,j + ig1,j g2,j + ig3,j

−g2,j + ig3,j g0,j − ig1,j

)

λ

(1 00 1

)∈ PSL(2,Fp) →

(a + bi c + di−c + di a − bi

)∈ Ω

Page 45: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 23

Collisions for LPS Hash [TZ08]

I Idea of Tillich-Zemor attack : lift the representation problemfrom PSL(2,Fp) to Ω ⊂ SL(2,Z[i ]):

mod poo

i2 = −1 → i2 = −1

Fp → Z[i ]

PSL(2,Fp) → Ω ⊂ SL(2,Z[i ])(g0,j + ig1,j g2,j + ig3,j

−g2,j + ig3,j g0,j − ig1,j

)→

(g0,j + ig1,j g2,j + ig3,j

−g2,j + ig3,j g0,j − ig1,j

(1 00 1

)∈ PSL(2,Fp) →

(a + bi c + di−c + di a − bi

)∈ Ω

Page 46: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 24

The lifted set Ω

I Properties required of Ω:I Ω ⊂ SL(2,Z[i ])I A large proportion (actually all) of m ∈ Ω has a unique

factorization in the lifted generatorsI This factorization is easily computedI We deduce a factorization in PSL(2,Fp) by reduction modulo p

I For the Ω chosen in [TZ08], finding m ∈ Ωmainly amounts to finding λ,w , x , y , z , e ∈ Z solving

(λ + wp)2 + 4(xp)2 + 4(yp)2 + 4(zp)2 = l e

Fix λ + wp, ...

Page 47: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 24

The lifted set Ω

I Properties required of Ω:I Ω ⊂ SL(2,Z[i ])I A large proportion (actually all) of m ∈ Ω has a unique

factorization in the lifted generatorsI This factorization is easily computedI We deduce a factorization in PSL(2,Fp) by reduction modulo p

I For the Ω chosen in [TZ08], finding m ∈ Ωmainly amounts to finding λ,w , x , y , z , e ∈ Z solving

(λ + wp)2 + 4(xp)2 + 4(yp)2 + 4(zp)2 = l e

Fix λ + wp, ...

Page 48: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 24

The lifted set Ω

I Properties required of Ω:I Ω ⊂ SL(2,Z[i ])I A large proportion (actually all) of m ∈ Ω has a unique

factorization in the lifted generatorsI This factorization is easily computedI We deduce a factorization in PSL(2,Fp) by reduction modulo p

I For the Ω chosen in [TZ08], finding m ∈ Ωmainly amounts to finding λ,w , x , y , z , e ∈ Z solving

(λ + wp)2 + 4(xp)2 + 4(yp)2 + 4(zp)2 = l e

Fix λ + wp, ...

Page 49: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 25

Preimages for LPS Hash [PLQ08]

I With the same lifting strategy, finding a preimage to a matrixM =

(M1 M2M3 M4

)=(

A+B i C+Di−C+Di A−B i

)now amounts to solving

(Aλ + wp)2 + (Bλ + xp)2 + (Cλ + yp)2 + (Dλ + zp)2 = l2k

I Trivial extension does not work:I Fixing Aλ+ wp to satisfy the equation modulo p...I ... does not permit simplifying by p2 because of the term

2p(wA + xB + yC + zD)λ.I Hence the coefficients of degree-2 terms are huge (at least p)...I ... so the resulting equation in x , y , z is most likely to have no

solution.

Page 50: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 25

Preimages for LPS Hash [PLQ08]

I With the same lifting strategy, finding a preimage to a matrixM =

(M1 M2M3 M4

)=(

A+B i C+Di−C+Di A−B i

)now amounts to solving

(Aλ + wp)2 + (Bλ + xp)2 + (Cλ + yp)2 + (Dλ + zp)2 = l2k

I Trivial extension does not work:I Fixing Aλ+ wp to satisfy the equation modulo p...I ... does not permit simplifying by p2 because of the term

2p(wA + xB + yC + zD)λ.I Hence the coefficients of degree-2 terms are huge (at least p)...I ... so the resulting equation in x , y , z is most likely to have no

solution.

Page 51: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 26

Preimages for LPS Hash [PLQ08]

I Sketch of our solution:I Solve the preimage problem for diagonal matrices

(Aλ+ wp)2 + (Bλ+ xp)2 + (yp)2 + (zp)2 = l2k

I Decompose any matrix as a product of diagonal matrices andgraph generators(

M1 M2M3 M4

)= λ ( 1 0

0 α )(

1 2−2 1

) (1 00 β1

) (1 2−2 1

) (1 00 β2

) (1 2−2 1

)( 1 0

0 ω )

I See [PLQ08] or Ch.6 for details

Page 52: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 26

Preimages for LPS Hash [PLQ08]

I Sketch of our solution:I Solve the preimage problem for diagonal matrices

(Aλ+ wp)2 + (Bλ+ xp)2 + (yp)2 + (zp)2 = l2k

I Decompose any matrix as a product of diagonal matrices andgraph generators(

M1 M2M3 M4

)= λ ( 1 0

0 α )(

1 2−2 1

) (1 00 β1

) (1 2−2 1

) (1 00 β2

) (1 2−2 1

)( 1 0

0 ω )

I See [PLQ08] or Ch.6 for details

Page 53: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 27

Cryptanalysis of Morgenstern Hash [PLQ08]

I LPS graphs for odd primes lMorgenstern graphs for lk , including l = 2 [M1994]Morgenstern hashes use l = 2 [PLQ07]

I Lifting attack from SL(2,F2n) to Ω ∈ SL(2,A) whereA = F2[x , y ]/(y 2 + y + 1)

I The resulting equations differ, but can be solved with the sametechniques extended to polynomials

I See [PLQ08] or Ch.6 for details

Page 54: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 27

Cryptanalysis of Morgenstern Hash [PLQ08]

I LPS graphs for odd primes lMorgenstern graphs for lk , including l = 2 [M1994]Morgenstern hashes use l = 2 [PLQ07]

I Lifting attack from SL(2,F2n) to Ω ∈ SL(2,A) whereA = F2[x , y ]/(y 2 + y + 1)

I The resulting equations differ, but can be solved with the sametechniques extended to polynomials

I See [PLQ08] or Ch.6 for details

Page 55: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 27

Cryptanalysis of Morgenstern Hash [PLQ08]

I LPS graphs for odd primes lMorgenstern graphs for lk , including l = 2 [M1994]Morgenstern hashes use l = 2 [PLQ07]

I Lifting attack from SL(2,F2n) to Ω ∈ SL(2,A) whereA = F2[x , y ]/(y 2 + y + 1)

I The resulting equations differ, but can be solved with the sametechniques extended to polynomials

I See [PLQ08] or Ch.6 for details

Page 56: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 28

Outline

I Introduction

I Generic construction and attacksI Known instances

I OverviewI Focus 1 : Cryptanalysis of LPS and Morgenstern hash functionsI Focus 2 : Vectorial and projective Zemor-Tillich

I Perspectives

I Conclusion

Page 57: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 29

The Zemor-Tillich hash function (ZT)

I Recall:I ZT is a Cayley hash with G = SL(2,F2n), v0 = ( 1 0

0 1 ) and

S =s0 =

(X 11 0

), s1 =

(X X+11 1

)I Generic collision and preimage subgroup attacks in time 2n/2

(instead of 23n/2 and 23n for birthday and exhaustive) [PQTZ09]

I How to extract the secure bits ?

Page 58: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 29

The Zemor-Tillich hash function (ZT)

I Recall:I ZT is a Cayley hash with G = SL(2,F2n), v0 = ( 1 0

0 1 ) and

S =s0 =

(X 11 0

), s1 =

(X X+11 1

)I Generic collision and preimage subgroup attacks in time 2n/2

(instead of 23n/2 and 23n for birthday and exhaustive) [PQTZ09]

I How to extract the secure bits ?

Page 59: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 30

Vectorial and projective Zemor-Tillich

I Vectorial ZT: [PQTZ09]I For an initial vector ( a0 b0 ) part of the key,

HvecZT (m) = ( a0 b0 ) HZT (m)

I Just as secure as the original ZT

I Projective ZT: [PQTZ09]I For an initial vector ( a0 b0 ) part of the key, returns the

projective point [a : b] if the vectorial ZT returns ( a b )I “Nearly” as secure as the vectorial version

Page 60: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 30

Vectorial and projective Zemor-Tillich

I Vectorial ZT: [PQTZ09]I For an initial vector ( a0 b0 ) part of the key,

HvecZT (m) = ( a0 b0 ) HZT (m)

I Just as secure as the original ZT

I Projective ZT: [PQTZ09]I For an initial vector ( a0 b0 ) part of the key, returns the

projective point [a : b] if the vectorial ZT returns ( a b )I “Nearly” as secure as the vectorial version

Page 61: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 31

Vectorial and projective Zemor-Tillich

I (Nearly) as secure as the original version

I Reduced output sizes: ≈ 3n bits → ≈ 2n and ≈ n bits

I Keep hard components of the representation problem;remove easy components

I Also more efficient:I Always for vectorial versionI Always but on short messages for projective version

I Used in our new function ZesT

Page 62: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 31

Vectorial and projective Zemor-Tillich

I (Nearly) as secure as the original version

I Reduced output sizes: ≈ 3n bits → ≈ 2n and ≈ n bits

I Keep hard components of the representation problem;remove easy components

I Also more efficient:I Always for vectorial versionI Always but on short messages for projective version

I Used in our new function ZesT

Page 63: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 31

Vectorial and projective Zemor-Tillich

I (Nearly) as secure as the original version

I Reduced output sizes: ≈ 3n bits → ≈ 2n and ≈ n bits

I Keep hard components of the representation problem;remove easy components

I Also more efficient:I Always for vectorial versionI Always but on short messages for projective version

I Used in our new function ZesT

Page 64: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 32

Outline

I Introduction

I Generic construction and attacksI Known instances

I OverviewI Focus 1 : Cryptanalysis of LPS and Morgenstern hash functionsI Focus 2 : Vectorial and projective Zemor-Tillich

I Perspectives

I Conclusion

Page 65: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 33

Malleability

I Inherent to expander hash design

I Formalization:I Correlation intractability [CGH98]I Non-malleability [BCFW08]

I Applications:I Undesirable for auctions, ...I OK if collision resistance sufficesI Useful for parallelism, [LM08], [QJ97]

I May be removed with additional design: ZesT

Page 66: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 33

Malleability

I Inherent to expander hash designI Formalization:

I Correlation intractability [CGH98]I Non-malleability [BCFW08]

I Applications:I Undesirable for auctions, ...I OK if collision resistance sufficesI Useful for parallelism, [LM08], [QJ97]

I May be removed with additional design: ZesT

Page 67: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 33

Malleability

I Inherent to expander hash designI Formalization:

I Correlation intractability [CGH98]I Non-malleability [BCFW08]

I Applications:I Undesirable for auctions, ...I OK if collision resistance sufficesI Useful for parallelism, [LM08], [QJ97]

I May be removed with additional design: ZesT

Page 68: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 33

Malleability

I Inherent to expander hash designI Formalization:

I Correlation intractability [CGH98]I Non-malleability [BCFW08]

I Applications:I Undesirable for auctions, ...I OK if collision resistance sufficesI Useful for parallelism, [LM08], [QJ97]

I May be removed with additional design: ZesT

Page 69: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 34

ZesT: an all-purpose hash function based onZemor-Tillich [PVQ08,PdMQTVZ09]

I ZT is appealing: security proof for collision resistance, graphand group perspectives, parallelism, good efficiency...

I ZT has important issues: malleability, invertibility on shortmessages, suboptimal collision and preimage resistances

I ZesT is Zemor-Tillich with Enhanced Security inside

Page 70: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 34

ZesT: an all-purpose hash function based onZemor-Tillich [PVQ08,PdMQTVZ09]

I ZT is appealing: security proof for collision resistance, graphand group perspectives, parallelism, good efficiency...

I ZT has important issues: malleability, invertibility on shortmessages, suboptimal collision and preimage resistances

I ZesT is Zemor-Tillich with Enhanced Security inside

Page 71: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 34

ZesT: an all-purpose hash function based onZemor-Tillich [PVQ08,PdMQTVZ09]

I ZT is appealing: security proof for collision resistance, graphand group perspectives, parallelism, good efficiency...

I ZT has important issues: malleability, invertibility on shortmessages, suboptimal collision and preimage resistances

I ZesT is Zemor-Tillich with Enhanced Security inside

Page 72: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 35

ZesT: an all-purpose hash function based onZemor-Tillich [PVQ08,PdMQTVZ09]

I Use vectorial and projective ZT as building blocks

I Collision resistance reduces to the representation problem of ZT

I Weaknesses of ZT are removed

I Ultra-lightweight ASIC implementations [dMPQ09]

I Throughput comparable to SHA on FPGA [dMPQ09]

I (Currently) 4 to 10 times as slow as SHA in software

I Parallelism still to be used

Page 73: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 35

ZesT: an all-purpose hash function based onZemor-Tillich [PVQ08,PdMQTVZ09]

I Use vectorial and projective ZT as building blocks

I Collision resistance reduces to the representation problem of ZT

I Weaknesses of ZT are removed

I Ultra-lightweight ASIC implementations [dMPQ09]

I Throughput comparable to SHA on FPGA [dMPQ09]

I (Currently) 4 to 10 times as slow as SHA in software

I Parallelism still to be used

Page 74: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 35

ZesT: an all-purpose hash function based onZemor-Tillich [PVQ08,PdMQTVZ09]

I Use vectorial and projective ZT as building blocks

I Collision resistance reduces to the representation problem of ZT

I Weaknesses of ZT are removed

I Ultra-lightweight ASIC implementations [dMPQ09]

I Throughput comparable to SHA on FPGA [dMPQ09]

I (Currently) 4 to 10 times as slow as SHA in software

I Parallelism still to be used

Page 75: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 36

Outline

I Introduction

I Generic construction and attacksI Known instances

I OverviewI Focus 1 : Cryptanalysis of LPS and Morgenstern hash functionsI Focus 2 : Vectorial and projective Zemor-Tillich

I Perspectives

I Conclusion

Page 76: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 37

Conclusion

I Today:I Zemor’s first proposal brokenI ZT unbroken since 1994I LPS, Morgenstern hashes broken (and repaired)I Pizer hash unbrokenI Vectorial and projective ZT as secure as ZT

Page 77: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 38

Conclusion

I Elegant, clear, simple design

I Provable security, stated as graph and group properties

I May be very efficient in software and hardware

I Parallelism (Cayley hashes)

I Main design issues (malleability,...) can be removed withadditional design

Page 78: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 38

Conclusion

I Elegant, clear, simple design

I Provable security, stated as graph and group properties

I May be very efficient in software and hardware

I Parallelism (Cayley hashes)

I Main design issues (malleability,...) can be removed withadditional design

Page 79: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 38

Conclusion

I Elegant, clear, simple design

I Provable security, stated as graph and group properties

I May be very efficient in software and hardware

I Parallelism (Cayley hashes)

I Main design issues (malleability,...) can be removed withadditional design

Page 80: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 38

Conclusion

I Elegant, clear, simple design

I Provable security, stated as graph and group properties

I May be very efficient in software and hardware

I Parallelism (Cayley hashes)

I Main design issues (malleability,...) can be removed withadditional design

Page 81: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 38

Conclusion

I Elegant, clear, simple design

I Provable security, stated as graph and group properties

I May be very efficient in software and hardware

I Parallelism (Cayley hashes)

I Main design issues (malleability,...) can be removed withadditional design

Page 82: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 39

Conclusion

I Ramanujan property not so benefic after all

I Underlying hard problems should be further studied

I Malleability of hash functions should be further studied

I Very interesting design !

Page 83: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 39

Conclusion

I Ramanujan property not so benefic after all

I Underlying hard problems should be further studied

I Malleability of hash functions should be further studied

I Very interesting design !

Page 84: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 39

Conclusion

I Ramanujan property not so benefic after all

I Underlying hard problems should be further studied

I Malleability of hash functions should be further studied

I Very interesting design !

Page 85: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 39

Conclusion

I Ramanujan property not so benefic after all

I Underlying hard problems should be further studied

I Malleability of hash functions should be further studied

I Very interesting design !

Page 86: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 40

Publications and preprints on expander hashes

I ZesT : an all-purpose hash function based onZemor-TillichChristophe Petit, Giacomo de Meulenaer, Jean-JacquesQuisquater, Jean-Pierre Tillich, Nicolas Veyrat-Charvillon andGilles ZemorPreprint (2009)

I Hardware Implementations of a Variant of theZemor-Tillich Hash FunctionGiacomo de Meulenaer, Christophe Petit and Jean-JacquesQuisquaterPreprint (2009)

Page 87: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 41

Publications and preprints on expander hashes

I Hard and Easy Components of Collision Search in theZemor-Tillich Hash Function : New Instances andReduced Variants with Equivalent SecurityChristophe Petit, Jean-Jacques Quisquater, Jean-Pierre Tillichand Gilles ZemorTo appear in CT-RSA 2009

I Full Cryptanalysis of LPS and Morgenstern HashFunctionsChristophe Petit, Kristin Lauter, and Jean-Jacques QuisquaterSCN 2008 - Sixth Conference on Security and Cryptography forNetworks

Page 88: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 42

Publications and preprints on expander hashes

I Efficiency and Pseudo-Randomness of a Variant ofZemor-Tillich Hash FunctionChristophe Petit, Nicolas Veyrat-Charvillon, and Jean-JacquesQuisquaterWIC’2008 - Symposium on Information Theory andCommunication in the BeneluxISECS’2008 - The 15th IEEE International Conference onElectronics, Circuits and Systems (invited paper)

I Cayley Hashes: A Class of Efficient Graph-based HashFunctionsChristophe Petit, Kristin Lauter, and Jean-Jacques QuisquaterPreprint (2007)

Page 89: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 43

Other publications

I Fault Attacks on Public Key Elements: Application toDLP based SchemesChong Hee Kim, Philippe Bulens, Christophe Petit, andJean-Jacques QuisquaterEUROPKI 2008

I A Block Cipher based Pseudo Random NumberGenerator Secure Against Side-Channel Key RecoveryChristophe Petit, Francois-Xavier Standaert, Olivier Pereira, TalG. Malkin, Moti YungASIACCS’08

Page 90: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 44

Collisions and preimages

I Finding a preimage is finding a path starting at the origin andending at some given vertex.

0 1

2

3

45

6

7

0

4

( For Crypto, ≥ 2160 vertices )

Page 91: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 45

Collisions and preimages

I Finding a collision amounts to finding two paths starting at theorigin and ending at the same vertex.

0 1

2

3

45

6

7

0

4

Page 92: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 46

Collisions and preimages

I If the graph is undirected, this amounts to finding a cyclethrough the origin.

0 1

2

3

45

6

7

0

4

Page 93: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 47

Girth

I For undirected graphs, the girth is the size of the smallest cycle

For directed graphs

0 1

2

3

45

6

7

I The minimal “distance” between any collisions is given by thegirth of the graph

Page 94: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 47

Girth

I For undirected graphs, the girth is the size of the smallest cycle

For directed graphs

0 1

2

3

45

6

7

I The minimal “distance” between any collisions is given by thegirth of the graph

Page 95: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 48

Spectral expansion

I λ := maxi 6=0 |λi | (λi = eigenvalues of the graph)I k-regular graphs : λ0 = k ≥ |λi |I k-regular undirected graphs : λ0 = k ≥ λ1 ≥ ... ≥ λn−1 ≥ −k

I Uniform distribution of outputs iff convergence of random walksiff λ < k

I λ gives the rate of convergence

I Expander graph : λ small

I Alon-Boppana (undirected graphs): lim inf |V |→+∞ λ1 ≥ 2√

k − 1

I Ramanujan graph family : lim inf |V |→+∞ λ1 = 2√

k − 1

Page 96: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 48

Spectral expansion

I λ := maxi 6=0 |λi | (λi = eigenvalues of the graph)I k-regular graphs : λ0 = k ≥ |λi |I k-regular undirected graphs : λ0 = k ≥ λ1 ≥ ... ≥ λn−1 ≥ −k

I Uniform distribution of outputs iff convergence of random walksiff λ < k

I λ gives the rate of convergence

I Expander graph : λ small

I Alon-Boppana (undirected graphs): lim inf |V |→+∞ λ1 ≥ 2√

k − 1

I Ramanujan graph family : lim inf |V |→+∞ λ1 = 2√

k − 1

Page 97: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 48

Spectral expansion

I λ := maxi 6=0 |λi | (λi = eigenvalues of the graph)I k-regular graphs : λ0 = k ≥ |λi |I k-regular undirected graphs : λ0 = k ≥ λ1 ≥ ... ≥ λn−1 ≥ −k

I Uniform distribution of outputs iff convergence of random walksiff λ < k

I λ gives the rate of convergence

I Expander graph : λ small

I Alon-Boppana (undirected graphs): lim inf |V |→+∞ λ1 ≥ 2√

k − 1

I Ramanujan graph family : lim inf |V |→+∞ λ1 = 2√

k − 1

Page 98: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 49

Expander hashes: security properties

hashproperties

graphproperties

collisionresistance

cycle / two-pathsproblem

preimageresistance

path-findingproblem

outputdistribution

expandingproperties

minimal collision“distance”

girth

Page 99: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 50

Cayley hashes

I CG ,S = (V ,E ) : for a group G and S ⊂ G , addI a vertex vg for each g ∈ GI an edge (vg1 , vg2) iff ∃s ∈ S with g2 = g1s

I Example : G = (Z/8Z,+), S = 1, 2

0 1

2

3

45

6

7

Page 100: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 50

Cayley hashes

I CG ,S = (V ,E ) : for a group G and S ⊂ G , addI a vertex vg for each g ∈ GI an edge (vg1 , vg2) iff ∃s ∈ S with g2 = g1s

I Example : G = (Z/8Z,+), S = 1, 2

0 1

2

3

45

6

7

Page 101: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 51

Balance problem

I Find two products ∏1≤i≤N

sei

θ(i) =∏

1≤i≤N′

se′iθ′(i)

where...

Page 102: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 52

Security of Cayley Hashes

I Similarly: balance, factorization problems

I For Cayley hashes,Solving the representation problem⇒ Finding collisions⇒ Solving the balance problem

I Equivalence if the graph is undirected

I The hardness of these problems highly depends on G and S !Of course, G must be non-Abelian

Page 103: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 52

Security of Cayley Hashes

I Similarly: balance, factorization problems

I For Cayley hashes,Solving the representation problem⇒ Finding collisions⇒ Solving the balance problem

I Equivalence if the graph is undirected

I The hardness of these problems highly depends on G and S !Of course, G must be non-Abelian

Page 104: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 53

Subgroup attacks on Cayley hashes

I Exploit group structure: H(m||m′) = H(m) · H(m′)

I sord(si )i = 1 for any si ∈ S

I Choose graph parameters such that ord(si) is small(trapdoor attack)

I If there is a subgroup tower sequenceG = G0 ⊃ G1 ⊃ G2 ⊃ ... ⊃ GN = I such that |Gi−1|/|Gi | ≤ Bfor all i :use subgroup structure and birthday searches to get collisions intime

√B

Page 105: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 53

Subgroup attacks on Cayley hashes

I Exploit group structure: H(m||m′) = H(m) · H(m′)

I sord(si )i = 1 for any si ∈ S

I Choose graph parameters such that ord(si) is small(trapdoor attack)

I If there is a subgroup tower sequenceG = G0 ⊃ G1 ⊃ G2 ⊃ ... ⊃ GN = I such that |Gi−1|/|Gi | ≤ Bfor all i :use subgroup structure and birthday searches to get collisions intime

√B

Page 106: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 53

Subgroup attacks on Cayley hashes

I Exploit group structure: H(m||m′) = H(m) · H(m′)

I sord(si )i = 1 for any si ∈ S

I Choose graph parameters such that ord(si) is small(trapdoor attack)

I If there is a subgroup tower sequenceG = G0 ⊃ G1 ⊃ G2 ⊃ ... ⊃ GN = I such that |Gi−1|/|Gi | ≤ Bfor all i :use subgroup structure and birthday searches to get collisions intime

√B

Page 107: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 53

Subgroup attacks on Cayley hashes

I Exploit group structure: H(m||m′) = H(m) · H(m′)

I sord(si )i = 1 for any si ∈ S

I Choose graph parameters such that ord(si) is small(trapdoor attack)

I If there is a subgroup tower sequenceG = G0 ⊃ G1 ⊃ G2 ⊃ ... ⊃ GN = I such that |Gi−1|/|Gi | ≤ Bfor all i :use subgroup structure and birthday searches to get collisions intime

√B

Page 108: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 54

Zemor’s first proposal

I Collision “lifting” attack [TZ93]I Find a lift of the identity:

a matrix M ∈ SL(2,Z) with M = I mod pI Solve the factorization problem in SL(2,Z)

with a variant of the Euclidean algorithmI Very efficient algorithm

I Trivially extends to a preimage attack

I This function is broken !

Page 109: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 54

Zemor’s first proposal

I Collision “lifting” attack [TZ93]I Find a lift of the identity:

a matrix M ∈ SL(2,Z) with M = I mod pI Solve the factorization problem in SL(2,Z)

with a variant of the Euclidean algorithmI Very efficient algorithm

I Trivially extends to a preimage attack

I This function is broken !

Page 110: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 55

Vectorial Zemor-Tillich [PQTZ09]

I [PQTZ09]: the output of ZT is 3n bits while its security is nbits: how to extract the secure bits ?

I Vectorial ZT:I Outputs 2n bitsI For an initial vector ( a0 b0 ) part of the key,

HvecZT (m) = ( a0 b0 ) HZT (m)

I If the initial vector is chosen randomly,just as secure as the original matrix version

Page 111: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 55

Vectorial Zemor-Tillich [PQTZ09]

I [PQTZ09]: the output of ZT is 3n bits while its security is nbits: how to extract the secure bits ?

I Vectorial ZT:I Outputs 2n bitsI For an initial vector ( a0 b0 ) part of the key,

HvecZT (m) = ( a0 b0 ) HZT (m)

I If the initial vector is chosen randomly,just as secure as the original matrix version

Page 112: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 55

Vectorial Zemor-Tillich [PQTZ09]

I [PQTZ09]: the output of ZT is 3n bits while its security is nbits: how to extract the secure bits ?

I Vectorial ZT:I Outputs 2n bitsI For an initial vector ( a0 b0 ) part of the key,

HvecZT (m) = ( a0 b0 ) HZT (m)

I If the initial vector is chosen randomly,just as secure as the original matrix version

Page 113: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 56

Equivalence betweenvectorial and matrix versions

I Suppose ∃ algorithm finding collisions for the vectorial version...

( a0 b0 ) ( a1 b1 )

M10

M11

( a2 b2 )

M20

M21

I Run it on a random ( a0 b0 )to get ( a1 b1 ) := ( a0 b0 ) M10 = ( a0 b0 ) M11

where M10 and M11 are the ZT hash values of the collidingmessages

I Run it on ( a1 b1 ) to get ( a2 b2 ) := ( a1 b1 ) M20 = ( a1 b1 ) M21

I Repeat n + 1 times

Page 114: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 56

Equivalence betweenvectorial and matrix versions

I Suppose ∃ algorithm finding collisions for the vectorial version...

( a0 b0 ) ( a1 b1 )

M10

M11

( a2 b2 )

M20

M21

I Run it on a random ( a0 b0 )to get ( a1 b1 ) := ( a0 b0 ) M10 = ( a0 b0 ) M11

where M10 and M11 are the ZT hash values of the collidingmessages

I Run it on ( a1 b1 ) to get ( a2 b2 ) := ( a1 b1 ) M20 = ( a1 b1 ) M21

I Repeat n + 1 times

Page 115: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 57

Equivalence betweenvectorial and matrix versions

I Key observations

I M1j =(

a−10 b0

0 a0

)(a1 b1

0 a−11

)+ ε1j

(b0a0

)( a1 b1 )

I M1j1M2j2 =(

a−10 b0

0 a0

)(a2 b2

0 a−12

)+ (ε1j1 + ε2j2)

(b0a0

)( a2 b2 )

I “Homomorphism”∏ki=1 Miji =

(a−10 b0

0 a0

)(ak bk

0 a−1k

)+(∑k

i=1 εiji

) (b0a0

)( ak bk )

I To find a collisionI Let εi := εi0 + εi1I Find I ⊂ 1, 2, ..., n + 1 such that

∑i∈I εi = 0

Page 116: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 57

Equivalence betweenvectorial and matrix versions

I Key observations

I M1j =(

a−10 b0

0 a0

)(a1 b1

0 a−11

)+ ε1j

(b0a0

)( a1 b1 )

I M1j1M2j2 =(

a−10 b0

0 a0

)(a2 b2

0 a−12

)+ (ε1j1 + ε2j2)

(b0a0

)( a2 b2 )

I “Homomorphism”∏ki=1 Miji =

(a−10 b0

0 a0

)(ak bk

0 a−1k

)+(∑k

i=1 εiji

) (b0a0

)( ak bk )

I To find a collisionI Let εi := εi0 + εi1I Find I ⊂ 1, 2, ..., n + 1 such that

∑i∈I εi = 0

Page 117: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 57

Equivalence betweenvectorial and matrix versions

I Key observations

I M1j =(

a−10 b0

0 a0

)(a1 b1

0 a−11

)+ ε1j

(b0a0

)( a1 b1 )

I M1j1M2j2 =(

a−10 b0

0 a0

)(a2 b2

0 a−12

)+ (ε1j1 + ε2j2)

(b0a0

)( a2 b2 )

I “Homomorphism”∏ki=1 Miji =

(a−10 b0

0 a0

)(ak bk

0 a−1k

)+(∑k

i=1 εiji

) (b0a0

)( ak bk )

I To find a collisionI Let εi := εi0 + εi1I Find I ⊂ 1, 2, ..., n + 1 such that

∑i∈I εi = 0

Page 118: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 57

Equivalence betweenvectorial and matrix versions

I Key observations

I M1j =(

a−10 b0

0 a0

)(a1 b1

0 a−11

)+ ε1j

(b0a0

)( a1 b1 )

I M1j1M2j2 =(

a−10 b0

0 a0

)(a2 b2

0 a−12

)+ (ε1j1 + ε2j2)

(b0a0

)( a2 b2 )

I “Homomorphism”∏ki=1 Miji =

(a−10 b0

0 a0

)(ak bk

0 a−1k

)+(∑k

i=1 εiji

) (b0a0

)( ak bk )

I To find a collisionI Let εi := εi0 + εi1I Find I ⊂ 1, 2, ..., n + 1 such that

∑i∈I εi = 0

Page 119: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 58

Equivalence betweenvectorial and matrix versions

I Colliding messages:I m = m10||m20||...||mn+1,0

I m′ = m1e1 ||m2e2 ||...||mn+1,en+1 where ei = 1 if i ∈ I

I The two messages collide to the value

HZT (m) =(

a−10 b0

0 a0

)(an+1 bn+1

0 a−1n+1

)+

(n+1∑i=1

εi0

)(b0a0

)( an+1 bn+1 )

= HZT (m′)

Page 120: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 59

Projective Zemor-Tillich [PQTZ09]

I [PQTZ09]: the output of ZT is 3n bits while its security is nbits: how to extract the secure bits ?

I Projective ZT:I Outputs n bitsI Returns [a : b] ∈ P1(F2n) if the vectorial version returns ( a b )

I If the initial vector is chosen randomly,“nearly” as secure as the original matrix version

Page 121: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 59

Projective Zemor-Tillich [PQTZ09]

I [PQTZ09]: the output of ZT is 3n bits while its security is nbits: how to extract the secure bits ?

I Projective ZT:I Outputs n bitsI Returns [a : b] ∈ P1(F2n) if the vectorial version returns ( a b )

I If the initial vector is chosen randomly,“nearly” as secure as the original matrix version

Page 122: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 59

Projective Zemor-Tillich [PQTZ09]

I [PQTZ09]: the output of ZT is 3n bits while its security is nbits: how to extract the secure bits ?

I Projective ZT:I Outputs n bitsI Returns [a : b] ∈ P1(F2n) if the vectorial version returns ( a b )

I If the initial vector is chosen randomly,“nearly” as secure as the original matrix version

Page 123: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 60

“Quasi” equivalence betweenprojective and vectorial versions

I Suppose ∃ algorithm finding collision for the projective version...

I Run it on ( a00 b00 ) to get ( a10 b10 ) and ( a11 b11 ) = λ1 ( a10 b10 )I Run it on ( a10 b10 ) to get ( a20 b20 ) and ( a21 b21 ) = λ2 ( a20 b20 )I After n′ steps, find I ⊂ 1, 2, ..., n′ such that

∏i∈I λi = 1

I Complexity of last stepI Hard asymptotically

n′ discrete logarithms problems + one subset sum problemI Feasible for n ≤ 170

Page 124: On expander hash functions

UCL Crypto GroupMicroelectronics Laboratory PhD private defense - March 2009 60

“Quasi” equivalence betweenprojective and vectorial versions

I Suppose ∃ algorithm finding collision for the projective version...

I Run it on ( a00 b00 ) to get ( a10 b10 ) and ( a11 b11 ) = λ1 ( a10 b10 )I Run it on ( a10 b10 ) to get ( a20 b20 ) and ( a21 b21 ) = λ2 ( a20 b20 )I After n′ steps, find I ⊂ 1, 2, ..., n′ such that

∏i∈I λi = 1

I Complexity of last stepI Hard asymptotically

n′ discrete logarithms problems + one subset sum problemI Feasible for n ≤ 170