petlib的双线性配对库。
bplib的Python项目详细描述
bplib是一个库,实现对支持 双线性对,用于现代密码学中。
它基于openpairing库 diego aranha(https://github.com/dfaranha/OpenPairing),它本身基于并兼容 使用,openssl数学函数(bn和ec)。bplib与petlib类型兼容 包括petlib.bn,组g1是一个petlib.ecec组。连同petlib, 它们易于使用 支持现代隐私增强技术中使用的数学和密码。“
一组双线性ec群定义为:
>>> G = bp.BpGroup()
这样一个bpgroup描述3个组g1、g2和gt,这样一对(g1、g2)->;gt。发电机 对于组g1和g2,表示为:
>>> g1, g2 = G.gen1(), G.gen2()
特殊的pair操作计算配对到gt:
>>> gt = G.pair(g1, g2)
在g1和g2的自然加性中缀表示法和gt的乘法表示法中,对g1、g2或gt的所有元素定义运算:
>>> gt6 = gt**6
正如预期的那样,pair操作是相加的:
>>> G.pair(g1, 6*g2) == gt6 True >>> G.pair(6*g1, g2) == gt6 True >>> G.pair(2*g1, 3*g2) == gt6 True