2017-08-03 166 views
1

我需要魅力加密中的橢圓曲線上的標識元素。因爲我想總結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] 

有人能告訴我怎麼辦?希望聽到一些專家的意見。

+0

@ArtjomB。 Charm中有兩個函數,我們可以用它初始化Zr中的元素,即group.init(ZR,0)和group.init(ZR,1)。我已經使用了上述函數來獲得Zr中不同元素的總和和乘積。但是G1組沒有這種功能。 – Aisha

回答

0

加法下的恆等元素是橢圓曲線上羣的無窮遠點。您可以使用沒有值參數的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]