2017-05-03 12 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을 변경 : 여기에 전체 예입니다.