Multi-Instance Security and its Application to Password- Based - - PowerPoint PPT Presentation

β–Ά
multi instance security and its
SMART_READER_LITE
LIVE PREVIEW

Multi-Instance Security and its Application to Password- Based - - PowerPoint PPT Presentation

Multi-Instance Security and its Application to Password- Based Cryptography Stefano Tessaro MIT Joint work with Mihir Bellare (UC San Diego) Thomas Ristenpart (Univ. of Wisconsin) Scenario: File encryption Want to store data in encrypted


slide-1
SLIDE 1

Multi-Instance Security and its Application to Password- Based Cryptography

Joint work with Mihir Bellare (UC San Diego) Thomas Ristenpart (Univ. of Wisconsin)

Stefano Tessaro MIT

slide-2
SLIDE 2

Scenario: File encryption ο€  Want to store data in encrypted form using symmetric encryption.

slide-3
SLIDE 3

Scenario: File encryption

  • Keys need to be securely stored for later decryption

Want to store data in encrypted form using symmetric encryption.

slide-4
SLIDE 4

Scenario: File encryption

  • Keys need to be securely stored for later decryption

Want to store data in encrypted form using symmetric encryption. Alternative solution: Password-based cryptography.

slide-5
SLIDE 5

Password-based encryption

slide-6
SLIDE 6

Password-based encryption Used widely: Winzip, OpenOffice, Mac OS X FileVault,TrueCrypt, WiFi WPA (PBKDF), …

slide-7
SLIDE 7

Password-based encryption

𝑳 = 𝟏𝟐𝟏𝟏𝟐𝟐𝟏𝟐 … … … . . 𝟏𝟐𝟏𝟐𝟏𝟐𝟏𝟐𝟏𝟐

KDF

q1w2e3

Used widely: Winzip, OpenOffice, Mac OS X FileVault,TrueCrypt, WiFi WPA (PBKDF), …

Key-derivation function

slide-8
SLIDE 8

Password-based encryption

𝑳 = 𝟏𝟐𝟏𝟏𝟐𝟐𝟏𝟐 … … … . . 𝟏𝟐𝟏𝟐𝟏𝟐𝟏𝟐𝟏𝟐

KDF

q1w2e3

Used widely: Winzip, OpenOffice, Mac OS X FileVault,TrueCrypt, WiFi WPA (PBKDF), …

PB-Encrypt(π‘žπ‘₯, 𝑁) 𝐿 οƒŸ KDF(π‘žπ‘₯) 𝐷 οƒŸ ENC(𝐿, 𝑁) Return 𝐷

Key-derivation function

slide-9
SLIDE 9

Password-based encryption

ENC(𝑳, 𝑁)

𝑳 = 𝟏𝟐𝟏𝟏𝟐𝟐𝟏𝟐 … … … . . 𝟏𝟐𝟏𝟐𝟏𝟐𝟏𝟐𝟏𝟐

KDF

q1w2e3

Used widely: Winzip, OpenOffice, Mac OS X FileVault,TrueCrypt, WiFi WPA (PBKDF), …

PB-Encrypt(π‘žπ‘₯, 𝑁) 𝐿 οƒŸ KDF(π‘žπ‘₯) 𝐷 οƒŸ ENC(𝐿, 𝑁) Return 𝐷

Key-derivation function

slide-10
SLIDE 10

Problem: Weak passwords are unavoidable

slide-11
SLIDE 11

Problem: Weak passwords are unavoidable

slide-12
SLIDE 12

Problem: Weak passwords are unavoidable

slide-13
SLIDE 13

Mitigating dictionary attacks via iteration KDF = Hc

slide-14
SLIDE 14

Mitigating dictionary attacks via iteration

…

π‘žπ‘₯

𝐿

c times H H H KDF = Hc

slide-15
SLIDE 15

Mitigating dictionary attacks via iteration

…

π‘žπ‘₯

𝐿

c times H H H H ∢ {0,1}βˆ—β†’ {0,1}π‘œ is cryptographic hash function (e.g., SHA-256) KDF = Hc

slide-16
SLIDE 16

Mitigating dictionary attacks via iteration

…

π‘žπ‘₯

𝐿

c times H H H

PB-Encrypt(π‘žπ‘₯, 𝑁) 𝐿 οƒŸ Hc(π‘žπ‘₯) 𝐷 οƒŸ ENC(𝐿, 𝑁) Return 𝐷

H ∢ {0,1}βˆ—β†’ {0,1}π‘œ is cryptographic hash function (e.g., SHA-256) KDF = Hc

slide-17
SLIDE 17

Mitigating dictionary attacks via iteration

…

π‘žπ‘₯

𝐿

c times H H H

PB-Encrypt(π‘žπ‘₯, 𝑁) 𝐿 οƒŸ Hc(π‘žπ‘₯) 𝐷 οƒŸ ENC(𝐿, 𝑁) Return 𝐷

H ∢ {0,1}βˆ—β†’ {0,1}π‘œ is cryptographic hash function (e.g., SHA-256) Expectation: Work 𝑢 to guess π‘žπ‘₯ οƒž Work 𝐝 Γ— 𝑢 to break PB-Encrypt KDF = Hc

slide-18
SLIDE 18

Mitigating dictionary attacks via iteration

…

π‘žπ‘₯

𝐿

c times H H H

PB-Encrypt(π‘žπ‘₯, 𝑁) 𝐿 οƒŸ Hc(π‘žπ‘₯) 𝐷 οƒŸ ENC(𝐿, 𝑁) Return 𝐷

H ∢ {0,1}βˆ—β†’ {0,1}π‘œ is cryptographic hash function (e.g., SHA-256) Expectation: Work 𝑢 to guess π‘žπ‘₯ οƒž Work 𝐝 Γ— 𝑢 to break PB-Encrypt

𝑂 = 232

KDF = Hc

slide-19
SLIDE 19

Mitigating dictionary attacks via iteration

…

π‘žπ‘₯

𝐿

c times H H H

PB-Encrypt(π‘žπ‘₯, 𝑁) 𝐿 οƒŸ Hc(π‘žπ‘₯) 𝐷 οƒŸ ENC(𝐿, 𝑁) Return 𝐷

H ∢ {0,1}βˆ—β†’ {0,1}π‘œ is cryptographic hash function (e.g., SHA-256) Expectation: Work 𝑢 to guess π‘žπ‘₯ οƒž Work 𝐝 Γ— 𝑢 to break PB-Encrypt

𝑂 = 232 𝑂 Γ— 𝑑 = 232 Γ— 220 = 252

KDF = Hc

slide-20
SLIDE 20

Mitigating dictionary attacks via iteration

…

π‘žπ‘₯

𝐿

c times H H H

PB-Encrypt(π‘žπ‘₯, 𝑁) 𝐿 οƒŸ Hc(π‘žπ‘₯) 𝐷 οƒŸ ENC(𝐿, 𝑁) Return 𝐷

H ∢ {0,1}βˆ—β†’ {0,1}π‘œ is cryptographic hash function (e.g., SHA-256) Expectation: Work 𝑢 to guess π‘žπ‘₯ οƒž Work 𝐝 Γ— 𝑢 to break PB-Encrypt

𝑂 = 232 𝑂 Γ— 𝑑 = 232 Γ— 220 = 252

KDF = Hc

slide-21
SLIDE 21

Mitigating dictionary attacks via iteration

…

π‘žπ‘₯

𝐿

c times H H H

PB-Encrypt(π‘žπ‘₯, 𝑁) 𝐿 οƒŸ Hc(π‘žπ‘₯) 𝐷 οƒŸ ENC(𝐿, 𝑁) Return 𝐷

H ∢ {0,1}βˆ—β†’ {0,1}π‘œ is cryptographic hash function (e.g., SHA-256) Expectation: Work 𝑢 to guess π‘žπ‘₯ οƒž Work 𝐝 Γ— 𝑢 to break PB-Encrypt

𝑂 = 232 𝑂 Γ— 𝑑 = 232 Γ— 220 = 252

KDF = Hc

slide-22
SLIDE 22

PB-Encryption in the multi-user setting Real world has multiple users:

slide-23
SLIDE 23

PB-Encryption in the multi-user setting

𝐷1 ← PBβˆ’Encrypt(π‘žπ‘₯1, 𝑁1) 𝐷2 ← PBβˆ’Encrypt(π‘žπ‘₯2, 𝑁2) 𝐷3 ← PBβˆ’Encrypt(π‘žπ‘₯3, 𝑁3)

Real world has multiple users:

slide-24
SLIDE 24

PB-Encryption in the multi-user setting

𝐷1 ← PBβˆ’Encrypt(π‘žπ‘₯1, 𝑁1) 𝐷2 ← PBβˆ’Encrypt(π‘žπ‘₯2, 𝑁2) 𝐷3 ← PBβˆ’Encrypt(π‘žπ‘₯3, 𝑁3)

Real world has multiple users:

slide-25
SLIDE 25

PB-Encryption in the multi-user setting

𝐷1 ← PBβˆ’Encrypt(π‘žπ‘₯1, 𝑁1) 𝐷2 ← PBβˆ’Encrypt(π‘žπ‘₯2, 𝑁2) 𝐷3 ← PBβˆ’Encrypt(π‘žπ‘₯3, 𝑁3)

Real world has multiple users:

slide-26
SLIDE 26

PB-Encryption in the multi-user setting Work 𝒅 Γ— 𝑢 to retrieve 𝑁1

𝐷1 ← PBβˆ’Encrypt(π‘žπ‘₯1, 𝑁1) 𝐷2 ← PBβˆ’Encrypt(π‘žπ‘₯2, 𝑁2) 𝐷3 ← PBβˆ’Encrypt(π‘žπ‘₯3, 𝑁3)

𝑁1

Real world has multiple users:

slide-27
SLIDE 27

PB-Encryption in the multi-user setting Work 𝒅 Γ— 𝑢 to retrieve 𝑁1

𝐷1 ← PBβˆ’Encrypt(π‘žπ‘₯1, 𝑁1) 𝐷2 ← PBβˆ’Encrypt(π‘žπ‘₯2, 𝑁2) 𝐷3 ← PBβˆ’Encrypt(π‘žπ‘₯3, 𝑁3)

𝑁1

Real world has multiple users:

slide-28
SLIDE 28

PB-Encryption in the multi-user setting Work 𝒅 Γ— 𝑢 to retrieve 𝑁1

𝐷1 ← PBβˆ’Encrypt(π‘žπ‘₯1, 𝑁1) 𝐷2 ← PBβˆ’Encrypt(π‘žπ‘₯2, 𝑁2) 𝐷3 ← PBβˆ’Encrypt(π‘žπ‘₯3, 𝑁3)

𝑁1 𝑁2

Additional work to retrieve 𝑁2? Real world has multiple users:

slide-29
SLIDE 29

PB-Encryption in the multi-user setting Work 𝒅 Γ— 𝑢 to retrieve 𝑁1

𝐷1 ← PBβˆ’Encrypt(π‘žπ‘₯1, 𝑁1) 𝐷2 ← PBβˆ’Encrypt(π‘žπ‘₯2, 𝑁2) 𝐷3 ← PBβˆ’Encrypt(π‘žπ‘₯3, 𝑁3)

𝑁1 𝑁2

Additional work to retrieve 𝑁2? Ideally: Work 𝒏 Γ— 𝐝 Γ— 𝑢 to retrieve 𝒏 plaintexts! Real world has multiple users:

slide-30
SLIDE 30

Multi-instance security amplification Not true in general:

slide-31
SLIDE 31

Multi-instance security amplification Not true in general:

slide-32
SLIDE 32

Multi-instance security amplification c times

…

H H H π‘žπ‘₯1 𝐿1 Not true in general:

slide-33
SLIDE 33

Multi-instance security amplification c times

…

H H H π‘žπ‘₯1 𝐿1

…

H H H π‘žπ‘₯𝑂 𝐿𝑂

…

Not true in general:

slide-34
SLIDE 34

Multi-instance security amplification c times

…

H H H π‘žπ‘₯1 𝐿1

…

H H H π‘žπ‘₯𝑂 𝐿𝑂

…

Work 𝑢 Γ— 𝒅 + Work 𝑢 / ciphertext = 𝑢 Γ— 𝒅 + 𝒏 vs 𝑢 Γ— 𝒅 Γ— 𝒏 Not true in general:

slide-35
SLIDE 35

Multi-instance security amplification c times

…

H H H π‘žπ‘₯1 𝐿1

…

H H H π‘žπ‘₯𝑂 𝐿𝑂

…

Work 𝑢 Γ— 𝒅 + Work 𝑢 / ciphertext = 𝑢 Γ— 𝒅 + 𝒏 vs 𝑢 Γ— 𝒅 Γ— 𝒏 Not true in general: New design goal: Multi-instance security amplification β€œHardness of breaking multiple instances must increase linearly in the number of instances.”

slide-36
SLIDE 36

PKCS#5 – Password-based cryptography standard Salting as suggested in PKCS#5 prevents attack

slide-37
SLIDE 37

PKCS#5 – Password-based cryptography standard

…

π‘žπ‘₯||π’•π’ƒπ’Žπ’–

𝐿

H H H Salting as suggested in PKCS#5 prevents attack KDF1:

slide-38
SLIDE 38

PKCS#5 – Password-based cryptography standard

…

π‘žπ‘₯||π’•π’ƒπ’Žπ’–

𝐿

H H H Randomly chosen per KDF evaluation Salting as suggested in PKCS#5 prevents attack KDF1:

slide-39
SLIDE 39

PKCS#5 – Password-based cryptography standard

…

π‘žπ‘₯||π’•π’ƒπ’Žπ’–

𝐿

H H H

PB-Encrypt(π‘žπ‘₯, 𝑁) π’•π’ƒπ’Žπ’– οƒŸ {0,1}𝑑 𝐿 οƒŸ Hc(π‘žπ‘₯||π’•π’ƒπ’Žπ’–) 𝐷 οƒŸ ENC(𝐿, 𝑁) Return 𝐷||π’•π’ƒπ’Žπ’–

Randomly chosen per KDF evaluation Salting as suggested in PKCS#5 prevents attack KDF1:

slide-40
SLIDE 40

PKCS#5 – Password-based cryptography standard

…

π‘žπ‘₯||π’•π’ƒπ’Žπ’–

𝐿

H H H

PB-Encrypt(π‘žπ‘₯, 𝑁) π’•π’ƒπ’Žπ’– οƒŸ {0,1}𝑑 𝐿 οƒŸ Hc(π‘žπ‘₯||π’•π’ƒπ’Žπ’–) 𝐷 οƒŸ ENC(𝐿, 𝑁) Return 𝐷||π’•π’ƒπ’Žπ’–

Randomly chosen per KDF evaluation Salting as suggested in PKCS#5 prevents attack KDF1:

slide-41
SLIDE 41

PKCS#5 – Password-based cryptography standard

…

π‘žπ‘₯||π’•π’ƒπ’Žπ’–

𝐿

H H H

PB-Encrypt(π‘žπ‘₯, 𝑁) π’•π’ƒπ’Žπ’– οƒŸ {0,1}𝑑 𝐿 οƒŸ Hc(π‘žπ‘₯||π’•π’ƒπ’Žπ’–) 𝐷 οƒŸ ENC(𝐿, 𝑁) Return 𝐷||π’•π’ƒπ’Žπ’–

Randomly chosen per KDF evaluation Salting as suggested in PKCS#5 prevents attack KDF1:

slide-42
SLIDE 42

PKCS#5 – Password-based cryptography standard

…

π‘žπ‘₯||π’•π’ƒπ’Žπ’–

𝐿

H H H

PB-Encrypt(π‘žπ‘₯, 𝑁) π’•π’ƒπ’Žπ’– οƒŸ {0,1}𝑑 𝐿 οƒŸ Hc(π‘žπ‘₯||π’•π’ƒπ’Žπ’–) 𝐷 οƒŸ ENC(𝐿, 𝑁) Return 𝐷||π’•π’ƒπ’Žπ’–

Randomly chosen per KDF evaluation Allows decryption Salting as suggested in PKCS#5 prevents attack KDF1:

slide-43
SLIDE 43

PKCS#5 – Password-based cryptography standard

…

π‘žπ‘₯||π’•π’ƒπ’Žπ’–

𝐿

H H H

PB-Encrypt(π‘žπ‘₯, 𝑁) π’•π’ƒπ’Žπ’– οƒŸ {0,1}𝑑 𝐿 οƒŸ Hc(π‘žπ‘₯||π’•π’ƒπ’Žπ’–) 𝐷 οƒŸ ENC(𝐿, 𝑁) Return 𝐷||π’•π’ƒπ’Žπ’–

Randomly chosen per KDF evaluation Allows decryption

Question: Does salting provably ensure multi- instance security amplification?

Salting as suggested in PKCS#5 prevents attack KDF1:

slide-44
SLIDE 44

Iteration and salting in the real world No salting! No iteration!

slide-45
SLIDE 45

Our results

slide-46
SLIDE 46

Our results Question: Does salting provably ensure multi-instance security amplification?

slide-47
SLIDE 47

Our results Question: Does salting provably ensure multi-instance security amplification? Answer: We do not really know!

slide-48
SLIDE 48

Our results Question: Does salting provably ensure multi-instance security amplification? Answer: We do not really know! 1) No formal proof!

slide-49
SLIDE 49

Our results Question: Does salting provably ensure multi-instance security amplification? Answer: We do not really know! 1) No formal proof! 2) No formal model!

slide-50
SLIDE 50

Our results Our contributions: 1) General definitional framework for multi-instance security of arbitrary cryptographic primitives. 2) Case study: Security analysis of PKCS#5 within our framework. Question: Does salting provably ensure multi-instance security amplification? Answer: We do not really know! 1) No formal proof! 2) No formal model!

slide-51
SLIDE 51

Outline

  • 1. Multi-instance security
  • 2. Security of PKCS#5 – A case study
slide-52
SLIDE 52

Outline

  • 1. Multi-instance security
  • 2. Security of PKCS#5 – A case study
slide-53
SLIDE 53

Single-instance security – PB-Encryption 𝑐 ← 0,1 π‘žπ‘₯ ← 𝑄𝑋𝐸 LOR-Security

slide-54
SLIDE 54

Single-instance security – PB-Encryption 𝑐 ← 0,1 π‘žπ‘₯ ← 𝑄𝑋𝐸 π…πŽπƒ(𝒒𝒙, 𝒏𝒄) π’πŸ, π’πŸ |π’πŸ| = |π’πŸ| LOR-Security

slide-55
SLIDE 55

Single-instance security – PB-Encryption 𝑐 ← 0,1 π‘žπ‘₯ ← 𝑄𝑋𝐸 𝒄′ π…πŽπƒ(𝒒𝒙, 𝒏𝒄) π’πŸ, π’πŸ |π’πŸ| = |π’πŸ| LOR-Security

slide-56
SLIDE 56

Single-instance security – PB-Encryption 𝑐 ← 0,1 π‘žπ‘₯ ← 𝑄𝑋𝐸 𝒄′ π…πŽπƒ(𝒒𝒙, 𝒏𝒄) π’πŸ, π’πŸ |π’πŸ| = |π’πŸ| 𝐁𝐞𝐰lor 𝐡 = 2 Γ— [Pr 𝒄 = 𝒄′ βˆ’ 1 2 ] LOR-Security

slide-57
SLIDE 57

Single-instance security – PB-Encryption 𝑐 ← 0,1 π‘žπ‘₯ ← 𝑄𝑋𝐸 𝒄′ π…πŽπƒ(𝒒𝒙, 𝒏𝒄) π’πŸ, π’πŸ |π’πŸ| = |π’πŸ| 𝐁𝐞𝐰lor 𝐡 = 2 Γ— [Pr 𝒄 = 𝒄′ βˆ’ 1 2 ] LOR-Security

slide-58
SLIDE 58

Single-instance security – PB-Encryption 𝑐 ← 0,1 π‘žπ‘₯ ← 𝑄𝑋𝐸 𝒄′ π…πŽπƒ(𝒒𝒙, 𝒏𝒄) π’πŸ, π’πŸ |π’πŸ| = |π’πŸ| 𝐁𝐞𝐰lor 𝐡 = 2 Γ— [Pr 𝒄 = 𝒄′ βˆ’ 1 2 ] LOR-Security π‘žπ‘₯ ← 𝑄𝑋𝐸 PWR-Security

slide-59
SLIDE 59

Single-instance security – PB-Encryption 𝑐 ← 0,1 π‘žπ‘₯ ← 𝑄𝑋𝐸 𝒄′ π…πŽπƒ(𝒒𝒙, 𝒏𝒄) π’πŸ, π’πŸ |π’πŸ| = |π’πŸ| 𝐁𝐞𝐰lor 𝐡 = 2 Γ— [Pr 𝒄 = 𝒄′ βˆ’ 1 2 ] π…πŽπƒ(𝒒𝒙, 𝒏) 𝒏 LOR-Security π‘žπ‘₯ ← 𝑄𝑋𝐸 PWR-Security

slide-60
SLIDE 60

Single-instance security – PB-Encryption 𝑐 ← 0,1 π‘žπ‘₯ ← 𝑄𝑋𝐸 𝒄′ π…πŽπƒ(𝒒𝒙, 𝒏𝒄) π’πŸ, π’πŸ |π’πŸ| = |π’πŸ| 𝐁𝐞𝐰lor 𝐡 = 2 Γ— [Pr 𝒄 = 𝒄′ βˆ’ 1 2 ] 𝒒𝒙′ π…πŽπƒ(𝒒𝒙, 𝒏) 𝒏 LOR-Security π‘žπ‘₯ ← 𝑄𝑋𝐸 PWR-Security

slide-61
SLIDE 61

Single-instance security – PB-Encryption 𝑐 ← 0,1 π‘žπ‘₯ ← 𝑄𝑋𝐸 𝒄′ π…πŽπƒ(𝒒𝒙, 𝒏𝒄) π’πŸ, π’πŸ |π’πŸ| = |π’πŸ| 𝐁𝐞𝐰lor 𝐡 = 2 Γ— [Pr 𝒄 = 𝒄′ βˆ’ 1 2 ] 𝒒𝒙′ π…πŽπƒ(𝒒𝒙, 𝒏) 𝒏 LOR-Security π‘žπ‘₯ ← 𝑄𝑋𝐸 PWR-Security 𝐁𝐞𝐰pwr 𝐡 = Pr[𝒒𝒙′ = 𝒒𝒙]

slide-62
SLIDE 62

The multi-instance (mi) security vista Our goal: Define security metric for scheme S wrt property P to measure success of an adversary that:

  • instances of the scheme concurrently.
  • Corrupts up to 𝑒 < 𝑛 instances of the scheme (e.g.,

learns passwords).

  • Wins if it breaks P for all uncorrupted instances.
slide-63
SLIDE 63

The multi-instance (mi) security vista Our goal: Define security metric for scheme S wrt property P to measure success of an adversary that:

  • Attacks 𝑛 instances of the scheme concurrently.
  • Corrupts up to 𝑒 < 𝑛 instances of the scheme (e.g.,

learns passwords).

  • Wins if it breaks P for all uncorrupted instances.
slide-64
SLIDE 64

The multi-instance (mi) security vista < 𝑛𝑛 instances of the scheme (e.g., learns passwords). Our goal: Define security metric for scheme S wrt property P to measure success of an adversary that:

  • Attacks 𝑛 instances of the scheme concurrently.
  • Corrupts up to 𝑒 < 𝑛 instances of the scheme (e.g.,

learns passwords).

  • Wins if it breaks P for all uncorrupted instances.
slide-65
SLIDE 65

The multi-instance (mi) security vista < 𝑛𝑛 instances of the scheme (e.g., learns passwords). Our goal: Define security metric for scheme S wrt property P to measure success of an adversary that:

  • Attacks 𝑛 instances of the scheme concurrently.
  • Wins if it breaks P for all uncorrupted instances.
  • Wins if it breaks P for all uncorrupted instances.
slide-66
SLIDE 66

PWR security

slide-67
SLIDE 67

PWR security π‘žπ‘₯3 ← 𝑄𝑋𝐸 π‘žπ‘₯1 ← 𝑄𝑋𝐸 π‘žπ‘₯2 ← 𝑄𝑋𝐸

slide-68
SLIDE 68

PWR security π‘žπ‘₯3 ← 𝑄𝑋𝐸 π‘žπ‘₯1 ← 𝑄𝑋𝐸 π‘žπ‘₯2 ← 𝑄𝑋𝐸

slide-69
SLIDE 69

PWR security π‘žπ‘₯3 ← 𝑄𝑋𝐸 π‘žπ‘₯1 ← 𝑄𝑋𝐸 π‘žπ‘₯2 ← 𝑄𝑋𝐸

slide-70
SLIDE 70

PWR security π‘žπ‘₯3 ← 𝑄𝑋𝐸 π‘žπ‘₯1 ← 𝑄𝑋𝐸 π‘žπ‘₯2 ← 𝑄𝑋𝐸

slide-71
SLIDE 71

PWR security π‘žπ‘₯3 ← 𝑄𝑋𝐸 π‘žπ‘₯1 ← 𝑄𝑋𝐸 π‘žπ‘₯2 ← 𝑄𝑋𝐸 (π’’π’™πŸ

β€² , π’’π’™πŸ‘ β€² , π’’π’™πŸ’ β€² )

slide-72
SLIDE 72

PWR security π‘žπ‘₯3 ← 𝑄𝑋𝐸 π‘žπ‘₯1 ← 𝑄𝑋𝐸 π‘žπ‘₯2 ← 𝑄𝑋𝐸 (π’’π’™πŸ

β€² , π’’π’™πŸ‘ β€² , π’’π’™πŸ’ β€² )

ππžπ°π§βˆ’πͺ𝐱𝐬 𝐡 = Pr[𝒒𝒙1

β€² = π’’π’™πŸ, … , 𝒒𝒙𝑛 β€² = 𝒒𝒙𝒏]

slide-73
SLIDE 73

𝑐3 ← 0,1 π‘žπ‘₯3 ← 𝑄𝑋𝐸 LOR security 𝑐1 ← 0,1 π‘žπ‘₯1 ← 𝑄𝑋𝐸 𝑐2 ← 0,1 π‘žπ‘₯2 ← 𝑄𝑋𝐸

slide-74
SLIDE 74

𝑐3 ← 0,1 π‘žπ‘₯3 ← 𝑄𝑋𝐸 LOR security 𝑐1 ← 0,1 π‘žπ‘₯1 ← 𝑄𝑋𝐸 𝑐2 ← 0,1 π‘žπ‘₯2 ← 𝑄𝑋𝐸

slide-75
SLIDE 75

𝑐3 ← 0,1 π‘žπ‘₯3 ← 𝑄𝑋𝐸 LOR security 𝑐1 ← 0,1 π‘žπ‘₯1 ← 𝑄𝑋𝐸 𝑐2 ← 0,1 π‘žπ‘₯2 ← 𝑄𝑋𝐸

slide-76
SLIDE 76

𝑐3 ← 0,1 π‘žπ‘₯3 ← 𝑄𝑋𝐸 LOR security 𝑐1 ← 0,1 π‘žπ‘₯1 ← 𝑄𝑋𝐸 𝑐2 ← 0,1 π‘žπ‘₯2 ← 𝑄𝑋𝐸 ππžπ°π§βˆ’π¦π©π¬ 𝐡 =?

slide-77
SLIDE 77

Defining mi security for encryption Attempt #1: AND-advantage

slide-78
SLIDE 78

Defining mi security for encryption Attempt #1: AND-advantage LORA-security: Advantage: ππžπ°π§βˆ’π¦π©π¬π› 𝐡 = 𝐐𝐬[ π’„πŸ, … , 𝒄𝒏 = π’„πŸ

β€² , … , 𝒄𝒏 β€²

] Output: π’„πŸ

β€² , … , 𝒄𝒏 β€²

slide-79
SLIDE 79

Defining mi security for encryption Attempt #1: AND-advantage LORA-security: Advantage: ππžπ°π§βˆ’π¦π©π¬π› 𝐡 = 𝐐𝐬[ π’„πŸ, … , 𝒄𝒏 = π’„πŸ

β€² , … , 𝒄𝒏 β€²

] Output: π’„πŸ

β€² , … , 𝒄𝒏 β€²

Problem: Does not measure hardness of winning all uncorrupted instances.

slide-80
SLIDE 80

Defining mi security for encryption Attempt #1: AND-advantage LORA-security: Advantage: ππžπ°π§βˆ’π¦π©π¬π› 𝐡 = 𝐐𝐬[ π’„πŸ, … , 𝒄𝒏 = π’„πŸ

β€² , … , 𝒄𝒏 β€²

] Output: π’„πŸ

β€² , … , 𝒄𝒏 β€²

Problem: Does not measure hardness of winning all uncorrupted instances.

Reason: If βˆƒ adversary with 𝐐𝐬[π’„πŸ = π’„πŸ

β€² ] > 3/4

Then βˆƒ adversary guessing second bit at random, with 𝐐𝐬 π’„πŸ, π’„πŸ‘ = π’„πŸ

β€² , π’„πŸ‘ β€²

> 3 4 Γ— 1 2 = 3/8

slide-81
SLIDE 81

Defining mi security for encryption Attempt #1: AND-advantage LORA-security: Advantage: ππžπ°π§βˆ’π¦π©π¬π› 𝐡 = 𝐐𝐬[ π’„πŸ, … , 𝒄𝒏 = π’„πŸ

β€² , … , 𝒄𝒏 β€²

] Output: π’„πŸ

β€² , … , 𝒄𝒏 β€²

Problem: Does not measure hardness of winning all uncorrupted instances.

Reason: If βˆƒ adversary with 𝐐𝐬[π’„πŸ = π’„πŸ

β€² ] > 3/4

Then βˆƒ adversary guessing second bit at random, with 𝐐𝐬 π’„πŸ, π’„πŸ‘ = π’„πŸ

β€² , π’„πŸ‘ β€²

> 3 4 Γ— 1 2 = 3/8

slide-82
SLIDE 82

Defining mi security for encryption Attempt #2: XOR-advantage

slide-83
SLIDE 83

Defining mi security for encryption Attempt #2: XOR-advantage LORX-security: Advantage: ππžπ°π§βˆ’π¦π©π¬π’š 𝐡 = 2 Γ— 𝐐𝐬 𝒄′ = π’„πŸ βŠ• β‹― βŠ• 𝒄𝒏 βˆ’ 1/2 Output: 𝒄′

slide-84
SLIDE 84

Defining mi security for encryption Attempt #2: XOR-advantage LORX-security: Advantage: ππžπ°π§βˆ’π¦π©π¬π’š 𝐡 = 2 Γ— 𝐐𝐬 𝒄′ = π’„πŸ βŠ• β‹― βŠ• 𝒄𝒏 βˆ’ 1/2 Output: 𝒄′ Reason: If βˆƒ adversary with 𝐐𝐬 𝒄′ = π’„πŸ > 1 + 𝜁 2 Then: Adversary guessing second bit has no advantage 𝐐𝐬 𝒄′ = π’„πŸ βŠ• π’„πŸ‘ = 1 2

slide-85
SLIDE 85

Mi security notions – Relations m-LORX m-LORA m-PWR

slide-86
SLIDE 86

Mi security notions – Relations m-LORX m-LORA m-PWR (1)

slide-87
SLIDE 87

Mi security notions – Relations m-LORX m-LORA m-PWR (1)

slide-88
SLIDE 88

Mi security notions – Relations m-LORX m-LORA m-PWR (1) 1) Holds in most cases – proof relies on probabilistic lemma from [U09].

slide-89
SLIDE 89

Mi security notions – Relations m-LORX m-LORA m-PWR (1) (2) 1) Holds in most cases – proof relies on probabilistic lemma from [U09].

slide-90
SLIDE 90

Mi security notions – Relations m-LORX m-LORA m-PWR (1) (2) 1) Holds in most cases – proof relies on probabilistic lemma from [U09]. 2) Very loose asymptotic implication – based on Goldreich- Levin Theorem [GL89]

slide-91
SLIDE 91

Relations – LOR vs ROR 𝒄′

ENC(𝒒𝒙, 𝒏𝒄)

𝑐 ← 0,1 π‘žπ‘₯ ← 𝑄𝑋𝐸 π’πŸ, π’πŸ LOR-Security ROR-Security 𝒄′

ENC(𝒒𝒙, 𝒏𝒄)

𝑐 ← 0,1 𝑛1 ← 𝑁 π‘žπ‘₯ ← 𝑄𝑋𝐸 π’πŸ

slide-92
SLIDE 92

Relations – LOR vs ROR

slide-93
SLIDE 93

Relations – LOR vs ROR

Classical textbook theorem. 𝐁𝐞𝐰ror 𝒖 ≀ 𝐁𝐞𝐰lor 𝒖 ≀ πŸ‘ Γ— 𝐁𝐞𝐰ror 𝒖

slide-94
SLIDE 94

Relations – LOR vs ROR

Classical textbook theorem. 𝐁𝐞𝐰ror 𝒖 ≀ 𝐁𝐞𝐰lor 𝒖 ≀ πŸ‘ Γ— 𝐁𝐞𝐰ror 𝒖

Hybrid argument

slide-95
SLIDE 95

Relations – LOR vs ROR

Classical textbook theorem. 𝐁𝐞𝐰ror 𝒖 ≀ 𝐁𝐞𝐰lor 𝒖 ≀ πŸ‘ Γ— 𝐁𝐞𝐰ror 𝒖

Hybrid argument L R L $ $ R + ≀

slide-96
SLIDE 96

Relations – LOR vs ROR

Classical textbook theorem. 𝐁𝐞𝐰ror 𝒖 ≀ 𝐁𝐞𝐰lor 𝒖 ≀ πŸ‘ Γ— 𝐁𝐞𝐰ror 𝒖

Hybrid argument

Mi setting with m instances:

𝐁𝐞𝐰mβˆ’rorx 𝒖 ≀ 𝐁𝐞𝐰mβˆ’lorx 𝒖 ≀ πŸ‘π’ Γ— 𝐁𝐞𝐰mβˆ’rorx 𝒖

L R L $ $ R + ≀

slide-97
SLIDE 97

Relations – LOR vs ROR

Classical textbook theorem. 𝐁𝐞𝐰ror 𝒖 ≀ 𝐁𝐞𝐰lor 𝒖 ≀ πŸ‘ Γ— 𝐁𝐞𝐰ror 𝒖

Hybrid argument

Mi setting with m instances:

𝐁𝐞𝐰mβˆ’rorx 𝒖 ≀ 𝐁𝐞𝐰mβˆ’lorx 𝒖 ≀ πŸ‘π’ Γ— 𝐁𝐞𝐰mβˆ’rorx 𝒖

L R L $ $ R + ≀

L

R L $ $ R + ≀ L R L $ L $ $ R $ R + L $ $ R +

slide-98
SLIDE 98

Relations – LOR vs ROR

Classical textbook theorem. 𝐁𝐞𝐰ror 𝒖 ≀ 𝐁𝐞𝐰lor 𝒖 ≀ πŸ‘ Γ— 𝐁𝐞𝐰ror 𝒖

Hybrid argument

Mi setting with m instances:

𝐁𝐞𝐰mβˆ’rorx 𝒖 ≀ 𝐁𝐞𝐰mβˆ’lorx 𝒖 ≀ πŸ‘π’ Γ— 𝐁𝐞𝐰mβˆ’rorx 𝒖

L R L $ $ R + ≀

L

R L $ $ R + ≀ L R L $ L $ $ R $ R + L $ $ R + Tight!

slide-99
SLIDE 99

Outline

  • 1. Multi-instance security
  • 2. Security of PKCS#5 – A case study
slide-100
SLIDE 100

Outline

  • 1. Multi-instance security
  • 2. Security of PKCS#5 – A case study
slide-101
SLIDE 101

PKCS#5 – Defining KDF Security

slide-102
SLIDE 102

PKCS#5 – Defining KDF Security

Question: Does salting provably ensures multi- instance security amplification? YES!

slide-103
SLIDE 103

PKCS#5 – Defining KDF Security

Question: Does salting provably ensures multi- instance security amplification? YES!

…

π‘žπ‘₯||π’•π’ƒπ’Žπ’–

𝐿

H H H

slide-104
SLIDE 104

PKCS#5 – Defining KDF Security

Question: Does salting provably ensures multi- instance security amplification? YES!

…

π‘žπ‘₯||π’•π’ƒπ’Žπ’–

𝐿

H H H Main step: Security analysis of KDF1 for case H = RO.

slide-105
SLIDE 105

KDF Security in the ROM

RO

KDF1

π‘žπ‘₯1||𝑑𝑏1, … , π‘žπ‘₯𝑛||𝑑𝑏𝑛 𝐿1, … , 𝐿𝑛

KDF satisfies indifferentiability-like poperty [MRH04]

0/1

Sim

Test

π‘žπ‘₯1||𝑑𝑏1, … , π‘žπ‘₯𝑛||𝑑𝑏𝑛 𝐿1, … , 𝐿𝑛 0/1

βˆƒSim βˆ€ password distributions: Left β‰ˆ Right

slide-106
SLIDE 106

KDF Security in the ROM

RO

KDF1

π‘žπ‘₯1||𝑑𝑏1, … , π‘žπ‘₯𝑛||𝑑𝑏𝑛 𝐿1, … , 𝐿𝑛

KDF satisfies indifferentiability-like poperty [MRH04]

0/1

Sim

Test

π‘žπ‘₯1||𝑑𝑏1, … , π‘žπ‘₯𝑛||𝑑𝑏𝑛 𝐿1, … , 𝐿𝑛 0/1 π‘Ÿ queries π‘Ÿ queries

βˆƒSim βˆ€ password distributions: Left β‰ˆ Right

slide-107
SLIDE 107

KDF Security in the ROM

RO

KDF1

π‘žπ‘₯1||𝑑𝑏1, … , π‘žπ‘₯𝑛||𝑑𝑏𝑛 𝐿1, … , 𝐿𝑛

KDF satisfies indifferentiability-like poperty [MRH04]

0/1

Sim

Test

π‘žπ‘₯1||𝑑𝑏1, … , π‘žπ‘₯𝑛||𝑑𝑏𝑛 𝐿1, … , 𝐿𝑛 0/1 π‘Ÿ queries π‘Ÿ queries

βˆƒSim βˆ€ password distributions: Left β‰ˆ Right

slide-108
SLIDE 108

Final result: Security of PB-Encrypt

Question: Does salting deliver multi-instance security amplification for PKCS#5? PB-Encrypt(π‘žπ‘₯, 𝑁)

π’•π’ƒπ’Žπ’– οƒŸ {0,1}𝑑 𝐿 οƒŸ Hc(π‘žπ‘₯||π’•π’ƒπ’Žπ’–) 𝐷 οƒŸ ENC(𝐿, 𝑁) Return 𝐷||π’•π’ƒπ’Žπ’–

Theorem: βˆ€A making π‘Ÿ RO queries, βˆƒ B such that 𝐁𝐞𝐰PBβˆ’Encrypt

π§βˆ’π¬π©π¬π²

𝐡 < π‘Ÿ 𝑛𝑑𝑂 + 𝑛 βˆ™ 𝐁𝐞𝐰ENC

𝐬𝐩𝐬

𝐢 + π‘Ÿ2 2π‘œ

+

π‘Ÿ2 2𝑑

slide-109
SLIDE 109

Final result: Security of PB-Encrypt

Question: Does salting deliver multi-instance security amplification for PKCS#5? PB-Encrypt(π‘žπ‘₯, 𝑁)

π’•π’ƒπ’Žπ’– οƒŸ {0,1}𝑑 𝐿 οƒŸ Hc(π‘žπ‘₯||π’•π’ƒπ’Žπ’–) 𝐷 οƒŸ ENC(𝐿, 𝑁) Return 𝐷||π’•π’ƒπ’Žπ’–

Theorem: βˆ€A making π‘Ÿ RO queries, βˆƒ B such that 𝐁𝐞𝐰PBβˆ’Encrypt

π§βˆ’π¬π©π¬π²

𝐡 < π‘Ÿ 𝑛𝑑𝑂 + 𝑛 βˆ™ 𝐁𝐞𝐰ENC

𝐬𝐩𝐬

𝐢 + π‘Ÿ2 2π‘œ

+

π‘Ÿ2 2𝑑

Work 𝑛 Γ— 𝑑 Γ— 𝑂 to break encryption (RO queries)

slide-110
SLIDE 110

Concluding Remarks Summary:

ο€  ο€  ο€  ο€  ο€ 

slide-111
SLIDE 111

Concluding Remarks Summary:

  • The world has multiple users

ο€  ο€  ο€  ο€ 

slide-112
SLIDE 112

Concluding Remarks Summary:

  • The world has multiple users
  • Weak individual instances sometimes unavoidable

ο€  ο€  ο€ 

slide-113
SLIDE 113

Concluding Remarks Summary:

  • The world has multiple users
  • Weak individual instances sometimes unavoidable
  • Mi security as a second line of defense

ο€  ο€ 

slide-114
SLIDE 114

Concluding Remarks Summary:

  • The world has multiple users
  • Weak individual instances sometimes unavoidable
  • Mi security as a second line of defense
  • Interesting technical questions

ο€ 

slide-115
SLIDE 115

Concluding Remarks Summary:

  • The world has multiple users
  • Weak individual instances sometimes unavoidable
  • Mi security as a second line of defense
  • Interesting technical questions
  • First security analysis of PKCS#5 in the mi setting
slide-116
SLIDE 116

Concluding Remarks Summary:

  • The world has multiple users
  • Weak individual instances sometimes unavoidable
  • Mi security as a second line of defense
  • Interesting technical questions
  • First security analysis of PKCS#5 in the mi setting

Thank you!