1

在 Charm Crypto 中,我将如何获得乘法逆ZR?我大致有以下代码:

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

wherea不是故意存储的。然而,虽然-e可以很好地获得加法逆,但似乎没有合适的方法来获得乘法逆。

4

1 回答 1

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()改变xe以某种方式不起作用。

于 2017-05-03T19:17:22.903 回答