For starters, you can hook into the password form. Then you can customize it. Something like:
add_filter( 'the_password_form', 'custom_password_form' );
function custom_password_form() {
global $post;
$o = '<form action="' . esc_url( site_url( 'wp-login.php?action=postpass', 'login_post' ) ) . '" method="post">
' . __( "This post is password protected. To view it please enter your password below: or add custom message" ) . '
<label for="Email">' . __( "Email:" ) . ' </label><input name="Email" type="text" size="20" required />
<label for="password">' . __( "Password:" ) . ' </label><input name="post_password" id="password" type="password" size="20" required/>
<input type="submit" name="Submit" value="' . esc_attr__( "Submit" ) . '" />
</form>
';
return $o;
}
This form will replace the existing password protected form, although I’m sure you can add an if statement for conditional use.