Zero-knowledge authentication proves identity without revealing information about a secret that is used to prove that identity. An authentication agent performs authentication of a prover agent without knowledge or transfer of the secret. A non-centralized zero-knowledge authentication system contains multiple authentication agents, for access by multiple computers seeking access on a computer network through local prover agents. Once authenticated, those multiple computers may also implement authentication agents. The secret may periodically expire by publishing a new encrypted secret by a trusted source, thwarting attempts to factor or guess information about the secret.
|
6. A method of protecting a host computer from unauthorized access by a client computer over a computer network, comprising the steps of:
installing a prover agent application on the client computer;
installing a verifier agent application on the host computer;
creating a trusted source application on the computer network to generate and publish encrypted values of a secret and product of first and second prime numbers;
reading the encrypted values for the secret and product, by the prover and verifier from the trusted source;
decrypting the secret, by the prover and verifier;
decrypting the product, by the prover and verifier;
performing a plurality of verification dialog between the prover and verifier over the network, wherein the prover demonstrates knowledge of the secret and product without exposing the values of the secret and product, and wherein the client is denied access to a secure area of the host when the prover fails to demonstrate knowledge of the secret and product and granted access to the secure area when the client succeeds in demonstrating knowledge of the secret and product;
wherein the prover has values for s, n and t, s being the secret, n being the product, and t being a size of an answer set and wherein the verifier having values for s, n and t; the verification dialog between the prover and verifier including:
generating r as a random number by the prover agent;
calculating x by the prover agent, r being raised to power of t modulus n;
sending x from the prover agent to the verifier agent, over the network;
calculating b by the verifier agent, b being further defined as a member of set of integers from zero through t−1;
sending b from the verifier agent to the prover agent, over the network;
calculating y by the prover agent, y being a product of r*s raised to power of b;
sending y from the prover agent to the verifier agent, over the network; and
determining authentication of the prover agent, by determining equivalence of a first equation to a second equation, if y is not equal to zero, the first equation is y^t mod n and the second equation is (xv^b) mod n.
10. A method of protecting a host computer from unauthorized access over a computer network, comprising the steps of:
installing a prover agent application on a client computer;
installing a verifier agent application on the host computer;
creating a trusted source application on the computer network to generate and publish encrypted values of a secret and product of first and second large prime numbers;
reading the encrypted values for the secret and product, by the prover and verifier from the trusted source;
decrypting the secret, by the prover and verifier;
decrypting the product, by the prover and verifier;
performing a plurality of verification dialog between the prover and verifier over the network, wherein the prover demonstrates knowledge of the secret and product without exposing the values of the secret and product, and wherein the client is denied access to a secure area of the host when the prover fails to demonstrate knowledge of the secret and product and granted access to the secure area when the client succeeds in demonstrating knowledge of the secret and product;
installing a first agent to be authenticated on a third computer on the network, the first agent having values for s, n and t, s being the secret, n being the product, and t being a size of an answer set;
installing a second agent on a fourth computer on the network, to authenticate the first agent, the second agent having values for s, n, and t;
generating r as a random number generated by the first agent;
calculating x by the first agent, r being raised to power of t modulus n;
sending x from the first agent to the second agent, over the network;
calculating b by the second agent, b being further defined as a member of set of integers from zero through t−1;
sending b from the second agent to the first agent, over the network;
calculating y by the first agent, y being a product of r*s raised to power of b;
sending y from the first agent to the second agent, over the network; and
determining authentication of the first agent, by determining equivalence of a first equation to a second equation, if y is not equal to zero, first equation is y^t mod n and second equation is (xv^b) mod n.
1. A method of protecting a host computer from unauthorized access by a client computer over a computer network, comprising the steps of:
installing a prover agent application on the client computer;
installing a verifier agent application on the host computer;
creating a trusted source application on the computer network to generate and publish encrypted values of a secret and product of first and second large prime numbers;
reading the encrypted values for the secret and product, by the prover and verifier from the trusted source;
decrypting the secret, by the prover and verifier;
decrypting the product, by the prover and verifier;
performing a plurality of verification dialog between the prover and verifier over the network, wherein the prover demonstrates knowledge of the secret and product without exposing the values of the secret and product, and wherein the client is denied access to a secure area of the host when the prover fails to demonstrate knowledge of the secret and product and granted access to the secure area when the client succeeds in demonstrating knowledge of the secret and product;
installing a first agent to be authenticated on a third computer on the network, the first agent having values for s, n and t, s being the secret, n being the product, and t being a size of an answer set;
installing a second agent on a fourth computer on the network, to authenticate the first agent, the second agent having values for s, n, and t;
generating r as a random number generated by the first agent;
calculating x by the first agent, r being raised to power of t modulus n;
sending x from the first agent to the second agent, over the network;
calculating b by the second agent, b being further defined as a member of set of integers from zero through t−1;
sending b from the second agent to the first agent, over the network;
calculating y by the first agent, y being a product of r*s raised to power of b;
sending y from the first agent to the second agent, over the network; and
determining authentication of the first agent, by determining equivalence of a first equation to a second equation, if y is not equal to zero, first equation is y^t mod n and second equation is (xv^b) mod n.
2. The method of
4. The system of
5. The system of
8. The system of
9. The system of
12. The system of
13. The system of
|
This application claims priority to U.S. application No. 60/418,889, filed Oct. 16, 2002, which is incorporated herein by reference.
Computer systems intercommunicate via computer networks. For example, a first computer system frequently communicates with a second computer system over a computer network to obtain information. The computer network may include many different communication media. In one example, the computer network is an Ethernet local area network (“LAN”). In another example, the computer network is a wireless LAN. Information stored on the first computer system is often sensitive such that access to the information must be restricted. Accordingly, the first computer system often requires that the second computer system be authenticated before allowing the second computer system to access the information. Access to the computer network may also be restricted, requiring any computer system wishing to join the computer network to be authenticated before communicating with other devices on the network.
Authentication typically utilizes an identification protocol that requires a computer system to identify itself with authority to access a restricted computer system. In one example, a first computer system may require a “password” from the second computer system to enable authentication. However, in situations where the communication between the first and second computer systems is monitored by a third computer system, the password may be obtained by the third computer system, allowing unauthorized access by the third computer system to the first computer system. Identification protocols that provide authentication without transmission of a secret password, known as a ‘key’, are therefore utilized. A zero-knowledge identification protocol (“ZKIP”) is one example of a protocol that provides authentication without transmitting the key, thereby preventing the key from being stolen and misused.
Typically, in a computer network that uses authentication, there is only one authenticator that stores keys used to authenticate requests from other computer systems. The use of a single authenticator, however, may result in access problems when the computer system running the authenticator fails, or where communications to the authenticator fail, for example. Where the authentication is for important data or services, failure of the authenticator may prevent access to the data or services. Further, the use of a single authenticator also causes congestion within the computer network as all authentication traffic is directed to a single location.
Where a computer network is highly scalable and dynamic it is important to authenticate each computer system as it attempts to access the computer network. A digital mobile telephone network is one example of a dynamic computer network. The digital mobile telephone network consists of multiple base stations that are networked together, each base station providing one or more cells for the digital telephone network. Each mobile telephone handset connects to, and disconnects from, these cells as the handset changes location. It is therefore important that any authentication process used within the cell network be as fast and efficient as possible. Typically, to meet speed requirements for a digital mobile telephone network, the authentication process is simplified, thereby making it less reliable and less secure, making the mobile telephone network highly susceptible to snooping by third parties.
U.S. Pat. No. 4,748,668, titled Method, Apparatus and Article for Identification and Signature, is incorporated herein by reference.
In one aspect, a method provides non-centralized zero knowledge authentication within a dynamic computer network. The dynamic computer network includes two or more authentication agents that interact with prover agents within computers wishing to gain access to the computer network. Using a zero-knowledge authentication protocol, the prover is either authenticated, or not, without communication of a secret.
In another aspect, a software product (firmware, for example) is distributed with a hardware device to provide non-centralized zero-knowledge authentication. In one example, the hardware device is a router connected to a network. The router communicates with a prover agent within a mobile computer (e.g., a laptop computer system or a mobile telephone handset) that seeks access to the network. Once the prover agent is authenticated and authorized, the router permits the mobile computer to access part of or the entire network.
In one aspect, methods are provided for authentication of identity or group membership. One such method involves zero-knowledge authentication. An authentication dialog between a verifying agent (“verifier”) and an agent to be verified (“prover”) is conducted without revealing information about a secret (“secret”) that is used to prove identity (or group membership without actually disclosing prover's identity). Authentication is achieved when verifier asks prover I-times (I>0) to perform an action that can only be reliably performed by an entity that knows a secret. Prover answers verifier with results of action. If prover does not answer correctly, authentication is invalid. This challenge-response-validation iteration is repeated I-times to establish a sufficient level of probability that prover answered with knowledge of secret. One advantage of zero-knowledge authentication is inability for an eavesdropper to learn secret and steal means to prove identity to verifier. Another advantage is inability for verifier to later masquerade as a prover to a third-party.
In another aspect, methods are provided to allow for greater probability of correctly authenticating prover with fewer challenge-response-validation iterations. One such method allows prover to have a set, greater than two, of possible answers, as is provided by Fiat-Shamir protocol. For example, a prover that answers verifier correctly with a member of set {0, 1, 2, 3} has a 25% chance of being incorrectly authenticated with one challenge-response-validation iteration. Following Fiat-Shamir protocol, prover will answer verifier with one of two possible answers {0, 1} and thereby require two challenge-response-validation iterations to achieve the same level of authentication probability.
In another aspect, an authenticator agent require a prover agent to repeat an authentication protocol until a specified confidence level that a prover agent is correctly authenticated has been satisfied. For example, a confidence level of 99% may require 10 iterations, where a confidence level of 99.9999% may require 20 iterations.
In another aspect, a method of protecting a host from unauthorized client access over a network includes the steps of: creating a prover agent application on the client; creating a verifier agent application on the host; and creating a trusted source application to generate and publish encrypted values of a secret and product of first and second large prime numbers. The encrypted values are read for the secret and product, by the provider and verifier from the trusted source. The secret is decrypted, by the prover and verifier, and the product is decrypted, by the prover and verifier. A plurality of verification dialog is performed between the prover and verifier, wherein the prover demonstrates knowledge of the secret and product without exposing the values of the secret and product. The client is denied access when the prover fails to demonstrate knowledge of the secret and product, and granted access when the client succeeds in demonstrating knowledge of the secret and product.
In another aspect, methods are provided to validate agents without unique indicia. One such method allows agents to validate based on indicia that they are within a category of agents who have knowledge of secret common to all authentic agents. An advantage of using non-unique indicia is elimination of overhead required to generate, maintain, and validate unique indicia
In another aspect, methods are provided to publish secret used to authenticate agents. One such method allows a trusted source to periodically update and publish the secret and product of two large prime numbers (“product”). The frequency of updates is less than the predicted length of time a malicious party could factor product or guess secret. Trusted source generates, encrypts, and publishes secret and product. Prover and verifier read encrypted values for secret and product, from trusted source, and use previous values of secret and product to decrypt new values for secret and product. Prover and verifier now have all information required to perform authentication processes.
One advantage of using methods described above is elimination of steps required to derive keys to encrypt and decrypt messages.
Values for s″ and n″ may become compromised by a malicious party that is able to factor or guess values. Therefore, the delay in step 28 terminates before values are likely to be compromised and process 10 is restarted at step 20 where a new s′ is generated.
At this point, prover and verifier agents have data required to perform authentication. Because values for s″ and n″ published by trusted source periodically change, updated values for s″ and n″ will be retrieved. Step 42 is a delay based on a specific length of time or may be triggered at the start of an authentication process (e.g., a zero-knowledge identification protocol). After the delay in step 42, method 30 continues with step 36 and the agent will again contact the trusted source and read new values for s″ and n″.
In step 82, process 50 continues with processing appropriate for authenticated process 48 (prover) and process 50 terminates. In step 76, process 50 (verifier) continues processing as appropriate for non-authentic agents, and process 50 terminates.
Zero-knowledge identification protocol 46,
LAN 504 is shown connected to a wireless LAN device 512 that provides wireless connectivity to mobile computers 514 and 516. LAN 504 also illustratively connects to computer system 518 that includes authentication agent 520 (verifier). Before mobile computer 514 connects to LAN 504, it is first authenticated using zero-knowledge identification protocol 46 as shown in
Trusted source 106,
Computer system 530 illustratively connects to LAN 502 and includes authentication agent 532 (prover). Computer systems 534 and 536 also connect to LAN 502; computer system 534 includes a prover agent 538 and computer system 536 includes a prover agent 540. Prover agent 538 interacts with authentication agent 532 to authenticate computer system 534 for access to LAN 502. Similarly, prover agent 540 interacts with authentication agent 532 to authenticate computer system 536 for access to LAN 502.
Authentication agents 520 and 532 operate independently to authenticate mobile computers 514, 516 and desktop computers 534, 536 for access to LANs 504 and 502, respectively. Optionally, once a computer (e.g., computers 534, 536 and mobile computers 514 and 516) is authenticated and remains connected within system 500, it may operate to authenticate other computers (i.e., may operate as an authentication agent). Further, once authenticated and connected within system 500, the computer may operate to interact with other computers seeking authentication, enabling communication between the other computers and an authentication agent.
For example, and with reference to
In one example, a computer network includes multiple base stations that operate to provide a mobile telephone network. Each base station contains an authentication agent. Each mobile handset includes a prover agent that connects to the mobile telephone network. Before the mobile handset is allowed to use any services of the mobile telephone network, the authentication agent in the base station selected by the mobile handset interacts with the prover agent in the mobile handset. If the authentication agent is satisfied that the prover knows the secret, it becomes authenticated and authorized to use the mobile telephone network. By using a ZKIP, the secret is never transmitted to or from the mobile handset, and therefore not susceptible to malicious snooping.
Ricotta, Jr., Frank J., Hammond, II, Frank J., Carlander, Steven J.
Patent | Priority | Assignee | Title |
10554419, | Jun 27 2014 | International Business Machines Corporation | Backup and invalidation of authentication credentials |
11538019, | Jun 05 2020 | American Express Travel Related Services Company, Inc.; AMERICAN EXPRESS TRAVEL RELATED SERVICES COMPANY, INC | Zero-knowledge proof-based virtual cards |
8677128, | Oct 13 2009 | Method and apparatus for efficient and secure creating, transferring, and revealing of messages over a network | |
8862879, | Oct 13 2009 | Method and apparatus for efficient and secure creating, transferring, and revealing of messages over a network | |
8886951, | Jul 07 2005 | Synopsys, Inc | Method, apparatus and system for verifying authenticity of an object |
9497178, | Dec 31 2013 | International Business Machines Corporation | Generating challenge response sets utilizing semantic web technology |
9516008, | Dec 31 2013 | International Business Machines Corporation | Generating challenge response sets utilizing semantic web technology |
9755840, | Jun 27 2014 | International Business Machines Corporation | Backup and invalidation of authentication credentials |
Patent | Priority | Assignee | Title |
4748668, | Jul 09 1986 | Yeda Research and Development Company Limited | Method, apparatus and article for identification and signature |
4926479, | Apr 29 1988 | MASSACHUSETTS INSTITUTE OF TECHNOLOGY, 77 MASSACHUSETTS AVE , CAMBRIDGE, MA 02139, A MA CORP | Multiprover interactive verification system |
4956863, | Apr 17 1989 | JONES FUTUREX, INC A CORP OF COLORADO | Cryptographic method and apparatus for public key exchange with authentication |
4969189, | Jun 25 1988 | Nippon Telegraph & Telephone Corporation | Authentication system and apparatus therefor |
5136642, | Jun 01 1990 | Kabushiki Kaisha Toshiba | Cryptographic communication method and cryptographic communication device |
5140634, | Sep 07 1987 | U S PHILIPS CORPORATION; France Telecom; S A TELEDIFFUSION DE FRANCE 10 RUE D ORADOUR-SUR-GHANE | Method and apparatus for authenticating accreditations and for authenticating and signing messages |
5146500, | Mar 14 1991 | OMNISEC A G | Public key cryptographic system using elliptic curves over rings |
5245657, | Jul 08 1991 | Mitsubishi Denki Kabushiki Kaisha | Verification method and apparatus |
5581615, | Dec 30 1993 | Scheme for authentication of at least one prover by a verifier | |
5600725, | Aug 17 1993 | Certicom Corp | Digital signature method and key agreement method |
5606617, | Oct 14 1994 | Microsoft Technology Licensing, LLC | Secret-key certificates |
5666419, | Nov 30 1993 | Canon Kabushiki Kaisha | Encryption device and communication apparatus using same |
5987138, | Apr 09 1996 | France Telecom | Identification and/or signature process |
6011848, | Mar 07 1994 | Nippon Telegraph and Telephone Corporation | Method and system for message delivery utilizing zero knowledge interactive proof protocol |
6044463, | Mar 07 1994 | Nippon Telegraph and Telephone Corporation | Method and system for message delivery utilizing zero knowledge interactive proof protocol |
6069647, | Jan 29 1998 | Intel Corporation | Conditional access and content security method |
6076163, | Oct 20 1997 | ONBOARD SECURITY, INC | Secure user identification based on constrained polynomials |
6122742, | Jun 18 1997 | Auto-recoverable and auto-certifiable cryptosystem with unescrowed signing keys | |
6154841, | Apr 26 1996 | Canon Kabushiki Kaisha | Digital signature method and communication system |
6189098, | May 15 1996 | EMC Corporation | Client/server protocol for proving authenticity |
6263446, | Dec 23 1997 | CA, INC | Method and apparatus for secure distribution of authentication credentials to roaming users |
6282295, | Oct 28 1997 | CRYPTOPEAK SECURITY, LLC | Auto-recoverable and auto-certifiable cryptostem using zero-knowledge proofs for key escrow in general exponential ciphers |
6298441, | Mar 10 1994 | SYNAMEDIA LIMITED | Secure document access system |
6327659, | May 13 1997 | Oracle International Corporation | Generalized user identification and authentication system |
6389136, | May 28 1997 | CRYPTOPEAK SECURITY, LLC | Auto-Recoverable and Auto-certifiable cryptosystems with RSA or factoring based keys |
6389536, | Feb 09 1998 | Fuji Xerox Co., Ltd. | Device for verifying use qualifications |
6411715, | Nov 10 1997 | EMC Corporation | Methods and apparatus for verifying the cryptographic security of a selected private and public key pair without knowing the private key |
6567916, | Feb 12 1998 | Fuji Xerox Co., Ltd. | Method and device for authentication |
6651167, | Oct 17 1997 | Fuji Xerox, Co., Ltd. | Authentication method and system employing secret functions in finite Abelian group |
6889322, | Feb 18 1999 | NDS Limited | Identification protocols |
6937728, | May 19 1999 | Nippon Telegraph and Telephone Corporation | Verifiable anonymous channel |
6950948, | Mar 24 2000 | DEMOXI, INC | Verifiable, secret shuffles of encrypted data, such as elgamal encrypted data for secure multi-authority elections |
6952476, | Feb 08 1999 | GOOGLE LLC | Verification of the private components of a public-key cryptographic system |
6978372, | May 20 1999 | WSOU Investments, LLC | Verification of correct exponentiation or other operations in cryptographic applications |
7003541, | Aug 07 2001 | NEC Corporation | Zero-knowledge proving system and method |
7007301, | Jun 12 2000 | Hewlett Packard Enterprise Development LP | Computer architecture for an intrusion detection system |
7028338, | Dec 18 2001 | Sprint Spectrum L.P. | System, computer program, and method of cooperative response to threat to domain security |
7031470, | Jan 22 1998 | Cisco Technology, Inc | Protection of data on media recording disks |
7047408, | Mar 17 2000 | Alcatel-Lucent USA Inc | Secure mutual network authentication and key exchange protocol |
7058808, | Jun 16 1999 | CYPHERMINT, INC ; SCITRAN INEORHERATED, INC | Method for making a blind RSA-signature and apparatus therefor |
7058968, | Jan 10 2001 | CISCO SYSTEMS INC ; Cisco Technology, Inc | Computer security and management system |
7062490, | Mar 26 2001 | Microsoft Technology Licensing, LLC | Serverless distributed file system |
7085936, | Aug 30 1999 | Symantec Corporation | System and method for using login correlations to detect intrusions |
7089323, | Jun 21 2002 | Microsoft Technology Licensing, LLC | Method for multicasting a message on a computer network |
7096499, | May 11 1999 | Reflex Systems, LLC; STRATACLOUD, INC | Method and system for simplifying the structure of dynamic execution profiles |
7165181, | Nov 27 2002 | Intel Corporation | System and method for establishing trust without revealing identity |
7181768, | Oct 28 1999 | Synopsys, Inc | Computer intrusion detection system and method based on application monitoring |
7184547, | Jan 27 1999 | CALLAHAN CELLULAR L L C | Authenticating or signature method with reduced computations |
7219239, | Dec 02 2002 | MICRO FOCUS LLC | Method for batching events for transmission by software agent |
7222362, | May 15 2000 | RAKUTEN, INC | Non-transferable anonymous credentials |
7260716, | Sep 29 1999 | Cisco Technology, Inc | Method for overcoming the single point of failure of the central group controller in a binary tree group key exchange approach |
7305705, | Jun 30 2003 | Microsoft Technology Licensing, LLC | Reducing network configuration complexity with transparent virtual private networks |
7308097, | Dec 07 2001 | ONBOARD SECURITY, INC | Digital signature and authentication method and apparatus |
7313701, | May 21 1999 | CQR Cert, LLC | Robust efficient distributed RSA-key generation |
7370358, | Sep 28 2001 | British Telecommunications public limited company | Agent-based intrusion detection system |
7373499, | Jun 26 2001 | Lucent Technologies, INC | Methods and apparatus for delegation of cryptographic servers for capture-resilient devices |
7415614, | Mar 12 2001 | CALLAHAN CELLULAR L L C | Cryptographic authentication with ephemeral modules |
7543139, | Dec 21 2001 | AIRBNB, INC | Revocation of anonymous certificates, credentials, and access rights |
7747857, | Dec 17 2004 | NTT DOCOMO, INC. | Use of modular roots to perform authentication including, but not limited to, authentication of validity of digital certificates |
20010034837, | |||
20010038696, | |||
20010042049, | |||
20010044895, | |||
20020007457, | |||
20020136401, | |||
20020188605, | |||
20030065692, | |||
20030115464, | |||
20030120929, | |||
20030158960, | |||
20030172284, | |||
20030177352, | |||
20030182559, | |||
20030196106, | |||
20040006650, | |||
20040008845, | |||
20040015719, | |||
20040028221, | |||
20040054885, | |||
20040103281, | |||
20040123141, | |||
20040133781, | |||
20040177252, | |||
20050069135, | |||
20050265550, | |||
20070113077, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Oct 16 2003 | Enterprise Information Management, Inc. | (assignment on the face of the patent) | / | |||
Nov 03 2003 | HAMMOND II, FRANK J | INNERWALL, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 014124 | /0894 | |
Nov 03 2003 | CARLANDER, STEVEN J | INNERWALL, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 014124 | /0894 | |
Nov 03 2003 | RICOTTA JR , FRANK J | INNERWALL, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 014124 | /0894 | |
Oct 08 2010 | INNERWALL, INC | ENTERPRISE INFORMATION MANAGEMENT, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 025115 | /0467 | |
Jan 31 2013 | ENTERPRISE INFORMATION MANAGEMENT, INC | TVIIM, LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 030741 | /0913 | |
Jan 03 2018 | TVIIM, LLC | BURSTIQ ANALYTICS CORPORATION | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 044543 | /0734 | |
Sep 12 2019 | BURSTIQ ANALYTICS CORPORATION | BURSTIQ, INC | CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 057969 | /0082 | |
Nov 14 2022 | BURSTIQ, INC | TEXAS CAPITAL BANK | SECURITY INTEREST SEE DOCUMENT FOR DETAILS | 062561 | /0188 |
Date | Maintenance Fee Events |
Nov 27 2012 | ASPN: Payor Number Assigned. |
Jul 03 2014 | REM: Maintenance Fee Reminder Mailed. |
Nov 20 2014 | M2551: Payment of Maintenance Fee, 4th Yr, Small Entity. |
Nov 20 2014 | M2554: Surcharge for late Payment, Small Entity. |
Nov 28 2014 | RMPN: Payer Number De-assigned. |
Nov 28 2014 | ASPN: Payor Number Assigned. |
Jul 09 2018 | REM: Maintenance Fee Reminder Mailed. |
Dec 31 2018 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Jun 03 2021 | M2552: Payment of Maintenance Fee, 8th Yr, Small Entity. |
Jun 23 2021 | PMFP: Petition Related to Maintenance Fees Filed. |
Jun 23 2021 | M2558: Surcharge, Petition to Accept Pymt After Exp, Unintentional. |
Oct 19 2021 | PMFP: Petition Related to Maintenance Fees Filed. |
Dec 02 2021 | PMFG: Petition Related to Maintenance Fees Granted. |
Apr 29 2022 | M2553: Payment of Maintenance Fee, 12th Yr, Small Entity. |
Date | Maintenance Schedule |
Nov 23 2013 | 4 years fee payment window open |
May 23 2014 | 6 months grace period start (w surcharge) |
Nov 23 2014 | patent expiry (for year 4) |
Nov 23 2016 | 2 years to revive unintentionally abandoned end. (for year 4) |
Nov 23 2017 | 8 years fee payment window open |
May 23 2018 | 6 months grace period start (w surcharge) |
Nov 23 2018 | patent expiry (for year 8) |
Nov 23 2020 | 2 years to revive unintentionally abandoned end. (for year 8) |
Nov 23 2021 | 12 years fee payment window open |
May 23 2022 | 6 months grace period start (w surcharge) |
Nov 23 2022 | patent expiry (for year 12) |
Nov 23 2024 | 2 years to revive unintentionally abandoned end. (for year 12) |