Shai Halevi – IBM Research PKC 2014 Multilinear Maps and Obfuscation A Survey of Recent Results.

Slides:



Advertisements
Similar presentations
Boneh-Franklin Identity-based Encryption. 2 Symmetric bilinear groups G = ágñ, g p = 1 e: G G G t Bilinear i.e. e(u a, v b ) = e(u, v) ab Non-degenerate:
Advertisements

Secure Evaluation of Multivariate Polynomials
Vote privacy: models and cryptographic underpinnings Bogdan Warinschi University of Bristol 1.
CS555Topic 241 Cryptography CS 555 Topic 24: Secure Function Evaluation.
CS555Topic 191 Cryptography CS 555 Topic 19: Formalization of Public Key Encrpytion.
CIS 5371 Cryptography 3b. Pseudorandomness.
Encryption Public-Key, Identity-Based, Attribute-Based.
Foundations of Cryptography Lecture 13 Lecturer: Moni Naor.
Amit Sahai May 9, 2014 Aarhus Institute of Advanced Studies Advances in Obfuscation.
Outsourcing Private RAM Computation Daniel Wichs Northeastern University with: Craig Gentry, Shai Halevi, Mariana Raykova.
CMSC 414 Computer and Network Security Lecture 6 Jonathan Katz.
CMSC 414 Computer and Network Security Lecture 3 Jonathan Katz.
CMSC 414 Computer (and Network) Security Lecture 2 Jonathan Katz.
Oblivious Transfer based on the McEliece Assumptions
Asymmetric Cryptography part 1 & 2 Haya Shulman Many thanks to Amir Herzberg who donated some of the slides from
CMSC 414 Computer and Network Security Lecture 9 Jonathan Katz.
CMSC 414 Computer and Network Security Lecture 2 Jonathan Katz.
CMSC 414 Computer and Network Security Lecture 6 Jonathan Katz.
On the Implausibility of Differing-Inputs Obfuscation (and Extractable Witness Encryption) with Auxiliary Input Daniel Wichs (Northeastern U) with: Sanjam.
Introduction to Computer and Network Security Iliano Cervesato 26 August 2008 – Modern Cryptography.
A Brief History of Provable Security and PKE Alex Dent Information Security Group Royal Holloway, University of London.
Things that Cryptography Can Do Shai Halevi – IBM Research NYU Security Research Seminar April 1,
CMSC 414 Computer and Network Security Lecture 3 Jonathan Katz.
Lecture 19 Page 1 CS 111 Online Security for Operating Systems: Cryptography, Authentication, and Protecting OS Resources CS 111 On-Line MS Program Operating.
How to play ANY mental game
CIS 5371 Cryptography Introduction.
CMSC 414 Computer and Network Security Lecture 6 Jonathan Katz.
1 CIS 5371 Cryptography 3. Private-Key Encryption and Pseudorandomness B ased on: Jonathan Katz and Yehuda Lindel Introduction to Modern Cryptography.
Zeroizing Attacks on Cryptographic Multilinear Maps
Network Security Lecture 11 Presented by: Dr. Munam Ali Shah.
CS526: Information Security Prof. Sam Wagstaff September 16, 2003 Cryptography Basics.
Private Keyword Search on Streaming Data Rafail Ostrovsky William Skeith UCLA (patent pending)
Two New Online Ciphers Mridul Nandi National Institute of Standards and Technology, Gaithersburg, MD Indocrypt 2008, Kharagpur.
Public Key Encryption with keyword Search Author: Dan Boneh Rafail Ostroversity Giovanni Di Crescenzo Giuseppe Persiano Presenter: 陳昱圻.
On the Communication Complexity of SFE with Long Output Daniel Wichs (Northeastern) joint work with Pavel Hubáček.
1 Information Security – Theory vs. Reality , Winter Lecture 10: Garbled circuits and obfuscation Eran Tromer Slides credit: Boaz.
Lecture 2: Introduction to Cryptography
Non-Interactive Verifiable Computing August 5, 2009 Bryan Parno Carnegie Mellon University Rosario Gennaro, Craig Gentry IBM Research.
Copyright (c) 2012 NTT Secure Platform Labs. Group to Group Commitments Do Not Shrink Masayuki ABE Kristiyan Haralambiev Miyako Ohkubo 1.
Secure Computation Lecture Arpita Patra. Recap >> Improving the complexity of GMW > Step I: Offline: O(n 2 c AND ) OTs; Online: i.t., no crypto.
FHE Introduction Nigel Smart Avoncrypt 2015.
Witness Encryption and Indistinguishability Obfuscation from the Multilinear Subgroup Elimination Assumption Craig Gentry IBM Allison Lewko Columbia Amit.
Lower Bounds on Assumptions behind Indistinguishability Obfuscation
Introduction to Obfuscation Mohammad Mahmoody University of Virginia *some slides borrowed from abhi shelat.
A New Paradigm of Hybrid Encryption Scheme Kaoru Kurosawa, Ibaraki Univ. Yvo Desmedt, UCL and FSU.
1/28 Chosen-Ciphertext Security from Identity- Based Encryption Jonathan Katz U. Maryland Ran Canetti, Shai Halevi IBM.
1 CIS 5371 Cryptography 1.Introduction. 2 Prerequisites for this course  Basic Mathematics, in particular Number Theory  Basic Probability Theory 
Introduction to Elliptic Curve Cryptography CSCI 5857: Encoding and Encryption.
Cryptography Lecture 3 Arpita Patra © Arpita Patra.
Fully Homomorphic Encryption (FHE) By: Matthew Eilertson.
Cryptographic methods. Outline  Preliminary Assumptions Public-key encryption  Oblivious Transfer (OT)  Random share based methods  Homomorphic Encryption.
A plausible approach to computer-aided cryptographic proofs (a collection of thoughts) Shai Halevi – May 2005.
Practical Order-Revealing Encryption with Limited Leakage Nathan Chenette, Kevin Lewi, Stephen A. Weis, and David J. Wu Fast Software Encryption March,
CMSC 414 Computer and Network Security Lecture 2 Jonathan Katz.
1 CIS 5371 Cryptography 1.Introduction. 2 Prerequisites for this course  Basic Mathematics, in particular Number Theory  Basic Probability Theory 
Key Exchange in Systems VPN usually has two phases –Handshake protocol: key exchange between parties sets symmetric keys –Traffic protocol: communication.
Lower Bounds on Assumptions behind Indistinguishability Obfuscation
Spring School on Lattice-Based Crypto, Oxford
iO with Exponential Efficiency
Authenticated encryption
Laconic Oblivious Transfer and its Applications
Modern symmetric-key Encryption
Cryptography Lecture 12.
Four-Round Secure Computation without Setup
مروري برالگوريتمهاي رمز متقارن(كليد پنهان)
Cryptography for Quantum Computers
Cryptography Lecture 12.
Two-Round Adaptively Secure Protocols from Standard Assumptions
Cryptography Lecture 11.
Identity Based Encryption from the Diffie-Hellman Assumption
Presentation transcript:

Shai Halevi – IBM Research PKC 2014 Multilinear Maps and Obfuscation A Survey of Recent Results

Prologue We are in the midst of (yet another) “quantum leap” in our cryptographic capabilities Things that were science fiction just two years ago are now plausible General-purpose functional encryption Crypto-strength code obfuscation … Fueled by new powerful building blocks Combination of Homomorphic Encryption (HE) and Cryptographic Multilinear Maps (MMAPs)

This Talk Overview of the main new tool Constructing MMAPs using “HE techniques” And application to obfuscation There are many others Witness Encryption Full-Domain Hash Functional Encryption … not today

Chapter One: Multilinear Maps

Starting Point: DL-based Crypto

To use DH in applications, ensure that: legitimate parties only compute linear functions adversary needs to compute/check quadratics Some examples: Diffie-Hellman key exchange, ElGamal Encryption, Cramer-Shoup CCA-Secure Encryption, Naor-Reingold PRF, Efficient ZKPs, …

Beyond DDH: Bilinear Maps [J00,SOK00,BF01] In bilinear-map groups you can compute quadratic functions in the exponent But computing/checking cubics is hard Now the legitimate parties can do a lot more Leads to new capabilities Identity-based encryption (IBE) Predicate encryption (for simple predicates) Efficient non-interactive zero-knowledge proofs …

Why Stop at Two?

The [GGH’13] Approach to MMAPs

MMAPs vs. SWHE MMAPsSWHE

Main Ingredient: Testing for Zero

Bird-Eye View of [GGH’13]

Graded Encoding Schemes

Some Variants

Hardness Assumptions

A Few Words About Performance

Take-Home from Chapter One

Chapter Two: Obfuscation

Code Obfuscation Encrypting programs, maintaining functionality Only the functionality should be “visible” in the output Example of recreational obfuscation: -- Wikipedia, accessed Oct-2013 Rigorous treatment [Hada’00, BGIRSVY’01,…] xinU / lreP rehtona tsuJ";sub =$f=!fork;map{$P=$P[$f^ord ($p{$_})&6];$p{$_}=/ ^$P/ix?$P:close$_}keys%p}p;p;p;p;p;map{$p{$_}=~/^[P.]/&& close$_}%p;wait until$?;map{/^r/&& }%p;$_=$d[$q];sleep rand(2)if/\S/;print

Why Obfuscation? Hiding secrets in software AES encryption strutpatent.com Plaintext Ciphertext

Why Obfuscation? Hiding secrets in software AES encryption  Public-key encryption Plaintext Ciphertext xinU / lreP rehtona tsuJ";sub =2)+=$f=!fork;map{$P=$P[$f^ord ($p{$_})&6];$p{$_}=/ ^$P/ix?$P:close$_}keys%p}p;p;p;p;p;map{$p{$_}= ~/^[P.]/&& close$_}%p;wait until$?;map{/^r/&& }%p;$_=$d[$q];sleep rand(2)if/\S/;print

Why Obfuscation? Hiding secrets in software Distributing software patches Vulnerable program Patched program 1,2d0 < The Way that can be told of is not the eternal Way; < The name that can be named is not the eternal name 4c2,3 < The Named is the mother of all things. --- > The named is the mother of all things. 11a11,13 > They both may be called deep and profound. > Deeper and more profound, > The door of all subtleties!

Why Obfuscation? Hiding secrets in software Distributing software patches while hiding vulnerability Vulnerable program Patched program xinU / lreP rehtona tsuJ";sub !fork;map{$P=$P[$f^ord ($p{$_})&6];$p{$_}=/ ^$P/ix?$P:close$_}keys%p}p;p;p;p;p;map{$p{$_}=~/^[P.]/&& close$_}%p;wait until$?;map{/^r/&& }%p;$_=$d[$q];sleep rand(2)if/\S/;print

Why Obfuscation? Hiding secrets in software Uploading my expertise to the web Next move Game of Go

Why Obfuscation? Hiding secrets in software Uploading my expertise to the web without revealing my strategies Next move xinU / lreP rehtona tsuJ";sub f=!fork;map{$P=$P[$f^ord ($p{$_})&6];$p{$_}=/ ^$P/ix?$P:close$_}keys%p}p;p;p;p;p;map{$p{$_}=~/^[P.]/ && close$_}%p;wait until$?;map{/^r/&& }%p;$_=$d[$q];sleep rand(2)if/\S/;print Game of Go

Defining Obfuscation Want the output to reveal only functionality E.g., If prog. depends on secrets that are not readily apparent in I/O, then the encrypted program does not reveal these secrets [B+01] show that this is impossible in general Thm: If secure encryption exists, then there are secure encryption schemes for which it is possible to recover the secret key from any program that encrypts. Such encryption schemes are unobfuscatable

Defining Obfuscation Okay, some function are bad, but can we do “as well as possible” on every given function? [B+01] suggested the weaker notion of “indistinguishability obfuscation” (iO) Gives the “best-possible” guarantee [GR07] It turns out to suffice for many applications (examples in [GGH+13, SW13,…])

Defining Obfuscation [B+01]

Obfuscation vs. HE Somewhat reminiscent of MMAPs vs. HE… F Obfuscation FF Encryption F x +  F(x) Result in the clear x +  F(x) x or Result encrypted

Obfuscation from MMAPs, 1 st Try

1 st Try Does Not Work Attack: comparing intermediate values Checking if two intermediate wires carry same value Checking if the computation on two different inputs yield the same value on some intermediate wire If two equal intermediate values ever happen, they can be recognized using zero-test Must randomize all intermediate values in all the computations But such that the final result can still be recognized

Construction Outline Describe Circuits as Branching Programs (BPs) using Barrington’s theorem [B86] Randomized BPs (RBPs) a-la-Kilian [K88] Additional randomization to counter “simple relations” Encode RBPs “in the exponent” using MMAPs Use zero-test to get the output This allows obfuscating shallow circuits (NC1) Another transformation (using FHE) to get all circuits

(Oblivious) Branching Programs A specific way of describing a function This length-9 BP has 4-bit inputs A 2,0 A 1,0 A 3,0 A 5,0 A 4,0 A 6,0 A 7,0 A 8,0 A 9,0 A 2,1 A 1,1 A 3,1 A 5,1 A 4,1 A 6,1 A 7,1 A 8,1 A 9,1 0

(Oblivious) Branching Programs A specific way of describing a function This length-9 BP has 4-bit inputs A 2,0 A 1,0 A 3,0 A 5,0 A 4,0 A 6,0 A 7,0 A 8,0 A 9,0 A 2,1 A 1,1 A 3,1 A 5,1 A 4,1 A 6,1 A 7,1 A 8,1 A 9,1 01

(Oblivious) Branching Programs A 2,0 A 1,0 A 3,0 A 5,0 A 4,0 A 6,0 A 7,0 A 8,0 A 9,0 A 2,1 A 1,1 A 3,1 A 5,1 A 4,1 A 6,1 A 7,1 A 8,1 A 9,1 0110

(Oblivious) Branching Programs

Kilian’s Randomized BPs A 2,0 A 1,0 A 3,0 A 5,0 A 4,0 A 6,0 A 2,1 A 1,1 A 3,1 A 5,1 A 4,1 A 6,1 B 1,0 B 2,0 B 3,0 B 4,0 B 5,0 B 6,0 B 1,1 B 2,1 B 3,1 B 4,1 B 5,1 B 6,1

Kilian’s Randomized BPs A 2,0 A 1,0 A 3,0 A 5,0 A 4,0 A 6,0 A 2,1 A 1,1 A 3,1 A 5,1 A 4,1 A 6,1 B 1,0 B 2,0 B 3,0 B 4,0 B 5,0 B 6,0 B 1,1 B 2,1 B 3,1 B 4,1 B 5,1 B 6,1

Kilian’s Protocol  BP-Obfuscation?

“Partial Evaluation” Attacks

“Mixed Input” Attack B 2,0 B 4,1

Countering “Simple Relations” Additional randomization steps Different works use slightly different forms of additional randomization “Multiplicative bundling” [GGHRHS’13, BR’13] “Straddling” [BGKPS’13, PTS’14] “Abelian component” [CV’13] Can conjecture [GGHRHS’13, BR’13] or prove [BGKPS’13, CV’13, PTS’14] that no simple relations exist

Completing the construction

Security of Obfuscation

A Word About Performance

Take-Home from Chapter Two We can obfuscate a computation by: 1. Randomizing the internal values 2. Putting the randomized values “in the exponent” and computing on them using MMAPs

Future Directions We only have two MMAPs candidates, and just one approach for using them in obfuscation Hard to develop a theory from so few sample points We need better formal notions of obfuscation Current notions (such as iO) do not capture our intuition, not even for what the current constructions achieve Faster constructions Complexity of current constructions is scary Applications Already have a bunch, the sky is the limit…

Thank You Questions?

Witness Encryption [GGSW’13] A truly “keyless encryption” Can encrypt relative to any arbitrary “riddle” Defined here relative to exact-cover (XC) XC is NP-complete, so we can translate any “riddle” to it

Recall Exact Cover {1,2,3} {2,4,5} {1,4} {2,3,5}

Witness Encryption Message encrypted wrt to XC instance Encryptor need not know a solution Or even if a solution exists Anyone with a solution can decrypt Secrecy ensured if no solution exists {1,2,3} {2,4,5} {1,4} {2,3,5} {1,2,3} {2,4,5} {1,4} {2,3,4,5} DecryptableSecret

Witness Encryption Using MMAPs {1,2,3} {2,4,5} {1,4} {2,3,5}

Witness Encryption Using MMAPs

Security of Witness Encryption *