Algebraic Methods for Constructing Asymmetric Cryptosystems