summaryrefslogtreecommitdiff
path: root/ss2017/cryptography/Notes06a.txt
diff options
context:
space:
mode:
Diffstat (limited to 'ss2017/cryptography/Notes06a.txt')
-rw-r--r--ss2017/cryptography/Notes06a.txt105
1 files changed, 105 insertions, 0 deletions
diff --git a/ss2017/cryptography/Notes06a.txt b/ss2017/cryptography/Notes06a.txt
new file mode 100644
index 0000000..6791ce9
--- /dev/null
+++ b/ss2017/cryptography/Notes06a.txt
@@ -0,0 +1,105 @@
1
2
3Multiple encryptions from cpa-secure cryptosystem
4- - - - - - - - - - - - - - - - - - - -- - - - - -
5
6We have seen that a block cipher can be used repeatedly with the same
7key (using e.g. CTR-mode) without compromising security. We show now
8that this is true for an arbitrary cpa-secure cryptosystem. From a
9practical point of view this is not so important because cpa-secure
10cryptosystems typically come from block ciphers, and a block cipher is
11used more efficiently through one of the modes of operation given.
12
13However, the proof of the result (cpa->multiple) is interesting at
14this point because it is the first time where we use semantic security
15(here in the cpa sense) as an assumption rather than establishing
16it. Furthermore, the result becomes practically relevant in the
17context of public key cryptography where by definition security
18against eavesdroppers and cpa security coincide.
19
20Theorem. Let Pi=(Gen,Enc,Dec) be cpa-secure. Build
21
22Pi'=(Gen,Enc',Dec')
23
24Enc'_k(m1 || m2) = Enc_k(m1) || Enc_k(m2)
25
26Then Pi' is cpa-secure, too.
27
28Proof: Consider an adversary A' against Pi'. We run A' and answer
29oracle queries honestly using Enc'_k. Adversary A' eventually
30produces
31
32m^0 = m1^0 || m2^0
33m^1 = m1^1 || m2^1
34
35and asks for a ciphertext c1 || c2. For b1,b2,b':{0,1} define
36P(b1,b2,b') to be the probability that A' outputs b' when
37c1<-Enc_k(m1^b1); c2<-Enc_k(m2^b2).
38
39The success probability of A' equals 1/2 * (P(0,0,0) + P(1,1,1))
40
41The probabilities P(0,1,0) and P(0,1,1) are somewhat funny since they
42correspond to replies to the adversary's question that are against
43the rules. However, we still know that their sum is one and this can
44be used as follows:
45
46Let us design an adversary A against the original system Pi. This
47adversary A produces m2^0 and m2^1 and receives a ciphertext c2 for
48one of the two. It can then obtain c1<-Enc_k(m1^0), forward c1||c2 to
49A' and output the bit b' it eventually receives from A'. The
50probability that this bit is correct then is 1/2 P(0,0,0) + 1/2
51P(0,1,1) by making a case distinction over the equally likely
52possibilities b=0 or b=1. So, assuming that Pi is cpa secure, we
53obtain a negligible function negl(n) so that
54
551/2 P(0,0,0) + 1/2 P(0,1,1) <= 1/2+negl(n)
56
57Similarly, by producing m1^0 and m1^1 instead and using
58c2<-Enc_k(m2^1), we obtain a bound
59
601/2 P(0,1,0) + 1/2 P(1,1,1) <= 1/2+negl(n)
61
62Summing up and using the fact that the sum of negligibles is
63negligible we get
64
651/2(P(0,0,0)+P(1,1,1)) + 1/2 <= 1 + negl(n)
66and so 1/2(P(0,0,0)+P(1,1,1)) <= 1/2 + negl(n) QED.
67
68Let us now consider the more general case where Pi is used to encode a
69sequence of message of some arbitrary length l=l(n), i.e., depending
70on n. Thus, define Pi'=(Gen,Enc',Dec') by
71
72Enc'_k(m1||...||ml) = Enc_k(m1) || ... || Enc_k(ml) etc
73
74Theorem: If Pi is cpa-secure so is Pi' as defined above.
75
76Proof: The proof is similar to the one before. Adversary A' against
77Pi' eventually produces m1^0...ml^0 and m1^1...ml^1 and waits for
78ciphertexts c1..cl. For 0<=j<=l define P_j(b') to be the probability
79that A' outputs b' assuming that
80
81c1<-Enc_k(m1^0) ... cj<-Enc_k(mj^0),
82c_{j+1}<-Enc_k(m_{j+1}^1) ... cl<-Enc_k(ml^1)
83
84The success probability for A' is 1/2 * (P_l(0) + P_0(1)) and, as
85before, we should bound this by 1/2+negl(n).
86
87For the skew probabilities it holds as before P_j(0)+P_j(1)=1.
88
89For each t=1..l we build an adversary A_t against Pi by outputting
90mt^0 and mt^1, receiving ct, requesting c1<-Enc_k(m1^0),
91c2<-Enc_k(m2^0) ... c_{t-1}<-Enc_k(m_{t-1}^0),
92c_{t+1}<-Enc_k(m_{t+1}^1)...c_l<-Enc_k(m_l^1). Notice the switch from
93^0 to ^1 after we reach t. Adversary A_t then forwards c1..cl to A'
94and returns its answer. The success probability is
951/2(P_{t}(0)+P_{t-1}(1)) which is hence bounded by 1/2 + negl(n):
96
97For all t=1..l : 1/2(P_t(0)+P_{t-1}(1)) <= 1/2+negl(n)
98
99Summing all these inequalities noticing P_t(0)+P_t(1)=1 yields
100
1011/2(P_l(0) + (l-1)*1 + P_0(1)) <= 1/2*l + negl(n) /* another
102 negligible function */
103
104and thus 1/2(P_l(0) + P_0(1)) <= 1/2 + negl(n) as required. QED
105