custom asymetric encryption algorithms