2017-08-03 3 views
1

Ich brauche das Identitätselement auf einer elliptischen Kurve in Charm Crypto. Weil ich 5 verschiedene zufällige Elemente in G1 zusammenfassen möchte, d. H. elementList= {g1, g2, g3, g4, g5}. Im Augenblick habe ich ein anderes Zufallselement in G1 erzeugt, d. H. temp= group.random(G1).Was ist das Identity-Element der Elliptischen Kurve in Charm Crypto?

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

Kann mir jemand sagen, wie könnte ich es tun? Ich hoffe, von einigen Experten zu hören.

+0

@ArtjomB. Es gibt zwei Funktionen in Charm, mit denen wir Elemente in Zr initialisieren können, d. H. Group.init (ZR, 0) und group.init (ZR, 1). Ich habe obige Funktionen benutzt, um die Summe und das Produkt verschiedener Elemente in Zr zu erhalten. Aber für Gruppe G1 gibt es keine solche Funktion. – Aisha

Antwort

0

Das hinzugefügte Identitätselement ist der Punkt im Unendlichen für Gruppen über elliptischen Kurven. Sie können PairingGroup.init(G1) ohne ein Wertargument verwenden, um diesen Punkt im Unendlichen zu erhalten.

Beispielcode:

>>> 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 

Hinweis: Dies ist nicht dokumentiert und kann in zukünftigen Versionen ändern.


Sie brauchen kein Identitätselement für Ihr spezifisches Beispiel. Ändern Sie einfach Ihren Code ein wenig:

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