Trapdoor function: easy to go in one direction but very difficult and practically impossible in the other direction.
Most trapdoor function reduces to the same problem in mathematics - hidden subgroup problem (this problem abstracts both integer factorization and discrete logrithm). See also an explanation here
Usage
priv could decrypt messages encrypted by pub but not true for the oppsite;
Therefore, two sides to communicate require two pairs of priv-pub keys.