双线性对在密码学中的应用(下)
导 读
如果关心近年的密码学成果,可以发现双线性对作为一个基础的密码学工具频频出现。双线性对是一种二元映射,它作为密码学算法的构造工具,在各区块链平台中广泛应用,比如零知识证明、聚合签名等技术方案大多基于双线性对构造得来。
本次分为上、下两个篇章讲解双线性对在密码学中的应用。
上篇回顾《双线性对在密码学中的应用(上)》
本文为下篇进阶篇,会从双线性对的性质开始着手,然后分析三方一轮密钥交换和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阶循环群,一个双线性对(双线性映射)
双线性对在密码学中的应用(下)相关推荐
- 通俗地解释下密码学中的归约证明
本文首发于本人的:能否通俗地解释下密码学中的归约证明? - ChainingBlocks的回答 - 知乎 https://www.zhihu.com/question/49441102/answer/ ...
- 密码学中经典算法及应用
一.加密算法理论基础 1.1 背景 密码学相关安全技术在整个信息技术领域的重要地位无需多言.如果没有现代密码学和信息安全的研究成果,人类社会根本无法进入信息时代. 实际上,密码学和安全领域所涉及的知识 ...
- 【密码学】一万字带您走进密码学的世界(下)
引文 密码学是研究编制密码和破译密码的技术科学.研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学:应用于破译密码以获取通信情报的,称为破译学,总称密码学. 在<一万字带您走进密 ...
- des算法密码多长_密码学中的多个DES
des算法密码多长 This is a DES that was susceptible to attacks due to tremendous advances in computer hardw ...
- 密码学加密算法分类_密码学中的国际数据加密算法(IDEA)
密码学加密算法分类 Introduction 介绍 International Data Encryption Algorithm (IDEA) is a type of cryptography a ...
- 密码学电子书_密码学中的电子密码书(ECB)
密码学电子书 This Electronic Code Book (ECB) is cryptography as a mode of operation for a block cipher, wi ...
- ofb模式_密码学中的输出反馈模式(OFB)
ofb模式 This is an output feedback (OFB) mode is similar in structure to that of CFB in Cryptography. ...
- des加密密码补位_密码学中的数据加密标准(DES)
des加密密码补位 This is a Data Encryption Standard that is the asymmetric key generation for the encryptio ...
- 数学在计算机密码学中的运用,数学在密码学中的应用浅析
黄耀 摘要: 密码学作为一门交叉学科,涉及学科广泛,其中应用数学占很大比例,其地位在密码学中也越来越重要,本文简单介绍密码学中涉及数学理论和方法计算的各种算法基本理论及应用,并将密码学的发展史分为现代 ...
- [区块链] 密码学中Hash算法(基础)
在介绍Hash算法之前,先给大家来个数据结构中对hash表(散列表)的简单解释,然后我再逐步深入,讲解一下hash算法. 一.Hash原理--基础篇 1.1 概念 哈希表就是一种以 键-值(key-i ...
最新文章
- iOS开发UI篇—UITabBarController简单介绍
- C#向C++编写的DLL传递字符串参数的办法
- linux学习项目,[ Linux运维学习 ] 路径及实战项目合集
- 异步通信在生活中的例子_聊聊工作中经常遇到的“异步”,你掌握了多少
- 理解好内存管理,C语言就不难学了
- [css] padding会影响到元素的大小,那不想让它影响到元素的宽度应该怎么办?
- [Unity3D]unity3d5.0简单的调用摄像头
- CentOS7 内核参数优化
- python常用代码入门-最全Python算法实现资源汇总!
- div探索系列(二):让多个div显示在一行(浮动的div)
- 5月上海见-国际产学研专家集结第六届全球云计算大会中国站
- ZFAKA-自动发卡收款平台全套搭建教程(含支付接口设置)
- deepin安装过程
- vue 多个filters_Vue filters过滤器的使用方法
- 太实用了!Pytorch快速安装【清华源】 方法,最优国内镜像选择,妥妥的!
- WIN32 opengl三角形绘制
- csv转excel在线工具
- html5判断出生日期,出生时间看五行,出生日期查五行属性?
- 价值 20 万美元的爱马仕包包是用蘑菇做的,你还会买吗?
- java数据字典tag,数据字典