(**************** Generate keys ***************)

p=541;q=863; (* private keys *)

n=p q (* public key *)

ϕ[n_]:=EulerPhi[n];

ϕ[n](* ϕ(n) *)

a=1019; (* public key *)

(* find private key x *)

GCD[a, ϕ[n]] (* check gcd(a, ϕ(n)=1 *)

{d,{x, y}}=ExtendedGCD[a, ϕ[n]]

{x, y}.{a, ϕ[n]} (* check a x + y ϕ[n]=1 *)

x=Mod[x, ϕ[n]]

Mod[a x, ϕ[n]]

(**************** Send message ***************)

Msg=b=345678(* secret message *)

c=Mod[(b^a), n] (* sent message *)

(**************** Decode message ***************)

Mod[(c^x),n] (* decode message *)