usted podría hacer algo inspirado por RSA, donde no se necesitan dos llaves. como este:
calcular todo el modulo $p$ donde $p$ es prim. que será entonces el GF[$p$] (GaloisField).
ahora en lugar de encontrar un generador de $g$ para que GF[$p$] y el cálculo de nada en potencias de $g$, se puede utilizar cualquiera de los grandes números para la multiplicación y la suma. este allone entonces será muy inseguro, pero va a ser muy caótico en combinación con algunos de los bits de las operaciones.
la codificación y decodificación de las funciones pueden ser combinadas sencillas funciones no seguras. la combinación hace más impredecible, sobre todo con el poco de operaciones.
(calcular una vez que el recíproco ($m^{-1}\equiv m^{p-2}$) de todos los $m$, que se utiliza para multiplicar; vas a necesitar para el descifrado.)
vamos a definir las funciones de enc1 y dec1 basado en la multiplicación:
$enc1_m(x)=x·m$ (mod p)
$dec1_m(y)=y·m^{-1}$ (mod p)
..................................................
y otro par basado en la adición:
$enc2_a(x)=x+a$ (mod p)
$dec2_a(y)=y-a$ (mod p)
..................................................
y otro par basada en bits de revolver, pero que necesitan ser invertible y nunca generar un valor de $\geq p$:
deje $(\odot,\oplus,\otimes,\neg)$ ser el bit a bit (and,or,xor,not) las operaciones de
deje $permutateAndXorLowestNBits_{s}(x,n)$ cambio de los más bajos de n bits de x, de modo que es invertible. en otras palabras, esta condición se tiene:
$$\forall x,s,n: permutateAndXorLowestNBits_{s}^{-1}(permutateAndXorLowestNBits_{s}(x,n),n)=x$$
deje que N(x) es el número de bits más bajos de x que puede ser "segura" cambiado de modo que después de cambiar los bits, N dará como resultado el mismo número y el valor no supera p. en otras palabras, estas dos condiciones: $$x \oplus (2^{N(x)}-1) < p$$ $$\forall y. x \odot \neg(2^{N(x)}-1) \leq y \leq x \oplus (2^{N(x)}-1) \Rightarrow N(y)=N(x)$$
$enc3_s(x) = permutateAndXorLowestNBits_{s}(x,N(x))$
$dec3_s(y) = permutateAndXorLowestNBits_{s}^{-1}(y,N(y))$
..................................................
ahora, la clave resultante será (m,a,s) y las funciones de:
$enc_{m,a,s}(x)=enc1_m(enc2_a(enc3_s(x)))$
$dec_{m,a,s}(y)=dec3_s(dec2_a(dec1_m(y)))$
pero cualquier otro más complec combinación sería válido, también. recuerde que cualquier combinación de varios enc1s y enc2s puede ser expresado como una combinación sencilla de enc1 y enc2; por lo tanto, la alternativa con enc3.
no sé, lo difícil que será para romper este si sólo p es conocido. sin el bit de operaciones, una ecuación lineal rompería esta, pero con los bits de las operaciones será muy caótico. ¿alguien sabe?
de lo contrario, usted todavía puede hacer algo como un sistema de cifrado de Feistel, pero no sé si sería más seguro o cómo medir eso.