Attacks only get better: The case of OCB2 Tetsu Iwata Nagoya - - PowerPoint PPT Presentation

attacks only get better the case of ocb2
SMART_READER_LITE
LIVE PREVIEW

Attacks only get better: The case of OCB2 Tetsu Iwata Nagoya - - PowerPoint PPT Presentation

Attacks only get better: The case of OCB2 Tetsu Iwata Nagoya University Real World Crypto 2020, New York, USA January 810, 2020 1 / 28 This talk is based on Akiko Inoue, Tetsu Iwata, Kazuhiko Minematsu, and Bertram Poettering


slide-1
SLIDE 1

Attacks only get better: The case of OCB2

Tetsu Iwata

Nagoya University

Real World Crypto 2020, New York, USA January 8–10, 2020

1 / 28

slide-2
SLIDE 2

This talk is based on

  • Akiko Inoue, Tetsu Iwata, Kazuhiko Minematsu, and Bertram Poettering
  • Cryptanalysis of OCB2: Attacks on Authenticity and Confidentiality, CRYPTO 2019
  • Cryptology ePrint Archive: Report 2019/311

2 / 28

slide-3
SLIDE 3

Penguin

Image: Larry Ewing, lewing@isc.tamu.edu, created with the GIMP. https://en.wikipedia.org/wiki/ Block_cipher_mode_of_operation

3 / 28

slide-4
SLIDE 4

ECB (Electronic Code Book)

EK EK EK M[1] C[1] M[2] C[2] C[m] M[m]

  • EK: a block cipher with n-bit blocks
  • M = (M[1], . . . , M[m])
  • C = (C[1], . . . , C[m])

4 / 28

slide-5
SLIDE 5

The ECB Penguin

Image: Larry Ewing, lewing@isc.tamu.edu, created with the GIMP. https://en.wikipedia.org/wiki/ Block_cipher_mode_of_operation

5 / 28

slide-6
SLIDE 6

Issues with ECB

  • M[i] = M[j] ⇒ C[i] = C[j]
  • M = M′ ⇒ C = C′
  • does not provide authenticity, “authenticated encryption”

6 / 28

slide-7
SLIDE 7

AE (Authenticated Encryption)

  • Symmetric-key primitive for privacy and authenticity
  • Nonce-based AE [Rog02] (this talk will not consider associated data)

– nonce: data that is changed for each encryption (counter)

  • Encryption: (K, N, M) → (C, T)
  • Decryption: (K, N, C, T) → M or (K, N, C, T) → ⊥ (authentication error, reject)

K K M K: key N: nonce M: message C: ciphertext T: tag (C, T) ← EncK(N, M) (N, C, T) M/⊥ ← DecK(N, C, T)

[Rog02] Rogaway. Authenticated-encryption with associated-data. CCS 2002

7 / 28

slide-8
SLIDE 8

Examples of AE

  • GCM and CCM (NIST recommendations)
  • 6 schemes in ISO/IEC 19772
  • IETF RFC includes GCM, ChaCha20-Poly1305, . . .
  • 6 schemes in CAESAR final portfolio
  • many schemes in the ongoing NIST lightweight cryptography standardization project

8 / 28

slide-9
SLIDE 9

OCB (Offset Code Book)

  • 3 versions, built on a block cipher (e.g., AES, with n = 128)

– OCB1 by Rogaway et al. at CCS 2001 [RBBK01] – OCB2 by Rogaway at ASIACRYPT 2004 [Rog04] – OCB3 by Krovetz and Rogaway at FSE 2011 [KR11]

  • Nonce-based AE (with AD) with strong features:

– fully parallelizable – 1 block cipher call to process each n-bit block (rate-1, same as CTR and ECB modes) – provable security

[RBBK01] Rogaway, Bellare, Black, Krovetz. OCB: A block-cipher mode of operation for efficient authenticated encryp-

  • tion. CCS 2001

[Rog04] Rogaway. Efficient instantiations of tweakable blockciphers and refinements to modes OCB and PMAC. ASI- ACRYPT 2004 [KR11] Krovetz, Rogaway. The software performance of authenticated-encryption modes. FSE 2011

9 / 28

slide-10
SLIDE 10

Security Evaluation of OCB

All versions have been extensively studied:

  • Security proofs for all versions of OCB by Rogaway et al. [RBBK01, Rog04, KR11]
  • Tightness of the security bounds: Ferguson [Fer02], Sun et al. [SWZ12]
  • (Nonce) misuse attacks: Andreeva et al. [ABLMMY14], Ashur et al. [ADL17]
  • Necessity of SPRP: Aoki and Yasuda [AY13]
  • Bound improvement (for OCB3): Bhaumik and Nandi [BN17]

[Fer02] Ferguson. Collision attacks on OCB. Comments to NIST, 2002 [SWZ12] Sun, Wang, Zhang. Collision attacks on variant of OCB mode and its series. Inscrypt 2012 [ABLMMY14] Andreeva, Bogdanov, Luykx, Mennink, Mouha, Yasuda. How to securely release unverified plaintext in authenticated encryption. ASIACRYPT 2014 [ADL17] Ashur, Dunkelman, Luykx. Boosting authenticated encryption robustness with minimal modifications. CRYPTO 2017 [AY13] Aoki, Yasuda. The security of the OCB mode of operation without the SPRP assumption. ProvSec 2013 [BN17] Bhaumik, Nandi. Improved security for OCB3. ASIACRYPT 2017

10 / 28

slide-11
SLIDE 11

Security Evaluation of OCB

All versions have been extensively studied:

  • Security proofs for all versions of OCB by Rogaway et al. [RBBK01, Rog04, KR11]
  • Tightness of the security bounds: Ferguson [Fer02], Sun et al. [SWZ12]
  • (Nonce) misuse attacks: Andreeva et al. [ABLMMY14], Ashur et al. [ADL17]
  • Necessity of SPRP: Aoki and Yasuda [AY13]
  • Bound improvement (for OCB3): Bhaumik and Nandi [BN17]

No weakness known, the security is very well understood

[Fer02] Ferguson. Collision attacks on OCB. Comments to NIST, 2002 [SWZ12] Sun, Wang, Zhang. Collision attacks on variant of OCB mode and its series. Inscrypt 2012 [ABLMMY14] Andreeva, Bogdanov, Luykx, Mennink, Mouha, Yasuda. How to securely release unverified plaintext in authenticated encryption. ASIACRYPT 2014 [ADL17] Ashur, Dunkelman, Luykx. Boosting authenticated encryption robustness with minimal modifications. CRYPTO 2017 [AY13] Aoki, Yasuda. The security of the OCB mode of operation without the SPRP assumption. ProvSec 2013 [BN17] Bhaumik, Nandi. Improved security for OCB3. ASIACRYPT 2017

10 / 28

slide-12
SLIDE 12

Security Evaluation of OCB

All versions have been extensively studied:

  • Security proofs for all versions of OCB by Rogaway et al. [RBBK01, Rog04, KR11]
  • Tightness of the security bounds: Ferguson [Fer02], Sun et al. [SWZ12]
  • (Nonce) misuse attacks: Andreeva et al. [ABLMMY14], Ashur et al. [ADL17]
  • Necessity of SPRP: Aoki and Yasuda [AY13]
  • Bound improvement (for OCB3): Bhaumik and Nandi [BN17]

No weakness known, the security is very well understood?

[Fer02] Ferguson. Collision attacks on OCB. Comments to NIST, 2002 [SWZ12] Sun, Wang, Zhang. Collision attacks on variant of OCB mode and its series. Inscrypt 2012 [ABLMMY14] Andreeva, Bogdanov, Luykx, Mennink, Mouha, Yasuda. How to securely release unverified plaintext in authenticated encryption. ASIACRYPT 2014 [ADL17] Ashur, Dunkelman, Luykx. Boosting authenticated encryption robustness with minimal modifications. CRYPTO 2017 [AY13] Aoki, Yasuda. The security of the OCB mode of operation without the SPRP assumption. ProvSec 2013 [BN17] Bhaumik, Nandi. Improved security for OCB3. ASIACRYPT 2017

10 / 28

slide-13
SLIDE 13

Our Results

Structural weakness of OCB2

  • Independent of the underlying block cipher (and its block size)
  • has been overlooked for about 15 years

Attacks

  • Authenticity attacks (existential and universal forgeries)
  • Privacy attacks (distinguishing attack and plaintext recovery)
  • All attacks have very small complexity & the success probability is (almost) one

11 / 28

slide-14
SLIDE 14

Practical Impacts

  • OCB2 was one of the six algorithms in ISO/IEC 19772

– ISO/IEC declared a plan for removal of OCB2 from the international standard

  • SJCL Javascript crypto library implements OCB2

– Users may be affected, though it is hard to see the real impact – Fixing crypto is not easy, time-consuming

  • Joplin, a multi-platform application for taking notes

– uses OCB2 through SJCL – decided to wait for the decision by SJCL team

http://bitwiseshiftleft.github.io/sjcl/ https://joplinapp.org/ https://github.com/laurent22/joplin/issues/943

12 / 28

slide-15
SLIDE 15

Technical Details of OCB2

  • Encryption: (N, M) → (C, T), ECB mode with masks generated from L = EK(N)

– 2a is doubling of a over GF(2n), 3a = 2a ⊕ a – M[m] is encrypted in CTR mode – len(X) is an n-bit encoding of |X|

  • The checksum is Σ = M[1] ⊕ · · · ⊕ M[m]

EK EK EK EK M[1] C[1] M[2] C[2] M[m − 1] C[m − 1] M[m] C[m]

13 / 28

slide-16
SLIDE 16

Technical Details of OCB2

  • Encryption: (N, M) → (C, T), ECB mode with masks generated from L = EK(N)

– 2a is doubling of a over GF(2n), 3a = 2a ⊕ a – M[m] is encrypted in CTR mode – len(X) is an n-bit encoding of |X|

  • The checksum is Σ = M[1] ⊕ · · · ⊕ M[m]

EK EK EK EK M[1] C[1] M[2] C[2] M[m − 1] C[m − 1] M[m] C[m] EK N L

13 / 28

slide-17
SLIDE 17

Technical Details of OCB2

  • Encryption: (N, M) → (C, T), ECB mode with masks generated from L = EK(N)

– 2a is doubling of a over GF(2n), 3a = 2a ⊕ a – M[m] is encrypted in CTR mode – len(X) is an n-bit encoding of |X|

  • The checksum is Σ = M[1] ⊕ · · · ⊕ M[m]

EK EK EK EK EK EK N L M[1] 2L C[1] M[2] 22L C[2] M[m − 1] 2m−1L C[m − 1] len(M[m]) 2mL M[m] C[m] Σ 2m3L T 2L 22L 2m−1L

13 / 28

slide-18
SLIDE 18

Technical Details of OCB2

  • Decryption: (N, C, T) → M/⊥

E−1

K

EK EK EK N L M[1] 2L C[1] M[2] 22L C[2] M[m − 1] 2m−1L C[m − 1] 2mL M[m] C[m] Σ 2m3L 2L 22L 2m−1L E−1

K

E−1

K

len(C[m]) T ∗

?

= T

  • Theorem [Rog04]

– (C, T) ≈ random string (privacy) – forgery is not possible (authenticity)

14 / 28

slide-19
SLIDE 19

Minimal Forgery [IM18] (Existential Forgery)

M (C, T) ← EncK(N, M) (N, C, T)

[IM18] Inoue, Minematsu. Cryptanalysis of OCB2. IACR ePrint 2018/1040

15 / 28

slide-20
SLIDE 20

Minimal Forgery [IM18] (Existential Forgery)

M (C, T) ← EncK(N, M) (N, C, T) M ′ = 2L ⊕ len(0n) (N, C′, T ′)

[IM18] Inoue, Minematsu. Cryptanalysis of OCB2. IACR ePrint 2018/1040

15 / 28

slide-21
SLIDE 21

Minimal Forgery [IM18] (For Experts)

  • Encrypt (N, M) to obtain (C[1], C[2], T), where M = (len(0n), M[2]) and |M[2]| = n

EK EK EK EK N L 2L len(0n) M[1] = 2L len(0n) = len(M[2]) M[2] 22L C[2] C[1] 223L T Σ

16 / 28

slide-22
SLIDE 22

Minimal Forgery [IM18] (For Experts)

  • Encrypt (N, M) to obtain (C[1], C[2], T), where M = (len(0n), M[2]) and |M[2]| = n
  • Decrypt (N, C′, T ′), where C′ = C[1] ⊕ len(0n) and T ′ = M[2] ⊕ C[2]

– Note: 2L ⊕ 2 · 3L = 2L ⊕ 2(2 + 1)L = 22L – M ′ = 2L ⊕ len(0n) is returned, L can be used for powerful attacks

EK EK EK EK EK EK EK N L N L 2L len(0n) M[1] = 2L len(0n) = len(M[2]) M[2] 22L C[2] C[1] 223L T Σ len(0n) = len(C′) 2L C[1] ⊕ len(0n) 2L ⊕ len(0n) T ∗ = EK(22L ⊕ len(0n)) = M[2] ⊕ C[2] Σ′ = 2L ⊕ len(0n) 2 · 3L M ′ C′ = =

16 / 28

slide-23
SLIDE 23

Attacks

Quickly triggered other attacks [IIMP19] (all under CCA):

  • forgery of longer messages
  • universal forgery
  • distinguishing attack
  • plaintext recovery
  • simulation of block cipher encryption
  • simulation of block cipher decryption

[IIMP19] Inoue, Iwata, Minematsu, Poettering. Cryptanalysis of OCB2: Attacks on Authenticity and Confidentiality. CRYPTO 2019

17 / 28

slide-24
SLIDE 24

Universal Forgery [IIMP19]

  • “Minimal forgery” forges M′ = 2L ⊕ len(0n)
  • Universal forgery: for any (N, M), the adversary can compute (C, T)

18 / 28

slide-25
SLIDE 25

Universal Forgery [IIMP19]

  • “Minimal forgery” forges M′ = 2L ⊕ len(0n)
  • Universal forgery: for any (N, M), the adversary can compute (C, T)

– uses the minimal forgery as a subroutine, the most powerful authenticity attack

(N, C, T) M

18 / 28

slide-26
SLIDE 26

Plaintext Recovery [IIMP19]

  • The most powerful privacy attack: for any (N, C, T) (for unknown M), the adversary can

compute M

– uses the minimal forgery as a subroutine

M (C, T) ← EncK(N, M) (N, C, T)

19 / 28

slide-27
SLIDE 27

What Went Wrong?

  • OCB2 has a proof of security [Rog04]
  • The technical specification of OCB2 is too complex for a direct security proof
  • To prove the security, [Rog04] uses “abstraction” of OCB2

EK EK EK EK EK M[1] 2L C[1] M[2] 22L C[2] M[m − 1] 2m−1L C[m − 1] len(M[m]) 2mL M[m] C[m] Σ 2m3L T 2L 22L 2m−1L

20 / 28

slide-28
SLIDE 28

What Went Wrong?

  • OCB2 has a proof of security [Rog04]
  • The technical specification of OCB2 is too complex for a direct security proof
  • To prove the security, [Rog04] uses “abstraction” of OCB2

EK EK EK EK EK M[1] 2L C[1] M[2] 22L C[2] M[m − 1] 2m−1L C[m − 1] len(M[m]) 2mL M[m] C[m] Σ 2m3L T 2L 22L 2m−1L

20 / 28

slide-29
SLIDE 29

What Went Wrong?

M[1] C[1] M[2] C[2] M[m − 1] C[m − 1] len(M[m]) M[m] C[m] Σ T

  • If

EK 2i3jL 2i3jL =

(XEX) and

2i3jL EK =

(XE), then OCB2

21 / 28

slide-30
SLIDE 30

What Went Wrong?

M[1] C[1] M[2] C[2] M[m − 1] C[m − 1] len(M[m]) M[m] C[m] Σ T

  • If

EK 2i3jL 2i3jL =

(XEX) and

2i3jL EK =

(XE), then OCB2

  • If

is Π1 (ideally secure XEX) and is Π0 (ideally secure XE), then ΘCB2

21 / 28

slide-31
SLIDE 31

What Went Wrong?

  • Three steps to prove the security of OCB2

– Prove that ΘCB2 is secure (privacy and authenticity) – Prove that for any “tag-respecting” adversary, (XEX, XE) ≈ (Π1, Π0) – Conclude that OCB2 is secure, “hybrid argument”

M[1] C[1] M[2] C[2] M[m − 1] C[m − 1] len(M[m]) M[m] C[m] Σ T Π0 Π1 Π0 Π1 Π1

22 / 28

slide-32
SLIDE 32

What Went Wrong?

  • Three steps to prove the security of OCB2

– Prove that ΘCB2 is secure (privacy and authenticity)

  • – Prove that for any “tag-respecting” adversary, (XEX, XE) ≈ (Π1, Π0)

– Conclude that OCB2 is secure, “hybrid argument”

M[1] C[1] M[2] C[2] M[m − 1] C[m − 1] len(M[m]) M[m] C[m] Σ T Π0 Π1 Π0 Π1 Π1

22 / 28

slide-33
SLIDE 33

What Went Wrong?

  • Three steps to prove the security of OCB2

– Prove that ΘCB2 is secure (privacy and authenticity)

  • – Prove that for any “tag-respecting” adversary, (XEX, XE) ≈ (Π1, Π0)

– Conclude that OCB2 is secure, “hybrid argument”

M[1] C[1] M[2] C[2] M[m − 1] C[m − 1] len(M[m]) M[m] C[m] Σ T Π0 Π1 Π0 Π1 Π1

Π1 ≈

EK 2i3jL 2i3jL

and Π0 ≈

2i3jL EK

22 / 28

slide-34
SLIDE 34

What Went Wrong?

  • Three steps to prove the security of OCB2

– Prove that ΘCB2 is secure (privacy and authenticity)

  • – Prove that for any “tag-respecting” adversary, (XEX, XE) ≈ (Π1, Π0)
  • – Conclude that OCB2 is secure, “hybrid argument”

M[1] C[1] M[2] C[2] M[m − 1] C[m − 1] len(M[m]) M[m] C[m] Σ T Π0 Π1 Π0 Π1 Π1

Π1 ≈

EK 2i3jL 2i3jL

and Π0 ≈

2i3jL EK

22 / 28

slide-35
SLIDE 35

What Went Wrong?

  • Three steps to prove the security of OCB2

– Prove that ΘCB2 is secure (privacy and authenticity)

  • – Prove that for any “tag-respecting” adversary, (XEX, XE) ≈ (Π1, Π0)
  • – Conclude that OCB2 is secure, “hybrid argument”

M[1] C[1] M[2] C[2] M[m − 1] C[m − 1] len(M[m]) M[m] C[m] Σ T Π0 Π1 Π0 Π1 Π1

Π1 ≈

EK 2i3jL 2i3jL

and Π0 ≈

2i3jL EK

22 / 28

slide-36
SLIDE 36

What Went Wrong?

  • Three steps to prove the security of OCB2

– Prove that ΘCB2 is secure (privacy and authenticity)

  • – Prove that for any “tag-respecting” adversary, (XEX, XE) ≈ (Π1, Π0)
  • – Conclude that OCB2 is secure, “hybrid argument”

— XEX/XE misused, does not work!

M[1] C[1] M[2] C[2] M[m − 1] C[m − 1] len(M[m]) M[m] C[m] Σ T Π0 Π1 Π0 Π1 Π1

Π1 ≈

EK 2i3jL 2i3jL

and Π0 ≈

2i3jL EK

22 / 28

slide-37
SLIDE 37

What Went Wrong?

  • Three steps to prove the security of OCB2

– Prove that ΘCB2 is secure (privacy and authenticity)

  • – Prove that for any tag-respecting adversary, (XEX, XE) ≈ (Π1, Π0)
  • – Conclude that OCB2 is secure, “hybrid argument”

— XEX/XE misused, does not work!

  • Lesson learned: prove all the statements PLUS carefully check they fit together

23 / 28

slide-38
SLIDE 38

Fixes

Some ways to fix OCB2

  • Use XEX for the last message block (OCB2f, provably secure)
  • Change the definition of the mask (OCB2ff, provably secure, will be included in [ePrint

2019/311])

  • Other potential (unproven) options

– Always-nonempty-AD, always-PMAC – Rejecting harmful inputs to OCB2 (Counter-cryptanalysis)

Some ways to avoid OCB2

  • GCM
  • OCB3

24 / 28

slide-39
SLIDE 39

Timeline

2001 OCB1 proposed at CCS 2001 2004 OCB2 proposed at ASIACRYPT 2004 2009 OCB2 included in ISO/IEC 19772:2009 2011 OCB3 proposed at FSE 2011 2014 OCB3 in IETF RFC 7253

25 / 28

slide-40
SLIDE 40

Timeline

2001 OCB1 proposed at CCS 2001 2004 OCB2 proposed at ASIACRYPT 2004 2009 OCB2 included in ISO/IEC 19772:2009 2011 OCB3 proposed at FSE 2011 2014 OCB3 in IETF RFC 7253 2018 Sep 06 A potential gap in the proof found by IM

25 / 28

slide-41
SLIDE 41

Timeline

2001 OCB1 proposed at CCS 2001 2004 OCB2 proposed at ASIACRYPT 2004 2009 OCB2 included in ISO/IEC 19772:2009 2011 OCB3 proposed at FSE 2011 2014 OCB3 in IETF RFC 7253 2018 Sep 06 A potential gap in the proof found by IM 2018 Oct 09 Minimal forgery found by IM

25 / 28

slide-42
SLIDE 42

Timeline

2001 OCB1 proposed at CCS 2001 2004 OCB2 proposed at ASIACRYPT 2004 2009 OCB2 included in ISO/IEC 19772:2009 2011 OCB3 proposed at FSE 2011 2014 OCB3 in IETF RFC 7253 2018 Sep 06 A potential gap in the proof found by IM 2018 Oct 09 Minimal forgery found by IM 2018 Oct 26 [IM18] sent to ePrint, minimal forgery, extension to longer messages, almost universal forgery, gap, fix

25 / 28

slide-43
SLIDE 43

Timeline

2001 OCB1 proposed at CCS 2001 2004 OCB2 proposed at ASIACRYPT 2004 2009 OCB2 included in ISO/IEC 19772:2009 2011 OCB3 proposed at FSE 2011 2014 OCB3 in IETF RFC 7253 2018 Sep 06 A potential gap in the proof found by IM 2018 Oct 09 Minimal forgery found by IM 2018 Oct 26 [IM18] sent to ePrint, minimal forgery, extension to longer messages, almost universal forgery, gap, fix 2018 Nov 08 [Poe18] sent to ePrint, distinguishing attack (posted on Nov 09, 16:00)

25 / 28

slide-44
SLIDE 44

Timeline

2001 OCB1 proposed at CCS 2001 2004 OCB2 proposed at ASIACRYPT 2004 2009 OCB2 included in ISO/IEC 19772:2009 2011 OCB3 proposed at FSE 2011 2014 OCB3 in IETF RFC 7253 2018 Sep 06 A potential gap in the proof found by IM 2018 Oct 09 Minimal forgery found by IM 2018 Oct 26 [IM18] sent to ePrint, minimal forgery, extension to longer messages, almost universal forgery, gap, fix 2018 Nov 08 [Poe18] sent to ePrint, distinguishing attack (posted on Nov 09, 16:00) 2018 Nov 11 10:00 [Iwa18] sent to ePrint, full plaintext recovery (posted on Nov 12, 02:00)

25 / 28

slide-45
SLIDE 45

Timeline

2001 OCB1 proposed at CCS 2001 2004 OCB2 proposed at ASIACRYPT 2004 2009 OCB2 included in ISO/IEC 19772:2009 2011 OCB3 proposed at FSE 2011 2014 OCB3 in IETF RFC 7253 2018 Sep 06 A potential gap in the proof found by IM 2018 Oct 09 Minimal forgery found by IM 2018 Oct 26 [IM18] sent to ePrint, minimal forgery, extension to longer messages, almost universal forgery, gap, fix 2018 Nov 08 [Poe18] sent to ePrint, distinguishing attack (posted on Nov 09, 16:00) 2018 Nov 11 10:00 [Iwa18] sent to ePrint, full plaintext recovery (posted on Nov 12, 02:00) 2018 Nov 11 14:00 [IM18] updated, universal forgery 2018 Nov 11 22:00 [Poe18] updated, BC simulation, universal forgery, partial plaintext recovery 2018 Nov 12 16:00 [Poe18] updated, full plaintext recovery 2018 Nov 16 [Iwa18] updated, BC decryption simulation

25 / 28

slide-46
SLIDE 46

Timeline

  • An exciting competition!

– multiple teams from industry and academia (NEC, Nagoya U, and IBM & RHUL), across different corners in the world

  • After the first finding of the potential gap, everything happened in a very short period of

time

  • Attacks only get better, for the case of OCB2, attacks got better very quickly

26 / 28

slide-47
SLIDE 47

Concluding Remarks

  • OCB2 is broken.

– should not be used

  • A (seemingly) small flaw in the proof led to surprisingly powerful attacks
  • Not applicable to OCB1 and OCB3

– They do not misuse XEX/XE – The general structure of OCB is sound

M[1] C[1] M[2] C[2] M[m − 1] C[m − 1] len(M[m]) M[m] C[m] Σ T Π0 Π1 Π0 Π1 Π1

Lessons learned

  • Even the most promising scheme can fail
  • Active third-party verification of security proofs is important

27 / 28

slide-48
SLIDE 48

Concluding Remarks

  • OCB2 is broken.

– should not be used

  • A (seemingly) small flaw in the proof led to surprisingly powerful attacks
  • Not applicable to OCB1 and OCB3

– They do not misuse XEX/XE – The general structure of OCB is sound

M[1] C[1] M[2] C[2] M[m − 1] C[m − 1] len(M[m]) M[m] C[m] Σ T Π0 Π1 Π0 Π1 Π1

Lessons learned

  • Even the most promising scheme can fail
  • Active third-party verification of security proofs is important

Thanks!

27 / 28

slide-49
SLIDE 49

The Hybrid (For Experts, Backup Slide)

  • If there is an adversary against OCB2, then there is an adversary against XEX/XE

EK EK EK EK EK 2L len(0n) 2L len(0n) M[2] 22L C[2] C[1] 223L T Σ len(0n) 2L C[1] ⊕ len(0n) 2L ⊕ len(0n) T ∗ Σ′ = 2L ⊕ len(0n) 2 · 3L (N, 1, 0) (N, 2, 0) (N, 2, 1) (N, 1, 0) (N, 1, 1) XEX XE XE XE XE

28 / 28

slide-50
SLIDE 50

The Hybrid (For Experts, Backup Slide)

  • If there is an adversary against OCB2, then there is an adversary against XEX/XE

EK EK EK EK EK 2L len(0n) 2L len(0n) M[2] 22L C[2] C[1] 223L T Σ len(0n) 2L C[1] ⊕ len(0n) 2L ⊕ len(0n) T ∗ Σ′ = 2L ⊕ len(0n) 2 · 3L (N, 1, 0) (N, 2, 0) (N, 2, 1) (N, 1, 0) (N, 1, 1) XEX XE XE XE XE

  • Without violating the tag-respecting condition, the simulation is impossible. The hybrid

does not work

28 / 28