精华内容
下载资源
问答
  • 双线性对是构建密码体制的重要工具,但双线性对运算是最耗时的运算,直接影响...利用双线性对提出的盲签名方案与己有方案的双线性对运算相比,具有运算量少,计算效率高的特点。同时,方案具有盲性、不可伪造性等安全特性。
  • 双线性配对运算性质

    2020-12-01 09:50:08
    双线性对运算性质: https://www.cnblogs.com/Erma/p/8319817.html

    双线性对运算性质:
    在这里插入图片描述

    https://www.cnblogs.com/Erma/p/8319817.html

    展开全文
  • 不经意传输协议是密码学的基础工具,利用双线对设计不经意传输协议不仅可以扩展双线性对的应用范围,而且可以增加不经意传输的设计方法。因此,采用双线性对设计k-out-of-n的不经意传输协议。该协议能够保护接收者和...
  • 针对当前电子商务对数字签名方案提出的新要求,在改进后的短签名方案的基础上,提出了一种基于双线性对的新型门限签名方案,使得单个签名成员可高效地完成签名。分析表明,方案具有不可冒充性和可审计性,同时可以动态地...
  • 密码学新技术,椭圆曲线、双线性对与群签名的相关课件,
  • 不可否认签名是一种需要签名方参与才能对签名的有效性进行验证的特殊数字...目前双线性对映射已成为构建各种签名方案的重要工具,该文利用双线性对技术,提出了一个新的不可否认数字签名方案,并对其安全性进行了分析 。
  • 提出了一种新的基于双线性对的乐观Mix-net协议。利用双线性对工具简化了密钥管理,在不同的协议会话中服务器端不用重新生成密钥,并且当前会话不会为其他会话提供解密预言机服务。采用了“哑元追踪法”保证混洗过程...
  • 一种不含双线性对的无证书盲签名方案
  • 提出了一种不含双线性对的无证书有序多重签名方案,即结合不含双线对运算的无证书签名和有序多重签名的思想。与一般无证书数字签名体制不同的是,不含双线性对运算的无证书密码体制没有复杂的双线性对运算,且在计算...
  • 双线性对、前向安全数字签名与代理签名相结合,构造了一个基于双线性对的具有前向安全性的代理签名方案。新方案弥补了居上游等人方案的不足,即使某一时刻的代理签名密钥出现泄露,之前的每一时段的代理签名仍然是...
  • 双线性对是G_1和G_2之间到G_T中元素的双线性非简并映射。 用户可以通过配对库构建复杂的基于配对的软件,而无需对椭圆曲线或配对或数论有足够的了解。 该库小于57 KB,适用于手持设备。 该大小仅为BPC库大小的3.7%...
  • 基于双线性对的数字签名

    千次阅读 2018-10-22 14:13:07
    双线性对 数字签名 具体实现

    双线性对

    你好! 这是你第一次使用 **Markdown编辑器** 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。

    数字签名

    我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

    具体实现

    在这里插入图片描述

    展开全文
  • 基于椭圆曲线上的双线性对,构造了一种非交互式,简单且有效的公开可验证秘密共享(PVSS),这具有Schoenmakers的PVSS的所有优点[15]。 此外,在计划的股份分配阶段,仅使用双线性配对的双线性,任何人都可以验证...
  • 密码学系列 - 双线性对

    千次阅读 2021-02-02 10:55:30
    双线性对是一种二元映射,它作为密码学算法的构造工具,在各区块链平台中广泛应用,比如零知识证明、聚合签名等技术方案大多基于双线性对构造得来。 线性映射 一个函数f是线性的是指函数f满足可加性和齐次性,也就是...

    双线性对是一种二元映射,它作为密码学算法的构造工具,在各区块链平台中广泛应用,比如零知识证明、聚合签名等技术方案大多基于双线性对构造得来。

    线性映射

    一个函数f是线性的是指函数f满足可加性和齐次性,也就是:

    可加性:f(a)+f(b)=f(a+b)

    齐次性:f(ka)=kf(a)

    双线性映射

    和线性函数不同的点在于满足双线性的函数有两个输入,而且对这两个输入分别满足线性。

    一个映射e,能将G₁和G₂中的两个元素映射为G₃中的一个元素,并且该映射满足双线性。

    设g₁, g₂分别是群G₁和G₂的元素,𝑒是G₁×G₂→G₃的双线性映射,那么有:

    𝑒(ag₁, bg₂) = ab 𝑒(g₁ , g₂) = 𝑒(abg₁ , g₂) = 𝑒(g₁ , abg₂)

    𝑒(ag₁, bg₂) + 𝑒(cg₁, dg₂) = (ab+cd) 𝑒(g₁, g₂)

    双线性使得变量前面的系数可以灵活转化

    基于双线性对的密码算法

    三方一轮密钥协商

    三方一轮密钥协商是一种可以在一轮交互内完成三方的密钥协商的密钥协商协议,效率高于DH密钥协商。传统的DH密钥协商可以完成两两之间的密钥协商。虽然能够通过两两之间多轮协商完成三方之间的密钥协商,但是增加了通信复杂度。

    国密SM9算法

    基于身份的密码体制(IBE)是公钥密码学的一个研究方向,其特点是直接用标识用户身份的字符串作为公钥。大家熟悉的国密SM9算法就属于该类算法,这是目前国产密码算法中唯一一个基于双线性对的密码算法。

    SM9标识密码算法包括数字签名算法、密钥协商算法、加解密算法三部分。不同于传统签名算法的由用户随机选择私钥然后计算得到公钥的方式,SM9能够实现用户指定公钥,密钥生成中心通过公钥计算私钥。

    这样可以将一些有意义的字符串,例如身份证号码、邮箱地址等作为用户公钥,从而能在公钥中直接反应出用户信息,这也是标识密码(IBC)的含义。这样可以将一些有意义的字符串,例如身份证号码、邮箱地址等作为用户公钥,从而能在公钥中直接反应出用户信息,这也是标识密码(IBC)的含义。

    和一般签名验签不同的地方在于,密钥生成分为主密钥生成和用户密钥生成两部分,主私钥由密钥生成中心(KGC)保管。

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    BLS签名算法

    BLS签名是Boneh、Lynn和Shacham三人基于双线性映射构造的短签名方案,其特性之一就是能用于构造聚合签名。

    可以有效缩减PBFT类共识在区块头中存放的签名体积, 聚合签名只占 32 字节, 可以在区块中放更多笔的交易。

    MOV攻击

    又称MOV规约攻击,是Menezes、Okamoto和Vanstone三人的论文中提出的针对特殊椭圆曲线离散对数问题(ECDLP)的一种有效解法。通过双线性配对,将椭圆曲线上的离散对数问题规约成为某个乘法群上的离散对数问题,能够在亚指数步骤中计算ECDLP。

    MOV攻击并非能作用于全部的椭圆曲线,而是只能对参数满足一定条件的曲线进行攻击。这促使人们在选择椭圆曲线参数时更加谨慎,更加注重抗MOV攻击。

    例如国标《SM2椭圆曲线公钥密码算法》就充分重视了受到MOV攻击的可能性,不仅在第一部分《总则》中用附录A的部分篇幅介绍验证曲线参抗MOV攻击的方法,而且也在第五部分《参数定义》中给出了安全曲线的推荐参数。

    缺点: 计算开销较大

    配对函数并不那么高效, 验签时间相对于传统的ECDSA签名上升了两个数量级。

    BLS 签名验证的复杂度要比 ECDSA 高上一个数量级。在验证区块中 1000 笔交易的聚合签名时,仍需要进行 1000 次配对计算,这可能比使用 ECDSA 时(对 1000 个单独签名进行验证)还要慢。唯一的好处在于,可以在区块中放更多笔的交易,毕竟聚合签名只占 32 字节。

    曲线

    并非基于任何椭圆曲线都可以构造配对函数,对于能有效实现双线性对的椭圆曲线,称为配对友好曲线(pairing-friendly curves)。

    BN曲线

    不再安全, 2016年的研究(https://moderncrypto.org/mail-archive/curves/2016/000740.html)指出BN曲线配对在NFS数域筛算法的攻击下达不到宣称的安全等级(在新攻击方法下估计强度大约减少1/4)。

    BLS曲线

    BLS12_381(嵌入度为12的381位特征的BLS曲线, 128位安全级别), 零知识证明(zk-SNARK)的证明系统,主要是基于BLS12_381椭圆曲线上,实现了Groth16的零知识证明系统。

    名词解释

    DLP

    离散对数问题。例如在整数模11乘法群中容易计算5×5×5×5=9 mod 11,那么求几个5相乘的结果是9这个问题就是一个离散对数问题。当模数为很大的质数时,这个问题是困难的。

    ECDLP

    椭圆曲线离散对数问题。例如已知P、Q是两个椭圆曲线点,并且4个P相加得到Q,那么已知P和Q求解几个P相加得到Q的问题就是椭圆曲线离散对数问题。当选择的曲线满足一定要求时,该问题是困难的。

    参考文献:

    双线性对在密码学中的应用(上)

    双线性对在密码学中的应用(下)


    往期精彩回顾:
    区块链知识系列
    密码学系列
    共识系列
    公链调研系列
    以太坊系列
    EOS系列
    智能合约系列
    Token系列
    展开全文
  • 目前大多数基于证书密码体制的数字签名方案都使用双线性对构造, 计算开销较大、计算效率低, 因此有必要研究更安全、更高效的基于证书签名方案。基于离散对数难题和分叉引理, 提出了一个不含双线性对运算的基于证书...
  • 双线性对是种解决方案。本文利用双线性对构造了三个密码体制,并展示了一些基本的构造技巧,包括:随机预言机、变色龙哈稀、安全多方计算、密文一致性检查。这些技巧的综合运用能有效地满足密码方案的功能性设计和...
  • 编译通过,需要安装gmp与pbc库,双线性对上的签名
  • 针对目前已提出的代理盲签名方案中存在的安全性缺陷,提出了一个基于双线性对的新型代理盲签名方案,并对所提方案进行了安全性分析。新方案满足代理盲签名的全部安全性要求,并且具有通信量小、计算复杂性低等优点。
  • 本文提出一个基于双线性对的秘密重分配方案,假设秘密的分发者和接收者都存在不诚实成员,使用可验证秘密共享技术,不仅能验证影子和子影子的正确性,而且能鉴别不诚实的秘密分发者和接收者,并证明该方案是正确的、...
  • 利用双线性对技术提出了一种基于身份的签名方案,该方案以用户的身份信息,如电子邮箱地址、IP地址、电话号码等作为用户公钥,从而降低了建立和管理公钥基础设施的代价,同时用户密钥采用密钥生成中心和用户协商生成,...
  • 为解决当前车联网中匿名认证的效率问题,利用椭圆曲线上的双线性对的性质,提出一种批量匿名认证方案。通过路侧单元节点(RSU)与车辆共同生成签名,有效减轻了VANET认证中心的负担进而提高认证效率,并且增加了攻击...
  • 提出了一种新的基于双线性对的门限秘密分享方案,并对其正确性、安全性和性能进行了分析讨论;该方案将分享者私钥计算和秘密分发过程分离,秘密份额可以重新利用,具有更好的性能,更适合实际应用。
  • 本文为下篇进阶篇,会从双线性对的性质开始着手,然后分析三方一轮密钥交换和SM9数字签名算法两个例子的原理,最后介绍一些双线性对的优秀代码实现。 双线性对的性质介绍 ▲ 性质介绍 在本科阶段

    导 读

    如果关心近年的密码学成果,可以发现双线性对作为一个基础的密码学工具频频出现。双线性对是一种二元映射,它作为密码学算法的构造工具,在各区块链平台中广泛应用,比如零知识证明、聚合签名等技术方案大多基于双线性对构造得来。
    本次分为上、下两个篇章讲解双线性对在密码学中的应用。

    上篇回顾《双线性对在密码学中的应用(上)》

    本文为下篇进阶篇,会从双线性对的性质开始着手,然后分析三方一轮密钥交换和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阶循环群,一个双线性对(双线性映射)𝑒是一个从G₁×G₂→G₃的双线性映射,满足:

    1.双线性性: 𝑒(ag₁,bg₂) = ab𝑒(g₁, g₂), 其中g₁∈ G₁, g₂ ∈ G₂

    2.非退化性: 存在g₁,g₂,使得𝑒(g₁,g₂) 不为G₃中的单位元

    3.可计算性: 存在有效的多项式时间算法计算双线性对的值

    上述定义简单来说就是,一个映射e,能将G₁和G₂中的两个元素映射为G₃中的一个元素,并且该映射满足双线性。这里的定义虽然严谨,但不便于读者接受,我们通过类比来加深理解,例如读者熟悉的向量内积就满足双线性。我们来回顾一下向量内积的特点,内积运算从两个向量α和β得到数r:

    α · β → r

    所谓双线性映射,是从两个元素到一个元素的映射,并且这个映射对每一个输入的元素都保持线性。

    比方说:我们固定β,则r和α是有线性的关系的:如果用kα代替α,那么结果就是kr;固定α也有同样的结论,因此内积的运算是有双线性的。

    我们研究的椭圆曲线上的双线性对也正是有类似的双线性,并且根据双线性,我们有下面的推论:

    设g₁, g₂分别是群G₁和G₂的元素,𝑒是G₁×G₂→G₃的双线性映射,那么有:

    𝑒(ag₁, bg₂) = ab 𝑒(g₁ , g₂) = 𝑒(abg₁ , g₂) = 𝑒(g₁ , abg₂)

    𝑒(ag₁, bg₂) + 𝑒(cg₁, dg₂) = (ab+cd) 𝑒(g₁, g₂)

    注意这里G₃的群运算用加法表示了,如果用乘法表示则看起来会不同,但是本质一样,写成加法还是乘法只是符号的问题。

    本文约定都按照加法形式处理(这里的加法并不暗示群一定是交换群),但通常习惯将G₃写成乘法群的形式,如下:
    在这里插入图片描述

    综上我们可以看到双线性使得变量前面的系数可以灵活转化,这是正是双线性对独特的性质。利用这些性质,双线性对在密码学中可用来构造很多其他数学工具所不能构造的协议或方案。

    ▲ SM9密钥协商算法解析
    首先我们来理解双线性对在SM9算法中起到的作用。

    下面的介绍中的签名算法是简化后的版本,能够体现算法原理,但是并非SM9标准算法本身,签名算法的完整流程可以参看参考文献中的GM/T0044标准。

    因为使用到双线性配对,这里涉及到三个椭圆曲线群,我们记为G₁、G₂和G₃,e是从G₁×G₂到G₃的双线性映射,G₁和G₂的生成元分别为P₁、P₂。并且设e(P₁, P₂)=P₃ ∈ G₃。

    在签名和验签之前,还需要经历生成主密钥、生成用户密钥两个步骤,主密钥只需要生成一次并由密钥生成中心保管,而用户密钥生成则需要为每个用户生成一次。
    在这里插入图片描述

    可以看到相对于ECDSA算法,SM9的密钥生成相对要复杂一些。这里的巧妙之处在于将H(ID)+ks的逆元隐藏在用户私钥中,稍后这一逆元也会影响到签名和验签。
    在这里插入图片描述

    签名和验签算法的巧妙之处在于计算hash时拼接了re(P₁,Ps),从而将rPs隐藏在hash结果中,验签算法正是通过S和公钥计算rPs的过程——如果签名中的h和S是正确的,那么按照验签流程应该能够计算出同样的rPs,然后同样计算H(M||rPs),如果该值和h一致,那么签名被认为是合法的。

    而验签算法中计算rPs的过程正是利用了双线性映射。验签的第三步骤中通过e(P₁,Ps)约减掉了之前提到的H(ID)+ks,从而得到结果。

    这个具体过程可以看下面的式子,这个式子也恰好是SM9签名算法正确性的简单证明:

    在这里插入图片描述

    ▲ 三方一轮密钥协商算法解析
    该算法的关键在于三方独立计算出的a𝑒(bG, cG)、b𝑒(aG , cG) 和c𝑒(aG, bG)要相同,否则就无法协商出一致的密钥。

    但是根据双线性对能够将每个参数的系数提出来的这个性质,我们有:

    a𝑒(bG, cG) = abc𝑒(G , G)

    b𝑒(aG , cG) = abc𝑒(G , G)

    c𝑒(aG, bG) = abc𝑒(G , G)

    因此三方计算出的密钥k是相同的,上面三个式子也恰好是该算法正确性的简单证明。

    双线性对的实现

    本文的最后,我们来了解一些双线性对已有的代码应用实现。

    自Weil提出双线性对概念时构造出Weil对以来,后续的密码学家提出很多新的双线性对的构造,例如Tata对、Ate对、Rate对、最优对等。

    虽然双线性对有诸多优点,但是其计算开销往往较大。

    例如基于配对的BLS签名,虽然可以方便的实现签名聚合,但是其验签时间相对于传统的ECDSA签名上升了两个数量级。因而不断研究各种配对函数主要也是为了降低配对函数计算的复杂度,从而使双线性对这个工具更有实用性。

    另外需要强调的是,并非基于任何椭圆曲线都可以构造配对函数,对于能有效实现双线性对的椭圆曲线,称为pairing-friendly curves。

    BN曲线曾是配对友好曲线的代表,在go语言代码包golang.org/x/crypto/bn256中提供了基于BN256曲线的双线性对实现,并且该代码包中提供了使用BN256完成一轮三方密钥协商的测试示例。

    下图是该代码包的介绍性注释:

    在这里插入图片描述

    不幸的是,2016年的研究(https://moderncrypto.org/mail-archive/curves/2016/000740.html)指出BN曲线配对在NFS数域筛算法的攻击下达不到宣称的安全等级(在新攻击方法下估计强度大约减少1/4)。

    此发现的影响范围非常广,至少波及zcash等项目使用的zkSNARK实现、Apache Milagro项目、以太坊、任何使用相关曲线的BBS签名和BLS签名等,可能影响到intel的SGX和EPID安全性。

    鉴于此,该代码仓库不再做维护。

    但是也不必沮丧,回顾《双线性对在密码学中的应用(上)》那句话,进攻和防守只是同一件事的不同方面,这一发现只会促进安全性的又一次进步。

    首先对于BN曲线,仍然可以通过提高参数长度来弥补漏洞。建议将曲线大小提高1/3从而到达相同的安全等级。另外,除去BN曲线,仍然有其他可用于配对的曲线可以选择。IEFT审议的草案pairing-friendly-curve的第七个版本(https://tools.ietf.org/pdf/draft-irtf-cfrg-pairing-friendly-curves-07.pdf)已经完全考虑到相关攻击的影响,因此该草案中推荐的曲线目前是安全的。

    对于128位安全级别,草案推荐嵌入度为12的381位特征的BLS曲线和462位特征的BN曲线,对于256位的安全级别,推荐嵌入度为48且具有581位特征的BLS曲线。

    从代码实现的角度来看,PBC(https://crypto.stanford.edu/pbc/)库和Miracl(https://miracl.com/)库是两个较优的选择。

    总 结

    经过十余年的研究,双线性对的性质、实现方法等研究领域已经有了很大进展。

    本文简要介绍了双线性对在密码学中的应用,包括双线性对的研究历程、双线性对的概念和性质以及双线性对的应用,主要包括三方一轮密钥协商、SM9标识密码。

    在学界对双线性对多年的研究之后,多线性映射作为一个自然而然的推广也得到越来越多的关注,是相关领域下一个值得期待的研究热点,我们会在以后的介绍中分享,大家敬请期待!

    参考文献与推荐阅读

    [1] cl签名

    https://www.iacr.org/archive/crypto2004/31520055/cl04.pdf

    [2] 配对友好的曲线(RFC草案)

    https://tools.ietf.org/pdf/draft-irtf-cfrg-pairing-friendly-curves-07.pdf

    [3] 三方一轮密钥交换

    https://xueshu.baidu.com/usercenter/paper/show?paperid=5521a92e88e750ae92df7b1cd8287452&site=xueshu_se

    [4] 一个关于双线性对的综述

    http://jos.org.cn/ch/reader/create_pdf.aspx?file_no=3651&journal_id=jos

    [5] 基于BN曲线的双线性对实现

    https://cryptojedi.org/papers/dclxvi-20100714.pdf

    [6] SM9标识密码算法GMT0044

    http://www.gmbz.org.cn/main/viewfile/20180110024900801385.html

    作者简介

    乔沛杨

    来自趣链科技基础平台部

    区块链密码学研究小组

    展开全文
  • 给出基于身份的多接收者签密的定义与安全模型,利用双线性对构造一个新的基于身份的多接收者签密方案。在随机预言机模型下,利用该方案可抗适应性选择密文与身份攻击,且方案满足不可伪造性、前向安全性和公开可验证...
  • 针对目前已提出的代理盲签名方案中存在的安全性缺陷,提出了一个基于双线性对的新型代理盲签名方案,并对所提方案进行了安全性分析。新方案满足代理盲签名的全部安全性要求,并且具有通信量小、计算复杂性低等优点。
  • 通过引入双线性对, 由用户随机选择挑战数据发送给服务器, 云存储服务器返回生成的证据, 验证判定等式的均衡性即可知外包数据是否完整, 可信第三方的引入避免了纠纷的无法仲裁。算法可远程对外包数据实现无限次的完整...
  • 目前大多数基于证书密码体制的数字签名方案都使用双线性对构造, 计算开销较大、计算效率低, 因此有必要研究更安全、更高效的基于证书签名方案。基于离散对数难题和分叉引理, 提出了一个不含双线性对运算的基于证书...
  • 双线性配对是近世代数中的内容,看了很多论文,有些还看了好几遍,依旧弄不明白,所以我觉得应该把最基础的数学知识弄清楚。下面我们来看究竟什么是双线性配对,为什么根据这个原理可以完成基于属性的加密。 首先,...
  • 针对无线传感器网络节点在电源、计算能力和内存容量等方面的局限性,以及当前所面临比传统网络更复杂的安全威胁,提出了一种基于双线性对的无线传感器网络密钥管理和认证方案。通过由第三方PKG签名一个包括节点身份...
  • 标准模型下基于双线性对的短签名方案,蒋维佳,姜平进,随着计算机网络通信技术和软件技术的迅猛发展,以及因特网的广泛应用,如何保证及加强信息安全性,保证电子信息的完整性已成为国

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,290
精华内容 516
关键字:

双线性对