From 482afc2a11495dc1cd481dfc4502c5fe68feafa8 Mon Sep 17 00:00:00 2001 From: Sungchan Yi Date: Fri, 9 Feb 2024 14:12:46 +0900 Subject: [PATCH] feat: Modern cryptography finals posts (#146) * [PUBLISHER] upload files #133 * [PUBLISHER] upload files #134 * PUSH NOTE : 9. Public Key Encryption.md * PUSH ATTACHMENT : mc-09-ss-pke.png * [PUBLISHER] upload files #135 * PUSH NOTE : 10. Digital Signatures.md * PUSH ATTACHMENT : mc-10-dsig-security.png * PUSH ATTACHMENT : mc-10-schnorr-identification.png * [PUBLISHER] upload files #136 * [PUBLISHER] upload files #137 * PUSH NOTE : 12. Zero-Knowledge Proofs (Introduction).md * PUSH ATTACHMENT : mc-12-id-protocol.png * [PUBLISHER] upload files #138 * [PUBLISHER] upload files #139 * [PUBLISHER] upload files #140 * PUSH NOTE : 13. Sigma Protocols.md * PUSH ATTACHMENT : mc-13-sigma-protocol.png * PUSH ATTACHMENT : mc-13-okamoto.png * PUSH ATTACHMENT : mc-13-chaum-pedersen.png * PUSH ATTACHMENT : mc-13-gq-protocol.png * [PUBLISHER] upload files #141 * [PUBLISHER] upload files #142 * [PUBLISHER] upload files #143 * PUSH NOTE : 16. The GMW Protocol.md * PUSH ATTACHMENT : mc-16-beaver-triple.png * [PUBLISHER] upload files #144 * [PUBLISHER] upload files #145 * fix: links have been fixed --- .../2023-10-05-number-theory.md | 257 ++++++++ .../2023-10-19-public-key-encryption.md | 457 ++++++++++++++ .../2023-10-26-digital-signatures.md | 245 ++++++++ .../2023-10-31-advanced-topics.md | 222 +++++++ .../2023-11-02-zkp-intro.md | 113 ++++ .../2023-11-07-sigma-protocols.md | 476 +++++++++++++++ .../2023-11-09-secure-mpc.md | 188 ++++++ .../2023-11-14-garbled-circuits.md | 157 +++++ .../2023-11-16-gmw-protocol.md | 290 +++++++++ .../2023-11-23-bgv-scheme.md | 562 ++++++++++++++++++ .../2023-12-08-bootstrapping-ckks.md | 347 +++++++++++ .../Modern Cryptography/mc-09-ss-pke.png | Bin 0 -> 156529 bytes .../mc-10-dsig-security.png | Bin 0 -> 83113 bytes .../mc-10-schnorr-identification.png | Bin 0 -> 46266 bytes .../Modern Cryptography/mc-12-id-protocol.png | Bin 0 -> 69455 bytes .../mc-13-chaum-pedersen.png | Bin 0 -> 66823 bytes .../Modern Cryptography/mc-13-gq-protocol.png | Bin 0 -> 42828 bytes .../Modern Cryptography/mc-13-okamoto.png | Bin 0 -> 69637 bytes .../mc-13-sigma-protocol.png | Bin 0 -> 66512 bytes .../mc-16-beaver-triple.png | Bin 0 -> 48413 bytes 20 files changed, 3314 insertions(+) create mode 100644 _posts/Lecture Notes/Modern Cryptography/2023-10-05-number-theory.md create mode 100644 _posts/Lecture Notes/Modern Cryptography/2023-10-19-public-key-encryption.md create mode 100644 _posts/Lecture Notes/Modern Cryptography/2023-10-26-digital-signatures.md create mode 100644 _posts/Lecture Notes/Modern Cryptography/2023-10-31-advanced-topics.md create mode 100644 _posts/Lecture Notes/Modern Cryptography/2023-11-02-zkp-intro.md create mode 100644 _posts/Lecture Notes/Modern Cryptography/2023-11-07-sigma-protocols.md create mode 100644 _posts/Lecture Notes/Modern Cryptography/2023-11-09-secure-mpc.md create mode 100644 _posts/Lecture Notes/Modern Cryptography/2023-11-14-garbled-circuits.md create mode 100644 _posts/Lecture Notes/Modern Cryptography/2023-11-16-gmw-protocol.md create mode 100644 _posts/Lecture Notes/Modern Cryptography/2023-11-23-bgv-scheme.md create mode 100644 _posts/Lecture Notes/Modern Cryptography/2023-12-08-bootstrapping-ckks.md create mode 100644 assets/img/posts/Lecture Notes/Modern Cryptography/mc-09-ss-pke.png create mode 100644 assets/img/posts/Lecture Notes/Modern Cryptography/mc-10-dsig-security.png create mode 100644 assets/img/posts/Lecture Notes/Modern Cryptography/mc-10-schnorr-identification.png create mode 100644 assets/img/posts/Lecture Notes/Modern Cryptography/mc-12-id-protocol.png create mode 100644 assets/img/posts/Lecture Notes/Modern Cryptography/mc-13-chaum-pedersen.png create mode 100644 assets/img/posts/Lecture Notes/Modern Cryptography/mc-13-gq-protocol.png create mode 100644 assets/img/posts/Lecture Notes/Modern Cryptography/mc-13-okamoto.png create mode 100644 assets/img/posts/Lecture Notes/Modern Cryptography/mc-13-sigma-protocol.png create mode 100644 assets/img/posts/Lecture Notes/Modern Cryptography/mc-16-beaver-triple.png diff --git a/_posts/Lecture Notes/Modern Cryptography/2023-10-05-number-theory.md b/_posts/Lecture Notes/Modern Cryptography/2023-10-05-number-theory.md new file mode 100644 index 0000000..bf60b3c --- /dev/null +++ b/_posts/Lecture Notes/Modern Cryptography/2023-10-05-number-theory.md @@ -0,0 +1,257 @@ +--- +share: true +toc: true +math: true +categories: + - Lecture Notes + - Modern Cryptography +tags: + - lecture-note + - cryptography + - number-theory + - security +title: 8. Number Theory +date: 2023-10-05 +github_title: 2023-10-05-number-theory +--- + + +## Background + +### Number Theory + +Let $n$ be a positive integer and let $p$ be prime. + +> **Notation.** Let $\mathbb{Z}$ denote the set of integers. We will write $\mathbb{Z}_n = \left\lbrace 0, 1, \dots, n - 1 \right\rbrace$. + +> **Definition.** Let $x, y \in \mathbb{Z}$. $\gcd(x, y)$ is the **greatest common divisor** of $x, y$. $x$ and $y$ are relatively prime if $\gcd(x, y) = 1$. + +> **Definition.** The **multiplicative inverse** of $x \in \mathbb{Z}_n$ is an element $y \in \mathbb{Z}_n$ such that $xy = 1$ in $\mathbb{Z}_n$. + +> **Lemma.** $x \in \mathbb{Z}_n$ has a multiplicative inverse if and only if $\gcd(x, n) = 1$. + +> **Definition.** $\mathbb{Z}_n^\ast$ is the set of invertible elements in $\mathbb{Z}_n$. i.e, $\mathbb{Z}_n^\ast = \left\lbrace x \in \mathbb{Z}_n : \gcd(x, n) = 1 \right\rbrace$. + +> **Lemma.** (Extended Euclidean Algorithm) For $x, y \in \mathbb{Z}$, there exists $a, b \in \mathbb{Z}$ such that $ax + by = \gcd(x, y)$. + +### Group Theory + +> **Definition.** A **group** is a set $G$ with a binary operation $* : G \times G \rightarrow G$, satisfying the following properties. +> +> - $(\mathsf{G1})$ (Associative) $(a * b) * c = a * (b * c)$ for all $a, b, c \in G$. +> - $(\mathsf{G2})$ (Identity) $\exists e \in G$ such that for all $a\in G$, $e * a = a * e = a$. +> - $(\mathsf{G3})$ (Inverse) For each $a \in G$, $\exists x \in G$ such that $a * x = x * a = e$. In this case, $x = a^{-1}$. + +> **Definition.** A group is **commutative** if $a * b = b * a$ for all $a, b \in G$. + +> **Definition.** The **order** of a group is the number of elements in $G$, denoted as $\left\lvert G \right\lvert$. + +> **Definition.** A set $H \subseteq G$ is a **subgroup** of $G$ if $H$ is itself a group under the operation of $G$. We write $H \leq G$. + +> **Theorem.** (Lagrange) Let $G$ be a finite group and $H \leq G$. Then $\left\lvert H \right\lvert \mid \left\lvert G \right\lvert$. + +*Proof*. All left cosets of $H$ have the same number of elements. A bijection between any two coset can be constructed. Cosets partition $G$, so $\left\lvert G \right\lvert$ is equal to the number of left cosets multiplied by $\left\lvert H \right\lvert$. + +Let $G$ be a group. + +> **Definition.** Let $g \in G$. The set $\left\langle g \right\rangle = \left\lbrace g^n : n \in \mathbb{Z} \right\rbrace$ is called the **cyclic subgroup generated by $g$**. The **order** of $g$ is the number of elements in $\left\langle g \right\rangle$, denoted as $\left\lvert g \right\lvert$. + +> **Definition.** $G$ is **cyclic** if there exists $g \in G$ such that $G = \left\langle g \right\rangle$. + +> **Theorem.** $\mathbb{Z}_p^\ast$ is cyclic. + +*Proof*. $\mathbb{Z}_p$ is a finite field, so $\mathbb{Z}_p^\ast = \mathbb{Z}_p \setminus \left\lbrace 0 \right\rbrace$ is cyclic. + +> **Theorem.** If $G$ is a finite group, then $g^{\left\lvert G \right\lvert} = 1$ for all $g \in G$. i.e, $\left\lvert g \right\lvert \mid \left\lvert G \right\lvert$. + +*Proof*. Consider $\left\langle g \right\rangle \leq G$, then the result follows from Lagrange's theorem. + +> **Corollary.** (Fermat's Little Theorem) If $x \in \mathbb{Z}_p^\ast$, $x^{p-1} = 1$. + +*Proof*. $\mathbb{Z}_p^\ast$ has $p-1$ elements. + +> **Corollary.** (Euler's Generalization) If $x \in \mathbb{Z}_n^\ast$, $x^{\phi(n)} = 1$. + +*Proof*. $\mathbb{Z}_n^\ast$ has $\phi(n)$ elements, where $\phi(n)$ is the Euler's totient function. + +--- + +Schemes such as Diffie-Hellman rely on the hardness of the DLP. So, *how hard is it*? How does one compute the discrete logarithm? + +There are group-specific algorithms that exploit the algebraic features of the group, but we only cover generic algorithms, that works on any cyclic group. A trivial example would be the exhaustive search, where if $\left\lvert G \right\lvert = n$ and given a generator $g \in G$, find the discrete logarithm of $h \in G$ by computing $g^i$ for all $i = 1, \dots, n - 1$. Obviously, it has running time $\mathcal{O}(n)$. We can do better than this. + +## Baby Step Giant Step Method (BSGS) + +Let $G = \left\langle g \right\rangle$, where $g \in G$ has order $q$. $q$ need not be prime for this method. We are given $u = g^\alpha$, $g$, and $q$. Our task is to find $\alpha \in \mathbb{Z}_q$. + +Set $m = \left\lceil \sqrt{q} \right\rceil$. $\alpha$ is currently unknown, but by the division algorithm, there exists integers $i,j$ such that $\alpha = i \cdot m + j$ and $0\leq i, j < m$. Then $u = g^\alpha = g^{i\cdot m + j} = g^{im} \cdot g^j$. Therefore, + +$$ +u(g^{-m})^i = g^j. +$$ + +Now, we compute the values of $g^j$ for $j = 0, 1,\dots, m - 1$ and keep a table of $(j, g^j)$ pairs. Next, compute $g^{-m}$ and for each $i$, compute $u(g^{-m})^{i}$ and check if this value is in the table. If a value is found, then we found $(i, j)$ such that $i \cdot m + j = \alpha$. + +We see that this algorithm takes $2\sqrt{q}$ group operations on $G$ in the worst case, so the time complexity is $\mathcal{O}(\sqrt{q})$. However, to store the values of $(j, g^j)$ pairs, a lot of memory is required. The table must be large enough to contain $\sqrt{q}$ group elements, so the space complexity is also $\mathcal{O}(\sqrt{q})$. + +To get around this, we can build a smaller table by choosing a smaller $m$. But then $0 \leq j < m$ but $i$ must be checked for around $q/m$ values. + +There is actually an algorithm using constant space. **Pollard's Rho** algorithm takes $\mathcal{O}(\sqrt{q})$ times and $\mathcal{O}(1)$ space. + +## Groups of Composite Order + +In Diffie-Hellman, we only used large primes. There is a reason for using groups with prime order. We study what would happen if we used composite numbers. + +Let $G$ be a cyclic group of composite order $n$. First, we start with a simple case. + +### Prime Power Case: Order $n = q^e$ + +Let $G = \left\langle g \right\rangle$ be a cyclic group of order $q^e$.[^1] ($q > 1$, $e \geq 1$) We are given $g,q, e$ and $u = g^\alpha$ and we will find $\alpha$. ($0 \leq \alpha < q^e)$ + +For each $f = 0, \dots, e$, define $g_f = g^{(q^f)}$. Then + +$$ +(g_f)^{(q^{e-f})} = g^{(q^f) \cdot (q^{e-f})} = g^{(q^e)} = 1. +$$ + +So $g_f$ generates a cyclic subgroup of order $q^{e-f}$. In particular, $g_{e-1}$ generates a cyclic subgroup of order $q$. Using this fact, we will reduce the given problem into a discrete logarithm problem on a group having smaller order $q$. + +We proceed with recursion on $e$. If $e = 1$, then $\alpha \in \mathbb{Z}_q$, so we have nothing to do. Suppose $e > 1$. Choose $f$ so that $1 \leq f \leq e-1$. We can write $\alpha = i\cdot q^f + j$, where $0 \leq i < q^{e-f}$ and $0 \leq j < g^f$. Then + +$$ +u = g^\alpha = g^{i \cdot q^f + j} = (g_f)^i \cdot g^j. +$$ + +Since $g_f$ has order $q^{e-f}$, exponentiate both sides by $q^{e-f}$ to get + +$$ +u^{(q^{e-f})} = (g_f)^{q^{e-f} \cdot i} \cdot g^{q^{e-f} \cdot j} = (g_{e-f})^j. +$$ + +Now the problem has been reduced to a discrete logarithm problem with base $g_{e-f}$, which has order $q^f$. We can compute $j$ using algorithms for discrete logarithms. + +After finding $j$, we have + +$$ +u/g^j = (g_f)^i +$$ + +which is also a discrete logarithm problem with base $g_f$, which has order $q^{e-f}$. We can compute $i$ that satisfies this equation. Finally, we can compute $\alpha = i \cdot q^f + j$. We have reduced a discrete logarithm problem into two smaller discrete logarithm problems. + +To get the best running time, choose $f \approx e/2$. Let $T(e)$ be the running time, then + +$$ +T(e) = 2T\left( \frac{e}{2} \right) + \mathcal{O}(e\log q). +$$ + +The $\mathcal{O}(e\log q)$ term comes from exponentiating both sides by $q^{e-f}$. Solving this recurrence gives + +$$ +T(e) = \mathcal{O}(e \cdot T_{\mathrm{base}} + e\log e \log q), +$$ + +where $T_\mathrm{base}$ is the complexity of the algorithm for the base case $e = 1$. $T_\mathrm{base}$ is usually the dominant term, since the best known algorithm takes $\mathcal{O}(\sqrt{q})$. + +Thus, computing the discrete logarithm in $G$ is only as hard as computing it in the subgroup of prime order. + +### General Case: Pohlig-Hellman Algorithm + +Let $G = \left\langle g \right\rangle$ be a cyclic group of order $n = q_1^{e_1}\cdots q_r^{e_r}$, where the factorization of $n$ into distinct primes $q_i$ is given. We want to find $\alpha$ such that $g^\alpha = u$. + +For $i = 1, \dots, r$, define $q_i^\ast = n / q_i^{e_i}$. Then $u^{q_i^\ast} = (g^{q_i^\ast})^\alpha$, where $g^{q_i^\ast}$ will have order $q_i^{e_i}$ in $G$. Now compute $\alpha_i$ using the algorithm for the prime power case. + +Then for all $i$, we have $\alpha \equiv \alpha_i \pmod{q_i^{e_i}}$. We can now use the Chinese remainder theorem to recover $\alpha$. Let $q_r$ be the largest prime, then the running time is bounded by + +$$ +\sum_{i=1}^r \mathcal{O}(e_i T(q_i) + e_i \log e_i \log q_i) = \mathcal{O}(T(q_r) \log n + \log n \log \log n) +$$ + +group operations. Thus, we can conclude the following. + +> The difficulty of computing discrete logarithms in a cyclic group of order $n$ is determined by the size of the largest prime factor. + +### Consequences + +- For a group with order $n = 2^k$, the Pohlig-Hellman algorithm will easily compute the discrete logarithm, since the largest prime factor is $2$. The DL assumption is false for this group. +- For primes of the form $p = 2^k + 1$, the group $\mathbb{Z}_p^\ast$ has order $2^k$, so the DL assumption is also false for these primes. +- In general, $G$ must have at least one large prime factor for the DL assumption to be true. +- By the Pohlig-Hellman algorithm, discrete logarithms in groups of composite order is a little harder than groups of prime order. So we often use a prime order group. + +## Information Leakage in Groups of Composite Order + +Let $G = \left\langle g \right\rangle$ be a cyclic group of composite order $n$. We suppose that $n = n_1n_2$, where $n_1$ is a small prime factor. + +By the Pohlig-Hellman algorithm, the adversary can compute $\alpha_1 \equiv \alpha \pmod {n_1}$ by computing the discrete logarithm of $u^{n_2}$ with base $g^{n_2}$. + +Consider $n_1 = 2$. Then the adversary knows whether $\alpha$ is even or not. + +> **Lemma.** $\alpha$ is even if and only if $u^{n/2} = 1$. + +*Proof*. If $\alpha$ is even, then $u^{n/2} = g^{\alpha n/2} = (g^{\alpha/2})^n = 1$, since the group has order $n$. Conversely, if $u^{n/2} = g^{\alpha n/2} = 1$, then the order of $g$ must divide $\alpha n/2$, so $n \mid (\alpha n /2)$ and $\alpha$ is even. + +This lemma can be used to break the DDH assumption. + +> **Lemma.** Given $u = g^\alpha$ and $v = g^\beta$, $\alpha\beta \in \mathbb{Z}_n$ is even if and only if $u^{n/2} = 1$ or $v^{n/2} = 1$. + +*Proof*. $\alpha\beta$ is even if and only if either $\alpha$ or $\beta$ is even. By the above lemma, this is equivalent to $u^{n/2} = 1$ or $v^{n/2} = 1$. + +Now we describe an attack for the DDH problem. + +> 1. The adversary is given $(g^\alpha, g^\beta, g^\gamma)$. +> 2. The adversary computes the parity of $\gamma$ and $\alpha\beta$ and compares them. +> 3. The adversary outputs $\texttt{accept}$ if the parities match, otherwise output $\texttt{reject}$. + +If $\gamma$ was chosen uniformly, then the adversary wins with probability $1/2$. But if $\gamma = \alpha\beta$, the adversary always wins, so the adversary has DDH advantage $1/2$. + +The above process can be generalized to any groups with small prime factor. See Exercise 16.2[^2] Thus, this is another reason we use groups of prime order. + +- DDH assumption does not hold in $\mathbb{Z}_p^\ast$, since its order $p-1$ is always even. +- Instead, we use a prime order subgroup of $\mathbb{Z}_p^\ast$ or prime order elliptic curve group. + +## Summary of Discrete Logarithm Algorithms + +|Name|Time Complexity|Space Complexity| +|:-:|:-:|:-:| +|BSGS|$\mathcal{O}(\sqrt{q})$|$\mathcal{O}(\sqrt{q})$| +|Pohlig-Hellman|$\mathcal{O}(\sqrt{q_\mathrm{max}}$|$\mathcal{O}(1)$| +|Pollard's Rho|$\mathcal{O}(\sqrt{q})$|$\mathcal{O}(1)$| + +- In generic groups, solving the DLP requires $\Omega(\sqrt{q})$ operations. + - By *generic groups*, we mean that only group operations and equality checks are allowed. Algebraic properties are not used. +- Thus, we use a large prime $q$ such that $\sqrt{q}$ is large enough. + +## Candidates of Discrete Logarithm Groups + +We need groups of order prime, and we cannot use $\mathbb{Z}_p^\ast$ as itself. We have two candidates. + +- Use a subgroup of $\mathbb{Z}_p^\ast$ having prime order $q$ such that $q \mid (p-1)$ as in Diffie-Hellman. +- Elliptic curve group modulo $p$. + +### Reduced Residue Class $\mathbb{Z}_p^\ast$ + +There are many specific algorithms for discrete logarithms on $\mathbb{Z}_p^\ast$. + +- Index-calculus +- Elliptic-curve method +- Special number-field sieve (SNFS) +- **General number-field sieve** (GNFS) + +GNFS running time is dominated by the term $\exp(\sqrt[3]{\ln p})$. If we let $p$ to be an $n$-bit prime, then the complexity is $\exp(\sqrt[3]{n})$. Suppose that GNFS runs in time $T$ for prime $p$. Since $\sqrt[3]{2} \approx 1.26$, doubling the number of bits will increase the running time of GNFS to $T^{1,26}$. + +Compare this with symmetric ciphers such as AES, where doubling the key size squares the amount of work required.[^3] NIST and Lenstra recommends the size of primes that gives a similar level of security to that of symmetric ciphers. + +|Symmetric key length|Size of prime (NIST)|Size of prime (Lenstra)| +|:-:|:-:|:-:| +|80|1024|1329| +|128|3072|4440| +|256|15360|26268| + +All sizes are in bits. Thus we need a very large prime, for example $p > 2^{2048}$, for security these days. + +### Elliptic Curve Group over $\mathbb{Z}_p$ + +Currently, the best-known attacks are generic attacks, so we can use much smaller parameters than $\mathbb{Z}_p^\ast$. Often the groups have sizes about $2^{256}$, $2^{384}$, $2^{512}$. + +[^1]: We didn't require $q$ to be prime! +[^2]: A Graduate Course in Applied Cryptography +[^3]: Recall that the best known attack was only 4 times faster than brute-force search. diff --git a/_posts/Lecture Notes/Modern Cryptography/2023-10-19-public-key-encryption.md b/_posts/Lecture Notes/Modern Cryptography/2023-10-19-public-key-encryption.md new file mode 100644 index 0000000..aaaf288 --- /dev/null +++ b/_posts/Lecture Notes/Modern Cryptography/2023-10-19-public-key-encryption.md @@ -0,0 +1,457 @@ +--- +share: true +toc: true +math: true +categories: + - Lecture Notes + - Modern Cryptography +tags: + - lecture-note + - cryptography + - security +title: 9. Public Key Encryption +date: 2023-10-19 +github_title: 2023-10-19-public-key-encryption +image: + path: assets/img/posts/Lecture Notes/Modern Cryptography/mc-09-ss-pke.png +attachment: + folder: assets/img/posts/Lecture Notes/Modern Cryptography +--- + + +In symmetric encryption, we assumed that the two parties had a shared key in advance. If the two parties do not have a shared key, **public-key encryption** can be used to encrypt messages. + +## Public Key Encryption + +> **Definition.** A **public key encryption scheme** $\mc{E} = (G, E, D)$ is a triple of efficient algorithms: a **key generation** algorithm $G$, an **encryption algorithm** $E$, a decryption algorithm $D$. +> +> - $G$ generates a key pair as $(pk, sk) \la G()$. $pk$ is called a **public key** and $sk$ is called a **secret key**. +> - $E$ takes a public key $pk$ and a message $m$ and outputs ciphertext $c \la E(pk, m)$. +> - $D$ takes a secret key $sk$ and a ciphertext $c$ and outputs plaintext $m \la D(sk, c)$ or a special $\texttt{reject}$ value $\bot$. +> +> We say that $\mc{E} = (G, E, D)$ is defined over $(\mc{M}, \mc{C})$. + +$G$ and $E$ may be probabilistic, but $D$ must be deterministic. Also, correctness condition is required. For any $(pk, sk)$ and $m \in \mc{M}$, + +$$ +\Pr[D(sk, E(pk, m)) = m] = 1. +$$ + +Public key $pk$ will be publicized. After Alice obtains $pk$, she can use it to encrypt any message and send it to Bob. This is the only interaction required. The public key can be used multiple times, and others besides Alice can use it too. Finally, $sk$ should be hard to compute from $pk$, obviously for security. + +## CPA Security for Public Key Encryption + +### Semantic Security + +The following notion of security is only for an eavesdropping adversary. + +![mc-09-ss-pke.png](../../../assets/img/posts/Lecture%20Notes/Modern%20Cryptography/mc-09-ss-pke.png) + +> **Definition.** Let $\mc{E} = (G, E, D)$ be a public key encryption scheme defined over $(\mc{M}, \mc{C})$. For an adversary $\mc{A}$, we define two experiments. +> +> **Experiment** $b$. +> 1. The challenger computes $(pk, sk) \la G()$ and sends $pk$ to the adversary. +> 2. The adversary chooses $m_0, m_1 \in \mc{M}$ of the same length, and sends them to the challenger. +> 3. The challenger computes $c \la E(pk, m_b)$ and sends $c$ to the adversary. +> 4. $\mc{A}$ outputs a bit $b' \in \braces{0, 1}$. +> +> Let $W_b$ be the event that $\mc{A}$ outputs $1$ in experiment $b$. The **advantage** of $\mc{A}$ with respect to $\mc{E}$ is defined as +> +> $$ +> \Adv[SS]{\mc{A}, \mc{E}} = \abs{\Pr[W_0] - \Pr[W_1]}. +> $$ +> +> $\mc{E}$ is **semantically secure** if $\rm{Adv}_{\rm{SS}}[\mc{A}, \mc{E}]$ is negligible for any efficient $\mc{A}$. + +Note that $pk$ is sent to the adversary, and adversary can encrypt any message! Thus, encryption must be randomized. Otherwise, the adversary can compute $E(pk, m_b)$ for each $b$ and compare with $c$ given from the challenger. + +### Semantic Security $\implies$ CPA + +For symmetric ciphers, semantic security (one-time) did not guarantee CPA security (many-time). But in public key encryption, semantic security implies CPA security. This is because *the attacker can encrypt any message using the public key*. + +First, we check the definition of CPA security for public key encryption. It is similar to that of symmetric ciphers, compare with [CPA Security for symmetric key encryption (Modern Cryptography)](../2023-09-19-symmetric-key-encryption/#cpa-security). + +> **Definition.** For a given public-key encryption scheme $\mc{E} = (G, E, D)$ defined over $(\mc{M}, \mc{C})$ and given an adversary $\mc{A}$, define experiments 0 and 1. +> +> **Experiment $b$.** +> 1. The challenger computes $(pk, sk) \la G()$ and sends $pk$ to the adversary. +> 2. The adversary submits a sequence of queries to the challenger: +> - The $i$-th query is a pair of messages $m_{i, 0}, m_{i, 1} \in \mc{M}$ of the same length. +> 3. The challenger computes $c_i = E(pk, m_{i, b})$ and sends $c_i$ to the adversary. +> 4. The adversary computes and outputs a bit $b' \in \braces{0, 1}$. +> +> Let $W_b$ be the event that $\mc{A}$ outputs $1$ in experiment $b$. Then the **CPA advantage with respect to $\mc{E}$** is defined as +> +> $$ +> \Adv[CPA]{\mc{A}, \mc{E}} = \abs{\Pr[W_0] - \Pr[W_1]}. +> $$ +> +> If the CPA advantage is negligible for all efficient adversaries $\mc{A}$, then $\mc{E}$ is **semantically secure against chosen plaintext attack**, or simply **CPA secure**. + +We formally prove the following theorem. + +> **Theorem.** If a public-key encryption scheme $\mc{E}$ is semantically secure, then it is also CPA secure. +> +> For any $q$-query CPA adversary $\mc{A}$, there exists an SS adversary $\mc{B}$ such that +> +> $$ +> \rm{Adv}_{\rm{CPA}}[\mc{A}, \mc{E}] = q \cdot \rm{Adv}_{\rm{SS}}[\mc{B}, \mc{E}]. +> $$ + +*Proof*. The proof uses a hybrid argument. For $j = 0, \dots, q$, the *hybrid game* $j$ is played between $\mc{A}$ and a challenger that responds to the $q$ queries as follows: + +- On the $i$-th query $(m_{i,0}, m_{i, 1})$, respond with $c_i$ where + - $c_i \la E(pk, m_{i, 1})$ if $i \leq j$. + - $c_i \la E(pk, m_{i, 0})$ otherwise. + +So, the challenger in hybrid game $j$ encrypts $m_{i, 1}$ in the first $j$ queries, and encrypts $m_{i, 0}$ for the rest of the queries. If we define $p_j$ to be the probability that $\mc{A}$ outputs $1$ in hybrid game $j$, we have + +$$ +\Adv[CPA]{\mc{A}, \mc{E}} = \abs{p_q - p_0} +$$ + +since hybrid $q$ is precisely experiment $1$, hybrid $0$ is experiment $0$. With $\mc{A}$, we define $\mc{B}$ as follows. + +1. $\mc{B}$ randomly chooses $\omega \la \braces{1, \dots, q}$. +2. $\mc{B}$ obtains $pk$ from the challenger, and forwards it to $\mc{A}$. +3. For the $i$-th query $(m_{i, 0}, m_{i, 1})$ from $\mc{A}$, $\mc{B}$ responds as follows. + - If $i < \omega$, $c \la E(pk, m_{i, 1})$. + - If $i = \omega$, forward query to the challenger and forward its response to $\mc{A}$. + - Otherwise, $c_i \la E(pk, m_{i, 0})$. +4. $\mc{B}$ outputs whatever $\mc{A}$ outputs. + +Note that $\mc{B}$ can encrypt queries on its own, since the public key is given. Define $W_b$ as the event that $\mc{B}$ outputs $1$ in experiment $b$ in the semantic security game. For $j = 1, \dots, q$, we have that + +$$ +\Pr[W_0 \mid \omega = j] = p_{j - 1}, \quad \Pr[W_1 \mid \omega = j] = p_j. +$$ + +In experiment $0$ with $\omega = j$, $\mc{A}$ receives encryptions of $m_{i, 1}$ in the first $j - 1$ queries and receives encryptions of $m_{i, 1}$ for the rest of the queries. The second equation follows similarly. + +Then the SS advantage can be calculated as + +$$ +\begin{aligned} +\Adv[SS]{\mc{B}, \mc{E}} &= \abs{\Pr[W_0] - \Pr[W_1]} \\ +&= \frac{1}{q} \abs{\sum_{j=1}^q \Pr[W_0 \mid \omega = j] - \sum_{j = 1}^q \Pr[W_1 \mid \omega = j]} \\ +&= \frac{1}{q} \abs{\sum_{j=1}^q (p_{j-1} - p_j)} \\ +&= \frac{1}{q} \Adv[CPA]{\mc{A}, \mc{E}}. +\end{aligned} +$$ + +## CCA Security for Public Key Encryption + +We also define CCA security for public key encryption, which models a wide spectrum of real-world attacks. The definition is also very similar to that of symmetric ciphers, compare with [CCA security for symmetric ciphers (Modern Cryptography)](../2023-09-26-cca-security-authenticated-encryption/#cca-security). + +> **Definition.** Let $\mc{E} = (G, E, D)$ be a public-key encryption scheme over $(\mc{M}, \mc{C})$. Given an adversary $\mc{A}$, define experiments $0$ and $1$. +> +> **Experiment $b$.** +> 1. The challenger computes $(pk, sk) \la G()$ and sends $pk$ to the adversary. +> 2. $\mc{A}$ makes a series of queries to the challenger, which is one of the following two types. +> - *Encryption*: Send $(m_{i_,0}, m_{i, 1})$ and receive $c'_i \la E(pk, m_{i, b})$. +> - *Decryption*: Send $c_i$ and receive $m'_i \la D(sk, c_i)$. +> - Note that $\mc{A}$ is not allowed to make a decryption query for any $c_i'$. +> 3. $\mc{A}$ outputs a pair of messages $(m_0^ * , m_1^*)$. +> 4. The challenger generates $c^* \la E(pk, m_b^*)$ and gives it to $\mc{A}$. +> 5. $\mc{A}$ is allowed to keep making queries, but not allowed to make a decryption query for $c^*$. +> 6. The adversary computes and outputs a bit $b' \in \left\lbrace 0, 1 \right\rbrace$. +> +> Let $W_b$ be the event that $\mc{A}$ outputs $1$ in experiment $b$. Then the **CCA advantage with respect to $\mc{E}$** is defined as +> +> $$ +> \rm{Adv}_{\rm{CCA}}[\mc{A}, \mc{E}] = \left\lvert \Pr[W_0] - \Pr[W_1] \right\lvert. +> $$ +> +> If the CCA advantage is negligible for all efficient adversaries $\mc{A}$, then $\mc{E}$ is **semantically secure against a chosen ciphertext attack**, or simply **CCA secure**. + +Note that encryption queries are not strictly required, since in public-key schemes, the adversary can encrypt any messages on its own. We can consider a restricted security game, where an adversary makes only a single encryption query. + +> **Definition.** If $\mc{A}$ is restricted to making a single encryption query, we denote its advantage by $\Adv[1CCA]{\mc{A}, \mc{E}}$. A public-key encryption scheme $\mc{E}$ is **one-time semantically secure against chosen ciphertext attack**, or simply **1CCA** secure if $\Adv[1CCA]{\mc{A}, \mc{E}}$ is negligible for all efficient adversaries $\mc{A}$. + +Similarly, 1CCA security implies CCA security, as in the above theorem. So to show CCA security for public-key schemes, *it suffices to show that the scheme is 1CCA secure*. + +> **Theorem.** If a public-key encryption scheme $\mc{E}$ is 1CCA secure, then it is also CCA secure. + +*Proof*. Same as the proof in above theorem. + +### Active Adversaries in Symmetric vs Public Key + +In symmetric key encryption, we studied [authenticated encryption (AE)](../2023-09-26-cca-security-authenticated-encryption/#authenticated-encryption-ae), which required the scheme to be CPA secure and provide ciphertext integrity. In symmetric key settings, AE implied CCA. + +However in public-key schemes, adversaries can always create new ciphertexts using the public key, which makes the original definition of ciphertext integrity unusable. Thus we directly require CCA security. + +## Hybrid Encryption and Key Encapsulation Mechanism + +Symmetric key encryptions are significantly faster than public key encryption, so we use public-key encryption for sharing the key, and then the key is used for symmetric key encryption. + +Generate $(pk, sk)$ for the public key encryption, and generate a symmetric key $k$. For the message $m$, encrypt it as + +$$ +(c, c_S) \la \big( E(pk, k), E_S(k, m) \big) +$$ + +where $E_S$ is the symmetric encryption algorithm, $E$ is the public-key encryption algorithm. The receiver decrypts $c$ and recovers $k$ that can be used for decrypting $c_S$. This is a form of **hybrid encryption**. We are *encapsulating* the key $k$ inside a ciphertext, so we call this **key encapsulation mechanism** (KEM). + +We can use public-key schemes for KEM, but there are dedicated constructions for KEM which are more efficient. The dedicated algorithms does the key generation and encryption in one-shot. + +> **Definition.** A KEM $\mc{E}_\rm{KEM}$ consists of a triple of algorithms $(G, E_\rm{KEM}, D_\rm{KEM})$. +> +> - The key generation algorithm generates $(pk, sk) \la G()$. +> - The encapsulation algorithm generates $(k, c_\rm{KEM}) \la E_\rm{KEM}(pk)$. +> - The decapsulation algorithm generates $k \la D_\rm{KEM}(sk, c_\rm{KEM})$. + +Note that $E_\rm{KEM}$ only takes the public key as a parameter. The correctness condition is that for any $(pk, sk) \la G()$ and any $(k, c_\rm{KEM}) \la E_\rm{KEM}(pk)$, we must have $k \la D_\rm{KEM}(sk, c_\rm{KEM})$. + +Using the KEM, the symmetric key is automatically encapsulated during encryption process. + +> **Definition.** A KEM scheme is secure if any efficient adversary cannot distinguish between $(c_\rm{KEM}, k_0)$ and $(c_\rm{KEM}, k_1)$, where $k_0$ is generated by $E(pk)$, and $k_1$ is chosen randomly from $\mc{K}$. + +Read more about this in Exercise 11.9.[^1] + +## The ElGamal Encryption + +We introduce a public-key encryption scheme based on the hardness of discrete logarithms. + +> **Definition.** Suppose we have two parties Alice and Bob. Let $G = \left\langle g \right\rangle$ be a cyclic group of prime order $q$, let $\mc{E}_S = (E_S, D_S)$ be a symmetric cipher. +> +> 1. Alice chooses $sk = \alpha \la \Z_q$, computes $pk = g^\alpha$ and sends $pk$ to Bob. +> 2. Bob also chooses $\beta \la \Z_q$ and computes $k = h^\beta = g^{\alpha\beta}$. +> 3. Bob sends $\big( g^\beta, E_S(k, m) \big)$ to Alice. +> 4. Alice computes $k = g^{\alpha\beta} = (g^\beta)^\alpha$ using $\alpha$ and recovers $m$ by decrypting $E_S(k, m)$. + +As a concrete example, set $E_S(k, m) = k \cdot m$ and $D_S(k, c) = k^{-1} \cdot c$. The correctness property automatically holds. Therefore, + +- $G$ outputs $sk = \alpha \la \Z_q$, $pk = h = g^\alpha$. +- $E(pk, m) = (c_1, c_2) \la (g^\beta, h^\beta \cdot m)$ where $\beta \la \Z_q$. +- $D(sk, c) = c_2 \cdot (c_1)^{-\alpha} = m$. + +### Security of ElGamal Encryption + +> **Theorem.** If the DDH assumption holds on $G$, and the symmetric cipher $\mc{E}_S = (E_S, D_S)$ is semantically secure, then the ElGamal encryption scheme $\mc{E}_\rm{EG}$ is semantically secure. +> +> For any SS adversary $\mc{A}$ of $\mc{E}_\rm{EG}$, there exist a DDH adversary $\mc{B}$, and an SS adversary $\mc{C}$ for $\mc{E}_S$ such that +> +> $$ +> \Adv[SS]{\mc{A}, \mc{E}_\rm{EG}} \leq 2 \cdot \Adv[DDH]{\mc{B}, G} + \Adv[SS]{\mc{C}, \mc{E}_S}. +> $$ + +*Proof Idea*. For any $m_0, m_1 \in G$ and random $\gamma \la \Z_q$, + +$$ +E_S(g^{\alpha\beta}, m_0) \approx_c E_S(g^{\gamma}, m_0) \approx_c E_S(g^\gamma, m_1) \approx_c E_S(g^{\alpha\beta}, m_1). +$$ + +The first two and last two ciphertexts are computationally indistinguishable since the DDH problem is hard. The second and third ciphertexts are also indistinguishable since $\mc{E}_S$ is semantically secure. + +*Proof*. Full proof in Theorem 11.5.[^1] + +Note that $\beta \la \Z_q$ must be chosen differently for each encrypted message. This is the randomness part of the encryption, since $pk = g^\alpha, sk =\alpha$ are fixed. + +### Hashed ElGamal Encryption + +**Hashed ElGamal encryption** scheme is a variant of the original ElGamal scheme, where we use a hash function $H : G \ra \mc{K}$, where $\mc{K}$ is the key space of $\mc{E}_S$. + +The only difference is that we use $H(g^{\alpha\beta})$ as the key.[^2] + +> 1. Alice chooses $sk = \alpha \la \Z_q$, computes $pk = g^\alpha$ and sends $pk$ to Bob. +> 2. Bob also chooses $\beta \la \Z_q$ and computes $h^\beta = g^{\alpha\beta}$**, and sets $k = H(g^{\alpha\beta})$.** +> 3. Bob sends $\big( g^\beta, E_S(k, m) \big)$ to Alice. +> 4. Alice computes $g^{\alpha\beta} = (g^\beta)^\alpha$ using $\alpha$, **computes $k = H(g^{\alpha\beta})$** and recovers $m$ by decrypting $E_S(k, m)$. + +This is also semantically secure, under the random oracle model. + +> **Theorem.** Let $H : G \ra \mc{K}$ be modeled as a random oracle. If the CDH assumption holds on $G$ and $\mc{E}_S$ is semantically secure, then the hashed ElGamal scheme $\mc{E}_\rm{HEG}$ is semantically secure. + +*Proof Idea*. Given a ciphertext $\big( g^\beta, E_S(k, m) \big)$ with $k = H(g^{\alpha\beta})$, the adversary learns nothing about $k$ unless it constructs $g^{\alpha\beta}$. This is because we modeled $H$ as a random oracle. If the adversary learns about $k$, then this adversary breaks the CDH assumption for $G$. Thus, if CDH assumption holds for the adversary, $k$ is completely random, so the hashed ElGamal scheme is secure by the semantic security of $\mc{E}_S$. + +*Proof*. Refer to Theorem 11.4.[^1] + +Since the hashed ElGamal scheme is semantically secure, it is automatically CPA secure. But this is not CCA secure, and we need a stronger assumption. + +### Interactive Computational Diffie-Hellman Problem (ICDH) + +> **Definition.** Let $G = \left\langle g \right\rangle$ be a cyclic group of prime order $q$. Let $\mc{A}$ be a given adversary. +> +> 1. The challenger chooses $\alpha, \beta \la \Z_q$ and sends $g^\alpha, g^\beta$ to the adversary. +> 2. The adversary makes a sequence of **DH-decision oracle queries** to the challenger. +> - Each query has the form $(v, w) \in G^2$, challenger replies with $1$ if $v^\alpha = w$, replies $0$ otherwise. +> 3. The adversary calculates and outputs some $w \in G$. +> +> We define the **advantage in solving the interactive computational Diffie-Hellman problem for $G$** as +> +> $$ +> \Adv[ICDH]{\mc{A}, G} = \Pr[w = g^{\alpha\beta}]. +> $$ +> +> We say that the **interactive computational Diffie-Hellman (ICDH) assumption** holds for $G$ if for any efficient adversary $\mc{A}$, $\Adv[ICDH]{\mc{A}, G}$ is negligible. + +This is also known as **gap-CDH**. Intuitively, it says that even if we have a DDH solver, CDH is still hard. + +### CCA Security of Hashed ElGamal + +> **Theorem.** If the gap-CDH assumption holds on $G$ and $\mc{E}_S$ provides AE and $H : G \ra \mc{K}$ is a random oracle, then the hashed ElGamal scheme is CCA secure. + +*Proof*. See Theorem 12.4.[^1] (very long) + +## The RSA Encryption + +The RSA scheme was originally designed by Rivest, Shamir and Adleman in 1977.[^3] The RSA trapdoor permutation is used in many places such as SSL/TLS, both for encryption and digital signatures. + +### Textbook RSA Encryption + +The "textbook RSA" is done as follows. + +- Key generation algorithm $G$ outputs $(pk, sk)$. + - Sample two large random primes $p, q$ and set $N = pq$. + - Choose $e \in \Z$ such that $\gcd(e, \phi(N)) = 1$, compute $d = e^{-1} \bmod{\phi(N)}$. + - Output $pk = (N, e)$, $sk = (N, d)$. +- Encryption $E(pk, m) = m^e \bmod N$. +- Decryption $D(sk, c) = c^d \bmod N$ . + +Correctness holds by **Fermat's little theorem**. $ed = 1 \bmod \phi(N)$, so + +$$ +D(sk, (E(pk, m))) = m^{ed} = m^{1 + k(p-1)(q-1)} \bmod N. +$$ + +Since $m^{p-1} = 1 \bmod p$, $m^{ed} = m \bmod N$ (holds trivially if $p \mid m$). A similar argument holds for modulus $q$, so we have $m^{ed} = m \bmod N$. + +### Attacks on Textbook RSA Encryption + +But this scheme is not CPA secure, since it is deterministic and the ciphertext is malleable. For instance, one can choose two messages to be $1$ and $2$. Then the ciphertext is easily distinguishable. + +Also, ciphertext is malleable by the **homomorphic property**. If $c_1 = m_1^e \bmod N$ and $c_2 = m_2^e \bmod N$, then set $c =c_1c_2 = (m_1m_2)^e \bmod N$, which is an encryption of $m_1m_2$. + +#### Attack on KEM + +Assume that the textbook RSA is used as KEM. Suppose that $k$ is $128$ bits, and the attacker sees $c = k^e \bmod N$. With high probability ($80\%$), $k = k_1 \cdot k_2$ for some $k_1, k_2 < 2^{64}$. Using the homomorphic property, $c = k_1^e k_2^e \bmod N$, so the following attack is possible. + +1. Build a table of $c\cdot k_2^{-e}$ for $0 \leq k_2 < 2^{64}$. +2. For each $1 \leq k_1 < 2^{64}$, compute $k_1^e$ to check if it is in the table. +3. Output a match $(k_1, k_2)$. + +The attack has complexity $\mc{O}(2^{n/2})$ where $n$ is the key length. + +## Trapdoor Functions + +Textbook RSA is not secure, but it is a **one-way trapdoor function**. + +A **one-way function** is a function that is computationally hard to invert. But we sometimes need to invert the functions, so we need functions that have a **trapdoor**. A trapdoor is a secret door that allows efficient inversion, but without the trapdoor, the function must be still hard to invert. + +> **Definition.** Let $\mc{X}$ and $\mc{Y}$ be finite sets. A **trapdoor function scheme** $\mc{T} = (G, F, I)$ defined over $(\mc{X}, \mc{Y})$ is a triple of algorithms. +> +> - $G$ is a probabilistic key generation algorithm that outputs $(pk, sk)$, where $pk$ is the public key and $sk$ is the secret key. +> - $F$ is a deterministic algorithm that outputs $y \la F(pk, x)$ for $x \in \mc{X}$. +> - $I$ is a deterministic algorithm that outputs $x \la I(sk, y)$ for $y \in \mc{Y}$. + +The correctness property says that for any $(pk, sk) \la G()$ and $x \in \mc{X}$, $I(sk, F(pk, x)) = x$. So $sk$ is the trapdoor that inverts this function. + +One-wayness is defined as a security game. + +> **Definition.** Given a trapdoor function scheme $\mc{T} = (G, F, I)$ and an adversary $\mc{A}$, define a security game as follows. +> +> 1. The challenger computes $(pk, sk) \la G()$, $x \la \mc{X}$ and $y \la F(pk, x)$. +> 2. The challenger sends $pk$ and $y$ to the adversary. +> 3. The adversary computes and outputs $x' \in \mc{X}$. +> +> $\mc{A}$ wins if $\mc{A}$ inverts the function. The advantage is defined as +> +> $$ +> \Adv[OW]{\mc{A}, \mc{T}} = \Pr[x = x']. +> $$ +> +> If the advantage is negligible for any efficient adversary $\mc{A}$, then $\mc{T}$ is **one-way**. + +A one-way trapdoor function is not an encryption. The algorithm is deterministic, so it is not CPA secure. Never encrypt with trapdoor functions. + +### Textbook RSA as a Trapdoor Function + +It is easy to see that the textbook RSA is a trapdoor function. + +- Key generation algorithm $G$ chooses random primes $p, q$ and sets $N = pq$. + - Then chooses integer $e$ such that $\gcd(e, \phi(N)) = 1$. + - Set $d = e^{-1} \bmod \phi(N)$. +- Then $F(pk, x) = x^e \bmod N$, and $I(sk, y) = y^d \bmod N$. +- The correctness property holds by the above proof. + +But is RSA a *secure* trapdoor function? Is it one-way? + +- If $d$ is known, it is obviously not one-way. +- If $\phi(N)$ is known, it is not one-way. + - One can find $d = e^{-1} \bmod \phi(N)$. +- If $p$ and $q$ are known, it is not one-way. + - $\phi(N) = (p-1)(q-1)$. + +Thus, if factoring is easy, RSA is not one-way. Thus if RSA is a secure trapdoor function, then factoring must be hard. How about the converse? We don't have a proof, but it seems reasonable to assume. + +## The RSA Assumption + +The RSA assumption says that the RSA problem is hard, which implies that RSA is a **one-way** trapdoor function. + +### The RSA Problem + +> **Definition.** Let $\mc{T}_\rm{RSA} = (G, F, I)$ the RSA trapdoor function scheme. Given an adversary $\mc{A}$, +> +> 1. The challenger chooses $(pk, sk) \la G()$ and $x \la \Z_N$. +> - $pk = (N, e)$, $sk = (N, d)$. +> 2. The challenger computes $y \la x^e \bmod N$ and sends $pk$ and $y$ to the adversary. +> 3. The adversary computes and outputs $x' \in \Z_N$. +> +> The adversary wins if $x = x'$. The advantage is defined as +> +> $$ +> \rm{Adv}_{\rm{RSA}}[\mc{A}, \mc{T_\rm{RSA}}] = \Pr[x = x']. +> $$ +> +> We say that the **RSA assumption** holds if the advantage is negligible for any efficient $\mc{A}$. + +## RSA Public Key Encryption (ISO Standard) + +- Let $(E_S, D_S)$ be a symmetric encryption scheme over $(\mc{K}, \mc{M}, \mc{C})$ that provides AE. +- Let $H : \Z_N^{\ast} \ra \mc{K}$ be a hash function. + +The RSA public key encryption is done as follows. + +- Key generation is the same. +- Encryption + 1. Choose random $x \la \Z_N^{\ast}$ and let $y = x^e \bmod N$. + 2. Compute $c \la E_S(H(x), m)$. + 3. Output $c' = (y, c)$. +- Decryption + - Output $D_S(H(y^d), c)$. + +This works because $x = y^d \bmod N$ and $H(y^d) = H(x)$. In short, this uses RSA trapdoor function as a **key exchange mechanism**, and the actual encryption is done by symmetric encryption. + +It is known that with RSA assumption and $H$ modeled as a random oracle, this scheme is CPA secure. + +### Optimizations for RSA + +The computation time depends on the exponents $e, d$. + +- To speed up RSA, choose a small public exponent $e$. + - $e = 65537 = 2^{16} + 1$ is often used, which only takes $17$ multiplications. +- But $d$ cannot be too small. + - RSA is insecure for $d < N^{0.25}$. (Wiener'87) + - RSA is insecure for $d < N^{0.292}$. (BD'98) + - Is RSA secure for $d < N^{0.5}$? (open problem) +- Often, encryption is fast, but decryption is slow. + - ElGamal takes approximately the same time for both.[^4] + +## Attacks on RSA Implementation + +- Timing Attack + - Time to compute $c^d \bmod N$ exposes $d$. + - More $1$'s in the binary representation of $d$ leads to more multiplications. +- Power Attack + - The power consumption of a smartcard during the computation of $c^d \bmod N$ exposes $d$. +- Faults Attack + - An error during computation exposes $d$. +- Poor Randomness + - Poor entropy at initialization, then same $p$ is generated for multiple devices. + - Collect modulus $N$ from many public keys, and their $\gcd$ will be $p$. + - *PRG must be properly seeded when generating keys.* + +[^1]: A Graduate Course in Applied Cryptography. +[^2]: There is another variant that uses $H : G^2 \ra \mc{K}$ and sets $H(g^\beta, g^{\alpha\beta})$ as the key. This one is also semantically secure, and gives further security properties than the one in the text. +[^3]: This was one year before ElGamal. +[^4]: Discrete logarithms have the same complexity for average case and worst case, but this is not the case for RSA. (Source?) diff --git a/_posts/Lecture Notes/Modern Cryptography/2023-10-26-digital-signatures.md b/_posts/Lecture Notes/Modern Cryptography/2023-10-26-digital-signatures.md new file mode 100644 index 0000000..e541809 --- /dev/null +++ b/_posts/Lecture Notes/Modern Cryptography/2023-10-26-digital-signatures.md @@ -0,0 +1,245 @@ +--- +share: true +toc: true +math: true +categories: + - Lecture Notes + - Modern Cryptography +tags: + - lecture-note + - cryptography + - security +title: 10. Digital Signatures +date: 2023-10-26 +github_title: 2023-10-26-digital-signatures +image: + path: assets/img/posts/Lecture Notes/Modern Cryptography/mc-10-dsig-security.png +attachment: + folder: assets/img/posts/Lecture Notes/Modern Cryptography +--- + + +## Digital Signatures + +> **Definition.** A **signature scheme** $\mc{S} = (G, S, V)$ is a triple of efficient algorithms, where $G$ is a **key generation** algorithm, $S$ is a **signing** algorithm, and $V$ is a **verification** algorithm. +> +> - A probabilistic algorithm $G$ outputs a pair $(pk, sk)$, where $sk$ is called a secret **signing key**, and $pk$ is a public **verification key**. +> - Given $sk$ and a message $m$, a probabilistic algorithm $S$ outputs a **signature** $\sigma \la S(sk, m)$. +> - $V$ is a deterministic algorithm that outputs either $\texttt{{accept}}$ or $\texttt{reject}$ for $V(pk, m, \sigma)$. + +The correctness property requires that all signatures generated by $S$ is always accepted by $V$. For all $(pk, sk) \la G$ and $m \in \mc{M}$, + +$$ +\Pr[V(pk, m, S(sk, m)) = \texttt{{accept}}] = 1. +$$ + +### Properties of Digital Signatures + +- Digital signatures can be verified by anyone, whereas MACs can be verified by the parties sharing the same key. + - No need to share a key for digital signatures. +- **Non-repudiation**: cannot deny having created the signature. + - Signatures can only be created by people having the secret key. + - In cases where the secret key is leaked, then we don't have non-repudiation. + - In MACs, the secret key is shared by two parties, so we don't have non-repudiation. +- Must trust the identity of the public key. + - How do you trust that this public key is Alice's? + - We need **public key infrastructure** (PKI). + +### Applications + +- Electronic document signing +- HTTPS/TLS certificates +- Software installation +- Authenticated email (DKIM) +- Bitcoins + +## Secure Digital Signatures + +The definition is similar to the [secure MAC](../2023-09-21-macs/#secure-mac-unforgeability). The adversary can perform a **chosen message attack**, but cannot create an **existential forgery**. + +![mc-10-dsig-security.png](../../../assets/img/posts/Lecture%20Notes/Modern%20Cryptography/mc-10-dsig-security.png) + +> **Definition.** Let $\mc{S} = (G, S, V)$ be a signature scheme defined over $(\mc{M}, \Sigma)$. Given an adversary $\mc{A}$, the game goes as follows. +> +> 1. The challenger generates $(pk, sk) \la G()$ and sends $pk$ to $\mc{A}$. +> 2. $\mc{A}$ makes a series of *signing queries* to the challenger. +> - Each query is a message $m_i \in \mc{M}$, the challenger responds with $\sigma_i \la S(sk, m_i)$. +> 3. $\mc{A}$ computes and outputs a candidate forgery pair $(m, \sigma) \in \mc{M} \times \Sigma$. +> - $m \notin \left\lbrace m_1, \dots, m_q \right\rbrace$. +> - $(m, \sigma) \notin \left\lbrace (m_1, \sigma_1), \dots, (m_q, \sigma_q) \right\rbrace$. (strong) +> +> $\mc{A}$ wins if $V(pk, m, \sigma) = \texttt{accept}$, let this event be $W$. The advantage of $\mc{A}$ with respect to $\mc{S}$ is defined as +> +> $$ +> \rm{Adv}_{\rm{SIG}}[\mc{A}, \mc{S}] = \Pr[W]. +> $$ +> +> If the advantage is negligible for all efficient adversaries $\mc{A}$, the signature scheme $S$ is (strongly) **secure**. $\mc{S}$ is **existentially unforgeable under a chosen message attack**. + +- We do not make verification queries, since the adversary can always check any signature. +- The normal definition of security is sufficient. Secure signature schemes can be converted into strongly secure signature schemes. See Exercise 14.10.[^1] + +### Message Confusion + +Two different messages $m, m'$ can produce the same signature $\sigma$. In this case, the scheme is vulnerable to **message confusion**. See Exercise 13.3.[^1] + +In common implementations, we consider $m$, $m'$ both to be valid. But there may be situations that this is undesirable. For those cases, a signature is would be a *binding commitment* to the message, and there will be no confusion. + +### Signer Confusion + +Suppose that $(m, \sigma)$ is a valid pair with $pk$, i.e, $V(pk, m, \sigma) = \texttt{accept}$. But an attacker can generate $pk'$ different from $pk$ such that $V(pk', m, \sigma) = \tt{accept}$. In this cases, we have **signer confusion** since both can claim to have signed $m$. See Exercise 13.4.[^1] + +### Strongly Binding Signatures + +**Strongly binding signatures** prevent both message confusion and signer confusion. + +Any signature scheme can be made strongly binding by appending a collision resistant hash of $(pk, m)$ to the signature. See Exercise 13.5.[^1] + +## Extending the Message Space + +We can extend the message space of a secure digital signature scheme, [as we did for MACs](../2023-09-28-hash-functions/#mac-domain-extension). Let $\mc{S} = (G, S, V)$ be a signature scheme defined over $(\mc{M}, \Sigma)$ and let $H : \mc{M}' \ra \mc{M}$ be a hash function with $\left\lvert \mc{M}' \right\lvert \geq \left\lvert \mc{M} \right\lvert$. + +Define a new signature scheme $\mc{S}' = (G, S', V')$ over $(\mc{M}', \Sigma)$ as + +$$ +S'(sk, m) = S(sk, H(m)), \qquad V'(pk, m, \sigma) = V(pk, H(m), \sigma). +$$ + +This is often called the **hash-and-sign paradigm**, and the new signature scheme is also secure. + +> **Theorem.** Suppose that $\mc{S}$ is a secure signature scheme and $H$ is a collision resistant hash function. Then $\mc{S}'$ is a secure signature. +> +> If $\mc{A}$ is an adversary attacking $\mc{S}'$, then there exist an adversary $\mc{B}_\mc{S}$ attacking $\mc{S}$ and an adversary $\mc{B}_H$ attacking $H$ such that +> +> $$ +> \rm{Adv}_{\rm{SIG}}[A, \mc{S}'] \leq \rm{Adv}_{\rm{SIG}}[\mc{B}_\mc{S}, \mc{S}] + \rm{Adv}_{\rm{CR}}[\mc{B}_H, H]. +> $$ + +*Proof*. The proof is identical to the theorem for MACs. + +## Digital Signature Constructions + +We can build secure signature schemes from hash functions, trapdoor permutations, or from discrete logarithms. + +### Textbook RSA Signatures + +This is the signature scheme based on the textbook RSA. It is also insecure. + +- Key generation: $pk = (N, e)$ and $sk = (N, d)$ are chosen to satisfy $d = e^{-1} \bmod \phi(N)$ for $N = pq$. +- Sign: $S(sk, m) = m^d \bmod N$. +- Verify: $V(pk, m, \sigma)$ returns $\texttt{accept}$ if and only if $\sigma^e = m \bmod N$. + +Here are some possible attacks. + +- No message attack + - Just return $(\sigma^e, \sigma)$ for some $\sigma$. Then it passes verification. +- Attack using the homomorphic property. + - Suppose we want to forge a message $m$. + - Pick $m_1 \in \Z_N^{\ast}$ and set $m_2 = m\cdot m_1^{-1} \bmod N$. + - Query signatures for both messages and multiply the responses. + - $\sigma = \sigma_1 \cdot \sigma_2 = m_1^e \cdot m^e \cdot m_1^{-e} = m^e \bmod N$. + - Then $(m, \sigma)$ is a valid pair. + +Because of the second attack, the textbook RSA signature is **universally forgeable**. This property is used to create **blind signatures**, where the signer creates a signature without any knowledge about the message. See Exercise 13.15.[^1] + +### RSA Full Domain Hash Signature Scheme + +Given a hash function $H : \mc{M} \ra \mc{Y}$, the **RSA full domain hash** signature scheme $\mc{S}_\rm{RSA-FDH}$ is defined as follows. + +- Key generation: $pk = (N, e)$ and $sk = (N, d)$ are chosen to satisfy $d = e^{-1} \bmod \phi(N)$ for $N = pq$. +- Sign: $S(sk, m) = H(m)^d \bmod N$. +- Verify: $V(pk, m, \sigma)$ returns $\texttt{accept}$ if and only if $\sigma^d = H(m) \bmod N$. + +This scheme is now secure. + +> **Theorem.** If the hash function $H$ is modeled as a random oracle, and the RSA assumptions holds, then $\mc{S}_\rm{RSA-FDH}$ is a secure signature scheme. +> +> For any $q$-query adversary $\mc{A}$ against hashed RSA, there exists an adversary $\mc{B}$ solving the RSA problem such that +> +> $$ +> \rm{Adv}_{\rm{SIG}}[\mc{A}, \mc{S}_\rm{RSA-FDH}] \leq q \cdot \rm{Adv}_{\rm{RSA}}[\mc{B}]. +> $$ + +### Full Domain Hash Signature Scheme + +The following is a description of a **full domain hash** scheme $\mc{S}_\rm{FDH}$, constructed from trapdoor permutation scheme $\mc{T} = (G, F, I)$. + +- Key generation: $(pk, sk) \la G()$. +- Sign: $S(sk, m)$ returns $\sigma \la I(sk, H(m))$. +- Verify: $V(pk, m, \sigma)$ returns $\texttt{accept}$ if and only if $F(pk, \sigma) = H(m)$. + +This scheme $\mc{S}_\rm{FDH} = (G, S, V)$ is secure if $\mc{T}$ is a **one-way trapdoor permutation** and $H$ is a random oracle. + +> **Theorem.** Let $\mc{T} = (G,F,I)$ be a one-way trapdoor permutation defined over $\mc{X}$. Let $H : \mc{M} \ra \mc{X}$ be a hash function, modeled as a random oracle. Then the derived FDH signature scheme $\mc{S}_\rm{FDH}$ is a secure signature scheme. + +*Proof*. See Theorem 13.3.[^1] + +## Schnorr Digital Signature Scheme + +This one uses discrete logarithms. + +### The Schnorr Identification Protocol + +This scheme is originally from the **Schnorr identification protocol**. + +Let $G = \left\langle g \right\rangle$ be a cyclic group of prime order $q$. We consider an interaction between two parties, prover $P$ and a verifier $V$. The prover has a secret $\alpha \in \Z_q$ and the verification key is $u = g^\alpha$. **$P$ wants to convince $V$ that he knows $\alpha$, but does not want to reveal $\alpha$**. + +![mc-10-schnorr-identification.png](../../../assets/img/posts/Lecture%20Notes/Modern%20Cryptography/mc-10-schnorr-identification.png) + +The protocol $\mc{I}_\rm{sch} = (G, P, V)$ works as follows. + +> 1. A **secret key** $\alpha \la \Z_q$ and **verification key** $u \la g^\alpha$ is generated. The prover $P$ has $\alpha$ and the verifier $V$ has $u$. +> 2. $P$ computes a random $\alpha_t \la \Z_q$, and sends $u_t \la g^{\alpha_t}$ to $V$. +> 3. $V$ chooses a random $c \la \Z_q$ and sends it to $P$. +> 4. $P$ computes $\alpha_z \la \alpha_t + \alpha c \in \Z_q$ and sends it to $V$. +> 5. $V$ checks if $g^{\alpha_z} = u_t \cdot u^c$. Accept if and only if it is equal. + +- $u_t$ is the **commitment** sent to the verifier. +- $c$ is the **challenge** sent to the prover. + - If $P$ can predict the challenge, $P$ can choose $\alpha_t$ and $\alpha_z$ so that verifier accepts it. +- $\alpha_z$ is the **response** sent to the verifier. + +We must check a few things. + +- **Correctness**: If $P$ has the correct $\alpha$, then $g^{\alpha_z} = g^{\alpha_t} \cdot (g^\alpha)^c = u_t \cdot u^c$. +- **Soundness**: If $P$ does not have the correct $\alpha$, it is reject with probability $1 - \frac{1}{q}$. + - We can repeat this many times then the probability of reject is $1 - \frac{1}{q^n} \ra 1$. + - Thus $q$ (the size of the challenge space) must be large. +- **Zero-knowledge**: $V$ learns no information about $x$ from the conversation. + - This will be revisited later. See [here](../2023-11-07-sigma-protocols/#the-schnorr-identification-protocol-revisited). + +> **Theorem.** The Schnorr identification protocol is secure if the DL problem is hard, and the challenge space $\mc{C}$ is large. + +### Schnorr Digital Signature Scheme + +We *transform* the above protocol to a signature scheme.[^2] We need a hash function $H : \mc{M} \times G \ra \mc{C}$, modeled as a random oracle. The protocol originally involves interaction between two parties, but a signature is computed by a single party. Intuitively, $H$ will play the role of the verifier. + +The **Schnorr signature scheme** $\mc{S}_\rm{sch} = (G, S, V)$ is defined as follows. + +- Key generation: a **secret key** $sk = \alpha \la \Z_q$ and **public key** $pk = u \la g^\alpha$ is generated. +- Sign: $S(sk, m)$ outputs $\sigma = (u_t, \alpha_z)$ where + - Choose random $\alpha_t \la \Z_q$ and set $u_t \la g^{\alpha_t}$. + - **Compute $c \la H(m, u_t)$** and set $\alpha_z \la \alpha_t + \alpha c$. +- Verify: $V(pk, m, \sigma)$ outputs $\texttt{accept}$ if and only if $g^{\alpha_z} = u_t \cdot u^c$. + - $c \la H(m, u_t)$ can be computed and $u$ is known. + +Since $H$ is being modeled as a random oracle, the signer cannot predict the value of the challenge $c$. Also, $c$ must take both $m$ and $u_t$ as input, since without $m$, the signature is not related to $m$ (the signature has no $m$ term inside it). On the other hand, without $u_t$, then the scheme is insecure since the Schnorr identification protocol is HVZK. See Exercise 19.12.[^1] + +> **Theorem.** If $H$ is modeled as a random oracle and Schnorr's identification protocol is secure, then Schnorr's signature scheme is also secure. + +*Proof*. See Theorem 19.7.[^1] + +Note that $\alpha \la \Z_q$ must be chosen randomly every time. + +## Digital Signature Algorithm + +Schnorr's scheme was protected by a patent, so NIST opted for a ad-hoc signature scheme based on a prime order subgroup of $\Z_p^{\ast}$. This algorithm eventually became the **Digital Signature Algorithm** (DSA). The standard was updated to support elliptic curve groups over a finite field, resulting in **ECDSA**. + +## Public Key Infrastructure + +How would you trust public keys? We introduce **digital certificates** for this. + +Read in [public key infrastructure (Internet Security)](../../internet-security/2023-10-16-pki). + +[^1]: A Graduate Course in Applied Cryptography +[^2]: By using the [Fiat-Shamir transform](../2023-11-07-sigma-protocols/#the-fiat-shamir-transform). diff --git a/_posts/Lecture Notes/Modern Cryptography/2023-10-31-advanced-topics.md b/_posts/Lecture Notes/Modern Cryptography/2023-10-31-advanced-topics.md new file mode 100644 index 0000000..00fc2a4 --- /dev/null +++ b/_posts/Lecture Notes/Modern Cryptography/2023-10-31-advanced-topics.md @@ -0,0 +1,222 @@ +--- +share: true +toc: true +math: true +categories: + - Lecture Notes + - Modern Cryptography +tags: + - lecture-note + - cryptography + - security +title: 11. Advanced Topics +date: 2023-10-31 +github_title: 2023-10-31-advanced-topics +--- + + +## Ciphertext Indistinguishability + +- By **Shafi Goldwasser** and **Silvio Micali** + - Turing Award in 2012 + +An adversary should not be able to... + +- **(Semantic Security)** gain any partial information about a secret. +- **(Ciphertext Indistinguishability)** distinguish pairs of ciphertexts based on the chosen messages. + +They showed that + +- These two definitions are equivalent under chosen-plaintext attack. +- Encryption schemes must be randomized. + +> **Definition.** A symmetric key encryption scheme $E$ is **semantically secure** if for any efficient adversary $\mc{A}$, there exists an efficient $\mc{A}'$ such that for any efficiently computable functions $f$ and $h$, +> +> $$ +> \bigg\lvert \Pr\left[ \mc{A}\big( E(k, m), h(m) \big) = f(m) \right] - \Pr\left[ \mc{A}'\big( h(m) \big) = f(m) \right] \bigg\lvert +> $$ +> +> is negligible. + +## Commitment Schemes + +A commitment scheme is for committing a value, and opening it later. The committed value cannot be forged. + +> **Definition.** A **commitment scheme** for a finite message space $\mc{M}$ is a pair of efficient algorithms $\mc{C} = (C, V)$ satisfying the following. +> +> - For a message $m \in \mc{M}$ to be committed, $(c, o) \la C(m)$, where $c$ is the **commitment string**, and $o$ is an **opening string**. +> - $V$ is a deterministic algorithm that $V(m, c, o)$ is either $\texttt{accept}$ or $\texttt{reject}$. +> - **Correctness**: for all $m \in \mc{M}$, if $(c, o) \la C(m)$ then $V(m, c, o) = \texttt{accept}$. + +Suppose Alice wants to commit a message $m$. She computes $(c, o) \la C(m)$, and sends the commitment string $c$ to Bob, and keeps the opening string $o$ to herself. After some time, Alice sends the opening string $o$ to open the commitment, then Bob will verify the commitment by computing $V(m, c, o)$. + +### Secure Commitment Schemes + +The scheme must satisfy the following properties. First, the commitment must open to a single message. This is called the **binding** property. Next, the commitment must not reveal any information about the message. This is called the **hiding** property. + +> **Definition.** A commitment scheme $\mc{C} = (C, V)$ is **binding** if for every efficient adversary $\mc{A}$ that outputs a $5$-tuple $(c, m_1, o_1, m_2, o_2)$, the probability +> +> $$ +> \Pr[m_1 \neq m_2 \land V(m_1, c, o_1) = V(m_2, c, o_2) = \texttt{{accept}}] +> $$ +> +> is negligible. + +The hiding property is defined as a security game. + +> **Definition.** Let $\mc{C} = (C, V)$ be a commitment scheme. Given an adversary $\mc{A}$, define two experiments. +> +> **Experiment $b$**. +> 1. $\mc{A}$ sends $m_0, m_1 \in \mc{M}$ to the challenger. +> 2. The challenger computes $(c, o) \la C(m_b)$ and sends $c$ to $\mc{A}$. +> 3. $\mc{A}$ computes and outputs $b' \in \braces{0, 1}$. +> +> Let $W_b$ be the event that $\mc{A}$ outputs $1$ in experiment $b$. The **advantage** of $\mc{A}$ with respect to $\mc{C}$ is defined as +> +> $$ +> \Adv{\mc{A}, \mc{C}} = \abs{\Pr[W_0] - \Pr[W_1]}. +> $$ +> +> If the advantage is negligible for all efficient adversaries $\mc{A}$, then the commitment scheme $\mc{C}$ has the **hiding** property. + +Next, the definition of secure commitment schemes. + +> **Definition.** A commitment scheme $\mc{C} = (C, V)$ is **secure** if it is both hiding and binding. + +### Non-binding Encryption Schemes + +A semantically secure cipher does not always yield a secure commitment scheme. One might be tempted to use a secure cipher $(E, D)$ as follows. + +- For $m \in \mc{M}$, choose $k \la \mc{K}$ and set $\big( E(k, m), k \big) \la C(m)$. +- $V(m, c, k)$ accepts if and only if $D(k, c) = m$. + +However, it may be feasible to find another $k' \in \mc{K}'$ such that $D(k, c) \neq D(k', c)$. As an example, consider the one-time pad. It is easy for the committer to manipulate the message. $c = m \oplus k$, so later set $k' = k \oplus m \oplus m'$ as the opening string, then $c \oplus k' = m'$, resulting in a different message. + +## Constructions of Commitment Schemes + +### Commitment from Secure PRGs + +To commit a bit, we can use a secure PRG. The following is due to Naor. + +> Let $G : \mc{S} \ra \mc{R}$ be a secure PRG where $\left\lvert \mc{R} \right\lvert \geq \left\lvert \mc{S} \right\lvert^3$ and $\mc{R} = \braces{0, 1}^n$. Suppose that Bob wants to commit a bit $b_0 \in \braces{0, 1}$. +> +> 1. Alice chooses a random $r \in \mc{R}$ and sends it to Bob. +> 2. Bob chooses a random $s \in \mc{S}$ and computes $c \la C(s, r, b_0)$, where +> +> $$ +> C(s, r, b_0) = \begin{cases} G(s) & (b_0 = 0) \\ G(s) \oplus r & (b_0 = 1). \end{cases} +> $$ +> +> Then Bob outputs $(c, s)$ as the commitment and the opening string. +> 3. During opening, Bob sends $(b_0, s)$ to Alice. +> 4. Alice accepts if and only if $C(s, r, b_0) = c$. + +Correctness is obvious, since Alice recomputes $C(s, r, b_0)$. + +The hiding property follows since $G(s)$ and $G(s) \oplus r$ are indistinguishable if $G$ is a secure PRG. + +The binding property follows if $1 / \left\lvert \mc{S} \right\lvert$ is negligible. For Bob to open $c$ as both $0$ and $1$, he must find two seeds $s_0, s_1 \in \mc{S}$ such that $c = G(s_0) = G(s_1) \oplus r$. Then $r = G(s_0) \oplus G(s_1)$. There are at most $\left\lvert \mc{S} \right\lvert^2$ possible $r \in \mc{R}$ values that this can happen. The probability that Alice chooses such $r$ is + +$$ +\left\lvert \mc{S} \right\lvert^2 / \left\lvert \mc{R} \right\lvert \leq \left\lvert \mc{S} \right\lvert^2 / \left\lvert \mc{S} \right\lvert^3 = 1 / \left\lvert \mc{S} \right\lvert +$$ + +by assumption. + +The downside of the above protocol is that it has to be interactive. + +#### Coin Flipping Protocol + +A bit commitment scheme can be used for a **coin flipping protocol**. Suppose that Alice and Bob are flipping coins, when they are physically distant from each other. + +> 1. Bob chooses a random bit $b_0 \la \braces{0, 1}$. +> 2. Execute the commitment protocol. +> - Alice obtains a commitment string $c$ of $b_0$. +> - Bob keeps an opening string $o$. +> 3. Alice chooses a random bit $b_1 \la \braces{0, 1}$, and sends it to Bob. +> 4. Bob reveals $b_0$ and $s$ to Alice, she verifies that $c$ is valid. +> 5. The final outcome is $b = b_0 \oplus b_1$. + +After step $2$, Alice has no information about $b_0$ because of the hiding property. Her choice of $b_1$ is unbiased, and cannot affect the final outcome. Next, in step $4$, $b_0$ cannot be manipulated by the binding property. + +Thus, $b_0$ and $b_1$ are both random, so $b$ is either $0$ or $1$ each with probability $1/2$.[^1] + +### Commitment Scheme from Hashing + +> Let $H : \mc{X} \ra \mc{Y}$ be a collision resistant hash function, where $\mc{X} = \mc{M} \times \mc{R}$. $\mc{M}$ is the message space, and $\mc{R}$ is a finite nonce space. For $m \in \mc{M}$, the derived commitment scheme $\mc{C}_H = (C, V)$ is defined as follows. +> +> - $C(m)$: choose random $o \la \mc{R}$, set $c = H(m, o)$ and output $(c, o)$. +> - $V(m, c, o)$: output $\texttt{accept}$ if and only if $c = H(m, o)$. + +Correctness is obvious. + +The binding property follows since $H$ is collision resistant. If it is easy to find a $5$-tuple $(c, m_1, o_1, m_2, o_2)$ such that $c = H(m_1, o_1) = H(m_2, o_2)$, $H$ is not collision resistant. + +The hiding property follows if $H$ is modeled as a random oracle, or has a property called **input hiding**. For adversarially chosen $m_1, m_2 \in \mc{M}$ and random $o \la \mc{R}$, the distributions of $H(m_1, o)$ and $H(m_2, o)$ are computationally indistinguishable. + +Additionally, this scheme is **non-malleable** if $H$ is modeled as a random oracle and $\mc{Y}$ is sufficiently large.[^2] + +### Commitment Scheme from Discrete Logarithms + +> Let $G = \left\langle g \right\rangle$ be a cyclic group of prime order $q$. Let $h$ be chosen randomly from $G$. +> +> - $C(m)$: choose random $o \la \mathbb{Z}_q$ and $c \la g^m h^o$ and return $(c, o)$. +> - $V(m, c, o)$: output $\texttt{accept}$ if and only if $c = g^m h^o$. + +Correctness is obvious. + +The binding property follows from the DL assumption. If an adversary finds $m_1, m_2$, $o_1, o_2$ such that $c = g^{m_1} h^{o_1} = g^{m_2} h^{o_2}$, then $h = g^{(m_2 - m_1)/(o_1 - o_2)}$, solving the discrete logarithm problem for $h$. + +The hiding property follows since $h$ is uniform in $G$ and $o$ is also uniform in $\mathbb{Z}_q$. Then $g^m h^o$ is uniform in $G$, not revealing any information. + +## Post Quantum Cryptography + +Quantum computers use **qubits** and **quantum gates** for computation. A **qubit** is a *quantum bit*, a **superposition** of two states $\ket{0}$ and $\ket{1}$. + +$$ +\ket{\psi} = \alpha \ket{0} + \beta \ket{1} +$$ + +where $\alpha, \beta \in \mathbb{C}$ and $\left\lvert \alpha \right\lvert^2 + \left\lvert \beta \right\lvert^2 = 1$. The quantum gates are usually orthogonal matrices. + +The *superposition* may give the false impression that a quantum computer tries all possible solutions in parallel, but the actual magic comes from **complex amplitudes**. + +Quantum computers use **quantum interference**, carefully choreograph computations so that wrong answers *cancel out* their amplitudes, while correct answers combine. This process increases the probability of measuring correct results. Naturally, only a few special problems allow this choreograph. + +A scheme is **post-quantum secure** if it is secure against an adversary who has access to a quantum computer. Post-quantum cryptography is about classical algorithms that are believed to withstand quantum attacks. + +AES is probably safe, since it still takes $\mc{O}(2^{n/2})$ to solve it. (Grover's algorithm) Also, lattice-based cryptography is another candidate. + +## Shor's Algorithm + +But factorization and discrete logarithms are not safe. The core idea is that a quantum computer is very good at detecting periodicity. This is done by using the **quantum Fourier transform** (QFT). + +### Quantum Factorization + +Let $n \in \mathbb{Z}$ and $0\neq g \in \mathbb{Z}_n$. Let $\gamma_g : \mathbb{Z} \ra \mathbb{Z}_n$ be defined as $\gamma_g(\alpha) = g^\alpha$. This function is periodic, since $g^{\phi(n)} = 1$ by Euler's generalization. Also, the order of $g$ will certainly divide the period. + +Thus, find a period $p$, and let $t$ be the smallest positive integer such that $g^{p/2^t} \neq 1$. Then $\gcd(n, g^{p/2^t} - 1)$ is a non-trivial factor of $n$ with probability about $1/2$ over the choice of $g$. See Exercise 16.10.[^3] + +Shor's algorithm factors $n$ in $\mc{O}(\log^3 n)$ time. RSA is not a secure one-way trapdoor function for quantum computers. + +### Quantum Discrete Logarithms + +Let $G = \left\langle g \right\rangle$ be a cyclic group of prime order $q$. Let $u = g^\alpha$. Consider the function $f : \mathbb{Z}^2 \ra G$ defined as + +$$ +f(\gamma, \delta) = g^\gamma \cdot u^\delta. +$$ + +The period of this function is $(\alpha, -1)$, since for all $(\gamma, \delta) \in \mathbb{Z}^2$, + +$$ +f(\gamma + \alpha, \delta - 1) = g^{\gamma} \cdot g^\alpha \cdot u^\delta \cdot u^{-1} = g^\gamma \cdot u^\delta = f(\gamma, \delta). +$$ + +This period can be found in $\mc{O}(\log^3 q)$ time. The DL assumption is false for quantum computers. + +(Detailed explanation to be added...) + +[^1]: There is one caveat. Bob gets to know the final result before Alice. If the outcome is not what he desired, he could abort the protocol in some way, like sending an invalid $c$, and go over the whole process again. +[^2]: A commitment scheme is **malleable** if a commitment $c = (c_1, c_2)$ of a message $m$ can be transformed into a commitment $c' = (c_1, c_2 + \delta)$ of a message $m + \delta$. +[^3]: A Graduate Course in Applied Cryptography. diff --git a/_posts/Lecture Notes/Modern Cryptography/2023-11-02-zkp-intro.md b/_posts/Lecture Notes/Modern Cryptography/2023-11-02-zkp-intro.md new file mode 100644 index 0000000..bed9e13 --- /dev/null +++ b/_posts/Lecture Notes/Modern Cryptography/2023-11-02-zkp-intro.md @@ -0,0 +1,113 @@ +--- +share: true +toc: true +math: true +categories: + - Lecture Notes + - Modern Cryptography +tags: + - lecture-note + - cryptography + - security +title: 12. Zero-Knowledge Proof (Introduction) +date: 2023-11-02 +github_title: 2023-11-02-zkp-intro +image: + path: assets/img/posts/Lecture Notes/Modern Cryptography/mc-12-id-protocol.png +attachment: + folder: assets/img/posts/Lecture Notes/Modern Cryptography +--- + + +- In 1980s, the notion of *zero knowledge* was proposed by Shafi Goldwasser, Silvio micali and Charles Rackoff. +- **Interactive proof systems**: a **prover** tries to convince the **verifier** that some statement is true, by exchanging messages. + - What if the prover is trying to trick the verifier? + - What if the verifier is an adversary that tries to obtain more information? +- These proof systems are harder to build in the digital world. + - This is because it is easy to copy data in the digital world. + +## Identification Protocol + +![mc-12-id-protocol.png](../../../assets/img/posts/Lecture%20Notes/Modern%20Cryptography/mc-12-id-protocol.png) + +> **Definition.** An **identification protocol** is a triple of algorithms $\mc{I} = (G, P, V)$ satisfying the following. +> +> - $G$ is a probabilistic **key generation** algorithm that outputs $(vk, sk) \leftarrow G()$. $vk$ is the **verification key** and $sk$ is the **secret key**. +> - $P$ is an interactive protocol algorithm called the **prover**, which takes the secret key $sk$ as an input. +> - $V$ is an interactive protocol algorithm called the **verifier**, which takes the verification key $vk$ as an input and outputs $\texttt{accept}$ or $\texttt{reject}$. +> +> For all possible outputs $(vk, sk)$ of $G$, at the end of the interaction between $P(sk)$ and $V(vk)$, $V$ outputs $\texttt{accept}$ with probability $1$. + +### Password Authentication + +A client is trying to log in, must prove its identity to the server. But the client cannot trust the server (verifier), so the client must prove itself without revealing the secret. The password is the secret in this case. The login is a *proof* that the client is who it claims to be. What should be the verification key? Setting $vk = sk$ certainly works, but the server learns the password, so this should not be used. + +Instead, we could set $vk = H(sk)$ by using a hash function $H$. Then the client sends the password, server computes the hash and checks if it is equal. This method still reveals the plaintext password to the server. + +## Example: 3-Coloring + +Suppose we are given a graph $G = (V, E)$, which we want to color the vertices with at most $3$ colors, so that no two adjacent vertices have the same color. This is an NP-complete problem. + +Bob has a graph $G$ and he is trying to $3$-color the graph. Alice shows up and claims that there is a way to $3$-color $G$. If the coloring is valid, Bob is willing to buy the solution, but he cannot trust Alice. Bob won't pay until he is convinced that Alice has a solution, and Alice won't give the solution until she receives the money. How can Alice and Bob settle this problem? + +### Protocol + +> 1. Bob gives Alice the graph $G = (V, E)$. +> 2. Alice shuffles the colors and colors the graph. The coloring is hidden to Bob. +> 3. Bob randomly picks a single edge $(u, v) \in E$ of this graph. +> 4. Alice reveals the colors of $u$ and $v$. + +- If $u$ and $v$ have the same color, Alice is lying to Bob. +- If they have different colors, Alice *might be* telling the truth. +- What if Alice just sends two random colors in step $4$? + - We can use **commitment schemes** so that Alice cannot manipulate the colors after Bob's query. + - Specifically, send the colors of each $v$ using a commitment scheme. + - For Bob's query $(u, v)$, send the opening strings of $u$ and $v$. +- What if Alice doesn't have a solution, but Bob picks an edge with different colors just by luck? + - We can repeat the protocol many times. + - For each protocol instance, an invalid solution can pass with probability $p = \frac{1}{\abs{E}}$. + - Repeat this many times, then $p^n \rightarrow 0$, so invalid solutions will pass with negligible probability. +- Does Bob's query reveal anything about the solution? + - No, Alice randomizes colors for every protocol instance. + - Need formal definition and proof for this.[^1] + +## Zero Knowledge Proof (ZKP) + +We need three properties for a **zero-knowledge proof** (ZKP). + +- (**Completeness**) If the statement is true, an honest verifier must accept the fact by an honest prover. +- (**Soundness**) If the statement is false, no cheating prover can convince an honest verifier, except with some small probability. +- (**Zero Knowledge**) If the statement is true, no verifier (including honest and cheating) learns anything other than the truth of the statement. The statement does not reveal anything about the prover's secret. + +We define these formally. + +> **Definition.** Let $\mc{R} \subset \mc{X} \times \mc{Y}$ be a relation. A statement $y \in \mc{Y}$ is **true** if $(x, y) \in \mc{R}$ for some $x \in \mc{X}$. The set of true statements +> +> $$ +> L_\mc{R} = \braces{y \in \mc{Y} : \exists x \in \mc{X},\; (x, y) \in \mc{R}} +> $$ +> +> is called the **language** defined by $\mc{R}$. + +> **Definition.** A **zero-knowledge proof** is a protocol between a prover $P(x, y)$ and a verifier $V(x)$. At the end of the protocol, the verifier either accepts or rejects. + +In the above definition, $y$ is the statement to prove, and $x$ is the proof of that statement, which the prover wants to hide. The prover and the verifier exchanges messages for the protocol, and this collection of interactions is called the **view** (or conversation, transcript). + +> **Definition.** +> +> - (**Completeness**) If $(x, y) \in R$, then an honest verifier accepts with very high probability. +> - (**Soundness**) If $y \notin L$, an honest verifier accepts with a negligible probability. + +But how do we define *zero knowledge*? What is *knowledge*? If the verifier learns something, the verifier obtains something that he couldn't have computed without interacting with the prover. Thus, we define zero knowledge as the following. + +> **Definition.** We say that a protocol is **honest verifier zero knowledge** (HVZK) if there exists an efficient algorithm $\rm{Sim}$ (simulator) on input $x$ such that the output distribution of $\rm{Sim}(x)$ is indistinguishable from the distribution of the verifier's view. +> +> $$ +> \rm{Sim}(x) \approx \rm{View}_V[P(x, y) \lra V(x)] +> $$ + +For every verifier $V^{\ast}$, possibly dishonest, there exists a simulator $\rm{Sim}$ such that $\rm{Sim}(x)$ is indistinguishable from the verifier's view $\rm{View}_{V^{\ast}}[P(x, y) \leftrightarrow V^{\ast}(x)]$. + +If the proof is *zero knowledge*, the adversary can simulate conversations on his own without knowing the secret. Meaning that the adversary learns nothing from the conversation. + +[^1]: How to give a formal proof for HVZK...? diff --git a/_posts/Lecture Notes/Modern Cryptography/2023-11-07-sigma-protocols.md b/_posts/Lecture Notes/Modern Cryptography/2023-11-07-sigma-protocols.md new file mode 100644 index 0000000..f55f5ca --- /dev/null +++ b/_posts/Lecture Notes/Modern Cryptography/2023-11-07-sigma-protocols.md @@ -0,0 +1,476 @@ +--- +share: true +toc: true +math: true +categories: + - Lecture Notes + - Modern Cryptography +tags: + - lecture-note + - cryptography + - security +title: 13. Sigma Protocols +date: 2023-11-07 +github_title: 2023-11-07-sigma-protocols +image: + path: assets/img/posts/Lecture Notes/Modern Cryptography/mc-13-sigma-protocol.png +attachment: + folder: assets/img/posts/Lecture Notes/Modern Cryptography +--- + + +The previous [3-coloring example](../2023-11-02-zkp-intro/#example-3-coloring) certainly works as a zero knowledge proof, but is quite slow, and requires a lot of interaction. There are efficient protocols for interactive proofs, we will study sigma protocols. + +## Sigma Protocols + +### Definition + +> **Definition.** An **effective relation** is a binary relation $\mc{R} \subset \mc{X} \times \mc{Y}$, where $\mc{X}$, $\mc{Y}$, $\mc{R}$ are efficiently recognizable finite sets. Elements of $\mc{Y}$ are called **statements**. If $(x, y) \in \mc{R}$, then $x$ is called a **witness for** $y$. + +![mc-13-sigma-protocol.png](../../../assets/img/posts/Lecture%20Notes/Modern%20Cryptography/mc-13-sigma-protocol.png) + +> **Definition.** Let $\mc{R} \subset \mc{X} \times \mc{Y}$ be an effective relation. A **sigma protocol** for $\mc{R}$ is a pair of algorithms $(P, V)$ satisfying the following. +> +> - The **prover** $P$ is an interactive protocol algorithm, which takes $(x, y) \in \mc{R}$ as input. +> - The **verifier** $V$ is an interactive protocol algorithm, which takes $y \in \mc{Y}$ as input, and outputs $\texttt{accept}$ or $\texttt{reject}$. +> +> The interaction goes as follows.[^1] +> +> 1. $P$ computes a **commitment** message $t$ and sends it to $V$. +> 2. $V$ chooses a random **challenge** $c \la \mc{C}$ from a **challenge space** and sends it to $P$. +> 3. $P$ computes a **response** $z$ and sends it to $V$. +> 4. $V$ outputs either $\texttt{accept}$ or $\texttt{reject}$, computed strictly as a function of the statement $y$ and the **conversation** $(t, c, z)$. +> +> For all $(x, y) \in \mc{R}$, at the end of the interaction between $P(x, y)$ and $V(y)$, $V(y)$ always outputs $\texttt{accept}$. + +- The verifier is deterministic except for choosing a random challenge $c \la \mc{C}$. +- If the output is $\texttt{accept}$, then the conversation $(t, c, z)$ is an **accepting conversation for** $y$. +- In most cases, the challenge space has to be super-poly. We say that the protocol has a **large challenge space**. + +## Soundness + +The **soundness** property says that it is infeasible for any prover to make the verifier accept a statement that is false. + +> **Definition.** Let $\Pi = (P, V)$ be a sigma protocol for $\mc{R} \subset \mc{X}\times \mc{Y}$. For a given adversary $\mc{A}$, the security game goes as follows. +> +> 1. The adversary chooses a statement $y^{\ast} \in \mc{Y}$ and gives it to the challenger. +> 2. The adversary interacts with the verifier $V(y^{\ast})$, where the challenger plays the role of verifier, and the adversary is a possibly *cheating* prover. +> +> The adversary wins if $V(y^{\ast})$ outputs $\texttt{accept}$ but $y^{\ast} \notin L_\mc{R}$. The advantage of $\mc{A}$ with respect to $\Pi$ is denoted $\rm{Adv}_{\rm{Snd}}[\mc{A}, \Pi]$ and defined as the probability that $\mc{A}$ wins the game. +> +> If the advantage is negligible for all efficient adversaries $\mc{A}$, then $\Pi$ is **sound**. + +### Special Soundness + +For sigma protocols, it suffices to require **special soundness**. + +> **Definition.** Let $(P, V)$ be a sigma protocol for $\mc{R} \subset \mc{X} \times \mc{Y}$. $(P, V)$ provides **special soundness** if there is an efficient deterministic algorithm $\rm{Ext}$, called a **knowledge extractor** with the following property. +> +> Given a statement $y \in \mc{Y}$ and two accepting conversations $(t, c, z)$ and $(t, c', z')$ with $c \neq c'$, $\rm{Ext}$ outputs a **witness** (proof) $x \in \mc{X}$ such that $(x, y) \in \mc{R}$. + +The extractor efficiently finds a proof $x$ for $y \in \mc{Y}$. This means, if a possibly cheating prover $P^{\ast}$ makes $V$ accept $y$ with non-negligible probability, then $P^{\ast}$ must have known a proof $x$ for $y$. **Thus $P^{\ast}$ isn't actually a dishonest prover, he already has a proof.** + +Note that the commitment $t$ is the same for the two accepting conversations. The challenge $c$ and $c'$ are chosen after the commitment, so if the prover can come up with $z$ and $z'$ so that $(t, c, z)$ and $(t, c', z')$ are accepting conversations for $y$, then the prover must have known $x$. + +We also require that the challenge space is large, the challenger shouldn't be accepted by luck. + +### Special Soundness $\implies$ Soundness + +> **Theorem.** Let $\Pi$ be a sigma protocol with a large challenge space. If $\Pi$ provides special soundness, then $\Pi$ is sound. +> +> For every efficient adversary $\mc{A}$, +> +> $$ +> \rm{Adv}_{\rm{Snd}}[\mc{A}, \Pi] \leq \frac{1}{N} +> $$ +> +> where $N$ is the size of the challenge space. + +*Proof*. Suppose that $\mc{A}$ chooses a false statement $y^{\ast}$ and a commitment $t^{\ast}$. It suffices to show that there exists at most one challenge $c$ such that $(t^{\ast}, c, z)$ is an accepting conversation for some response $z$. + +If there were two such challenges $c, c'$, then there would be two accepting conversations for $y^{\ast}$, which are $(t^{\ast}, c, z)$ and $(t^{\ast}, c', z')$. Now by special soundness, there exists a witness $x$ for $y^{\ast}$, which is a contradiction. + +## Special Honest Verifier Zero Knowledge + +The conversation between $P$ and $V$ must not reveal anything. + +> **Definition.** Let $(P, V)$ be a sigma protocol for $\mc{R} \subset \mc{X} \times \mc{Y}$. $(P, V)$ is **special honest verifier zero knowledge** (special HVZK) if there exists an efficient probabilistic algorithm $\rm{Sim}$ (**simulator**) that satisfies the following. +> +> - For all inputs $(y, c) \in \mc{Y} \times \mc{C}$, $\rm{Sim}(y, c)$ outputs a pair $(t, z)$ such that $(t, c, z)$ is always an accepting conversation for $y$. +> - For all $(x, y) \in \mc{R}$, let $c \la \mc{C}$ and $(t, z) \la \rm{Sim}(y, c)$. Then $(t, c, z)$ has the same distribution as the conversation between $P(x, y)$ and $V(y)$. + +The difference is that the simulator takes an additional input $c$. Also, the simulator produces an accepting conversation even if the statement $y$ does not have a proof. + +Also note that **the simulator is free to generate the messages in any convenient order**. + +## The Schnorr Identification Protocol Revisited + +The Schnorr identification protocol is actually a sigma protocol. Refer to [Schnorr identification protocol (Modern Cryptography)](../2023-10-26-digital-signatures/#the-schnorr-identification-protocol) for the full description. + +![mc-10-schnorr-identification.png](../../../assets/img/posts/Lecture%20Notes/Modern%20Cryptography/mc-10-schnorr-identification.png) + +> The pair $(P, V)$ is a sigma protocol for the relation $\mc{R} \subset \mc{X} \times \mc{Y}$ where +> +> $$ +> \mc{X} = \bb{Z}_q, \quad \mc{Y} = G, \quad \mc{R} = \left\lbrace (\alpha, u) \in \bb{Z}_q \times G : g^\alpha = u \right\rbrace. +> $$ +> +> The challenge space $\mc{C}$ is a subset of $\bb{Z}_q$. + +The protocol provides **special soundness**. If $(u_t, c, \alpha_z)$ and $(u_t, c', \alpha_z')$ are two accepting conversations with $c \neq c'$, then we have + +$$ +g^{\alpha_z} = u_t \cdot u^c, \quad g^{\alpha_z'} = u_t \cdot u^{c'}, +$$ + +so we have $g^{\alpha_z - \alpha_z'} = u^{c - c'}$. Setting $\alpha^{\ast} = (\alpha_z - \alpha_z') /(c - c')$ satisfies $g^{\alpha^{\ast}} = u$, solving the discrete logarithm and $\alpha^{\ast}$ is a proof. + +As for HVZK, the simulator chooses $\alpha_z \la \bb{Z}_q$, $c \la \mc{C}$ randomly and sets $u_t = g^{\alpha_z} \cdot u^{-c}$. Then $(u_t, c, \alpha_z)$ will be accepted. *Note that the order doesn't matter.* Also, the distribution is same, since $c$ and $\alpha_z$ are uniform over $\mc{C}$ and $\bb{Z}_q$ and the choice of $c$ and $\alpha_z$ determines $u_t$ uniquely. This is identical to the distribution in the actual protocol. + +### Dishonest Verifier + +In case of dishonest verifiers, $V$ may not follow the protocol. For example, $V$ may choose non-uniform $c \in \mc{C}$ depending on the commitment $u_t$. In this case, the conversation from the actual protocol and the conversation generated by the simulator will have different distributions. + +We need a different distribution. The simulator must also take the verifier's actions as input, to properly simulate the dishonest verifier. + +### Modified Schnorr Protocol + +The original protocol can be modified so that the challenge space $\mc{C}$ is smaller. Completeness property is obvious, and the soundness error grows, but we can always repeat the protocol. + +As for zero knowledge, the simulator $\rm{Sim}_{V^{\ast}}(u)$ generates a verifier's view $(u, c, z)$ as follows. +- Guess $c' \la \mc{C}$. Sample $z' \la \bb{Z}_q$ and set $u' = g^{z'}\cdot u^{-c'}$. Send $u'$ to $V^{\ast}$. +- If the response from the verifier $V^{\ast}(u')$ is $c$ and $c \neq c'$, restart. + - $c = c'$ holds with probability $1 / \left\lvert \mc{C} \right\lvert$, since $c'$ is uniform. +- Otherwise, output $(u, c, z) = (u', c', z')$. + +Sending $u'$ to $V^{\ast}$ is possible because the simulator also takes the actions of $V^{\ast}$ as input. The final output conversation has distribution identical to the real protocol execution. + +Overall, this modified protocol works for dishonest verifiers, at the cost of efficiency because of the increased soundness error. We have a security-efficiency tradeoff. + +But in most cases, it is enough to assume honest verifiers, as we will see soon. + +## Other Sigma Protocol Examples + +### Okamoto's Protocol + +This one is similar to Schnorr protocol. This is used for proving the representation of a group element. + +Let $G = \left\langle g \right\rangle$ be a cyclic group of prime order $q$, let $h \in G$ be some arbitrary group element, fixed as a system parameter. A **representation** of $u$ relative to $g$ and $h$ is a pair $(\alpha, \beta) \in \bb{Z}_q^2$ such that $g^\alpha h^\beta = u$. + +**Okamoto's protocol** for the relation + +$$ +\mc{R} = \bigg\lbrace \big( (\alpha, \beta), u \big) \in \bb{Z}_q^2 \times G : g^\alpha h^\beta = u \bigg\rbrace +$$ + +goes as follows. + +![mc-13-okamoto.png](../../../assets/img/posts/Lecture%20Notes/Modern%20Cryptography/mc-13-okamoto.png) + +> 1. $P$ computes random $\alpha_t, \beta_t \la \bb{Z}_q$ and sends commitment $u_t \la g^{\alpha_t}h^{\beta_t}$ to $V$. +> 2. $V$ computes challenge $c \la \mc{C}$ and sends it to $P$. +> 3. $P$ computes $\alpha_z \la \alpha_t + \alpha c$, $\beta_z \la \beta_t + \beta c$ and sends $(\alpha_z, \beta_z)$ to $V$. +> 4. $V$ outputs $\texttt{accept}$ if and only if $g^{\alpha_z} h^{\beta_z} = u_t \cdot u^c$. + +Completeness is obvious. + +> **Theorem**. Okamoto's protocol provides special soundness and is special HVZK. + +*Proof*. Very similar to the proof of Schnorr. Refer to Theorem 19.9.[^2] + +### The Chaum-Pedersen Protocol for DH-Triples + +The **Chaum-Pederson protocol** is for convincing a verifier that a given triple is a DH-triple. + +Let $G = \left\langle g \right\rangle$ be a cyclic group of prime order $q$. $(g^\alpha, g^\beta, g^\gamma)$ is a DH-triple if $\gamma = \alpha\beta$. Then, the triple $(u, v, w)$ is a DH-triple if and only if $v = g^\beta$ and $w = u^\beta$ for some $\beta \in \bb{Z}_q$. + +The Chaum-Pederson protocol for the relation + +$$ +\mc{R} = \bigg\lbrace \big( \beta, (u, v, w) \big) \in \bb{Z}_q \times G^3 : v = g^\beta \land w = u^\beta \bigg\rbrace +$$ + +goes as follows. + +![mc-13-chaum-pedersen.png](../../../assets/img/posts/Lecture%20Notes/Modern%20Cryptography/mc-13-chaum-pedersen.png) + +> 1. $P$ computes random $\beta_t \la \bb{Z}_q$ and sends commitment $v_t \la g^{\beta_t}$, $w_t \la u^{\beta_t}$ to $V$. +> 2. $V$ computes challenge $c \la \mc{C}$ and sends it to $P$. +> 3. $P$ computes $\beta_z \la \beta_t + \beta c$, and sends it to $V$. +> 4. $V$ outputs $\texttt{accept}$ if and only if $g^{\beta_z} = v_t \cdot v^c$ and $u^{\beta_z} = w_t \cdot w^c$. + +Completeness is obvious. + +> **Theorem.** The Chaum-Pedersen protocol provides special soundness and is special HVZK. + +*Proof*. Also similar. See Theorem 19.10.[^2] + +This can be used to prove that an ElGamal ciphertext $c = (u, v) = (g^k, h^k \cdot m)$ is an encryption of $m$ with public key $h = g^\alpha$, without revealing the private key or the ephemeral key $k$. If $(g^k, h^k \cdot m)$ is a valid ciphertext, then $(h, u, vm^{-1}) = (g^\alpha, g^k, g^{\alpha k})$ is a valid DH-triple. + +### Sigma Protocol for Arbitrary Linear Relations + +Schnorr, Okamoto, Chaum-Pedersen protocols look similar. They are special cases of a generic sigma protocol for proving a linear relation among group elements. Read more in Section 19.5.3.[^2] + +### Sigma Protocol for RSA + +Let $(n, e)$ be an RSA public key, where $e$ is prime. The **Guillou-Quisquater** (GQ) protocol is used to convince a verifier that he knows an $e$-th root of $y \in \bb{Z}_n^{\ast}$. + +The Guillou-Quisquater protocol for the relation + +$$ +\mc{R} = \bigg\lbrace (x, y) \in \big( \bb{Z}_n^{\ast} \big)^2 : x^e = y \bigg\rbrace +$$ + +goes as follows. + +![mc-13-gq-protocol.png](../../../assets/img/posts/Lecture%20Notes/Modern%20Cryptography/mc-13-gq-protocol.png) + +> 1. $P$ computes random $x_t \la \bb{Z}_n^{\ast}$ and sends commitment $y_t \la x_t^e$ to $V$. +> 2. $V$ computes challenge $c \la \mc{C}$ and sends it to $P$. +> 3. $P$ computes $x_z \la x_t \cdot x^c$ and sends it to $V$. +> 4. $V$ outputs $\texttt{accept}$ if and only if $x_z^e = y_t \cdot y^c$. + +Completeness is obvious. + +> **Theorem.** The GQ protocol provides special soundness and is special HVZK. + +*Proof*. Also similar. See Theorem 19.13.[^2] + +## Combining Sigma Protocols + +Using the basic sigma protocols, we can build sigma protocols for complex statements. + +### AND-Proof Construction + +The construction is straightforward, since we can just prove both statements. + +Given two sigma protocols $(P_0, V_0)$ for $\mc{R}_0 \subset \mc{X}_0 \times \mc{Y}_0$ and $(P_1, V_1)$ for $\mc{R}_1 \subset \mc{X}_1 \times \mc{Y}_1$, we construct a sigma protocol for the relation $\mc{R}_\rm{AND}$ defined on $(\mc{X}_0 \times \mc{X}_1) \times (\mc{Y}_0 \times \mc{Y}_1)$ as + +$$ +\mc{R}_\rm{AND} = \bigg\lbrace \big( (x_0, x_1), (y_0, y_1) \big) : (x_0, y_0) \in \mc{R}_0 \land (x_1, y_1) \in \mc{R}_1 \bigg\rbrace. +$$ + +Given a pair of statements $(y_0, y_1) \in \mc{Y}_0 \times \mc{Y}_1$, the prover tries to convince the verifier that he knows a proof $(x_0, x_1) \in \mc{X}_0 \times \mc{X}_1$. This is equivalent to proving the AND of both statements. + +> 1. $P$ runs $P_i(x_i, y_i)$ to get a commitment $t_i$. $(t_0, t_1)$ is sent to $V$. +> 2. $V$ computes challenge $c \la C$ and sends it to $P$. +> 3. $P$ uses the challenge for both $P_0, P_1$, obtains response $z_0$, $z_1$, which is sent to $V$. +> 4. $V$ outputs $\texttt{accept}$ if and only if $(t_i, c, z_i)$ is an accepting conversation for $y_i$. + +Completeness is clear. + +> **Theorem.** If $(P_0, V_0)$ and $(P_1, V_1)$ provide special soundness and are special HVZK, then the AND protocol $(P, V)$ defined above also provides special soundness and is special HVZK. + +*Proof*. For special soundness, let $\rm{Ext}_0$, $\rm{Ext}_1$ be the knowledge extractor for $(P_0, V_0)$ and $(P_1, V_1)$, respectively. Then the knowledge extractor $\rm{Ext}$ for $(P, V)$ can be constructed straightforward. For statements $(y_0, y_1)$, suppose that $\big( (t_0, t_1), c, (z_0, z_1) \big)$ and $\big( (t_0, t_1), c', (z_0', z_1') \big)$ are two accepting conversations. Feed $\big( y_0, (t_0, c, z_0), (t_0, c', z_0') \big)$ to $\rm{Ext}_0$, and feed $\big( y_1, (t_1, c, z_1), (t_1, c', z_1') \big)$ to $\rm{Ext}_1$. + +For special HVZK, let $\rm{Sim}_0$ and $\rm{Sim}_1$ be simulators for each protocol. Then the simulator $\rm{Sim}$ for $(P, V)$ is built by using $(t_0, z_0) \la \rm{Sim}_0(y_0, c)$ and $(t_1, z_1) \la \rm{Sim}_1(y_1, c)$. Set + +$$ +\big( (t_0, t_1), (z_0, z_1) \big) \la \rm{Sim}\big( (y_0, y_1), c \big). +$$ + +We have used the fact that the challenge is used for both protocols. + +### OR-Proof Construction + +However, OR-proof construction is difficult. The prover must convince the verifier that either one of the statement is true, but **should not reveal which one is true.** + +If the challenge is known in advance, the prover can cheat. We exploit this fact. For the proof of $y_0 \lor y_1$, do the real proof for $y_b$ and cheat for $y_{1-b}$. + +Suppose we are given two sigma protocols $(P_0, V_0)$ for $\mc{R}_0 \subset \mc{X}_0 \times \mc{Y}_0$ and $(P_1, V_1)$ for $\mc{R}_1 \subset \mc{X}_1 \times \mc{Y}_1$. We assume that these both use the same challenge space, and both are special HVZK with simulators $\rm{Sim}_0$ and $\rm{Sim}_1$. + +We combine the protocols to form a sigma protocol for the relation $\mc{R}_\rm{OR}$ defined on ${} \big( \braces{0, 1} \times (\mc{X}_0 \cup \mc{X}_1) \big) \times (\mc{Y}_0\times \mc{Y}_1) {}$ as + +$$ +\mc{R}_\rm{OR} = \bigg\lbrace \big( (b, x), (y_0, y_1) \big): (x, y_b) \in \mc{R}_b\bigg\rbrace. +$$ + +Here, $b$ denotes the actual statement $y_b$ to prove. For $y_{1-b}$, we cheat. + +> $P$ is initialized with $\big( (b, x), (y_0, y_1) \big) \in \mc{R}_\rm{OR}$ and $V$ is initialized with $(y_0, y_1) \in \mc{Y}_0 \times \mc{Y}_1$. Let $d = 1 - b$. +> +> 1. $P$ computes $c_d \la \mc{C}$ and $(t_d, z_d) \la \rm{Sim}_d(y_d, c_d)$. +> 2. $P$ runs $P_b(x, y_b)$ to get a real commitment $t_b$ and sends $(t_0, t_1)$ to $V$. +> 3. $V$ computes challenge $c \la C$ and sends it to $P$. +> 4. $P$ computes $c_b \la c \oplus c_d$, feeds it to $P_b(x, y_b)$ obtains a response $z_b$. +> 5. $P$ sends $(c_0, z_0, z_1)$ to $V$. +> 6. $V$ computes $c_1 \la c \oplus c_0$, and outputs $\texttt{accept}$ if and only if $(t_0, c_0, z_0)$ is an accepting conversation for $y_0$ and $(t_1, c_1, z_1)$ is an accepting conversation for $y_1$. + +Step $1$ is the cheating part, where the prover chooses a challenge, and generates a commitment and a response from the simulator. + +Completeness follows from the following. +- $c_b = c \oplus c_{1-b}$, so $c_1 = c \oplus c_0$ always holds. +- Both conversations $(t_0, c_0, z_0)$ and $(t_1, c_1, z_1)$ are accepted. + - An actual proof is done for statement $y_b$. + - For statement $y_{1-b}$, the simulator always outputs an accepting conversation. + +$c_b = c \oplus c_d$ is random, so $P$ cannot manipulate the challenge. Also, $V$ checks $c_1 = c \oplus c_0$. + +> **Theorem.** If $(P_0, V_0)$ and $(P_1, V_1)$ provide special soundness and are special HVZK, then the OR protocol $(P, V)$ defined above also provides special soundness and is special HVZK. + +*Proof*. For special soundness, suppose that $\rm{Ext}_0$ and $\rm{Ext}_1$ are knowledge extractors. Let + +$$ +\big( (t_0, t_1), c, (c_0, z_0, z_1) \big), \qquad \big( (t_0, t_1), c', (c_0', z_0', z_1') \big) +$$ + +be two accepting conversations with $c \neq c'$. Define $c_1 = c \oplus c_0$ and $c_1' = c' \oplus c_0'$. Since $c \neq c'$, it must be the case that either $c_0 \neq c_0'$ or $c_1 \neq c_1'$. Now $\rm{Ext}$ will work as follows. + +- If $c_0 \neq c_0'$, output $\bigg( 0, \rm{Ext}_0\big( y_0, (t_0, c_0, z_0), (t_0, c_0', z_0') \big) \bigg)$. +- If $c_1 \neq c_1'$, output $\bigg( 1, \rm{Ext}_1\big( y_1, (t_1, c_1, z_1), (t_1, c_1', z_1') \big) \bigg)$. + +Then $\rm{Ext}$ will extract the knowledge. + +For special HVZK, define $c_0 \la \mc{C}$, $c_1 \la c \oplus c_0$. Then run each simulator to get + +$$ +(t_0, z_0) \la \rm{Sim}_0(y_0, c_0), \quad (t_1, z_1) \la \rm{Sim}_1(y_1, c_1). +$$ + +Then the simulator for $(P, V)$ outputs + +$$ +\big( (t_0, t_1), (c_0, z_0, z_1) \big) \la \rm{Sim}\big( (y_0, y_1), c \big). +$$ + +The simulator just simulates for both of the statements and returns the messages as in the protocol. $c_b$ is random, and the remaining values have the same distribution since the original two protocols were special HVZK. + +### Example: OR of Sigma Protocols with Schnorr Protocol + +Let $G = \left\langle g \right\rangle$ be a cyclic group of prime order $q$. The prover wants to convince the verifier that he knows the discrete logarithm of either $h_0$ or $h_1$ in $G$. + +Suppose that the prover knows $x_b \in \bb{Z}_q$ such that $g^{x_b} = h_b$. + +> 1. Choose $c_{1-b} \la \mc{C}$ and call simulator of $1-b$ to obtain $(u_{1-b}, z_{1-b}) \la \rm{Sim}_{1-b}$. +> 2. $P$ sends two commitments $u_0, u_1$. +> - For $u_b$, choose random $y \la \bb{Z}_q$ and set $u_b = g^y$. +> - For $u_{1-b}$, use the value from the simulator. +> 3. $V$ sends a single challenge $c \la \mc{C}$. +> 4. Using $c_{1-b}$, split the challenge into $c_0$, $c_1$ so that they satisfy $c_0 \oplus c_1 = c$. Then send $(c_0, c_1, z_0, z_1)$ to $V$. +> - For $z_b$, calculate $z_b \la y + c_b x$. +> - For $z_{1-b}$, use the value from the simulator. +> 5. $V$ checks if $c = c_0 \oplus c_1$. $V$ accepts if and only if $(u_0, c_0, z_0)$ and $(u_1, c_1, z_1)$ are both accepting conversations. + +- Since $c, c_{1-b}$ are random, $c_b$ is random. Thus one of the proofs must be valid. + +### Generalized Constructions + +See Exercise 19.26 and 19.28.[^2] + +## Non-interactive Proof Systems + +Sigma protocols are interactive proof systems, but we can convert them into **non-interactive proof systems** using the **Fiat-Shamir transform**. + +First, the definition of non-interactive proof systems. + +> **Definition.** Let $\mc{R} \subset \mc{X} \times \mc{Y}$ be an effective relation. A **non-interactive proof system** for $\mc{R}$ is a pair of algorithms $(G, V)$ satisfying the following. +> +> - $G$ is an efficient probabilistic algorithm that generates the proof as $\pi \la G(x, y)$ for $(x, y) \in \mc{R}$. $\pi$ belongs to some proof space $\mc{PS}$. +> - $V$ is an efficient deterministic algorithm that verifies the proof as $V(y, \pi)$ where $y \in \mc{Y}$ and $\pi \in \mc{PS}$. $V$ outputs either $\texttt{accept}$ or $\texttt{reject}$. If $V$ outputs $\texttt{accept}$, $\pi$ is a **valid proof** for $y$. +> +> For all $(x, y) \in \mc{R}$, the output of $G(x, y)$ must be a valid proof for $y$. + +### Non-interactive Soundness + +Intuitively, it is hard to create a valid proof of a false statement. + +> **Definition.** Let $\Phi = (G, V)$ be a non-interactive proof system for $\mc{R} \subset \mc{X} \times \mc{Y}$ with proof space $\mc{PS}$. An adversary $\mc{A}$ outputs a statement $y^{\ast} \in \mc{Y}$ and a proof $\pi^{\ast} \in \mc{PS}$ to attack $\Phi$. +> +> The adversary wins if $V(y^{\ast}, \pi^{\ast}) = \texttt{accept}$ and $y^{\ast} \notin L_\mc{R}$. The advantage of $\mc{A}$ with respect to $\Phi$ is defined as the probability that $\mc{A}$ wins, and is denoted as $\rm{Adv}_{\rm{niSnd}}[\mc{A}, \Phi]$. +> +> If the advantage is negligible for all efficient adversaries $\mc{A}$, $\Phi$ is **sound**. + +### Non-interactive Zero Knowledge + +Omitted. + +## The Fiat-Shamir Transform + +The basic idea is **using a hash function to derive a challenge**, instead of a verifier. Now the only job of the verifier is checking the proof, requiring no interaction for the proof. + +> **Definition.** Let $\Pi = (P, V)$ be a sigma protocol for a relation $\mc{R} \subset \mc{X} \times \mc{Y}$. Suppose that conversations $(t, c, z) \in \mc{T} \times \mc{C} \times \mc{Z}$. Let $H : \mc{Y} \times \mc{T} \rightarrow \mc{C}$ be a hash function. +> +> Define the **Fiat-Shamir non-interactive proof system** $\Pi_\rm{FS} = (G_\rm{FS}, V_\rm{FS})$ with proof space $\mc{PS} = \mc{T} \times \mc{Z}$ as follows. +> +> - For input $(x, y) \in \mc{R}$, $G_\rm{FS}$ runs $P(x, y)$ to obtain a commitment $t \in \mc{T}$. Then computes the challenge $c = H(y, t)$, which is fed to $P(x, y)$, obtaining a response $z \in \mc{Z}$. $G_\rm{FS}$ outputs $(t, z) \in \mc{T} \times \mc{Z}$. +> - For input $\big( y, (t, z) \big) \in \mc{Y} \times (\mc{T} \times \mc{Z})$, $V_\rm{FS}$ verifies that $(t, c, z)$ is an accepting conversation for $y$, where $c = H(y, t)$. + +Any sigma protocol can be converted into a non-interactive proof system. Its completeness is automatically given by the completeness of the sigma protocol. + +By modeling the hash function as a random oracle, we can show that: +- If the sigma protocol is sound, then so is the non-interactive proof system.[^3] +- If the sigma protocol is special HVZK, then running the non-interactive proof system does not reveal any information about the secret. + +### Implications + +- No interactions are required, resulting in efficient protocols with lower round complexity. +- No need to consider dishonest verifiers, since prover chooses the challenge. The verifier only verifies. +- In distributed systems, a single proof can be used multiple times. + +### Soundness of the Fiat-Shamir Transform + +> **Theorem.** Let $\Pi$ be a sigma protocol for a relation $\mc{R} \subset \mc{X} \times \mc{Y}$, and let $\Pi_\rm{FS}$ be the Fiat-Shamir non-interactive proof system derived from $\Pi$ with hash function $H$. If $\Pi$ is sound and $H$ is modeled as a random oracle, then $\Pi_\rm{FS}$ is also sound. +> +> Let $\mc{A}$ be a $q$-query adversary attacking the soundness of $\Pi_\rm{FS}$. There exists an adversary $\mc{B}$ attacking the soundness of $\Pi$ such that +> +> $$ +> \rm{Adv}_{\rm{niSnd^{ro}}}[\mc{A}, \Pi_\rm{FS}] \leq (q + 1) \rm{Adv}_{\rm{Snd}}[\mc{B}, \Pi]. +> $$ + +*Proof Idea*. Suppose that $\mc{A}$ produces a valid proof $(t^{\ast}, z^{\ast})$ on a false statement $y^{\ast}$. Without loss of generality, $\mc{A}$ queries the random oracle at $(y^{\ast}, t^{\ast})$ within $q+1$ queries. Then $\mc{B}$ guesses which of the $q+1$ queries is the relevant one. If $\mc{B}$ guesses the correct query, the conversation $(t^{\ast}, c, z^{\ast})$ will be accepted and $\mc{B}$ succeeds. The factor $q+1$ comes from the choice of $\mc{B}$. + +### Zero Knowledge of the Fiat-Shamir Transform + +Omitted. Works... + +### The Fiat-Shamir Signature Scheme + +Now we understand why the [Schnorr signature scheme](../2023-10-26-digital-signatures/#schnorr-digital-signature-scheme) used hash functions. In general, the Fiat-Shamir transform can be used to convert sigma protocols into signature schemes. + +We need $3$ building blocks. + +- A sigma protocol $(P, V)$ with conversations of the form $(t, c, z)$. +- A key generation algorithm $G$ for $\mc{R}$, that outputs $pk = y$, $sk = (x, y) \in \mc{R}$. +- A hash function $H : \mc{M} \times \mc{T} \rightarrow \mc{C}$, modeled as a random oracle. + +> **Definition.** The **Fiat-Shamir signature scheme** derived from $G$ and $(P, V)$ works as follows. +> +> - Key generation: invoke $G$ so that $(pk, sk) \la G()$. +> - $pk = y \in \mc{Y}$ and $sk = (x, y) \in \mc{R}$. +> - Sign: for message $m \in \mc{M}$ +> 1. Start the prover $P(x, y)$ and obtain the commitment $t \in \mc{T}$. +> 2. Compute the challenge $c \la H(m, t)$. +> 3. $c$ is fed to the prover, which outputs a response $z$. +> 4. Output the signature $\sigma = (t, z) \in \mc{T} \times \mc{Z}$. +> - Verify: with the public key $pk = y$, compute $c \la H(m, t)$ and check that $(t, c, z)$ is an accepting conversation for $y$ using $V(y)$. + +If an adversary can come up with a forgery, then the underlying sigma protocol is not secure. + +### Example: Voting Protocol + +$n$ voters are casting a vote, either $0$ or $1$. At the end, all voters learn the sum of the votes, but we want to keep the votes secret for each party. + +We can use the [multiplicative ElGamal encryption](../2023-10-19-public-key-encryption/#the-elgamal-encryption) scheme in this case. Assume that a trusted vote tallying center generates a key pair, keeps $sk = \alpha$ to itself and publishes $pk = g^\alpha$. + +Each voter encrypts the vote $b_i$ and the ciphertext is + +$$ +(u_i, v_i) = (g^{\beta_i}, h^{\beta_i} \cdot g^{b_i}) +$$ + +where $\beta_i \la\bb{Z}_q$. The vote tallying center aggregates all ciphertexts my multiplying everything. No need to decrypt yet. Then + +$$ +(u^{\ast}, v^{\ast}) = \left( \prod_{i=1}^n g^{\beta_i}, \prod_{i=1}^n h^{\beta_i} \cdot g^{b_i} \right) = \big( g^{\beta^{\ast}}, h^{\beta^{\ast}} \cdot g^{b^{\ast}} \big), +$$ + +where $\beta^{\ast} = \sum_{i=1}^n \beta_i$ and $b^{\ast} = \sum_{i=1}^n b_i$. Now decrypt $(u^{\ast}, v^{\ast})$ and publish the result $b^{\ast}$.[^4] + +Since the ElGamal scheme is semantically secure, the protocol is also secure if all voters follow the protocol. But a dishonest voter can encrypt $b_i = -100$ or some arbitrary value. + +To fix this, we can make each voter prove that the vote is valid. Using the [Chaum-Pedersen protocol for DH-triples](#the-chaum-pedersen-protocol-for-dh-triples) and the [OR-proof construction](#or-proof-construction), the voter can submit a proof that the ciphertext is either a encryption of $b_i = 0$ or $1$. We can also apply the Fiat-Shamir transform here for efficient protocols, resulting in non-interactive proofs. + +[^1]: The message flows in a shape that resembles the greek letter $\Sigma$, hence the name *sigma protocol*. +[^2]: A Graduate Course in Applied Cryptography. +[^3]: The challenge is chosen after the commitment, making it random. +[^4]: To find $b^{\ast}$, one has to solve the discrete logarithm, but for realistic $n$, we can brute force this. diff --git a/_posts/Lecture Notes/Modern Cryptography/2023-11-09-secure-mpc.md b/_posts/Lecture Notes/Modern Cryptography/2023-11-09-secure-mpc.md new file mode 100644 index 0000000..af5a538 --- /dev/null +++ b/_posts/Lecture Notes/Modern Cryptography/2023-11-09-secure-mpc.md @@ -0,0 +1,188 @@ +--- +share: true +toc: true +math: true +categories: + - Lecture Notes + - Modern Cryptography +tags: + - lecture-note + - cryptography + - security +title: 14. Secure Multiparty Computation +date: 2023-11-09 +github_title: 2023-11-09-secure-mpc +--- + + +## Secure Multiparty Computation (MPC) + +Suppose we have a function $f$ that takes $n$ inputs and produces $m$ outputs. + +$$ +(y_1, \dots, y_m) = f(x_1, \dots, x_n). +$$ + +$N$ parties $P_1, \dots, P_N$ are trying to evaluate this function with a protocol. Each $x_i$ is submitted by one of the parties, and each output $y_j$ will be given to one or more parties. + +In **secure multiparty computation** (MPC), we wish to achieve some security functionalities. + +- **Privacy**: no party learns anything about any other party's inputs, except for the information in the output. +- **Soundness**: honest parties compute correct outputs. +- **Input independence**: all parties must choose their inputs independently of other parties' inputs. + +Security must hold even if there is any adversarial behavior in the party. + +### Example: Secure Summation + +Suppose we have $n$ parties $P_1, \dots, P_n$ with private values $x_1, \dots, x_n$. We would like to *securely* compute the sum $s = x_1 + \cdots + x_n$. + +> 1. Choose $M$ large enough so that $M > s$. +> 2. $P_1$ samples $r \la \Z_M$ and computes $s_1 = r + x_1 \pmod M$ and sends it to $P_2$. +> 3. In the same manner, $P_i$ computes $s_i = s_{i-1} + x_i \pmod M$ and sends it to $P_{i+1}$. +> 4. As the final step, $s_n$ is returned to $P_1$, where he outputs $s = s_n - r \pmod M$. + +This protocol seems secure since $r$ is a random noise added to the actual partial sum. But the security actually depends on how we model adversarial behavior. + +Consider the case where parties $P_2$ and $P_4$ team up (collusion). These two can share information between them. They have the following: + +- $P_2$ has $s_1$, $s_2$, $x_2$. +- $P_4$ has $s_3$, $s_4$, $x_4$. + +Using $s_2$ and $s_3$, they can compute $x_3 = s_3 - s_2$ and obtain the input of $P_3$. This violates privacy. Similarly, if $P_i$ and $P_j$ team up, the can compute the partial sum + +$$ +s_{j - 1} - s_{i} = x_{i+1} + \cdots + x_{j-1} +$$ + +which leaks information about the inputs of $P_{i+1}, \dots, P_{j-1}$. + +## Modeling Adversaries for Multiparty Computation + +The adversary can decide not to follow the protocol and perform arbitrarily. + +- **Semi-honest** adversaries follows the protocol and tries to learn more information by inspecting the communication. +- **Malicious** adversaries can behave in any way, unknown to us. + +Semi-honest adversaries are similar to *passive* adversaries, whereas malicious adversaries are similar to *active* adversaries. + +We can also model the **corruption strategy**. Some parties can turn into an adversary during the protocol. + +- In **static** corruptions, the set of adversarial parties is fixed throughout the execution. +- In **adaptive** corruptions, the adversary corrupts parties during the execution, based on the information gained from the protocol execution. + +We can decide how much computational power to give to the adversary. For *computational security*, an adversary must be efficient, only polynomial time strategies are allowed. For *information-theoretic security*, an adversary has unbounded computational power. + +We will only consider **semi-honest** adversaries with **static** corruptions. + +## Defining Security for Multiparty Computation + +The idea is the following. + +> An attack on the protocol in the **real world** is equivalent to some attack on the protocol in an **ideal world** in which no damage can be done. + +In the **ideal world**, we use a trusted party to implement a protocol. All parties, both honest and corrupted, submit their input to the trusted party. Since the trusted party is not corrupted, the protocol is safe. + +In the **real world**, there is no trusted party and parties must communicate with each other using a protocol. + +Thus, a secure protocol must provide security in the real world that is equivalent to that in the ideal world. The definition is saying the following: **there is no possible attack in the ideal world, so there is no possible attack in the real world**. This kind of definition implies privacy, soundness and input independence. + +> For every efficient adversary $\mc{A}$ in the real world, there exists an *equivalent* efficient adversary $\mc{S}$ (usually called a **simulator**) in the ideal world. + +### Semi-Honest & Static Corruption + +- The *view* of a party consists of its input, random tape and the list of messages obtained from the protocol. + - The view of an adversary is the union of views of corrupted parties. + - If an adversary learned anything from the protocol, it must be efficiently computable from its view. +- If a protocol is secure, it must be possible in the ideal world to generate something indistinguishable from the real world adversary's view. + - In the ideal world, the adversary's view consists of inputs/outputs to and from the trusted party. + - An adversary in the ideal world must be able to generate a view equivalent to the real world view. We call this ideal world adversary a **simulator**. + - If we show the existence of a simulator, a real world adversary's ability is the same as an adversary in the ideal world. + +> **Definition.** Let $\mc{A}$ be the set of parties that are corrupted, and let $\rm{Sim}$ be a simulator algorithm. +> - $\rm{Real}(\mc{A}; x_1, \dots, x_n)$: each party $P_i$ runs the protocol with private input $x_i$. Let $V_i$ be the final view of $P_i$. Output $\braces{V_i : i \in \mc{A}}$. +> - $\rm{Ideal}_\rm{Sim}(x_1, \dots, x_n)$: output $\rm{Sim}(\mc{A}; \braces{(x_i, y_i) : i \in \mc{A}})$. +> +> A protocol is **secure against semi-honest adversaries** if there exists a simulator such that for every subset of corrupted parties $\mc{A}$, its views in the real and ideal worlds are indistinguishable. + +## Oblivious Transfer (OT) + +This is a building block for building any MPC. + +Suppose that the sender has data $m_1, \dots, m_n \in \mc{M}$, and the receiver has an index $i \in \braces{1, \dots, n}$. The sender wants to send exactly one message and hide others. Also, the receiver wants to hide which message he received. + +This problem is called 1-out-of-$n$ **oblivious transfer** (OT). + +### 1-out-of-2 OT Construction from ElGamal Encryption + +We show an example of 1-out-of-2 OT using the ElGamal encryptions scheme. We use a variant where a hash function is used in encryption. + +It is known that $k$-out-of-$n$ OT is constructible from 1-out-of-2 OTs. + +> Suppose that the sender Alice has messages $x_0, x_1 \in \braces{0, 1}\conj$, and the receiver Bob has a choice $\sigma \in \braces{0, 1}$. +> +> 1. Bob chooses $sk = \alpha \la \Z_q$ and computes ${} h = g^\alpha {}$, and chooses $h' \la G$. +> 2. Bob sets $pk_\sigma = h$ and $pk_{1-\sigma} = h'$ and sends $(pk_0, pk_1)$ to Alice. +> 3. Alice encrypts each $x_i$ using $pk_i$, obtains two ciphertexts. +> - $\beta_0, \beta_1 \la \Z_q$. +> - $c_0 = \big( g^{\beta_0}, H(pk_0^{\beta_0}) \oplus x_0 \big)$, $c_1 = \big( g^{\beta_1}, H(pk_1^{\beta_1}) \oplus x_1 \big)$. +> 4. Alice sends $(c_0, c_1)$ to Bob. +> 5. Bob decrypts $c_\sigma$ with $sk$ to get $x_\sigma$. + +Correctness is obvious. + +Alice's view contains the following: $x_0, x_1, pk_0, pk_1, c_0, c_1$. Among these, $pk_0, pk_1$ are the received values from Bob. But these are random group elements, so she learns nothing about $\sigma$. The simulator can choose two random group elements to simulate Alice. + +Bob's view contains the following: $\sigma, \alpha, g^\alpha, h', c_0, c_1, x_\sigma$. He only knows one private key, so he only learns $x_\sigma$, under the DL assumption. (He doesn't have the discrete logarithm for $h'$) The simulator must simulate $c_0, c_1$, so it encrypts $x_\sigma$ with $pk_\sigma$, and as for $x_{1-\sigma}$, a random message is encrypted with $pk_{1-\sigma}$. This works because the encryption scheme is semantically secure, meaning that it doesn't reveal any information about the underlying message. + +The above works for **semi-honest** parties. To prevent malicious behavior, we fix the protocol a bit. + +> 1. Alice sends a random $w \la G$ first. +> 2. Bob must choose $h$ and $h'$ so that $hh' = w$. $h$ is chosen the same way, and $h' = wh\inv$ is computed. +> +> The remaining steps are the same, except that Alice checks if $pk_0 \cdot pk_1 = w$. + +Bob must choose $h, h'$ such that $hh' = w$. If not, Bob can choose ${} \alpha' \la \Z_q {}$ and set $h' = g^{\alpha'}$, enabling him to decrypt both $c_0, c_1$, revealing $x_0, x_1$. Under the DL assumption, Bob cannot find the discrete logarithm of $h'$, which prevents malicious behavior. + +### 1-out-of-$n$ OT Construction from ElGamal Encryption + +Let $m_1, \dots, m_n \in \mc{M}$ be the messages to send, and let $i$ be an index. We will use ElGamal encryption on a cyclic group $G = \span{g}$ of prime order, with a hash function and a semantically secure symmetric cipher $(E_S, D_S)$. + +> 1. Alice chooses $\beta \la \Z_q$, computes $v \la g^\beta$ and sends $v$ to Bob. +> 2. Bob chooses $\alpha \la \Z_q$, computes $u \la g^\alpha v^{-i}$ and sends $u$ to Alice. +> 3. For $j = 1, \dots, n$, Alice computes the following. +> - Compute $u_j \la u \cdot v^j = g^\alpha v^{j-i}$ as the public key for the $j$-th message. +> - Encrypt $m_j$ as $(g^\beta, c_j)$, where $c_j \la E_S\big( H(g^\beta, u_j^\beta), m_j \big)$. +> 4. Alice sends $(c_1, \dots, c_n)$ to Bob. +> 5. Bob decrypts $c_i$ as follows. +> - Compute symmetric key $k \la H(v, v^\alpha)$ where $v = g^\beta$ from step $1$. +> - $m_i \la D_S(k, c_i)$. + +Note that all ciphertexts $c_j$ were created from the same ephemeral key $\beta \in \Z_q$. + +For correctness, we check that Bob indeed receives $m_i$ from the above protocol. Check that $u_i = u\cdot v^i = g^\alpha v^0 = g^\alpha$, then $u_i^\beta = g^{\alpha\beta} = v^\alpha$. Since $c_i = E_S\big( H(g^\beta, u_i^\beta), m_i \big) = E_S\big( H(v, v^\alpha), m_i \big)$, the decryption gives ${} m_i {}$. + +Now is this oblivious? All that Alice sees is $u = g^\alpha v^{-i}$ from Bob. Since $\alpha \la \Z_q$, $u$ is uniformly distributed over elements of $G$. Alice learns no information about $i$. + +As for Bob, we need the **CDH assumption**. Suppose that Bob can query $H$ on two different ciphertexts $c_{j_1}, c_{j_2}$. Then he knows + +$$ +u_{j_1}^\beta/u_{j_2}^\beta = v^{\beta(j_1 - j_2)}, +$$ + +and by raising both to the $(j_1 - j_2)\inv$ power (inverse in $\Z_q$), he can compute $v^\beta = g^{\beta^2}$. Thus, Bob has computed $g^{\beta^2}$ from $g^\beta$, and this breaks the CDH assumption.[^1] Thus Bob cannot query $H$ on two points, and is unable to decrypt two ciphertexts. He only learns $m_i$. + +### OT for Computing $2$-ary Function with Finite Domain + +We can use an OT for computing a $2$-ary function with finite domain. + +Let $f : X_1 \times X_2 \ra Y$ be a deterministic function with $X_1$, $X_2$ both finite. There are two parties ${} P_1, P_2 {}$ with inputs $x_1, x_2$, and they want to compute $f(x_1, x_2)$ without revealing their input. + +Then we can use $1$-out-of-$\abs{X_2}$ OT to securely compute $f(x_1, x_2)$. Without loss of generality, suppose that $P_1$ is the sender. + +${} P_1$ computes $y_x =f(x_1, x)$ for all $x \in X_2$, resulting in $\abs{X_2}$ messages. Then $P_1$ performs 1-out-of-$\abs{X_2}$ OT with $P_2$. The value of $x_2$ will be used as the choice of $P_2$, which will be oblivious to $P_1$.[^2] + +This method is inefficient, so we have better methods! + +[^1]: Given $g^\alpha, g^\beta$, compute $g^{\alpha + \beta}$. Then compute $g^{\alpha^2}, g^{\beta^2}, g^{(\alpha+\beta)^2}$, and obtain $g^{2\alpha\beta}$. Exponentiate by $2\inv \in \Z_q$ to find $g^{\alpha\beta}$. +[^2]: Can $P_1$ learn the value of $x_2$ from the final output $y_{x_2} = f(x_1, x_2)$? diff --git a/_posts/Lecture Notes/Modern Cryptography/2023-11-14-garbled-circuits.md b/_posts/Lecture Notes/Modern Cryptography/2023-11-14-garbled-circuits.md new file mode 100644 index 0000000..0b3f856 --- /dev/null +++ b/_posts/Lecture Notes/Modern Cryptography/2023-11-14-garbled-circuits.md @@ -0,0 +1,157 @@ +--- +share: true +toc: true +math: true +categories: + - Lecture Notes + - Modern Cryptography +tags: + - lecture-note + - cryptography + - security +title: 15. Garbled Circuits +date: 2023-11-14 +github_title: 2023-11-14-garbled-circuits +--- + + +A simple solution for two party computation would be to use oblivious transfers as noted [here](../2023-11-09-secure-mpc/#ot-for-computing-2-ary-function-with-finite-domain). However, this method is inefficient. We will look at **Yao's protocol**, presented in 1986, for secure two-party computation. + +The term **garbled circuit** was used by Beaver-Micali-Rogaway (BMR), presenting a multiparty protocol using a similar approach to Yao's protocol. + +## Yao's Protocol + +This protocol is for **general secure two party computation**. By general, it means that the protocol can securely compute any functionality. The protocol works on boolean circuits using AND/OR gates, which can be extended to arbitrary circuits, such as addition, multiplication, etc. This protocol takes **constant number of rounds**, and is secure for semi-honest parties. + +A plain circuit would be evaluated by giving raw values $0/1$ to the input wires. These inputs will be evaluated through the gates, and the output is fed to another gate, and so on. But for *secure computation*, we require that **no party learns the values of any internal wires**. + +**Yao's protocol** is a compiler which transforms a circuit so that all information is hidden except for the final output. + +## Garbled Circuits + +A **garbled circuit** is an *encrypted circuit*, with a pair of keys for each wire. For each gate, a key is given for each of the input wires. Using the keys, it is possible to compute the key of the gate output, but nothing else can be learned. For this process, we will use **oblivious transfer**. + +### Constructing a Garbled Circuit + +The garbler first encrypts the circuit. First, assign two keys, called **garbled values**, to each wire of the circuit. + +Suppose we have an AND gate, where $C = \rm{AND}(A, B)$. For the wire $A$, the garbler assigns $A_0, A_1$, each for representing the bit $0$ and $1$. Note that this mapping is known only to the garbler. Similar process is done for wires $B$ and $C$. + +Then we have the following garbled values, as in columns 1 to 3. Now, encrypt the values of $C$ with a semantically secure scheme $E$, and obtain the $4$th column. Then, permute the rows in random order so that it is indistinguishable. + +|$A$|$B$|$C$|$C = \rm{AND}(A, B)$| +|:-:|:-:|:-:|:-:| +|$A_0$|$B_0$|$C_0$|$E(A_0 \parallel B_0, C_0)$| +|$A_0$|$B_1$|$C_0$|${} E(A_0 \parallel B_1, C_0) {}$| +|$A_1$|$B_0$|$C_0$|$E(A_1 \parallel B_0, C_0)$| +|$A_1$|$B_1$|$C_1$|$E(A_1 \parallel B_1, C_1)$| + +For evaluation, the **last column** will be given to the other party as the representation of the **garbled gate**. The inputs will be given as $A_x$ and $B_y$, but the evaluator will have no idea about the actual value of $x$ and $y$, hiding the actual input value. Although he doesn't know the underlying bit values, the evaluator is able to compute $C_z$ where $z = x \land y$. Similarly, the evaluator will not know whether $z$ is $0$ or $1$, hiding the output or intermediate values. + +The above *garbling* process is done for all gates. For the last output gate, the garbler keeps a **output translation table** to himself, that maps $0$ to $C_0$ and $1$ to $C_1$. This is used for recovering the bit, when the evaluation is done and the evaluator sends the final garbled value. + +> In summary, given a boolean circuit, +> 1. Assign garbled values to all wires in the circuit. +> 2. Construct garbled gates using the garbled values. + +Note that the evaluator learns nothing during the evaluation. + +### Evaluating a Garbled Circuit + +There is a slight problem here. In some encryption schemes, a ciphertext can be decrypted by an incorrect key. If the above encryptions are in arbitrary order, how does the evaluator know if he decrypted the correct one? + +One method is to add **redundant zeros** to the $C_k$. Then the last column would contain $E\big( A_i \pll B_j, C_k \pll 0^n \big)$. Then when the evaluator decrypts these ciphertexts, the probability of getting redundant zeros with an incorrect key would be negligible. But with this method, all four ciphertexts have to be decrypted in the worst case. + +Another method is adding a bit to signal which ciphertext to decrypt. This method is called **point-and-permute**. The garbler chooses a random bit $b_A$ for each wire $A$. Then when drawing $A_0, A_1$, set the first bit (MSB) to $b_A$ and $1 - b_A$, respectively. Next, the ciphertexts are sorted in the order of $b_A$ and $b_B$. Then the evaluator can exploit this information during evaluation. + +For example, if the evaluator has $X$ and $Y$ such that $\rm{MSB}(X) = 0$ and $\rm{MSB}(Y) = 1$, then choose the second ($01$ in binary) ciphertext entry to decrypt. + +This method does not reduce security, since the bits $b_A$, $b_B$ are random. Also, now the evaluator doesn't have to decrypt all four ciphertexts, reducing the evaluation load. + +## Protocol Description + +> Suppose we have garbler Alice and evaluator Bob. +> +> 1. Alice garbles the circuit, generating garbled values and gates. +> 2. Garbled gate tables and the garbled values of Alice's inputs are sent to Bob. +> 3. For Bob's input wire $B$, Alice and Bob run an 1-out-of-2 OT protocol. +> - Alice provides $B_0$ and $B_1$ to the OT. +> - Bob inputs his input bit $b$ to the OT, and Bob now has $B_b$. +> 4. Bob has garbled values for all input wires, so evaluates the circuit. +> 5. Bob sends the final garbled output to Alice. +> 6. Alices uses the output translation table to recover the final result bit. + +Note that OT can be done in *parallel*, reducing the round complexity. + +### Why is OT Necessary? + +Suppose Alice gave both $B_0$ and $B_1$ to Bob. Bob doesn't know which one represents $0$ or $1$, but he can just run the evaluation for both inputs. + +Suppose we have a $2$-input AND gate $C = \rm{AND}(A, B)$. Bob already has $A_x$ from Alice, so he evaluates for both $B_0$ and $B_1$, obtaining $C_{x\land 0}$ and $C_{x \land 1}$. If these are the same, Bob learns that $x = 0$. If different, $x = 1$. + +So we need an OT to make sure that Bob only learns one of the garbled values. + +### Performance + +- We need about $2$ to $4$ rounds. + - Depends on the implementation of the OT. + - Need additional rounds if the final output should be sent to a party. + - Anyways, takes constant number of rounds. +- Need $m$ oblivious transfers, where $m$ is the number of inputs of Bob. + - These can be carried out in parallel. +- Suppose that there are $N$ gates.[^1] + - $8N$ symmetric encryptions are required to build a garbled circuit. + - $2N$ decryptions are required to compute the circuit. + - We need to communicate the data of $\mc{O}(N)$ gates. + +## Summary of Yao's Protocol + +Let $f$ be a given public function that Alice and Bob want to compute, in circuit representation. Let $(x_1, \dots, x_n)$ and $(y_1, \dots, y_m)$ be inputs provided by Alice and Bob, respectively. + +Alice generates a garbled circuit $G(f)$ by assigning garbled values for each wire. Then gives Bob $G(f)$ and the garbled values of her inputs. Then Alice and Bob run several OTs in parallel for the garbled values of Bob's inputs. + +Bob computes $G(f)$ and obtains a key of $f(x_1, \dots, x_n, y_1, \dots, y_m)$, which is sent to Alice and Alice recovers the final result. + +## Proof of Security (Semi-honest) + +We show that if the underlying OT is secure, then Yao's protocol is secure. If both parties are honest or corrupted, there is nothing to show, so we only show for the cases where one party is corrupted. + +### Alice is Corrupted + +Alice's view only consists of the messages it receives during the oblivious transfers. Since the OT is secure, OT will have its own simulator $\mc{S}$ for the sender of the OT. To simulate Alice, we can use the same simulator $\mc{S}$. + +In the OT-hybrid model, we assume an ideal OT. In this case, Alice receives no messages during the oblivious transfers. Then to simulate Alice, an empty transcript will be sufficient. + +### Bob is Corrupted + +This case is harder to show. The simulator must construct a fake garbled circuit that is indistinguishable to the real one. But the simulator doesn't know the inputs of Alice, so it cannot generate a real circuit. + +Bob's view contains his inputs $(y_1, \dots, y_m)$ and the final output $z = (z_1, \dots, z_k)$. Thus, the simulator generates a fake garbled circuit that **always** outputs $z$. To do this, the garbled values for the wires can be chosen randomly, and use them for encryption keys. But the encrypted message is fixed to the (intermediate) output. For instance, make the gate table consists of $E\big( A_i \pll B_j, C_0 \big)$ for fixed $C_0$. In this way, the simulator can control the values of output wires and get $z$ for the final output. + +The output translation tables can be generated using this method. An entry of the table would be $(z_i, C_0)$ where $C_0$ is the garbled value used for generating the gate table. As for $1-z_i$, any random garbled value can be used. + +Lastly for communicating garbled values, Alice's input wires can be set to any two garbled values of the wire. Bob's input wires should be simulated by the simulator of the OT, which will result in any one of the two values on the wire. + +## The BMR Protocol + +This is a multiparty variant of Yao's protocol. + +For each wire of the circuit, two random *super-seeds* (garbled values) are used. Each party generates a seed, and the super-seed of the wire is the concatenation of all seeds generated by the parties. + +For example, for input wire $A$, let + +$$ +A_0 = a_0^1 \pll \cdots \pll a_0^n, \quad A_1 = a_1^1 \pll \cdots \pll a_1^n, +$$ + +where $a_0^k, a_1^k$ are seeds generated by party $P_k$. + +Then for garbling gates, the super-seeds of the output wire is encrypted by the super-seeds of the input wires. As an example, suppose that we use $A_b = a_b^1 \pll \cdots \pll a_b^n$ to encrypt an output value $B$. Then we could use a secure PRG $G$ and set + +$$ +B \oplus G(a_b^1) \oplus \cdots \oplus G(a_b^n) +$$ + +as the garbled value. + +[^1]: Why??? diff --git a/_posts/Lecture Notes/Modern Cryptography/2023-11-16-gmw-protocol.md b/_posts/Lecture Notes/Modern Cryptography/2023-11-16-gmw-protocol.md new file mode 100644 index 0000000..4dfc3e7 --- /dev/null +++ b/_posts/Lecture Notes/Modern Cryptography/2023-11-16-gmw-protocol.md @@ -0,0 +1,290 @@ +--- +share: true +toc: true +math: true +categories: + - Lecture Notes + - Modern Cryptography +tags: + - lecture-note + - cryptography + - security +title: 16. The GMW Protocol +date: 2023-11-16 +github_title: 2023-11-16-gmw-protocol +image: + path: assets/img/posts/Lecture Notes/Modern Cryptography/mc-16-beaver-triple.png +attachment: + folder: assets/img/posts/Lecture Notes/Modern Cryptography +--- + + +There are two types of MPC protocols, **generic** and **specific**. Generic protocols can compute arbitrary functions. [Garbled circuits](../2023-11-14-garbled-circuits/#garbled-circuits) were generic protocols, since it can be used to compute any boolean circuits. In contrast, the [summation protocol](../2023-11-09-secure-mpc/#example-secure-summation) is a specific protocol that can only be used to compute a specific function. Note that generic protocols are not necessarily better, since specific protocols are much more efficient. + +## GMW Protocol + +The **Goldreich-Micali-Wigderson** (GMW) **protocol** is a designed for evaluating boolean circuits. In particular, it can be used for XOR and AND gates, which corresponds to addition and multiplication in $\Z_2$. Thus, the protocol can be generalized for evaluating arbitrary arithmetic circuits. + +We assume semi-honest adversaries and static corruption. The GMW protocol is known to be secure against any number of corrupted parties. We also assume that any two parties have private channels for communication. + +The idea is **secret sharing**, where each party shares its input with other parties. The actual input is not revealed, and after the computation, each party holds a *share* of the final result. + +The protocol can be broken down into $3$ phases. +- **Input phase**: each party shares its input with the other parties. +- **Evaluation phase**: each party computes gate by gate, using the shared values. +- **Output phase**: each party publishes their output. + +### Input Phase + +Suppose that we have $n$ parties $P_1, \dots, P_n$ with inputs $x_1, \dots, x_n \in \braces{0, 1}$. The inputs are bits but they can be generalized to inputs over $\Z_q$ where $q$ is prime. + +> Each party $P_i$ shares its input with other parties as follows. +> +> 1. Choose random ${} r_{i, j} \la \braces{0, 1} {}$ for all $j \neq i$ and send $r_{i, j}$ to $P_j$. +> 2. Set ${} r_{i, i} = x_i + \sum_{i \neq j} r_{i, j} {}$. + +Then we see that $x_i = \sum_{j = 1}^n r_{i, j} {}$. Each party has a **share** of $x_i$, which is $r_{i, j}$. We have a notation for this, + +$$ +[x_i] = (r_{i, 1}, \dots, r_{i, n}). +$$ + +It means that $r_{i, 1}, \dots, r_{i, n}$ are shares of $x_i$. + +After this phase, each party $P_j$ has $n$ shares $r_{1, j}, \dots, r_{n,j}$, where each is a share of $x_i$. + +### Evaluation Phase + +Now, each party computes each gate using the shares received from other parties. We describe how the XOR and AND gate are computed. + +#### Evaluating XOR Gates + +Suppose we want to compute a share of ${} c = a + b {}$. Then, since + +$$ +[c] = [a] + [b], +$$ + +each party can simply add all the input shares. + +If ${} {} y = x_1 + \cdots + x_n {} {}$, then party $P_j$ will compute ${} y_j = \sum_{i=1}^n r_{i, j} {}$, which is a share of $y$, $[y] = (y_1, \dots, y_n)$. It can be checked that + +$$ +y = \sum_{j=1}^n y_j = \sum_{j=1}^n \sum_{i=1}^n r_{i, j}. +$$ + +#### Evaluating AND Gates + +AND gates are not as simple as XOR gates. If $c = ab$, + +$$ +c = \paren{\sum_{i=1}^n a_i} \paren{\sum_{j=1}^n b_j} = \sum_{i=1}^n a_ib_i + \sum_{1 \leq i < j \leq n} (a_ib_j + a_j b_i). +$$ + +The first term can be computed internally by each party. The problem is the second term. $P_i$ doesn't know the values of $a_j$ and $b_j$. Therefore, we need some kind of interaction between $P_i$ and $P_j$, but no information should be revealed. We can use an OT for this. + +> For every pair of parties $(P_i, P_j)$, perform the following. +> +> 1. $P_i$ chooses a random bit $s_{i, j}$ and computes all possible values of $a_ib_j + a_jb_i + s_{i, j}$. These values are used in the OT. +> 2. $P_i$ and $P_j$ run a $1$-out-of-$4$ OT. +> 3. $P_i$ keeps $s_{i, j}$ and $P_j$ receives $a_ib_j + a_jb_i + s_{i, j}$. + +- If $a_ib_j + a_jb_i$ is exposed to any party, it reveals information about other party's share. +- These are bits, so $P_i$ and $P_j$ get to keep a share of $a_ib_j + a_jb_i$. If these aren't bits, then $s_{i, j} - a_ib_j - a_jb_i$ must be computed for inputs to the OT. +- Since $a_j, b_j \in \braces{0, 1}$, it is possible to compute all possible values, and use them in the OT. $(a_j, b_j)$ will be used as the choice of $P_j$. + +### Output Phase + +After evaluation, each party has a share of the final output, so the share is sent to the parties that will learn the output. These shares can be summed to obtain the final output value. + +### Performance + +Addition is easy, but multiplication gates require $n \choose 2$ OTs. Thus the protocol requires a communication round among the parties for every multiplication gate. Also, the multiplication gates on the same level can be processed in parallel. + +Overall, the round complexity is $\mc{O}(d)$, where $d$ is the depth of the circuit, including only the multiplication gates. + +A shallow circuit is better for GMW protocols. However, shallow circuits may end up using more gates depending on the function. + +## Security Proof + +We show the case when there are $n-1$ corrupted parties.[^1] Let $P_i$ be the honest party and assume that all others are corrupted. We will construct a simulator. + +Let $(x_1, \dots, x_n)$ be inputs to the function, and let $[y] = (y_1, \dots, y_n)$ be output shares. The adversary's view contains $y$, and all $x_j$, $y_j$ values except for $x_i$ and $y_i$. + +To simulate the input phase, choose random shares to be communicated, both for $P_i \ra P_j$ and $P_j \ra P_i$. The shares were chosen randomly, so they are indistinguishable to the real protocol execution. + +For the evaluation phase, XOR gates can be computed internally, so we only consider AND gates. +- When $P_j$ is the receiver, choose a random bit as the value learned from the OT. Since the OT contains possible values of $a_ib_j + a_jb_i + s_{i, j}$ and they are random, the random bit is equivalent. +- When $P_j$ is the sender, choose $s_{i, j}$ randomly and compute all $4$ possible values following the protocol. + +Lastly, for the output phase, the simulator has to simulate the message $y_i$ from $P_i$. Since the final output $y$ is known and $y_j$ ($j \neq i$) is known, $y_i$ can be computed from the simulator. + +We see that the distribution of the values inside the simulator is identical to the view in the real protocol execution. + +## Beaver Triples + +**Beaver triple sharing** is an offline optimization method for multiplication (AND) gates in the GMW protocol. Before actual computation, Beaver triples can be shared to speed up multiplication gates, reducing the running time in the online phase. Note that the overall complexity is the same. + +> **Definition.** A **Beaver triple** is a triple $(x, y, z)$ such that $z = xy$. + +### Beaver Triple Sharing + +When Beaver triples are shared, $[x] = (x_1, x_2)$ and $[y] = (y_1, y_2)$ are chosen so that + +$$ + +\tag{$\ast$} +z = z_1 + z _2 = (x_1 + x_2)(y_1 + y_2) = x_1y_1 + x_1y_2 + x_2y_1 + x_2y_2. +$$ + +> 1. Each party $P_i$ chooses random bits $x_i, y_i$. Now they must generate $z_1, z_2$ so that the values satisfy equation $(\ast)$ above. +> 2. $P_1$ chooses a random bit $s$ and computes all $4$ possible values of $s + x_1y_2 + x_2y_1$. +> 3. $P_1$ and $P_2$ run a $1$-out-of-$4$ OT. +> 4. $P_1$ keeps $z_1 = s + x_1y_1$, $P_2$ keeps $z_2 = (s + x_1y_2 + x_2y_1) + x_2y_2$. + +Indeed, $z_1, z_2$ are shares of $z$.[^2] See also Exercise 23.5.[^3] + +### Evaluating AND Gates with Beaver Triples + +Now, in the actual computation of AND gates, proceed as follows. + +![mc-16-beaver-triple.png](../../../assets/img/posts/Lecture%20Notes/Modern%20Cryptography/mc-16-beaver-triple.png) + +> Each $P_i$ has a share of inputs $a_i, b_i$ and a Beaver triple $(x_i, y_i, z_i)$. +> 1. Each $P_i$ computes $u_i = a_i + x_i$, $v_i = b_i + y_i$. +> 2. $P_i$ shares $u_i, v_i$ to $P_{3-i}$ and receives $u_{3-i}, v_{3-i}$ from $P_{3-i}$. +> 3. Each party now can compute $u = u_1 + u_2$, $v = v_1 + v_2$. +> 4. $P_1$ computes $c_1 = uv + uy_1 + vx_1 + z_1$, $P_2$ computes $c_2 = uy_2 + vx_2 + z_2$. + +Note that + +$$ +\begin{aligned} +c = c_1 + c_2 &= uv + u(y_1 + y_2) + v(x_1 + x_2) + (z_1 + z_2) \\ +&= uv + uy + vx + xy \qquad (\because z = xy) \\ +&= u(v + y) + x(v + y) \\ +&= (u + x)(v + y) = ab +\end{aligned} +$$ + +The last equality comes from the fact that $u = a + x$ and $v = b+y$ from step $1$. The equation was derived from the following observation. + +$$ +c = ab = (a + x)(b + y) - x(b + y) - y(a + x) + xy. +$$ + +Substitute $u = a +x$ and $v = b + y$, since $z = xy$, we have + +$$ +c = uv - xv - yu + z. +$$ + +Thus + +$$ +[c] = uv - [x]v - [y]u + [z], +$$ + +and $uv$ is public, so any party can include it in its share. + +Also note that $u_i, v_i$ does not reveal any information about $x_i, y_i$. Essentially, they are *one-time pad* encryptions of $x_i$ and ${} y_i {}$ since $a_i, b_i$ were chosen randomly. No need for OTs during actual computation. + +### Reusing Beaver Triples? + +**Beaver triples are to be used only once!** If $u_1 = a_1 + x_1$ and ${} u_1' = a_1' + x_1 {}$, then $u_1 + u_1' = a_1 + a_1'$, revealing information about $a_1 + a_1'$. + +Thus, before the online phase, a huge amount of Beaver triples are shared to speed up the computation. This can be done efficiently using [OT extension](#ot-extension) described below. + +## Comparison of Yao and GMW + +|Protocol|Yao|GMW| +|:-:|:-:|:-:| +|Metaphor|Apple: bite-by-bite|Orange: peel and eat| +|Pros|Constant round complexity|Circuit evaluation is simple| +|Cons|Requires symmetric cipher in the online phase|High overhead in AND gates| +|Good In|High latency networks|Low latency networks| +|Round Complexity|$\mc{O}(1)$|Depends on circuit depth. $n$ OTs per AND gates per party.| + +Yao's protocol computes gates bite-by-bite, whereas GMW protocol is peel-and-eat. Most of the effort is required in the preprocessing phase, by sharing many Beaver triples, but the evaluation phase is easy. + +## OT Extension + +Both Yao's and GMW protocol use OTs. Depending on the computation, one may end up performing thousands of OTs, which can be inefficient. + +There is a technique called **OT extension**, that allows us to obtain many OT instances from a small number of OT instances. OT extension only uses small number of base OTs, and uses symmetric cipher to extend it to many OTs. + +### Protocol Description + +This protocol will extend $n$ OTs to $m$ OTs, where $m \gg n$. + +- Sender has inputs $\paren{x_i^0, x_i^1}$ for $i = 1, \dots, m$. +- Receiver has choice vector $\sigma = (\sigma_1, \dots, \sigma_m) \in \braces{0, 1}^m$. + - After the protocol, the receiver will get $x_i^{\sigma_i}$ for $i = 1, \dots, m$. + +> **First phase.** +> +> 1. The receiver samples $n$ random strings $T_1, \dots, T_n \la \braces{0, 1}^m$ of length $m$. +> 2. The receiver prepares pairs $\paren{T_i, T_i \oplus \sigma}$ for $i = 1, \dots, n$ and plays *sender in base OT*. +> 3. The sender chooses random $s = (s_1, \dots, s_n) \in \braces{0, 1}^n$. +> 4. The sender plays *receiver in base OT* with input $s_i$ for $i = 1, \dots, n$. + +In the first phase, the roles are temporarily switched. + +- The receiver chose $n$ random $m$-bit vectors, now has a $m\times n$ bit matrix $T$. +- For the $i$-th base OT, the receiver inputs $T_i$ or $T_i \oplus \sigma$. Therefore, if $s_i = 0$, the sender gets $T_i$. If $s_i = 1$, then sender gets $T_i \oplus \sigma$. +- Suppose that the sender gets $Q_i \in \braces{0, 1}^m$ in the $i$-th base OT. The sender will also have a $m \times n$ bit matrix $Q$. + +$$ +Q_i = \begin{cases} T_i & (s_i = 0) \\ + T_i \oplus \sigma & (s_i = 1). +\end{cases} +$$ + +**Now consider each row separately!** Let ${} A[k]$ be the $k$-th row of matrix $A$. + +If $\sigma_j = 0$, the XOR operation in $T_i \oplus \sigma$ has no effect on the $j$-th element (row), so the $j$-th element of $T_i \oplus \sigma$ and $T_i$ are the same. Thus, we have $Q[j] = T[j]$. + +On the other hand, suppose that $\sigma_j = 1$ and consider each element of $Q[j]$. The $i$-th element is the $j$-th element of $Q_i$. If $s_i = 0$, then $Q_i = T_i$, so the $j$-th element (row) is the same as the $j$-th element of $T_i$. If $s_i = 1$, then $Q_i = T_i \oplus \sigma$, so the $j$-th element is flipped. Thus, $Q[j] = T[j] \oplus s$. + +$$ +Q[j] = \begin{cases} T[j] & (\sigma_j = 0) \\ +T[j] \oplus s & (\sigma_j = 1). +\end{cases} +$$ + +> **Second phase.** To perform the $j$-th transfer $(j = 1, \dots, m)$, +> +> 1. The sender sends $y_j^0 = H(j, Q[j]) \oplus x_j^0$ and $y_j^1 = H(j, Q[j] \oplus s) \oplus x_j^1$. +> 2. The receiver computes $H(j, T[j]) \oplus y_j^{\sigma_j}$. + +If $\sigma_j = 0$, then the sender gets + +$$ +H(j, T[j]) \oplus y_j^0 = H(j, T[j]) \oplus H(j, Q[j]) \oplus x_j^0 = x_j^0. +$$ + +If $\sigma_j = 1$, + +$$ +H(j, T[j]) \oplus y_j^1 = H(j, T[j]) \oplus H(j, Q[j] \oplus s) \oplus x_j^1 = x_j^1. +$$ + +We have just shown correctness. + +### Security Proof of OT Extension + +Intuitively, the sender receives either $T_i$ or $T_i \oplus \sigma$. But $T_i$ are chosen randomly, so it hides $\sigma$, revealing no information. + +As for the receiver, the values $(x_j^0, x_j^1)$ are masked by a hash function, namely $H(j, Q[j])$ and $H(j, Q[j] \oplus s)$. The receiver can compute $H(j, T[j])$, which equals *only one of them* but since receiver has no information about $s$, prohibiting the receiver from computing the other mask. + +### Performance of OT Extension + +The extension technique allows us to run $n$ base OT instances to obtain $m$ OT instances. For each of the $m$ OT transfers, only a few hash operations are required, resulting in very efficient OT. + +One may concern that we have to send a lot of information for each of the $n$ OT instances, since we have to send $m$ bit data for each OT. But this of not much concern. For example, if we used [OT based on ElGamal](../2023-11-09-secure-mpc/#1-out-of-2-ot-construction-from-elgamal-encryption), we can choose primes large enough $> 2^m$ to handle $m$-bit data. + +Hence, with OT extensions, we can perform millions of OTs efficiently, which can be used especially for computing many Beaver triples during preprocessing. + +[^1]: Intuitively, it may seem that proving security for $n-1$ corrupted parties would be the hardest. However, security for $n-1$ corrupted parties does not imply security for $n-2$ corrupted parties, in general. +[^2]: There is a variant of sharing Beaver triples, where a dealer generates all $x_i, y_i, z_i$ and gives them to each party. +[^3]: A Graduate Course in Applied Cryptography. diff --git a/_posts/Lecture Notes/Modern Cryptography/2023-11-23-bgv-scheme.md b/_posts/Lecture Notes/Modern Cryptography/2023-11-23-bgv-scheme.md new file mode 100644 index 0000000..c20e651 --- /dev/null +++ b/_posts/Lecture Notes/Modern Cryptography/2023-11-23-bgv-scheme.md @@ -0,0 +1,562 @@ +--- +share: true +toc: true +math: true +categories: + - Lecture Notes + - Modern Cryptography +tags: + - lecture-note + - cryptography + - security +title: 17. BGV Scheme +date: 2023-11-23 +github_title: 2023-11-23-bgv-scheme +--- + +## Homomorphisms + +> **Definition.** Let $(X, \ast), (Y, \ast')$ be sets equipped with binary operations $\ast$, $\ast'$. A map $\varphi : X \ra Y$ is said to be a **homomorphism** if +> +> $$ +> \varphi(a \ast b) = \varphi(a) \ast' \varphi(b) +> $$ +> +> for all $a, b \in X$. + +A homomorphism *sort of* preserves the structure between two sets.[^1] + +We will mainly consider **additive homomorphisms** where + +$$ +\varphi(a + b) = \varphi(a) + \varphi(b), +$$ + +and **multiplicative homomorphisms** where + +$$ +\varphi(ab) = \varphi(a)\varphi(b). +$$ + +## Homomorphic Encryption + +> **Definition.** A **homomorphic encryption scheme** defined over $\mc{M}$ consists of an encryption algorithm $E$ and a decryption algorithm $D$ such that +> +> $$ +> D\big( E(x) + E(y) \big) = x + y +> $$ +> +> or +> +> $$ +> D\big( E(x) \cdot E(y) \big) = x \cdot y. +> $$ + +The **decryption $D$ is a homomorphism**. From ciphertexts of $x$ and $y$, this scheme can compute the ciphertext of $x + y$ or $x \cdot y$. + +There are mainly $3$ categories of homomorphic encryption. + +- **Partial** Homomorphic Encryption + - These schemes can evaluate *some* functions on encrypted data. + - Textbook RSA had a *homomorphic property*. +- **Somewhat** Homomorphic Encryption (SHE) + - Both addition and multiplication are supported. + - But there is a limit on the number of operations. +- **Fully** Homomorphic Encryption (FHE) + - Any function can be evaluated on encrypted data. + - There is a method called *bootstrapping* that compiles SHE into FHE. + +### A Warm-up Scheme + +This is a sample scheme, which is insecure. + +> Choose parameters $n$ and $q$ as security parameters. +> +> 1. Set secret key $\bf{s} = (s_1, \dots, s_n) \in \Z^n$. +> 2. For message $m \in \Z_q$, encrypt it as follows. +> - Randomly choose $\bf{a} = (a_1, \dots, a_n) \la \Z_q^n$. +> - Compute $b = -\span{\bf{a}, \bf{s}} + m \pmod q$. +> - Output ciphertext $\bf{c} = (b, \bf{a}) \in \Z_q^{n+1}$. +> 3. To decrypt $\bf{c}$, compute $m = b + \span{\bf{a}, \bf{s}} \pmod q$. + +Correctness is trivial. Also, this encryption algorithm has the *additive homomorphism* property. If $b_1, b_2$ are encryptions of $m_1, m_2$, then + +$$ +b_1 = -\span{\bf{a}_1, \bf{s}} + m_1, \quad b_2 = -\span{\bf{a}_2, \bf{s}} + m_2 +$$ + +in $\Z_q$. Thus, + +$$ +b_1 + b_2 = -\span{\bf{a}_1 + \bf{a}_2, \bf{s}} + m_1 + m_2. +$$ + +Decrypting the ciphertext $(b_1 + b_2, \bf{a}_1 + \bf{a}_2)$ will surely give $m_1 + m_2$. + +But this scheme is not secure. After $n$ queries, the plaintext-ciphertext pairs can be transformed into a linear system of equations + +$$ +\bf{b} = -A \bf{s} + \bf{m}, +$$ + +where $\bf{a}_i$ are in the rows of $A$. This system can be solved for $\bf{s}$ with non-negligible probability.[^2] + +## Lattice Cryptography + +Recall that schemes like RSA and ElGamal rely on the hardness of computational problems. The hardness of those problems make the schemes secure. There are other (known to be) *hard* problems using **lattices**, and recent homomorphic encryption schemes use **lattice-based** cryptography. + +> **Definition.** For $\bf{b}_i \in \Z^n$ for $i = 1, \dots, n$, let $B = \braces{\bf{b}_1, \dots, \bf{b}_n}$ be a basis. The set +> +> $$ +> L = \braces{\sum_{i=1}^n a_i\bf{b}_i : a_i \in \Z} +> $$ +> +> is called a **lattice**. The set $B$ is a basis over $L$. + +It is essentially a linear combination of basis elements, with *integer coefficients*. + +### Bounded Distance Decoding Problem (BDD) + +Let $L$ be a lattice with basis $B$. Given + +$$ +\bf{t} = B\bf{u} + \bf{e} \notin L +$$ + +for a small error $\bf{e}$, the problem is to find the closest lattice point $B\bf{u} \in L$. + +It is known that all (including quantum) algorithms for solving BDD have costs $2^{\Omega(n)}$. + +This problem is easy when we have a *short* basis, where the angles between vectors are closer to $\pi/2$. For example, given $\bf{t}$, find $a_i \in \R$ such that + +$$ +\bf{t} = a_1 \bf{b}_1 + \cdots a_n \bf{b}_n +$$ + +and return $B\bf{u}$ as + +$$ +B\bf{u} = \sum_{i=1}^n \lfloor a_i \rceil \bf{b}_i. +$$ + +Then this ${} B\bf{u} \in L {}$ is pretty close to $\bf{t} \notin L$. + +## Learning with Errors Problem (LWE) + +This is the problem we will mainly use for homomorphic schemes. + +Let $\rm{LWE}_{n, q, \sigma}(\bf{s})$ denote the LWE distribution, where +- $n$ is the number of dimensions, +- $q$ is the modulus, +- $\sigma$ is the standard deviation of error. + +Also $D_\sigma$ denotes the discrete gaussian distribution with standard deviation $\sigma$. + +> Let $\bf{s} = (s_1, \dots, s_n) \in \Z_q^n$ be a secret. +> +> - Sample $\bf{a} = (a_1, \dots, a_n) \la \Z_q^n$ and $e \la D_\sigma$. +> - Compute $b = \span{\bf{a}, \bf{s}} + e \pmod q$. +> - Output $(b, \bf{a}) \in \Z_q^{n+1}$. +> +> This is called a **LWE instance**. + +### Search LWE Problem + +> Given many samples from $\rm{LWE}_{n, q, \sigma}(\bf{s})$, find $\bf{s}$. + +### Decisional LWE Problem (DLWE) + +> Distinguish two distributions $\rm{LWE}_{n, q, \sigma}(\bf{s})$ and $U(\Z_q^{n+1})$. + +It is known that the two versions of LWE problem are **equivalent** when $q$ is a prime bounded by some polynomial in $n$. + +LWE problem can be turned into **assumptions**, just like the DL and RSA problems. As in DL and RSA, the LWE problem is not hard for any parameters $n, q$. The problem is harder if $n$ is large and $q$ is small. + +## The BGV Scheme + +**BGV scheme** is by Brakerski-Gentry-Vaikuntanathan (2012). The scheme is defined over the finite field $\Z_p$ and can perform arithmetic in $\Z_p$. + +> Choose security parameters $n$, $q$ and $\sigma$. It is important that $q$ is chosen as an **odd** integer. +> +> **Key Generation** +> - Set secret key $\bf{s} = (s_1, \dots, s_n) \in \Z^n$. +> +> **Encryption** +> - Sample $\bf{a} \la \Z_q^n$ and $e \la D_\sigma$. +> - Compute $b = -\span{\bf{a}, \bf{s}} + m + 2e \pmod q$. +> - Output ciphertext $\bf{c} = (b, \bf{a}) \in \Z_q^{n+1}$. +> +> **Decryption** +> - Compute $r = b + \span{\bf{a}, \bf{s}} \pmod q$. +> - Output $m = r \pmod 2$. + +Here, it can be seen that + +$$ +r = m + 2e \pmod q. +$$ + +For correctness, $e \ll q$, and + +$$ +\abs{r} = \abs{m + 2e} < \frac{1}{2}q. +$$ + +Under the LWE assumption, it can be proven that the scheme is semantically secure, i.e, + +$$ +E(\bf{s}, 0) \approx_c E(\bf{s}, 1). +$$ + +### Addition in BGV + +Addition is easy! + +> Let $\bf{c} = (b, \bf{a})$ and $\bf{c}' = (b', \bf{a}')$ be encryptions of ${} m, m' \in \braces{0, 1} {}$. Then, $\bf{c}_\rm{add} = \bf{c} + \bf{c}'$ is an encryption of $m + m'$. + +*Proof*. Decrypt $\bf{c}_\rm{add} = (b + b', \bf{a} + \bf{a}')$. If + +$$ +r = b + \span{\bf{a}, \bf{s}} = m + 2e \pmod q +$$ + +and + +$$ +r' = b' + \span{\bf{a}', \bf{s}} = m' + 2e' \pmod q, +$$ + +then we have + +$$ +r_\rm{add} = b + b' + \span{\bf{a} + \bf{a}', \bf{s}} = r + r' = m + m' + 2(e + e') \pmod q. +$$ + +If $\abs{r + r'} < q/2$, then $m + m' = r_\rm{add} \pmod 2$. + +### Multiplication in BGV + +#### Tensor Product + +For multiplication, we need **tensor products**. + +> **Definition.** Let $\bf{a} = (a_1, \dots, a_n)^\top, \bf{b} = (b_1, \dots, b_n)^\top$ be vectors. Then the **tensor product** $\bf{a} \otimes \bf{b}$ is a vector with $n^2$ dimensions such that +> +> $$ +> \bf{a} \otimes \bf{b} = \big( a_i \cdot b_j \big)_{1 \leq i, j \leq n}. +> $$ + +We will use the following property. + +> **Lemma.** Let $\bf{a}, \bf{b}, \bf{c}, \bf{d}$ be $n$-dimensional vectors. Then, +> +> $$ +> \span{\bf{a}, \bf{b}} \cdot \span{\bf{c}, \bf{d}} = \span{\bf{a} \otimes \bf{c}, \bf{b} \otimes \bf{d}}. +> $$ + +*Proof*. Denote the components as $a_i, b_i, c_i, d_i$. + +$$ +\begin{aligned} +\span{\bf{a} \otimes \bf{c}, \bf{b} \otimes \bf{d}} &= \sum_{i=1}^n\sum_{j=1}^n a_ic_j \cdot b_id_j \\ +&= \paren{\sum_{i=1}^n a_ib_i} \paren{\sum_{j=1}^n c_j d_j} = \span{\bf{a}, \bf{b}} \cdot \span{\bf{c}, \bf{d}}. +\end{aligned} +$$ + +#### Multiplication + +Let $\bf{c} = (b, \bf{a})$ and $\bf{c}' = (b', \bf{a}')$ be encryptions of $m, m' \in \braces{0, 1}$. Since + +$$ +r = b + \span{\bf{a}, \bf{s}} = m + 2e \pmod q +$$ + +and + +$$ +r' = b' + \span{\bf{a}', \bf{s}} = m' + 2e' \pmod q, +$$ + +we have that + +$$ +r_\rm{mul} = rr' = (m + 2e)(m' + 2e') = mm' + 2e\conj \pmod q. +$$ + +So $mm' = r_\rm{mul} \pmod 2$ if $e\conj$ is small. + +However, to compute $r_\rm{mul} = rr'$ from the ciphertext, + +$$ +\begin{aligned} +r_\rm{mul} &= rr' = (b + \span{\bf{a}, \bf{s}})(b' + \span{\bf{a}', \bf{s}}) \\ +&= bb' + \span{b\bf{a}' + b' \bf{a}, \bf{s}} + \span{\bf{a} \otimes \bf{a}', \bf{s} \otimes \bf{s}'}. +\end{aligned} +$$ + +Thus we define $\bf{c}_\rm{mul} = (bb', b\bf{a}' + b' \bf{a}, \bf{a} \otimes \bf{a}')$, then this can be decrypted with $(1, \bf{s}, \bf{s} \otimes \bf{s})$ by the above equation. + +> Let $\bf{c} = (b, \bf{a})$ and $\bf{c}' = (b', \bf{a}')$ be encryptions of $m, m'$. Then, +> +> $$ +> \bf{c}_\rm{mul} = \bf{c} \otimes \bf{c}' = (bb', b\bf{a}' + b' \bf{a}, \bf{a} \otimes \bf{a}') +> $$ +> +> is an encryption of $mm'$ with $(1, \bf{s}, \bf{s} \otimes \bf{s})$. + +Not so simple as addition, we need $\bf{s} \otimes \bf{s}$. + +#### Problems with Multiplication + +The multiplication described above has two major problems. + +- The dimension of the ciphertext has increased to $n^2$. + - At this rate, multiplications get inefficient very fast. +- The *noise* $e\conj$ grows too fast. + - For correctness, $e\conj$ must be small compared to $q$, but it grows exponentially. + - We can only perform $\mc{O}(\log q)$ multiplications. + +### Dimension Reduction + +First, we reduce the ciphertext dimension. In the ciphertext $\bf{c}_\rm{mul} = (bb', b\bf{a}' + b' \bf{a}, \bf{a} \otimes \bf{a}')$, $\bf{a} \otimes \bf{a}'$ is causing the problem, since it must be decrypted with $\bf{s} \otimes \bf{s}'$. + +Observe that the following dot product is calculated during decryption. + +$$ +\tag{1} \span{\bf{a} \otimes \bf{a}', \bf{s} \otimes \bf{s}'} = \sum_{i = 1}^n \sum_{j=1}^n a_i a_j' s_i s_j. +$$ + +The above expression has $n^2$ terms, so they have to be manipulated. The idea is to switch these terms as encryptions of $\bf{s}$, instead of $\bf{s} \otimes \bf{s}'$. + +Thus we use encryptions of $s_is_j$ by $\bf{s}$. If we have ciphertexts of $s_is_j$, we can calculate the expression in $(1)$ since this scheme is *homomorphic*. Then the ciphertext can be decrypted only with $\bf{s}$, as usual. This process is called **relinearization**, and the ciphertexts of $s_i s_j$ are called **relinearization keys**. + +#### First Attempt + +> **Relinearization Keys**: for $1 \leq i, j \leq n$, perform the following. +> - Sample $\bf{u}_{i, j} \la \Z_q^{n}$ and $e_{i, j} \la D_\sigma$. +> - Compute $v_{i, j} = -\span{\bf{u}_{i, j}, \bf{s}} + s_i s_j + 2e_{i, j} \pmod q$. +> - Output $\bf{w}_{i, j} = (v_{i, j}, \bf{u}_{i, j})$. +> +> **Linearization**: given $\bf{c}_\rm{mul} = (bb', b\bf{a}' + b' \bf{a}, \bf{a} \otimes \bf{a}')$ and $\bf{w}_{i, j}$ for $1 \leq i, j \leq n$, output the following. +> +> $$ +> \bf{c}_\rm{mul}^\ast = (b_\rm{mul}^\ast, \bf{a}_\rm{mul}^\ast) = (bb', b\bf{a}' + b'\bf{a}) + \sum_{i=1}^n \sum_{j=1}^n a_i a_j' \bf{w}_{i, j} \pmod q. +> $$ + +Note that the addition $+$ is the addition of two ${} (n+1) {}$-dimensional vectors. By plugging in $\bf{w}_{i, j} = (v_{i, j}, \bf{u}_{i, j})$, we actually have + +$$ +b_\rm{mul}^\ast = bb' + \sum_{i=1}^n \sum_{j=1}^n a_i a_j' v_{i, j} +$$ + +and + +$$ +\bf{a}_\rm{mul}^\ast = b\bf{a}' + b'\bf{a} + \sum_{i=1}^n \sum_{j=1}^n a_i a_j' \bf{u}_{i, j}. +$$ + +Now we check correctness. $\bf{c}_\rm{mul}^\ast$ should decrypt to $mm'$ with only $\bf{s}$. + +$$ +\begin{aligned} +b_\rm{mul}^\ast + \span{\bf{a}_\rm{mul}^\ast, \bf{s}} &= bb' + \sum_{i=1}^n \sum_{j=1}^n a_i a_j' v_{i, j} + \span{b\bf{a}' + b'\bf{a}, \bf{s}} + \sum_{i=1}^n \sum_{j=1}^n a_i a_j' \span{\bf{u}_{i, j}, \bf{s}} \\ +&= bb' + \span{b\bf{a}' + b'\bf{a}, \bf{s}} + \sum_{i=1}^n \sum_{j=1}^n a_i a_j' \paren{v_{i, j} + \span{\bf{u}_{i, j}, \bf{s}}}. +\end{aligned} +$$ + +Since $v_{i, j} + \span{\bf{u}_{i, j}, \bf{s}} = s_i s_j + 2e_{i, j} \pmod q$, the above expression further reduces to + +$$ +\begin{aligned} +&= bb' + \span{b\bf{a}' + b'\bf{a}, \bf{s}} + \sum_{i=1}^n \sum_{j=1}^n a_i a_j' \paren{s_i s_j + 2e_{i, j}} \\ +&= bb' + \span{b\bf{a}' + b'\bf{a}, \bf{s}} + \span{\bf{a} \otimes \bf{a}', \bf{s} \otimes \bf{s}'} + 2\sum_{i=1}^n\sum_{j=1}^n a_i a_j' e_{i, j} \\ +&= rr' + 2e\conj \pmod q, +\end{aligned} +$$ + +and we have an encryption of $mm'$. + +However, we require that + +$$ +e\conj = \sum_{i=1}^n \sum_{j=1}^n a_i a_j' e_{i, j} \ll q +$$ + +for correctness. It is highly unlikely that this relation holds, since $a_i a_j'$ will be large. They are random elements of $\Z_q$ after all, so the size is about $\mc{O}(n^2 q)$. + +#### Relinearization + +We use a method to make $a_i a_j'$ smaller. The idea is to use the binary representation. + +Let $a[k] \in \braces{0, 1}$ denote the $k$-th least significant bit of $a \in \Z_q$. Then we can write + +$$ +a = \sum_{0\leq k **Relinearization Keys**: for $1 \leq i, j \leq n$ and $0 \leq k < \ceil{\log q}$, perform the following. +> - Sample $\bf{u}_{i, j, k} \la \Z_q^{n}$ and ${} e_{i, j, k} \la D_\sigma {}$. +> - Compute ${} v_{i, j, k} = -\span{\bf{u}_{i, j, k}, \bf{s}} + 2^k \cdot s_i s_j + 2e_{i, j, k} \pmod q {}$. +> - Output ${} \bf{w}_{i, j, k} = (v_{i, j, k}, \bf{u}_{i, j, k}) {}$. +> +> **Linearization**: given $\bf{c}_\rm{mul} = (bb', b\bf{a}' + b' \bf{a}, \bf{a} \otimes \bf{a}')$, $\bf{w}_{i, j, k}$ for $1 \leq i, j \leq n$ and $0 \leq k < \ceil{\log q}$, output the following. +> +> $$ +> \bf{c}_\rm{mul}^\ast = (b_\rm{mul}^\ast, \bf{a}_\rm{mul}^\ast) = (bb', b\bf{a}' + b'\bf{a}) + \sum_{i=1}^n \sum_{j=1}^n \sum_{k=0}^{\ceil{\log q}} a_{i, j}[k] \bf{w}_{i, j, k} \pmod q. +> $$ + +Correctness can be checked similarly. The bounds for summations are omitted for brevity. They range from $1 \leq i, j \leq n$ and $0 \leq k < \ceil{\log q}$. + +$$ +\begin{aligned} +b_\rm{mul}^\ast + \span{\bf{a}_\rm{mul}^\ast, \bf{s}} &= bb' + \sum_{i, j, k} a_{i, j}[k] \cdot v_{i, j, k} + \span{b\bf{a}' + b'\bf{a}, \bf{s}} + \sum_{i, j, k} a_{i, j}[k] \cdot \span{\bf{u}_{i, j, k}, \bf{s}} \\ +&= bb' + \span{b\bf{a}' + b'\bf{a}, \bf{s}} + \sum_{i, j, k} a_{i, j}[k] \paren{v_{i, j, k} + \span{\bf{u}_{i, j, k}, \bf{s}}}. +\end{aligned} +$$ + +Since ${} v_{i, j, k} + \span{\bf{u}_{i, j, k}, \bf{s}} = 2^k \cdot s_i s_j + 2e_{i, j, k} \pmod q {}$, the above expression further reduces to + +$$ +\begin{aligned} +&= bb' + \span{b\bf{a}' + b'\bf{a}, \bf{s}} + \sum_{i, j, k} a_{i, j}[k] \paren{2^k \cdot s_i s_j + 2e_{i, j, k}} \\ +&= bb' + \span{b\bf{a}' + b'\bf{a}, \bf{s}} + \sum_{i, j} a_{i, j}s_i s_j + 2\sum_{i, j, k} a_{i, j}[k] \cdot e_{i, j, k} \\ +&= bb' + \span{b\bf{a}' + b'\bf{a}, \bf{s}} + \span{\bf{a} \otimes \bf{a}', \bf{s} \otimes \bf{s}'} + 2e\conj \\ +&= rr' + 2e\conj \pmod q, +\end{aligned} +$$ + +and we have an encryption of $mm'$. In this case, + +$$ +e\conj = 2\sum_{i=1}^n\sum_{j=1}^n \sum_{k=0}^{\ceil{\log q}} a_{i, j}[k] \cdot e_{i, j, k} +$$ + +is small enough to use, since $a_{i, j}[k] \in \braces{0, 1}$. The size is about $\mc{O}(n^2 \log q)$, which is a lot smaller than $q$ for practical uses. We have reduced $n^2 q$ to $n^2 \log q$ with this method. + +### Noise Reduction + +Now we handle the noise growth. For correctness, we required that + +$$ +\abs{r} = \abs{m + 2e} < \frac{1}{2}q. +$$ + +But for multiplication, $\abs{r_\rm{mul}} = \abs{rr' + 2e\conj}$, so the noise grows very fast. If the initial noise size was $N$, then after $L$ levels of multiplication, the noise is now $N^{2^L}$.[^3] To reduce noise, we use **modulus switching**. + +Given $\bf{c} = (b, \bf{a}) \in \Z_q^{n+1}$, we reduce the modulus to $q' < q$ which results in a smaller noise $e'$. This can be done by scaling $\bf{c}$ by $q'/q$ and rounding it. + +> **Modulus Switching**: let $\bf{c} = (b, \bf{a}) \in \Z_q^{n+1}$ be given. +> +> - Find $b'$ closest to $b \cdot (q' /q)$ such that $b' = b \pmod 2$. +> - Find $a_i'$ closest to $a_i \cdot (q'/q)$ such that $a_i' = a_i \pmod 2$. +> - Output $\bf{c}' = (b', \bf{a}') \in \Z_{q'}^{n+1}$. + +In summary, $\bf{c}' \approx \bf{c} \cdot (q'/q)$, and $\bf{c}' = \bf{c} \pmod 2$ component-wise. + +We check if the noise has been reduced, and decryption results in the same message $m$. Decryption of $\bf{c}'$ is done by $r' = b' + \span{\bf{a}', \bf{s}} \pmod{q'}$, so we must prove that ${} r' \approx r \cdot (q'/q) {}$ and $r' = r \pmod 2$. Then the noise is scaled down by $q'/q$ and the message is preserved. + +Let $k \in \Z$ such that $b + \span{\bf{a}, \bf{s}} = r + kq$. By the choice of $b'$ and $a_i'$, + +$$ +b' = b \cdot (q'/q) + \epsilon_0, \quad a_i' = a_i \cdot (q'/q) + \epsilon_i +$$ + +for $\epsilon_i \in\braces{0, 1}$. Then + +$$ +\begin{aligned} +b' + \span{\bf{a}', \bf{s}} &= b' + \sum_{i=1}^n a_i's_i \\ +&= b \cdot (q'/q) + \epsilon_0 + \sum_{i=1}^n \paren{a_i \cdot (q'/q) + \epsilon_i} s_i \\ +&= (q'/q) \paren{b + \sum_{i=1}^n a_i s_i} + \epsilon_0 + \sum_{i=1}^n \epsilon_i s_i \\ +&= (q'/q) \cdot (r + kq) + \epsilon_0 + \sum_{i=1}^n \epsilon_i s_i \\ +&= r \cdot (q'/q) + \epsilon_0 + \sum_{i=1}^n \epsilon_i s_i + kq'. +\end{aligned} +$$ + +We additionally assume that $\bf{s} \in \Z_2^n$, then the error term is bounded by $n+1$, and $n \ll q$.[^4] Set + +$$ +r' = r \cdot (q'/q) + \epsilon_0 + \sum_{i=1}^n \epsilon_i s_i, +$$ + +then we have $r' \approx r \cdot (q'/q)$. + +Next, $b + \span{\bf{a}, \bf{s}} = b' + \span{\bf{a}', \bf{s}} \pmod 2$ component-wise. Then + +$$ +r + kq = b + \span{\bf{a}, \bf{s}} = b' + \span{\bf{a}', \bf{s}} = r' + kq' \pmod 2. +$$ + +Since $q, q'$ are odd, $r = r' \pmod 2$. + +### Modulus Chain + +Let the initial noise be $\abs{r} \approx N$. Set the maximal level $L$ for multiplication, and set $q_{L} = N^{L+1}$. Then after each multiplication, switch the modulus to $q_{k-1} = q_k/N$ using the above method. + +Multiplication increases the noise to $N^2$, and then modulus switching decreases the noise back to $N$, allowing further computation. + +So we have a modulus chain, + +$$ +N^{L+1} \ra N^L \ra \cdots \ra N. +$$ + +When we perform $L$ levels of computation and reach modulus $q_0 = N$, we cannot perform any multiplications. We must apply [bootstrapping](../2023-12-08-bootstrapping-ckks/#bootstrapping). + +Note that without modulus switching, we need $q_L > N^{2^L}$ for $L$ levels of computation, which is very large. Since we want $q$ to be small (for the hardness of the LWE problem), modulus switching is necessary. We now only require $q_L > N^{L+1}$. + +### Multiplication in BGV (Summary) + +- Set up a modulus chain $q_k = N^{k+1}$ for $k = 0, \dots, L$. +- Given two ciphertexts $\bf{c} = (b, \bf{a}) \in \Z_{q_k}^{n+1}$ and $\bf{c}' = (b', \bf{a}') \in \Z_{q_k}^{n+1}$ with modulus $q_k$ and noise $N$. + +- (**Tensor Product**) $\bf{c}_\rm{mul} = \bf{c} \otimes \bf{c}' \pmod{q_k}$. + - Now we have $n^2$ dimensions and noise $N^2$. +- (**Relinearization**) + - Back to $n$ dimensions and noise $N^2$. +- (**Modulus Switching**) + - Modulus is switched to $q_{k-1}$ and noise is back to $N$. + +## BGV Generalizations and Optimizations + +### From $\Z_2$ to $\Z_p$ + +The above description is for messages $m \in \braces{0, 1} = \Z_2$. This can be extend to any finite field $\Z_p$. Replace $2$ with $p$ in the scheme. Then encryption of $m \in \Z_p$ is done as + +$$ +b = -\span{\bf{a}, \bf{s}} + m + pe \pmod q, +$$ + +and we have $r = b + \span{\bf{a}, \bf{s}} = m + pe$, $m = r \pmod p$. + +### Packing Technique + +Based on the Ring LWE problem, plaintext space can be extended from $\Z_p$ to $\Z_p^n$ by using **polynomials**. + +With this technique, the number of linearization keys is reduced from $n^2 \log q$ to $\mc{O}(1)$. + +## Security and Performance of BGV + +- Security depends on $n$ and $q$. + - $(n, \log q) = (2^{10}, 30), (2^{13}, 240), (2^{16}, 960)$. + - $q$ is much larger than $n$. + - We want $n$ small and $q$ large enough to be correct. +- BGV is a **somewhat** homomorphic encryption. + - The number of multiplications is limited. +- Multiplication is expensive, especially linearization. + - Parallelization is effective for optimization, since multiplication is basically performing the same operations on different data. + +[^1]: A homomorphism is a *confused name changer*. It can map different elements to the same name. +[^2]: The columns $\bf{a}_i$ are chosen random, so $A$ is invertible with high probability. +[^3]: Noise: $N \ra N^2 \ra N^4 \ra \cdots \ra N^{2^L}$. +[^4]: This is how $\bf{s}$ is chosen in practice. diff --git a/_posts/Lecture Notes/Modern Cryptography/2023-12-08-bootstrapping-ckks.md b/_posts/Lecture Notes/Modern Cryptography/2023-12-08-bootstrapping-ckks.md new file mode 100644 index 0000000..1ce377a --- /dev/null +++ b/_posts/Lecture Notes/Modern Cryptography/2023-12-08-bootstrapping-ckks.md @@ -0,0 +1,347 @@ +--- +share: true +toc: true +math: true +categories: + - Lecture Notes + - Modern Cryptography +tags: + - lecture-note + - cryptography + - security +title: 18. Bootstrapping & CKKS +date: 2023-12-08 +github_title: 2023-12-08-bootstrapping-ckks +--- + +## Bootstrapping + +Recall that BGV has a limit on the number of operations, so it cannot evaluate a circuit with a large depth. This was because of the growing noise, so we need a way to remove the noise. + +An easy answer is decrypting the ciphertext and encrypting it again, but we want to do it without using the secret key. + +**Bootstrapping** is a method to convert SHE into FHE. + +### Key Idea + +The main idea is to *homomorphically evaluate the decryption circuit over encrypted $\bf{s}$*. + +Let $\bf{c}$ be an encryption of $m \in \braces{0, 1}$, at the lowest level $0$. (Cannot perform multiplications anymore) The decryption algorithm, with a secret $\bf{s}$ fixed, is a function of $\bf{c}$. + +Change the perspective and view it as a function of $\bf{s}$. + +$$ +f(\bf{s}) = D(\bf{s}, \bf{c}) : \braces{0, 1}^n \ra \braces{0, 1} +$$ + +Then $f(\bf{s}) = m$. + +Let $\bf{s}' \in \braces{0, 1}^n$ be a new secret key. Generate the **bootstrapping keys** + +$$ +BK = \braces{\bf{k}_i}_{i=1}^n, \qquad \bf{k}_i = E(\bf{s}', s_i). +$$ + +Then by the homomorphic property of $f$, + +$$ +f(\bf{k_1}, \bf{k}_2, \dots, \bf{k}_n) = f\big( E(\bf{s}', s_1), \dots, E(\bf{s}', s_n) \big) = E\big( \bf{s}', f(s_1, \dots, s_n) \big) = E(\bf{s}', m). +$$ + +#### Example with BGV + +Technically, the expression $f(\bf{k_1}, \bf{k}_2, \dots, \bf{k}_n)$ doesn't make sense, but it works. Consider a message $m$ encrypted with secret $\bf{s}$ in the BGV scheme. + +$$ +\bf{c} = (b, \bf{a}), \quad b = -\span{\bf{a}, \bf{s}} + m + 2e \pmod q. +$$ + +The decryption is $r = b + \span{\bf{a}, \bf{s}} \pmod q$, and then taking the least significant bit. Consider it as a function + +$$ +f(\bf{s}) = b + \span{\bf{a}, \bf{s}} = b + \sum_{i=1}^n a_is_i. +$$ + +For a new key $\bf{s}' = (s_1', \dots, s_n')$, generate bootstrapping keys $\bf{k}_i = E(\bf{s}', s_i)$ and plugging it in forcefully gives + +$$ +\begin{aligned} +f(\bf{k}_1, \dots, \bf{k}_n) &= b + \sum_{i=1}^n a_i E(\bf{s}', s_i) = b + \sum_{i=1}^n E(\bf{s}', a_is_i) \\ +&=b + E\paren{\bf{s}', \sum_{i=1}^n a_is_i} = b + E\paren{\bf{s}', \span{\bf{a}, \bf{s}}}. +\end{aligned} +$$ + +Since an encryption of $\span{\bf{a}, \bf{s}}$ with $\bf{s}'$ is $-\span{\bf{a}', \bf{s}'} + \span{\bf{a}, \bf{s}} + 2e' \pmod q$, the above equation equals + +$$ +\begin{aligned} +b' &=b -\span{\bf{a}', \bf{s}'} + \span{\bf{a}, \bf{s}} + 2e' \\ +&= -\span{\bf{a}', \bf{s}'} + m + 2(e + e') \pmod q. +\end{aligned} +$$ + +Indeed, decrypting $b'$ will give $m$. So we have $E(\bf{s}', m)$ from $f(\bf{k}_1, \dots, \bf{k}_n)$.[^1] + +### Bootstrapping Procedure + +> Given an encryption $\bf{c}$ of $m$ at level $0$, perform the following procedure. +> +> **Bootstrapping Key Generation** +> - Choose a new secret key $\bf{s}' \in \braces{0, 1}^n$. +> - Generate *bootstrapping key* ${} BK = \braces{\bf{k}_i}_{i=1}^n {}$ where $\bf{k}_i = E(\bf{s}', s_i)$. +> +> **Bootstrapping** +> - Generate a circuit representation $f : \braces{0, 1}^n \ra \braces{0, 1}$ of the decryption function $D(\cdot, \bf{c})$. +> - Compute and output $\bf{c}' = f(\bf{k}_1, \dots, \bf{k}_n)$. + +The bootstrapping procedure returns an encryption of $m$ under $\bf{s}'$, as shown above. The key idea here is that $\bf{k}_i$ are *fresh* ciphertexts at level $L$. Even though a few levels are consumed during the evaluation of $f$, the resulting ciphertext $\bf{c}'$ is not at level $0$ anymore, allowing us to do more computation. + +> Suppose that the homomorphic evaluation of $f$ requires depth $d$, consuming $d$ levels. Then we say that the BGV scheme is **bootstrappable** if $d < L$. The output ciphertext $\bf{c}'$ will have level $l = L - d > 0$, which we call **remaining level**. + +Thus, we need to set $L$ large enough in the BGV scheme so that it is bootstrappable. But larger $L$ results in larger $q$, reducing the security of the scheme. This is another reason we must use **modulus switching**. Without it, we wouldn't have been able to set $L$ large enough for bootstrapping. + +### Fully Homomorphic Encryption + +Thus, if BGV is bootstrappable, then we can apply bootstrapping on the ciphertext whenever its level reaches $0$. Now we can evaluate *any* circuit of finite depth. + +There is a slight catch here. For every bootstrapping procedure, we need a bootstrapping key. This must be generated by the owner of the original secret. As a result, lots of secret keys are required to homomorphically evaluate a circuit. + +$$ +\bf{s} \ra \bf{s}' \ra \bf{s}'' \ra \cdots +$$ + +Currently, we set $\bf{s}' = \bf{s}$ and make the chain **circular**, so the bootstrapping keys are $E(\bf{s}, s_i)$. $\bf{s}$ is being encrypted by itself. We wonder if this is secure, but there is no known proof for this. This is used as an assumption called the **circular security assumption**. + +Designing an FHE scheme without the circular security assumption is currently an open problem. + +## CKKS Scheme + +The [BGV scheme](../2023-11-23-bgv-scheme/#the-bgv-scheme) operates on $\Z_p$, so it doesn't work on real numbers. **Cheon-Kim-Kim-Song** (CKKS) scheme works on real numbers using approximate computation. + +### Approximate Computation + +Computers use floating point representations for real numbers. + +$$ +2.9979 \times 10^8 +$$ + +Here, $2.9979$ is the **significand**, $10$ is the base and $8$ is the exponent. We also call $10^8$ the **scaling factor**. + +Floating point operations involve **rounding**, but rounding is not easy in homomorphic encryption. Using the BGV scheme on $\Z_p$, there are $2$ methods to do this. + +- Bit-wise Encryption + - $32$-bit integer results in $32$ ciphertexts. + - Binary multiplier circuits can be used for multiplication. + - Rounding is easy if done this way. + - But this is *extremely* inefficient. Huge number of gates are required, consumes a lot of levels. +- Integer Encryption + - To encrypt the significant, use a modulus large enough, such as $p > 2^{32}$. + - For multiplication, use $p > 2^{64}$. + - But rounding is hard in $\Z_p$. + +So our wish is to design an HE scheme that natively supports rounding operation! + +### CKKS Description + +In the LWE problem, error was added for security. This can be exploited, since computing floating points allows some rounding errors. + +> Let $n, q, \sigma$ be parameters for LWE and set a scaling factor $\Delta > 0$. +> +> **Key Generation** +> - A secret key is chosen as $\bf{s} = (s_1, \dots, s_n) \in \braces{0, 1}^n$, with its linearization gadget. +> +> **Encryption**: message $m \in \R$. +> - Randomly sample $\bf{a} = (a_1, \dots, a_n) \la \Z_q^n$ and $e \la D_\sigma$. +> - Compute $b = -\span{\bf{a}, \bf{s}} + \round{\Delta \cdot m} + e \pmod q$. +> - Output ciphertext $\bf{c} = (b, \bf{a}) \in \Z_q^{n+1}$. +> +> **Decryption** +> - Compute $\mu = b + \span{\bf{a}, \bf{s}} \pmod q$. +> - Output $m' = \Delta\inv \cdot \mu \in \R$. + +Note that the decrypted output is $m'$, which is **not equal to $m$**. We have + +$$ +\mu = \round{\Delta \cdot m} + e +$$ + +if $\mu$ is small. (ex. $\abs{\mu} < q/2$) But $m' = \Delta\inv \cdot \mu \neq m$. The traditional *correctness* does not apply here, since $D(\bf{s}, \bf{c}) \neq m$. + +Instead, CKKS is an **approximate encryption**. The exact $m$ is not recovered, but we get an approximation $m'$ with bounded error, + +$$ +\abs{m - m'} \leq \frac{1}{\Delta} (0.5 + \abs{e}). +$$ + +This is okay, since small numerical errors are allowed in floating-point operations. Also, it can be seen from this inequality that $\Delta$ is sort of a *precision*. + +Also, CKKS is secure under the LWE assumption. + +## Operations on Ciphertexts in CKKS + +The overall process is similar to that of BGV, with some additional changes. + +Remember that if $\bf{c} = (b, \bf{a})$ is an encryption of $m \in \R$, then + +$$ +\mu = b + \span{\bf{a}, \bf{s}} \pmod q, \quad \mu \approx \Delta \cdot m. +$$ + +### Addition in CKKS + +> Let $\bf{c} = (b, \bf{a})$ and $\bf{c}' = (b', \bf{a}')$ be encryptions of $m, m' \in \R$. Then, $\bf{c}_\rm{add} = \bf{c} + \bf{c}'$ is an encryption of $m + m'$. + +*Proof*. Decrypt $\bf{c}_\rm{add} = (b + b', \bf{a} + \bf{a}')$. + +$$ +\mu_\rm{add} = \mu + \mu' = (b + b') + \span{\bf{a} + \bf{a}', \bf{s}} \pmod q. +$$ + +If $\abs{\mu + \mu'} < q/2$, then + +$$ +\mu_\rm{add} = \mu + \mu' = \Delta \cdot (m + m'), +$$ + +so the decryption results in $\Delta\inv \cdot (\mu + \mu') \approx m + m'$. + +### Multiplication in CKKS + +We also use [tensor products](../2023-11-23-bgv-scheme/#tensor-product), and their properties. + +> Let $\bf{c} = (b, \bf{a})$ and $\bf{c}' = (b', \bf{a}')$ be encryptions of $m, m' \in \R$. Then, +> +> $$ +> \bf{c}_\rm{mul} = \bf{c} \otimes \bf{c}' = (bb', b\bf{a}' + b' \bf{a}, \bf{a} \otimes \bf{a}') +> $$ +> +> is an encryption of $mm'$ with $(1, \bf{s}, \bf{s} \otimes \bf{s})$. + +*Proof*. It can be checked that + +$$ +\begin{aligned} +\mu_\rm{mul} &= \mu\mu' = (b + \span{\bf{a}, \bf{s}})(b' + \span{\bf{a}', \bf{s}}) \\ +&= bb' + \span{b\bf{a}' + b' \bf{a}, \bf{s}} + \span{\bf{a} \otimes \bf{a}', \bf{s} \otimes \bf{s}'} \pmod q +\end{aligned} +$$ + +if $\abs{\mu\mu'} < q/2$. Then + +$$ +\mu_\rm{mul} = \mu\mu' \approx (\Delta \cdot m) \cdot (\Delta \cdot m') = \Delta^2 \cdot mm'. +$$ + +So $mm' \approx \Delta^{-2} \cdot \mu_\rm{mul}$. + +We have issues with multiplication, as we did in BGV. + +- The dimension of the ciphertext has increased to $n^2$. +- The scaling factor has increased to $\Delta^2$. + - A larger scaling factor means more significant digits to calculate. + +### Dimension Reduction + +The relinearization procedure is almost the same as in [BGV relinearization](../2023-11-23-bgv-scheme/#relinearization). + +For convenience, let $a_{i, j} = a_i a_j'$. + +> **Relinearization Keys**: for $1 \leq i, j \leq n$ and $0 \leq k < \ceil{\log q}$, perform the following. +> - Sample $\bf{u}_{i, j, k} \la \Z_q^{n}$ and ${} e_{i, j, k} \la D_\sigma {}$. +> - Compute ${} v_{i, j, k} = -\span{\bf{u}_{i, j, k}, \bf{s}} + 2^k \cdot s_i s_j + e_{i, j, k} \pmod q {}$. +> - Output ${} \bf{w}_{i, j, k} = (v_{i, j, k}, \bf{u}_{i, j, k}) {}$. +> +> **Linearization**: given $\bf{c}_\rm{mul} = (bb', b\bf{a}' + b' \bf{a}, \bf{a} \otimes \bf{a}')$, $\bf{w}_{i, j, k}$ for $1 \leq i, j \leq n$ and $0 \leq k < \ceil{\log q}$, output the following. +> +> $$ +> \bf{c}_\rm{mul}^\ast = (b_\rm{mul}^\ast, \bf{a}_\rm{mul}^\ast) = (bb', b\bf{a}' + b'\bf{a}) + \sum_{i=1}^n \sum_{j=1}^n \sum_{k=0}^{\ceil{\log q}} a_{i, j}[k] \bf{w}_{i, j, k} \pmod q. +> $$ + +Correctness can be checked. The bounds for summations are omitted for brevity. They range from $1 \leq i, j \leq n$ and $0 \leq k < \ceil{\log q}$. + +$$ +\begin{aligned} +b_\rm{mul}^\ast + \span{\bf{a}_\rm{mul}^\ast, \bf{s}} &= bb' + \sum_{i, j, k} a_{i, j}[k] \cdot v_{i, j, k} + \span{b\bf{a}' + b'\bf{a}, \bf{s}} + \sum_{i, j, k} a_{i, j}[k] \cdot \span{\bf{u}_{i, j, k}, \bf{s}} \\ +&= bb' + \span{b\bf{a}' + b'\bf{a}, \bf{s}} + \sum_{i, j, k} a_{i, j}[k] \cdot \paren{v_{i, j, k} + \span{\bf{u}_{i, j, k}, \bf{s}}} \\ +&= bb' + \span{b\bf{a}' + b'\bf{a}, \bf{s}} + \sum_{i, j, k} a_{i, j}[k] \paren{2^k \cdot s_is_j + e_{i, j, k}} \\ +&= bb' + \span{b\bf{a}' + b'\bf{a}, \bf{s}} + \sum_{i, j} a_{i, j}s_i s_j + \sum_{i, j, k} a_{i, j}[k] \cdot e_{i, j, k} \\ +&= bb' + \span{b\bf{a}' + b'\bf{a}, \bf{s}} + \span{\bf{a} \otimes \bf{a}', \bf{s} \otimes \bf{s}} + e\conj \\ +&= \mu_\rm{mul} + e\conj\pmod q. +\end{aligned} +$$ + +Since + +$$ +e\conj = \sum_{i, j, k} a_{i, j}[k] \cdot e_{i, j, k} \ll q, +$$ + +we have + +$$ +\mu_\rm{mul}^\ast = \mu_\rm{mul} + e\conj \approx \mu\mu' \approx \Delta^2 \cdot mm'. +$$ + +Note that the proof is identical to that of BGV linearization, except for missing constant factor $2$ in the error. + +### Scaling Factor Reduction + +In BGV, we used modulus switching for [noise reduction](../2023-11-23-bgv-scheme/#noise-reduction). It was for reducing the error and preserving the message. We also use modulus switching here, but for a different purpose. The message can have small numerical errors, we just want to reduce the scaling factor. This operation is called **rescaling**. + +Given $\bf{c} = (b, \bf{a}) \in \Z_q^{n+1}$ such that $b + \span{\bf{a}, \bf{s}} = \mu \pmod q$ and $\mu \approx \Delta^2 \cdot m$, we want to generate a new ciphertext of $m' \approx m$ that has a scaling factor reduced to $\Delta$. This can be done by dividing the ciphertext by $\Delta$ and then rounding it appropriately. + +> **Modulus Switching**: let $\bf{c} = (b, \bf{a}) \in \Z_q^{n+1}$ be given. +> +> - Let $q' = \Delta \inv \cdot q$.[^2] +> - Output $\bf{c}' = \round{\Delta\inv \cdot \bf{c}} \in \Z_{q'}^{n+1}$. + +Note that the modulus has been switched to $q'$. Constant multiplication and rounding is done component-wise on $\bf{c}$. + +We check that $\bf{c}'$ has scaling factor $\Delta$. We know that $\mu' = b' + \span{\bf{a}', \bf{s}} \pmod{q'}$. + +Let $k \in \Z$ such that $b + \span{\bf{a}, \bf{s}} = \mu + kq$. By the choice of $b'$ and $\bf{a}'$, we have + +$$ +b' = \Delta\inv \cdot b + \epsilon_0, \quad a_i' = \Delta\inv \cdot a_i + \epsilon_i +$$ + +for some $\epsilon_i$ such that $\abs{\epsilon_i} \leq 0.5$. So we have + +$$ +\begin{aligned} +\mu' &= \Delta\inv \cdot \paren{b + \sum_{i=1}^n a_i s_i} + \epsilon_0 + \sum_{i=1}^n \epsilon_i s_i \\ +&= \Delta\inv \cdot (\mu + kq) + \epsilon \approx \Delta \inv \cdot (\Delta^2 \cdot m) + kq' = \Delta \cdot m \pmod{q'}, +\end{aligned} +$$ + +since $\epsilon = \epsilon_0 + \sum_{i=1}^n \epsilon_i s_i$ is small. + +### Modulus Chain + +Using modulus switching, we can set ${} q_L = \Delta^{L+1} {}$ where $L$ is the maximal level for multiplication. After each multiplication, the modulus is switched to $q_{k-1} = q_k / \Delta$. + +Multiplication increases the scaling factor to $\Delta^2$, and then rescaling operation reduces the scaling factor back to $\Delta$. + +So we have a modulus chain, + +$$ +\Delta^{L+1} \ra \Delta^L \ra \cdots \ra \Delta. +$$ + +When we reach $q_0 = \Delta$, we cannot perform any multiplications, so we apply [bootstrapping](#bootstrapping) here. + +### Multiplication in CKKS (Summary) + +- Set up a modulus chain ${} q_k = \Delta^{k+1} {}$ for $k = 0, \dots, L$. +- Given two ciphertexts $\bf{c} = (b, \bf{a}) \in \Z_{q_k}^{n+1}$ and $\bf{c}' = (b', \bf{a}') \in \Z_{q_k}^{n+1}$ with modulus $q_k$ and **scaling factor** $\Delta$. + +- (**Tensor Product**) $\bf{c}_\rm{mul} = \bf{c} \otimes \bf{c}' \pmod{q_k}$. + - Now we have $n^2$ dimensions and scaling factor $\Delta^2$. +- (**Relinearization**) + - Back to $n$ dimensions and scaling factor $\Delta^2$. +- (**Modulus Switching**; **Rescaling**) + - Modulus is switched to $q_{k-1}$ and scaling factor is back to $\Delta$. + +[^1]: The noise hasn't gone away since we didn't *fully evaluate* the decryption circuit, which takes the remainders from dividing by $q$ and $2$. +[^2]: No rounding...? diff --git a/assets/img/posts/Lecture Notes/Modern Cryptography/mc-09-ss-pke.png b/assets/img/posts/Lecture Notes/Modern Cryptography/mc-09-ss-pke.png new file mode 100644 index 0000000000000000000000000000000000000000..b861b10f1b8568cb7f4604e6d923a08dff1099df GIT binary patch literal 156529 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 CeIUgE literal 0 HcmV?d00001 diff --git a/assets/img/posts/Lecture Notes/Modern Cryptography/mc-10-dsig-security.png b/assets/img/posts/Lecture Notes/Modern Cryptography/mc-10-dsig-security.png new file mode 100644 index 0000000000000000000000000000000000000000..9da2d30e0efae086472219f5e326c928a9e2a4ca GIT binary patch literal 83113 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%0A6F(+F8MGe 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 AApigX literal 0 HcmV?d00001 diff --git a/assets/img/posts/Lecture Notes/Modern Cryptography/mc-12-id-protocol.png b/assets/img/posts/Lecture Notes/Modern Cryptography/mc-12-id-protocol.png new file mode 100644 index 0000000000000000000000000000000000000000..d536b703cca0be12e5470be14295f7cc5bd8e161 GIT binary patch literal 69455 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 H%=P~QIi#yV literal 0 HcmV?d00001 diff --git a/assets/img/posts/Lecture Notes/Modern Cryptography/mc-13-chaum-pedersen.png b/assets/img/posts/Lecture Notes/Modern Cryptography/mc-13-chaum-pedersen.png new file mode 100644 index 0000000000000000000000000000000000000000..d701c829821e471515ca9764f2d94e34cbd422d1 GIT binary patch literal 66823 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 Ir@`s}0}%0(G5`Po literal 0 HcmV?d00001 diff --git a/assets/img/posts/Lecture Notes/Modern Cryptography/mc-13-gq-protocol.png b/assets/img/posts/Lecture Notes/Modern Cryptography/mc-13-gq-protocol.png new file mode 100644 index 0000000000000000000000000000000000000000..2c14209e8ff40dfb6231778dba6544642e3dc0ae GIT binary patch literal 42828 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 av7H4EY@W~EJA#LprM_KDIc=Nqx&H;27@$Z1 literal 0 HcmV?d00001 diff --git a/assets/img/posts/Lecture Notes/Modern Cryptography/mc-13-okamoto.png b/assets/img/posts/Lecture Notes/Modern Cryptography/mc-13-okamoto.png new file mode 100644 index 0000000000000000000000000000000000000000..17a14e412eb80a3b433a5f26cd01f16ff0061129 GIT binary patch literal 69637 zcmeFZWmuG5+XW0rN(rclNJ>a6DKUh!bVx`_cXuNyB1#G<-6bL2B}jL7Ny9Mo07HCx z?x*yAzW4p{{rUd99tSWCGuK>u?{lB$I@em;5M@Pa{G0c0qM)GQ%gRWoqM%^e7$a0dM}?C9kuN2l zBleY6U?n;x_Wm=ne&xmIWQuBwzD^0JTD)z2D7nfty0VxkR+=;ej}}cu@hkM-CrS9E zVWYTWwl&t&M4#Qtd1iCNw(VBW(N{~64U-E6E?b%Cp1ylOKGbxEK2LqDl-Qbd;-CG? zKW_HHW-1|zR^HdBL9MC8SM$3jN(6DQnA;%f<(-e-S5RL)TIqq(NHKjK9z=f&vFhwG zZcRkhd!KYV+wAZjpN8P>s)W>|vvQYLkFkuZpA9~HCCo@^1bI(-^WgRJXWj(*Xycg1 z!CDubgsc?~2YRO_PJ{5wDIC_Us|0ye>Adi~JErZ7V)B8L>7rlm;gsBO3-g?ETzZ}` zB>8oxQ;a->TjOpMMq3G*icG*WDi)bI^bTgIobw^(dZ=yxZ7158Q&B%NpIllIEv|5u zaH@WcI_6s?#F(z=p2iO`*ME?rV=}FUK}g>dFMk%G`gw+0@}cCZWFkpnc}E{QKMm(R zp3y}8>!+()LQkmJW!?%Wv-gLGX|{!snmV?o-`QX65k)r)5^Y9N)f#CwiNJVM2swuA zDGrg~Rg0o=2B18B^tFXZ_JES8zCDn3k5K|Gf{&YBbe;tTBjQ@1jk$<`T5n#5nko`M z`B@_F4>5xJxNhl?clGqI86$|US_MfpC_nOHX=qz<)OEV|yG2kCB-#CkGv#+9`QFw|FSTFiTfXva3jZSI+N)6P`uzc}ur$ z=H(aM*_&3iOQ_X^>cQRB>~<&*95gqA-y*~Y>>^BAe#M%;-H$$5FxzV#QJ#)W>U`vR zZz{#+@KA(O$b{Xfzf)&$fV@XJq^Np zld=V<)-7Q@dxKkEv<7-X^G2)tCgK!JA{Y3=+S&|O;ssjE3r7oA4u!z+~L^_Ax4<{_Bwq%6vb zcQe#~MbNzUO$xya6!r&8vh)}?3F7py_t?@1+~b8GW3Dx0_IHp~->_dKd@XwKJ=#7s znf#j}^B=D4sA?^Ek4ZlVaDK-tz}#+O_MPXft-Xi@5 z224!kH8tIvcY{Q}ZRjNuJ4EJhLQZMLWYCF2=^p0EVA4Lz?8GynRDD+hY_?2Q#MeRt2(H?e< zbjo$jbbeZ4Sz&h)k&HG{*iUOyD}Ch5WX)9Zx$HC6=c@ete6#%I{3rR(#`yECU%>P9 zm7&U)5@YGpDpRBT>P)UUu2{#nkJ*peK1r3OpN*(moR!m;TTPQqKb)54sg2LLFa4>Q zSEuk2!soVH-7SqozGGjtsGyoFt?1e zgbmq^?T!r%JC4bYGL7a9@)wO1g>JswbaHWaiQA$aY{)`*ei?c^{SAD49*dYMsKgBf8T)0+ID%i)VPg|&ve40nxL z&9p|fX3OYwIN7+^CbW{PE(}d=V@xWV^XIo}Dw26RYCCJ&&ja!M+6T-&D8%&P>!h=d z@XojeL0<@t_V=-m6#dx!0I`DEag;9@F7Up7{KNT;g~ZtV83J{zSn)vdPvXHDMaFN8 zON<+SeT%&NP)&-R%F}O!kC89uL5{5=T-x%}P4X8)`HrLH=7Q$Q&TkL#N#o_d_t?Z? z#!VER6roLgDsrFQurr>$Tg_AB>k4;>tDdNJ_tx^r^iublHM8Q%_!|0^R0t;-HMtBD z?&){n1n-6mEFQ;I1-Vzk*~{y?3%l1JO?$eHpk@s>9d1UTKOi`5J~0|FNx9jECXOa|Lno;GHSz0lEXYk>+{Q%%5-Fr>qq^;_Z0f`b*u}t5xWS**l(KwboxhCW1x6zK2FgaEFO?y!oWf zzb2Mxn)#?y_@;zox`q_wV`W$}u`l<#dn6QUM2FmN>N_7N4;_!HWgY95=R2_4I6gI{ z7)DboSUgu(dXS=(bV|eY*iupzF&SxW9@da(6TvEPCqt7(mu;i8NlwabcU)bxZ}&^C zeIeculIHN^X9y;VGXrHxrf`VhrXe#850k6r7OCCsst+@9?XutGw^vI%tvxu-t}b3& z*ae0gzFpL=RXYE0v`!{W#==$0b;;So<^9HH$!lr5V6Z?zo2oRU)ZK(|g>H4H??snF zAB1+8*fcbrkz9#Aah9QyH17ROj)#IaBukT+eJVM4MWNHWbK;%I0h=oMCdY6X+QRD( zufx?yawu6xS#RH|lrKxDw3seSUrb-f{x#w`l3@0w|BGOTF@yD5tafKXxwb-CpZP$_ z91o*Oe}B#Anki?04mW0fl?yxl;rjM7sl)YN*aiJcTs(0Fv1}IU=a`(pQ-HyWIKRAAI@>RVlv4b>#$9Nfr%>q-af2O&3w z31tDq#54Ec@uh<$g(_cRQI&96V*^c18dPR7GFuAP-YQKIzWdb7t6;ghe?N=y5#w6Q zy{FnPrLfPZ>I0h}N0Jnx<9AcYyw{|h<(;>u_R2{6F;WDblU=V?Fj8Yieyeys+z^n}FZkJzhvT4A@ION^5UDkbW1QfA#&+*uKsiu^-kP7Te(%4s$;c zFc9wYKFG4ZQkxz*FlQLZPZ1Om8K;=_J^oous>kt@1L6JrYV@M)Ag1q|xc}Mp*sx$_ z)po_oadW~?`{RXOkM;ASJdRq}5Mma7N%dT0%YXJPQV*RUX z&z=y|2@A7L7f17oC7|U)cFv7GGc1&H6O@fTA1Sh&r`KJ$=}*hLiB6TY9Hl;!x}#Vv zU3<$DUewj#H#geuonjo1b=>vsJjO;rN4<}N0Un`(FJV;je?OK& zeS~u3ujkQFP=YN{(Es@wMeq~(F9Lia-}8^3H=^F5V1eI=!IwuW+P_|n>6d!rUyspz zz~4~B)Wl_F!A~_~CsR{9XA66mGp49<@C1&7jJ7ih%3XTo7pkl(-5$99gr&NciO<*Qwuqnm|I?T zw6w?%`uD$o+^4CB<$pfO&iS9i0t4hg{)OWS`(uuOUmLtt2>GmlvZaTqjkbiPEtoU# z8N$3=yh4Ay{=fe6pHKYlom&5S=M!FD&fnkq+n@ga))&sEPU7~q;4@u>|Fd5IeDm*r z{O22mIFLjCZ7TjT&wo7&CR+HW5XZk4P59>9gikwQ9UoXqD5-;=Aj**cP=&#_NB{VV zd>n%KK69;vf+C6{Dma1aY4Q<=dR0Tl8tlM{+`@%<8K9 zdqPB#Yquq%Kgirr$o@=2%=t!rI8~L~y7GFvF8O+XfFGW`KhHJiEP^=ho-&73Ozh3i zG`PcH`qrzCy|k>@)Bz}H|Km4)eQLtMln4Fn4JjcE7Hr(q9&wSS8KM9$aU zN+^<;<<(9b&Uz>D9ah8Xa%idT3@;hCMZ|4Zt;hH}_o`)UD&_)tCO`a=V(j$m6JPgAS9F#_0`I|Y9ZV|8oAuy*?I5@C zVwm7=gn6>36npg|+E+pMqR)?1Xg}#7nzC2N-L91ac>dTv)ca_8PD%riSIYwsdfEWd z6Oh7979t+p5~XfO>j9Ee7 zsj^it%JK$xf(K8j?=Y)JoF8w?!FT7f7@I+82Ie}xn_<+&hlrN7QE_X!&I`&*|=%%aqBxH}6?23KbT{@q1-b)~FnEw7nh zZwj#xG;B>Q*a* zn_{#cFDT(*(=1A~ptb-vcv5$=s9kOm$!$H(Y9Z&gGf9JgpF5&2fv+bkPTwlXnK9Af z+2GM;>BFi@LA`z|=pW@O5{HDLvp~BnQ#tLKYPG{F!8h(#7iVmr=E={m1ig-Ok6;T1 z(-qdFv3B$Io}6wwT1?8R0exzR6H6^ThE98nVhE)h{2cXruYLC)+q`2C%by!@R=U@v z{SY4wJ2MI_x4HoNC`KS1w$Ihs`iWRmSOWRCEMLTl(*Oi6vprsz(eJc1nm3#wP3S$_ z8Trt3u{lt->*3ZjwNn&G)j1YoL`lTfTXBT5%Pg@>@^a1S+#CC-f^)@m~Ze7 zR#^C^$>Djn8rPbwQ{$B78~IrGhn5g2wx*QEiL=s|J3L`xD1jz8w@zhag;r@Jo}o2e z9E3uTOY9efXM&86HirBvMi%8Jiu9o5f{lXQmzB0NCUdo}oTlBk&(;#`>*uC%S7J2v zBkksDJ!gItS_qpbxyC*aaOpf@81ghZSm`3!ecW_e(%H(<`rt}3NZ9xMsKj1_$8xx> zzfY~v=S;qEy39O$v`A0K4*})l-)|!^9m!TuEzl~F-<-u)f*gOwXV`?p7yJ!gR#>g> zKHnago!%`M&f_NdPt^_7rTy*>)1UhODyZRl!uxdpR|le^UM7|J~8yz`SN%|E|`E~rI%~qvw-WC2jX>M<~alcf78R$;>;&vO4~XhBifBgz)`QM3=89KE4L&X&Rcn0-J>IYe^SVPU z>w)jDT36D7DNE~)F&Ep(?eStq?d(T$BR9x(&O7Q(?hhX(k;j6u&pOyyKKw0@)<}v5 z@zBe~9$D}D!si&Tui#CWm6C^&2F!&oEAk-{Hy~W*{hz&#wP+=cz*haFV@Z}4wg6i4#fPEYQ@ zny&pk_gb)8@5EU8gOPl;B$!WaDSL-cK8+HOX@Pcpv~N3a91dB-FLd87tm-Zs5ZUgoz&|P31d^ zpoD%vET@Ih?*Ak;=p-{wBzkd|e>FMT`$w)KO9)sWSu}LND0HO~?96=8PxpCD`r>)? zkB2D1<=f(@PxteSn4P2r+K!)k5TJU2LC|N0Px?;Y=qH&}^ z>;}2(`G$=ynBHQlG|T5=zazb&nwHE7EP+b8|HgKDgD89>4#|6 zgSnc;`kb$Ryul9JQ;HfvmcAnqe;;v_z)=$Fy=brXH}`2GxC1{PB0e*zwfDoK8I_XX zZ)eWc9EVFT(9eE^Q zpH5BbU(f7091!6EIRnRg_UaOmrJD8pq>vrTcJeD+0Rt6r@Oy7U=imnHmYmgGD|q>&~- zbPKs78l0bfx+N1Y>b4Fa`cP+le$KnR-$4~uw_Dre9$i)R3n#^ED=$3|i((hr!_jnf zB3VluDn!f1!kDQho-~tVJ5zbkF9?%RU!5@U*DKd)VwViPThUr2DPW@mYP1Om!;?wS z`tdpvTr1hxx)X@ls#ENUHy+t0EI%eivqk)>$ErW79)T~(_2l^E#Nu9`%Tx5g+ATe}eEub-;Sd~x(?_%&BA z&yk#ZCUmwEt$&Vs0~1|=)JmH506WHCafZ)fQPf(%ak=e%ej~`DInQI5=RF_W`%1bb zCTxT-Chvto=jy8J_@N@mFu!UW7X3ZULz>eiL+icy;a78baLO0kuttPkf^?l5G+m&d z&rz`$V0zxSLC6BIt#%PNfYIiD-mzN0{ds zx7DbOMuFCn??81riE!ibxQ<&{7}m~-K-U-cQ83yj zGV@MQ_kG>Ew3Fp_+q9h;O(k^V7$zv<^hpw)-?>}Cbzz?TpbBP6ZX;p z90tC}F%(-3qJd}!(5i)LL<>sS54#Uz5MNptR)xwe$va2|ohZn&H$ha<3QInWc#g(p z)*E46RMY-VRbvhQ1mY$U?CMO4Pw8{I6g-?RiR&J{kb_C#^0Y*+&TR@x&TA9V9m9gi z!hzG@^+abD4_$M2e{Ny8J#Aea18UBbty)ZG#_^f)LLEkcDYJF` z&Q=dVeV*Ro$>noilb@<~%%D&$c3Ao`t`|H$g2UuWte|(F+k%?PXHRU>Fj8UXkP5&2 zGxLk*E;1;3+$dk3yx)ixV*l0?%N9)|{%(>wV>}0xc&F=2xU@?vNIBdHtU5)h=}g(^ z_uFwdp<&gfbP|6s1)SIqgnhI=+-9QnGJvvY!#^EuPYhh%KT?AQ$MaY-2n@hLRb&+~ zP}YdmnjK;M<)=K;4SA)}|FnZTK=cQ?Y9TK1F@Pp3*k2rdFKayv9Dm+Xd9l&}pLbS# zx`f^&R6gUJYdV(yLjU|=wI}%beHTz#_xfg!q8w}8VY_2J=*166Bpl_HTWXfxkv|~e zE$BB6n(a%52%5xZ$9>hbCwYwfm3Oe;q*74XckY$JFo>+W{1 zF#>wYUry!!0>DG4N-PM|l%?2$fEQA>bC#=|_S*Oz+4taheK~!-qwqcDP|RaplD>!2 z^xDv{%H&MxKb9H|r`%?0xQ=nyJ0pxj5cBz3Ro_R3rQ0kTyq%U`w2TwFAxaLAN{v`kR?<8blLW@PQbd|GQ$TGH%${*;U*3UtPunZL_- zK7lR3;`;GC*KV`D9JQP-&s#W=@ENMA;KY1<6uwkq+yT_d^IR^c6`A##^<-y#|4Y{n zyjSbUG;7^6TjN}&D~W%*7WFoll3MIx$VoG(L<_OoI&e*W&!68yPta~wZk!$CAGz+% z@@oyJ&P0#xrrt5a`VE<3Q{Q?k8cqqRM=&P#cw?e2>{juw>~W3F=l5X)!O z_C7bvm863<+OQ3KPgz)$9?kB~vlA73 zQR8_!Rdz&i$E$G$UeL#f2PQS4jhOwq;ZmROOX~W$5f^Ed{D_@O6US<@@q+I{$0WVe zF?4z*67>ZN>%OKi|25>H-PD*@e;aaEz*q7ySYxio{xXfT2k3rn&Oh8?5vX&A5q#y1 zO44q~Q3C!5TPpaQ$VAg&5bT@)Vbh5xaT3WqLBfV=!o48hEoD2fZgWL$WOoH0a~jDQ2rVn*87uC%Z9v7 zeP1b$^d<6h8OB@inH?t!-`T~gD4Zpc@@|(6M?niA1}N!~Ww#jhTMW*Am@|CNUGN+Q zGTCG(o+>#bu@KN&ZaI<;nav)sqZDBMis&fxlM<*J+FNRE_{Du|P0?)gq&Cl>$uD*~ zIw@$@a1`Xy^zLlyi6VU+yV}icWFYvTOquIbzQrYV^kV)>CnY0zNMF*q#Q;#L~1brO+q zAGjqLhN^$lP>>&#mkOt31Eup8iSqslqtVYJjnbbs^Y#4s%e@!Rjn=M8I?Aml6z_8A zKN#DOpX_~TGE=;5_FCylix?tr;a3G78K=b2MZywx18uJmgwy-P2GIa&eW@?PjY+#S zvuZ(a=sbp9@8!wvoHd`G7Z5)Iw03uIOX;$3Z;N?I^XHb9YX10|25iH9xnod!&*orT z{i{83Js^cx!{PuoX3I%(i(h!6eHk_8eXd?jHOdRx>@ltZN01KeQPD*9?=twKtLiR} zX&T(&V*IGtQ}21$o#KDRWM+5UUZ-9|QRLDE*~#|#O_iDsgAOA%v|Euf+qzmlS!jx- z419u-*L#lz@xprey!UXWtqw=mkGHr`szwm86)7T@N71>a>38Ab3M1Rnz4uyG?g#>W z_oOv>%D7(`VT0`1(*^WNV3Q@{z2urF)kZ%*gph6Xr$HxPyF;hx!B9v?Zgh@ksO2c? z-|Dp6I}7&=Qi$iaT(%|SvHFa6?{PDNa`QQJx!`bZ)Nd^~K(L*UQaOGiVHv0aYf#R^ z$?jCKpn6#Cz)^3cebc2z?`*Eqgr2)6qO>k5$=hq8G}=)lchy;G!~3olNPeG*Wn4%f zb|V`J;*F7Dg7^QZrudma}S6iz%zc7Ywgr>XC~{Z zAta3FW3NC{FIL6{NxT>am?=(d)X`8e+k2BQ*G~Lo^FVY;0VbYR%a& z7&dhTGw8@wSLKxn(W9tuS@=;UtxHgSU^KFvudktC)avm9lbmHfkgP%qR+6)S$k6Y%eEQvKeD2+}MVVjUyF#(K-1edzHXB%_LW})%+aHB6Gx2*T+%Ga+fkG6!4 z0+6+da*csT&J#o{XhCLK3Kuakrs+z|+3eq|;ON65z6-6;$WDnqPHZL8|nr{%APN?R1hrqU;7R^NrzKH7MbO=jZpws70l6n}<;MSt%V!H*EdqZ~wdlB`1==I9aKXzU zmdH^1;sn4~n;{32MtCwOVsVTF7~%OoT$u?A`}ZHecSEM*LlA3{-dfp5X8M#mq+CtP z*}iGKfY)lb7VnCpPcra3qgOwOKp;s6j$#>arJwniFP|(V%S}5&LG=~e-bP4$t(?KT zT+3=W-}+`N*!%eXe5EprwxxUS#ovZS_i_=?8z;N#vj`K4F0qN?>g5mB8jQ#Vih2G& zj_Kw`kS&~00PftM$d6MH`0I<~>jr@@o{pvJZW@P^HO@KEsin$G0HQ;yeYnCuI)iQK z?K&aU`#_S2su)Mmb!&yfpw7*ZJfQ5ddN)8D|`jd@)E8 zc6ch49h*+sa5z)e&wtXABShr-f-8{6Vdq|p=iyq#aVMafV%JEA9p9D3OM`?7xxtlY zB4K+CNUR6&KE?%+_rAd&MnvN6>!7^S-sR{oIm1K>&UBsocmku|&8_vrevQ*d)kL{` z5x^&|={VXNW3l01BHs8iVCQFb+bYBqG3Uf>u^DRsBn0W;65MiKZ)k@hOESXYSh3$GZjhgkJucQaRCGgsGAyIvR4EL{fZDrm8g=1>r|_t5L51D1ylt z!hf>OqN3{}NYu1I<$BH#e)3M{XgF8pVKF6=gN^+#U`2^+<<#mu9E&fe%FMCY`~fM@ zUsyG7<&9&RD(j8y3JQRrMv%Lju(k^6;tb;Yq z3@s*Mx|ApQrAm623mpxLD*|@B!OJ?}d6l{ORITf`ID_`I5wunEo|C$>Yruy2LB8B& z*WK7HO%XUsfK3h+d0$^$He7;CT?y4{@TyoSX=#+0*)=@-4zkE^iAbhWv^{Mxf!B76 zkJU|RJ8sO|t4a}BI7@37T?SB6K=t^5tRDLX%8ckntf{CmfVt;KGIna2GDI+%2E^XX zr5Yfr|t!p1lH4wYGWz=y!gnJ-Li< zdjTYcA8WUIP7rr_eNG*UeF4Yp0(2R}b>-m@B;92R=dqa_^h7|bD4?&hH3WK-`{9`l z$w%I>`3B!Iyc$Z|I&rgh#os4SlsW{BRL>>ST_g+MDNt;i9=kI;Qs*jvbeS6414;Wf zzzC9DI#Q1kVj0B=yoX!e@Qhmqcv@qaUvy)lDhfimrLQehb98H*csDX2N=Ip@Ks~$v z>m_>sZbrE9!BsV~J-Weovy7+C(}FM;;CQd&L6iWPND^+2^LjsTKvW4cpy>KW>Ggwf z!6J5l8HLpm;JbqgH*;o&?A3ZkC}oD&y>^dM>Na#C_g4-Jo9c?zn_hg=2-7E=g0B9G z%}Ej9j@NldKy$B)_}hs&>-LZ|)$#Vv)p5C?SAg%VXvN)n0t&7~wu`{50e3@D>G1By z<5j^wAb7-0G_R(Wd67Bi0SHc^svB%`uAAY&Pq}9$c`#<31k^1R>Tr$j3qx}x9~#AA z=%x1_$Lsy3Bb}KHPaYWlsB4HMWp+a4mw90$G%=%hn9+bj>eIj z!bV=7Isuezb5S83siQLiBF0z45G1Q8Urg~tEa78akRM-zXC_cqjNW~XW>U-c*bJi* zVK+;r(5|vevYDw=01_;V+3c%4wVbdoX^ZtPC0b7!;xhriYQ%7Ho69DdZQzJGlzF?L zQbdc!8@?L@#E9u+X)gV89?sV45S)lJ3S^J+q!kfDwyX@ON=62h^(v9kIIVI)^{XB6 zKR6g-rc}5T#Ovrgy!>!|fb?+Kf;Kb`5Np7jCBNEHk6;}m1o#_{v}P{qu5KizUZht1NTEb!os+$t1v)O13CxOA8&As-Z6)s zR%eHv(pR14Vj}ASRhk179TF~~RM1e8svO5VZYPYL)O9fa;<^h}lxkoCvG9BL zkqk_9L+aMd`jSY<<^v@3Q>*WQnwBN0zP>_8di!l00PR%{@bu|La(~T*4dr*wL$fD` ztX;T=%Yn#vjdra5r8P#g`kXZ%}MCOMZXq<1rJ7!B>- zd-2xhw@(KktemKm2`M*Z_t8s>-;%Kg-Jqqfm*oRAe(A-yZln}sG-lBJsb%xK z&~`ok1`Vf!d1Qr1*8O_HcOdykq&Ve^D%Jp6{&9}}t5Nd6S$bgfa!;~<87lf5w;rsr z)6YAalLBG)o;(9E`+=*kaisL=Q=sA!@qJ{MnTzbkF`9J zsrT47ssRaP6%?pSNCnUY@46OES^AH@{kahUf8Q9xv5lw9}v_503aE1{0QiLcF^;F zV#Y;I2Vox2hEymL=GvMrPZB7WZ9Bp!kOlK>BO^Q$bo(l%33DgXFSI@qccjlf$-g=E zC-}EyiOBzJX`uAdt+!<4kW1tF((*PMzb4S@Zy?EeWb2&iwAy_DmZ%5lBKKYdftymt zFrz8ye}!}=2o?|E^UdCJC9ujkL=@=N@opKHIX8nIGz;8jx>yY|$pB%FCMVg;YE;{- z3Pj46z8gkkyEYm@twg_j76QvjWqu;}%g9w}Mj&=3(o|9|n8l49n8=ZOc)@Kqt5q&7 z3kWCM0J>?7pS0l?Js%kwPOOHT6~M4F_cx1E!cqu1)o`Al$ zjbLY4HLtqVX5td;Xv?3Q%Dd4)`$r>GBS}4m)b)DVG%2AH)V@gYHBggDkDVFQ41{JEtNSX`xy8^=P44nJ_B`0VGotzMjF13fV~jt1k8dUMM^&}0EAv|T&P z;{X=N8w5uQAHDP+(fr321DqHWNO4g=6x03~_#fR180`+oKyCA%AN;ZSf8;EXH8QaQ zOMX-EEp5cpz}8^G9v}&kXj0SD1OzZT49hagR#=VI!wUWk=a9Pqs=rMVO}IHbRHihsa4Q`>K8@yP>L@9X*a06RDmD|JO|DZ z-^%ZQ^GsBG3@y&Uucq8$2n`?1DD@JUIATS`!2fmPd_YXLb;RiY zuM_tMDK9+b$M`e4|90JdBI-R7Dov+9bL1a+8??XdAU7?o+j6FSms{;v`Ce-ripaiW0E5Au`r(Sl`8Qmj`@ zhSc9e0xUoYSf%%QGXGxh%(!MC7?}V&6w)9DT4w{BUr2Pv_Od(zND%t9E}K#M_}M&v zztRdCSjn12x)F(gEhTkEGe~bM`QM77vgG2P4i`kQ1m3_h z6Z#C;w7*40#1ABXJ6%!!w>glS5{;bC?lWjrx{wr^^IC5t(0~zl%8=z4$=y{VZE{RG ziOW?f9RGd2TIBWMv&vlmzP~lJuwOC&-J5`{QR=Yt%n~$B&72480~`XkXWK$ZR^O4^ zVSjn|>A$b#g}fFlQTgG&uVse@JaCCf;|V7q$2I|kZFU0WE$h!v(l}u8=mtg>)6=~r z)R7XRKXwT+0jVm1?X;B?{bt+(Shq^uVe1A< zV-Z!m&aIFFuu)f+s+Bg{H5Ugx^h(J>ywpci<|$pVY&tu)I0zv}5uaH!*_T{1MbVAe znq8@^RSp1gok+X4Q#Q~|;XX?va&?-aUaSwXsQ8OQ1U9z0Yk(W%0D~KpZThEVhFs&! zSP*fe0#vf!`j9{qI2R&;Rjw0gjxfz|AXrWD`MP$-fr#nmUr+o6mU5HDVWpGkE5y4J z$r2;2s{FtsqMoZPwlz`AF<0jv2P}Fk8|}_>>l-7|t3)z7fk9Y=-Jqc{0WqgqY9c!$ z&ZzNeEMmKi#6nb1To|G0h-)(?5H!zwR{^-0N*2rmoy! zAepnD-`zvf4kBFRX`q8cnqOoZypC7C6*qQQ3l=Q^{|~D`??>T)53A`7@t~ilj~9_M zLrvPN11eUjS>OFSHE(arf7(2SpX&b8=6Tq{Z-P7FOTe$9P7?SOdn3YJU?=0mX9^Hm z_*Q(tBf{Qrq}r9hXaC?iUh*o^#>F@9kzq4k-i0~k8*IpiH0bFWmt0&N4phbsyul&K z1j@+)@Z?OL0RDBZe?0>d;9{48%Tce4VJ7V83t+mU5bL0L@q}gd6J`pM0DZ0@C*MG1UmQkCpMFh1wT#=Wk_d%>g{%q3m@eY zkS(e;PNtqfN6iFegWuEhgBFm9kcifA#(3WpkbQ1n#zZ}N?B{ibfuBaSE`9!FIh3Qj zk8i;y*kNqp7t#%KaWZ3%dRVjg8W-t5njg3d2$}qMZu@tRVPXPRj$TP_ndQzd>M3wq zu!IX8y!WL(0Y0Zm{s7_^J;2ZVz7gLSRDaX0PcDGamYb=x%>uc{?a>3@0078^bt(W4 z6LRu$h_A}^UL8QZGthGfC2!u%gT)}i?o0TB{lr=LdrV)K>LvgqTNJk-?z_4JeG}5b zRI1LthCq>IoUR%j6V74Nh4Vu{su-Y`GVXz~Ouk|UxL!x_4bpM45+%nTd2x0);|UdT z-(>|2Mj4!TZEv7u97Gl`P%J7rdd-}zTI`*+&t6hm7R z}GqOdS2ArHPATCr>O?;*YK@7gd)mJtuJT&fgjXG`1;~7 zRnmU8dguw^u8r5B!vcpM=w+a8T$z7ytWCZ(m!V%fXQsdK^-@4!X|ZYI!Cvde7pMDa zQQ14fMTpN39(BCHFSr{pyb+y_tJ!?5lJqjLo#aiw)Y#UiSew09vv1nm+yeYXGY})a z>unoZK!5Jq`@o_xp|t)Agn+l};DRS$2L_z<$q2avDRMwkoi`f^>Uz@ZDFD>9BxAI5 zHw0)=miWKYEY+7cvM`9Q78o?myOV7Hce;Ouc7DQ)i>ANW@$n4yh0iw$X~xPcX_q+KZ8Wba3jMJ=W z*%K(?m{CV?!)l}y#amd(GRWzB?vexAnn1S_;HLXql~5H0`~PO*8};1R2$b1g+eM2( ziR&cq-I}nki1x8l>eRmlkGur!qNzJW9Yp~9u>NVJ<+9E{8=F*tMLhc8NU$@)7?ec+*c<$Xc-@YI-L z@`N(L5|-f*N}y!6c3IN#rN;jvYQd?8&8@Cd+MBrKLJ1@yjPY#QXoh}JGcTJcXvSTt zso`Sz`Xc;}OSJ&{S*jxvB?>6U+D);bgp2KGT`xis5zIoJx%LI{R zq0QkZ%47P%cD}$txGO4YW;s(ap}(Ez*iJ@7fmn%F@^aOx_b6F-0(P<+vwE)RVu#Y( z{{l4sDx;3y`ao8obh-*OBy6sD_E#Q5ahdmA|5@nQ!s!RHjLj5aB|kl)Ug{UjIDC34 zJUfCij>DK}csLyF!g_^ve{Tru6JTME7l>A706t5MRut%>%;EnGc){Tf+v`lptf4AmcXw0u^GpkC7CN(mwn} z;UPGvffkz(^GTp7oWPo_Yq{}Jn(HaZkoDq6=1qd1nIV2ccQyVNgSTY(0hnZRe{N)u zhV-umYXM7<;$W{hhMx~({P>waaZUAMr^!yp?OcL$jVgkw48nYH;6#`sgkWUk`z!If z2H^1uQ#9*45J7e4Jp2gByo#eeobLU~)qs@&OscNnTty_mN>r7@obw#x8L|BH{YYK7 zY@QY|E>f~;NYMle1FlXqa7}f}6*nol?3RJ0>W4kO^v!6YhQCEq&@3}k$N?B&z6l7I z2nv#}IAAsPFtwidzdAFg3x2Ecs~^VYd9d=`lBWfbcd#*IaK)1^pst-^T!6d;t9UWv z+s88@@tH5=?}Hbmz5?)a**@`z7#svJrCQv0z}^z89GDU=ay99VlDQqC>$3X>u&_@B z-FNYHY(Q?cg}6RS0HDWf^O()X_fZbvkT4Lj>;+k_?>I0Lr#y8ulA!Za%vaA_)*}&^ z5NBpb*5W)5z4kgqF!22%@%&Z)77S7kkzxjg_}i6Uc8_)a?Khf0eta_W1YFbTf{ z%3t6*F?(dOrcObm3D95i9dBnA8#7bS#tL=#bPwLc>kbj8CvWiG_CSV%UiiHX2Dk6o z#UTI1aK;@p5;G@jJ#hoY4dIZJFLAN|U2J5E0NBF20w_}H8zqfE+$V%oX=5R|4bGj@ zvnvFwA=nJ;sq(&O>w!a9vU#QT2i+|C6t0c;-I2PD8i09q#Y!o{yJo_^=-ltsa+PVM z*JH7(EMR${+4mSfkA(xc(Ml1!cZnQ)AiF?=1|fyOZ41qpHlatgO2O@0K6a5;J2hMR z-|ADeaY@u*PtGWDFLz1_U^gV_eSmHo1wz2 zBO%!pe!!)dWe_tPtOtB#p;Hn3ei$oz9H1Un*qvim)orvICt=Al-kHD(htE2PXNd1M z0Pxoj9QkG=-zu&|NMyfv_VGog=)$jkJ9}KO7rrU37g>RW0U6HzmK+$+7et%0O!w6r zw~OkWB55=-L5!CQ4wz=kSx}=PUW1r*xZ0 zH&==dN5fH69PeN^u=FPZ{cuRGctW9?UL!E2#(CXqb!%V}pw+n({jp?Tfe!u6;Vh^h zJ^?Tub?L{Q9|}bMyrj4S4Cx#BA~A|fe~BJKUaDJxDG_gW{v^cyF~PQr=7X!}PpW1T`m$XsxKkzVQmu!KQOy%mue264qvZ!ttG9dsu7;dY7041n^xm%S;V zp|Ky9-!5)AiHCC`Pv!KMi^T9sIL+m#`ex*X_7|&xt_r3LPGz)i&Qujsyj1XaCk0N^ zGXV6ViGt^c`Cxzfwfb5)Ncg*NHiGj|bQVLvAf5+m=R^B1TnYxj7|7Akh?m~-<)d5y zn#g^_qf4X?w;+I&FK2){v#RT{^tK=P94u#`+24R(G)b!N;=#w)FumFHATTzV%5PFG zCy?RN_m&0C9*N9b+rML@%vjMPyo-$>QQ!B=!q`K>OpT~FAd=H0oeCL*_^!!cMMD*D z`wmHxVob*z+1iOp%piBNd7Ur-)6OoGU!*BL+qA*Xtpvy7Fj+JT_TIIVLA=W2vV^}6 zW9d$x;Pze+um)n3W5wOylvu5O@YJCh^J?~*@3rsNjUVcI)w?yo$foA)zcJtlB{~H@ zv#CDd@(zTT83Z%qRa85F-MGezmuBWDY1~!IDg>v4${`iADUyUjdjZa%r!4jY5@&L> zh`%2!v38TQzc}M?qy}PE&X|E21fagDH>dFVMn;&Rv@SSj0EJZno6tg!ns<*d5ROj} zI`$2#G0>tm=Dm!DM|0=fIRveFs6GDIhy}kuRtl>Z#d>^Dq(M`IesR6p@t4iZhLhvf zu(E!Eo*^0)fSw7>!GX-M6SU!`AZ`&hC2ujNt3 zE^sEIDOdu)LU)(>C@{O~JHlE_I+X<(hu5d<=Y|sAE!?)#qwdbn3;aQ|tS_1gXlo{w z94*af0||{uh3hiwuLjcsW>-b7&%)=52+@P^9oMt_`cjZgeKywg`F9@xD#L{FC_qO5 zUCOerDF&bz*)qbf-w?=sw!#HypaI6?>56a__}Bjh01gArY>&ZT9w!mXQ#oPj9Ic0v zUreMtNfLA?h~?g#89A<^DrXlos8D*O+UE7ch6-s3_oN&6O=d0evUr12NI}PQ`y`>IcZVj>@ABS zQi@rZX)f&`v6fimiG!hlSoU*b8K7e~81oPw4^r9+*vx~D>9y%ETf)1iWRDF4qMt0T zQMBFsFJ_WXomvya4}d2MglMO)R{CMg8!xT&=z#5~=XPGcw|0Tni(0F+AgY)pxv(|% zYM|Wi{`cu}OEu;f9A?05wqE`T)O<(Kosw`Y03~FK=G-NvU#XQ?OVqm}PX)kYG)C<2 z$Dqk9@7Qn@_?QYyfTKn+x{&-esTetgy~hH5_fB`gAryD~?eDQIvB2x&waJ}gC>Ctk z!D!`Os}G;X)eLq}^S*Qk+7&wenBm(5MUmsT0m`9`ZE1(XZ2I++pd4D~X7Wa)i6>bt z3QjI#`X&3FTXJ*(3y;m?pEI}2BzyL3gD{OUe+PS|FA2C z%)od<@ur$hF2CA9DyZ0MorS2ZLD64lZvFr(fh)Kx@y!E(lGs8Xf%5*I4xym^`b9rj z*^#RKH0-!IN3o-M!Z&X;V+CZLlh>5z*+-!BiT02AnT9E_lh}w~c!i`33~+XJrUl@E z1bXenT8qH%RqiK%r_3D+bCAg6yuLHh@atG{vGy7^R^VK*Ie_IWy32mQ7Y_ZI(dvz% zxCDJMd*E6W7Y+2WZsp#%*%&Kr`o z7BJ(gt8;#f!PJOgt77?uqo(UC@8+Z33*r0kKa8b2(^yVTXPf|`l2-?UbxsUqbFDuH zj_fU{&(LZZ_I@F5$x>;ZHhv}F;>M#Ap7pLyw_mJUDWaacr#FlwAfEW#O*a+>vAWH{lkzQAr6xQnD*lQ;y$pRc)d%K5&XUXYsR6hB?mdhYxdzR z{RS_6@}o%y4mKo*sqY0{BDVpmC(fOxxNbJzp#lZ@f(B7npE6tL=Rr<$yP{6w3juDq zzs*V%M}+h@L&}28W25%zIJ3V0hrRcX>+x;>$4T}m%80ZyQEAW~6qQmW5-l1Em6oLa zHj+>Z?IM&}6xsu6XiM5drJ<$0>-#*tNz(g%{Qmp?{`h_#kNf^~r`PMcuJbz1<2;V% z@jRY~zpaU&gj3oQCw6eO`(MvJ!bhd{p7L5^RU>m8Av|}Wg^EwF4dP1&bIzYOa|%_@ zdB@C06_mC_hQn}hZRA;juIT0zeQx$yY=#uZ#yB-{p6FiMwxTC2Id=fi^lb!P<<=%n zXf#Y)vYZv@11-&3}zqz{&bpG^$_Kv#`vwem1J^xp8T7U(EZ3JJ5hMu>8zB{dR;$@F~h1`T$vj$Fzf%Ngc+ zUA*tp{$c)W+`F76^8B|d=7>8VbuS(cw)&`W?2>M@@t#h`5j%-bE{4flHNY#{bL`S< z8iAKbQyWUO?Vde7{A#ySeuMK!bo{<-fp-_K&{5_S3g!T^w(MM6(tB^$wMG8h zZirdDvzBrix0eF9?CXf7q-V^+LA#6#0W};2T`$VREa$g)I*aCO3c4@zYe5)DXS!fd zP=1Ec7)sRVSE;`^wzCO+;|t@Z#Kd|Nn>!DWP3)}5`+FH4ZSd@uaO`dWLMqbmtGSk5 z6Fi1%*5K8|>c}|q9C@vjCpBTuo4YA8kp;AL1S4)^f;1QHM!a4eOE2;f>xh+c9PN@z zse7XKXhmT_y5s!!-`(j>D8CfCY^%HWo#svk$HAj?qE-)m`Bl7v-nYL!|G}NpU>^b?-5{c9YEKp-Ha+9n_j^b!qXPsP5wTDB7LkIF`0V>ZGNR%!ey< z$!a;@|Jkl+_vPa1v?cA|+Dlql_I4f?XbbceNzrf2@w51P3nz~Tp%wkH$6Yj;JVp5) z4t~-f>i+6zmi|pYtvq|fN4EMdLfFdX)id*!?{SwC4SKhOl?l*HHDP?R7gRq-o| zhl35}=`xn&AFpT@>w1-JT?wv1LJ}gaYH_768z1*^& zz;a1E7upbyb%tg0J87aUmUr};SfbVXErWsfgH>U?zQdi4fp&EAx; z>(6J!qhEgFd|fW&v%76kv7K}%)s4{g^VsV>rTkqb1wY-5V$t{!tC_}kF!y)Z}Jt|KxSJa6Wjv(V%-(}w7 z`Tgd8WpgW*ZX+L%LXoCU{L`Yfa?9d~5$DYs<(bwYY}*hX9y->@)D@vMCPH_r(Dkcf zH6yPHm^=Tl<-QDRm84Plv@VCb|1AiXoB?iM@u7j6nM&?s|n+CL;_JMOe~R zuG>hpL_^Nu?z`THeIGdl1{tD4|4N}ygkN;up*CYlNSy>zp{u;%8o!6Bxs>UI!EH#< zbh!t(+@&74zFmQm2@CsjtxWEH-amoD{6_BT{=T3&Z^%=@oK(&@t&*qwxu1t#-ENz-*1sYF|F*ND0>S+@f;sBR%`2LhL$3cw63_pC82NILK@i zxg)~PW254xwRd`6m4vi^xs8UQa~ZND$K+xYX}FWhBD2!r^!i+{E@skL@lIK=y)lKf5W{0$pEq|! zQY=mK$pF_SbY9JMdWVDi^*?G$makeLk!8bY*<0HFVD~MH98Id^gdGth{VP6xsoueD zIL;);*nDD0w9VVEB%Mp`p{HJ>?&;e+THl(VTgLNh(-^rvK60=>&ZHAXPBqt)Dht|o zhM5#Q0lZ&!R=mVP`u0O1iz>N2t9qSr2-uZ8(@yw7EPn|+v|sVb#6&_iNR0`l2P zyK3c{B1uQT$nB z(dDF*+!%4?IXT9TZ=~e6j- z)m7-D2-VAKp~}-TvVF?0WNREpo~^!bi}Wq&Tg&+)11=iqg=Pu1cj%~$Q%0xMSf257 z<~n=3g+`}2>)+LpPDozHn!7cLSH>q+IykpzpMQ0-uh>F zsMyCHE$`>}@@>#tF@nWmQv9?ouHzp2V%t=270H&diSUVu`A5!lR-4#$$4x{IFLQnP z#;X13T`3!W0ETosqsFV2Mzn|+Aq*?H3aqz&?0WG_tP*3;`Fzl;9mj^}nnZRK9G#Dx zT#7LCc$3DT-E*@1^z2AUMf%^_R)e<7ORCZ4NA1-~2?Nhr)jF5eWY?mY+I?xD+o7ON zOf66{F{S-=#VM6#1BZepw!4ORwJ!{{q;8%gJ5Yn7SXG1hL>qD?lZ0h^NE(@zlz3>> zcks5v$~WyC>*GG{@ckPP!i}hkzN0#YcXK`Ffy5I5O7Sp_5KXb?B5{*#w$hyh1d|l;`L*=>FIbEm{*fi(e zyPpAEU{evZ=767kRH93(WVY3Is!z6iD^F^>t|&UXcn-Iz$3mfJodribG&cjD?O*ma zet`4X>(K3jB|3BHhADQX8=y>{_b5F0+k>LsA4|D9&*X_C0>n*v`^S=7pFcA_x3qSI z2QN9iYIRFCS8@gs7?=jbv~YNCqL3Os9RYBvdX6_C$xC>*mPFc^CiNYxP?SHvs9feD z_{`NW*2-F}wn%<>Jsr^PlmBYr)+@*CD6{&k7`wHFaXp-RXE79q;P59C5Ab{J# zx?2Sc!b}F%uTq&4lssE_Ksv%son-{jWSLNo@A-L2?khJnj!ndas*%E49+2;Fx?^1G zaR|VWm=-H1fGO==Pt+s(um4!&_)uPj*rqoU^G#=i%W7q%EM${1(z5QpWl`90`1rFg zpLOiUFW8B^i&=dFPAjpIWX|Kcp}c~Fc|-MVx_{?37D3Vx3r3qYisw5Z^ogd@=-u9b zdHIGwQW;Rb|CFj*kdyF9&&u3;WmNc9BiTMKiK+KZteC$4JWD~}y1bM^w7cFh^B@uq zuM_o`_J!Rl8RDwEn`G5-B{0e;()FrLR2)_2v9T60&FjM;RerWx6K-IF=1-;oNl&X* ze(P_aoQ1m-7ZC^tLC3^d;b|AtX+xa`ztGh<}O}UDiYIs^c;?~_GEC_L_w^1 zEi`(2S@y%8G-F<&F()=PXP;KdRmWRWY@0Pth+YUE=}~oJv}ygE3wn7}RhZ>fEf83% z9ryUqz!7WjHeH7xEbzJW@Y{dHtezbk^yGOhHe=;rO-1D*Kzm=ZW<_vuJ0#S;(oD6xSisa-llInz5WC!4CP|zLe^a zj=qRD`6yP30$z^ZDGvE2zmLXLZ}ukj#&$&8of-8g(LOl5<5IHbzEIhPa<0uq(r)t} zygGh0n0H{bCI7L6UH{;5&pF90ox(9oVeDsRw+0KD1?x~9l+bof>S?#7-?xi($6w+0 z%T<~8o(WJbvnY;&jtE~8l;r6JYfh z?=RK!E7!l|P1AGfmGAt%V-y_6&K2nIraAQvRD}BoDErq)Y}@DFlB*XvTR`)!@0a$( zV|yaE@X6G>(Y@Y{E(*hn1CLbM2weE13*bh?=__?2FHTc$!6Jc<`WbKw1M@Gx?AcEt2SDJ+?h6z>7*;~2R zjJ#!ojR6rQ4)(?4K4QqtH`gT@HmZ4(n%H~aAqRpFSKItmfCU-1k}yH9t2>V{eMi5@ zZK5)D`@V#H4*lHFccw4yhdHBUQq31{-&-hWf#%HN1D|qQSq(cF`FfN}+eL2%cUCkx zx(V3xSJc@O_aOD;gdd>xwNSEfZK(y@%izu z$Hh;5e(Farb|%L#)WvG)!}*7;9Ql_9CS?DV!Rt^*&)f97olSZ5$D5z0A~|%w`9cf2 zm%K=gx1YN3ixHG4xDmSR(krsJwk<-B^FCCaH~`Z>4yx6%%Wk$=O3_~W;$613oq`b) zhu2OHMl-Y>o6%=zD1_}fZ4vjRvv+jIyBl>eud%Vhh$r6XpuU@Tg zlcADmFxU%kg@D0hph{~9B(AT7a0E_W#h$fyN{&`9TD7^E{mb7mF12(jxY};@2B(2W z66MIC#p&ksM^v$w+v%mS^4IjT^nH405}Rx)V2iRzwVN2@}ZW3K=hqy zfTTk_X`MY~E=p&MIJa%fE=YM%37hRLRf@WiiheYl>)WXPu04Ir@WGn#Hm3p2{R-<4 zd83Gtrzfcx#1ApRJM*50U;g0BrQs$dlUZh#Iq+Mfz*2xDM~T*oR5+ z{g*yT=i%^ee?vHnu)8ddZ%A z7#`0*P^<%Ru{r+{Oiq^QP#|=RYUe%p)OSqd2sjPKkl|au@j%Rr>E$QFhNJ|co~H7W z!~*>lz7X-W`t~Wyv_vQmiVj0c#-+~E@e5B^g;&t+8S8H@utnb`ZBVD{-*FU>b5XE6 z3T#50MVI>O>7N zBe}o@S)F0t09D2_-Cf}P%fogbASOR*aa4#xMA5kwl99Y8-2aN-5zafKCn)1q?Mypu z(rsiC9=yfi!u!M1;{QMX=l?IhN%|lq__ypttrga7`1LfjH-96EF0^Fdg>qav@u%=a z7d62Ih=>Vf(T>iMLJ92_kTf09Gi_^L$D$uD3mqX3;H}XY<^8-xff(hap}LWFkF%D$ z|0D%?u{2`W#ej_W!^HCWtyFELz0q@E;{u z>26S`S@VOv{xAlY3k#nfiBU$jbn3k1;#HeH(ISaf9>x1$T)ke_UJ>I1S2*{X3XU=Z zX!e|Og6Gf&pJsbe)STbTfyNVJiMIVWuTFiS1*}S-vGRBlDl|lzzD8y9M1TEOU_$tu zTD+?FFQXjJr0YO54oC&Kt^8GXM+s8_^j|5$45sR4E?`v$^UY$6>(3VD%L%C<_#Cwx zv1%^ZUVW~WJ2DaSi3;f+jAki5ocng*hU?pVw1&E~c^`ndR2_yCTN8SGJe^{HI8#qi z!iI0s+)MMvE@R@MK+Jm+e7P)e!0sdce0>#ok|Gk1ByDlPShu0-!mB&9wwY99V^roS zB)c$~&HwYOt>7sXq~@wkF&=`-MoJ?EGntL<;v4ou-DTG6A3uXP)_z07uH=bImTirL zIw4IHvO{|qjf(ibag^IdzFeTO_a;q{zm0~AXut1NrY!!`)z-0X(a)qNJ?ZF!c(-Xs zQ_Ey^s4Uqb;pS$Ij}@H}gg(C8hld+=>{kJT3j~Rlju1M#f19P}F|ssm7xu3Ib7`tc z1JR21xmGwmkEn$!2PHD?O^;H4dWabUG+o;~)^7b^Rw^`oF;b9c|U)$9aqeo`uxt) z9~L4gQUcY4ZEaxTSJDdt@Qhnm!rCzeto=;X@7l(Ro-&>X`UAhp7;ka8uFd{i1II#bTTVIcFNB}BgC;3Mo}yI zZKq0^NWrTiKcq(S-X>6jZh(}%{Y*z?OH9xo+)8REm|T}o80DXfY(NQxMHUjos)t}@ zv`>^ov^xxF*@9o$5RuT)z0IK~SI7bgTSX^{b$Z(?)FIcxIx(0bl_)58o&E+qS2hS} z3rEjxoZ7+WDU8dxMH4~oDJIC&LIK>$3oOR6bEIj{V(|M>BI=lWP7C6IKhzE#AcT7p zHMOFEns9i;GnZpQB~~EYV(rrY<}(tzTrc0tP?0`3^%$jA$HmOQvRVFlu~(GA=e}{Z z)TE?5Qv<$uKJVSVo?*2|syhi3SoGSgrnpJIR;=e1dY0R*($D1 zCyO87stTVdlrBI3I;}-ddd3bmmz%V|Vu;Vrpw$=!6=u@o5Eicukpo8;fAA?U_pka$ z(jkbYu0|2<`PDUiZ%vEt){xF=gkoL@TPw6>k-)qf>6IdlHbmfIB<~NPapqPvd4<{Q zBla}amZdnQJgY%S`t|K%-rjHL+DiGvXak{-kzmBjTopEQWfx9ybgGvfGm+O?`ZJA8nUS!_{xYk(Mm7hsnU zDHCI6alIcE-<#7v(n@$O4&x=V(*aN^t?ovTgW(Cxx=><0HPuA!V!y5Uu;=KX`|ZSn ztMnqO=vOs$J=gQ>Mqci{?dz*_o*v?}g?7PLpezH5C5g6{q&@ZlRKk;8%dIJ-{Nzi2 z`z&Ya9q83$y&3R!szpMpYI!L_EPF5tx)I1%q$&gZd;m)JztX)Hi2Tn~2P3jogloGG z%XJ)aNTD9=DkkzezrM*OjWjAIia^$VsuwoiM7{aD0QwMGK0gaszk|nQoyxmkAHj#^ zXTxl{POo@KF~xJE!=H!3v^LzTy%^)c=rD^8K1`OQF%ebCvG2}Sq^*i3PsFI}1<6zsWx?9{zsOD3O&JQtJC z0&)yscXJ>N4hIE9ljJ)S!zC&D&=80^`feUk`nGhV%#~$&nM%@<2@dFS_=wwfUr^4` z{`F-{i}3CHbZ^l9UaTKqpO^|s!8UtIpt&(_z(3hVDK!yIykk^a1YHB7xu{Ph*CA~L z&#A;?yfyddQ@Y5KX4(t<22+d_iyo(xYEJ({BDL`u3a_eYM%84Owp_k|`_AkTxX~;9 zgWwNsN^;y``C|3YdkLk+`psRXFxB1vdmy_US^z1KACXhQt-Nc+*!_p}6&Ze+q%-95 zS$^8A%S1+X(kx?*Vvji!7E}xN&nuwbvE1zP?Mt=Kj!N%aOiihfv72`1o`U6E?0e=m za5Ts>RTp?E-Qbg_zMTRwF|7| ze*D1#+Q-gmDtGgqnlJzPkzb#+kH z{wDSow1rh)2B4w;EH^UUyH)Z^kk`B1XyfQs;j2g0uYK%Xe3ZfKhF|N)CYzFvJA7L; zuO7u$yg+m)KfY?EPT6>XR%J)9F;#C4FS^tFW$A32Wqgk*r_Rg~i4x7zgAt=TR2 z94uRWU48Pk6wB3y1(;sJ>8&0zdmY!0wWM>wEgBr8IN*0@?(U!K>kl(}P}u7G?+a#< zW(uLiAFYh3I&;Jx9b_7dPr?vyj7nwNp#8vDKqNK+FY3mq$Jw%2FG)#+s79!3el8z9 zp^2(osWG;>#;Y=G`t;{dcC`##+(MO=nPc73lW@|QImenO-E%alI@Vl|)ye%zJ#Z+8 z>j9t_IQHQtS0U={8^zdNX#U+;w>X%(_S^QKWB+N*ljfTST$Qmt!$XBF57h%=x~!WV zkzW7!1D9@G^`_h&NU8jKML%z66{VLz^^qmW-h)?bzeKIcVbR0-nvqe|hZGhp|N_@pLazzH7oA!vaTr3tL zTw*~Wz<@30hI~|{B0TW=89Yh-vy&IGT;m7ushu~q7A>k?#|`L6t0-=Cz(70TlTA|(GmjyjwVUPvI6bk`0=YP4S z$%}B(;#KVMQ>dT(&Ga80Ct>Tonpin&`j<~y80{6}<8$ttPyS~555?Mey7Gxdv!;Lf zucfA3v=e`^*YKn8YTpL{(RS@0K}0><={znS)f^sCjd+Wr)Z zS<}9Ja?82wfP>`?d3vUpwuGhy8f@#pCL;rv3i+3jg0Xk2@BWphvfq!j(P> zDv8vQx-Qb_D~t-vJ!oz}aJ=V9?)?njNm-Tb!f9*t!`fCdZLuHxeil$eJ?i*Zpg|x9 z96J;}*yI=%WJXxe`+h#7JvAU+chVICTGGMU`&$0N7aur60*L&O=4k;0xsIAG8F9l( z8nQ@PO38Q2-L$g|_TS&cf{qZ1@7{+EN5%pD^agkC!@?D)RAzeRYR^+~w5|i-Vn$+% zv7zD)z^-k+0>_o@JMC)Rae=-kkv-prppkNoRN5fM`_YNa)BuJh2f(Tx!z$dDtru-L zkoXU?^queI&6_D-yZrZymAq z+2Qxd_yU4wt5qjQX_(=>M3&RAM(oTfKXsPA=E4nzd4YbpTVC$O_pX2?vI&dNv@iD- zQrIbu+9P*2M=dJ@p?rNz%9sg(^;fRfel$iD^UTW(eBMJ!qi6tViU;c>@3eFHZASXF zb$Vds@L`D4ioS}M#@?oL)k6!250B!+DX>#%&-9RzJlFG1iuZ0r$UXeYaj#o~WG=yI ztIos~2+E{koX2XQSeNnY^=sDUZ@&iA^F4~TbXl)0Aw{d?y)SEx|2C8OBW74ucVGbe zAG|Fck-tC6iCzb*(T7EGRD_mqn86e3hEQIik;*z~3YkIG!+1F(I-~WB6PHPJ3qC15 zjOnf9E59cmfNdE8bvTsULj|j7r36Rt**b=Vk@vigHzL$Fj_aZ&>BcFoCKhRD=?GYY z1=|y?nViH2*1ds)bi$`~EAdo*q6%-DFcshmLgM!XtJ$qGUI{8WI@N0hlffAYb9)5D zM8A%^z0p-_^r$#!V=Ye*Ge0;^%Vw>Gb<4a31CP*ur8w#5e*YltN7;XKP+?<@dB*y# zCpu#r9lxJvl-;*)pI>?QdpR`zTm{k;wxyfZwL4YnQ7MO@jUA&jwHoP7yNY>vUUjegAtQxBVAgLgeMb9nM; zn}x<8Qtb>dPO5s9LhgqkO*VLKS8*ie-KC}O6{ZQ?Jz0vpNwn)RJW4zPvAr}8S;o7M z_sq16sxDA(PG706dBe1*AEIqOkE3GJR4nrHQI-wXZX{X_h~}$L`an13>bqrPn{k^yjwKNPB@(>@hcgt3#UP2{Sa+rTw^ROYI(O7u z0M4a>YgN>cO9Ujo31O=c=`{07^Na_5;O}?HCs$$m6VcM-(@k|&t;ja~f;6xW$aSWm z2!cvs^brf>+r*eU;%*%wD2REzV6<(xVK=OaPG8C>5;ASwy>y1nlBweYUaTyZ z_8y6)S2bW%5)=?#UIy1c4QdJWnC?^gtg~S>07N9A@&1^UonEZxP>ak{HJBu=Hc3vDDy161sc4 zAP&ee+~2+~rqV(Y@NS|~pS>)c$rysJGM(*xGkEQWyCh++yCKKm)^Iftv@H&jQ=yP? z4en|u()DBCYu^~FvisciV3d-yT%{Z(aTt6$MJpQ&X-PxGBGpd|`{K z1_#PuuYAC3hkft0>CMC&5ZM&??swLk^)ty1 zY|qHRR_tLbStWkUSN|P5xbQDx-E;z4^=+le4t9s{L9OLRph{2iCXt>d1P$E#0#5~< z!3;7V&WaFMK!lyvxbGXu$*C zT&4K|kXB(w>k`cm(~8g%!+HdI?=OyMun(O>CB6kXy5FVXK-bLf*o<4t_>6yz;WNxuX8Et?M3ta%q%-BG7G~j@bI^1fU2z z7}c)X9T^pY6KN+9&W}A;KhV6xnNjDHGHMWZBFef75(u|`zH?wDSxsfj*Uj+GlNPWx z^|3bf)9Qe?=mF2ZN~&>`jAdB|0V&PA5iXVa#9Qzt4~B{#&`Wim-SX{0-G`O!hbtpP z@MN51O>IAY`UMD03263aQDDx=HEibhfFK2K5Tft7{x(0`ygrmSE$e`cx}%nOyZPJm zcgx%XJKyGflIg1dBn~QFyDY-?*+!srcI(iWB5WGpZ6=3p{Z$E8wUP(B^-F^&PR8j* z^n8K>eey~%wwp}3G`>V3`$k9IcJqA~M=LR{A^w9A6t9S1c$tsTF->Q@+s6o%+ly(Q z?aImVUM=90dH}XRp0KW+Y)}qZtH{w}&KVZ1auMO%6=Ix>5(gqukA|F(5Aj|-jywr% zQG-1p6M>gbf7&Pa9w!tv{Qa}1o*$|@FRs>J17DQ;NyW=Ji*6U(YUa&2a@Ho}cyDOU zx$Hjuad7l&Q{w0dwhBO8igNHb-z`UXbm=`9twdRD2@ZT3IRu#-%9cgIncrHWVk?%^ z5*Ba_HA1$>69Xv|*I>T4IX7j$3ouKjBOA7!09t+m$9KWbKB(pr)8vf73yf<~n_)Tk z+EP$Sjh@DoPAQsHnAS0HLHwFNBr4RAn0D1gYPAXp_wy zlV%cAbuhH8m4U&o?L{nj=Jl}ftFUP%sHpmlkH(*?MhdU%gdn3|PGzQ8?H216%w}jt zr6p_tlXIAe;&e_=NfqtNmG2>4wn0G|XL@6+WKH-0v9V6Xj$ObeWi9#(kSf%{pen+* zZS1L!EN6f52}#s#UL6LU(wzH^vbNd4c^LZlDr{uUlN!oW`Jh%Jhjl1r#1)HTd(uoWJ#e*~*5D7Y*-`~~a6NY+QMQC3Gk&93;| zDxjObeS?DXI58vum9{DDB7xDgyKoU-E&rOK6)(hJUw%grpWZHrG)I4WxSIPgE!sY= zvvzr(ImQl6>9`g6^9 zTNVYUjlF4JJHqm_`b`v$aca!%g|JOJ+|WmPoFm>5J4Db~Z%MC_hPC|2UF20P ziLP!(r4UJpCI`dl^PrH1Z3-nyQWD#apw`!`74<;Nq8Jl&ylyFDGd)(_6!@`r4CuvN zX1FKnA|vYQi#3~~SVI?D66WZBO-FE`Xh7yU#*YDGeHV)0?t!EClegQ0$^GRgiLc>*?}(yV2F?eaFX_eit4(6r2Wg$g;=}Hl%8MQ!Z#r0QjFA@MtC|O?vC9K~&{8l+|%-D10R$Uoy<7 zq2lW0pY?|6<_y!?tBfsZ@%9n&?!RB>kKbepk#jU)dDmaNVbU@`a4}t7;D2b=tc8&Z zvfI_V_A3h)PyXXyKl~Rs`uh%~MG&WbSQx(cKW>Rca@eHZCcDxQUj4@(afZXmihNO< zDGUDhLk$7=i{#wPXaBmzNjv&V3z&@~@WkXVrvKn#PlIzlhHg34f7}KfN+9gz>xKQ- z{_9SeJk9VIL)$jg&2XasJaKRC2TBxp`WJRP{Wfs%?mfuiY7Aw?XZW{&9}svjKy(`A zt$#U{U-v$inV@hZs{a`V~=2$Qt7oAo0-9X%UOVQmx7v%7io|76r3qnEUTLW}woI`8&7TPNzsn>2 zhyo)2*AOjiA!$Z31`*hiSP$OZd&m)AZH{TQX%L60L#zB%$m_86c?feGVmkn#Lpcxw1!`iaymBTX;#kd# zH%_?@=gQRJ>+J(9}SG!{E$0W%4* z-f^vO${U{LvXS>RG+o|9^MSvfgeFTE#D#kjTXPW#ko4~bT$|O!0vtj`_X{IxVyBqL z%#XRNmI%D#BuIxsei0u+HO^|Mi80|?=Q;ht=_J#KkFLiYp2~V5?J2IvlhkP10#4lc zZALf{*gOMEyaOxt+xH=mVpk44G}_EDWmRoiu{Ltv%(PQ?LPJ0*u#tN(@fT=gQ!;|I z-(?_1hQU=+FDFH|s=#WNDeui$x_aSe&Dbqfjn9OiW9m;j{u4?P)18h}7T;42pR^UE z+wsRIlNU}#wTJ$VY8j_yi9=kt(U2Y%Oqu%qLK-fnVvIZuIDlI0x6!g73VAKhA6dt* zN0fFXj=#kI@};S(V$1d&!IB)bUIq9t4U`>1>0bYzKK3gvWDlDmF06l%!Qc)Wv3*q& zi7wP3!Snrn>x(pW0a=oYAfhndk4H%%j1L1H`Ip)vZ!1K=P>Q7C2et%g z)#p*L$M2`6=1hSZ4z+)p8Z}G5qHacfCyqd(<&YRCq6#~jS|fm$J~)zQQWnLASHDJK z9nX|oupryQPETUWJC(k(d+}zSWO2+(riR3Udq%%dFh}7a1477Jr&rAbw)FFhnL-F!VS6TR>e=ifzT!~4l`)yd!)Mb`se11*0-AGS zWSsiH0nNX~ihq~QrIMsMpVeD`zX2p4!v8Zw*%Ui_9rdqA!#2lG*?*B;@!{03`2Cjg zx?Pe;thy&d?DrxkEC2zOeeJeWYk-iJKKR5v`F%fr$RuI^sNdonlkcG6MJlwG>#uBz zxJ;ug%nVL$pZIk(qd%^>Hweq|xTkHM*spJs_L~bO>J^aE^B}tJ+R(A$FX>_a_0RvV z<3o8|?8>Llle>n>M>$Yu3aBpPDMwFBzw{ zs)d2MedB{&1EpJUZ#k3he?&D(kR_W<@gip$cZ3!#bM~`{9dBRhY-F))XEsQPO1RCr z{BCPGTWhB1n(QTwonu2|`No&Z@^Unio9wh}GU}^)v?OctyGH}-B^i2>JM%d>`>UDh zf02U-0gPHj7qCt@z^*KW&TOo#vX0PC^| zJ?R26l_JIrHlRJmi&KA+1i_p$DFQ5CHTSl?77F(4c)H6S5 zv?5E$pmadk&W6g=B3g=cx5*3rxR=@{aPCI!DOw~aiD=U0a{-O&1KcE1A93hmh<*$7 z#eF=ZC({T3e01jy6W5{Vcf?Uy?CJ<_+)*)zGcPB~8YLX1Ju4NG>({)) z8Sns9$ht?{*2s7j=`!$_a0z^@36yfuvA&t}%B-=xt5d7eDZ1!^VpG4_FLXH!7W!`< z2vedfOSFw{$PFl|H!1q_<>L#CiTxbhUj3Vw{5;5+r=}>$&W4PKp*w;DZl}+ANN^;z zr+;w%b>ly2bZsDAXK43i8U6l!C1*jn3L~A^nWvAskY@UTaufgJ%;V{8ps8bc@=CMa zQK&UNL$Ej$x=ApOGR?`yZYz}gg1 z0sD%Oi_BK_LnBtjw=kCJd!~{bcU=|w>GwQBT`?DYCL0w7*zRVFZ=blbg2ZCl(=-2i zU^FXbF!W?{{(fL_&gaHO?1Wfvd=x+oVfIqJ-c>y9MJ>3m?F>cy_Orj+VVI;TJF1g5 z-MxF4y`qUIKS5AxUS=j8`{Yji@odg13&A;!p}Uvz`zs}vpT&q#vPD%fQd-1*@VUyc z^u6Ez{_jt$qyj-prq3C*L;hz_qMRA*!>APN*@!kE?ziq1T za&E=j(-f*FGe3TLqQ8Dh^}-)*7U8y9^d|xI&kvl|!X9lkOq}+De>kVf|2m|KKVl2N zsQh~)PraR=HV^?Ou6fl}p}+2A>J=3iQ4hXocv-;pKX2U{<`ogpHE;UrOkEUR1^m(N zz*V9bCv9-@hJW8(EP75etOct7d!2B1n<3tw;Z?LF{D0nh2}sPbrs?aZ-o*4PIeLS7n^h^A4 zWB<>nU~Q@YH;u|}5l%2|$B}j+qI54YKl9=A*Zsplzhia^BcsZ!T;elaSbxk80!1E^ z85B-@dbnI(=J?YY&Fbt!H*#W#^}b7E5D;U z&8K|(?%e|PvJ)C+Ds(Ec{kJ~34>Q(RBxx;=&Vv+PfU1;~_1tjNp+ql^Lf&lM7a~hGByydZsA0Fr$3PsB&LqT#sA7d`w4K5 z)Ekgfd!v<05u#f9u!rQ%n*ryjIW3!OqYl?*RE#5R6G$loQbFeht-;;UCdx5Gt6ntG zhbX)QBaG8Wu|qXNQ)K@7Kbp}doy>iCn7|cZ&I`_clm{`!9l@>_*48g?t5Jb8F$n~r zd3h&R$sn5Ix|f~2Cqz;U1%r0`4&g#2f5aJ?pg7RSZ0;*V;6q3jN+BRpPsk(s;Vw@3 zbcWrtvEZowgH(^0F@(RHz~8v(zM6OKvZWudW3V4O=Gtp-pvg8{AYXg~@^(+sa{+@6 z$`_u|^qJUTcB-MWbd;Ofw;a!-C*fLJTAFXLaV_35-@*>6&;fLxocwU{!i7wvb*#d| zr6Qr|iBfQ(n5$&yVz};5d%@HBOM9EEC4ofVG|0ZK@yz|vHx;Jbqnb=lC>;~qBk62F zOR^p}-0CZG^eyGWMT;!Dn>*u>Kd~3dnSF~!nyCn$SCGMf+#!*x&sx|;Kihqw(dQrG zHu7^miJ~!S!olgJ$}~@~N0U1+QMm>ryNyIR=DyR!cpeL0l{bo`nV86`kMVnXBL{`a z4CX|z1}*x&9Von0jA7WP+#OUXjF)vzFlaD;uQzeZRehq9lH4Oy0sXw_CG}(5;#Jgv zeb!Z7zkJyfWSxwJj6dhP{d)BZh>jF?yB=R~NU0WG%BpBmh&%n|pB4@5KYhTUUSQL( z+C9!rFuru20nyz}{BPmxlBXK`L5C3AuY&HdpaBPmDElD`i2eIjCfe?|>SW37E&SRx zI=0}xh>}r+{rbVK*D3Qf`-GnOiJdb#6Eto}^P!Gz>j|~QJ5PCLhmVY%p7HdnB^yWm zC8xWy$6RfPz5^Q2ii=(yucijhOkjyy(316{Y8Wr0%Mh;UlSjGVYQJsO9QkOMr!Rdj zo1TvJlY<-EO1ENduiw^_x6AT5Uvv#&^?l#nZ+uq*pES}csfm|p<8^ht*g+KG+7qwa zg^rv;{Hxe2bcb#S8dHU~--|U6{vFy+ae+*~-!JB9)_WKh*~r--eAT;cMjTW9!O##L zr?FSf-Ky8?k+iVaV*4@{O3CI!F!YpY=h+VT{D%)YqYIOGc7~5E6InJkCw4qTT@LOq zcU&%hVE17vvD~|c*Pb1EvBQdMyZW-F(kE8=7~YkDVknp6fq?`r^$1P>E#Mz^a2k?4k_`=s0>8KTYSA@aF zfB$~E$y${I^iF|*bg>UlHRDuw$jCfE&qU*Xfu(|}U$SKexWRY0#hc)1RDm4BLL~LZ zUV}6KGCDavhE6RXjpH>BpIC;)b(DxV^Qb@lRjBo>tIAZjJh_OPNS*2*ulc(CyNk4y z)yuNlF*IN0eYVaIAhJV|-lByP_Ex-%8Fxp<$b?hUH`P-H4pYX45Qhkj=v~#0BPQt9 zb4rw?<<-{w=luEls-DJ+^VXrmg(H4q_u*v;xp#R|giI@i3(ey!+A3mH1fT4T))5@^ z{U{^gh+#Jh(QP3->doK2m`wQku0bq;Lp_-BvW&!aAN z137r#?tZW!R=svy;@n2{h|Td%^1G?HpUl1)>pDIg7G0$ZJS;Yb+dN`q?4?JuA+*1nK5%yVd_K7ys;1x0=y`1?0M+> zwR7miGHBtRxSh35!0_tA`$KC#s1x^4Q&Wv{#mGSP^_3zD%R$VouzTaC4?Ub9mI@KED_&;r?tfAC@IQaPZRH1`JhUdu+D3EDoFxtw0 zB=*EBCi}lb_lP{SId=-|6+Hi;#P!D_U_e+B66%bsF-!}|1`Y5_qH>4qoM>=_d;mrt zu@Fgb7|#E*Z}(?rQA0A`APMdbp2u8JLzc%lQC3mW^28ntp3DSW@@D9ObxI(r8`-E# z2YubT?k)i7ypvBtni+PYAa@HxMC4KPGJrQa*x5a2tmi$wX=Us_Ah?{v>lgHrQ=C^j z(a13x^5y(B7r{{3i)p!|sRJx`*MSRi3&ox+U|U0aJl(K(GFq1_SDkO4T5&|Fw0V*TxALtapYiM8Dm7PH(hfUF+i z^F%$eFv+X8z`+sTEl8#v@m?av1?HVJ3mV*5FPG88?d1Ak9@p`_Kw}=L{IaYqQ0RbW zl9|%B;CZcr0xGSwlU{6U=$X2bq`gM_R?TKy)XdoP?(JLIfm4Mt0%ze+ymUPr$NJO@ zCA5+U>lS;n-LtE2t4=xsj^2q6C+87~hMc(1cL!2%s1_zU(Ywym5G?iLP+@==g|~+3 zM%+r{3qu}g8c_y*(g^JejWAKi`#z6r^xTYok`F8lm{?GJ~a{5Gf8t8PQ zX0pA;x6jWu5lIzGBfyW_6q`lN&bFlaz{ZEfIH8w=_lPW^@t|soMwRPHkWxZjLU21D z5H;*dBgT%om+B$w#96HpixcM*45U9o#gAIUU@6jaf$@ z#CF)dktrgBM8XEw+pOw+JpopCPN%#R?{GzNO2#0myZqYHsWBAsO>)?;1_*B#o?*p<7&=jN*JpZ~(|%H- z)2eF)@O=FUd#jAV@+-7lb&25|s20&w9XSqUJ8uLC*$q1vwrG1_9-1(}9RuUO2%}rP zK@65dO_Kw{uwF!DHD1J{xbvCFr`eE}P!*iBxnN+>P0X*lx8%&$qK9%G3~u9wNRv)E zMkD&Zi7X+bePh#1_q`x?Gr$o8a^Gty;)U{)PBBI|99B}gN`wziQAFCg>61E^G6O^z zK1b^Cl4Qb3|MSz)#6rWA&||L zM<8$?RkrF=G8 zQ6*O9hA8#(IMNrL!x+BxkQzGGhd|dRQ~yF|hc`DH0dIaC=RC2@Bh_OfZ@t9K@flbR zj;i<4#THO{rUDpLDriFDW?^Q=6c?lJd6WCd=LOACCkOgZ+`yST*YmQ|(yez>J@QIO z%J{;5u7 z5-ob3gmAb*g>Q~5lQjiY0B)g0=RopM<2vLf{C2IQUwNI(53Zu4GrsLm#E)a%yt*mv zFa>gjL}8@~d>3 za4-#3HZ`|OOAieJn%)zZi6#9?gtG8@J|N0%chfz;Zwz_gP0%M4!OPC&hm@BNte!v$ zIRQ%>eVAvA^iQWCRUg?IyKC0$!c!rrxwsqlvDzs43n~x^C{4cL5qTzd_FcmRoxErX z6><@4--R8O%OC~7L-O0o+~4T^)US6AhdG_yefu2gQeV7KcIVD48~|*HoI^*(XHGes zoh1<9lv--jt(*a{_!SRQ-ofq83beZPr#R2lYtN$SCqQt%t%2IiOZ+2{pmv7&P@Miq z$NxXBR!XWc5>2=E{SWX~dKQ6FQWcJ8{*SBas^G2m2deM-Ux4duPJrICID(j`px%=~ z&(A0Pe~a{Mk>*E`)MYbr2BJW+eEISfD_643T|`R&40&WxWO}ZPyI$c9f#cO7YjTpz zl-*}~K^-(mg(MYE>`47cu}MARCU_Rocej7^r=%%(fF?j=flLz%uJ*qS}NnBNo3S( z4LpXZ$9zB($3*G$l+OWQ+cf(>zxFuUQ|Y%3FMoc)d7Li+mZLHa67W3Q_R4b3zo*Bd6uk+X>$Sh~yz{Ay6!85-yFU}2>;Z1yNnF0+ z6guQSB3tcIi*^ufb$ypWaV9t#IBynQr2#?bpkCVfmc7tFDA#+pIbI5 zM|Drtc7GMDNgn%W+Kk`eZFo*GDC?66v{b0rlQr=inHRf%%t(IbIe{>2nhF1j5z zcsJde=`1*e;-Saa@XO0sYW2j#I2lo z0zfv(aqOHeh;|0xJs)ff&31^wg)aYlq3+c;R?ql~NPTlvQ6>}hpv)avw-qavFK32G z?k()y(Jm&JX!KF+1}sMg5jPs+2>Xie-&;_(W8GUm5QA~X8!!%TdHaC#>^VgB5jgL< zbGl6;mfsI?f3H8;1H>rnU(`Eqdm6_Kn|>CB>2i3IRl7EBN3cgUrch2*gmoFxtdKMEMhL42*l^F@qA%}fzQsqRWPVtrS|;@$ zitA%$;AC+U2!RB4OP6jflTxsbL3nFu8;dSCjsrR2`M|GP$b`s1Nr%I5fb593yNsPG zi(`YDHb>mJ1;jv5%BCX_uzH5y0UuD{AE`$MFFbtWU^PaAAPV^Zby4Pj zh`s$XOXqAj2u=3-xs*>g6@=|sN3`7tVnn1w;~dB0X*VC*D`@2P>8{-{Amf9QptSRZ zIQ09q)H#j!FcN{LTL}Sm$z`^Abu5RtzSnd20O{BbsQxQ5>`SCIn;$ro_pPSqaSkJ| z#WB7%N-txX_r)04ea40vgjO`FANf(QZ7xLIiliO)5v@A#@zd&rys|OQ zgNsJbzOx5*O=|qniJ^y$YAv8k)F{;ayzs$l99k#&9eRVuCG$h1c#%V$p`B6ebry0! z9571hix(W)UyDXJqEIXkN{Q@5bD&o}sQcSyGjSim%uSIqZNAN_Y6nG$;u=vx(@Z*7 z+_vYw0}liXZ^iq5OD?s}TS4(+cWuVHM*kZJQyd*|+3R;f2fk>JG3->&n}em0X}Q}- zv9P?QG_0>`pqQ~DzM5nY&O7%}KHaDd!fix`>01)fDKn714nrPf9Cw zHWFH=A&vGC{R45fJz>~xZ}f)=OQN2-S;toYcg9}znJaj zdjXJ9i8Pw`Q}me`rZ6@wRi4QgP|IH=FYr#+B8r2wMpf~zV9#>PkZ%ub?>*pgt7uQ>{AKiw}GDE%9~NiV|c+@IyfvS9GMv))iN zdJf`0Ri%uzoAFyT$oD9tXrvGNG*41z-di+D6LTfg!Zj1l{gvJ{0M&O@5n4B(;5QI(# zMX8-m9wNA)RbsqZF-lvqbM$7$*J3f6*+Y!>(VW?gi-r5S$=EWYm&wx?24IXI=XFmW zR2-SnO={laV6zG&u_gmx_Z?3^npmUVCF`rMoa(ia*1(}-*9GepefAa^6n(TfTdq0K zTIgU$F9(rZR&nu4^Q@VDls0jrD-G9fM}hOYgJN$qA_bnUjfaMJ>zo6Hy#Zq|Pm{}P zM;l%vO(IdK+?*|5H5G^cKka>YAlGgCc0^lCON7dvg-~YGC?iVAtVAfXvqJN3No9nL zWJHOOy_%9u5?PVGBO~iQuI}7@-T6Jg_mB6F_mAg~`+2(E`Hs(ZUFUV4$9bH`!7Re4 zIAmZ^@g>G8d~dh0h6WPFy(`d_qAxHj;k#E{T#U!WAOqFiP|bEhom6Y?bAk`f2a4PR zi3fOlE?SfUN`TpZqS5KiKRd(!)Phs+lR04gzRN`NE?a7rHmv3)Xun z51dSdE^C|c(O$w7>FGE&PzTwNp*G))jomZ?0vEV-Y_wa3<(5elXez#rj?KBnS&#(5 zc5i#D!zV9)LOS>L!4+o9>W1Hx8_M^OA#c4v_$F(;CRI(+uK4xtEHd3{J0nzryir6; z)Rh!8!Bt(S<+-4Wbyg6_>UofT-6tj@``o_YFxOu!Mlh`@F;Pm&C{?Z$=RFj+rCEp7 z5uUgm^*MK&N%I5)0WTE}q*$IPk#Z5A@r3mzlJ4^LGG=PCRcAW2)DSv+hH^^6@=z)E zbl(05!&vT?=P@eQ#<6H6=V5qh-yz5}@~1Ls1KV`2c`ow2=jK*u3Tp2uhvu8gAnHd<0?8IzHb#pqF~_^bGf zDuIVwA4)t>TZg=7M&r!E1L#W>?^<7PNR^Yx4zj!l?z^yL+ky~#XizGRV94q{fm6}& z<~~>FPka2>u~4-zMaZ~j{nZ^{S)WanH@JmeATTf@A^ zc5%#IS=mEyi^(VVT)X+9_#QN{`LRWm6D29QlN5_2zYiVdV?xz(*(x;Fb$3wzD+Ef~ z=Nl20b61Mlu1Sb-UhSU!@QT2~k0=fd>iSPm)d+@RG&ICl5txiuTUo?toP@E-=et(n zFPH=JkPZ6w(2$SCqvB_}aJ8VWC&-Su7`NVc0cKARFmW(ExmKk)3!pR)BH3NiPoA6@ zlF94L^Ta^vOtrfHeq_6=0@kEnl2xQ(8ub=`PrBBm{Msf!Pewei;6{)Y&`#D5?D%%z z%a}RzmZjggq_JAotjLZS3g5!&-q+pYB=> z64V_ckpZJW4D#>ox7K6JdGO)|IC`ZPZRIL@0^gez`jh`!>w!fIPdON-xU$4m*)j)C z%E!I`x_<4NP}a`q3p1{}TLNj~U1#puP=B1Pd#cYnn98yN--xqrQ;XDyu9_`Xw$B5} zM=pBF`OEc>1cQKX*uzA(l+9W^j!lH|0j3S_h?(n_#3AGIva55hNMF8oEf0d~G97`! zvMT~tP`&V%-IybeOSGYlqeeH2v!#=m#E>KsTA=*s;(H^1eOEU*Vb`(-NMConvyl_S za9?N&{ZQ@IZl9H_R&fw`Ik9j%G;kVLSp=HSvYiGp6UE5FmiyDulV6FM#}O=0q*tR9 z4IgX$r=(qz_34=7Cz_D+^C75OVc>xN!b^j<#2dxn{jOcR?&+G^7Lryvq0YGPm}HGU z0rGAWU&P)c#`+3Fl_fIGPzKOsb{Vs1u~G?yoWLQG;?TXHGcY0>2NxL?(U#k(2ufAP z1=~vUmlgCLjTBpEeorEk4@!34XfycMN6o1vP}CxK0i0=VJ{Sz^5CEtpcL%$UT&4%ky}KJpA5uc8lY%B zU(iKDa;wqeh14>OuTG8*T(+-XHPlllDCID)lrEXWx>Z`+Z?_m&&MiH{=0Yt9~e5cw&FbByO)5HNjnJHa)n z`9^jTOMg9ozs!-Zi)PF%>wvHIMax8Q^e~|+NF)N-P3R7Wj9xkW4HMz#F?3rdQUdC# zucUok{MMQlxzRq1v~26KxD$()=X;i|f_XX8&O#S3?4m^Li!|td-vNOCQ(6?_4a}#w z&z08--Kyg`G~;(0R>nos(`n3rJwz&T>!3iyp|Hrnueu*^w&DsC03^KSMF3**weHoS zR|L|+MaATmpXC?;Oli2z{=<6fOGMmUXr}T3 z&9@%RE#s^e8X6FP#4^*faP!2oP>5X7v^3Vk^?1xZXolvZdnfrZ906AdW(SDX$nBYZ0kP^fXkR~-r3q{X;AAg~ zLHeFYHv`X>Rqr{qXePIS>>_N-;SrkB@$412_JxkWT{Hr1H!pt*SVS9MDjPrDnF`61v*9G(%bM zT1Rp%|HzPs^TyVzq8}1}qvFe}E0f8&zG1XZn~nT#hP~LX(;R)OGOo|NEndXie_P8! zD>0h@6N(FYDrJOt?sHO?l=W?(&ZJ)hQ*Y8>!eo7SnsRa6UO;JkwavJ1q-d>)oGIr7 zMG()v@?we3jHHfVZ^*hCPv&awnHe|G)TZhc#$P%odenMKRd(i2JC#UKCZGR)?=k$P zTR}=|YG%T;{`uz10kht{w`k~3)!M0#gug07uvjDdJ$C=;Zvh;GATr0RKjuj&zrz17 zk196we+Q|(JH;q@%GnSOJD2`o-@m!iX3GvkO&!rrofNX|z@>vuvbN&zG;agi6bH{w z$W0klmoj@%T<7)X1bsdIwpDQ2-bVA|*|TS*(BJY!1ig6iqCB`vVd$6Lk+3s+_{_9I zfF!R?D7BWJm!TS_JxbBrP{z(tUhwa-`w3U@_8{cBxTn-o9f{GVqxB~vsaT>}tSKH1wcFi!iN`m?DDzLhl9pwrF+bmT4y zbB=9M5F;n;uY!KGMHN9HrRUF^O|dIG(ILojkAHuUazo6b@}EagCDg+P-qxR?AadSU z+TzN#nb2p7OW+ehFS{b{QB8+7CwNse9Bjb9yH5C`gp}1Oiv)!o1Q9V@uyXO|D2t|f zYi2G_5C{T?>Q0Cq_wNZ7S667ljeR=7 z!7z9F0&b+LiI5xWAoDClZ?*EaPKLulLI9)hEP07!AaD_*C|~8!v@cmhUh4E7h9#6Q zby$~`her_^{svShNltps&~be&Ar0sQ13e8P z;7eZ}B`GeEY1p-x?V63j0aPoHBdkm%+fXHPzHf&Ln;S^_BVB&4@7z+J2SY&i3 z#(P}+Eg|ISiO141ZEWZ%JovZ+n# zR{-eV1mGhiFKz2$or%-f70VeIxY4Y6%k?*CyTz>f@L+e1=`{hJ)DPMcwT%=|i<>Mi zBKniUg=Z-*qU?v%Yww>0*hPl4!q?F$B71sG!@JyM7|($~uMIN~NQ>&6~M$U)m!y9w|`4QH} ziK7=HXQZIG-=%VI({?C5gBI6m0C6%hDA0e{=Rz9L+>>vwZ5#~)JWv?C=a|i>rp%4= zY!n(ntYO+K80g>(|gmKv9=dh^CsueM$S$u%i8}+d-8@Jzpz6N_bq`-Sz zUGO6kPG+aTK0JT^ypyP?xoGFST6EKP!Cb3Ntqe%-ZBjYgsomZDRqgl+5J;w0F8d`m z5TE2$Yr21ag#S3UbBZkscu2*f<@u?@hYzQJBMnSK$HOGTx}MAcL2H*FMAqEC#vGls z&4~3s=O64Koh<dr!hQF}OY8%x zbKx$|hJUQnkAcZ@>yT0U718uFojvM+E;Vt5@7>6>#l#bOUv(qyf5VqsI4RB}%^jrf zvVN!E{+@Wn&CI+E;%t8KYSRp z+tWslzb60OBfJQRFKe z0iUY9*H#M#mR4|6z!0uoU5k+I zL_JO-&vedy#N+!Ffs)2m36Ug3iahWY29oQA$l(x|OVjaj+?mYWKpc2;5Ux$-SnX$+nVAL({e zglhfWh$AvGInhQ3}p?gC==k16odFduy! z$KXnE@-ZXgNd~zGv~Lmo9!X!pFw5C5wRCoe*$)U(j(x?3AdTcLT;M!y*fMLyVVo(9 zSjn5A1#*6AYPA;e-@`Cdh_A%j^b(=e1iv{>BC!vst|NE7x99f)7<2GUW&w@&B%6Z8W6uA%2yX;6cd^<^d$? zs$nhBQ@DzfV>VqknbK|$Fpv0dy5|FkkbJ07H#0~hZ6id~yDvO3E3?Axg}MfJ_bgh9 zEUPyTn@R9O*>o(X-i)e-QO@T^*>UK_eFIs<*Q&s_M9LAlz5dg?qcLDXzXODJD$b=r zfY+zm(b)d!D3eWF>25+=!6juJ$+NpBHIHZa&HeKzt|S(M?NDt~nqJ&>FDI~~rl@j9 z*{o{z?~4HslGVBl^ft z1*jQbS+D{TLJ!y=FYU1`TvQ9BrBYu9a4xYsVjmau;pT5BR`v*1J@lZ*zkn8&d8cYp z4}!O~5kom1M5q8jAv;F%D({l?6a>=Uvt){Qn4i&amsi0%)e0u+Z9)cA$e zQwZQ^wO;^0nP zWV>A=P%M}|y3I3n_}wN^6uc6nqS!w)OXukm=b2nwiv^j|IEvq+c0D`xCVxWu$`Y1A zlQfabt}AKq=r&?H%o{<-caaqDz*XsgxSZscJE$IU!*D-NO>HC?H?cIpYrL*iA1nyY$-x0K{R(^|Zqq({}6 z&RV2z3{n5vpcy%)YPL_Y&i&DQeKtZPEIDoYNg5jaG+WC&gPopJS!A6PPzD2H<ep25`G2nw{XRnJW$?WJDWVQgqU zGO;^2U@iT~s1*=4!VGfn6gnDjEfK{C$Ljg>=UZq63=QR!off}uZDnOw^?Kdh<9|KA z-J7zmdArd?)%D~ zD>L3Um0n8|Fj&}O?eDrG_D(k1)jw_eV8E6Ztp)zz%5fKux(vq(%?PvV04Yb?5}AgS z#$r)$`~^W!H+$Saan3%K?ut5k4_c=i+%If?T`oUdy|_PkF(&SJi$X$KiR{tQDY#g9!Z)WJGC?lu# zfbR0*rVb=C91w5a#NRGtj<9_jDq(nFZK< zd*~h95)mdI`Q`SsNWfPW@g#eoxYT-$IH) z?$=q9m2^YER=`ou$7oczJce%?rCR=>x5-DN-1zXmkNJ;}%Icx$hVPh%#y%S^8t_bC z)JjKMf8FwHABWhDhdU<}?fGGU+Kzv}I88b!o?xdm{l~vv;@1^0BOLLs zUs&2pKI8=NtlufepMUy9BsFvl?^sNK{b_4}YZ_w{!*Dd3_T%XB3p|2`y=kNkn*|3807pR|e0+a0ilbG>+d(DkTvN?5c6x37EvIdds} ztNu6uKbQ9G;d&sgLMWMi5g~w^s6y;*-*sR_J~_;e`$&G?_Bknr=!LzKdf-5Aa~BdL zi?mDBDGuR3i3<(&9@Y&Tb`Xq)aBv_kyPIU7DpKD)ckS8pp1?%_6<5+NYRdOjN5Q-S z8XybSFwP-26dUnu=3W;_QSnneCs!33%rtU?gcp$Sw`DKnI>u#Lpl-{HQeAk+rY))N z+^7-&!3oS|kgw)Ou9ITJ`+XG2?eCYJFzhhb0aw+*_$(FNw)TUF<@YjNnYrGP z!iO~*D?#(=qOkUiD>1gc9?30HFXIMr@O;fUfB)-YHC8AJ z49Gy(%)3+1WLucyj{{G&H3jrC`AGW)1zV+wQ{?6^>&PoT#nVY%dw+%$0MEIF8j|JS z7?ODpI<`R8#E-`eO5o}oc&wo`0XJGj2nCKgT>LexB2O5=pt9Y8c}W)Yk^qw6{;Bl# zdqcRo-l74F&xV#9VH+wS&C9n3$F;Teq~5uau-pkkABKNQk(|^%t#~pP4))Ib(NcHQ{EImt&0!d7B6L_VfzMyq~xOyel;k$`( zaj;to1UD48wUf`Jw@jQVfnN$~@BzS7?q&&+83>XlYg0>-Y`POwe<#*Iv+LjglYN17 zpuZ7YaIDh_GE)P=bk0vlQ19*bIbT+<07#IY?|75HU)w`XX}^)b^B0d;JoJk?$=84H z!{2`bSA+P5l@b9!@JbVKy}meC2lx{wO#mtY-vE2)5NA)CJk9UnbDjtp74o@^ey$_c zfkqd{IH^ONh~`;~y6oKFQG()6@)_Bv4cSFR4iKRUqRyWXLX`U;En)xEEd;2la7mno z(;4KFce{k)WEt;rd*!Hn5P1n+lJC9bE1o;!0Z`-ag?Phz%%t#-4)yquk&Yt-urq*| zL-PnBkfLtA>ixXo0#UyK($@sqUlP)Rch_`6Rj^{N>^NYDkF9N`nIU+hy-vyjq&Roq zy_3KDJcMCe_copbk66JX^FSYw;|Ot42n8-+2~^r1%>NT8obh(;v$vq<9*+J|dCz$b zjV)n%*fjrPmXYR$tAI_oCaYgxh~|32Dgwgg|HK1@+vw{rhOMHm@4%(zQUl9u0IcYztP{&b{#Ui`pBxoO@8?H%t=-e)w zy?{8ZctJ$yUY!;YDbNvjfJ-9)+$4U-Q0r`JU83)1V>#pa@R=*Fb3}-Ojkn-+u)dKt z`tDmwH%lk^%!{#-AvlH*HODum%JI4YCisc$pj}IY@eJ`Nr;*a@Id*o85I*r63tf&BwXme^d=OlU%cr@?HGyn=jFKp3~ z&r4fl{AonaJkE-Qex_g3Ld;zWz*Ntza<-!XFbdRAgz`HAI@{=J(4o3g^FgSbwVnk* zdF*&#EBg$4H+yn*u`Cg8&tGl`?9r2OCWs?ykrB3Y;l3dBm-7(b^7~Pu`JO0*_zFK! zFlfkVjJ!_NXi4v^yyH7)7WL`Md87(f%HAvNGEjUf9KAV3giS)A>>PhMI!avb-sU}H z(>_u)@Foq!K2fXgla9ECI6miD6d38xCuU@ECrdU6w<0+>0L^TEPS=UIIFW*Ww2yM| zv#(=G*_waR)0`qLMA$xKHx$t=J=)OS0A z;a#FCf$`82_{UH)`C_frPzGv9fA)w3-5M+T$xWzr2Svmh0gz!bBg9umVIAU-4^pAL zposy___?ZTC!&WtC+cA?-WZBHS)-H3`CDu@P}#3AH`x?T>MH}cH>ba$X=PaV7>neW z9no#)1(+#$x42yPAXem*%$r5OyTbp(?$}$h5y}C(;xz_fv`3n2n@e8MF-soCkb^;> z3#1_o+af?q@|U4D{pgY8j**9WCjZ1k7$#`3Kl0hGv&RY)p!gUCweQBkyN0%vIIE&s z@39*lJ2`lHPK@=f5EReX=A`Y|vE$BKp`ue*JH8(Is@fCLe>k zU2G26TQhC<+M2O?h;F^7zI@PEUmtQkeC5CqLC*$kv8#C$UY;VIz^G zBAjGGd>CC!OO$Y6r?i?}I&B)5!^+oH(dgJXz8w(?RqLjO1Jgmnzt1tNrrRy)AM$e+ zGo5@d^>=?bkgZNL&fqF6kUw~q$Sm)W-aHwT;dm?4B)?I7Vz*e$Qa{B#DF?IeJvbUZ zXYV`ytJQ)JZ(P0jo}YJqJePO1`RAA zF;>_!rkrItI1ymwAY*DV*i<=MS=4bqNM^92e;kvnRS0a}L#aCg$&4xS>#SBQ`T*QA zc2Y|;q4Wz(g%CJjIQH*aCQ%j#|OF&OJ2qB-ZBGTj*cAfZ>-b(8-C1=0q(TP=2RTEpJmQ@Vd zqcf>wqx`Xau+GJ06t{j?T0xLZ9T_@pO|SSad0$T7nHKq`(aM!8zr=yIdu08D_e;7; z+29+vL_JG6fG08l&jU%o8{K7cFqO=%4X++fl=L32t!C$u@tr#%S zt~1hU>$aB3*mNkC_u7Ua9&=0yp1a4^qElvHyu{6K!O5^Hx4F!%X}o75XK|pfZi(_a zx9jEpKR5g=w-rPi#u#m;=a7YbVwC_T_ZI{;s51vW&lb{F%^7>B+|SymWCrKK^wS7^ z&Xj^csWdgZ2f!-J3MG0ZWiC_i1h|nap*u*%p+gS=&UARfdOhLa1|Dl9yy-waxyWev)#|p087nJ~Yp#wAOes}NCD6TK9`Clx zx?bJ!{1F6Dh$+g3L-CxFugDBJI){9nrpGbtkeT%~1;hcKfV^6?AZ!L;MzwLkj=L@{ z?c(@#!Ax<>$l{loqQspb<-@572Pp#G@dU)=7RDDzGrp}52GwP~rCZ=h@VRgAWn2ya zll-6xapY;v)^K{<1LeqrN@nX&8NSyWg>YwcSC7V?-2#uAM*}V1GI;&q*wUkT!L!YM zum9>cu_kKi+KOnt>)PYtYYPV9O4(QU9j~PGa3bs@H#g&WS8LYFA6k|#3T@&fp;5p8 z!W_B~IFnijIJddVrp!Nim2(=QVrq}Ny{450v+^Vcb$bQPzJE)Eq||;;kRGDrFyhmK z{LVdGC5Sm?(!Xv9&bc~H!EEO?(eBm`V0L*5ihti1o*>LAU)R3&{N!CF(fP-_U_SLA zNUNst!lphqd_F15@8=t8S|Jp64I{0sFmRf%y(?g~t zJ@^Hjj4u%F&$^9f^e(jI`wADta_irVNm+aFi-ZL?ZNCkFu9d>))}GxiygxpFtTTQZ zUYD}Bq;)iTrArAoPnI@~Yp72^96RDkmM#YclVPelSaHR5Z%OkZxz|+g7#j{MK}(W} zxf_yT?%MB@detPmhp_7}N>`ml_<5)#n~gqZ&+h-_yO4Uzs^GV`Mq`9# z+FFoW^l8XfmL4%sFIe&%LTDw`Cii$|>%zON`TT}2$yx`G3Os5wwZ3@4>{ayH&E?4! zg0=ilgC6!nf;I`xC}rA;!V=iYu=>61o~WbGR^0%B(nL6STp2(6idH#4x;7Rp*Vl<~ zbhX;f@%YiB-U#%*3>h&OpR!WHVkkYxq5E`VWq4_STOjF*q?F4ad|Ez!oZct!eKilW zm0--{figFB<*jevF5R~7K<~tTtHNivSGfjkA{+Cg&%|9=yzQNKeV+D_J3j}w$jD$O@b{&Km_$;D@Ru{MvemGM|7_e1}u%;nm_ z1@I*2%nBG69M|~nUu?cJ8X46fjKogZ@m7wDoF1r~KVFb*?J?2wI)iS=Ou#ubW#vUt z@J>~iJTlmB5AC4~C|m1XbHZjq9Y$y~$G+_~g^p@Uxlm@~<{YNuX1f&&uUEIPg*kE8 z%dNCz-hbI(yx73`anL@t47rSb?oR75>z*7a>Rvv$lB*>CksiwBSAA!94ygtc5Iq5@ zNhOY{l3-k;Eok9>dl{PahI4YhIrD5H=8TsF7QAf@T)Xj5Ubo@x;zAM;j)gv!0=0BODAAs^(I)X~n+tdy6wh4GsF0t= zQS`+`YNW-kt>2_{Tx@86u@Y6**@K0bYkL7&Bw>ioSA*|6=8)?4Joa7@eEm>g@_`G@ zrK_5mcDON*hc|}nD;TnJN$Xw<`sCS=^j6p>9^1ik!q#^hHREsiTJ<`$qG_{9;6=_> zbkkfcm=_zI=8_GawXZrMYR6;VJ7x|HF+Sf+i~?-DRp`UYX%=L1b@@MD__ZvG`?MeL zTD^xk``@R4FEf&<_&j`+i|(+^X^a}#=B%?DF2f!B4D*`njSkTUBA+%wi{2)TRkN_L zL;T+B^oq>}3PJ9(y^n0wh)`Z9vpUQ~o##a|8QqFldt*pg#&MwaDEMaIu6Pcra1XBV zjEWA=it#r~&5gNO%0&D*H^qE+4!4ZgtQ#p~aXW_go%*S|c||jHNj=?MHLOm0UD9~; zy6by|UXt@*C1-8)H+#5!R>6UB%%Z#n(gBg&HX3)79_!*l);R6(H2>Mb)m&Bwm77!Y zPfI0fbhOr*khmKocc+rmF%3Yi^a(Hbmc14cKctbhCIS~Vs5_Q1c=z6rgOu!iTjp)n zk8D8GQtEoTmMFA^@xyhP7^nkzd>*3?kF zT{dhf-!9%0{yXx699dOA<4~E5GU_}1nJfk`qQ$_rxm}ITp?jJrcRG<|&Ks>{1k&*g z2JjbOIdBK=aSqy~PbEg`yQCUh|Ez~<_S|7UYK{jh8U{}H*@wLY#Y!ukQ5u}&R#Q4| z_FCA!uXc~$FF_qO^sq|Qf<*HG>r#b2voMu$?}IJeW`xPfy-xr1^UnIvz{a>dfq2YR zt^Rsju`-->RyECktQ(rRdUIqZN{A)drstSY`J@bG-q@gwK42OC8ceVGqkl;EoxL=c zf8P;h>M11O_U19$RcvRt^--t-5An)*F1V$UMvY>6QCro4EQPkR zwcx$=KM?8|<$4~R*;w_Y=iv%-hl$m?XJ5#~sL?6=3cUgF63{`?OvW)r!57MW7S%<@C&?x)h?W#M5RTf(m<5Rof%vV!@^0ByP z-`R0D{g5UdleRbKsskOnx0adQYOex;&kXd-MG-;v%?w$~cg`jHo9fy7wqHk)d09Fv z6Na98jPR<9DpTbTBpE==Bc9jUm0KJ=KgQxvZZ(fysrN%EN9nt7;no(WtTf~=q|8`y z&2XZiHMG5J(V9)!b6pxt_kIzk^H)1l&#>%~5}@qokwu^Wyg6ij7jS(q2NF5n2@?D% zg1^0#8=)|bIlEb0?)(`kQ*w=bqt&+QMge2 z6$|eb7aT`>ThynQ>g3j1srBx23j&jBwLvm`X5RsOTGzb=qUbp6^G1Ccfd|LyAh-SE zp~gxq%+Kj9J_1I+De`kV=Y-AB(o!Ffu%T7r)j2>Tfn|6hVoyVJ4I>#U`(30Yr&Hj5 zqW`LX)DH8Xil~{$t+Vlryys-2B$y2JqUublXUAykr3oB|)|NOd`X}7JtDC(t`e1LU zh4#S9qtVnQCLYP$U7sJ`l5U^9Giv1l0VQ5vI0Ku>Obj3AQLi$%tMmi`YHJ6_>DJlA zS<4nT%zj1YMxY|43K&U zi|DnT^$-zzj?|@2=0>|_TUt^1ih2|9gHaCV2T3F29&2ar;(GMZOa4gLAZnJ2c{bWE zG7DCfvnd@*j+Ga^lfZq4``em%E1>rn6f$}3tn3UCbAUz{o^KwhQJC&eG{{|EW@P9O zJ(;eo$%#bdLuZn)7W?jPdf|=-yJ>a#D99LxJ{8p_cgE#)`k6lMyOM;oPI0j!UHFQl zLv=1$0Z1+@ed6@;sEJanUT%2KC#U{`@pg7v{&=l)6JF^+-?y8d&fS81GPa=$<+@MU-gRYV~UZ=KI;Foy6t$7-}YJJesCm}s^U zn2;zQAq+-QObh!<*gYlpuwIm(47gPZfcZxU{!(O#n02%oTD`{*1ox+Fc?Ky|u4po_ z=c2iG0LS6>xy_O@G=){$siVGxh?tX5u3mDz8!eF`>3e;I7}p-aYI)fVP+1ZeSi#tQA=l@ZyHGC<9B zbm9xR=*A1GI#Cr5Vy56Tyudq2)*>_Brea%u@X&~CpxUgcL9g={7W{~G!60Q9;$Wl@ zwwF^e*vsm7B5Or_*-l64TL40hLKi4<$IBTG#4NWR^G}|*pnIkxh~x>WWZ*2})nbYK znBkJ^{V176zbK|;-r@*8C=rwSBPu8lIPOWsio~bkvK6>+jQ~h4*1>5yjp2qQl#gPF zTjI2U>Wu+g4n@`q1*vjZt@uzff_OE0MCFjS#qO|kq||<#z82`4ePo@$_v~97w>_0s z@-1d{l_i482j#^nx{gz|G^>ZVtA;EWYpBNi@6H2bM2t%>6`|6Pb@_4rVDTzMwv03@ejYOGKf#>W_BHlFrW5j;G<}dQqP}D-X1oz(O4aDWR;= zXy}#rM)02Y*;y|~ulO>2`3fiwctD6#MS0cYnR>o#{IO^Ij+vq(vnCuz@1jDin=BR0 zd-h)SSqsd-dSYaitv8xooIKM=b$!x8GL&jtWgKyd(aREv&V13OT&}VOFCXhBwj3YSTc3g+7&!4+M z3sQQG0!|xZ_b-Hwhv3I_dn+yE?sP2D)g)m=$Ot1PM9huPfOo}ASU4aOIRcLI*P$1c_<2XRzwt$}7EBdjVu-3oaZ;l{X0-*tSfzi46@RzOD3>v;wy!{u{$V6K%= zzjl%e!o0DgJ9f9fS~hqV3z_lUSYr^#((s9_io1>&U1UaR@Ftj66p|4~+$KIS6Rxnn zF-69`1f4$h!z$fV|4y0Hc&v{#ELf|BS@6i(B~zfy9lZbD^vxS7-geqr{(ON*#2$r9 zzT2m8!x@9nSF8=2dHy`gxBT}@$-)HpoZ3;trIb69;%@)>h*|9sKp^Z-J;N&hjwJ9I z2|93(VWzYB&qB##2wUab+Z+G>82`Kq`46ERKnq!EIA?}}?DzNm?_>J!WBTuI^7#Mq d(2cQtu2^#SlZxmDc;U`c*sZ+l=??w#{|Bn_=`{cV literal 0 HcmV?d00001 diff --git a/assets/img/posts/Lecture Notes/Modern Cryptography/mc-13-sigma-protocol.png b/assets/img/posts/Lecture Notes/Modern Cryptography/mc-13-sigma-protocol.png new file mode 100644 index 0000000000000000000000000000000000000000..8d2268628271985667b14135d128f94c593c5ebf GIT binary patch literal 66512 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
oqzBkXq#u>5 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 RYgWO3(kB&8q)F;u`9IIU<46Di literal 0 HcmV?d00001 diff --git a/assets/img/posts/Lecture Notes/Modern Cryptography/mc-16-beaver-triple.png b/assets/img/posts/Lecture Notes/Modern Cryptography/mc-16-beaver-triple.png new file mode 100644 index 0000000000000000000000000000000000000000..049221e36869849dab881b36b737de02969c7def GIT binary patch literal 48413 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