如何在Charm-Crypto中对组GT的两个配对元素进行异或?



在Charm Crypto中,我想计算属于组GT的两个配对元素的异或,但是似乎不支持异或操作,而组GT的配对元素只支持乘法(mul)和除法(div)操作。

我想计算相同的异或,因为我正在尝试实现的算法。下面是我的算法在简单意义上的基本工作:

>>> from charm.toolbox.pairinggroup import PairingGroup, GT
>>> group = PairingGroup('SS512')
>>> val1 = group.random(GT)
>>> val2 = group.random(GT)
>>> val = val1 ^ val2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for ^: 'pairing.Element' and 'pairing.Element'
>>> 

val1val2是两个配对元素,我想计算它们之间的异或运算。

有人能在这方面指导我吗?这个问题的解决办法是什么?

异或不是为配对组设计的操作。您可能需要对两个点的X坐标进行异或,并希望结果仍然是一个有效的X坐标,您可以从中导出Y坐标并得到一个点。在Charm中你很难做到这一点。

您应该转向另一个库并编写自定义实现。

最新更新