A secret key generation method for generating secret keys peculiar to entities using divided specifying information resulting from division of information specifying said entities into a plurality of blocks, the divided information used to generate the secret keys allowing diminished sizes of the secret keys, each entity generating a common key by using a component corresponding to the divided specifying information of another entity, wherein:
- computation formulas for generating said secret keys are as follows:
- S
- i1
- →
- =
-
- α
- i
-
- H
- 1
-
- [
- I
- i1
- →
- ]
- +
- β
- i1
-
- 1
- →
- S
- i2
- →
- =
-
- α
- 1
-
- H
- 2
-
- [
- I
- i2
- →
- ]
- +
- β
- i2
-
- 1
- →
- ⋮
- S
- ij
- →
- =
-
- α
- i
-
- H
- j
-
- [
- I
- ij
- →
- ]
- +
- β
- ij
-
- 1
- →
- ⋮
- S
- iK
- →
- =
-
- α
- i
-
- H
- K
-
- [
- I
- iK
- →
- ]
- +
- β
- iK
-
- 1
- →
- g
- i0
- →
- ≡
-
- g
- α
- i
- -
- T
- 1
- →
-
- (
- mod
-
-
- N
- )
- g
- i1
- →
- ≡
-
- g
- α
- i
- -
- T
- S
- i1
- →
-
- (
- mod
-
-
- N
- )
- g
- i2
- →
- ≡
-
- g
- α
- i
- -
- T
- <
-
- S
- i1
- →
-
- >
- 2
-
- (
- mod
-
-
- N
- )
- ⋮
- g
- it
- →
- ≡
-
- g
- α
- i
- -
- T
- <
-
- S
- i1
- →
-
- >
- t
-
- (
- mod
-
-
- N
- )
- ⋮
- g
- iT
- →
- ≡
-
- g
- α
- i
- -
- T
- <
-
- S
- i1
- →
-
- >
- T
-
- (
- mod
-
-
- N
- )
- where
- vector sij is a secret key corresponding to j'th divided specifying information for entity i (j=1, 2, . . . , K)
- [vector Iij] is j'th divided specifying information for entity i;
- vector 1 is a vector of dimension K wherein all components are 1;
- Hj is a symmetrical 2Mj×2Mj matrix made up of random numbers;
- Mj is size of j'th divided specifying information for entity i;
- K is number of block divisions in information specifying entity i;
- αi is a personal secret random number for entity i (where gcd (αi, λ(N))=1 and λ(·) is Carmichael function);
- N is such that N=PQ (where P and Q are prime);
- βij is a personal secret random number for entity i (where βi1+βi2+ . . . +βiK=λ(N));
- g is maximum generating element with modulo N;
- vector git is a secret key for 1st block of specifying information for entity i (t=0, 1, 2, . . . , T);
- T is degree of exponent portion;
- and
- if c is a scalar, and A and B are matrixes represented in (i) and (ii) below, then the expressions B=cA and B=<A>c represent (iii) and (iv) below, respectively
- (i) A=(aμν)
- (ii) B=(bμν)
- (iii) bμν=caμν
- (iv) bμν=aμνc.