# 其它問題

密碼學領域涉及到的問題還有許多，這裡列出一些還在發展和探討中的相關技術。

## 零知識證明

零知識證明（Zero Knowledge Proof），是這樣的一個過程，證明者在不向驗證者提供任何額外信息的前提下，使驗證者相信某個論斷（Statement）是正確的。

證明過程包括交互式（Interactive）和非交互式（Non-interactive）兩種。

零知識證明的研究始於 Shafi Goldwasser，Silvio Micali 和 Charles Rackoff 在 1985 年提交的論文《The Knowledge Complexity of Interactive Proof-Systems》，其中提出了零知識證明要滿足三個條件：

* 完整性（Completeness）：真實的證明可以讓驗證者成功驗證；
* 可靠性（Soundness）：虛假的證明無法保證通過驗證。但理論上可以存在小概率例外；
* 零知識（Zero-Knowledge）：如果得到證明，無法（或很難）從證明過程中獲知除了所證明信息之外的任何信息。

交互式零知識證明相對容易構造，需要通過證明人和驗證人之間一系列交互完成。一般為驗證人提出一系列問題，證明人如果能都回答正確，則有較大概率確實知道論斷。

例如，證明人 Alice 向驗證人 Bob 證明兩個看起來一樣的圖片有差異，並且自己能識別這個差異。Bob 將兩個圖片在 Alice 無法看到的情況下更換或保持順序，再次讓 Alice 識別是否順序調整。如果 Alice 每次都能正確識別順序是否變化，則 Bob 會以較大概率認可 Alice 的證明。此過程中，Bob 除了知道 Alice 確實能識別差異這個論斷外，自己無法獲知或推理出任何額外信息（包括該差異本身），也無法用 Alice 的證明（例如證明過程的錄像）去向別人證明。注意這個過程中 Alice 如果提前猜測出 Bob 的更換順序，則存在作假的可能性。

非交互式零知識證明則複雜的多，同時被認為具有更廣泛的應用價值，在 Z-cash 等項目中得到應用。目前，進行非交互式零知識證明的主要思路為利用所證明論斷創造一個難題（一般為 NP 完全問題如 SAT，某些情況下需要提前或第三方提供隨機數作為參數），如果證明人確實知道論斷，即可在一定時間內解決該難題，否則很難解答難題。驗證人可以通過答案是否正確來驗證證明人是否知曉論斷。

## 可驗證隨機函數

可驗證隨機函數（Verifiable Random Function，VRF）最早由 Silvio Micali（麻省理工學院）、Michael Rabiny（哈佛大學）、Salil Vadha（麻省理工學院）於 1999 年在論文《Verifiable Random Functions》中提出。

它討論的是一類特殊的偽隨機函數，其結果可以在某些場景下進行驗證。

例如，Alice 擁有公鑰 Pk 和對應私鑰 Sk。Alice 宣稱某可驗證隨機函數 F 和一個輸入 x，並計算 y = F(Sk, x)。Bob 可以使用 Alice 公鑰 Pk，對同樣的 x 和 F 進行驗證，證明其結果確實為 y。注意該過程中，因為 F 的隨機性，任何人都無法預測 y 的值。

可見，VRF 提供了一種讓大家都認可並且可以驗證的隨機序列，可以用於分佈式系統中進行投票的場景。

## 量子密碼學

量子密碼學（Quantum Cryptography）隨著量子計算和量子通信的研究而被受到越來越多的關注，被認為會對已有的密碼學安全機制產生較大的影響。

量子計算的概念最早是物理學家費曼於 1981 年提出，基本原理是利用量子比特可以同時處於多個相干疊加態，理論上可以同時用少量量子比特來表達大量的信息，並同時進行處理，大大提高計算速度。量子計算目前在某些特定領域已經展現出超越經典計算的潛力。如基於量子計算的 Shor 算法（1994 年提出），理論上可以實現遠超經典計算速度的大數因子分解。2016 年 3 月，人類第一次以可擴展的方式，用 Shor 算法完成對數字 15 的質因數分解。

這意味著目前廣泛應用的非對稱加密算法，包括基於大整數分解的 RSA、基於橢圓曲線隨機數的 ECC 等將來都將很容易被破解。當然，現代密碼學體系並不會因為量子計算的出現而崩潰。一方面，量子計算設備離實際可用的通用計算機還有較大距離，密碼學家可以探索更安全的密碼算法。另一方面，很多安全機制尚未發現能加速破解的量子算法那，包括數字簽名（基於 Hash）、格（Lattice）密碼、基於編碼的密碼等。

量子通信則可以提供對密鑰進行安全協商的機制，有望實現無條件安全的“一次性密碼”。量子通信基於量子糾纏效應，兩個發生糾纏的量子可以進行遠距離的實時狀態同步。一旦信道被竊聽，則通信雙方會獲知該情況，丟棄此次傳輸的洩露信息。該性質十分適合進行大量的密鑰分發，如 1984 年提出的 BB84 協議，結合量子通道和公開信道，可以實現安全的密鑰分發。

*注：一次性密碼：最早由香農提出，實現理論上絕對安全的對稱加密。其特點為密鑰真隨機且只使用一次；密鑰長度跟明文一致，加密過程為兩者進行二進制異或操作。*

## 社交工程學

密碼學與安全問題，一直是學術界和工業界都十分關心的重要話題，相關的技術也一直在不斷髮展和完善。然而，**即便存在理論上完美的技術，也不存在完美的系統**。無數例子證實，看起來設計十分完善的系統最後被攻破，並非是因為設計上出現了深層次的漏洞。而問題往往出在事後看來十分淺顯的一些方面。

例如，系統管理員將登陸密碼貼到電腦前；財務人員在電話裡洩露用戶的個人敏感信息；公司職員隨意運行來自不明郵件的附件；不明人員借推銷或調查問卷的名義進入辦公場所竊取信息……

著名計算機黑客和安全顧問 Kevin David Mitnick 曾在 15 歲時成功入侵北美空中防務指揮系統，在其著作《The Art of Deception》中大量揭示了通過社交工程學的手段輕易獲取各種安全信息的案例。
