Мне не ясно (не видя вашего кода), в чем заключается ваша текущая проблема.
Просматривая бумагу, я вижу (например, на рис. 1):
(произвольные объекты) $c_1,\dots, c_v$ и $s_1,\точки, s_v$
хеши этих объектов, которые написаны $hc_i = H(c_i)$ и $hs_i = H(s_i)$ (до перестановки, примененной к $s_i$).
Все остальные операции относятся к $hc_i$ и $hs_i$, которые кажутся (из контекста) в $\mathbb{Z}_p^*$, т.е. арифметика стандартная (хотя, скорее всего, придется выбирать $р$ достаточно большой, чтобы решить проблему дискретного логарифмирования было сложно, поэтому $\гг 1000$ биты. В частности, вам, вероятно, следует использовать bigints, а не u64.
Я не читал достаточно внимательно, чтобы знать, что они предполагают твердость предположения типа DL в $\mathbb{Z}_p^*$ хоть).
Просматривая другие фигуры, я вижу похожую историю, а именно, что вся арифметика выполняется над хэшированными элементами $\mathbb{Z}_p^*$, а не произвольные строки байтов в $\{0,1\}^*$.
Я не вижу вашего конкретного примера:
$$1â¤iâ¤v:a_i'=(a_i)^{Râ²_s}$$
как проблема.Например, похоже, это происходит на рисунке 4, где до этого я вижу $a_i = (hs_i)^{R_s'}$.
На этом рисунке я не вижу определения $hs_i = H(s_i)$, и я только бегло просматриваю, но вполне вероятно, что эта интерпретация предполагается, т.е. $hs_i$ это хэш произвольной строки байтов $s_i$, и содержится в $\mathbb{Z}_p^*$ (скорее, чем $\{0,1\}^*$).
Общий ответ на
Я просто выполняю эту же операцию для каждого байта в поле?
будет "нет" (если что-то конкретно не говорит об этом). Обычно криптографические протоколы работают с четко определенными математическими объектами (скажем, битовыми строками в $\{0,1\}^*$), а их «разрезание», чтобы попытаться заставить что-то работать (если это не указано в протоколе), может легко привести к проблемам с безопасностью.