网络安全协议概述
1.可证明安全性 (Provable security)
可证明安全性是现代密码学中的基本概念和基本工具。如果从理论上能够证明破译该系统的代价(困难性)不低于求解某个已知的数学难题,这就是可证明安全性。
可证明安全性的研究起源于香农的“完善保密性”的概念,即具有该性质的密文不应该透露任何明文的信息。目前,该方向的计算复杂性和形式化方法两种研究都获得了很大进展,已经成为协议和密码方案的理论基础和设计依据。
2.零知识证明(zero knowledge proof)
所谓零知识证明,是指证明者 P 可在未向验证者 V 提供任何有用信息的情况下,使 V 相信某论断正确。
P 向 V 证明并使 V 相信 P 知悉或拥有某一消息 m,但 P 在证明过程中不向 V 泄露关于被证明消息 m 的任何信息。本质上,零知识证明是一种涉及两方或多方的协议,在密码学和认证中获得了广泛应用。
补充:零知识证明的分类
零知识证明分为交互式和非交互式。
交互式指的是示证者需要向所有验证者进行交互,例如前面的意大利数学家的故事。
非交互指的是示证者出示一次证明即可,不需要跟验证者做反复沟通。
补充:零知识证明的应用
零知识证明在1985年提出以后,曾长期处于理论状态。在区块链火热后得到多方面的重视。
例如比特币网络中所有交易以明文方式记录在区块链上,任何人都可以清楚看到每笔交易的细节(包括交易双方的电子钱包地址、金额、交易时间等等),仅对账号进行匿名。但实际上完全可以通过数据分析的方式,追踪某个电子钱包地址得到其全部交易记录构造用户画像,甚至可以与现实对象进行关联。
为了保护用户隐私,如Zcash等数字货币,可以结合零知识证明的协议如ZK-SNARKS 等,在发生交易时自动隐藏发送方、接收方的地址,甚至转账金额。同时又可以证明这些交易是真实发生的。

