Covering relations between three different areas of mathematics and theoretical computer science, this book explores how non-commutative (infinite) groups, which are typically studied in combinatorial group theory, can be used in public key cryptography.