Semantically Secure System
RSA 即使在被動攻擊下也不具備 semantic security,因此自然會希望找到一個真正語意安全,且安全性建立在 factoring-like assumption 上的公鑰系統。歷史上第一個達成這個目標的重要例子,就是 Goldwasser-Micali encryption scheme。
這個系統雖然不適合實務使用,因為它一次只能加密一個 bit,但它在理論上的地位非常重要:它清楚展示了語意安全可以建立在一個明確的數論困難問題上,也就是 QUADRES problem。
Quadratic Residues and Pseudo-squares
令
\[Q_N=\{x^2 \pmod N : x \in (\mathbb Z/N\mathbb Z)^\ast\}\]表示模 $N$ 下的平方集合,也就是 quadratic residues。
再令
\[J_N=\left\{a \in (\mathbb Z/N\mathbb Z)^\ast : \left(\frac{a}{N}\right)=1\right\}\]表示 Jacobi symbol 等於 $+1$ 的元素集合。
則
\[J_N \setminus Q_N\]中的元素稱為 pseudo-squares。它們的 Jacobi symbol 看起來和平方相同,但實際上並不是平方。
若 $N=pq$ 是 RSA-like modulus,則
\[|J_N|=\frac{(p-1)(q-1)}{2}, \qquad |Q_N|=\frac{(p-1)(q-1)}{4}.\]因此,$J_N$ 中大約只有一半元素是真正的平方,另一半則是 pseudo-squares。
QUADRES Problem
也就是說,當我們拿到一個 Jacobi symbol 為 $+1$ 的元素 $x$ 時,目標是判定它究竟是真正的 quadratic residue,還是只是落在 $J_N \setminus Q_N$ 中的 pseudo-square。
對不知道 $N$ 因數分解的人來說,這個判定被認為是困難的,而這也正是 Goldwasser-Micali encryption scheme 安全性的基礎。
Goldwasser-Micali Encryption Scheme
Key Generation
選擇兩個大質數 $p,q$,令
\[N=pq.\]私鑰為 $(p,q)$。
公開金鑰除了包含 $N$ 之外,還要包含一個元素
\[y \in J_N \setminus Q_N.\]也就是說,$y$ 的 Jacobi symbol 為 $+1$,但它不是平方。
可先選取 $y_p \in \mathbb F_p^\ast$ 與 $y_q \in \mathbb F_q^\ast$,使得
\[\left(\frac{y_p}{p}\right)=\left(\frac{y_q}{q}\right)=-1,\]再利用 Chinese Remainder Theorem 組合成模 $N$ 下的元素 $y$。如此可保證 $y \notin Q_N$,但仍滿足
\[\left(\frac{y}{N}\right)=1.\]Encryption
Goldwasser-Micali 一次只加密一個 bit $b \in {0,1}$。
加密方法為:
- 隨機選取 \(x \in (\mathbb Z/N\mathbb Z)^\ast.\)
- 計算 \(c=y^b x^2 \pmod N.\)
因此:
- 若 $b=0$,則 \(c=x^2 \pmod N,\) 此時 $c \in Q_N$。
- 若 $b=1$,則 \(c=yx^2 \pmod N,\) 此時 $c \in J_N \setminus Q_N$。
所以 ciphertext 所承載的 bit,本質上是藏在「平方」與「pseudo-square」這兩類元素之間。
Decryption
因為解密者知道 $p,q$,所以可以判斷一個 ciphertext 是否為 quadratic residue。
密文一定落在 $J_N$ 中,因此只要檢查它是否屬於 $Q_N$ 即可:
- 若 $c \in Q_N$,則明文 bit 為 $0$;
- 若 $c \notin Q_N$,則明文 bit 為 $1$。
具體上,可以計算 Legendre symbol
\[\left(\frac{c}{p}\right).\]- 若結果為 $+1$,則 $c$ 是平方,故 bit 為 $0$;
- 若結果為 $-1$,則 $c$ 不是平方,故 bit 為 $1$。
Security Against Passive Adversaries
這個證明的重點在於:若有人能分辨加密 $0$ 與加密 $1$ 的密文,就代表他其實能分辨一個元素是 quadratic residue 還是 pseudo-square,而這正是 QUADRES problem 的本質。
Insecurity Against Adaptive Adversaries
前面的論證只能說明此系統對被動攻擊安全,並不能推出它對 adaptive chosen-ciphertext attack 也安全。事實上,Goldwasser-Micali 並不具備 CCA2 security。
這個攻擊成立的原因在於:此系統的密文結構具有某種可操作性,攻擊者可以將目標密文轉換成另一個不同但等價的密文,然後利用 oracle 間接取得原密文的解密結果。
Summary
Goldwasser-Micali encryption scheme 是早期最具代表性的 semantically secure public-key encryption scheme 之一。它的核心想法,是利用 quadratic residue 與 pseudo-square 之間的不可區分性來隱藏 bit,並將安全性建立在 QUADRES problem 的困難性上。
在被動攻擊模型下,這個系統具備 polynomial security;但在 adaptive chosen-ciphertext attack 下,它則是不安全的。這也說明了 semantic security 與 CCA2 security 之間仍有明顯差距。
References
- Nigel P. Smart, Cryptography: An Introduction (3rd ed.), Chapter 18. PDF