精华内容
下载资源
问答
  • 此外,在计划的股份分配阶段,仅使用双线性配对的双线性,任何人都可以验证参与者是否在不实施交互式或非交互式协议且没有构造所谓的使用Fiat-Shamir技术的股份见证的情况下收到了正确的股份。 随后,在方案的秘密...
  • 双线性配对是近世代数中的内容,看了很多论文,有些还看了好几遍,依旧弄不明白,所以我觉得应该把最基础的数学知识弄清楚。下面我们来看究竟什么是双线性配对,为什么根据这个原理可以完成基于属性的加密。 首先,...

    最近在写关于轻量级属性加密(ABE)的毕业论文,ABE中的两种形式KP-ABE和CP-ABE,导师说其实本质上就是不停的Pairing。双线性配对是近世代数中的内容,看了很多论文,有些还看了好几遍,依旧弄不明白,所以我觉得应该把最基础的数学知识弄清楚。下面我们来看究竟什么是双线性配对,为什么根据这个原理可以完成基于属性的加密。
    首先,双线性配对的数学定义是:
    在这里插入图片描述
    这里一一来解释下
    循环群的意思是,群G中的每一个元都是G中某一个固定元a的乘方,例如G={a1,a2,a3,…}
    映射的意思是,设A和B是两个非空集合,若存在一个A到B的对应关系f,使得A中的每一个元素x,都有B中唯一确定一个元素y与之对应,则成f是A到B中的一个映射,记做y=f(x)。用我的理解说一下就是,A中的一个元素x可以根据某种计算得到B中的元素y,有点类似函数的意思。
    (1)双线性
    首先介绍Zp,Zp指的是素数p 阶循环群,群中元素的个数称为群的阶
    关于性质的解释和如何在ABE中应用,待续…

    展开全文
  • 前言 1.前期准备 (1)miracl函数库lib生成 在使用miracl大数库之前需要配置环境,我使用的开发软件是VS2019版本,语言C++ ... ...(2)双线性配对库的介绍和调用 miracl库里有两种默认的配对...

    前言

    最近实现密码算法,需要使用到椭圆曲线加密、双线性配对等数学工具,只会些C++,故选择调用miracl大数库。在啃了好几天的github上的源码后,才对它有所了解。写下此篇博客,希望后来研究者可以少走弯路~~

    1.前期准备

    (1)miracl函数库lib生成

    在使用miracl大数库之前需要配置环境,我使用的开发软件是VS2019版本,语言C++

    lib的配置参照此博主,写的很详细,不再赘述:https://blog.csdn.net/qq_36290650/article/details/83421230?spm=1001.2014.3001.5501

    不过最后该博客认为源文件必须改成.c后缀,我使用cpp后缀也是可以的

    (2)双线性配对的介绍和调用

    miracl库里有两种默认的配对,一型和三型配对,前者使用eta_T配对(在有限域GF(2^m)上)和Tate配对(在有限域GF(p)上),后者使用最优ate配对。一型配对使用pairing_1.h声明,ssp_pair.cpp实现,三型配对使用pairing_3.h声明,ss2_pair.cpp实现(所述的文件皆在源码中pairing目录下)。配对实现基于四种安全等级:AES_80、AES_128、AES_192和AES_256,一型配对仅支持前两种。关于选择哪种配对更好,说明文件给出了解释。这里,我选择了安全等级128的一型eta_T配对,配置和实现都将基于一型配对。

    打开一型配对声明文件pairing_1.h,G1、GT数据类型如下所示

    一型配对模式是GT=e(G1,G1),选择eta_T配对时,在源文件定义#define MR_PAIRING_SSP;选择Tate配对时,在源文件定义#define MR_PAIRING_SS2

    我们继续查看ecn.h和zzn2.h,发现ecn.h还包含了一个big.h的头文件,zzn2.h包含一个zzn.h。

    到此我们可以确定想要调用一型eta_T配对,需要的文件有

    pairing_1.h

    ssp_pairing.cpp

    zzn.h

    zzn.cpp

    zzn2.h

    zzn2.cpp

    ecn.h

    ecn2.cpp

    big.h

    big.cpp

    以及1中所需要的mirdef.h、miracl.h和两个资源文件lib、pdb

    现在开始写项目啦~>0<

    新建VS空项目,将上面所述的文件复制到项目目录下

    右键项目,添加现有项,添加这些文件

    右键重新生成,这里会有一些报错,是由于源码的编写方式不标准导致的,比如说类中的友元函数无法在声明的时候添加默认参数,所以删掉false

    其他的问题就不详细描述,只要稍微修改就可

    然后右键添加空项目(.cpp),加上头文件

    #include <iostream>
    //security define
    #define AES_SECURITY 128
    #define MR_PAIRING_SSP
    #include "pairing_1.h"

    using namespace std;
    extern "C"
    {
    #include "miracl.h"
    #include "mirdef.h"

    }
    int main()
    {

    }

    我所用的语言是C++,但是两个大数库的头要用C编译,右键重新生成,编译成功。(撒花~~)

     

    2、相关源码

    (1)Big类

    big.h定义了Big类,Big数据类型相当于对big数据类型的进一步扩充

    Big a;//定义一个Big类型变量,默认初始化为0

    Big对运算符进行了重载,支持加减乘除等基本运算操作

    Big类中常用函数:

    a. 乘法取模

    定义:Big modmult(const Big&,const Big&,const Big&);

    Big a,b,c,m;

    c=modmult(a,b,m); //c=(a*b)modm

    b. 除法取模

    定义:Big moddiv(const Big&,const Big&,const Big&);

    Big a,b,c,m;

    c=moddiv(a,b,m); //c=(a/b)modm

    c. 幂次方函数

    定义:Big pow(const Big&, int, const Big&); // x^m mod n

               Big pow(int, const Big&, const Big&); // x^m mod n

               Big pow(const Big&, const Big&, const Big&); // x^m mod n

    Big a,b,c,m;

    c=pow(a,b,m); //c=(a^b)modm

    d. 随机数生成

    定义:Big rand(const Big&); //0 < rand < parameter

    Big a,b;

    a=rand(b); // 0{\color{Green} \leq }a{\color{Green} < }b

     

    (2)G1类、GT类

    pairing.h声明了G1和GT类

    不同的配对方式G1和G2表现为不同的数据类型,eta_T配对中,G1的数据类型是ecn,GT的数据类型是zzn2

    G1、GT类对运算符进行了重载,支持如下运算操作

     

    (3)PFC类

    pairing.h声明了PFC(pairing friendly curve)类

    PFC类中声明了双线性配对友好的椭圆曲线的参数以及相关运算函数

    s=安全系数  ord[0]=椭圆曲线的阶

    ssp_pairing.cpp初始化椭圆曲线以及定义了PFC类中的函数

    PFC类中常用函数:(使用前先建立类对象,如PFC pfc(128);)

    a. G1点乘

    定义:G1 mult(const G1&,const Big&)

    Big a; G1 P,Q;

    Q=pfc.mult(P,a); //Q=aP

    b. GT幂次运算

    定义:GT power(const GT&,const Big&);

    Big a; GT P,Q;

    Q=pfc.power(P,a); //Q=a^P

    c. 字符串哈希转换为G1点

    定义:Big PFC::hash_to_group(char *ID)

    G1 b=pfc.hash_to_group((char *)"Robert");

    d.  随机生成AES密钥

    定义:void PFC::rankey(Big& k)

    Big a;

    pfc.rankey(a);

    e. 双线性配对

    定义:GT PFC::pairing(const G1& x,const G1& y)

    G1 P,Q;GT Z;

    Z=pfc.pairing(P,Q); //Z=e(P,Q);

    (待续~~~)

    本博客文章为博主学习笔记,针对博主需要所写,内容可能不够完善或者有误,欢迎各位批评指正~转载请说明博客来处>3<

     

     

    展开全文
  • 双线性配对运算性质

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

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

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

    展开全文
  • 双线性对是G_1和G_2之间到G_T中元素的双线性非简并映射。 用户可以通过配对库构建复杂的基于配对的软件,而无需对椭圆曲线或配对或数论有足够的了解。 该库小于57 KB,适用于手持设备。 该大小仅为BPC库大小的3.7%...
  • G1xG2->GT 其中G1和G2是循环加法群的例子很多,网上可以搜到 这里提供一个G1和G2是循环乘法群的e(x,y)例子(只是数学满足(好像满足又好像不满足))

    G1xG2->GT


    其中G1和G2是循环加法群的例子很多,网上可以搜到

    这里提供一个G1和G2是循环乘法群的e(x,y)例子(只是数学满足(好像满足又好像不满足))



    展开全文
  • 我正在密苏里科技大学的2015年夏季REU上从事该项目的工作。 该存储库不再使用。 未来的工作将致力于: : 和 。 正在工作: -数据所有者和用户密钥生成-代理重新加密密钥生成-由oracle代理重新加密整数并由用户解密...
  • JPBC库的使用--双线性配对,ECC加密

    千次阅读 2019-06-29 21:19:03
    在我的实验过程中,双线性配对操作为1ms,进行一次底数为1024为G1域上的元素,指数为160为Zp域的指数运算用时为13ms左右,双线性配对效率更高。 双线性配对操作主要代码 this.pp.y = this.pp.p.pairing(this.pp...
  • 密码学:双线性映射

    万次阅读 2018-08-13 10:43:57
    双线性映射(双线性配对):Bilinear Pairing 定义:一个双线性映射是由两个向量空间上的元素,生成第三个向量空间上一个元素之函数,并且该函数对每个参数都是线性的。 理解:若B:V×W→X是一个双线性映射,则V...
  •  双线性配对: 如果存在满足下列条件的ê: G1×G1→G2  1.双线性: 对所有的P,QG1,a,bZ p ,有ê(aQ, bR) = ê(Q,R)ab;  2.非退化性: 存在Q,RG1使得ê (Q,R) 不等于1;  3.可计算的: 对任意的Q,RG1,存在一个...
  • 将矢量空间秘密共享方法和双线性配对相结合,构造了一种基于双线性配对的代理多重签名方案.经过分析表明,该方案满足了一个强代理多重签名体制的安全要求,以双线性配对为工具,与已有的基于RSA和离散对数的代理多重签名...
  • 双线性映射 pbc

    千次阅读 2017-07-22 16:02:53
    今天的任务是编程pbc,然后得出pbc的配对时间。并和ECDSA的签名消耗时间进行比较。 pbc生成签名所用的时间,验证所用时间。ECDSA的签名所用时间,验证所用时间。对比。 列出代码,进行操作。 pbc签名 ECDSA的库,...
  • 利用椭圆曲线上Weil配对双线性性质和Euler准测,提出了一种基于双线性映射的签名加密方案。它不仅可以获得较快的加密解密速度,解决棘手的密钥管理问题,辨别消息的真伪,还能抵抗重发密文的攻击。该方案有效地...
  • 为了解决Ad hoc网络中的签名及密钥安全问题,利用双线性配对的优点,结合混合门限签名机制,设计了适用于Ad hoc网络的基于双线性配对的混合门限签名算法。该算法可以有效提高网络传输效率、节省数据传输量,在安全性...
  • 在我看来zk-SNARK这辆车的引擎就是用来保护私有信息的双线性配对配对是一种特殊的映射,它模糊了信息但依然允许你进行有限的计算,非常令人着迷。 用自己熟悉的语言学习以太坊DApp开发: Java | Php | Python | ...
  • 纪家慧等人利用双线性配对提出了三类代理签名体制:代理多签名、多代理签名和多代理多签名,但这三类代理签名方案都是不安全的。分析说明了这三类代理签名存在伪造攻击,任何一个原始签名人或代理签名人都可以伪造...
  • 纪家慧等人利用双线性配对提出了三类代理签名体制:代理多签名、多代理签名和多代理多签名,但这三类代理签名方案都是不安全的。分析说明了这三类代理签名存在伪造攻击,任何一个原始签名人或代理签名人都可以伪造...
  • 为了确保存储在公共云存储中的敏感数据的机密性,数据所有者应在将其数据提交到... 与以前的具有双线性配对的基于证书的代理重新加密方案相比,它在计算效率上具有明显的优势,因此更适合于计算受限或功耗受限的设备。
  • 基于Gentry方案,利用双线性配对,提出了一个高效的基于身份的分层加密方案,在随机预言机模型下证明满足IND-ID-CCA2安全,通过分析,该方案较Gentry方案缩短了密文长度,解密仅需要进行一次双线性配对,大大提高了...
  • 基于双线性配对的身份基强壮门限签名方案,陆荣幸,曹珍富, ...近年来,双线性配对,如代数曲线上的Weil配对,在密码学研究领域里开辟了一些新的应用.许多基于配对的身份基数字签名方案被相继提出.�
  • 我看到论文中作者用MIRACL密码库来获取某些密码运算的运行时间,例如双线性配对,点乘法,椭圆曲线标量乘法,哈希函数等。 我想知道作者是怎么得到这个时间的,直接调用库函数求平均时间吗?
  • 在本文中,我们引入了一种称为广义环签密(GRSC)的新概念,该概念只需一个密钥对和一种算法即可实现环签和环签密功能。... 与其他也使用双线性配对的基于身份的环形签密方案相比,我们的方案是一种高效的方案。
  • 该方案仅当用户的身份信息包含在广播的授权用户集合中且用户的属性包含在访问结构中时,解密方方可通过双线性配对运算进行密文解密。方案的密文长度及加/解密双线性对运算次数固定,计算效率高且通信开销小。仿真...
  • 为了克服当前大多数匿名会议密钥建立协议都只能提供部分前向安全性,不能提供完美前向安全性的缺点,利用基于身份的密码体制和双线性配对,提出一个匿名会议分配协议,在单向哈希函数(OWH)和Diffie-Hellman(BDH)假设的...
  • 我们的构造受到一些有效的基于ID的环签名方案的启发,并使用双线性配对作为基本工具。 使用合理的安全模型,基于计算Diffie-Hellman(CDH)问题的难处理性,证明了该方案的不可伪造性。 新方案的签名长度仅为|。 2 ...
  • 利用椭圆曲线上Weit配对双线性性质和Euler准则,提出了一种基于身份认证的群签名方案.每个签名者只负责对消息的某一特定部分段进行签名,然后将签名发送给系统管理员,最后由系统管理员生成消息的群签名,不用...
  • 双线性组: 1型和3型配对 没有配对的椭圆曲线: Secp256k1 对称组Sn 笛卡尔积组 戒指 数学提供以下代数环和字段: 布尔环 笛卡尔积环 形式为x ^ d + c的多项式的字段扩展类 整数环 多项式环 素数p的环Zn和场Zp 其它...
  • 它利用的Barreto-Naehrig(BN)曲线构造来提供两个循环组G 1和G 2 ,并具有有效的双线性对: e:G 1 ×G 2 →G T 安全警告 与实现此构造的其他配对密码学库一样,该库不能抵抗旁通道攻击。 用法 将bn板条箱添加到...
  • 最近,国密算法中的SM2和SM9已经成为国际标准,其中SM9算法在椭圆曲线离散对数难题的基础上,添加了若干个双线性配对难题来保证安全性。 配对的过程中,除去群G1中的元素与SM2算法一样在素域下之外,群G2中的元素为...
  • 用轻量级的椭圆曲线离散对数运算(elliptic curve discrete logarithm,ECDL)代替双线性对运算,节省了协议计算开销;采用计算开销转移的思想,将身份认证的计算开销转移至飞行器端,相对减轻了卫星计算负担。与...

空空如也

空空如也

1 2
收藏数 38
精华内容 15
关键字:

双线性配对