Patent US7424615B1 successfully refreshed from Google Patents.
← Back to Patent Explorer
US7424615B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Mutually authenticated secure key exchange (MASKE)

Assignee: Apple Inc
•
Filing: 2001-07-30
•
Granted: 2008-09-09
•
Expires: 2021-07-30
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract The invention provides a cryptographic method which includes receiving at a first entity a second public key M A . At least one of a first session key K B and a first secret S B may be generated based on the second public key M A . A first random nonce N B may be generated which may be encrypted with at least one of the first session key K B and the first secret S B to obtain an encrypted random nonce. The encrypted random nonce may be transmitted from the first entity. In response to transmitting the encrypted random nonce, the first computer may receive a data signal containing a modification of the first random nonce N B +1 . If the modification of the first random nonce N B +1 was correctly performed, then at least one of (i) opening a communication link at the first computer, and (ii) generating a first initialization vector I B is performed.

Inventors

  • 👤 Christopher P. Jalbert
  • 👤 Leland A. Wallace
  • 👤 David M. O'Rourke

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-04 20:32
CPC Classifications
H; H04; H04L; H04L9/00; H04L9/32; H04L9/3271; H04L9/3273; H04L9/08; H04L9/0816; H04L9/0838; H04L9/0841; H04L9/0844

Claims Analysis

Total Claims: 44
Claim 1
Independent Claim 267 words
A cryptographic method, including: generating, at a first entity, a first public key M B , the first public key M B being session specific; receiving from a second entity, at the first entity, a second public key M A , the second public key M A being session specific; generating, at the first entity, a first secret S B by hashing one or more parameters that are known to the first entity and the second entity, at least one of the parameters being a result of hashing one or more of the following: a first password P B , the first public key M B , and the second public key M A ; generating, at the first entity, a first session key K B , the first session key K B being different from the first secret S B , both the first session key K B and the first secret S B being computed from the second public key M A ; encrypting, at the first entity, a first random nonce N B with the first session key K B or the first secret S B to obtain a first encrypted result; encrypting, at the first entity, the first encrypted result with the other one of the first session key K B or the first secret S B to obtain an encrypted random nonce; transmitting the encrypted random nonce from the first entity to the second entity; receiving a response to the encrypted random nonce; and authenticating through determining whether the response includes a correct modification of the first random nonce N B .
Claim 2
Dependent Claim 267 words
A cryptographic method, including: generating, at a first entity, a first public key M B , the first public key M B being session specific; receiving from a second entity, at the first entity, a second public key M A , the second public key M A being session specific; generating, at the first entity, a first secret S B by hashing one or more parameters that are known to the first entity and the second entity, at least one of the parameters being a result of hashing one or more of the following: a first password P B , the first public key M B , and the second public key M A ; generating, at the first entity, a first session key K B , the first session key K B being different from the first secret S B , both the first session key K B and the first secret S B being computed from the second public key M A ; encrypting, at the first entity, a first random nonce N B with the first session key K B or the first secret S B to obtain a first encrypted result; encrypting, at the first entity, the first encrypted result with the other one of the first session key K B or the first secret S B to obtain an encrypted random nonce; transmitting the encrypted random nonce from the first entity to the second entity; receiving a response to the encrypted random nonce; and authenticating through determining whether the response includes a correct modification of the first random nonce N B .
Claim 3
Dependent Claim 44 words
The method of claim 1 wherein authenticating through determining whether the response includes a correct modification includes: checking whether a received modification of the first random nonce N B equals a modification of the first random nonce N B applied by the first entity.
Claim 4
Dependent Claim 35 words
The method of claim 1 wherein said authenticating includes: checking whether a received modification of the first random nonce less a modification thereof as applied thereto by the first entity equals the first random nonce.
Claim 5
Dependent Claim 56 words
The method of claim 1 wherein generating the first session key K B includes: generating a first random number R B , and computing the first session key K B from the second public key M A raised to the exponential power of the first random number R B , modulo a parameter β B .
Claim 6
Dependent Claim 48 words
The method of claim 1 wherein said generating the first secret S B includes: combining the second public key M A and the first public key M B with a first password P B to produce a first result, and hashing the first result with a secure hash.
Claim 7
Dependent Claim 14 words
The method of claim 5 wherein the secure hash is a one-way hash function.
Claim 8
Dependent Claim 31 words
The method of claim 6 wherein the one-way hash function is one of the Secure Hash Algorithm, the Message Digest 5, Snefru, Nippon Telephone and Telegraph Hash, and the Gosudarstvennyl Standard.
Claim 9
Dependent Claim 81 words
The method of claim 1 wherein said generating the first secret S B includes: combining a first password P B and at least one of the second public key M A and the first public key M B to generate a first combined result, and combining the first combined result and at least one of the second public key M A , the first password P B , and the first public key M B to generate a second combined result.
Claim 10
Dependent Claim 19 words
The method of claim 1 wherein the first random nonce N B is encrypted using a symmetrical encryption algorithm.
Claim 11
Dependent Claim 23 words
The method of claim 9 , wherein the symmetrical encryption algorithm is one of the Data Encryption Standard and the block cipher CAST.
Claim 12
Dependent Claim 22 words
The method of claim 1 wherein encrypting the first random nonce N B includes superencrypting the first random nonce N B .
Claim 13
Dependent Claim 48 words
The method of claim 11 , wherein superencrypting the first random nonce N B includes: encrypting the first random nonce N B with the first secret S B to produce the first encrypted result; and encrypting the first encrypted result using the first session key K B .
Claim 14
Dependent Claim 38 words
The method of claim 12 wherein said authenticating includes: decrypting the response using the first session key K B to generate a first decrypted result; and decrypting the first decrypted result using the first secret S B .
Claim 15
Dependent Claim 90 words
The method of claim 1 , wherein the response includes a combination of a second random nonce N A and a modification of the first random nonce; and wherein the method further includes: extracting the second random nonce N A from the response; modifying the second random nonce N A to obtain a modified second random nonce; encrypting the modified second random nonce using the first session key K B and the first secret S B to obtain an encrypted package; and transmitting the encrypted package from the first entity.
Claim 16
Dependent Claim 64 words
The method of claim 14 wherein said encrypting the modified second random nonce includes: generating a string of random bits I B ; encrypting a combination of the string of random bits I B and the modified second random nonce using the first secret S B to generate a first result; and encrypting the first result using the first session key K B .
Claim 17
Dependent Claim 23 words
The method of claim 14 wherein the encrypted package is transmitted for authentication of the first entity in opening a two-way communication channel.
Claim 18
Dependent Claim 295 words
A computer readable storage medium containing executable computer program instructions which, when executed, cause a first computer system to perform a cryptographic method including: generating, at the first computer system, a first public key M B , the first public key M B being session specific; receiving from a second computer system, at the first computer system, a second public key M A , the second public key M A being session specific; generating, at the first computer system, a first secret S B by hashing one or more parameters that are known to the first computer system and the second computer system, at least one of the parameters being a result of hashing one or more of the following: a first password P B , the first public key M B , and the second public key M A ; generating, at the first computer system, a first session key K B , the first session key K B being different from the first secret S B , both the first session key K B and the first secret S B being computed from the second public key M A ; encrypting, at the first computer system, a first random nonce N B with the first session key K B or the first secret S B to obtain a first encrypted result; encrypting, at the first computer system, the first encrypted result with the other one of the first session key K B or the first secret S B to obtain an encrypted random nonce; transmitting the encrypted random nonce from the first computer system to the second computer system; and authenticating through determining whether a response to the encrypted random nonce includes a correct modification of the first random nonce N B .
Claim 19
Dependent Claim 295 words
A computer readable storage medium containing executable computer program instructions which, when executed, cause a first computer system to perform a cryptographic method including: generating, at the first computer system, a first public key M B , the first public key M B being session specific; receiving from a second computer system, at the first computer system, a second public key M A , the second public key M A being session specific; generating, at the first computer system, a first secret S B by hashing one or more parameters that are known to the first computer system and the second computer system, at least one of the parameters being a result of hashing one or more of the following: a first password P B , the first public key M B , and the second public key M A ; generating, at the first computer system, a first session key K B , the first session key K B being different from the first secret S B , both the first session key K B and the first secret S B being computed from the second public key M A ; encrypting, at the first computer system, a first random nonce N B with the first session key K B or the first secret S B to obtain a first encrypted result; encrypting, at the first computer system, the first encrypted result with the other one of the first session key K B or the first secret S B to obtain an encrypted random nonce; transmitting the encrypted random nonce from the first computer system to the second computer system; and authenticating through determining whether a response to the encrypted random nonce includes a correct modification of the first random nonce N B .
Claim 20
Dependent Claim 363 words
A distributed readable storage medium containing executable computer program instructions which, when executed, cause a first computer system and a second computer system to perform a computer cryptographic method through a network, the method comprising: generating at the first computer system a first public key M B , the first public key M B being session specific; generating at the second computer system a second public key M A , the second public key M A being session specific; receiving at the first computer system the second public key M A ; generating, at the first computer system, a first secret S B by hashing one or more parameters that are known to the first computer system and the second computer system, at least one of the parameters being a result of hashing one or more of the following: a first password P B , the first public key M B , and the second public key M A ; generating at the first computer system a session key K B , the session key K B being different from the first secret S B , both the session key K B and the first secret S B being computed from the second public key M A ; generating at the first computer system a first random nonce N B ; encrypting at the first computer system the first random nonce N B with the first session key K B or the first secret S B to obtain a first encrypted result; encrypting at the first computer system the first encrypted result with the other one of the first session key K B or the first secret S B to obtain an encrypted random nonce; transmitting the encrypted random nonce and the first public key M B from the first computer system to the second computer system to establish the session key at the second computer system; receiving at the first computer system from the second computer system a response to the encrypted random nonce; and authenticating the second computer system at the first computer system through determining whether the response includes a correct modification of the first random nonce N B .
Claim 21
Dependent Claim 363 words
A distributed readable storage medium containing executable computer program instructions which, when executed, cause a first computer system and a second computer system to perform a computer cryptographic method through a network, the method comprising: generating at the first computer system a first public key M B , the first public key M B being session specific; generating at the second computer system a second public key M A , the second public key M A being session specific; receiving at the first computer system the second public key M A ; generating, at the first computer system, a first secret S B by hashing one or more parameters that are known to the first computer system and the second computer system, at least one of the parameters being a result of hashing one or more of the following: a first password P B , the first public key M B , and the second public key M A ; generating at the first computer system a session key K B , the session key K B being different from the first secret S B , both the session key K B and the first secret S B being computed from the second public key M A ; generating at the first computer system a first random nonce N B ; encrypting at the first computer system the first random nonce N B with the first session key K B or the first secret S B to obtain a first encrypted result; encrypting at the first computer system the first encrypted result with the other one of the first session key K B or the first secret S B to obtain an encrypted random nonce; transmitting the encrypted random nonce and the first public key M B from the first computer system to the second computer system to establish the session key at the second computer system; receiving at the first computer system from the second computer system a response to the encrypted random nonce; and authenticating the second computer system at the first computer system through determining whether the response includes a correct modification of the first random nonce N B .
Claim 22
Dependent Claim 330 words
A computer system for performing a cryptographic method through a network, the computer system comprising: a processor; a network interface coupled to the network and coupled to the processor, the network interface to receive a request including information on a user identification; and a storage device coupled to the processor, the storage device to store a user password corresponding to the user identification, and wherein the processor is to perform a method, including: receiving a second public key M A through the network interface from a second computer system, the second public key M A being session specific; generating, at the first computer system, a first secret S B by hashing one or more parameters that are known to the first computer system and the second computer system, at least one of the parameters being a result of hashing one or more of the following: a first password P B , the first public key M B , and the second public key M A ; generating a first session key K B , the session key K B being different from the first secret S B , both the session key K B and the first secret S B being computed from the second public key M A ; generating a first public key M B , the first public key M B being session specific; generating a first random nonce N B , the first random nonce N BB ; encrypting the first random nonce N B with the session key K B or the first secret S B to obtain a first encrypted result; encrypting the first encrypted result with the other one of the session key K B or the first secret S B to obtain an encrypted random nonce; transmitting the encrypted random nonce and the first public key M B through the network interface; authenticating through determining whether a response to the encrypted random nonce includes a correct modification of the first random nonce.
Claim 23
Dependent Claim 330 words
A computer system for performing a cryptographic method through a network, the computer system comprising: a processor; a network interface coupled to the network and coupled to the processor, the network interface to receive a request including information on a user identification; and a storage device coupled to the processor, the storage device to store a user password corresponding to the user identification, and wherein the processor is to perform a method, including: receiving a second public key M A through the network interface from a second computer system, the second public key M A being session specific; generating, at the first computer system, a first secret S B by hashing one or more parameters that are known to the first computer system and the second computer system, at least one of the parameters being a result of hashing one or more of the following: a first password P B , the first public key M B , and the second public key M A ; generating a first session key K B , the session key K B being different from the first secret S B , both the session key K B and the first secret S B being computed from the second public key M A ; generating a first public key M B , the first public key M B being session specific; generating a first random nonce N B , the first random nonce N BB ; encrypting the first random nonce N B with the session key K B or the first secret S B to obtain a first encrypted result; encrypting the first encrypted result with the other one of the session key K B or the first secret S B to obtain an encrypted random nonce; transmitting the encrypted random nonce and the first public key M B through the network interface; authenticating through determining whether a response to the encrypted random nonce includes a correct modification of the first random nonce.
Claim 24
Dependent Claim 37 words
The computer system of claim 19 wherein the network is a network operating according to a hypertext transfer protocol; and the first public key M B is transmitted with the encrypted random nonce for session key exchange.
Claim 25
Dependent Claim 236 words
A cryptographic method, comprising: receiving at a first entity a second public key M A and an encrypted second random number from a second entity; generating a first secret S B by hashing one or more parameters that are known to the first entity and the second entity, at least one of the parameters being a result of hashing one or more of the following: a first password P B , a first public key M B , and the second public key M A ; generating a first session key K B , the session key K B being different from the first secret S B , both the session key K B and the first secret S B being computed from the second public key M A ; decrypting, using the first secret S B and the first session key K B , to retrieve a second random number N A from the encrypted second random number; modifying the second random number N A to obtain a modified second random number; encrypting the modified second random number with the first session key K B or the first secret S B to obtain a first encrypted result; encrypting the first encrypted result with the other one of the first session key K B or the first secret S B to obtain an encrypted random package; and transmitting the encrypted random package from the first entity.
Claim 26
Dependent Claim 236 words
A cryptographic method, comprising: receiving at a first entity a second public key M A and an encrypted second random number from a second entity; generating a first secret S B by hashing one or more parameters that are known to the first entity and the second entity, at least one of the parameters being a result of hashing one or more of the following: a first password P B , a first public key M B , and the second public key M A ; generating a first session key K B , the session key K B being different from the first secret S B , both the session key K B and the first secret S B being computed from the second public key M A ; decrypting, using the first secret S B and the first session key K B , to retrieve a second random number N A from the encrypted second random number; modifying the second random number N A to obtain a modified second random number; encrypting the modified second random number with the first session key K B or the first secret S B to obtain a first encrypted result; encrypting the first encrypted result with the other one of the first session key K B or the first secret S B to obtain an encrypted random package; and transmitting the encrypted random package from the first entity.
Claim 27
Dependent Claim 51 words
The method of claim 21 , wherein said decrypting includes: decrypting the encrypted second random number using the first session key K B to generate the first decrypted result; and decrypting the first decrypted result using at least a first password P B and the second public key M A .
Claim 28
Dependent Claim 57 words
The method of claim 21 wherein said generating the first session key K B includes: generating a first random number R B , and computing the first session key K B from the second public key M A raised to the exponential power of the first random number R B , modulo a parameter β B .
Claim 29
Dependent Claim 41 words
The method of claim 21 wherein said generating the first secret S B includes: combining the first public key M B with the first password P B to produce a first result, and hashing the first result with a secure hash.
Claim 30
Dependent Claim 14 words
The method of claim 24 wherein the secure hash is a one-way hash function.
Claim 31
Dependent Claim 31 words
The method of claim 25 wherein the one-way hash function is one of the Secure Hash Algorithm, the Message Digest 5, Snefru, Nippon Telephone and Telegraph Hash, and the Gosudarstvennyl Standard.
Claim 32
Dependent Claim 72 words
The method of claim 21 wherein said generating the first secret S B includes: combining the first password P B and the first public key M B to generate a first combined result, and combining the first combined result and at least one of the second public key M A , the first password P B , and the first public key M B to generate the first secret S B .
Claim 33
Dependent Claim 21 words
The method of claim 21 , wherein said encrypting the modified second random number includes superencrypting the modified second random number.
Claim 34
Dependent Claim 42 words
The method of claim 21 , further including: generating a first random number N B ; and wherein said encrypting the modified second random number includes: encrypting a combination of the first random number N B and the modified second random number.
Claim 35
Dependent Claim 79 words
The method of claim 29 which further includes: receiving at the first entity a response to the encrypted random package; decrypting the response to obtain a combination of a string of random bits and a modified first random nonce; and retrieving the modified first random nonce from the combination of the string of random bits and the modified first random nonce; determining whether the modified first random nonce was correctly modified from the first random number N B .
Claim 36
Dependent Claim 44 words
The method of claim 30 wherein said determining whether the modified first random nonce was correctly modified includes: checking whether the modified first random nonce equals a modification of the first random nonce as applied to the first random nonce by the first entity.
Claim 37
Dependent Claim 41 words
The method of claim 30 wherein said determining whether the modified first random nonce was correctly modified includes: checking whether the modified first random nonce less a modification thereof as applied thereto by the first entity equals the first random nonce.
Claim 38
Dependent Claim 262 words
A computer readable storage medium containing executable computer program instructions which, when executed, cause a first computer system to perform a cryptographic method including: receiving at the first computer system a second public key M A and an encrypted second random number from a second computer system; generating a first secret S B by hashing one or more parameters that are known to the first computer system and the second computer system, at least one of the parameters being a result of hashing one or more of the following: a first password P B , a first public key M B , and the second public key M A ; generating a first session key K B , the session key K B being different from the first secret S B , both the session key K B and the first secret S B being computed from the second public key M A ; decrypting, using the first secret S B and the first session key K B , to retrieve the second random number N A from the encrypted second random number; modifying the second random number N A to obtain a modified second random number; encrypting the modified second random number with the first session key K B or the first secret S B to obtain a first encrypted result; encrypting the first encrypted result with the other one of the first session key K B or the first secret S B to obtain an encrypted random package; transmitting the encrypted random package from the first computer system for authentication.
Claim 39
Dependent Claim 262 words
A computer readable storage medium containing executable computer program instructions which, when executed, cause a first computer system to perform a cryptographic method including: receiving at the first computer system a second public key M A and an encrypted second random number from a second computer system; generating a first secret S B by hashing one or more parameters that are known to the first computer system and the second computer system, at least one of the parameters being a result of hashing one or more of the following: a first password P B , a first public key M B , and the second public key M A ; generating a first session key K B , the session key K B being different from the first secret S B , both the session key K B and the first secret S B being computed from the second public key M A ; decrypting, using the first secret S B and the first session key K B , to retrieve the second random number N A from the encrypted second random number; modifying the second random number N A to obtain a modified second random number; encrypting the modified second random number with the first session key K B or the first secret S B to obtain a first encrypted result; encrypting the first encrypted result with the other one of the first session key K B or the first secret S B to obtain an encrypted random package; transmitting the encrypted random package from the first computer system for authentication.
Claim 40
Dependent Claim 269 words
A distributed readable storage medium containing executable computer program instructions which, when executed, cause a first computer system and a second computer system to perform a cryptographic method through a network, the method including: receiving, from the second computer system and at the first computer system, a second public key M A and an encrypted second random number; generating a first secret S B by hashing one or more parameters that are known to the first computer system and the second computer system, at least one of the parameters being a result of hashing one or more of the following: a first password P B , a first public key M B , and the second public key M A ; generating a first session key K B , the session key K B being different from the first secret S B , both the session key K B and the first secret S B being computed from the second public key M A ; decrypting, using the first secret S B , to retrieve a second random number N A from the encrypted second random number; modifying the second random number N A to obtain a modified second random number; encrypting the modified second random number with the first session key K B or the first secret S B to obtain a first encrypted result; encrypting the first encrypted result with the other one of the first session key K B or the first secret S B to obtain an encrypted random package; transmitting the encrypted random package from the first computer system to the second computer system.
Claim 41
Dependent Claim 269 words
A distributed readable storage medium containing executable computer program instructions which, when executed, cause a first computer system and a second computer system to perform a cryptographic method through a network, the method including: receiving, from the second computer system and at the first computer system, a second public key M A and an encrypted second random number; generating a first secret S B by hashing one or more parameters that are known to the first computer system and the second computer system, at least one of the parameters being a result of hashing one or more of the following: a first password P B , a first public key M B , and the second public key M A ; generating a first session key K B , the session key K B being different from the first secret S B , both the session key K B and the first secret S B being computed from the second public key M A ; decrypting, using the first secret S B , to retrieve a second random number N A from the encrypted second random number; modifying the second random number N A to obtain a modified second random number; encrypting the modified second random number with the first session key K B or the first secret S B to obtain a first encrypted result; encrypting the first encrypted result with the other one of the first session key K B or the first secret S B to obtain an encrypted random package; transmitting the encrypted random package from the first computer system to the second computer system.
Claim 42
Dependent Claim 315 words
A computer system for performing a cryptographic method through a network, the computer system comprising: a processor; a network interface coupled to the network and coupled to the processor, the network interface to receive a request including information on a user identification; and a storage device coupled to the processor, the storage device to store a user password associated with the user identification, and wherein the processor is to perform a method, including generating a first public key M B ; receiving a second public key M A and an encrypted second random number through the network interface from a second computer system; generating a first secret S B by hashing one or more parameters that are known to the first computer system and the second computer system, at least one of the parameters being a result of hashing one or more of the following: a first password P B , a first public key M B , and the second public key M A ; generating a first session key K B , the session key K B being different from the first secret S B , both the session key K B and the first secret S B being computed from the second public key M A ; decrypting, using the first secret S B and the first session key K B , to retrieve the second random number N A from the encrypted second random number; modifying the second random number N A to obtain a modified second random number; encrypting the modified second random number with the first session key K B or the first secret S B to obtain a first encrypted result; encrypting the first encrypted result with the other one of the first session key K B or the first secret S B to obtain an encrypted random package; transmitting the encrypted random package through the network interface.
Claim 43
Dependent Claim 315 words
A computer system for performing a cryptographic method through a network, the computer system comprising: a processor; a network interface coupled to the network and coupled to the processor, the network interface to receive a request including information on a user identification; and a storage device coupled to the processor, the storage device to store a user password associated with the user identification, and wherein the processor is to perform a method, including generating a first public key M B ; receiving a second public key M A and an encrypted second random number through the network interface from a second computer system; generating a first secret S B by hashing one or more parameters that are known to the first computer system and the second computer system, at least one of the parameters being a result of hashing one or more of the following: a first password P B , a first public key M B , and the second public key M A ; generating a first session key K B , the session key K B being different from the first secret S B , both the session key K B and the first secret S B being computed from the second public key M A ; decrypting, using the first secret S B and the first session key K B , to retrieve the second random number N A from the encrypted second random number; modifying the second random number N A to obtain a modified second random number; encrypting the modified second random number with the first session key K B or the first secret S B to obtain a first encrypted result; encrypting the first encrypted result with the other one of the first session key K B or the first secret S B to obtain an encrypted random package; transmitting the encrypted random package through the network interface.
Claim 44
Dependent Claim 40 words
The computer system of claim 35 wherein the network is a network operating according to a hypertext transfer protocol; and the first public key M B is transmitted for session key exchange before the encrypted second random number is received.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2011-09-09 2012-03-10 2012-09-09 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2015-09-09 2016-03-10 2016-09-09 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2019-09-09 2020-03-10 2020-09-09 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag