(hierarchical) identity-based encryption