赞
踩
导 读
如果关心近年的密码学成果,可以发现双线性对作为一个基础的密码学工具频频出现。双线性对是一种二元映射,它作为密码学算法的构造工具,在各区块链平台中广泛应用,比如零知识证明、聚合签名等技术方案大多基于双线性对构造得来。
本次分为上、下两个篇章讲解双线性对在密码学中的应用。
上篇回顾《双线性对在密码学中的应用(上)》
本文为下篇进阶篇,会从双线性对的性质开始着手,然后分析三方一轮密钥交换和SM9数字签名算法两个例子的原理,最后介绍一些双线性对的优秀代码实现。
双线性对的性质介绍
▲ 性质介绍
在本科阶段的线性代数课程中,读者可能已经学习过线性映射(linear mapping)的概念,但是对双线性映射(bilinear mapping)的概念可能会感到陌生。
我们说一个函数f是线性的是指函数f满足可加性和齐次性,也就是:
可加性:f(a)+f(b)=f(a+b)
齐次性:f(ka)=kf(a)
比如中学就接触的正比例函数就是一个线性映射。
例如对f(x)=3x,有f(1)=3,f(-2)=-6,则:
可加性:f(1)+f(-2)=f(-1)=-3
齐次性:f(-2)=-6=-2f(1)
理解了线性,那么双线性就好理解很多。
和线性函数不同的点在于满足双线性的函数有两个输入,而且对这两个输入分别满足线性。换言之,如果固定其中一个输入使之成为一元函数,则这个一元函数满足线性。
而双线性对就是指群上元素满足双线性映射的三个群,它们的关系满足双线性,下面是定义:
G₁、G₂和G₃是三个n阶循环群,一个双线性对(双线性映射)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。