教程目的:
本教程旨在为仅有高中数学基础的人提供一个零知识证明(zero-knowledge proof,简称zk)的入门引导。通过本教程,你将能够初步理解零知识证明的概念、原理和应用,并通过Python复现一些基本的零知识证明算法。
教学特色:
- 简洁易懂:本教程采用通俗易懂的语言,结合生动的例子,帮助你快速理解零知识证明的核心思想。
- 实践导向:教程中不仅包含理论知识的讲解,还会通过Python编程实践,让你亲手复现零知识证明的算法,加深对知识的理解和记忆。
- 持续更新:本教程将每周更新1-3讲,内容涵盖零知识证明的基础理论、常见算法以及实际应用等方面,确保你能够系统地学习并掌握零知识证明的相关知识。
- 双语教学:本教程提供中文和英文两个版本,方便不同语言背景的学习者进行学习。
零知识证明是什么:
在密码学中,零知识证明是一种特殊的协议,它允许一方(证明者)向另一方(验证者)证明某个数学命题或事实的真实性,同时确保在证明过程中不泄露任何额外的信息。换句话说,零知识证明允许证明者在不泄露任何秘密的情况下,向验证者证明自己知道某个秘密。
例如,假设你有一个保险箱的密码,你想向别人证明自己知道这个密码,但又不想直接告诉他们密码是什么。零知识证明就是一种可以实现这个目标的协议。通过零知识证明协议,你可以向别人证明自己确实知道密码,而无需直接告诉他们密码的具体内容。
这种协议的安全性基于复杂的数学原理和密码学技术,它确保了在证明过程中不会泄露任何关于密码或其他敏感信息的线索。因此,零知识证明在保护隐私和安全方面具有广泛的应用前景。
在接下来的教程中,我们将详细介绍零知识证明的基本概念、原理和应用,并通过Python编程实践来帮助你更好地理解和掌握这一领域的知识。
教程目录:
第1章 数论入门
第1讲 整数运算基础
第2讲 质数基础
第3讲 欧几里得算法
第4讲 拓展欧几里得算法
第5讲 模运算基础
第6讲 模运算除法
第7讲 费马小定理
第8讲 中国剩余定理
第9讲 欧拉函数
第10讲 欧拉定理
里程碑01 RSA算法
第2章 抽象代数: 群论
第11讲 群
第12讲 子群
第13讲 陪集和拉格朗日定理
第14讲 正规子群和商群
第15讲 同态和同构
第16讲 Abel群
第17讲 循环群
第18讲 群的直积
第19讲 离散对数问题
里程碑02 Diffie-Hellman 密钥交换算法
里程碑03 ElGamal 加密和签名算法
第3章 抽象代数: 环和域
第20讲 环
第21讲 理想和商环
第22讲 环同态和同构
第23讲 域
第24讲 多项式基础
第25讲 多项式环
第26讲 域扩展
第27讲 有限域
第28讲 二次剩余
里程碑04 Goldwasser-Micali (GM) 算法
里程碑05 初探零知识证明
第4章 椭圆曲线
第29讲 椭圆曲线基础
第30讲 有限域上的椭圆曲线
第31讲 椭圆曲线离散对数问题
第32讲 椭圆曲线密码学
第33讲 扩域上的椭圆曲线
第34讲 双线性配对基础
第35讲 挠群和除子
第36讲 Weil 配对
第37讲 Miller 算法
第38讲 Tate 配对
第39讲 扩域上的 Weil 配对
第40讲 常用椭圆曲线
里程碑06 哈希函数 Hash
里程碑07 身份基加密 IBE