Probabilistic Polynomial-Time Calculus

Slides:



Advertisements
Similar presentations
Computational Privacy. Overview Goal: Allow n-private computation of arbitrary funcs. –Impossible in information-theoretic setting Computational setting:
Advertisements

Foundations of Cryptography Lecture 10 Lecturer: Moni Naor.
Foundations of Cryptography Lecture 11 Lecturer: Moni Naor.
CS555Topic 191 Cryptography CS 555 Topic 19: Formalization of Public Key Encrpytion.
Probabilistic Polynomial-Time Process Calculus for Security Protocol Analysis John Mitchell Stanford University P. Lincoln, M. Mitchell, A. Ramanathan,
7. Asymmetric encryption-
Analysis of Security Protocols (V) John C. Mitchell Stanford University.
Co-operative Private Equality Test(CPET) Ronghua Li and Chuan-Kun Wu (received June 21, 2005; revised and accepted July 4, 2005) International Journal.
Asymmetric Cryptography part 1 & 2 Haya Shulman Many thanks to Amir Herzberg who donated some of the slides from
Unifying Equivalence-Based Definitions of Protocol Security A. Datta, R. Küsters, J. C. Mitchell, A. Ramanathan, V. Shmatikov Stanford University SRI International.
Equivalence-Based Security Specifications A. Datta, R Küsters, J. Mitchell, A. Ramanathan, V. Shmatikov A. Scedrov, V. Teague, P. Mateus.
CS555Spring 2012/Topic 41 Cryptography CS 555 Topic 4: Computational Approach to Cryptography.
CMSC 414 Computer and Network Security Lecture 3 Jonathan Katz.
Cryptography Lecture 8 Stefan Dziembowski
CS555Spring 2012/Topic 51 Cryptography CS 555 Topic 5: Pseudorandomness and Stream Ciphers.
Cryptography Lecture 2 Arpita Patra. Summary of Last Class  Introduction  Secure Communication in Symmetric Key setting >> SKE is the required primitive.
1 Reasoning about Concrete Security in Protocol Proofs A. Datta, J.Y. Halpern, J.C. Mitchell, R. Pucella, A. Roy.
Probabilistic Polynomial-Time Process Calculus for Security Protocol Analysis J. Mitchell, A. Ramanathan, A. Scedrov, V. Teague Partially supported by.
Logical Foundations for Security Protocol Analysis Patrick Lincoln John Mitchell Mark Mitchell Andre Scedrov.
Topic 36: Zero-Knowledge Proofs
Asymmetric-Key Cryptography
Topic 26: Discrete LOG Applications
Cryptography Lecture 5 Arpita Patra © Arpita Patra.
Boneh-Franklin Identity Based Encryption Scheme
B504/I538: Introduction to Cryptography
Symbolic methods for cryptography
Modern symmetric-key Encryption
Cryptographic protocols 2014, Lecture 2 assumptions and reductions
Secrecy of (fixed-length) stream ciphers
Process Calculus and Security
J. Mitchell, A. Ramanathan, A. Scedrov, V. Teague
Topic 11: Authenticated Encryption + CCA-Security
Topic 5: Constructing Secure Encryption Schemes
Topic 25: Discrete LOG, DDH + Attacks on Plain RSA
Cryptography Lecture 5.
Topic 30: El-Gamal Encryption
Cryptography Lecture 3 Arpita Patra © Arpita Patra.
CMSC 414 Computer and Network Security Lecture 3
Cryptography Lecture 6.
Soundness of Formal Encryption in the Presence of Key Cycles
Cryptography Lecture 7.
Cryptography Lecture 24.
CSC 413/513: Intro to Algorithms
Introduction to Provable Security
Cryptography Lecture 25.
Cryptography Lecture 4 Arpita Patra © Arpita Patra.
Cryptography Lecture 11.
Cryptography Lecture 4 Arpita Patra © Arpita Patra.
Cryptographic protocols 2016, Lecture 3 Key Exchange, CDH, DDH
Cryptographic protocols 2015, Lecture 3 Key Exchange, CDH, DDH
Cryptography Lecture 5 Arpita Patra © Arpita Patra.
Cryptography Lecture 4 Arpita Patra © Arpita Patra.
El Gamal and Diffie Hellman
Cryptography Lecture 5.
Cryptography Lecture 8.
Introduction to Elliptic Curve Cryptography
Cryptography Lecture 5 Arpita Patra © Arpita Patra.
Cryptography Lecture 9.
Cryptography Lecture 6.
Cryptography Lecture 7.
The power of Pairings towards standard model security
Cryptography Lecture 10.
Cryptography Lecture 6.
Cryptography Lecture 21.
刘振 上海交通大学 计算机科学与工程系 电信群楼3-509
Cryptography Lecture 24.
Cryptography Lecture 23.
Presentation transcript:

Probabilistic Polynomial-Time Calculus CS 395T Probabilistic Polynomial-Time Calculus

Security as Equivalence Intuition: encryption scheme is secure if ciphertext is indistinguishable from random noise Intuition: protocol is secure if it is indistinguishable from a perfectly secure “ideal” protocol Security is defined as observational equivalence between protocol and its ideal functionality Both formal methods and cryptography use this approach, but with different notions of what it means for the adversary to “observe” the protocol execution

Bridging the Gap Cryptography: observational equivalence is defined as computational indistinguishability No probabilistic poly-time algorithm can tell the difference between the real and the ideal protocol with more than negligible probability Formal methods: observational equivalence is defined as some form of process bisimulation No probabilitities, no computational bounds Goal: bridge the gap by explicitly supporting probability and complexity in process calculus

Standard Example: PRNG Pseudo-random sequence Pn: let b = nk-bit sequence generated from n random bits (”seed”) in PUBLICb end Truly random sequence Qn: let b = sequence of nk random bits P is a cryptographically strong pseudo-random number generator if the two sequences are observationally equivalent P  Q Equivalence is asymptotic in security parameter n

Process Calculus Approach [Abadi-Gordon and others] Write protocol in process calculus For example, applied pi-calculus Express security using observational equivalence Standard relation from programming language theory P  Q iff for all contexts C[ ], same observations about C[P] and C[Q] Inherently compositional (quantifies over all contexts) Context (environment) represents adversary Use proof rules for  to prove observational equivalence to the “ideal” protocol

Challenges Probabilistic formal model for crypto primitives Key generation, random nonces, randomized encryption Probabilistic attacker Replace nondeterminism with probability Need a formal way of representing complexity bounds Asymptotic form of observational equivalence Relate to polynomial-time statistical tests Proof rules for probabilistic observational equivalence

Nondeterminism Is Too Strong Alice encrypts message and sends to Bob A  B: { msg } K Adversary “nondeterministically” guesses every bit of the key Process E0 c0 | c0 | … | c0 Process E1 c1 | c1 | … | c1 Process E c(b1).c(b2)...c(bn).decrypt(b1b2...bn, msg) In reality, at most 2-n chance to guess n-bit key

PPT Calculus: Syntax Bounded -calculus with integer terms P :: = 0 | cq(|n|)T send up to q(|n|) bits | cq(|n|)(x).P receive | cq(|n|).P private channel | [T=T] P test | P | P parallel composition | !q(|n|) P bounded replication Size of expressions is polynomial in |n| Terms may contain symbol n; channel width and replication bounded by polynomial of |n|

Probabilistic Operational Semantics Basic idea: alternate between terms & processes Probabilistic scheduling of parallel processes Probabilistic evaluation of terms (incl. rand) Outer term evaluation Evaluate all exposed terms, evaluate tests Communication Match up pairs “send” and “receive” actions If multiple pairs, schedule them probabilistically Probabilistic if multiple send-receive pairs alternate

Probabilistic Scheduling Outer term evaluation Evaluate all exposed terms in parallel Multiply probabilities Communication E(P) = set of eligible subprocesses S(P) = set of schedulable pairs Schedule private communication first Probabilistic poly-time computable scheduler that makes progress

Choose according to probabilistic scheduler Simple Example Process crand+1 | c(x).dx+1 | d2 | d(y).ey+1 Outer evaluation c1 | c(x).dx+1 | d2 | d(y). ey+1 c2 | c(x).dx+1 | d2 | d(y). ey+1 Communication rand is 0 or 1 with prob. ½ Each with prob ½ Choose according to probabilistic scheduler

Complexity Bound on number of communications Bound on term evaluation Count total number of inputs, multiplying by q(|n|) to account for bounded replication !q(|n|)P Bound on term evaluation Closed term T is evaluated in time qT(|n|) Bound on time for each communication step Example: cm | c(x).P  [m/x]P Bound on size of m; previous steps preserve # of x occurrences For each closed process P, there is a polynomial q(x) such that for all n, all probabilistic poly-time schedulers, evaluation of P halts in time q(|n|)

How To Define Process Equivalence? Intuition: P and Q are equivalent if no test by any context can distinguish them | Prob{ C[P]  “yes” } - Prob{ C[Q]  “yes” } | <  How do we choose ? Less than 1/2, 1/4, … ? (not an equivalence relation) Vanishingly small? As a function of what? Solution: asymptotic form of process equivalence Use security parameter (e.g., key length) Protocol is a family { Pn }n>0 indexed by key length

Probabilistic Observat’l Equivalence Asymptotic equivalence within f Families of processes { Pn }n>0 { Qn }n>0 Family of contexts { Cn }n>0 P f Q if  context C[ ].  observation v. n0. n>n0 | Prob(Cn[Pn]  v) – Prob(Cn[Qn]  v) | < f(n) Asymptotic polynomial indistinguishability P  Q if P f Q for every f(n) = 1/p(n) where p(n) is a polynomial function of n

Probabilistic Bisimulation [van Glabbeek, Smolka, and Steffen] Labeled transition system Evaluate process in a “maximally benevolent context” Process may read any input on public channel or send output even if no matching input exists in process Label with numbers “resembling probabilities” Bisimulation relation If P ~ Q and P P’, then exists Q’ such that Q Q’ and P’ ~ Q’ , and vice versa Strong form of probalistic equivalence Implies probabilistic observational equivalence, but not vice versa r r

Provable Equivalences (1) Assume scheduler is stable under bisimulation P ~ Q  C[P] ~ C[Q] P ~ Q  P  Q P | (Q | R)  (P | Q) | R P | Q  Q | P P | 0  P

Provable Equivalences (2) P  c. (c<T> | c(x).P) if x FV(P) P{a/x}  c.(c<a> | c(x).P) if bandwidth of c large enough P  0 if no public channels in P P  Q  P{d/c}  Q{d/c} if c, d have the same bandwidth, d is fresh c<T>  c<T’> if Prob[T  a] = Prob[T’  a] for all a

Connection with Cryptography Can use probabilistic observational equivalence in process calculus to carry out proofs of protocol security Example: semantic security of ElGamal public-key cryptosystem is equivalent to Decisional Diffie-Hellman Reminder: semantic security is indistinguishability of encryptions enck(m) is indistinguishable from enck(m’)

Review: Decisional Diffie-Hellman n is security parameter (e.g., key length) Gn is cyclic group of prime order p, length of p is roughly n, g is generator of Gn For random a, b, c  {0, … , p-1}  ga , gb , gab    ga , gb , gc 

ElGamal Cryptosystem n is security parameter (e.g., key length) Gn is cyclic group of prime order p, length of p is roughly n, g is generator of Gn Keys Private key = g, x, public key = g, gx Encryption of mGn is gk, m(gx)k k  {0, . . . , p-1} is random Decryption of v, w is w(vx)-1 For v=gk, w=m(gx)k get w(vx)-1 = mgxk/gkx = m

DDH  Semantic Security of ElGamal Start with ga, gb, gab  ga, gb, gc (random a,b,c) Build up statement of semantic security from this in(c, x,y).out(c, gk, mgxk)  in(c, x,y).out(c, gk, ngxk) Use structural transformations E.g., out(c,T(r))  out(c,U(r)) (any random r) implies in(c,x).out(c,T(x))  in(c,x).out(c,U(x) ) Use domain-specific axioms E.g., out(c, ga,gb,gab)  out(c, ga,gb,gc) implies out(c, ga,gb,mgab )  out(c, ga,gb,mgc) (any M) Encryption of m is observationally equivalent to encryption of n

Semantic Security of ElGamal  DDH Harder direction: “break down” vs. “build up” Want to go from in(c,x,y).out(c,gk,mgxk)  in(c, x,y).out(c,gk,ngxk) to gx, gk, gkx  gx, gk, gc Main idea: if m=1, then we essentially have DDH Proof “constructs” a DDH tuple Hide all public channels except output challenge Set the message to 1 Need structural rule equating a process with the term simulating the process Special case: process with 1 public output