1. Trang chủ
  2. » Giáo Dục - Đào Tạo

03 2 block annotated tủ tài liệu bách khoa

16 40 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 16
Dung lượng 1,06 MB

Nội dung

Online   Cryptography   Course                                                                             Dan   Boneh   Block  ciphers   The  data  encryp4on   standard  (DES)   Dan  Boneh   Block  ciphers:    crypto  work  horse   n bits PT Block n bits CT Block E, D Key k Bits Canonical examples: 1.  3DES: n= 64 bits, 2.  AES: k = 168 bits n=128 bits, k = 128, 192, 256 bits Dan  Boneh   Block  Ciphers  Built  by  Itera4on   key    k   k2   k3   kn   R(k2,  ⋅)   R(k3,  ⋅)   R(kn,  ⋅)   m   k1   R(k1,  ⋅)   key  expansion   c   R(k,m)  is  called  a  round  func4on      for    3DES  (n=48),            for  AES-­‐128    (n=10)   Dan  Boneh   The  Data  Encryp4on  Standard  (DES)   •  Early  1970s:      Horst  Feistel  designs  Lucifer  at  IBM      key-­‐len  =  128  bits    ;      block-­‐len  =  128  bits   •  1973:      NBS  asks  for  block  cipher  proposals            IBM  submits  variant  of  Lucifer   •  1976:    NBS  adopts  DES  as  a  federal  standard      key-­‐len  =  56  bits    ;      block-­‐len  =  64  bits   •  1997:    DES  broken  by  exhaus4ve  search   •  2000:    NIST  adopts  Rijndael  as  AES  to  replace  DES   Widely  deployed  in  banking  (ACH)  and  commerce   Dan  Boneh   DES:    core  idea  –  Feistel  Network   Given  func4ons        f1,  …,  fd:      {0,1}n    ⟶    {0,1}n           Goal:        build  inver4ble  func4on      F:  {0,1}2n    ⟶    {0,1}2n     L1   f2   ⊕   ⊕   L0   f1   R1   input   R2   L2   ⋯   Rd-­‐1   Ld-­‐1   fd   ⊕   n-­‐bits   n-­‐bits   R0   Rd   Ld   output   In  symbols:   Dan  Boneh   L1   f2   ⊕   ⊕   L0   f1   R1   R2   L2   ⋯   Rd-­‐1   Ld-­‐1   Rd   fd   Ld   ⊕   n-­‐bits   n-­‐bits   R0   input   output   Claim:      for  all        f1,  …,  fd:      {0,1}n    ⟶    {0,1}n      Feistel  network        F:  {0,1}2n    ⟶    {0,1}2n        is  inver4ble   Proof:      construct  inverse   Li-­‐1   fi   ⊕   Ri-­‐1   Ri   Li   inverse   Ri-­‐1  =  Li   Li-­‐1  =  fi(Li)  ⨁    Ri   Dan  Boneh   L1   f2   ⊕   ⊕   L0   f1   R1   R2   L2   ⋯   Rd-­‐1   Ld-­‐1   Rd   fd   Ld   ⊕   n-­‐bits   n-­‐bits   R0   input   output   Claim:      for  all        f1,  …,  fd:      {0,1}n    ⟶    {0,1}n      Feistel  network        F:  {0,1}2n    ⟶    {0,1}2n        is  inver4ble   Proof:      construct  inverse   Li-­‐1   fi   ⊕   Ri-­‐1   Ri   Li   inverse   Ri   Li   ⊕   fi   Ri-­‐1   Li-­‐1   Dan  Boneh   Decryp4on  circuit   n-­‐bits   n-­‐bits   Rd   Ld   ⊕   fd   Rd-­‐1   Ld-­‐1   ⊕   fd-­‐1   Rd-­‐2   Ld-­‐2   ⋯   R1   L1   ⊕   f1   R0   L0   •  Inversion  is  basically  the  same  circuit,      with    f1,  …,  fd    applied  in  reverse  order   •  General  method  for  building  inver4ble  func4ons  (block  ciphers)   from  arbitrary  func4ons               •  Used  in  many  block  ciphers  …  but  not  AES   Dan  Boneh   “Thm:”      (Luby-­‐Rackoff  ‘85):    f:    K  ×  {0,1}n    ⟶    {0,1}n      a  secure  PRF            ⇒        3-­‐round  Feistel      F:    K3  ×  {0,1}2n    ⟶    {0,1}2n      a  secure  PRP           ⊕   input   L1   f   ⊕   L0   f   R1   R2   L2   f   ⊕   R0   R3   L3   output   Dan  Boneh   DES:        16  round  Feistel  network   f1,  …,  f16:      {0,1}32    ⟶    {0,1}32          ,            fi(x)  =  F(  ki,  x  )     k   key  expansion   input   IP   k2   ⋯   k16   16  round     Feistel  network   To  invert,  use  keys  in  reverse  order   IP-­‐1   64    bits   64    bits   k1   output   Dan  Boneh   The  func4on        F(ki,  x)   S-­‐box:    func4on  {0,1}6  ⟶  {0,1}4      ,    implemented  as  look-­‐up  table   Dan  Boneh   The  S-­‐boxes   Si:  {0,1}6  ⟶  {0,1}4       Dan  Boneh   Example:    a  bad  S-­‐box  choice   Suppose:                                              Si(x1,  x2,  …,  x6)  =  (  x2⨁x3,      x1⨁x4⨁x5,      x1⨁x6,      x2⨁x3⨁x6  )   or  wrijen  equivalently:          Si(x)  =  Ai⋅x      (mod  2)       We  say  that  Si  is  a  linear  func4on    1  1  0  0  0    0  0  1  1  0    0  0  0  0  1    1  1  0  0  1   x1     x2   x3   x4   x5   x6   =   x2⨁x3   x1⨁x4⨁x5   x1⨁x6   x2⨁x3⨁x6     Dan  Boneh   Example:    a  bad  S-­‐box  choice   Then  en4re  DES  cipher  would  be  linear:          ∃fixed  binary  matrix  B  s.t       832   DES(k,m)  =     64   m     k1   k2   B     =   c   (mod  2)   ⋮   k     16       But  then:        DES(k,m1)  ⨁  DES(k,m2)  ⨁  DES(k,m3)   =  DES(k,  m1⨁m2⨁m3)   B  m    k    1            ⨁            B    m      2                ⨁              B  m      3                  =          B  m   1⨁m2⨁m3   k   k   k⨁k⨁k   Dan  Boneh   Choosing  the  S-­‐boxes  and  P-­‐box   Choosing  the  S-­‐boxes  and  P-­‐box  at  random  would  result     in  an  insecure  block  cipher      (key  recovery  amer  ≈224  outputs)      [BS’89]     Several  rules  used  in  choice  of  S  and  P  boxes:   •  No  output  bit  should  be  close  to  a  linear  func  of  the  input  bits   •  S-­‐boxes  are  4-­‐to-­‐1  maps   ⋮   Dan  Boneh   End  of  Segment   Dan  Boneh  

Ngày đăng: 09/11/2019, 07:12

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN