This section deals with two improvements of the protocol. Firstly, we will try to obtain the simplest protocol. Encryptions and signatures were used to have the assurance that the intruder could not alter messages or parts of them. The formal description we made will help us to establish which cryptographic operations are really essential. Our guideline is to minimize cryptographic operations because public key cryptography has a very high computational cost.
Secondly, we will modify the protocol to help the entities to make the distinction between a failure and an error. When an entity receives a message, it performs several checks. If one of them fails, a message indicating the reason of the error is sent to the environment. It is very important to understand the difference between the two kinds of interruptions a registration can encounter. The registration can fail because the TTP has decided that the user does not own good credentials. That is what we will call a failure. The other cases are errors. An error occurs when the registration protocol stops due to a badly formed message: wrong signature, wrong nonce, ... We obviously focus on failures because we want to defeat the intruder when he generates good messages. An intruder can always create errors by sending garbage in the transmission channel. This separation between failures and errors helps to determine whether an intruder is disturbing the registration or not.