CIS 5371 Cryptography

CIS 5371 Cryptography
3b. Pseudorandomness
Based on: Jonathan Katz and Yehuda Lindell Introduction to Modern Cryptography
1
Pseudorandomness
An introduction
β€’ A distribution D is pseudorandom if no PPT
distinguisher can detect if it a string sampled
according to D or chosen uniformly at random.
β€’ This is formalized by requiring that every PPT
algorithm outputs 1 with almost the same
probability when given a truly random string
as when given a pseudorandom string.
2
Pseudorandomness
An introduction
β€’ A pseudorandom generator is a
deterministic algorithm that given a short
truly random seed of length n will stretch
it to into a longer string of length 𝑙(𝑛)
that is pseudorandom.
3
Existence of pseudorandom
generators
β€’ We cannot prove that pseudorandom
generators exist!
β€’ We believe that such generators can be
constructed from one-way functions.
β€’ There are some long-standing problems
that have no efficient solution and it is
believed that they are unsolvable in
polynomial time.
4
Pseudorandom generators
informal definition
β€’ A distribution D is pseudorandom if no PPT
distinguisher can detect if it is given a string
sampled according to D or a string chosen
uniformly at random.
β€’ This can be formalized by requiring that a PPT
distinguisher D outputs 1 with almost the
same probability when given a truly random
string and when given a pseudorandom string.
5
Pseudorandomness
Definition
Let 𝑙(βˆ™) be a polynomial and 𝐺 a deterministic
polynomial-time algorithm that for any 𝑛 and any
input 𝑠 πœ– {0,1}𝑛 will output string of length 𝑙(𝑛).
𝐺 is a pseudorandom generator if:
β€’ 𝑙 𝑛 >𝑛
β€’ βˆ€ PPT distinguishers 𝐷, βˆƒ π‘Ž negl function with:
| Pr 𝐷 π‘Ÿ = 1 βˆ’ Pr 𝐷 𝐺 𝑠 = 1 ≀ negl(n)
where π‘Ÿ is uniform random string of length 𝑙 𝑛 , 𝑠 𝑖𝑠
is uniform random of length 𝑛 and the probabilities
are taken over the coins used by 𝐷 and the choices
of π‘Ÿ, 𝑠.
6
Stream Ciphers
A stream cipher is a deterministic algorithm
(Init, GetBits) where,
β€’
β€’
Init takes as input a seed 𝑠 and an optional
initialization vector 𝐼𝑉 and outputs a state 𝑠𝑑0 .
GetBits takes as input 𝑠𝑑𝑖 and outputs a bit 𝑦
and state 𝑠𝑑𝑖+1
7
Algorithm 3.16
Construct 𝐺𝑙 from (Init, GetBits)
Input: Seed 𝑠 and optional 𝐼𝑉.
Output: 𝑦1 , … , 𝑦𝑙
𝑠𝑑0 ≔ Init(𝑠, 𝐼𝑉)
for 𝑖 = 1 to 𝑙:
𝑦𝑖 , 𝑠𝑑𝑖 ≔ GetBits π‘ π‘‘π‘–βˆ’1
return 𝑦1 , … , 𝑦𝑙
8
A secure fixed length
encryption scheme
π‘˜
π‘π‘ π‘’π‘’π‘‘π‘œπ‘Ÿπ‘Žπ‘›π‘‘π‘œπ‘š
π‘”π‘’π‘›π‘’π‘Ÿπ‘Žπ‘‘π‘œπ‘Ÿ
π‘π‘Žπ‘‘
π‘π‘™π‘Žπ‘–π‘›π‘‘π‘’π‘₯𝑑
𝑋𝑂𝑅
π‘π‘–π‘β„Žπ‘’π‘Ÿπ‘‘π‘’π‘₯𝑑
9
A secure fixed length encryption
Protocol Ξ 
Let 𝐺 be a pseudorandom generator with expansion
factor 𝑙. Define a private-key encryption scheme
for messages of length 𝑙 as follows
β€’ Gen: on input 1𝑛 choose π‘˜  {0,1}𝑛 uniformly at
random and output π‘˜ as key.
β€’ Enc: on input a key π‘˜ οƒŽ {0,1}𝑛 and a message
π‘šοƒŽ{0,1}𝑙(𝑛) output the ciphertext
𝑐 ≔G π‘˜ οƒ…π‘š.
β€’ Dec: on input a key π‘˜ οƒŽ {0,1}𝑛 and a ciphertext
cοƒŽ{0,1}𝑙(𝑛) output the plaintext
π‘š ≔G π‘˜ 𝑐.
10
A secure fixed length encryption
Theorem
If 𝐺 be a pseudorandom generator then
protocol  is a fixed-length private-key
encryption scheme that has
indistinguishable encryptions in the
presence of an eavesdropper.
11
A secure fixed length encryption
Reduction
Adversary A’
(Distinguisher D)
Adversary A (Protocol )
1𝑛
𝑀
choose a random bit 𝑏
compute 𝑐𝑏 : = w οƒ… π‘šπ‘
1 if 𝑏 β€² = 𝑏
0 if 𝑏 β€² ο‚Ή 𝑏
π‘š0 , π‘š1
𝑐𝑏
Suppose that A
succeeds with
probability πœ€(𝑛)
𝑏′
12
A secure fixed length encryption
Proof
β€’
when 𝑀 is uniform random we have
Pr 𝐷 𝑀 = 1 = Pr
β€’
PrivK eav (𝐴, 
𝑛 =1 =
1
.
2
when 𝑀 = 𝐺(π‘˜) we have
Pr 𝐷 𝐺 π‘˜
= 1 = Pr PrivK eav (𝐴,  𝑛 = 1
Since 𝐺 is a pseudorandom generator
| Pr 𝐷 𝑀 = 1 - Pr 𝐷 𝐺 π‘˜
= 1 | ≀ negl
Therefore
|
1
2
βˆ’ Pr PrivK eav 𝐴,  𝑛 = 1 | ≀ negl.
13
Stream ciphers
β€’ We can easily modify the earlier construction
for the encryption scheme  for variable
output length PRG.
β€’ In this case,
β€’ 𝑐 ≔ G π‘˜, 1 π‘š οƒ… π‘š .
β€’ π‘š ≔ G π‘˜, 1|𝑐| οƒ… 𝑐 .
14
Discussion
β€’ We use the term
β€’ stream cipher
for the PR stream generator,
β€’ not the encryption algorithm.
β€’ There are a number of practical
constructions of stream ciphers that are
extraordinarily fast, such as the stream
cipher RC4.
15
Discussion
β€’ The WEP encryption protocol for 802.11
used RC4 and was broken.
β€’ But since then it is fixed---and the standard
updated.
β€’ If RC4 has to be used the first 1024 bits or
so should be discarded.
16
Discussion
β€’ From a security point of view it is
advocated to use block cipher constructions
for constructing secure encryption
schemes.
β€’ This disadvantage is that this approach is
less efficient when compared to using a
dedicated stream cipher.
17
Multi-message eavesdropping
mult
experiment PrivK
(𝐴,)(𝑛)
1. The adversary 𝐴 is given input 1𝑛 and outputs a pair
of vectors of messages π‘š10 , … , π‘š0𝑑 and π‘š11 , … , π‘š1𝑑
witβ„Ž |π‘š0𝑖 = |π‘š1𝑖 for all 𝑖.
2. A key π‘˜ is generated runnng 𝐺𝑒𝑛 1𝑛 and a random bit
𝑏  0,1 is chosen. For all 𝑖 the ciphertext 𝑐𝑏𝑖  Enπ‘π‘˜ π‘šπ‘π‘–
is computed and the vector of ciphertexts 𝑐𝑏1 , … , 𝑐𝑏𝑑
is given to 𝐴.
3. .𝐴 outputs a bit 𝑏 β€² .
4. The output of the experiment i𝑠 1 if 𝑏 = 𝑏 β€² and 0 otherwise.
18
Definition
A private-key encryption scheme =(Gen,Enc,Dec)
that has indistinguishable multiple encryptions in
the presence of an eavesdropper satisfies:
ο€’ PPT Adversary 𝐴, ο€€ a negligible function negl:
Pr[PrivK
mult
(𝐴, ) 𝑛 = 1] ≀
1
2
+ negl 𝑛 ,
where the probability is taken over the random
coins of 𝐴, and the experiment.
19
Indistinguishable single encryptions vs
indistinguishable multi encryptions
β€’ The secure fixed length encryption Protocol Ξ 
presented earlier is deterministic and cannot
be used as a construction for a
indistinguishable multi encryptions.
β€’ To see why use the experiment PrivK mult for
the pair of vector messages (0𝑛 , 0𝑛 ) and
0𝑛 , 1𝑛 .
20
Secure multiple encryptions using a
stream-cipher mode of operation
β€’ Synchronized mode
β€’ Communicating parties use a different
part of the stream cipher output to
encrypt a message.
πΈπ‘›π‘π‘˜ π‘š ≔ οƒ‘πΊβˆž 𝑠, 1|π‘š| οƒ… π‘šοƒ±
β€’ Useful for parties communicating in the
same session.
β€’ Communicating parties must maintain
state between encryptions.
21
Secure multiple encryptions
stream-cipher mode of operation
Unsynchronized mode
ο‚§ Encryptions are carried out independently
of one another.
ο‚§ Communicating parties are not required to
maintain state between encryptions.
ο‚§ πΈπ‘›π‘π‘˜ π‘š ≔ 𝐼𝑉, 𝐺∞ 𝑠, 𝐼𝑉, 1|π‘š| οƒ… π‘šοƒ±
where the initial vector 𝐼𝑉  {0,1}𝑛 is
chosen at random.
22
Security against ChosenPlaintext Attack (CPA)
ο‚§ We now consider a more powerful adversary
that is active.
ο‚§ The adversary can ask for the encryptions of
some specific plaintext messages, as well as
eavesdrop.
23
The CPA indistinguishability
experiment PrivK cpa (𝐴,)(𝑛)
1.
A key π‘˜ is generated runnng Gen 1𝑛 .
2.
The adversary 𝐴 is given input 1𝑛 and oracle access to Enπ‘π‘˜ βˆ™ ,
and outputs a pair of messages π‘š0 , π‘š1 of equal length.
3. A random bit 𝑏  0,1 is chosen and a ciphertext
c  Enπ‘π‘˜ π‘šπ‘ is computed and given to 𝐴.
4. Adversary 𝐴 continues to have oracle access to Enπ‘π‘˜ βˆ™ , and
outputs a bit 𝑏 β€² .
5. The output of the experiment i𝑠 1 if 𝑏 = 𝑏 β€² and 0 otherwise.
24
Indistinguishable encryptions under CPA
Definition
A private-key encryption scheme  = Gen, Enc, Dec
has indistinguishable encryptions under CPA if
βˆ€ PPT adversaries 𝐴, βˆƒ a negl function such that,
Pr[PrivKcpa
𝐴, 
𝑛 = 1] ≀
1
2
+ negl 𝑛 ,
where the probability is taken over the coins of A
and those of the experiment.
25
CPA security for multiple encryptions
ο‚§ As for single encryption, extend the experiment
to PrivK cpa in which the adversary outputs a
pair of vectors of plaintext.
ο‚§ Any private-key encryption scheme that has
indistinguishable encryptions under CPA also
has indistinguishable multiple encryptions
under CPA
26