Group key agreement: theory and practice