Is there any mapping of $N^3$ unique values to $N \times N \times N$ dots which underlie associative function(s) to next and prior dot, cyclic (SxSxS)

54 Views Asked by At

Title in long:
Is there any mapping of $N^3$ unique values to $N \times N \times N$ elements which underlie associative function(s)/operator to next and previous element (and no more) for each dimension in a cyclic arrangement ($\mathbb{S^1}\times\mathbb{S^1}\times\mathbb{S^1}$)?

Problem by example

For a computer program I'm looking for some sort of three-dimensional matrix ($N \times N \times N$) with random elements. This matrix need to be bigger than storage allows but equal for each user (with same conditions).
To accomplish this the matrix elements should start at a random entry and compute the matrix out of this (using constants/functions/operators).
Each dimension has $N$ element but no start or end. Arrangement is cyclic like a 3-dimensional torus $\mathbb{S}\times\mathbb{S}\times\mathbb{S}$.

Every user has (in general) a different initial value. He should not know how to compute another user value out of his own.
The matrix is big but not big enough for common cryptographic methods like elliptic curves.
So to achieve this property only a function/operator for next and previous element is allowed (for each dimension). Computing e.g. the 2nd next requires the knowledge of the next.

So the computation complexity/time need to scale (about) linear with shift (next->1, 2nd next->2 times 'next',..., n'th next->n times computation time of 'next').
Furthermore complexity/time need to be (about) equal for each dimension.

Some more properties

-next of previous element is the element itself again
-independent of dimension order calculation (associative)
-after $N$ times 'next' the same element again (cyclic)
-there need to be some way to produce a (pseudo) random element without deriving the position in this matrix -need to work at a computer

Weakening

(options to make problem less demanding)
-cycle size don't need to be $N$ in each dimension. Sizes can be different to each other but need to be close to a certain value of choice
-instead of just next/previous also some shortcuts for constant shifts are allowed (number $\ll N$), e.g. $N$'th next-> same again, $N$/2'th next -> ...
-shortcuts for each shift can be allowed if computation time much langer than for elliptic curves -matrix elements don't need to be unique in matrix. Small amount of multiple usage of same value can be allowed
-values don't need to be in range of $[0,...,N^3]$, not all vales in range need to be part of it
-instead of equal matrices for every user also multiple which are different to each other are allowed (but total number need to be smaller than $2N$)

What doesn't work

-split in a value for each dimension (unless each of those is different after next/previous function). Finding another value would reduce of finding a equal value for each dimension. Target matrix size of one dimension ($N$) too small for this. Unless next/previous function need long computation time. Furthermore there should be no (effective) way to reduce an element to an index of each dimension.
-elliptic curve encryption and other methods which need more bit (at least those I know off)


Any ideas which might work? Problem has many properties but solution can be part of different topics. Mathematics not my major. Name of topics where this problem fit in also helpful.

1

There are 1 best solutions below

6
On

One approach is to use a linear congruential generator in each direction. In one dimension, if the current value is $n$ the next value is $an+c \pmod m$. You choose $a,c$ for each direction and use a common $m$. If $a$ is coprime to $m$ this is invertible, so you can go backwards as well. It will be cyclic with period shorter than $m$. If you choose $a,c$ properly I think you can get $m-1$ so you have the same period in all three axes. All the values will be smaller than $m$, which means there will be many repeats, but maybe that is not a problem. I think getting it cyclic and keeping the values distinct is difficult. Also if the user has access to the numbers in the matrix he can derive $a,c,m$ with some work. Is that a problem? You could use some other seeded random number generator. This one came to mind because you could go backwards easily.