Identity based encryption