0% found this document useful (0 votes)
197 views

08 Odds and Ends v2 Annotated PDF

This document discusses key derivation functions (KDFs) and deterministic encryption. It describes how to derive multiple keys from a single source key using a KDF. When the source key is uniform, a PRF-based KDF can be used, but when non-uniform, an extract-then-expand approach like HKDF is better. It also covers password-based KDFs that use salts and iterations to strengthen security. Deterministic encryption is needed for applications like encrypted databases but is not CPA secure since identical ciphertexts reveal information. Unique messages can address this issue.

Uploaded by

Chazar Frs Frs
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
197 views

08 Odds and Ends v2 Annotated PDF

This document discusses key derivation functions (KDFs) and deterministic encryption. It describes how to derive multiple keys from a single source key using a KDF. When the source key is uniform, a PRF-based KDF can be used, but when non-uniform, an extract-then-expand approach like HKDF is better. It also covers password-based KDFs that use salts and iterations to strengthen security. Deterministic encryption is needed for applications like encrypted databases but is not CPA secure since identical ciphertexts reveal information. Unique messages can address this issue.

Uploaded by

Chazar Frs Frs
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 49

Online

  Cryptography   Course                                                                             Dan   Boneh  

Odds  and  ends  

Key  Deriva1on  

Dan  Boneh  
Deriving  many  keys  from  one  
Typical  scenario.          a  single  source  key  (SK)  is  sampled  from:  
•  Hardware  random  number  generator  
•  A  key  exchange  protocol      (discussed  later)  

Need  many  keys  to  secure  session:  


•  unidirec1onal  keys;    mul1ple  keys  for  nonce-­‐based  CBC.  

Goal:      generate  many  keys  from  this  one  source  key  

SK   k1,    k2,    k3,    …  


KDF  
Dan  Boneh  
When  source  key  is  uniform  
F:      a  PRF  with  key  space  K  and  outputs  in  {0,1}n  
 

Suppose  source  key  SK  is  uniform  in  K  


•  Define  Key  Deriva1on  Func1on  (KDF)  as:  
KDF(  SK,  CTX,  L)  :=    
             F(SK,    (CTX  ll  0))    ll    F(SK,    (CTX  ll  1))    ll    ⋯    ll  F(SK,    (CTX  ll  L))    
 
CTX:      a  string  that  uniquely  iden1fies  the  applica1on  
Dan  Boneh  
KDF(  SK,  CTX,  L)  :=  
           F(SK,    (CTX  ll  0))    ll    F(SK,    (CTX  ll  1))    ll    ⋯    ll  F(SK,    (CTX  ll  L))    

What  is  the  purpose  of  CTX?  

Even  if  two  apps  sample  same  SK  they  get  indep.  keys  
It’s  good  prac1ce  to  label  strings  with  the  app.  name  
It  serves  no  purpose  
What  if  source  key  is  not  uniform?  
Recall:    PRFs  are  pseudo  random  only  when  key  is  uniform  in  K  
•   SK  not  uniform    ⇒      PRF  output  may  not  look  random  

Source  key  oXen  not  uniformly  random:  


 
•  Key  exchange  protocol:      key  uniform  in  some  subset  of  K  

•  Hardware  RNG:        may  produce  biased  output  

Dan  Boneh  
Extract-­‐then-­‐Expand  paradigm  
Step  1:        extract    pseudo-­‐random  key    k    from  source  key    SK  
  prob  

prob  
  extractor  
  SK   k  
 
salt  
 
  salt:      a  fixed  non-­‐secret  string  chosen  at  random  
 
step  2:      expand    k    by  using  it  as  a  PRF  key  as  before  
Dan  Boneh  
HKDF:      a  KDF  from  HMAC  
 
Implements  the  extract-­‐then-­‐expand  paradigm:  
 
•  extract:      use            k    ⟵    HMAC(  salt,    SK  )  

•  Then  expand  using  HMAC  as  a  PRF  with  key    k      

Dan  Boneh  
Password-­‐Based  KDF      (PBKDF)  
Deriving  keys  from  passwords:  
•  Do  not  use  HKDF:        passwords  have  insufficient  entropy    
•  Derived  keys  will  be  vulnerable  to  dic1onary  aaacks  
(more  on  this  later)  

PBKDF  defenses:              salt          and  a          slow  hash  funcJon  


 
Standard  approach:      PKCS#5    (PBKDF1)  
 H(c)(pwd  ll  salt):          iterate  hash  func1on    c    1mes  
 
Dan  Boneh  
End  of  Segment  

Dan  Boneh  
Online   Cryptography   Course                                                                             Dan   Boneh  

Odds  and  ends  

Determinis1c  Encryp1on  

Dan  Boneh  
The  need  for  det.  Encryp1on      (no  nonce)  

Alice   data   ??  

k1,  k2   Bob   data  


⋮  
encrypted  
database  

Dan  Boneh  
The  need  for  det.  Encryp1on      (no  nonce)  
??  
Alice   data  
k1,  k2   Bob   data  

,  “A lic e ”)   ⋮  
Later:   o rd    E(k 1
i eve  rec encrypted  
Retr database  
data  
Alice  
det.  enc.  enables  later  lookup  
Dan  Boneh  
Problem:    det.  enc.  cannot  be  CPA  secure  
The  problem:    aaacker  can  tell  when  two  ciphertexts    
   encrypt  the  same  message      ⇒      leaks  informa1on  

Leads  to  significant  aaacks  when  message  space  M  is  small.  

equal  ciphertexts  
means  same  index  

Dan  Boneh  
Problem:    det.  enc.  cannot  be  CPA  secure  
The  problem:    aaacker  can  tell  when  two  ciphertexts    
   encrypt  the  same  message      ⇒      leaks  informa1on  

Aaacker  wins  CPA  game:  

b   Chal.  
m0  ,  m0  ∈  M  
Adv.  
c0  ←E(k,  m0)  
k←K  
m0  ,  m1    ∈  M    
output  0  
c  ←  E(k,  mb)   if  c  =  c0  

Dan  Boneh  
 A  solu1on:      the  case  of  unique  messages  
Suppose  encryptor  never  encrypts  same  message  twice:  
 the  pair    (k  ,  m)      never  repeats  
 
This  happens  when  encryptor:  
•  Chooses  messages  at  random  from  a  large  msg  space    (e.g.  keys)  
•  Message  structure  ensures  uniqueness  (e.g.  unique  user  ID)  

Dan  Boneh  
Determinis1c  CPA  security  
E =  (E,D)      a  cipher  defined  over    (K,M,C). For      b=0,1      define  EXP(b)    as:  

for  i=1,…,q:      
b   Chal.   Adv.  
k←K   mi,0  ,  mi,1    ∈  M  :        |mi,0|  =  |mi,1|  

ci  ←  E(k,  mi,b)   b’  ∈  {0,1}  

where    m1,0,  …,  mq,0    are  dis1nct      and        m1,1,  …,  mq,1    are  dis1nct        

Def:    E  is  sem.  sec.  under  det.  CPA  if  for  all  efficient    A:  
 AdvdCPA  [A,E]    =    |Pr[EXP(0)=1]  –  Pr[EXP(1)=1]  |        is  negligible.  
Dan  Boneh  
A  Common  Mistake  
CBC  with  fixed  IV  is  not  det.  CPA  secure.  
 Let      E:  K  ×  {0,1}n  ⟶  {0,1}n      be  a  secure  PRP  used  in  CBC  

b   0n  1n      ,    0n  1n  


Chal.   Adv.  
c1  ←  [  FIV,    E(k,  0n⨁FIV)  ,  …]  
k←K  
m0=0n  ,      m1  =  1n  
output  0  
c  ←  [  FIV,    E(k,  FIV)  ]      or  
if  c[1]  =  c1[1]  
c  ←  [  FIV,    E(k,  1n⨁FIV)  ]  

Leads  to  significant  aaacks  in  prac1ce.  


Dan  Boneh  
Is  counter  mode  with  a  fixed  IV    det.  CPA  secure?  
message  
⨁  
F(k,  FIV)      ll    F(k,  FIV+1)  ll  …  ll  F(k,  FIV+L)  

ciphertext  

Yes  
b  
No   m  ,  m  
Adv.  
Chal.  
c  ←m⨁F(k,  FIV)  
It  depends   k←K  
m0  ,  m1       output  0  if  
c’  ←  mb⨁F(k,  FIV)        c⨁c’=m⨁m0  
End  of  Segment  

Dan  Boneh  
Online   Cryptography   Course                                                                             Dan   Boneh  

Odds  and  ends  

Determinis1c  Encryp1on  
Construc1ons:      
SIV  and  wide  PRP  

Dan  Boneh  
Determinis1c  encryp1on  
Needed  for  maintaining  an  encrypted  database  index  
•  Lookup  records  by  encrypted  index  

Determinis1c  CPA  security:  


•  Security  if  never  encrypt  same  message  twice  using  same  key:  
   the  pair      (key  ,  msg)      is  unique  
 
Formally:      we  defined  determinis1c  CPA  security  game  
 
Dan  Boneh  
Construc1on  1:    Synthe1c  IV      (SIV)  
Let    (E,  D)  be  a  CPA-­‐secure  encryp1on.              E(k,  m    ;    r)  ⟶  c  
Let      F:K  ×  M  ⟶  R      be  a  secure  PRF  

Define:          Edet(  (k1,k2)  ,  m)  =  

Thm:        Edet  is  sem.  sec.  under  det.  CPA  .  


Proof  sketch:          dis1nct  msgs.      ⇒        all  r’s  are  indist.  from  random  
 
Well  suited  for  messages  longer  than  one  AES  block    (16  bytes)        
  Dan  Boneh  
Ensuring  ciphertext  integrity  
Goal:      det.  CPA  security    and    ciphertext  integrity  
   ⇒      DAE:    determinisJc  authenJcated  encrypJon  
Consider  a  SIV  special  case:        SIV-­‐CTR      
   SIV  where  cipher  is  counter  mode  with  rand.  IV  

PRF    F   message  
k1  
CTR  mode  with  PRF    Fctr   k2  
Fctr(k2,  IV)      ll    Fctr(k2,  IV+1)  ll  …  ll  Fctr(k2,  IV+L)  

IV   ciphertext  
Dan  Boneh  
Det.  Auth.  Enc.  (DAE)  for  free  
DecrypJon:   IV   ciphertext  
 
CTR  mode  with  PRF    Fctr   k2  
  Fctr(k2,IV)      ll    Fctr(k2,  IV+1)  ll  …  ll  Fctr(k2,IV+L)  
k1   PRF    F  
 
message  
 
  if    ≠IV  output  ⊥  
 
Thm:        if  F  is  a  secure  PRF    and    CTR  from  Fctr  is  CPA-­‐secure    
 then  SIV-­‐CTR  from  F,  Fctr  provides  DAE  
Dan  Boneh  
Construc1on  2:        just  use  a  PRP  
Let    (E,  D)  be  a  secure  PRP.            E:  K  ×  X  ⟶  X  

Thm:        (E,D)  is  sem.  sec.  under  det.  CPA  .  


Proof  sketch:        let      f:  X  ⟶  X      be  a  truly  random  inver1ble  func.  
 in    EXP(0)    adv.  sees:        f(m1,0),  …,  f(mq,0)      q  random  values  in  X  
 in    EXP(1)    adv.  sees:        f(m1,1),  …,  f(mq,1)  
 
Using  AES:        Det.  CPA  secure  encryp1on  for  16  byte  messages.  
   Longer  messages??        Need  PRPs  on  larger  msg  spaces  …  
Dan  Boneh  
EME:      construc1ng  a  wide  block  PRP  
Let    (E,  D)  be  a  secure  PRP.            E:  K  ×  {0,1}n  ⟶  {0,1}n  
EME:      a  PRP  on      {0,1}N      for        N  ⨠  n   x[0]   x[1]   x[2]  
  ⨁   ⨁   ⨁  

E   E   E  
E   ⨁   ⨁  

⨁  
E   E   E  
⨁   ⨁   ⨁  

Performance:   y[0]   y[1]   y[2]  


•  can  be  2x  slower  then  SIV  
Dan  Boneh  
PRP-­‐based  Det.  Authen1cated  Enc.  
Goal:      det.  CPA  security    and    ciphertext  integrity  
   ⇒      DAE:    determinisJc  authenJcated  encrypJon  
EncrypJon:      DecrypJon:  
80  
  message   00000   ciphertext  

E(k,  ⋅)   D(k,  ⋅)   if  ≠080  output  ⊥  

ciphertext   message   ………  

Dan  Boneh  
PRP-­‐based  Det.  Authen1cated  Enc.  
Let    (E,  D)  be  a  secure  PRP.            E:  K  ×  (X×{0,1}n)  ⟶  X×{0,1}n  

Thm:        1/2n  is  negligible      ⇒      PRP-­‐based  enc.  provides  DAE  

Proof  sketch:        suffices  to  prove  ciphertext  integrity  


  x1,        …  ,    xq      ∈  X  
Chal.   Adv.  
π  (x1  0n),  …,  π(xq  0n)    
π⟵Perms[X×{0,1}n]  

c  ∉  {  π  (x1  0n),  …,  π(xq  0n)  }  


But  then        Pr[  LSBn(  π-­‐1(c)  )  =  0n  ]  ≤  1/2n   Dan  Boneh  
End  of  Segment  

Dan  Boneh  
Online   Cryptography   Course                                                                             Dan   Boneh  

Odds  and  ends  

Tweakable  encryp1on  

Dan  Boneh  
Disk  encryp1on:    no  expansion  
Sectors  on  disk  are  fixed  size  (e.g.  4KB)  
 ⇒      encryp1on  cannot  expand  plaintext    (i.e.    M  =  C)  
 ⇒      must  use  determinis1c  encryp1on,    no  integrity  
 
Lemma:      if  (E,  D)  is  a  det.  CPA  secure  cipher  with  M=C  
   then    (E,  D)    is  a  PRP.  
 
⇒  every  sector  will  need  to  be  encrypted  with  a  PRP  

Dan  Boneh  
sector  1   sector  2   sector  3  

PRP(k,  ⋅)   PRP(k,  ⋅)   PRP(k,  ⋅)  

sector  1   sector  2   sector  3  

Problem:        sector  1    and    sector  3    may  have  same  content  


•  Leaks  same  informa1on  as  ECB  mode  
 
Can  we  do  beaer?  

Dan  Boneh  
sector  1   sector  2   sector  3  

PRP(k1,  ⋅)   PRP(k2,  ⋅)   PRP(k3,  ⋅)  

sector  1   sector  2   sector  3  

Avoids  previous  leakage  problem  


•  …  but  aaacker  can  tell  if  a  sector  is  changed  and  then  reverted  

Managing  keys:      the  trivial  construc1on        kt  =  PRF(k,  t)        ,  t=1,…,L                


Can  we  do  beaer?  
Dan  Boneh  
Tweakable  block  ciphers  
Goal:      construct  many  PRPs  from  a  key    k∈K    .          

 Syntax:        E  ,  D  :      K  ×  T  ×  X  ⟶  X  

 for  every      t∈T    and    k⟵K:          


   E(k,  t,  ⋅)    is  an  inver1ble  func.  on  X,      indist.  from  random  
 
Applica1on:        use  sector  number  as  the  tweak  
       ⇒      every  sector  gets  its  own  independent  PRP  

Dan  Boneh  
Secure  tweakable  block  ciphers  
E  ,  D  :      K  ×  T  ×  X  ⟶  X  .        For      b=0,1      define  experiment      EXP(b)    as:  
b  
b=1:      π←(Perms[X])|T|  
Chal.   Adv.  A  
b=0:      k←K,  π[t]  ←E(k,t,⋅)  
t1,  x1   t2,  x2            …            tq,  xq  
π  
π[t1](x1)      π[t2](x2)      …        π[tq](xq)  

b’  ∈  {0,1}  
•  Def:    E  is  a  secure  tweakable  PRP  if  for  all  efficient    A:  
                   AdvtPRP[A,E]    =    |Pr[EXP(0)=1]  –  Pr[EXP(1)=1]  |    is  negligible.  
Dan  Boneh  
Example  1:    the  trivial  construc1on  
Let  (E,D)  be  a  secure  PRP,          E:    K  ×  X  ⟶  X  .    

•  The  trivial  tweakable  construc1on:              (suppose    K  =  X)    

   Etweak(k,  t,  x)  =  E(  E(k,  t),    x)  

 
⇒    to  encrypt    n    blocks  need      2n      evals  of    E(.,.)      

Dan  Boneh  
2.    the  XTS  tweakable  block  cipher      [R’04]  
Let  (E,D)  be  a  secure  PRP,          E:    K  ×  {0,1}n  ⟶  {0,1}n  .    

•  XTS:              Etweak(  (k1,k2),    (t,i),    x)  =    


N  ⟵E(k2,  t)  

x  

⇒    to  encrypt    n    blocks  need      n+1      evals  of    E(.,.)      


Dan  Boneh  
Is  it  necessary  to  encrypt  the  tweak  before  using  it?  
That  is,  is  the  following  a  secure  tweakable  PRP?  

x   c  

Yes,  it  is  secure  


No:      E(k,  (t,1),  P(t,2))  ⨁  E(k,  (t,2),  P(t,1))  =  P(t,1)      
No:      E(k,  (t,1),  P(t,1))  ⨁  E(k,  (t,2),  P(t,2))  =  P(t,1)  ⨁  P(t,2)      
No:      E(k,  (t,1),  P(t,1))  ⨁  E(k,  (t,2),  P(t,2))  =  0      
Disk  encryp1on  using  XTS  
sector  #  t:   block  1   block  2   block  n  

tweak:   tweak:   tweak:  


(t,1)   (t,2)   (t,n)  

•  note:    block-­‐level  PRP,      not  sector-­‐level  PRP.    


•  Popular  in  disk  encryp1on  products:  
     Mac  OS  X-­‐Lion,  TrueCrypt,  BestCrypt,  …  
Dan  Boneh  
Summary  
•  Use  tweakable  encryp1on  when  you  need  many    
independent  PRPs  from  one  key  

•  XTS  is  more  efficient  than  the  trivial  construc1on  


–  Both  are  narrow  block:        16  bytes  for  AES  

•  EME  (previous  segment)  is  a  tweakable  mode  for  wide  block  


–  2x  slower  than  XTS  

Dan  Boneh  
End  of  Segment  

Dan  Boneh  
Online   Cryptography   Course                                                                             Dan   Boneh  

Odds  and  ends  

Format  preserving  
encryp1on  

Dan  Boneh  
Encryp1ng  credit  card  numbers  
Credit  card  format:      bbbb  bbnn  nnnn  nnnc        (  ≈  42  bits  )  
k  
k  
POS  
terminal  

processor  #1   processor  #2   processor  #3   acquiring  


bank  
Goal:        end-­‐to-­‐end  encryp1on  
Intermediate  processors  expect  to  see  a  credit  card  number  
 ⇒    encrypted  credit  card  should  look  like  a  credit  card  
Dan  Boneh  
Format  preserving  encryp1on  (FPE)  
This  segment:  given  0  <  s  ≤  2n,      build  a  PRP  on    {0,…,s-­‐1}    

 from    a  secure  PRF        F:    K  ×  {0,1}n  ⟶  {0,1}n                  (e.g.  AES)  

     

Then  to  encrypt  a  credit  card  number:          (s  =  total  #  credit  cards)  
1.  map  given  CC#  to  {0,…,s-­‐1}  
2.  apply  PRP  to  get  an  output  in  {0,…,s-­‐1}  
3.  map  output  back  a  to  CC#  

Dan  Boneh  
Step  1:      from  {0,1}n    to    {0,1}t          (t<n)  
Want  PRP  on    {0,…,s-­‐1}  .                Let    t    be  such  that      2t-­‐1  <  s  ≤  2t  .  

Method:      Luby-­‐Rackoff  with      F’:    K  ×  {0,1}t/2  ⟶  {0,1}t/2          (truncate  F)  

t/2  bits   R0   R1   R2   R3  
F’(k1,⋅ F’(k2,⋅ F’(k3,⋅
)   )   )  
t/2  bits   L0   ⊕   L1   ⊕   L2   ⊕   L3  

input   output  
(beaer  to  use  7  rounds  a  la  Patarin,  Crypto’03)  
Dan  Boneh  
Step  2:    from    {0,1}t      to      {0,…,s-­‐1}          
Given  PRP  (E,D):  K  ×  {0,1}t  ⟶  {0,1}t        
we  build  (E’,D’):  K  ×  {0,…,s-­‐1}  ⟶  {0,…,s-­‐1}        
 
E’(k,  x):        on  input      x  ∈  {0,…,s-­‐1}      do:  
y⟵x;                do  {  y  ⟵  E(k,  y)  }        un1l    y∈  {0,…,s-­‐1};                output  y  

Expected  #  itera1ons:      2  
{0,…,s-­‐1}     {0,1}t    
Dan  Boneh  
Security  
Step  2  is  1ght:                      ∀A      ∃B:          PRPadv[A,E]  =  PRPadv[B,E’]  
 
 Intui1on:      ∀sets    Y  ⊆  X,    applying  the  transforma1on  to  a    
   random  perm.                π:  X⟶  X  
   gives  a  random  perm.        π':  Y  ⟶  Y  

 
Step  1:      same  security  as  Luby-­‐Rackoff  construc1on  
  (actually  using  analysis  of  Patarin,  Crypto’03)  
note:      no  integrity  
Dan  Boneh  
Further  reading  
•  Cryptographic  Extrac1on  and  Key  Deriva1on:  The  HKDF  Scheme.        
 H.  Krawczyk,    Crypto  2010  
•  Determinis1c  Authen1cated-­‐Encryp1on:    
   A  Provable-­‐Security  Treatment  of  the  Keywrap  Problem.            
P.  Rogaway,  T.  Shrimp1on,  Eurocrypt  2006  
•  A  Parallelizable  Enciphering  Mode.    S.  Halevi,  P.  Rogaway,  CT-­‐RSA  2004  
•  Efficient  Instan1a1ons  of  Tweakable  Blockciphers  and  Refinements  to  
Modes  OCB  and  PMAC.        P.  Rogaway,  Asiacrypt  2004  
•  How  to  Encipher  Messages  on  a  Small  Domain:    
   Determinis1c  Encryp1on  and  the  Thorp  Shuffle.    
B.  Morris,  P.  Rogaway,  T.  Stegers,  Crypto  2009  
Dan  Boneh  
End  of  Segment  

Dan  Boneh  

You might also like