Divertible protocols and atomic proxy cryptography