#python #cryptography #xor #elliptic-curve #charm-crypto
Вопрос:
В Charm Crypto я хочу вычислить XOR двух сопряженных элементов, принадлежащих группе GT. Однако, похоже, что операция XOR не поддерживается, но для сопряжения элементов группы GT поддерживаются только операции умножения(mul) и деления(div).
Я хочу вычислить XOR для того же самого из-за алгоритма, который я пытаюсь реализовать. Ниже в основном показано, что мой алгоритм будет делать в простом смысле.
>>> 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'
>>>
val1
И val2
-это два элемента сопряжения, и я хочу вычислить операцию XOR между ними.
Может ли кто-нибудь, пожалуйста, помочь мне в этом отношении? Каково решение этой проблемы?
Комментарии:
1. Строка 79 , она возвращает кортеж, если вы знаете python, вы можете обработать x-или, однако, нет гарантии, что результатом будет точка.
Ответ №1:
XOR-это не та операция, для которой предназначены группы сопряжения. Скорее всего, вам понадобится XOR координаты X двух точек и надеяться, что результат все еще будет действительной координатой X, из которой вы можете получить координату Y и получить точку. Вам будет трудно сделать это в Очаровании.
Вам следует перейти в другую библиотеку и написать пользовательскую реализацию.
Комментарии:
1. Какая другая библиотека будет поддерживать эту операцию для сопряжения элементов?
2. Я не думаю, что знаю кого-либо, попробуйте поискать на github.