ABSTRACT
Abstract
A system and method for generating a secret key to facilitate secure communications between users. A first and second and a function between the two monoids are selected, the function being a monoid homomorphism. A group and a group action of the group on the first monoid is selected. Each user is assigned a submonoid of the first monoid so that these submonoids satisfy a special symmetry property determined by the function, a structure of the first and second monoids, and the action of the group. A multiplication of an element in the second monoid and an element in the first monoid is obtained by combining the group action and the monoid homomorphism. First and second users choose private keys which are sequences of elements in their respective submonoids. A first result is obtained by multiplying an identity element by the first element of the sequence in a respective submonoid. Starting with the first result, each element of the user's private key may be iteratively multiplied by the previous result to produce a public key. Public keys are exchanged between first and second users. Each user's private key may be iteratively multiplied by the other user's public key to produce a secret key. Secure communication may then occur between the first and second user using the secret key.
Description
BACKGROUND OF THE INVENTION
1. Field of the Invention
The invention relates to cryptography and, more particularly, to a system and method for facilitating cryptographic applications.
2. Description of the Prior Art
Key Agreement Protocols
It is sometimes desirable for individuals to be able to communicate with each other in a way in which third parties are unable to listen to the communication. A simple way for these individuals to communicate is to have the communications themselves proceed in private. For example if party A and party B desire to communicate in a way which will not be heard by party C, A and B can simply meet at a designated location unknown to C. Similarly, A and B can set up a designated communication line between them which excludes C. Such communication lines are expensive and inconvenient especially if A and B are geographically far apart from one another.
A first approach to facilitating private communications between A and B is to give A and B a secret key that may be used to encrypt and/or decrypt messages sent between A and B. If C does not know what the key is, it may be very difficult for C to both get a hold of a message sent between A and B and try to understand it. However, giving A and B such a key is also cumbersome, expensive and time consuming. Issues to be addressed include secretly transmitting such a key to A and B and generating a new key each time two individuals need to communicate. Also, if C does ascertain the secret key, then all communications between A and B can be decrypted and read by C.
Another approach for facilitating private communications between A and B is to assign A and B secret mathematical functions Æ a , Æ b respectively. The functions Æ a and Æ b are chosen from a set of functions, S, all of whose elements are designed so as to be commutative: applying Æ a followed by Æ b yields the same result as applying Æ b followed by Æ a (i. e., given an element x, Æ a (Æ b (x))=Æ b (Æ a (x))). Assuming the element x is known by both A and B, A can then send Æ a (x) to B, and B can send Æ b (x) to A over public channels. The secret key that can be evaluated and shared by both A and B is then, Æ a (Æ b (x))=Æ b (Æ a (x)). To insure that the system is secure (from an adversary C who knows x and can listen to all communication between A and B) it is necessary that the functions Æ a and Æ b satisfy the following property: given the value Æ a (x) (respectively Æ b (x)) it is computationally difficult to determine the function Æ a (respectively Æ b ). This is called the general Diffie-Hellman key agreement protocol.
Many specific instances of the general Diffie-Hellman protocol for sending secure communications between A and B are known in the prior art (see Alfred J. Menezes, Paul C. van Oorschot, and Scott A. Vanstone, âHandbook of Applied Cryptography,â CRC Press (1997)). They all differ by their choice of the set of functions. The original Diffie-Hellman key agreement protocol is an example of the above described techniques (see W. Diffie and M. E. Hellman, âNew directions in cryptography,â IEEE Transaction on Information Theory, vol. IT 22 (November 1976), pp. 644-654). Using an algorithm like the one first introduced by Diffie-Hellman, parties A and B can obtain a common shared secret by communicating over a public channel. The security of the system, in this instance, rests on the computational difficulty of computing discrete logarithms in the multiplicative group of the finite field. In more general cases the security is based on the notion of a oneway function. A function Æ from a set X to a set Y is termed oneway if Æ(x) is easy to compute for all xâX but for essentially all elements y it is computationally difficult to find xâX such that Æ(x)=y. To date a diverse array of mathematical techniques (including geometric and algebraic ones), have been used to create systems for secure communication whose security is based on oneway functions.
A problem with some of the prior art algorithms, is that most of them rely on a cost-risk analysis when generating the one-way function. That is, in order to produce a more complex and more difficult to determine secret key, each party would need to spend more time in generating such a key and may need to invest in more expensive devices. With rapidly evolving technologies, implementing the current algorithms in a cryptographically secure manner is becoming difficult. Furthermore, there are instances of resource limited devices where current algorithms are difficult to implement. Thus, there is a need in the art for a system and method which can produce a secure key relatively quickly and without employing expensive devices.
SUMMARY OF THE INVENTION
An aspect of the invention is a method for securing communications from a user. The method comprises selecting a first monoid, selecting a second monoid and selecting a function, the function being a monoid homomorphism that maps the first monoid to the second monoid. The method further comprises selecting a group, selecting an action of the group on the first monoid, and determining a semi-direct product of the first monoid and the group to produce a third monoid. The method further comprises selecting a first and second submonoid of the third monoid, a pair of the first and second submonoids satisfying a criterion, the first submonoid being defined by a first set of generators, wherein the criterion satisfies a property determined by the function, a structure of the first and second monoids, and the action. The method still further comprises selecting a plurality of generators of the first set of generators to produce a private key.
Another aspect of the invention is a method for securing communications from a user. The method comprises receiving a first submonoid, the first submonoid being produced by selecting a first monoid, selecting a second monoid, selecting a function, the function being a monoid homomorphism that maps the first monoid to the second monoid, selecting a group, selecting an action of the group on the first monoid, determining a semi-direct product of the first monoid and the group to produce a third monoid, selecting a first and second submonoid of the third monoid, the pair of the first and second submonoids satisfying a criterion, the first submonoid being defined by a first set of generators, the criterion satisfying a property determined by the function, a structure of the first and second monoids, and the action. The method further comprising selecting a plurality of generators of the first set of generators to produce a private key. The method still further comprising applying the second component of an identity on a non-group component of a first generator of the private key to produce a result, wherein the identity comprises a first component, the first component being an identity of the second monoid, and the identity comprises a second component, the second component being an identity of the group. The method still further comprising applying the function to the result to produce a first modified result, multiplying the first component of the identity by the modified result to produce a first further modified result, multiplying the second component of the identity with a group component of the first generator to produce a first still further modified result, and combining the first further modified result with the first still further modified result to produce a public key.
Still another aspect of the invention is a method for securing communications among two users. The method comprises selecting a first monoid, selecting a second monoid, and selecting a function, the function being a monoid homomorphism that maps the first monoid to the second monoid. The method further comprising selecting a group, selecting an action of the group on the first monoid, and determining a first semi-direct product of the first monoid and the group to produce a third monoid. The method still further comprising selecting a first and second submonoid of the third monoid, a pair of the first and second submonoids satisfying a criterion, the first submonoid being defined by a first set of generators, the second submonoid being defined by a second set of generators, the criterion satisfying a property determined by the function, a structure of the first and second monoids, and the action. The method further comprising at a first user, receiving the first submonoid, selecting a plurality of generators of the first set of generators to produce a first private key, and applying the second component of an identity on a non-group component of a first generator of the first private key to produce a first result, wherein the identity comprises a first component, the first component being an identity of the second monoid, and the identity comprises a second component, the second component being an identity of the group. The method further comprising at the first user applying the function to the first result to produce a first modified result, multiplying the first component of the identity by the modified result to produce a first further modified result, multiplying the second component of the identity with a group component of the first generator of the first private key to produce a first still further modified result, and combining the first further modified result with the first still further modified result to produce a first public key. The method still further comprising at the first user a. applying a group component of the first public key on a non-group component of a second generator of the first private key to produce a second result, b. applying the function to the second result to produce a second modified result, c. multiplying a non-group component of the first public key by the second modified result to produce a second further modified result, d. multiplying the group component of the first public key with a group component of the second generator of the private key to produce second still further modified result; and e. combining the first further modified result with the second still further modified result to produce a second public key. The method further comprising at a second user receiving the second submonoid, selecting a plurality of generators of the second set of generators to produce a second private key, applying the second component of the identity on a non-group component of a first generator of the second private key to produce a third result, applying the function to the third result to produce a third modified result, multiplying the first component of the identity by the third modified result to produce a third further modified result, multiplying the second component of the identity with a group component of the first generator of the second private key to produce a third still further modified result. and combining the third further modified result with the third still further modified result to produce a third public key. The method still further comprising at the second user f. applying a group component of the third public key on a non-group component of a second generator of the second private key to produce a fourth result, g. applying the function to the fourth result to produce a fourth modified result, h. multiplying a non-group component of the third public key by the fourth modified result to produce a fourth further modified result, i. multiplying the group component of the third public key with a group component of the second generator of the second private key to produce a fourth still further modified result; and j. combining the fourth further modified result with the fourth still further modified result to produce a fourth public key.
Yet still another aspect of the invention is a transmitter comprising a memory including a first submonoid, the first submonoid being produced by selecting a first monoid, selecting a second monoid, selecting a function, the function being a monoid homomorphism that maps the first monoid to the second monoid, selecting a group, selecting an action of the group on the first monoid; determining a semi-direct product of the first monoid and the group to produce a third monoid, selecting a first and second submonoid of the third monoid, the pair of the first and second submonoids satisfying a criterion, the first submonoid being defined by a first set of generators; the criterion satisfying a property determined by the function, a structure of the first and second monoids, and the action. The transmitter further comprising a processor wherein the processor is effective to select a plurality of generators of the first set of generators to produce a private key. The processor is further effective to apply the second component of an identity on a non-group component of a first generator of the private key to produce a result, wherein the identity comprises a first component, the first component being an identity of the second monoid, and the identity comprises a second component, the second component being an identity of the group. The processor is further effective to apply the function to the result to produce a first modified result. The processor is effective to multiply the first component of the identity by the modified result to produce a first further modified result. The processor is effective to multiply the second component of the identity with a group component of the first generator to produce a first still further modified result; and the processor is effective to combine the first further modified result with the first still further modified result to produce a first public key. The processor is effective to a. apply a group component of the first public key on a non-group component of a second generator of the private key to produce a second result, b. apply the function to the second result to produce a second modified result, c. multiply a non-group component of the first public key by the second modified result to produce a second further modified result, d. multiply the group component of the first public key with a group component of the second generator of the private key to produce second still further modified result, and e. combine the first further modified result with the second still further modified result to produce a second public key.
Still another aspect of the invention is a system for securing communications between users. The system comprises a communications center, the communications center effective to select a first monoid, select a second monoid, select a function, the function being a monoid homomorphism that maps the first monoid to the second monoid, select a group, and select an action of the group on the first monoid. The communications center further effective to determine a first semi-direct product of the first monoid and the group to produce a third monoid; and select a first and second submonoid of the third monoid, a pair of the first and second submonoids satisfying a criterion, the first submonoid being defined by a first set of generators, the second submonoid being defined by a second set of generators, the criterion satisfying a property determined by the function, a structure of the first and second monoids, and the action. The system further comprising a first transmitter comprising a memory including the first submonoid and a first processor. The first processor effective to select a plurality of generators of the first set of generators to produce a first private key and apply the second component of an identity on a non-group component of a first generator of the first private key to produce a first result, wherein the identity comprises a first component, the first component being an identity of the second monoid, and the identity comprises a second component, the second component being an identity of the group. The first processor further effective to apply the function to the first result to produce a first modified result, multiply the first component of the identity by the modified result to produce a first further modified result, multiply the second component of the identity with a group component of the first generator to produce a first still further modified result and combine the first further modified result with the first still further modified result to produce a first public key. The first
BACKGROUND OF THE INVENTION
1. Field of the Invention
The invention relates to cryptography and, more particularly, to a system and method for facilitating cryptographic applications.
2. Description of the Prior Art
Key Agreement Protocols
It is sometimes desirable for individuals to be able to communicate with each other in a way in which third parties are unable to listen to the communication. A simple way for these individuals to communicate is to have the communications themselves proceed in private. For example if party A and party B desire to communicate in a way which will not be heard by party C, A and B can simply meet at a designated location unknown to C. Similarly, A and B can set up a designated communication line between them which excludes C. Such communication lines are expensive and inconvenient especially if A and B are geographically far apart from one another.
A first approach to facilitating private communications between A and B is to give A and B a secret key that may be used to encrypt and/or decrypt messages sent between A and B. If C does not know what the key is, it may be very difficult for C to both get a hold of a message sent between A and B and try to understand it. However, giving A and B such a key is also cumbersome, expensive and time consuming. Issues to be addressed include secretly transmitting such a key to A and B and generating a new key each time two individuals need to communicate. Also, if C does ascertain the secret key, then all communications between A and B can be decrypted and read by C.
Another approach for facilitating private communications between A and B is to assign A and B secret mathematical functions Æ a , Æ b respectively. The functions Æ a and Æ b are chosen from a set of functions, S, all of whose elements are designed so as to be commutative: applying Æ a followed by Æ b yields the same result as applying Æ b followed by Æ a (i. e., given an element x, Æ a (Æ b (x))=Æ b (Æ a (x))). Assuming the element x is known by both A and B, A can then send Æ a (x) to B, and B can send Æ b (x) to A over public channels. The secret key that can be evaluated and shared by both A and B is then, Æ a (Æ b (x))=Æ b (Æ a (x)). To insure that the system is secure (from an adversary C who knows x and can listen to all communication between A and B) it is necessary that the functions Æ a and Æ b satisfy the following property: given the value Æ a (x) (respectively Æ b (x)) it is computationally difficult to determine the function Æ a (respectively Æ b ). This is called the general Diffie-Hellman key agreement protocol.
Many specific instances of the general Diffie-Hellman protocol for sending secure communications between A and B are known in the prior art (see Alfred J. Menezes, Paul C. van Oorschot, and Scott A. Vanstone, âHandbook of Applied Cryptography,â CRC Press (1997)). They all differ by their choice of the set of functions. The original Diffie-Hellman key agreement protocol is an example of the above described techniques (see W. Diffie and M. E. Hellman, âNew directions in cryptography,â IEEE Transaction on Information Theory, vol. IT 22 (November 1976), pp. 644-654). Using an algorithm like the one first introduced by Diffie-Hellman, parties A and B can obtain a common shared secret by communicating over a public channel. The security of the system, in this instance, rests on the computational difficulty of computing discrete logarithms in the multiplicative group of the finite field. In more general cases the security is based on the notion of a oneway function. A function Æ from a set X to a set Y is termed oneway if Æ(x) is easy to compute for all xâX but for essentially all elements y it is computationally difficult to find xâX such that Æ(x)=y. To date a diverse array of mathematical techniques (including geometric and algebraic ones), have been used to create systems for secure communication whose security is based on oneway functions.
A problem with some of the prior art algorithms, is that most of them rely on a cost-risk analysis when generating the one-way function. That is, in order to produce a more complex and more difficult to determine secret key, each party would need to spend more time in generating such a key and may need to invest in more expensive devices. With rapidly evolving technologies, implementing the current algorithms in a cryptographically secure manner is becoming difficult. Furthermore, there are instances of resource limited devices where current algorithms are difficult to implement. Thus, there is a need in the art for a system and method which can produce a secure key relatively quickly and without employing expensive devices.
SUMMARY OF THE INVENTION
An aspect of the invention is a method for securing communications from a user. The method comprises selecting a first monoid, selecting a second monoid and selecting a function, the function being a monoid homomorphism that maps the first monoid to the second monoid. The method further comprises selecting a group, selecting an action of the group on the first monoid, and determining a semi-direct product of the first monoid and the group to produce a third monoid. The method further comprises selecting a first and second submonoid of the third monoid, a pair of the first and second submonoids satisfying a criterion, the first submonoid being defined by a first set of generators, wherein the criterion satisfies a property determined by the function, a structure of the first and second monoids, and the action. The method still further comprises selecting a plurality of generators of the first set of generators to produce a private key.
Another aspect of the invention is a method for securing communications from a user. The method comprises receiving a first submonoid, the first submonoid being produced by selecting a first monoid, selecting a second monoid, selecting a function, the function being a monoid homomorphism that maps the first monoid to the second monoid, selecting a group, selecting an action of the group on the first monoid, determining a semi-direct product of the first monoid and the group to produce a third monoid, selecting a first and second submonoid of the third monoid, the pair of the first and second submonoids satisfying a criterion, the first submonoid being defined by a first set of generators, the criterion satisfying a property determined by the function, a structure of the first and second monoids, and the action. The method further comprising selecting a plurality of generators of the first set of generators to produce a private key. The method still further comprising applying the second component of an identity on a non-group component of a first generator of the private key to produce a result, wherein the identity comprises a first component, the first component being an identity of the second monoid, and the identity comprises a second component, the second component being an identity of the group. The method still further comprising applying the function to the result to produce a first modified result, multiplying the first component of the identity by the modified result to produce a first further modified result, multiplying the second component of the identity with a group component of the first generator to produce a first still further modified result, and combining the first further modified result with the first still further modified result to produce a public key.
Still another aspect of the invention is a method for securing communications among two users. The method comprises selecting a first monoid, selecting a second monoid, and selecting a function, the function being a monoid homomorphism that maps the first monoid to the second monoid. The method further comprising selecting a group, selecting an action of the group on the first monoid, and determining a first semi-direct product of the first monoid and the group to produce a third monoid. The method still further comprising selecting a first and second submonoid of the third monoid, a pair of the first and second submonoids satisfying a criterion, the first submonoid being defined by a first set of generators, the second submonoid being defined by a second set of generators, the criterion satisfying a property determined by the function, a structure of the first and second monoids, and the action. The method further comprising at a first user, receiving the first submonoid, selecting a plurality of generators of the first set of generators to produce a first private key, and applying the second component of an identity on a non-group component of a first generator of the first private key to produce a first result, wherein the identity comprises a first component, the first component being an identity of the second monoid, and the identity comprises a second component, the second component being an identity of the group. The method further comprising at the first user applying the function to the first result to produce a first modified result, multiplying the first component of the identity by the modified result to produce a first further modified result, multiplying the second component of the identity with a group component of the first generator of the first private key to produce a first still further modified result, and combining the first further modified result with the first still further modified result to produce a first public key. The method still further comprising at the first user a. applying a group component of the first public key on a non-group component of a second generator of the first private key to produce a second result, b. applying the function to the second result to produce a second modified result, c. multiplying a non-group component of the first public key by the second modified result to produce a second further modified result, d. multiplying the group component of the first public key with a group component of the second generator of the private key to produce second still further modified result; and e. combining the first further modified result with the second still further modified result to produce a second public key. The method further comprising at a second user receiving the second submonoid, selecting a plurality of generators of the second set of generators to produce a second private key, applying the second component of the identity on a non-group component of a first generator of the second private key to produce a third result, applying the function to the third result to produce a third modified result, multiplying the first component of the identity by the third modified result to produce a third further modified result, multiplying the second component of the identity with a group component of the first generator of the second private key to produce a third still further modified result. and combining the third further modified result with the third still further modified result to produce a third public key. The method still further comprising at the second user f. applying a group component of the third public key on a non-group component of a second generator of the second private key to produce a fourth result, g. applying the function to the fourth result to produce a fourth modified result, h. multiplying a non-group component of the third public key by the fourth modified result to produce a fourth further modified result, i. multiplying the group component of the third public key with a group component of the second generator of the second private key to produce a fourth still further modified result; and j. combining the fourth further modified result with the fourth still further modified result to produce a fourth public key.
Yet still another aspect of the invention is a transmitter comprising a memory including a first submonoid, the first submonoid being produced by selecting a first monoid, selecting a second monoid, selecting a function, the function being a monoid homomorphism that maps the first monoid to the second monoid, selecting a group, selecting an action of the group on the first monoid; determining a semi-direct product of the first monoid and the group to produce a third monoid, selecting a first and second submonoid of the third monoid, the pair of the first and second submonoids satisfying a criterion, the first submonoid being defined by a first set of generators; the criterion satisfying a property determined by the function, a structure of the first and second monoids, and the action. The transmitter further comprising a processor wherein the processor is effective to select a plurality of generators of the first set of generators to produce a private key. The processor is further effective to apply the second component of an identity on a non-group component of a first generator of the private key to produce a result, wherein the identity comprises a first component, the first component being an identity of the second monoid, and the identity comprises a second component, the second component being an identity of the group. The processor is further effective to apply the function to the result to produce a first modified result. The processor is effective to multiply the first component of the identity by the modified result to produce a first further modified result. The processor is effective to multiply the second component of the identity with a group component of the first generator to produce a first still further modified result; and the processor is effective to combine the first further modified result with the first still further modified result to produce a first public key. The processor is effective to a. apply a group component of the first public key on a non-group component of a second generator of the private key to produce a second result, b. apply the function to the second result to produce a second modified result, c. multiply a non-group component of the first public key by the second modified result to produce a second further modified result, d. multiply the group component of the first public key with a group component of the second generator of the private key to produce second still further modified result, and e. combine the first further modified result with the second still further modified result to produce a second public key.
Still another aspect of the invention is a system for securing communications between users. The system comprises a communications center, the communications center effective to select a first monoid, select a second monoid, select a function, the function being a monoid homomorphism that maps the first monoid to the second monoid, select a group, and select an action of the group on the first monoid. The communications center further effective to determine a first semi-direct product of the first monoid and the group to produce a third monoid; and select a first and second submonoid of the third monoid, a pair of the first and second submonoids satisfying a criterion, the first submonoid being defined by a first set of generators, the second submonoid being defined by a second set of generators, the criterion satisfying a property determined by the function, a structure of the first and second monoids, and the action. The system further comprising a first transmitter comprising a memory including the first submonoid and a first processor. The first processor effective to select a plurality of generators of the first set of generators to produce a first private key and apply the second component of an identity on a non-group component of a first generator of the first private key to produce a first result, wherein the identity comprises a first component, the first component being an identity of the second monoid, and the identity comprises a second component, the second component being an identity of the group. The first processor further effective to apply the function to the first result to produce a first modified result, multiply the first component of the identity by the modified result to produce a first further modified result, multiply the second component of the identity with a group component of the first generator to produce a first still further modified result and combine the first further modified result with the first still further modified result to produce a first public key. The first processor is further effective to a. apply a group component of the first public key on a non-group component of a second generator of the private key to produce a second result, b. apply the function to the second result to produce a second modified result, c. multiply a non-group component of the first public key by the second modified result to produce a second further modified result, d. multiply the group component of the first public key with a group component of the second generator of the first private key to produce second still further modified result; and e. combine the first further modified result with the second still further modified result to produce a second public key. The system further comprises a second transmitter comprising a memory including the second submonoid and a second processor. The second processor effective to select a plurality of generators of the second set of generators to produce a second private key, apply the second component of the identity on a non-group component of a first generator of the second private key to produce a third result, apply the function to the third result to produce a third modified result, and multiply the first component of the identity by the third modified result to produce a third further modified result. The second processor further effective to multiply the second component of the identity with a group component of the second generator to produce a third still further modified result and combine the third further modified result with the third still further modified result to produce a third public key. The second processor is further effective to f. apply a group component of the third public key on a non-group component of a second generator of the second private key to produce a fourth result, g. apply the function to the fourth result to produce a fourth modified result, h. multiply a non-group component of the first public key by the fourth modified result to produce a fourth further modified result, i. multiply the group component of the third public key with a group component of the second generator of the second private key to produce fourth still further modified result and j. combine the fourth further modified result with the fourth still further modified result to produce a fourth public key.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a system diagram illustrating a II-Function module in accordance with an embodiment of the invention.
FIG. 2 is a system diagram illustrating a S-Action module in accordance with an embodiment of the invention.
FIG. 3 is a system diagram illustrating an E-Function module in accordance with an embodiment of the invention.
FIG. 4 is a system diagram illustrating the operation of an E-Function iterator module in accordance with an embodiment of the invention.
FIG. 5 is another system diagram illustrating the operation of an E-Function iterator module in accordance with an embodiment of the invention.
FIG. 6 is a system diagram illustrating a system for determining a pair of E-commuting monoids in accordance with an embodiment of the invention.
FIG. 7 is a system diagram illustrating a system for determining a private key in accordance with an embodiment of the invention.
FIG. 8 is a system diagram illustrating a system for determining a public key in accordance with an embodiment of the invention.
FIG. 9 is a system diagram illustrating a system for determining a common agreed upon secret key in accordance with an embodiment of the invention.
FIG. 10 is a flow diagram illustrating a method for determining a common agreed upon secret key and transmitting a message using that secret key in accordance with an embodiment of the invention.
FIG. 11 is a system diagram illustrating a system for determining a secret key in accordance with an embodiment of the invention.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
The present invention introduces an algorithmically efficient one-way function. The algorithm is both rapidly computable and computationally hard to reverse. An overview in accordance with the invention is provided in FIG. 10 . Parties Alice and Bob are each in possession of a database from which they form their respective private keys ( Boxes 101 and 102 ). They then proceed to produce their respective public keys based on their respective private keys by applying an algorithm in accordance with the invention (Boxes 103 and 104 ). Alice and Bob each have access to a respective transmitter and receiver. Alice and Bob use their respective transmitter and receiver to exchange their public keys. By exchanging these public keys they are each in a position to obtain a common agreed upon secret key by letting the received public key act on the respective user's private keys ( Boxes 105 and 106 ). Once the shared secret key has been obtained, Alice can then encrypt a plaintext message, produce an encrypted message (Box 107 ), send the encrypted message (Box 108 ) to Bob, who can then decrypt the encrypted message (Box 109 ) to obtain Alice's plaintext message (Box 107 ).
Let M, N denote monoids and let S denote a group which acts on M on the left. Given an element sâS, and an element mâM, we denote the result of s acting on m by s m. The semidirect product of M and S, M
S is defined to be the monoid whose underlying set is MÃS and whose internal binary operation
θ M
S :( MÃS )Ã( MÃS )â MÃS
is given by
θ M
S :(( m 1 ,s 1 ),( m 2 ,s 2 ))â( m 1 · s
1
m 2 ,s 1 s 2 ).
Furthermore, we let NÃS denote the direct product.
An algebraic eraser is specified by a 6-tuple (M
S, N, II, E, A, B) where M
S and N are as above, A, B are user submonoids of M, II is an easily computable monoid homomorphism
II:MâN,
E is a function
E :( NÃS )Ã( M
S )â NÃS
given by
E (( n,s ),( m 1 ,s 1 ))=( nII ( s m 1 ), ss 1 ),
and A, B are submonoids of M
S such that for all (a, s a )âA,(b, s b )âB
E (( II ( a ), s a ),( b,s b ))= E (( II ( b ), s b ),( a,s a )).
Two submonoids satisfying the above identity are termed E-Commuting.
An action of S on M does not induce an action of S on N, and given knowledge of the elements
( n,s ), E (( n,s ),( m 1 ,s 1 ))â NÃS
it is very difficult to obtain the element (m 1 , s 1 )âM
S. The action of the element sâS has been effectively erased by the algebraic eraser. A benefit lies in the efficiency of the computation of the function II and the iterative nature of the method and apparatus for the computation of the function E.
A preferred embodiment of an apparatus to perform an algebraic key agreement protocol based on the algebraic eraser, is depicted in FIGS. 1 through 11 , and begins with an apparatus to compute the function II. The II- Function module 13 is responsive to the data from the II-Function module library 11 , and the input element mâM from 12 . The II- Function module 13 computes the element II(m)âN.
In general a group S is said to act (on the left) on a monoid M provided there is a homomorphism from S to the endomorphisms of M which satisfies certain properties. Given sâS and mâM, the element s maps m to a new element in M, denoted s m. The required properties are
s ( m 1 m 2 )= s m 1 s m 2 , 1 m=m, s
1
s
2
m= s
1 ( s
2
m )
Referring to FIG. 2 , S- Action module 23 is responsive to the inputs sâS 21 and mâM 22 , and computes the image of m under the action of s yielding s m as output.
An apparatus to compute the function E is depicted in FIG. 3 . The E-Function module 36 is responsive to the inputs (n, s) 31 and (m, s) 34 . Given an ordered list, (x, y) of two elements x, y, the first component projection of (x, y) outputs the first component x on the list. Similarly, the second component projection outputs the second component y. The input (n, s), 31 , is sent to the second component projection module, 32 and the input (m 1 , s 1 ) is likewise sent to a first component projection module, 33 . The resulting elements of S and M of the first and second component modules
32 , 33 are then forwarded to the S- Action module 23 , yielding the element s m 1 âM. This resulting element s m 1 is forwarded to the II-Function module, 13 , which outputs the element II( s m 1 ). The E-Function multiplier, 35 , is responsive to the input (n, s), 31 , the element II( s m 1 )âN, and the result of the input (m 1 , s 1 ), 34 , being entered into the second component projection module, 32 . The E-Function multiplier outputs the element (n II( s m 1 )âs s 1 )âNÃS which is also the output of the E-Function module 36 .
The semi-direct product of M and S, denoted M
S, is defined to be the monoid whose underlying set is the direct product MÃS and whose binary operation is given by
( m 1 ,s 1 )·( m 2 ,s 2 )=( m 1 · s
1
m 2 ,s 1 s 2 ).
It is noted that given, an element (n, s)âNÃS and two elements (m 1 , s 1 ), (m 2 , s 2 )âM
S, that
E ( n,s ),(( m 1 ,s 1 )·( m 2 ,s 2 ))= E ( E (( n,s ),( m 1 ,s 1 )),( m 2 ,s 2 )).
Hence computing the E-Function iteratively increases the system's efficiency and speed.
FIG. 4 depicts an apparatus which may be used in performing the above computation. An E-Function Iterator module 42 is responsive to the input (n, s), 31 , and to the input
(m 1 , s 1 ), (m 2 , s 2 ), . . . , (m k ,s k )
, 41 , and outputs
( nII ( s m 1 ) II ( ss
1
m 2 ) . . . II ( ss
1
. . . s
k
m k ), ss 1 . . . s k ).
A more detailed apparatus of the E-Function Iterator module 42 , is depicted in FIG. 5 , begins with the input (n, s) 31 being sent to the E-Function module 36 . In addition, an input
(m 1 , s 1 ), (m 2 , s 2 ), . . . , (m k , s k )
, 41 , is sent to the choose t th component module, 53 , which is a module initialized at the value t=1 and repeatedly incremented by the increment t module, 54 . The t th component of the input
(m 1 , s 1 ), (m 2 , s 2 ), . . . , (m k , s k )
is precisely (m t , s t ) which is the output of 53 and sent to the E-Function module 36 . Furthermore the value of t is sent to the decision box 55 which also receives the value of the E-Function (iterated tâ1 times up to that point). The decision box 55 determines if t=k, at which point the computation stops, otherwise, the output of decision box 55 becomes input 31 to the E-Function module 36 to be used as the new first component of E together with the incoming entry from choose t th component module 53 . The final value arrived at is given by
( n·II ( s m 1 ) II ( ss
1
m 2 ) . . . II ( ss 1 . . . s
k-1
m k ), ss 1 . . . s k )=( n·II (( s m 1 )( ss
1
m 2 ) . . . ( ss
1
. . . s
k-1
m k )), ss 1 . . . s k ).
Recall that two submonoids A, B are said to be E-Commuting provided
E (( II ( a ), s a ),( b,s b )= E ( II ( b ), s b ),( a,s a ))
holds for all (a, s a )âA, (b, s b )âB. FIG. 6 illustrates an apparatus which may be used in choosing a pair of E-Commuting monoids, A, B which may be utilized in the invention. A monoid is specified by a generating set, i.e., a subset of elements of the monoid which have the property that every element of the monoid can be expressed as a product of some of these generators (in some order, with repetitions allowed). The Semidirect Product Producer 60 is responsive to the monoid M and the group S and produces the monoid M
S. The monoid M
S, together with the monoid N and the function n are sent to the E-Commuting Monoid Producer 63 , whose output is sent to the Pairs of E-Commuting Monoid Library 64 . A Pseudorandom Number Generator 61 produces a random number α, a Chooser 62 then accesses the α th element of the Pairs of E-Commuting Monoid Library 63 and outputs the pair of E-Commuting monoids A 1 , B 1 which are forwarded to Alice and Bob, respectively. Additionally the pair A 1 , B 1 is forwarded to the User Submonoid Generator Database 65 .
With the apparatuses for computing the S-Action, the functions H and E specified, and each users submonoid in place, the algebraic eraser key agreement protocol can now be detailed. If the E-commuting monoids A 1 , B 1 , are privately assigned to Alice and Bob, then the invention functions, for example, as a symmetric cryptosystem. If the monoid M
S possesses a large library of pairs of E-Commuting submonoids which are recursively enumerable and whose internal algebraic structure is hidden then the invention can function, for example, as an asymmetric cryptosystem.
FIG. 7 illustrates a mechanism which may be used hi enabling a user to generate a private key. Focusing on Alice (Bob case is analogous) a second Pseudorandom. Number Generator 72 responsive to the input α*, 71 , creates a list of integers e 1 , e 2 , . . . , e α* where each e i is generated in such a way that e i â¤number of generators of (A 1 ). The Sequence Encoder 73 is responsive to the list e 1 , e 2 , . . . , e α* and the User Submonoid Generator database 65 , is responsive to the submonoid A 1 . The Sequence Encoder 73 produces the list of the user generators (m e
1 , s e
1 ), (m e
2 , s e
2 ), . . . , (m e
α* , s e
α* ) out of the generating set of A 1 . The Private Key Generator 74 is responsive to Encoder 73 and produces the user private key
M A
=
( m e
1
s e
1 ),( m e
2
,s e
2 ), . . . ,( m e
α*
,s e
α* )
which is sent to a memory 75 . It should be observed that the product of the elements, denoted (M A , S A ),
(
M
A
,
s
A
)
=
(
m
e
î¢
1
,
s
e
î¢
1
)
·
(
m
e
î¢
2
,
s
e
CLAIMS
Claims ( 2 )
What is claimed is:
1 . A method for securing communications from a user, the method comprising:
selecting a first monoid; selecting a second monoid; selecting a function, the function being a monoid homomorphism that maps the first monoid to the second monoid; selecting a group; selecting an action of the group on the first monoid; determining a semi-direct product of the first monoid and the group to produce a third monoid; selecting a first and second submonoid of the third monoid, a pair of the first and second submonoids satisfying a criterion, the first submonoid being defined by a first set of generators, wherein the criterion satisfies a property determined by the function, a structure of the first and second monoids, and the action; and selecting a plurality of generators of the first set of generators to produce a private key.
2 .- 23 . (canceled)
US16/432,493
2005-06-08
2019-06-05
Method and apparatus for establishing a key agreement protocol
Abandoned
US20190307790A1
( en )
Priority Applications (1)
Application Number
Priority Date
Filing Date
Title
US16/432,493
US20190307790A1
( en )
2005-06-08
2019-06-05
Method and apparatus for establishing a key agreement protocol
Applications Claiming Priority (10)
Application Number
Priority Date
Filing Date
Title
US11/148,748
US7649999B2
( en )
2005-06-08
2005-06-08
Method and apparatus for establishing a key agreement protocol
US12/632,207
US20100254534A1
( en )
2005-06-08
2009-12-07
Method and apparatus for establishing a key agreement protocol
US13/293,664
US20120057699A1
( en )
2005-06-08
2011-11-10
Method and apparatus for establishing a key agreement protocol
US13/673,461
US20130077783A1
( en )
2005-06-08
2012-11-09
Method and apparatus for establishing a key agreement protocol
US14/168,169
US9071427B2
( en )
2005-06-08
2014-01-30
Method and apparatus for establishing a key agreement protocol
US14/739,744
US20150318989A1
( en )
2005-06-08
2015-06-15
Method and apparatus for establishing a key agreement protocol
US15/178,808
US20160294552A1
( en )
2005-06-08
2016-06-10
Method and apparatus for establishing a key agreement protocol
US15/451,899
US10172881B2
( en )
2011-12-21
2017-03-07
Dialysis precursor composition
US15/703,578
US20180071335A1
( en )
2005-06-08
2017-09-13
Method and apparatus for establishing a key agreement protocol
US16/432,493
US20190307790A1
( en )
2005-06-08
2019-06-05
Method and apparatus for establishing a key agreement protocol
Related Parent Applications (1)
Application Number
Title
Priority Date
Filing Date
US15/703,578
Continuation
US20180071335A1
( en )
2005-06-08
2017-09-13
Method and apparatus for establishing a key agreement protocol
Publications (1)
Publication Number
Publication Date
US20190307790A1
true
US20190307790A1 ( en )
2019-10-10
Family
ID=37499152
Family Applications (10)
Application Number
Title
Priority Date
Filing Date
US11/148,748
Active - Reinstated
2027-07-20
US7649999B2
( en )
2005-06-08
2005-06-08
Method and apparatus for establishing a key agreement protocol
US12/632,207
Abandoned
US20100254534A1
( en )
2005-06-08
2009-12-07
Method and apparatus for establishing a key agreement protocol
US13/293,664
Abandoned
US20120057699A1
( en )
2005-06-08
2011-11-10
Method and apparatus for establishing a key agreement protocol
US13/673,461
Abandoned
US20130077783A1
( en )
2005-06-08
2012-11-09
Method and apparatus for establishing a key agreement protocol
US14/168,169
Expired - Lifetime
US9071427B2
( en )
2005-06-08
2014-01-30
Method and apparatus for establishing a key agreement protocol
US14/739,744
Abandoned
US20150318989A1
( en )
2005-06-08
2015-06-15
Method and apparatus for establishing a key agreement protocol
US15/178,808
Abandoned
US20160294552A1
( en )
2005-06-08
2016-06-10
Method and apparatus for establishing a key agreement protocol
US15/451,889
Abandoned
US20170180124A1
( en )
2005-06-08
2017-03-07
Method and apparatus for establishing a key agreement protocol
US15/703,578
Abandoned
US20180071335A1
( en )
2005-06-08
2017-09-13
Method and apparatus for establishing a key agreement protocol
US16/432,493
Abandoned
US20190307790A1
( en )
2005-06-08
2019-06-05
Method and apparatus for establishing a key agreement protocol
Family Applications Before (9)
Application Number
Title
Priority Date
Filing Date
US11/148,748
Active - Reinstated
2027-07-20
US7649999B2
( en )
2005-06-08
2005-06-08
Method and apparatus for establishing a key agreement protocol
US12/632,207
Abandoned
US20100254534A1
( en )
2005-06-08
2009-12-07
Method and apparatus for establishing a key agreement protocol
US13/293,664
Abandoned
US20120057699A1
( en )
2005-06-08
2011-11-10
Method and apparatus for establishing a key agreement protocol
US13/673,461
Abandoned
US20130077783A1
( en )
2005-06-08
2012-11-09
Method and apparatus for establishing a key agreement protocol
US14/168,169
Expired - Lifetime
US9071427B2
( en )
2005-06-08
2014-01-30
Method and apparatus for establishing a key agreement protocol
US14/739,744
Abandoned
US20150318989A1
( en )
2005-06-08
2015-06-15
Method and apparatus for establishing a key agreement protocol
US15/178,808
Abandoned
US20160294552A1
( en )
2005-06-08
2016-06-10
Method and apparatus for establishing a key agreement protocol
US15/451,889
Abandoned
US20170180124A1
( en )
2005-06-08
2017-03-07
Method and apparatus for establishing a key agreement protocol
US15/703,578
Abandoned
US20180071335A1
( en )
2005-06-08
2017-09-13
Method and apparatus for establishing a key agreement protocol
Country Status (2)
Country
Link
US
( 10 )
US7649999B2
( en )
WO
( 1 )
WO2006133413A2
( en )
Families Citing this family (27)
* Cited by examiner, â Cited by third party
Publication number
Priority date
Publication date
Assignee
Title
US9071408B2
( en )
*
2012-02-09
2015-06-30
Securerf Corporation
Communication system
US8972715B2
( en )
*
2012-07-13
2015-03-03
Securerf Corporation
Cryptographic hash function
US10171230B2
( en )
*
2014-02-28
2019-01-01
Empire Technology Development Llc
Homomorphic encryption scheme
US10523440B2
( en )
*
2015-09-22
2019-12-31
Securerf Corporation
Signature generation and verification system
US10700870B2
( en )
*
2015-09-22
2020-06-30
Veridify Security Inc.
Signature generation and verification system
KR102890466B1
( en )
2016-02-23
2025-11-21
ìì²´ì¸ ë¼ì´ì¼ì± ìê²
Encryption method and system for secure extraction of data from blockchain
JP6869250B2
( en )
2016-02-23
2021-05-12
ã¨ããã§ã¼ã³ ãã¼ã«ãã£ã³ã°ã¹ ãªããããï¼®ï½ï½ï½ï½ï½ Hï½ï½ï½ï½ï½ï½ï½ Lï½ï½ï½ï½ï½ ï½
Methods and systems for efficient transfer of entities in peer-to-peer distributed ledgers using blockchain
EP3420674B1
( en )
2016-02-23
2021-03-24
Nchain Holdings Limited
Blockchain-implemented method for control and distribution of digital content
JP6799061B2
( en )
2016-02-23
2020-12-09
ã¨ããã§ã¼ã³ ãã¼ã«ãã£ã³ã°ã¹ ãªããããï¼®ï½ï½ï½ï½ï½ Hï½ï½ï½ï½ï½ï½ï½ Lï½ï½ï½ï½ï½ ï½
Secure multi-party loss resistant storage and transfer of cryptographic keys for blockchain-based systems combined with wallet management systems
GB2571367A
( en )
2016-02-23
2019-08-28
Nchain Holdings Ltd
Tokenisation method and system for implementing exchanges on a blockchain
CN109314637B
( en )
2016-02-23
2021-09-10
åºå龿§è¡æéå ¬å¸
Method and apparatus for efficient transfer of cryptocurrency over a blockchain
EP3748903A1
( en )
2016-02-23
2020-12-09
Nchain Holdings Limited
Universal tokenisation system for blockchain-based cryptocurrencies
KR102753027B1
( en )
2016-02-23
2025-01-14
ìì²´ì¸ íë©ì¤ 리미í°ë
Method and system for secure transfer of entities on blockchain
KR102777896B1
( en )
2016-02-23
2025-03-10
ìì²´ì¸ íë©ì¤ 리미í°ë
Blockchain-based exchange method using tokenization
EP3268914B1
( en )
2016-02-23
2018-06-20
Nchain Holdings Limited
Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys
SG11201806781SA
( en )
2016-02-23
2018-09-27
Nchain Holdings Ltd
Registry and automated management method for blockchain-enforced smart contracts
BR112018016782A2
( en )
*
2016-02-23
2018-12-26
Nchain Holdings Ltd
computer-implemented system and method configured to control a blockchain transfer
KR102871871B1
( en )
2016-02-23
2025-10-15
ìì²´ì¸ ë¼ì´ì¼ì± ìê²
Method and system for securing computer software using a distributed hash table and blockchain
JP6528008B2
( en )
2016-02-23
2019-06-12
ã¨ããã§ã¼ã³ ãã¼ã«ãã£ã³ã°ã¹ ãªããããï¼®ï½ï½ï½ï½ï½ Hï½ï½ï½ï½ï½ï½ï½ Lï½ï½ï½ï½ï½ ï½
Personal Device Security Using Elliptic Curve Cryptography for Secret Sharing
US11347838B2
( en )
2016-02-23
2022-05-31
Nchain Holdings Ltd.
Blockchain implemented counting system and method for use in secure voting and distribution
US10505722B2
( en )
*
2016-07-06
2019-12-10
Securerf Corporation
Shared secret communication system with use of cloaking elements
US10680810B2
( en )
*
2016-10-26
2020-06-09
Nxp B.V.
Method of generating an elliptic curve cryptographic key pair
US10459690B1
( en )
*
2017-01-16
2019-10-29
Securerf Corporation
Side channel attack prevention
EP3793129B1
( en )
*
2018-05-30
2025-04-23
Huawei International Pte. Ltd.
Key exchange system, method, and apparatus
US11727733B2
( en )
*
2021-05-11
2023-08-15
Ford Global Technologies, Llc
Enabling operator controls for machine operation
KR102568418B1
( en )
*
2021-08-26
2023-08-18
íì´íì´ë¸ë© 주ìíì¬
Electronic authentication system and method supporting multi-signature
CN115484018B
( en )
*
2022-08-19
2024-11-05
天津ç工大å¦
Leveled homomorphic encryption method based on conjugate search problem
Family Cites Families (5)
* Cited by examiner, â Cited by third party
Publication number
Priority date
Publication date
Assignee
Title
US5915021A
( en )
*
1997-02-07
1999-06-22
Nokia Mobile Phones Limited
Method for secure communications in a telecommunications system
JP2001066989A
( en )
*
1999-08-31
2001-03-16
Fuji Xerox Co Ltd
Unidirectional function generating method, unidirectional function generating device, certification device, authentication method and authentication device
DE60236094D1
( en )
*
2001-08-13
2010-06-02
Univ R
Identity-based encryption systems and methods and related cryptographic techniques
FR2828780B1
( en )
*
2001-08-20
2004-01-16
France Telecom
METHOD FOR PRODUCING A CRYPTOGRAPHIC UNIT FOR AN ASYMMETRIC CRYPTOGRAPHY SYSTEM USING A DISCREET LOGARITHM FUNCTION
US7284127B2
( en )
*
2002-10-24
2007-10-16
Telefonktiebolaget Lm Ericsson (Publ)
Secure communications
2005
2005-06-08
US
US11/148,748
patent/US7649999B2/en
active
Active - Reinstated
2006
2006-06-08
WO
PCT/US2006/022483
patent/WO2006133413A2/en
not_active
Ceased
2009
2009-12-07
US
US12/632,207
patent/US20100254534A1/en
not_active
Abandoned
2011
2011-11-10
US
US13/293,664
patent/US20120057699A1/en
not_active
Abandoned
2012
2012-11-09
US
US13/673,461
patent/US20130077783A1/en
not_active
Abandoned
2014
2014-01-30
US
US14/168,169
patent/US9071427B2/en
not_active
Expired - Lifetime
2015
2015-06-15
US
US14/739,744
patent/US20150318989A1/en
not_active
Abandoned
2016
2016-06-10
US
US15/178,808
patent/US20160294552A1/en
not_active
Abandoned
2017
2017-03-07
US
US15/451,889
patent/US20170180124A1/en
not_active
Abandoned
2017-09-13
US
US15/703,578
patent/US20180071335A1/en
not_active
Abandoned
2019
2019-06-05
US
US16/432,493
patent/US20190307790A1/en
not_active
Abandoned
Also Published As
Publication number
Publication date
US20060280308A1
( en )
2006-12-14
US20140198914A1
( en )
2014-07-17
US9071427B2
( en )
2015-06-30
WO2006133413A3
( en )
2007-11-29
US20130077783A1
( en )
2013-03-28
WO2006133413A2
( en )
2006-12-14
US20160294552A1
( en )
2016-10-06
US20180071335A1
( en )
2018-03-15
US20150318989A1
( en )
2015-11-05
US7649999B2
( en )
2010-01-19
US20100254534A1
( en )
2010-10-07
US20170180124A1
( en )
2017-06-22
US20120057699A1
( en )
2012-03-08
Similar Documents
Publication
Publication Date
Title
US9071427B2
( en )
2015-06-30
Method and apparatus for establishing a key agreement protocol
US10715508B2
( en )
2020-07-14
Server-assisted secure exponentiation
JP5297688B2
( en )
2013-09-25
Vector concealed inner product calculation system, vector concealed inner product calculation method, and encryption key sharing system
US8549299B2
( en )
2013-10-01
Accelerated key agreement with assisted computations
US20130329886A1
( en )
2013-12-12
Public Key Cryptography with Reduced Computational Load
US6731755B1
( en )
2004-05-04
Split-key cryptographic system and method
US20110307698A1
( en )
2011-12-15
Masking the output of random number generators in key generation protocols
KR100989185B1
( en )
2010-10-20
Session key distribution method through RSA-based password authentication
US6493449B2
( en )
2002-12-10
Method and apparatus for cryptographically secure algebraic key establishment protocols based on monoids
EP2742644B1
( en )
2022-04-13
Encryption and decryption method
JPH03128541A
( en )
1991-05-31
Encrypted communication system and encrypted communication method
Ye et al.
2008
Distributed private matching and set operations
Mittal et al.
2022
Group ring based public key cryptosystems
US20150295710A1
( en )
2015-10-15
Paillier-based blind decryption methods and devices
CN102246456A
( en )
2011-11-16
Systems and methods for combating side-channel attacks on cyclic group-based encryption
EP2493112B1
( en )
2018-02-28
Accelerated key agreement with assisted computations
EP2395698B1
( en )
2014-08-13
Implicit certificate generation in the case of weak pseudo-random number generators
Issad et al.
2020
Secure hybrid crypto-system AES/RSA on FPGA for data communication
KR20030047148A
( en )
2003-06-18
Method of messenger security based on client/server using RSA
Nguyen et al.
2018
No-key protocol for deniable encryption
Mehta et al.
2017
Minimization of mean square error for improved euler elliptic curve secure hash cryptography for textual data
Tian et al.
2008
A practical publicly verifiable secret sharing scheme based on bilinear pairing
Mahmoud
2012
Development of Matrix Cipher Modifications and Key Exchange Protocol
Hanoymak et al.
2019
A new multi-party key exchange protocol and symmetric key encryption scheme over non-commutative group rings
King
2000
Some results in linear secret sharing
Legal Events
Date
Code
Title
Description
2019-07-05
STPP
Information on status: patent application and granting procedure in general
Free format text : DOCKETED NEW CASE - READY FOR EXAMINATION
2020-06-10
STPP
Information on status: patent application and granting procedure in general
Free format text : NON FINAL ACTION MAILED
2020-12-19
STCB
Information on status: application discontinuation
Free format text : ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION