Abstract:
The present invention proposes a continuous multi-parameter version of Diffie-Hellman protocol based on matrices over topological monoids. In its turn, based on this continuous protocol, a method for public establishment and distribution of keys for encryption systems is implemented. An embodiment of the method, while providing a high security level, is several orders of magnitude faster than the existing key establishment systems. The present invention is a further development of the method of the geometric key establishment first proposed in U.S. patent application Ser. No. 10/708,197 by A. Berenstein and L. Chernyak.

Description:
REFERENCES CITED  
       [0000]    
       
          U.S. Pat. No. 5,696,826, December 1997, by Gao.  
          U.S. Pat. No. 6,493,449, December 2002, by Anshel et al;  
          U.S. patent application Ser. No. 10/605,935 by Berenstein and Chernyak.  
          U.S. patent application Ser. No. 10/708,197 by Berenstein and Chernyak.  
       
     
       OTHER REFERENCES  
       [0005]     B. Schneier, “Applied Cryptography” 1994, John Wiley &amp; Sons pp. 241, FIG. 10.5. D. Boneh. The decision Diffie-Hellman problem. In Proceedings of the  Third Algorithmic Number Theory Symposium,  Lecture Notes in Computer Science, Vol. 1423, Springer-Verlag, pp. 48-63, 1998.  
       BACKGROUND OF INVENTION  
       [0006]     1. Field of the Invention  
         [0007]     The invention relates to key establishment and distribution algorithms for cryptographic applications.  
         [0008]     2. Description of the Prior Art: Key Establishment Protocols  
         [0009]     The concepts, terminology and framework for understanding cryptographic key establishment protocols is given in Alfred J. Menezes, Paul C. van Oorschot, and Scott A. Vanstone, “Handbook of Applied Cryptography,” CRC Press (1997), pages 490-491.  
         [0010]     A ‘protocol’ is a multi-party algorithm, defined by a sequence of steps specifying the actions required of two or more parties in order to achieve a specified objective.  
         [0011]     A ‘key establishment’ protocol is a protocol whereby a shared secret becomes available to two or more parties, for subsequent cryptographic applications.  
         [0012]     A ‘key transport’ protocol is a key establishment protocol where one party creates or obtains a secret value, and securely transfers it to the other participating parties.  
         [0013]     A ‘key agreement’ protocol is a key establishment protocol in which a shared secret is derived by two (or more) parties as a function of information contributed by, or associated with, each of the participating parties such that no party can predetermine the resulting value.  
         [0014]     A ‘key distribution’ protocol is a key establishment protocol whereby the established keys are completely determined a priori by initial keying material.  
         [0015]     The Diffie-Hellman key establishment protocol (also called ‘exponential key exchange’) is a fundamental algebraic protocol. It is presented in W. Diffie and M. E. Hellman, “New Directions in Cryptography,” IEEE Transaction on Information Theory vol. IT 22 (November 1976), pp. 644-654. The Diffie-Hellman protocol provided the first practical solution to the key distribution problem, allowing two parties, never having met in advance or sharing keying material, to establish a shared secret by exchanging messages over an open channel.  
         [0016]     The security of this protocol rests on the intractability of the Diffie-Hellman problem and the related problem of computing discrete logarithms in the multiplicative group of the finite field GF(p) where p is a large prime, cf. Alfred J. Menezes, Paul C. van Oorschot, and Scott A. Vanstone, “Handbook of Applied Cryptography,” CRC Press (1997), page 113.  
         [0017]     Most of known applications of Diffie-Hellman protocol deal with finite groups. Recently there emerged versions of Diffie-Hellman protocol for infinite, but yet discrete groups (see for example, U.S. Pat. No. 6,493,449 by Anshel et al), and U.S. patent application Ser. No. 10/708,197 by Berenstein and Chernyak.  
         [0018]     Unlike approaches existing in the prior art, the present invention is based not on finite or discrete groups, but rather on the connected compact topological groups.  
         [0000]     Brief Overview of Connected Compact Topological Groups  
         [0019]     The basic reference for concepts, terminology and historical framework in topological semigroups and monoids are given in the monograph by J. H. Carruth and J. A. Hildebrant,  The Theory of Topological Semigroups,  Marcel Dekker, Inc., New York, 1983; the basic reference for concepts, terminology and historical framework in topological groups are given in the monographs by P. J. Higgins,  Introduction to topological groups,  Cambridge: University Press, 1974, and by John F. Price,  Lie groups and compact groups,  Cambridge [Eng.]; New York: Cambridge University Press, 1977.  
         [0020]     A semigroup (X,·) is defined as a set X together with a binary operation X×X→X satisfying the following axiom of associativity. For all x, y, z∈X, (x·y)·z=x·(y·z).  
         [0021]     A semigroup (X,·) is called a monoid if it has a unique element 1 (called the unit element) such that x·1=1·x=x.  
         [0022]     Any semigroup (X′,·) can be turned into a monoid (X,·) by formally adjoining 1, i.e., X=X′∪{1}. Therefore, it makes sense to speak only about monoids, rather than semigroups.  
         [0023]     A monoid (X,·) is called commutative if x·y=y·x for all x, y, z∈X. Typically for commutative monoids the operation of multiplication is written as addition: x+y and the unit element is usually denoted as 0 x  (and referred to as the neutral additive element).  
         [0024]     A topological monoid X is a monoid which is also a topological space such that the multiplication X×X→X is a continuous map. (Here, X×X is viewed as a topological space by using the product topology).  
         [0025]     A topological monoid X is called compact if the underlying topological space is compact, i.e., if any open cover of the space X has a finite sub-cover.  
         [0026]     A first example of a topological monoid, which is not a group, is given by the extended real line, i.e., all real numbers with the ideal element +∞ and with the operation of addition given by the formula: 
 
 x⊕y =min( x, y ); 
 
 as defined, this monoid possesses the neutral additive element 0 x =+∞ (here we follow the standard convention that x+∞=+∞ and min(x,+∞)=x for any real number x). Please note that this monoid is not a group because x⊕x=x for any x. This topological monoid is sometimes referred to as the tropical monoid. 
 
         [0027]     A group (G,·) is a monoid such that for each element g in G there is a unique inverse element g −1 : 
 
 g·g   −1   =g   −1   ·g= 1. 
 
         [0028]     A topological group G is a group which is also a topological space such that the group multiplication G×G→G and the operation of taking inverses G→G are continuous maps. (Here, G×G is viewed as a topological space by using the product topology.)  
         [0029]     A topological group G is called compact if the underlying topological space is compact, i.e., if any open cover of the space G has a finite sub-cover.  
         [0030]     A first example of compact topological groups is any finite group (equipped with the discrete topology). Such groups provide examples of compact disconnected topological groups.  
         [0031]     Another class of compact topological groups is connected compact topological groups. A topological group is connected if the underlying topological space is connected. This class contains such groups as SO(V), where SO(V) is the group of all special orthogonal transformations of a Euclidean vector space V (therefore, there are at least as many compact connected topological groups as there are Euclidean vector spaces).  
         [0032]     The present invention implements the ideas and algorithms of Diffie-Hellman protocol for the case of connected compact topological groups. This approach allows one to bypass and, in some cases, to completely eliminate the computational complexity of the exponentiation operation. Such an approach does not exist in the prior art.  
       SUMMARY OF THE INVENTION  
       [0033]     Algebro-geometric key establishment system of the present invention allows for easy, secure, and rapid creation and distribution of encryption/decryption keys for major cryptosystems. The procedures of creation and distribution of keys are performed extremely rapidly and have very low computer memory requirements.  
         [0034]     The present invention proposes a continuous version of Diffie-Hellman protocol. Based on this continuous Diffie-Hellman protocol, a method for public distribution of keys for encryption/decryption systems is implemented. An embodiment of the method, while providing an high security level, is several orders of magnitude faster than existing key distribution systems.  
         [0035]     In one embodiment, the key creation process of the system hereof uses the operation of linear combination with integer coefficients of irrational numbers and the operation of taking fractional parts of real numbers. In more advanced implementations the operation of taking fractional parts can be replaced by the exponentiation from the compact Lie algebra into the corresponding compact Lie group.  
         [0036]     In another embodiment, the key creation process of the system hereof uses the operation of addition of real numbers and of taking minimum of several real numbers.  
         [0037]     The system of the present invention constructs encryption/decryption keys on the fly out of a publicly chosen m×n-matrix g which coefficients belong to a given topological monoid X and a pair (A, B), where A is a secret integer m×m matrix generated by the first communicating party and B is a secret integer n×n matrix generated by the second communicating party. Absolute values of matrix coefficients of these matrices are bounded by a publicly available constant 10 N  that may be arbitrarily big. Thus the keys created and distributed by the system hereof can be of any size given in advance. The present invention combines the idea of Diffie-Hellman protocol of key distribution with the idea of the geometric cryptosystem developed in the U.S. patent application Ser. No. 10/605,935 entitled GEOMETRY-BASED SYMMETRIC CRYPTOSYSTEM METHOD by the authors Arkady Berenstein and Leon Chernyak, and the idea of the geometric cryptosystem developed in the U.S. patent application Ser. No. 10/708,197 entitled METHOD AND APPARATUS FOR GEOMETRIC KEY ESTABLISHMENT PROTOCOLS BASED ON TOPOLOGICAL GROUPS by the authors Berenstein and Chernyak. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0038]      FIG. 1  is a block diagram of the mathematical apparatus that can be used in practicing embodiments of the invention.  
         [0039]      FIGS. 2 and 3  are flow diagrams of the algebro-geometric key establishment system which shows the operation of action of matrices with coefficients in a given semi-ring A, on matrices which coefficients belong to a given commutative topological monoid X; when taken with the subsidiary flow diagrams referred to therein, can be used in implementing embodiments of the invention.  
         [0040]      FIG. 4  is a flow diagram of the algebro-geometric key establishment system which shows the operation of fractional multiplication of integer m×m matrices by real m×n matrices; when taken with the subsidiary flow diagrams referred to therein, can be used in implementing fractional embodiments of the invention.  
         [0041]      FIG. 5  is a flow diagram of the algebro-geometric key establishment system which shows the operation of fractional multiplication of m×n matrices of real numbers by integer n×n matrices; when taken with the subsidiary flow diagrams referred to therein, can be used in implementing fractional embodiments of the invention.  
         [0042]      FIG. 6  is a block diagram of the algebro-geometric key establishment system that can be used in practicing fractional m×n-dimensional embodiments of the invention.  
         [0043]      FIG. 7  is a block diagram of the algebro-geometric key establishment system that can be used in practicing preferred fractional m×n-dimensional embodiments of the invention in the case when the monoid operation consists of taking the fractional part of sum of real numbers.  
         [0044]      FIG. 8  is a block diagram of the algebro-geometric key establishment system that can be used in practicing preferred tropical m×n-dimensional embodiments of the invention in the case when the monoid operation consists of taking the minimum of two real numbers.  
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT  
       [0045]     The key creation and distribution techniques of an embodiment of the algebro-geometric key establishment system hereof are based on actions of semi-rings on topological monoids. In one embodiment (referred to as a fractional embodiment) this action consists of an action of the semi-ring of positive integers on the semi-open unit interval by multiplication followed by evaluation of fractional parts of real numbers. More specifically, the fractional m×n-dimensional embodiment of the system hereof is based on the operation of multiplication of real matrices by integer matrices and on the operation of evaluating fractional parts of coefficients of resulting matrices.  
         [0046]     In more advanced implementations the operation of evaluating fractional parts can be replaced by the exponentiation from the compact Lie algebra into the corresponding compact Lie group.  
         [0047]     In another embodiment (referred to as a tropical embodiment) this action consists of a multiplication in the semi-ring consisting of all real numbers and the ideal element +∞ with the tropical addition and multiplication: x⊕y=min(x, y), x∘y=x+y; More specifically, the tropical m×n-dimensional embodiment of the system hereof is based on the operation of the tropical multiplication of matrices which coefficients are reals or +∞.  
         [0048]     A preferred exemplary embodiment of such an apparatus is depicted with block diagram in  FIG. 1 , and is described as follows.  
         [0049]     Let X be a commutative topological monoid whose law of composition X×X→X is feasibly computable. There are among such monoids a tropical one (based on the real numbers and +∞), commutative topological groups, e.g., commutative compact topological groups such as closed commutative subgroups in the special orthogonal groups or in the unitary groups. The block  101  generates such commutative topological monoids. Since each such monoid has uncountably many elements, the block  102  selects an element g of X essentially at random. The block  103  generates an m×n matrix g=(g ij ) which coefficients g ij  belong to to X. The block  104  is designed for the action of a m×m matrix A=(a ik ) which coefficients belong to a given semi-ring A on the m×n matrix g, which procedure is depicted in more details in  FIG. 2 . The block  105  is designed for the action of a n×n matrix B=(b lj ) which coefficients belong to the semi-ring A on the m×n matrix g, which procedure is depicted in more details in  FIG. 3 . The block  106  rounds (if necessary) each element g of the monoid X to the nearest element [g] of X. This procedure is depicted in more details in the subsequent flow diagram of  FIG. 7  where, as a preferred fractional embodiment of the invention hereof, the monoid X is a group, which operation consists of taking the fractional part of sum of real numbers. The block  107  applies the procedure of rounding of the block  106  to each coefficient of a given m×n matrix g=(g ij ).  
         [0050]      FIG. 2  represents a basic procedure of the left action of an m×m matrix A=(a ik ) on an m×n matrix g=(g ij ).  
         [0051]     In the block  201  an m×n matrix g=(g ij ) which coefficients belong to the topological monoid X is generated.  
         [0052]     Independently, in the block  202  an m×m matrix A with coefficients in a given semi-ring A is generated.  
         [0053]     And, in the block  203  the m×n matrix A(g) is computed according to the formula:  
           A   ⁡     (   g   )       =     (       g   ′     ij     )       ,     
     ⁢   where       
             g   ′     ij     =       ∑     k   =   1     m     ⁢       a   ik     ⁡     (     g   kj     )           ;       
 
 for i=1, 2, . . . , m, and j=1, 2, . . . , n. 
 
         [0054]      FIG. 3  represents a basic procedure of the right action of an n×n matrix B=(b lj ) on an m×n matrix g=(g ij ).  
         [0055]     In the block  301  an m×n matrix g=(g ij ) which coefficients belong to the topological monoid X is generated.  
         [0056]     Independently, in the block  302  an n×n matrix B with coefficients in a given semi-ring A is generated.  
         [0057]     And, in the block  303  the m×n matrix (g)B is computed according to the formula:  
           g   ⁡     (   B   )       =     (       g   ″     ij     )       ,     
     ⁢   where       
           g   ″     ij     =       ∑     l   =   1     n     ⁢       (     g   il     )     ⁢     b   lj             
 
 for i=1, 2, . . . , m, and j=1, 2, . . . , n. 
 
         [0058]      FIG. 4  represents a basic procedure of implementing the routine of  FIG. 2  in the case when the monoid operation consists of taking the fractional part of sum of real numbers.  
         [0059]     In the block  401  a real m×n matrix g=(g ij ) is generated.  
         [0060]     Independently, in the block  402  an integer m×m matrix A is generated.  
         [0061]     And, in the block  403  the fractional product {A·g} is computed according to the formula:  
           {     A   ·   g     }     =     (       g   ′     ij     )       ,     
     ⁢   where       
           g   ′     ij     =     {       ∑     k   =   1     m     ⁢       a   ik     ⁢     g   kj         }         
 
 for i=1, 2, . . . , m, and j=1, 2, . . . , n, where {z} stands for the fractional part of the real number z (for example, {1.7}=0.7, {−1.7}=0.3). 
 
         [0062]      FIG. 5  represents a basic procedure of implementing the routine of  FIG. 3  in the case when the monoid operation consists of taking the fractional part of sum of real numbers.  
         [0063]     In the block  501  a real m×n matrix g=(g ij ) is generated.  
         [0064]     Independently, in the block  502  an integer n×n matrix B is generated.  
         [0065]     And, in the block  503  the fractional product {g·B} is computed according to the formula:  
           {     g   ·   B     }     =     (       g   ″     ij     )       ,     
     ⁢   where       
           g   ″     ij     =     {       ∑     l   =   1     n     ⁢       g   il     ⁢     b   lj         }         
 
 for i=1, 2, . . . , m, and j=1, 2, . . . , n; 
 
         [0066]      FIG. 6  represents a basic procedure of implementing the routine of  FIG. 2  in the case when the monoid operation is tropical, i.e., it consists of taking the minimum two real numbers.  
         [0067]     In the block  601  a real m×n matrix g=(g ij ) is generated.  
         [0068]     Independently, in the block  602  a real m×m matrix A is generated.  
         [0069]     And, in the block  603  the tropical product A∘g is computed according to the formula:  
           A   ∘   g     =     (       g   ′     ij     )       ,     
     ⁢   where       
           g   ′     ij     =       min     1   ≤   k   ≤   m       ⁢     (       a   ik     +     g   kj       )           
 
 for i=1, 2, . . . , m, and j=1, 2, . . . , n. 
 
         [0070]      FIG. 7  represents a basic procedure of implementing the routine of  FIG. 2  in the case when the monoid operation is tropical, i.e., it consists of taking the minimum two real numbers.  
         [0071]     In the block  701  a real m×n matrix g=(g ij ) is generated.  
         [0072]     Independently, in the block  702  a real n×n matrix B is generated.  
         [0073]     And, in the block  703  the tropical product g∘B is computed according to the formula:  
           g   ∘   B     =     (       g   ″     ij     )       ,     
     ⁢   where       
           g   ″     ij     =       min     1   ≤   l   ≤   n       ⁢     (       g   il     +     b   lj       )           
 
 for i=1, 2, . . . , m, and j=1, 2, . . . , n. 
 
         [0074]      FIG. 8  illustrates creation, establishment, and distribution of an algebro-geometric key in the preferred embodiment of the system of the present invention. It refers to the routines illustrated by other referenced flow diagrams ( FIG. 1 ,  FIG. 2 ,  FIG. 3 ,  FIG. 4 ,  FIG. 5 ,  FIG. 6 ,  FIG. 7 ) which describe features in accordance with an embodiment of the invention.  
         [0075]     The block  801  represents choosing at random a public m×n matrix g=(g ij ), which coefficients belong to the public commutative topological monoid X. This g is to be used by both communicating parties.  
         [0076]     The block  802  represents the routine that can be used by the first communicating party for generating a private matrix A according to the routine of  FIG. 2 .  
         [0077]     Similarly, the block  803  represents the routine that can be used by the second communicating party for generating a private matrix B according to the routine of  FIG. 3 .  
         [0078]     The block  804  represents computation (by the first communicating party) of the m×n matrix A(g) according to the routine of  FIG. 2 , and rounding (if necessary) the matrix A(g) to the nearest m×n matrix [A(g)]. The rounded m×n matrix [A(g)] is then transmitted over an open (public) channel to the second communicating party.  
         [0079]     Similarly, the block  805  represents computation (by the second communicating party) of the m×n matrix (g)B according to the routine of  FIG. 3 , and rounding (if necessary) the matrix (g)B to the nearest m×n matrix [(g)B]. The rounded m×n matrix [(g)B] is then transmitted over an open (public) channel to the first communicating party.  
         [0080]     The block  806  represents the routine that can be used by the second communicating party for generating the m×n matrix ([A(g)])B (according to the routine of  FIG. 2 ) and rounding it to the nearest m×n matrix [([A(g)])B].  
         [0081]     Similarly, the block  807  represents the routine that can be used by the first communicating party for generating the m×n matrix A([(g)B]) (according to the routine of  FIG. 3 ) and rounding it to the nearest m×n matrix [A[(g)B]].  
         [0082]     By the design, the m×n matrices [([A(g)])B] and [A([(g)B])] are equal, and thus comprise the common secret algebro-geometric key in possession of both communicating parties.  
         [0083]      FIG. 9  represents creation, establishment, and distribution of a key in the fractional embodiment of the algebro-geometric key establishment system of present invention.  
         [0084]     First, public natural numbers d, N, K are generated in the block  901 . Next, a public real m×n matrix g=(g ij ) is generated in such a way that each g ij  is a fractional decimal number having d+2N+K+┌log 10 (mn)┐ digits after dot (where ┌z┐ denotes rounding of a real number z to the smallest integer greater than z) is generated in the same block  901 .  
         [0085]     Then in the block  902 , a private integer matrix A is generated according to routines of  FIG. 2  and  FIG. 4  (in this case the semi-ring A is the ring of all integers).  
         [0086]     In a similar manner, in the block  903  a private integer matrix B is generated according to routines of  FIG. 3  and  FIG. 5  (in this case the semi-ring A is the ring of all integers).  
         [0087]     In the block  904  the fractional m×n matrix {A·g} is computed according to the routine of  FIG. 4 . Next, each coefficient of the m×n matrix {A·g} is rounded to d+N+K+┌log 10 (mn)┐ decimal places. The rounded fractional m×n matrix {A·g} is then transmitted to the second communicating party.  
         [0088]     In a similar manner, in the block  905  the fractional m×n matrix {g·B} is computed according to the routine of  FIG. 5 . Next, each coefficient of the m×n matrix {g·B} is rounded to d+N+K+┌log 10 (mn)┐ decimal places. The rounded fractional m×n matrix {g·B} is then transmitted to the second communicating party.  
         [0089]     The block  906  represents the routine that can be used by the second communicating party for computing the fractional m×n matrix {{A·g}·B}. The loop  908  is used in the case when the m×n matrix {{A·g}·B} is not (K, d)-consistent (that is, in the case when the sequence of the digits a K+1 , a K+2 , . . . a K+d  of at least one coordinate of the m×n matrix {{A·g}·B} is either 0, 0, . . . , 0 or 9, 9, . . . , 9.) The loop  708  is continued until the m×n matrix {{A·g}·B} becomes (K, d)-consistent. [The probability of a m×n matrix {{A·g}·B} to be not (K, d)-consistent is extremely low. Namely, this probability is measured as at most 1−(1−2·10 −d ) mn . The probability of the need for the second run of the loop  908  is measured as at most (1−(1−2·10 −d ) mn ) 2 ]. The block  910  is then entered, this block represents the generation of a m×n matrix S which is the rounding of the (K, d)-consistent m×n matrix {{A·g}·B} to K decimal places.  
         [0090]     In a similar manner the block  907  represents the routine that can be used by the first communicating party for computing the fractional m×n matrix {A·{g·B}}. The loop  909  is used in the case when the m×n matrix {A·{g·B}} is not (K, d)-consistent (that is, in the case when the sequence of the digits a K+1 , a K+2 , . . . a K+d  of at least one coordinate of the m×n matrix {A·{g·B}} is either 0, 0, . . . , 0 or 9, 9, . . . , 9.) The loop  709  is continued until the m×n matrix {A·{g·B}} becomes (K, d)-consistent. [The probability of a m×n matrix {A·{g·B}} to be not (K, d)-consistent is extremely low. Namely, this probability is measured as at most 1−(1−2·10 −d ) mn . The probability of the need for the second run of the loop  709  is measured as at most (1−(1−2·10 −d ) mn ) 2 ]. The block  911  is then entered, this block represents the generation of an m×n matrix S′ which is the rounding of the (K, d)-consistent m×n matrix {A·{g·B}} to K decimal places.  
         [0091]     By the design, the m×n matrices S and S′ are equal, and thus comprise the common secret key in possession of both communicating parties.  
         [0092]      FIG. 10  represents creation, establishment, and distribution of a key in a tropical embodiment of the algebro-geometric key establishment system of present invention.  
         [0093]     First, in the block  1001  a public real m×n matrix g=(g ij ) is generated.  
         [0094]     Then in the block  1002 , a private real m×m matrix A is generated according to routines of  FIG. 2  and  FIG. 6  (in this case A is the semi-ring of all real numbers and the ideal element +∞ with the tropical addition and multiplication: x⊕y=min(x, y), x∘y=x+y).  
         [0095]     In a similar manner, in the block  1003  a private real n×n matrix B is generated according to routines of  FIG. 3  and  FIG. 7  (in this case A is also the semi-ring of all real numbers and +∞ with the tropical addition and multiplication).  
         [0096]     In the block  1004  the tropical product A∘g of matrices A and g is computed according to the routine of  FIG. 6 .  
         [0097]     The real m×n matrix A∘g is then transmitted to the second communicating party.  
         [0098]     In a similar manner, in the block  1005  the tropical product g∘B of matrices g and B is computed according to the routine of  FIG. 7 .  
         [0099]     The real m×n matrix g∘B is then transmitted to the second communicating party.  
         [0100]     The block  1006  represents the routine that can be used by the second communicating party for computing the real m×n matrix (A∘g)∘B.  
         [0101]     In a similar manner the block  1007  represents the routine that can be used by the first communicating party for computing the real m×n matrix A∘(g∘B).  
         [0102]     By the design, the m×n matrices (A∘g)∘B and A∘(g∘B) are equal, and thus comprise the common secret key in possession of both communicating parties.  
         [0103]     The system of present invention is a continuous generalization of the Diffie-Hellman paradigm. Therefore, the security of the system hereof is based on the correlation of the continuous and discrete aspects of the systems internal (secret) and external (public) components.  
         [0104]     In particular, the security of the fractional embodiment of the system hereof comes from the built-in geometric density of certain sequences of irrational numbers in the semi-open interval [0, 1) of the real line. In other words, security is guaranteed by the obvious mathematical fact that there is no any a priori known general distribution pattern for members of certain sequences of irrational numbers. More precisely, let β 1 , β 2 , . . . be a sequence of irrational numbers (or more generally, of irrational elements of a compact Lie group) and let γ be an irrational number computed with the precision of K decimal places. Then any algorithm that recognizes γ as an element of the sequence β 1 , β 2 , . . . and identifies the index n such that γ=β n  must work at least C·10 K  units of time where C is an a priori given constant.  
         [0105]     The security of the tropical embodiment of the system hereof comes from the difficulty of the task of reconstructing, based on the known algebraic structure of a multitude of real numbers, the real numbers comprising the multitude. More precisely, in the n×n tropical embodiment the multitude of choices is estimated as n n     2   . In particular, if n=10, the number of choices a cryptanalyst will face is about 10 100 .  
         [0106]     Apparently, approaches that are the closest to the present invention are developed in U.S. Pat. No. 5,696,826 entitled METHOD AND APPARATUS FOR ENCRYPTING AND DECRYPTING INFORMATION USING A DIGITAL CHAOS SIGNAL by Gao, in U.S. Pat. No. 6,493,449 entitled METHOD AND APPARATUS FOR CRYPTOGRAPHICALLY SECURE ALGEBRAIC KEY ESTABLISHMENT PROTOCOLS BASED ON MONOIDS by Anshel et al, and in U.S. patent application Ser. No. 10/605,935 entitled GEOMETRY-BASED SYMMETRIC CRYPTOSYSTEM METHOD by Berenstein and Chernyak, and in U.S. patent application Ser. No. 10/708,197 entitled METHOD AND APPARATUS FOR GEOMETRIC KEY ESTABLISHMENT PROTOCOLS BASED ON TOPOLOGICAL GROUPS by the authors Berenstein and Chernyak.  
         [0107]     The idea of using fractional parts of multiples of given irrational numbers is not new in cryptography. These fractional parts were used, for example, in the patent by Gao for obtaining uniform distributions of numbers in the unit interval. However, this is perhaps the only similarity between those previous works and the system of the present invention. In the system hereof, fractional parts of multiples of given irrational numbers are never used for obtaining a uniform distribution of numbers, but rather for creation of a deterministic (non-random) keys.  
         [0108]     The idea of using infinite groups and semigroups for key establishment and distribution is relatively new. It is presented in U.S. Pat. No. 6,493,449 by Anshel et al. However, the present invention is the first where continuous groups and monoids are used for key establishment and distribution. In U.S. patent application Ser. No. 10/605,935 by Berenstein and Chernyak the geometric continuity is utilized for constructing private encryption systems.  
         [0109]     The present invention combines the idea of Diffie-Hellman protocol of key establishment with the idea of the geometric cryptosystem developed in U.S. patent application Ser. No. 10/605,935 by the authors Arkady Berenstein and Leon Chernyak and the idea of the geometric cryptosystem developed in the U.S. patent application Ser. No. 10/708,197 by the authors Arkady Berenstein and Leon Chernyak.  
         [0110]     An embodiment of the system hereof (to be referred as a fractional 2×2-dimensional embodiment) deals with a publicly chosen real 2×2 matrix g and a pair of secret integer 2×2 matrices A and B, where the matrix A is generated by the first communicating party and the matrix B—by the second communicating party. Absolute values matrix coefficients of these matrices are bounded by a publicly available constant 10 N  that may be arbitrarily big. Thus the keys created and distributed by the system hereof can be of any given in advance size.  
         [0111]     A fractional 2×2-dimensional embodiment of the system hereof works with a 2×2 matrix g of the form  
       g   =     [           g   11           g   12               g   21           g   22           ]         
 
 where g 11 , g 12 , g 21 , g 22  are real numbers; and with 2×2 matrices A and B of the form:  
       A   =     [           a   11           a   12               a   21           a   22           ]         
 
 where a 11 , a 12 , a 21 , a 22  are non-negative integers; and  
       B   =     [           b   11           b   12               b   21           b   22           ]         
 
 and where b 11 , b 12 , b 21 , b 22  are non-negative integers. 
 
         [0112]     Absolute values of each integer a 11 , a 12 , a 21 , a 22 , b 11 , b 12 , b 21 , b 22  are bounded by a publicly available constant 10 N  that may be arbitrarily big. Thus the keys created and distributed by the system hereof can be of any given in advance size.  
         [0113]     In this embodiment the 2×2 matrix g has coefficients g 11 , g 12 , g 21 , g 22  which are arbitrary real numbers, that is, g is an arbitrary point of the 4-dimensional space.  
         [0114]     Let {x} be the fractional part of a real number x. By definition, for each real number x, the fractional part {x} is given by: 
 
 {x}=x−[x],  
 
 where [x] is the integer part of x, that is, [x] is the greatest integer that is less or equal x. 
 
         [0115]     If the numbers a 0 , a 1  and b 0 , b 1  are integers having at most N decimal digits each (that is, |a 11 |&lt;10 N , |a 12 |&lt;10 N , |a 21 |&lt;10 N , |a 22 |&lt;10 N  and |b 11 |&lt;10 N , |b 12 |&lt;10 N , |b 21 |&lt;10 N , |b 22 |&lt;10 N ) and each coordinate of the following 2×2 matrices  
         {     A   ·   g     }     =     [           {         a   11     ⁢     g   11       +       a   12     ⁢     g   21         }           {         a   11     ⁢     g   12       +       a   12     ⁢     g   22         }               {         a   21     ⁢     g   11       +       a   22     ⁢     g   21         }           {         a   21     ⁢     g   12       +       a   22     ⁢     g   22         }           ]         
     and     
         {     g   ·   B     }     =     [           {         g   11     ⁢     b   11       +       g   12     ⁢     b   21         }           {         g   11     ⁢     b   12       +       g   12     ⁢     b   22         }               {         g   21     ⁢     b   11       +       g   22     ⁢     b   21         }           {         g   21     ⁢     b   12       +       g   22     ⁢     b   22         }           ]         
 
 is rounded to d+N+K+1 decimal places after dot (where d, N, and K are natural numbers each greater than 1), then the created and distributed key, which is the 2×2 matrix {A·g·B}, in each of its coordinates will have K correct decimal places after the dot. These 2K correct digits can serve as an encryption/decryption key of a cryptosystem. 
 
         [0116]     The security of this two-dimensional embodiment is further enhanced even in comparison with the high security of the one-dimensional embodiment.  
         [0117]     In creating algebro-geometric key establishment system in accordance with the 2-dimensional embodiment hereof, a first step is to choose publicly available parameters of the system: a real 2×2 matrix g and natural numbers d, N, K, each greater than 1, where d stands for the size of the error control buffer, N stands for the maximum number of decimal places in each secret parameter a and b, and K stands for the key length.  
         [0118]     This embodiment of the algebro-geometric key establishment system hereof relies on the concept of (K, d)-consistent matrices. An infinite decimal fraction δ=0. a 1 , a 2  a 3  . . . is said to be (K, d)-consistent if the sequence of the digits a K+1 , a K+2 , . . . , a K+d  is neither 0, 0, . . . , 0 nor 9, 9, . . . , 9. We say that a matrix g is (K, d)-consistent both x 1  and x 2  are (K, d)-consistent numbers.  
         [0119]     To implement the key creation and key distribution of this example, the first communicating party, call it Alice, chooses a secret integer 2×2 matrix A each coefficient of which is between −10 N  and 10 N  (i.e., each of these four coefficients has at most N decimal places). Then Alice calculates the 2×2 matrix y={A·g} by the formula:  
       y   =       {     A   ·   g     }     =     [           {         a   11     ⁢     g   11       +       a   12     ⁢     g   21         }           {         a   11     ⁢     g   12       +       a   12     ⁢     g   22         }               {         a   21     ⁢     g   11       +       a   22     ⁢     g   21         }           {         a   21     ⁢     g   12       +       a   22     ⁢     g   22         }           ]           
 
 and then rounds each coefficient of y to d+N+K+1 decimal places; and sends so rounded matrix [y] to the second communicating party, call it Bob. [It is assumed in this example that Alice and Bob share the publicly available parameters g and d, N, K.]
 
         [0120]     Simultaneously and independently Bob chooses a secret integer 2×2 matrix A each coefficient of which is between −10 N  and 10 N  (i.e., each of these four coefficients has at most N decimal places). Then Bob calculates the 2×2 matrix z={g·B} by the formula:  
       z   =       {     g   ·   B     }     =     [           {         g   11     ⁢     b   11       +       g   12     ⁢     b   21         }           {         g   11     ⁢     b   12       +       g   12     ⁢     b   22         }               {         g   21     ⁢     b   11       +       g   22     ⁢     b   21         }           {         g   21     ⁢     b   12       +       g   22     ⁢     b   22         }           ]           
 
 and then rounds each coefficient of z rounded to d+N+K decimal places; and sends so rounded matrix [z] to Alice. 
 
         [0121]     Upon receiving the 2×2 matrix [y] from Alice, Bob calculates the matrix k={[y]·B} by the formula:  
       k   =     [                 {         (         a   11     ⁢     g   11       +       a   12     ⁢     g   21         )     ⁢     b   11       +                     (         a   11     ⁢     g   12       +       a   12     ⁢     g   22         )     ⁢     b   21       }                       {         (         a   11     ⁢     g   11       +       a   12     ⁢     g   21         )     ⁢     b   12       +                     (         a   11     ⁢     g   12       +       a   12     ⁢     g   22         )     ⁢     b   22       }                           {         (         a   21     ⁢     g   11       +       a   22     ⁢     g   21         )     ⁢     b   11       +                     (         a   21     ⁢     g   12       +       a   22     ⁢     g   22         )     ⁢     b   21       }                       {         (         a   21     ⁢     g   11       +       a   22     ⁢     g   21         )     ⁢     b   12       +                     (         a   21     ⁢     g   12       +       a   22     ⁢     g   22         )     ⁢     b   22       }                 ]         
 
         [0122]     If the matrix k is (K, d)-consistent then Bob calculates the algebro-geometric key S by rounding each matrix coefficient of k to K decimal places. Otherwise, he restarts the protocol.  
         [0123]     Upon receiving the 2×2 matrix [z] from Bob, Alice calculates the 2×2 matrix k′={A·[z]} by the formula:  
         k   ′     =     [                 {         a   11     ⁡     (         g   11     ⁢     b   11       +       g   12     ⁢     b   21         )       +                     a   12     ⁡     (         g   21     ⁢     b   11       +       g   22     ⁢     b   21         )       }                       {         a   11     ⁡     (         g   11     ⁢     b   12       +       g   12     ⁢     b   22         )       +                     a   12     ⁡     (         g   21     ⁢     b   12       +       g   22     ⁢     b   22         )       }                           {         a   21     ⁡     (         g   11     ⁢     b   11       +       g   12     ⁢     b   21         )       +                     a   22     ⁡     (         g   21     ⁢     b   11       +       g   22     ⁢     b   21         )       }                       {           a   11     ⁡     (         g   11     ⁢     b   12       +       g   12     ⁢     b   22         )       ⁢     a   21       +                     a   22     ⁡     (         g   21     ⁢     b   12       +       g   22     ⁢     b   22         )       }                 ]         
 
         [0124]     If the matrix k′ is (K, d)-consistent then Alice calculates the algebro-geometric key S′ by rounding each coefficient of k′ to K decimal places. Otherwise, she restarts the protocol.  
         [0125]     The mathematical argument presented below proves that the algebro-geometric key S in possession of Bob equals the algebro-geometric key S′ in possession of Alice.  
         [0126]     In those (extremely rare) cases when k is not (K, d)-consistent, the algebro-geometric key has to be redistributed because otherwise it may happen that S≠S′. In order to avoid such a situation, Alice and Bob choose new secret integer 2×2 matrix A′ and B′ respectively (while keeping the same g and d, N, K) and repeat the above steps until they get a new algebro-geometric key S=S′ (provided that the new matrix k is (K, d)-consistent). The probability of the need for such redistribution is extremely low and is measured as at most 1−(1−2·10 −d ) 4  The probability of the need for the second key distribution is measured as at most (1−(1−2·10 −d ) 4 ) 2 .  
         [0127]     The embodiment of the system hereof is based on the following mathematical argument.  
         [0128]     Proposition. Let be P=(P ij ), Q=(Q ij ), and L=(L ij ) be m×n matrices of natural numbers. Let α=(α ik ) be an arbitrary m×m matrix with natural coefficients and let β=(β lj ) be an arbitrary n×n matrix with natural coefficients such that: 
 
 α·Q*≦L*, P*·β≦L*,  
 
 where P*=(1/P ij ), Q*=(1/Q ij ), L*=(1/(L ij )), and the m×n matrix inequality Y≦Z is equivalent to m·n scalar inequalities: y ij ≦z ij . Then for any integer m×m matrix A, any integer m×n matrix B satisfying |a ik |&lt;α ik , |b lj |&lt;β lj  (i, k=1, 2, . . . , m, j, l=1, 2, . . . , n) one has: 
    either at least one matrix coefficient of [{([{A·g}] P )·B}] L  equals 0, or at least one matrix coefficient of [{([{g·B}] Q )·A}] L  equals 0, or 
 
− L *&lt;{([{ A·g}]   P )· B }−{( A·[{g·B}]   Q )}&lt; L*.  
   
 
         [0130]     Proof: By definition, one has: 
 
[{ A·g}]   P   ={A·g}+θ   1   , [{g·B}]   Q   ={g·B}+θ   2 , 
 
 where θ 1  and θ 2  are m×n matrices such that −½P*≦θ 1 ≦½P* and −½Q*≦θ 2 ≦½Q*. Therefore, 
 
([{ A·g}]   P )· B =({ A·g}+θ   1 )· B={A·g}·B+θ   1   ·B={A·g}·B+E   1 , 
 
 where E 1 =θ 1 ·B. Similarly, 
 
 A ·([{ g·B}]   Q )= A ·({ g·B}+θ   2   ·Q   −1 )= A·{g·B}+A·θ   2   =A·{g·B}+E   2 , 
 
 where E 2 =A·θ 2 . 
 
         [0131]     By the assumptions, one has: 
 
| E   1 |=|θ 1   ·B |≦½·| P*·B |&lt;½· P *·β≦½· L*, |E   2   |=|A·θ   2 |≦½·| A·Q *|&lt;½· Q *·α≦½· L*.  
 
 In its turn, this implies that either at least one matrix coefficient in |([{A·g}] P )·B| is not greater than the corresponding coefficient of L*/2 or |([{A·g}] P )·B|&gt;L*/2 and: 
 
{([{ A·g}]   P )· B}={{A·g}·B+E   1   }={{A·g}·B}+E   1   ={A·g·B}+E   1 . 
 
 Similarly, the above implies that either at least one matrix coefficient in |A·([{g·B}] Q )| is not greater than the corresponding coefficient of L*/2 or |A·([{g·B}] Q )|&gt;L*/2 and: 
 
{ A ·([{ g·B}]   Q )}={ A·{g·B}+E   2   }={A·{g·B}}+E   2   ={A·g·B}+E   2 . 
 
 Therefore {([{A·g}] P )·B}−{A·([{g·B}] Q )}=E 1 −E 2 . 
 
         [0132]     Finally note that −L*=−L*/2−L*/2&lt;E 1 −E 2 &lt;L*/2+L*/2=L*.  
         [0133]     This finishes the proof.  
         [0134]     A real m×n matrix x=(x ij ) is said to be (K, d)-consistent if: 
 
− c· 1 mn   ≦x−[x]   K   ≦c· 1 mn , 
 
 where c=½−1/(2d) and 1 mn  is the m×n matrix in which all matrix coefficients are equal 1. 
 
         [0135]     Corollary. In the notation of Proposition, if L=d·K and one the m×n matrices {([{A·g}] P )·B}, {A·([{g·B}] Q )} is (K, d)-consistent then [([{A·g}] P )·B] K =[A·([{g·B}] Q )] K .  
         [0136]     For the 2×2-dimensional embodiment of the system hereof the Corollary is applied with m=n=2, K 11 =K 12 =K 21 =K 22 =K. Therefore, the Corollary guarantees that S=S′ in the protocol.  
         [0137]     In creating an algebro-geometric key establishment system in accordance with the 2×2-dimensional embodiment hereof (and with the following small numbers for ease of illustration), a first step is to choose publicly available parameters of the system: a 2×2 matrix g and integer parameters d, N, K greater than 1 each.  
         [0138]     Take, for example,  
       g   =     [           √   2           √   3               √   5           √   7           ]         
 
 and N=K=3, d=2. 
 
         [0139]     Next, suppose that Alice chooses a secret integer 2×2 matrix A:  
       A   =     [         123       456           817       391         ]         
 
         [0140]     Alice calculates the 2×2 matrix y=[{A·g}] each element of which rounded to d+N+K+1=9 decimal places:  
       y   =       [     {     A   ·   g     }     ]     =     [         0.595265912       0.504847176           0.715059661       0.574272410         ]           
 
 and sends this 2×2 matrix y to Bob. 
 
         [0141]     Suppose that at the same time Bob chooses a secret integer 2×2 matrix B:  
       B   =     [         691       378           529       109         ]         
 
         [0142]     Bob calculates the 2×2 matrix z=[{g·B}] each element of which rounded to d+N+K+1=9 decimal places:  
       z   =       [     {     g   ·   B     }     ]     =     [         0.476448804       0.366264602           0.725416006       0.620588401         ]           
 
 and sends this 2×2 matrix z to Alice. 
 
         [0143]     Upon receiving the 2×2 matrix y from Alice, Bob calculates the 2×2 matrix k=[{y·B}] with the precision K+d=5 decimal places after dot:  
       k   =       [     {     y   ·   B     }     ]     =     [         0.39290       0.03885           0.89633       0.88824         ]           
 
         [0144]     Since this 2×2 matrix is (K, d)-consistent, the 2×2 matrix k, after having been rounded to the first K=3 digits of each element, constitutes the algebro-geometric key in possession of Bob:  
       S   =     [         0.393       0.039           0.897       0.889         ]         
 
         [0145]     Upon receiving the 2×2 matrix z from Bob, Alice calculates the 2×2 matrix k′=[{A·[z]}] with the precision K+d=5 decimal places after dot:  
         k   ′     =       [     {     A   ·   z     }     ]     =     [         0.39290       0.03885           0.89633       0.88824         ]           
 
         [0146]     Since this each element of this 2×2 matrix is (K, d)-consistent the 2×2 matrix k′, after having been rounded to the first K=3 digits of each element, constitutes the algebro-geometric key in possession of Alice:  
         S   ′     =     [         0.393       0.039           0.897       0.889         ]         
 
         [0147]     Thus, the 2×2 matrix S=S′ is the algebro-geometric key shared by Alice and Bob. This key can be used in any major symmetric cryptosystem.  
         [0148]     Another embodiment of the system hereof (to be referred as a tropical 2×2-dimensional embodiment) deals with a publicly chosen real 2×2 matrix g and a pair of secret real 2×2 matrices A and B, where the matrix A is generated by the first communicating party and the matrix B—by the second communicating party. The matrix coefficients of these matrices and the keys created and distributed by the system hereof can be of any given in advance size.  
         [0149]     A tropical 2×2-dimensional embodiment of the system hereof works with a 2×2 matrix g of the form  
       g   =     [           g   11           g   12               g   21           g   22           ]         
 
 where g 11 , g 12 , g 21 , g 22  are real numbers; and with 2×2 matrices A and B of the form:  
             A   =     [           a   11           a   12               a   21           a   22           ]             B   =     [           b   11           b   12               b   21           b   22           ]               
 
 where a 11 , a 12 , a 21 , a 22  are real numbers; and b 11 , b 12 , b 21 , b 22  are real numbers. 
 
         [0150]     To implement the key creation and key distribution of this embodiment, the first communicating party, call it Alice calculates the 2×2 matrix y={A·g} by the formula:  
       y   =       A   ∘   g     =     [           min   ⁡     (         a   11     +     g   11       ,       a   12     +     g   21         )             min   ⁡     (         a   11     +     g   12       ,       a   12     +     g   22         )                 min   ⁡     (         a   21     +     g   11       ,       a   22     +     g   21         )             min   ⁡     (         a   21     +     g   12       ,       a   22     +     g   22         )             ]           
 
 and sends y to the second communicating party, call it Bob. [It is assumed that Alice and Bob share the publicly available parameter g]. 
 
         [0151]     Simultaneously and independently Bob calculates the 2×2 matrix z=g∘B by the formula:  
       z   =       g   ∘   B     =     [           min   ⁡     (         g   11     +     b   11       ,       g   12     +     b   21         )             min   ⁡     (         g   11     +     b   12       ,       g   12     +     b   22         )                 min   ⁡     (         g   21     +     b   11       ,       g   22     +     b   21         )             min   ⁡     (         g   21     +     b   12       ,       g   22     +     b   22         )             ]           
 
 and sends z to Alice. 
 
         [0152]     Upon receiving the 2×2 matrix y from Alice, Bob calculates the matrix k=y∘B by the formula:  
       S   =       y   ∘   B     =     [           min   ⁡     (         y   11     +     b   11       ,       y   12     +     b   21         )             min   ⁡     (         y   11     +     b   12       ,       y   12     +     b   22         )                 min   ⁡     (         y   21     +     b   11       ,       y   22     +     b   21         )             min   ⁡     (         y   21     +     b   12       ,       y   22     +     b   22         )             ]           
 
         [0153]     Upon receiving the 2×2 matrix z from Bob, Alice calculates the 2×2 matrix k′=A∘z by the formula:  
         S   ′     =       A   ∘   z     =     [           min   ⁡     (         a   11     +     z   11       ,       a   12     +     z   21         )             min   ⁡     (         a   11     +     z   12       ,       a   12     +     z   22         )                 min   ⁡     (         a   21     +     z   11       ,       a   22     +     z   21         )             min   ⁡     (         a   21     +     z   12       ,       a   22     +     z   22         )             ]           
 
         [0154]     A direct computation shows that  
       S   =       S   ′     =     [                 min   (         a   11     +     g   11     +     b   11       ,                     a   11     +     g   12     +     b   21       ,                   a   12     +     g   21     +     b   11       ,                   a   12     +     g   22     +     b   21       )                       min   (         a   11     +     g   11     +     b   12       ,                     a   11     +     g   12     +     b   22       ,                   a   12     +     g   21     +     b   12       ,                   a   12     +     g   22     +     b   22       )                           min   (         a   21     +     g   11     +     b   11       ,                     a   21     +     g   12     +     b   21       ,                   a   22     +     g   21     +     b   11       ,                   a   22     +     g   22     +     b   21       )                       min   (         a   21     +     g   11     +     b   12       ,                     a   21     +     g   12     +     b   22       ,                   a   22     +     g   21     +     b   12       ,                   a   22     +     g   22     +     b   22       )                 ]           
 
         [0155]     Thus, the algebro-geometric key S in possession of Bob equals the algebro-geometric key S′ in possession of Alice.  
         [0156]     In creating an algebro-geometric key establishment system in accordance with the tropical 2×2-dimensional embodiment hereof (and with the following small numbers for ease of illustration), a first step is to choose publicly available parameters of the system: a 2×2 matrix g.  
         [0157]     Take, for example,  
       g   =     [           √   2           √   3               √   5           √   7           ]         
 
         [0158]     Next, suppose that Alice chooses a secret real 2×2 matrix A:  
       A   =     [           √   123           √   456               √   817           √   391           ]         
 
         [0159]     Alice calculates the 2×2 matrix y=A·g:  
             y   =     A   ∘   g                 =     [                 min   (         √   123     +     √   2       ,                     √   456     +     √   5       )                       min   (         √   123     +     √   3       ,                     √   456     +     √   7       )                           min   (         √   817     +     √   2       ,                     √   391     +     √   5       )                       min   (         √   817     +     √   3       ,                     √   391     +     √   7       )                 ]                 =     [             √   123     +     √   2               √   123     +     √   3                   √   391     +     √   5               √   391     +     √   7             ]               
 
 and sends this 2×2 matrix y to Bob. 
 
         [0160]     Suppose that at the same time Bob chooses a secret integer 2×2 matrix B:  
       B   =     [           √   691           √   378               √   529           √   109           ]         
 
         [0161]     Bob calculates the 2×2 matrix z=g∘B:  
             z   =     g   ∘   B                 =     [                 min   (         √   2     +     √   691       ,                     √   3     +     √   529       )                       min   (         √   2     +     √   378       ,                     √   3     +     √   109       )                           min   (         √   5     +     √   691       ,                     √   7     +     √   529       )                       min   (         √   5     +     √   378       ,                     √   7     +     √   109       )                 ]                 =     [             √   3     +     √   529               √   3     +     √   109                   √   7     +     √   529               √   7     +     √   109             ]               
 
 and sends this 2×2 matrix z to Alice. 
 
         [0162]     Upon receiving the 2×2 matrix y from Alice, Bob calculates the 2×2 matrix S=y∘B:  
             S   =     y   ∘   B                 =     [                 min   (         √   123     +     √   2     +     √   691       ,                     √   123     +     √   3     +     √   529       )                       min   (         √   123     +     √   2     +     √   378       ,                     √   123     +     √   3     +     √   109       )                           min   (         √   391     +     √   5     +     √   691       ,                     √   391     +     √   7     +     √   529       )                       min   (         √   391     +     √   5     +     √   378       ,                     √   391     +     √   7     +     √   109       )                 ]                 =     [             √   123     +     √   3     +     √   529               √   123     +     √   3     +     √   109                   √   391     +     √   7     +     √   529               √   391     +     √   7     +     √   109             ]               
 
         [0163]     The 2×2 matrix S constitutes the algebro-geometric key in possession of Bob:  
       S   =     [             √   123     +     √   3     +     √   529               √   123     +     √   3     +     √   109                   √   391     +     √   7     +     √   529               √   391     +     √   7     +     √   109             ]         
 
         [0164]     Upon receiving the 2×2 matrix z from Bob, Alice calculates the 2×2 matrix S′=A∘z:  
               S   ′     =     A   ∘   z                 =     [                 min   (         √   123     +     √   3     +     √   529       ,                     √   456     +     √   7     +     √   529       )                       min   (         √   123     +     √   3     +     √   109       ,                     √   456     +     √   7     +     √   109       )                           min   (         √   817     +     √   3     +     √   529       ,                     √   391     +     √   7     +     √   529       )                       min   (         √   817     +     √   3     +     √   109       ,                     √   391     +     √   7     +     √   109       )                 ]                 =     [             √   123     +     √   3     +     √   529               √   123     +     √   3     +     √   109                   √   391     +     √   7     +     √   529               √   391     +     √   7     +     √   109             ]               
 
         [0165]     The 2×2 matrix S′ constitutes the algebro-geometric key in possession of Alice:  
         S   ′     =     [             √   123     +     √   3     +     √   529               √   123     +     √   3     +     √   109                   √   391     +     √   7     +     √   529               √   391     +     √   7     +     √   109             ]         
 
         [0166]     Thus, the 2×2 matrix S=S′ constitutes the algebro-geometric key shared by Alice and Bob. This key can be used in any major symmetric cryptosystem.  
         [0167]     The invention has been described with reference to a particular preferred embodiment, but variations within the spirit and scope of the invention will occur to those skilled in the art. For example, it will be understood that the public information g, d, N, K of the system can be stored on any suitable media, for example a “smart card,” which can be provided with a microprocessor capable of performing arithmetic operations so that the keys can be distributed to and/or from the smart card.