Revisiting Counter Mode to Repair Galois/Counter Mode Bo Zhu, Yin - - PowerPoint PPT Presentation

revisiting counter mode to repair galois counter mode
SMART_READER_LITE
LIVE PREVIEW

Revisiting Counter Mode to Repair Galois/Counter Mode Bo Zhu, Yin - - PowerPoint PPT Presentation

Intro Repairing GCM Simeck Design Summery Revisiting Counter Mode to Repair Galois/Counter Mode Bo Zhu, Yin Tan and Guang Gong University of Waterloo, Canada Aug 12, 2013 1 of 32 Revisiting CM to Repair GCM Intro Repairing GCM Simeck


slide-1
SLIDE 1

Intro Repairing GCM Simeck Design Summery

Revisiting Counter Mode to Repair Galois/Counter Mode

Bo Zhu, Yin Tan and Guang Gong University of Waterloo, Canada

Aug 12, 2013

1 of 32 Revisiting CM to Repair GCM

slide-2
SLIDE 2

Intro Repairing GCM Simeck Design Summery

Revisiting Counter Mode to Repair Galois/Counter Mode and Simeck: An Authenticated Cipher Design

Bo Zhu, Yin Tan and Guang Gong University of Waterloo, Canada

Aug 12, 2013

2 of 32 Revisiting CM to Repair GCM, and Simeck

slide-3
SLIDE 3

Intro Repairing GCM Simeck Design Summery

Motivations

◮ To study existing modes of operations

◮ Before designing authenticated ciphers 3 of 32 Revisiting CM to Repair GCM, and Simeck

slide-4
SLIDE 4

Intro Repairing GCM Simeck Design Summery

Motivations

◮ To study existing modes of operations

◮ Before designing authenticated ciphers ◮ Recent attacks on GCM ◮ A flaw found in GCM’s security proofs in Crypto’12 ◮ Forgery attacks in FSE’12 and FSE’13 3 of 32 Revisiting CM to Repair GCM, and Simeck

slide-5
SLIDE 5

Intro Repairing GCM Simeck Design Summery

Motivations

◮ To study existing modes of operations

◮ Before designing authenticated ciphers ◮ Recent attacks on GCM ◮ A flaw found in GCM’s security proofs in Crypto’12 ◮ Forgery attacks in FSE’12 and FSE’13

◮ To study lightweight cipher designs

◮ To use with mode of operation 3 of 32 Revisiting CM to Repair GCM, and Simeck

slide-6
SLIDE 6

Intro Repairing GCM Simeck Design Summery

Motivations

◮ To study existing modes of operations

◮ Before designing authenticated ciphers ◮ Recent attacks on GCM ◮ A flaw found in GCM’s security proofs in Crypto’12 ◮ Forgery attacks in FSE’12 and FSE’13

◮ To study lightweight cipher designs

◮ To use with mode of operation ◮ Two block ciphers designed by people from NSA 3 of 32 Revisiting CM to Repair GCM, and Simeck

slide-7
SLIDE 7

Intro Repairing GCM Simeck Design Summery

Outline

Intro to Galois/Counter Mode Repairing Galois/Counter Mode The flaw in GCM’s proofs discovered by Iwata et al. A fix to GCM’s security proofs and bounds Simeck: A Simple Authenticated Cipher Design Design Rationales Specifications Summery and Future Work

4 of 32 Revisiting CM to Repair GCM, and Simeck

slide-8
SLIDE 8

Intro Repairing GCM Simeck Design Summery

Outline

Intro to Galois/Counter Mode Repairing Galois/Counter Mode The flaw in GCM’s proofs discovered by Iwata et al. A fix to GCM’s security proofs and bounds Simeck: A Simple Authenticated Cipher Design Design Rationales Specifications Summery and Future Work

5 of 32 Revisiting CM to Repair GCM, and Simeck

slide-9
SLIDE 9

Intro Repairing GCM Simeck Design Summery

Galois/Counter Mode (GCM)

◮ One design of AEAD by McGrew and Viega in 2005

◮ Counter Mode (CM) for encryption ◮ Galois MAC (GMAC) for authentication

◮ GCM comparing to CCM (CM + CBC-MAC)

◮ Less popular than CCM for historical reasons ◮ Supported by OpenSSH from v6.2 (March 2013) ◮ Incluced in NSA Suite B (CCM isn’t in) ◮ Suite A is classified ◮ Parallelizable computation 6 of 32 Revisiting CM to Repair GCM, and Simeck

slide-10
SLIDE 10

Intro Repairing GCM Simeck Design Summery

Authentication by Galois MAC (GMAC)

Additions and multiplications in GF(2128)

◮ Authentication key: H = EK(0)

The image is from Procter and Cid’s slides in FSE’13. 7 of 32 Revisiting CM to Repair GCM, and Simeck

slide-11
SLIDE 11

Intro Repairing GCM Simeck Design Summery

Polynomial Based GHASH

◮ GMAC = GHASH(H, A, C) + EK(IV ) ◮ GHASH

hH(M) =

m

  • i=1

Mi × Hm−i+1 = gM(H)

◮ Note: constant term is zero

8 of 32 Revisiting CM to Repair GCM, and Simeck

slide-12
SLIDE 12

Intro Repairing GCM Simeck Design Summery

Encryption in Counter Mode (CM)

The image is from Saarinen’s paper in FSE’12. 9 of 32 Revisiting CM to Repair GCM, and Simeck

slide-13
SLIDE 13

Intro Repairing GCM Simeck Design Summery

Counter Generation

◮ Initial counter

◮ N0 = IV ||032, if len(IV ) = 96 ◮ N0 = GHASHH(IV ), if len(IV ) = 96 10 of 32 Revisiting CM to Repair GCM, and Simeck

slide-14
SLIDE 14

Intro Repairing GCM Simeck Design Summery

Counter Generation

◮ Initial counter

◮ N0 = IV ||032, if len(IV ) = 96 ◮ N0 = GHASHH(IV ), if len(IV ) = 96

◮ Generating counters

Nr+1 = msb96(Nr)||lsb32(Nr) ⊞ 1

10 of 32 Revisiting CM to Repair GCM, and Simeck

slide-15
SLIDE 15

Intro Repairing GCM Simeck Design Summery

Counter Generation

◮ Initial counter

◮ N0 = IV ||032, if len(IV ) = 96 ◮ N0 = GHASHH(IV ), if len(IV ) = 96

◮ Generating counters

Nr+1 = msb96(Nr)||lsb32(Nr) ⊞ 1

◮ Security of GCM highly depends the prob of counter collisions

◮ N′

0 = N′′ 0 ,

N′

r1 = N′′ r2

10 of 32 Revisiting CM to Repair GCM, and Simeck

slide-16
SLIDE 16

Intro Repairing GCM Simeck Design Summery

Counter Generation

◮ Initial counter

◮ N0 = IV ||032, if len(IV ) = 96 ◮ N0 = GHASHH(IV ), if len(IV ) = 96

◮ Generating counters

Nr+1 = msb96(Nr)||lsb32(Nr) ⊞ 1

◮ Security of GCM highly depends the prob of counter collisions

◮ N′

0 = N′′ 0 ,

N′

r1 = N′′ r2

◮ if len(IV ) = 96,

GHASH(IV1) = GHASH(IV2), GHASH(IV1) ⊞ r1 = GHASH(IV2) ⊞ r2

10 of 32 Revisiting CM to Repair GCM, and Simeck

slide-17
SLIDE 17

Intro Repairing GCM Simeck Design Summery

Counter Generation

◮ Initial counter

◮ N0 = IV ||032, if len(IV ) = 96 ◮ N0 = GHASHH(IV ), if len(IV ) = 96

◮ Generating counters

Nr+1 = msb96(Nr)||lsb32(Nr) ⊞ 1

◮ Security of GCM highly depends the prob of counter collisions

◮ N′

0 = N′′ 0 ,

N′

r1 = N′′ r2

◮ if len(IV ) = 96,

GHASH(IV1) = GHASH(IV2), GHASH(IV1) ⊞ r1 = GHASH(IV2) ⊞ r2

◮ GHASH(IV1) ⊞ (r1 − r2) = GHASH(IV2) 10 of 32 Revisiting CM to Repair GCM, and Simeck

slide-18
SLIDE 18

Intro Repairing GCM Simeck Design Summery

Counter Generation (Cont.)

GHASH(IV1) ⊞ r = GHASH(IV2) hH(IV1) ⊞ r = hH(IV2)

11 of 32 Revisiting CM to Repair GCM, and Simeck

slide-19
SLIDE 19

Intro Repairing GCM Simeck Design Summery

Counter Generation (Cont.)

GHASH(IV1) ⊞ r = GHASH(IV2) hH(IV1) ⊞ r = hH(IV2) gIV1(H) ⊞ r = gIV2(H)

11 of 32 Revisiting CM to Repair GCM, and Simeck

slide-20
SLIDE 20

Intro Repairing GCM Simeck Design Summery

Counter Generation (Cont.)

GHASH(IV1) ⊞ r = GHASH(IV2) hH(IV1) ⊞ r = hH(IV2) gIV1(H) ⊞ r = gIV2(H)

◮ For a randomly chosen H, the collision prob is

#{x : x ∈ GF(2128)|gIV 1(x) ⊞ r = gIV 2(x)} 2128

11 of 32 Revisiting CM to Repair GCM, and Simeck

slide-21
SLIDE 21

Intro Repairing GCM Simeck Design Summery

Counter Generation (Cont.)

GHASH(IV1) ⊞ r = GHASH(IV2) hH(IV1) ⊞ r = hH(IV2) gIV1(H) ⊞ r = gIV2(H)

◮ For a randomly chosen H, the collision prob is

#{x : x ∈ GF(2128)|gIV 1(x) ⊞ r = gIV 2(x)} 2128

◮ In the original security proofs of GCM, it was believed

gIV1(x) ⊞ r = gIV2(x) has the same number of solutions as gIV1(x) ⊕ r = gIV2(x)

11 of 32 Revisiting CM to Repair GCM, and Simeck

slide-22
SLIDE 22

Intro Repairing GCM Simeck Design Summery

Counter Generation (Cont.)

GHASH(IV1) ⊞ r = GHASH(IV2) hH(IV1) ⊞ r = hH(IV2) gIV1(H) ⊞ r = gIV2(H)

◮ For a randomly chosen H, the collision prob is

#{x : x ∈ GF(2128)|gIV 1(x) ⊞ r = gIV 2(x)} 2128

◮ In the original security proofs of GCM, it was believed

gIV1(x) ⊞ r = gIV2(x) has the same number of solutions as gIV1(x) ⊕ r = gIV2(x) which is upper-bounded by max{deg(gIV1(x)), deg(gIV2(x))} = max{len(IV1), len(IV2)} + 1

11 of 32 Revisiting CM to Repair GCM, and Simeck

slide-23
SLIDE 23

Intro Repairing GCM Simeck Design Summery Provable Security Reparing GCM

Outline

Intro to Galois/Counter Mode Repairing Galois/Counter Mode The flaw in GCM’s proofs discovered by Iwata et al. A fix to GCM’s security proofs and bounds Simeck: A Simple Authenticated Cipher Design Design Rationales Specifications Summery and Future Work

12 of 32 Revisiting CM to Repair GCM, and Simeck

slide-24
SLIDE 24

Intro Repairing GCM Simeck Design Summery Provable Security Reparing GCM

Problem in Nr ⊞ 1

◮ Pointed out by Iwata et al. in Crypto’12 ◮ Nr ⊞ 1 is non-linear in Galois field ◮

f (x) ⊞ r = g(x) can be converted to multiple forms of equations in GF

13 of 32 Revisiting CM to Repair GCM, and Simeck

slide-25
SLIDE 25

Intro Repairing GCM Simeck Design Summery Provable Security Reparing GCM

Problem in Nr ⊞ 1

◮ Pointed out by Iwata et al. in Crypto’12 ◮ Nr ⊞ 1 is non-linear in Galois field ◮

f (x) ⊞ r = g(x) can be converted to multiple forms of equations in GF

◮ Much more solutions than expected

max{len(IV1), len(IV2)} + 1

◮ αr times more solutions

◮ for r < 232, αr is up to 222

αr · (max{len(IV1), len(IV2)} + 1) ≤ 222 · (max{len(IV1), len(IV2)} + 1)

13 of 32 Revisiting CM to Repair GCM, and Simeck

slide-26
SLIDE 26

Intro Repairing GCM Simeck Design Summery Provable Security Reparing GCM

Actual Security Bounds of GCM

◮ New security bounds of GCM were also given by Iwata et al.

◮ for both of privacy (encryption) and authenticity (MAC) ◮ almost 222 looser than originally claimed 14 of 32 Revisiting CM to Repair GCM, and Simeck

slide-27
SLIDE 27

Intro Repairing GCM Simeck Design Summery Provable Security Reparing GCM

Actual Security Bounds of GCM

◮ New security bounds of GCM were also given by Iwata et al.

◮ for both of privacy (encryption) and authenticity (MAC) ◮ almost 222 looser than originally claimed

◮ It would be better to repair GCM s.t.

◮ retain the original bounds, and ◮ leave original proofs largely unchanged ◮ with a small fix to the original design 14 of 32 Revisiting CM to Repair GCM, and Simeck

slide-28
SLIDE 28

Intro Repairing GCM Simeck Design Summery Provable Security Reparing GCM

Revisiting Counter Mode

◮ In CM, counter is incremented by 1, i.e.

next(counter) = counter ⊞ 1

15 of 32 Revisiting CM to Repair GCM, and Simeck

slide-29
SLIDE 29

Intro Repairing GCM Simeck Design Summery Provable Security Reparing GCM

Revisiting Counter Mode

◮ In CM, counter is incremented by 1, i.e.

next(counter) = counter ⊞ 1

◮ CM is secure if next() outputs uniquely

◮ next() is indistinguishable if the underlying block cipher is

secure

15 of 32 Revisiting CM to Repair GCM, and Simeck

slide-30
SLIDE 30

Intro Repairing GCM Simeck Design Summery Provable Security Reparing GCM

Revisiting Counter Mode

◮ In CM, counter is incremented by 1, i.e.

next(counter) = counter ⊞ 1

◮ CM is secure if next() outputs uniquely

◮ next() is indistinguishable if the underlying block cipher is

secure

◮ McGrew, Counter Mode Security: Analysis and

Recommendations, 2002

◮ The details of the next-counter function are unimportant; ◮ That function does not provide any security properties other

than the uniqueness of the inputs to the block cipher.

15 of 32 Revisiting CM to Repair GCM, and Simeck

slide-31
SLIDE 31

Intro Repairing GCM Simeck Design Summery Provable Security Reparing GCM

Revisiting Counter Mode

◮ In CM, counter is incremented by 1, i.e.

next(counter) = counter ⊞ 1

◮ CM is secure if next() outputs uniquely

◮ next() is indistinguishable if the underlying block cipher is

secure

◮ McGrew, Counter Mode Security: Analysis and

Recommendations, 2002

◮ The details of the next-counter function are unimportant; ◮ That function does not provide any security properties other

than the uniqueness of the inputs to the block cipher.

◮ Design a different next() to “fix” GCM?

15 of 32 Revisiting CM to Repair GCM, and Simeck

slide-32
SLIDE 32

Intro Repairing GCM Simeck Design Summery Provable Security Reparing GCM

Requirements of next()

  • 1. Cyclic permutation with one circle

◮ non-repeating 16 of 32 Revisiting CM to Repair GCM, and Simeck

slide-33
SLIDE 33

Intro Repairing GCM Simeck Design Summery Provable Security Reparing GCM

Requirements of next()

  • 1. Cyclic permutation with one circle

◮ non-repeating

  • 2. Number of solutions for

nextr(f (x)) = g(x) should be as small as possible compared to max{deg(f ), deg(g)}

◮ To reduce counter collision probability 16 of 32 Revisiting CM to Repair GCM, and Simeck

slide-34
SLIDE 34

Intro Repairing GCM Simeck Design Summery Provable Security Reparing GCM

Requirements of next()

  • 1. Cyclic permutation with one circle

◮ non-repeating

  • 2. Number of solutions for

nextr(f (x)) = g(x) should be as small as possible compared to max{deg(f ), deg(g)}

◮ To reduce counter collision probability

  • 3. nextr1(f (x)) = nextr2(g(x)) ⇔ nextr1⊟r2(f (x)) = g(x)

◮ e.g., f (x) ⊞ r1 = g(x) ⊞ r2 ⇔ f (x) ⊞ (r1 ⊟ r2) = g(x) ◮ to keep the original proofs largely unchanged 16 of 32 Revisiting CM to Repair GCM, and Simeck

slide-35
SLIDE 35

Intro Repairing GCM Simeck Design Summery Provable Security Reparing GCM

Designing next()

Consider the two basic operations that won’t increase degrees of f (x) and g(x)

◮ addition, i.e. XOR

17 of 32 Revisiting CM to Repair GCM, and Simeck

slide-36
SLIDE 36

Intro Repairing GCM Simeck Design Summery Provable Security Reparing GCM

Designing next()

Consider the two basic operations that won’t increase degrees of f (x) and g(x)

◮ addition, i.e. XOR

◮ not a permutation 17 of 32 Revisiting CM to Repair GCM, and Simeck

slide-37
SLIDE 37

Intro Repairing GCM Simeck Design Summery Provable Security Reparing GCM

Designing next()

Consider the two basic operations that won’t increase degrees of f (x) and g(x)

◮ addition, i.e. XOR

◮ not a permutation ◮ unless defined as next(N, r) = N ⊕ r, with r as another input 17 of 32 Revisiting CM to Repair GCM, and Simeck

slide-38
SLIDE 38

Intro Repairing GCM Simeck Design Summery Provable Security Reparing GCM

Designing next()

Consider the two basic operations that won’t increase degrees of f (x) and g(x)

◮ addition, i.e. XOR

◮ not a permutation ◮ unless defined as next(N, r) = N ⊕ r, with r as another input ◮ but f ⊕ r1 = g ⊕ r2

  • =

⇒ f ⊕ (r1 ⊟ r2) = g

◮ e.g., f ⊕ 2 = g ⊕ 1

  • =

⇒ f ⊕ (2 ⊟ 1) = f ⊕ 1 = g

17 of 32 Revisiting CM to Repair GCM, and Simeck

slide-39
SLIDE 39

Intro Repairing GCM Simeck Design Summery Provable Security Reparing GCM

Designing next()

Consider the two basic operations that won’t increase degrees of f (x) and g(x)

◮ addition, i.e. XOR

◮ not a permutation ◮ unless defined as next(N, r) = N ⊕ r, with r as another input ◮ but f ⊕ r1 = g ⊕ r2

  • =

⇒ f ⊕ (r1 ⊟ r2) = g

◮ e.g., f ⊕ 2 = g ⊕ 1

  • =

⇒ f ⊕ (2 ⊟ 1) = f ⊕ 1 = g

◮ multiplication, by a constant

◮ multiplying with a primitive element w 17 of 32 Revisiting CM to Repair GCM, and Simeck

slide-40
SLIDE 40

Intro Repairing GCM Simeck Design Summery Provable Security Reparing GCM

Designing next()

Consider the two basic operations that won’t increase degrees of f (x) and g(x)

◮ addition, i.e. XOR

◮ not a permutation ◮ unless defined as next(N, r) = N ⊕ r, with r as another input ◮ but f ⊕ r1 = g ⊕ r2

  • =

⇒ f ⊕ (r1 ⊟ r2) = g

◮ e.g., f ⊕ 2 = g ⊕ 1

  • =

⇒ f ⊕ (2 ⊟ 1) = f ⊕ 1 = g

◮ multiplication, by a constant

◮ multiplying with a primitive element w ◮ w r1f = w r2g =

⇒ w r1⊟r2f = g

17 of 32 Revisiting CM to Repair GCM, and Simeck

slide-41
SLIDE 41

Intro Repairing GCM Simeck Design Summery Provable Security Reparing GCM

Designing next()

Consider the two basic operations that won’t increase degrees of f (x) and g(x)

◮ addition, i.e. XOR

◮ not a permutation ◮ unless defined as next(N, r) = N ⊕ r, with r as another input ◮ but f ⊕ r1 = g ⊕ r2

  • =

⇒ f ⊕ (r1 ⊟ r2) = g

◮ e.g., f ⊕ 2 = g ⊕ 1

  • =

⇒ f ⊕ (2 ⊟ 1) = f ⊕ 1 = g

◮ multiplication, by a constant

◮ multiplying with a primitive element w ◮ w r1f = w r2g =

⇒ w r1⊟r2f = g

◮ cyclic permutation with two cycles ◮ {1, w, w 2, · · · , w 2n−2}, and {0} 17 of 32 Revisiting CM to Repair GCM, and Simeck

slide-42
SLIDE 42

Intro Repairing GCM Simeck Design Summery Provable Security Reparing GCM

Merging Two Circles into One

Lw(x) =      if x = w2n−2, 1 if x = 0, w · x

  • therwise.

18 of 32 Revisiting CM to Repair GCM, and Simeck

slide-43
SLIDE 43

Intro Repairing GCM Simeck Design Summery Provable Security Reparing GCM

Merging Two Circles into One

Lw(x) =      if x = w2n−2, 1 if x = 0, w · x

  • therwise.

◮ Lw(x) is full-cycle permutation

18 of 32 Revisiting CM to Repair GCM, and Simeck

slide-44
SLIDE 44

Intro Repairing GCM Simeck Design Summery Provable Security Reparing GCM

Merging Two Circles into One

Lw(x) =      if x = w2n−2, 1 if x = 0, w · x

  • therwise.

◮ Lw(x) is full-cycle permutation ◮ Lr1 w(f (x)) = Lr2 w(g(x)) ⇔ Lr1⊟r2 w

(f (x)) = g(x)

18 of 32 Revisiting CM to Repair GCM, and Simeck

slide-45
SLIDE 45

Intro Repairing GCM Simeck Design Summery Provable Security Reparing GCM

Merging Two Circles into One

Lw(x) =      if x = w2n−2, 1 if x = 0, w · x

  • therwise.

◮ Lw(x) is full-cycle permutation ◮ Lr1 w(f (x)) = Lr2 w(g(x)) ⇔ Lr1⊟r2 w

(f (x)) = g(x)

◮ Next, to investigate the number of solutions for

Lr

w(f (x)) = g(x)

18 of 32 Revisiting CM to Repair GCM, and Simeck

slide-46
SLIDE 46

Intro Repairing GCM Simeck Design Summery Provable Security Reparing GCM

Lr

w(f (x)) = g(x)

  • 1. If f (x) = 0,

1.1 If Lr

w(f (x)) = 0, then g(x) = 0.

19 of 32 Revisiting CM to Repair GCM, and Simeck

slide-47
SLIDE 47

Intro Repairing GCM Simeck Design Summery Provable Security Reparing GCM

Lr

w(f (x)) = g(x)

  • 1. If f (x) = 0,

1.1 If Lr

w(f (x)) = 0, then g(x) = 0.

1.2 If Lr

w(f (x)) = 0, then g(x) = w r−1.

19 of 32 Revisiting CM to Repair GCM, and Simeck

slide-48
SLIDE 48

Intro Repairing GCM Simeck Design Summery Provable Security Reparing GCM

Lr

w(f (x)) = g(x)

  • 1. If f (x) = 0,

1.1 If Lr

w(f (x)) = 0, then g(x) = 0.

1.2 If Lr

w(f (x)) = 0, then g(x) = w r−1.

  • 2. If f (x) = 0,

2.1 If Lr

w(f (x)) = 0, then g(x) = 0.

19 of 32 Revisiting CM to Repair GCM, and Simeck

slide-49
SLIDE 49

Intro Repairing GCM Simeck Design Summery Provable Security Reparing GCM

Lr

w(f (x)) = g(x)

  • 1. If f (x) = 0,

1.1 If Lr

w(f (x)) = 0, then g(x) = 0.

1.2 If Lr

w(f (x)) = 0, then g(x) = w r−1.

  • 2. If f (x) = 0,

2.1 If Lr

w(f (x)) = 0, then g(x) = 0.

2.2 If Lr

w(f (x)) = 0, let f (x) = w r1 and Lr w(f (x)) = w r2, where

0 ≤ r1, r2 < 2n − 1. Then we have

2.2.1 If r1 ≤ r2, then w rf (x) = g(x). 2.2.2 If r1 > r2, then w r−1f (x) = g(x).

19 of 32 Revisiting CM to Repair GCM, and Simeck

slide-50
SLIDE 50

Intro Repairing GCM Simeck Design Summery Provable Security Reparing GCM

Lr

w(f (x)) = g(x)

  • 1. If f (x) = 0,

1.1 If Lr

w(f (x)) = 0, then g(x) = 0.

1.2 If Lr

w(f (x)) = 0, then g(x) = w r−1.

  • 2. If f (x) = 0,

2.1 If Lr

w(f (x)) = 0, then g(x) = 0.

2.2 If Lr

w(f (x)) = 0, let f (x) = w r1 and Lr w(f (x)) = w r2, where

0 ≤ r1, r2 < 2n − 1. Then we have

2.2.1 If r1 ≤ r2, then w rf (x) = g(x). 2.2.2 If r1 > r2, then w r−1f (x) = g(x).

x must be a root of one of        g(x) = 0, g(x) = wr−1, wrf (x) = g(x), wr−1f (x) = g(x). So #solutions ≤ 4 · (max{deg(f ), deg(g)}).

19 of 32 Revisiting CM to Repair GCM, and Simeck

slide-51
SLIDE 51

Intro Repairing GCM Simeck Design Summery Provable Security Reparing GCM

LGCM – Revised GCM

◮ Replacing counter ⊞ 1 by Lw

N0 = GHASHH(IV ) Ni = Li

w(N0) ◮ The upper bound of counter collision will decrease

◮ from 222d to 22d

◮ Tighten the bounds of GCM by around 220 (1 million) times

◮ Both privacy and authenticity 20 of 32 Revisiting CM to Repair GCM, and Simeck

slide-52
SLIDE 52

Intro Repairing GCM Simeck Design Summery Provable Security Reparing GCM

For Timing-based Side-channel

Lw(x) =      if x = w2n−2, 1 if x = 0, w · x

  • therwise.

can change to y = w · x, Lw(x) =      1 if y = 0, if y = 1, y

  • therwise.

21 of 32 Revisiting CM to Repair GCM, and Simeck

slide-53
SLIDE 53

Intro Repairing GCM Simeck Design Summery Design Rationales Specifications

Outline

Intro to Galois/Counter Mode Repairing Galois/Counter Mode The flaw in GCM’s proofs discovered by Iwata et al. A fix to GCM’s security proofs and bounds Simeck: A Simple Authenticated Cipher Design Design Rationales Specifications Summery and Future Work

22 of 32 Revisiting CM to Repair GCM, and Simeck

slide-54
SLIDE 54

Intro Repairing GCM Simeck Design Summery Design Rationales Specifications

Simeck: An Authenticated Cipher Design

◮ LGCM + a lightweight block cipher

23 of 32 Revisiting CM to Repair GCM, and Simeck

slide-55
SLIDE 55

Intro Repairing GCM Simeck Design Summery Design Rationales Specifications

Simeck: An Authenticated Cipher Design

◮ LGCM + a lightweight block cipher ◮ Specs of the block cipher in one tweet (140 chars) ◮ tweetcipher designed by Aumasson needs 6 tweets

23 of 32 Revisiting CM to Repair GCM, and Simeck

slide-56
SLIDE 56

Intro Repairing GCM Simeck Design Summery Design Rationales Specifications 24 of 32 Revisiting CM to Repair GCM, and Simeck

slide-57
SLIDE 57

Intro Repairing GCM Simeck Design Summery Design Rationales Specifications

Block Cipher Design

◮ Consider the two block ciphers designed by Beaulieu et al.

from NSA

◮ hardware-optimized cipher Simon ◮ software-optimized cipher Speck 25 of 32 Revisiting CM to Repair GCM, and Simeck

slide-58
SLIDE 58

Intro Repairing GCM Simeck Design Summery Design Rationales Specifications

Block Cipher Design

◮ Consider the two block ciphers designed by Beaulieu et al.

from NSA

◮ hardware-optimized cipher Simon ◮ software-optimized cipher Speck

◮ Design comparisons

◮ Round function, both Feistel-like network

Simon Use AND for efficiency of hardware Speck ARX construction; decryption cannot reuse encryption functions

25 of 32 Revisiting CM to Repair GCM, and Simeck

slide-59
SLIDE 59

Intro Repairing GCM Simeck Design Summery Design Rationales Specifications

Block Cipher Design

◮ Consider the two block ciphers designed by Beaulieu et al.

from NSA

◮ hardware-optimized cipher Simon ◮ software-optimized cipher Speck

◮ Design comparisons

◮ Round function, both Feistel-like network

Simon Use AND for efficiency of hardware Speck ARX construction; decryption cannot reuse encryption functions

◮ Key schedule

Simon Linear operations with constant sequences Speck Cleverly reuse round function

25 of 32 Revisiting CM to Repair GCM, and Simeck

slide-60
SLIDE 60

Intro Repairing GCM Simeck Design Summery Design Rationales Specifications

Block Cipher Design

◮ Consider the two block ciphers designed by Beaulieu et al.

from NSA

◮ hardware-optimized cipher Simon ◮ software-optimized cipher Speck

◮ Design comparisons

◮ Round function, both Feistel-like network

Simon Use AND for efficiency of hardware Speck ARX construction; decryption cannot reuse encryption functions

◮ Key schedule

Simon Linear operations with constant sequences Speck Cleverly reuse round function

◮ How about we combine them two?

25 of 32 Revisiting CM to Repair GCM, and Simeck

slide-61
SLIDE 61

Intro Repairing GCM Simeck Design Summery Design Rationales Specifications

Simeck = Simon + Speck

◮ Combine the efficient designs

◮ Round function of Simon ◮ Key schedule of Speck

◮ Minimal design

◮ Keep the design as simple as possible ◮ If we could find attacks on the mini design ◮ Get attacks on Simon and/or Speck ◮ or understand more about Simon and Speck ◮ Get a fairly good authenticated cipher design

if no serious attack is found

26 of 32 Revisiting CM to Repair GCM, and Simeck

slide-62
SLIDE 62

Intro Repairing GCM Simeck Design Summery Design Rationales Specifications

Simeck Round function

Simplified from Simon

◮ Remove S1 ◮ Change S8 to S5, S2 to S1

The left image is from the Simon and Speck design paper. 27 of 32 Revisiting CM to Repair GCM, and Simeck

slide-63
SLIDE 63

Intro Repairing GCM Simeck Design Summery Design Rationales Specifications

Simeck Key Schedule

Learn from Speck

The image is from the Simon and Speck design paper. 28 of 32 Revisiting CM to Repair GCM, and Simeck

slide-64
SLIDE 64

Intro Repairing GCM Simeck Design Summery Design Rationales Specifications

Parameters and Performance

◮ 128-bit block cipher, compatible with LGCM ◮ 128/196/254 bits for master keys ◮ 32/48/64 rounds for security-levels

29 of 32 Revisiting CM to Repair GCM, and Simeck

slide-65
SLIDE 65

Intro Repairing GCM Simeck Design Summery Design Rationales Specifications

Parameters and Performance

◮ 128-bit block cipher, compatible with LGCM ◮ 128/196/254 bits for master keys ◮ 32/48/64 rounds for security-levels ◮ Hardware implementation

◮ Reuse the round function in key schedule ◮ Less bits of rotations ◮ Smaller footprint than hardware-optimized Simon 29 of 32 Revisiting CM to Repair GCM, and Simeck

slide-66
SLIDE 66

Intro Repairing GCM Simeck Design Summery Design Rationales Specifications

Parameters and Performance

◮ 128-bit block cipher, compatible with LGCM ◮ 128/196/254 bits for master keys ◮ 32/48/64 rounds for security-levels ◮ Hardware implementation

◮ Reuse the round function in key schedule ◮ Less bits of rotations ◮ Smaller footprint than hardware-optimized Simon

◮ Software implementation

◮ Comparable software performance with software-oriented Speck ◮ Decryption can reuse encryption round function ◮ Small code size (ROM) for software 29 of 32 Revisiting CM to Repair GCM, and Simeck

slide-67
SLIDE 67

Intro Repairing GCM Simeck Design Summery Design Rationales Specifications

Parameters and Performance

◮ 128-bit block cipher, compatible with LGCM ◮ 128/196/254 bits for master keys ◮ 32/48/64 rounds for security-levels ◮ Hardware implementation

◮ Reuse the round function in key schedule ◮ Less bits of rotations ◮ Smaller footprint than hardware-optimized Simon

◮ Software implementation

◮ Comparable software performance with software-oriented Speck ◮ Decryption can reuse encryption round function ◮ Small code size (ROM) for software

◮ Compact and clean specification (in one tweet!)

◮ Ideal for “lazy” programmers ◮ Neither Simon, nor Speck can fit into 140 chars 29 of 32 Revisiting CM to Repair GCM, and Simeck

slide-68
SLIDE 68

Intro Repairing GCM Simeck Design Summery

Outline

Intro to Galois/Counter Mode Repairing Galois/Counter Mode The flaw in GCM’s proofs discovered by Iwata et al. A fix to GCM’s security proofs and bounds Simeck: A Simple Authenticated Cipher Design Design Rationales Specifications Summery and Future Work

30 of 32 Revisiting CM to Repair GCM, and Simeck

slide-69
SLIDE 69

Intro Repairing GCM Simeck Design Summery

Summery and Future Work

◮ Repairing GCM

◮ Merging two cycles by Lw ◮ Consider cyclic permutation polynomials? ◮ Redo proofs and recompute bounds with other fixes?

◮ Designing Simeck

◮ Ideas/designs from Simon and Speck ◮ To attack Simeck? ◮ More efficient mode of operation than GCM? 31 of 32 Revisiting CM to Repair GCM, and Simeck

slide-70
SLIDE 70

Intro Repairing GCM Simeck Design Summery

Thanks for your attention!

32 of 32 Revisiting CM to Repair GCM, and Simeck