number theoretic cryptoalgorithm