Существует ли «ассоциативный» алгоритм симметрии c «криптография c»? - PullRequest
0 голосов
/ 25 апреля 2020

В нашем приложении нам нужна ассоциативная операция между двумя UUID. Для других нужд приложения, таких как некоммутативность (A + B != B + A) и обратимость ((A + B) - B = A), кодирование / декодирование AES отлично работает как оператор, представленный здесь знаками + / -, где A играет роль открытого текста, а B будет key.

Поскольку безопасность здесь не является целью, AES кажется излишним, помимо проблемы неассоциативности. Существует ли какая-либо ассоциативная операция (побитовая, целочисленная арифметика c), которая могла бы заменить AES, сохраняя свои приятные свойства некоммутативность и обратимость , а также сохраняя свою (низкую) частоту столкновений для разных пар (A, B)?

Для наглядности это вывод некоторых операций с конкретными значениями:

In [34]: from mypkg.mymodule.encoders import UUID                                                                                 

In [35]: a = UUID(b'asdasdasdasdasda'); a                                                                                     
Out[35]: cYÖe0Þót9jÞÖYILßjWÂ

In [36]: b = UUID(b'sdasdasdasdasdas'); b                                                                                     
Out[36]: jeÑaÐþOölÝRKÍHýzÐÓç

In [37]: c = UUID(b'dasdasdasdasdasd'); c                                                                                     
Out[37]: dp1pêÛçjWCsêäEhÜ8í5

In [38]: (a + b) + c                                                                                                          
Out[38]: ïfDdéÄÆæImúËöÓtzÊgø

In [39]: a + (b + c)                                                                                                          
Out[39]: lÏáÜIswæîÊá37ôrÔ4på

In [40]: (a + b) + c == a + (b + c)  # A `True` value is desired here.                                                        
Out[40]: False
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...