Symmetric Encryption via Keyrings and ECC Ronald L. Rivest - - PowerPoint PPT Presentation

symmetric encryption via keyrings and ecc
SMART_READER_LITE
LIVE PREVIEW

Symmetric Encryption via Keyrings and ECC Ronald L. Rivest - - PowerPoint PPT Presentation

Symmetric Encryption via Keyrings and ECC Ronald L. Rivest Institute Professor MIT, Cambridge, MA ArcticCrypt 2016-07-18 Outline MotivationSimplifying Crypto Key Updates Keyring (Bag of Words) Model Incremental Key Updates Keyring


slide-1
SLIDE 1

Symmetric Encryption via Keyrings and ECC

Ronald L. Rivest

Institute Professor MIT, Cambridge, MA

ArcticCrypt 2016-07-18

slide-2
SLIDE 2

Outline

Motivation—Simplifying Crypto Key Updates Keyring (Bag of Words) Model Incremental Key Updates Keyring Issues Resilience Prior Work—Biometrics, Fuzziness, Quantum Resilient Set Vectorization Security Analysis Encrypting with keyrings Error-correction Keyring encryption details Attacks Discussion

slide-3
SLIDE 3

Motivation—Simplifying Key Updates

← →

Updating symmetric crypto keys is hard, because they:

slide-4
SLIDE 4

Motivation—Simplifying Key Updates

← →

Updating symmetric crypto keys is hard, because they:

◮ have high entropy

slide-5
SLIDE 5

Motivation—Simplifying Key Updates

← →

Updating symmetric crypto keys is hard, because they:

◮ have high entropy ◮ are not memorable, and

slide-6
SLIDE 6

Motivation—Simplifying Key Updates

← →

Updating symmetric crypto keys is hard, because they:

◮ have high entropy ◮ are not memorable, and ◮ are updated “all-at-once” instead of

incrementally.

slide-7
SLIDE 7

Motivation—Simplifying Key Updates

← →

Updating symmetric crypto keys is hard, because they:

◮ have high entropy ◮ are not memorable, and ◮ are updated “all-at-once” instead of

incrementally. Are there better (non-PK) methods?

slide-8
SLIDE 8

Keyring (Bag of Words) Model Main idea: Key is a “bag of words” agreed upon by sender and receiver. (Really “set” not “bag” (multiset).)

slide-9
SLIDE 9

Keyrings

◮ Each word is a keyword.

slide-10
SLIDE 10

Keyrings

◮ Each word is a keyword. ◮ Bag is a keyring.

slide-11
SLIDE 11

Keyrings

◮ Each word is a keyword. ◮ Bag is a keyring. ◮ Separate keyring for each

sender/receiver pair.

slide-12
SLIDE 12

Keyrings

◮ Each word is a keyword. ◮ Bag is a keyring. ◮ Separate keyring for each

sender/receiver pair.

◮ Sender and receiver have

identical (or nearly identical) keyrings.

slide-13
SLIDE 13

Keyrings

◮ Each word is a keyword. ◮ Bag is a keyring. ◮ Separate keyring for each

sender/receiver pair.

◮ Sender and receiver have

identical (or nearly identical) keyrings.

◮ Maybe 10–100 keywords on

a keyring.

slide-14
SLIDE 14

Incremental Key Updates Are Simple Alice says privately to Bob:

◮ Let’s add “garlic” to our keyring.

slide-15
SLIDE 15

Incremental Key Updates Are Simple Alice says privately to Bob:

◮ Let’s add “garlic” to our keyring. ◮ Let’s delete “mustard” from our keyring.

slide-16
SLIDE 16

Incremental Key Updates Are Simple Alice says privately to Bob:

◮ Let’s add “garlic” to our keyring. ◮ Let’s delete “mustard” from our keyring. ◮ Let’s add all words from your last two tweets.

slide-17
SLIDE 17

Incremental Key Updates Are Simple Alice says privately to Bob:

◮ Let’s add “garlic” to our keyring. ◮ Let’s delete “mustard” from our keyring. ◮ Let’s add all words from your last two tweets. ◮ Let’s add words of a quote:

slide-18
SLIDE 18

Incremental Key Updates Are Simple Alice says privately to Bob:

◮ Let’s add “garlic” to our keyring. ◮ Let’s delete “mustard” from our keyring. ◮ Let’s add all words from your last two tweets. ◮ Let’s add words of a quote:

“It is a miracle that curiosity survives formal education.” (Albert Einstein)

slide-19
SLIDE 19

Incremental Key Updates Are Simple Alice says privately to Bob:

◮ Let’s add “garlic” to our keyring. ◮ Let’s delete “mustard” from our keyring. ◮ Let’s add all words from your last two tweets. ◮ Let’s add words of a quote:

“It is a miracle that curiosity survives formal education.” (Albert Einstein)

◮ Let’s delete all keywords added in 2015.

slide-20
SLIDE 20

Scenario

key = 0x47a31...f3 key = 0x47a31...f3

slide-21
SLIDE 21

Scenario

slide-22
SLIDE 22

Scenario

slide-23
SLIDE 23

Keyring Issues

◮ (Resilience) How to make encryption work

even if Alice and Bob’s keyrings are slightly “out of sync”?

slide-24
SLIDE 24

Keyring Issues

◮ (Resilience) How to make encryption work

even if Alice and Bob’s keyrings are slightly “out of sync”?

◮ (Keying) How to use a “bag of words” as a

symmetric crypto key?

slide-25
SLIDE 25

Keyring Issues

◮ (Resilience) How to make encryption work

even if Alice and Bob’s keyrings are slightly “out of sync”?

◮ (Keying) How to use a “bag of words” as a

symmetric crypto key?

◮ (Security) How to keep adversary from

breaking in and then “tracking” keyring evolution?

slide-26
SLIDE 26

Resilience We want that a ciphertext made using keyring A can be decrypted using different keyring B, as long as A and B are “close”.

slide-27
SLIDE 27

Resilience We want that a ciphertext made using keyring A can be decrypted using different keyring B, as long as A and B are “close”. Two metrics of interest:

slide-28
SLIDE 28

Resilience We want that a ciphertext made using keyring A can be decrypted using different keyring B, as long as A and B are “close”. Two metrics of interest:

◮ Set distance. (Relative) size of set

  • difference. That is, |A ⊕ B| or |A ⊕ B|/|A ∪ B|.
slide-29
SLIDE 29

Resilience We want that a ciphertext made using keyring A can be decrypted using different keyring B, as long as A and B are “close”. Two metrics of interest:

◮ Set distance. (Relative) size of set

  • difference. That is, |A ⊕ B| or |A ⊕ B|/|A ∪ B|.

◮ Hamming distance. (Relative) number of

positions in which vectors x and y differ.

slide-30
SLIDE 30

Resilience We want that a ciphertext made using keyring A can be decrypted using different keyring B, as long as A and B are “close”. Two metrics of interest:

◮ Set distance. (Relative) size of set

  • difference. That is, |A ⊕ B| or |A ⊕ B|/|A ∪ B|.

◮ Hamming distance. (Relative) number of

positions in which vectors x and y differ. We describe a nice way of converting from the first to the second.

slide-31
SLIDE 31

Biometrics: Use a fingerprint as key Our problem is not particularly new...

slide-32
SLIDE 32

Biometrics: Use a fingerprint as key Our problem is not particularly new... Similar to the problem of encrypting a key with a biometric; biometric features ∼ keywords.

slide-33
SLIDE 33

Fuzziness everywhere

◮ Juels/Wattenberg 1999 “A Fuzzy

Commitment Scheme”. Introduces “code-offset” construction.

slide-34
SLIDE 34

Fuzziness everywhere

◮ Juels/Wattenberg 1999 “A Fuzzy

Commitment Scheme”. Introduces “code-offset” construction.

◮ Juels/Sudan 2006 “A Fuzzy Vault Scheme”

Based on clever use of interpolation.

slide-35
SLIDE 35

Fuzziness everywhere

◮ Juels/Wattenberg 1999 “A Fuzzy

Commitment Scheme”. Introduces “code-offset” construction.

◮ Juels/Sudan 2006 “A Fuzzy Vault Scheme”

Based on clever use of interpolation.

◮ Dodis/Ostrovsky/Reyzin/Smith 2004

“Fuzzy Extractors: How to Generate Strong Keys from Biometrics and Other Noisy Data” Relates ‘secure sketches” and fuzzy

  • extractors. (Also: Dodis/Reyzin/Smith 2007

“Fuzzy Extractors”)

slide-36
SLIDE 36

Fuzziness everywhere

◮ Juels/Wattenberg 1999 “A Fuzzy

Commitment Scheme”. Introduces “code-offset” construction.

◮ Juels/Sudan 2006 “A Fuzzy Vault Scheme”

Based on clever use of interpolation.

◮ Dodis/Ostrovsky/Reyzin/Smith 2004

“Fuzzy Extractors: How to Generate Strong Keys from Biometrics and Other Noisy Data” Relates ‘secure sketches” and fuzzy

  • extractors. (Also: Dodis/Reyzin/Smith 2007

“Fuzzy Extractors”)

◮ Sahai/Waters 2005 “Fuzzy IBE”. Fuzzy PK

scheme.

slide-37
SLIDE 37

PinSketch[DORS04]

◮ Uses BCH ECC with algorithms that work

efficiently on sparse vectors.

◮ Message transmitted has length δ over

GF(2α), where 2α ≥ |U| and U is universe of keys, and where δ is upper bound on the size of the set difference A ⊕ B.

◮ Allows recipient to reconstruct A.

slide-38
SLIDE 38

Quantum Key Distribution

◮ Bennet Brassard 1984

“Quantum cryptography: Public key distribution and coin tossing” Information reconciliation by public discussion over a classical channel.

slide-39
SLIDE 39

Resilient Set Vectorization A set vectorizer φ takes as input a set A, an integer n, and a nonce N, and produces as

  • utput a uniformly chosen (over the choice of

nonce) vector from An. A resilient set vectorizer is a set vectorizer with the property that for any two sets A and B with |A ∩ B| = p · |A ∪ B| (for some p, 0 ≤ p ≤ 1), we have d(φ(A, n, N), φ(B, n, N)) ∼ n − Bin(n, p) . That is, if a fraction p of A ∪ B are shared, then the fraction of positions where φ(A, n, N) and φ(B, n, N) agree follows the binomial distribution with mean np.

slide-40
SLIDE 40

Keyword Matching Game (≡ RSV with n = 1)

◮ Alice and Bob agree on a strategy.

slide-41
SLIDE 41

Keyword Matching Game (≡ RSV with n = 1)

◮ Alice and Bob agree on a strategy. ◮ Alice is given an arbitrary keyring A.

slide-42
SLIDE 42

Keyword Matching Game (≡ RSV with n = 1)

◮ Alice and Bob agree on a strategy. ◮ Alice is given an arbitrary keyring A. ◮ Bob is given an arbitrary keyring B.

slide-43
SLIDE 43

Keyword Matching Game (≡ RSV with n = 1)

◮ Alice and Bob agree on a strategy. ◮ Alice is given an arbitrary keyring A. ◮ Bob is given an arbitrary keyring B. ◮ They are told sizes of A, B, A ∩ B, A ∪ B, U.

slide-44
SLIDE 44

Keyword Matching Game (≡ RSV with n = 1)

◮ Alice and Bob agree on a strategy. ◮ Alice is given an arbitrary keyring A. ◮ Bob is given an arbitrary keyring B. ◮ They are told sizes of A, B, A ∩ B, A ∪ B, U. ◮ They are given the same random nonce N.

slide-45
SLIDE 45

Keyword Matching Game (≡ RSV with n = 1)

◮ Alice and Bob agree on a strategy. ◮ Alice is given an arbitrary keyring A. ◮ Bob is given an arbitrary keyring B. ◮ They are told sizes of A, B, A ∩ B, A ∪ B, U. ◮ They are given the same random nonce N. ◮ Alice and Bob separately each pick one

element from their keyrings.

slide-46
SLIDE 46

Keyword Matching Game (≡ RSV with n = 1)

◮ Alice and Bob agree on a strategy. ◮ Alice is given an arbitrary keyring A. ◮ Bob is given an arbitrary keyring B. ◮ They are told sizes of A, B, A ∩ B, A ∪ B, U. ◮ They are given the same random nonce N. ◮ Alice and Bob separately each pick one

element from their keyrings.

◮ What is the maximum probability that they

pick the same element, using optimal strategy?

slide-47
SLIDE 47

Simplest interesting example |A| = 2 |A ∩ B| = 1 |B| = 2 |U| = 3

CAT DOG RAT

slide-48
SLIDE 48

Simplest interesting example |A| = 2 |A ∩ B| = 1 |B| = 2 |U| = 3

CAT DOG RAT

Alice sees:

N = 3762134912

Should Alice pick CAT or DOG?

slide-49
SLIDE 49

Simplest interesting example |A| = 2 |A ∩ B| = 1 |B| = 2 |U| = 3

CAT DOG RAT

N = 3762134912

Bob sees: Should Bob pick DOG or RAT?

slide-50
SLIDE 50

Simplest interesting example |A| = 2 |A ∩ B| = 1 |B| = 2 |U| = 3

CAT DOG RAT

N = 3762134912

Should Alice pick CAT or DOG? Should Bob pick DOG or RAT?

slide-51
SLIDE 51

Simplest interesting example |A| = 2 |A ∩ B| = 1 |B| = 2 |U| = 3

CAT DOG RAT

N = 3762134912

Should Alice pick CAT or DOG? Should Bob pick DOG or RAT? Agree with prob 1/4? 1/3? 1/2?...

slide-52
SLIDE 52

Keyword Matching Game – Random Strategy

◮ If Alice and Bob make their choices

independently at random, then they match with probability |A ∩ B|/|A| |B| .

slide-53
SLIDE 53

Keyword Matching Game – Random Strategy

◮ If Alice and Bob make their choices

independently at random, then they match with probability |A ∩ B|/|A| |B| .

◮ (Pretty small, especially when A and B are

large.)

slide-54
SLIDE 54

Keyword Matching Game for |A ∩ B| = 1 Brute-force searches for optimal strategies (surprisingly) suggested the following

Theorem

When |A ∩ B| = 1 and A ∪ B = U the optimum match probability is at least 1/ max(|A|, |B|) .

slide-55
SLIDE 55

Keyword Matching Game for |A ∩ B| = 1 Brute-force searches for optimal strategies (surprisingly) suggested the following

Theorem

When |A ∩ B| = 1 and A ∪ B = U the optimum match probability is at least 1/ max(|A|, |B|) . Proof: (at end).

slide-56
SLIDE 56

Keyword Matching Game for |A ∩ B| = 1 Brute-force searches for optimal strategies (surprisingly) suggested the following

Theorem

When |A ∩ B| = 1 and A ∪ B = U the optimum match probability is at least 1/ max(|A|, |B|) . Proof: (at end).

  • Exercise: Find such an optimal strategy for our

example that matches with probability 1/2.

slide-57
SLIDE 57

Keyword Matching Game for |A ∩ B| = 1 Brute-force searches for optimal strategies (surprisingly) suggested the following

Theorem

When |A ∩ B| = 1 and A ∪ B = U the optimum match probability is at least 1/ max(|A|, |B|) . Proof: (at end).

  • Exercise: Find such an optimal strategy for our

example that matches with probability 1/2. But |A ∩ B| = 1 and A ∪ B = U are unrealistic...

slide-58
SLIDE 58

Jaccard Index of Similarity

◮ The Jaccard similarity coefficient J(A, B)

measures the similarity of two sets A and B: J(A, B) = |A ∩ B| |A ∪ B| .

slide-59
SLIDE 59

Jaccard Index of Similarity

◮ The Jaccard similarity coefficient J(A, B)

measures the similarity of two sets A and B: J(A, B) = |A ∩ B| |A ∪ B| .

◮ It can be estimated using the MinHash

method (Broder 1997): Construct n random hash functions mapping elements to real

  • values. Compute the fraction f of them

having the same minimum in A as in B. Then E(f) = J(A, B) .

slide-60
SLIDE 60

Keyword Matching Game via MinHash

Theorem

Alice and Bob can always win with probability at least p = J(A, B) = |A ∩ B|/|A ∪ B| .

slide-61
SLIDE 61

Keyword Matching Game via MinHash

Theorem

Alice and Bob can always win with probability at least p = J(A, B) = |A ∩ B|/|A ∪ B| .

Proof.

◮ Initially, Alice and Bob agree on a random

hash function h.

◮ They each pick their keyword with minimum

hash-value.

◮ They win if one of their shared keywords has

the smallest hash value in both sets.

slide-62
SLIDE 62

Keyword Matching Game via MinHash

Theorem

Alice and Bob can always win with probability at least p = J(A, B) = |A ∩ B|/|A ∪ B| .

Proof.

◮ Initially, Alice and Bob agree on a random

hash function h.

◮ They each pick their keyword with minimum

hash-value.

◮ They win if one of their shared keywords has

the smallest hash value in both sets. Conjecture: The MinHash strategy is

  • ptimal for |A ∩ B| > 1.
slide-63
SLIDE 63

Resilient Set Vectorization (RSV) Alice iterates the MinHash method (with n random hash functions), to create a keyword vector W = φ(A, n, N) = (W1, W2, . . . , Wn)

  • f some desired length n.
slide-64
SLIDE 64

Resilient Set Vectorization (RSV) Alice iterates the MinHash method (with n random hash functions), to create a keyword vector W = φ(A, n, N) = (W1, W2, . . . , Wn)

  • f some desired length n.

Bob (using same hashes) similarly creates a keyword vector W ′.

slide-65
SLIDE 65

Resilient Set Vectorization (RSV) Alice iterates the MinHash method (with n random hash functions), to create a keyword vector W = φ(A, n, N) = (W1, W2, . . . , Wn)

  • f some desired length n.

Bob (using same hashes) similarly creates a keyword vector W ′. Let z denote the number of positions in which W and W ′ agree, and let p = J(A, B). Then (under ROM) z ∼ Bin(n, p), so E(z) = np and σ(z) =

  • np(1 − p).
slide-66
SLIDE 66

Security Analysis Setup Suppose we can arrange things so that Bob can always decrypt Alice’s ciphertext if z ≥ 3n/4 .

slide-67
SLIDE 67

Security Analysis Setup Suppose we can arrange things so that Bob can always decrypt Alice’s ciphertext if z ≥ 3n/4 . Suppose further we can arrange things so that the Adversary can’t decrypt Alice’s ciphertext if the number z′ of positions of W it knows (or guesses) correctly satisfies z′ < n/2 .

slide-68
SLIDE 68

Analysis–for the good guys

◮ Suppose Alice and Bob have

p = J(A, B) = 0.90 .

slide-69
SLIDE 69

Analysis–for the good guys

◮ Suppose Alice and Bob have

p = J(A, B) = 0.90 .

◮ Alice encrypts a message to Bob using

φ(A, n, N) as a key, where n = 256.

slide-70
SLIDE 70

Analysis–for the good guys

◮ Suppose Alice and Bob have

p = J(A, B) = 0.90 .

◮ Alice encrypts a message to Bob using

φ(A, n, N) as a key, where n = 256.

◮ Bob’s vector φ(B, n, N) agrees with

φ(A, n, N) in z positions.

slide-71
SLIDE 71

Analysis–for the good guys

◮ Suppose Alice and Bob have

p = J(A, B) = 0.90 .

◮ Alice encrypts a message to Bob using

φ(A, n, N) as a key, where n = 256.

◮ Bob’s vector φ(B, n, N) agrees with

φ(A, n, N) in z positions.

◮ If z ≥ 192, Bob can decrypt the message.

slide-72
SLIDE 72

Analysis–for the good guys

◮ Suppose Alice and Bob have

p = J(A, B) = 0.90 .

◮ Alice encrypts a message to Bob using

φ(A, n, N) as a key, where n = 256.

◮ Bob’s vector φ(B, n, N) agrees with

φ(A, n, N) in z positions.

◮ If z ≥ 192, Bob can decrypt the message. ◮ Bob fails to decrypt with near-zero

probability: Prob (z < 192) = 1.5 × 10−12 .

slide-73
SLIDE 73

Analysis–for the Adversary

◮ Suppose Adversary knows (or guesses) Q, a

set of 1/4 of Alice’s keyring A, so p′ = J(A, Q) = 0.25 .

slide-74
SLIDE 74

Analysis–for the Adversary

◮ Suppose Adversary knows (or guesses) Q, a

set of 1/4 of Alice’s keyring A, so p′ = J(A, Q) = 0.25 .

◮ Alice encrypts a message to Bob using

φ(A, n, N) as a key; Adversary overhears ciphertext.

slide-75
SLIDE 75

Analysis–for the Adversary

◮ Suppose Adversary knows (or guesses) Q, a

set of 1/4 of Alice’s keyring A, so p′ = J(A, Q) = 0.25 .

◮ Alice encrypts a message to Bob using

φ(A, n, N) as a key; Adversary overhears ciphertext.

◮ Adversary’s vector φ(Q, n, N) agrees with

Alice’s in z′ positions.

slide-76
SLIDE 76

Analysis–for the Adversary

◮ Suppose Adversary knows (or guesses) Q, a

set of 1/4 of Alice’s keyring A, so p′ = J(A, Q) = 0.25 .

◮ Alice encrypts a message to Bob using

φ(A, n, N) as a key; Adversary overhears ciphertext.

◮ Adversary’s vector φ(Q, n, N) agrees with

Alice’s in z′ positions.

◮ If z′ ≥ 128, Adversary can decrypt message.

slide-77
SLIDE 77

Analysis–for the Adversary

◮ Suppose Adversary knows (or guesses) Q, a

set of 1/4 of Alice’s keyring A, so p′ = J(A, Q) = 0.25 .

◮ Alice encrypts a message to Bob using

φ(A, n, N) as a key; Adversary overhears ciphertext.

◮ Adversary’s vector φ(Q, n, N) agrees with

Alice’s in z′ positions.

◮ If z′ ≥ 128, Adversary can decrypt message. ◮ But Adversary fails almost certainly, since

Prob (z′ ≥ 128) = 7.5 × 10−18 .

slide-78
SLIDE 78

Error Correction

◮ An (n, k) Reed-Solomon code has k

information symbols and codewords of length n. k n − k

slide-79
SLIDE 79

Error Correction

◮ An (n, k) Reed-Solomon code has k

information symbols and codewords of length n.

◮ Bob can efficiently correct up to (n − k)/2

errors and always obtain a unique decoding. k n − k

slide-80
SLIDE 80

Error Correction

◮ An (n, k) Reed-Solomon code has k

information symbols and codewords of length n.

◮ Bob can efficiently correct up to (n − k)/2

errors and always obtain a unique decoding.

◮ With list decoding Adversary can efficiently

correct up to (n − k) errors (and obtain a small number of possible decodings). k n − k

slide-81
SLIDE 81

Keyring proposal for encrypting M with keyring A

M A

slide-82
SLIDE 82

Keyring proposal for encrypting M with keyring A

M A K1 Kk

slide-83
SLIDE 83

Keyring proposal for encrypting M with keyring A

M A K1 Kk AE C T

Alice sends C, and T.

slide-84
SLIDE 84

Keyring proposal for encrypting M with keyring A

M A K1 Kk AE C T N3

Alice sends ( N3), C, and T.

slide-85
SLIDE 85

Keyring proposal for encrypting M with keyring A

M A K1 Kk AE C T N3 RSV W1 Wn

Alice sends ( N3), C, and T.

slide-86
SLIDE 86

Keyring proposal for encrypting M with keyring A

M A K1 Kk AE C T N3 RSV W1 Wn N1

Alice sends (N1, N3), C, and T.

slide-87
SLIDE 87

Keyring proposal for encrypting M with keyring A

M A K1 Kk AE C T N3 RSV W1 Wn N1 ECC X1 Xn

Alice sends (N1, N3), C, and T.

slide-88
SLIDE 88

Keyring proposal for encrypting M with keyring A

M A K1 Kk AE C T N3 RSV W1 Wn N1 ECC X1 Xn E E Y1 Yn

Alice sends (N1, N3), Y, C, and T.

slide-89
SLIDE 89

Keyring proposal for encrypting M with keyring A

M A K1 Kk AE C T N3 RSV W1 Wn N1 ECC X1 Xn E E Y1 Yn W1 Wn

Alice sends (N1, N3), Y, C, and T.

slide-90
SLIDE 90

Keyring proposal for encrypting M with keyring A

M A K1 Kk AE C T N3 RSV W1 Wn N1 ECC X1 Xn E E Y1 Yn W1 Wn N2+1 N2+n

Alice sends (N1, N2, N3), Y, C, and T.

slide-91
SLIDE 91

Compute nonces, K, C, T

◮ Choose random nonces N1, N2, N3.

slide-92
SLIDE 92

Compute nonces, K, C, T

◮ Choose random nonces N1, N2, N3. ◮ Choose n and k (e.g. n = 256, k = 128) and

byte size (GF(28)).

slide-93
SLIDE 93

Compute nonces, K, C, T

◮ Choose random nonces N1, N2, N3. ◮ Choose n and k (e.g. n = 256, k = 128) and

byte size (GF(28)).

◮ Choose random k-byte message key

K1, . . . , Kk (aka “vault contents”).

slide-94
SLIDE 94

Compute nonces, K, C, T

◮ Choose random nonces N1, N2, N3. ◮ Choose n and k (e.g. n = 256, k = 128) and

byte size (GF(28)).

◮ Choose random k-byte message key

K1, . . . , Kk (aka “vault contents”).

◮ Encrypt message M with key K and nonce

N3 using an authenticated encryption method to obtain ciphertext C and authentication tag T.

slide-95
SLIDE 95

Compute W, X, and Y

◮ Compute keyword vector W = φ(A, n, N1).

slide-96
SLIDE 96

Compute W, X, and Y

◮ Compute keyword vector W = φ(A, n, N1). ◮ Reed-Solomon-encode key to give n-byte

encoded key X1, . . . , Xn.

slide-97
SLIDE 97

Compute W, X, and Y

◮ Compute keyword vector W = φ(A, n, N1). ◮ Reed-Solomon-encode key to give n-byte

encoded key X1, . . . , Xn.

◮ Use each keyword vector element Wi as key

to encrypt each encoded key byte Xi: Yi = E(Wi, Xi, N2 + i) use small-domain encryption tweakable encryption method like “swap-or-not” (Hoang-Morris-Rogaway14).

slide-98
SLIDE 98

Compute W, X, and Y

◮ Compute keyword vector W = φ(A, n, N1). ◮ Reed-Solomon-encode key to give n-byte

encoded key X1, . . . , Xn.

◮ Use each keyword vector element Wi as key

to encrypt each encoded key byte Xi: Yi = E(Wi, Xi, N2 + i) use small-domain encryption tweakable encryption method like “swap-or-not” (Hoang-Morris-Rogaway14).

◮ Send (N1, N2, N3), Y, C, T.

slide-99
SLIDE 99

Decrypting (N1, N2, N3), Y, C, T with keyring B

B C T

Bob receives (N1, N2, N3), Y, C, and T.

slide-100
SLIDE 100

Decrypting (N1, N2, N3), Y, C, T with keyring B

B C T RSV W ′

1

W ′

n

N1

Bob receives (N1, N2, N3), Y, C, and T.

slide-101
SLIDE 101

Decrypting (N1, N2, N3), Y, C, T with keyring B

B C T RSV W ′

1

W ′

n

N1 X1 Xn D D Y1 Yn W ′

1

W ′

n

N2+1 N2+n

Bob receives (N1, N2, N3), Y, C, and T.

slide-102
SLIDE 102

Decrypting (N1, N2, N3), Y, C, T with keyring B

B K1 Kk C T RSV W ′

1

W ′

n

N1 ECC X1 Xn D D Y1 Yn W ′

1

W ′

n

N2+1 N2+n

Bob receives (N1, N2, N3), Y, C, and T.

slide-103
SLIDE 103

Decrypting (N1, N2, N3), Y, C, T with keyring B

M B K1 Kk AE C T N3 RSV W ′

1

W ′

n

N1 ECC X1 Xn D D Y1 Yn W ′

1

W ′

n

N2+1 N2+n

Bob receives (N1, N2, N3), Y, C, and T.

slide-104
SLIDE 104

Attack 1: Guessing large subset of A

◮ Adversary may try to guess a large subset of

A.

slide-105
SLIDE 105

Attack 1: Guessing large subset of A

◮ Adversary may try to guess a large subset of

A.

◮ Difficulty depends on A. Even if |U| = 4096

and |A| = 24 (chosen uniformly), guessing a 12-word subset of A has chance 24 12

  • /

4096 12

  • ≈ 2−94
  • f success.
slide-106
SLIDE 106

Attack 1: Guessing large subset of A

◮ Adversary may try to guess a large subset of

A.

◮ Difficulty depends on A. Even if |U| = 4096

and |A| = 24 (chosen uniformly), guessing a 12-word subset of A has chance 24 12

  • /

4096 12

  • ≈ 2−94
  • f success.

◮ Using keyrings may invite poor choices (just

as passwords tend to be poor). “Biometric” keyrings don’t have this problem.

slide-107
SLIDE 107

Attack 1: Guessing large subset of A

◮ Adversary may try to guess a large subset of

A.

◮ Difficulty depends on A. Even if |U| = 4096

and |A| = 24 (chosen uniformly), guessing a 12-word subset of A has chance 24 12

  • /

4096 12

  • ≈ 2−94
  • f success.

◮ Using keyrings may invite poor choices (just

as passwords tend to be poor). “Biometric” keyrings don’t have this problem.

◮ Initial keywords may be high-entropy.

slide-108
SLIDE 108

Attack 2: Stealing A, then tracking its evolution

◮ Stealing A, then tracking its evolution if

updates are small.

slide-109
SLIDE 109

Attack 2: Stealing A, then tracking its evolution

◮ Stealing A, then tracking its evolution if

updates are small.

◮ Make updates large every once in a while!

slide-110
SLIDE 110

Attack 2: Stealing A, then tracking its evolution

◮ Stealing A, then tracking its evolution if

updates are small.

◮ Make updates large every once in a while! ◮ Reminiscent of problems of refreshing

entropy pool in PRNG. (Ferguson-Schneier-Kohn’10, Dodis-Shamir- StephensDavidowitz-Wich’14).

slide-111
SLIDE 111

Attack 3: Playing Matching Game better

◮ We only conjectured that MinHash strategy

was best way to play Keyword Matching Game.

slide-112
SLIDE 112

Attack 3: Playing Matching Game better

◮ We only conjectured that MinHash strategy

was best way to play Keyword Matching Game.

◮ Perhaps Adversary can play this game better

than Bob can, even for a fixed strategy by Alice!

slide-113
SLIDE 113

Attack 3: Playing Matching Game better

◮ We only conjectured that MinHash strategy

was best way to play Keyword Matching Game.

◮ Perhaps Adversary can play this game better

than Bob can, even for a fixed strategy by Alice!

◮ We need to prove that MinHash strategy is

  • ptimal (for |A ∩ B| > 1)!
slide-114
SLIDE 114

Attack 4: Chosen ciphertext attack

◮ Given a valid ciphertext, Adversary can use

Bob as a pass/fail decryption oracle to do a sensitivity analysis disclosing where he has correct keywords.

slide-115
SLIDE 115

Attack 4: Chosen ciphertext attack

◮ Given a valid ciphertext, Adversary can use

Bob as a pass/fail decryption oracle to do a sensitivity analysis disclosing where he has correct keywords.

◮ Serious! Adversary may compute set of

candidate words with small MinHash values in each such position. These are good candidates for being in B.

slide-116
SLIDE 116

Attack 4: Chosen ciphertext attack

◮ Given a valid ciphertext, Adversary can use

Bob as a pass/fail decryption oracle to do a sensitivity analysis disclosing where he has correct keywords.

◮ Serious! Adversary may compute set of

candidate words with small MinHash values in each such position. These are good candidates for being in B.

◮ Encrypt M with AEAD instead of AE, where

AD includes Y and nonces. Insecure? (AD and K are related.) Proof needed.

slide-117
SLIDE 117

Comparison with PinSketch

◮ Keyring scheme is not a “sketch”—Bob can’t

recover A.

slide-118
SLIDE 118

Comparison with PinSketch

◮ Keyring scheme is not a “sketch”—Bob can’t

recover A.

◮ Keyring scheme isn’t restricted to certain

error codes (e.g. algebraic codes).

slide-119
SLIDE 119

Comparison with PinSketch

◮ Keyring scheme is not a “sketch”—Bob can’t

recover A.

◮ Keyring scheme isn’t restricted to certain

error codes (e.g. algebraic codes).

◮ We don’t require bounded |U|.

slide-120
SLIDE 120

Comparison with PinSketch

◮ Keyring scheme is not a “sketch”—Bob can’t

recover A.

◮ Keyring scheme isn’t restricted to certain

error codes (e.g. algebraic codes).

◮ We don’t require bounded |U|. ◮ PinSketch messages have size

|A ⊕ B| log |U| .

slide-121
SLIDE 121

Comparison with PinSketch

◮ Keyring scheme is not a “sketch”—Bob can’t

recover A.

◮ Keyring scheme isn’t restricted to certain

error codes (e.g. algebraic codes).

◮ We don’t require bounded |U|. ◮ PinSketch messages have size

|A ⊕ B| log |U| .

◮ We send n = 256 bytes plus nonces.

slide-122
SLIDE 122

Comparison with PinSketch

◮ Keyring scheme is not a “sketch”—Bob can’t

recover A.

◮ Keyring scheme isn’t restricted to certain

error codes (e.g. algebraic codes).

◮ We don’t require bounded |U|. ◮ PinSketch messages have size

|A ⊕ B| log |U| .

◮ We send n = 256 bytes plus nonces. ◮ Bob can decode whp if

p − k/n ≥ c

  • np(1 − p), which holds for

constant n if p > (1 + ǫ)k/n.

slide-123
SLIDE 123

Summary

◮ New scheme facilitates updates of keys;

these updates can now be done incrementally as well as all at once.

slide-124
SLIDE 124

Summary

◮ New scheme facilitates updates of keys;

these updates can now be done incrementally as well as all at once.

◮ New scheme has reduced message size.

slide-125
SLIDE 125

Summary

◮ New scheme facilitates updates of keys;

these updates can now be done incrementally as well as all at once.

◮ New scheme has reduced message size. ◮ Security is controllable via choices of n and

keyring size.

slide-126
SLIDE 126

Summary

◮ New scheme facilitates updates of keys;

these updates can now be done incrementally as well as all at once.

◮ New scheme has reduced message size. ◮ Security is controllable via choices of n and

keyring size.

◮ Keyword Matching Game of possible

independent interest.

slide-127
SLIDE 127

Summary

◮ New scheme facilitates updates of keys;

these updates can now be done incrementally as well as all at once.

◮ New scheme has reduced message size. ◮ Security is controllable via choices of n and

keyring size.

◮ Keyword Matching Game of possible

independent interest.

◮ Open problems include

slide-128
SLIDE 128

Summary

◮ New scheme facilitates updates of keys;

these updates can now be done incrementally as well as all at once.

◮ New scheme has reduced message size. ◮ Security is controllable via choices of n and

keyring size.

◮ Keyword Matching Game of possible

independent interest.

◮ Open problems include

◮ Determining optimal strategy in Keyword Matching Game.

(Is it MinHash?)

slide-129
SLIDE 129

Summary

◮ New scheme facilitates updates of keys;

these updates can now be done incrementally as well as all at once.

◮ New scheme has reduced message size. ◮ Security is controllable via choices of n and

keyring size.

◮ Keyword Matching Game of possible

independent interest.

◮ Open problems include

◮ Determining optimal strategy in Keyword Matching Game.

(Is it MinHash?)

◮ Analyzing security of AEAD variant against CCA.

slide-130
SLIDE 130

The End

slide-131
SLIDE 131

Strategy for p = 1/ max(|A|, |B|) when |A ∩ B| = 1, U = A ∪ B, |A| ≥ |B|

◮ Create bipartite graph whose vertices are all

|A|-subsets (resp. all |B|-subsets) of U with an (X, Y) edge iff |X ∩ Y| = 1. The |A|-subsets have degree |A|; the |B|-subsets have degree |B|.

slide-132
SLIDE 132

Strategy for p = 1/ max(|A|, |B|) when |A ∩ B| = 1, U = A ∪ B, |A| ≥ |B|

◮ Create bipartite graph whose vertices are all

|A|-subsets (resp. all |B|-subsets) of U with an (X, Y) edge iff |X ∩ Y| = 1. The |A|-subsets have degree |A|; the |B|-subsets have degree |B|.

◮ By Hall’s Thm you can find a matching that

covers all |A|-subsets.

slide-133
SLIDE 133

Strategy for p = 1/ max(|A|, |B|) when |A ∩ B| = 1, U = A ∪ B, |A| ≥ |B|

◮ Create bipartite graph whose vertices are all

|A|-subsets (resp. all |B|-subsets) of U with an (X, Y) edge iff |X ∩ Y| = 1. The |A|-subsets have degree |A|; the |B|-subsets have degree |B|.

◮ By Hall’s Thm you can find a matching that

covers all |A|-subsets.

◮ Alice and Bob each choose keyword shared

with their matched subset (if any).

slide-134
SLIDE 134

Strategy for p = 1/ max(|A|, |B|) when |A ∩ B| = 1, U = A ∪ B, |A| ≥ |B|

◮ Create bipartite graph whose vertices are all

|A|-subsets (resp. all |B|-subsets) of U with an (X, Y) edge iff |X ∩ Y| = 1. The |A|-subsets have degree |A|; the |B|-subsets have degree |B|.

◮ By Hall’s Thm you can find a matching that

covers all |A|-subsets.

◮ Alice and Bob each choose keyword shared

with their matched subset (if any).

◮ They pick the same keyword with probability

1/|A| = 1/ max(|A|, |B|).

slide-135
SLIDE 135

Strategy for p = 1/ max(|A|, |B|) when |A ∩ B| = 1, U = A ∪ B, |A| ≥ |B|

◮ Create bipartite graph whose vertices are all

|A|-subsets (resp. all |B|-subsets) of U with an (X, Y) edge iff |X ∩ Y| = 1. The |A|-subsets have degree |A|; the |B|-subsets have degree |B|.

◮ By Hall’s Thm you can find a matching that

covers all |A|-subsets.

◮ Alice and Bob each choose keyword shared

with their matched subset (if any).

◮ They pick the same keyword with probability

1/|A| = 1/ max(|A|, |B|).

  • ◮ (This only works for |A ∩ B| = 1.

)