throbber
USOO698,5583B1
`
`(12) United States Patent
`Brainard et al.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 6,985,583 B1
`Jan. 10, 2006
`
`(54) SYSTEM AND METHOD FOR
`AUTHENTICATION SEED DISTRIBUTION
`
`(75)
`
`(73)
`(*)
`
`(21)
`(22)
`(51)
`
`(52)
`
`(58)
`
`(56)
`
`Inventors: John G. Brainard, Sudbury, MA (US);
`Burton S. Kaliski, Jr., Wellesley, MA
`(US); Magnus Nyström, Concord, MA
`(US); Ronald L. Rivest, Arlington, MA
`(US)
`Assignee: RSA Security Inc., Bedford, MA (US)
`Notice:
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`Appl. No.: 09/304,775
`Filed:
`May 4, 1999
`
`Int. Cl.
`(2006.01)
`H04L 9/00
`(2006.01)
`H04L 9/32
`U.S. Cl. ........................ 380/44; 380/277; 713/168;
`713/169; 713/171; 713/176; 713/200
`Field of Classification Search ........ 713/168-176;
`380/44, 277
`See application file for complete Search history.
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`Hargrove
`4,104,694
`4,145,568
`Ehrat
`4,145,569
`Ehrat
`4,238.854
`EhrSam et al. .............. 713/165
`4,317,957
`Sendrow
`4,320,387
`Powell
`Campbell, Jr.
`4,369,332
`4,438,824
`Mueller-Schloer
`4,471,216
`Herve
`Stellberger
`4,509,093
`4,536,647
`Atalla et al.
`4,543,657
`Wilkinson
`4.575,621
`Dreifus
`4,578,530
`Zeidler
`Plangger et al.
`4,582,434
`
`8/1978
`3/1979
`3/1979
`* 12/1980
`3/1982
`3/1982
`1/1983
`3/1984
`9/1984
`4/1985
`8/1985
`9/1985
`3/1986
`3/1986
`4/1986
`
`4,599,489 A 7/1986 Cargile
`4,605,820 A 8/1986 Campbell, Jr.
`4,609.777 A
`9/1986 Cargile
`4,614,861 A 9/1986 Pavlov et al.
`
`(Continued)
`FOREIGN PATENT DOCUMENTS
`
`EP
`
`O140013 B1
`
`5/1985
`
`(Continued)
`OTHER PUBLICATIONS
`FIPS Publ. 190, “Guideline for the use of advanced authen
`tication technology alternatives”, Sep. 28, 1994, section 4;
`Section 4.4.2.1 particularly.*
`
`(Continued)
`Primary Examiner Ayaz Sheikh
`ASSistant Examiner-Ronald Baum
`(74) Attorney, Agent, or Firm-Wilmer Cutler Pickering
`Hale and Dorr LLP
`
`(57)
`
`ABSTRACT
`
`In one embodiment of a user authentication System and
`method according to the invention, a device shares a Secret,
`referred to as a master Seed, with a server. The device and
`the Server both derive one or more Secrets, referred to as
`Verifier Seeds, from the master Seed, using a key derivation
`function. The server shares a verifier seed with one or more
`Verifiers. The device, or an entity using the device, can
`authenticate with one of the verifiers using the appropriate
`verifier seed. In this way, the device and the verifier can
`share a secret, the verifier seed for that verifier, without that
`Verifier knowing the master Seed, or any other verifier Seeds.
`Thus, the device need only Store the one master Seed, have
`access to the information necessary to correctly derive the
`appropriate Seed, and have Seed derivation capability. A
`Verifier cannot compromise the master Seed, because the
`Verifier does not have access to the master Seed.
`
`35 Claims, 5 Drawing Sheets
`
`102
`
`DEVICE
`
`104
`
`
`
`SERVER
`
`AUTH
`USING
`
`VERFER
`
`108
`
`USR Exhibit No. 2025
`
`

`

`US 6,985,583 B1
`Page 2
`
`U.S. PATENT DOCUMENTS
`
`FOREIGN PATENT DOCUMENTS
`
`EP
`EP
`EP
`FR
`JP
`JP
`JP
`WO
`
`7/1985
`O148960 B1
`O566811 A1 10/1993
`O678836 B1
`10/1995
`26O7544
`6/1988
`59-11963O
`5/1991
`2835,433
`6/1997
`2884.338
`4/1999
`88/O6826
`9/1988
`
`4,720,860 A 1/1988 Weiss
`4,731.841 A 3/1988 Rosen et al.
`4,800,590 A
`1/1989 Vaughan
`4,819,267 A
`4/1989 Cargile et al.
`4,849,613 A 7/1989 Eisele
`2Y- - - 2
`4.856,062 A 8/1989 Weiss
`4.885,778 A 12/1989 Weiss
`4,890,323 A 12/1989 Beker et al.
`OTHER PUBLICATIONS
`4,928,098 A 5/1990 Dannhaeuser
`Chevassut, O., et al., “One-time Verifier based Encrypted
`4,933,971. A * 6/1990 Bestock et al. ............... 380/44
`Key Exchange”, Lawrence Berkeley National Lab.,
`4944008 A 7/1990 Piosenka et al.
`Springer-Verlag 2004-2005, entire document.*
`4,998.279 A 3/1991 Weiss
`Kim, Y., et al., “Secure authentication System that generates
`5,016,276 A 5/1991 Matumoto et al. ............ 380/45
`seed from biometric information’, Feb. 10, 2005, Optical
`5,023.908 A 6/1991 Weiss
`Society of America, Applied Optics, vol. 44, No. 5, entire
`5,046,125 A 9/1991 Takizawa
`article.*
`5,058,161 A 10/1991 Weiss
`American National Standard for Financial Services.
`5,097.505 A
`3/1992 Weiss
`“Financial Services Key Management Using the DEA,”
`5,101,430 A 3/1992 Periou
`American Bankers Association, copyright 1992, 1999, pp.
`5,168,520. A 12/1992 Weiss
`i-iii, 1-9, 34-52.
`5,180.902 A
`1/1993 Schick et al.
`RSA Laboratories, a division of RSA Data Security, Inc.
`A
`1. W. al.
`“PKCS is v2.0: Password-Based Cryptography Standard.”
`5280,527 A 1/1994 Gullman et al.
`Mar 25, 1999, copyright 1991-1999, pp. 1-30.
`5,347,580 A * 9/1994 Molva et al. ............... asso
`Standard Specifications for Public Key Cryptography, IEEE
`5,361,062. A 11/1994 Weiss et al.
`P 1363 / D 13 (Draft Version 13), Institute of Electrical and
`5,367,572 A 11/1994 Weiss
`Electronics Engineers, Inc., New York, NY, Nov. 12, 1999,
`5,479,512. A 12/1995 Weiss
`pp. 1, 4-6, 53-57, 71-73.
`5,485,519 A
`1/1996 Weiss
`Freier, et al. The SSL Protocol, Version 3.0, http://home.
`5,513.263 A * 4/1996 White et al. .................. 380/44
`netscape.com/eng/ssI3/3-SPEC.htm, Mar. 1996, pp. 1-26,
`5,539,824. A *
`7/1996 Bjorklund et al. .......... 380/249
`and Table of Contents, http://home.netscape.com/eng/SSl3/
`5,592,553 A
`1/1997 Guski et al.
`SSl-toc.html, pp. 1-3.
`5,655,077 A * 8/1997 Jones et al. ................. 713/201
`European Patent Office, European Search Report,
`5,657,388 A 8/1997 Weiss
`International Application EP 00303741, date of completion
`5,717,756 A
`2/1998 Coleman
`of Search Jan. 16, 2002, 2 pages.
`2. A 3. 1998 Mark
`5,748,734. A *
`5/1998 Mizikovsky ................ so, Ferreira, The SmartCard: A High Security Tool in EDP",
`5,802,176 A 9/1998 Audebert
`Philips Telecommunications and Data Systems Review,
`5.841,864 A * 11/1998 Klayman et al. ........... 713/171
`Philips Telecommunicatie Industrie N.V. Hilversum, NL,
`5,887,065 A 3/1999 Audebert
`Sep. 1989, vol. 47, No. 3, pp. 1.-19.
`5.937,068 A 8/1999 Audebert
`Shamir,"Identity-Based Cryptosystems and Signature
`6,078.888 A
`6/2000 Johnson, Jr. ................... 705/1
`Schemes', Lecture Notes in Computer Science, Springer
`6,141,760 A 10/2000 Abadi et al.
`Verlag, New York, NY, US, 1985, pp. 47-53.
`6,295,359 B1* 9/2001 Cordery et al. ............... 380/44
`6,338,140 B1
`1/2002 Owens et al. ............... 713/168
`* cited by examiner
`
`2 -
`
`f1998 Audebert
`
`- -
`
`66
`
`ss
`
`USR Exhibit No. 2025
`
`

`

`U.S. Patent
`
`Jan. 10, 2006
`
`Sheet 1 of 5
`
`US 6,985,583 B1
`
`H_LTV7
`
`SONIST
`
`
`
`USR Exhibit No. 2025
`
`

`

`U.S. Patent
`
`Jan. 10, 2006
`
`Sheet 2 of 5
`
`US 6,985,583 B1
`
`
`
`s
`
`USR Exhibit No. 2025
`
`

`

`U.S. Patent
`
`Jan. 10, 2006
`
`Sheet 3 of 5
`
`US 6,985,583 B1
`
`
`
`dELLS
`
`00?
`
`dELS
`
`ZOZ
`
`USR Exhibit No. 2025
`
`

`

`U.S. Patent
`
`Jan. 10, 2006
`
`Sheet 4 of 5
`
`US 6,985,583 B1
`
`
`
`S
`
`:
`
`1.
`
`9
`
`(Ot
`CD
`
`USR Exhibit No. 2025
`
`

`

`U.S. Patent
`
`Jan. 10, 2006
`
`Sheet 5 of 5
`
`US 6,985,583 B1
`
`
`
`
`
`- - - - - - - as as s - - - -
`
`USR Exhibit No. 2025
`
`

`

`1
`SYSTEMAND METHOD FOR
`AUTHENTICATION SEED DISTRIBUTION
`
`TECHNICAL FIELD
`
`This invention relates to the field of computer-based
`Security Systems and, more particularly, to the distribution of
`authentication Seeds.
`
`BACKGROUND INFORMATION
`
`In Security Systems, Verifiers are used to authenticate, that
`is to Verify the identity of, a perSon or other entity Such as
`a computer. When an entity has been authenticated, meaning
`that the identity of the entity has been determined by the
`Verifier, the entity is allowed access, for example physical
`access to a physical location, in the case of a physical
`Security System, or electronic access to information (e.g.
`financial records, computer data, network access, etc.), in
`data Security Systems.
`There are many possible configurations for verifiers.
`Verifiers can receive input from keypads, keyboards, card
`readers, cameras, microphones, telephone and computer
`networks, and other Such data input devices. AS output,
`Verifiers activate physical mechanisms, Send electronic data
`Signals, configure Software, or take Such other action to
`provide access. Verifiers can be implemented in various
`ways, for example as Special purpose electronic and/or
`mechanical Systems, or as general purpose computers, poS
`sibly, but not necessarily, in electrical communication with
`Special-purpose hardware.
`Some verifiers use knowledge of a shared secret to
`authenticate an entity. For example, knowledge of a personal
`identification number, password, or passphrase can be used
`to Verify an entity. At the time that authentication takes
`place, the entity either reveals the Secret or otherwise proves
`knowledge of the Secret. If the entity shows knowledge of
`the Secret, the entity is authenticated.
`In Some Systems, an entity uses a physical or digital
`device, referred to as a token, that incorporates a Secret. The
`Secret, Stored in Some manner in the device, may or may not
`be known to the entity using the device. A common door key
`is one simple mechanical example of Such a device. The
`shape of the key is a shared Secret. When a key is inserted
`into a lock, the lock Verifies that the key is of the correct
`shape. The door key shows knowledge of the Secret to the
`verifier (the lock), and allows entry. An attacker who learns
`the exact shape of the key can generate an appropriate token
`and authenticate to the lock.
`A bank card is a device that can contain a Secret identi
`fication number that is revealed when the card is accessed by
`an automatic teller machine ("ATM"). Some bank cards
`incorporate cryptography to make forging of bank cards
`more difficult. Also, to provide an added layer of Security,
`automatic teller machines require the user to possess the
`device (bank card) containing Secret information, and
`require the user to enter a Personal Identification Number
`(“PIN”), which is another secret shared between the bank’s
`Verifier and the account holder.
`Some devices, to prove knowledge of a Secret contained
`within the device, provide an authentication code that is
`based upon, but different from, the Secret code contained
`within the device. The use of Such an authentication code
`allows the device to show knowledge of a secret without
`revealing it. In Some Systems, the authentication code is
`based on time-dependent information. The use of this sort of
`device has security benefits in that the secret is more difficult
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 6,985,583 B1
`
`2
`to determine by eavesdropping in the communications chan
`nel between the entity and the verifier, since the secret itself
`is not revealed.
`One example of this Sort of device used by a person to
`authenticate to a verifier is a token that includes an authen
`tication code display. The perSon reads an authentication
`code from the display, and transmits the authentication code
`to the verifier. In Such a System, the user may never know the
`shared Secret. Some Such tokens accept user input, Such as
`a PIN, and provide a result in response to the user input as
`well as other information (Such as time-dependent informa
`tion).
`One token of this type Stores a Secret code, referred to as
`a Seed, and mathematically combines the Secret code with a
`time-varying value and a personal identification code pro
`Vided by the user to generate an authentication code. The
`mathematical combination takes place in Such a way that the
`Secret code Stored in the token cannot be determined from
`the result-the Secret code is combined cryptographically
`with the current time and other information. In another
`System that is a challenge-response System, meaning that the
`Verifier transmits a challenge for the user to respond to, the
`Secret code is cryptographically combined with the chal
`lenge to produce an output that is Sent to the verifier as a
`response to the challenge.
`To Verify an entity using a shared Secret, the verifier needs
`to have knowledge of the Shared Secret. In a Security System
`that Verifies a large number of entities, there is a tradeoff
`between Security and Verifier availability. If there are a large
`number of verifiers, there is more likely to be a verifier
`available when a particular entity requires authentication.
`However, as the number of verifiers that have knowledge of
`a Secret increases, it is increasingly more difficult to main
`tain the Secrecy of the Secret. For example, as the number of
`Verifiers increases, So does the chance that one of the
`Verifiers can be compromised in Some fashion. Yet, if the
`number of verifiers is limited, it possible that a verifier will
`not be available to authenticate an entity when the entity
`requires authentication.
`In addition, a Single device presently cannot be used to
`acceSS multiple independent Services. For example, the same
`device cannot be used to access an enterprise's computer
`System and a financial institution's web page. Even if each
`independent Service trusts the user and the device, the
`Services do not trust each other. In the example just men
`tioned, a bank does not trust the user's employer. If each of
`the Services share the same Secret with the device, then each
`Service has information that can compromise the others. This
`prevents use of a single device from being used with
`Verifiers associated with independent Services.
`The utility of a security system is limited by the number
`and variety of Verifiers to which an entity can conveniently
`authenticate. If the entity interacts with a number of verifiers
`that share different secrets with that entity, the entity will
`have to manage a number of Secrets (or devices containing
`Secrets), where each Secret is used to authenticate to one or
`Small number of Verifiers. Managing a large number of
`Secrets adds complexity to a computer-based entity, and is
`inconvenient for a human entity. Even the process of
`Securely sharing a different Secret between an entity and
`each of a large number of Verifiers can be inconvenient and
`cumberSome.
`Similar issues arise in the area of Secure communications,
`where a Single shared Secret is used as an encryption key. To
`communicate Securely with many other entities, an entity
`either has to have a separate shared Secret with each other
`
`USR Exhibit No. 2025
`
`

`

`US 6,985,583 B1
`
`3
`entity, or has to share the same Secret with more than one
`entity, thereby reducing the Secrecy (and Security) of the
`shared Secret.
`Public key cryptography can be used to avoid the need to
`Securely share a Secret between each two parties that wish to
`communicate or authenticate. However, public-key cryptog
`raphy is impractical in many user and device authentication
`Settings, at least partly because of the large computation
`power required to accomplish the calculations, and the
`complexity of managing certificates and revocation lists.
`
`SUMMARY OF THE INVENTION
`
`4
`Verifier Seed using the master Seed and information associ
`ated with a Second Verifier, and transmitting the Second
`verifier seed to the second verifier. In another embodiment,
`the method includes, after the transmitting Step, generating
`an authentication code in response to the Verifier Seed.
`In one embodiment, the generating Step includes gener
`ating an authentication code in response to the verifier Seed
`and a time dependent value. In another embodiment, the
`method includes the Step of authenticating using the authen
`tication code. In another embodiment, the authenticating
`Step includes authenticating a user or a device by Verifying
`the authentication code. In another embodiment, the authen
`ticating Step includes transmitting the authentication code to
`the Verifier. In another embodiment, the generating Step
`includes randomly generating and/or pseudorandomly gen
`erating the master Seed.
`In one embodiment, the deriving Step includes deriving
`the Verifier Seed in response to a time identifier. In another
`embodiment, the deriving Step includes deriving a verifier
`Seed by using the master Seed and information associated
`with a verifier as inputs to a key derivation function. In
`another embodiment, the key derivation function is a hash
`function.
`In another aspect of the invention, a System for distrib
`uting authentication information associated with a device
`includes a Seed generator for generating a master Seed
`asSociated with a device, a Server for deriving a verifier Seed
`using the master Seed and information associated with a
`Verifier, and a transmitter for transmitting the Verifier Seed to
`the verifier. In one embodiment, the System includes a
`transmitter for transmitting the master Seed to the device. In
`another embodiment, the System includes a communication
`channel for Sharing the master Seed with the device and the
`Server. In another embodiment, the Server derives a Second
`Verifier Seed using the master Seed and information associ
`ated with a Second Verifier, and the transmitter transmits the
`Second Verifier Seed to the Second verifier. In another
`embodiment, the System includes an authentication code
`generator for generating an authentication code in response
`to the verifier seed. In another embodiment, the system
`includes an authentication code generator for generating an
`authentication code in response to the verifier Seed and a
`time dependent value. In another embodiment, the Seed
`generator is a random generator and/or a pseudorandom
`generator. In another embodiment, the Server includes a key
`derivation function.
`In another aspect of the invention, a method for authen
`tication includes Storing a master Seed associated with a
`device, deriving a verifier Seed using the master Seed and
`information associated with a verifier, and generating an
`authentication code in response to the verifier Seed. In one
`embodiment, the method includes authenticating a user with
`the authentication code. In another embodiment, the method
`includes transmitting the authentication code to a verifier. In
`another embodiment, the method includes receiving the
`authentication code by a verifier.
`In another aspect of the invention, an authentication
`System includes a memory for Storing a master Seed asso
`ciated with a device, a Server for deriving a verifier Seed
`using the master Seed and information associated with a
`Verifier, and an authentication code generator for generating
`an authentication code in response to the Verifier Seed.
`In another aspect of the invention, a verifier includes a
`data Store for Storing a verifier Seed associated with a device,
`an input for receiving an input authentication code, and an
`
`15
`
`25
`
`The System and method of the present invention allows an
`entity to authenticate to many verifiers without having to
`manage a large number of Secrets. An authentication System
`that is simple, and that allows the user to manage just one
`Secret, yet allows the user to authenticate with multiple
`Verifiers is a great improvement over the prior art. For
`example, a token-based System and method could allow
`authentication with Some or all of Such diverse Systems as
`(but not limited to) file servers inside and outside of one or
`more enterprises, remote acceSS Servers, Web Servers asso
`ciated with various Services (e.g. financial, business, utili
`ties, entertainment, etc.), other computers, a physical Secu
`rity System within a home or office, and a bank automatic
`teller machine. Such an authentication method and System
`avoids the complexity and cost of managing different Secrets
`or devices for different services.
`The benefit of associating a Single Secret with a user that
`is useful with multiple verifiers is beneficial even if the
`device is an electronic wallet stored on a personal computer,
`where the memory and processing limitations are much leSS
`restrictive than in a Smart card or other Small-sized token
`with limited memory and processing power. The Simplicity
`allows for Smaller, faster implementations, and also avoids
`the complexity of sharing each Secret.
`In an embodiment of a user authentication method and
`System according to the invention, a device Shares a Secret,
`referred to as a master Seed, with a server. The device and
`the Server both derive one or more Secrets, referred to as
`Verifier Seeds, from the master Seed, using a key derivation
`function. The server shares a verifier seed with one or more
`Verifiers. The device, or an entity using the device, can
`authenticate with one of the verifiers using the appropriate
`verifier seed. In this way, the device and the verifier can
`share a Secret, the Verifier Seed, without that Verifier having
`access to the master Seed, or any other verifier Seeds. Thus,
`the device need only Store the one master Seed, have acceSS
`to the information necessary to correctly derive the appro
`50
`priate verifier Seed, and have Seed derivation capability. An
`individual verifier cannot compromise the master Seed,
`because the verifier does not have access to the master Seed.
`In addition, if a particular verifier is compromised, only that
`Verifier Seed is affected, and other verifiers using other
`Verifier Seeds are not compromised.
`In one aspect of the invention, a method for distributing
`authentication information associated with a device includes
`generating a master Seed associated with the device, deriving
`a verifier Seed using the master Seed and information asso
`ciated with a verifier, and transmitting the Verifier Seed to the
`verifier. In one embodiment, the method includes, after the
`generating Step, the Step of transmitting the master Seed to
`the device. In another embodiment, the method includes,
`after the generating Step, Sharing the master Seed with the
`device and a Server. In another embodiment, the method
`includes, after the transmitting Step, deriving a Second
`
`35
`
`40
`
`45
`
`55
`
`60
`
`65
`
`USR Exhibit No. 2025
`
`

`

`US 6,985,583 B1
`
`S
`authenticator for determining whether the input authentica
`tion code was correctly generated in response to the verifier
`Seed.
`In another aspect of the invention, a token includes a data
`Store for Storing a master Seed, a key derivation function for
`deriving a verifier Seed from a master Seed in response to
`information associated with a verifier, an authentication
`code generator for generating an authentication code in
`response to a verifier Seed, and an output for providing the
`authentication code to a verifier.
`In another aspect of the invention, an authentication
`method includes generating a master Seed, Sharing the
`master Seed between a token and a server, deriving a verifier
`Seed from the master Seed using a key derivation function,
`and transmitting an authentication code responsive to the
`verifier seed.
`
`15
`
`6
`The server 104 generates a verifier seed Sassociated with
`a verifier 108. The server 104 generates the verifier seed S.
`by using a key derivation function “KDF.” Key derivation
`functions are well known in the field of encryption relating
`to user-provided passwords. User-provided passwords are
`generally not directly useful as an encryption key in con
`ventional cryptosystems. Systems that use passwords as a
`basis for encryption generally derive an encryption key from
`the password using a key derivation function. Key deriva
`tion functions are generally chosen for a capability to
`generate relatively distinct outputs for different inputs, and
`because they are hard to reverse, meaning that it is difficult,
`given a particular output, to determine the input. Various key
`derivation functions are based on hash functions, pseudo
`random functions, and So on.
`Key derivation functions typically combine the password
`with other information, referred to as a salt. The Salt need not
`be a Secret value. An iterative function also may be included
`in a key derivation function. A number, referred to as an
`iteration count, can be used to indicate how many times to
`perform an underlying function by which the key is derived.
`The incorporation of the iteration count into the key deri
`Vation function increases the effort required to derive an
`encryption key from a password. A modest number of
`iterations, for example 1000, is not likely to be a burden for
`legitimate parties when computing a key, but it will be a
`Significant burden for attackers. If the password value is a
`large random value, a Small iteration count may be used.
`In one embodiment, a key derivation function called
`PBKDF2 is used to implement the invention. PBKDF2 uses
`the message authentication code HMAC-SHA-1, which is a
`message authentication code based on the SHA-1 hash
`function. HMAC-SHA-1 takes two arguments as input. The
`first argument is an encryption key, and the Second argument
`is text that is encrypted by the encryption key. HMAC
`SHA-1 has a variable encryption key length and produces a
`20-octet (160-bit) output value. When PBKDF2 uses the
`underlying function HMAC-SHA-1, it provides two inputs
`to HMAC-SHA-1, and FMAC-SHA-1 provides a 160-bit
`output in response.
`The key derivation function PBKDF2 has as inputs a
`password (P), a Salt (S), an iteration count (c), and a length
`(Len) in octets (8-bit bytes). PBKDF2 computes each block
`of derived output independently by applying the underlying
`function (HMAC-SHA-1) for (c) iterations. A block is the
`number of bits produced as output by the underlying func
`tion, which is 160 bits for HMAC-SHA-1. On the first
`iteration, the password (P) is the first argument to the
`underlying function, and the Salt (S) concatenated with the
`block number is the Second argument to the underlying
`function. The underlying function encrypts the Salt concat
`enated with the block number using the password as the
`encryption key. In Subsequent iterations, the result of the
`previous iteration is passed as the Second argument to the
`underlying function, with the password again used as the
`encryption key. The results of all the iterations are com
`bined, using the exclusive-or operation to produce the final
`result.
`In more formal notation, the PBKDF2 key derivation
`function can be described as:
`PBKDF2 (PS,c,i)=U(\xor U\xor . . . \xor U.
`where
`U=PRF(PSINT(i)),
`U=PRF(PU),
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`In the drawings, like reference characters generally refer
`to the Same parts throughout the different views. Also, the
`drawings are not necessarily to Scale, emphasis instead
`generally being placed upon illustrating the principles of the
`invention.
`FIG. 1 is a block diagram of an embodiment of a system
`according to the invention;
`FIG. 2 is a block diagram of an embodiment of a system
`with multiple verifiers according to the invention.
`FIG. 3 is a flowchart of an embodiment of an authenti
`cation method according to the invention;
`FIG. 4 is a block diagram of an embodiment of the
`invention using a token; and
`FIG. 5 is a flowchart of an authentication method accord
`ing to the invention.
`
`25
`
`35
`
`DESCRIPTION
`
`45
`
`50
`
`Referring to FIG. 1, in one embodiment, a master Seed S.
`100 is generated for a device 102. The master seed S. 100
`40
`is a secret that is shared by the device 102 and the server 104.
`In one embodiment, the server 104 may be exclusively a
`Seed distribution Server, and in other embodiments, the
`server 104 is a data server, Such as a file server, web server,
`or authentication Server, that incorporates Seed distribution
`functionality. In one embodiment, the master seed 100 is
`generated randomly, for example by using a Sensor observ
`ing a Sufficiently random physical event. In another embodi
`ment, the master Seed S. 100 is generated by a pseudoran
`dom number generator. In other embodiments the master
`SeedS 100 is generated in other ways that produce a Secret
`number that is statistically difficult to predict.
`The master seed S. 100 is, in various embodiments,
`generated by the device 102, the server 104, or by another
`entity used for seed generation. The master seed S. 100 is
`shared by the device 102 and the server 104, preferably in
`a private manner, for example over a Secure communications
`link. In one embodiment, the device 102 generates the
`master seed S. 100 and shares it with the server 104. In
`another embodiment, the server 104 generates the master
`seed S. 100 and shares it with the device 102. In yet another
`embodiment, another entity, a Seed generator (not shown in
`FIG. 1), generates the master Seed S. 100, and communi
`cates it to either the device 102 or the server 104 for sharing
`with the other. In still another embodiment, the seed gen
`erator communicates the master seed S100 directly to both
`the device 102 and the server 104.
`
`55
`
`60
`
`65
`
`USR Exhibit No. 2025
`
`

`

`US 6,985,583 B1
`
`15
`
`7
`Here, INT (i) is a four-octet encoding of the block number
`i, most Significant octet first, and PRF is the underlying
`function. In the embodiment just described, PRF is HMAC
`SHA-1. It should be clear that other key derivation functions
`would be similarly useful, and various substitutions for the
`Verifier information and other information are possible, as
`required by the particular key derivation function. Key
`derivation functions based on underlying hash functions,
`block ciphers, message authentication codes, and So on are
`intended to be within the scope of the invention.
`In one embodiment, the key derivation function PBKDF2
`is used to derive a verifier Seed from a master Seed by using
`the master Seed as the password P, and the concatenation of
`a verifier identifier and a time identifier as the Salt S. The
`inputs to the key derivation function are thus the master
`Seed, and the concatenated verifier identifier and time iden
`tifier. Of course, either the verifier identifier and/or the time
`identifier might not be included, and instead a default value
`used. Because this information Substitutes for the Salt, the
`verifier identifier and the time identifier do not have to be
`Secret, and can be public information. AS further described
`below, the verifier identifier V, includes information about
`the Verifier, and also can include other information, Such as
`a time value.
`In one embodiment, the key derivation function KDF
`25
`takes as inputs the master Seed S. 100 and identifying
`information V, about the verifier 108. The device 102, also
`stores the master seed 100, and has access to the verifier
`identifier information V. The device 102 is therefore able
`to use the same key derivation function KDF to obtain the
`same verifier seed S from the master seed S. 100 and the
`verifier identifier information V.
`To authenticate with the verifier 108, the device 102 uses
`the verifier seed S. that is shared by the device 102 and the
`verifier 108. In one embodiment, the authentication is
`accomplished by the device 102 transmitting the verifier
`seed S. directly to the verifier 108. In another embodiment,
`the authentication is accomplished by the device 102 trans
`mitting a value mathematically derived from the verifier
`seed S. to the verifier 108. The device 102 mathematically
`derives a value from the Verifier Seed St, and transmits the
`derived value from the verifier 108. The derivation, in
`various embodiments, is accomplished using a hash func
`tion, block cipher, message authentication code, or other
`techniques. In one embodiment, the verifier Seed S is, as
`part of the derivation, combined with other information,
`Such as time-dependent information. For example, in one
`embodiment, the device 102 transmits a hash of the verifier
`seed S. In another embodiment, the device 102 transmits a
`derived time-dependent value encrypted using the verifier
`Seed S. as the encryption key. Other authentication and
`communication Systems and methods that can be utilized
`when a secret is shared by a device 102 and a verifier 108
`can be extended to use the verifier seed. For example, U.S.
`Pat. No. 4,720,860, U.S. Pat. No. 4,885,778, U.S. Pat. No.
`4856,062, U.S. Pat. No. 4,998.279, U.S. Pat. No. 5,023,908,
`U.S. Pat. No. 5,058,161, U.S. Pat. No. 5,097.505, U.S. Pat.
`No. 5,237,614, U.S. Pat. No. 5,367,572, U.S. Pat. No.
`5,361,062, U.S. Pat. No. 5,485,519, and U.S. Pat. No.
`5,657,388 describe various systems and methods for authen
`tication using shared Secrets. Such Systems can incorporate
`the System and method of the invention to use a verifier Seed
`as the basis for authentication. AS another example, a
`challenge/response system includes the verifier 108 trans
`mitting a challenge value to the device 102, and the device
`102 encrypting the

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket