Verifiable Random Functions: Relations to Identity-Based Key Encapsulation and New Constructions