我需要在魅力加密的椭圆曲线上使用标识元素。因为我想总结G1中的5个不同的随机元素,即elementList= {g1, g2, g3, g4, g5}。现在,我在G1中生成了另一个随机元素,即temp= group.random(G1)

temp = group.random(G1)
elementList= {g1,  g2,  g3,  g4,  g5}
for num in range(0, 5):
    temp= temp+ elementList[num]


有人可以告诉我该怎么做吗?希望能听到一些专家的意见。

最佳答案

加法下的恒等元素是椭圆曲线上组的无穷大点。您可以使用不带值参数的PairingGroup.init(G1)将此点设为无穷大。

示例代码:

>>> from charm.toolbox.pairinggroup import PairingGroup,ZR,G1,G2,GT,pair
>>> group = PairingGroup('SS512')
>>> g = group.random(G1)
>>> i = group.init(G1) # point at infinity
>>> i + g == g
True


注意:这是未记录的,在将来的版本中可能会更改。



对于特定示例,您不需要标识元素。只需稍微更改一下代码即可:

elementList = [g1,  g2,  g3,  g4,  g5]
for num in range(len(elementList)):
    if num == 0:
        temp = elementList[num]
    else:
        temp = temp + elementList[num]

关于python - 魅力加密中的椭圆曲线上的标识元素是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45476422/

10-12 19:26