【个人记录】relic库使用

将“psi-client-server"demo改为.cpp

  1. 修改makefile文件,并修改文件后缀名。
  2. 去掉rceiver.cpp中的goto语句(对goto语句的理解参考c++爱好者必点:goto语句详解_c++ goto-CSDN博客),end标签之前的内容全部放去如下图的if的{}中,将必要的声明挪到{}外。

用CLion运行relic库中的demo——general-paillier

  1. 将“general-paillier”文件夹移动到想要的地方。
  2. 修改makefile文件中的RELIC_ROOT,并检查文件中所涉及的路径是否正确。
  3. 在CLion打开“general-paillier”文件夹,进行配置如下图。

常用的函数(仅记录本人使用过的)

1.哈希函数

hash表示哈希值,msg表示被哈希的消息,len表示被哈希的消息的长度。哈希值为160比特,数组长度为20。(本人调用md_map_b2s256时,对所有的输入,输出全部相同,如果有大佬知道原因,还请指点。)

hash表示哈希值,msg表示被哈希的消息,len表示被哈希的消息的长度。哈希值为256比特,数组长度为32。

bn_t类型相关的函数比较a与b是否相同,若相同则返回RLC_EQ

bn_size_bin:将a写入缓冲区需要的长度 

bn_read_bin:从缓冲区buffer中读入a   

bn_write_bin:将a写入缓冲区buffer

从字符串中读入a

bn_rand_mod:生成一个模b的随机数a

bn_print:输出一个bn_t类型的数a

 令a = digit,digit的类型为size_t

     令c = a,a和c的类型均为bn_tc = a - b,b的类型时size_t

a*c = 1 mod b,注意a要与b互质。

c表示a和b的最大公因数

c = a * b

c=a^b mod m         

c(x) = \prod _{0 \leqslant i < n}(x - a_i) \rm{ mod } n,输出结果c表示c(x)多项式的系数。

       

初始化g1_t,g2_t,gt_t类型

     

分配一个g1_t,g2_t,gt_t类型的元素

获得群的阶

       

打印输出

写入缓冲区,B表示缓冲区,L表示缓冲区大小,A表示代写入元素,C表示是否进行点压缩

计算多组标量乘法,并将所有积累加。R表示输出,P表示G2中元素向量,K表示数向量,N表示数组长度。

双线性映射,R = e(P,Q)

r = g_1^k

  • 12
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值