2017-05-03 3 views
1

Charm Cryptoでは、ZRの乗法逆数をどうやって得ることができますか?Charm Cryptoの乗法逆数

a = group.random(G) 
e = group.random(ZR) 
x = a ** e 
somestuff() 
y = x ** (1/e) 

aを目的に保存されていない:私は、大きく以下のコードを持っています。しかし、-eは、逆数を得るためにうまく動作しますが、乗法逆数を得る適切な方法ではないようです。

答えて

0

あなたは何を意味するのかよく分かりません。 1/eはCharm Cryptoの適切なモジュラ逆行列です。ここでは完全な例である:

>>> from charm.toolbox.pairinggroup import PairingGroup,ZR,G1,G2,GT,pair 
>>> group = PairingGroup('SS512') 
>>> a = group.random(G1) 
>>> a 
[2580989876233721415297389560556166670922761116088625446257120303747454767083854114997254567159052287206977413471899062293779511058710074633103823400659019, 5996565379972917992663126989138580820515927146496218666993731728783513412956887506732385903379922348877197471677004946545491932261438787373567446770237791] 
>>> e = group.random(ZR) 
>>> x = a ** e 
>>> x 
[6891729780372399189041525470592995101919015470165150216677136432042436097937961533731911650601678002293909918119625724503886943879739773465990776556262311, 1548281541526614042816533932120191809063134798488215929407179466331621937371141709171095414449680510602430538669648224266688052566354236898986673964076468] 
>>> y = x ** (1/e) 
>>> y 
[2580989876233721415297389560556166670922761116088625446257120303747454767083854114997254567159052287206977413471899062293779511058710074633103823400659019, 5996565379972917992663126989138580820515927146496218666993731728783513412956887506732385903379922348877197471677004946545491932261438787373567446770237791] 
>>> y == a 
True 

おそらくsomestuff()は、それが動作しないことを何らかの方法でxまたはeを変更します。