Transcript
Page 1: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

INTRODUCTION TO PROVABLE

SECURITY

Models, Adversaries, Reductions

Page 2: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

CRYPTOGRAPHY / CRYPTOLOGY

โ€œfrom Greek ฮบฯฯ…ฯ€ฯ„ฯŒฯ‚ kryptรณs, "hidden, secret";

and ฮณฯฮฌฯ†ฮตฮนฮฝ graphein, "writing", or -ฮปฮฟฮณฮฏฮฑ -logia, "study",

respectivelyโ€

โ€œis the practice and study of techniques for secure

communication in the presence of third parties

(called adversaries).โ€

Source : www.wikipedia.org

Page 3: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

SOME CRYPTOGRAPHIC GOALS

Confidentiality

Content of conversation remains hidden

Authenticity

Message is really sent by specific sender

Integrity

Message has not been modified

Privacy:

Sensitive (user) data remains hidden

Covertcy

The fact that a conversation is taking place is hidden

โ€ฆ.

Page 4: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

SECURITY BY TRIAL-AND-ERROR

Identify goal (e.g. confidentiality in P2P networks)

Design solution โ€“ the strategy:

Propose protocol

Search for an attack

If attack found, fix (go to first step)

After many iterations or some time, halt

Output: resulting scheme

Problems:

What is โ€œmanyโ€ iterations/ โ€œsomeโ€ time?

Some schemes take time to break: MD5, RC4โ€ฆ

Page 5: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

PROVABLE SECURITY

Identify goal. Define security:

Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf)

Adversary (e.g. can get signatures for arbitrary msgs.)

Security conditions (e.g. adv. canโ€™t sign fresh message)

Propose a scheme (instantiate syntax)

Define/choose security assumptions

Properties of primitives / number theoretical problems

Prove security โ€“ 2 step algorithm:

Assume we can break security of scheme (adv. ๐ด)

Then build โ€œReductionโ€ (adv. ๐ต) breaking assumption

Page 6: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

PART II

THE PROVABLE SECURITY METHOD

Page 7: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

THE ESSENCE OF PROVABLE SECURITY

Core question: what does โ€œsecureโ€ mean?

โ€œSecure encryptionโ€ vs. โ€œSecure signature schemeโ€

Step 1: Define your primitive (syntax)

Signature Scheme: algorithms (KGen, Sign, Vf)

* KGen(1๐›พ) outputs (sk, pk)

* Sign(sk,m) outputs S (prob.)

* Vf(pk,m,S) outputs 0 or 1 (det.)

Say a scheme is secure against all known attacks

โ€ฆ will it be secure against a yet unknown attack?

Page 8: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

THE ESSENCE OF PROVABLE SECURITY

Step 2: Define your adversary

Adversaries ๐ด can: know public information: ๐›พ, pk

get no message/signature pair

get list of message/signature pairs

submit arbitrary message to sign

Step 3: Define the security condition

Adversary ๐ด can output fresh (m,S) which verifies,

with non-negligible probability (as a function of ๐›พ)

Page 9: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

THE ESSENCE OF PROVABLE SECURITY

Step 4: Propose a protocol

Instantiate the syntax given in Step 1.

E.g. give specific algorithms for KGen, Sign, Vf.

Step 5: Choose security assumptions

For each primitive in the protocol, choose assumptions

โ€ข Security Assumptions (e.g. IND-CCA encryption)

โ€ข Number Theoretical Assumptions (e.g. DDH, RSA)

Page 10: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

THE ESSENCE OF PROVABLE SECURITY

Step 6: Prove security

For each property you defined in steps 1-3:

โ€ข Assume there exists an adversary ๐ด breaking

that security property with some probability ๐œ€

โ€ข Construct reduction ๐ต breaking underlying

assumption with probability f(๐œ€)

Page 11: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

HOW REDUCTIONS WORK

Reasoning:

If our protocol/primitive is insecure, then the

assumption is broken

But the assumption holds (by definition)

Conclusion: The protocol cannot be insecure

Caveat:

Say an assumption is broken (e.g. DDH easy to solve)

What does that say about our protocol?

Security assumptions are baseline

We donโ€™t know!

Page 12: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

PART III

ASSUMPTIONS

Page 13: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

WE NEED COMPUTATIONAL ASSUMPTIONS

Correctness: if parameters are well generated,

well-signed signatures always verify.

Take our signature schemes (KGen, Sign, Vf)

KGen1๐‘ 

Signsk

pk

m

๐œŽ

Vf 0/1

Page 14: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

WE NEED COMPUTATIONAL ASSUMPTIONS

Unforgeability: no adversary can produce

signature for a fresh message m*

Take our signature schemes (KGen, Sign, Vf)

KGen1๐‘ 

Signsk

pk

m

๐œŽ

Vf 0/1

But any ๐ด can guess ๐‘ ๐‘˜ with probability เต—1 2|๐‘ ๐‘˜|

Page 15: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

WE NEED COMPUTATIONAL ASSUMPTIONS

Unforgeability: no adversary can produce

signature for a fresh message m*

Take our signature schemes (KGen, Sign, Vf)

KGen1๐‘ 

Signsk

pk

m

๐œŽ

Vf 0/1

And any ๐ด can guess valid ๐œŽ with probability เต—1 2|๐œŽ|

Page 16: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

SOME COMPUTATIONAL ASSUMPTIONS

Of the type: It is โ€œhardโ€ to compute ๐‘ฅ starting from ๐‘ฆ.

How hard?

Usually no proof that the assumption holds

Mostly measured with respect to โ€œbest attackโ€

Sometimes average-case, sometimes worst-case

Relation to other assumptions:

A 1 โ€œโ†’โ€ A 2: break A 2 => break A 1

A 1 โ€œโ†โ€ A 2: break A 1 => break A 2

A 1 โ€œโ€ A 2: both conditions hold

stronger

weaker

equivalent

Page 17: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

EXAMPLES: DLOG, CDH, DDH

Background:

Finite field F, e.g. Z*p = {1, 2, โ€ฆ , p-1} for prime p

Multiplication, e.g. modulo p: 2 ๐‘ โˆ’ 2 = 2๐‘ โˆ’ 4 = ๐‘ โˆ’ 4

Element ๐‘” of prime order ๐‘ž| (๐‘ โˆ’ 1) :

๐‘”๐‘ž = 1 (mod ๐‘) AND ๐‘”๐‘š โ‰  1 mod ๐‘ โˆ€ ๐‘š < ๐‘ž

Cyclic group G = < ๐‘” > = {1, ๐‘”, ๐‘”2โ€ฆ๐‘”๐‘žโˆ’1}

DLog problem:

Pick ๐‘ฅ โˆˆ๐‘… {1, โ€ฆ , ๐‘ž}. Compute ๐‘‹ = ๐‘”๐‘ฅ (mod ๐‘).

Given ๐‘, ๐‘ž, ๐‘”, ๐‘‹ find ๐‘ฅ.

Assumed hard.

Page 18: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

EXAMPLES: DLOG, CDH, DDH

DLog problem:

Pick ๐‘ฅ โˆˆ๐‘… {1, โ€ฆ , ๐‘ž}. Compute ๐‘‹ = ๐‘”๐‘ฅ (mod ๐‘).

Given ๐‘, ๐‘ž, ๐‘”, ๐‘‹ find ๐‘ฅ.

Assumed hard.

Page 19: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

EXAMPLES: DLOG, CDH, DDH

DLog problem:

Pick ๐‘ฅ โˆˆ๐‘… {1, โ€ฆ , ๐‘ž}. Compute ๐‘‹ = ๐‘”๐‘ฅ (mod ๐‘).

Given ๐‘, ๐‘ž, ๐‘”, ๐‘‹ find ๐‘ฅ.

Assumed hard.

CDH problem:

Pick ๐‘ฅ, ๐‘ฆ โˆˆ๐‘… {1, โ€ฆ , ๐‘ž}. Compute ๐‘‹ = ๐‘”๐‘ฅ mod ๐‘ ;

๐‘Œ = ๐‘”๐‘ฆ (mod ๐‘).

Given ๐‘, ๐‘ž, ๐‘”, ๐‘‹, ๐‘Œ find ๐‘”๐‘ฅ๐‘ฆ.

Just to remind you: ๐’ˆ๐’™๐’š = ๐‘ฟ๐’š = ๐’€๐’™ โ‰  ๐‘ฟ๐’€ = ๐’ˆ๐’™+๐’š

Solve D-LOG โ‡’ Solve CDH

Solve CDH โ‡’ Solve D-LOG

Page 20: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

EXAMPLES: DLOG, CDH, DDH

DLog problem:

Pick ๐‘ฅ โˆˆ๐‘… {1, โ€ฆ , ๐‘ž}. Compute ๐‘‹ = ๐‘”๐‘ฅ (mod ๐‘).

Given ๐‘, ๐‘ž, ๐‘”, ๐‘‹ find ๐‘ฅ.

CDH problem:

Pick ๐‘ฅ, ๐‘ฆ โˆˆ๐‘… {1, โ€ฆ , ๐‘ž}. Compute ๐‘‹ = ๐‘”๐‘ฅ mod ๐‘ ;

๐‘Œ = ๐‘”๐‘ฆ (mod ๐‘).

Given ๐‘, ๐‘ž, ๐‘”, ๐‘‹, ๐‘Œ find ๐‘”๐‘ฅ๐‘ฆ.

DDH problem:

Pick ๐‘ฅ, ๐‘ฆ, ๐‘ง โˆˆ๐‘… {1, โ€ฆ , ๐‘ž}. Compute ๐‘‹, ๐‘Œ as above

Given ๐‘, ๐‘ž, ๐‘”, ๐‘‹, ๐‘Œ distinguish ๐‘”๐‘ฅ๐‘ฆ from ๐‘”๐‘ง.

Page 21: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

HOW TO SOLVE THE DLOG PROBLEM

In finite fields mod ๐‘: Brute force (guess ๐‘ฅ) โ€“ O(๐‘ž) Baby-step-giant-step: memory/computation tradeoff;

O( ๐‘ž)

Pohlig-Hellman: small factors of ๐‘ž; O(log๐‘ ๐‘ž (log ๐‘ž + ๐‘))

Pollard-Rho (+PH): O( ๐‘) for biggest factor ๐‘ of ๐‘ž

NFS, Pollard Lambda, โ€ฆ

Index Calculus: exp( ln ๐‘ž1

3 ln(ln(๐‘ž))2

3)

Elliptic curves

Generic: best case is BSGS/Pollard-Rho

Some progress on Index-Calculus attacks recently

Page 22: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

PARAMETER SIZE VS. SECURITY

Date Sym. RSA

modulus

DLog

Key

DLog

Group

EC

GF(p)

Hash

<2020 100 2048 200 2048 200 200

<2030 128 2048 200 2048 256 256

>2030 128 3072 200 3072 256 256

Date Sym. RSA

modulus

DLog

Key

DLog

Group

EC

GF(p)

Hash

2015 128 2048 224 2048 224 SHA-224+

2016 128 2048 256 2048 256 SHA-256+

<2021 128 3072 256 3072 256 SHA-256+

ANSSI

BSI

Page 23: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

PART IV

SECURITY MODELS

Page 24: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

IDEAL PROVABLE SECURITY

Given protocol ๐œ‹, assumptions ๐ป1, โ€ฆ , ๐ป๐‘˜

Proof

under ๐‘ฏ๐Ÿ, โ€ฆ ,๐‘ฏ๐’Œ

Real world

using ๐œ‹

Ideal

world

โ€œReal Worldโ€ is hard to describe mathematically

Page 25: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

PROVABLE SECURITY

Two-step process:

Real world

using ๐œ‹

Modelled world

using ๐œ‹

Page 26: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

PROVABLE SECURITY

Ideal

world

Modelled

world

Proof

under ๐‘ฏ๐Ÿ, โ€ฆ ,๐‘ฏ๐’Œ

Page 27: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

COMPONENTS OF SECURITY MODELS

Adversarial ร -priori knowledge & computation:

Who is my adversary? (outsider, malicious party, etc.)

What does my adversary learn?

Adversarial interactions (party-party, adversary-

party, adversary-adversary โ€“ sometimes)

What can my adversary learn

How can my adversary attack?

Adversarial goal (forge signature, find key,

distinguish Alice from Bob)

What does my adversary want to achieve?

Page 28: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

GAME-BASED SECURITY

Participants

Adversary ๐ด plays a game against a challenger ๐ถAdversary = attacker(s), has all public information

Challenger = all honest parties, has public

information and secret information

Attack

Oracles: ๐ด makes oracle queries to ๐ถ to learn information

Test: special query by ๐ด to ๐ถ to which ๐ด responds

sometimes followed by more oracle queries

Win/Lose: a bit output by ๐ถ at the end of the game

Page 29: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

MEASURING ADVERSARIAL SUCCESS

Winning a game; winning condition:

Depends on relation ๐‘… on (โˆ—,< game >), with < game > =

full game input (of honest parties and ๐ด )

Finally, ๐ด outputs ๐‘ฅ, wins if (๐‘ฅ, < game >) โˆˆ ๐‘…

Success probability:

What is the probability that ๐ด โ€œwinsโ€ the game?

What is the probability measured over? (e.g. randomness

in < game >, sometimes probability space for keys, etc.)

Advantage of Adversary:

How much better is ๐ด than a trivial adversary?

Page 30: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

ADVERSARIAL ADVANTAGE

Forgery type games:

๐ด has to output a string of a โ€œlongerโ€ size

Best trivial attacks: guess the string or guess the key

Advantage:

Adv ๐ด = Prob[๐ด wins the game]

Distinguishability-type games: ๐ด must distinguish between 2 things: left/right,

real/random

Best trivial attacks: guess the bit (probability ฮค1 2)

Advantage (different ways of writing it):

Adv ๐ด = Prob ๐ด wins the game โˆ’ ฮค1 2

Adv ๐ด = 2 | Prob ๐ด wins the game โˆ’ ฮค1 2 |

Page 31: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

SECURITY MODELS โ€“ CONCLUSIONS

Requirements:

Realistic models: capture โ€œrealityโ€ well, making

proofs meaningful

Precise definitions: allow quantification/classification

of attacks, performance comparisons for schemes,

generic protocol-construction statements

Exact models: require subtlety and finesse in

definitions, in order to formalize slight relaxations of

standard definitions

Provable security is an art, balancing strong security

requirements and security from minimal assumptions

Page 32: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

EXAMPLE: PSEUDORANDOMNESS

Perfect confidentiality exists:

Given by the One-Time Pad

๐‘ โ‰” ๐‘šโŠ• ๐‘˜

XOR operation hides plaintext m entirely

Disadvantages:

Need long keys (as long as plaintext)

Have to generate them at every encryption

Generating long randomness:

Use a pseudorandom generator!

Page 33: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

PRGS

Principle:

Start from small, truly random bitstring ๐‘ , generate

large pseudorandom strings

PRG: {0,1}๐‘šโ†’ {0,1}๐‘›, for m โ‰ช n

Security (intuitive):

The adversary gets to see many output strings

In practice: PRGs used for randomness in encryption,

signature schemes, key-exchangeโ€ฆ

Adversaryโ€™s goals (examples):

Predict next/former random number

โ€œCancel outโ€ randomness

Page 34: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

SECURE PRGS

Ideally PRG output should look โ€œrandomโ€

Formally:

Allow A to see either truly random or PRG output

The adversary wins if it distinguishes them

Security game:

Challenger picks seed of generator (A does not get it)

Challenger chooses a secret bit ๐‘

A can request random values

If ๐‘ = 1 then Challenger returns ๐‘ฅโ†${0,1}๐‘›

If ๐‘ = 0 then Challenger returns ๐‘ฅ โ† PRG(๐‘ )

A must output a guess bit ๐‘‘

Winning condition: A wins iff. ๐‘‘ = ๐‘

Page 35: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

THE SECURITY DEFINITION

๐‘ โ†${0,1}๐‘š

๐‘โ†$0,1

๐‘‘ โ† ๐ด๐บ๐‘’๐‘›๐‘ (๐‘š, ๐‘›)

๐ด wins iff ๐‘‘ = ๐‘

Success probability is at least ยฝ . Why ?

(๐’Œ, ๐)-secure PRG:

A pseudorandom generator PRG is (๐‘˜, ๐œ–)-secure if,

and only if, an adversary making at most ๐‘˜ queries to

Gen๐‘ wins w.p. at most 1

2+ ๐œ–

Gen๐‘()

โ€ข If ๐‘ = 1, return ๐‘ฅโ†${0,1}๐‘›

โ€ข Else, return ๐‘ฅ โ† PRG(๐‘ )

Page 36: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

PART V

PROOFS OF SECURITY

Page 37: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

PROOFS BY REDUCTION

Say we have a primitive P

We make assumptions ๐‘†1, ๐‘†2

Goal: prove that if ๐‘†1, ๐‘†2 hold, then P is secure

Statement: If there exists an adversary ๐ด against P,

then there exists adversaries ๐ต1, ๐ต2 against

assumptions ๐‘†1, ๐‘†2, such that:

Adv ๐ด โ‰ค ๐‘“(Adv ๐ต1 , Adv(๐ต2))

Idea: if Adv(๐ด) is significant, then so is at least one of

Adv ๐ต1 , Adv ๐ต2 , breaking at least one assumption

Page 38: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

REDUCING SECURITY TO HARD PROBLEM

Hard problem of the form: given Input, find Output

Designed primitive has some game-based definition

โ€ข ๐ด gets to query a challenger ๐ถโ€ข ๐ถ gets to set up the system

โ€ข There is a test phase

โ€ข ๐ด will eventually answer the test and win/lose

Strategy: use ๐ด to construct solver ๐ต for hard problem

โ€ข ๐ต gets Input

โ€ข ๐ต uses Input to run ๐ด on some instance of ๐ดโ€™s game

โ€ข Finally, ๐ต receives ๐ดโ€™s answer to its test

โ€ข ๐ต processes ๐ดโ€™s response into some Output

Page 39: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

REDUCTIONS

๐ต = ๐ถ๐ด ๐ดHard Problem

Input

Setup infoGame

setup

Query

ResponseProcess

Request test

Test

Embed

problem

Final responseOutput

Page 40: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

CONSTRUCTING A REDUCTION

๐ด acts as a black-box algorithm (we donโ€™t know how it

works in order to win its game)

๐ต can send to ๐ด whatever it wants. However:

We want to bound ๐ตโ€™s winning probability on ๐ดโ€™s

But, ๐ด can only win if the game input is coherent

So ๐ต must simulate coherent input/output to ๐ดโ€™s queries

Also, ๐ต must ultimately solve a hard problem

To produce correct output, ๐ดโ€™s test response must give

๐ต the correct output with very high probability

Page 41: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

REDUCTIONS

๐ต = ๐ถ๐ด ๐ดHard Problem

Input

Setup infoGame

setup

Query

ResponseProcess

Request test

Test

Embed

problem

Final responseOutput

Related

Page 42: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

REDUCTION TO SECURITY OF COMPONENT

Component also has game-based definition

Designed primitive has some game-based definition

โ€ข ๐ด gets to query a challenger ๐ถโ€ข ๐ถ gets to set up the system

โ€ข There is a test phase

โ€ข ๐ด will eventually answer the test and win/lose

Strategy: use ๐ด to construct solver ๐ต for hard problem

โ€ข ๐ต gets Setup info and can query its challenger

โ€ข ๐ต embeds its game in some instance of ๐ดโ€™s game

โ€ข Finally, ๐ต receives ๐ดโ€™s answer to its test

โ€ข ๐ต processes ๐ดโ€™s response into a test response of its own

Page 43: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

REDUCTIONS

๐ต = ๐ถ๐ด ๐ด๐ถ๐ตSetup ๐ตโ€™s

Game Setup ๐ดโ€™s gameInject

setup

Query

ResponseProcess

Request test

Test

Embed

challenge

Final responseReponse

Query

Response

Request test

Test

Page 44: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

EXAMPLE: BIGGER PRG

Say we have a secure pseudorandom generator:

๐บsmall: {0,1}๐‘šโ†’ {0,1}๐‘›

We want to construct a bigger PRG:

๐บbig: {0,1}๐‘šโ†’ {0,1}2๐‘›

Instantiating ๐บbig:

Setup: choose ๐‘  โ†${0,1}๐‘š

Evaluation: ๐บbig ๐‘  โ‰” ๐บsmall ๐‘  | ๐บsmall(๐‘ )

Claim: If ๐‘ฎ๐ฌ๐ฆ๐š๐ฅ๐ฅ is secure, then so is ๐‘ฎ๐›๐ข๐ 

Page 45: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

SECURITY OF OUR DESIGN

Statement: For any ๐‘˜, ๐œ–big -adversary ๐ด against the

security of ๐บbig, there exists a (2๐‘˜, ๐œ–small)-adversary ๐ต

against the security of ๐บsmall such that:

๐œ–big โ‰ค ๐œ–small

Both adversaries play the same game:

๐‘ โ†${0,1}๐‘š

๐‘โ†$0,1

๐‘‘ โ† ๐ด๐บ๐‘’๐‘›๐‘ (๐‘š, ๐‘›)

๐ด wins iff ๐‘‘ = ๐‘

Gen๐‘()

โ€ข If ๐‘ = 1, return ๐‘ฅโ†${0,1}๐‘›

โ€ข Else, return ๐‘ฅ โ† PRG(๐‘ )

Page 46: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

CONSTRUCTING THE REDUCTION

๐ต = ๐ถ๐ด ๐ด๐ถ๐ต

Setup doneSetup done

Query

Guess bit ๐‘‘Output ๐‘‘

Query Gen๐‘

๐‘ โ†${0,1}๐‘š

๐‘โ†$0,1

๐‘ฅ1

โ€ข If ๐‘ = 1, return ๐‘ฅโ†${0,1}๐‘›

โ€ข Else, return ๐‘ฅ โ† Gsmall(๐‘ )

Query Gen๐‘

๐‘ฅ2 ๐‘ฅ1 | ๐‘ฅ2

Page 47: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

ANALYSIS OF THE REDUCTION

Number of queries:

For each query, ๐ด expects a 2๐‘› response, whereas ๐ดonly gets ๐‘› bits from its challenger

Thus ๐ต needs twice as many queries as ๐ด

Accuracy of ๐ตโ€™s simulation of ๐ถ๐ด In ๐ดโ€™s game if ๐‘ = 1, ๐ด gets 2๐‘› truly random bits

And if ๐‘ = 0, it expects ๐บsmall ๐‘  | ๐บsmall(๐‘ )

๐ต queries its own challenger for output

If ๐ถ๐ต drew bit ๐‘ = 1, it outputs ๐‘› truly random bits

Else, it outputs ๐บsmall ๐‘ 

The simulation is perfect: Pr ๐ต wins = Pr[๐ด wins]

Page 48: INTRODUCTION TO PROVABLE SECURITYPROVABLE SECURITY Identify goal. Define security: Syntax of the primitive: e.g. algorithms (KGen, Sign, Vf) Adversary (e.g. can get signatures for

EXERCISES

Why does this proof fail if we have two secure

PRGs: ๐บ1, ๐บ2: {0,1}๐‘šโ†’ {0,1}๐‘› and we construct

๐บ: {0,1}๐‘šโ†’ {0,1}2๐‘› as follows:

Setup: choose ๐‘  โ†${0,1}๐‘š

Evaluation: ๐บ ๐‘  โ‰” ๐บ1 ๐‘  | ๐บ2(๐‘ )

Will the proof work if ๐บ ๐‘  โ‰” ๐บ1 ๐‘  โŠ• ๐บ2(๐‘ ) ?


Recommended