# Patent

## Title
Segmented secret-key storage system, segment storage apparatus, segmented secret-key storage method

## Abstract

The risk of leakage of secret information caused by leakage of a secret key is reduced. A segmented secret-key storage system segments a secret key SK into segments that can be combined at the time of decryption or at the time of generation of a signature and records the secret-key segments sk1, . . . , skN in segment storage apparatuses. The secret-key segments are changed, periodically or under a predetermined condition, to another set of secret-key segments that satisfies a condition for combination. In the segmented secret-key storage system, the secret key SK is not revealed unless the secret-key segments are stolen from all the segment storage apparatuses in an interval between changes made to the secret-key segments. Accordingly, the risk of leakage can be greatly reduced in comparison with the risk of leakage of the secret key from a single apparatus.

## Background
TECHNICAL FIELD
The present invention relates to a segmented secret-key storage system, a segment storage apparatus, and a segmented secret-key storage method for securely storing a secret key for use in encryption or authentication.
BACKGROUND ART
Storing a secret key for use in encryption or authentication is an important matter. In modern encryption, preventing secret key leaks is a prerequisite to security. Tamper-resistant hardware for storing keys has been studied to prevent secret keys from leaking, and products such as a trusted platform module (TPM) and a hardware security module (HSM) have been put to practical use.
Another method of preventing secret information from being divulged because of leakage of a secret key is to update the secret key. That type of technique has already been known, as disclosed in Patent literature 1.
PRIOR ART LITERATURE
Patent Literature
Patent literature 1: Japanese Patent Application Laid Open No. 2012-150287
SUMMARY OF THE INVENTION
Problems to be Solved by the Invention
Hardware such as a TPM and an HSM is, however, slow and often does not have sufficient capacity to store a large number of keys. The method of updating secret keys periodically or under a predetermined condition has the risk of leaking secret information from when a secret key has leaked until when that secret key is updated.
In view of these problems, it is an object of the present invention to reduce the risk of leaking secret information caused by leakage of a secret key.
A first segmented secret-key storage system according to the present invention includes an encryption apparatus which uses a public key PK to encrypt plaintext M and outputs ciphertext C; N segment storage apparatuses which record one of secret-key segments sk1, . . . , skN obtained by segmenting a secret key SK corresponding to the public key PK; and a combining device which obtains the plaintext M corresponding to the ciphertext C. It is first assumed that the relationship




  
    
      
        
          Dec
          ⁡
          
            (
            
              C
              ,
              SK
            
            )
          
        
        =
        
        ⁢
        
          Dec
          ⁡
          
            (
            
              C
              ,
              
                g
                ⁡
                
                  (
                  
                    
                      sk
                      1
                    
                    ,
                    ...
                    ⁢
                    
                      
                    
                    ,
                    
                      sk
                      N
                    
                  
                  )
                
              
            
            )
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          f
          ⁡
          
            (
            
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      1
                    
                  
                  )
                
              
              ,
              ...
              ⁢
              
                
              
              ,
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      N
                    
                  
                  )
                
              
            
            )
          
        
      
    
  




is satisfied, where N is an integer not less than 2, n is an integer between 1 and N, both inclusive, Dec(C, SK) is a symbol representing decryption of the ciphertext C with the secret key SK, g(sk1, . . . , skN) is a function of sk1, . . . , skN, and f(m1, . . . , mN) is a function of m1, . . . , mN. In the first segmented secret-key storage system, each of the segment storage apparatuses includes a decryption unit and a secret-key segment changing unit. The decryption unit uses the secret-key segment skn recorded in the segment storage apparatus to obtain a plaintext segment mn given by mn=Dec(C, skn) and sends the plaintext segment mn to the combining device. The secret-key segment changing unit obtains a set of secret-key segments (sk1′, . . . , skN′) which satisfies





  
    
      
        
          
            
              Dec
              ⁡
              
                (
                
                  C
                  ,
                  SK
                
                )
              
            
            =
            
            ⁢
            
              Dec
              (
              
                C
                ,
                
                  g
                  (
                  
                    sk
                    1
                  
                  ’
                
                ,
                ...
                ⁢
                
                  
                
                ,
                
                  sk
                  N
                
              
              ’
            
          
          )
        
        )
      
    
  
  
    
      
        
          
            
              =
              
              ⁢
              
                f
                ⁡
                
                  (
                  
                    Dec
                    (
                    
                      C
                      ,
                      
                        sk
                        1
                      
                    
                    ’
                  
                  )
                
              
            
            ,
            ...
            ⁢
            
              
            
            ,
            
              Dec
              (
              
                C
                ,
                
                  sk
                  N
                
              
              ’
            
          
          )
        
        )
      
    
  




and which differs from (sk1, . . . , skN) and changes the secret-key segment skn recorded in the segment storage apparatus to skn′. The combining device obtains the plaintext M given by M=f(m1, . . . , mN).

A second segmented secret-key storage system according to the present invention includes an encryption apparatus which uses a public key PK to encrypt plaintext M and outputs ciphertext C, and N segment storage apparatuses which record one of secret-key segments sk1, . . . , skN obtained by segmenting a secret key SK corresponding to the public key PK. It is first assumed that the relationships

Dec(C,SK)=Dec(C,g(sk1, . . . ,skN))

mN=Dec(C,skN)

mn=f(Dec(C,skn),mn+1)

M=m1 

are satisfied, where N is an integer not less than 2, n is an integer between 1 and N, both inclusive, Dec(C, SK) is a symbol representing decryption of the ciphertext C with the secret key SK, g(sk1, . . . , skN) is a function of sk1, . . . , skN, and f(Dec(C, skn), mn+1) is a function of Dec(C, skn) and mn+1. The segment storage apparatus which records the secret-key segment skN includes a decryption unit which uses the secret-key segment skN to obtain a plaintext segment mN given by mN=Dec(C, skN) and sends the plaintext segment mN to the segment storage apparatus which records the secret-key segment skn−1. The segment storage apparatus which records the secret-key segment skn (N is not less than 3, and n is 2 to N−1) includes a decryption unit which uses a plaintext segment mn+1 obtained from the segment storage apparatus which records the secret-key segment skn+1 and the secret-key segment skn to obtain a plaintext segment mn given by mn=f(Dec(C, skn), mn+1) and sends the plaintext segment mn to the segment storage apparatus which records the secret-key segment skn−1. The segment storage apparatus which records the secret-key segment sk1 includes a decryption unit which uses a plaintext segment m2 obtained from the segment storage apparatus which records the secret-key segment sk2 and the secret-key segment sk1 to obtain the plaintext M given by M=f(Dec(C, sk1), m2). Each of the segment storage apparatuses further includes a secret-key segment changing unit which obtains a set of secret-key segments (sk1′, . . . , skN′) which satisfies

Dec(C,SK)=Dec(C,g(sk1′, . . . ,skN′))

mN=Dec(C,skN′)

mn=f(Dec(C,skn′),mn+1)

M=m1 

and which differs from (sk1, . . . , skN) and changes the secret-key segment skn recorded in the segment storage apparatus to skn′.

A third segmented secret-key storage system according to the present invention includes N segment storage apparatuses which record one of secret-key segments sk1, . . . , skN obtained by segmenting a secret key SK, and a combining device which obtains a signature Σ for plaintext M. It is first assumed that the relationship




  
    
      
        
          Sig
          ⁡
          
            (
            
              M
              ,
              SK
            
            )
          
        
        =
        
        ⁢
        
          Sig
          ⁡
          
            (
            
              M
              ,
              
                g
                ⁡
                
                  (
                  
                    
                      sk
                      1
                    
                    ,
                    ...
                    ⁢
                    
                      
                    
                    ,
                    
                      sk
                      N
                    
                  
                  )
                
              
            
            )
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          f
          ⁡
          
            (
            
              
                Sig
                ⁡
                
                  (
                  
                    M
                    ,
                    
                      sk
                      1
                    
                  
                  )
                
              
              ,
              ...
              ⁢
              
                
              
              ,
              
                Sig
                ⁡
                
                  (
                  
                    M
                    ,
                    
                      sk
                      N
                    
                  
                  )
                
              
            
            )
          
        
      
    
  




is satisfied, where N is an integer not less than 2, n is an integer between 1 and N, both inclusive, Sig(M, SK) is a symbol representing generation of the signature Σ with the secret key SK, g(sk1, skN) is a function of sk1, . . . , skN, and f(σ1, . . . , σN) is a function of σ1, . . . , σN. Each of the segment storage apparatuses includes a generation unit and a secret-key segment changing unit. The generation unit uses the secret-key segment skn recorded in the segment storage apparatus to obtain a signature segment σn given by σn=Sig(M, skn) and sends the signature segment σn to the combining device. The secret-key segment changing unit obtains a set of secret-key segments (sk1′, . . . , skN′) which satisfies





  
    
      
        
          
            
              Sig
              ⁡
              
                (
                
                  M
                  ,
                  SK
                
                )
              
            
            =
            
            ⁢
            
              Sig
              (
              
                M
                ,
                
                  g
                  (
                  
                    sk
                    1
                  
                  ’
                
                ,
                ...
                ⁢
                
                  
                
                ,
                
                  sk
                  N
                
              
              ’
            
          
          )
        
        )
      
    
  
  
    
      
        
          
            
              =
              
              ⁢
              
                f
                ⁡
                
                  (
                  
                    Sig
                    (
                    
                      M
                      ,
                      
                        sk
                        1
                      
                    
                    ’
                  
                  )
                
              
            
            ,
            ...
            ⁢
            
              
            
            ,
            
              Sig
              (
              
                M
                ,
                
                  sk
                  N
                
              
              ’
            
          
          )
        
        )
      
    
  




and which differs from (sk1, . . . , skN) and changes the secret-key segment skn recorded in the segment storage apparatus to skn′. The combining device obtains the signature Σ given by Σ=f(σ1, . . . , σN).

A fourth segmented secret-key storage system according to the present invention includes N segment storage apparatuses which record one of secret-key segments sk1, . . . , skN obtained by segmenting a secret key SK, and generates a signature for plaintext M. It is first assumed that the relationships

Sig(M,SK)=Sig(M,g(sk1, . . . ,skN))

σN=Sig(M,skN)

σn=f(Sig(M,skn),σn+1 

Σ=σ1 

are satisfied, where N is an integer not less than 2, n is an integer between 1 and N, both inclusive, Sig(M, SK) is a symbol representing generation of a signature Σ with the secret key SK, g(sk1, . . . , skN) is a function of sk1, . . . , skN, and f(Sig(M, skn), σn+1) is a function of Sig(M, skn) and σn+1. The segment storage apparatus which records the secret-key segment skN includes a generation unit which uses the secret-key segment skN to obtain a signature segment σN given by σN=Sig(M, skN) and sends the signature segment σN to the segment storage apparatus which records the secret-key segment skn−1. The segment storage apparatus which records the secret-key segment skn (N is not less than 3 and n is 2 to N−1) includes a generation unit which uses a signature segment σn+1 obtained from the segment storage apparatus which records the secret-key segment skn+1 and the secret-key segment skn to obtain a signature segment σn given by σn=f(Sig(M, skn), σn+1) and sends the signature segment σn to the segment storage apparatus which records the secret-key segment skn−1. The segment storage apparatus which records the secret-key segment sk1 includes a generation unit which uses a signature segment σ2 obtained from the segment storage apparatus which records the secret-key segment sk2 and the secret-key segment sk1 to obtain the signature Σ given by Σ=f(Sig(M, sk1), σ2). Each of the segment storage apparatuses further includes a secret-key segment changing unit which obtains a set of secret-key segments (sk1′, . . . , skN′) that satisfies

Sig(M,SK)=Sig(M,g(sk1′, . . . ,skN′))

σN=Sig(M,skN′)

σn=f(Sig(M,skn′),σn+1)

Σ=σ1 

and that differs from (sk1, . . . , skN) and changes the secret-key segment skn recorded in the segment storage apparatus to skn′.

Effects of the Invention
According to a segmented secret-key storage system of the present invention, the secret key SK will not be revealed unless the secret-key segments are stolen from all the segment storage apparatuses in an interval between changes made to the secret-key segments. Accordingly, the risk of leakage can be greatly reduced in comparison with the risk of leakage of the secret key from a single apparatus.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a view showing an example of the functional configuration of a segmented secret-key storage system according to a first embodiment.
FIG. 2 is a view showing a processing flow of decrypting ciphertext to plaintext in the segmented secret-key storage system in the first embodiment.
FIG. 3 is a view showing a first example of a processing flow of changing secret-key segments in the present invention.
FIG. 4 is a view showing a second example of a processing flow of changing secret-key segments in the present invention.
FIG. 5 is a view showing a third example of a processing flow of changing secret-key segments in the present invention.
FIG. 6 is a view showing an example of the functional configuration of a segmented secret-key storage system according to a second embodiment.
FIG. 7 is a view showing a processing flow of decrypting ciphertext to plaintext in the segmented secret-key storage system in the second embodiment.
FIG. 8 is a view showing an example of the functional configuration of a segmented secret-key storage system according to a third embodiment.
FIG. 9 is a view showing a processing flow of generating a signature in the segmented secret-key storage system in the third embodiment.
FIG. 10 is a view showing an example of the functional configuration of a segmented secret-key storage system according to a fourth embodiment.
FIG. 11 is a view showing a processing flow of generating a signature in the segmented secret-key storage system in the fourth embodiment.



DETAILED DESCRIPTION OF THE EMBODIMENTS
Now, embodiments of the present invention will be described in detail. Components having identical functions will be denoted by the same reference numbers, and a duplicate description of those components will be avoided.
First Embodiment
FIG. 1 shows an example of the functional configuration of a segmented secret-key storage system in a first embodiment. FIG. 2 shows a processing flow of decrypting ciphertext to plaintext, and FIGS. 3 to 5 show examples of a processing flow of changing secret-key segments. The segmented secret-key storage system in the first embodiment includes an encryption apparatus 600, N segment storage apparatuses 1001, . . . , 100N, and a combining device 130, which are connected by a network 900. The encryption apparatus 600 uses a public key PK to encrypt plaintext M and outputs ciphertext C. The segment storage apparatus 100n records a secret-key segment skn among secret-key segments sk1, . . . , skN obtained by segmenting a secret key SK corresponding to the public key PK. The combining device 130 obtains plaintext M corresponding to the ciphertext C. In FIG. 1, the combining device 130 is represented by a dotted box and is shown in different places. The combining device 130 may be a single independent apparatus or may be disposed in any segment storage apparatus 100n. A plurality of apparatuses may include the combining device 130, and the combining device 130 to be used may be selected in each decryption processing flow.
Suppose here that the relationship




  
    
      
        
          Dec
          ⁡
          
            (
            
              C
              ,
              SK
            
            )
          
        
        =
        
        ⁢
        
          Dec
          ⁡
          
            (
            
              C
              ,
              
                g
                ⁡
                
                  (
                  
                    
                      sk
                      1
                    
                    ,
                    ...
                    ⁢
                    
                      
                    
                    ,
                    
                      sk
                      N
                    
                  
                  )
                
              
            
            )
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          f
          ⁡
          
            (
            
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      1
                    
                  
                  )
                
              
              ,
              ...
              ⁢
              
                
              
              ,
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      N
                    
                  
                  )
                
              
            
            )
          
        
      
    
  




holds, where N is an integer not less than 2, n is an integer between 1 and N, both inclusive, Dec(C, SK) is a symbol representing decryption of the ciphertext C with the secret key SK, g(sk1, . . . , skN) is a function of sk1, . . . , skN, f(m1, . . . , mN) is a function of m1, . . . , mN, and ^ is a symbol representing a power.

Each segment storage apparatus 100n includes a decryption unit 110n, a secret-key segment changing unit 120n, and a recording unit 190n. The recording unit 190n records the secret-key segment skn. The decryption unit 110n uses the secret-key segment skn to obtain a plaintext segment mn given by mn=Dec(C, skn) and sends the plaintext segment mn to the combining device 130 (S110n). The combining device 130 obtains the plaintext M given by M=f(m1, . . . , mN) (S130).
The secret-key segment changing unit 120n obtains, periodically or under a predetermined condition, a set of secret-key segments (sk1′, . . . , skN′) which satisfies




  
    
      
        
          
            
              Dec
              ⁡
              
                (
                
                  C
                  ,
                  SK
                
                )
              
            
            =
            
            ⁢
            
              Dec
              (
              
                C
                ,
                
                  g
                  (
                  
                    sk
                    1
                  
                  ’
                
                ,
                ...
                ⁢
                
                  
                
                ,
                
                  sk
                  N
                
              
              ’
            
          
          )
        
        )
      
    
  
  
    
      
        
          
            
              =
              
              ⁢
              
                f
                ⁡
                
                  (
                  
                    Dec
                    (
                    
                      C
                      ,
                      
                        sk
                        1
                      
                    
                    ’
                  
                  )
                
              
            
            ,
            ...
            ⁢
            
              
            
            ,
            
              Dec
              (
              
                C
                ,
                
                  sk
                  N
                
              
              ’
            
          
          )
        
        )
      
    
  




and which differs from (sk1, . . . , skN), and updates the secret-key segment skn recorded in the recording unit 190n to skn′ (S120n). The predetermined condition can be when decryption has been carried out a given number of times, for example, and can be specified as desired. For example, if functions g and f are defined to satisfy





  
    
      
        
          Dec
          ⁡
          
            (
            
              C
              ,
              SK
            
            )
          
        
        =
        
        ⁢
        
          Dec
          ⁡
          
            (
            
              C
              ,
              
                g
                ⁡
                
                  (
                  
                    
                      sk
                      1
                      ′
                    
                    ,
                    ...
                    ⁢
                    
                      
                    
                    ,
                    
                      sk
                      N
                      ′
                    
                  
                  )
                
              
            
            )
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          f
          ⁡
          
            (
            
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      1
                      ′
                    
                  
                  )
                
              
              ,
              ...
              ⁢
              
                
              
              ,
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      N
                      ′
                    
                  
                  )
                
              
            
            )
          
        
      
    
  




when the relationship

SK=sk1+ . . . +skN 

holds, the secret-key segment changing unit 120n should obtain a set of secret-key segments (sk1′, . . . , skN′) that satisfies

sk1′+ . . . +skN′=sk1+ . . . +skN 

Alternatively, if functions g and f are defined to satisfy





  
    
      
        
          Dec
          ⁡
          
            (
            
              C
              ,
              SK
            
            )
          
        
        =
        
        ⁢
        
          Dec
          ⁡
          
            (
            
              C
              ,
              
                g
                ⁡
                
                  (
                  
                    
                      sk
                      1
                      ′
                    
                    ,
                    ...
                    ⁢
                    
                      
                    
                    ,
                    
                      sk
                      N
                      ′
                    
                  
                  )
                
              
            
            )
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          f
          ⁡
          
            (
            
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      1
                      ′
                    
                  
                  )
                
              
              ,
              ...
              ⁢
              
                
              
              ,
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      N
                      ′
                    
                  
                  )
                
              
            
            )
          
        
      
    
  




when the relationship

SK=sk1+ . . . +skN mod q 

holds, the secret-key segment changing unit 120n should obtain a set of secret-key segments (sk1′, . . . , skN′) that satisfies

sk1′+ . . . +skN′ mod q=sk1+ . . . +skN mod q 

In the processing flow of changing the secret-key segments as shown in FIG. 3, αn is a change part to be applied to the secret-key segment in the segment storage apparatus 100n, and the segment storage apparatuses 1001 to 100N obtain α1 to αN that satisfy

α1+ . . . +αN=0

or

α1+ . . . +αN mod q=0

and the segment storage apparatus 100n obtains αn (S121). Then, the secret-key segment changing unit 120n changes the secret-key segment according to

skn′=skn+αn 

(S122n).
In the processing flow of changing the secret-key segments shown in FIG. 4, two segment storage apparatuses 100i and 100j are selected, where i and j are integers between 1 and N, both inclusive, and i≠j. When N=2, i=1 and j=2, or i=2 and j=1. The segment storage apparatuses 100i and 100j record the same change part α (S121ij). The secret-key segment changing unit 120i of the segment storage apparatus 100i changes the secret-key segment according to

sk1′=sk1+α

and the secret-key segment changing unit 120j of the segment storage apparatus 100j changes the secret-key segment according to

skj′=skj−α

(S122ij). It is checked whether all the segment storage apparatuses have been selected, and it is determined whether to repeat the steps (S124). Through the repetition of the steps, all the secret-key segments are changed. In this way of recording the same value α in two segment storage apparatuses and using α to change the secret-key segments ski and skj to sk1′ and skj′, respectively, an authentication key exchange protocol can be used in the step of recording the same value α (S121ij). With the authentication key exchange protocol, α is defined by using random numbers generated by both the segment storage apparatus 100i and the segment storage apparatus 100j, and neither segment storage apparatus can define α arbitrarily. Consequently, security can be improved.
The processing flow of changing the secret-key segments shown in FIG. 5 is the processing flow in the case where N=2. In that case, there is no need to select the segment storage apparatuses, and the segment storage apparatuses 1001 and 1002 record the same change part α (S121). The secret-key segment changing unit 1201 of the segment storage apparatus 1001 changes the secret-key segment according to

sk1′=sk1+α

and the secret-key segment changing unit 1202 of the segment storage apparatus 1002 changes the secret-key segment according to

sk2′=sk2−α

(S122). Here, in the step of recording the same value α (S121), the authentication key exchange protocol can be used.

According to the segmented secret-key storage system in the first embodiment, the secret key SK is not revealed unless the secret-key segments are stolen from all the segment storage apparatuses in an interval between changes made to the secret-key segments. Accordingly, the risk of leakage can be greatly reduced in comparison with the risk of leakage of the secret key from a single apparatus.
An existing single decryption apparatus that records the secret key SK can migrate to the segment storage apparatus 100N in the first embodiment through the following procedure: Add the secret-key segment changing unit 120N to the existing decryption apparatus; and connect the segment storage apparatuses 1001 to 100N-1 in which the recording units 1901 to 190N-1 record sk1= . . . =skN-1=0, to the network 900. This configuration sets the initial state to skn=SK and sk1= . . . =skN-1=0. Then, when the secret key is segmented by changing the first set of secret-key segments (sk1, . . . , skN), the segmented secret-key storage system in the first embodiment can be configured. It is thus easy to migrate to the segmented secret-key storage system in the first embodiment from the existing system.
Examples of Applicable Encryption Methods
When the segmented secret-key storage system in the first embodiment is implemented, the relationship




  
    
      
        
          Dec
          ⁡
          
            (
            
              C
              ,
              SK
            
            )
          
        
        =
        
        ⁢
        
          Dec
          ⁡
          
            (
            
              C
              ,
              
                g
                ⁡
                
                  (
                  
                    
                      sk
                      1
                    
                    ,
                    ...
                    ⁢
                    
                      
                    
                    ,
                    
                      sk
                      N
                    
                  
                  )
                
              
            
            )
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          f
          ⁡
          
            (
            
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      1
                    
                  
                  )
                
              
              ,
              ...
              ⁢
              
                
              
              ,
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      N
                    
                  
                  )
                
              
            
            )
          
        
      
    
  




must hold. Encryption methods that satisfy the relationship will be indicated below. Other encryption methods are also applicable so long as the relationship is satisfied.

(1) RSA Encryption
In RSA encryption, plaintext M and ciphertext C satisfy the relationships

C=M^e mod q 

M=Dec(C,d)=C^d mod q 

where q is the composite (product) of two large prime numbers, {q, e} is the public key PK, and d is the secret key SK. If functions g and f are defined as

g(sk1, . . . ,skN)=sk1+ . . . +skN 

f(Dec(C,sk1), . . . ,Dec(C,skN))=Dec(C,sk1)× . . . ×Dec(C,skN)mod q 

and if a set of secret-key segments (sk1, . . . , skN) is selected to satisfy

d=SK=sk1+ . . . +skN 

then





  
    f
    ⁡
    
      (
      
        
          Dec
          ⁡
          
            (
            
              C
              ,
              
                sk
                1
              
            
            )
          
        
        ,
        ...
        ⁢
        
          
        
        ,
        
          Dec
          ⁡
          
            (
            
              C
              ,
              
                sk
                N
              
            
            )
          
        
      
      )
    
  
  =
  
    
      
        C
        ^
        
          (
          
            
              sk
              1
            
            +
            ...
            +
            
              sk
              N
            
          
          )
        
      
      ⁢
      
        
      
      ⁢
      mod
      ⁢
      
        
      
      ⁢
      q
    
    =
    M
  




because

Dec(C,skn)=C^skn mod q 

Therefore,





  
    
      
        
          Dec
          ⁡
          
            (
            
              C
              ,
              SK
            
            )
          
        
        =
        
        ⁢
        
          Dec
          ⁡
          
            (
            
              C
              ,
              
                g
                ⁡
                
                  (
                  
                    
                      sk
                      1
                    
                    ,
                    ...
                    ⁢
                    
                      
                    
                    ,
                    
                      sk
                      N
                    
                  
                  )
                
              
            
            )
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          f
          ⁡
          
            (
            
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      1
                    
                  
                  )
                
              
              ,
              ...
              ⁢
              
                
              
              ,
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      N
                    
                  
                  )
                
              
            
            )
          
        
      
    
  




holds.

(2) ElGamal Encryption
In ElGamal encryption, when the public key PK is {g, h}, the secret key SK is x, and r is a random number (h=g^x; x and r are integers between 0 and q−1, both inclusive; q is the order of a cyclic group G; g is the generator of the cyclic group G), plaintext M and ciphertext C, which are elements of the cyclic group G, satisfy these relationships

C={C1,C2}={g^r,Mh^r}

M=Dec(C,x)=C2/(C1^x)

If functions g and f are defined as

g(sk1, . . . ,skN)=sk1+ . . . +skN mod q 

f(Dec(C,sk1), . . . ,Dec(C,skN))=Dec(C,sk1)× . . . ×Dec(C,skN)/(C2^(N−1))

and if a set of secret-key segments (sk1, . . . , skN) is selected to satisfy

x=SK=sk1+ . . . +skN mod q 

then





  
    f
    ⁡
    
      (
      
        
          Dec
          ⁡
          
            (
            
              C
              ,
              
                sk
                1
              
            
            )
          
        
        ,
        ...
        ⁢
        
          
        
        ,
        
          Dec
          ⁡
          
            (
            
              C
              ,
              
                sk
                N
              
            
            )
          
        
      
      )
    
  
  =
  
    
      
        
          C
          2
        
        /
        
          (
          
            
              C
              1
            
            ^
            
              sk
              1
            
          
          )
        
      
      ×
      ...
      ×
      
        
          
            C
            2
          
          /
          
            (
            
              
                C
                1
              
              ^
              
                sk
                N
              
            
            )
          
        
        /
        
          (
          
            
              C
              2
            
            ^
            
              (
              
                N
                -
                1
              
              )
            
          
          )
        
      
    
    =
    
      
        
          C
          2
        
        /
        
          (
          
            
              C
              1
            
            ^
            
              (
              
                
                  sk
                  1
                
                +
                ...
                +
                
                  sk
                  N
                
              
              )
            
          
          )
        
      
      =
      M
    
  




because

Dec(C,skn)=C2/(C1^skn)

Therefore,





  
    
      
        
          Dec
          ⁡
          
            (
            
              C
              ,
              SK
            
            )
          
        
        =
        
        ⁢
        
          Dec
          ⁡
          
            (
            
              C
              ,
              
                g
                ⁡
                
                  (
                  
                    
                      sk
                      1
                    
                    ,
                    ...
                    ⁢
                    
                      
                    
                    ,
                    
                      sk
                      N
                    
                  
                  )
                
              
            
            )
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          f
          ⁡
          
            (
            
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      1
                    
                  
                  )
                
              
              ,
              ...
              ⁢
              
                
              
              ,
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      N
                    
                  
                  )
                
              
            
            )
          
        
      
    
  




holds.

(3) Elliptic Curve ElGamal Encryption
In elliptic curve ElGamal encryption, when the public key PK is {G, H}, the secret key SK is x, and r is a random number (H=xG; x is an integer between 1 and q−1, both inclusive; r is an integer between 0 and q−1, both inclusive, q is the order of a base point G on the elliptic curve), plaintext M and ciphertext C satisfy these relationships

C={C1,C2}={rG,M+rH}

M=Dec(C,x)=C2−xC1 

If functions g and f are defined as

g(sk1, . . . ,skN)=sk1+ . . . +skN mod q 

f(Dec(C,sk1), . . . ,Dec(C,skN))=Dec(C,sk1)+ . . . +Dec(C,skN)−(N−1)C2 

and if a set of secret-key segments (sk1, . . . , skN) is selected to satisfy

x=SK=sk1+ . . . +skN mod q 

then





  
    f
    ⁡
    
      (
      
        
          Dec
          ⁡
          
            (
            
              C
              ,
              
                sk
                1
              
            
            )
          
        
        ,
        ...
        ⁢
        
          
        
        ,
        
          Dec
          ⁡
          
            (
            
              C
              ,
              
                sk
                N
              
            
            )
          
        
      
      )
    
  
  =
  
    
      
        C
        2
      
      -
      
        
          sk
          1
        
        ⁢
        
          C
          1
        
      
      +
      ...
      +
      
        C
        2
      
      -
      
        
          sk
          N
        
        ⁢
        
          C
          1
        
      
      -
      
        
          (
          
            N
            -
            1
          
          )
        
        ⁢
        
          C
          2
        
      
    
    =
    
      
        
          C
          2
        
        -
        
          
            (
            
              
                sk
                1
              
              +
              ...
              +
              
                sk
                N
              
            
            )
          
          ⁢
          
            C
            1
          
        
      
      =
      M
    
  




because

Dec(C,sk)=C2−SknC1 

Therefore,





  
    
      
        
          Dec
          ⁡
          
            (
            
              C
              ,
              SK
            
            )
          
        
        =
        
        ⁢
        
          Dec
          ⁡
          
            (
            
              C
              ,
              
                g
                ⁡
                
                  (
                  
                    
                      sk
                      1
                    
                    ,
                    ...
                    ⁢
                    
                      
                    
                    ,
                    
                      sk
                      N
                    
                  
                  )
                
              
            
            )
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          f
          ⁡
          
            (
            
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      1
                    
                  
                  )
                
              
              ,
              ...
              ⁢
              
                
              
              ,
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      N
                    
                  
                  )
                
              
            
            )
          
        
      
    
  




holds.

(4) ID-Based Encryption
In ID-based encryption, when the public key PK is {PID, P, Q}, the secret key SK is SID, and r is a random number (SID=sPID; Q=sP; PID is a point on an elliptic curve of order q transformed from ID by using a hash function; P is the generator of a subgroup on the elliptic curve; s is the master secret key; e(,) represents pairing on the elliptic curve), plaintext M and ciphertext C satisfy the relationships

C={C1,C2}={rP,M×e(PID,rQ)}

M=Dec(C,SID)=C2×e(SID,C1)−1 

If functions g and f are defined as

g(sk1, . . . ,skN)=sk1+ . . . +skN mod q 

f(Dec(C,sk1),Dec(C,skN))=Dec(C,sk1)× . . . ×Dec(C,skN)/(C2^(N−1))

and if a set of secret-key segments (sk1, . . . , skN) is selected to satisfy

SID=SK=sk1+ . . . +skN mod q 

then





  
    f
    ⁡
    
      (
      
        
          Dec
          ⁡
          
            (
            
              C
              ,
              
                sk
                1
              
            
            )
          
        
        ,
        ...
        ⁢
        
          
        
        ,
        
          Dec
          ⁡
          
            (
            
              C
              ,
              
                sk
                N
              
            
            )
          
        
      
      )
    
  
  =
  
    
      
        C
        2
      
      ×
      
        
          e
          ⁡
          
            (
            
              
                sk
                1
              
              ,
              
                C
                1
              
            
            )
          
        
        
          -
          1
        
      
      ×
      ...
      ×
      
        C
        2
      
      ×
      
        
          
            e
            ⁡
            
              (
              
                
                  sk
                  N
                
                ,
                
                  C
                  1
                
              
              )
            
          
          
            -
            1
          
        
        /
        
          (
          
            
              C
              2
            
            ^
            
              (
              
                N
                -
                1
              
              )
            
          
          )
        
      
    
    =
    
      
        
          C
          2
        
        ×
        
          
            e
            ⁡
            
              (
              
                
                  
                    sk
                    1
                  
                  +
                  ...
                  +
                  
                    sk
                    N
                  
                
                ,
                
                  C
                  1
                
              
              )
            
          
          
            -
            1
          
        
      
      =
      M
    
  




because

Dec(C,skn)=C2×e(skn,C1)−1 

Therefore,





  
    
      
        
          Dec
          ⁡
          
            (
            
              C
              ,
              SK
            
            )
          
        
        =
        
        ⁢
        
          Dec
          ⁡
          
            (
            
              C
              ,
              
                g
                ⁡
                
                  (
                  
                    
                      sk
                      1
                    
                    ,
                    ...
                    ⁢
                    
                      
                    
                    ,
                    
                      sk
                      N
                    
                  
                  )
                
              
            
            )
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          f
          ⁡
          
            (
            
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      1
                    
                  
                  )
                
              
              ,
              ...
              ⁢
              
                
              
              ,
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      N
                    
                  
                  )
                
              
            
            )
          
        
      
    
  




holds.

Second Embodiment
FIG. 6 shows an example of the functional configuration of a segmented secret-key storage system in a second embodiment, and FIG. 7 shows a processing flow of decrypting ciphertext to plaintext. Examples of a processing flow of changing secret-key segments are as shown in FIGS. 3 to 5. The segmented secret-key storage system in the second embodiment includes an encryption apparatus 600 and N segment storage apparatuses 2001, . . . , 200N, which are connected by a network 900. The encryption apparatus 600 uses a public key PK to encrypt plaintext M and outputs ciphertext C. The segment storage apparatus 200n records a secret-key segment skn among secret-key segments sk1, . . . , skN obtained by segmenting a secret key SK corresponding to the public key PK.
Suppose here that the relationships

Dec(C,SK)=Dec(C,g(sk1, . . . ,skN))

mN=Dec(C,skN)

mn=f(Dec(C,skn),mn+1)

M=m1 

hold, where N is an integer not less than 2, n is an integer between 1 and N, both inclusive, Dec(C, SK) is a symbol representing decryption of ciphertext C with the secret key SK, g(sk1, . . . , skN) is a function of sk1, . . . , skN, f(Dec(C, skn), mn+1) is a function of Dec(C, skn) and mn+1, and ^ is a symbol representing a power.

Each segment storage apparatus 200n includes a decryption unit 210n, a secret-key segment changing unit 120n, and a recording unit 190n. The recording unit 190n records the secret-key segment skn. The decryption unit 210N of the segment storage apparatus 200N uses the secret-key segment skN to obtain a plaintext segment mN given by mN=Dec(C, skN) and sends the plaintext segment mN to the segment storage apparatus 200N-1 (S210N).
The decryption unit 210n of the segment storage apparatus 200n (n=2, . . . , N−1) uses the plaintext segment mn+1 obtained from the segment storage apparatus 200n+1 and the secret-key segment skn to obtain a plaintext segment mn as mn=f(Dec(C, skn), mn+1), and sends the plaintext segment mn to the segment storage apparatus 200n−1 (S210n). However, when N=2, the segment storage apparatus 200n (n=2, . . . , N−1) is not present.
The decryption unit 2101 of the segment storage apparatus 2001 uses the plaintext segment m2 obtained from the segment storage apparatus 2002 and the secret-key segment sk1 to obtain plaintext M given by M=f(Dec(C, sk1), m2) (S2101).
The secret-key segment changing unit 120n obtains, periodically or under a predetermined condition, a set of secret-key segments (sk1′, . . . , skN′) which satisfies the relationships

Dec(C,SK)=Dec(C,g(sk1′, . . . ,skN′))

mN=Dec(C,skN′)

mn=f(Dec(C,skn′),mn+1)

M=m1 

and which differs from (sk1, . . . , skN), and updates the secret-key segment skn recorded in the recording unit 190n to skn′ (S120n). For example, if functions g and f are defined to satisfy

Dec(C,SK)=Dec(C,g(sk1, . . . ,skN))

mN=Dec(C,skN)

mn=f(Dec(C,skn),mn+1)

M=m1 

when the relationship

SK=sk1+ . . . +skN 

holds, a set of secret-key segments (sk1′, . . . , skN′) that satisfies

sk1′+ . . . +skN′=sk1+ . . . +skN 

should be obtained. Alternatively, if functions g and f are defined to satisfy

Dec(C,SK)=Dec(C,g(sk1, . . . ,skN))

mN=Dec(C,skN)

mn=f(Dec(C,skn),mn+1)

M=m1 

when the relationship

SK=sk1+ . . . +skN mod q 

holds, a set of secret-key segments (sk1′, . . . , skN′) that satisfies

sk1′+ . . . +skN′ mod q=sk1+ . . . +skN mod q 

should be obtained. In those examples, the requirements of the set of segments (sk1′, . . . , skN′) are the same as those in the first embodiment, and the flow of changing the set of segments (sk1′, . . . , skN′) is the same as in the first embodiment (FIGS. 3 to 5).

According to the segmented secret-key storage system in the second embodiment, the secret key SK is not revealed unless the secret-key segments are stolen from all the segment storage apparatuses in an interval between changes made to the secret-key segments. Accordingly, the risk of leakage can be greatly reduced in comparison with the risk of leakage of the secret key from a single apparatus.
An existing single decryption apparatus that records the secret key SK can migrate to the segment storage apparatus 200N in the second embodiment through the following procedure: Add the secret-key segment changing unit 120N to the existing decryption apparatus; and connect the segment storage apparatuses 2001 to 200N-1 in which the recording units 1901 to 190N-1 record sk1==skN-1=0, to the network 900. This configuration sets the initial state to skN=SK and sk1==skN-1=0. Then, when the secret key is segmented by changing the first set of secret-key segments (sk1, . . . , skN), the segmented secret-key storage system in the second embodiment can be configured. It is thus easy to migrate to the segmented secret-key storage system in the second embodiment from the existing system.
Examples of applicable encryption methods
When the segmented secret-key storage system in the second embodiment is implemented, the relationships

Dec(C,SK)=Dec(C,g(sk1, . . . ,skN))

mN=Dec(C,skN)

mn=f(Dec(C,skn),mn+1)

M=m1 

must hold. Encryption methods that satisfy the relationships will be indicated below. Other encryption methods are also applicable so long as the relationships are satisfied.

(1) RSA Encryption
In RSA encryption, plaintext M and ciphertext C satisfy the relationships

C=M^e mod q 

M=Dec(C,d)=C^d mod q 

where q is the composite (product) of two large prime numbers, {q, e} is the public key, and d is the secret key SK. If functions g and f are defined as

g(sk1, . . . ,skN)=sk1+ . . . +skN 

f(Dec(C,sk),mn+1)=Dec(C,skn)×mn+1 mod q 

and if a set of secret-key segments (sk1, . . . , skN) is selected to satisfy

d=SK=sk1+ . . . +skN 

then





  
    
      
        
          m
          
            N
            -
            1
          
        
        =
        
        ⁢
        
          f
          ⁡
          
            (
            
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      
                        N
                        -
                        1
                      
                    
                  
                  )
                
              
              ,
              
                m
                N
              
            
            )
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          
            C
            ^
            
              (
              
                
                  sk
                  
                    N
                    -
                    1
                  
                
                +
                
                  sk
                  N
                
              
              )
            
          
          ⁢
          
            
          
          ⁢
          mod
          ⁢
          
            
          
          ⁢
          q
        
      
    
  




because

mN=Dec(C,skN)=C^skN mod q 

This is repeated to provide





  
    
      
        
          m
          n
        
        =
        
        ⁢
        
          f
          ⁡
          
            (
            
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      n
                    
                  
                  )
                
              
              ,
              
                m
                
                  n
                  +
                  1
                
              
            
            )
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          
            C
            ^
            
              (
              
                
                  sk
                  n
                
                +
                ...
                +
                
                  sk
                  N
                
              
              )
            
          
          ⁢
          
            
          
          ⁢
          mod
          ⁢
          
            
          
          ⁢
          q
        
      
    
  




and then





  
    
      
        
          m
          1
        
        =
        
        ⁢
        
          
            C
            ^
            
              (
              
                
                  sk
                  1
                
                +
                ...
                +
                
                  sk
                  N
                
              
              )
            
          
          ⁢
          
            
          
          ⁢
          mod
          ⁢
          
            
          
          ⁢
          q
        
      
    
  
  
    
      
        =
        
        ⁢
        M
      
    
  




Therefore,

Dec(C,SK)=Dec(C,g(sk1, . . . ,skN))

mN=Dec(C,skN)

mn=f(Dec(C,skn),mn+1)

M=m1 

hold.

(2) ElGamal Encryption
In ElGamal encryption, when the public key PK is {g, h}, the secret key SK is x, and r is a random number (h=g^x; x and r are integers between 0 and q−1, both inclusive; q is the order of a cyclic group G; g is the generator of the cyclic group G), plaintext M and ciphertext C, which are elements of the cyclic group G, satisfy these relationships

C={C1,C2}={g^r,Mh^r}

M=Dec(C,x)=C2/(C1^x)

If functions g and f are defined as

g(sk1, . . . ,skN)=sk1+ . . . +skN mod q 

f(Dec(C,skn),mn+1)=(Dec(C,skn)×mn+1)/C2 

and if a set of secret-key segments (sk1, . . . , skN) is selected to satisfy

x=SK=sk1+ . . . +skN mod q 

then





  
    
      
        
          m
          
            N
            -
            1
          
        
        =
        
        ⁢
        
          f
          ⁡
          
            (
            
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      
                        N
                        -
                        1
                      
                    
                  
                  )
                
              
              ,
              
                m
                N
              
            
            )
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          
            (
            
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      
                        N
                        -
                        1
                      
                    
                  
                  )
                
              
              ×
              
                m
                N
              
            
            )
          
          /
          
            C
            2
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          
            (
            
              
                
                  C
                  2
                
                /
                
                  (
                  
                    
                      C
                      1
                    
                    ^
                    
                      sk
                      
                        N
                        -
                        1
                      
                    
                  
                  )
                
              
              ×
              
                
                  C
                  2
                
                /
                
                  (
                  
                    
                      C
                      1
                    
                    ^
                    
                      sk
                      N
                    
                  
                  )
                
              
            
            )
          
          /
          
            C
            2
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          
            C
            2
          
          /
          
            (
            
              
                (
                
                  
                    C
                    1
                  
                  ^
                  
                    sk
                    
                      N
                      -
                      1
                    
                  
                
                )
              
              ⁢
              
                (
                
                  
                    C
                    1
                  
                  ^
                  
                    sk
                    N
                  
                
                )
              
            
            )
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          
            C
            2
          
          /
          
            (
            
              
                C
                1
              
              ^
              
                (
                
                  
                    sk
                    
                      N
                      -
                      1
                    
                  
                  +
                  
                    sk
                    N
                  
                
                )
              
            
            )
          
        
      
    
  




because

mN=Dec(C,skN)=C2/(C1^skN)mod q 

This is repeated to provide





  
    
      
        
          m
          n
        
        =
        
        ⁢
        
          f
          ⁡
          
            (
            
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      n
                    
                  
                  )
                
              
              ,
              
                m
                
                  n
                  +
                  1
                
              
            
            )
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          
            C
            2
          
          /
          
            (
            
              
                C
                1
              
              ⁢
              
                
                  
                
                ⋀
              
              ⁢
              
                (
                
                  
                    sk
                    n
                  
                  +
                  ...
                  +
                  
                    sk
                    N
                  
                
                )
              
            
            )
          
        
      
    
  




and then





  
    
      
        
          m
          1
        
        =
        
        ⁢
        
          
            C
            2
          
          /
          
            (
            
              
                C
                1
              
              ⁢
              
                
                  
                
                ⋀
              
              (
              
                
                  sk
                  1
                
                +
                ...
                +
                
                  sk
                  N
                
              
              )
            
            )
          
        
      
    
  
  
    
      
        =
        
        ⁢
        M
      
    
  




Therefore,

Dec(C,SK)=Dec(C,g(sk1, . . . ,skN))

mN=Dec(C,skN)

mn=f(Dec(C,skn),mn+1)

M=m1 

hold.

(3) Elliptic Curve ElGamal Encryption
In elliptic curve ElGamal encryption, when the public key PK is {G, H}, the secret key SK is x, and r is a random number (H=xG; x is an integer between 1 and q−1, both inclusive; r is an integer between 0 and q−1, both inclusive, q is the order of a base point G on the elliptic curve), plaintext M and ciphertext C satisfy these relationships

C={C1,C2}={rG,M+rH}

M=Dec(C,x)=C2−XC1 

If functions g and f are defined as

g(sk1, . . . ,skN)=sk1+ . . . +skN mod q 

f(Dec(C,skn),mn+1)=Dec(C,skn)+mn+1C2 

and if a set of secret-key segments (sk1, . . . , skN) is selected to satisfy

x=SK=sk1+ . . . +skN mod q 

then





  
    
      
        
          m
          
            N
            -
            1
          
        
        =
        
        ⁢
        
          f
          ⁡
          
            (
            
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      
                        N
                        -
                        1
                      
                    
                  
                  )
                
              
              ,
              
                m
                N
              
            
            )
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          
            Dec
            ⁡
            
              (
              
                C
                ,
                
                  sk
                  
                    N
                    -
                    1
                  
                
              
              )
            
          
          +
          
            m
            N
          
          -
          
            C
            2
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          
            C
            2
          
          -
          
            
              sk
              
                N
                -
                1
              
            
            ⁢
            
              C
              1
            
          
          +
          
            C
            2
          
          -
          
            
              sk
              N
            
            ⁢
            
              C
              1
            
          
          -
          
            C
            2
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          
            C
            2
          
          -
          
            
              sk
              
                N
                -
                1
              
            
            ⁢
            
              C
              1
            
          
          -
          
            
              sk
              N
            
            ⁢
            
              C
              1
            
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          
            C
            2
          
          -
          
            
              (
              
                
                  sk
                  
                    N
                    -
                    1
                  
                
                +
                
                  sk
                  N
                
              
              )
            
            ⁢
            
              C
              1
            
          
        
      
    
  




because

mN=Dec(C,skN)=C2−skNC1 

This is repeated to provide





  
    
      
        
          m
          n
        
        =
        
        ⁢
        
          f
          ⁡
          
            (
            
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      n
                    
                  
                  )
                
              
              ,
              
                m
                
                  n
                  +
                  1
                
              
            
            )
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          
            C
            2
          
          -
          
            
              (
              
                
                  sk
                  n
                
                +
                ...
                +
                
                  sk
                  N
                
              
              )
            
            ⁢
            
              C
              1
            
          
        
      
    
  




and then





  
    
      
        
          m
          1
        
        =
        
        ⁢
        
          
            C
            2
          
          -
          
            
              (
              
                
                  sk
                  1
                
                +
                ...
                +
                
                  sk
                  N
                
              
              )
            
            ⁢
            
              C
              1
            
          
        
      
    
  
  
    
      
        =
        
        ⁢
        M
      
    
  




Therefore,

Dec(C,SK)=Dec(C,g(sk1, . . . ,skN))

mN=Dec(C,skN)

mn=f(Dec(C,skn),mn+1)

M=m1 

hold.

(4) ID-Based Encryption
In ID-based encryption, when the public key PK is {PID, P, Q}, the secret key SK is SID, and r is a random number (SID=sPID; Q=sP; PID is a point on an elliptic curve of order q transformed from ID by using a hash function; P is the generator of a subgroup on the elliptic curve; s is the master secret key; e(,) represents pairing on the elliptic curve), plaintext M and ciphertext C satisfy these relationships

C={C1,C2}={rP,M×e(PID,rQ)}

M=Dec(C,SID)=C2×e(SID,C1)−1 

If functions g and f are defined as

g(sk1, . . . ,skN)=sk1+ . . . +sky mod q 

f(Dec(C,skn),mn+1)=(Dec(C,skn)×mn+1)/C2 

and if a set of secret-key segments (sk1, . . . , sky) is selected to satisfy

SID=SK=sk1+ . . . +sky mod q 

then





  
    
      
        
          m
          
            N
            -
            1
          
        
        =
        
        ⁢
        
          f
          ⁡
          
            (
            
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      
                        N
                        -
                        1
                      
                    
                  
                  )
                
              
              ,
              
                m
                N
              
            
            )
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          
            (
            
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      
                        N
                        -
                        1
                      
                    
                  
                  )
                
              
              +
              
                m
                N
              
            
            )
          
          /
          
            C
            2
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          (
          
            
              C
              2
            
            ×
            
              
                e
                ⁡
                
                  (
                  
                    
                      sk
                      
                        N
                        -
                        1
                      
                    
                    ,
                    
                      C
                      1
                    
                  
                  )
                
              
              
                -
                1
              
            
            ×
            
              C
              2
            
            ×
            
              
                
                  e
                  ⁡
                  
                    (
                    
                      
                        sk
                        N
                      
                      ,
                      
                        C
                        1
                      
                    
                    )
                  
                
                
                  -
                  1
                
              
              /
              
                C
                2
              
            
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          
            C
            2
          
          ×
          
            
              e
              ⁡
              
                (
                
                  
                    sk
                    
                      N
                      -
                      1
                    
                  
                  ,
                  
                    C
                    1
                  
                
                )
              
            
            
              -
              1
            
          
          ⁢
          
            
              e
              ⁡
              
                (
                
                  
                    sk
                    N
                  
                  ,
                  
                    C
                    1
                  
                
                )
              
            
            
              -
              1
            
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          
            C
            2
          
          ×
          
            
              e
              ⁡
              
                (
                
                  
                    
                      sk
                      
                        N
                        -
                        1
                      
                    
                    +
                    
                      sk
                      N
                    
                  
                  ,
                  
                    C
                    1
                  
                
                )
              
            
            
              -
              1
            
          
        
      
    
  




because

mN=Dec(C,skN)=C2×e(skN,C1)−1 

This is repeated to provide





  
    
      
        
          m
          n
        
        =
        
        ⁢
        
          f
          ⁡
          
            (
            
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      n
                    
                  
                  )
                
              
              ,
              
                m
                
                  n
                  +
                  1
                
              
            
            )
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          
            C
            2
          
          ×
          
            
              e
              ⁡
              
                (
                
                  
                    
                      sk
                      n
                    
                    +
                    ...
                    +
                    
                      sk
                      N
                    
                  
                  ,
                  
                    C
                    1
                  
                
                )
              
            
            
              -
              1
            
          
        
      
    
  




and then





  
    
      
        
          m
          1
        
        =
        
        ⁢
        
          
            C
            2
          
          ×
          
            
              e
              ⁡
              
                (
                
                  
                    
                      sk
                      1
                    
                    +
                    ...
                    +
                    
                      sk
                      N
                    
                  
                  ,
                  
                    C
                    1
                  
                
                )
              
            
            
              -
              1
            
          
        
      
    
  
  
    
      
        =
        
        ⁢
        M
      
    
  




Therefore,

Dec(C,SK)=Dec(C,g(sk1, . . . ,skN))

mN=Dec(C,skN)

mn=f(Dec(C,skn),mn+1)

M=m1 

hold.

Third Embodiment
FIG. 8 shows an example of the functional configuration of a segmented secret-key storage system in a third embodiment, and FIG. 9 shows a processing flow of generating a signature. Examples of a processing flow of changing secret-key segments are as shown in FIGS. 3 to 5. The segmented secret-key storage system in the third embodiment includes a signature verification apparatus 700, N segment storage apparatuses 3001, . . . , 300N, and a combining device 330, which are connected by a network 900. The signature verification apparatus 700 is an apparatus for verifying the validity of a generated signature Σ. The segment storage apparatus 300n records a secret-key segment skn among secret-key segments sk1, . . . , skN obtained by segmenting a secret key SK corresponding to a public key PK. The combining device 330 obtains the signature Σ for the plaintext M. In FIG. 8, the combining device 330 is represented by a dotted box and is shown in different places. The combining device 330 may be a single independent apparatus or may be disposed in any segment storage apparatus 300n. A plurality of apparatuses may include the combining device 330, and the combining device 330 to be used may be selected in each signature processing flow.
Suppose that the following relationship holds




  
    
      
        
          Sig
          ⁡
          
            (
            
              M
              ,
              SK
            
            )
          
        
        =
        
        ⁢
        
          Sig
          ⁡
          
            (
            
              M
              ,
              
                g
                ⁡
                
                  (
                  
                    
                      sk
                      1
                    
                    ,
                    ...
                    ⁢
                    
                      
                    
                    ,
                    
                      sk
                      N
                    
                  
                  )
                
              
            
            )
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          f
          ⁡
          
            (
            
              
                Sig
                ⁡
                
                  (
                  
                    M
                    ,
                    
                      sk
                      1
                    
                  
                  )
                
              
              ,
              ...
              ⁢
              
                
              
              ,
              
                Sig
                ⁡
                
                  (
                  
                    M
                    ,
                    
                      sk
                      N
                    
                  
                  )
                
              
            
            )
          
        
      
    
  




where N is an integer not less than 2, n is an integer between 1 and N, both inclusive, Sig(M, SK) is a symbol representing generation of the signature Σ with the secret key SK, g(sk1, . . . , skN) is a function of sk1, . . . , skN, f(σ1, . . . , σN) is a function of σ1, . . . , σN, and ^ is a symbol representing a power.

Each segment storage apparatus 300n includes a generation unit 310n, a secret-key segment changing unit 120n, and a recording unit 190n. The recording unit 190n records the secret-key segment skn. The generation unit 310n uses the secret-key segment skn to obtain a signature segment σn given by σn=Sig(M, skn) and sends the signature segment σn to the combining device 330 (S310). The combining device 330 obtains the signature Σ according to Σ=f(σ1, . . . , σy) (S330).
The secret-key segment changing unit 120n obtains, periodically or under a predetermined condition, a set of secret-key segments (sk1′, . . . , skN′) which satisfies




  
    
      
        
          Sig
          ⁡
          
            (
            
              M
              ,
              SK
            
            )
          
        
        =
        
        ⁢
        
          Sig
          ⁡
          
            (
            
              M
              ,
              
                g
                ⁡
                
                  (
                  
                    
                      sk
                      1
                      ′
                    
                    ,
                    ...
                    ⁢
                    
                      
                    
                    ,
                    
                      sk
                      N
                      ′
                    
                  
                  )
                
              
            
            )
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          f
          ⁡
          
            (
            
              
                Sig
                ⁡
                
                  (
                  
                    M
                    ,
                    
                      sk
                      1
                      ′
                    
                  
                  )
                
              
              ,
              ...
              ⁢
              
                
              
              ,
              
                Sig
                ⁡
                
                  (
                  
                    M
                    ,
                    
                      sk
                      N
                      ′
                    
                  
                  )
                
              
            
            )
          
        
      
    
  




and which differs from (sk1, . . . , skN), and updates the secret-key segment skn recorded in the recording unit 190n to skn′ (S120n). For example, if functions g and f are defined to satisfy





  
    
      
        
          Sig
          ⁡
          
            (
            
              M
              ,
              SK
            
            )
          
        
        =
        
        ⁢
        
          Sig
          ⁡
          
            (
            
              M
              ,
              
                g
                ⁡
                
                  (
                  
                    
                      sk
                      1
                    
                    ,
                    ...
                    ⁢
                    
                      
                    
                    ,
                    
                      sk
                      N
                    
                  
                  )
                
              
            
            )
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          f
          ⁡
          
            (
            
              
                Sig
                ⁡
                
                  (
                  
                    M
                    ,
                    
                      sk
                      1
                    
                  
                  )
                
              
              ,
              ...
              ⁢
              
                
              
              ,
              
                Sig
                ⁡
                
                  (
                  
                    M
                    ,
                    
                      sk
                      N
                    
                  
                  )
                
              
            
            )
          
        
      
    
  




when the relationship

SK=sk1+ . . . +skN 

holds, a set of secret-key segments (sk1′, . . . , skN′) that satisfies

sk1′+ . . . +skN′=sk1+ . . . +skN 

should be obtained. Alternatively, if functions g and f are defined to satisfy





  
    
      
        
          Sig
          ⁡
          
            (
            
              M
              ,
              SK
            
            )
          
        
        =
        
        ⁢
        
          Sig
          ⁡
          
            (
            
              M
              ,
              
                g
                ⁡
                
                  (
                  
                    
                      sk
                      1
                    
                    ,
                    ...
                    ⁢
                    
                      
                    
                    ,
                    
                      sk
                      N
                    
                  
                  )
                
              
            
            )
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          f
          ⁡
          
            (
            
              
                Sig
                ⁡
                
                  (
                  
                    M
                    ,
                    
                      sk
                      1
                    
                  
                  )
                
              
              ,
              ...
              ⁢
              
                
              
              ,
              
                Sig
                ⁡
                
                  (
                  
                    M
                    ,
                    
                      sk
                      N
                    
                  
                  )
                
              
            
            )
          
        
      
    
  




when the relationship

SK=sk1+ . . . +skN mod q 

holds, a set of secret-key segments (sk1′, . . . , skN′) that satisfies

sk1′+ . . . +skN′ mod q=sk1+ . . . +skN mod q 

should be obtained. In those examples, the requirements of the set of segments (sk1′, . . . , skN′) are the same as those in the first embodiment, and the flow of changing the set of segments (sk1′, . . . , skN′) is the same as in the first embodiment (FIGS. 3 to 5).

According to the segmented secret-key storage system in the third embodiment, the secret key SK is not revealed unless the secret-key segments are stolen from all the segment storage apparatuses in an interval between changes made to the secret-key segments. Accordingly, the risk of leakage can be greatly reduced in comparison with the risk of leakage of the secret key from a single apparatus.
An existing single signature generation apparatus that records the secret key SK can migrate to the segment storage apparatus 300N in the third embodiment through the following procedure: Add the secret-key segment changing unit 120N to the existing signature generation apparatus; and connect the segment storage apparatuses 3001 to 300N-1 in which the recording units 1901 to 190N-1 record sk1= . . . =skN-1=0, to the network 900. This configuration sets the initial state to skN=SK and sk1= . . . =skN-1=0. Then, when the secret key is segmented by changing the first set of secret-key segments (sk1, . . . , skN), the segmented secret-key storage system in the third embodiment can be configured. It is thus easy to migrate to the segmented secret-key storage system in the third embodiment from the existing system.
Examples of Applicable Signature Methods
When the segmented secret-key storage system in the third embodiment is implemented, the relationship




  
    
      
        
          Sig
          ⁡
          
            (
            
              M
              ,
              SK
            
            )
          
        
        =
        
        ⁢
        
          Sig
          ⁡
          
            (
            
              M
              ,
              
                g
                ⁡
                
                  (
                  
                    
                      sk
                      1
                    
                    ,
                    ...
                    ⁢
                    
                      
                    
                    ,
                    
                      sk
                      N
                    
                  
                  )
                
              
            
            )
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          f
          ⁡
          
            (
            
              
                Sig
                ⁡
                
                  (
                  
                    M
                    ,
                    
                      sk
                      1
                    
                  
                  )
                
              
              ,
              ...
              ⁢
              
                
              
              ,
              
                Sig
                ⁡
                
                  (
                  
                    M
                    ,
                    
                      sk
                      N
                    
                  
                  )
                
              
            
            )
          
        
      
    
  




must hold. As for an RSA signature, for example, plaintext M and a signature Σ satisfy the relationships

Σ=Sig(M,d)=M^d mod q (Signature generation)

M=E^e mod q (Signature verification)

where q is the composite (product) of two large prime numbers, {q, e} is the public key PK, and d is the secret key SK. If functions g and f are defined as

g(sk1, . . . ,skN)=sk1+ . . . +skN 

f(Sig(M,sk1), . . . ,Sig(M,skN))=Sig(M,sk1)× . . . ×Sig(M,skN)mod q 

and if a set of secret-key segments (sk1, . . . , skN) is selected to satisfy

d=SK=sk1+ . . . +skN 

then





  
    f
    ⁡
    
      (
      
        
          Sig
          ⁡
          
            (
            
              M
              ,
              
                sk
                1
              
            
            )
          
        
        ,
        ...
        ⁢
        
          
        
        ,
        
          Sig
          ⁡
          
            (
            
              M
              ,
              
                sk
                N
              
            
            )
          
        
      
      )
    
  
  =
  
    
      
        
          M
          ⋀
        
        ⁡
        
          (
          
            
              sk
              1
            
            +
            ...
            +
            
              sk
              N
            
          
          )
        
      
      ⁢
      
        
      
      ⁢
      mod
      ⁢
      
        
      
      ⁢
      q
    
    =
    Σ
  




because

Sig(M,skn)=M^skn 

Therefore,





  
    
      
        
          Sig
          ⁡
          
            (
            
              M
              ,
              SK
            
            )
          
        
        =
        
        ⁢
        
          Sig
          ⁡
          
            (
            
              M
              ,
              
                g
                ⁡
                
                  (
                  
                    
                      sk
                      1
                    
                    ,
                    ...
                    ⁢
                    
                      
                    
                    ,
                    
                      sk
                      N
                    
                  
                  )
                
              
            
            )
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          f
          ⁡
          
            (
            
              
                Sig
                ⁡
                
                  (
                  
                    M
                    ,
                    
                      sk
                      1
                    
                  
                  )
                
              
              ,
              ...
              ⁢
              
                
              
              ,
              
                Sig
                ⁡
                
                  (
                  
                    M
                    ,
                    
                      sk
                      N
                    
                  
                  )
                
              
            
            )
          
        
      
    
  




holds. This description does not limit the signature method that implements this embodiment. Other signature methods are also applicable so long as the conditions given above are satisfied.

Fourth Embodiment
FIG. 10 shows an example of the functional configuration of a segmented secret-key storage system in a fourth embodiment, and FIG. 11 shows a processing flow of generating a signature. Examples of a processing flow of changing secret-key segments are as shown in FIGS. 3 to 5. The segmented secret-key storage system in the fourth embodiment includes a signature verification apparatus 700 and N segment storage apparatuses 4001, . . . , 400N, which are connected by a network 900. The signature verification apparatus 700 is an apparatus for verifying the validity of a generated signature Σ. The segment storage apparatus 400n records a secret-key segment skn among secret-key segments sk1, . . . , skN obtained by segmenting a secret key SK corresponding to a public key PK.
Suppose that the following relationships hold

Sig(M,SK)=Sig(M,g(sk1, . . . ,skN))

σN=Sig(M,skN).

σn=f(Sig(M,skn),σn+1)

Σ=σ1 

where N is an integer not less than 2, n is an integer between 1 and N, both inclusive, Sig(M, SK) is a symbol representing generation of a signature Σ with the secret key SK, g(sk1, . . . , skN) is a function of sk1, . . . , skN, f(Sig(M, skn), σn+1) is a function of Sig(M, skn) and σn+1, and ^ is a symbol representing a power.

Each segment storage apparatus 400n includes a generation unit 410n, a secret-key segment changing unit 120n, and a recording unit 190n. The recording unit 190n records a secret-key segment skn. The generation unit 410N of the segment storage apparatus 400N uses the secret-key segment skN to obtain a signature segment σN given by σN=Sig(M, skN) and sends the signature segment σN to the segment storage apparatus 400N-1 (S410N).
The generation unit 410n of the segment storage apparatus 400n (n=2, . . . , N−1) uses the signature segment σn+1 obtained from the segment storage apparatus 400n+1 and the secret-key segment skn to obtain a signature segment σn given by σn=f(Sig(M, skn), σn+1), and sends the signature segment σn to the segment storage apparatus 400n−1 (S410n). However, when N=2, the segment storage apparatus 400n (n=2, . . . , N−1) is not present. The segment storage apparatus 4001 uses the signature segment σ2 obtained from the segment storage apparatus 4002 and the secret-key segment sk1 to obtain a signature Σ given by Σ=f(Sig(M, sk1), σ2) (S4101).
The secret-key segment changing unit 120n obtains, periodically or under a predetermined condition, a set of secret-key segments (sk1′, skN′) which satisfies the relationships

Sig(M,SK)=Sig(M,g(sk1′, . . . ,skN′))

σN=Sig(M,skN′)

σn=f(Sig(M,skn′),σn+1)

Σ=σ1 

and which differs from (sk1, . . . , skN), and updates the secret-key segment skn recorded in the recording unit 190n to skn′ (S120n). For example, if functions g and f are defined to satisfy

Sig(M,SK)=Sig(M,g(sk1, . . . ,skN)

σN=Sig(M,skN)

σn=f(Sig(M,skn),σn+1)

Σ=σ1 

when the relationship

SK=sk1+ . . . +skN 

holds, a set of secret-key segments (sk1′, . . . , skN′) that satisfies

sk1′+ . . . +skN′=sk1+ . . . +skN 

should be obtained. Alternatively, if functions g and f are defined to satisfy

Sig(M,SK)=Sig(M,g(sk1, . . . ,skN))

σN=Sig(M,skN)

σn=f(Sig(M,skn),σn+1)

Σ=σ1 

when the relationship

SK=sk1+ . . . +skN mod q 

holds, a set of secret-key segments (sk1′, skN′) that satisfies

sk1′+ . . . +skN′ mod q=sk1+ . . . +skN mod q 

should be obtained. In those examples, the requirements of the set of segments (sk1′, . . . , skN′) are the same as those in the first embodiment, and the flow of changing the set of segments (sk1′, . . . , skN′) is the same as in the first embodiment (FIGS. 3 to 5).

According to the segmented secret-key storage system in the fourth embodiment, the secret key SK is not revealed unless the secret-key segments are stolen from all the segment storage apparatuses in an interval between changes made to the secret-key segments. Accordingly, the risk of leakage can be greatly reduced in comparison with the risk of leakage of the secret key from a single apparatus.
An existing single signature generation apparatus that records the secret key SK can migrate to the segment storage apparatus 400N in the fourth embodiment through the following procedure: Add the secret-key segment changing unit 120N to the existing signature generation apparatus; and connect the segment storage apparatuses 4001 to 400N-1 in which the recording units 1901 to 190N-1 record sk1= . . . =skN=0, to the network 900. This configuration sets the initial state to skN=SK and sk1= . . . =skN-1=0. Then, when the secret key is segmented by changing the first set of secret-key segments (sk1, . . . , skN), the segmented secret-key storage system in the fourth embodiment can be configured. It is thus easy to migrate to the segmented secret-key storage system in the fourth embodiment from the existing system.
Examples of applicable signature methods
When the segmented secret-key storage system in the fourth embodiment is implemented, the relationships

Sig(M,SK)=Sig(M,g(sk1, . . . ,skn))

σn=f(Sig(M,skn),σn+1)

must hold. As for an RSA signature, for example, plaintext M and signature Σ satisfy the relationships

Σ=Sig(M,d)=M^d mod q (Signature generation)

M=Σ^e mod q (Signature verification)

where q is the composite (product) of two large prime numbers, {q, e} is the public key, and d is the secret key SK. If functions g and f are defined as

g(sk1, . . . ,skN)=sk1+ . . . +skN 

f(Sig,(M,skn),σn+1)=Sig(M,skn)×σn+1 mod q 

and if a set of secret-key segments (sk1, . . . , skN) is selected to satisfy

d=SK=sk1+ . . . +skN 

then





  
    
      
        
          σ
          
            N
            -
            1
          
        
        =
        
        ⁢
        
          f
          ⁡
          
            (
            
              
                Sig
                ⁡
                
                  (
                  
                    M
                    ,
                    
                      sk
                      
                        N
                        -
                        1
                      
                    
                  
                  )
                
              
              ,
              
                σ
                
                  n
                  +
                  
                    1
                    ⁢
                    
                      
                    
                    ⁢
                    N
                  
                
              
            
            )
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          
            
              M
              ⋀
            
            ⁡
            
              (
              
                
                  sk
                  
                    N
                    -
                    1
                  
                
                +
                
                  sk
                  N
                
              
              )
            
          
          ⁢
          
            
          
          ⁢
          mod
          ⁢
          
            
          
          ⁢
          q
        
      
    
  




because

σN=Sig(M,skN)=M^skN mod q 

Therefore,





  
    
      
        
          σ
          n
        
        =
        
        ⁢
        
          f
          ⁡
          
            (
            
              
                Sig
                ⁡
                
                  (
                  
                    M
                    ,
                    
                      sk
                      n
                    
                  
                  )
                
              
              ,
              
                σ
                
                  n
                  +
                  1
                
              
            
            )
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          
            
              M
              ⋀
            
            ⁡
            
              (
              
                
                  sk
                  n
                
                +
                ...
                +
                
                  sk
                  N
                
              
              )
            
          
          ⁢
          
            
          
          ⁢
          mod
          ⁢
          
            
          
          ⁢
          q
        
      
    
  




and then





  
    
      
        
          m
          1
        
        =
        
        ⁢
        
          
            
              M
              ⋀
            
            ⁡
            
              (
              
                
                  sk
                  1
                
                +
                ...
                +
                
                  sk
                  N
                
              
              )
            
          
          ⁢
          
            
          
          ⁢
          mod
          ⁢
          
            
          
          ⁢
          q
        
      
    
  
  
    
      
        =
        
        ⁢
        Σ
      
    
  




As a result,

Sig(M,SK)=Sig(M,g(sk1, . . . ,skN))

σN=Sig(M,skn)

σn=f(Sig(M,skn),σn+1)

Σ=σ1 

hold. The description does not limit the signature method that implements this embodiment. Other signature methods are also applicable so long as the conditions given above are satisfied.

Program, Recording Medium
Each type of processing described above may be executed not only time sequentially according to the order of description but also in parallel or individually when necessary or according to the processing capabilities of the apparatuses that execute the processing. Appropriate changes can be made to the above embodiments without departing from the scope of the present invention.
When the configurations described above are implemented by a computer, the processing details of the functions that should be provided by each apparatus are described in a program. When the program is executed by a computer, the processing functions described above are implemented on the computer.
The program containing the processing details can be recorded in a computer-readable recording medium. The computer-readable recording medium can be any type of medium, such as a magnetic storage device, an optical disc, a magneto-optical recording medium, or a semiconductor memory.
This program is distributed by selling, transferring, or lending a portable recording medium such as a DVD or a CD-ROM with the program recorded on it, for example. The program may also be distributed by storing the program in a storage unit of a server computer and transferring the program from the server computer to another computer through the network.
A computer that executes this type of program first stores the program recorded on the portable recording medium or the program transferred from the server computer in its storage unit. Then, the computer reads the program stored in its storage unit and executes processing in accordance with the read program. In a different program execution form, the computer may read the program directly from the portable recording medium and execute processing in accordance with the program, or the computer may execute processing in accordance with the program each time the computer receives the program transferred from the server computer. Alternatively, the above-described processing may be executed by a so-called application service provider (ASP) service, in which the processing functions are implemented just by giving program execution instructions and obtaining the results without transferring the program from the server computer to the computer. The program of this form includes information that is provided for use in processing by the computer and is treated correspondingly as a program (something that is not a direct instruction to the computer but is data or the like that has characteristics that determine the processing executed by the computer).
In the description given above, the apparatuses are implemented by executing the predetermined programs on the computer, but at least a part of the processing details may be implemented by hardware.
DESCRIPTION OF REFERENCE NUMERALS


    100, 200, 300, 400: Segment storage apparatus
    110, 210: Decryption unit
    120: Secret-key segment changing unit
    130, 330: Combining device
    190: Recording unit
    310, 410: Generation unit
    600: Encryption apparatus
    700: Signature verification apparatus
    900: Network

## Claims

1. A segment storage apparatus of N segment storage apparatuses, for storing secret key segments for reducing the risk of leaking secret information caused by secret key leakage, which respectively record secret-key segments sk1, . . . , skN obtained by segmenting a secret key SK corresponding to a public key PK, in a segmented secret-key storage system,
the relationship





  
    
      
        
          Dec
          ⁡
          
            (
            
              C
              ,
              SK
            
            )
          
        
        =
        
        ⁢
        
          Dec
          ⁡
          
            (
            
              C
              ,
              
                g
                ⁡
                
                  (
                  
                    
                      sk
                      1
                    
                    ,
                    ...
                    ⁢
                    
                      
                    
                    ,
                    
                      sk
                      N
                    
                  
                  )
                
              
            
            )
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          f
          ⁡
          
            (
            
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      1
                    
                  
                  )
                
              
              ,
              ...
              ⁢
              
                
              
              ,
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      N
                    
                  
                  )
                
              
            
            )
          
        
      
    
  



being satisfied, where N is an integer not less than 2, n is an integer between 1 and N, both inclusive, Dec(C, SK) is a symbol representing decryption of the ciphertext C with the secret key SK, g(sk1, . . . , skN) is a function of sk1, . . . , skN, and f(m1, . . . , mN) is a function of m1, . . . , mN;
the segment storage apparatuses comprising:
a decryption unit which uses the secret-key segment skn recorded in the segment storage apparatus to obtain a plaintext segment mn given by mn=Dec(C, skn) and sends the plaintext segment mn to a combining device; and
a secret-key segment changing unit which obtains a set of secret-key segments (sk1′, . . . , skN′) that satisfies





  
    
      
        
          Dec
          ⁡
          
            (
            
              C
              ,
              SK
            
            )
          
        
        =
        
        ⁢
        
          Dec
          ⁡
          
            (
            
              C
              ,
              
                g
                ⁡
                
                  (
                  
                    
                      sk
                      1
                      ′
                    
                    ,
                    ...
                    ⁢
                    
                      
                    
                    ,
                    
                      sk
                      N
                      ′
                    
                  
                  )
                
              
            
            )
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          f
          ⁡
          
            (
            
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      1
                      ′
                    
                  
                  )
                
              
              ,
              ...
              ⁢
              
                
              
              ,
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      N
                      ′
                    
                  
                  )
                
              
            
            )
          
        
      
    
  



and differs from (sk1, . . . , skN) and changes the secret-key segment skn recorded in the segment storage apparatus to skn′;
wherein
the secret-key segment changing unit changes, periodically or under a predetermined condition, the secret-key segments skn to skn′;
the relationship


C={C1,C2}={g^r,Mh^r}



M=Dec(C,x)=C2/(C1^x)


is satisfied, where {g, h} is the public key PK, x is the secret key SK and an integer greater than or equal to 0 and less than or equal to q−1, h=g^x, r is a random number and an integer greater than or equal to 0 and less than or equal to q−1, q is the order of a cyclic group G, g is the generator of the cyclic group G, M is a plaintext and an element of the cyclic group G, C is the ciphertext and an element of the cyclic group G, and ^ is a symbol representing a power; and
the functions g and f are defined as


g(sk1, . . . ,skN)=sk1+ . . . +skN mod q 



f(Dec(C,sk1), . . . ,Dec(C,skN))=Dec(C,sk1)× . . . ×Dec(C,skN)/(C2^(N−1)).

2. A segment storage apparatus of N segment storage apparatuses, for storing secret key segments for reducing the risk of leaking secret information caused by secret key leakage, which respectively record secret-key segments sk1, . . . , skN obtained by segmenting a secret key SK corresponding to a public key PK, in a segmented secret-key storage system,
the relationships


Dec(C,SK)=Dec(C,g(sk1, . . . ,skN))



mN=Dec(C,skN)



mn=f(Dec(C,skn),mn+1)



M=m1 


being satisfied, where N is an integer not less than 2, n is an integer between 1 and N, both inclusive, Dec(C, SK) is a symbol representing decryption of the ciphertext C with the secret key SK, g(sk1, . . . , skN) is a function of sk1, . . . , skN, and f(Dec(C, skn), mn+1) is a function of Dec(C, skn) and mn+1;
the segment storage apparatus comprising:
a decryption unit which uses the secret-key segment skN to obtain a plaintext segment mN given by mN=Dec(C, skN) and sends the plaintext segment mN to the segment storage apparatus which records the secret-key segment skN-1 when the secret-key segment skN is recorded, uses a plaintext segment m2 obtained from the segment storage apparatus which records the secret-key segment sk2 and the secret-key segment sk1 to obtain plaintext M given by M=f(Dec(C, sk1), m2) when the secret-key segment sk1 is recorded, and uses a plaintext segment mn+1 obtained from the segment storage apparatus which records the secret-key segment skn+1 and the secret-key segment skn to obtain a plaintext segment mn given by mn=f(Dec(C, skn), mn+1) and sends the plaintext segment mn to the segment storage apparatus which records the secret-key segment skn−1 when N is not less than 3 and the secret-key segment skn (n is 2 to N−1) is recorded; and
a secret-key segment changing unit which obtains a set of secret-key segments (sk1′, . . . , skN′) that satisfies


Dec(C,SK)=Dec(C,g(sk1′, . . . ,skN′))



mN=Dec(C,skN′)



mn=f(Dec(C,skn′),mn+1)



M=m1 


and that differs from (sk1, . . . , skN) and changes the secret-key segment skn recorded in the segment storage apparatus to skn′;
wherein
the secret-key segment changing unit changes, periodically or under a predetermined condition, the secret-key segments skn to skn′;
the relationship


C={C1,C2}={g^r,Mh^r}



M=Dec(C,x)=C2/(C1^x)


is satisfied, where {g, h} is the public key PK, x is the secret key SK and an integer greater than or equal to 0 and less than or equal to q−1, h=g^x, r is a random number and an integer greater than or equal to 0 and less than or equal to q−1, q is the order of a cyclic group G, g is the generator of the cyclic group G, M is a plaintext and an element of the cyclic group G, C is the ciphertext and an element of the cyclic group G, and ^ is a symbol representing a power; and
the functions g and f are defined as


g(sk1, . . . ,skN)=sk1+ . . . +skN mod q 



f(Dec(C,skn),mn+1)=(Dec(C,skn)×mn+1)/C2.

3. A segment storage apparatus of N segment storage apparatuses, for storing secret key segments for reducing the risk of leaking secret information caused by secret key leakage, which respectively record secret-key segments sk1, . . . , skN obtained by segmenting a secret key SK corresponding to a public key PK, in a segmented secret-key storage system,
the relationship





  
    
      
        
          Dec
          ⁡
          
            (
            
              C
              ,
              SK
            
            )
          
        
        =
        
        ⁢
        
          Dec
          ⁡
          
            (
            
              C
              ,
              
                g
                ⁡
                
                  (
                  
                    
                      sk
                      1
                    
                    ,
                    ...
                    ⁢
                    
                      
                    
                    ,
                    
                      sk
                      N
                    
                  
                  )
                
              
            
            )
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          f
          ⁡
          
            (
            
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      1
                    
                  
                  )
                
              
              ,
              ...
              ⁢
              
                
              
              ,
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      N
                    
                  
                  )
                
              
            
            )
          
        
      
    
  



being satisfied, where N is an integer not less than 2, n is an integer between 1 and N, both inclusive, Dec(C, SK) is a symbol representing decryption of the ciphertext C with the secret key SK, g(sk1, . . . , skN) is a function of sk1, . . . , skN, and f(m1, . . . , mN) is a function of m1, . . . , mN;
the segment storage apparatus comprising:
a decryption unit which uses the secret-key segment skn recorded in the segment storage apparatus to obtain a plaintext segment mn given by mn=Dec(C, skn) and sends the plaintext segment mn to a combining device; and
a secret-key segment changing unit which changes the secret-key segment skn to skn′ such that a set of secret-key segments (sk1′, . . . , skN′) satisfies






  
    
      
        
          Dec
          ⁡
          
            (
            
              C
              ,
              SK
            
            )
          
        
        =
        
        ⁢
        
          Dec
          ⁡
          
            (
            
              C
              ,
              
                g
                ⁡
                
                  (
                  
                    
                      sk
                      1
                      ′
                    
                    ,
                    ...
                    ⁢
                    
                      
                    
                    ,
                    
                      sk
                      N
                      ′
                    
                  
                  )
                
              
            
            )
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          f
          ⁡
          
            (
            
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      1
                      ′
                    
                  
                  )
                
              
              ,
              ...
              ⁢
              
                
              
              ,
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      N
                      ′
                    
                  
                  )
                
              
            
            )
          
        
      
    
  



and differs from (sk1, . . . , skN),
wherein
the secret-key segment changing unit changes, periodically or under a predetermined condition, the secret-key segments skn to skn′;
the relationship


C={C1,C2}={rG,M+rH}



M=Dec(C,x)=C2−xC1 


is satisfied, where {G, H} is the public key PK, x is the secret key SK and an integer greater than or equal to 1 and less than or equal to q−1, H=xG, r is a random number and an integer greater than or equal to 0 and less than or equal to q−1, q is the order of a base point G on the elliptic curve, M is a plaintext, and C is the ciphertext; and
the functions g and f are defined as


g(sk1, . . . ,skN)=sk1+ . . . +skN mod q 



f(Dec(C,sk1), . . . ,Dec(C,skN))=Dec(C,sk1)+ . . . +Dec(C,skN)−(N−1)C2.

4. A segment storage apparatus of N segment storage apparatuses, for storing secret key segments for reducing the risk of leaking secret information caused by secret key leakage, which respectively record secret-key segments sk1, . . . , skN obtained by segmenting a secret key SK corresponding to a public key PK, in a segmented secret-key storage system,
the relationships


Dec(C,SK)=Dec(C,g(sk1, . . . ,skN))



mN=Dec(C,skN)



mn=f(Dec(C,skn),mn+1)



M=m1 


being satisfied, where N is an integer not less than 2, n is an integer between 1 and N, both inclusive, Dec(C, SK) is a symbol representing decryption of the ciphertext C with the secret key SK, g(sk1, . . . , skN) is a function of sk1, . . . , skN, and f(Dec(C, skn), mn+1) is a function of Dec(C, skn) and mn+1;
the segment storage apparatus comprising:
a decryption unit which uses the secret-key segment skN to obtain a plaintext segment mN given by mN=Dec(C, skN) and sends the plaintext segment mN to the segment storage apparatus which records the secret-key segment skN-1 when the secret-key segment skN is recorded, uses a plaintext segment m2 obtained from the segment storage apparatus which records the secret-key segment sk2 and the secret-key segment sk1 to obtain plaintext M given by M=f(Dec(C, sk1), m2) when the secret-key segment sk1 is recorded, and uses a plaintext segment mn+1 obtained from the segment storage apparatus which records the secret-key segment skn+1 and the secret-key segment skn to obtain a plaintext segment mn given by mn=f(Dec(C, skn), mn+1) and sends the plaintext segment mn to the segment storage apparatus which records the secret-key segment skn−1 when N is not less than 3 and the secret-key segment skn (n is 2 to N−1) is recorded; and
a secret-key segment changing unit which changes the secret-key segment skn to skn′ such that a set of secret-key segments (sk1′, . . . , skN′) satisfies


Dec(C,SK)=Dec(C,g(sk1′, . . . ,skN′))



mN=Dec(C,skN′)



mn=f(Dec(C,skn′),mn+1)



M=m1 


and differs from (sk1, . . . , skN)),
wherein
the secret-key segment changing unit changes, periodically or under a predetermined condition, the secret-key segments skn to skn′;
the relationship


C={C1,C2}={rG,M+rH}



M=Dec(C,x)=C2−xC1 


is satisfied, where {G, H} is the public key PK, x is the secret key SK and an integer greater than or equal to 1 and less than or equal to q−1, H=xG, r is a random number and an integer greater than or equal to 0 and less than or equal to q−1, q is the order of a base point G on the elliptic curve, M is a plaintext, and C is the ciphertext; and
the functions g and f are defined as


g(sk1, . . . ,skN)=sk1+ . . . +skN mod q 



f(Dec(C,skn),mn+1)=Dec(C,skn)+mn+1−C2.

5. A segmented secret-key storage method, for storing secret key segments for reducing the risk of leaking secret information caused by secret key leakage, using:
N segment storage apparatuses which respectively record secret-key segments sk1, . . . , skN obtained by segmenting a secret key SK corresponding to a public key PK, and
a combining device which obtains plaintext M corresponding to ciphertext C;

the relationship





  
    
      
        
          Dec
          ⁡
          
            (
            
              C
              ,
              SK
            
            )
          
        
        =
        
        ⁢
        
          Dec
          ⁡
          
            (
            
              C
              ,
              
                g
                ⁡
                
                  (
                  
                    
                      sk
                      1
                    
                    ,
                    ...
                    ⁢
                    
                      
                    
                    ,
                    
                      sk
                      N
                    
                  
                  )
                
              
            
            )
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          f
          ⁡
          
            (
            
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      1
                    
                  
                  )
                
              
              ,
              ...
              ⁢
              
                
              
              ,
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      N
                    
                  
                  )
                
              
            
            )
          
        
      
    
  



being satisfied, where N is an integer not less than 2, n is an integer between 1 and N, both inclusive, Dec(C, SK) is a symbol representing decryption of the ciphertext C with the secret key SK, g(sk1, . . . , skN) is a function of sk1, . . . , skN, and f(m1, . . . , mN) is a function of m1, . . . , mN;
the segmented secret-key storage method comprising:
a decryption step in which each of the segment storage apparatuses uses the secret-key segment skn recorded in the segment storage apparatus to obtain a plaintext segment mn given by mn=Dec(C, skn) and sends the plaintext segment mn to the combining device;
a combining step in which the combining device obtains the plaintext M given by M=f(m1, . . . , mN); and
a secret-key segment changing step in which the segment storage apparatus obtains a set of secret-key segments (sk1′, . . . , skN′) that satisfies






  
    
      
        
          Dec
          ⁡
          
            (
            
              C
              ,
              SK
            
            )
          
        
        =
        
        ⁢
        
          Dec
          ⁡
          
            (
            
              C
              ,
              
                g
                ⁡
                
                  (
                  
                    
                      sk
                      1
                      ′
                    
                    ,
                    ...
                    ⁢
                    
                      
                    
                    ,
                    
                      sk
                      N
                      ′
                    
                  
                  )
                
              
            
            )
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          f
          ⁡
          
            (
            
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      1
                      ′
                    
                  
                  )
                
              
              ,
              ...
              ⁢
              
                
              
              ,
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      N
                      ′
                    
                  
                  )
                
              
            
            )
          
        
      
    
  



and that differs from (sk1, . . . , skN) and changes the secret-key segment skn recorded in the segment storage apparatus to skn′,
wherein
the secret-key segment changing step obtains, periodically or under a predetermined condition, the set of secret-key segments (sk1′, . . . , skN′);
the relationship


C={C1,C2}={g^r,Mh^r}



M=Dec(C,x)=C2/(C1^x)


is satisfied, where {g, h} is the public key PK, x is the secret key SK and an integer greater than or equal to 0 and less than or equal to q−1, h=g^x, r is a random number and an integer greater than or equal to 0 and less than or equal to q−1, q is the order of a cyclic group G, g is the generator of the cyclic group G, M is a plaintext and an element of the cyclic group G, C is the ciphertext and an element of the cyclic group G, and ^ is a symbol representing a power; and
the functions g and f are defined as


g(sk1, . . . ,skN)=sk1+ . . . +skN mod q 



f(Dec(C,sk1), . . . ,Dec(C,skN))=Dec(C,sk1)× . . . ×Dec(C,skN)/(C2^(N−1)).

6. A segmented secret-key storage method, for storing secret key segments for reducing the risk of leaking secret information caused by secret key leakage, using N segment storage apparatuses which respectively record secret-key segments sk1, . . . , skN obtained by segmenting a secret key SK corresponding to a public key PK,
the relationships


Dec(C,SK)=Dec(C,g(sk1, . . . ,skN))



mN=Dec(C,skN)



mn=f(Dec(C,skn),mn+1)



M=m1 


being satisfied, where N is an integer not less than 2, n is an integer between 1 and N, both inclusive, Dec(C, SK) is a symbol representing decryption of ciphertext C with the secret key SK, g(sk1, . . . , skN) is a function of sk1, . . . , skN, and f(Dec(C, skn), mn+1) is a function of Dec(C, skn) and mn+1;
the segmented secret-key storage method comprising:
an N-th decryption step in which the segment storage apparatus which records the secret-key segment skN uses the secret-key segment skN to obtain a plaintext segment mN given by mN=Dec(C, skN) and sends the plaintext segment mN to the segment storage apparatus which records the secret-key segment skN-1;
an n-th decryption step in which, if N is not less than 3, the segment storage apparatus which records the secret-key segment skn (n is 2 to N−1) uses a plaintext segment mn+1 obtained from the segment storage apparatus which records the secret-key segment skn+1 and the secret-key segment skn to obtain a plaintext segment mn given by mn=f(Dec(C, skn), mn+1) and sends the plaintext segment mn to the segment storage apparatus which records the secret-key segment skn−1;
a first decryption step in which the segment storage apparatus which records the secret-key segment sk1 uses a plaintext segment m2 obtained from the segment storage apparatus which records the secret-key segment sk2 and the secret-key segment sk1 to obtain plaintext M given by M=f(Dec(C, sk1), m2); and
a secret-key segment changing step in which each of the segment storage apparatuses obtains a set of secret-key segments (sk1′, . . . , skN′) that satisfies


Dec(C,SK)=Dec(C,g(sk1′, . . . ,skN′))



mN=Dec(C,skN′)



mn=f(Dec(C,skn′),mn+1)



M=m1 



and that differs from (sk1, . . . , skN) and changes the secret-key segment skn recorded in the segment storage apparatus to skn′,
wherein
the secret-key segment changing step obtains, periodically or under a predetermined condition, the set of secret-key segments (sk1′, . . . , skN′);
the relationship


C={C1,C2}={g^r,Mh^r}



M=Dec(C,x)=C2/(C1^x)


is satisfied, where {g, h} is the public key PK, x is the secret key SK and an integer greater than or equal to 0 and less than or equal to q−1, h=g^x, r is a random number and an integer greater than or equal to 0 and less than or equal to q−1, q is the order of a cyclic group G, g is the generator of the cyclic group G, M is a plaintext and an element of the cyclic group G, C is the ciphertext and an element of the cyclic group G, and ^ is a symbol representing a power; and
the functions g and f are defined as


g(sk1, . . . ,skN)=sk1+ . . . +skN mod q 



f(Dec(C,skn),mn+1)=(Dec(C,skn)×mn+1)/C2.

7. A segment storage apparatus of N segment storage apparatuses, for storing secret key segments for reducing the risk of leaking secret information caused by secret key leakage, which respectively record secret-key segments sk1, . . . , skN obtained by segmenting a secret key SK corresponding to a public key PK, in a segmented secret-key storage system,
the relationship





  
    
      
        
          Dec
          ⁡
          
            (
            
              C
              ,
              SK
            
            )
          
        
        =
        
        ⁢
        
          Dec
          ⁡
          
            (
            
              C
              ,
              
                g
                ⁡
                
                  (
                  
                    
                      sk
                      1
                    
                    ,
                    ...
                    ⁢
                    
                      
                    
                    ,
                    
                      sk
                      N
                    
                  
                  )
                
              
            
            )
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          f
          ⁡
          
            (
            
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      1
                    
                  
                  )
                
              
              ,
              ...
              ⁢
              
                
              
              ,
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      N
                    
                  
                  )
                
              
            
            )
          
        
      
    
  



being satisfied, where N is an integer not less than 2, n is an integer greater than or equal to 1 and less than or equal to N, Dec(C, SK) is a symbol representing decryption of the ciphertext C with the secret key SK, g(sk1, . . . , skN) is a function of sk1, . . . , skN, and f(m1, . . . , mN) is a function of m1, . . . , mN;
the segment storage apparatus comprising:
a decryption unit which uses the secret-key segment skn recorded in the segment storage apparatus to obtain a plaintext segment mn given by mn=Dec(C, skn) and sends the plaintext segment mn to a combining device; and
a secret-key segment changing unit which changes the secret-key segment skn to skn′ such that a set of secret-key segments (sk1′, . . . , skN′) satisfies






  
    
      
        
          Dec
          ⁡
          
            (
            
              C
              ,
              SK
            
            )
          
        
        =
        
        ⁢
        
          Dec
          ⁡
          
            (
            
              C
              ,
              
                g
                ⁡
                
                  (
                  
                    
                      sk
                      1
                      ′
                    
                    ,
                    ...
                    ⁢
                    
                      
                    
                    ,
                    
                      sk
                      N
                      ′
                    
                  
                  )
                
              
            
            )
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          f
          ⁡
          
            (
            
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      1
                      ′
                    
                  
                  )
                
              
              ,
              ...
              ⁢
              
                
              
              ,
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      N
                      ′
                    
                  
                  )
                
              
            
            )
          
        
      
    
  



and differs from (sk1, . . . , skN),
wherein
the secret-key segment changing unit changes, periodically or under a predetermined condition, the secret-key segments skn to skn′;
the relationship


C={C1,C2}={rP,M×e(PID,rQ)}



M=Dec(C,SID)=C2×e(SID,C1)−1 



is satisfied, where {PID, P, Q} is the public key PK, SID is the secret key SK and an integer greater than or equal to 1 and less than or equal to q−1, SID=SPID, Q=sP, r is a random number and an integer greater than or equal to 0 and less than or equal to q−1, PID is a point on an elliptic curve of order q transformed from ID by using a hash function; P is the generator of a subgroup on the elliptic curve; s is the master secret key; e(,) represents pairing on the elliptic curve, M is a plaintext, C is the ciphertext, and A is a symbol representing a power; and
the functions g and f are defined as


g(sk1, . . . ,skN)=sk1+ . . . +skN mod q 



f(Dec(C,sk1), . . . ,Dec(C,skN))=Dec(C,sk1)× . . . ×Dec(C,skN)/(C2^(N−1)).

8. A segment storage apparatus of N segment storage apparatuses, for storing secret key segments for reducing the risk of leaking secret information caused by secret key leakage, which respectively record secret-key segments sk1, . . . , skN obtained by segmenting a secret key SK corresponding to a public key PK, in a segmented secret-key storage system,
the relationships


Dec(C,SK)=Dec(C,g(sk1, . . . ,skN))



mN=Dec(C,skN)



mn=f(Dec(C,skn),mn+1)



M=m1 


being satisfied, where N is an integer not less than 2, n is an integer greater than or equal to 1 and less than or equal to N, Dec(C, SK) is a symbol representing decryption of the ciphertext C with the secret key SK, g(sk1, . . . , skN) is a function of sk1, . . . , skN, and f(Dec(C, skn), mn+1) is a function of Dec(C, skn) and mn+1;
the segment storage apparatus comprising:
a decryption unit which uses the secret-key segment skN to obtain a plaintext segment mN given by mN=Dec(C, skN) and sends the plaintext segment mN to the segment storage apparatus which records the secret-key segment skN-1 when the secret-key segment skN is recorded, uses a plaintext segment m2 obtained from the segment storage apparatus which records the secret-key segment sk2 and the secret-key segment sk1 to obtain plaintext M given by M=f(Dec(C, sk1), m2) when the secret-key segment sk1 is recorded, and uses a plaintext segment mn+1 obtained from the segment storage apparatus which records the secret-key segment skn+1 and the secret-key segment skn to obtain a plaintext segment mn given by mn=f(Dec(C, skn), mn+1) and sends the plaintext segment mn to the segment storage apparatus which records the secret-key segment skn−1 when N is not less than 3 and the secret-key segment skn (n is 2 to N−1) is recorded; and
a secret-key segment changing unit changes the secret-key segment skn to skn′ such that a set of secret-key segments (sk1′, . . . , skN′) satisfies


Dec(C,SK)=Dec(C,g(sk1′, . . . ,skN′))



mN=Dec(C,skN′)



mn=f(Dec(C,skn′),mn+1)



M=m1 


and differs from (sk1, . . . , skN),
wherein
the secret-key segment changing unit changes, periodically or under a predetermined condition, the secret-key segments skn to skn′;
the relationship


C={C1,C2}={rP,M×e(PID,rQ)}



M=Dec(C,SID)=C2×e(SID,C1)−1 


is satisfied, where {PID, P, Q} is the public key PK, SID is the secret key SK and an integer greater than or equal to 1 and less than or equal to q−1, SID=SPID, Q=sP, r is a random number and an integer greater than or equal to 0 and less than or equal to q−1, FID is a point on an elliptic curve of order q transformed from ID by using a hash function; P is the generator of a subgroup on the elliptic curve; s is the master secret key; e(,) represents pairing on the elliptic curve, M is a plaintext, and C is the ciphertext; and
the functions g and f are defined as


g(sk1, . . . ,skN)=sk1+ . . . +skN mod q 



f(Dec(C,skn),mn+1)=(Dec(C,skn)×mn+1)/C2.

9. A segmented secret-key storage method, for storing secret key segments for reducing the risk of leaking secret information caused by secret key leakage, using:
N segment storage apparatuses which respectively record secret-key segments sk1, . . . , skN obtained by segmenting a secret key SK corresponding to a public key PK, and
a combining device which obtains plaintext M corresponding to ciphertext C;
the relationship





  
    
      
        
          Dec
          ⁡
          
            (
            
              C
              ,
              SK
            
            )
          
        
        =
        
        ⁢
        
          Dec
          ⁡
          
            (
            
              C
              ,
              
                g
                ⁡
                
                  (
                  
                    
                      sk
                      1
                    
                    ,
                    ...
                    ⁢
                    
                      
                    
                    ,
                    
                      sk
                      N
                    
                  
                  )
                
              
            
            )
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          f
          ⁡
          
            (
            
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      1
                    
                  
                  )
                
              
              ,
              ...
              ⁢
              
                
              
              ,
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      N
                    
                  
                  )
                
              
            
            )
          
        
      
    
  



being satisfied, where N is an integer not less than 2, n is an integer greater than or equal to 1 and less than or equal to N, Dec(C, SK) is a symbol representing decryption of the ciphertext C with the secret key SK, g(sk1, . . . , skN) is a function of sk1, . . . , skN, and f(m1, . . . , mN) is a function of m1, . . . , mN;
the segmented secret-key storage method comprising:
a decryption step in which each of the segment storage apparatuses uses the secret-key segment skn recorded in the segment storage apparatus to obtain a plaintext segment mn given by mn=Dec(C, skn) and sends the plaintext segment mn to the combining device;
a combining step in which the combining device obtains the plaintext M given by M=f(m1, . . . , mN); and
a secret-key segment changing step in which the segment storage apparatus obtains a set of secret-key segments (sk1′, . . . , skN′) that satisfies





  
    
      
        
          Dec
          ⁡
          
            (
            
              C
              ,
              SK
            
            )
          
        
        =
        
        ⁢
        
          Dec
          ⁡
          
            (
            
              C
              ,
              
                g
                ⁡
                
                  (
                  
                    
                      sk
                      1
                      ′
                    
                    ,
                    ...
                    ⁢
                    
                      
                    
                    ,
                    
                      sk
                      N
                      ′
                    
                  
                  )
                
              
            
            )
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          f
          ⁡
          
            (
            
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      1
                      ′
                    
                  
                  )
                
              
              ,
              ...
              ⁢
              
                
              
              ,
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      N
                      ′
                    
                  
                  )
                
              
            
            )
          
        
      
    
  



and that differs from (sk1, . . . , skN) and changes the secret-key segment skn recorded in the segment storage apparatus to skn′,
wherein
the secret-key segment changing step obtains, periodically or under a predetermined condition, the set of secret-key segments (sk1′, . . . , skN′);
the relationship


C={C1,C2}={rG,M+rH}



M=Dec(C,x)=C2−xC1 


is satisfied, where {G, H} is the public key PK, x is the secret key SK and an integer greater than or equal to 1 and less than or equal to q−1, H=xG, r is a random number and an integer greater than or equal to 0 and less than or equal to q−1, q is the order of a base point G on the elliptic curve, M is a plaintext, and C is the ciphertext; and
the functions g and f are defined as


g(sk1, . . . ,skN)=sk1+ . . . +skN mod q 



f(Dec(C,sk1), . . . ,Dec(C,skN))=Dec(C,sk1)+ . . . +Dec(C,skN)−(N−1)C2.

10. A segmented secret-key storage method, for storing secret key segments for reducing the risk of leaking secret information caused by secret key leakage, using N segment storage apparatuses which respectively record secret-key segments sk1, . . . , skN obtained by segmenting a secret key SK corresponding to a public key PK,
the relationships


Dec(C,SK)=Dec(C,g(sk1, . . . ,skN))



mN=Dec(C,skN)



mn=f(Dec(C,skn),mn+1)



M=m1 


being satisfied, where N is an integer not less than 2, n is an integer greater than or equal to 1 and less than or equal to N, Dec(C, SK) is a symbol representing decryption of ciphertext C with the secret key SK, g(sk1, . . . , skN) is a function of sk1, . . . , skN, and f(Dec(C, skn), mn+1) is a function of Dec(C, skn) and mn+1;
the segmented secret-key storage method comprising:
an N-th decryption step in which the segment storage apparatus which records the secret-key segment skN uses the secret-key segment skN to obtain a plaintext segment mN given by mN=Dec(C, skN) and sends the plaintext segment mN to the segment storage apparatus which records the secret-key segment skN-1;
an n-th decryption step in which, if N is not less than 3, the segment storage apparatus which records the secret-key segment skn (n is 2 to N−1) uses a plaintext segment mn+1 obtained from the segment storage apparatus which records the secret-key segment skn+1 and the secret-key segment skn to obtain a plaintext segment mn given by mn=f(Dec(C, skn), mn+1) and sends the plaintext segment mn to the segment storage apparatus which records the secret-key segment skn−1;
a first decryption step in which the segment storage apparatus which records the secret-key segment sk1 uses a plaintext segment m2 obtained from the segment storage apparatus which records the secret-key segment sk2 and the secret-key segment sk1 to obtain plaintext M given by M=f(Dec(C, sk1), m2); and
a secret-key segment changing step in which each of the segment storage apparatuses obtains a set of secret-key segments (sk1′, . . . , skN′) that satisfies


Dec(C,SK)=Dec(C,g(sk1′, . . . ,skN′))



mN=Dec(C,skN′)



mn=f(Dec(C,skn′),mn+1)



M=m1 


and that differs from (sk1, . . . , skN) and changes the secret-key segment skn recorded in the segment storage apparatus to skn′,
wherein
the secret-key segment changing step obtains, periodically or under a predetermined condition, the set of secret-key segments (sk1′, . . . , skN′);
the relationship


C={C1,C2}={rG,M+rH}



M=Dec(C,x)=C2−xC1 


is satisfied, where {G, H} is the public key PK, x is the secret key SK and an integer greater than or equal to 1 and less than or equal to q−1, H=xG, r is a random number and an integer greater than or equal to 0 and less than or equal to q−1, q is the order of a base point G on the elliptic curve, M is a plaintext, and C is the ciphertext; and
the functions g and f are defined as


g(sk1, . . . ,skN)=sk1+ . . . +skN mod q 



f(Dec(C,skn),mn+1)=Dec(C,skn)+mn+1−C2.

11. A segmented secret-key storage method, for storing secret key segments for reducing the risk of leaking secret information caused by secret key leakage, using:
N segment storage apparatuses which respectively record secret-key segments sk1, . . . , skN obtained by segmenting a secret key SK corresponding to a public key PK, and
a combining device which obtains plaintext M corresponding to ciphertext C;
the relationship





  
    
      
        
          Dec
          ⁡
          
            (
            
              C
              ,
              SK
            
            )
          
        
        =
        
        ⁢
        
          Dec
          ⁡
          
            (
            
              C
              ,
              
                g
                ⁡
                
                  (
                  
                    
                      sk
                      1
                    
                    ,
                    ...
                    ⁢
                    
                      
                    
                    ,
                    
                      sk
                      N
                    
                  
                  )
                
              
            
            )
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          f
          ⁡
          
            (
            
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      1
                    
                  
                  )
                
              
              ,
              ...
              ⁢
              
                
              
              ,
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      N
                    
                  
                  )
                
              
            
            )
          
        
      
    
  



being satisfied, where N is an integer not less than 2, n is an integer greater than or equal to 1 and less than or equal to N, Dec(C, SK) is a symbol representing decryption of the ciphertext C with the secret key SK, g(sk1, . . . , skN) is a function of sk1, . . . , skN, and f(m1, . . . , mN) is a function of m1, . . . , mN;
the segmented secret-key storage method comprising:
a decryption step in which each of the segment storage apparatuses uses the secret-key segment skn recorded in the segment storage apparatus to obtain a plaintext segment mn given by mn=Dec(C, skn) and sends the plaintext segment mn to the combining device;
a combining step in which the combining device obtains the plaintext M given by M=f(m1, . . . , mN); and
a secret-key segment changing step in which the segment storage apparatus obtains a set of secret-key segments (sk1′, . . . , skN′) that satisfies





  
    
      
        
          Dec
          ⁡
          
            (
            
              C
              ,
              SK
            
            )
          
        
        =
        
        ⁢
        
          Dec
          ⁡
          
            (
            
              C
              ,
              
                g
                ⁡
                
                  (
                  
                    
                      sk
                      1
                      ′
                    
                    ,
                    ...
                    ⁢
                    
                      
                    
                    ,
                    
                      sk
                      N
                      ′
                    
                  
                  )
                
              
            
            )
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          f
          ⁡
          
            (
            
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      1
                      ′
                    
                  
                  )
                
              
              ,
              ...
              ⁢
              
                
              
              ,
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      N
                      ′
                    
                  
                  )
                
              
            
            )
          
        
      
    
  



and that differs from (sk1, . . . , skN) and changes the secret-key segment skn recorded in the segment storage apparatus to skn′,
wherein
the secret-key segment changing step obtains, periodically or under a predetermined condition, the set of secret-key segments (sk1′, . . . , skN′);
the relationship


C={C1,C2}={rP,M×e(PID,rQ)}



M=Dec(C,SID)=C2×e(SID,C1)−1 


is satisfied, where {PID, P, Q} is the public key PK, SID is the secret key SK and an integer greater than or equal to 1 and less than or equal to q−1, SID=SPID, Q=sP, r is a random number and an integer greater than or equal to 0 and less than or equal to q−1, FID is a point on an elliptic curve of order q transformed from ID by using a hash function; P is the generator of a subgroup on the elliptic curve; s is the master secret key; e(,) represents pairing on the elliptic curve, M is a plaintext, C is the ciphertext, and ^ is a symbol representing a power; and
the functions g and f are defined as


g(sk1, . . . ,skN)=sk1+ . . . +skN mod q 



f(Dec(C,sk1), . . . ,Dec(C,skN))=Dec(C,sk1)× . . . ×Dec(C,skN)/(C2^(N−1)).

12. A segmented secret-key storage method, for storing secret key segments for reducing the risk of leaking secret information caused by secret key leakage, using N segment storage apparatuses which respectively record secret-key segments sk1, . . . , skN obtained by segmenting a secret key SK corresponding to a public key PK,
the relationships


Dec(C,SK)=Dec(C,g(sk1, . . . ,skN))



mN=Dec(C,skN)



mn=f(Dec(C,skn),mn+1)



M=m1 


being satisfied, where N is an integer not less than 2, n is an integer greater than or equal to 1 and less than or equal to N, Dec(C, SK) is a symbol representing decryption of ciphertext C with the secret key SK, g(sk1, . . . , skN) is a function of sk1, . . . , skN, and f(Dec(C, skn), mn+1) is a function of Dec(C, skn) and mn+1;
the segmented secret-key storage method comprising:
an N-th decryption step in which the segment storage apparatus which records the secret-key segment skN uses the secret-key segment skN to obtain a plaintext segment mN given by mN=Dec(C, skN) and sends the plaintext segment mN to the segment storage apparatus which records the secret-key segment skN-1;
an n-th decryption step in which, if N is not less than 3, the segment storage apparatus which records the secret-key segment skn (n is 2 to N−1) uses a plaintext segment mn+1 obtained from the segment storage apparatus which records the secret-key segment skn+1 and the secret-key segment skn to obtain a plaintext segment mn given by mn=f(Dec(C, skn), mn+1) and sends the plaintext segment mn to the segment storage apparatus which records the secret-key segment skn−1;
a first decryption step in which the segment storage apparatus which records the secret-key segment sk1 uses a plaintext segment m2 obtained from the segment storage apparatus which records the secret-key segment sk2 and the secret-key segment sk1 to obtain plaintext M given by M=f(Dec(C, sk1), m2); and
a secret-key segment changing step in which each of the segment storage apparatuses obtains a set of secret-key segments (sk1′, . . . , skN′) that satisfies


Dec(C,SK)=Dec(C,g(sk1′, . . . ,skN′))



mN=Dec(C,skN′)



mn=f(Dec(C,skn′),mn+1)



M=m1 


and that differs from (sk1, . . . , skN) and changes the secret-key segment skn recorded in the segment storage apparatus to skn′,
wherein
the secret-key segment changing step obtains, periodically or under a predetermined condition, the set of secret-key segments (sk1′, . . . , skN′);
the relationship


C={C1,C2}={rP,M×e(PID,rQ)}



M=Dec(C,SID)=C2×e(SID,C1)−1 


is satisfied, where {PID, P, Q} is the public key PK, SID is the secret key SK and an integer greater than or equal to 1 and less than or equal to q−1, SID=SPID, Q=sP, r is a random number and an integer greater than or equal to 0 and less than or equal to q−1, FID is a point on an elliptic curve of order q transformed from ID by using a hash function; P is the generator of a subgroup on the elliptic curve; s is the master secret key; e(,) represents pairing on the elliptic curve, M is a plaintext, and C is the ciphertext; and
the functions g and f are defined as


g(sk1, . . . ,skN)=sk1+ . . . +skN mod q 



f(Dec(C,skn),mn+1)=(Dec(C,skn)×mn+1)/C2.

13. A segment storage apparatus of N segment storage apparatuses, for storing key secret segments for reducing the risk of leaking secret information caused by secret key leakage, which respectively record secret-key segments sk1, . . . , skN obtained by segmenting a secret key SK corresponding to a public key PK, in a segmented secret-key storage system,
the relationship





  
    
      
        
          Dec
          ⁡
          
            (
            
              C
              ,
              SK
            
            )
          
        
        =
        
        ⁢
        
          Dec
          ⁡
          
            (
            
              C
              ,
              
                g
                ⁡
                
                  (
                  
                    
                      sk
                      1
                    
                    ,
                    ...
                    ⁢
                    
                      
                    
                    ,
                    
                      sk
                      N
                    
                  
                  )
                
              
            
            )
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          f
          ⁡
          
            (
            
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      1
                    
                  
                  )
                
              
              ,
              ...
              ⁢
              
                
              
              ,
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      N
                    
                  
                  )
                
              
            
            )
          
        
      
    
  



being satisfied, where N is an integer not less than 2, n is an integer between 1 and N, both inclusive, Dec(C, SK) is a symbol representing decryption of the ciphertext C with the secret key SK, g(sk1, . . . , skN) is a function of sk1, . . . , skN, and f(m1, . . . , mN) is a function of m1, . . . , mN;
the segment storage apparatuses comprising:
processing circuitry configured to
use the secret-key segment skn recorded in the segment storage apparatus to obtain a plaintext segment mn given by mn=Dec(C, skn) and send the plaintext segment mn to a combining device; and
obtain a set of secret-key segments (sk1′, . . . , skN′) that satisfies





  
    
      
        
          Dec
          ⁡
          
            (
            
              C
              ,
              SK
            
            )
          
        
        =
        
        ⁢
        
          Dec
          ⁡
          
            (
            
              C
              ,
              
                g
                ⁡
                
                  (
                  
                    
                      sk
                      1
                      ′
                    
                    ,
                    ...
                    ⁢
                    
                      
                    
                    ,
                    
                      sk
                      N
                      ′
                    
                  
                  )
                
              
            
            )
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          f
          ⁡
          
            (
            
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      1
                      ′
                    
                  
                  )
                
              
              ,
              ...
              ⁢
              
                
              
              ,
              
                Dec
                ⁡
                
                  (
                  
                    C
                    ,
                    
                      sk
                      N
                      ′
                    
                  
                  )
                
              
            
            )
          
        
      
    
  



and differs from (sk1, . . . , skN) and changes the secret-key segment skn recorded in the segment storage apparatus to skn′;
wherein
the processing circuitry changes, periodically or under a predetermined condition, the secret-key segments skn to skn′;
the relationship


C={C1,C2}={g^r,Mh^r}



M=Dec(C,x)=C2/(C1^x)


is satisfied, where {g, h} is the public key PK, x is the secret key SK and an integer greater than or equal to 0 and less than or equal to q−1, h=g^x, r is a random number and an integer greater than or equal to 0 and less than or equal to q−1, q is the order of a cyclic group G, g is the generator of the cyclic group G, M is a plaintext and an element of the cyclic group G, C is the ciphertext and an element of the cyclic group G, and ^ is a symbol representing a power; and
the functions g and f are defined as


g(sk1, . . . ,skN)=sk1+ . . . +skN mod q 



f(Dec(C,sk1), . . . ,Dec(C,skN))=Dec(C,sk1)× . . . ×Dec(C,skN)/(C2^(N−1)).