Malleability of Cryptosystems

advertisement
Malleability of
Cryptosystems
KEVIN ALLISON
Definitions
π‘€π‘Žπ‘™π‘™π‘’π‘Žπ‘π‘–π‘™π‘‘π‘¦: The ability to manipulate a given ciphertext α into a
ciphertext β that, when decrypted, produces a related plaintext.
π‘π‘œπ‘› − π‘šπ‘Žπ‘™π‘™π‘’π‘Žπ‘π‘–π‘™π‘–π‘‘π‘¦: Not being able to compute a different related
ciphertext β from a given ciphertext α
What Does Non-malleablity
Provide?
Improved security by knowing the encrypted message has not been
tampered
Ideologically equivalent to existentially unforgeable signatures
Secrecy does not imply independence
β—¦ Non-malleable cryptosystems prove this
Simple Example
Professor Kaminsky enjoys encrypting his grades and giving each
student their own symmetric key for decryption. Unfortunately you
forgot how to add and did not do so well on the first test. With a
malleable cryptosystem, this can be fixed!
D
Start Grade
Encrypt
α
Various
Operations
β
Relation
Check
If R(α,
β) == 1
Decrypt
A
Done!
End Grade
(The previous assumes Professor Kaminsky uses a malleable encryption scheme. This is unlikely).
Security
Given a relation R and the ciphertext α
Malleable if 𝛽: 𝑅 𝛼, 𝛽 = 1
β—¦ B is able to create a related ciphertext β from ciphertext α
Non-malleable if ∀𝐴 π‘šπ‘œπ‘’π‘›π‘‘π‘–π‘›π‘” 𝐺 ∃𝐴′ : 𝑅 𝛼, 𝛾 = 1
β—¦ For every attacker A launching an attack G there is an A’ that produces a
ciphertext γ without access to ciphertext α and with a similar probability as A
Two types:
β—¦ Semantic Security
β—¦ Non-malleable Security
α – Message
β – Rel. Msg
G – Attack
A - Attacker
A’ - Simulator
R - Relation
𝛾 – Rel. Msg.
Semantic Security
Definition 2.1:
A scheme S for public-key cryptosystems is semantically secure with
respect to relations under chosen plaintext attack if for every
probabilistic polynomial time adversary A as above there exists a
probabilistic polynomial time adversary simulator A’ such that for every
relation 𝑅(π‘š, 𝛽) and function β„Žπ‘–π‘ π‘‘ π‘š computable in probabilistic
polynomial time πœ‹ 𝐴, 𝑅 − πœ‹′(𝐴′ , 𝑅) is subpolynomial.
πœ‹(𝐴, 𝑅) – Probability A Succeeds
πœ‹′(𝐴′, 𝑅) – Probability A’ Succeeds
β„Žπ‘–π‘ π‘‘(π‘š) – Function ret. info on m
Types of Attacks
Chosen Plaintext
β—¦ Attacker can encrypt any plaintext to get the ciphertext
β—¦ Least Powerful
Chosen Ciphertext – Pre Processing
β—¦ Access a decryption oracle < xp times, then remove oracle
Chosen Ciphertext – Post Processing
β—¦ Gets challenge ciphertext before oracle is removed
β—¦ Can decrypt any ciphertext excluding the challenge via the oracle
β—¦ Most Powerful
Incorrect Implementations
(Dolav et al.)
Appending encryption to a zero-knowledge proof
β—¦ Proof could be malleable, therefore possible to generate new encryption and
new proof
Sending encryption plus signature
β—¦ Possible to generate new encrypted message E(m+1) and new signature
based-off that
Signature inside Ciphertext
β—¦ Same as above
Public Key Overview
Scheme S (Dolev et al.)
β—¦ Create public signature verification key/private signing key
β—¦ Encrypt message using several keys derived from public signature verification
key
β—¦ Zero-knowledge proof used to show value encrypted is the same
β—¦ Encryptions and proof are signed from using the key from step 1
Public Key Generation (Dolev
et al.)
GP – Key Generator
U – Random String
H – Family of Functions: ∀π‘₯ 𝑦 ≠ π‘₯: β„Ž 𝑦 = β„Ž π‘₯ 𝑖𝑠 β„Žπ‘Žπ‘Ÿπ‘‘
Public Key Encryption (Dolev
et al.)
GS – Signature Key Generator
h – One Way Hash Function
Public Key Encryption (Dolev
et al.)
i≤π‘˜
𝑣
𝑣
𝐹, 𝑠, 𝑐1 , 𝑝1 , 𝑐2 , 𝑝2 … π‘π‘˜ , π‘π‘˜
𝑣
Run 𝑍𝐾𝑃 on 𝑐𝑖 = 𝑒1 1 𝑒2 2 … 𝑒𝑛𝑛
with witness π‘Ÿπ‘–1 π‘Ÿπ‘–2 … π‘Ÿπ‘–π‘› π‘Žπ‘›π‘‘ π‘ˆ
𝑗 ≤𝑛
π‘Ÿπ‘–π‘— ∈𝑅 {0,1}𝑝(𝑛)
𝑐𝑖𝑗 = 𝐸 𝑣𝑗 𝑏𝑖 , π‘Ÿπ‘–π‘—
𝑒𝑗
ZKP – Zero Knowledge Proof
k – Length of input
n –size of the generator
Non-malleable Security
Run the Public Key Generation on Related Scheme (S’):
β—¦
β—¦
β—¦
β—¦
Only run GN(n) n times. Not 2n.
Public Key: 𝑒1 , … , 𝑒𝑛
Private Key: 𝑑1 , … , 𝑑𝑛
Message ---encrypt---> 𝑐1 , … , 𝑐𝑛
If S is broken for malleability, then S’ is broken for semantic security
β—¦ Thus if S’ is semantically secure, then S is non-malleable
Critical Components
Security of the one-way hash function
β—¦ If it is possible to reverse the hash function, then the Scheme is invalid
β—¦ Does the hash function produce collisions?
β—¦ Another failure case
Is the Zero Knowledge Authentication system correct?
β—¦ Otherwise verification of information is jeopardized.
Modern Implications
What if the Key is malleable?
β—¦ Is it possible to modify the key in such a way that it will produce a related
plaintext that will decryption with correct public key.
β—¦ Then the proposed encryption scheme does not work. It is vulnerable to
that attack
To combat this, we need to make the relation take the public key into
account!
β—¦ Redefine a relation to be contain π‘π‘˜ and π‘π‘˜ ∗ in addtion to 𝛼 and 𝛽
References
Dorlev et al. Non-Malleable Cryptography.
http://www.cs.rit.edu/~kra2178/crypto/files/10.1.1.49.4643.pdf
Fisclin, Marc. Completely Non-malleable Schemes.
http://www.cs.rit.edu/~kra2178/crypto/files/completely_non_malleabl
e_schemes.pdf
Ventre, Carmine. Completely Non-Malleabe Encryption Revisited.
http://www.iacr.org/archive/pkc2008/49390068/49390068.pdf
Boldyreva et al. Foundations of Non-malleable Hash and One-Way
Functions.
http://www.cs.rit.edu/~kra2178/crypto/files/found_non_malleable.pdf
Questions?
Download