Abstract:
A method for exchanging an authentication and signing an electronic signature, capable of providing a high security and achieving a high efficiency. The method includes the steps of setting p, q and g as system parameters, where p and q are prime numbers while g is an integer, between 1 and p, having the value of 1 when multiplied by the q-th power and then divided by p, and using n secret keys and n public keys for each user, where n is a number not less than 2, the public keys v n  respectively corresponding to the secret keys S n , integers between 1 and q, and being produced based on an equation of v n  =g -sn  mod p.

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates to an authentication exchanging method capable of confirming individual entities processing data and an electronic signing method capable of providing an authentication function, a non-repudiation function for preventing the denial of a data processing action and an integrity of data. 
     2. Description of the Prior Art 
     With the rapid development of software technology and semiconductor technology, data processing using computers has commonly been used. In particular, data communications over public communications networks have been dispersed in an information age where information is acknowledged as an asset. In this regard, data passing over public communications networks has an increased importance, as well as data stored in computers. This results in a requirement to protect such data. In this connection, authentication exchanging and electronic signing methods may be used to achieve an identification of each entity performing a data processing, a verification of whether or not a data forgery has been made during the circulation of the data being processed, and a verification of the actuality of an action of data processing. 
     Of authentication exchanging and electronic signing methods having a security based on the discrete logarithm problem, those associated with the present invention are Schnorr&#39;s method and Okamoto&#39;s method. The discrete logarithm problem means the problem relating to the fact that it is difficult for a person, who does not involve into calculating x, to find a random number r produced to derive a value x (x≡g r  mod p) for achieving an entity verification, even though x and g are known. The value x is obtained by multiplying g, a number between 1 and p (1&lt;g&lt;p), by the r-th power and then dividing the resultant value by p,, where, p and q are prime numbers. In particular, q is divisible by (p-1). On the other hand, g is an integer, between 1 and p, having the value of 1 when multiplied by the q-th power and then divided by p (namely, 1≡g q  mod p). 
     In accordance with Schnorr&#39;s authentication exchanging method, a prover A produces a random number r between 1 and q in order to verify himself before a verifier B. After producing the random number r, g is multiplied by the r-th power. The resultant value is then divided by p to derive a value x (x≡g r  mod p). The value x is sent to the verifier B. Upon receiving the value x from the prover A, the verifier B produces a random number e between 1 and q. The random number e produced by the verifier B is sent to the prover A. The prover A multiplies the random number e received from the verifier B by his secret key s. The resultant value is added to the random number r and then divided by q, thereby deriving a value y (y≡r+es mod q). The prover A sends the calculated value y to the verifier B. Upon receiving the value y from the prover A, the verifier B multiplies g by the y-th power. The resultant value is multiplied by the value obtained by multiplying a public key v (v≡g s  mod p) by the e-th power and then divided by p, thereby deriving a value g y  v e  mod p. Thereafter, the verifier B checks whether the finally derived value coincides with the value x (x≡g r  mod p) from the prover A, in order to verify the authenticity of the prover A. On the other hand, in accordance with Schnorr&#39;s electronic signing method, a signer A produces a random number r between 1 and q when he has to put his signature to an electronic document m. After producing the random number r, g is multiplied by the r-th power. The resultant value is then divided by p to derive the modulo x (x≡g r  mod p). The modulo x and the document m are hashed by using a hash function, thereby deriving e (e=h(g r  mod p, m)). In order to generate the electronic signature of the signer A appended to the document m, the derived e is multiplied by the secret key s of the signer A. The resultant value is added to the random number r and then divided by q, thereby deriving a value y (y≡r+es mod q). The (e,y) derived in the above-mentioned manner constitute the electronic signature of the signer A. For verifying the electronic signature (e,y) of the signer A appended to the document m, g is multiplied by the y-th power. The resultant value is multiplied by the value obtained by multiplying the public key v (v≡g -s  mod p) of the signer A by the e-th power and then divided by p, thereby deriving a value g y  v e  mod p. The finally derived value and the document m are hashed, thereby deriving a hash value h(g r  v e  mod p,m). Thereafter, a check is made about whether the hash value coincides with e from the signer A, in order to verify the validity of the electronic signature (e,y) of the signer A. 
     In accordance with Okamoto&#39;s method, two secret keys s 1  and s 2  are used for each user in order to ensure the security of the Schnorr&#39;s method. For the same purpose, Okamoto&#39;s method also uses two g 1  and g 2  equivalent to g used in Schnorr&#39;s method. In accordance with Okamoto&#39;s method, a prover A produces two random numbers r 1  and r 2  between 1 and q in order to verify himself before a verifier B. After producing the random numbers r 1  and r 2 , g 1  is multiplied by the r 1  -th power while g 2  is multiplied by the r 2  -th power. The resultant values are multiplied together. The resultant value is then divided by p to derive a value x (x≡g 1   r1  g 2   r2  mod p). The value x is sent to the verifier B. Upon receiving the value x from the prover A, the verifier B produces a random number e between 1 and q. The random number e produced by the verifier B is sent to the prover A. The prover A multiplies the random number e received from the verifier B by his one secret key s 1 . The resultant value is added to the random number r 1  and then divided by q, thereby calculating a value y 1  (y 1  ≡r 1  +es 1  mod q). The prover A also multiplies the random number e by the other secret key s 2 . The resultant value is added to the random number r 2  and then divided by q, thereby deriving a value y 2  (y 2  ≡r 2  +es 2  mod q). The prover A sends the derived values (y 1 , y 2 ) to the verifier B. Upon receiving the values (y 1 , y 2 ) from the prover A, the verifier B multiplies g 1  by the y 1  -th power and g 2  by the y 2  -th power, respectively. The calculated values are multiplied together. The resultant value is then multiplied by the value obtained by multiplying a public key v (v≡g 1   -s1  g 2   -s2  mod p) by the e-th power and then divided by p, thereby deriving a value g 1   y1  g 2   y2  v e  mod p. Thereafter, the verifier B checks whether the finally derived value coincides with the value x (x≡g 1   r1  g 2   r2  mod p) from the prover A, in order to verify the authenticity of the prover A. On the other hand, in accordance with Okamoto&#39;s electronic signing method, a signer A produces two random numbers r 1  and r 2  between 1 and q when he has to append his signature to an electronic document m. After producing the random numbers r 1  and r 2 , g 1  is multiplied by the r 1  -th power while g2 is multiplied by the r 2  -th power. The calculated values are multiplied together. The resultant value is then divided by p to derive a value x (x≡g 1   r1  g 2   r2  mod p). The value x and the document m are hashed by using a hash function h, thereby deriving e (e=h(g 1   r1  g 2   r2  mod p,m)). In order to generate the electronic signature of the signer A appended to the document m, the derived e is multiplied by one secret key s 1  of the signer A. The resultant value is added to the random number r 1  and then divided by q, thereby deriving a value y 1  (y 1  ≡r 1  +es 1  mod q). The signer A also multiplies the derived e by the other secret key s 2 . The resultant value is added to the random number r 2  and then divided by q, thereby deriving a value y 2  (y 2  ≡r 2  +es 2  mod q). The (e, y 1 , y 2 ) derived in the above-mentioned manner constitute the electronic signature of the signer A. For verifying the electronic signature (e, y 1 , y 2 ) of the signer A appended to the document m, g 1  is multiplied by the y 1  -th power while g 2  is multiplied by the y 2  -th power. The calculated values are multiplied together. The resultant value is then multiplied by the value obtained by multiplying a public key v (v≡g 1   -s1  g 2   -s2  mod p) by the e-th power and then divided by p, thereby deriving a value g 1   y1  g 2   y2  v e  mod p. The finally derived value and the document m are hashed, thereby deriving a hash value h(g 1   41  g 2   42  v e  mod p,m). Thereafter, a check is made about whether the hash value coincides with e from the signer A, in order to verify the validity of the electronic signature (e, y 1 , y 2 ) of the signer A. 
     In accordance with Okamoto&#39;s method, g 1  and g 2  are used in an authentication exchange and an electronic signature generation in order to prevent a user other than a claimed user A from being disguised as the user A and the electronic signature of the user A from being forged. Okamoto&#39;s method also uses two secret keys s 1  and s 2  for each user and thereby obtains an enhancement in security over Schnorr&#39;s method. However, the Okamoto&#39;s method involves a difficulty in terms of practical use over the Schnorr&#39;s method, taking into consideration of the quantity of calculation required to exchange an authentication, generate an electronic signature and verify it. 
     SUMMARY OF TEE INVENTION 
     Therefore, an object of the invention is to provide a method of information security service capable of providing a high security and a high efficiency by use of an authentication exchanging method and electroning signing method. The first one is capable of confirming and verifying individual entities processing data upon processing data and transferring the data between the entities and the second one is capable of providing functions of putting an electronic signature to an electronic document, confirming a counterpart transferring or receiving the electronic document, confirming a forgery of the electronic document, and verifying actions of transferring and receiving the electronic document. 
     In accordance with one aspect, the present invention provides a method for exchanging an authentication and generating an electronic signature, comprising the steps of: setting p, q and g as system parameters, where p and q are prime numbers while g(1≡g q  mod p) is an integer, between 1 and p, having the value of 1 when multiplied by the q-th power and then divided by p; and using n secret keys and n public keys for each user, where n is an integer not less than 2, the public keys v n  respectively corresponding to the secret keys S n , where each secret key is an integer between 1 and q, being produced based on an equation of v n  ≡g -sn  mod p. 
     In accordance with another aspect, the present invention provides an authentication exchanging method comprising the steps of: producing, by a prover, a random number r 1  between 1 and q, calculating a value x (x≡g r1  mod p), where p is a prime number while g is an integer between 1 and p such that 1≡g q  mod p, and sending the value x from the prover to a verifier; producing, by the verifier, a random number e and sending the random number e to the prover; producing, by the prover, random numbers r 2  and r 3 , calculating a value r (r≡r 1  +s 1  r 2  mod q) and a value r 4  (r 4  ≡s 1  r 3  +s 2  mod q) on the basis of secret keys s 1  and s 2  of the prover together with the random number e received from the verifier to the prover, calculating a value y 1  (y 1  ≡r+er 4  mod q) and a value y 2  (y 2  ≡r 2  +er 3  mod q) on the basis of r and r 4 , and sending y 1  and y 2  to the verifier; and calculating, by the verifier, a value x&#39;(x&#39;=g y1  v 1   y2  v 2   e  mod p) on the basis of y 1  and y 2  received from the prover to the verifier together with public keys v 1  (v 1  ≡g -s1  mod p) and v 2  (v 2  ≡g -s2  mod p) of the prover, and checking whether the modulo x&#39; coincides with x (x=g r1  mod p) received from the prover. These steps are able to be applied in the same manner as the above to more than two secret keys and two public keys. 
     In accordance with another aspect, the present invention provides an electronic signing method comprising the steps of: producing a random number r 1  by a signer who is a drafter or handler for electronic data m such as an electronic document or a message, calculating a value x (x=g r1  mod p), where p is a prime number while g is an integer between 1 and p such that 1≡g q  mod p, and hashing the value x with m, thereby deriving e (e=h(x, m)); producing, by the signer, random numbers r 2  and r 3 , calculating a value r (r≡r 1  +s 1  r 2  mod q) and a modulo r 4  (r 4  ≡s 1  r 3  +s 2  mod q) on the basis of secret keys s 1  and s 2  of the signer together with e, and calculating a value y 1  (y 1  ≡r+er 4  mod q) and a value y 2  (y 2  ≡r 2  +er 3  mod q) on the basis of r and r 4 , thereby deriving an electronic signature (e, y 1 , y 2 ) for m; and calculating a value x&#39;(x&#39;=g y1  v 1   y2  v 2   e  mod p) for verifying the electronic signature (e, y 1 , y 2 ) for m, hashing the value x&#39; with m, and checking whether h(x&#39;, m) equals to e constituting a part of the electronic signature. These steps can be applied for more than two secret keys and two public keys in the same manner as the above. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     Other objects and aspects of the invention will become apparent from the following description of embodiments with reference to the accompanying drawings in which: 
     FIG. 1 is a diagram illustrating an authentication exchanging method using &#34;mod q&#34; in accordance with the present invention; 
     FIG. 2 is a diagram illustrating an electronic signing method using &#34;mod q&#34; in accordance with the present invention; 
     FIG. 3 is a diagram illustrating an authentication exchanging method using &#34;mod (p-1)&#34; in accordance with the present invention; 
     FIG. 4 is a diagram illustrating an electronic signing method using &#34;mod (p-1)&#34; in accordance with the present invention; 
     FIG. 5 is a diagram illustrating an authentication exchange between a prover utilizing Schnorr&#39;s method and a verifier utilizing the method of the present invention; 
     FIG. 6 is a diagram illustrating an authentication exchange between a prover utilizing Okamoto&#39;s method and a verifier utilizing the method of the present invention; 
     FIG. 7 is a diagram illustrating a verification of the validity of an electronic signature generated by Schnorr&#39;s method in accordance with the present invention; and 
     FIG. 8 is a diagram illustrating a verification of the validity of an electronic signature generated by Okamoto&#39;s method in accordance with the present invention. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     In an authentication exchanging method and an electronic signing method in accordance with the present invention, three system parameters p, q and g, two secret keys s 1  and s 2 , and two public keys v 1  and v 2  are used where the number of secret and public key can be increased more than two. The system parameters p and q are prime numbers. In particular, q is divisible by (p-1). On the other hand, g is an integer, between 1 and p, having the value of 1 when multiplied by the q-th power and then divided by p (namely, 1≡g q  mod p). As the secret keys s 1  and s 2  for each user, integers between 1 and q are used (1&lt;s 1 , s 2  &lt;q). Each user also uses public keys v 1  and v 2  (v 1  ≡g -s1  mod p, v 2  ≡g s2  mod p) corresponding to the secret keys s 1  and s 2 , respectively. 
     First, the authentication exchanging method in accordance with the present invention will be described in conjunction with FIG. 1. 
     In accordance with the authentication exchanging method of the present invention, a prover A produces a random number r 1  between 1 and q in order to verify himself before a verifier B. After producing the random number r 1 , g is multiplied by the r 1  -th power. The resultant value is then divided by p to derive a value x (x≡g r1  mod p). The value x is sent to the verifier B. Upon receiving the modulo x from the prover A, the verifier B produces a random number e between 1 and q. The random number e produced by the verifier B is sent to the prover A. Upon receiving the random number e from the verifier B, the prover A produces a random number r 2  between 1 and q. Thereafter, the prover A multiplies the random number r 2  by his one secret key s 1 . The resultant value is added to the random number r 1  used for the calculation of x and then divided by q, thereby deriving a value r (r≡r 1  +s 1  r 2  mod q). The prover A also produces a random number r 3  between 1 and q. The random number r 3  is then multiplied by the secret key s 1  of the prover A. The resultant value is added to the secret key s 2  of the prover A and then divided by q, thereby deriving a value r 4  (r 4  ≡s 1  r 3  +s 2  mod q). The derived value r 4  is multiplied by the random number e. The resultant value is added to the value r and then divided by q, thereby the value y 1  (y 1  =r+er 4  mod q). The random number r 3  is also multiplied by the random number e. The resultant value is added to the random number r 2  and then divided by q, thereby the value y 2  (y 2  =r 2  +er 3  mod q). In place of calculating both the values y 1  and y 2  by producing the random numbers r 2  and r 3 , calculating the values r and r 4  on the basis of the secret keys s 1  and s 2  together with the random numbers r 1 , r 2  and r 3  and then using the random number e only the value y 1  can be calculated to verify the authenticity of the prover A. In this case, only one random number r 2  is produced such that it is set as the value y 2 . The value y 1  is derived using the secret keys s 1  and s 2  together with the random number e. That is, the prover A produces the random number r 2  between 1 and q in response to a receipt of the random number e from the verifier B and then determines the random number r 2  y  2 . Thereafter, the prover A multiplies his one select key s 1  by y 2 . The calculated value is then added to the product of the random number e and the other secret key s 2 . The resultant value is added to the random number r 1  used for the calculation of x and then divided by q, thereby deriving a value y 1  (y 1  ≡r 1  +es 2  s 1  y 2  mod q). The values y 1  and y 2  derived in such a manner are sent to the verifier B. Upon receiving the modulo y 1  and y 2 , the verifier B multiplies g by the y 1  -th power. The verifier B also multiplies one public key v 1  (v 1  ≡g -s1  mod p) by the y 2  -th power. The calculated values are multiplied together. The resultant value is then multiplied by the value obtained after multiplying the other public key v 2  (v 2  ≡g -s2  mod p) by the e-th power. The resultant value is divided by p, thereby deriving the modulo x&#39;(x&#39;=g y1  v 1   y2  v 2   e  mod p). Thereafter, the verifier B checks whether the modulo x&#39; coincides with x (x≡g r1  mod p) received from the prover A in order to verify the authenticity of the prover A. 
     On the other hand, in accordance with the electronic signing method of the present invention, a signer A produces a random number r 1  between 1 and q when he has to append his signature to an electronic document m. After producing the random number r 1 , g is multiplied by the r 1  -th power. The calculated value is then divided by p to derive a value x (x≡g r1  mod p). The value x and the document m are hashed by using a hash function h, thereby deriving e (e=h(g r1  mod p, m)). The signer A also produces a random number r 2  between 1 and q. Thereafter, the signer A multiplies the random number r 2  by his one secret key s 1 . The resultant value is added to the random number r 1  used for the calculation of x and then divided by q, thereby deriving a value r (r≡r 1  +s 1  r 2  mod q). The signer A also produces a random number r 3  between 1 and q. The random number r 3  is then multiplied by one secret key s 1  of the signer A. The resultant value is added to another secret key s 2  of the signer A and then divided by q, thereby deriving a value r 4  (r 4  =s 1  r 3  +s 2  mod q). 
     The calculated value r 4  is multiplied by the random number e. The resultant value is added to the modulo r and then divided by q, thereby the value y 1  (y 1  ≡r+er 4  mod q). The random number r 3  is also multiplied by the random number e. The resultant value is added to the random number r 2  and then divided by q, thereby the value y 2  (y 2  ≡r 2  +er 3  mod q). In place of calculating both the values y 1  and y 2  by producing the random numbers r 2  and r 3 , calculating the values r and r 4  on the basis of the secret keys s 1  and s 2  together with the random numbers r 1 , r 2 , and r 3 , and then using the random number e, only the value y 1  can be calculated to verify the validity of the electronic signature of the signer A. In this case, only one random number r 2  is produced such that it is set as the value y 2 . The value y 1  is derived using the secret keys s 1  and s 2  together with the random number e. That is, the signer A produces the random number r 2  between 1 and q and then determines the random number r 2  as y 2 . Thereafter, the signer A multiplies his one select key s 1  by y 2 . The calculated value is then added to the product of the random number e and the other secret key s 2 . The resultant value is added to the random number r 1  used for the calculation of x and then divided by q, thereby deriving a value y 1  (y 1  ≡r 1  +es 2  +s 1  y 2  mod q). Together with the random number e, the value y 1  and y 2  derived in such a manner constitute the electronic signature of the signer A. For verifying the electronic signature (e, y 1 , y 2 ) of the signer A appended to the document m, g is multiplied by the y 1  -th power. One public key v 1  (v 1  ≡g -s1  mod p) is also multiplied by the y 2  -th power. The calculated values are multiplied together. The resultant value is then multiplied by the value obtained after multiplying the other public key v 2  (v 2  =g -s2  mod p) of the signer A by the e-th power. The resultant value is divided by p, thereby deriving the value x&#39;(x&#39;=g y1  v 1   y2  v 2   e  mod p). The finally derived value x&#39; and the document m are hashed, thereby deriving a hash value h (x&#39;, m). Thereafter, a check is made about whether the hash value coincides with e, in order to verify the validity of the electronic signature (e, y 1 , y 2 ) of the signer A. 
     Although q is used as the modulus for the calculation of r (r≡r 1  +s 1  r 2  mod q), r 4  (r 4  =s 1  r 3  +s 2  mod q), y 1  (y 1  =r+er 4  mod q), and y 2  (y 2  =r 2  +er 3  mod q) in accordance with the authentication exchanging method and electronic signing method of the present invention, p-1 may be used as the modulus, as illustrated in FIGS. 3 and 4. In this case, a prime number p should be used as the modulus p-1 including at least one large factor for the security of each of the methods. 
     In the authentication exchanging method and electronic signing method of the present invention, the value r is calculated to take the form of r≡r 1  +s 1  +s 1  r 2  mod q by using the random number r 1  used for the calculation of x (x≡g r1  mod p), s 1 , one of the select keys of the user, and the random number r 2  together. The value r 4  is also calculated to take the form of r 4  ≡s 1  r 3  +s 2  mod q by using the random number r 3  and the secret keys s 1  and s 2  of the user. The values r and r 4  are used to calculate y 1  taking the form of y 1  ≡r+er 4  mod q and the form of y 2  =r 2  +er 3  mod q. The reason why y 1  and y 2  are calculated in the above-mentioned manner is because for x, the calculation of g r1  mod p(x≡g r1  mod p) is equivalent to an implicit calculation of g r  (g -s1 ) r2  mod p (x≡g r1  ≡g r-s1r2  ≡g r  g -s1r2  ≡g r  (g -s1 ) r2  mod p), so that the calculation of g r1  mod p using the single random number r 1  yields the same effect as the calculation of g r  (g -s1 ) r2  mod p using two random numbers r and r 2 . 
     The effect of this calculation is the same as that obtained in the case of performing a calculation twice in a continued manner. In other words, this calculation must be the efficient method capable of enhancing the security without any increase in the quantity of calculation in the authentication exchanging method and electronic signing method. This is why it is more difficult to derive the random numbers r and r 2  used for the calculation of g r  (g -s1 ) r2  mod p than to derive the single random number r 1  used for the calculation of g r  mod p. Actually in the authentication exchanging method and electronic signing method of the present invention, only the calculation of g r  mod p is executed instead of executing the calculation of g r  (g -s1 ) r2  mod p in order to obtain a high processing rate and yet enhance the security. Consequently, the authentication exchanging method and electronic signing method of the present invention is the efficient method capable of enhancing the security without any increase in the quantity of calculation. 
     As mentioned above, y 1  and Y 2  are calculated to take the form of y 1  ≡r+er 4  mod q and the form of y 2  ≡r 2  +er 3  mod q respectively, using the values r (r≡r 1  +s 1  r 2  mod q) and r 4  (r 4  ≡s 1  r 3  +s 2  mod q) calculated by the prover A and the random number e sent from the verifier B to the prover A in the authentication exchanging method of the present invention or using the modulo r (r≡r 1  +s 1  r 2  mod q) and r 4  (r 4  ≡r 1  +s 1  r 3  +s 2  mod q) calculated by the signer A and the hash value e (e=h(x, m)) derived by hashing the document m and the value x (x≡g r1  mod p), together with the secret keys s 1  and s 2  in the electronic signing method of the present invention. In verifying the validity in the authentication exchanging method and electronic signing method of the present invention, the verification calculation of g y1  v 1   y2  v 2   e  mod p is executed using x, e, y 1  and y 2  received to the verifier B, together with the public keys v 1  and v 2  of the counterpart user A. On the basis of the equations of r≡r 1  +s 1  r 2  mod q and r 4  ≡r 1  +s 1  r 3  +s 2  mod q, the calculation of g y1  v 1   y2  v 2   e  mod p is equivalent to the case of executing a calculation twice in a continued manner to take the form of g r  g es2  g -es2  (g -s1 ) r2  (g -s1 ) er3  (g -s1 ) -er3  mod p and thereby to verify the validity in the authentication exchanging method and electronic signing method. 
     Since the secret keys s 1  and s 2  of the user are indirectly used in the calculation of y 1  and y 2  in accordance with the present invention, the authentication exchanging method and electronic signing method of the present invention must be the superior method capable of reducing the possibility of the exposure of user&#39;s secret keys to others and thereby enhancing the security. 
     The methods of the present invention have the compatibility with the Schnorr method and the Okamoto (OK92) method. In other words, the methods of the present invention enable an authentication exchange with either of the Schnorr method or the OK92 method and a verification of an electronic signature, generated by either of the Schnorr method or the OK92 method, without any conversion. FIGS. 5 to 8 illustrate the compatibility of the methods of the present invention with the Schnorr method or the OK92 method. 
     FIG. 5 illustrates an authentication exchange between a prover A utilizing the Schnorr method and a verifier B utilizing the method of the present invention. As shown in FIG. 5, the prover A produces a random number r between 1 and q. After producing the random number r, g is multiplied by the r-th power. The resultant value is then divided by p to derive a value x (x≡g r  mod p). The value x is sent to the verifier B. Upon receiving the value x from the prover A, the verifier B produces a random number e between 1 and q. The random number e produced by the verifier B is sent to the prover A. The prover A multiplies the random number e received from the verifier B by his secret key s. The resultant value is added to the random number r used for the calculation of x and then divided by q, thereby deriving a value y (y≡r+es mod q). The prover A sends the derived value y to the verifier B. Upon receiving the value y from the prover A, the verifier B uses g received thereto as it is, for g y1  v 1   y2  v 2   e  mod p. The verifier B also substitutes y received thereto for y 1  of g y1  v 1   y2  v 2   e  mod p. At this time, the public key v of the prover A is also substituted for v 2  of g y1  v 1   y2  v 2   e  mod p. Also, v 1  of g y1  v 1   y2  v 2   e  mod p is substituted by 1 while y 2  is substituted by 0. In such a manner, the verifier B calculates g y1  v 1   y2  v 2   e  mod p . Finally, the verifier B checks whether g y1  v 1   y2  v 2   e  mod p coincides with x received from the prover A in order to verify the prover A. 
     FIG. 7 illustrates a verification of validity of an electronic signature (e, y) appended to an electronic document m produced by a signer A utilizing Schnorr&#39;s method. In this case, g is used as it is, for g y1  v 1   y2  v 2   e  mod p. On the other hand, y is substituted for y 1  of g y1  v 1   y2  v 2   e  mod p. At this time, the public key v of the prover A is also substituted for v 2  of g y1  v 1   y2  v 2   e  mod p. Also, v 1  of g y1  v 1   y2  v 2   e  mod p is substituted by 1 while y 2  is substituted by 0. In such a manner, the calculation of g y1  v 1   y2  v 2   e  mod p is achieved. Together with the document m, g y1  v 1   y2  v 2   e  mod p is hashed. Finally, the verifier B checks whether the hash value h(g y1  v 1   y2  v 2   e  mod p, m) coincides with e received from the signer A in order to verify the validity of the electric signature. 
     FIG. 6 illustrates an authentication exchange between a prover A utilizing Okamoto&#39;s method and a verifier B utilizing the method of the present invention. As shown in FIG. 6, the prover A produces two random numbers r 1  and r 2  between 1 and q. After producing the random numbers r 1  and r 2 , g 1  is multiplied by the r 1  -th power while g 2  is multiplied by the r 2  -th power. The calculated values are multiplied together. The resultant value is then divided by p to derive a value x (x≡g 1   r1  g 2   r2  mod p). The value x is sent to the verifier B. Upon receiving the value x from the prover A, the verifier B produces a random number e between 1 and q. The random number e produced by the verifier B is sent to the prover A. The prover A multiplies the random number e received from the verifier B by his one secret key s 1 . The calculated value is added to the random number r 1  and then divided by q, thereby deriving a value y 1  (y≡r 1  +es 1  mod q). The prover A also multiplies the random number e by the other secret key s 2 . The calculated value is added to the random number r 2  and then divided by q, thereby deriving a value y 2  (y 2  ≡r 2  +es 2  mod q). The prover A sends the derived values (y 1 , y 2 ) to the verifier B. Upon receiving the values (y 1 , y 2 ) from the prover A, the verifier B substitutes g 1  used by the prover A for g of g y1  v 1   y2  v 2   e  mod p. On the other hand, the verifier B uses y 1  and y 2  received thereto as they are. At this time, the public key v of the prover A is also substituted for v 2  of g y1  v 1   y2  v 2   e  mod p. Also, v 1  of g y1  v 1   y2  v 2   e  mod p is substituted by g 2 . In such a manner, the verifier B calculates g y1  v 1   y2  v 2   e  mod p. Finally, the verifier B checks whether g y1  v 1   y2  v 2   e  mod p coincides with x received from the prover A in order to verify the prover A. 
     FIG. 8 illustrates a verification of the validity of an electronic signature (e, y 1 , y 2 ) appended to an electronic document m produced by a signer A utilizing Okamoto&#39;s method. In this case, as the verification procedure in FIG. 6, g 1  is substituted for g of g y1  v 1   y2  v 2   e  mod p. On the other hand, the verifier B uses y 1  and Y 2  received thereto as they are. At this time, the public key v of the prover A is also substituted for v 2  of g y1  v 1   y2  v 2   e  mod p. Also, v 1  of g y1  v 1   y2  v 2   e  mod p is substituted by g 2 . In such a manner, the calculation of g y1  v 1   y2  v 2   e  mod p is achieved. Together with the document m, g y1  v 1   y2  v 2   e  mod p is hashed. Finally, the verifier B checks whether the hash value h(g y1  v 1   y2  v 2   e  mod p,m) coincides with e received from the signer A in order to verify the validity of the electric signature. 
     Although the preferred embodiments of the invention have been disclosed for illustrative purposes, those skilled in the art will appreciate that various modifications, additions and substitutions are possible, without departing from the scope and spirit of the invention as disclosed in the accompanying claims.