A system for authenticating a first entity to a second entity and for
simultaneously generating a session key for encrypting communications
between the entities. The first entity generates an authentication value
by encrypting time-dependent information using a long-lived secret key
shared by the entities and transmits the authentication value to the
second entity. The first entity independently encrypts other
time-dependent information using the long-lived key to generate a session
key that cannot be derived from the authentication value without the
long-lived key. Upon receiving the transmitted authentication value, the
second entity checks the transmitted authentication value using the shared
long-lived key to determine whether it is valid. If the authentication
value is valid, the second entity authenticates the first entity and
generates an identical session key from the same shared secret information
and time-dependent information. The encrypted time-dependent information
is passed through a key weakening function to generate a weakened key
which is used as the session key. The key weakening function includes a
one-way function to protect the input value from discovery by an attacker
who may have ascertained the weakened session key.
Un sistema per autenticare una prima entità - una seconda entità e per simultaneamente la generazione della chiave di sessione per le comunicazioni di cifratura fra le entità. La prima entità genera un valore di autenticazione cifrando le informazioni dipendenti dal tempo usando una chiave segreta longeva compartecipe dalle entità e trasmette il valore di autenticazione alla seconda entità. La prima entità cifra indipendentemente altre informazioni dipendenti dal tempo usando la chiave longeva per generare una chiave di sessione che non può essere derivata dal valore di autenticazione senza la chiave longeva. Sulla ricezione del valore trasmesso di autenticazione, la seconda entità controlla il valore trasmesso di autenticazione usando la chiave longeva comune per determinare se sia valida. Se il valore di autenticazione è valido, la seconda entità autentica la prima entità e genera una chiave identica di sessione dalle stesse informazioni segrete comuni e dalle informazioni dipendenti dal tempo. Le informazioni dipendenti dal tempo cifrate sono comunicate con una funzione d'indebolimento chiave per generare una chiave indebolita che è usata come la chiave di sessione. La funzione d'indebolimento chiave include una funzione unidirezionale per proteggere il valore dell'input dalla scoperta da un attacker che può accertare della chiave indebolita di sessione.