WO2012014669A1 - 認証装置、認証方法、及びプログラム - Google Patents

認証装置、認証方法、及びプログラム Download PDF

Info

Publication number
WO2012014669A1
WO2012014669A1 PCT/JP2011/065872 JP2011065872W WO2012014669A1 WO 2012014669 A1 WO2012014669 A1 WO 2012014669A1 JP 2011065872 W JP2011065872 W JP 2011065872W WO 2012014669 A1 WO2012014669 A1 WO 2012014669A1
Authority
WO
WIPO (PCT)
Prior art keywords
verifier
algorithm
prover
challenge
cmt
Prior art date
Application number
PCT/JP2011/065872
Other languages
English (en)
French (fr)
Inventor
紘一 作本
白井 太三
玄良 樋渡
Original Assignee
ソニー株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to KR1020137001413A priority Critical patent/KR101808363B1/ko
Priority to SG2013002357A priority patent/SG187039A1/en
Priority to CN201180035779.5A priority patent/CN103155480B/zh
Priority to CA2804394A priority patent/CA2804394C/en
Priority to MYPI2013700148A priority patent/MY181936A/en
Priority to RU2013103035/08A priority patent/RU2573772C2/ru
Application filed by ソニー株式会社 filed Critical ソニー株式会社
Priority to US13/704,658 priority patent/US9076000B2/en
Priority to EP11812261.3A priority patent/EP2600563A4/en
Priority to BR112013001733A priority patent/BR112013001733A2/pt
Priority to AU2011283888A priority patent/AU2011283888B2/en
Publication of WO2012014669A1 publication Critical patent/WO2012014669A1/ja
Priority to US14/719,495 priority patent/US9602285B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3218Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • H04L9/3221Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs interactive zero-knowledge proofs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD

Definitions

  • This disclosure relates to an authentication device, an authentication method, and a program.
  • the electronic signature is used to specify the creator of the electronic document. For this reason, the electronic signature should be generated only by the creator of the electronic document. If a malicious third party can generate the same electronic signature, the third party can impersonate the creator of the electronic document. That is, an electronic document is forged by a malicious third party. In order to prevent such forgery, various discussions have been made on the security of electronic signatures. As electronic signature methods that are currently widely used, for example, methods using an RSA signature method or a DSA signature method are known.
  • the RSA signature method uses “difficulty of prime factorization for large composite numbers (hereinafter referred to as prime factorization problem)” as the basis of security.
  • prime factorization problem large composite numbers
  • DSA signature scheme uses “difficulty in derivation of a solution to the discrete logarithm problem” as the basis of security.
  • Non-Patent Documents 1 and 2 disclose public key authentication methods based on the Syndrome Decoding problem.
  • Non-Patent Document 3 discloses a public key authentication method based on the Permuted Kernel problem.
  • public key authentication methods based on the Constrained Linear Equations problem public key authentication methods based on the Permuted Perceptions problem, and the like have been proposed.
  • the security level of the public key authentication method There are two security levels in the security level of the public key authentication scheme. One is the level of security against passive attacks. The other is a security level against an active attack.
  • the level of security against passive attacks is a level of security that assumes an attacker who can only eavesdrop on the dialogue between a prover and a verifier who follow a legitimate protocol.
  • the level of security against active attacks is a level of security that assumes a situation where the attacker can directly execute a dialogue protocol with the prover. In other words, it is assumed that the level of security against active attacks is that the attacker can perform a dialogue protocol with the prover as he likes.
  • Non-Patent Documents 1 to 3 guarantee a security level against passive attacks.
  • these conventional public key authentication schemes reliably guarantee a security level against active attacks when a parallel repetitive configuration is performed. This is because it is generally known that zero knowledge is not preserved when a parallel repetitive configuration is performed. Therefore, in order to ensure the level of security against active attacks in a parallel repetitive configuration, it is necessary to ensure yet another property.
  • Another object of the present invention is to provide a new and improved authentication device, authentication method, and program capable of guaranteeing a security level against active attacks.
  • the interactive protocol execution unit includes a challenge receiving unit that receives L challenge Ch i from the verifier, and (L ⁇ 1) of the L challenge Ch i received by the challenge receiving unit.
  • a challenge selection unit for arbitrarily selecting a challenge Ch i and (L-1) of each of (L-1) challenge Ch i selected by the challenge selection unit using the secret key s i
  • An answer generator for generating the answer Rsp i and an answer transmitter for transmitting (L ⁇ 1) answers Rsp i generated by the answer generator to the verifier.
  • the interactive protocol execution unit may further include a message transmission unit that transmits a message Cmt i corresponding to each of the L secret keys s i to the verifier.
  • the challenge receiving unit represents a challenge indicating a verification pattern selected from k verification patterns (k ⁇ 2) by the verifier according to each message Cmt i transmitted by the message transmission unit. receiving a Ch i.
  • the key holding unit may not hold one secret key s i0 (1 ⁇ i 0 ⁇ L) among the L secret keys s i .
  • the interactive protocol execution unit executes processing related to the secret key s i0 executed in the interactive protocol based on a false algorithm.
  • a response generation unit that generates L responses Rsp i for each of L challenges Ch i (j) selected by the challenge selection unit using the secret key s i ; and the response generation L responses Rsp i generated by the section are transmitted to the verifier And an answer transmitting unit.
  • the interactive protocol execution unit may further include a message transmission unit that transmits a message Cmt i corresponding to each of the L secret keys s i to the verifier.
  • the challenge receiving unit represents a challenge indicating a verification pattern selected from k verification patterns (k ⁇ 2) by the verifier according to each message Cmt i transmitted by the message transmission unit.
  • Receive Ch i (j) Receive Ch i (j) .
  • an authentication method is provided so that the verifier does not know which secret key s i has been used.
  • a program is provided that prevents the verifier from knowing which secret key s i was used when executing the interactive protocol between the two.
  • a response generation step of generating L responses Rsp i for each of the L challenges Ch i (j) selected in the challenge selection step using the secret key s i ; and the response generation L times generated in a step The rsp i; and a reply transmitting step of transmitting to said verifier, authentication method is provided.
  • y secret key s i (i 1 to L) and n-order multivariate polynomial set F (n ⁇ 2)
  • FIG. 1 is an explanatory diagram for explaining an algorithm configuration of a public key authentication method.
  • the public key authentication method is an authentication method in which a certain person (certifier) uses the public key pk and the secret key sk to convince another person (verifier) that the person is the principal. For example, the public key pk A of a prover A is published to the verifier. On the other hand, the secret key sk A of the prover A is secretly managed by the prover. In the public key authentication method, the person who knows the secret key sk A corresponding to the public key pk A is regarded as the prover A himself.
  • the prover A If the prover A is trying to prove their identity to the verifier B, the prover A is to perform an interactive protocol with the verifier B, the secret key itself corresponding to the public key pk A sk A Prove that you know.
  • the verifier B proves that the prover A knows the secret key sk A by the interactive protocol, the authenticity of the prover A (identity) is proved.
  • the first condition is to reduce as much as possible the probability that a falsification is established by a falsifier who does not have the secret key sk when the interactive protocol is executed.
  • the fact that this first condition is satisfied is called “soundness”.
  • soundness In other words, in a dialogue protocol having soundness, it is paraphrased that a falsification cannot be established with a probability that cannot be ignored by a falsifier who does not have the secret key sk.
  • the second condition is that even if the interactive protocol is executed, the information on the secret key sk A possessed by the prover A is not leaked to the verifier B at all. The fact that this second condition is satisfied is called “zero knowledge”.
  • the security of the public key authentication method is ensured by using the dialogue protocol having the above soundness and zero knowledge.
  • model In the public key authentication model, there are two entities, a prover and a verifier, as shown in FIG.
  • the prover uses a key generation algorithm Gen to generate a pair of a secret key sk and a public key pk unique to the prover.
  • the prover executes an interactive protocol with the verifier using the set of the secret key sk and the public key pk generated using the key generation algorithm Gen.
  • the prover uses the prover algorithm P to execute the interactive protocol.
  • the prover uses the prover algorithm P to prove to the verifier that the secret key sk is held.
  • the verifier executes the interactive protocol by using the verifier algorithm V, and verifies whether or not the prover has a secret key corresponding to the public key published by the prover. That is, the verifier is an entity that verifies whether the prover has a secret key corresponding to the public key.
  • the model of the public key authentication scheme includes two entities, a prover and a verifier, and three algorithms, a key generation algorithm Gen, a prover algorithm P, and a verifier algorithm V.
  • the expressions “prover” and “verifier” are used, but these expressions only mean entities. Therefore, the subject that executes the key generation algorithm Gen and the prover algorithm P is an information processing apparatus corresponding to the entity of the “certifier”. Similarly, the subject that executes the verifier algorithm V is an information processing apparatus.
  • the hardware configuration of these information processing apparatuses is, for example, as shown in FIG. That is, the key generation algorithm Gen, the prover algorithm P, and the verifier algorithm V are executed by the CPU 902 based on programs recorded in the ROM 904, the RAM 906, the storage unit 920, the removable recording medium 928, and the like.
  • the key generation algorithm Gen is used by the prover.
  • the key generation algorithm Gen is an algorithm for generating a set of a secret key sk and a public key pk unique to the prover.
  • the public key pk generated by the key generation algorithm Gen is made public.
  • the public key pk that is made public is used by the verifier.
  • the secret key sk managed secretly is used to prove to the verifier that the secret key sk corresponding to the public key pk is held.
  • the key generation algorithm Gen is expressed as the following equation (1) as an algorithm that inputs a security parameter 1 ⁇ ( ⁇ is an integer of 0 or more) and outputs a secret key sk and a public key pk.
  • the prover algorithm P is used by the prover.
  • the prover algorithm P is an algorithm for proving that the secret key sk corresponding to the public key pk is held.
  • the prover algorithm P is defined as an algorithm that receives the prover's private key sk and public key pk as input and executes an interactive protocol with the verifier.
  • the verifier algorithm V is used by the verifier.
  • the verifier algorithm V is an algorithm for verifying whether or not the prover has a secret key sk corresponding to the public key pk in the interactive protocol.
  • the verifier algorithm V is defined as an algorithm that takes the public key pk of the prover as an input, outputs a 0 or 1 (1 bit) after executing a dialogue protocol with the prover. In the case of output 0, it is assumed that the prover is invalid, and in the case of output 1, it is assumed that the prover is valid.
  • the public key authentication method is required to satisfy the two conditions of soundness and zero knowledge in order to ensure safety.
  • the prover executes a procedure depending on the secret key sk, notifies the verifier of the result, and notifies It is necessary to have the verifier perform verification based on the contents.
  • the execution of the procedure depending on the secret key sk is necessary to ensure soundness.
  • the key generation algorithm Gen, the prover algorithm P, and the verifier algorithm V are designed so as to satisfy these requirements.
  • FIG. 2 is an explanatory diagram for explaining an n-pass public-key authentication scheme.
  • the public key authentication scheme is an authentication scheme that proves to the verifier that the prover has the secret key sk corresponding to the public key pk in the interactive protocol. Moreover, in order to ensure the security of the public key authentication method, it is necessary to satisfy two conditions of soundness and zero knowledge. Therefore, in the interactive protocol, as shown in FIG. 2, information exchange is performed n times between the prover and the verifier while both the prover and the verifier execute processing.
  • processing the prover using the prover algorithm P (Step.1) is executed, the information T 1 is sent to the verifier.
  • processing (Step 2 ) is executed by the verifier using the verifier algorithm V, and the information T2 is transmitted to the prover.
  • processing (Step.3) to (Step.n) is executed, information T 3 ,..., T n is transmitted, and processing (Step.n + 1) is executed.
  • a public key authentication method based on an interactive protocol in which information is transmitted and received n times is referred to as an “n-pass” public key authentication method.
  • FIG. 3 is an explanatory diagram for explaining the interactive protocol of the SSH 10a public key authentication method.
  • the SSH 10a public key authentication scheme is one of public key authentication schemes based on the problem of solving multi-order multivariable simultaneous equations devised by the present inventors (Sakuhon, Shirai, and Watari).
  • the SSH 10a public key authentication method is an example of a three-pass public key authentication method.
  • the interactive protocol of the SSH 10a public key authentication method is composed of a key generation algorithm Gen, a prover algorithm P, and a verifier algorithm V.
  • a key generation algorithm Gen a prover algorithm
  • V a verifier algorithm
  • the key generation algorithm Gen sets (f 1 ,..., F m , y) as the public key pk and sets s as the secret key.
  • an n-variable vector (x 1 ,..., X n ) is denoted by x
  • m n-variable quadratic polynomials (f 1 (x),..., F m (x)) are denoted by F ( x).
  • n variables quadratic polynomial set (f 1 (x), ... , f m (x)) can be expressed as the following equation (2).
  • x (x 1 ,..., X n ) is a vector representing n variables.
  • a 1 ,..., Am are n ⁇ n matrices.
  • b 1 ,..., B m are n ⁇ 1 vectors.
  • C is an m ⁇ 1 vector.
  • the polynomial set F can be expressed as in the following expressions (3) and (4). It can be easily confirmed from the following formula (5) that this expression holds.
  • Step. 1 First, the prover algorithm P arbitrarily selects a number w. Next, the prover algorithm P applies the number w to the pseudo-random number generator G 1 to generate the vector r ⁇ K n and the number w ′. That is, the prover algorithm P calculates (r, w ′) ⁇ G 1 (w). Next, the prover algorithm P generates two vectors t ⁇ K n and e ⁇ K m by applying the number w ′ to the pseudo-random number generator G 2 . That is, the prover algorithm P calculates (t, e) ⁇ G 2 (w ′). Next, the prover algorithm P calculates z ⁇ s ⁇ r.
  • This calculation corresponds to an operation of masking the secret key s with the vector r. Further, the prover algorithm P calculates t ′ ⁇ r + t. Next, the prover algorithm P calculates e ′ ⁇ F (r) ⁇ c + e.
  • the prover algorithm P calculates F b (z, t) based on the definition of the function F b shown in the above equations (3) and (4), and F b (z, t) + e and It generates a hash value c 1 of z. That is, the prover algorithm P calculates c 1 ⁇ -H 1 (F b (z, t) + e, z). Furthermore, the prover algorithm P generates a hash value c 2 of the number w '. That is, the prover algorithm P calculates c 2 ⁇ -H 2 (w ′). Further, the prover algorithm P generates a hash value c 3 of two vectors t ′ and e ′. In other words, the prover algorithm P, c 3 ⁇ H 3 (t ', e') is calculated.
  • the prover algorithm P sets St ⁇ (F, y, s, r, t, e, z, t ′, e ′) and Cmt ⁇ (c 1 , c 2 , c 3 ).
  • the Cmt generated in 1 is sent to the verifier (verifier algorithm V).
  • the above H 1 are hash functions.
  • the above operation in 1 is expressed as (Cmt; St) ⁇ P a, 1 (F, y, s; r, t, e).
  • Step. 2 The verifier algorithm V that has received Cmt selects which verification pattern to use from among the three verification patterns. Then, the verifier algorithm V sends a challenge Ch ⁇ R ⁇ 0, 1, 2 ⁇ representing the selected verification pattern to the prover (the prover algorithm P).
  • Step. 4 The verifier algorithm V that has received Rsp performs one of the following verifications on the received Rsp.
  • the verifier algorithm V executes (z ′′, t ′ ′′, e ′ ′′) ⁇ Rsp.
  • the verification operation in 4 is expressed as 0/1 ⁇ Dec a (F, y; Cmt, Ch, Rsp).
  • output 1 indicates a successful verification and output 0 indicates a failed verification.
  • the commitment function COM is a function that takes two parameters, a character string S and a random number ⁇ .
  • the commitment function there is a method announced at the international conference CRYPTO 1996 by Shai Halevi and Silvio Micali.
  • random numbers ⁇ 1 , ⁇ 2 , ⁇ 3 are prepared before calculating c 1 , c 2 , c 3 , and hash functions H 1 (•), H 2 (•), H 3 (• ),
  • the commitment functions COM (•, ⁇ 1 ), COM (•, ⁇ 2 ), and COM (•, ⁇ 3 ) are applied to generate c 1 , c 2 , and c 3 .
  • ⁇ i is included in the answer and sent from the prover algorithm P to the verifier algorithm V.
  • FIG. 4 is an explanatory diagram for explaining the interactive protocol of the SSH 10b public key authentication method.
  • the SSH 10b public key authentication scheme is one of public key authentication schemes based on the problem of solving multi-order multivariable simultaneous equations devised by the present inventors (Sakuhon, Shirai, and Watari).
  • the SSH 10b public key authentication method is an example of a 5-pass public key authentication method.
  • the interactive protocol of the SSH 10b public key authentication method is composed of a key generation algorithm Gen, a prover algorithm P, and a verifier algorithm V, similarly to the interactive protocol of the SSH 10a public key authentication method.
  • Gen key generation algorithm
  • P prover algorithm
  • V verifier algorithm
  • the key generation algorithm Gen sets (f 1 ,..., F m , y) as the public key pk and sets s as the secret key.
  • an n-variable vector (x 1 ,..., X n ) is denoted by x
  • m n-variable quadratic polynomials (f 1 (x),..., F m (x)) are denoted by F ( x).
  • the interactive protocol of the SSH 10b public key authentication method is shown in Step. 1 to Step. 6 processing steps. Hereinafter, processing of each step will be described.
  • Step. 1 First, the prover algorithm P arbitrarily selects a number w. Subsequently, the prover algorithm P vector R ⁇ K n by applying the number w to the pseudo random number generator G, t ⁇ K n, generates a e ⁇ K m. That is, the prover algorithm P calculates (r, t, e) ⁇ G (w). Next, the prover algorithm P calculates z ⁇ s ⁇ r. This calculation corresponds to an operation of masking the secret key s with the vector r.
  • the prover algorithm P sets St A ⁇ -(F, y, s, r, t, e, z) and Cmt A ⁇ -(c 1 , c 2 ).
  • Cmt A generated in 1 is sent to a verifier (verifier algorithm V).
  • the above operation in 1 is expressed as (Cmt A ; St A ) ⁇ P b, 1 (F, y, s; r, t, e).
  • Step. 3 The prover algorithm P that has received Ch A calculates t ′ ⁇ ⁇ r + t. Further, the prover algorithm P calculates e ′ ⁇ ⁇ (F (r) ⁇ c) + e. Then, the prover algorithm P sets St B ⁇ (St A , Ch A , t ′, e ′) and Cmt B ⁇ (t ′, e ′). In addition, the prover algorithm P sends Cmt B to the verifier (verifier algorithm V). Step. 3 will be expressed as (Cmt B ; St B ) ⁇ P b, 2 (Ch A ; St A ).
  • Step. 4 The verifier algorithm V that has received Cmt B selects which verification pattern to use from the two verification patterns. Then, the verifier algorithm V sends a challenge Ch B ⁇ R ⁇ 0, 1 ⁇ representing the selected verification pattern to the prover (the prover algorithm P).
  • Step. 5 Prover algorithm P that has received the Ch B is a reply Rsp sent back to the verifier (verifier algorithm V) depending on the challenge Ch B received from the verifier algorithm V generates as follows.
  • the prover algorithm P sets Rsp ⁇ z.
  • the prover algorithm P sends the answer Rsp to the verifier (verifier algorithm V).
  • the above operation in 5 is expressed as Rsp ⁇ P b, 3 (Ch B ; St B ).
  • Step. 6 The verifier algorithm V that has received the answer Rsp executes the following verification process using the answer Rsp received from the prover (provider algorithm P).
  • Ch B 0
  • Ch B 1
  • Step. 6 is expressed as 0/1 ⁇ Dec b (F, y; Cmt A , Ch A , Cmt B , Ch B , Rsp). In this operation, output 1 indicates a successful verification and output 0 indicates a failed verification.
  • Non-Patent Documents 1 to 3 As a method of repeatedly executing the dialogue protocol, there are a serial repetition configuration shown in FIG. 5 and a parallel repetition configuration shown in FIG.
  • the serial repeat configuration executes the dialog protocol once, and the dialog is performed sequentially in such a way that the second time is finished after the first time is finished and the third time is executed after the second time is finished.
  • a method of executing a protocol On the other hand, parallel repetition structure, as shown in FIG. 6, a message m 1, 1 of the first pass of the N times, ..., m N, 1 sends simultaneously, then N times the second pass of the message m 1,2, ..., and sends m N, 2 simultaneously, then N times the third pass of the message m 1, 3, ..., in the form such transmits m N, 3 at the same time, the N times in each pass It is a method for sending messages simultaneously.
  • the public key authentication method, the SSH 10a public key authentication method, and the SSH 10b public key authentication method disclosed in the above non-patent documents 1 to 3 guarantee a level of security against passive attacks.
  • FIG. 7 is an explanatory diagram for explaining a falsification algorithm that succeeds with a probability of 2/3 in the SSH 10a public key authentication method (one-time dialogue protocol).
  • Step. 1 First, a fake person (a falsification algorithm) generates vectors s, r, t ⁇ K n and e ⁇ K m .
  • the false authentication algorithm arbitrarily selects Ch * ⁇ ⁇ 0, 1, 2 ⁇ .
  • the Ch * corresponds to a verification pattern that cannot be answered by the false algorithm. Note that s used here is not a valid secret key. However, the prover (provider algorithm P) can correctly answer without using a valid secret key if the verification pattern is other than Ch * .
  • the falsification algorithm calculates c 2 ⁇ -H 2 (t, e), c 3 ⁇ -H 3 (t ′, e ′). Then, the false authentication algorithm sets St ⁇ (Ch * , F, y, s, r, t, e, z, t ′, e ′) and Cmt ⁇ (c 1 , c 2 , c 3 ). Next, the perjury algorithm sends Cmt to the verifier (verifier algorithm V). Step.
  • the above operation in 1 is expressed as (Cmt; St) ⁇ M a, 1 (F, y; Ch * , s, r, t, e).
  • Step. 2 The verifier algorithm V that has received Cmt selects which verification pattern to use from among the three verification patterns. Then, the verifier algorithm V sends a challenge Ch ⁇ R ⁇ 0, 1, 2 ⁇ representing the selected verification pattern to the verifier (falsification algorithm).
  • Step. The above operation in 3 is expressed as Rsp ⁇ M a, 2 (Ch; St). Step.
  • the Rsp generated in 3 is sent to the verifier (verifier algorithm V).
  • Step. 4 In the case of Ch ⁇ Ch * , the answer Rsp is sent to the verifier algorithm V. Therefore, the verifier algorithm V performs verification processing 0/1 ⁇ Dec a (F, y; Cmt, Ch, Rsp).
  • FIG. 8 is an explanatory diagram for explaining a falsification algorithm that succeeds with a probability of 1/2 in the SSH 10b public key authentication method (one-time conversation protocol).
  • Step. 1 First, perjury algorithm generates a vector s, r, t ⁇ K n, e ⁇ K m. The falsification algorithm then selects Ch * B ⁇ ⁇ 0, 1 ⁇ . This Ch * B corresponds to a verification pattern that cannot be answered by a perpetrator (counterfeit algorithm) for the i 0 sequence. Note that s i0 used here is not a valid secret key, but the false algorithm can correctly answer a verification pattern other than Ch * B without using a valid secret key.
  • Step. 4 The verifier algorithm V that has received Cmt B selects which verification pattern to use from the two verification patterns. Then, the verifier algorithm V sends a challenge Ch B ⁇ R ⁇ 0, 1 ⁇ representing the selected verification pattern to the verifier (false certificate algorithm).
  • the perjury algorithm generates an answer Rsp to be sent back to the verifier (verifier algorithm V) in response to the challenge Ch B received from the verifier algorithm V as follows.
  • Step. 6 If Ch B ⁇ Ch * B , the answer Rsp is sent to the verifier algorithm V, so that the verifier algorithm V verifies the verification process 0/1 ⁇ Dec b (F, y; Cmt A , Ch A , Cmt B , Ch B , Rsp).
  • the inventor of the present invention has devised a mechanism that ensures the security level against active attacks when these public key authentication methods are implemented by the above-described parallel repetition configuration.
  • this mechanism will be described in detail with a specific example.
  • This technique # 1 applies a mechanism that ensures the level of security against active attacks even when a parallel repetitive configuration is performed for the SSH10a public key authentication system and the SSH10b public key authentication system. is there. Again, the reason why it was not known whether or not the level of security against active attacks was guaranteed was that the difficulty of collision of the function F to be used was not guaranteed, and “the prover who performed the verification is s This is because it was inevitable that the verifier was informed of the information that “is used”. Therefore, if the verifier does not know the information that “the prover who performed the verification used s” in the interactive protocol, the security level against the active attack can be guaranteed.
  • the verifier i 1, ..., challenge Ch 1 for L, ..., transmitted to the prover a Ch L (verification pattern), received challenge Ch 1, ..., a Ch L the prover is that to answer by selecting the L-1 single challenge Ch i.
  • the prover since the prover has only to answer L-1 challenges Ch i , authentication can be established for one challenge Ch i without using s i . That is, in the interactive protocol, it's whether or not to use a certain s i do not know to the verifier.
  • FIG. 9 is an explanatory diagram for explaining a dialogue protocol when the method of the present method # 1 is applied to the SSH 10a public key authentication method.
  • This interactive protocol includes a key generation algorithm Gen, a prover algorithm P, and a verifier algorithm V.
  • Gen key generation algorithm
  • P prover algorithm
  • V verifier algorithm
  • the key generation algorithm Gen includes m n-variable quadratic polynomials f 1 (x 1 ,..., X n ),..., F m (x 1 ,..., X n ) defined on the ring K and L pieces. S 1 ,..., S L ⁇ K n . Note that an n-variable vector (x 1 ,..., X n ) is denoted by x, and m n-variable quadratic polynomials (f 1 (x),..., F m (x)) are denoted by F (x). write.
  • the interactive protocol of this method # 1 is Step. 1 to Step. 4 processing steps. Hereinafter, processing of each step will be described.
  • Step. 2 The verifier algorithm V that has received Cmt 1 ,..., Cmt L selects which verification pattern to use from among the three verification patterns. Then, the verifier algorithm V sends a challenge Ch 1 ,..., Ch L ⁇ R ⁇ 0, 1 , 2 ⁇ representing the selected verification pattern to the prover (provider algorithm P).
  • Step. 4 (Rsp 1, ..., Rsp i * -1, Rsp i * + 1, ..., Rsp L, i *) verifier algorithm V having received the, i ⁇ ⁇ 1, ..., L ⁇ ⁇ for ⁇ i * ⁇ 0 / 1 ⁇ -Dec a (F, y i ; Cmt i , Ch i , Rsp i ) is executed. Then, the verifier algorithm V considers that the verification is successful if all of i ⁇ ⁇ 1,..., L ⁇ ⁇ ⁇ i * ⁇ are accepted (output 1).
  • the interactive protocol when the method # 1 is applied to the SSH 10a public key authentication method has been described above.
  • FIG. 10 is an explanatory diagram for explaining an interactive protocol (Modification 1) when the method # 1 is applied to the SSH 10a public key authentication method.
  • This interactive protocol includes a key generation algorithm Gen, a prover algorithm P, and a verifier algorithm V.
  • the contents of each algorithm will be described.
  • the key generation algorithm Gen includes m n-variable quadratic polynomials f 1 (x 1 ,..., X n ),..., F m (x 1 ,..., X n ) defined on the ring K and L pieces. S 1 ,..., S L ⁇ K n . However, s i0 uses an appropriately selected vector. Note that an n-variable vector (x 1 ,..., X n ) is denoted by x, and m n-variable quadratic polynomials (f 1 (x),..., F m (x)) are denoted by F (x). write.
  • the interactive protocol of this method # 1 is Step. 1 to Step. 4 processing steps. Hereinafter, processing of each step will be described.
  • the prover algorithm P calculates (Cmt i ; St i ) ⁇ M a, 1 (F, y i ; Ch * , s i , r i , t i , e i ). To do. Then, the prover algorithm P sends Cmt 1 , Cmt 2 , and Cmt 3 to the verifier (verifier algorithm V).
  • Step. 2 The verifier algorithm V having received Cmt 1 , Cmt 2 , and Cmt 3 selects which verification pattern to use from among the three verification patterns. Then, the verifier algorithm V sends a challenge Ch 1 , Ch 2 , Ch 3 ⁇ R ⁇ 0, 1 , 2 ⁇ representing the selected verification pattern to the prover (provider algorithm P).
  • Ch i0 Ch *
  • the verifier algorithm V sets i * ⁇ i 0 .
  • the verifier algorithm V randomly selects i * from i * ⁇ ⁇ 1, 2, 3 ⁇ ⁇ ⁇ i 0 ⁇ .
  • i * takes values of 1, 2, and 3 with a probability of 1/3, regardless of what verification pattern is requested by the verifier. That is, the information indicating i 0 is a value of 1, 2, 3 throat are completely concealed.
  • the prover algorithm P calculates Rsp i for i ⁇ ⁇ 1, 2, 3 ⁇ ⁇ ⁇ i * ⁇ as follows.
  • the prover algorithm P calculates Rsp i ⁇ P a, 2 (Ch i ; St i ).
  • the prover algorithm P calculates Rsp i ⁇ M a, 2 (Ch i ; St i ).
  • the prover algorithm P sends (Rsp 1 ,..., Rsp i * ⁇ 1 , Rsp i * + 1 ,..., Rsp L , i * ) to the verifier (verifier algorithm V).
  • Step. 4 The verifier algorithm V that has received (Rsp 1 ,..., Rsp i * ⁇ 1 , Rsp i * + 1 ,..., Rsp L , i * ) is 0 for i ⁇ ⁇ 1, 2, 3 ⁇ ⁇ ⁇ i * ⁇ . / 1 ⁇ -Dec a (F, y i ; Cmt i , Ch i , Rsp i ) is executed.
  • the verifier algorithm V regards that i ⁇ ⁇ 1, 2, 3 ⁇ ⁇ ⁇ i * ⁇ is all accepted (output 1), and thus verifies that the verification has been established.
  • Modification 2 is a modification of the interactive protocol shown in FIG.
  • FIG. 11 is an explanatory diagram for explaining an interactive protocol (Modification 2) when the method # 1 is applied to the SSH 10a public key authentication method.
  • This interactive protocol includes a key generation algorithm Gen, a prover algorithm P, and a verifier algorithm V.
  • Gen key generation algorithm
  • P prover algorithm
  • V verifier algorithm
  • the key generation algorithm Gen includes m n-variable quadratic polynomials f 1 (x 1 ,..., X n ),..., F m (x 1 ,..., X n ) defined on the ring K.
  • the vectors s 1 and s 2 ⁇ K n are generated. Note that an n-variable vector (x 1 ,..., X n ) is denoted by x, and m n-variable quadratic polynomials (f 1 (x),..., F m (x)) are denoted by F (x). write.
  • the verifier is made to prove without leaking it to the verifier. It is assumed that the public key pk generated by the key generation algorithm Gen is shared between the prover and the verifier. Further, it is assumed that the secret key sk generated by the key generation algorithm Gen is managed secretly by the prover.
  • the interactive protocol of this method # 1 is the Step. 1 to Step. 4 processing steps. Hereinafter, processing of each step will be described.
  • Step. 1 First, the prover algorithm P generates a vector r 1 , t 1 ⁇ K n and a vector e 1 ⁇ K m .
  • the prover algorithm P has (Cmt 1 ; St 1 ) ⁇ P a, 1 (F, y 1 , s 1 ; r 1 , t 1 , e 1 ), (Cmt 2 ; St 2 ) ⁇ P a, 1 (F, y 2, s 2; r 1, t 1, e 1) is calculated.
  • Cmt 1 (c 11 , c 12 , c 13 )
  • Cmt 2 (c 21 , c 12 , c 13 ).
  • the prover algorithm P sends c 11 , c 12 , c 13 , and c 21 to the verifier (verifier algorithm V).
  • Step. 2 The verifier algorithm V that has received c 11 , c 12 , c 13 , and c 21 selects which verification pattern to use. Then, the verifier algorithm V sets a challenge set (Ch 1 , Ch 2 ) ⁇ ⁇ 0, 1 , 2 ⁇ ⁇ ⁇ 0, 1, 2 ⁇ representing the selected verification pattern as a prover (provider algorithm P). send.
  • a challenge set (Ch 1 , Ch 2 ) ⁇ ⁇ 0, 1 , 2 ⁇ ⁇ ⁇ 0, 1, 2 ⁇ representing the selected verification pattern as a prover (provider algorithm P). send.
  • Step. 3 The prover algorithm P that has received Ch 1 and Ch 2 randomly selects the index i of the challenge Ch i to be answered. Next, the prover algorithm P calculates Rsp i ⁇ P a, 2 (Ch i ; St i , r 1 , t 1 , e 1 ) for the selected i . Then, the prover algorithm P sends (Rsp i , i) to the verifier (verifier algorithm V).
  • Step. 4 The verifier algorithm V that has received Rsp i , i executes 0/1 ⁇ Dec a (F, y i ; (c i1 , c 12 , c 13 ), Chi i , Rsp i ). Then, the verifier algorithm V considers that the verification is successful when the output is 1 (when accepted).
  • Modification 3 is a modification of the interactive protocol (Modification 2) shown in FIG.
  • FIG. 12 is an explanatory diagram for explaining an interactive protocol (Modification 3) when the method # 1 is applied to the SSH 10a public key authentication method.
  • This interactive protocol includes a key generation algorithm Gen, a prover algorithm P, and a verifier algorithm V.
  • Gen key generation algorithm
  • P prover algorithm
  • V verifier algorithm
  • the key generation algorithm Gen includes m n-variable quadratic polynomials f 1 (x 1 ,..., X n ),..., F m (x 1 ,..., X n ) defined on the ring K.
  • the vectors s 1 and s 2 ⁇ K n are generated. Note that an n-variable vector (x 1 ,..., X n ) is denoted by x, and m n-variable quadratic polynomials (f 1 (x),..., F m (x)) are denoted by F (x). write.
  • the verifier is made to prove without leaking it to the verifier. It is assumed that the public key pk generated by the key generation algorithm Gen is shared between the prover and the verifier. Further, it is assumed that the secret key sk generated by the key generation algorithm Gen is managed secretly by the prover.
  • the interactive protocol of this method # 1 is Step. 1 to Step. 4 processing steps. Hereinafter, processing of each step will be described.
  • Step. 2 The verifier algorithm V that has received c 11 , c 12 , c 13 , and c 21 selects which verification pattern to use.
  • the verification algorithm V verification pattern (set of challenges (Ch 1, Ch 2)) (Ch 1, Ch 2) ⁇ ⁇ (0,0), (1,1), (1,2) , (2, 1), (2, 2) ⁇ .
  • the verifier algorithm V sends a pair of challenges (Ch 1 , Ch 2 ) representing the selected verification pattern to the prover (provider algorithm P).
  • Step. 3 The prover algorithm P that has received Ch 1 and Ch 2 randomly selects the index i of the challenge Ch i to be answered. Next, the prover algorithm P calculates Rsp i ⁇ P a, 2 (Ch i ; St i , r 1 , t 1 , e 1 ) for the selected i . Then, the prover algorithm P sends (Rsp i , i) to the verifier (verifier algorithm V).
  • Step. 4 The verifier algorithm V that has received (Rsp i , i) executes 0/1 ⁇ Dec a (F, y i ; (c i1 , c 12 , c 13 ), Chi i , Rsp i ). Then, the verifier algorithm V considers that the verification is successful when the output is 1 (when accepted).
  • FIG. 13 is an explanatory diagram for explaining a dialogue protocol when the method of the present method # 1 is applied to the SSH 10b public key authentication method.
  • This interactive protocol includes a key generation algorithm Gen, a prover algorithm P, and a verifier algorithm V.
  • a key generation algorithm Gen a prover algorithm
  • V a verifier algorithm
  • the key generation algorithm Gen includes m n-variable quadratic polynomials f 1 (x 1 ,..., X n ),..., F m (x 1 ,..., X n ) defined on the ring K and L pieces. S 1 ,..., S L ⁇ K n . Note that an n-variable vector (x 1 ,..., X n ) is denoted by x, and m n-variable quadratic polynomials (f 1 (x),..., F m (x)) are denoted by F (x). write.
  • the interactive protocol of this method # 1 is Step. 1 to Step. 6 processing steps. Hereinafter, processing of each step will be described.
  • Step. 3 The prover algorithm P that receives (Ch A, 1 ,..., Ch A, L ) has (Cmt B, i ; St B, i ) ⁇ P b, 2 (Ch A, i ; St A, i ) is calculated. Then, the prover algorithm P sends (Cmt B, 1 ,..., Cmt B, L ) to the verifier (verifier algorithm V).
  • Step. 6 The verifier algorithm V that has received (Rsp 1 ,..., Rsp i * ⁇ 1 , Rsp i * + 1 ,..., Rsp L , i * ) is 0 for i ⁇ ⁇ 1,..., L ⁇ ⁇ ⁇ i * ⁇ . / 1 ⁇ -Dec b (F, y i ; Cmt A, i , Ch A, i , Cmt B, i , Ch B, i , Rsp i ). Then, the verifier algorithm V considers that the verification is successful if all of i ⁇ ⁇ 1,..., L ⁇ ⁇ ⁇ i * ⁇ are accepted (output 1).
  • the interactive protocol when the method # 1 is applied to the SSH 10b public key authentication method has been described above.
  • the probability that the falsification is successful is (1/2 + 1 / 2q) L + L (1 / 2-1 / 2q) (1/2 + 1 / 2q) L-1 .
  • FIG. 14 is an explanatory diagram for explaining an interactive protocol (modified example) when the method # 1 is applied to the SSH 10b public key authentication method.
  • This interactive protocol includes a key generation algorithm Gen, a prover algorithm P, and a verifier algorithm V.
  • the contents of each algorithm will be described.
  • the key generation algorithm Gen includes m n-variable quadratic polynomials f 1 (x 1 ,..., X n ),..., F m (x 1 ,..., X n ) defined on the ring K and L pieces. S 1 ,..., S L ⁇ K n . However, s i0 uses an appropriately selected vector. Note that an n-variable vector (x 1 ,..., X n ) is denoted by x, and m n-variable quadratic polynomials (f 1 (x),..., F m (x)) are denoted by F (x). write.
  • the interactive protocol of this method # 1 is the Step. 1 to Step. 6 processing steps. Hereinafter, processing of each step will be described.
  • the prover algorithm P uses (Cmt A, i ; St A, i ) ⁇ M b, 1 (F, y i ; Ch B * , s i , r i , t i , E i ). Then, the prover algorithm P sends (Cmt A, 1 , Cmt A, 2 ) to the verifier (verifier algorithm V).
  • the prover algorithm P calculates (Cmt B, i ; St B, i ) ⁇ P b, 2 (Ch A, i ; St A, i ).
  • the prover algorithm P calculates (Cmt B, i ; St B, i ) ⁇ M b, 2 (Ch A, i ; St A, i ).
  • the prover algorithm P sends (Cmt B, 1 , Cmt B, 2 ) to the verifier (verifier algorithm V).
  • Step. 4 The verifier algorithm V that has received (Cmt B, 1 , Cmt B, 2 ) selects which verification pattern to use from the two verification patterns. Then, the verifier algorithm V sends a challenge (Ch B, 1 , Ch B, 2 ) ⁇ R ⁇ 0,1 ⁇ representing the selected verification pattern to the prover (provider algorithm P).
  • i * takes a value of 1 or 2 with a probability of 1/2 regardless of what verification pattern is requested by the verifier. That is, the information on which value i 0 is 1 or 2 is completely concealed.
  • the prover algorithm P calculates Rsp i for i ⁇ ⁇ 1,2 ⁇ ⁇ ⁇ i * ⁇ as follows.
  • the prover algorithm P calculates Rsp i ⁇ P b, 3 (Ch i ; St i ).
  • the prover algorithm P calculates Rsp i ⁇ M b, 3 (Ch i ; St i ).
  • the prover algorithm P sends (Rsp 1 , Rsp 2 , i * ) to the verifier (verifier algorithm V).
  • Step. 6 The verifier algorithm V that receives (Rsp 1 , Rsp 2 , i * ) receives 0/1 ⁇ Dec b (F, y i ; Cmt A, i , Ch for i ⁇ ⁇ 1, 2 ⁇ ⁇ ⁇ i * ⁇ . A, i , Cmt B, i , Ch B, i , Rsp i ). Then, the verifier algorithm V considers that the verification is successful if all i ⁇ ⁇ 1,2 ⁇ ⁇ ⁇ i * ⁇ are accepted (output 1).
  • the SSH 10a public key authentication method and the SSH 10b public key authentication method are described as examples.
  • the application range of the method # 1 is not limited to this.
  • the present invention can also be applied to a modification of the SSH 10a public key authentication method and the SSH 10b public key authentication method, and other public key authentication methods.
  • the public key is set to (F, y), but since F is a parameter that does not depend on the secret key, this F is not set for each prover but is common to the entire system. It is good also as a parameter to do.
  • the only public key that should be disclosed individually is y, and the size of the public key is reduced.
  • This technique # 2 is a system in which a security level against an active attack is guaranteed with respect to the SSH 10a public key authentication system and the SSH 10b public key authentication system.
  • the reason why it was not known whether or not the level of security against active attacks was guaranteed was that the difficulty of collision of the function F to be used was not guaranteed, and “the prover who performed the verification is s This is because it was inevitable that the verifier was informed of the information that “is used”. Therefore, if the verifier does not know the information that “the prover who performed the verification used s” in the interactive protocol, the security level against the active attack can be guaranteed.
  • the verifier takes a set of challenges (Ch 1 (0) ,..., Ch L (0) ) and (Ch 1 (1) ,..., Ch L ( 1) Send) to the prover, and the prover selects one challenge pair and answers.
  • Q (Q ⁇ 2) pairs of challenges are sent to the prover, and the prover selects and answers one challenge pair.
  • FIG. 15 is an explanatory diagram for explaining a dialogue protocol when the method # 2 is applied to the SSH 10a public key authentication method.
  • This interactive protocol includes a key generation algorithm Gen, a prover algorithm P, and a verifier algorithm V.
  • Gen key generation algorithm
  • P prover algorithm
  • V verifier algorithm
  • the key generation algorithm Gen includes m n-variable quadratic polynomials f 1 (x 1 ,..., X n ),..., F m (x 1 ,..., X n ) defined on the ring K and L pieces. S 1 ,..., S L ⁇ K n . Note that an n-variable vector (x 1 ,..., X n ) is denoted by x, and m n-variable quadratic polynomials (f 1 (x),..., F m (x)) are denoted by F (x). write.
  • the interactive protocol of this method # 2 is the Step. 1 to Step. 4 processing steps. Hereinafter, processing of each step will be described.
  • Step. 2 The verifier algorithm V that has received Cmt 1 ,..., Cmt L selects which verification pattern to use from among the three verification patterns. At this time, the verifier algorithm V selects a combination of two verification patterns. The verifier algorithm V then creates a set of challenges (Ch 1 (0) ,..., Ch L (0) ), (Ch 1 (1) ,..., Ch L (1) ) ⁇ R representing the selected verification pattern. Send ⁇ 0, 1, 2 ⁇ to the prover (provider algorithm P). However, Ch i (0) ⁇ Ch i (1) .
  • Step. 3 The prover algorithm P that has received (Ch 1 (0) ,..., Ch L (0) ), (Ch 1 (1) ,..., Ch L (1) ) Select at random. The selection result is expressed as d ⁇ R ⁇ 0, 1 ⁇ . Then, the prover algorithm P calculates Rsp i ⁇ P a, 2 (Ch (d) i ; St i ) for i ⁇ ⁇ 1,..., L ⁇ . Thereafter, the prover algorithm P sends (Rsp 1 ,..., Rsp L , d) to the verifier (verifier algorithm V).
  • Step. 4 The verifier algorithm V that has received (Rsp 1 ,..., Rsp L , d) is 0/1 ⁇ Dec a (F, y i ; Cmt i , Ch (d) i for i ⁇ ⁇ 1,. , Rsp i ).
  • the verifier algorithm V regards that i ⁇ ⁇ 1,..., L ⁇ is all accepted (output 1), and is considered to have been verified.
  • the interactive protocol when the method # 2 is applied to the SSH 10a public key authentication method has been described above.
  • FIG. 16 is an explanatory diagram for explaining a dialogue protocol (modification) when the method of the present method # 2 is applied to the SSH 10a public key authentication method.
  • This interactive protocol includes a key generation algorithm Gen, a prover algorithm P, and a verifier algorithm V.
  • the verifier algorithm V uses the configuration of the falsification algorithm described above. Further, an index of s i that is not used is i 0 .
  • the contents of each algorithm will be described.
  • the key generation algorithm Gen includes m n-variable quadratic polynomials f 1 (x 1 ,..., X n ),..., F m (x 1 ,..., X n ) defined on the ring K and L pieces. S 1 ,..., S L ⁇ K n . However, s i0 uses an appropriately selected vector. Note that an n-variable vector (x 1 ,..., X n ) is denoted by x, and m n-variable quadratic polynomials (f 1 (x),..., F m (x)) are denoted by F (x). write.
  • the interactive protocol of this method # 2 is the Step. 1 to Step. 4 processing steps. Hereinafter, processing of each step will be described.
  • the prover algorithm P calculates (Cmt i ; St i ) ⁇ M a, 1 (F, y i ; Ch * , s i , r i , t i , e i ). To do. Then, the prover algorithm P sends Cmt 1 ,..., Cmt L to the verifier (verifier algorithm V).
  • Step. 2 The verifier algorithm V that has received Cmt 1 ,..., Cmt L selects which verification pattern to use from among the three verification patterns. At this time, the verifier algorithm V selects a combination of two verification patterns. The verifier algorithm V then creates a set of challenges (Ch 1 (0) ,..., Ch L (0) ), (Ch 1 (1) ,..., Ch L (1) ) ⁇ R representing the selected verification pattern. Send ⁇ 0, 1, 2 ⁇ to the prover (provider algorithm P). However, Ch i (0) ⁇ Ch i (1) .
  • the prover algorithm P calculates Rspi for i ⁇ ⁇ 1,..., L ⁇ as follows.
  • the prover algorithm P calculates Rsp i ⁇ P a, 2 (Ch (d) i ; St i ).
  • the prover algorithm P calculates Rsp i ⁇ M a, 2 (Ch (d) i ; St i ).
  • the prover algorithm P sends (Rsp 1 ,..., Rsp L , d) to the verifier (verifier algorithm V).
  • Step. 4 The verifier algorithm V that has received (Rsp 1 ,..., Rsp L , d) is 0/1 ⁇ Dec a (F, y i ; Cmt i , Ch (d) i for i ⁇ ⁇ 1,. , Rsp i ).
  • the verifier algorithm V regards that i ⁇ ⁇ 1,..., L ⁇ is all accepted (output 1), and is considered to have been verified.
  • the dialog protocol (modified example) when the method # 2 is applied to the SSH 10a public key authentication method has been described above.
  • a pair of two challenges is sent from the verifier to the prover.
  • FIG. 17 is an explanatory diagram for explaining a dialogue protocol when the method # 2 is applied to the SSH 10b public key authentication method.
  • This interactive protocol includes a key generation algorithm Gen, a prover algorithm P, and a verifier algorithm V.
  • Gen key generation algorithm
  • P prover algorithm
  • V verifier algorithm
  • the key generation algorithm Gen includes m n-variable quadratic polynomials f 1 (x 1 ,..., X n ),..., F m (x 1 ,..., X n ) defined on the ring K and L pieces. S 1 ,..., S L ⁇ K n . Note that an n-variable vector (x 1 ,..., X n ) is denoted by x, and m n-variable quadratic polynomials (f 1 (x),..., F m (x)) are denoted by F (x). write.
  • the interactive protocol of this method # 2 is Step. 1 to Step. 6 processing steps. Hereinafter, processing of each step will be described.
  • Step. 3 The prover algorithm P that receives (Ch A, 1 ,..., Ch A, L ) has (Cmt B, i ; St B, i ) ⁇ P b, 2 (Ch A, i ; St A, i ) is calculated. Then, the prover algorithm P sends (Cmt B, 1 ,..., Cmt B, L ) to the verifier (verifier algorithm V).
  • Step. 4 The verifier algorithm V that has received (Cmt B, 1 ,..., Cmt B, L ) selects which verification pattern to use from among the three verification patterns. At this time, the verifier algorithm V selects a combination of two verification patterns. The verifier algorithm V then creates a set of challenges (Ch B, 1 (0) ,..., Ch B, L (0) ), (Ch B, 1 (1) ,..., Ch B ) representing the selected verification pattern. , L (1) ) ⁇ R ⁇ 0, 1 ⁇ L is sent to the prover (provider algorithm P). However, Ch B, i (0) ⁇ Ch B, i (1) .
  • Step. 5 (Ch B, 1 (0) ,..., Ch B, L (0) ), (Ch B, 1 (1) ,..., Ch B, L (1) ) Randomly choose whether to answer the challenge set.
  • the selection result is expressed as d ⁇ R ⁇ 0, 1 ⁇ .
  • the prover algorithm P calculates Rsp i ⁇ P b, 2 (Ch B, i (d) ; St B, i ) for i ⁇ ⁇ 1,..., L ⁇ . Thereafter, the prover algorithm P sends (Rsp 1 ,..., Rsp L , d) to the verifier (verifier algorithm V).
  • Step. 6 The verifier algorithm V that has received (Rsp 1 ,..., Rsp L , d) is 0/1 ⁇ Dec b (F, y i ; Cmt A, i , Ch A, i , Cmt B, i , Ch B, i (d) , Rsp i ).
  • the verifier algorithm V regards that i ⁇ ⁇ 1,..., L ⁇ is all accepted (output 1), and is considered to have been verified.
  • FIG. 18 is an explanatory diagram for explaining a dialogue protocol (modification) when the method of the present method # 2 is applied to the SSH 10b public key authentication method.
  • This interactive protocol includes a key generation algorithm Gen, a prover algorithm P, and a verifier algorithm V.
  • the verifier algorithm V uses the configuration of the falsification algorithm described above.
  • an index of s i that is not used is i 0 .
  • the contents of each algorithm will be described.
  • the key generation algorithm Gen includes m n-variable quadratic polynomials f 1 (x 1 ,..., X n ),..., F m (x 1 ,..., X n ) defined on the ring K and L pieces. S 1 ,..., S L ⁇ K n . However, s i0 uses an appropriately selected vector. Note that an n-variable vector (x 1 ,..., X n ) is denoted by x, and m n-variable quadratic polynomials (f 1 (x),..., F m (x)) are denoted by F (x). write.
  • the interactive protocol of this method # 2 is Step. 1 to Step. 6 processing steps. Hereinafter, processing of each step will be described.
  • the prover algorithm P uses (Cmt A, i ; St A, i ) ⁇ M b, 1 (F, y i ; Ch B * , s i , r i , t i , E i ). Then, the prover algorithm P sends (Cmt A, 1 ,..., Cmt A, L ) to the verifier (verifier algorithm V).
  • Step. 4 The verifier algorithm V that has received (Cmt B, 1 ,..., Cmt B, L ) selects which verification pattern to use from among the three verification patterns. At this time, the verifier algorithm V selects a combination of two verification patterns. The verifier algorithm V then creates a set of challenges (Ch B, 1 (0) ,..., Ch B, L (0) ), (Ch B, 1 (1) ,..., Ch B ) representing the selected verification pattern. , L (1) ) ⁇ R ⁇ 0, 1 ⁇ L is sent to the prover (provider algorithm P). However, Ch B, i (0) ⁇ Ch B, i (1) .
  • Step. 5 (Ch B, 1 (0) ,..., Ch B, L (0) ), (Ch B, 1 (1) ,..., Ch B, L (1) ) Choose whether to answer the challenge set as follows: The selection result is expressed as d ⁇ R ⁇ 0, 1 ⁇ .
  • d takes a value of 0 or 1 with a probability of 1/2 regardless of what verification pattern the verifier requests. That is, the information on which value of d is 0 or 1 is completely concealed.
  • the dialog protocol in the case where the method of the present method # 2 is applied to the SSH 10b public key authentication method has been described above.
  • a pair of two challenges is sent from the verifier to the prover.
  • the SSH 10a public key authentication method and the SSH 10b public key authentication method have been described as examples.
  • the application range of the method # 2 is not limited to this.
  • the present invention can also be applied to a modification of the SSH 10a public key authentication method and the SSH 10b public key authentication method, and other public key authentication methods.
  • the public key is set to (F, y), but since F is a parameter that does not depend on the secret key, this F is not set for each prover but is common to the entire system. It is good also as a parameter to do.
  • the only public key that should be disclosed individually is y, and the size of the public key is reduced.
  • the three-pass method has three verification patterns as in the SSH 10a public key authentication method, and there is a false verification algorithm that can handle up to two patterns.
  • the five-pass method also has two verification patterns, and there is a counterfeit algorithm that can handle up to one of them. Therefore, the method described above for the SSH 10a public key authentication method can be applied to the three-pass method, and the method described above for the SSH 10b public key authentication method can be applied to the five-pass method.
  • a public key authentication method based on the Constrained Linear Equations problem is described in, for example, “Jacques Stern, Designing Identification Schemes with Keys of Short Size, CRYPTO 1994”, p164-173. According to this, this public key authentication method includes a 3-pass method and a 5-pass method.
  • the three-pass method has three verification patterns as in the SSH 10a public key authentication method, and there is a false verification algorithm that can handle up to two patterns.
  • the five-pass method also has two verification patterns, and there is a counterfeit algorithm that can handle up to one of them. Therefore, the method described above for the SSH 10a public key authentication method can be applied to the three-pass method, and the method described above for the SSH 10b public key authentication method can be applied to the five-pass method.
  • Public-key authentication schemes based on the problem of finding sections on algebraic surfaces include 3-pass and 5-pass schemes (see, for example, Japanese Patent Application No. 2010-1225026).
  • the three-pass method has three verification patterns, and there are false authentication algorithms that can handle up to two patterns.
  • the five-pass method also has two verification patterns, and there is a counterfeit algorithm that can handle up to one of them. Therefore, the method described above for the SSH 10a public key authentication method can be applied to the three-pass method, and the method described above for the SSH 10b public key authentication method can be applied to the five-pass method.
  • Public key authentication schemes based on the Permuted Perceptrons problem include, for example, “David Point Ben, A New Identification chem. Public-Key Identification, Des. Codes Cryptography, 2003, p5-31. According to this, this public key authentication method includes a 3-pass method and a 5-pass method.
  • the 3-pass method has 4 verification patterns, and up to 3 of these patterns can be supported.
  • the five-pass method has three verification patterns, and there are counterfeit algorithms that can handle up to two patterns. Therefore, the techniques # 1 and # 2 can be applied to this public key authentication method as well as the SSH10a public key authentication method and the SSH10b public key authentication method. However, the following changes are necessary when applying this method # 1 to this public key authentication method.
  • Ch i0 Ch * if i * ⁇ i 0 is selected, Ch i0 ⁇ Ch * If the probability (1-1 / k) -1 (1 / L-1 / k ) I * ⁇ i 0 is selected and i * ⁇ ⁇ 1,..., L ⁇ ⁇ ⁇ i 0 ⁇ with probability 1 ⁇ (1-1 / k) ⁇ 1 (1 / L ⁇ 1 / k) I * is selected at random.
  • i * takes a value of 1,..., L with a probability of 1 / L, and i 0 is 1,.
  • the information on which was it is completely concealed.
  • the present methods # 1 and # 2 are applicable not only to the SSH 10a public key authentication method and the SSH 10b public key authentication method but also to various public key authentication methods.
  • a set of messages (c 1 , c 2 , c 3 ) is sent from the prover to the verifier.
  • the expression Cmt was used.
  • the set of messages is represented by (c 1,1 , c 1 , 2 , c 1,3 ,..., C N, 1 , c N, 2 as shown in FIG. , C N, 3 ), and the amount of communication becomes very large. Therefore, the present inventors have devised a configuration in which these messages are sent together in one hash value.
  • the message sent in the first pass is only one hash value, and it is possible to greatly reduce the communication amount.
  • the hash value and the hash value that cannot be restored from the answer to the challenge sent from the prover are sent from the prover together with the answer.
  • the number of pieces of information to be sent can be reduced by 2N-1.
  • the same configuration can be applied to the SSH 10b public key authentication method. In this case, the number of pieces of information to be sent can be reduced by N-1.
  • ⁇ 5 Hardware configuration>
  • Each of the above algorithms can be executed using, for example, the hardware configuration of the information processing apparatus shown in FIG. That is, the processing of each algorithm is realized by controlling the hardware shown in FIG. 21 using a computer program.
  • the form of this hardware is arbitrary, for example, personal information terminals such as personal computers, mobile phones, PHS, PDAs, game machines, contact or non-contact IC chips, contact or non-contact ICs This includes cards or various information appliances.
  • PHS is an abbreviation of Personal Handy-phone System.
  • the PDA is an abbreviation for Personal Digital Assistant.
  • this hardware mainly includes a CPU 902, a ROM 904, a RAM 906, a host bus 908, and a bridge 910. Further, this hardware includes an external bus 912, an interface 914, an input unit 916, an output unit 918, a storage unit 920, a drive 922, a connection port 924, and a communication unit 926.
  • the CPU is an abbreviation for Central Processing Unit.
  • the ROM is an abbreviation for Read Only Memory.
  • the RAM is an abbreviation for Random Access Memory.
  • the CPU 902 functions as, for example, an arithmetic processing unit or a control unit, and controls the overall operation of each component or a part thereof based on various programs recorded in the ROM 904, the RAM 906, the storage unit 920, or the removable recording medium 928.
  • the ROM 904 is a means for storing a program read by the CPU 902, data used for calculation, and the like.
  • a program read by the CPU 902 various parameters that change as appropriate when the program is executed, and the like are temporarily or permanently stored.
  • a host bus 908 capable of high-speed data transmission.
  • the host bus 908 is connected to an external bus 912 having a relatively low data transmission speed via a bridge 910, for example.
  • a bridge 910 for example.
  • the input unit 916 for example, a mouse, a keyboard, a touch panel, a button, a switch, a lever, or the like is used.
  • a remote controller capable of transmitting a control signal using infrared rays or other radio waves may be used.
  • a display device such as a CRT, LCD, PDP, or ELD
  • an audio output device such as a speaker or a headphone, a printer, a mobile phone, or a facsimile, etc.
  • the above CRT is an abbreviation of Cathode Ray Tube.
  • the LCD is an abbreviation for Liquid Crystal Display.
  • the PDP is an abbreviation for Plasma Display Panel.
  • the above ELD is an abbreviation for Electro-Luminescence Display.
  • the storage unit 920 is a device for storing various data.
  • a magnetic storage device such as a hard disk drive (HDD), a semiconductor storage device, an optical storage device, a magneto-optical storage device, or the like is used.
  • HDD hard disk drive
  • the above HDD is an abbreviation for Hard Disk Drive.
  • the drive 922 is a device that reads information recorded on a removable recording medium 928 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory, or writes information to the removable recording medium 928.
  • the removable recording medium 928 is, for example, a DVD medium, a Blu-ray medium, an HD DVD medium, various semiconductor storage media, or the like.
  • the removable recording medium 928 may be, for example, an IC card on which a non-contact type IC chip is mounted, an electronic device, or the like.
  • the above IC is an abbreviation for Integrated Circuit.
  • the connection port 924 is a port for connecting an external connection device 930 such as a USB port, an IEEE 1394 port, a SCSI, an RS-232C port, or an optical audio terminal.
  • the external connection device 930 is, for example, a printer, a portable music player, a digital camera, a digital video camera, or an IC recorder.
  • the USB is an abbreviation for Universal Serial Bus.
  • the SCSI is an abbreviation for Small Computer System Interface.
  • the communication unit 926 is a communication device for connecting to the network 932.
  • a wired or wireless LAN for example, a wired or wireless LAN, Bluetooth (registered trademark), or a WUSB communication card, an optical communication router, an ADSL router, or a contact Or a device for non-contact communication.
  • the network 932 connected to the communication unit 926 is configured by a wired or wireless network, such as the Internet, home LAN, infrared communication, visible light communication, broadcast, or satellite communication.
  • the above LAN is an abbreviation for Local Area Network.
  • the WUSB is an abbreviation for Wireless USB.
  • the above ADSL is an abbreviation for Asymmetric Digital Subscriber Line.
  • the functional configuration of the information processing apparatus described above can be expressed as follows.
  • the information processing apparatus includes the following key holding unit and interactive protocol execution unit.
  • the verifier when the secret key s i is multiplexed and the dialog protocol is executed, a part of the secret key is used, and which secret key s i is used in the dialog protocol.
  • the verifier even if the verifier impersonates a verifier and tries to obtain information on the secret key s i used for authentication, the verifier does not know which secret key s i is used in the interactive protocol. That is, even in a situation where the interactive protocol can be executed an arbitrary number of times, the information on the secret key s i does not leak from the prover, so that the level of security against active attacks can be guaranteed.
  • the information processing apparatus described above is an example of an authentication apparatus on the prover side and the verifier side.
  • the ROM 904, the RAM 906, the storage unit 920, and the removable recording medium 928 are examples of the key holding unit.
  • the secret key si and the public key yi held in the key holding unit are generated by the key generation algorithm Gen.
  • the prover algorithm P and the verifier algorithm V are examples of a dialogue protocol execution unit.
  • the function of the interactive protocol execution unit is realized by executing the prover algorithm P and the verifier algorithm V by the function of the CPU 902.
  • the functions realized by the prover algorithm P realize the functions of a challenge receiver, a challenge selector, an answer generator, an answer transmitter, and a message transmitter.
  • the function of the communication unit 926 is used for transmitting and receiving information.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Analysis (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

【課題】能動的攻撃に対する安全性レベルを実現すること。 【解決手段】L個(L≧2)の秘密鍵s(i=1~L)、及びn次多変数多項式F(n≧2)についてy=F(s)を満たすL個の公開鍵yを保持する鍵保持部と、(L-1)個のy=F(s)を満たす秘密鍵sを知っていることを証明するための対話プロトコルを検証者との間で実行する対話プロトコル実行部と、を備え、前記対話プロトコル実行部は、前記検証者との間で前記対話プロトコルを実行する際に、どの秘密鍵sを使用したかを当該検証者に知られないようにする、認証装置が提供される。

Description

認証装置、認証方法、及びプログラム
 本開示は、認証装置、認証方法、及びプログラムに関する。
 情報処理技術や通信技術の急速な発展に伴い、公文書、私文書を問わず、文書の電子化が急速に進んでいる。これに伴い、多くの個人や企業は、電子文書の安全管理に大きな関心を寄せている。こうした関心の高まりを受け、各方面で電子文書の盗聴や偽造等のタンパリング行為に対する安全性が盛んに議論されるようになってきた。電子文書の盗聴に対する安全性は、例えば、電子文書を暗号化することにより確保される。また、電子文書の偽造に対する安全性は、例えば、電子署名を利用することにより確保される。但し、暗号や電子署名には十分なタンパリング耐性が求められる。
 電子署名は、電子文書の作成者を特定するために利用される。そのため、電子署名は、電子文書の作成者しか生成できないようにすべきである。仮に、悪意ある第三者が同じ電子署名を生成できてしまうと、その第三者が電子文書の作成者に成りすますことができてしまう。つまり、悪意ある第三者により電子文書が偽造されてしまう。こうした偽造を防止するため、電子署名の安全性については様々な議論が交わされてきた。現在広く利用されている電子署名方式としては、例えば、RSA署名方式やDSA署名方式を利用する方式が知られている。
 RSA署名方式は、「大きな合成数に対する素因数分解の困難性(以下、素因数分解問題)」を安全性の根拠とする。また、DSA署名方式は、「離散対数問題に対する解の導出の困難性」を安全性の根拠とする。これらの根拠は、古典的なコンピュータを利用して素因数分解問題や離散対数問題を効率的に解くアルゴリズムが存在しないことに起因する。つまり、上記の困難性は、古典的なコンピュータにおける計算量的な困難性を意味する。しかしながら、量子コンピュータを用いると、素因数分解問題や離散対数問題に対する解答が効率的に算出されてしまうと言われている。
 現在利用されている電子署名方式や公開鍵認証方式の多くは、RSA署名方式やDSA署名方式と同様、素因数分解問題や離散対数問題の困難性に安全性の根拠をおいている。そのため、こうした電子署名方式や公開鍵認証方式は、量子コンピュータが実用化された場合に、その安全性が確保されないことになる。そこで、素因数分解問題や離散対数問題など、量子コンピュータにより容易に解かれてしまう問題とは異なる問題に安全性の根拠をおく新たな電子署名方式及び公開鍵認証方式が求められている。量子コンピュータにより容易に解くことが難しい問題としては、例えば、多変数多項式に対する解答の困難性(以下、多変数多項式問題)がある。
 その他にも、量子コンピュータにより解くことが困難とされている問題として、Syndrome Decoding問題、Constrained Linear Equation問題、Permuted Kernel問題、Permuted Perception問題、代数曲面上の求セクション問題などがある。
 これらの問題のうち、代数曲面上の求セクション問題以外の問題はNP困難であることが知られている。その応用例として、例えば、下記の非特許文献1、2には、Syndrome Decoding問題に基づく公開鍵認証方式が開示されている。また、下記の非特許文献3には、Permuted Kernel問題に基づく公開鍵認証方式が開示されている。これら以外にも、Constrained Linear Equations問題に基づく公開鍵認証方式やPermuted Perceptions問題に基づく公開鍵認証方式などが提案されている。
Jacques Stern, A New Identification Scheme Based on Syndrome Decoding, CRYPTO 1993, p13-21. Jacques Stern, A New Paradigm for Public Key Identification, IEEE Transactions on Information Theory, 1996, p13-21. Adi Shamir, An Efficient Identification Scheme Based on Permuted Kernels (Extended Abstract), CRYPTO 1989, p606-609.
 ここで、公開鍵認証方式の安全性レベルについて言及しておきたい。公開鍵認証方式の安全性レベルには、2つの安全性レベルが存在する。その1つは、受動的攻撃(passive attack)に対する安全性レベルである。もう1つは、能動的攻撃(active attack)に対する安全性レベルである。受動的攻撃に対する安全性レベルは、正当なプロトコルに従う証明者と検証者の対話を盗聴することのみが可能な攻撃者を想定した安全性のレベルである。一方、能動的攻撃に対する安全性レベルは、攻撃者自身が直接的に証明者と対話プロトコルを実行することができる状況を想定した安全性のレベルである。つまり、能動的攻撃に対する安全性レベルは、攻撃者が好きなように証明者と対話プロトコルを行なえるということが想定されているのである。
 上記の非特許文献1~3に記載されているような従来の公開鍵認証方式は、受動的攻撃に対する安全性レベルを保証している。しかし、これら従来の公開鍵認証方式は、並列的繰り返し構成を行なった場合、能動的攻撃に対する安全性レベルを確実に保証しているか否かが知られていない。なぜならば、並列的繰り返し構成を行なった場合、零知識性は保存されないということが一般に知られているからである。そのため、並列的繰り返し構成において能動的攻撃に対する安全性レベルを確実に保証するためには、さらに別の性質を保証する必要がある。
従来の公開鍵認証方式は、1組の鍵ペア(公開鍵y、秘密鍵s)を用いて「yについてy=F(s)となるsを知っていること」を証明者が検証者に対して証明する方式であった。そのため、検証で受理される対話を行った場合、「対話を行った証明者がsを用いた」という情報を検証者に知られてしまうことが避けられなかった。また、この形式の公開鍵認証方式の並列的繰り返し構成では、Fに衝突困難性の保証がない場合、能動的攻撃に対する安全性レベルを確実に保証しているか否かが知られていなかった。実際、前述の公開鍵認証方式で用いられている関数Fでは、衝突困難性は保証されていない。
 そこで、本開示は、上記問題に鑑みてなされたものであり、本開示の目的とするところは、関数Fに衝突困難性が保証されていなくても、対話プロトコルを並列的に繰り返し実行したとしても、能動的攻撃に対する安全性レベルを保証することが可能な、新規かつ改良された認証装置、認証方法、及びプログラムを提供することにある。
 上記課題を解決するために、本開示のある観点によれば、L個(L≧2)の秘密鍵si(i=1~L)、及びn次多変数多項式の組F(n≧2)についてy=F(s)を満たすL個の公開鍵yを保持する鍵保持部と、(L-1)個のy=F(s)を満たす秘密鍵siを知っていることを証明するための対話プロトコルを検証者との間で実行する対話プロトコル実行部と、を備え、前記対話プロトコル実行部は、前記検証者との間で前記対話プロトコルを実行する際に、どの秘密鍵sを使用したかを当該検証者に知られないようにする、認証装置が提供される。
 また、前記対話プロトコル実行部は、前記検証者からL個のチャレンジChを受信するチャレンジ受信部と、前記チャレンジ受信部により受信されたL個のチャレンジChの中から(L-1)個のチャレンジChを任意に選択するチャレンジ選択部と、前記秘密鍵sを用いて、前記チャレンジ選択部により選択された(L-1)個のチャレンジChのそれぞれに対する(L-1)個の回答Rspを生成する回答生成部と、前記回答生成部により生成された(L-1)個の回答Rspを前記検証者に送信する回答送信部と、を含んでいてもよい。
 また、前記対話プロトコル実行部は、前記検証者に対し、L個の前記秘密鍵sのそれぞれに対応するメッセージCmtを送信するメッセージ送信部をさらに含んでいてもよい。この場合、前記チャレンジ受信部は、前記メッセージ送信部により送信された各メッセージCmtに応じて、前記検証者によりk通り(k≧2)の検証パターンの中から選択された検証パターンを示すチャレンジChを受信する。
 また、前記メッセージCmtがCmt=(ci,1,…,ci,N)である場合、前記メッセージ送信部は、一方向性関数Hを用いて新たなメッセージCmt’=H(Cmt,…,Cmt)を算出して当該メッセージCmt’を前記検証者に送信し、前記回答送信部は、前記回答Rspと共に、当該回答Rspを利用しても前記検証者が復元できない前記メッセージCmtの要素を送信する、ように構成されていてもよい。
 また、前記鍵保持部は、前記L個の秘密鍵sのうち、1つの秘密鍵si0(1≦i≦L)を保持しないようにしてもよい。この場合、前記対話プロトコル実行部は、前記対話プロトコルの中で実行される前記秘密鍵si0に関する処理を偽証アルゴリズムに基づいて実行する。
 また、上記課題を解決するために、本開示の別の観点によれば、L個の秘密鍵s(i=1~L)、n次多変数多項式の組F(n≧2)についてy=F(s)を満たすL個の公開鍵yを保持する鍵保持部と、検証者からQ組(Q≧2)のL個のチャレンジCh (j)(j=1~Q)を受信するチャレンジ受信部と、前記チャレンジ受信部により受信されたQ組のL個のチャレンジCh (j)の中から1組のL個のチャレンジCh (j)を任意に選択するチャレンジ選択部と、前記秘密鍵sを用いて、前記チャレンジ選択部により選択されたL個のチャレンジCh (j)のそれぞれに対するL個の回答Rspを生成する回答生成部と、前記回答生成部により生成されたL個の回答Rspを前記検証者に送信する回答送信部と、を備える、認証装置が提供される。
 また、前記対話プロトコル実行部は、前記検証者に対し、L個の前記秘密鍵sのそれぞれに対応するメッセージCmtを送信するメッセージ送信部をさらに含んでいてもよい。この場合、前記チャレンジ受信部は、前記メッセージ送信部により送信された各メッセージCmtに応じて、前記検証者によりk通り(k≧2)の検証パターンの中から選択された検証パターンを示すチャレンジCh (j)を受信する。
 また、前記メッセージCmtがCmt=(ci,1,…,ci,N)である場合、前記メッセージ送信部は、一方向性関数Hを用いて新たなメッセージCmt’=H(Cmt,…,Cmt)を算出して当該メッセージCmt’を前記検証者に送信し、前記回答送信部は、前記回答Rspと共に、当該回答Rspを利用しても前記検証者が復元できない前記メッセージCmtの要素を送信する、ように構成されていてもよい。
 また、上記課題を解決するために、本開示の別の観点によれば、L個(L≧2)の秘密鍵s(i=1~L)、及びn次多変数多項式の組F(n≧2)についてy=F(s)を満たすL個の公開鍵yを生成する鍵生成ステップと、(L-1)個のy=F(s)を満たす秘密鍵sを知っていることを証明するための対話プロトコルを検証者との間で実行する対話プロトコル実行ステップと、を含み、前記対話プロトコル実行ステップでは、前記検証者との間で前記対話プロトコルを実行する際に、どの秘密鍵sを使用したかを当該検証者に知られないようにする、認証方法が提供される。
 また、上記課題を解決するために、本開示の別の観点によれば、L個(L≧2)の秘密鍵s(i=1~L)、及びn次多変数多項式の組F(n≧2)についてy=F(s)を満たすL個の公開鍵yを保持する鍵保持機能と、(L-1)個のy=F(s)を満たす秘密鍵sを知っていることを証明するための対話プロトコルを検証者との間で実行する対話プロトコル実行機能と、をコンピュータに実現させるためのプログラムであり、前記対話プロトコル実行機能は、前記検証者との間で前記対話プロトコルを実行する際に、どの秘密鍵sを使用したかを当該検証者に知られないようにする、プログラムが提供される。
 また、上記課題を解決するために、本開示の別の観点によれば、L個の秘密鍵s(i=1~L)、n次多変数多項式の組F(n≧2)についてy=F(s)を満たすL個の公開鍵yを生成する鍵生成ステップと、検証者からQ組(Q≧2)のL個のチャレンジCh (j)(j=1~Q)を受信するチャレンジ受信ステップと、前記チャレンジ受信ステップで受信されたQ組のL個のチャレンジCh (j)の中から1組のL個のチャレンジCh (j)を任意に選択するチャレンジ選択ステップと、前記秘密鍵sを用いて、前記チャレンジ選択ステップで選択されたL個のチャレンジCh (j)のそれぞれに対するL個の回答Rspを生成する回答生成ステップと、前記回答生成ステップで生成されたL個の回答Rspを前記検証者に送信する回答送信ステップと、を含む、認証方法が提供される。
 また、上記課題を解決するために、本開示の別の観点によれば、L個の秘密鍵s(i=1~L)、n次多変数多項式の組F(n≧2)についてy=F(s)を満たすL個の公開鍵yを保持する鍵保持機能と、検証者からQ組(Q≧2)のL個のチャレンジCh (j)(j=1~Q)を受信するチャレンジ受信機能と、前記チャレンジ受信機能により受信されたQ組のL個のチャレンジCh (j)の中から1組のL個のチャレンジCh (j)を任意に選択するチャレンジ選択機能と、前記秘密鍵sを用いて、前記チャレンジ選択機能により選択されたL個のチャレンジCh (j)のそれぞれに対するL個の回答Rspを生成する回答生成機能と、前記回答生成機能により生成されたL個の回答Rspを前記検証者に送信する回答送信機能と、をコンピュータに実現させるためのプログラムが提供される。また、上記課題を解決するために、本開示の別の観点によれば、上記のプログラムが記録された、コンピュータにより読み取り可能な記録媒体が提供される。
 以上説明したように本開示によれば、対話プロトコルを並列的に繰り返し実行したとしても、能動的攻撃に対する安全性レベルを保証することが可能になる。
公開鍵認証方式のアルゴリズム構成について説明するための説明図である。 nパスの公開鍵認証方式について説明するための説明図である。 SSH10a公開鍵認証方式の対話プロトコルについて説明するための説明図である。 SSH10b公開鍵認証方式の対話プロトコルについて説明するための説明図である。 対話プロトコルの直列的繰り返し構成について説明するための説明図である。 対話プロトコルの並列的繰り返し構成について説明するための説明図である。 SSH10a公開鍵認証方式の対話プロトコルに対する偽証アルゴリズムについて説明するための説明図である。 SSH10b公開鍵認証方式の対話プロトコルに対する偽証アルゴリズムについて説明するための説明図である。 SSH10a公開鍵認証方式の対話プロトコルに対する本手法#1の適用方法について説明するための説明図である。 SSH10a公開鍵認証方式の対話プロトコルに対する本手法#1の適用方法(変形例1)について説明するための説明図である。 SSH10a公開鍵認証方式の対話プロトコルに対する本手法#1の適用方法(変形例2)について説明するための説明図である。 SSH10a公開鍵認証方式の対話プロトコルに対する本手法#1の適用方法(変形例3)について説明するための説明図である。 SSH10b公開鍵認証方式の対話プロトコルに対する本手法#1の適用方法について説明するための説明図である。 SSH10b公開鍵認証方式の対話プロトコルに対する本手法#1の適用方法(変形例)について説明するための説明図である。 SSH10a公開鍵認証方式の対話プロトコルに対する本手法#2の適用方法について説明するための説明図である。 SSH10a公開鍵認証方式の対話プロトコルに対する本手法#2の適用方法(変形例)について説明するための説明図である。 SSH10b公開鍵認証方式の対話プロトコルに対する本手法#2の適用方法について説明するための説明図である。 SSH10b公開鍵認証方式の対話プロトコルに対する本手法#2の適用方法(変形例)について説明するための説明図である。 SSH10a公開鍵認証方式の対話プロトコルにおける通信量の削減方法について説明するための説明図である。 SSH10b公開鍵認証方式の対話プロトコルにおける通信量の削減方法について説明するための説明図である。 本実施形態に係る対話プロトコルを実現することが可能な情報処理装置のハードウェア構成例について説明するための説明図である。
 以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
 [説明の流れについて]
 ここで、以下に記載する本開示の実施形態に関する説明の流れについて簡単に述べる。まず、図1を参照しながら、公開鍵認証方式のアルゴリズム構成について説明する。次いで、図2を参照しながら、nパスの公開鍵認証方式について説明する。次いで、図3を参照しながら、SSH10a公開鍵認証方式の対話プロトコルについて説明する。次いで、図4を参照しながら、SSH10b公開鍵認証方式の対話プロトコルについて説明する。次いで、図5、図6を参照しながら、対話プロトコルの繰り返し構成について説明する。この中で、能動的攻撃に対する安全性レベルについて簡単に説明する。
 次いで、図7を参照しながら、SSH10a公開鍵認証方式の対話プロトコルに対する偽証アルゴリズムについて説明する。次いで、図8を参照しながら、SSH10b公開鍵認証方式の対話プロトコルに対する偽証アルゴリズムについて説明する。次いで、図9~図12を参照しながら、本開示の第1実施形態に係る手法(本手法#1)をSSH10a公開鍵認証方式の対話プロトコルに適用する方法について説明する。次いで、図13、図14を参照しながら、本手法#1をSSH10b公開鍵認証方式の対話プロトコルに適用する方法について説明する。
 次いで、図15、図16を参照しながら、本開示の第2実施形態に係る手法(本手法#2)をSSH10a公開鍵認証方式の対話プロトコルに適用する方法について説明する。次いで、図17、図18を参照しながら、本手法#2をSSH10b公開鍵認証方式の対話プロトコルに適用する方法について説明する。次いで、図19、図20を参照しながら、本実施形態に係る対話プロトコルにおける通信量の削減方法について説明する。次いで、図21を参照しながら、本実施形態に係る対話プロトコルを実現することが可能な情報処理装置のハードウェア構成例について説明する。最後に、同実施形態の技術的思想について纏め、当該技術的思想から得られる作用効果について簡単に説明する。
 (説明項目)
 1:はじめに
   1-1:公開鍵認証方式のアルゴリズム構成
   1-2:nパスの公開鍵認証方式について
   1-3:SSH10a公開鍵認証方式の対話プロトコル
   1-4:SSH10b公開鍵認証方式の対話プロトコル
   1-5:対話プロトコルの繰り返し構成
   1-6:SSH10a公開鍵認証方式に対する偽証アルゴリズム
   1-7:SSH10b公開鍵認証方式に対する偽証アルゴリズム
 2:第1実施形態(本手法#1)
   2-1:概要
   2-2:SSH10a公開鍵認証方式への適用
   2-3:SSH10a公開鍵認証方式への適用(変形例1)
   2-4:SSH10a公開鍵認証方式への適用(変形例2)
   2-5:SSH10a公開鍵認証方式への適用(変形例3)
   2-6:SSH10b公開鍵認証方式への適用
   2-7:SSH10b公開鍵認証方式への適用(変形例)
 3:第2実施形態(本手法#2)
   3-1:概要
   3-2:SSH10a公開鍵認証方式への適用
   3-3:SSH10a公開鍵認証方式への適用(変形例)
   3-4:SSH10b公開鍵認証方式への適用
   3-5:SSH10b公開鍵認証方式への適用(変形例)
 4:補足
   4-1:方式の拡張について
   4-2:非対話型の公開鍵認証方式について
   4-3:通信量の削減方法について
 5:ハードウェア構成
 6:まとめ
 <1:はじめに>
 はじめに、本開示に係る実施形態について詳細に説明するに先立ち、一般的な公開鍵認証方式のアルゴリズム構成、及びnパスの公開鍵認証方式について簡単に説明する。
 [1-1:公開鍵認証方式のアルゴリズム構成]
 まず、図1を参照しながら、公開鍵認証方式のアルゴリズム構成について説明する。図1は、公開鍵認証方式のアルゴリズム構成について説明するための説明図である。
 (概要)
 公開鍵認証方式とは、ある人(証明者)が、公開鍵pk及び秘密鍵skを利用して、他の人(検証者)に本人であることを納得させるための認証方式である。例えば、証明者Aの公開鍵pkは、検証者に公開される。一方、証明者Aの秘密鍵skは、証明者により秘密に管理される。公開鍵認証方式では、公開鍵pkに対応する秘密鍵skを知る者が証明者A本人であるとみなされる。
 証明者Aが検証者Bに対して本人であることを証明しようとする場合、証明者Aは、検証者Bと対話プロトコルを実行して、自身が公開鍵pkに対応する秘密鍵skを知っていることを証明すればよい。そして、対話プロトコルにより証明者Aが秘密鍵skを知っていることが検証者Bにより証明された場合、証明者Aの正当性(本人であること)が証明される。
 なお、公開鍵認証方式の安全性を確保するには、次に示す2つの条件が求められる。
 1つ目の条件は、対話プロトコルを実行した際に秘密鍵skを持たない偽証者により偽証が成立してしまう確率を限りなく小さくすることである。この1つ目の条件が成り立つことを「健全性」と呼ぶ。つまり、健全性を有する対話プロトコルにおいては、秘密鍵skを持たない偽証者により、無視できない確率で偽証が成立することはないと言い換えられる。2つ目の条件は、対話プロトコルを実行したとしても、証明者Aが有する秘密鍵skの情報が検証者Bに一切漏れることがないようにすることである。この2つ目の条件が成り立つことを「零知識性」と呼ぶ。
 上記の健全性と零知識性を有する対話プロトコルを利用することにより、公開鍵認証方式の安全性が確保される。
 (モデル)
 公開鍵認証方式のモデルには、図1に示すように、証明者と検証者という2つのエンティティが存在する。証明者は、鍵生成アルゴリズムGenを用いて、証明者固有の秘密鍵skと公開鍵pkの組を生成する。次いで、証明者は、鍵生成アルゴリズムGenを用いて生成した秘密鍵skと公開鍵pkの組を利用して検証者と対話プロトコルを実行する。このとき、証明者は、証明者アルゴリズムPを利用して対話プロトコルを実行する。上記の通り、対話プロトコルにおいて、証明者は、証明者アルゴリズムPを利用して、秘密鍵skを保有していることを検証者に証明する。
 一方、検証者は、検証者アルゴリズムVを利用して対話プロトコルを実行し、証明者が公開している公開鍵に対応する秘密鍵を、その証明者が保有しているか否かを検証する。つまり、検証者は、証明者が公開鍵に対応する秘密鍵を保有しているか否かを検証するエンティティである。このように、公開鍵認証方式のモデルは、証明者と検証者という2つのエンティティ、及び、鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムVという3つのアルゴリズムにより構成される。
 なお、以下の説明において、「証明者」「検証者」という表現を用いるが、これらの表現はあくまでもエンティティを意味するものである。従って、鍵生成アルゴリズムGen、証明者アルゴリズムPを実行する主体は、「証明者」のエンティティに対応する情報処理装置である。同様に、検証者アルゴリズムVを実行する主体は、情報処理装置である。これら情報処理装置のハードウェア構成は、例えば、図21に示した通りである。つまり、鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムVは、ROM904、RAM906、記憶部920、リムーバブル記録媒体928などに記録されたプログラムに基づいてCPU902により実行される。
 (鍵生成アルゴリズムGen)
 鍵生成アルゴリズムGenは、証明者により利用される。そして、鍵生成アルゴリズムGenは、証明者に固有の秘密鍵skと公開鍵pkの組を生成するアルゴリズムである。鍵生成アルゴリズムGenにより生成された公開鍵pkは公開される。そして、公開された公開鍵pkは、検証者により利用される。一方、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者が秘密に管理する。そして、秘密に管理される秘密鍵skは、検証者に対して公開鍵pkに対応する秘密鍵skを保有していることを証明するために利用される。形式的に、鍵生成アルゴリズムGenは、セキュリティパラメータ1λ(λは0以上の整数)を入力とし、秘密鍵skと公開鍵pkを出力するアルゴリズムとして、下記の式(1)のように表現される。
Figure JPOXMLDOC01-appb-M000001
 (証明者アルゴリズムP)
 証明者アルゴリズムPは、証明者により利用される。そして、証明者アルゴリズムPは、公開鍵pkに対応する秘密鍵skを保有していることを証明するアルゴリズムである。証明者アルゴリズムPは、証明者の秘密鍵skと公開鍵pkを入力とし、検証者との対話プロトコルを実行するアルゴリズムとして定義される。
 (検証者アルゴリズムV)
 検証者アルゴリズムVは、検証者により利用される。そして、検証者アルゴリズムVは、対話プロトコルの中で、公開鍵pkに対応する秘密鍵skを証明者が保有しているか否かを検証するアルゴリズムである。検証者アルゴリズムVは、証明者の公開鍵pkを入力とし、証明者との間で対話プロトコルを実行した後、0又は1(1bit)を出力するアルゴリズムとして定義される。なお、出力0の場合には証明者が不正なものであるとし、出力1の場合には証明者が正当なものであるとする。
 (補足)
 上記の通り、公開鍵認証方式は、安全性を確保するため、健全性と零知識性という2つの条件を満たすことが求められる。しかし、証明者が秘密鍵skを保有していることを証明者に証明させるためには、証明者が秘密鍵skに依存した手続きを実行し、その結果を検証者に通知して、その通知内容に基づく検証を検証者に実行させる必要がある。秘密鍵skに依存した手続きを実行するのは、健全性を担保するために必要である。一方で、この手続きの結果を検証者に通知しても、秘密鍵skの情報が一切検証者に漏れないようにする必要がある。そのため、これらの要件を満たすように、上記の鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムVが設計される。
 以上、公開鍵認証方式のアルゴリズム構成について説明した。
 [1-2:nパスの公開鍵認証方式について]
 次に、図2を参照しながら、nパスの公開鍵認証方式について説明する。図2は、nパスの公開鍵認証方式について説明するための説明図である。
 上記の通り、公開鍵認証方式は、対話プロトコルの中で、証明者が公開鍵pkに対応する秘密鍵skを保有していることを検証者に証明する認証方式である。また、公開鍵認証方式の安全性を担保するため、健全性と零知識性という2つの条件を満たす必要がある。そのため、対話プロトコルの中では、図2に示すように、証明者と検証者の双方がそれぞれ処理を実行しながら、証明者と検証者との間でn回の情報交換が行われる。
 nパスの公開鍵認証方式の場合、証明者アルゴリズムPを用いて証明者により処理(Step.1)が実行され、情報Tが検証者に送信される。次いで、検証者アルゴリズムVを用いて検証者により処理(Step.2)が実行され、情報Tが証明者に送信される。同様にして処理(Step.3)~(Step.n)が実行され、情報T,…,Tが送信され、処理(Step.n+1)が実行される。このように、情報がn回送受信される対話プロトコルに基づく公開鍵認証方式のことを「nパス」の公開鍵認証方式と呼ぶ。
 以上、nパスの公開鍵認証方式について説明した。
 [1-3:SSH10a公開鍵認証方式の対話プロトコル]
 次に、図3を参照しながら、SSH10a公開鍵認証方式の対話プロトコルについて説明する。図3は、SSH10a公開鍵認証方式の対話プロトコルについて説明するための説明図である。なお、SSH10a公開鍵認証方式とは、本件発明者(作本、白井、樋渡)により考案された多次多変数連立方程式の求解問題に基づく公開鍵認証方式の一つである。また、このSSH10a公開鍵認証方式は、3パスの公開鍵認証方式の一例である。
 なお、多次多変数連立方程式の求解問題とは、環K上のm本のn変数多次多項式f(x,…,x),…,f(x,…,x)と、ベクトルy∈Kが与えられたとき、(f(s,…,s),…,f(s,…,s))=yとなるベクトル(s,…,s)∈Kを求める問題である。2次以上の多変数連立方程式の求解問題は、NP困難問題と呼ばれ、解くことが非常に困難な問題のクラスに属する。
 さて、SSH10a公開鍵認証方式の対話プロトコルは、鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムVにより構成される。以下、各アルゴリズムの内容について説明する。
 (鍵生成アルゴリズムGen)
 まず、鍵生成アルゴリズムGenの構成について説明する。鍵生成アルゴリズムGenは、環K上で定義されるm本のn変数2次多項式f(x,…,x),…,f(x,…,x)と、ベクトルs=(s,…,s)∈Kを生成する。次に、鍵生成アルゴリズムGenは、y=(y,…,y)←(f(s),…,f(s))を計算する。そして、鍵生成アルゴリズムGenは、(f,…,f,y)を公開鍵pkに設定し、sを秘密鍵に設定する。なお、以下では、n変数のベクトル(x,…,x)をxと表記し、m本のn変数2次多項式(f(x),…,f(x))をF(x)と表記する。
 (証明者アルゴリズムP、検証者アルゴリズムV)
 次に、図3を参照しながら、証明者アルゴリズムP、検証者アルゴリズムVの構成について説明する。SSH10a公開鍵認証方式の対話プロトコルは、「証明者がy=F(s)を満たすsを知っていること」をsの情報を検証者に一切漏らさずに、検証者に証明させるものである。なお、鍵生成アルゴリズムGenにより生成された公開鍵pkは、証明者と検証者の間で共有されているものとする。また、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者により秘密に管理されているものとする。
 ここで、2次多項式の性質について言及しておきたい。
 m本のn変数2次多項式の組(f(x),…,f(x))は、下記の式(2)のように表現することができる。但し、x=(x,…,x)は、n個の変数を表すベクトルである。また、A,…,Aは、n×n行列である。さらに、b,…,bはn×1ベクトルである。そして、cは、m×1ベクトルである。
Figure JPOXMLDOC01-appb-M000002
 この表現を用いると、多項式の組Fは、下記の式(3)及び式(4)のように表現することができる。この表現が成り立つことは、下記の式(5)から容易に確認することができる。
Figure JPOXMLDOC01-appb-M000003
Figure JPOXMLDOC01-appb-I000004
Figure JPOXMLDOC01-appb-I000005
 このようにF(x+x)をxに依存する部分と、xに依存する部分と、x,xの両方に依存する部分の3つに分けたとき、xとxの両方に依存する部分F(x,x)は、x,xについて双線形写像になる。なお、以下で説明するSSH10a公開鍵認証方式は、上記のような2次多項式の性質を利用したものである。
 再びSSH10a公開鍵認証方式の対話プロトコル(図3を参照)における証明者アルゴリズムP、検証者アルゴリズムVの説明に戻る。
 Step.1:
 まず、証明者アルゴリズムPは、任意に数wを選択する。次いで、証明者アルゴリズムPは、擬似乱数生成器Gに数wを適用してベクトルr∈Kと数w’を生成する。つまり、証明者アルゴリズムPは、(r,w’)←G(w)を計算する。次いで、証明者アルゴリズムPは、擬似乱数生成器Gに数w’を適用して2つのベクトルt∈K、e∈Kを生成する。つまり、証明者アルゴリズムPは、(t,e)←G(w’)を計算する。次いで、証明者アルゴリズムPは、z←s-rを計算する。この計算は、秘密鍵sをベクトルrによりマスクする操作に相当する。さらに、証明者アルゴリズムPは、t’←r+tを計算する。次いで、証明者アルゴリズムPは、e’←F(r)-c+eを計算する。
 次いで、証明者アルゴリズムPは、上記の式(3)及び式(4)に示した関数Fの定義に基づいてF(z,t)を算出し、F(z,t)+eとzのハッシュ値cを生成する。つまり、証明者アルゴリズムPは、c←H(F(z,t)+e,z)を計算する。また、証明者アルゴリズムPは、数w’のハッシュ値cを生成する。つまり、証明者アルゴリズムPは、c←H(w’)を計算する。さらに、証明者アルゴリズムPは、2つのベクトルt’とe’のハッシュ値cを生成する。つまり、証明者アルゴリズムPは、c←H(t’,e’)を計算する。
 次いで、証明者アルゴリズムPは、St←(F,y,s,r,t,e,z,t’,e’)及びCmt←(c,c,c)を設定する。そして、Step.1で生成されたCmtは、検証者(検証者アルゴリズムV)に送られる。なお、上記のH(…)、H(…)、H(…)は、ハッシュ関数である。また、Step.1における上記の操作を(Cmt;St)←Pa,1(F,y,s;r,t,e)と表現することにする。
 Step.2:
 Cmtを受け取った検証者アルゴリズムVは、3つの検証パターンのうち、どの検証パターンを利用するかを選択する。そして、検証者アルゴリズムVは、選択した検証パターンを表すチャレンジCh∈{0,1,2}を証明者(証明者アルゴリズムP)に送る。
 Step.3:
 Chを受け取った証明者アルゴリズムPは、検証者アルゴリズムVから受け取ったチャレンジChに応じて検証者アルゴリズムVへと送り返す回答Rspを生成する。もしCh=0の場合、証明者アルゴリズムPは、回答Rsp←(r,t,e)を生成する。また、Ch=1の場合、証明者アルゴリズムPは、回答Rsp=(z,t,e)を生成する。そして、Ch=2の場合、証明者アルゴリズムPは、回答Rsp=(z,t’,e’)を生成する。なお、Step.3における上記の操作をRsp←Pa,2(Ch;St)と表現することにする。また、Step.3で生成されたRspは、検証者(検証者アルゴリズムV)に送られる。
 Step.4:
 Rspを受け取った検証者アルゴリズムVは、受け取ったRspに対して次のいずれかの検証を実行する。
 Ch=0の場合、検証者アルゴリズムVは、(r”,t”,e”)←Rspを実行する。次いで、検証者アルゴリズムVは、c=H(t”,e”)及びc=H(r”+t”,F(r”)-c+e”)が成り立つか否かを検証する。
 Ch=1の場合、検証者アルゴリズムVは、(z”,t”,e”)←Rspを実行する。次いで、検証者アルゴリズムVは、c=H(F(z”,t”)+e”,z”)及びc=H(t”,e”)が成り立つか否かを検証する。
 Ch=2の場合、検証者アルゴリズムVは、(z”,t''',e''')←Rspを実行する。次いで、検証者アルゴリズムVは、c=H(F(z”)+F(z”,t''')+e'''-y,z”)及びc=H(t''',e''')が成り立つか否かを検証する。
 なお、Step.4における検証の操作を0/1←Dec(F,y;Cmt,Ch,Rsp)と表現することにする。この操作において、出力1は検証の成功を示し、出力0は検証の失敗を示すものとする。
 以上、SSH10a公開鍵認証方式における証明者アルゴリズムP及び検証者アルゴリズムVの処理内容について説明した。なお、上記の方式ではハッシュ関数H,H,Hを用いてc,c,cを計算しているが、ハッシュ関数H,H,Hの代わりにコミットメント関数COMを用いてもよい。また、本稿を通して、ハッシュ関数を利用している箇所をコミットメント関数COMに置き換えてもよい。
 コミットメント関数COMは、文字列Sと乱数ρの2つを引数にとる関数である。コミットメント関数の例としては、Shai HaleviとSilvio Micaliによって国際会議CRYPTO1996で発表された方式などがある。コミットメント関数を用いる場合、c,c,cを計算する前に乱数ρ,ρ,ρを用意し、ハッシュ関数H(・),H(・),H(・)を適用する代わりにコミットメント関数COM(・,ρ),COM(・,ρ),COM(・,ρ)を適用してc,c,cを生成する。また、ρは回答に含めて証明者アルゴリズムPから検証者アルゴリズムVへと送られる。
 [1-4:SSH10b公開鍵認証方式の対話プロトコル]
 次に、図4を参照しながら、SSH10b公開鍵認証方式の対話プロトコルについて説明する。図4は、SSH10b公開鍵認証方式の対話プロトコルについて説明するための説明図である。なお、SSH10b公開鍵認証方式とは、本件発明者(作本、白井、樋渡)により考案された多次多変数連立方程式の求解問題に基づく公開鍵認証方式の一つである。また、このSSH10b公開鍵認証方式は、5パスの公開鍵認証方式の一例である。
 SSH10b公開鍵認証方式の対話プロトコルは、SSH10a公開鍵認証方式の対話プロトコルと同様に、鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムVにより構成される。以下、各アルゴリズムの内容について説明する。
 (鍵生成アルゴリズムGen)
 まず、鍵生成アルゴリズムGenの構成について説明する。鍵生成アルゴリズムGenは、環K上で定義されるm本のn変数2次多項式f(x,…,x),…,f(x,…,x)と、ベクトルs=(s,…,s)∈Kを生成する。次に、鍵生成アルゴリズムGenは、y=(y,…,y)←(f(s),…,f(s))を計算する。そして、鍵生成アルゴリズムGenは、(f,…,f,y)を公開鍵pkに設定し、sを秘密鍵に設定する。なお、以下では、n変数のベクトル(x,…,x)をxと表記し、m本のn変数2次多項式(f(x),…,f(x))をF(x)と表記する。
 (証明者アルゴリズムP、検証者アルゴリズムV)
 次に、図4を参照しながら、証明者アルゴリズムP、検証者アルゴリズムVの構成について説明する。SSH10b公開鍵認証方式の対話プロトコルは、「証明者がy=F(s)を満たすsを知っていること」をsの情報を検証者に一切漏らさずに、検証者に証明させるものである。なお、鍵生成アルゴリズムGenにより生成された公開鍵pkは、証明者と検証者の間で共有されているものとする。また、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者により秘密に管理されているものとする。
 SSH10b公開鍵認証方式の対話プロトコルは、図4に示すStep.1~Step.6の処理ステップにより構成される。以下、各ステップの処理について説明する。
 Step.1:
 まず、証明者アルゴリズムPは、任意に数wを選択する。次いで、証明者アルゴリズムPは、擬似乱数生成器Gに数wを適用してベクトルr∈K、t∈K、e∈Kを生成する。つまり、証明者アルゴリズムPは、(r,t,e)←G(w)を計算する。次いで、証明者アルゴリズムPは、z←s-rを計算する。この計算は、秘密鍵sをベクトルrによりマスクする操作に相当する。
 次いで、証明者アルゴリズムPは、F(z,t)+eとzのハッシュ値cを生成する。つまり、証明者アルゴリズムPは、c←H(F(z,t)+e,z)を計算する。また、証明者アルゴリズムPは、ベクトルr、t、eのハッシュ値cを生成する。つまり、証明者アルゴリズムPは、c←H(r,t,e)を計算する。なお、上記のH(…)、H(…)は、ハッシュ関数である。
 次いで、証明者アルゴリズムPは、St←(F,y,s,r,t,e,z)及びCmt←(c,c)を設定する。そして、Step.1で生成されたCmtは、検証者(検証者アルゴリズムV)に送られる。なお、上記のH(…)、H(…)は、ハッシュ関数である。また、Step.1における上記の操作を(Cmt;St)←Pb,1(F,y,s;r,t,e)と表現することにする。
 Step.2:
 Cmtを受け取った検証者アルゴリズムVは、q通り存在する環Kの元から1つの乱数αを選択する。そして、検証者アルゴリズムVは、チャレンジCh=αを証明者(証明者アルゴリズムP)に送る。
 Step.3:
 Chを受け取った証明者アルゴリズムPは、t’←αr+tを計算する。さらに、証明者アルゴリズムPは、e’←α(F(r)-c)+eを計算する。そして、証明者アルゴリズムPは、St←(St,Ch,t’,e’)及びCmt←(t’,e’)を設定する。また、証明者アルゴリズムPは、Cmtを検証者(検証者アルゴリズムV)に送る。なお、Step.3における上記の操作を(Cmt;St)←Pb,2(Ch;St)と表現することにする。
 Step.4:
 Cmtを受け取った検証者アルゴリズムVは、2つの検証パターンのうち、どちらの検証パターンを利用するかを選択する。そして、検証者アルゴリズムVは、選択した検証パターンを表すチャレンジCh{0,1}を証明者(証明者アルゴリズムP)に送る。
 Step.5:
 Chを受け取った証明者アルゴリズムPは、検証者アルゴリズムVから受けたチャレンジChに応じて検証者(検証者アルゴリズムV)に送り返す回答Rspを次のようにして生成する。Ch=0の場合、証明者アルゴリズムPは、Rsp←rに設定する。Ch=1の場合、証明者アルゴリズムPは、Rsp←zに設定する。そして、証明者アルゴリズムPは、回答Rspを検証者(検証者アルゴリズムV)に送る。なお、Step.5における上記の操作をRsp←Pb,3(Ch;St)と表現することにする。
 Step.6:
 回答Rspを受け取った検証者アルゴリズムVは、証明者(証明者アルゴリズムP)から受け取った回答Rspを利用して以下の検証処理を実行する。
 Ch=0の場合、検証者アルゴリズムVは、r”←Rspとして、c=H(r”,t’-αr”,e’-α(F(r”)-c))が成り立つか否かを検証する。
 Ch=1の場合、検証者アルゴリズムVは、z”←Rspとして、c=H(α(F(z”)-y)+F(z”,t’)+e’,z”)が成り立つか否かを検証する。
 なお、Step.6における検証の操作を0/1←Dec(F,y;Cmt,Ch,Cmt,Ch,Rsp)と表現することにする。この操作において、出力1は検証の成功を示し、出力0は検証の失敗を示すものとする。
 以上、SSH10b公開鍵認証方式における証明者アルゴリズムP及び検証者アルゴリズムVの処理内容について説明した。なお、上記の方式ではハッシュ関数H,Hを用いてc,cを計算しているが、ハッシュ関数H,Hの代わりにコミットメント関数COMを用いてもよい。
 [1-5:対話プロトコルの繰り返し構成]
 さて、上記のSSH10a公開鍵認証方式の対話プロトコルを適用すれば、偽証が成功する確率を2/3以下に抑制することができる。従って、この対話プロトコルを2回実行すれば、偽証が成功する確率を(2/3)以下に抑制することができる。同様に、この対話プロトコルをN回実行すると、偽証が成功する確率は(2/3)となり、Nを十分に大きい数(例えば、N=140)にすれば、偽証が成功する確率は無視できる程度に小さくなる。
 同様に、上記のSSH10b公開鍵認証方式の対話プロトコルを適用すれば、偽証が成功する確率を(1/2+1/2q)以下に抑制することができる。従って、この対話プロトコルを2回実行すれば、偽証が成功する確率を(1/2+1/2q)以下に抑制することができる。同様に、この対話プロトコルをN回実行すると、偽証が成功する確率は(1/2+1/2q)となり、Nを十分に大きい数(例えば、N=80)にすれば、偽証が成功する確率は無視できる程度に小さくなる。
 なお、SSH10a公開鍵認証方式、SSH10b公開鍵認証方式に限らず、上記の非特許文献1~3などに開示されている公開鍵認証方式においても同様であるが、対話プロトコルを1回実行した場合の偽証成功確率が十分に小さくない場合、対話プロトコルを繰り返し実行して偽証成功確率を下げる必要がある。対話プロトコルを繰り返し実行する方法としては、図5に示した直列的繰り返し構成と、図6に示した並列的繰り返し構成がある。
 直列的繰り返し構成は、図5に示すように、対話プロトコルを1回実行し、1回目が終了した後に2回目を、2回目が終了した後に3回目を実行するといった形で、逐次的に対話プロトコルを実行する方法である。一方、並列的繰り返し構成は、図6に示すように、N回分の1パス目のメッセージm1,1,…,mN,1を同時に送信し、次にN回分の2パス目のメッセージm1,2,…,mN,2を同時に送信し、次にN回分の3パス目のメッセージm1,3,…,mN,3を同時に送信するといった形で、各パスにおいてN回分のメッセージを同時送信する方法である。
 さて、上記の非特許文献1~3に開示されている公開鍵認証方式、SSH10a公開鍵認証方式、及びSSH10b公開鍵認証方式は、受動的攻撃に対する安全性レベルを保証している。しかし、これらの公開鍵認証方式は、並列的繰り返し構成を行なった場合、能動的攻撃に対する安全性レベルを確実に保証しているか否かが知られていない。これらの公開鍵認証方式は、1組の鍵ペア(公開鍵y、秘密鍵s)を用いて「yについてy=F(s)となるsを知っていること」を証明者が検証者に対して証明する方式であった。
 そのため、検証で受理される対話を行った場合、「対話を行った証明者がsを用いた」という情報を検証者に知られてしまうことが避けられなかった。また、これらの方式で用いるFは衝突困難性が保証されてない。その結果、これらの公開鍵認証方式は、並列的繰り返し構成を行なった場合、能動的攻撃に対する安全性レベルを確実に保証しているか否かが知られていなかったのである。特に、これらの公開鍵認証方式を上記の並列的繰り返し構成により実施する場合には能動的攻撃に対する安全性レベルを保証するための手立てが知られていなかった。
 そこで、本件発明者は、これらの公開鍵認証方式を上記の並列的繰り返し構成により実施する際に能動的攻撃に対する安全性レベルが保証されるようにする仕組みを考案した。この仕組み(本手法#1、#2)については、後段において、SSH10a公開鍵認証方式、SSH10b公開鍵認証方式を例に挙げて詳細に説明する。
 [1-6:SSH10a公開鍵認証方式に対する偽証アルゴリズム]
 ここで、図7を参照しながら、SSH10a公開鍵認証方式(1回の対話プロトコル)において2/3の確率で成功する偽証アルゴリズムについて考えてみたい。図7は、SSH10a公開鍵認証方式(1回の対話プロトコル)において2/3の確率で成功する偽証アルゴリズムについて説明するための説明図である。この偽証アルゴリズムは、偽証者が検証者に対して「y=F(s)を満たすsを知っているふり」をするアルゴリズムである。但し、この偽証アルゴリズムを適用しても、1/3の確率で偽証が失敗する。
 Step.1:
 まず、偽証者(偽証アルゴリズム)は、ベクトルs,r,t∈K、e∈Kを生成する。次いで、偽証アルゴリズムは、Ch∈{0,1,2}を任意に選択する。このChは、偽証アルゴリズムが回答できない検証パターンに対応する。なお、ここで用いるsは正当な秘密鍵でない。しかし、証明者(証明者アルゴリズムP)は、Ch以外の検証パターンならば正当な秘密鍵を利用せずに正しく回答することができる。
 次に、偽証アルゴリズムは、z←s-r、t’←r+tを計算する。また、偽証アルゴリズムは、Ch=0の場合、e’←y-F(s)+F(r)-c+eを計算する。一方、Ch=1,2の場合、偽証アルゴリズムは、e’←F(r)-c+eを計算する。次いで、偽証アルゴリズムは、Ch=0,2の場合、c←H(F(z,t)+e,z)を計算する。一方、Ch=1の場合、偽証アルゴリズムは、c←H(F(z)+F(z,t’)+e’-y,z)を計算する。
 次いで、偽証アルゴリズムは、c←H(t,e)、c←H(t’,e’)を計算する。そして、偽証アルゴリズムは、St←(Ch,F,y,s,r,t,e,z,t’,e’)及びCmt←(c,c,c)を設定する。次いで、偽証アルゴリズムは、Cmtを検証者(検証者アルゴリズムV)に送る。なお、Step.1における上記の操作を(Cmt;St)←Ma,1(F,y;Ch,s,r,t,e)と表現することにする。
 Step.2:
 Cmtを受け取った検証者アルゴリズムVは、3つの検証パターンのうち、どの検証パターンを利用するかを選択する。そして、検証者アルゴリズムVは、選択した検証パターンを表すチャレンジCh∈{0,1,2}を偽証者(偽証アルゴリズム)に送る。
 Step.3:
 Chを受け取った偽証アルゴリズムは、検証者アルゴリズムVから受け取ったチャレンジChに応じて検証者アルゴリズムVへと送り返す回答Rspを生成する。なお、Ch=Chの場合、偽証アルゴリズムは、エラーを出力して対話プロトコルを終了する。Ch≠ChであってCh=0の場合、偽証アルゴリズムは、回答Rsp←(r,t,e)を生成する。また、Ch=1の場合、偽証アルゴリズムは、回答Rsp=(z,t,e)を生成する。そして、Ch=2の場合、偽証アルゴリズムは、回答Rsp=(z,t’,e’)を生成する。
 なお、Step.3における上記の操作をRsp←Ma,2(Ch;St)と表現することにする。また、Step.3で生成されたRspは、検証者(検証者アルゴリズムV)に送られる。
 Step.4:
 Ch≠Chの場合、回答Rspが検証者アルゴリズムVに送られるため、検証者アルゴリズムVによって検証処理0/1←Dec(F,y;Cmt,Ch,Rsp)が実施される。
 以上、SSH10a公開鍵認証方式に対する偽証アルゴリズムについて説明した。このように、sを任意に選択したとしても、2/3の確率(Ch≠Chとなる確率)で検証を通過するRspを検証者に送り返すことができる。従って、1回の対話プロトコルにおいて2/3の確率で偽証が成功してしまう。そこで、先に説明した繰り返し構成が適用される。
 [1-7:SSH10b公開鍵認証方式に対する偽証アルゴリズム]
 次に、図8を参照しながら、SSH10b公開鍵認証方式(1回の対話プロトコル)において1/2の確率で成功する偽証アルゴリズムについて考えてみたい。図8は、SSH10b公開鍵認証方式(1回の対話プロトコル)において1/2の確率で成功する偽証アルゴリズムについて説明するための説明図である。この偽証アルゴリズムは、偽証者が検証者に対して「y=F(s)を満たすsを知っているふり」をするアルゴリズムである。但し、この偽証アルゴリズムを適用しても、1/2の確率で偽証が失敗する。
 Step.1:
 まず、偽証アルゴリズムは、ベクトルs,r,t∈K、e∈Kを生成する。次いで、偽証アルゴリズムは、Ch ∈{0,1}を選択する。このCh は、iの系列について偽証者(偽証アルゴリズム)が回答できない検証パターンに対応する。なお、ここで用いるsi0は正当な秘密鍵ではないが、偽証アルゴリズムは、Ch 以外の検証パターンに対しては正当な秘密鍵を利用せずに正しく回答できる。
 次いで、偽証アルゴリズムは、z←s-rを計算する。次いで、偽証アルゴリズムは、c←H(F(z,t)+e,z)及びc←H(r,t,e)を計算する。次いで、偽証アルゴリズムは、St←(F,y,Ch ,s,r,t,e,z)及びCmt←(c,c)を設定する。そして、Step.1で生成されたCmtは、検証者(検証者アルゴリズムV)に送られる。なお、上記のH(…)、H(…)は、ハッシュ関数である。また、Step.1における上記の操作を(Cmt;St)←Mb,1(F,y;Ch ,s,r,t,e)と表現することにする。
 Step.2:
 Cmtを受け取った検証者アルゴリズムVは、q通り存在する環Kの元から1つの乱数αを選択する。そして、検証者アルゴリズムVは、チャレンジCh=αを偽証者(偽証アルゴリズム)に送る。
 Step.3:
 Chを受け取った偽証アルゴリズムは、t’←αr+tを計算する。さらに、偽証アルゴリズムは、Ch =1の場合、e’←α(F(r)-c)+eを計算する。一方、Ch =0の場合、偽証アルゴリズムは、e’←α(y-F(s)+F(r)-c)+eを計算する。そして、偽証アルゴリズムは、St←(St,Ch,t’,e’)及びCmt←(t’,e’)を設定する。また、偽証アルゴリズムは、Cmtを検証者(検証者アルゴリズムV)に送る。なお、Step.3における上記の操作を(Cmt;St)←Mb,2(Ch;St)と表現することにする。
 Step.4:
 Cmtを受け取った検証者アルゴリズムVは、2つの検証パターンのうち、どちらの検証パターンを利用するかを選択する。そして、検証者アルゴリズムVは、選択した検証パターンを表すチャレンジCh{0,1}を偽証者(偽証アルゴリズム)に送る。
 Step.5:
 Chを受け取った偽証アルゴリズムは、Ch=Ch の場合、エラーを出力して対話プロトコルを終了する。Ch≠Ch の場合、偽証アルゴリズムは、検証者アルゴリズムVから受けたチャレンジChに応じて検証者(検証者アルゴリズムV)に送り返す回答Rspを次のようにして生成する。
 Ch=0の場合、偽証アルゴリズムは、Rsp←rに設定する。Ch=1の場合、偽証アルゴリズムは、Rsp←zに設定する。そして、偽証アルゴリズムは、回答Rspを検証者(検証者アルゴリズムV)に送る。なお、Step.5における上記の操作をRsp←Mb,3(Ch;St)と表現することにする。
 Step.6:
 Ch≠Ch の場合、回答Rspが検証者アルゴリズムVに送られるため、検証者アルゴリズムVによって検証処理0/1←Dec(F,y;Cmt,Ch,Cmt,Ch,Rsp)が実施される。
 以上、SSH10b公開鍵認証方式に対する偽証アルゴリズムについて説明した。このように、sを任意に選択したとしても、1/2の確率(Ch≠Ch となる確率)で検証を通過するRspを検証者に送り返すことができる。従って、1回の対話プロトコルにおいて1/2の確率で偽証が成功してしまう。そこで、先に説明した繰り返し構成が適用される。
 (補足)
 ここまで、SSH10a公開鍵認証方式、SSH10b公開鍵認証方式、その偽証アルゴリズム、及び対話プロトコルの繰り返し構成について説明してきた。これらの公開鍵認証方式は、1組の鍵ペア(公開鍵y、秘密鍵s)を用いて「yについてy=F(s)となるsを知っていること」を証明者が検証者に対して証明する方式である。そのため、検証で受理される対話を行った場合、「検証を行った証明者がsを用いた」という情報を検証者に知られてしまうことが避けられなかった。また、これらの方式で用いるFは衝突困難性が保証されていない。その結果、これらの公開鍵認証方式は、並列的繰り返し構成を行なった場合、能動的攻撃に対する安全性レベルを確実に保証しているか否かが知られていなかった。
 そこで、本件発明者は、これらの公開鍵認証方式を上記の並列的繰り返し構成により実施する際に能動的攻撃に対する安全性レベルが保証されるようにする仕組みを考案した。以下、この仕組みについて、具体例を挙げて詳細に説明する。
 <2:第1実施形態(本手法#1)>
 まず、本開示の第1実施形態(以下、本手法#1)について説明する。
 [2-1:概要]
 本手法#1は、SSH10a公開鍵認証方式、SSH10b公開鍵認証方式に対し、並列的繰り返し構成を行なった場合にも能動的攻撃に対する安全性レベルが保証されるようにする仕組みを適用したものである。繰り返しになるが、能動的攻撃に対する安全性レベルが保証されているか否かが知られていなかった理由は、利用する関数Fの衝突困難性が保証されない上、「検証を行った証明者がsを用いた」という情報を検証者に知られてしまうことが避けられなかったからである。従って、対話プロトコルの中で「検証を行った証明者がsを用いた」という情報を検証者に知られないようにすれば、能動的攻撃に対する安全性レベルを保証することができる。
 そこで、本件発明者は、秘密鍵s、公開鍵yを多重化する方式を考案した。この方式は、L個(L≧2)のs,…,s∈Kを秘密鍵とし、m本のn変数多次多項式F(x)=(f(x),…,f(x))に対して(y,…,y)=(F(s),…,F(s))を満たすy,…,y∈Kを公開鍵とする。さらに、この方式は、「i=1,…,Lのうち、L-1個のiについてy=F(s)となるsを知っていること」を、どのsを対話プロトコルの中で使用したかが分からないように証明する方式である。この方式を適用すると、対話プロトコルの中で「どのsを利用したか」に関する情報が漏れないため、能動的攻撃に対する安全性レベルが保証されるのである。
 本手法#1の方式は、検証者がi=1,…,LについてチャレンジCh,…,Ch(検証パターン)を証明者に対して送信し、チャレンジCh,…,Chを受け取った証明者がL-1個のチャレンジChを選択して回答するというものである。この方式を用いると、s,…,sを知っている証明者はL個全てのチャレンジChについて回答できるが、s,…,sを知らない偽証者は、ある程度の確率で偽証が失敗する。また、証明者はL-1個のチャレンジChに対して回答すればよいため、ある1つのチャレンジChについてはsを使用せずに認証を成立させることができる。つまり、対話プロトコルの中で、あるsを使用したか否かが検証者には分からないのである。
 [2-2:SSH10a公開鍵認証方式への適用]
 まず、図9を参照しながら、本手法#1の方式をSSH10a公開鍵認証方式に適用した場合の対話プロトコルについて説明する。図9は、本手法#1の方式をSSH10a公開鍵認証方式に適用した場合の対話プロトコルについて説明するための説明図である。この対話プロトコルは、鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムVにより構成される。以下、各アルゴリズムの内容について説明する。
 (鍵生成アルゴリズムGen)
 まず、鍵生成アルゴリズムGenの構成について説明する。鍵生成アルゴリズムGenは、環K上で定義されるm本のn変数2次多項式f(x,…,x),…,f(x,…,x)と、L個のベクトルs,…,s∈Kを生成する。なお、n変数のベクトル(x,…,x)をxと表記し、m本のn変数2次多項式(f(x),…,f(x))をF(x)と表記する。次に、鍵生成アルゴリズムGenは、y=F(s),…,y=F(s)を計算する。そして、鍵生成アルゴリズムGenは、(F,y,…,y)を公開鍵pkに設定し、(s,…,s)を秘密鍵に設定する。
 (証明者アルゴリズムP、検証者アルゴリズムV)
 次に、図9を参照しながら、証明者アルゴリズムP、検証者アルゴリズムVの構成について説明する。本手法#1の対話プロトコルは、「証明者がL-1個のy=F(s)を満たすsを知っていること」を、「どのsを使用したか否か」という情報を検証者に一切漏らさずに、検証者に証明させるものである。なお、鍵生成アルゴリズムGenにより生成された公開鍵pkは、証明者と検証者の間で共有されているものとする。また、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者により秘密に管理されているものとする。
 本手法#1の対話プロトコルは、図9に示すStep.1~Step.4の処理ステップにより構成される。以下、各ステップの処理について説明する。
 Step.1:
 まず、証明者アルゴリズムPは、i=1,…,Lについて、ベクトルr,t∈Kと、ベクトルe∈Kを生成する。次いで、証明者アルゴリズムPは、(Cmt;St)←Pa,1(F,y,s;r,t,e)を計算する。そして、証明者アルゴリズムPは、Cmt,…,Cmtを検証者(検証者アルゴリズムV)に送る。
 Step.2:
 Cmt,…,Cmtを受け取った検証者アルゴリズムVは、3つの検証パターンのうち、どの検証パターンを利用するかを選択する。そして、検証者アルゴリズムVは、選択した検証パターンを表すチャレンジCh,…,Ch{0,1,2}を証明者(証明者アルゴリズムP)に送る。
 Step.3:
 Ch,…,Chを受け取った証明者アルゴリズムPは、i=1,…,Lから1個だけ回答しないチャレンジChのインデックスi(以下、i)をランダムに選択する。次いで、証明者アルゴリズムPは、i∈{1,…,L}\{i}についてRsp←Pa,2(Ch;St)を計算する。そして、証明者アルゴリズムPは、(Rsp,…,Rspi*-1,Rspi*+1,…,Rsp,i)を検証者(検証者アルゴリズムV)に送る。
 Step.4:
 (Rsp,…,Rspi*-1,Rspi*+1,…,Rsp,i)を受け取った検証者アルゴリズムVは、i∈{1,…,L}\{i}について0/1←Dec(F,y;Cmt,Ch,Rsp)を実行する。そして、検証者アルゴリズムVは、i∈{1,…,L}\{i}について全て受理(出力1)されれば検証が成立したものとみなす。
 以上、本手法#1の方式をSSH10a公開鍵認証方式に適用した場合の対話プロトコルについて説明した。この対話プロトコルは、SSH10a公開鍵認証方式の安全性により、sを持たない偽証者がi=1,…,Lについて、それぞれ2/3以下の確率でしか、検証者から送られたチャレンジChに正しく回答できないことが保証されている。また、本手法#1を適用したことにより、L-1個以上のiについて検証者から送られたチャレンジChに正しく回答する必要があるため、偽証が成功する確率は、(2/3)+L(1/3)(2/3)L-1=(2+L)2L-1/3である。
 また、上記の対話プロトコルにおいてはs,…,sの全てを使用しているが、L≦3の場合であれば、i=1,…,Lの1つについてsを使用しなくても、どのsを使用しなかったかを検証者に一切知られずに全く証明者と同様の振る舞いをすることが可能である。そこで、1つのsを使用せずに、上記の対話プロトコルと同じ認証が実現可能な対話プロトコル(変形例1~3)について説明する。
 [2-3:SSH10a公開鍵認証方式への適用(変形例1)]
 まず、図10を参照しながら、本手法#1の方式をSSH10a公開鍵認証方式に適用した場合の対話プロトコル(変形例1)について説明する。図10は、本手法#1の方式をSSH10a公開鍵認証方式に適用した場合の対話プロトコル(変形例1)について説明するための説明図である。この対話プロトコルは、鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムVにより構成される。但し、検証者アルゴリズムVにおいて、先に説明した偽証アルゴリズムの構成が利用される。また、L=3の場合について説明する。さらに、使用しないsのインデックスをiとする。以下、各アルゴリズムの内容について説明する。
 (鍵生成アルゴリズムGen)
 まず、鍵生成アルゴリズムGenの構成について説明する。鍵生成アルゴリズムGenは、環K上で定義されるm本のn変数2次多項式f(x,…,x),…,f(x,…,x)と、L個のベクトルs,…,s∈Kを生成する。但し、si0は、適当に選択したベクトルを用いる。なお、n変数のベクトル(x,…,x)をxと表記し、m本のn変数2次多項式(f(x),…,f(x))をF(x)と表記する。次に、鍵生成アルゴリズムGenは、y=F(s),…,y=F(s)を計算する。但し、yi0=F(si0)になることは保証されていなくてもよい。そして、鍵生成アルゴリズムGenは、(F,y,…,y)を公開鍵pkに設定し、(s,…,s)を秘密鍵に設定する。
 (証明者アルゴリズムP、検証者アルゴリズムV)
 次に、図10を参照しながら、証明者アルゴリズムP、検証者アルゴリズムVの構成について説明する。なお、鍵生成アルゴリズムGenにより生成された公開鍵pkは、証明者と検証者の間で共有されているものとする。また、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者により秘密に管理されているものとする。
 本手法#1の対話プロトコルは、図10に示すStep.1~Step.4の処理ステップにより構成される。以下、各ステップの処理について説明する。
 Step.1:
 まず、証明者アルゴリズムPは、i=1,2,3について、ベクトルr,t∈Kと、ベクトルe∈Kを生成する。次いで、証明者アルゴリズムPは、Ch∈{0,1,2}を1つ選択する。このChは、iの系列について証明者が回答できない検証パターンに対応する。次いで、証明者アルゴリズムPは、i≠iの場合、(Cmt;St)←Pa,1(F,y,s;r,t,e)を計算する。一方、i=iの場合、証明者アルゴリズムPは、(Cmt;St)←Ma,1(F,y;Ch,s,r,t,e)を計算する。そして、証明者アルゴリズムPは、Cmt,Cmt,Cmtを検証者(検証者アルゴリズムV)に送る。
 Step.2:
 Cmt,Cmt,Cmtを受け取った検証者アルゴリズムVは、3つの検証パターンのうち、どの検証パターンを利用するかを選択する。そして、検証者アルゴリズムVは、選択した検証パターンを表すチャレンジCh,Ch,Ch{0,1,2}を証明者(証明者アルゴリズムP)に送る。
 Step.3:
 Ch,Ch,Chを受け取った証明者アルゴリズムPは、i=1,…,Lから1個だけ回答しないチャレンジChのインデックスi(以下、i)を次のようにして選択する。Chi0=Chの場合、検証者アルゴリズムVは、i←iを設定する。一方、Chi0≠Chの場合、検証者アルゴリズムVは、i∈{1,2,3}\{i}からランダムにiを選択する。このiの設定方法を用いると、検証者がどのような検証パターンを要求してきてもiは、それぞれ1/3の確率で1,2,3の値をとる。つまり、iが1,2,3のどの値であったかという情報が完全に秘匿されているのである。
 次いで、証明者アルゴリズムPは、i∈{1,2,3}\{i}について次のようにRspを計算する。i≠iの場合、証明者アルゴリズムPは、Rsp←Pa,2(Ch;St)を計算する。i=iの場合、証明者アルゴリズムPは、Rsp←Ma,2(Ch;St)を計算する。そして、証明者アルゴリズムPは、(Rsp,…,Rspi*-1,Rspi*+1,…,Rsp,i)を検証者(検証者アルゴリズムV)に送る。
 Step.4:
 (Rsp,…,Rspi*-1,Rspi*+1,…,Rsp,i)を受け取った検証者アルゴリズムVは、i∈{1,2,3}\{i}について0/1←Dec(F,y;Cmt,Ch,Rsp)を実行する。そして、検証者アルゴリズムVは、i∈{1,2,3}\{i}について全て受理(出力1)されれば検証が成立したものとみなす。
 以上、本手法#1の方式をSSH10a公開鍵認証方式に適用した場合の対話プロトコル(変形例)について説明した。ここではL=3の場合について説明したが、L=2の場合についても同様である。例えば、次のようにしてi=1,2から1個だけ利用しないi(i)を設定する。Chi0=Chならばi=iに設定する。一方、Chi0≠Chならば1/4の確率でi=iに設定し、3/4の確率でi≠iに設定する。このように設定すると、検証者がどのような検証パターンを要求してきても、iはそれぞれ1/2の確率で1,2の値をとる。そのため、iが1,2のどの値であったかという情報が完全に秘匿される。
 [2-4:SSH10a公開鍵認証方式への適用(変形例2)]
 次に、図11を参照しながら、本手法#1の方式をSSH10a公開鍵認証方式に適用した場合の対話プロトコル(変形例2)について説明する。なお、変形例2は、図9に示した対話プロトコルの一変形例である。図11は、本手法#1の方式をSSH10a公開鍵認証方式に適用した場合の対話プロトコル(変形例2)について説明するための説明図である。この対話プロトコルは、鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムVにより構成される。以下、各アルゴリズムの内容について説明する。
 (鍵生成アルゴリズムGen)
 まず、鍵生成アルゴリズムGenの構成について説明する。鍵生成アルゴリズムGenは、環K上で定義されるm本のn変数2次多項式f(x,…,x),…,f(x,…,x)と、2個のベクトルs,s∈Kを生成する。なお、n変数のベクトル(x,…,x)をxと表記し、m本のn変数2次多項式(f(x),…,f(x))をF(x)と表記する。次に、鍵生成アルゴリズムGenは、y=F(s),y=F(s)を計算する。そして、鍵生成アルゴリズムGenは、(F,y,y)を公開鍵pkに設定し、(s,s)を秘密鍵に設定する。
 (証明者アルゴリズムP、検証者アルゴリズムV)
 次に、図11を参照しながら、証明者アルゴリズムP、検証者アルゴリズムVの構成について説明する。本手法#1の対話プロトコルは、「証明者が1個のy=F(s)を満たすsを知っていること」を、「どのsを使用したか否か」という情報を検証者に一切漏らさずに、検証者に証明させるものである。なお、鍵生成アルゴリズムGenにより生成された公開鍵pkは、証明者と検証者の間で共有されているものとする。また、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者により秘密に管理されているものとする。
 本手法#1の対話プロトコルは、図11に示すStep.1~Step.4の処理ステップにより構成される。以下、各ステップの処理について説明する。
 Step.1:
 まず、証明者アルゴリズムPは、ベクトルr,t∈Kと、ベクトルe∈Kを生成する。次いで、証明者アルゴリズムPは、(Cmt;St)←Pa,1(F,y,s;r,t,e)、(Cmt;St)←Pa,1(F,y,s;r,t,e)を計算する。但し、Cmt=(c11,c12,c13)、Cmt=(c21,c12,c13)となる。次いで、証明者アルゴリズムPは、c11,c12,c13,c21を検証者(検証者アルゴリズムV)に送る。
 Step.2:
 c11,c12,c13,c21を受け取った検証者アルゴリズムVは、どの検証パターンを利用するかを選択する。そして、検証者アルゴリズムVは、選択した検証パターンを表すチャレンジの組(Ch,Ch)∈{0,1,2}×{0,1,2}を証明者(証明者アルゴリズムP)に送る。
 Step.3:
 Ch,Chを受け取った証明者アルゴリズムPは、回答するチャレンジChのインデックスiをランダムに選択する。次いで、証明者アルゴリズムPは、選択したiについて、Rsp←Pa,2(Ch;St,r,t,e)を計算する。そして、証明者アルゴリズムPは、(Rsp,i)を検証者(検証者アルゴリズムV)に送る。
 Step.4:
 Rsp,iを受け取った検証者アルゴリズムVは、0/1←Dec(F,y;(ci1,c12,c13,),Ch,Rsp)を実行する。そして、検証者アルゴリズムVは、出力が1の場合(受理された場合)に検証が成立したものとみなす。
 以上、本手法#1の方式をSSH10a公開鍵認証方式に適用した場合の対話プロトコル(変形例2)について説明した。本変形例は、Cmt、St、Cmt、Stを生成する際に用いる乱数の組(r、t、e)と(r、t、e)を共通化する点に特徴がある。これらの乱数を共通化することにより、Cmt=(c11,c12,c13)、Cmt=(c21,c22,c23)を構成する要素のうち、(c12,c13)と(c22,c23)が共通の値となる。そのため、証明者から検証者にCmtとCmtを送る際に、4個の値(c11,c12,c13,c21)だけを送れば済むようになり、通信量を低減させることが可能になる。なお、本変形例の場合、3パス目において一方の系列に関する情報しか公開しないため、上記のように乱数の一部を共通化しても零知識性は損なわれない。
 [2-5:SSH10a公開鍵認証方式への適用(変形例3)]
 次に、図12を参照しながら、本手法#1の方式をSSH10a公開鍵認証方式に適用した場合の対話プロトコル(変形例3)について説明する。なお、変形例3は、図11に示した対話プロトコル(変形例2)の一変形例である。図12は、本手法#1の方式をSSH10a公開鍵認証方式に適用した場合の対話プロトコル(変形例3)について説明するための説明図である。この対話プロトコルは、鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムVにより構成される。以下、各アルゴリズムの内容について説明する。
 (鍵生成アルゴリズムGen)
 まず、鍵生成アルゴリズムGenの構成について説明する。鍵生成アルゴリズムGenは、環K上で定義されるm本のn変数2次多項式f(x,…,x),…,f(x,…,x)と、2個のベクトルs,s∈Kを生成する。なお、n変数のベクトル(x,…,x)をxと表記し、m本のn変数2次多項式(f(x),…,f(x))をF(x)と表記する。次に、鍵生成アルゴリズムGenは、y=F(s),y=F(s)を計算する。そして、鍵生成アルゴリズムGenは、(F,y,y)を公開鍵pkに設定し、(s,s)を秘密鍵に設定する。
 (証明者アルゴリズムP、検証者アルゴリズムV)
 次に、図12を参照しながら、証明者アルゴリズムP、検証者アルゴリズムVの構成について説明する。本手法#1の対話プロトコルは、「証明者が1個のy=F(s)を満たすsを知っていること」を、「どのsを使用したか否か」という情報を検証者に一切漏らさずに、検証者に証明させるものである。なお、鍵生成アルゴリズムGenにより生成された公開鍵pkは、証明者と検証者の間で共有されているものとする。また、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者により秘密に管理されているものとする。
 本手法#1の対話プロトコルは、図12に示すStep.1~Step.4の処理ステップにより構成される。以下、各ステップの処理について説明する。
 Step.1:
 まず、証明者アルゴリズムPは、ベクトルr,t∈Kと、ベクトルe∈Kを生成する。次いで、証明者アルゴリズムPは、(Cmt;St)←Pa,1(F,y,s;r,t,e)、(Cmt;St)←Pa,1(F,y,s;r,t,e)を計算する。但し、Cmt=(c11,c12,c13)、Cmt=(c21,c12,c13)となる。次いで、証明者アルゴリズムPは、c11,c12,c13,c21を検証者(検証者アルゴリズムV)に送る。
 Step.2:
 c11,c12,c13,c21を受け取った検証者アルゴリズムVは、どの検証パターンを利用するかを選択する。このとき、検証者アルゴリズムVは、検証パターン(チャレンジの組(Ch,Ch))を(Ch,Ch)∈{(0,0),(1,1),(1,2),(2,1),(2,2)}の中から選択する。そして、検証者アルゴリズムVは、選択した検証パターンを表すチャレンジの組(Ch,Ch)を証明者(証明者アルゴリズムP)に送る。
 Step.3:
 Ch,Chを受け取った証明者アルゴリズムPは、回答するチャレンジChのインデックスiをランダムに選択する。次いで、証明者アルゴリズムPは、選択したiについて、Rsp←Pa,2(Ch;St,r,t,e)を計算する。そして、証明者アルゴリズムPは、(Rsp,i)を検証者(検証者アルゴリズムV)に送る。
 Step.4:
 (Rsp,i)を受け取った検証者アルゴリズムVは、0/1←Dec(F,y;(ci1,c12,c13,),Ch,Rsp)を実行する。そして、検証者アルゴリズムVは、出力が1の場合(受理された場合)に検証が成立したものとみなす。
 以上、本手法#1の方式をSSH10a公開鍵認証方式に適用した場合の対話プロトコル(変形例3)について説明した。本変形例は、利用可能な検証パターンを(Ch,Ch)∈{(0,0),(1,1),(1,2),(2,1),(2,2)}の5パターンに限定する点に特徴がある。
 上記のように、Cmtの要素(c12,c13)とCmtの要素(c22,c23)が共通化されている場合、Ch=0に対する回答(c12,c13に対する回答)とCh=0に対する回答(c22,c23に対する回答)は共通になる。そのため、「(Ch,Ch)=(0,0)に回答できること」は、「Ch=0とCh=0の両方に回答できること」を意味する。つまり、(Ch,Ch)=(0,0)に回答できる証明者は、(Ch,Ch)=(0,1),(0,2),(1,0),(2,0)のいずれにも回答できることになる。従って、検証者は、(Ch,Ch)=(0,0),(1,1),(1,2),(2,1),(2,2)の5パターンについて検証を行えば十分である。
 このような理由から、秘密鍵skを知らない限り、上記の5パターンの全てに回答することはできないことが保証される。つまり、秘密鍵skを知らない者は最大で4パターンにしか回答できないことになるため、偽証確率は最大で4/5になる。図9に示した対話プロトコルの場合、L=2における偽証確率は8/9であった。従って、変形例3の構成を適用することにより、偽証確率が低減する。
 [2-6:SSH10b公開鍵認証方式への適用]
 次に、図13を参照しながら、本手法#1の方式をSSH10b公開鍵認証方式に適用した場合の対話プロトコルについて説明する。図13は、本手法#1の方式をSSH10b公開鍵認証方式に適用した場合の対話プロトコルについて説明するための説明図である。この対話プロトコルは、鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムVにより構成される。以下、各アルゴリズムの内容について説明する。
 (鍵生成アルゴリズムGen)
 まず、鍵生成アルゴリズムGenの構成について説明する。鍵生成アルゴリズムGenは、環K上で定義されるm本のn変数2次多項式f(x,…,x),…,f(x,…,x)と、L個のベクトルs,…,s∈Kを生成する。なお、n変数のベクトル(x,…,x)をxと表記し、m本のn変数2次多項式(f(x),…,f(x))をF(x)と表記する。次に、鍵生成アルゴリズムGenは、y=F(s),…,y=F(s)を計算する。そして、鍵生成アルゴリズムGenは、(F,y,…,y)を公開鍵pkに設定し、(s,…,s)を秘密鍵に設定する。
 (証明者アルゴリズムP、検証者アルゴリズムV)
 次に、図13を参照しながら、証明者アルゴリズムP、検証者アルゴリズムVの構成について説明する。本手法#1の対話プロトコルは、「証明者がL-1個のy=F(s)を満たすsを知っていること」を、「どのsを使用したか否か」という情報を検証者に一切漏らさずに、検証者に証明させるものである。なお、鍵生成アルゴリズムGenにより生成された公開鍵pkは、証明者と検証者の間で共有されているものとする。また、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者により秘密に管理されているものとする。
 本手法#1の対話プロトコルは、図13に示すStep.1~Step.6の処理ステップにより構成される。以下、各ステップの処理について説明する。
 Step.1:
 まず、証明者アルゴリズムPは、i=1,…,Lについて、ベクトルr,t∈Kと、ベクトルe∈Kを生成する。次いで、証明者アルゴリズムPは、(CmtA,i;StA,i)←Pa,1(F,y,s;r,t,e)を計算する。そして、証明者アルゴリズムPは、(CmtA,1,…,CmtA,L)を検証者(検証者アルゴリズムV)に送る。
 Step.2:
 (CmtA,1,…,CmtA,L)を受け取った検証者アルゴリズムVは、q通り存在する環Kの元からL個の乱数の組(α,…,α)を選択する。そして、検証者アルゴリズムVは、チャレンジ(ChA,1,…,ChA,L)=(α,…,α)を証明者(証明者アルゴリズムP)に送る。
 Step.3:
 (ChA,1,…,ChA,L)を受け取った証明者アルゴリズムPは、i=1,…,Lについて(CmtB,i;StB,i)←Pb,2(ChA,i;StA,i)を計算する。そして、証明者アルゴリズムPは、(CmtB,1,…,CmtB,L)を検証者(検証者アルゴリズムV)に送る。
 Step.4:
 (CmtB,1,…,CmtB,L)を受け取った検証者アルゴリズムVは、2つの検証パターンのうち、どちらの検証パターンを利用するかをi=1,…,Lのそれぞれについて選択する。そして、検証者アルゴリズムVは、選択した検証パターンを表すチャレンジChB,1,…,ChB,L{0,1}を証明者(証明者アルゴリズムP)に送る。
 Step.5:
 ChB,1,…,ChB,Lを受け取った証明者アルゴリズムPは、i=1,…,Lから1個だけ回答しないi(以下、i)をランダムに選択する。そして、証明者アルゴリズムPは、Rsp←Pb,3(ChB,i;StB,i)を計算する。そして、証明者アルゴリズムPは、(Rsp,…,Rspi*-1,Rspi*+1,…,Rsp,i)を検証者(検証者アルゴリズムV)に送る。
 Step.6:
 (Rsp,…,Rspi*-1,Rspi*+1,…,Rsp,i)を受け取った検証者アルゴリズムVは、i∈{1,…,L}\{i}について0/1←Dec(F,y;CmtA,i,ChA,i,CmtB,i,ChB,i,Rsp)を実施する。そして、検証者アルゴリズムVは、i∈{1,…,L}\{i}について全て受理(出力1)されれば検証が成立したものとみなす。
 以上、本手法#1の方式をSSH10b公開鍵認証方式に適用した場合の対話プロトコルについて説明した。この対話プロトコルは、SSH10b公開鍵認証方式の安全性により、sを持たない偽証者がi=1,…,Lについて、それぞれ1/2+1/2q以下の確率でしか、検証者から送られたチャレンジChに正しく回答できないことが保証されている。また、本手法#1を適用したことにより、L-1個以上のiについて検証者から送られたチャレンジChに正しく回答する必要があるため、偽証が成功する確率は、(1/2+1/2q)+L(1/2-1/2q)(1/2+1/2q)L-1である。
 また、上記の対話プロトコルにおいてはs,…,sの全てを使用しているが、L=2の場合であれば、i=1,…,Lの1つについてsを使用しなくても、どのsを使用しなかったかを検証者に一切知られずに全く証明者と同様の振る舞いをすることが可能である。そこで、1つのsを使用せずに、上記の対話プロトコルと同じ認証が実現可能な対話プロトコル(変形例)について説明する。
 [2-7:SSH10b公開鍵認証方式への適用(変形例)]
 以下、図14を参照しながら、本手法#1の方式をSSH10b公開鍵認証方式に適用した場合の対話プロトコル(変形例)について説明する。図14は、本手法#1の方式をSSH10b公開鍵認証方式に適用した場合の対話プロトコル(変形例)について説明するための説明図である。この対話プロトコルは、鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムVにより構成される。但し、検証者アルゴリズムVにおいて、先に説明した偽証アルゴリズムの構成が利用される。また、L=2の場合について説明する。さらに、使用しないsのインデックスをiとする。以下、各アルゴリズムの内容について説明する。
 (鍵生成アルゴリズムGen)
 まず、鍵生成アルゴリズムGenの構成について説明する。鍵生成アルゴリズムGenは、環K上で定義されるm本のn変数2次多項式f(x,…,x),…,f(x,…,x)と、L個のベクトルs,…,s∈Kを生成する。但し、si0は、適当に選択したベクトルを用いる。なお、n変数のベクトル(x,…,x)をxと表記し、m本のn変数2次多項式(f(x),…,f(x))をF(x)と表記する。次に、鍵生成アルゴリズムGenは、y=F(s),…,y=F(s)を計算する。但し、yi0=F(si0)になることは保証されていなくてもよい。そして、鍵生成アルゴリズムGenは、(F,y,…,y)を公開鍵pkに設定し、(s,…,s)を秘密鍵に設定する。
 (証明者アルゴリズムP、検証者アルゴリズムV)
 次に、図14を参照しながら、証明者アルゴリズムP、検証者アルゴリズムVの構成について説明する。なお、鍵生成アルゴリズムGenにより生成された公開鍵pkは、証明者と検証者の間で共有されているものとする。また、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者により秘密に管理されているものとする。
 本手法#1の対話プロトコルは、図14に示すStep.1~Step.6の処理ステップにより構成される。以下、各ステップの処理について説明する。
 Step.1:
 まず、証明者アルゴリズムPは、i=1,2について、ベクトルr,t∈Kと、ベクトルe∈Kを生成する。次いで、証明者アルゴリズムPは、Ch ∈{0,1}を1つ選択する。このCh は、iの系列について証明者が回答できない検証パターンに対応する。次いで、証明者アルゴリズムPは、i≠iの場合について、(CmtA,i;StA,i)←Pb,1(F,y,s;r,t,e)を計算する。また、i=iの場合について、証明者アルゴリズムPは、(CmtA,i;StA,i)←Mb,1(F,y;Ch ,s,r,t,e)を計算する。そして、証明者アルゴリズムPは、(CmtA,1,CmtA,2)を検証者(検証者アルゴリズムV)に送る。
 Step.2:
 (CmtA,1,CmtA,2)を受け取った検証者アルゴリズムVは、q通り存在する環Kの元から2つの乱数の組(α,α)を選択する。そして、検証者アルゴリズムVは、チャレンジ(ChA,1,ChA,2)=(α,α)を証明者(証明者アルゴリズムP)に送る。
 Step.3:
 (ChA,1,ChA,2)を受け取った証明者アルゴリズムPは、i=1,2について次のようにCmtB,iを計算する。i≠iの場合、証明者アルゴリズムPは、(CmtB,i;StB,i)←Pb,2(ChA,i;StA,i)を計算する。一方、i=iの場合、証明者アルゴリズムPは、(CmtB,i;StB,i)←Mb,2(ChA,i;StA,i)を計算する。そして、証明者アルゴリズムPは、(CmtB,1,CmtB,2)を検証者(検証者アルゴリズムV)に送る。
 Step.4:
 (CmtB,1,CmtB,2)を受け取った検証者アルゴリズムVは、2つの検証パターンのうち、どちらの検証パターンを利用するかを選択する。そして、検証者アルゴリズムVは、選択した検証パターンを表すチャレンジ(ChB,1,ChB,2)∈{0,1}を証明者(証明者アルゴリズムP)に送る。
 Step.5:
 (ChB,1,ChB,2)を受け取った証明者アルゴリズムPは、i=1,2から1個だけ回答しないi(以下、i)を次のようにして選択する。Chi0=Chの場合、証明者アルゴリズムPは、Chi0≠Chに設定する。一方、i≠iの場合、証明者アルゴリズムPは、i≠iとなるようにランダムに設定する。このiの設定方法を用いると、検証者がどのような検証パターンを要求してきてもiは、それぞれ1/2の確率で1,2の値をとる。つまり、iが1,2のどの値であったかという情報が完全に秘匿されているのである。
 次いで、証明者アルゴリズムPは、i∈{1,2}\{i}について次のようにRspを計算する。i≠iの場合、証明者アルゴリズムPは、Rsp←Pb,3(Ch;St)を計算する。i=iの場合、証明者アルゴリズムPは、Rsp←Mb,3(Ch;St)を計算する。そして、証明者アルゴリズムPは、(Rsp,Rsp,i)を検証者(検証者アルゴリズムV)に送る。
 Step.6:
 (Rsp,Rsp,i)を受け取った検証者アルゴリズムVは、i∈{1,2}\{i}について0/1←Dec(F,y;CmtA,i,ChA,i,CmtB,i,ChB,i,Rsp)を実行する。そして、検証者アルゴリズムVは、i∈{1,2}\{i}について全て受理(出力1)されれば検証が成立したものとみなす。
 以上、本手法#1の方式をSSH10b公開鍵認証方式に適用した場合の対話プロトコル(変形例)について説明した。ここではL=2の場合について説明したが、L≧3の場合についても同じ仕組みを実現することは可能である。
 以上、本開示の第1実施形態について説明した。上記説明においては、SSH10a公開鍵認証方式、SSH10b公開鍵認証方式を例に挙げて述べたが、本手法#1の適用範囲はこれに限定されない。SSH10a公開鍵認証方式やSSH10b公開鍵認証方式の変形例、及びその他の公開鍵認証方式に対しても適用が可能である。例えば、上記の例では公開鍵を(F,y)に設定しているが、Fが秘密鍵によらないパラメータであるため、このFを証明者毎に設定するのではなく、システム全体に共通するパラメータとしてもよい。この場合、個別に公開すべき公開鍵はyだけとなり、公開鍵のサイズが小さくなる。また、上記の対話プロトコルにおいては、i=1,…,Lについて個別に乱数α,…,αを選択しているが、これらの乱数を1つに共通化してもよい。この場合、チャレンジChA,iを送る際の通信コストを削減することが可能になる。
 <3:第2実施形態(本手法#2)>
 次に、本開示の第2実施形態(本手法#2)について説明する。
 [3-1:概要]
 本手法#2は、SSH10a公開鍵認証方式、SSH10b公開鍵認証方式に対し、能動的攻撃に対する安全性レベルが保証されるようにする仕組みを適用したものである。繰り返しになるが、能動的攻撃に対する安全性レベルが保証されているか否かが知られていなかった理由は、利用する関数Fの衝突困難性が保証されない上、「検証を行った証明者がsを用いた」という情報を検証者に知られてしまうことが避けられなかったからである。従って、対話プロトコルの中で「検証を行った証明者がsを用いた」という情報を検証者に知られないようにすれば、能動的攻撃に対する安全性レベルを保証することができる。
 そこで、本件発明者は、秘密鍵s、公開鍵yを多重化する方式を考案した。この方式は、L個(L≧2)のs,…,s∈Kを秘密鍵とし、m本のn変数多次多項式F(x)=(f(x),…,f(x))に対して(y,…,y)=(F(s),…,F(s))を満たすy,…,y∈Kを公開鍵とする。さらに、この方式は、どのsを対話プロトコルの中で使用したかが分からないように証明する方式である。この方式を適用すると、対話プロトコルの中で「どのsを利用したか」に関する情報が漏れないため、能動的攻撃に対する安全性レベルが保証されるのである。
 本手法#2の方式は、検証者がi=1,…,Lについてチャレンジの組(Ch (0),…,Ch (0))及び(Ch (1),…,Ch (1))を証明者に送り、証明者が片方のチャレンジの組を選択して回答するというものである。この手法は、一般にQ(Q≧2)組のチャレンジの組を証明者に送り,証明者が1つのチャレンジの組を選択して回答するものであるが,ここではQ=2の場合について述べることにする。s,…,sを知っている証明者は両方のチャレンジの組に対して回答できるが、s,…,sを知らない偽証者は、ある程度の確率でいずれのチャレンジに対しても回答することができずに偽証が失敗する。なお、証明者は、1つのiについてはsを利用しなくても片方のチャレンジの組に対して回答することができるため、検証が受理される対話プロトコルを実行したとしても、この対話プロトコルの中で、どのsを利用したかは検証者に知られることがないのである。
 [3-2:SSH10a公開鍵認証方式への適用]
 まず、図15を参照しながら、本手法#2の方式をSSH10a公開鍵認証方式に適用した場合の対話プロトコルについて説明する。図15は、本手法#2の方式をSSH10a公開鍵認証方式に適用した場合の対話プロトコルについて説明するための説明図である。この対話プロトコルは、鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムVにより構成される。以下、各アルゴリズムの内容について説明する。
 (鍵生成アルゴリズムGen)
 まず、鍵生成アルゴリズムGenの構成について説明する。鍵生成アルゴリズムGenは、環K上で定義されるm本のn変数2次多項式f(x,…,x),…,f(x,…,x)と、L個のベクトルs,…,s∈Kを生成する。なお、n変数のベクトル(x,…,x)をxと表記し、m本のn変数2次多項式(f(x),…,f(x))をF(x)と表記する。次に、鍵生成アルゴリズムGenは、y=F(s),…,y=F(s)を計算する。そして、鍵生成アルゴリズムGenは、(F,y,…,y)を公開鍵pkに設定し、(s,…,s)を秘密鍵に設定する。
 次に、図15を参照しながら、証明者アルゴリズムP、検証者アルゴリズムVの構成について説明する。本手法#1の対話プロトコルは、「証明者がL-1個のy=F(s)を満たすsを知っていること」を、「どのsを使用したか否か」という情報を検証者に一切漏らさずに、検証者に証明させるものである。なお、鍵生成アルゴリズムGenにより生成された公開鍵pkは、証明者と検証者の間で共有されているものとする。また、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者により秘密に管理されているものとする。
 本手法#2の対話プロトコルは、図15に示すStep.1~Step.4の処理ステップにより構成される。以下、各ステップの処理について説明する。
 Step.1:
 まず、証明者アルゴリズムPは、i=1,…,Lについて、ベクトルr,t∈Kと、ベクトルe∈Kを生成する。次いで、証明者アルゴリズムPは、(Cmt;St)←Pa,1(F,y,s;r,t,e)を計算する。そして、証明者アルゴリズムPは、Cmt,…,Cmtを検証者(検証者アルゴリズムV)に送る。
 Step.2:
 Cmt,…,Cmtを受け取った検証者アルゴリズムVは、3つの検証パターンのうち、どの検証パターンを利用するかを選択する。このとき、検証者アルゴリズムVは、2組の検証パターンの組み合わせを選択する。そして、検証者アルゴリズムVは、選択した検証パターンを表すチャレンジの組(Ch (0),…,Ch (0)),(Ch (1),…,Ch (1))∈{0,1,2}を証明者(証明者アルゴリズムP)に送る。但し、Ch (0)≠Ch (1)である。
 Step.3:
 (Ch (0),…,Ch (0)),(Ch (1),…,Ch (1))を受け取った証明者アルゴリズムPは、いずれのチャレンジの組に回答するかをランダムに選択する。なお、その選択結果をd∈{0,1}と表現する。そして、証明者アルゴリズムPは、i∈{1,…,L}についてRsp←Pa,2(Ch(d) ;St)を計算する。その後、証明者アルゴリズムPは、(Rsp,…,Rsp,d)を検証者(検証者アルゴリズムV)に送る。
 Step.4:
 (Rsp,…,Rsp,d)を受け取った検証者アルゴリズムVは、i∈{1,…,L}について0/1←Dec(F,y;Cmt,Ch(d) ,Rsp)を実行する。そして、検証者アルゴリズムVは、i∈{1,…,L}について全て受理(出力1)されれば検証が成立したものとみなす。
 以上、本手法#2の方式をSSH10a公開鍵認証方式に適用した場合の対話プロトコルについて説明した。この対話プロトコルは、SSH10a公開鍵認証方式の安全性により、sを持たない偽証者がi=1,…,Lについて、それぞれ2/3以下の確率でしか、検証者から送られたチャレンジChに正しく回答できないことが保証されている。また、本手法#2を適用したことにより、2つのチャレンジの組の一方についてはL個のiについて検証者から送られたチャレンジChに正しく回答する必要があるため、偽証が成功する確率は、(2/3)+(2/3)-(1/3)=(2L+1-1)/3である。
 また、上記の対話プロトコルにおいてはs,…,sの全てを使用しているが、L≦3の場合であれば、i=1,…,Lの1つについてsを使用しなくても、どのsを使用しなかったかを検証者に一切知られずに全く証明者と同様の振る舞いをすることが可能である。そこで、1つのsを使用せずに、上記の対話プロトコルと同じ認証が実現可能な対話プロトコル(変形例)について説明する。
 [3-3:SSH10a公開鍵認証方式への適用(変形例)]
 以下、図16を参照しながら、本手法#2の方式をSSH10a公開鍵認証方式に適用した場合の対話プロトコル(変形例)について説明する。図16は、本手法#2の方式をSSH10a公開鍵認証方式に適用した場合の対話プロトコル(変形例)について説明するための説明図である。この対話プロトコルは、鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムVにより構成される。但し、検証者アルゴリズムVにおいて、先に説明した偽証アルゴリズムの構成が利用される。また、使用しないsのインデックスをiとする。以下、各アルゴリズムの内容について説明する。
 (鍵生成アルゴリズムGen)
 まず、鍵生成アルゴリズムGenの構成について説明する。鍵生成アルゴリズムGenは、環K上で定義されるm本のn変数2次多項式f(x,…,x),…,f(x,…,x)と、L個のベクトルs,…,s∈Kを生成する。但し、si0は、適当に選択したベクトルを用いる。なお、n変数のベクトル(x,…,x)をxと表記し、m本のn変数2次多項式(f(x),…,f(x))をF(x)と表記する。次に、鍵生成アルゴリズムGenは、y=F(s),…,y=F(s)を計算する。但し、yi0=F(si0)になることは保証されていなくてもよい。そして、鍵生成アルゴリズムGenは、(F,y,…,y)を公開鍵pkに設定し、(s,…,s)を秘密鍵に設定する。
 (証明者アルゴリズムP、検証者アルゴリズムV)
 次に、図16を参照しながら、証明者アルゴリズムP、検証者アルゴリズムVの構成について説明する。なお、鍵生成アルゴリズムGenにより生成された公開鍵pkは、証明者と検証者の間で共有されているものとする。また、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者により秘密に管理されているものとする。
 本手法#2の対話プロトコルは、図16に示すStep.1~Step.4の処理ステップにより構成される。以下、各ステップの処理について説明する。
 Step.1:
 まず、証明者アルゴリズムPは、i=1,…,Lについて、ベクトルr,t∈Kと、ベクトルe∈Kを生成する。次いで、証明者アルゴリズムPは、Ch∈{0,1,2}を1つ選択する。このChは、iの系列について証明者が回答できない検証パターンに対応する。次いで、証明者アルゴリズムPは、i≠iの場合、(Cmt;St)←Pa,1(F,y,s;r,t,e)を計算する。一方、i=iの場合、証明者アルゴリズムPは、(Cmt;St)←Ma,1(F,y;Ch,s,r,t,e)を計算する。そして、証明者アルゴリズムPは、Cmt,…,Cmtを検証者(検証者アルゴリズムV)に送る。
 Step.2:
 Cmt,…,Cmtを受け取った検証者アルゴリズムVは、3つの検証パターンのうち、どの検証パターンを利用するかを選択する。このとき、検証者アルゴリズムVは、2組の検証パターンの組み合わせを選択する。そして、検証者アルゴリズムVは、選択した検証パターンを表すチャレンジの組(Ch (0),…,Ch (0)),(Ch (1),…,Ch (1))∈{0,1,2}を証明者(証明者アルゴリズムP)に送る。但し、Ch (0)≠Ch (1)である。
 Step.3:
 (Ch (0),…,Ch (0)),(Ch (1),…,Ch (1))を受け取った証明者アルゴリズムPは、いずれのチャレンジの組に回答するかを次のようにして選択する。なお、その選択結果をd∈{0,1}と表現する。Chi0 (0)=Chの場合(条件1)、証明者アルゴリズムPは、d←1に設定する。一方、Chi0 (1)=Chの場合(条件2)、証明者アルゴリズムPは、d←0に設定する。条件1、2以外の場合、証明者アルゴリズムPは、ランダムにd∈{0,1}を設定する。このような設定方法によると、検証者がどのような検証パターンを要求してきても、dは1/2の確率で0,1の値をとるため、iが1,…,Lのいずれであったかという情報は完全に秘匿される。
 dを設定した後、証明者アルゴリズムPは、i∈{1,…,L}について次のようにRspiを計算する。i≠iの場合、証明者アルゴリズムPは、Rsp←Pa,2(Ch(d) ;St)を計算する。一方、i=iの場合、証明者アルゴリズムPは、Rsp←Ma,2(Ch(d) ;St)を計算する。その後、証明者アルゴリズムPは、(Rsp,…,Rsp,d)を検証者(検証者アルゴリズムV)に送る。
 Step.4:
 (Rsp,…,Rsp,d)を受け取った検証者アルゴリズムVは、i∈{1,…,L}について0/1←Dec(F,y;Cmt,Ch(d) ,Rsp)を実行する。そして、検証者アルゴリズムVは、i∈{1,…,L}について全て受理(出力1)されれば検証が成立したものとみなす。
 以上、本手法#2の方式をSSH10a公開鍵認証方式に適用した場合の対話プロトコル(変形例)について説明した。なお、上記の説明においては、2つのチャレンジの組を検証者から証明者に送っているが、例えば、2つ目のチャレンジが、Ch (1)=Ch (0)+1 mod 3であると予め決めてしまってもよい。この場合、片方のチャレンジの組を送らなくて済むため、通信量を削減することが可能になる。
 [3-4:SSH10b公開鍵認証方式への適用]
 次に、図17を参照しながら、本手法#2の方式をSSH10b公開鍵認証方式に適用した場合の対話プロトコルについて説明する。図17は、本手法#2の方式をSSH10b公開鍵認証方式に適用した場合の対話プロトコルについて説明するための説明図である。この対話プロトコルは、鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムVにより構成される。以下、各アルゴリズムの内容について説明する。
 (鍵生成アルゴリズムGen)
 まず、鍵生成アルゴリズムGenの構成について説明する。鍵生成アルゴリズムGenは、環K上で定義されるm本のn変数2次多項式f(x,…,x),…,f(x,…,x)と、L個のベクトルs,…,s∈Kを生成する。なお、n変数のベクトル(x,…,x)をxと表記し、m本のn変数2次多項式(f(x),…,f(x))をF(x)と表記する。次に、鍵生成アルゴリズムGenは、y=F(s),…,y=F(s)を計算する。そして、鍵生成アルゴリズムGenは、(F,y,…,y)を公開鍵pkに設定し、(s,…,s)を秘密鍵に設定する。
 (証明者アルゴリズムP、検証者アルゴリズムV)
 次に、図135を参照しながら、証明者アルゴリズムP、検証者アルゴリズムVの構成について説明する。本手法#2の対話プロトコルは、「証明者がL-1個のy=F(s)を満たすsを知っていること」を、「どのsを使用したか否か」という情報を検証者に一切漏らさずに、検証者に証明させるものである。なお、鍵生成アルゴリズムGenにより生成された公開鍵pkは、証明者と検証者の間で共有されているものとする。また、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者により秘密に管理されているものとする。
 本手法#2の対話プロトコルは、図17に示すStep.1~Step.6の処理ステップにより構成される。以下、各ステップの処理について説明する。
 Step.1:
 まず、証明者アルゴリズムPは、i=1,…,Lについて、ベクトルr,t∈Kと、ベクトルe∈Kを生成する。次いで、証明者アルゴリズムPは、(CmtA,i;StA,i)←Pa,1(F,y,s;r,t,e)を計算する。そして、証明者アルゴリズムPは、(CmtA,1,…,CmtA,L)を検証者(検証者アルゴリズムV)に送る。
 Step.2:
 (CmtA,1,…,CmtA,L)を受け取った検証者アルゴリズムVは、q通り存在する環Kの元からL個の乱数の組(α,…,α)を選択する。そして、検証者アルゴリズムVは、チャレンジ(ChA,1,…,ChA,L)=(α,…,α)を証明者(証明者アルゴリズムP)に送る。
 Step.3:
 (ChA,1,…,ChA,L)を受け取った証明者アルゴリズムPは、i=1,…,Lについて(CmtB,i;StB,i)←Pb,2(ChA,i;StA,i)を計算する。そして、証明者アルゴリズムPは、(CmtB,1,…,CmtB,L)を検証者(検証者アルゴリズムV)に送る。
 Step.4:
 (CmtB,1,…,CmtB,L)を受け取った検証者アルゴリズムVは、3つの検証パターンのうち、どの検証パターンを利用するかを選択する。このとき、検証者アルゴリズムVは、2組の検証パターンの組み合わせを選択する。そして、検証者アルゴリズムVは、選択した検証パターンを表すチャレンジの組(ChB,1 (0),…,ChB,L (0)),(ChB,1 (1),…,ChB,L (1))∈{0,1}Lを証明者(証明者アルゴリズムP)に送る。但し、ChB,i (0)≠ChB,i (1)である。
 Step.5:
 (ChB,1 (0),…,ChB,L (0)),(ChB,1 (1),…,ChB,L (1))を受け取った証明者アルゴリズムPは、いずれのチャレンジの組に回答するかをランダムに選択する。なお、その選択結果をd∈{0,1}と表現する。そして、証明者アルゴリズムPは、i∈{1,…,L}についてRsp←Pb,2(ChB,i (d);StB,i)を計算する。その後、証明者アルゴリズムPは、(Rsp,…,Rsp,d)を検証者(検証者アルゴリズムV)に送る。
 Step.6:
 (Rsp,…,Rsp,d)を受け取った検証者アルゴリズムVは、i∈{1,…,L}について0/1←Dec(F,y;CmtA,i,ChA,i,CmtB,i,ChB,i (d),Rsp)を実行する。そして、検証者アルゴリズムVは、i∈{1,…,L}について全て受理(出力1)されれば検証が成立したものとみなす。
 以上、本手法#2の方式をSSH10b公開鍵認証方式に適用した場合の対話プロトコルについて説明した。この対話プロトコルは、SSH10b公開鍵認証方式の安全性により、sを持たない偽証者がi=1,…,Lについて、それぞれ1/2+1/2q以下の確率でしか、検証者から送られたチャレンジに正しく回答できないことが保証されている。また、本手法#2を適用したことにより、2つのチャレンジの組の一方に対し、L個のiについて検証者から送られたチャレンジに正しく回答する必要があるため、偽証が成功する確率は、(1/2+1/2q)+(1/2+1/2q)=2(1/2+1/2q)である。
 また、上記の対話プロトコルにおいてはs,…,sの全てを使用しているが、i=1,…,Lの1つについてsを使用しなくても、どのsを使用しなかったかを検証者に一切知られずに全く証明者と同様の振る舞いをすることが可能である。そこで、1つのsを使用せずに、上記の対話プロトコルと同じ認証が実現可能な対話プロトコル(変形例)について説明する。
 [3-5:SSH10b公開鍵認証方式への適用(変形例)]
 以下、図18を参照しながら、本手法#2の方式をSSH10b公開鍵認証方式に適用した場合の対話プロトコル(変形例)について説明する。図18は、本手法#2の方式をSSH10b公開鍵認証方式に適用した場合の対話プロトコル(変形例)について説明するための説明図である。この対話プロトコルは、鍵生成アルゴリズムGen、証明者アルゴリズムP、検証者アルゴリズムVにより構成される。但し、検証者アルゴリズムVにおいて、先に説明した偽証アルゴリズムの構成が利用される。また、使用しないsのインデックスをiとする。以下、各アルゴリズムの内容について説明する。
 (鍵生成アルゴリズムGen)
 まず、鍵生成アルゴリズムGenの構成について説明する。鍵生成アルゴリズムGenは、環K上で定義されるm本のn変数2次多項式f(x,…,x),…,f(x,…,x)と、L個のベクトルs,…,s∈Kを生成する。但し、si0は、適当に選択したベクトルを用いる。なお、n変数のベクトル(x,…,x)をxと表記し、m本のn変数2次多項式(f(x),…,f(x))をF(x)と表記する。次に、鍵生成アルゴリズムGenは、y=F(s),…,y=F(s)を計算する。但し、yi0=F(si0)になることは保証されていなくてもよい。そして、鍵生成アルゴリズムGenは、(F,y,…,y)を公開鍵pkに設定し、(s,…,s)を秘密鍵に設定する。
 (証明者アルゴリズムP、検証者アルゴリズムV)
 次に、図18を参照しながら、証明者アルゴリズムP、検証者アルゴリズムVの構成について説明する。なお、鍵生成アルゴリズムGenにより生成された公開鍵pkは、証明者と検証者の間で共有されているものとする。また、鍵生成アルゴリズムGenにより生成された秘密鍵skは、証明者により秘密に管理されているものとする。
 本手法#2の対話プロトコルは、図18に示すStep.1~Step.6の処理ステップにより構成される。以下、各ステップの処理について説明する。
 Step.1:
 まず、証明者アルゴリズムPは、i=1,…,Lについて、ベクトルr,t∈Kと、ベクトルe∈Kを生成する。次いで、証明者アルゴリズムPは、Ch ∈{0,1}を1つ選択する。このChは、iの系列について証明者が回答できない検証パターンに対応する。次いで、証明者アルゴリズムPは、i≠iの場合について、(CmtA,i;StA,i)←Pb,1(F,y,s;r,t,e)を計算する。また、i=iの場合について、証明者アルゴリズムPは、(CmtA,i;StA,i)←Mb,1(F,y;Ch ,s,r,t,e)を計算する。そして、証明者アルゴリズムPは、(CmtA,1,…,CmtA,L)を検証者(検証者アルゴリズムV)に送る。
 Step.2:
 (CmtA,1,…,CmtA,L)を受け取った検証者アルゴリズムVは、q通り存在する環Kの元からL個の乱数の組(α,…,α)を選択する。そして、検証者アルゴリズムVは、チャレンジ(ChA,1,…,ChA,L)=(α,…,α)を証明者(証明者アルゴリズムP)に送る。
 Step.3:
 (ChA,1,…,ChA,L)を受け取った証明者アルゴリズムPは、i=1,…,Lについて次のようにCmtB,iを計算する。まず、i≠iの場合について、証明者アルゴリズムPは、(CmtB,i;StB,i)←Pb,2(ChA,i;StA,i)を計算する。一方、i=iの場合について、証明者アルゴリズムPは、(CmtB,i;StB,i)←Mb,2(ChA,i;StA,i)を計算する。そして、証明者アルゴリズムPは、(CmtB,1,…,CmtB,L)を検証者(検証者アルゴリズムV)に送る。
 Step.4:
 (CmtB,1,…,CmtB,L)を受け取った検証者アルゴリズムVは、3つの検証パターンのうち、どの検証パターンを利用するかを選択する。このとき、検証者アルゴリズムVは、2組の検証パターンの組み合わせを選択する。そして、検証者アルゴリズムVは、選択した検証パターンを表すチャレンジの組(ChB,1 (0),…,ChB,L (0)),(ChB,1 (1),…,ChB,L (1))∈{0,1}Lを証明者(証明者アルゴリズムP)に送る。但し、ChB,i (0)≠ChB,i (1)である。
 Step.5:
 (ChB,1 (0),…,ChB,L (0)),(ChB,1 (1),…,ChB,L (1))を受け取った証明者アルゴリズムPは、いずれのチャレンジの組に回答するかを次のようにして選択する。なお、その選択結果をd∈{0,1}と表現する。ChB,i0 (0)=Ch の場合、証明者アルゴリズムPは、d←1に設定する。一方、ChB,i0 (1)=Ch の場合、証明者アルゴリズムPは、d←0に設定する。この設定方法を用いると、検証者がどのような検証パターンを要求してきてもdは、それぞれ1/2の確率で0,1の値をとる。つまり、dが0,1のどの値であったかという情報が完全に秘匿されているのである。
 次いで、証明者アルゴリズムPは、i=1,…,Lについて次のようにRspを計算する。i≠iの場合について、証明者アルゴリズムPは、Rsp←Pb,3(ChB,i (d);StB,i)を計算する。また、i=iの場合について、証明者アルゴリズムPは、Rsp←Mb,3(ChB,i (d);StB,i)を計算する。その後、証明者アルゴリズムPは、(Rsp,…,Rsp,d)を検証者(検証者アルゴリズムV)に送る。
 Step.6:
 (Rsp,…,Rsp,d)を受け取った検証者アルゴリズムVは、i=1,…,Lについて0/1←Dec(F,y;CmtA,i,ChA,i,CmtB,i,ChB,i (d),Rsp)を実行する。そして、検証者アルゴリズムVは、i=1,…,Lについて全て受理(出力1)されれば検証が成立したものとみなす。
 以上、本手法#2の方式をSSH10b公開鍵認証方式に適用した場合の対話プロトコル(変形例)について説明した。なお、上記の説明においては、2つのチャレンジの組を検証者から証明者に送っているが、例えば、2つ目のチャレンジが、Ch (1)=Ch (0)+1 mod 2であると予め決めてしまってもよい。この場合、片方のチャレンジの組を送らなくて済むため、通信量を削減することが可能になる。
 以上、本開示の第2実施形態について説明した。上記説明においては、SSH10a公開鍵認証方式、SSH10b公開鍵認証方式を例に挙げて述べたが、本手法#2の適用範囲はこれに限定されない。SSH10a公開鍵認証方式やSSH10b公開鍵認証方式の変形例、及びその他の公開鍵認証方式に対しても適用が可能である。例えば、上記の例では公開鍵を(F,y)に設定しているが、Fが秘密鍵によらないパラメータであるため、このFを証明者毎に設定するのではなく、システム全体に共通するパラメータとしてもよい。この場合、個別に公開すべき公開鍵はyだけとなり、公開鍵のサイズが小さくなる。また、上記の対話プロトコルにおいては、i=1,…,Lについて個別に乱数α,…,αを選択しているが、これらの乱数を1つの共通化してもよい。この場合、チャレンジChA,iを送る際の通信コストを削減することが可能になる。
 <4:補足>
 ここで、本手法#1、#2について説明を補足する。
 [4-1:方式の拡張について]
 これまでは多次多変数連立方程式の求解問題に基づく公開鍵認証方式について説明してきた。しかし、本手法#1、#2の考え方は、その他の公開鍵認証方式に対しても同様に適用することが可能である。そこで、一例として、Syndrome Decoding問題に基づく公開鍵認証方式への適用方法、Constrained Linear Equations問題に基づく公開鍵認証方式への適用方法、Permuted Kernel問題に基づく公開鍵認証方式への適用方法、代数曲面上の求セクション問題に基づく公開鍵認証方式への適用方法、Permuted Perceptrons問題に基づく公開鍵認証方式への適用方法について紹介する。
 (Syndrome Decoding問題への適用)
 Syndrome Decoding問題に基づく公開鍵認証方式は、例えば、「Jacques Stern, A New Identification Scheme Based on Syndrome Decoding, CRYPTO 1993, p13-21.」や「Jacques Stern, A New Paradigm for Public Key Identification, IEEE Transactions on Information Theory, 1996, p13-21.」に記載されている。これによると、この公開鍵認証方式には、3パスの方式と5パスの方式がある。
 3パスの方式は、SSH10a公開鍵認証方式と同様に、検証パターンが3パターンあり、そのうちの2パターンまでは対応可能な偽証アルゴリズムが存在する。また、5パスの方式も、SSH10b公開鍵認証方式と同様に、検証パターンが2パターンあり、そのうちの1パターンまでには対応可能な偽証アルゴリズムが存在する。そのため、3パスの方式にはSSH10a公開鍵認証方式について先に説明した方法が、5パスの方式にはSSH10b公開鍵認証方式について先に説明した方法が適用可能である。
 (Constrained Linear Equations問題への適用)
 Constrained Linear Equations問題に基づく公開鍵認証方式は、例えば、「Jacques Stern, Designing Identification Schemes with Keys of Short Size, CRYPTO 1994, p164-173.」に記載されている。これによると、この公開鍵認証方式にも3パスの方式と5パスの方式がある。
 3パスの方式は、SSH10a公開鍵認証方式と同様に、検証パターンが3パターンあり、そのうちの2パターンまでは対応可能な偽証アルゴリズムが存在する。また、5パスの方式も、SSH10b公開鍵認証方式と同様に、検証パターンが2パターンあり、そのうちの1パターンまでには対応可能な偽証アルゴリズムが存在する。そのため、3パスの方式にはSSH10a公開鍵認証方式について先に説明した方法が、5パスの方式にはSSH10b公開鍵認証方式について先に説明した方法が適用可能である。
 (Permuted Kernel問題への適用)
 Permuted Kernel問題に基づく公開鍵認証方式は、例えば、「Adi Shamir, An Efficient Identification Scheme Based on Permuted Kernels (Extended Abstract),CRYPTO 1989, p606-609.」に記載されている。これによると、この公開鍵認証方式には、検証パターンが2パターンあり、そのうち1パターンまでには対応可能な偽証アルゴリズムが存在する。そのため、この公開鍵認証方式にはSSH10b公開鍵認証方式について先に説明した方法が適用可能である。
 (代数曲面上の求セクション問題への適用)
 代数曲面上の求セクション問題に基づく公開鍵認証方式には、3パスと5パスの方式がある(例えば、特願2010-125026号などを参照)。3パスの方式は、SSH10a公開鍵認証方式と同様に、検証パターンが3パターンあり、そのうちの2パターンまでは対応可能な偽証アルゴリズムが存在する。また、5パスの方式も、SSH10b公開鍵認証方式と同様に、検証パターンが2パターンあり、そのうちの1パターンまでには対応可能な偽証アルゴリズムが存在する。そのため、3パスの方式にはSSH10a公開鍵認証方式について先に説明した方法が、5パスの方式にはSSH10b公開鍵認証方式について先に説明した方法が適用可能である。
 (Permuted Perceptrons問題への適用)
 Permuted Perceptrons問題に基づく公開鍵認証方式は、例えば、「David Pointcheval, A New Identification Scheme Based on the Perceptrons Problem, EUROCRYPT 1995, p319-328.」や「David Pointcheval and Guillaume Poupard, A New NP-Complete Problem and Public-Key Identification, Des. Codes Cryptography, 2003, p5-31.」に記載されている。これによると、この公開鍵認証方式には、3パスの方式と5パスの方式がある。
 3パスの方式は検証パターンが4パターンあり、そのうち3パターンまでには対応可能な偽証アルゴリズムが存在する。一方、5パスの方式は検証パターンが3パターンあり、そのうち2パターンまでには対応可能な偽証アルゴリズムが存在する。そのため、SSH10a公開鍵認証方式やSSH10b公開鍵認証方式と同様に、この公開鍵認証方式に対しても本手法#1、#2の技術を適用することが可能である。但し、この公開鍵認証方式に対して本手法#1を適用する際には以下の変更が必要になる。
 検証パターンがkパターンある方式に対し、秘密鍵をL=k個に多重化して本手法#1を適用する場合、i=1,…,Lから1個だけ回答しないi(以下、i)を次のように選択することが必要になる。つまり、iの選択方法は、Chi0=Chならばi←iが選択され、Chi0≠Chならばi∈{1,…,L}\{i}からランダムにiが選択されるというものになる。
 また、検証パターンがkパターンある方式に対し、秘密鍵をL(L<k)個に多重化して本手法#1を適用する場合、i=1,…,Lから1個だけ回答しないi(以下、i)を次のように選択することが必要になる。つまり、iの選択方法は、Chi0=Chならばi←iが選択され、Chi0≠Chならば確率(1-1/k)-1(1/L-1/k)でi←iが選択され、かつ、確率1-(1-1/k)-1(1/L-1/k)でi∈{1,…,L}\{i}からランダムにiが選択されるというものになる。
 上記の方法によれば検証者がどのような検証パターンを要求してきてもiが1/Lの確率で1,…,Lの値をとることになり、iが1,…,Lのいずれであったかという情報が完全に秘匿される。
 以上説明したように、本手法#1、#2は、SSH10a公開鍵認証方式、SSH10b公開鍵認証方式に限らず、様々な公開鍵認証方式に適用可能である。
 [4-2:非対話型の公開鍵認証方式について]
 上記の本手法#1、#2を適用した公開鍵認証方式は、検証者が乱数しか送信しない方式であるため、1パス(非対話型)の公開鍵認証方式に変形することが可能である。例えば、N回の並列的繰り返し構成において検証者との間でやりとりした内容にハッシュ関数を適用したものを、検証者から送信される乱数の代わりに用いればよい。また、ハッシュ関数の引数に、証明者が選んだ乱数を加えてもよい。このように、検証者が乱数を選択する代わりに証明者自身がハッシュ関数を利用することで、検証者が乱数を選択した場合と同じ振る舞いが実現される。但し、理想的なハッシュ関数を利用することが望ましい。また、偽証を不可能にするために繰り返し回数Nを十分に大きくとることが望ましい。このような工夫により、非対話型の公開鍵認証方式に変形することが可能になる。
 [4-3:通信量の削減方法について]
 ここで、図19、図20を参照しながら、対話プロトコルにおける通信量の削減方法について簡単に説明を補足する。
 既に説明したように、SSH10a公開鍵認証方式の1パス目において、証明者から検証者にメッセージの組(c,c,c)が送られる。但し、上記説明においてはCmtという表現を用いていた。N回の並列的繰り返し構成の場合、このメッセージの組は、図19に示すように、(c1,1,c1,2,c1,3,…,cN,1,cN,2,cN,3)となり、通信量が非常に大きくなってしまう。そこで、本件発明者は、これらのメッセージを1つのハッシュ値にまとめて送る構成を考案した。
 図19に示すように、この構成を適用すると、1パス目で送るメッセージが1つのハッシュ値だけとなり、大幅に通信量を削減することが可能になる。但し、このハッシュ値、及び証明者から送られるチャレンジに対する回答から復元できないハッシュ値については、回答と併せて証明者から送ってもらうようにする。この構成によると、N回の並列的繰り返し構成の場合、送るべき情報の数を2N-1個削減することが可能になる。図20に示すように、SSH10b公開鍵認証方式に対しても同様の構成を適用することが可能である。この場合、送るべき情報の数をN-1個削減することが可能になる。
 以上、本手法#1、#2について説明を補足した。
 <5:ハードウェア構成>
 上記の各アルゴリズムは、例えば、図21に示す情報処理装置のハードウェア構成を用いて実行することが可能である。つまり、当該各アルゴリズムの処理は、コンピュータプログラムを用いて図21に示すハードウェアを制御することにより実現される。なお、このハードウェアの形態は任意であり、例えば、パーソナルコンピュータ、携帯電話、PHS、PDA等の携帯情報端末、ゲーム機、接触式又は非接触式のICチップ、接触式又は非接触式のICカード、又は種々の情報家電がこれに含まれる。但し、上記のPHSは、Personal Handy-phone Systemの略である。また、上記のPDAは、Personal Digital Assistantの略である。
 図21に示すように、このハードウェアは、主に、CPU902と、ROM904と、RAM906と、ホストバス908と、ブリッジ910と、を有する。さらに、このハードウェアは、外部バス912と、インターフェース914と、入力部916と、出力部918と、記憶部920と、ドライブ922と、接続ポート924と、通信部926と、を有する。但し、上記のCPUは、Central Processing Unitの略である。また、上記のROMは、Read Only Memoryの略である。そして、上記のRAMは、Random Access Memoryの略である。
 CPU902は、例えば、演算処理装置又は制御装置として機能し、ROM904、RAM906、記憶部920、又はリムーバブル記録媒体928に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。ROM904は、CPU902に読み込まれるプログラムや演算に用いるデータ等を格納する手段である。RAM906には、例えば、CPU902に読み込まれるプログラムや、そのプログラムを実行する際に適宜変化する各種パラメータ等が一時的又は永続的に格納される。
 これらの構成要素は、例えば、高速なデータ伝送が可能なホストバス908を介して相互に接続される。一方、ホストバス908は、例えば、ブリッジ910を介して比較的データ伝送速度が低速な外部バス912に接続される。また、入力部916としては、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチ、及びレバー等が用いられる。さらに、入力部916としては、赤外線やその他の電波を利用して制御信号を送信することが可能なリモートコントローラが用いられることもある。
 出力部918としては、例えば、CRT、LCD、PDP、又はELD等のディスプレイ装置、スピーカ、ヘッドホン等のオーディオ出力装置、プリンタ、携帯電話、又はファクシミリ等、取得した情報を利用者に対して視覚的又は聴覚的に通知することが可能な装置である。但し、上記のCRTは、Cathode Ray Tubeの略である。また、上記のLCDは、Liquid Crystal Displayの略である。そして、上記のPDPは、Plasma DisplayPanelの略である。さらに、上記のELDは、Electro-Luminescence Displayの略である。
 記憶部920は、各種のデータを格納するための装置である。記憶部920としては、例えば、ハードディスクドライブ(HDD)等の磁気記憶デバイス、半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイス等が用いられる。但し、上記のHDDは、Hard Disk Driveの略である。
 ドライブ922は、例えば、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体928に記録された情報を読み出し、又はリムーバブル記録媒体928に情報を書き込む装置である。リムーバブル記録媒体928は、例えば、DVDメディア、Blu-rayメディア、HD DVDメディア、各種の半導体記憶メディア等である。もちろん、リムーバブル記録媒体928は、例えば、非接触型ICチップを搭載したICカード、又は電子機器等であってもよい。但し、上記のICは、Integrated Circuitの略である。
 接続ポート924は、例えば、USBポート、IEEE1394ポート、SCSI、RS-232Cポート、又は光オーディオ端子等のような外部接続機器930を接続するためのポートである。外部接続機器930は、例えば、プリンタ、携帯音楽プレーヤ、デジタルカメラ、デジタルビデオカメラ、又はICレコーダ等である。但し、上記のUSBは、Universal Serial Busの略である。また、上記のSCSIは、Small Computer System Interfaceの略である。
 通信部926は、ネットワーク932に接続するための通信デバイスであり、例えば、有線又は無線LAN、Bluetooth(登録商標)、又はWUSB用の通信カード、光通信用のルータ、ADSL用のルータ、又は接触又は非接触通信用のデバイス等である。また、通信部926に接続されるネットワーク932は、有線又は無線により接続されたネットワークにより構成され、例えば、インターネット、家庭内LAN、赤外線通信、可視光通信、放送、又は衛星通信等である。但し、上記のLANは、Local Area Networkの略である。また、上記のWUSBは、Wireless USBの略である。そして、上記のADSLは、Asymmetric Digital Subscriber Lineの略である。
 <6:まとめ>
 最後に、本開示の実施形態に係る技術内容について簡単に纏める。ここで述べる技術内容は、例えば、PC、携帯電話、携帯ゲーム機、携帯情報端末、情報家電、カーナビゲーションシステム等、種々の情報処理装置に対して適用することができる。
 上記の情報処理装置の機能構成は次のように表現することができる。当該情報処理装置は、次のような鍵保持部と、対話プロトコル実行部とを有する。当該鍵保持部は、L個(L≧2)の秘密鍵s(i=1~L)、及びn次多変数多項式の組F(n≧2)についてy=F(s)を満たすL個の公開鍵yを保持するものである。また、上記の対話プロトコル実行部は、(L-1)個のy=F(s)を満たす秘密鍵sを知っていることを証明するための対話プロトコルを検証者との間で実行するものである。また、前記対話プロトコル実行部は、前記検証者との間で前記対話プロトコルを実行する際に、どの秘密鍵sを使用したかを当該検証者に知られないようにする。
 上記のように、秘密鍵sを多重化し、対話プロトコルを実行する際に、そのうちの一部の秘密鍵を利用し、さらに、どの秘密鍵sが利用されたのかを対話プロトコルの中で知られないようにすることにより、並列的繰り返し構成の場合にも、能動的攻撃に対する安全性レベルを保証することが可能になる。つまり、偽証者が検証者に成りすまして認証に利用される秘密鍵sの情報を得ようとしても、対話プロトコルの中で、どの秘密鍵sが利用されたかが検証者にも分からない。つまり、任意の回数だけ対話プロトコルを実行できる状況にあっても、秘密鍵sの情報が証明者から漏れないため、能動的攻撃に対する安全性レベルを保証することができるのである。
 (備考)
 上記の情報処理装置は、証明者側及び検証者側の認証装置の一例である。また、上記のROM904、RAM906、記憶部920、リムーバブル記録媒体928は、鍵保持部の一例である。なお、この鍵保持部に保持される秘密鍵si、公開鍵yiは、鍵生成アルゴリズムGenにより生成される。また、証明者アルゴリズムP、検証者アルゴリズムVは、対話プロトコル実行部の一例である。なお、実際には、証明者アルゴリズムP、検証者アルゴリズムVがCPU902の機能により実行されることにより対話プロトコル実行部の機能が実現される。また、証明者アルゴリズムPによって実現される機能により、チャレンジ受信部、チャレンジ選択部、回答生成部、回答送信部、メッセージ送信部の機能が実現される。なお、情報の送受信には、通信部926の機能が利用される。
 以上、添付図面を参照しながら本開示の好適な実施形態について説明したが、本開示は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本開示の技術的範囲に属するものと了解される。
 Gen  鍵生成アルゴリズム
 P    証明者アルゴリズム
 V    検証者アルゴリズム

Claims (11)

  1.  L個(L≧2)の秘密鍵s(i=1~L)、及びn次多変数多項式の組F(n≧2)についてy=F(s)を満たすL個の公開鍵yを保持する鍵保持部と、
     (L-1)個のy=F(s)を満たす秘密鍵sを知っていることを証明するための対話プロトコルを検証者との間で実行する対話プロトコル実行部と、
    を備え、
     前記対話プロトコル実行部は、
     前記検証者からL個のチャレンジChを受信するチャレンジ受信部と、
     前記チャレンジ受信部により受信されたL個のチャレンジChの中から(L-1)個のチャレンジChを任意に選択するチャレンジ選択部と、
     前記秘密鍵sを用いて、前記チャレンジ選択部により選択された(L-1)個のチャレンジChのそれぞれに対する(L-1)個の回答Rspを生成する回答生成部と、
     前記回答生成部により生成された(L-1)個の回答Rspを前記検証者に送信する回答送信部と、
    を含む、
     認証装置。
  2.  前記対話プロトコル実行部は、
     前記検証者に対し、L個の前記秘密鍵sのそれぞれに対応するメッセージCmtを送信するメッセージ送信部をさらに含み、
     前記チャレンジ受信部は、前記メッセージ送信部により送信された各メッセージCmtに応じて、前記検証者によりk通り(k≧2)の検証パターンの中から選択された検証パターンを示すチャレンジChを受信する、
     請求項1に記載の認証装置。
  3.  前記メッセージCmtがCmt=(ci,1,…,ci,N)である場合、
     前記メッセージ送信部は、一方向性関数Hを用いて新たなメッセージCmt’=H(Cmt,…,Cmt)を算出して当該メッセージCmt’を前記検証者に送信し、
     前記回答送信部は、前記回答Rspと共に、当該回答Rspを利用しても前記検証者が復元できない前記メッセージCmtの要素を送信する、
     請求項2に記載の認証装置。
  4.  前記鍵保持部は、前記L個の秘密鍵sのうち、1つの秘密鍵si0(1≦i≦L)を保持しないようにし、
     前記対話プロトコル実行部は、前記対話プロトコルの中で実行される前記秘密鍵si0に関する処理を偽証アルゴリズムに基づいて実行する、
     請求項2に記載の認証装置。
  5.  L個の秘密鍵s(i=1~L)、n次多変数多項式の組F(n≧2)についてy=F(s)を満たすL個の公開鍵yを保持する鍵保持部と、
     検証者からQ組(Q≧2)のL個のチャレンジCh (j)(j=1~Q)を受信するチャレンジ受信部と、
     前記チャレンジ受信部により受信されたQ組のL個のチャレンジCh (j)の中から1組のL個のチャレンジCh (j)を任意に選択するチャレンジ選択部と、
     前記秘密鍵sを用いて、前記チャレンジ選択部により選択されたL個のチャレンジCh (j)のそれぞれに対するL個の回答Rspを生成する回答生成部と、
     前記回答生成部により生成されたL個の回答Rspを前記検証者に送信する回答送信部と、
    を備える、
     認証装置。
  6.  前記対話プロトコル実行部は、
     前記検証者に対し、L個の前記秘密鍵sのそれぞれに対応するメッセージCmtを送信するメッセージ送信部をさらに含み、
     前記チャレンジ受信部は、前記メッセージ送信部により送信された各メッセージCmtに応じて、前記検証者によりk通り(k≧2)の検証パターンの中から選択された検証パターンを示すチャレンジCh (j)を受信する、
     請求項5に記載の認証装置。
  7.  前記メッセージCmtがCmt=(ci,1,…,ci,N)である場合、
     前記メッセージ送信部は、一方向性関数Hを用いて新たなメッセージCmt’=H(Cmt,…,Cmt)を算出して当該メッセージCmt’を前記検証者に送信し、
     前記回答送信部は、前記回答Rspと共に、当該回答Rspを利用しても前記検証者が復元できない前記メッセージCmtの要素を送信する、
     請求項6に記載の認証装置。
  8.  L個(L≧2)の秘密鍵s(i=1~L)、及びn次多変数多項式の組F(n≧2)についてy=F(s)を満たすL個の公開鍵yを生成することと、
     (L-1)個のy=F(s)を満たす秘密鍵sを知っていることを証明するための対話プロトコルを検証者との間で実行することと、
    を含み、
     前記実行することは、
     前記検証者からL個のチャレンジChを受信することと、
     受信されたL個のチャレンジChの中から(L-1)個のチャレンジChを任意に選択することと、
     前記秘密鍵sを用いて、選択された(L-1)個のチャレンジChのそれぞれに対する(L-1)個の回答Rspを生成することと、
     生成された(L-1)個の回答Rspを前記検証者に送信することと、
    を含む、
     認証方法。
  9.  L個(L≧2)の秘密鍵s(i=1~L)、及びn次多変数多項式の組F(n≧2)についてy=F(s)を満たすL個の公開鍵yを保持する鍵保持機能と、
     (L-1)個のy=F(s)を満たす秘密鍵sを知っていることを証明するための対話プロトコルを検証者との間で実行する対話プロトコル実行機能と、
    をコンピュータに実現させるためのプログラムであり、
     前記対話プロトコル実行機能は、
     前記検証者からL個のチャレンジChを受信するチャレンジ受信機能と、
     前記チャレンジ受信機能により受信されたL個のチャレンジChの中から(L-1)個のチャレンジChを任意に選択するチャレンジ選択機能と、
     前記秘密鍵sを用いて、前記チャレンジ選択機能により選択された(L-1)個のチャレンジChのそれぞれに対する(L-1)個の回答Rspを生成する回答生成機能と、
     前記回答生成機能により生成された(L-1)個の回答Rspを前記検証者に送信する回答送信機能と、
    を含む、
     プログラム。
  10.  L個の秘密鍵s(i=1~L)、n次多変数多項式の組F(n≧2)についてy=F(s)を満たすL個の公開鍵yを生成することと、
     検証者からQ組(Q≧2)のL個のチャレンジCh (j)(j=1~Q)を受信することと、
     受信されたQ組のL個のチャレンジCh (j)の中から1組のL個のチャレンジCh (j)を任意に選択することと、
     前記秘密鍵sを用いて、選択されたL個のチャレンジCh (j)のそれぞれに対するL個の回答Rspを生成することと、
     生成されたL個の回答Rspを前記検証者に送信することと、
    を含む、
     認証方法。
  11.  L個の秘密鍵s(i=1~L)、n次多変数多項式F(n≧2)についてy=F(s)を満たすL個の公開鍵yを保持する鍵保持機能と、
     検証者からQ組(Q≧2)のL個のチャレンジCh (j)(j=1~Q)を受信するチャレンジ受信機能と、
     前記チャレンジ受信機能により受信されたQ組のL個のチャレンジCh (j)の中から1組のL個のチャレンジCh (j)を任意に選択するチャレンジ選択機能と、
     前記秘密鍵sを用いて、前記チャレンジ選択機能により選択されたL個のチャレンジCh (j)のそれぞれに対するL個の回答Rspを生成する回答生成機能と、
     前記回答生成機能により生成されたL個の回答Rspを前記検証者に送信する回答送信機能と、
    をコンピュータに実現させるためのプログラム。
PCT/JP2011/065872 2010-07-30 2011-07-12 認証装置、認証方法、及びプログラム WO2012014669A1 (ja)

Priority Applications (11)

Application Number Priority Date Filing Date Title
SG2013002357A SG187039A1 (en) 2010-07-30 2011-07-12 Authentication device, authentication method, and program
CN201180035779.5A CN103155480B (zh) 2010-07-30 2011-07-12 认证装置和认证方法
CA2804394A CA2804394C (en) 2010-07-30 2011-07-12 Authentication device, authentication method, and program
MYPI2013700148A MY181936A (en) 2010-07-30 2011-07-12 Authentication device, authentication method, and program
RU2013103035/08A RU2573772C2 (ru) 2010-07-30 2011-07-12 Устройство аутентификации, способ аутентификации и программа
KR1020137001413A KR101808363B1 (ko) 2010-07-30 2011-07-12 인증 장치, 인증 방법 및 컴퓨터 판독가능한 기록 매체
US13/704,658 US9076000B2 (en) 2010-07-30 2011-07-12 Authentication device, authentication method, and program
EP11812261.3A EP2600563A4 (en) 2010-07-30 2011-07-12 AUTHENTICATION DEVICE, AUTHENTICATION METHOD, AND PROGRAM
BR112013001733A BR112013001733A2 (pt) 2010-07-30 2011-07-12 dispositivo e método de autenticação, e, programa
AU2011283888A AU2011283888B2 (en) 2010-07-30 2011-07-12 Authentication device, authentication method, and program
US14/719,495 US9602285B2 (en) 2010-07-30 2015-05-22 Authentication device, authentication method, and program

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2010-171940 2010-07-30
JP2010171940 2010-07-30
JP2010-224752 2010-10-04
JP2010224752A JP5594034B2 (ja) 2010-07-30 2010-10-04 認証装置、認証方法、及びプログラム

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US13/704,658 A-371-Of-International US9076000B2 (en) 2010-07-30 2011-07-12 Authentication device, authentication method, and program
US14/719,495 Continuation US9602285B2 (en) 2010-07-30 2015-05-22 Authentication device, authentication method, and program

Publications (1)

Publication Number Publication Date
WO2012014669A1 true WO2012014669A1 (ja) 2012-02-02

Family

ID=45529885

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/065872 WO2012014669A1 (ja) 2010-07-30 2011-07-12 認証装置、認証方法、及びプログラム

Country Status (13)

Country Link
US (2) US9076000B2 (ja)
EP (1) EP2600563A4 (ja)
JP (1) JP5594034B2 (ja)
KR (1) KR101808363B1 (ja)
CN (1) CN103155480B (ja)
AU (1) AU2011283888B2 (ja)
BR (1) BR112013001733A2 (ja)
CA (2) CA2804394C (ja)
MY (1) MY181936A (ja)
RU (1) RU2573772C2 (ja)
SG (1) SG187039A1 (ja)
TW (1) TWI455555B (ja)
WO (1) WO2012014669A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013129134A1 (ja) * 2012-03-02 2013-09-06 ソニー株式会社 演算装置、制御方法、及びプログラム
WO2014087738A1 (ja) * 2012-12-05 2014-06-12 ソニー株式会社 情報処理装置、検証処理装置、情報処理方法、検証処理方法、およびプログラム

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5790289B2 (ja) 2011-08-12 2015-10-07 ソニー株式会社 情報処理装置、情報処理方法、プログラム、及び記録媒体
JP5790287B2 (ja) * 2011-08-12 2015-10-07 ソニー株式会社 情報処理装置、情報処理方法、プログラム、及び記録媒体
US10447475B1 (en) * 2018-11-08 2019-10-15 Bar Ilan University System and method for managing backup of cryptographic keys
CN110650160B (zh) * 2019-10-29 2022-01-04 北京天威诚信电子商务服务有限公司 一种身份认证方法及系统
JP7273742B2 (ja) * 2020-02-07 2023-05-15 株式会社東芝 暗号化装置、復号装置、暗号方法、復号方法、暗号化プログラム及び復号プログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004030639A (ja) * 2002-06-26 2004-01-29 Microsoft Corp 迷惑電子メールを検出するシステムおよび方法
JP2007519044A (ja) * 2004-01-23 2007-07-12 フランス テレコム ゼロ知識証明暗号方法及び装置
JP2008048451A (ja) * 1999-10-01 2008-02-28 Fr Telecom エンティティの真正性又はメッセージの完全性を証明するための方法、システム、デバイス
JP2009543414A (ja) * 2006-06-30 2009-12-03 インターナショナル・ビジネス・マシーンズ・コーポレーション モバイル・デバイスにおけるメッセージ処理
JP2010125026A (ja) 2008-11-27 2010-06-10 Sansei R&D:Kk 遊技機

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5375170A (en) * 1992-11-13 1994-12-20 Yeda Research & Development Co., Ltd. Efficient signature scheme based on birational permutations
FR2737370B1 (fr) 1995-07-27 1997-08-22 Bull Cp8 Procede de communication cryptographique
US5710814A (en) * 1996-07-23 1998-01-20 Cheyenne Property Trust Cryptographic unit touch point logic
JPH1165439A (ja) * 1996-08-09 1999-03-05 Nippon Telegr & Teleph Corp <Ntt> N進表現暗号による通信および認証方法、ならびにそれらの装置、およびn進表現暗号による通信および認証プログラムを格納した記憶媒体
US6307936B1 (en) * 1997-09-16 2001-10-23 Safenet, Inc. Cryptographic key management scheme
US6076163A (en) * 1997-10-20 2000-06-13 Rsa Security Inc. Secure user identification based on constrained polynomials
US6411715B1 (en) * 1997-11-10 2002-06-25 Rsa Security, Inc. Methods and apparatus for verifying the cryptographic security of a selected private and public key pair without knowing the private key
US6959085B1 (en) * 1999-05-03 2005-10-25 Ntru Cryptosystems, Inc. Secure user identification based on ring homomorphisms
US7243236B1 (en) * 1999-07-29 2007-07-10 Intertrust Technologies Corp. Systems and methods for using cryptography to protect secure and insecure computing environments
US20020136401A1 (en) * 2000-07-25 2002-09-26 Jeffrey Hoffstein Digital signature and authentication method and apparatus
US7181017B1 (en) * 2001-03-23 2007-02-20 David Felsher System and method for secure three-party communications
US7114178B2 (en) * 2001-05-22 2006-09-26 Ericsson Inc. Security system
US7308097B2 (en) * 2001-12-07 2007-12-11 Ntru Cryptosystems, Inc. Digital signature and authentication method and apparatus
EP1486027B1 (en) * 2002-03-13 2005-12-28 Koninklijke Philips Electronics N.V. Polynomial-based multi-user key generation and authentication method and system
JP4457651B2 (ja) * 2003-11-27 2010-04-28 日本電気株式会社 証明装置及び証明方法並びにプログラム
JP4282546B2 (ja) * 2004-05-19 2009-06-24 株式会社東芝 暗号装置、復号装置、鍵生成装置、プログラム及び方法
TWI280026B (en) * 2004-07-02 2007-04-21 Univ Chang Gung RSA with personalized secret
JP5001157B2 (ja) 2004-09-30 2012-08-15 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 多項式に基づいた認証の方法
US20060245587A1 (en) * 2005-04-28 2006-11-02 Binyamin Pinkas System and method for private information matching
US7958362B2 (en) * 2005-10-11 2011-06-07 Chang Gung University User authentication based on asymmetric cryptography utilizing RSA with personalized secret
US20080013721A1 (en) * 2005-11-30 2008-01-17 Jing-Jang Hwang Asymmetric cryptography with discretionary private key
JP4197710B2 (ja) * 2006-07-19 2008-12-17 株式会社東芝 暗号装置、復号装置、プログラム及び方法
US8006300B2 (en) * 2006-10-24 2011-08-23 Authernative, Inc. Two-channel challenge-response authentication method in random partial shared secret recognition system
US8411854B2 (en) * 2008-01-02 2013-04-02 National University Of Ireland, Galway Method and apparatus for authenticating a user
US8713655B2 (en) * 2008-04-21 2014-04-29 Indian Institute Of Technology Method and system for using personal devices for authentication and service access at service outlets
JP2010049215A (ja) * 2008-08-25 2010-03-04 Toshiba Corp パラメータ生成装置、暗号処理システム、方法およびプログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008048451A (ja) * 1999-10-01 2008-02-28 Fr Telecom エンティティの真正性又はメッセージの完全性を証明するための方法、システム、デバイス
JP2004030639A (ja) * 2002-06-26 2004-01-29 Microsoft Corp 迷惑電子メールを検出するシステムおよび方法
JP2007519044A (ja) * 2004-01-23 2007-07-12 フランス テレコム ゼロ知識証明暗号方法及び装置
JP2009543414A (ja) * 2006-06-30 2009-12-03 インターナショナル・ビジネス・マシーンズ・コーポレーション モバイル・デバイスにおけるメッセージ処理
JP2010125026A (ja) 2008-11-27 2010-06-10 Sansei R&D:Kk 遊技機

Non-Patent Citations (8)

* Cited by examiner, † Cited by third party
Title
ADI SHAMIR: "An Efficient Identification Scheme Based on Permuted Kernels (Extended Abstract", CRYPTO, 1989, pages 606 - 609
DAVID POINTCHEVAL: "A New Identification Scheme Based on the Perceptrons Problem", EUROCRYPT, 1995, pages 319 - 328, XP019194339
DAVID POINTCHEVAL; GUILLAUME POUPARD: "A New NP-Complete Problem and Public-Key Identification", DES. CODES CRYPTOGRAPHY, 2003, pages 5 - 31, XP019205753, DOI: doi:10.1023/A:1021835718426
JACQUES STEM: "A New Identification Scheme Based on Syndrome Decoding", CRYPTO, 1993, pages 13 - 21, XP019194069
JACQUES STEM: "A New Paradigm for Public Key Identification", IEEE TRANSACTIONS ON INFORMATION THEORY, 1996, pages 13 - 21
JACQUES STEM: "Designing Identification Schemes with Keys of Short Size", CRYPTO, 1994, pages 164 - 173, XP019194292, DOI: doi:10.1007/3-540-48658-5_18
See also references of EP2600563A4
SHAI HALEVI; SILVIO MICALI, INTERNATIONAL CONFERENCE CRYPTO, 1996

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013129134A1 (ja) * 2012-03-02 2013-09-06 ソニー株式会社 演算装置、制御方法、及びプログラム
US9672007B2 (en) 2012-03-02 2017-06-06 Sony Corporation Device for performing arithmetic operations of multivariate polynomials, control method, and program
WO2014087738A1 (ja) * 2012-12-05 2014-06-12 ソニー株式会社 情報処理装置、検証処理装置、情報処理方法、検証処理方法、およびプログラム
US9516007B2 (en) 2012-12-05 2016-12-06 Sony Corporation Verifier and prover have an authentication protocol with challenge-response with the challenge from prover having identification of the verifier
JPWO2014087738A1 (ja) * 2012-12-05 2017-01-05 ソニー株式会社 情報処理装置、検証処理装置、情報処理方法、検証処理方法、およびプログラム

Also Published As

Publication number Publication date
AU2011283888A1 (en) 2012-12-13
KR101808363B1 (ko) 2017-12-12
KR20130100959A (ko) 2013-09-12
US20150256342A1 (en) 2015-09-10
BR112013001733A2 (pt) 2016-05-31
US9076000B2 (en) 2015-07-07
CN103155480B (zh) 2015-11-25
RU2573772C2 (ru) 2016-01-27
JP5594034B2 (ja) 2014-09-24
EP2600563A1 (en) 2013-06-05
RU2013103035A (ru) 2014-07-27
MY181936A (en) 2021-01-14
JP2012050053A (ja) 2012-03-08
EP2600563A4 (en) 2016-10-19
CN103155480A (zh) 2013-06-12
US20130089201A1 (en) 2013-04-11
CA2804394C (en) 2018-05-22
TW201215069A (en) 2012-04-01
CA3000137A1 (en) 2012-02-02
CA2804394A1 (en) 2012-02-02
US9602285B2 (en) 2017-03-21
AU2011283888B2 (en) 2015-10-29
TWI455555B (zh) 2014-10-01
SG187039A1 (en) 2013-02-28

Similar Documents

Publication Publication Date Title
JP5736816B2 (ja) 認証装置、認証方法、プログラム、及び署名生成装置
JP5593850B2 (ja) 認証装置、認証方法、プログラム、及び署名生成装置
JP5594034B2 (ja) 認証装置、認証方法、及びプログラム
JP2013042315A (ja) 情報処理装置、及び情報処理方法
JP5790289B2 (ja) 情報処理装置、情報処理方法、プログラム、及び記録媒体
JP5790287B2 (ja) 情報処理装置、情報処理方法、プログラム、及び記録媒体
JP5790291B2 (ja) 情報処理装置、署名提供方法、署名検証方法、プログラム、及び記録媒体
JP5790286B2 (ja) 情報処理装置、署名生成装置、情報処理方法、署名生成方法、及びプログラム
JP5790290B2 (ja) 情報処理装置、情報処理方法、プログラム、及びプログラムを記録したコンピュータ読み取り可能な記録媒体
JP5790288B2 (ja) 情報処理装置、及び情報処理方法
JP2013047726A (ja) 情報処理装置、署名生成装置、署名検証装置、情報処理方法、署名生成方法、及び署名検証方法
WO2013031413A1 (ja) 情報処理装置、情報処理方法、プログラム、及び記録媒体
WO2013024628A1 (ja) 情報処理装置、及び情報処理方法

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201180035779.5

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11812261

Country of ref document: EP

Kind code of ref document: A1

DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)
ENP Entry into the national phase

Ref document number: 2011283888

Country of ref document: AU

Date of ref document: 20110712

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 13704658

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2011812261

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2804394

Country of ref document: CA

ENP Entry into the national phase

Ref document number: 20137001413

Country of ref document: KR

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2013103035

Country of ref document: RU

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

REG Reference to national code

Ref country code: BR

Ref legal event code: B01A

Ref document number: 112013001733

Country of ref document: BR

ENP Entry into the national phase

Ref document number: 112013001733

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20130123