You are on page 1of 13

Cryptography

 
Course  overview  
Cryptography  (historically)  
         “…the  art  of  wri6ng  or  solving  codes…”  

•  Historically,  cryptography  focused  exclusively  


on  ensuring  secret  communica0on    
between  two  par6es  sharing  secret  
informa6on  in  advance  (aka,  “codes”    
or  private-­‐key  encryp6on)  
Modern  cryptography  
•  Much  broader  scope!  
–  Data  integrity,  authen6ca6on,  protocols,  …  
–  The  public-­‐key  se7ng  
–  Founda6ons  (e.g.,  number  theory)  to  systems  
(e.g.,  electronic  vo6ng,  distributed  e-­‐cash)  
Modern  cryptography  
 
 
Design,  analysis,  and  implementa0on  of  mathema&cal  
techniques  for  securing  informa0on,  systems,  and  
computa0on  against  adversarial  a=ack  
Modern  cryptography  
•  Cryptography  is  ubiquitous  
–  Passwords,  password  hashing  
–  Secure  credit-­‐card  transac6ons  over  the  internet  
–  Encrypted  WiFi  
–  Disk  encryp6on  
–  Digitally  signed  soNware  updates  
–  Bitcoin  
Cryptography  (historically)  
         “…the  art  of  wri6ng  or  solving  codes…”  

•  Historically,  cryptography  was  an  art  


–  Heuris6c,  ad  hoc  design  and  analysis  
–  Schemes  proposed,  broken,  repeat…  
Modern  cryptography  
•  Cryptography  is  now  a  science  
–  Rigorous  analysis,  firm  founda6ons,  deeper  
understanding,  rich  theory  

•  The  “crypto  mindset”  has  permeated    


other  areas  of  computer  security  
–  Threat  modeling  
–  Proofs  of  security  
Course  outline  
Secrecy   Integrity  
Private-­‐key  se2ng   Private-­‐key   Message  
encryp6on   authen6ca6on  codes  
Public-­‐key  se2ng   Public-­‐key   Digital  signatures  
encryp6on  

•  Building  blocks  
–  Pseudorandom  (number)  generators  
–  Pseudorandom  func6ons/block  ciphers  
–  Hash  func6ons  
–  Number  theory  
Supplementary  reading  
Goals  of  this  course  
•  Understand  crypto  as  used  in  the  real  world….  
–  …while  taking  a  rigorous,  mathema6cal  approach  

•  Understand  how  to  use  cryptography  


–  What  primi6ves  are  available,  and  what    
they  provide  
–  How  to  use  these  primi6ves    
in  the  right  way  
Prerequisites  
•  Mathema6cs  
–  Discrete  math  (set  nota6on,  modular  arithme6c…)  
–  Basic  discrete  probability  
–  Mathema6cal  maturity  
Prerequisites  
•  Computer  science  
–  Basic  CS  knowledge  (binary,  hex,  ASCII,  …)  
–  Algorithms  (reading  pseudocode,  big-­‐O  nota6on)  
–  Basic  programming  in  a  C-­‐like  language  
Next  lecture  
•  Introduc6on  to  private-­‐key  encryp6on  

•  Some  classical  encryp6on  schemes  and    


their  analysis  

You might also like