Building on the question and answer from Addition-only PHE in F# which ponders homomorphic cryptosystems to navigate, relatively, a single dimension without revealing absolute position (an encrypted counter?), I am now interested in extending this to multiple dimensions, the ability to do vector addition in HE. i.e. $\varepsilon((x, y, z)) \oplus \varepsilon((a, b, c))$.
As in the referenced question, it is desirable to me that $\oplus$'s time complexity is just hyperlinear to the distance $|| (x, y, z) - (a, b, c) ||$. One way to enforce this (but not the only way, perhaps) is to provide only 6 pre-computed $\varepsilon((a, b, c))$ ciphertexts representing unit relative moves. If this is complete, then it seems to me that the key, whether symmetric or asymmetric, can be discarded. I don't particularly like this because it has a bias in moving parallel to axes. This paragraph has been causing a lot of confusion in the comments, but I'm too dense to understand the confusion.
If all 26 precomputed "cell" moves are provided, then moving diagonally has the bias. Ideally, the time required should be proportional to the distance moved. The complication here is that the time complexity for $\varepsilon(\overrightarrow{X}) \oplus \varepsilon(\overrightarrow{A})$ likely equals $\varepsilon(\overrightarrow{A}) \oplus \varepsilon(\overrightarrow{X})$, and of course since we'd know the magnitude of $\overrightarrow{A}$ then the time of the $\oplus$ operation would indicate the magnitude of $\overrightarrow{X}$ which is bad and would already be absent from any cryptosystem. The only improvement I can think of is an FHE encoded custom $\oplus$ routine that cleverly incorporates the appropriate penalty.
The system should be deterministic - that is, there is only one ciphertext of any absolute position.
Is there an upper bound on the size of the ciphertext for, say, any 192-bit vector? I believe that ciphertexts will not necessarily be the same width as the plaintext. But then maybe that's only true for non-deterministic systems.
(... Otherwise,) if only the ciphertexts are seen, how easy is it to discover the bit width of the vector? (short of finding the periodicity which is not practical)
I assume that any $\oplus$ is blind to arithmetic overflow and just wraps around, which is desirable here.
I think the function I'm asking for is just a scrambled/hidden mapping between $\mathbb{Z}^3$ spaces. Is this an unnecessarily complicated way of going about that?
$\varepsilon((0,0,0))$ cannot be obtained from $\varepsilon(\overrightarrow{X}) \oplus (\varepsilon(\overrightarrow{A}) \otimes -1)$ or $\varepsilon(\overrightarrow{X}) \ominus \varepsilon(\overrightarrow{A})$ if $\ominus$ and $\otimes$ are not available.
Thanks!
Edited to incorporate some of the comments discussion
New approach?
What about this new Indistinguishability Obfuscation (1, 2)? Could a quine-like program, but one which takes a direction symbol as input, do the trick? Each executable contains an embedded (and now secret) "point". When the program is run, it outputs itself but with a modification of the resulting "point" instead of the exact original. The program would have to also know how to indistinguishably obfuscate itself. Are all the necessary operations bootstrappable like that? The obfuscated programs are the coordinates.
How compact could they be?