WO2005064843A1 - 素数算出装置及び方法並びに鍵発行システム - Google Patents

素数算出装置及び方法並びに鍵発行システム Download PDF

Info

Publication number
WO2005064843A1
WO2005064843A1 PCT/JP2004/019108 JP2004019108W WO2005064843A1 WO 2005064843 A1 WO2005064843 A1 WO 2005064843A1 JP 2004019108 W JP2004019108 W JP 2004019108W WO 2005064843 A1 WO2005064843 A1 WO 2005064843A1
Authority
WO
WIPO (PCT)
Prior art keywords
prime
information
unit
key
candidate
Prior art date
Application number
PCT/JP2004/019108
Other languages
English (en)
French (fr)
Inventor
Yuichi Futa
Motoji Ohmori
Original Assignee
Matsushita Electric Industrial Co.,Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co.,Ltd. filed Critical Matsushita Electric Industrial Co.,Ltd.
Priority to US10/582,803 priority Critical patent/US7634084B2/en
Priority to EP04807465A priority patent/EP1699160A1/en
Priority to JP2005516589A priority patent/JP4668795B2/ja
Publication of WO2005064843A1 publication Critical patent/WO2005064843A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3033Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to pseudo-prime or prime number generation, e.g. primality test
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7204Prime number generation or prime number testing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise

Definitions

  • the present invention relates to a technique for maintaining information security based on the difficulty of factorization as a basis for security.
  • the secret communication method is a method of performing communication without leaking communication contents to a person other than a specific communication partner.
  • the digital signature method is a communication method that shows the validity of communication contents to a communication partner and proves the identity of a caller.
  • an encryption scheme called a public key encryption scheme is used.
  • the encryption key and the decryption key are different, and the decryption key is kept secret but the encryption key is made public.
  • the decryption key that keeps the secret is called the secret key
  • the encryption key that is made public is called the public key.
  • the common key cryptography requires a key between the communication partners.Public key cryptography allows a communication partner to communicate only by having one unique key. The number of keys may be smaller than that of the common key encryption. In this way, public key cryptography is suitable for communicating with a large number of communication partners and is an indispensable fundamental technology.
  • the prime factorization problem is described in Non-Patent Document 1, pages 144-151. It is elaborated.
  • the public key and the secret key are calculated as follows.
  • GCD (e, L) indicates the greatest common divisor of e and L.
  • the ciphertext c is calculated by performing a cryptographic operation on the plaintext m using the public key integer e and integer n.
  • A indicates a value obtained by multiplying A by X times when x> 0.
  • a decryption operation is performed on the encrypted text c to calculate a decrypted text m ′.
  • Prime number is generated.
  • the generation of prime numbers is described in detail in Non-Patent Document 3 on pages 145-154.
  • a prime generated by the stochastic prime generation method is a number that has a “high probability of being a prime” and is not necessarily 100% prime.
  • the deterministic prime generation method surely generates numbers that are prime numbers.
  • Non-Patent Document 2 describes the stochastic prime generation method and the deterministic prime generation method in detail. Hereinafter, the deterministic prime generation method will be described.
  • a deterministic prime generation method using the Maurer method which can deterministically generate prime numbers, will be described.
  • the Maurer method is described in detail in Non-Patent Document 3 at pages 152 to 153.
  • a prime is generated by repeating the following steps.
  • the prime number q of the bit size lenq is given!
  • Step 1 Select a random number R of (lenq-1) bits. Note that the first bit of the random number R must be 1.
  • Step 2 Calculate the number N by the following formula.
  • Step 3 It is determined whether or not the force of which the number N is a prime is a prime if both the first and second determinations below are satisfied. Otherwise, it is determined that it is not a prime number.
  • the number N is output as a prime number. If it is not a prime number, return to step 1 and repeat the process until a prime number is output.
  • N of N 2 X q XR + l is a prime number, and if the results of the first judgment and the second judgment are true, N is always a prime number. Therefore, it can be determined deterministically that it is a prime number, and deterministic prime number generation becomes possible.
  • a prime N of size 2 X lenq is generated based on a prime q of size lenq. Therefore, when a prime with a predetermined length is generated using a deterministic prime generation method based on the Maurer method, generation of a prime with a length equal to or less than the predetermined length is repeatedly performed. For example, when generating a 512-bit prime, a 16-bit prime is generated based on an 8-bit prime given in advance. Next, a 32-bit prime is generated based on the generated 16-bit prime. Next, a 64-bit prime is generated based on the generated 32-bit prime. Hereinafter, the same prime number generation is repeated to generate a 512-bit prime number.
  • the second determination may be replaced with the following determination.
  • the third determination method is described in detail in Non-Patent Document 4. Hereafter, this judgment method will be used.
  • a user may generate a key or a key issuing server may issue a key to the user.
  • a key is issued by a key issuing server
  • the number of servers that issue keys to users is often one.
  • the key issuing system may include a plurality of key management servers, and each of the plurality of key management servers may issue a key.
  • Patent Document 1 Japanese Patent Application Laid-Open No. 2003-5644
  • Non-Patent Document 1 Tatsuaki Okamoto and Kazuo Ota, ed., "Cryptography ⁇ Zero Knowledge Problem ⁇ Number Theory,” Kyoritsu Shuppan, 1990
  • Non-Patent Document 2 Tatsuaki Okamoto, Hiroshi Yamamoto, “Contemporary Cryptography”, Industrial Books (1997)
  • Non-Patent Document 3 A. Menezes, PC van Oorschot, SA Vanstone, "Handbook of applied cryptography, CRC Pres, 1997
  • Non-Patent Document 4 Eiji Okamoto, "Introduction to Cryptography", Kyoritsu Shuppan, 1993, p. 21
  • Non-Patent Document 5 Henri Cohen, A Course in Computational Algebraic
  • the first and second key issuing servers do not check the issued RSA keys with each other. This is because there is a security problem if the issued RSA key is made public to other key issuing servers. Therefore, by chance, the first and second key issuing servers may generate the same public key and the same secret key for the first user and the second user.
  • a third user can communicate with the first user using the public key for the first user.
  • the first user can of course decrypt the ciphertext using his own secret key, but the second user can also use the own secret key to decrypt the ciphertext.
  • the sentence can be decrypted.
  • the public key of the RSA is calculated by the product of two different prime numbers, so that each prime power used in the generation of the public key is the first key issuing server. And the second key issuing server may be different.
  • an object of the present invention is to provide a prime calculation device, a key issuing system, a prime calculation method, and a prime calculation program for calculating a prime while calculating a prime while avoiding duplication by simple management. I do.
  • the present invention relates to a prime calculating apparatus which calculates a prime candidate N larger than a known prime q and determines a prime, wherein the prime storage device stores the known prime q.
  • a step management information storage means for storing unique management information in a usage range of prime numbers, and a disturbance for reading the management information from the management information storage means and generating disturbance information R depending on the read management information.
  • a candidate calculating means for reading a prime number q, and using the read prime number q and the generated perturbation information R to calculate a prime candidate N by N 2X perturbation information RX prime q + 1; a calculated prime number A prime number determining unit that determines whether or not the candidate N is a prime number; and an output unit that outputs the calculated prime number candidate N as a prime number when it is determined that the candidate N is a prime number.
  • the prime number calculation device calculates the prime number candidate N using the disturbance information R generated depending on the unique management information. Therefore, the prime number candidate is calculated while avoiding duplication. Can be calculated.
  • the use range of prime numbers is the range in which prime numbers are used based on the difficulty of factorization as a basis for security.
  • the disturbance information generating unit combines the read-out management information with the generated random number r, a reading unit that reads the management information from the management information storage unit, a random number calculation unit that calculates a random number r.
  • a combination unit may be included, and a calculation unit that calculates the disturbance information R based on a combination of the management information and the random number r may be included.
  • the prime number calculating device generates the disturbance information R based on the combination of the management information and the random number r, so that the uniqueness based on the management information and the randomness based on the random number r are combined.
  • the generated disturbance information can be generated.
  • the operation unit may generate a disturbance information R by applying an injection function to the combined object.
  • the prime number calculation device applies the injection function to the combination to generate the disturbance information R, so that the uniqueness of the combination is maintained by the properties of the injection function, In addition, it is possible to generate disturbance information having randomness due to the conversion of the bond strength.
  • the injection function is an exclusive OR
  • the arithmetic unit stores in advance predetermined key information, and performs an exclusive OR on the key information and the combination to perform a disturbance.
  • Information R may be generated.
  • the prime number calculating device can generate the disturbance information R by performing an exclusive OR operation on the combination and the predetermined key information.
  • the prime calculation device calculates a prime candidate N having a bit length twice as long as the prime q.
  • the random number calculating unit may calculate the random number r having a bit length obtained by subtracting V from the bit length of the prime number q and 1 from the bit length of the prime number q.
  • the prime number calculating device calculates the bit length of the prime number q as well as the bit length of the management information, and calculates a random number r of a bit length obtained by subtracting 1, thereby obtaining a bit length twice the prime number q. It is possible to calculate a prime candidate N having
  • the prime number calculating device determines whether or not the prime candidate N is a prime number using the first and second determining units, so that both the first and second determining units If the determination result is positive, the prime candidate N can be determined to be a prime.
  • the prime calculation device determines whether or not the prime candidate N is a prime using the first and second determination units, so that both the first and second determination units If the determination result is positive, the prime candidate N can be determined to be a prime.
  • the prime calculating device further generates the disturbance information R for the disturbance information generating means, the candidate calculating means, and the prime determining means until the prime determining means determines that the prime is a prime.
  • it may include a repetition control means for controlling the calculation of the prime number candidate N and the determination.
  • the prime calculation device performs the generation of the disturbance information R, the calculation of the prime candidate N, the determination of the prime, and the like until the repetition control means determines that the generated prime candidate is a prime. Is repeated, a prime number can always be output.
  • next-stage prime candidate calculating means for calculating prime candidate N' based on 'X prime N + 1'; next-stage prime determining means for determining whether calculated prime candidate N 'is a prime; determining that prime is prime
  • the next-stage output means for outputting the calculated prime candidate N ′ as a prime number, the next-stage random number calculation means, and the next-stage random number calculation means until the next-stage prime number determination means determines that it is a prime number.
  • the candidate calculation means and the next-stage prime number determination means it may include a next-stage repetition control means for controlling the generation of the random number R ', the calculation of the prime number candidate N', and the determination. Good.
  • the prime calculation device calculates the prime candidate N ′ using the prime N and the generated random number R ′, and determines whether the calculated prime candidate N ′ is a prime. Then, if it is a prime number, the calculated prime candidate N ′ can be output as a prime number.
  • the number-of-graphies calculating device further includes a next-stage information storage means for storing a predetermined verification value, a next-stage random number generation means for generating a random number r ', and the random number r generated for the management information.
  • N ′ 2 X disturbance information R, X prime N + verification value to calculate a prime candidate N ′, and a next-stage candidate calculating means for calculating a prime candidate N ′. Further, it is determined whether or not the calculated prime candidate N ′ is a prime number, and the output means further determines the calculated prime candidate N ′ when the prime candidate N ′ is determined to be a prime number. 'Is output as a prime number.
  • the prime calculation device calculates the prime candidate N 'using the verification value, the prime N, and the disturbance information R' obtained by multiplying the management information by the random number r '. It is determined whether or not the prime candidate N ′ is a prime number, and if it is a prime number, the prime candidate N ′ can be output as a prime number. As a result, the result of subtracting the verification value from the prime N 'can generate a prime N' that is divisible by the management information.
  • the prime number calculation device is a key generation device that generates a public key and a secret key of the RSA encryption, and the prime number calculation device further uses the calculated prime number N to publish the RSA encryption.
  • a public key generating means for generating a key and a secret key generating means for generating a secret key of the RSA encryption using the generated public key may be included.
  • the prime number calculation device generates the public key and the secret key of the RSA encryption key.
  • the prime number calculating device can generate a public key by using the calculated prime number N, and can generate a secret key by using the generated public key.
  • the public key generation means instructs the repetition control means to obtain a new prime number N ', and uses the prime number N and the newly obtained prime number N'.
  • N prime number NX
  • a number n is calculated by a prime number N ′
  • a random number e is generated
  • a set of the calculated number n and the generated random number is the public key.
  • d l mod L is calculated, where L is the least common multiple of the prime number N-1 and the prime number N'-l, and the calculated d may be the secret key.
  • the prime number calculating device calculates the number n using the prime numbers N and N ′, generates the random number e, generates the public key, and generates the generated random number e, Prime N—1 and prime
  • a secret key can be generated from the least common multiple of N and ⁇ 1.
  • the prime number calculating device is a key issuing server device that generates and issues an RSA private key and a public key to the terminal device, and the prime number calculating device further includes the generated private key.
  • the prime number calculation device can output the generated secret key to the terminal device, and can publish the generated public key.
  • the prime number calculating device further includes an identifier obtaining unit that obtains a terminal device identifier that uniquely identifies the terminal device, a management information generating unit that generates the management information including the obtained terminal device identifier, Writing means for writing the generated management information to the management information storage means.
  • the prime number calculation device generates management information including the terminal device identifier and writes the generated management information to the management information storage means, so that unique management information can be stored.
  • the prime number calculation device further includes a server identifier storage unit that previously stores a server identifier that uniquely identifies the prime number calculation device as a key issuing server device
  • the management information generation unit includes: Furthermore, the server identifier is read from the server identifier storage means, and the management information further including the read server identifier is generated. It's a little to do.
  • the prime number calculation device further generates management information including the server identifier, so that the uniqueness of the management information can be improved.
  • the present invention is a prime calculating apparatus for calculating a prime larger than a known prime, comprising a prime calculating means for calculating an output prime having a bit length twice as long as a known input prime, and a known prime initial value. And a repetition control means for controlling the prime number calculation means to repeat the calculation a plurality of times, wherein the repetition control means performs the first calculation in the repetition,
  • the prime initial value stored in the prime storage means is given as the input prime to the prime calculation means, and in the other calculations other than the first calculation of the repetition, the initial prime value is calculated in the previous calculation.
  • An output prime is given to the prime calculation means as the input prime in the other calculation, and in any one of the plurality of calculations, the prime calculation means includes a unique number in a usage range of the prime.
  • a management information storage unit for storing management information, a disturbance information generation unit for reading the management information from the management information storage unit, and generating disturbance information R depending on the read management information;
  • a prime determining unit for determining whether or not the prime candidate N is a prime; an output unit for outputting the calculated prime candidate N as an output prime when the prime candidate N is determined to be a prime;
  • the generation of the perturbation information R, the calculation of the prime number candidate N, and the determination are repeated for the disturbance information generation unit, the candidate calculation unit, and the prime number determination unit until it is determined by the unit to be a prime number.
  • the prime output means of the prime calculating apparatus uses the disturbance information R generated depending on the unique management information in any one of the multiple calculations of the output prime. Since the prime candidate N is calculated, the prime candidate can be calculated while avoiding duplication.
  • the prime number calculation means includes: an information storage unit storing a predetermined verification value; a random number generation unit generating a random number r ′;
  • the prime number candidate N ′ is obtained by the output prime number calculated in the previous round + the verification value.
  • a prime determination unit that determines whether the calculated prime candidate N ′ is a prime, and a prime that is calculated when the prime candidate N ′ is determined to be a prime.
  • An output unit that outputs the candidate N ′ as a prime; and a random number generation unit that generates a random number r ′ to the random number generation unit, the candidate calculation unit, and the prime number determination unit until the prime determination unit determines that the candidate is prime.
  • a repetition control unit that controls the calculation of the prime number candidate N ′ and the above-described determination to be repeated.
  • the prime number calculating apparatus uses the verification value, the output prime number calculated in the immediately preceding round, and the disturbance information R 'obtained by multiplying the management information by the random number r', to calculate the prime number.
  • the candidate N ' is calculated, and it is determined whether or not the calculated prime candidate N' is a prime number. If the calculated candidate N 'is a prime number, the prime candidate N' can be output as a prime number. As a result, the result of subtracting the verification value from the prime N 'can generate a prime N' that is divisible by the management information.
  • the present invention is also a key issuing system including a key issuing server device that generates and issues an RSA private key and a public key to a terminal device and the terminal device.
  • the server device includes: a prime calculating means for calculating a prime N larger than the known prime q; a public key generating means for generating a public key of the RSA encryption using the calculated prime N; and a generated public key.
  • Secret key generation means for generating a secret key of RSA encryption, key output means for outputting the generated secret key to a terminal device, and public means for publishing the generated public key.
  • the prime calculation means comprises: a prime storage unit storing a known prime q, a management information storage unit storing unique management information, and reading the management information from the management information storage unit. Disturbance information R depending on the read management information
  • An output unit that outputs a prime number and the disturbance information generation unit, the candidate calculation unit, and the prime number determination unit until the prime number determination unit determines that the output is a prime number.
  • a repetition control unit for controlling the generation of the disturbance information R, the calculation of the prime number candidate N, and the determination, wherein the terminal device receives the secret key,
  • a key storage means for storing the secret key.
  • the key issuing server device of the key issuing system calculates the prime number candidate N using the disturbance information R generated based on the unique management information.
  • a prime candidate can be calculated. Since the terminal device receives and stores the secret key in the key issuing server device, the terminal device can store the secret key generated by the prime number N generated while avoiding duplication, that is, the secret key generated while avoiding duplication. .
  • the key issuing system further includes a certificate issuing server device, and the key output means outputs the public key to the certificate issuing server device, and outputs the public key to the certificate issuing server.
  • the device includes a storage unit that stores a secret key of the certificate issuing server device, an obtaining unit that obtains the public key, and the public key using the secret key of the certificate issuing server device.
  • Certificate generating means for applying digital signature to public key information to generate signature data, and generating a public key certificate including at least the public key and the generated signature data, and a generated public key certificate And an output means for outputting to the key issuing server device.
  • the key issuing system can use the certificate issuing server device to issue a public key certificate for the public key issued by the key issuing server device.
  • FIG. 1 is a diagram showing an outline of an entire key issuing system 1.
  • FIG. 2 is a block diagram showing a configuration of a key issuing server 100.
  • FIG. 3 is a block diagram showing a configuration of a prime number generation unit 116.
  • FIG. 4 is a diagram showing an example of a data structure of a control information table T100.
  • FIG. 5 is a block diagram showing a configuration of a prime information generation unit 133.
  • FIG. 6 is a block diagram showing a configuration of a certificate issuing server 200.
  • FIG. 7 is a diagram showing an example of a data structure of a verification value table T200.
  • FIG. 8 is a block diagram showing a configuration of a terminal device 300. [9] This is a flowchart showing an outline of the operation of the key issuing system 1.
  • FIG. 10 is a flowchart showing an operation of a key request process in the key issuing system 1.
  • FIG. 11 is a flowchart showing an operation of a key issuing process in the key issuing system 1. Continue to Figure 12.
  • FIG. 12 is a flowchart showing an operation of a key issuing process in the key issuing system 1. Continued from Fig. 11 and continued to Fig. 13.
  • FIG. 13 is a flowchart showing an operation of a key issuing process in the key issuing system 1. Continued from Figure 12 and continued to Figure 14.
  • FIG. 14 is a flowchart showing an operation of a key issuing process in the key issuing system 1. Continued from Figure 13.
  • FIG. 15 is a flowchart showing an operation of a prime number generation process.
  • FIG. 18 is a flowchart showing an operation of a certificate issuing process in the key issuing system 1.
  • FIG. 19 is a block diagram showing a configuration of a prime information generation unit 133A.
  • FIG. 20 is a diagram showing an example of a data structure of a verification value table T250.
  • FIG. 21 is a block diagram showing a configuration of a prime information generation unit 133B.
  • FIG. 22 is a block diagram showing a configuration of a prime generation unit 116C.
  • FIG. 23 is a diagram showing an example of a data structure of a control information table T150.
  • FIG. 24 is a block diagram showing a configuration of a prime information generation unit 133C.
  • FIG. 26 is a diagram showing an overview of the entire key issuing system 2.
  • FIG. 27 is a block diagram showing a configuration of a key issuing server 1100.
  • FIG. 28 is a diagram showing an example of the data structure of an issued key information table T1100.
  • FIG. 29 is a block diagram showing a configuration of a key issuance audit server 1200.
  • FIG. 30 is a diagram showing an example of a data structure of a verification value table T1200.
  • FIG. 31 is a flowchart showing an operation outline of the key issuing system 2 at the time of key issuance.
  • FIG. 32 is a flowchart showing an outline of operation of the key issuing system 2 at the time of key audit.
  • FIG. 33 is a flowchart showing an operation of a certificate issuing process in the key issuing system 2.
  • FIG. 34 is a flowchart showing an operation of a key information acquisition process in the key issuing system 2.
  • FIG. 35 is a flowchart showing an operation of an audit process in the key issuing system 2.
  • FIG. 36 is a flowchart showing the operation of a confirmation process.
  • FIG. 37 is a diagram showing an operation of generating a 512-bit prime from an 8-bit prime.
  • FIG. 38 is a block diagram showing a configuration of a prime number generation device 2100.
  • FIG. 39 is a flowchart showing the operation of a prime number generation process.
  • FIG. 40 is a flowchart showing the operation of a prime candidate generation process.
  • FIG. 41 is a block diagram showing a configuration of a prime number generation device 2200.
  • FIG. 42 is a block diagram showing a configuration of a prime number generation device 2300.
  • FIG. 43 is a block diagram showing a configuration of a prime number generation device 2400.
  • FIG. 44 is a block diagram showing a configuration of a prime number generation device 2500.
  • FIG. 45 is a diagram showing an example of “IDI-Rl” as a result of embedding each bit forming a random number “R1” into a bit string of issue identifier information “IDI”.
  • FIG. 46 is a flowchart showing the operation of the verification process.
  • a key issuing system 1 according to a first embodiment of the present invention will be described. 1.1 Overview of key issuing system 1
  • the key issuing system 1 includes key issuing servers 100, 101, and 102, and a certificate. Issued Sano 200 and terminal devices 300, 301, 302, 303, ..., 304, 305, 3
  • the number of terminal devices is, for example, 1,000.
  • the key issuing servers 100, 101 and 102 are managed by different companies.
  • the terminal devices 300, 301,,, and 302 request the key issuing server 100 to issue a key
  • the terminal devices 303,,, and 304 request the key issuing server 101 to issue a key
  • the terminal device 305,..., 306 issues a key issuance request to the key issuing server 102. It is assumed that a secure communication path is established between the terminal devices 300, 301,..., 302 and the key issuing server 100.
  • the key issuing server 100 Upon receiving the key issuance request from the terminal device 300, the key issuing server 100 generates a secret key and a public key in the RSA encryption, and sends the certificate issuing server 200 a public key certificate for the generated public key. Make an issuance request.
  • the key length of each key to be generated is 1024 bits.
  • certificate issuing server 200 Upon receiving a certificate issuance request from key issuing server 100, certificate issuing server 200 issues a public key certificate and transmits the issued public key certificate to key issuing server 100.
  • key issuing server 100 When receiving the public key certificate from certificate issuing server 200, key issuing server 100 transmits the received public key certificate and the generated private key to terminal device 300.
  • the terminal device 300 Upon receiving the public key certificate and the private key from the key issuing server 100, the terminal device 300 stores the received public key certificate and the private key.
  • the user of the terminal device 400 first obtains the public key certificate of the terminal device 300 from the key issuing server 100, or obtains the public key certificate from the terminal device 300, Using the public key of 200, confirm the validity of the public key certificate If the public key certificate is determined to be an appropriate public key certificate, the obtained public key certificate is stored in the terminal device 400.
  • the terminal device 400 encrypts the e-mail to be transmitted to the terminal device 300 using the public key included in the stored public key certificate, and transmits the encrypted e-mail to the terminal device 300 .
  • terminal device 300 Upon receiving the encrypted e-mail from terminal device 400, terminal device 300 decrypts the encrypted e-mail using the stored secret key, and decrypts the decrypted e-mail. Is displayed.
  • terminal devices 301, 302, and 302 are the same as the terminal device 300, and a description thereof will be omitted.
  • key issuing servers 101 and 102 are the same as the key issuing server 100, and thus the description is omitted.
  • the terminal device 300 is used as a representative of each terminal device, and the key issuing server 100 is used as a representative of each key issuing server.
  • the key issuing server 100 includes an identifier storage unit 110, a secret key storage unit 111, a public key storage unit 112, a certificate storage unit 113, a control unit 114, an identifier generation unit 115, and a prime number generation unit. 116, a key determination unit 117, a key generation unit 118, an information acquisition unit 119, a reception unit 120, and a transmission unit 121.
  • the key issuing server 100 is, specifically, a computer system including a microprocessor, a ROM, a RAM, a hard disk unit, a display unit, a keyboard, a mouse, and the like.
  • a computer program is stored in the RAM or the hard disk unit. By operating in accordance with the microprocessor power and the computer program, the key issuing server 100 achieves its function.
  • the key issuing servers 101 and 102 have the same configuration as the key issuing server 100, and a description thereof will be omitted.
  • the identifier storage unit 110 stores issue identifier information having a bit size of 126 bits or less. And has a region for The bit size of the issue identifier information is, for example, 64 bits.
  • the secret key storage unit 111 has a prime storage area for storing two prime numbers used in generating a secret key, and a secret key storage area for storing the secret key generated by the key generation unit 118. have.
  • the public key storage unit 112 has an area for storing the public key generated by the key generation unit 118.
  • the certificate storage unit 113 has an area for storing a public key certificate issued by the certificate issuing server.
  • the control unit 114 has a server identifier storage area 130 and a terminal information storage area 131, as shown in FIG.
  • the server identifier storage area 130 stores a server identifier for identifying the server in advance.
  • the key issuing server 100 stores SIDA
  • the key issuing server 101 stores SIDB
  • the key issuing server 102 stores SIDC.
  • the server server identifier of the key issuing server 100 will be described as “SID”.
  • the bit size of the server identifier is 31 bits.
  • the terminal information storage area 131 has an area for storing a terminal identifier for identifying a terminal device that has issued a key issuance request.
  • the terminal identifier is, for example, a serial number of the terminal device.
  • the bit size of the serial number is set to 32 bits.
  • the control unit 114 Upon receiving key issue request information indicating a key issuance request and the terminal identifier “TID” of the terminal device 300 from the terminal device 300 via the receiving unit 120, the control unit 114 receives the received terminal identifier “TID”. Is written to the terminal information storage area 131. The control unit 114 outputs to the identifier generation unit 115 the command to generate the issue identifier information and the received terminal identifier “TID”.
  • the control unit 114 transmits the public key certificate “ Upon receiving “Cert”, the received public key certificate “Cert” is written into the certificate storage unit 113.
  • the control unit 114 outputs, to the information acquisition unit 119, a distribution start command for starting the process of distributing the secret key and the public key certificate to the terminal device 300 that has issued the key.
  • the identifier generation unit 115 acquires the server identifier “SID” stored in the server identifier storage area.
  • the symbol “II” is a bit or byte concatenation. By setting the least significant bit of the issue identifier information “IDI” to “1”, the issue identifier information “IDI” is always odd, and its bit size is 64 bits.
  • the identifier generation unit 115 writes the generated issue identifier information “IDI” to the identifier storage unit 110, and outputs a prime number generation start command to the prime number generation unit 116.
  • the prime generation unit 116 has a repetition control unit 132 and a prime information generation unit 133.
  • the prime generation unit 116 generates a 512-bit prime from the 8-bit prime, and outputs the generated 512-bit prime to the key determination unit 117.
  • the repetition control unit 132 temporarily stores an initial value storage area preliminarily storing an 8-bit prime number and the bit size of the prime number (that is, “8”), and a prime number received from the prime information generation unit 133. And a temporary storage area for storing the information.
  • repetition control section 132 includes repetition counter 135 for counting the number of repetitions of the operation of prime information generation section 133, and the number of primes output to key determination section 117, ie, generation And an output counter 136 for counting the number of times of output of the 512-bit prime number. Note that the initial values of the repetition counter 135 and the output counter 136 are each “1”.
  • the repetition control unit 132 has a control information table T100 shown in FIG. Control information
  • the table T100 stores one or more sets of the number of times and the control information. The number of times corresponds to the value of the repetition counter 135.
  • the control information indicates a type of a method of generating a prime generated by the prime information generation unit 133.
  • repetition control section 132 Upon receiving a prime number generation start command from identifier generation section 115, repetition control section 132 controls prime information generation section 133 to generate a prime number. Upon receiving a prime number from the prime information generation unit 133, based on the values of the repetition counter 135 and the output counter 136, the prime generation instruction to the prime information generation unit 133 and the received prime number are again sent to the key determination unit 117. Output to either
  • repetition control section 132 Upon receiving the prime number generation start command from identifier generation section 115, repetition control section 132 sets repetition counter 135 and output counter 136 to “1”, respectively.
  • the repetition control unit 132 Upon receiving the prime number from the prime information generation unit 133, the repetition control unit 132 adds “1” to the value of the repetition counter 135 and determines whether or not the addition result is “7”.
  • the repetition control unit 132 judges whether or not the force of the output counter 136 is 1. If it is determined to be 1, the repetition control unit 132 outputs the received prime number as a prime number “pl” to the key determination unit 117, adds “1” to the value of the output counter 136, and repeats. Set the value of counter 135 to “1”. If it is determined that it is not 1, that is, it is 2 or more, the repetition control unit 132 sets the received prime to the prime “p2” and outputs the prime “p2” and the determination start instruction to the key determination unit 117. .
  • the bit size of the received prime is calculated, and the repetition control unit 132 temporarily stores the received prime and the calculated bit size in the temporary storage area. To memorize.
  • the repetition control unit 132 receives the prime number generation start instruction, adds “1” to each value of the repetition counter 135 and the output counter 136, and then receives the prime number received from the prime number information generation unit 133 and its bit size. Is temporarily stored, and after adding “1” to the output counter 136 and setting the value of the repetition counter 135 to “1”, the repetition control unit 132 The operation of is performed.
  • the repetition control unit 132 determines whether or not the value of the repetition counter 135 is “1”. Is one When it is determined that the prime number and its bit size are read from the initial value storage area, and when it is determined that they are not 1, the bit size "8 X (2 '(11-1 )) "And its prime number. That is, when the repetition control unit 132 determines that the value of the repetition counter 135 is not 1, it reads the immediately preceding prime number and its bit size from the temporary storage area.
  • “n” is the value of the repetition counter. Thereby, the repetition control unit 132 reads the previously generated prime number and its bit size from the temporary storage area.
  • the repetition control unit 132 reads a prime number consisting of “16” bits, and if the value of the repetition counter 135 is “3”, , "31" bits.
  • the value of the repetition counter 135 is between “2” and “6”, a prime number consisting of “16” bits, a prime number consisting of “32” bits, a prime number consisting of “64” bits, and “128” bits And a prime number consisting of "256" bits.
  • Control information corresponding to the value of repetition counter 135 is read from control information table T100, and it is determined whether the read control information is “information C”.
  • the repetition control unit 132 If it is determined to be “information C”, the repetition control unit 132 generates first information including the read prime number and its bit size, and the control information, and generates the generated first information as a prime number. Output to the information generation unit 133.
  • the repetition control unit 132 acquires the issue identification information “IDI” from the identifier storage unit 110 and sets the bit size rienlD I of the acquired issue identifier information “IDI”. Is generated, and second information including the read prime number and its bit size, control information, issue identifier information "IDI” and its bit size "lenIDI” is generated, and the generated second information is replaced with the prime information Output to the generation unit 133.
  • repetition control section 132 when receiving a regeneration command for regenerating a prime number from key determination section 117, repetition control section 132 adds “1” to the value of output counter 136, and The value is set to “1”, and the operation after the operation of determining whether or not the force of the repetition counter 135 is 1 is performed.
  • the prime information generating unit 133 includes an information control unit 140, a random number generating unit 141, a prime candidate generating unit 142, a first prime determining unit 143, and a second prime determining unit 144.
  • the prime information generation unit 133 generates a prime having a bit size twice as large as that of the prime received from the repetition control unit 132. For example, when an 8-bit prime is received, a 16-bit prime is generated, and when a 16-bit prime is received, a 32-bit prime is generated.
  • the information control section 140 has an information storage area for storing the first information and the second information.
  • the information control unit 140 assigns the first verification value “cl l” and the second verification value “cl2” assigned by the certificate issuing server 200 and used when generating a prime number based on the control information “information A”. It has a verification value storage area stored in advance.
  • the information control unit 140 When the information control unit 140 receives, from the repetition control unit 132, first information including the prime “q”, the prime bit size “lenq”, and the control information, the received first information is Write to storage area. That is, the prime “q”, the prime bit size “lenq”, and the control information (in this case, “information C”) are written.
  • the information control unit 140 receives, from the repetition control unit 132, a first number consisting of a prime number “q”, a prime bit size “lenq”, control information, issue identifier information “IDI”, and its bit size “lenIDI”.
  • a first number consisting of a prime number “q”, a prime bit size “lenq”, control information, issue identifier information “IDI”, and its bit size “lenIDI”.
  • the received second information is written to the information storage area. That is, the prime number “q”, the prime bit size “lenq”, the control information, the issue identifier information “IDI”, and the bit size “lenIDI” are written.
  • information control section 140 After writing the received information, information control section 140 outputs a first generation instruction indicating a random number generation instruction to random number generation section 141.
  • information control section 140 When receiving the prime number from second prime number determination section 144, information control section 140 outputs the received prime number to repetition control section 132.
  • the information control unit 140 When receiving the number-of-reads command to read the value of the output counter 136 from the prime candidate generation unit 142, the information control unit 140 reads the value of the output counter 136 of the repetition control unit 132. The information control unit 140 outputs the read value to the prime candidate generation unit 142. ⁇ Random number generation unit 141>
  • the random number generation unit 141 When receiving a first generation instruction from the information control unit 140 from the information control unit 140, the random number generation unit 141 reads out control information stored in the information storage area of the information control unit 140. The random number generation unit 141 determines whether or not the read control information power is “information C”.
  • the random number generation unit 141 reads out rienqj stored in the information storage area of the information control unit 140, and reads the random number “R1” consisting of (lenq ⁇ 1) bits. Is generated, and the generated random number “R1” and the read control information are output to the prime candidate generation unit 142. Here, the most significant bit of the random number “R1” is 1.
  • Non-patent document 2 details the random number generation method.
  • the random number generation unit 141 reads rienqj and “lenIDI” stored in the information storage area of the information control unit 140, and (lenq-lenIDI-1 ) Generate a random number “R1” composed of bits, and output the generated random number “R1” and the read control information to the prime candidate generation unit 142.
  • the most significant bit of the random number “R1” is 1.
  • the random number generating unit 141 when receiving a second generation instruction to generate a random number again from one of the first prime number determining unit 143 and the second prime number determining unit 144, stores the control information in the information storage area. And the above operation is performed.
  • the prime candidate generation unit 142 has a generation information storage area for storing the generated information, and a function storage area for preliminarily storing the function “f” which is an injection.
  • the encryption function of symmetric key cryptography is generally bijective.
  • the symbol "II" is a bit or byte concatenation.
  • Enc (K, XIIY) is "Enc (K, X
  • Y) K XOR X
  • An example of the common cipher is DES. When DES is used, the key length is 128 bits. At this time, the prime candidate generation unit 142 stores the predetermined key “ ⁇ ”.
  • the prime candidate generation unit 142 determines whether or not the bit size “lenN” of the generated number “N” matches “lenq”, and if it determines that it matches, the prime candidate generation unit 142 142 outputs the generated number “N” to the first prime number determination unit 143, and stores the received random number “R1” as “R” in the generation information storage area.
  • the prime candidate generation unit 142 When judging that it is not “control information power ⁇ information C”, the prime candidate generation unit 142 reads the prime “q” and the issue identifier information “IDI” from the information storage area of the information control unit 140. The prime candidate generation unit 142 determines whether or not the control information is “information B”.
  • the prime candidate generation unit 142 determines whether or not the bit size “lenN” of the generated number “N” is “2 ⁇ lenqj”.
  • the prime candidate generation unit 142 If it is determined that the number is “2 X lenq”, the prime candidate generation unit 142 outputs the generated number “N” to the first prime determination unit 143, and stores the generated number “R” in the generation information storage area.
  • the prime candidate generation unit 142 multiplies the random number “R1” received from the random number generation unit 141 by 2, sets the result to “R1”, and again Generate the numbers "R" and "N”.
  • the prime candidate generation unit 142 reads the first verification value “c 11” from the verification value storage area of the information control unit 140.
  • the prime candidate generation unit 142 reads the second verification value “c12” from the verification value storage area of the information control unit 140. Note that the operation when the first verification value “cll” is read is the same as the operation when the second verification value “cl2” is read, and therefore, the operation is described below as the verification value “c”. .
  • the number “N” generated at this time is a prime candidate.
  • Non-Patent Document 5 describes the calculation method in detail. Hereinafter, “w” when the first verification value “cl 1” is used is expressed as “wl”, and “w” when the second verification value is used is expressed as “w2j”.
  • the prime candidate generation unit 142 reads the bit size “lenq” of the prime “q” from the information storage area of the information control unit 140, and checks whether the bit size of the generated number “N” is “2 ⁇ lenqj”. Determine whether or not.
  • the prime candidate generation unit 142 If it is determined to be “2Xlenq”, the prime candidate generation unit 142 outputs the generated number “N” to the first prime determination unit 143, and stores the generated number “R” in the generation information storage area. .
  • the prime candidate generation unit 142 multiplies the random number "R1" received from the random number generation unit 141 by 2, sets the result to "R1", and again calculates the number "R1". Generate "R” and "N”. K 1st prime judgment unit 143>
  • the first prime determination unit 143 determines whether the following expression is satisfied, using the received number “N”.
  • 2 '(N-1) indicates 2 to the power of N-1.
  • the first prime determining unit 143 When determining that the equation (eql) holds, the first prime determining unit 143 outputs the number “N” to the second prime determining unit 144.
  • the first prime determination unit 143 When determining that the equation (eql) does not hold, the first prime determination unit 143 outputs a second generation instruction to the random number generation unit 141.
  • the second prime number determination unit 144 When receiving the number “N” from the first prime number determination unit 143, the second prime number determination unit 144 reads the number “R” stored in the generation information storage area of the prime candidate generation unit 142.
  • the second prime determination unit 144 determines whether the following equation is satisfied, using the numbers “N” and “R”.
  • the second prime determining unit 144 determines that the equation (eq2) holds, the second prime determining unit 144 sets the number “N” as a prime “N” to the repetition controlling unit 132 via the information controlling unit 140. Output.
  • the second prime determining unit 144 When determining that the equation (eq2) does not hold, the second prime determining unit 144 outputs a second generation instruction to the random number generating unit 141.
  • the key determination unit 117 has a prime storage area for storing the two primes “pl” and “p2” received from the prime generation unit 116.
  • the key determination section 117 Upon receiving the prime numbers “pl” and “p2” from the prime number generation section 116, the key determination section 117 stores the received prime numbers “p1” and “p2” in the prime storage area.
  • the key judgment unit 117 Upon receiving the judgment start command from the prime generation unit 116, the key judgment unit 117 stores it in the prime storage area and judges whether the two primes “pl” and “p2” match. I do. If it is determined that they match, the stored prime “p2” is deleted, and a regeneration instruction is output to the repetition control unit 132.
  • the two prime numbers "pl" and "p2" It writes to the prime storage area of key storage section 111 and outputs a key generation start command to key generation section 118.
  • the key “PK” is written into the public key storage unit 112.
  • Key generation section 118 outputs a request start instruction to start request processing of the public key certificate to information acquisition section 119.
  • the information acquisition unit 119 Upon receiving the request start command from the key generation unit 118, the information acquisition unit 119 issues the issue identifier information “IDI” from the identifier storage unit 110, the public key “PK” from the public key storage unit 112, and the server of the control unit 114.
  • the server identifier and the server identifier are read from the identifier storage area 130, respectively.
  • the information acquisition unit 119 transmits the read issue identifier information “IDI”, the public key “PK”, the server identifier, and the certificate issuance request information for requesting the issuance of the public key certificate via the transmission unit 121. Sent to certificate issuing server 200.
  • the information acquisition unit 119 Upon receiving the distribution start instruction from the control unit 114, the information acquisition unit 119 stores the secret key "SK" stored in the secret key storage unit 111 and the certificate storage unit 113.
  • the public key certificate “Cert” and the terminal identifier stored in the terminal information storage area of the control unit 114 are read, and the read private key “SK” and public key certificate “Cert” are read.
  • the receiving unit 120 receives information from the certificate issuing server 200 and the terminal device 300 via the Internet, and outputs the received information to the control unit 114.
  • the transmitting unit 121 Upon receiving the issuance identifier information “IDI”, the public key “PK”, the server identifier, and the certificate issuance request information from the information acquisition unit 119, the transmitting unit 121 issues the received information to a certificate issuing unit. Send to line server 200.
  • the transmitting unit 121 receives the secret key “SK” and the public key certificate “Cert” from the information obtaining unit 119, and transmits the received information to the terminal device 300.
  • the certificate issuance server 200 Upon receiving the certificate issuance request information from the key issuance servers 100, 101, and 102, the certificate issuance server 200 issues a public key certificate and issues the issued public key certificate to the key issuance server that has been requested to issue it. Send to
  • the certificate issuing server 200 includes a secret key storage unit 210, an issued public key storage unit 211, an issued identifier information storage unit 212, a public key certificate storage unit 213, and an issued public key confirmation. It comprises a unit 214, a public key certificate generation unit 215, a certificate acquisition unit 216, a reception unit 217, and a transmission unit 218.
  • the certificate issuing server 200 is, specifically, a computer system including a microprocessor, a ROM, a RAM, a hard disk unit, a display unit, a keyboard, a mouse, and the like.
  • a computer program is stored in the RAM or the hard disk unit. By operating according to the microprocessor power and the computer program, the certificate issuing server 200 achieves its function.
  • the private key storage unit 210 reserves the private key “SKCA” that only the certificate issuing server 200 has. I remember.
  • the issued public key storage unit 211 has an area for storing the public key “PK” received from the key issuing server 100.
  • the issuance identifier information storage unit 212 has an area for storing the issuance identifier information “IDI” received from the key issuing server 100!
  • the public key certificate storage unit 213 has an area for storing the issued public key certificate “Cert”.
  • the issued public key confirmation unit 214 has a server information storage area 220 and a confirmation information storage area 221.
  • the server information storage area 220 has an area for storing a server identifier for identifying a key issuing server that has issued a public key certificate issuance request.
  • the confirmation information storage area 221 has a verification value table T200.
  • the verification value table T200 has an area for storing one or more sets of a server identifier, a first verification value, and a second verification value.
  • the server identifier is an identifier for identifying the key issuing server. “SIDA” indicates the key issuing server 100, “SIDB” indicates the key issuing server 101, and “SIDB” indicates the key issuing server 102. Show.
  • the first verification value and the second verification value are verification values assigned to the key issuing server indicated by the associated server identifier.
  • the server identifier of the key issuing server 100 will be described as “SID”.
  • the issuing public key confirmation unit 214 receives the issuing identifier information "IDI”, the public key "PK”, the server identifier, and the certificate issuing request information from the key issuing server 100 via the receiving unit 217. Receive.
  • the issuance public key confirmation unit 214 stores the received server identifier in the server information storage area 22. Write to 0.
  • the issued public key confirmation unit 214 reads the corresponding first verification value "c11" and second verification value "c12" using the received server identifier.
  • the issuance public key confirmation unit 214 uses the received public key “PK” and the issuance identifier information “IDI” to determine whether the public key “PK” is generated using the issuance identifier information “IDI”. Check.
  • the issuance public key confirmation unit 214 calculates “n ⁇ (cl ⁇ Xcl2)” and verifies whether or not it is divisible by the calculation result power “IDI”. Thereby, it is possible to confirm whether or not the public key “PK” is generated using the issuance identifier information “IDJ”.
  • the issuance public key confirmation unit 214 determines that “ ⁇ — (cl l X cl2)” is divisible by “IDI”, the public key “PK” is generated using the issuance identifier information “IDI”. If ⁇ ⁇ — (cl l X cl2) ”is not divisible by“ IDI ”, the public key“ PK ”is generated using the issue identifier information“ IDI ”, It is judged.
  • the issued public key checking unit 214 stores the received public key “PK” in the issued public key storage unit 211. Then, the issue identifier information is written to the issue identifier information storage unit 212, respectively.
  • the issued public key confirmation unit 214 outputs a public key certificate generation start instruction to the public key certificate generation unit 215.
  • the issuance public key confirmation unit 214 determines that the public key “ ⁇ ” has not been generated using the issuance identifier information “IDI”, the process ends.
  • the public key certificate generation unit 215 Upon receiving the instruction to start generating the public key certificate from the issued public key confirmation unit 214, the public key certificate generation unit 215 publishes the secret key “SKCA” from the secret key storage unit 210 and the issued public key storage unit 211.
  • the key “PK” is read and the issue identifier information “IDI” is read from the issue identifier information storage unit 212.
  • the public key certificate generation unit 215 generates a public key certificate “” using the read private key “SKCA”, public key “PK” and issue identifier information “IDI”.
  • Sig (K, D) is signature data when a secret key “K” is used for data “D”.
  • the symbol “II” is a concatenation of bits or bytes.
  • Public key certificate generation section 215 writes the generated public key certificate "Cert" to public key certificate storage section 213, and sends a transmission start instruction of public key certificate "Cert" to certificate acquisition section 216. Output.
  • the certificate acquisition unit 216 Upon receiving the instruction to start transmitting the public key certificate “Cert” from the public key certificate generation unit 215, the certificate acquisition unit 216 stores the public key certificate “Cert” from the public key certificate storage unit 213 and The server identifier is read from the information storage area 220, and the read public key certificate “Cert” is transmitted to the key issuing server 100 corresponding to the read server identifier via the transmission unit 218.
  • Receiving section 217 receives the information from key issuing server 100 and outputs the received information to issued public key confirming section 214.
  • the transmitting unit 218 receives the information from the certificate obtaining unit 216, and transmits the received information to the key issuing server 100.
  • the terminal device 300 includes a secret key storage unit 310, a public key certificate storage unit 311, a control unit 312, a reception unit 313, a radio unit 314, a baseband signal processing unit 315, and a speaker 316. , A microphone 317 and a display unit 318.
  • the terminal device 300 is a mobile phone.
  • the terminal device 300 is, specifically, a computer system including a microprocessor, ROM, RAM, a hard disk unit, a display unit, a keyboard, a mouse, and the like. A computer program is stored in the RAM or the hard disk unit. The terminal device 300 achieves its functions by operating according to the microprocessor power and the computer program. [0112] Note that the terminal devices 301, ..., 302, 303, ..., 304, 305, ..., 306 have the same configuration as that of the terminal device 300, and a description thereof will be omitted.
  • the key issuance request information and the terminal identifier are transmitted from the terminal devices 301,..., 302 to the key issuance server 100, the key issuance request information from the terminal devices 303,.
  • the public key certificate storage unit 311 has an area for storing a public key certificate “Cert” of a public key corresponding to the private key issued by the key issuing server 100!
  • the control unit 312 has a terminal identifier storage area 320 as shown in FIG.
  • the control unit 312 also has a mail storage area for storing the encrypted e-mails.
  • the terminal identifier storage area 320 stores a terminal identifier “TID” for identifying the device in advance. .
  • control unit 312 Upon receiving the key issuance request instruction from receiving unit 313, control unit 312 reads terminal identifier "TID" from terminal identifier storage area 320.
  • the control unit 312 transmits the key issuance request information and the read terminal identifier “TID” to the key issuance server 100 via the baseband signal processing unit 315 and the wireless unit 314.
  • the control unit 312 Upon receiving the secret key “SK” and the public key certificate “Cert” from the key issuing server 100 via the radio unit 314 and the baseband signal processing unit 315, the control unit 312 The key “SK” is written into the private key storage unit 310 and the public key certificate “Cert” is written into the public key certificate storage unit 311.
  • control unit 312 Upon receiving the encrypted e-mail from the terminal device 400 via the wireless unit 314 and the baseband signal processing unit 315, the control unit 312 stores the received encrypted e-mail in the mail. Write to area.
  • the control unit 312 Upon receiving the display command of the encrypted e-mail from the reception unit 313, the control unit 312 transmits the secret key “SK” from the secret key storage unit 310 and the encrypted e-mail from the mail storage area. Using the read secret key “SK”, the encrypted electronic mail is decrypted, and the decrypted electronic mail (hereinafter, simply referred to as “electronic mail”) is output to the display unit 318.
  • Receiving section 313 outputs a display command to control section 312 when receiving an instruction to display the encrypted e-mail by a user operation.
  • the radio section 314 includes an antenna 319 and transmits and receives radio signals.
  • the baseband signal processing unit 315 performs signal processing for outputting a signal received from the wireless unit 314 to the speaker 316 and signal processing for outputting audio received from the microphone 317 to the wireless unit 314.
  • the baseband signal processing unit 315 Upon receiving the key issuance request information and the terminal identifier from the control unit 312, the baseband signal processing unit 315 transmits the received key and key issuance request information and the terminal identifier to the key issuing server via the wireless unit 314. Send to 100.
  • baseband signal processing section 315 When receiving the private key and the public key certificate from key issuing server 100 via wireless section 314, baseband signal processing section 315 outputs the received private key and public key certificate to control section 312.
  • Baseband signal processing section 315 transmits a private key and a public key certificate from key issuing server 100.
  • the private key and the public key certificate are received via the wireless unit 314, the private key and the public key certificate are output to the control unit 312.
  • the baseband signal processing unit 315 When receiving the encrypted e-mail from the terminal device 400 via the radio unit 314, the baseband signal processing unit 315 outputs the received encrypted e-mail to the control unit 312.
  • Speaker 316 outputs the signal processed by baseband signal processing section 315 as sound.
  • Microphone 317 receives the voice of the user and outputs the received voice to baseband signal processing section 315.
  • Display unit 318 displays the e-mail received from control unit 312.
  • the terminal device 300 transmits the key issuance request information and the terminal identifier “TID” to the key issuance server 100 in the key request process (step S5).
  • the certificate issuance server 200 Upon receiving the issue identifier information "IDI” and the public key “PK”, the certificate issuance request information, and the server identifier "SID”, the certificate issuance server 200 discloses the certificate in the certificate issuance process.
  • key It is determined whether the prime numbers “pl” and “p2” included in the secret key “SK” corresponding to “PK” have been generated using the issue identifier information “IDI”, and if the determination result is positive, the public key Generate a public key certificate “” for “PK”.
  • the certificate issuing server 200 transmits the generated public key certificate “Cert” to the key issuing server 100 (Step S15).
  • the terminal device 300 Upon receiving the private key “SK” and the public key certificate “Cert” from the key issuing server 100 in the key request process, the terminal device 300 converts the received private key “SK” and public key certificate “Cert”. Save and shut down the system.
  • the receiving unit 313 of the terminal device 300 receives an instruction of a key issuance request by a user's operation (step S100).
  • the control unit 312 of the terminal device 300 acquires the terminal identifier "TID" from the terminal identifier storage area 320 (Step S105).
  • the control unit 312 of the terminal device 300 transmits the key issuance request information and the obtained terminal identifier “TID” to the key issuance server 100 via the baseband signal processing unit 315 and the wireless unit 314 (Step S 110).
  • the control unit 312 of the terminal device 300 receives the secret key “SK” and the public key certificate “Cert” from the key issuing server 100 via the radio unit 314 and the baseband signal processing unit 315 (step S 115).
  • the control unit 312 writes the received secret key “SK” into the secret key storage unit 310 (step S120), and writes the public key certificate “Cert” into the public key certificate storage unit 311 (step S125).
  • the control unit 114 of the key issuing server 100 Upon receiving the key issue request information and the terminal identifier “TID” of the terminal device 300 from the terminal device 300 via the receiving unit 120 (step S200), the control unit 114 of the key issuing server 100 receives the received terminal identifier. “TID” is written to the terminal information storage area 131, and the command to generate the issue identifier information and the received terminal identifier “TID” are output to the identifier generator 115 (step S205).
  • the identifier generation unit 115 Upon receiving the command to generate issue identifier information and the terminal identifier "TID" from the control unit 114, the identifier generation unit 115 acquires the server identifier "SID" stored in the server identifier storage area. I do. The identifier generation unit 115 generates issue identifier information “IDI” from the acquired server identifier “SID”, the received terminal identifier “TID” and the number “1”, and generates the generated issue identifier information “IDI”. The data is written to the identifier storage unit 110, and a prime generation command is output to the prime generation unit 116 (step S210).
  • repetition control section 132 When receiving a prime number generation start instruction from identifier generation section 115, repetition control section 132 sets repetition counter 135 and output counter 136 to “1”, respectively (step S215). The repetition control unit 132 determines whether or not the force of the repetition counter 135 is 1 (step S220).
  • repetition control section 132 If it is determined to be 1 ("YES” in step S220), repetition control section 132 reads the prime number and its bit size from the initial value storage area (step S225), and determines that it is not 1. In this case (“NO” in step S220), the bit size "8 X (2" (11-1)) "and its prime number, that is, the previously generated prime number and its bit size are read from the temporary storage area ( Step S230). That is, when the repetition control unit 132 determines that the value of the repetition counter 135 is not 1, it reads the previously generated prime number and its bit size from the temporary storage area.
  • “n” is the value of the repetition counter.
  • Control information corresponding to the value of repetition counter 135 is read from control information table T100 (step S235), and it is determined whether or not the read control information power is "information C" (step S). 240).
  • the repetition control unit The 132 If it is determined to be "information C"("YES” in step S240), the repetition control unit The 132 generates first information including the read prime and its bit size, and the control information, and outputs the generated first information to the prime information generating unit 133 (Step S245).
  • repetition control section 132 acquires issue identifier information “IDI” from identifier storage section 110 and acquires The bit size “lenIDI” of the issue identifier information “IDI” is calculated, and the read prime number and its bit size, control information, and the second information including the issue identifier information “IDI” and its bit size “lenIDI” are obtained.
  • the generated second information is output to the prime information generation unit 133 (step S250).
  • the prime information generation unit 133 generates a prime by the prime generation processing, and outputs the generated prime to the repetition control unit 132 (step S255).
  • the repetition control unit 132 Upon receiving a prime number from the prime information generation unit 133, the repetition control unit 132 adds “1” to the value of the repetition counter 135 (step S260), and determines whether or not the addition result power is 7 or not. (Step S265).
  • repetition control section 132 calculates the bit size of the received prime number (step S270), and sets the received prime number And the calculated bit size are temporarily stored (step S275), and the process returns to step S220.
  • repetition control section 132 determines whether the value of output counter 136 is 1 or not (step S280).
  • the received prime is output as a prime “pl” to the key determination unit 117 (step S285), and “1” is added to the value of the output counter 136 (step S290), and “1” is added to the value of the repetition counter 135. Is set (step S295), and the process returns to step S220.
  • step SNO If it is determined that it is not 1, that is, it is 2 or more (“NO” in step SNO), the repetition control unit 132 sets the received prime number as the prime number “p2”, and sets the prime number “p2” and the determination start instruction as the key. The result is output to the determination unit 117 (step S300).
  • step S285 Upon receiving the prime “pl” from repetition controller 132 in step S285, key determination unit 117 stores the received prime “pl” in the prime storage area. The key determination unit 117 proceeds to step S300 Upon receiving “p2” and the determination start command from the repetition control unit 132, the received prime “p2” is stored in the prime storage area. The key determination unit 117 determines whether or not the two prime numbers “pl” and “p2” stored in the prime storage area match each other (step S305).
  • step S305 a regeneration instruction is output to the repetition control unit 132 (“YES” in step S305), and the repetition control unit 132 Upon receiving a regeneration command for generating a prime again from the determination unit 117, the above-described steps S290 and S295 are performed, and the process returns to step S220.
  • the two stored primes “pl” and “p2” are written to the prime storage area of the secret key storage 111 and a key generation start instruction is sent to the key generator 118.
  • the key generation unit 118 receives the key generation instruction from the key determination unit 117 (“NO” in step S305)
  • the key generation unit 118 stores the two prime numbers stored in the prime number storage area of the secret key storage unit 111.
  • a public key “PK” is generated as a key, and the generated public key “PK” is written to the public key storage unit 112 (step S320).
  • the information acquisition unit 119 Upon receiving the request start command from the key generation unit 118, the information acquisition unit 119 issues the issue identifier information “IDI” from the identifier storage unit 110, the public key “PK” from the public key storage unit 112, and the server of the control unit 114.
  • the server identifier is read from the identifier storage area 130 (step S335).
  • the information acquisition unit 119 transmits the read issue identifier information “IDI”, the public key “PK”, the server identifier, and the certificate issuance request information for requesting issuance of the public key certificate via the transmission unit 121.
  • the certificate is sent to the certificate issuing server 200 (step S340).
  • control unit 114 When the control unit 114 receives the public key certificate “Cert” from the certificate issuing server 200 via the receiving unit 120, the control unit 114 writes the received public key certificate “Cert” into the certificate storage unit 113. And outputs a distribution start instruction to the information acquisition unit 119 (step S345).
  • the information acquisition unit 119 Upon receiving the distribution start command from the control unit 114, the information acquisition unit 119 receives the secret key “SK” stored in the secret key storage unit 111 and the public key certificate stored in the certificate storage unit 113.
  • the certificate “Cert” and the terminal identifier stored in the terminal information storage area of the control unit 114 are read (step S350), respectively, and the read private key “SK” and public key certificate “Certj” are read. Is transmitted to the terminal device 300 corresponding to the read terminal identifier via the transmitting unit 121 (step S355).
  • the information control unit 140 receives the prime number “q”, the prime bit size “lenq”, the first information including the control information and the prime “q”, and the prime bit size “lenq” from the repetition control unit 132.
  • the received information is written to the information storage area, and an instruction to generate a random number is issued.
  • the first generation instruction shown is output to random number generation section 141 (step S400).
  • the random number generation unit 141 Upon receiving a first generation instruction indicating an instruction to generate a random number from the information control unit 140, the random number generation unit 141 reads the control information stored in the information storage area of the information control unit 140. Then, it is determined whether the read control information is “information C” or not (step S410).
  • the random number generation unit 141 reads “lenq” stored in the information storage area of the information control unit 140 (step S415). ), A random number “R1” consisting of (lenq ⁇ 1) bits is generated, and the generated random number “R1” and the read control information are output to the prime candidate generation unit 142 (step S420). Here, the most significant bit of the random number “R1” is “1”.
  • Non-patent document 2 details the random number generation method.
  • the random number generation unit 141 stores the "lenq” and "lens” stored in the information storage area of the information control unit 140.
  • lenIDI (Step S425), generates a random number “R1” composed of (lenq-lenIDI-1) bits, and outputs the generated random number “R1” and the read control information to the prime candidate generation unit 142 (Step S425).
  • the most significant bit of the random number “R1” is 1.
  • the prime candidate generation unit 142 performs the prime candidate generation process to generate a random number "R" and a number that is a prime candidate.
  • Step S435 the generated random number “R” is stored in the generation information storage area, and the generated number “N” is output to the first prime number determination unit 143.
  • the first prime number determining unit 143 determines whether or not the force that satisfies the above-described equation (eql) is used using the received number “N” (step S440). ).
  • the first prime number determining unit 143 converts the number "N" into the first number.
  • step S440 Output to the 2 prime determination unit 144 (“YES” in step S440), and when the second prime determination unit 144 receives the number “N” from the first prime determination unit 143, the generation information storage area of the prime candidate generation unit 142 Is read, and it is determined whether or not the above equation (eq2) holds (step S445).
  • the number “N” is output as a prime number “N” to the repetition control unit 132 via the information control unit 140 (step S450).
  • the first prime number determination unit 143 When determining that the equation (eql) does not hold, the first prime number determination unit 143 outputs a second generation instruction to the random number generation unit 141 (“NO” in step S440), and the second prime number determination unit 1
  • step S445 determines that the equation (eq2) is not satisfied, outputs a second generation instruction to the random number generation unit 141 (“NO” in step S445), and the random number generation unit 141 Department
  • the prime candidate candidate generation unit 142 determines whether the bit size “lenN” of the generated number “N” matches “lenq” (step S520). Y ES ”), the prime candidate generation unit 142 outputs the generated number“ N ”to the first prime determination unit 143, and stores the received random number“ R1 ”as“ R ”in the generation information storage area. (Step S595).
  • step S520 If it is determined that they do not match ("NO” in step S520), the prime candidate generation unit 142 multiplies the random number "R1" received from the random number generation unit 141 by 2, and outputs the result to "R1" (Step S525), and returns to Step S515.
  • the prime candidate generation unit 142 If it is determined that the control information is not “information C” (“NO” in step S505), the prime candidate generation unit 142 returns the prime “q” and the issue identifier from the information storage area of the information control unit 140. The information "IDI” is read (step S530). The prime candidate generation unit 142 determines whether the control information is “information B” or not (step S535).
  • the prime candidate generation unit 142 determines whether or not the bit size "lenN" of the generated number "N" is "2 X lenqj" (step S550).
  • the prime candidate generation unit 142 outputs the generated number“ N ”to the first prime determination unit 143, and outputs the generated number“ R Is stored in the generation information storage area (step S595).
  • step S550 When it is determined that "2 X lenqj is not satisfied (" NO "in step S550), the prime candidate generation unit 142 multiplies the random number" R1 "received from the random number generation unit 141 by 2, The result is Rl ”(step S555), and returns to step S540.
  • Prime number candidate generating section 142 outputs the number read instruction to information control section 140 and receives the value of output counter 136 from information control section 140.
  • the prime candidate generation unit 142 determines whether or not the received power is “l” (step S565).
  • the prime candidate generation unit 142 reads the first verification value “cl l” from the verification value storage area of the information control unit 140. Is read out (step S570).
  • the prime candidate generation unit 142 reads the verification value storage area of the information control unit 140 The second verification value “cl2” is read (step S580).
  • the prime candidate generation unit 142 reads the bit size “lenq” of the prime “q” from the information storage area of the information control unit 140, and checks whether the bit size of the generated number “N” is “2 X lenqj”. Judgment is made (step S590).
  • the prime candidate generation unit 142 outputs the generated number“ N ”to the first prime determination unit 143, and outputs the generated number“ R Is stored in the generation information storage area (step S595).
  • step S590 If it is determined that "2 X lenqj is not satisfied (" NO "in step S590), the prime candidate generation unit 142 multiplies the random number" R1 "received from the random number generation unit 141 by 2, The result is set to “Rl” (step S600), and the process returns to step S560. (6) Certificate issuance processing
  • the issued public key confirmation unit 214 of the certificate issuing server 200 transmits the issued identifier information "IDI”, the public key "PK”, the server identifier, and the certificate from the key issuing server 100 via the receiving unit 217. Receive the issuance request information (step S650).
  • the issuance public key confirmation unit 214 writes the received server identifier into the server information storage area 220 (Step S655).
  • the issued public key confirmation unit 214 reads the corresponding first verification value "c11" and second verification value "c12" using the received server identifier (step S660).
  • the issuance public key confirmation unit 214 uses the read first verification value “c11” and second verification value “c12”, the received public key “PK”, and the issuance identifier information “IDI” to make public. It is checked whether the key “PK” is generated using the issue identifier information “IDI” (step S660).
  • the issued public key confirmation unit 214 determines that "n— (cl l X cl2)" is divisible by “IDI", that is, the public key "PK” is determined by using the issuance identifier information "IDI”. If it is determined that the public key has been generated (“YES” in step S660), the issued public key confirmation unit 214 sends the received public key “PK” to the issued public key storage unit 211 and the issued identifier information to the issued identifier information storage unit. 212, and the issued public key confirmation unit 214 outputs a public key certificate generation start instruction to the public key certificate generation unit 215 (step S665).
  • step S660 If the issuance public key confirmation unit 214 determines that the public key "PK" is not generated using the issuance identifier information "IDI" ("YES” in step S660), the process proceeds to step S660.
  • the public key certificate generation unit 215 Upon receiving the public key certificate generation start instruction from the issued public key confirmation unit 214, the public key certificate generation unit 215 ends the secret key “SKCA” from the private key storage unit 210 and issues the issued public key storage unit 211. Then, the public key “PK” is read, and the issue identifier information “IDI” is read from the issue identifier information storage unit 212 (step S670).
  • the public key certificate generation unit 215 generates a public key certificate “” using the read secret key “SKCA”, public key “PK”, and issue identifier information “IDI”, and generates the generated public key certificate “”.
  • Key certificate The certificate “Cert” is written into the public key certificate storage unit 213, and a transmission start instruction of the public key certificate “” is output to the certificate acquisition unit 216 (step S675).
  • the certificate acquisition unit 216 Upon receiving the instruction to start transmitting the public key certificate “Cert” from the public key certificate generation unit 215, the certificate acquisition unit 216 stores the public key certificate “Cert” from the public key certificate storage unit 213 and The server identifier is read from the information storage area 220, and the read public key certificate “Cert” is transmitted to the key issuing server 100 corresponding to the read server identifier via the transmission unit 218 (step S680).
  • the first primality determining unit 143 and the second primality determining unit 144 of the prime information generation unit 133 are Pocklington determinations.
  • the Pocklington judgment is described in detail on page 144 of Non-Patent Document 1 and Non-Patent Document 4. The following is a brief description.
  • the prime information generation unit 133 can output the number “N” as a prime number.
  • bit size of the random number “R1" is (lenq-lenIDI-1)
  • bit size of the number “R” is (lenq-1)
  • bit size of most of the number “N” is (2 X lenq).
  • the bit size may be (2 X lenq-1) depending on values such as the prime number “q” and the issue identifier information “IDI”.
  • the prime candidate generation unit 142 multiplies R1 by 2 and newly sets R1 as R1, thereby setting the bit size of the generated number “N” to (2 X lenq). It can be set as follows.
  • the certificate issuing server 200 checks whether or not “n-cllXcl2” is divisible by “IDI”, thereby confirming whether the key issuing server has correctly generated the ID using the issued identifier information IDI. can do.
  • bit size of "IDI” is “lenIDI” and the bit size of "R1" is (lenq-lenlDI-1)
  • bit size of "R1” is (lenq-lenlDI-1)
  • bit size may be (2 ⁇ lenq ⁇ 1).
  • the prime number generation unit 142 sets the bit size of “N1” to “2Xlenql” by multiplying “R1” by 2 and treating it as “R1”. Can be.
  • the key issuing system 1 can obtain information on the terminal that has performed the unauthorized operation from the secret key by the following confirmation method.
  • the secret keys "pl" and "p2" of the fraudulent terminal were found.
  • an improper pursuer for example, an administrator of the certificate issuing server 200 has a correspondence table between the issue identifier information and the terminal.
  • Both “pl-cll” and “p2-cl2” are divisible by the issue identifier information “IDI”. Therefore, GCD (pl-cll, P2 -cl2) is divisible by issue identifier information. Therefore, by examining the prime factors of GCD (pl-cll, p2-cl2), the fraudster can limit the possible issuance identifier information and know the issuance identifier information, that is, help identify the terminal. It becomes.
  • two verification values that is, a first verification value and a second verification value are used.
  • generation of a prime number when one verification value is used will be described.
  • the prime information generation unit in the key issuing server and the issued public key confirmation unit in the certificate issuing server are different.
  • the prime information generation unit 133A and the issued public key confirmation unit 214A in the present modification will be described.
  • the components described in the first embodiment are used.
  • the prime information generation unit 133A includes an information control unit 140A, a random number generation unit 141A, a prime candidate generation unit 142A, a first prime determination unit 143A, and a second prime determination unit 144A.
  • the prime information generation unit 133A generates a prime whose bit size is twice the bit size of the prime received from the repetition control unit 132.
  • the information control unit 140A has an information storage area for storing the first information and the second information.
  • the information control unit 140A stores in advance a verification value "cl" assigned by the certificate issuing server 200 and used for generating a prime number based on the control information "information A". It has a value storage area.
  • the information control unit 140A Upon receiving the first information including the prime number “q”, the prime number bit size “lenq”, and the control information from the repetition control unit 132, the information control unit 140A stores the received first information in the information storage area. Write. That is, the prime “q”, the prime bit size "lenq”, and the control information (in this case, "information C") are written.
  • the information control unit 140A sends, from the repetition control unit 132, the prime “q”, the bit size “lenq” of the prime, the control information, the issue identifier information "IDI”, and the bit size "lenIDI”.
  • the received second information is written to the information storage area. That is, the prime number “q”, the bit size “lenq” of the prime number, control information, issue identifier information “IDI”, and the bit size “lenIDI” are written.
  • the information control unit 140A After writing the received information, the information control unit 140A outputs a random number generation instruction. (1) It outputs a generation instruction to the random number generation unit 141A.
  • information control section 140A When receiving the prime number from second prime number determination section 144A, information control section 140A outputs the received prime number to repetition control section 132.
  • the random number generation unit 141A is the same as the random number generation unit 141A shown in the first embodiment, and thus the description is omitted.
  • the prime candidate generation unit 142A has a generation information storage area for storing the generated information, and a function storage area for preliminarily storing the function “f” which is an injection.
  • the encryption function of symmetric key cryptography is generally bijective.
  • the symbol "II" is a bit or byte concatenation.
  • Enc (K, XIIY) is "Enc (K, X
  • Y) K XOR X
  • An example of the common cipher is DES. When DES is used, the key length is 128 bits.
  • the prime candidate generation unit 142A determines whether or not the received control information is "information C".
  • the prime candidate generation unit 142A determines whether the control information is “information B” or not.
  • the prime candidate generation unit 142A determines whether or not the generated number “N” has a bit size “lenN” of “2 ⁇ lenqj”.
  • the prime candidate generation unit 142A If it is determined to be “2 X lenq”, the prime candidate generation unit 142A outputs the generated number “N” to the first prime determination unit 143A, and stores the generated number “R” in the generation information storage area.
  • the prime candidate generation unit 142A multiplies the random number "R1" received from the random number generation unit 141A by 2, sets the result to "R1", and again Generate the numbers "R” and "N”.
  • the prime candidate generation unit 142A reads the verification value "cl" from the verification value storage area of the information control unit 140A.
  • the prime candidate generation unit 142A reads the bit size “lenq” of the prime “q” from the information storage area of the information control unit 140A, and determines whether the bit size of the generated number “N” is “2 ⁇ lenqj”. to decide.
  • the prime candidate generation unit 142A When determining that the number is "2 X lenq”, the prime candidate generation unit 142A outputs the generated number "N” to the first prime determination unit 143A, and outputs the generated number "R” to the generation information. Store in storage area If it is determined that the number is not “2 X lenq”, the prime candidate generation unit 142A multiplies the random number “R1” received from the random number generation unit 141A by 2 and sets the result to “R1”. Generates “R” and “N”.
  • the first primality determining unit 143A is the same as the first primality determining unit 143 described in the first embodiment, and a description thereof will not be repeated.
  • the second primality determining unit 144A is the same as the second primality determining unit 144 shown in the first embodiment, and a description thereof will be omitted.
  • the issued public key confirmation unit 214A has a server information storage area 220A and a confirmation information storage area 221A.
  • the server information storage area 220A has an area for storing a server identifier for identifying a key issuing server that has issued a public key certificate issuance request.
  • the confirmation information storage area 221A has a verification value table T250 as shown in FIG.
  • the verification value table T250 has an area for storing one or more sets of a server identifier and a verification value.
  • the server identifier is an identifier for identifying the key issuing server. “SIDA” indicates the key issuing server 100, “SIDB” indicates the key issuing server 101, and “SID B” indicates the key issuing server 102. .
  • the verification value is a verification value assigned to the key issuing server indicated by the associated server identifier.
  • the server identifier of the key issuing server 100 will be described as “SID”.
  • the issuance public key confirmation unit 214A receives the issue identifier information "IDI”, the public key "PK”, the server identifier, the certificate issuance request information from the key issuing server 100 via the reception unit 217. Receive.
  • the issuance public key confirmation unit 214A writes the received server identifier into the server information storage area 220 #.
  • the issuing public key confirmation unit 214A uses the received server identifier to generate a corresponding verification value. Read "cl”.
  • the issued public key confirmation unit 214A uses the received public key “PK” and the issued identifier information “IDI” to determine whether the public key “PK” was generated using the issued identifier information “IDI”. Check.
  • the confirmation method verifies whether or not it is divisible by "n- (cl)" 2J force "IDI”. As a result, it is possible to confirm whether or not the public key “PK” is generated using the issue identifier information “IDI”.
  • the issuance public key confirmation unit 214A determines that “n— (cl) '2” is divisible by “IDI”, the public key “PK” is generated using the issuance identifier information “IDI”. If it is determined that “n— (c 1) '2” is not divisible by “IDI”, a public key “PK” is generated using the issue identifier information “IDI”, and Judge.
  • the issue public key confirmation unit 214A stores the received public key “PK” in the issue public key storage unit.
  • the issue identifier information is written in the issue identifier information storage unit 212.
  • Issued public key confirmation section 214A outputs a public key certificate generation start instruction to public key certificate generation section 215.
  • the issuance public key confirmation unit 214A ends the process.
  • the prime candidate generation processing according to the present modified example will be described only on points different from the prime candidate generation processing shown in the first embodiment.
  • the operation flow of the key issuance process and the prime number generation process is the same as in the first embodiment, and a description thereof will not be repeated.
  • step S565 the prime candidate generation unit 142A
  • step S580 the prime candidate generation unit 142A
  • the certificate issuing process according to this modified example will be described only on the points different from the certificate issuing process shown in the first embodiment.
  • step S660 the issued public key confirmation unit 214A reads a verification value (for example, "cl") corresponding to the received server identifier, and in step S670, reads the verification value "cl” Using the public key “PK” and the issue identifier information “IDI”, it is confirmed whether or not “PK” is generated from “IDI”.
  • a verification value for example, "cl”
  • IDI issue identifier information
  • the prime information generation unit in the key issuing server and the issued public key confirmation unit in the certificate issuing server are different.
  • the following describes the prime information generation unit 133B and the issued public key confirmation unit 214B in the present modification.
  • the components described in the first embodiment are used.
  • the prime information generation unit 133B includes an information control unit 140B, a random number generation unit 141B, a prime candidate generation unit 142B, a first prime determination unit 143B, and a second prime determination unit 144B.
  • the prime information generation unit 133B generates a prime having a bit size twice as large as that of the prime received from the repetition control unit 132.
  • the information control unit 140B has an information storage area for storing the first information and the second information. [0201]
  • the information control unit 140B has a verification value storage area in which a verification value "1" used for generating a prime number based on the control information "information A" is stored in advance. .
  • the information control unit 140B Upon receiving the first information including the prime number “q”, the prime number bit size “lenq”, and the control information from the repetition control unit 132, the information control unit 140B stores the received first information in the information storage area. Write. That is, the prime “q”, the prime bit size “lenq”, and the control information (in this case,
  • the information control unit 140B sends, from the repetition control unit 132, the prime "q", the bit size "lenq” of the prime, the control information, the issue identifier information "IDI”, and the bit size "lenIDI”.
  • the prime "q" the bit size "lenq" of the prime
  • the control information the control information
  • the issue identifier information "IDI” the issue identifier information
  • the bit size "lenIDI” When receiving the second information consisting of, the received second information is written to the information storage area.
  • the prime "q" the bit size "lenq" of the prime
  • the information control unit 140B After writing the received information, the information control unit 140B issues a second instruction to generate a random number.
  • information control section 140B When receiving the prime number from second prime number determination section 144B, information control section 140B outputs the received prime number to repetition control section 132.
  • the random number generation unit 141B is the same as the random number generation unit 141B described in the first embodiment, and thus the description is omitted.
  • the prime candidate generation unit 142B has a generation information storage area for storing the generated information, and a function storage area for storing the injection function “f” in advance.
  • the prime candidate generation unit 142B determines whether or not the received control information is “information C”.
  • the prime candidate generation unit 142B reads the prime "q” from the information storage area of the information control unit 140B.
  • the prime candidate generating unit 142B determines whether or not the bit size “lenN” of the generated number “N” matches “lenq”.
  • the unit 142B outputs the generated number “N” to the first prime number judgment unit 143B, and receives the random number “R1
  • the prime candidate generation unit 142B If it is determined that the control information is not “information C”, the prime candidate generation unit 142B reads the prime “q” and the issue identifier information “IDI” from the information storage area of the information control unit 140B. The prime candidate generation unit 142B determines whether or not the power is the control information power S “information B”.
  • the prime candidate generation unit 142B transmits the received random number "
  • the prime candidate generation unit 142B determines whether or not the bit size "lenN" of the generated number "N" is "2 X lenqj".
  • the prime candidate generation unit 142B If it is determined that the number is “2 X lenq”, the prime candidate generation unit 142B outputs the generated number “N” to the first prime determination unit 143B, and stores the generated number “R” in the generation information storage area.
  • the prime candidate generation unit 142B multiplies the random number "R1" received from the random number generation unit 141B by 2, sets the result as “R1”, and again Generate the numbers "R” and "N”.
  • the prime candidate generation unit 142B stores the verification value "1" from the verification value storage area of the information control unit 140B.
  • the last item “1” is the verification value.
  • the prime candidate generation unit 142B determines the bit size "lenq" of the prime “q” by the information control unit 140B. It is read from the information storage area, and it is determined whether or not the bit size of the generated number “N” is “2 ⁇ lenqj”.
  • the prime candidate generation unit 142B If it is determined that the number is “2 X lenq”, the prime candidate generation unit 142B outputs the generated number “N” to the first prime determination unit 143B, and stores the generated number “R” in the generation information storage area.
  • the prime candidate generation unit 142B multiplies the random number "R1" received from the random number generation unit 141B by 2 and sets the result to "R1" again. Generate the numbers "R” and "N”.
  • the first primality determining unit 143B is the same as the first primality determining unit 143 described in the first embodiment, and a description thereof will not be repeated.
  • the second primality determining unit 144B is the same as the second primality determining unit 144 shown in the first embodiment, and a description thereof will not be repeated.
  • the issued public key confirmation unit 214B has a server information storage area 220B and a confirmation information storage area 221B.
  • the server information storage area 220B has an area for storing a server identifier that identifies a key issuing server that has issued a public key certificate issuance request.
  • the confirmation information storage area 221B stores a verification value “1” that is a fixed value.
  • the issuance public key confirmation unit 214B receives the issuance identifier information “IDI”, the public key “PK”, the server identifier, and the certificate issuance request information from the key issuing server 100 via the reception unit 217. .
  • the issued public key confirmation unit 214B writes the received server identifier into the server information storage area 220 #.
  • the issue public key confirmation unit 214B reads the verification value “1” from the confirmation information storage area 221B.
  • the issuance public key confirmation unit 214B compares the received public key “ ⁇ ” and the issuance identifier information “IDI”. To confirm whether the public key “PK” is generated using the issue identifier information “IDI”.
  • the confirmation method verifies whether or not it is divisible by "n-verification value", that is, "n-1" force “IDI”. Thereby, it is possible to confirm whether or not the public key “PK” has been generated using the issue identifier information “IDI”.
  • the issuance public key confirmation unit 214B determines that the public key “PK” has been generated using the issuance identifier information “IDI”. If it is determined that “n ⁇ 1” is not divisible by “IDI”, the public key “PK” is generated using the issue identifier information “IDI” and is determined to be!
  • the issue public key confirmation unit 214B stores the received public key “PK” in the issue public key storage unit.
  • the issue identifier information is written in the issue identifier information storage unit 212.
  • Issued public key confirmation section 214B outputs a public key certificate generation start instruction to public key certificate generation section 215.
  • the issuance public key confirmation unit 214B ends the process.
  • the prime candidate generation processing according to the present modified example will be described only on points different from the prime candidate generation processing shown in the first embodiment.
  • the operation flow of the key issuance process and the prime number generation process is the same as in the first embodiment, and a description thereof will not be repeated.
  • the prime candidate generation unit 142B After executing the steps S500 and S560 shown in FIGS. 16 and 17, the prime candidate generation unit 142B skips the step S565 and reads the verification value “1” in the step S570.
  • the last term in calculating the number “N” is the verification value.
  • the prime candidate generation processing according to the present modification is performed irrespective of the value of the output counter.
  • the number “N” is generated using “q” and the number “R”.
  • the certificate issuing process according to this modified example will be described only on the points different from the certificate issuing process shown in the first embodiment.
  • step S660 the issued public key confirmation unit 214B reads the verification value "1", and in step S670, reads the verification value "1", the public key "PK”, and the issued identifier information "IDI”. Check if "PK” is generated from “IDI”.
  • the certificate issuing server can confirm whether the key issuing server has correctly generated the issued identifier information IDI.
  • the prime number generation unit in the key issuing server and the issued public key confirmation unit in the certificate issuing server are different.
  • the prime number generation unit 116C and the issued public key confirmation unit 214C in the present modification will be described. Note that, for the other components, the components shown in the first embodiment are used.
  • the bit size of the server identifier is 15 bits
  • the bit size of the terminal identifier of the terminal device is 16 bits
  • the bit size of the issue identifier information is 32 bits.
  • the prime generation unit 116C includes a repetition control unit 132C and a prime information generation unit 133C.
  • the prime generation unit 116C generates a 512-bit prime from the 8-bit prime, and outputs the generated 512-bit prime to the key determination unit 117.
  • the repetition control unit 132C temporarily stores the prime received from the initial value storage area in which the prime consisting of 8 bits and the bit size of the prime (that is, “8”) are stored in advance, and the prime information generation unit 133C. And a temporary storage area for temporarily storing.
  • the repetition control unit 132C counts the repetition counter 135C that counts the number of repetitions of the operation of the prime information generation unit 133C, and counts the number of primes output to the key determination unit 117, that is, the number of output of the generated 512-bit prime. And an output counter 136C. Note that the initial values of the repetition counter 135C and the output counter 136C are respectively “1”.
  • Repeat control section 132C has control information table T150 shown in FIG.
  • the control information table T150 stores one or more sets of the number of times and the control information. The number of times corresponds to the value of the repetition counter 135C.
  • the control information indicates the type of a method of generating a prime generated by the prime information generation unit 133C.
  • the repetition control unit 132C controls the prime information generation unit 133C to generate a prime number.
  • a prime generation instruction is sent to the prime information generation unit 133C again, and the received prime is transmitted to the key judgment unit 117. Output to either
  • repetition control section 132C Upon receiving the prime number generation start instruction from identifier generation section 115, repetition control section 132C sets repetition counter 135C and output counter 136C to “1”.
  • the repetition control unit 132C Upon receiving a prime number from the prime information generation unit 133C, the repetition control unit 132C Add "1" to the value of the data 135C, and determine whether or not the addition result is 7.
  • the repetition control unit 132C judges whether the value of the output counter 136C is 1 or not. If it is determined to be 1, the repetition control unit 132C outputs the received prime as a prime “pl” to the key determination unit 117, and adds "1" to the value of the output counter 136C, Set the value of the repetition counter 135C to “1”. If it is determined that it is not 1, that is, it is 2 or more, repetition control section 132C sets the received prime to prime “p2”, and outputs a prime “p2” and a determination start instruction to key determination section 117.
  • the repetition control unit 132C receives the prime number generation start instruction, adds ⁇ 1 '' to each value of the repetition counter 135C and the output counter 136C, and then calculates the prime number received by the prime information generation unit 133C. After temporarily storing the bit size and after adding "1" to the output counter 136C and setting the value of the repetition counter 135C to "1", the repetition is performed. The control unit 132C performs the following operation.
  • the repetition control unit 132C determines whether or not the force of the repetition counter 135C is 1, which is the force. If it is determined to be 1, the repetition control unit 132C reads the 8-bit prime number and its bit size from the initial value storage area, and if it is not 1, it reads the bit size "8" from the temporary storage area. X (2 "(11-1))" and its prime number. That is, when it is determined that the value of the repetition counter 135C is not 1, the repetition control unit 132C reads the previously generated prime number and its bit size from the temporary storage area. Here, “n” is the value of the repetition counter.
  • Control information corresponding to the value of repetition counter 135C is read from control information table T150, and it is determined whether or not the read control information is "information C".
  • the repetition control unit 132C If it is determined to be “information C”, the repetition control unit 132C generates first information including the read prime number and its bit size and the control information, and generates the generated first information as prime information Output to generator 133C.
  • the repetition control unit 132C acquires the issue identification information “IDI” from the identifier storage unit 110, and sets the bit size rienlD of the acquired issue identifier information “IDI”. I '', and generates second information including the read prime number and its bit size, control information, issue identifier information “IDI” and its bit size “lenIDI”, and generates the second information as a prime number Output to information generation unit 133C.
  • repetition control section 132C upon receiving a regeneration instruction for regenerating a prime number from key determination section 117, repetition control section 132C adds "1" to the value of output counter 136C and repeats counter of repetition counter 135C. Set the value to “1” and perform the operation after the operation to judge whether the value of the repetition counter 135C is 1 or not.
  • the prime information generation unit 133C includes an information control unit 140C, a random number generation unit 141C, a prime candidate generation unit 142C, a first prime determination unit 143C, and a second prime determination unit 144C.
  • the prime information generation unit 133C generates a prime whose bit size is twice the bit size of the prime received also by the repetition control unit 132C. For example, when an 8-bit prime is received, a 16-bit prime is generated, and when a 16-bit prime is received, a 32-bit prime is generated.
  • each component will be described assuming that the received prime number is a prime number “q” and its bit size is “lenq”.
  • the information control unit 140C has an information storage area for storing the first information and the second information.
  • the information control unit 140C previously stores a prime “qg” and a bit size “lenqg” assigned by the certificate issuing server 200 and used when generating a prime based on the control information “information AB”. It has an assigned prime storage area.
  • the bit size of the prime “qg” is, for example, “64” bits.
  • the information control unit 140C Upon receiving the first information including the prime “q”, the prime bit size "len q”, and the control information from the repetition controller 132C, the information control unit 140C converts the received first information. Write to the information storage area. That is, the prime “q”, the prime bit size “lenq”, and the control information (in this case, "information C") are written.
  • the information control unit 140C includes, from the repetition control unit 132C, a prime “q”, a bit size “len q” of the prime, control information, issue identifier information “IDI”, and a bit size “lenIDI”.
  • the received second information is written to the information storage area. That is, the prime “q”, the prime bit size "lenq”, the control information, the issue identifier information "IDI”, and the bit size “lenIDI” are written.
  • information control section 140C After writing the received information, information control section 140C outputs a first generation instruction indicating a random number generation instruction to random number generation section 141C.
  • information control section 140C When receiving the prime number from second prime number determination section 144C, information control section 140C outputs the received prime number to repetition control section 132C.
  • the information control unit 140C reads the value of the output counter 136C of the repetition control unit 132C when receiving the number-of-times read instruction to read the value of the output counter 136C from the prime candidate generation unit 142C.
  • Information control section 140C outputs the read value to prime candidate generation section 142C.
  • the random number generation unit 141C Upon receiving the first generation instruction indicating the instruction to generate a random number, the random number generation unit 141C reads out the control information stored in the information storage area of the information control unit 140C. The random number generation unit 141C determines whether or not the read control information is “information C”.
  • the random number generation unit 141C reads rienqj stored in the information storage area of the information control unit 140C, and includes (lenq-1) bits. A random number "R1" is generated, and the generated random number “R1” and the read control information are output to the prime candidate generation unit 142C. Here, the most significant bit of the random number “R1” is 1.
  • Non-patent document 2 details the random number generation method.
  • the random number generation unit 141C stores ienqj stored in the information storage area of the information control unit 140C in the assigned prime storage area! And “lenqg” are read, respectively. Using the read “lenq” and “le nqg”, the random number generation unit 141C generates a random number “R1” composed of (lenq ⁇ 2 ⁇ lenqg ⁇ 1) bits, and reads the generated random number “R1”. The control information is output to the prime candidate generation unit 142C. Where the random number The most significant bit of “R 1” is 1.
  • the random number generation unit 141C stores the control information in information. Read from the area and perform the above operation.
  • the prime candidate generation unit 142C includes: a generation information storage area for storing the generated information; a prime generation function “gp” for uniquely generating a prime from the issue identifier information “IDI” and the prime “qg”; And a function storage area in which the function “f” is stored in advance.
  • the prime candidate generation unit 142C When defining the function “gp” in this way, if the functions “qg” and “f” are held, the prime candidate generation unit 142C performs the prime number generation function with respect to the issue identifier information “IDI”. , The same prime can be generated. At this time, if the bit size of “IDI” and the bit size of “qg” are “32” bit and “64” bit, respectively, the bit size of “gp (IDI, qg)” is 128 bit It becomes.
  • the prime candidate generation unit 142C determines whether or not the received control information is "information C".
  • the prime candidate generation unit 142C reads the prime “q” from the information storage area of the information control unit 140C.
  • the prime candidate generation unit 142C determines whether or not the bit size “lenN” of the generated number “N” matches “lenq”, and if it determines that it matches, the prime candidate generation unit 142C
  • the obtained number “N” is output to the first prime number determination unit 143C, and the received random number “R1” is stored in the generation information storage area as “R”.
  • the prime candidate generation unit 142C determines the prime “primary” from the information storage area of the information control unit 140C. “qg” and issue identifier information “IDI”, and read a prime “qg” from the allocated prime storage area, respectively.
  • the prime candidate generation unit 142C determines whether or not the bit size "lenN" of the generated number "N" is "2 X lenqj".
  • the prime candidate generation unit 142C If it is determined to be “2 X lenq”, the prime candidate generation unit 142C outputs the generated number “N” to the first prime determination unit 143C, and generates the received random number “R1” as “R”. Store it in the information storage area.
  • the prime candidate generation unit 142C multiplies the random number "R1" received from the random number generation unit 141C by 2, sets the result to "R1", and again Generates the number "N”.
  • the first primality determining unit 143C is the same as the first primality determining unit 143 shown in the first embodiment, and a description thereof will not be repeated.
  • the second primality determining unit 144C is the same as the first primality determining unit 144 shown in the first embodiment, and a description thereof will not be repeated.
  • the issue public key confirmation unit 214C has a server information storage area 220C and a confirmation information storage area 221C.
  • the server information storage area 220C has an area for storing a server identifier for identifying a key issuing server that has been requested to issue a public key certificate.
  • the confirmation information storage area 221C stores the same prime number “qg” and its bit size “lenqg” assigned to the key issuing server 100, and the same as the prime number generating function and unijection function stored in the key issuing server 100.
  • the functions “gp” and “f” are stored in advance.
  • the issuance public key confirmation unit 214C writes the received server identifier into the server information storage area 220C.
  • the issued public key confirmation unit 214C uses the received public key "PK” and the issued identifier information "IDI” to generate a public key "PK” generated using the issued identifier information "IDI”. Check if it is correct.
  • the issuance public key confirmation unit 214C uses the received issuance identifier information “IDI”, the stored prime numbers “qg”, and the functions “gp” and “f” to generate the prime numbers “gp (IDI, qg) ”and writes the generated prime prime“ gp (IDI, qg) ”to the confirmation information storage area 221C.
  • the method of generating the prime number “gp (IDI, qg)” is the same as the method described above, and thus the description is omitted.
  • the prime number “gp (IDI, qg)” generated by the issued public key confirmation unit 214C is the same as the prime number “pIDI” generated by the prime candidate generation unit 142C of the key issuing server. Power.
  • the issue public key confirmation unit 214C reads the prime “gp (IDI, qg)” stored in the confirmation information storage area 221C, and “n ⁇ 1” replaces the read prime “gp (IDI, qg) ”. This makes it possible to confirm whether or not the public key “PK” is generated using the issue identifier information “IDI”.
  • Issued public key confirmation unit 214C determines that “nl” is divisible by prime “gp (IDI, qg)”. If the public key "PK” is determined to have been generated using the issue identifier information "IDI” and "n-1" is not divisible by the prime number “gp (IDI, qg)” Then, it is determined that the public key “PK” is generated using the issue identifier information “IDI”.
  • the issued public key confirmation unit 214C stores the received public key “PK” in the issued public key storage unit.
  • the issue identifier information is written in the issue identifier information storage unit 212.
  • the issued public key confirmation unit 214C outputs a public key certificate generation start instruction to the public key certificate generation unit 215.
  • the issuance public key confirmation unit 214C ends the process when determining that the public key “ ⁇ ” is generated using the issuance identifier information “IDI”.
  • the prime number generation processing according to the present modification will be described only on points different from the prime number generation processing shown in the first embodiment.
  • the flow of the key issuing process is the same as in the first embodiment, and a description thereof will not be repeated.
  • step S425 of the prime number generation process shown in FIG. 15 the random number generation unit 141C stores “lenq” stored in the information storage area of the information control unit 140C in the allocated prime number storage area. Then, rienqgj is changed to be read.
  • step S430 the random number generation unit 141C generates a random number “R1” composed of (lenq ⁇ 2 ⁇ lenqg ⁇ 1) bits using the read “lenq” and “le nqg”, and generates the generated random number.
  • the number “R1” and the read control information are changed to be output to the prime candidate generation unit 142C.
  • the most significant bit of the random number “R1” is 1.
  • the prime candidate generation unit 142C determines whether the received control information is “information C” (step S700). Step S705).
  • the prime candidate candidate The component 142C reads the prime “q” from the information storage area of the information control unit 140C (step S710).
  • the prime candidate generation unit 142C determines whether or not the bit size “lenN” of the generated number “N” matches the “lenq” (step S720), and if it determines that it matches, (step S720). (“YES”), the prime candidate generation unit 142C outputs the generated number “N” to the first prime determination unit 143C, and stores the received random number “R1” as “R” in the generation information storage area (step S755).
  • step S720 If it is determined that they do not match ("NO” in step S720), the prime candidate generation unit 142C multiplies the random number "R1" received from the random number generation unit 141 by 2, and divides the result by "R1" (Step S725), and the process returns to Step S715.
  • step S705 If it is determined that the control information is not “information C” (“NO” in step S705), that is, if it is determined that the control information is “information AB”, the prime candidate generation unit 142C outputs the information
  • the prime “q” and the issue identifier information “IDI” are read from the information storage area of the control unit 140C, and the prime “qg” is read from the allocated prime storage area (step S730).
  • the prime candidate generation unit 142C uses the read issue identifier information "IDI” and the prime “qg” and the functions "f" and “gp” stored in the function storage area to perform the above-described processing.
  • a prime “pIDI gp (IDI, qg)” is generated by the method described in (1), and the generated prime “pIDI” is stored in the generation information storage area (step S735).
  • the prime candidate generation unit 142C determines whether or not the generated number "N" has a bit size "lenN" of "2 X lenqj" (step S745).
  • the prime candidate generation unit 142C outputs the generated number" N "to the first prime determination unit 143C, and outputs the random number" R1 ". It is stored in the generated information storage area as “R” (step S755).
  • step S745 If it is determined that "2 X lenqj is not satisfied (" NO "in step S745), the prime candidate Generation unit 142C multiplies the random number “R1” received from random number generation unit 141C by 2, sets the result to “R1” (step S750), and returns to step S740.
  • the certificate issuing process according to this modified example will be described only on the points different from the certificate issuing process shown in the first embodiment.
  • the issuance public key confirmation unit 214C uses the received issuance identifier information “ID I”, the stored prime numbers “qg”, and the functions “gp” and “f” in step S660 to generate a prime number. Generate “gp (IDI, qg)” and change it to write to confirmation information storage area 221C.
  • the issued public key confirmation unit 214C reads the prime number “gp (IDI, qg)”, receives the received public key “PK” and issued identifier information “IDI”, and reads the read prime “gp (IDI, , Qg) ”to confirm whether the public key“ PK ”is generated using the issue identifier information“ IDI ”.
  • the uniqueness of the prime generated by the prime generator 116C is satisfied. That is, since different issue identifier information is generated for each terminal device, the generated prime numbers are also different due to the one-shot nature of the function “f” used for generating the prime numbers. As a result, a different secret key and a corresponding public key can be assigned to each terminal device.
  • the certificate issuing server can confirm whether the key issuing server has correctly generated the issuance identifier information IDI.
  • pl 2Xql XpIDIXRll + 1
  • p2 2Xq2XpIDIXR12 + l
  • the key issuing server stores two prime numbers “qgl” and “qg2” in advance and uses the prime number “qgl” to generate the prime number “pl” and the prime number “p2” to generate the prime number “p2”. “Qg2” may be used.
  • the force used when "pIDI” used for generating prime numbers “pl” and “p2” is the same is not limited to this.
  • the value of “c” used to generate the prime “pl” and the value of “c” used to generate the prime “p2” are set differently, and the primes “pl” and “p2” are generated. In this case, the values of “pIDI” may be different.
  • a key issuing system 2 according to a second embodiment of the present invention will be described focusing on differences from the key issuing system 1 in the first embodiment.
  • the key issuing system 2 includes a key issuing server 1100, 1101, 1102, a key issuing audit server 1200, a terminal device 1300, 1301, ..., 1302, 1303, ..., 1304, 1305, ⁇ ⁇ ⁇ , 1306.
  • the number of terminal devices is, for example, 1,000.
  • Key issuing servers 1100, 1101 and 1102 are managed by different companies.
  • Terminal devices 1300, 1301, ..., 1302 request key issuance server 1100 to issue a key
  • terminal devices 1303, ..., 1304 request key issuance server 1101 to issue a key.
  • 1306 make a key issuance request to the key issuance server 1102. It is assumed that a secure communication path is established between the terminal devices 1300, 1301,..., 1302 and the key issuing server 1100. Also, the terminal devices 1303,..., 1304 and the key issuing server 1101 and the terminal devices 1305,. Shall be established.
  • the key issuing server 1100 Upon receiving a key issuance request from the terminal device 1300, the key issuing server 1100 generates a secret key and a public key in RSA encryption. Further, key issuing server 1100 generates a public key certificate for the generated public key, and transmits the generated public key certificate and secret key to terminal device 1300.
  • the key length of each generated key is 1024 bits.
  • the key issuing server 1100 When the key issuing server 1100 receives, from the key issuing audit server 1200, issued key request information for requesting issued public key and issue identifier information, the issued public key and public key generation information are generated.
  • the issued key information including the issued identifier information used for the key is transmitted to the key issuance audit server 1200.
  • the key issuing audit server 1200 Upon receiving the issued public key information from the key issuing server 1100, the key issuing audit server 1200 audits the validity of the issued public key and displays the audit result.
  • the terminal device 1300 Upon receiving the public key certificate and the private key from the key issuing server 1100, the terminal device 1300 stores the received public key certificate and the private key.
  • the user of the terminal device 1400 first obtains the public key certificate of the terminal device 1300 from the key issuing server 1100 or obtains the public key certificate from the terminal device 1300, and the key issuing server 1100 has The public key certificate “C—PK” used to confirm the validity of the public key certificate is used to confirm the validity of the public key certificate and determine that the certificate is valid.
  • the obtained public key certificate is stored in the terminal device 1400.
  • the terminal device 1400 encrypts an e-mail to be transmitted to the terminal device 1300 using the public key included in the stored public key certificate, and transmits the encrypted e-mail to the terminal device 1300. I do.
  • terminal device 1300 When terminal device 1300 receives the encrypted e-mail from terminal device 1400, terminal device 1300 decrypts the encrypted e-mail using the stored secret key, and decrypts the decrypted e-mail. View the email.
  • terminal apparatuses 1301, ..., 1302 are the same as terminal apparatus 1300, and therefore description thereof is omitted. Abbreviate.
  • the key issuing servers 1101 and 1102 are the same as the key issuing server 1100, and a description thereof will be omitted.
  • the terminal device 1300 is used as a representative of each terminal device, and the key issuing server 1100 is used as a representative of each key issuing server.
  • the key issuing server 1100 includes an identifier storage unit 1110, a secret key storage unit 1111, a public key storage unit 1112, a certificate storage unit 1113, a control unit 1114, an identifier generation unit 1115, and a prime generation unit 1116. , A key determination unit 1117, a key generation unit 1118, an information acquisition unit 1119, a reception unit 1120, a transmission unit 1121, a certificate generation unit 1122, a certificate private key storage unit 1123, and an issued key information storage unit 1124. Tepuru.
  • the key issuing server 1100 is, specifically, a computer system including a microprocessor, a ROM, a RAM, a hard disk unit, a display unit, a keyboard, a mouse, and the like.
  • a computer program is stored in the RAM or the hard disk unit.
  • the key issuing servers 1101 and 1102 have the same configuration as the key issuing server 1100, and a description thereof will be omitted.
  • the identifier storage unit 1110 has an area for storing issue identifier information having a bit size of 126 bits or less.
  • the bit size of the issue identifier information is, for example, 64 bits.
  • the secret key storage unit 1111 has a prime storage area and a secret key storage area, similarly to the secret key storage unit 1111 in the first embodiment.
  • the public key storage unit 1112 has an area for storing a public key, similarly to the public key storage unit 112 in the first embodiment.
  • Certificate storage unit 1113 has an area for storing a public key certificate generated by the certificate issuing server and issued by the server.
  • the certificate private key storage 1123 stores in advance a certificate private key “C-SK” used when generating a public key certificate.
  • control unit 1114 has a server identifier storage area 1130 and a terminal information storage area 1131.
  • the server identifier storage area 1130 stores a server identifier for identifying the server in advance.
  • the key issuing server 1100 stores SIDA
  • the key issuing server 1101 stores SID B
  • the key issuing server 1102 stores SIDC.
  • the server server identifier of the key issuing server 1100 will be described as “SID”.
  • the bit size of the server identifier is 31 bits.
  • the terminal information storage area 1131 has an area for storing a terminal identifier for identifying a terminal device that has issued a key issuance request.
  • the terminal identifier is, for example, a serial number of the terminal device.
  • the bit size of the serial number is set to 32 bits.
  • the control unit 1114 When receiving the key issue request information and the terminal identifier “TID” of the terminal device 1300 from the terminal device 1300 via the receiving unit 1120, the control unit 1114 transfers the received terminal identifier “TID” to the terminal information storage area 1131. Write. The control unit 1114 outputs the generation instruction of the issuance identifier information and the received terminal identifier “TID” to the identifier generation unit 1115.
  • control unit 1114 Upon receiving the issued key request information from key issuance audit server 1200 via receiving unit 1120, control unit 1114 outputs a key information obtaining command to information obtaining unit 1119.
  • the identifier generation unit 1115 is the same as the identifier generation unit 115 in the first embodiment, and a description thereof will be omitted.
  • the prime generating unit 1116 generates a 512-bit prime in the same manner as the method of generating a prime by the prime generating unit 116 in the first embodiment. (9) Key judgment unit 1117
  • Key determination section 1117 is the same as key determination section 117 in the first embodiment, and a description thereof will not be repeated.
  • the key “PK” is written into the public key storage unit 112.
  • the key generation unit 118 outputs a public key certificate generation instruction to the certificate generation unit 1122.
  • the certificate generation unit 1122 Upon receiving the public key certificate generation instruction from the key generation unit 1118, the certificate generation unit 1122 discloses the certificate private key “C—SK” from the certificate private key storage unit to the public key storage unit 1112.
  • the key “PK” is read, and the issue identifier information “IDI” is read from the identifier storage unit 1110, respectively.
  • the certificate generation unit 1122 generates a public key certificate "" using the read secret key “C-SK”, public key “PK”, and issue identifier information "IDI".
  • Sig (K, D) is signature data when a secret key “K” is used for data “D”.
  • the symbol “II” is a concatenation of bits or bytes.
  • the certificate generation unit 1122 writes the generated public key certificate "Cert” to the certificate storage unit 1113. And outputs a distribution start instruction of the public key certificate “Cert” to the information acquisition unit 1119. (12) Information acquisition unit 1119
  • the information acquisition unit 1119 Upon receiving the distribution start command from the certificate generation unit 1122, the information acquisition unit 1119 stores the secret key “SK” stored in the secret key storage unit 1111 in the certificate storage unit 1113.
  • the public key certificate “Cert” and the terminal identifier stored in the terminal information storage area 1131 of the control unit 1114 are read, and the read private key “SK” and the read public key certificate “Cert” are read. Is transmitted to the terminal device 1300 corresponding to the read terminal identifier via the transmitting unit 1121.
  • the information acquisition unit 1119 Upon receiving the key information acquisition command from the control unit 1114, the information acquisition unit 1119 reads out all issued key information from the issued key information storage unit 1124. The information acquisition unit 1119 reads the server identifier from the server identifier storage area 1130 of the control unit 1114, and transmits all the read issued key information and the read server identifier to the key issuance audit server 1200 via the transmission unit 1121.
  • the issued key information storage unit 1124 has an issued key information table T1100 as shown in FIG.
  • the issued key information table T1100 has an area for storing one or more sets of issued public keys and issued identifier information.
  • the issued public key is a public key issued by the key issuing server, and the issued identifier information includes a public key and a public key used for generating a secret key corresponding to the public key. This is the bespoke information.
  • the key issuing server 1100 can accumulate the issued public key and the issued issue identifier information.
  • the issued key information storage unit 1124 is used to store the issued history, which is issued public key information, and is therefore a non-volatile memory (for example, a hard disk or the like) that does not lose data even when the power is turned off. ).
  • the receiving unit 1120 receives information from the key issuance audit server 1200 and the terminal device 1300, and outputs the received information to the control unit 1114.
  • the transmission unit 1121 receives the secret key “SK” and the public key certificate “Cert” from the information acquisition unit 1119, and transmits the received information to the terminal device 1300.
  • the transmitting unit 1121 Upon receiving one or more issued key information and the server identifier from the information acquiring unit 1119, the transmitting unit 1121 transmits the received one or more issued key information and the server identifier to the key issuance audit server 1200. .
  • the key issuance audit server 1200 includes a confirmation information storage unit 1210, an issued key information storage unit 1211, a control unit 1212, an issued public key confirmation unit 1213, a reception unit 1214, an audit result output unit 1215, a reception It comprises a unit 1216 and a transmission unit 1217.
  • the key issuance audit server 1200 is, specifically, a computer system including a microprocessor, a ROM, a RAM, a hard disk unit, a display unit, a keyboard, a mouse, and the like.
  • a computer program is stored in the RAM or the hard disk unit.
  • the confirmation information storage unit 1210 has a verification value table T1200 as shown in FIG.
  • the verification value table T1200 has an area for storing one or more sets of a server identifier, a first verification value, and a second verification value.
  • the server identifier identifies the key issuing server. "SIDA" indicates the key issuing server 1100, "SIDB” indicates the key issuing server 1101, and "SIDB” indicates the key issuing server 1102.
  • the first verification value and the second verification value are verification values assigned to the key issuing server indicated by the associated server identifier.
  • the server identifier of the key issuing server 1100 will be described as “SID”.
  • the issued key information storage unit 1211 has an area for storing one or more issued key information transmitted from the key issuing server 1100.
  • the control unit 1212 has a server information storage area 1220 as shown in FIG.
  • the server information storage area 220 has an area for storing a server identifier that identifies a key issuing server that has been requested to issue a public key certificate.
  • the control unit 1212 receives the audit start command to start the public key audit and the server identifier to be monitored (here, “SID”) from the reception unit 1214, and then issues the issued key request information. , And transmits it to the key issuing server 1100 corresponding to the server identifier via the transmitting unit 1217.
  • SID server identifier to be monitored
  • the control unit 1212 writes the server identifier received from the reception unit 1214 into the server information storage area 1220.
  • the control unit 1212 receives one or more issued key information and a server identifier from the key issuing server 1100 via the receiving unit 217.
  • the control unit 1212 determines whether or not the received server identifier matches the server identifier stored in the server information storage area.
  • control unit 1212 If it is determined that they match, the control unit 1212 writes the received one or more issued key information to the issued key information storage unit 1211, and stores the audit start instruction and the received server identifier in the issued public key. Output to confirmation unit 1213.
  • control unit 1212 ends the processing.
  • the issuing public key confirmation unit 1213 receives the audit start command and the server identifier from the control unit 1212. When the server identifier is received, the corresponding first verification value “cl l” and second verification value “c 12” are read from the confirmation information storage unit 1210 using the received server identifier.
  • the issued public key confirmation unit 1213 reads out one issued key information from the unread issued key information from the issued key information storage unit 1211.
  • the issuing public key confirmation unit 1213 uses the public key “PK” and the issuing identifier information “IDI” included in the read issued key information, and the first verification value “cl l” and the second verification value “cl2”. Then, it is checked whether the public key “PK” is generated using the issue identifier information “IDI”.
  • the checking method is the same as that of the first embodiment, and thus the description is omitted.
  • the issuance public key confirmation unit 1213 determines that “n— (cl l X cl2)” is divisible by “IDI”, the public key “PK” is generated using the issuance identifier information “IDI”. If ⁇ ⁇ — (cl l X cl2) ”is not divisible by“ IDI ”, the public key“ PK ”is generated using the issue identifier information“ IDI ”, Then, the read issue identifier information “IDI” is temporarily stored.
  • Issued public key confirmation unit 1213 determines whether or not unread issued key information exists. If it determines that unread issued key information exists, the above operation is repeated. When it is determined that there is no unread issued key information, it is determined whether or not the temporarily stored issued identifier information exists.
  • the issue public key confirmation unit 1213 concatenates all the stored issue identifiers, generates an illegal issue identifier information group, and generates The group of illegal issuance identifiers output to the audit result output unit 1215.
  • the issued public key confirmation unit 1213 issues a valid message indicating that the validity of all public keys has been confirmed. The message is output to the audit result output unit 1215.
  • Receiving unit 1214 receives an instruction to start an audit and a server identifier of a key issuing server to be audited by a user operation, and outputs an audit start command and a server identifier to control unit 1212. [0302] (6) Audit result output section 1215
  • the audit result output unit 1215 Upon receiving the unauthorized issue identifier information group from the issued public key confirmation unit 1213, the audit result output unit 1215 outputs the received unauthorized issue identifier information group to the monitor 1250.
  • the audit result output unit 1215 Upon receiving the valid message from the issued public key confirmation unit 1213, the audit result output unit 1215 outputs the received valid message to the monitor 1250.
  • the monitor 1250 displays the information received from the audit result output unit 1215.
  • the receiving unit 1216 Upon receiving one or more issued key information and the server identifier from the key issuing server 1100, the receiving unit 1216 outputs the received one or more issued key information and the server identifier to the control unit 1212. .
  • the transmitting unit 1217 Upon receiving the issued key request information from the control unit 1212, the transmitting unit 1217 transmits the received issued key request information to the key issuing server 1100.
  • the terminal device 1300 is the same as the terminal device 300 according to the first embodiment, and a description thereof will not be repeated.
  • terminal devices 1301, 1301, 1302, 1303, 1304, 1305, 1306, and 1306 are the same as those of the terminal device 300, and therefore description thereof is omitted. .
  • the following is an outline of the operation when the key issuing server 1100 issues a key to the terminal device 1300.
  • issued key information is described as an issued key information group. ⁇ Overview of operation at key issuance>
  • the terminal device 1300 Upon receiving a key issuance request instruction from the user, the terminal device 1300 transmits key issuance request information and a terminal identifier “TID” to the key issuance server 100 (step S1000).
  • the key issuance server 1100 Upon receiving the key issuance request information and the terminal identifier “TID” from the terminal device 1300, the key issuance server 1100 generates a private key and a public key in a key issuance process (step S1005), and issues a certificate. The process issues a public key certificate for the public key generated in step S1005, and transmits the issued public key certificate and the secret key generated in step S1005 to the terminal device 1300 (step S1010). )
  • the terminal device 1300 Upon receiving the private key “SK” and the public key certificate “Cert” from the key issuing server 1100, the terminal device 1300 stores the received private key “SK” and the public key certificate “Cert” (S Step S 1015).
  • the key issuance audit server 1200 transmits the issued key request information to the key issuance server 1100 in the auditing process (step S1050).
  • the key issuing server 1100 transmits the issued key information group acquired in the key information acquiring process and the server identifier to the key issuing audit server 1200 (Step S1055).
  • steps S200 and S325 shown in FIGS. 11, 12 and 13 are also executed.
  • step S330 after the change is executed finish.
  • the certificate generation unit 1122 Upon receiving the public key certificate generation instruction from the key generation unit 1118, the certificate generation unit 1122 discloses the certificate private key “C—SK” from the certificate private key storage unit to the public key storage unit 1112.
  • the key “PK” and the issue identifier information “IDI” are read from the identifier storage unit 1110, respectively (step S1100).
  • the certificate generation unit 1122 generates a public key certificate "" using the read secret key “C-SK”, public key “PK” and issue identifier information "IDI”, and generates the generated public key certificate.
  • the key certificate “Certj” is written into the certificate storage unit 1113, and a distribution start instruction of the public key certificate “Cert” is output to the information acquisition unit 1119 (step S1105).
  • the information acquisition unit 1119 Upon receiving the distribution start command from the certificate generation unit 1122, the information acquisition unit 1119 stores the secret key “SK” stored in the secret key storage unit 1111 in the certificate storage unit 1113.
  • the public key certificate “Cert” and the terminal identifier stored in the terminal information storage area of the control unit 1114 are read, and the read private key “SK” and the read public key certificate “Cert” are respectively read. Is transmitted to the terminal device 1300 corresponding to the read terminal identifier via the transmitting unit 1121 (step S1110).
  • the obtained public key “PK” and the issued identifier information “IDI” are written as a set in the issued key information storage unit 1124 (step S1115).
  • the control unit 1114 of the key issuing server 1100 When receiving the issued key request information from the key issuing audit server 1200 via the receiving unit 1120, the control unit 1114 of the key issuing server 1100 outputs a key information acquisition command to the information acquiring unit 1119 (step S 1200). Upon receiving the key information acquisition command from the control unit 1114, the information acquisition unit 1119 of the key issuing server 1100 reads out all issued key information from the issued key information storage unit 1124 (Step S1205).
  • the information acquisition unit 1119 reads the server identifier from the server identifier storage area 1130 of the control unit 1114, and transmits the read issued key information group and the server identifier to the key issuance audit server 1200 via the transmission unit 1121. (Step S1210).
  • the reception unit 1214 of the key issuance audit server 1200 receives an instruction to start an audit and a server identifier of the key issuance server to be audited by a user operation, and then issues an audit start instruction and a server identifier to the control unit. Output to 1212 (step S1300).
  • the control unit 1212 upon receiving the audit start command for starting the public key audit and the server identifier to be monitored (here, “SID”) from the reception unit 1214, transmits the issued key request information. Then, it transmits to the key issuing server 1100 corresponding to the server identifier via the transmitting unit 1217 (step S1305).
  • the control unit 1212 writes the server identifier received from the reception unit 1214 into the server information storage area 1220 (Step S1310).
  • the control unit 1212 receives one or more issued key information and a server identifier from the key issuing server 1100 via the receiving unit 217 (Step S1315).
  • the control unit 1212 determines whether the received server identifier matches the server identifier stored in the server information storage area (Step S1320).
  • control unit 1212 determines
  • the received one or more issued key information is written into the issued key information storage unit 1211, and the audit start command and the received server identifier are output to the issued public key confirmation unit 1213 (step S1325).
  • the issuing public key confirmation unit 1213 confirms the validity of the public key in the confirmation processing, and displays the result on the monitor 1250. [0319] If it is determined that they do not match ("NO" in step S1320), control unit 1212 ends the process.
  • the issuing public key confirmation unit 1213 uses the received server identifier to correspond to the first verification value "cl l" and the second verification value.
  • the verification value “c 12” is read from the confirmation information storage unit 1210 (step S1400).
  • the issued public key confirmation unit 1213 reads out one unread issued key information from the issued key information storage unit 1211 (step S1405).
  • the issued public key confirmation unit 1213 checks the public key "PK” and the issued identifier information "IDI" included in the read issued key information, the first verification value “cl l", and the second verification value “cl2". It is checked whether or not the public key “PK” has been generated using the issue identifier information “IDI” (step S1410). Note that the checking method is the same as that of the first embodiment, and thus the description is omitted.
  • the issuance public key confirmation unit 1213 determines that “n— (cl l X cl2)” is not divisible by “IDI”, that is, determines that the public key is invalid (Step S1410). "NO")
  • the read issue identifier information “IDI” is temporarily stored (step S1415).
  • issuance public key confirmation unit 1213 determines that “n— (cl l X cl2)” is divisible by “IDI”, that is, determines that the public key is valid (“YE in step S1410”).
  • step S1415 are omitted.
  • the issued public key confirmation unit 1213 determines whether or not unread issued key information exists (step S1420). If it determines that unread issued key information exists (step S14).
  • step S1425 it is determined whether or not the temporarily stored issue identifier information exists.
  • the issue public key confirmation unit 1213 concatenates all the stored issue identifiers, generates an illegal issue identifier information group, and outputs the generated illegal issue identifier information group to an audit result. It is displayed on the monitor 1250 via the unit 1215 (step S1430).
  • the issue public key confirmation unit 1213 confirms the validity of all public keys. Is displayed on the monitor 1250 via the audit result output unit 1215 (step S1435).
  • the prime information generating unit 133 of the prime generating unit 116 of the key issuing server 100 shown in the above-described first embodiment repeats the operation shown in FIG. 37 to convert the 8-bit prime to the 512-bit prime. Generate.
  • the prime information generation unit 133 generates a 16-bit prime from the 8-bit prime (step S1700), generates a 32-bit prime from the generated 16-bit prime (step S1705), and thereafter sequentially generates a 32-bit prime.
  • a 64-bit prime from a prime, a 128-bit prime from a 64-bit prime, and a 128-bit prime also generate 256-bit primes (steps S1710, S1715, and S1720), and finally from the generated 256-bit prime A 516-bit prime is generated (step S17 25).
  • the prime number generation unit 116 generates control information "information
  • step S1720 the prime generation unit 116 uses the injection function “f” so that the generated prime is unique to the issue identifier information “IDI” based on the control information “information B”.
  • V generates a 256-bit prime.
  • step S1725 the prime generating unit 116 generates a 512-bit prime with the issue identifier information "IDI" embedded therein so that the validity of the generated prime can be confirmed based on the control information "information A”. Generate.
  • the key issuing server 100 can generate different secret keys and public keys for each terminal device by using the injection function “f”. Also, at the key issuing server 100, 25
  • 6-bit prime power is also used when generating a 512-bit prime number. Since the information “IDI” is embedded, the certificate issuing server 200 can confirm the validity of the public key using the generated public key and the issued identifier information.
  • the key issuing server 1100 generates a different secret key and public key for each terminal device by using the injection function "f". can do. Also, when the key issuing server 1100 generates a 512-bit prime from a 256-bit prime, the generated prime has the issue identifier information “IDI” embedded therein. The validity of the public key can be confirmed using the generated public key and the issue identifier information.
  • the key issuing server 100 can use the injection function “f” to compare prime numbers that do not match even if the prime numbers are generated multiple times. It is possible to generate a provable prime number.
  • the key issuing server 100 embeds the issue identifier information “IDI” in the generated prime, so that the certificate issuing server 200 determines whether the key is issued correctly. You can check this by checking for a card that is divisible by "IDI”.
  • ⁇ 1 ⁇ 1
  • the user A finds that one of the prime numbers of the user B is equal to pAl by calculating GCD (pAl, nB), and as a result, by calculating nBZpAl, pB2 Can also be obtained.
  • the RSA cipher uses security factor decomposition as the basis of security, so once the factor is known, it can be easily decrypted. Therefore, user A can decrypt the encrypted text using user B's public key. Similarly, user B can decrypt the encrypted text using user A's public key.
  • prime numbers when prime numbers are generated a plurality of times, the prime numbers may possibly match. This significantly reduces the security of the encryption. By comparing the issued prime number (secret key) with the issued prime number, it can be confirmed that they do not match.
  • the issued public key is often managed by a key issuing server. Private keys are often deleted because they have high confidentiality. Therefore, it is necessary to manage newly issued prime numbers (secret keys). Furthermore, if the number of issues is as large as 1 billion, the time to compare is large and impractical.
  • the present invention has been described based on the first and second embodiments and the first, second, and third modified examples of the generation of prime numbers.
  • the present invention is, of course, not limited to the above embodiments. The following cases are also included in the present invention.
  • the issuance identifier information "IDI" is made up of a concatenation of the server identifier, the terminal identifier, and the number "1", but is not limited to this.
  • the IDI may be generated using the server identifier and the issue identifier “PID” generated by the counter.
  • the issue identifier “PID” is an odd number assigned from 1 to the issue order.
  • the identifier generation unit 115 easily generates a different prime each time by incrementing the number “2” each time a prime is issued (generated).
  • an injection function when generating a 16-bit prime from an 8-bit prime, an injection function may be applied.
  • an injection function may be applied.
  • a bijective function may be applied when generating a 64-bit prime from a 32-bit prime.
  • apply a bijective function when generating a 128-bit prime from a 64-bit prime.
  • the number of bits of the issue identifier "IDI" is smaller than the number of bits of the prime number "q" used for input, and the number of bits of the random number “R1" is (lenq-lenlDI-1) bits.
  • the number of bits of the number “R” is (lenq-1) bits.
  • the prime generator 116 in the first embodiment may be a single prime generator. At this time, when the issue identifier information “IDI” and its bit size “lenIDI” are given, the prime number generation device adds the given “IDI” and its bit size “lenIDI” to the previously stored 8-bit data. Generates a 512-bit prime from the prime.
  • the prime generating unit 1116 in the second embodiment may be a single prime generating device.
  • the prime number generation unit 116 includes a first prime number generation unit that generates a 128-bit prime number from an 8-bit prime number stored in advance, and a 512-bit prime number A second prime generation unit for generating a prime may be included. Further, the first prime number generation unit and the second prime number generation unit may be each a separate prime number generation device! ,.
  • the first prime generation unit generates a 128-bit prime from an 8-bit prime in the same manner as in the related art.
  • Patent Document 1 and Non-Patent Document 3 describe the conventional method in detail.
  • FIG. 38 shows an example of the configuration of the second prime number generation unit.
  • the second prime number generation unit will be described as one prime number generation device 2100.
  • the prime generator 2100 receives the prime “ql”, its bit size “lenql” (here, the bit size is 128 bits), issue identifier information “IDI”, and its bit size “lenIDI”. Output a prime "N” consisting of (4 X lenql) bits. Note that the prime generation device 2100 shown here generates the prime “N” without using the first and second verification values shown in the first embodiment.
  • the prime number generation device 2100 includes a reception unit 2101 and a reception information storage unit 2102. , A prime seed generation unit 2103, a random number generation unit 2104, a prime candidate generation unit 2105, a first prime determination unit 2106, and a second prime determination unit 2107.
  • the prime number generation device 2100 is, specifically, a computer system including a microprocessor, a ROM, a RAM, a hard disk unit, a display unit, a keyboard, a mouse, and the like.
  • a computer program is stored in the RAM or the hard disk unit. By operating in accordance with the microprocessor power and the computer program, the prime number generation device 2100 achieves its function.
  • the reception information storage unit 2102 stores the prime number “ql” given when generating the prime number “N”, the bit size “lenql” of the prime number “q1”, the issue identifier information “IDI”, and the bit size of the issue identifier information “ with an area to store "lenIDI”! /
  • the receiving unit 2101 transmits the prime number “ql”, the bit size “lenql (for example, 128 bits)” of the prime number “ql”, the issue identifier information “IDI”, and the bit size “lenIDI” of the issue identifier information to an external device (for example, The received prime number “ql”, its bit size, rienq 1 ”, issue identifier information“ IDI ”and its bit size“ lenIDI ”are written to the reception information storage unit 2102.
  • Receiving section 2101 outputs the received information to prime seed generating section 2103.
  • the prime number seed generation unit 2103 performs the same operation as the operation performed when the control information device is “information B” in the prime number generation unit 116 shown in the first embodiment. Description is omitted. Here, it is assumed that a 256-bit prime “q2” is generated from a 128-bit prime “ql”.
  • the prime seed generation unit 2103 outputs the generated prime "q2" to the prime candidate generation unit 2105.
  • the random number generation unit 2104 Upon receiving the first generation instruction from the prime candidate generation unit 2105, the random number generation unit 2104 converts the bit size “lenql” of the prime “ql” and the bit size “lenIDI” of the issue identifier information “IDI”. , From the reception information storage unit 2102.
  • the random number generation unit 2104 uses the read bit sizes “lenql” and “lenIDI” to calculate (2
  • the random number generation unit 2104 outputs the generated random number “R1” to the prime candidate generation unit 2105.
  • the random number generation unit 2104 reads out each bit size, and Perform the operation.
  • the prime candidate generation unit 2105 has a generation information storage area for storing the generated number.
  • the prime candidate generation unit 2105 Upon receiving the prime number “q2” from the prime seed generation unit 2103, the prime candidate generation unit 2105 outputs a first generation instruction to the random number generation unit 2104.
  • the prime candidate generation unit 2105 Upon receiving the random number “R1” from the random number generation unit 2104, the prime candidate generation unit 2105 reads out the issue identifier information “IDI” stored in the reception information storage unit 2102.
  • the prime candidate generation unit 2105 reads the bit size “lenql” of the prime “ql” from the reception information storage unit 2102, and determines whether the bit size of the generated number “N” is “4 ⁇ lenql” Judge.
  • the prime candidate generation unit 2105 outputs the generated number “N” to the first prime determination unit 2106, and stores the generated number “R” in the generation information storage area.
  • the prime candidate generation unit 2105 multiplies the random number "R1" received from the random number generation unit 2104 by 2, sets the result as "R1", and again The above operation is performed to generate the numbers “R” and “N”. The prime candidate generation unit 2105 repeats the above operation until the bit size of the number “N” becomes “4 ⁇ lenql”.
  • first primality determining section 2106 is the same as that of first primality determining section 143 shown in the first embodiment, and a description thereof will not be repeated.
  • the operation of the second primality determining unit 2107 is the same as the operation of the second primality determining unit 144 shown in the first embodiment, and a description thereof will be omitted.
  • the second prime determination unit 2107 determines that the generated number "N" is a prime number
  • the second prime determination unit 2107 outputs the generated number "N" as a prime number "N”.
  • the prime generation device 2100 receives the prime “ql”, the bit size "lenq 1" of the prime “ql”, the issue identifier information "IDI”, and the bit size "lenIDI” of the issue identifier information in the accepting unit 2101. Write the received information to the reception information storage unit 2102 (Step S2000) The prime generation apparatus 2100 generates a prime “q2” using the information received in Step S2000 in the prime seed generation unit 2103. (Step S 2005).
  • the random number generation unit 2100 uses the bit sizes "lenql” and “lenIDI” received in step S2000 to generate a random number "R1 Is generated (step S2010).
  • the most significant bit of the random number “R1” is 1.
  • the prime candidate generation unit 2105 issues the issue identifier information “IDI” received in step S2000, the prime “q2” generated in step S2005, and the random number “ By performing a prime candidate generation process using “R1”, numbers “R” and “N” are generated (step S2015).
  • the prime number generator 2100 Using the number “N” generated in step S2015, the prime number determination unit 2106 determines whether or not the above equation (eql) is satisfied (step S2020).
  • step S2020 If it is determined that the equation (eql) holds ("YES” in step S2020), the prime generating apparatus 2100 causes the second prime determining unit 2107 to output the number generated in step S2015 Using “R” and “N”, it is determined whether or not the above equation (eq2) is satisfied (step S2025).
  • the prime generating apparatus 2100 When it is determined that the equation (eq2) is satisfied and! / Is satisfied ("YES" in step S2025), the prime generating apparatus 2100 outputs the number "N” as a prime “N” and ends the process. (Step S2030).
  • step S2020 When it is determined that the equation (eql) is not satisfied ("NO” in step S2020), and when it is determined that the equation (eq2) is satisfied and! / ⁇ is not satisfied (step S2025). Return to step S2010 and perform the process again.
  • step S2015 of the prime generation processing will be described with reference to the flowchart shown in FIG.
  • the prime candidate generation unit 2105 generates the prime “q” generated in step S2005 of the prime generation process.
  • step S2050 and the number“ R ”generated in step S2050 to generate a number“ N ”(step
  • the prime candidate generation unit 2105 determines whether or not the bit size of the generated number “N” is “4 X lenql” (step S 2060).
  • step S2060 If it is determined to be “4 X lenql” (“YES” in step S2060), the process ends. If it is determined that “4 X lenq 1” is not true! (“NO” in step S 2060)
  • step S2050 As “R1” (step S2065).
  • bit size of the prime number which is the secret key to be generated is set to 512 bits.
  • the present invention is not limited to this. It may be 1024 bits or 2048 bits.
  • the prime generated by the first prime generator is not limited to 128 bits.
  • the prime seed generation unit 2103 described above may be a single prime generation device.
  • the prime number generation device 2200 in this case will be described.
  • the prime generation device 2200 converts the prime “q”, its bit size “lenq” (here, the bit size is 128 bits), issue identifier information “IDI”, and its bit size “lenIDI”. If given, outputs a prime "N” consisting of (2 X lenq) bits.
  • the prime generation device 2200 includes a reception unit 2201, a reception information storage unit 2202, a random number generation unit 2203, a prime candidate generation unit 2204, a first prime determination unit 2205, and a second prime determination unit. It is composed of 2206.
  • the prime number generation device 2200 is, specifically, a computer system including a microprocessor, ROM, RAM, a hard disk unit, a display unit, a keyboard, a mouse, and the like.
  • a computer program is stored in the RAM or the hard disk unit. By operating in accordance with the microprocessor power and the computer program, the prime number generation device 2200 achieves its function.
  • the reception information storage unit 2202 stores the prime number “q” given when generating the prime number “N”, the bit size “lenq” of the prime number “q”, the issue identifier information “IDI”, and the bit size “1” of the issue identifier information. It has an area to store enlDIj.
  • the receiving unit 2201 transmits the prime number “q”, the bit size “lenq” of the prime number “q”, the issue identifier information “IDI”, and the bit size “lenIDI” of the issue identifier information to the outside (for example, the first prime).
  • the receiving unit 2201 writes the received prime “q”, its bit size “lenq”, issue identifier information “IDI” and its bit size rienlDIj to the reception information storage unit 2202.
  • Receiving section 2201 outputs a start instruction to start processing to prime candidate generating section 2204.
  • the random number generation unit 2203 Upon receiving the first generation instruction to generate a random number from the prime candidate generation unit 2204, the random number generation unit 2203 receives the bit size “lenq” of the prime number “q” and the bit size of the issue identifier information “IDI”. “LenIDI” is read from the reception information storage unit 2202.
  • the random number generation unit 2203 uses the read bit sizes "lenq” and “lenIDI” to generate a random number "R1" of (len q-lenlDI-1) bits. Here, the most significant bit of the random number “R1” is “1”.
  • Non-patent document 2 details the random number generation method.
  • the random number generation unit 2203 outputs the generated random number “R1” to the prime candidate generation unit 2204. Also, upon receiving a second generation instruction to generate a random number again from any of the first prime number determination unit 2205 and the second prime number determination unit 2206, the random number generation unit 2203 reads out each bit size, and Perform the operation.
  • the prime candidate generation unit 2204 has a function storage area that stores a function “f” that is an injection in advance, and a generation information storage area that stores a number generated using the function “f”. You. Upon receiving the start instruction from the reception unit 2201, the prime candidate generation unit 2204 outputs the first generation instruction to the random number generation unit 2203.
  • the prime candidate generation unit 2204 determines whether or not the bit size of the generated number “N” is “2 ⁇ lenq”.
  • the prime candidate generation unit 2204 outputs the generated number “N” to the first prime determination unit 2205, and stores the generated number “R” in the generation information storage area.
  • the prime candidate generation unit 2204 multiplies the random number "R1" received from the random number generation unit 2203 by 2, and sets the result to "R1". Again, the above To generate numbers “R” and “N” that satisfy the above equation.
  • the prime candidate generation unit 2204 repeats the above operation until the bit size of the generated number “N” becomes “2 ⁇ lenq”.
  • the operation of the first primality determining unit 2205 is the same as that of the first primality determining unit 143 shown in the first embodiment, and a description thereof will not be repeated.
  • the operation of the second primality determining unit 2206 is the same as the operation of the second primality determining unit 144 shown in the first embodiment, and a description thereof will be omitted.
  • the second prime number determination unit 2206 outputs the generated number "N” as a prime number "N” when determining that the generated number "N” is a prime number.
  • step S2000 the prime generating apparatus 2200 sets the prime "q", the bit size "lenq” of the prime "q”, the issue identifier information "IDI”, and the bit size "lenIDI” of the issue identifier information by a user operation. It is changed so that the received information is written to the received information storage unit 2202.
  • step S2000 the prime generating apparatus 2200 omits step S2005 and executes the modified step S2010 as follows.
  • step S2010 the prime number generation device 2200 changes to generate a (lenq-lenlDI-1) -bit random number "R1".

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)

Abstract

素数の算出を行う際に、簡単な管理により重複を避けながら素数を算出する素数算出装置を提供する。  素数算出装置は、既知の素数qと、素数の利用範囲における一意の管理情報を記憶している。素数算出装置は、管理情報を読み出し、読み出した管理情報に依存する攪乱情報Rを生成し、素数qを読み出し、読み出した素数qと生成した攪乱情報Rとを用いて、数N=2×攪乱情報R×素数q+1により、素数候補Nを算出し、算出された素数候補Nが素数であるか否かを判定し、素数であると判定された場合に、算出された素数候補Nを素数として出力する。これにより、素数算出装置は、一意の管理情報から、重複を避けながら素数候補を算出することができる。                                                                                

Description

明 細 書
素数算出装置及び方法並びに鍵発行シ テム 技術分野
[0001] 本発明は、素因数分解の困難さを安全性の根拠として情報のセキュリティを保持す る技術に関する。
背景技術
[0002] 近年、コンピュータ技術及び通信技術に基づくデータ通信が広く普及してきており 、このデータ通信においては、秘密通信方式やデジタル署名方式が用いられる。ここ で、秘密通信方式とは、特定の通信相手以外に通信内容を漏らすことなく通信を行う 方式である。またデジタル署名方式とは、通信相手に通信内容の正当性を示したり、 発信者の身元を証明したりする通信方式である。
[0003] 1.公開鍵暗号方式
これらの秘密通信方式又はデジタル署名方式においては、公開鍵暗号方式とよば れる暗号方式が用いられる。公開鍵暗号方式を用いる秘密通信では、暗号化鍵と復 号ィ匕鍵とが異なり、復号ィ匕鍵は秘密にするが、暗号ィ匕鍵は公開する。秘密にする復 号化鍵を秘密鍵と呼び、公開する暗号化鍵を公開鍵と呼ぶ。通信相手が多数のとき 、共通鍵暗号では通信相手間で鍵をもつ必要がある力 公開鍵暗号では通信相手 がーつの固有の鍵をもつだけで通信可能になるため、通信相手が増えても、共通鍵 暗号より鍵の数が少なくてよい。このように、公開鍵暗号は多数の通信相手と通信を 行うのに適しており、不可欠な基盤技術である。
[0004] 公開鍵暗号方式の 1種である RS A暗号方式では、整数の素因数分解問題を解くこ とが、計算量の上で困難であることを安全性の根拠としている。素因数分解問題とは 、 p, qを素数とし、整数 n = p X qとするとき、整数 nに対して、素数 p, qを求める問題 である。ここで、 Xは通常の乗算である。一般に p, qが 1024ビットの数のように大きい 場合は、素因数分解問題が困難である。それにより、 RSA暗号方式の公開鍵から秘 密鍵を求めることや、秘密鍵を持たないユーザが暗号文から平文を求めることが、困 難になる。なお、素因数分解問題については、非特許文献 1の 144一 151ページに 詳しく述べられている。
[0005] (素因数分解問題を応用する RSA暗号方式)
ここで、素因数分解問題を応用する RSA暗号方式について説明する。
(1)鍵の生成
次に示すようにして公開鍵及び秘密鍵を計算する。
'ランダムに大きい素数 p, qを選択し、その積 n=pXqを計算する。
[0006] ·(p—l)及び(q—l)の最小公倍数L = LCM(p—l, q— 1)を計算する。
•Lと互いに素で Lより小さ ヽ自然数 eをランダムに選ぶ。
l≤e≤L-l, GCD(e, L)=l
ここで、 GCD(e, L)は、 eと Lの最大公約数を示している。
•eXd=l mod Lを満たす dを計算する。 GCD(e, L) =1より、このような dは 必ず存在する。このようにして、得られた整数 e及び整数 nが、公開鍵である。また、整 数 dが、秘密鍵である。ここで、 X mod yは、 xを yで割った余りを示す。
[0007] (2)暗号文の生成
公開鍵である整数 e及び整数 nを用いて、平文 mに暗号演算を施して暗号文 cを計 算する。
c=m e mod n
なお、この明細書において、演算子"は、べき乗を示す。例えば、 A"xは、 x>0のと きは Aを X回乗じたものを示す。
[0008] (3)復号文の生成
秘密鍵である整数 dを用いて、暗号文 cに復号演算を施して復号文 m'を計算する。
m =c d mod n
なお、
m =c d mod n
= (m e ) d mod n
= rrT(eXd mod L) mod n
=m 1 mod n
=m mod n であるので、復号文 m'は、平文 mと一致する。
[0009] また、 RSA暗号については、非特許文献 2の 110— 113ページに詳しく説明されて いる。
上記に示した素因数分解を応用した RSA暗号における公開鍵の生成のステップに おいて、素数生成が行われる。素数生成については、非特許文献 3の 145— 154ぺ ージに詳しく説明されている。素数生成方法には、確率的素数生成法と確定的素数 生成方法がある。確率的素数生成法により生成される素数は、「素数である確率が高 い」数であり、 100%素数であるとは限らない。一方、確定的素数生成方法は、確実 に素数である数を生成する。確率的素数生成方法及び確定的素数生成方法にっ 、 ては、非特許文献 2に詳しく説明されている。以下では、確定的素数生成方法につ いて説明する。
[0010] 2.従来例 1 確定的素数生成方法
確定的に素数を生成することができる Maurer法による確定的素数生成方法につ いて説明する。ここで、 Maurer法については、非特許文献 3の 152— 153ページに 詳しく説明されている。
前記確定的素数生成方法では、次に示すステップを繰り返すことにより、素数を生 成する。あら力じめビットサイズ lenqの素数 qが与えられて!/、る。
[0011] (ステップ 1) (lenq-1)ビットの乱数 Rを選択する。なお、乱数 Rの先頭ビットは、必 ず 1となるようにする。
(ステップ 2)数 Nを以下の式により計算する。
N= 2 X q XR+ l
(ステップ 3)数 Nが素数である力否かを、次に示す第 1判定及び第 2判定がともに、 成立する場合に、素数と判定する。他の場合に、素数でないと判定する。
[0012] (第 1判定) 2' (N—1) = 1 mod N
(第 2判定) GCD (2' (2R)—1、N) = 1
素数であると判定される場合には、数 Nを素数として出力する。素数でないと判定さ れる場合には、ステップ 1へ戻って、素数が出力されるまで、処理を繰り返す。
ステップ 3で述べられている判定方法は、 Pocklingtonの素数判定法とよばれ、非 特許文献 3の 144ページに詳しく述べられている。 Pocklingtonの素数判定法では 、 N = 2 X q XR+ lのqが素数でぁり、第 1判定及び第 2判定の結果が真であれば、 必ず、 Nが素数になる。そのため、確定的に素数であることを判定でき、確定的な素 数生成が可能になる。
[0013] このようにして、 Maurer法による確定的素数生成方法では、サイズ lenqの素数 qを 基にして、サイズ 2 X lenqの素数 Nを生成する。従って、 Maurer法による確定的素 数生成方法を用いて所定長の素数を生成する場合には、前記所定長以下の素数の 生成を繰り返し行う。例えば、 512ビット長の素数を生成する場合には、あらかじめ与 えられた 8ビットの素数を基にして 16ビットの素数を生成する。次に、生成した 16ビッ トの素数を基にして 32ビットの素数を生成する。次に、生成した 32ビットの素数を基 にして 64ビットの素数を生成する。以下同様の素数生成を繰り返して、 512ビットの 素数を生成する。
[0014] なお、前記第 2判定を次の判定に代えてもよい。
(第 3判定) 2' (2R)≠1 mod N
上記第 3判定方法は、非特許文献 4に詳しく述べられている。以降、こちらの判定 方法を使用していく。
3.複数の鍵発行サーバをもつ鍵発行システム
公開鍵暗号の鍵発行システムでは、ユーザが鍵を生成する場合や、鍵発行サーバ によりユーザに鍵を発行する場合がある。鍵発行サーバにより鍵を発行する場合、ュ 一ザに鍵を発行するサーバは一台であることが多い。しかし、処理の負荷を軽減する ために、鍵発行システムは、複数台の鍵管理サーバを備え、複数台の鍵管理サーバ のそれぞれにおいて、鍵を発行することもある。
特許文献 1:特開 2003— 5644号公報
非特許文献 1 :岡本龍明、太田和夫共編、「暗号 ·ゼロ知識問題 ·数論」、共立出版、 1990
非特許文献 2 :岡本龍明、山本博資、 "現代暗号"、産業図書 (1997年)
非特許文献 3 : A. Menezes, P. C. van Oorschot, S. A. Vanstone, "Handbook of applied cryptography , CRC Pres s, 1997 非特許文献 4:岡本 栄司、「暗号理論入門」、共立出版、 1993、 21ページ 非特許文献 5 : Henri Cohen, A Course in Computational Algebraic
Number Theory", GTM 138, Springer— Verlag, 1993
発明の開示
発明が解決しょうとする課題
[0015] 複数台の鍵発行サーバを用いた鍵発行システムでは、第 1の鍵発行サーバと、第 2 の鍵発行サーバにぉ 、て、それぞれ発行した RSA鍵を互いにチェックすることはな い。なぜなら、発行した RSA鍵を、他の鍵発行サーバへ公開すると、セキュリティ上 問題があるからである。このため、偶然、第 1及び第 2の鍵発行サーバが、第 1のユー ザ及び第 2のユーザのために、同じ公開鍵と同じ秘密鍵を生成することが起こりうる。
[0016] このため、暗号方式を利用する際に、セキュリティが確保できないという問題がある 例えば、第 3のユーザが、第 1のユーザのための前記公開鍵を用いて、第 1のユー ザに対して、暗号文を生成して送付すると、第 1のユーザは、当然、自身の秘密鍵を 用いて、暗号文を復号できるが、第 2のユーザも自身の秘密鍵を用いて、前記暗号 文を復号できてしまう。
課題を解決するための手段
[0017] このような問題を解決するためには、 RSAの公開鍵は、 2つの異なる素数の積によ り演算されるので、公開鍵の生成において用いられる各素数力 第 1の鍵発行サー バと、第 2の鍵発行サーバにおいて、異なるようにしておけばよい。
そこで、本発明は、素数の算出を行う際に、簡単な管理により重複を避けながら素 数を算出する素数算出装置、鍵発行システム、素数算出方法及び素数算出プロダラ ムを提供することを目的とする。
[0018] 上記目的を達成するために、本発明は、既知の素数 qより大きい素数候補 Nを算出 して素数判定する素数算出装置であって、既知の素数 qを記憶している素数記憶手 段と、素数の利用範囲における一意の管理情報を記憶している管理情報記憶手段と 、前記管理情報記憶手段から前記管理情報を読み出し、読み出した前記管理情報 に依存する攪乱情報 Rを生成する攪乱情報生成手段と、前記素数記憶手段から前 記素数 qを読み出し、読み出した前記素数 q及び生成された前記攪乱情報 Rを用い て、 N = 2 X攪乱情報 RX素数 q+ 1により、素数候補 Nを算出する候補算出手段と、 算出された素数候補 Nが素数であるカゝ否かを判定する素数判定手段と、素数である と判定される場合に、算出された素数候補 Nを素数として出力する出力手段とを備え ることを特徴とする。
発明の効果
[0019] 上記に示した構成によると、素数算出装置は、一意の管理情報に依存して生成さ れた攪乱情報 Rを用いて、素数候補 Nを算出するので、重複を避けながら素数候補 を算出することができる。素数の利用範囲とは、素因数分解の困難性を安全性の根 拠として素数を利用する範囲である。
ここで、前記攪乱情報生成手段は、前記管理情報記憶手段から前記管理情報を 読み出す読出部と、乱数 rを算出する乱数算出部と、読み出した前記管理情報と生 成した乱数 rとを結合する結合部と、前記管理情報と乱数 rとの結合体に基づ 、て、 攪乱情報 Rを算出する演算部とを含むとしてもよい。
[0020] この構成によると、素数算出装置は、管理情報と乱数 rとの結合体に基づいて、攪 乱情報 Rを生成するので、管理情報による一意性と、乱数 rによるランダム性とを兼ね 備えた攪乱情報を生成することができる。
ここで、前記演算部は、前記結合体に、単射の関数を施して攪乱情報 Rを生成する としてちよい。
[0021] この構成によると、素数算出装置は、結合体に、単射の関数を施して、攪乱情報 R を生成するので、単射の関数の性質により、結合体が有する一意性を保ち、且つ結 合体力 変換されることによるランダム性を備える攪乱情報を生成することができる。 ここで、前記単射の関数は、排他的論理和であり、前記演算部は、所定の鍵情報を 予め記憶しており、前記鍵情報と前記結合体とに排他的論理和を施して攪乱情報 R を生成するとしてもよい。
[0022] この構成によると、素数算出装置は、結合体と所定の鍵情報とから、排他的論理和 を施して、攪乱情報 Rを生成することができる。
ここで、前記素数算出装置は、素数 qの 2倍のビット長を有する素数候補 Nを算出し 、前記乱数算出部は、素数 qのビット長から前記管理情報のビット長及び 1を差し引 V、て得られるビット長の前記乱数 rを算出するとしてもよ 、。
[0023] この構成によると、素数算出装置は、素数 qのビット長力も管理情報のビット長を及 び 1を差し引いて得られるビット長の乱数 rを算出し、素数 qの 2倍のビット長を有する 素数候補 Nを算出することができる。
ここで、前記素数判定手段は、前記素数候補 Nに対して、 2N_1 = 1 mod Nを満た すか否かを判定する第 1判定部と、前記第 1判定部により満たすと判定される場合に 、さらに、素数候補 N及び攪乱情報 Rに対して、 22R ≠1 mod Nを満たす力否力を 判定し、満たすと判定する場合に、素数候補 Nが素数であると決定する第 2判定部と を含むとしてもよい。
[0024] この構成によると、素数算出装置は、第 1及び第 2判定部を用いて、素数候補 Nが 素数であるか否かを判断するので、第 1及び第 2判定部の双方にて、判定結果が肯 定的な場合に、素数候補 Nを素数と判断することができる。
ここで、前記素数判定手段は、前記素数候補 Nに対して、 2N_1 = 1 mod Nを満た すか否かを判定する第 1判定部と、前記第 1判定部により満たすと判定される場合に 、さらに、素数候補 N及び攪乱情報 Rに対して、 GCD (22R —1、 N) = 1を満たすか 否かを判定し、満たすと判定する場合に、素数候補 Nが素数であると決定する第 2判 定部とを含むとしてもよい。
[0025] この構成によると、素数算出装置は、第 1及び第 2判定部を用いて、素数候補 Nが 素数であるか否かを判断するので、第 1及び第 2判定部の双方にて、判定結果が肯 定的な場合に、素数候補 Nを素数と判断することができる。
ここで、前記素数算出装置は、さらに、前記素数判定手段により素数であると判定 されるまで、前記攪乱情報生成手段、前記候補算出手段及び前記素数判定手段に 対して、攪乱情報 Rの生成と、素数候補 Nの算出と、前記判定とを繰り返すように制 御する繰返制御手段を含むとしてもよ ヽ。
[0026] この構成によると、素数算出装置は、繰返制御手段により、生成された素数候補が 素数であると判定されるまで、攪乱情報 Rの生成、素数候補 Nの算出、素数の判定と を繰り返すので、常に、素数を出力することができる。 ここで、前記素数算出装置は、さらに、乱数 R'を算出する次段乱数算出手段と、出 力された前記素数 N及び生成された前記乱数 R'を用いて、 N' = 2 X乱数 R' X素数 N+ 1により、素数候補 N'を算出する次段候補算出手段と、算出された素数候補 N' が素数であるか否かを判定する次段素数判定手段と、素数であると判定される場合 に、算出された素数候補 N'を素数として出力する次段出力手段と、前記次段素数判 定手段により素数であると判定されるまで、前記次段乱数算出手段、前記次段候補 算出手段及び前記次段素数判定手段に対して、乱数 R'の生成と、素数候補 N'の算 出と、前記判定とを繰り返すように制御する次段繰返制御手段とを含むとしてもよい。
[0027] この構成によると、素数算出装置は、素数 Nと、生成された乱数 R'とを用いて、素 数候補 N'を算出し、算出された素数候補 N'が素数であるか否かを判断し、素数で ある場合には、算出された素数候補 N'を素数として出力することができる。
ここで、記素数算出装置は、さらに、所定の検証値を記憶している次段情報記憶手 段と、乱数 r'を生成する次段乱数生成手段と、前記管理情報に生成した前記乱数 r' を乗じて攪乱情報 R,を算出し、 N' = 2 X攪乱情報 R, X素数 N+検証値により、素 数候補 N'を算出する次段候補算出手段とを含み、前記素数判定手段は、さらに、 算出された素数候補 N'が素数である力否かを判定し、前記出力手段は、さらに、素 数候補 N'が素数であると判定される場合に、算出された素数候補 N'を素数として出 力するとしてちょい。
[0028] この構成によると、素数算出装置は、検証値と、素数 Nと、管理情報に乱数 r'を乗じ た攪乱情報 R'とを用いて、素数候補 N'を算出し、算出された素数候補 N'が素数で ある力否かを判断し、素数である場合には、素数候補 N'を素数として出力することが できる。これにより、素数 N'から検証値を減じた結果が、管理情報にて割り切れる素 数 N'を生成することができる。
[0029] ここで、前記素数算出装置は、 RSA暗号の公開鍵及び秘密鍵を生成する鍵生成 装置であり、前記素数算出装置は、さらに、算出された素数 Nを用いて、 RSA暗号の 公開鍵を生成する公開鍵生成手段と、生成された公開鍵を用いて、 RSA暗号の秘 密鍵を生成する秘密鍵生成手段とを含むとしてもよ ヽ。
この構成によると、素数算出装置は、 RSA暗号の公開鍵及び秘密鍵を生成する鍵 生成装置とすることができ、素数算出装置は、算出された素数 Nを用いて、公開鍵を 生成し、生成した公開鍵を用いて、秘密鍵を生成することができる。
[0030] ここで、前記公開鍵生成手段は、前記繰返制御手段に対して、新たに素数 N'が得 られるように指示し、前記素数 N及び新たに得られた素数 N'を用いて、 n=素数 N X 素数 N'により、数 nを算出し、乱数 eを生成し、算出された数 nと生成された乱数 の 組が前記公開鍵であり、前記秘密鍵生成手段は、 e X d= l mod Lを満たす dを算 出し、 Lは、素数 N-1と素数 N'-lとの最小公倍数であり、算出された dが前記秘密鍵 であるとしてもよい。
[0031] この構成によると、素数算出装置は、素数 N及び素数 N'を用いて、数 nを算出し、 乱数 eを生成することにより、公開鍵を生成し、生成された乱数 eと、素数 N— 1と素数
N,—1との最小公倍数とから、秘密鍵を生成することができる。
ここで、前記素数算出装置は、端末装置に対して、 RSAの秘密鍵及び公開鍵を生 成し、発行する鍵発行サーバ装置であり、前記素数算出装置は、さらに、生成した前 記秘密鍵を、端末装置に対して出力する鍵出力手段と、生成した前記公開鍵を、公 開する公開手段とを含むとしてもよ 、。
[0032] この構成によると、素数算出装置は、生成した秘密鍵を端末装置に対して出力し、 生成した公開鍵を公開することができる。
ここで、前記素数算出装置は、さらに、前記端末装置を一意に識別する端末装置 識別子を取得する識別子取得手段と、取得した端末装置識別子を含む前記管理情 報を生成する管理情報生成手段と、生成した前記管理情報を前記管理情報記憶手 段に書き込む書込手段とを含むとしてもよい。
[0033] この構成によると、素数算出装置は、端末装置識別子を含む管理情報を生成し、 生成した管理情報を管理情報記憶手段へ書き込むので、一意の管理情報を記憶す ることがでさる。
ここで、前記素数算出装置は、さらに、鍵発行サーバ装置としての当該素数算出装 置を一意に識別するサーバ識別子を予め記憶しているサーバ識別子記憶手段を含 み、前記管理情報生成手段は、さらに、前記サーバ識別子記憶手段から前記サー バ識別子を読み出し、読み出したサーバ識別子をさらに含む前記管理情報を生成 するとしてちょい。
[0034] この構成によると、素数算出装置は、さらに、サーバ識別子を含む管理情報を生成 するので、管理情報の一意性を高めることができる。
また、本発明は、既知の素数より大きい素数を算出する素数算出装置であって、既 知の入力素数の 2倍のビット長を有する出力素数を算出する素数算出手段と、既知 の素数初期値を記憶している素数記憶手段と、前記素数算出手段に対して、算出を 複数回繰り返すように制御する繰返制御手段とを備え、前記繰返制御手段は、前記 繰返しにおける初回の算出において、前記素数記憶手段に記憶されている素数初 期値を、前記入力素数として、前記素数算出手段に与え、前記繰返しの初回の算出 以外の他の算出において、 1つ前の回の算出においてされた出力素数を、当該他の 算出における前記入力素数として、前記素数算出手段に与え、前記複数回の算出 のいずれか 1の算出において、前記素数算出手段は、素数の利用範囲における一 意の管理情報を記憶して!/、る管理情報記憶部と、前記管理情報記憶部から前記管 理情報を読み出し、読み出した前記管理情報に依存する攪乱情報 Rを生成する攪 乱情報生成部と、前記入力素数 qを受け取り、受け取った前記入力素数 q及び生成 された前記攪乱情報 Rを用いて、 N = 2 X攪乱情報 RX素数 q+ 1により、素数候補 Nを算出する候補算出部と、算出された素数候補 Nが素数であるか否かを判定する 素数判定部と、素数であると判定される場合に、算出された素数候補 Nを出力素数と して出力する出力部と、前記素数判定部により素数であると判定されるまで、前記攪 乱情報生成部、前記候補算出部及び前記素数判定部に対して、攪乱情報 Rの生成 と、素数候補 Nの算出と、前記判定とを繰り返すように制御する繰返制御部とを含む ことを特徴とする。
[0035] この構成によると、素数算出装置の素数出力手段は、複数回の出力素数の算出の 何れかの 1の算出において、一意の管理情報に依存して生成された攪乱情報 Rを用 いて、素数候補 Nを算出するので、重複を避けながら素数候補を算出することができ る。
ここで、前記複数回の算出のうち、最終回の算出において、前記素数算出手段は、 所定の検証値を記憶している情報記憶部と、乱数 r'を生成する乱数生成部と、前記 管理情報に生成した前記乱数 r'を乗じて攪乱情報 R'を算出し、 N' = 2 X攪乱情報 R ' X 1つ前の回において算出された出力素数 +検証値により、素数候補 N'を算出す る候補算出部と、算出された素数候補 N'が素数であるか否かを判定する素数判定 部と、素数候補 N'が素数であると判定される場合に、算出された素数候補 N'を素数 として出力する出力部と、前記素数判定部により素数であると判定されるまで、前記 乱数生成部、前記候補算出部及び前記素数判定部に対して、乱数 r'の生成と、素 数候補 N'の算出と、前記判定とを繰り返すように制御する繰返制御部とを含むとして ちょい。
[0036] この構成によると、素数算出装置は、検証値と、 1つ前の回において算出された出 力素数と、管理情報に乱数 r'を乗じた攪乱情報 R'とを用いて、素数候補 N'を算出 し、算出された素数候補 N'が素数であるカゝ否かを判断し、素数である場合には、素 数候補 N'を素数として出力することができる。これにより、素数 N'から検証値を減じ た結果が、管理情報にて割り切れる素数 N'を生成することができる。
[0037] また、本発明は、端末装置に対して RSAの秘密鍵及び公開鍵を生成して発行する 鍵発行サーバ装置と、前記端末装置とから構成される鍵発行システムであって、鍵 発行サーバ装置は、既知の素数 qより大きい素数 Nを算出する素数算出手段と、算 出された素数 Nを用いて、 RSA暗号の公開鍵を生成する公開鍵生成手段と、生成さ れた公開鍵を用いて、 RSA暗号の秘密鍵を生成する秘密鍵生成手段と、生成され た前記秘密鍵を、端末装置に対して出力する鍵出力手段と、生成された前記公開鍵 を公開する公開手段とを備え、前記素数算出手段は、既知の素数 qを記憶している 素数記憶部と、一意の管理情報を記憶している管理情報記憶部と、前記管理情報 記憶部から前記管理情報を読み出し、読み出した前記管理情報に依存する攪乱情 報 Rを生成する攪乱情報生成部と、前記素数記憶部から前記素数 qを読み出し、読 み出した前記素数 q及び生成された前記攪乱情報 Rを用いて、 N = 2 X攪乱情報 R X素数 q+ 1により、素数候補 Nを算出する候補算出部と、算出された素数候補 Nが 素数であるか否かを判定する素数判定部と、素数であると判定される場合に、算出さ れた素数候補 Nを素数として出力する出力部と、前記素数判定部により素数であると 判定されるまで、前記攪乱情報生成部、前記候補算出部及び前記素数判定部に対 して、攪乱情報 Rの生成と、素数候補 Nの算出と、前記判定とを繰り返すように制御 する繰返制御部とを含み、前記端末装置は、前記秘密鍵を受け取る受信手段と、受 信した秘密鍵を記憶する鍵記憶手段とを備えることを特徴とする。
[0038] この構成によると、鍵発行システムの鍵発行サーバ装置は、一意の管理情報に依 存して生成された攪乱情報 Rを用いて、素数候補 Nを算出するので、重複を避けな 力 素数候補を算出することができる。端末装置は、秘密鍵を、鍵発行サーバ装置 力 受信し、記憶するので、重複を避けながら生成された素数 Nにより生成された、 つまり重複を避けながら生成された秘密鍵を記憶することができる。
[0039] ここで、前記鍵発行システムは、さらに、証明書発行サーバ装置を含み、前記鍵出 力手段は、前記公開鍵を前記証明書発行サーバ装置へ出力し、前記証明書発行サ ーバ装置は、当該証明書発行サーバ装置の秘密鍵を記憶している記憶手段と、前 記公開鍵を取得する取得手段と、前記証明書発行サーバ装置の秘密鍵を用いて、 前記公開鍵を含む公開鍵情報に、デジタル署名を施して、署名データを生成し、少 なくとも前記公開鍵及び生成した前記署名データを含む公開鍵証明書を生成する 証明書生成手段と、生成した公開鍵証明書を鍵発行サーバ装置へ出力する出力手 段とを備えるとしてもよい。
[0040] この構成によると、鍵発行システムは、証明書発行サーバ装置を用いて、鍵発行サ ーバ装置にて発行された公開鍵に対する公開鍵証明書を発行することができる。 図面の簡単な説明
[0041] [図 1]鍵発行システム 1の全体の概要を示す図である。
[図 2]鍵発行サーバ 100の構成を示すブロック図である。
[図 3]素数生成部 116の構成を示すブロック図である。
[図 4]制御情報テーブル T100のデータ構造の一例を示す図である。
[図 5]素数情報生成部 133の構成を示すブロック図である。
[図 6]証明書発行サーバ 200の構成を示すブロック図である。
[図 7]検証値テーブル T200のデータ構造の一例を示す図である。
[図 8]端末装置 300の構成を示すブロック図である。 圆 9]鍵発行システム 1の動作概要を示す流れ図である。
[図 10]鍵発行システム 1における鍵依頼処理の動作を示す流れ図である。
[図 11]鍵発行システム 1における鍵発行処理の動作を示す流れ図である。図 12へ続 く。
[図 12]鍵発行システム 1における鍵発行処理の動作を示す流れ図である。図 11から 続き、図 13へ続く。
[図 13]鍵発行システム 1における鍵発行処理の動作を示す流れ図である。図 12から 続き、図 14へ続く。
[図 14]鍵発行システム 1における鍵発行処理の動作を示す流れ図である。図 13から 続く。
[図 15]素数生成処理の動作を示す流れ図である。
圆 16]素数候補生成処理の動作を示す流れ図である。図 17へ続く。
圆 17]素数候補生成処理の動作を示す流れ図である。図 16から続く。
[図 18]鍵発行システム 1における証明書発行処理の動作を示す流れ図である。
[図 19]素数情報生成部 133Aの構成を示すブロック図である。
[図 20]検証値テーブル T250のデータ構造の一例を示す図である。
[図 21]素数情報生成部 133Bの構成を示すブロック図である。
[図 22]素数生成部 116Cの構成を示すブロック図である。
[図 23]制御情報テーブル T150のデータ構造の一例を示す図である。
[図 24]素数情報生成部 133Cの構成を示すブロック図である。
圆 25]素数候補生成処理の動作を示す流れ図である。
[図 26]鍵発行システム 2の全体の概要を示す図である。
[図 27]鍵発行サーバ 1100の構成を示すブロック図である。
[図 28]発行済鍵情報テーブル T1100のデータ構造の一例を示す図である。
[図 29]鍵発行監査サーバ 1200の構成を示すブロック図である。
[図 30]検証値テーブル T1200のデータ構造の一例を示す図である。
[図 31]鍵発行時における鍵発行システム 2の動作概要を示す流れ図である。
[図 32]鍵監査時における鍵発行システム 2の動作概要を示す流れ図である。 [図 33]鍵発行システム 2における証明書発行処理の動作を示す流れ図である。
[図 34]鍵発行システム 2における鍵情報取得処理の動作を示す流れ図である。
[図 35]鍵発行システム 2における監査処理の動作を示す流れ図である。
[図 36]確認処理の動作を示す流れ図である。
[図 37]8ビットの素数から 512ビットの素数を生成するの動作を示す図である。
[図 38]素数生成装置 2100の構成を示すブロック図である。
[図 39]素数生成処理の動作を示す流れ図である。
[図 40]素数候補生成処理の動作を示す流れ図である。
[図 41]素数生成装置 2200の構成を示すブロック図である。
[図 42]素数生成装置 2300の構成を示すブロック図である。
[図 43]素数生成装置 2400の構成を示すブロック図である。
[図 44]素数生成装置 2500の構成を示すブロック図である。
[図 45]発行識別子情報「IDI」のビット列に、乱数「R1」を構成する各ビットを埋め込ん だ結果「IDI— Rl」の一例を示す図である。
[図 46]検証処理の動作を示す流れ図である。
符号の説明
1 鍵発行システム
100、 101、 102 鍵発行サーノ
110 識別子格納部
111 秘密鍵格納部
112 公開鍵格納部
113 証明書格納部
114 制御部
115 識別子生成部
116 素数生成部
117 鍵判定部
118 鍵生成部
119 情報取得部 120 受信部
121 送信部
130 サーバ識別子記憶領域
131 端末情報記憶領域
132 繰返制御部
133 素数情報生成部
135 繰返カウンタ
136 出力カウンタ
140 情報制御部
141 乱数生成部
142 素数候補生成部
143 第 1素数判定部
144 第 2素数判定部
200 証明書発行サーバ
210 秘密鍵格納部
211 発行公開鍵格納部
212 発行識別子情報格納部
213 公開鍵証明書格納部
214 発行公開鍵確認部
215 公開鍵証明書生成部
216 証明書取得部
217 受信部
218 送信部
220 サーバ情報記憶領域
221 確認情報記憶領域
300、 301、 302、 303、 304、 305、 306 端末装置
310 秘密鍵格納部
311 公開鍵証明書格納部 312 制御部
313 受付部
314 無線部
315 ベースバンド信号処理部
316 スピーカー
317 マイク
318 表示部
319 アンテナ
320 端末識別子記憶領域
400 端末装置
2 鍵究行システム
1100、 1101、 1102 鍵発行サ
1110 識別子格納部
1111 秘密鍵格納部
1112 公開鍵格納部
1113 証明書格納部
1114 制御部
1115 識別子生成部
1116 素数生成部
1117 鍵判定部
1118 鍵生成部
1119 情報取得部
1120 受信部
1121 送信部
1122 証明書生成部
1123 証明書用秘密鍵格納部
1124 発行済鍵情報格納部
1130 サーバ識別子記憶領域 1131 端末情報記憶領域
1200 鍵発行監査サーバ
1210 確認情報格納部
1211 発行済鍵情報格納部
1212 制御部
1213 発行公開鍵確認部
1214 受付部
1215 監査結果出力部
1216 受信部
1217 送信部
1220 サーバ情報記憶領域
1250 モニタ
1300、 1301、 1302、 1303、 1304、 1305、 1306 端末装置
1400 端末装置
2100 素数生成装置
2101 受付部
2102 受付情報記憶部
2103 素数シード生成部
2104 乱数生成部
2105 素数候補生成部
2106 素数判定部
2107 素数判定部
2200 素数生成装置
2201 受付部
2202 受付情報記憶部
2203 乱数生成部
2204 素数候補生成部
2205 素数判定部 2206 素数判定部
2300 素数生成装置
2301 受付部
2302 受付情報記憶部
2303 識別子素数生成部
2304 乱数生成部
2305 素数候補生成部
2306 素数判定部
2307 素数判定部
2400 素数生成装置
2401 受付部
2402 受付情報記憶部
2403 乱数生成部
2404 素数候補生成部
2405 素数判定部
2406 素数判定部
2500 素数生成装置
2501 受付部
2502 受付情報記憶部
2503 乱数生成部
2504 素数候補生成部
2505 素数判定部
2506 素数判定部
発明を実施するための最良の形態
1.第 1の実施の形態
本発明に係る第 1の実施の形態としての鍵発行システム 1について、説明する。 1. 1 鍵発行システム 1の概要
鍵発行システム 1は、図 1に示すように、鍵発行サーバ 100、 101、 102と、証明書 発行サーノ 200と、端末装置 300、 301、 · · ·、 302、 303、 · · ·、 304、 305、 · · ·、 3
06とから構成されている。端末装置の台数は、例えば 1000台である。
[0044] 鍵発行サーバ 100、 101及び 102は、それぞれ異なる会社にて管理されている。端 末装置 300、 301、 · · ·、 302は、鍵発行サーバ 100に対して、鍵の発行要求し、端 末装置 303、 · · ·、 304は、鍵発行サーバ 101に対して、鍵の発行要求し、端末装置 305、 · · ·、 306は、鍵発行サーバ 102に対して、鍵の発行要求をする。なお、端末 装置 300、 301、 · · ·、 302は、鍵発行サーバ 100との間には、安全な通信経路が確 立されているものとする。また、端末装置 303、 · · ·、 304と、鍵発行サーバ 101との 間、及び端末装置 305、 · · ·、 306と、鍵発行サーバ 102との間においても、同様に、 安全な通信経路が確立されて ヽるものとする。
[0045] また、鍵発行サーバ 100、 101、 102と、証明書発行サーバ 200との間においても、 同様に、安全な通信経路が確立されているものとする。
なお、以下においては、鍵発行サーバ 100、証明書発行サーバ 200、及び端末装 置 300を用いて、鍵発行システム 1の概要を説明する。
鍵発行サーバ 100は、端末装置 300より鍵の発行要求を受け取ると、 RSA暗号に おける秘密鍵及び公開鍵を生成し、証明書発行サーバ 200に対して、生成した公開 鍵に対する公開鍵証明書の発行要求をする。なお、ここで、生成する各鍵の鍵長は 、 1024ビットとする。
[0046] 証明書発行サーバ 200は、鍵発行サーバ 100より証明書の発行要求を受け取ると 、公開鍵証明書を発行して、発行した公開鍵証明書を鍵発行サーバ 100へ送信す る。
鍵発行サーバ 100は、証明書発行サーバ 200より公開鍵証明書を受け取ると、受 け取った公開鍵証明書と、生成した秘密鍵とを、端末装置 300へ送信する。
端末装置 300は、公開鍵証明書と、秘密鍵とを、鍵発行サーバ 100より受け取ると 、受け取った公開鍵証明書と、秘密鍵とを記憶する。
[0047] 以降、例えば、端末装置 400のユーザは、先ず、鍵発行サーバ 100より、端末装置 300の公開鍵証明書を入手、又は端末装置 300より公開鍵証明書を入手し、証明書 発行サーバ 200が有する公開鍵を用いて、公開鍵証明書の正当性を確認し、正当 な公開鍵証明書であると判断する場合に、入手した公開鍵証明書を、端末装置 400 にて記憶する。端末装置 400は、記憶している公開鍵証明書に含まれる公開鍵を用 いて、端末装置 300へ送信する電子メールを暗号ィ匕して、暗号化された電子メール を端末装置 300へ送信する。
[0048] 端末装置 300は、端末装置 400より暗号ィ匕された電子メールを受信すると、記憶し ている秘密鍵を用いて、暗号ィ匕された電子メールを復号して、復号された電子メール を表示する。
これにより、端末装置 300と端末装置 400との間では、安全にデータのやりとりがで さるようになる。
[0049] なお、端末装置 301、 · · ·、 302は、端末装置 300と同様であるため、説明は省略 する。また、鍵発行サーバ 101、及び 102は、鍵発行サーバ 100と同様であるため、 説明は省略する。
以降の説明において、各端末装置の代表として端末装置 300を、各鍵発行サーバ の代表として鍵発行サーバ 100を用いる。
[0050] 1. 2 鍵発行サーバ 100の構成
鍵発行サーバ 100は、図 2にて示すように、識別子格納部 110、秘密鍵格納部 11 1、公開鍵格納部 112、証明書格納部 113、制御部 114、識別子生成部 115、素数 生成部 116、鍵判定部 117、鍵生成部 118、情報取得部 119、受信部 120及び送 信部 121から構成されて 、る。
[0051] 鍵発行サーバ 100は、具体的には、マイクロプロセッサ、 ROM、 RAM,ハードディ スクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータ システムである。前記 RAM又は前記ハードディスクユニットには、コンピュータプログ ラムが記憶されている。前記マイクロプロセッサ力 前記コンピュータプログラムに従つ て動作することにより、鍵発行サーバ 100は、その機能を達成する。
[0052] なお、鍵発行サーバ 101、及び 102は、鍵発行サーバ 100と同様の構成であるた め、説明は省略する。
(1)識別子格納部 110
識別子格納部 110は、ビットサイズが 126ビット以下である発行識別子情報を記憶 するための領域を有している。発行識別子情報のビットサイズは、例えば、 64ビットで ある。
[0053] (2)秘密鍵格納部 111
秘密鍵格納部 111は、秘密鍵生成の際に用いられる 2つの素数を記憶するための 素数格納領域と、鍵生成部 118にて生成された秘密鍵を記憶するための秘密鍵格 納領域とを有している。
(3)公開鍵格納部 112
公開鍵格納部 112は、鍵生成部 118にて生成された公開鍵を記憶するための領 域を有している。
[0054] (4)証明書格納部 113
証明書格納部 113は、証明書発行サーバにて発行された公開鍵証明書を記憶す る領域を有している。
(5)制御部 114
制御部 114は、図 2に示すように、サーバ識別子記憶領域 130と、端末情報記憶領 域 131とを有している。
[0055] サーバ識別子記憶領域 130は、当該サーバを識別するサーバ識別子を予め記憶 している。例えば、鍵発行サーバ 100は、 SIDAを、鍵発行サーバ 101は、 SIDBを、 鍵発行サーバ 102は、 SIDCを記憶している。なお、以降では、鍵発行サーバ 100の サーバサーバ識別子を「SID」として説明する。ここでは、サーバ識別子のビットサイ ズを 31ビットとする。
[0056] 端末情報記憶領域 131は、鍵発行の要求のあった端末装置を識別する端末識別 子を記憶する領域を有している。ここで、端末識別子は、例えば、端末装置のシリア ル番号である。ここでは、シリアル番号のビットサイズを 32ビットする。
制御部 114は、端末装置 300から受信部 120を介して、鍵の発行要求を示す鍵発 行依頼情報と、端末装置 300の端末識別子「TID」とを受け取ると、受け取った端末 識別子「TID」を端末情報記憶領域 131へ書き込む。制御部 114は、発行識別子情 報の生成命令と、受け取った端末識別子「TID」とを識別子生成部 115へ出力する。
[0057] 制御部 114は、証明書発行サーバ 200から受信部 120を介して、公開鍵証明書「 Cert」を受け取ると、受け取った公開鍵証明書「Cert」を証明書格納部 113へ書き込 む。制御部 114は、秘密鍵及び公開鍵証明書を、鍵の発行要求のあった端末装置 3 00へ配布の処理を開始する配布開始命令を情報取得部 119へ出力する。
(6)識別子生成部 115
識別子生成部 115は、制御部 114から発行識別子情報の生成命令と、端末識別 子「TID」とを受け取ると、サーバ識別子記憶領域にて記憶されて 、るサーバ識別子 「SID」を取得する。
[0058] 識別子生成部 115は、取得したサーバ識別子「SID」と、受け取った端末識別子「T ID」と数「1」とから、発行識別子情報「IDI = SID I I TID | 」を生成する。ここで 、記号「 I I」はビットまたはバイト連結である。発行識別子情報「IDI」の最下位ビット を「1」とすることにより、発行識別子情報「IDI」は、常に奇数となり、そのビットサイズ は、 64ビットとなる。
[0059] 識別子生成部 115は、生成した発行識別子情報「IDI」を識別子格納部 110へ書き 込み、素数生成部 116へ、素数の生成開始命令を出力する。
(7)素数生成部 116
素数生成部 116は、図 3に示すように、繰返制御部 132及び素数情報生成部 133 とを有している。
[0060] 素数生成部 116は、 8ビットの素数から 512ビットの素数を生成し、生成した 512ビ ットの素数を鍵判定部 117へ出力する。
く繰返制御部 132 >
繰返制御部 132は、 8ビットからなる素数とその素数のビットサイズ (つまり「8」)とを 予め記憶している初期値記憶領域と、素数情報生成部 133から受け取った素数を一 時的に記憶する一時記憶領域とを有して 、る。
[0061] 繰返制御部 132は、図 3に示すように、素数情報生成部 133の動作の繰返回数を カウントする繰返カウンタ 135と、鍵判定部 117へ出力した素数の個数、つまり生成し た 512ビットの素数の出力回数をカウントする出力カウンタ 136とを有している。なお 、繰返カウンタ 135及び出力カウンタ 136の初期値は、それぞれ「1」である。
繰返制御部 132は、図 4に示す制御情報テーブル T100を有している。制御情報 テーブル T100は、回数と制御情報とからなる組を 1以上格納している。回数は、繰 返カウンタ 135の値に対応する。制御情報は、素数情報生成部 133にて生成する素 数の生成方法の種別を示す。
[0062] 繰返制御部 132は、識別子生成部 115から素数の生成開始命令を受け取ると、素 数情報生成部 133が素数を生成するよう制御する。素数情報生成部 133から素数を 受け取ると、繰返カウンタ 135及び出力カウンタ 136のそれぞれの値に基づいて、再 度、素数情報生成部 133へ素数生成の命令、及び受け取った素数を鍵判定部 117 へ出力の何れかを行う。
[0063] 以下に、その動作について説明する。
繰返制御部 132は、識別子生成部 115から素数の生成開始命令を受け取ると、繰 返カウンタ 135及び出力カウンタ 136を、それぞれ「1」に設定する。
繰返制御部 132は、素数情報生成部 133から、素数を受け取ると、繰返カウンタ 13 5の値に「1」を加算し、加算結果が、 7である力否かを判断する。
[0064] 加算結果が 7であると判断する場合には、繰返制御部 132は、出力カウンタ 136の 値力 1である力否かを判断する。 1であると判断する場合には、繰返制御部 132は、 受け取った素数を素数「pl」として、鍵判定部 117へ出力し、出力カウンタ 136の値 に「1」を加算し、繰返カウンタ 135の値に「1」を設定する。 1でない、つまり 2以上であ ると判断する場合には、繰返制御部 132は、受け取った素数を素数「p2」として、素 数「p2」と判定開始命令を鍵判定部 117へ出力する。
[0065] 加算結果が 7でないと判断する場合には、受け取った素数のビットサイズを算出し、 繰返制御部 132は、受け取った素数と、算出したビットサイズとを、一時記憶領域に 一時的に記憶する。
繰返制御部 132は、素数の生成開始命令を受け取り、繰返カウンタ 135及び出力 カウンタ 136のそれぞれの値に「1」を加算した後、素数情報生成部 133から受け取 つた素数とそのビットサイズとを一時的に記憶した後、及び出力カウンタ 136に「1」を 加算し、且つ繰返カウンタ 135の値を「1」に設定した後の何れかの場合において、 繰返制御部 132は、以下の動作を行う。
[0066] 繰返制御部 132は、繰返カウンタ 135の値が、 1であるか否かを判断する。 1である と判断する場合には、初期値記憶領域より 8ビットの素数とそのビットサイズを読み出 し、 1でないと判断する場合には、一時記憶領域よりビットサイズ「8 X (2' (11—1) )」と 、その素数とを読み出す。つまり、繰返制御部 132は、繰返カウンタ 135の値力 1で ないと判断する場合には、一時記憶領域より、直前に一時的に記憶した素数とその ビットサイズとを読み出す。ここで、「n」は、繰返カウンタの値である。これにより、繰返 制御部 132は、一時記憶領域より、前回生成した素数及びそのビットサイズを読み出 す。例えば、繰返カウンタ 135に値が「2」である場合には、繰返制御部 132は、「16」 ビットからなる素数を読み出し、繰返カウンタ 135に値が「3」である場合には、「31」ビ ットからなる素数を読み出す。つまり、繰返カウンタ 135の値が「2」から「6」までの間、 順に、「16」ビットからなる素数、「32」ビットからなる素数、「64」ビットからなる素数、「 128」ビットからなる素数、及び「256」ビットからなる素数を読み出すことになる。
[0067] 繰返カウンタ 135の値に対応する制御情報を制御情報テーブル T100より読み出 し、読み出した制御情報が、「情報 C」であるか否かを判断する。
「情報 C」であると判断する場合には、繰返制御部 132は、読み出した素数及びそ のビットサイズと、制御情報とからなる第 1情報を生成し、生成した第 1情報を、素数 情報生成部 133へ出力する。
[0068] 「情報 C」でないと判断する場合には、繰返制御部 132は、識別子格納部 110より 発行識別情報「IDI」を取得し、取得した発行識別子情報「IDI」のビットサイズ rienlD I」を算出し、読み出した素数及びそのビットサイズと、制御情報と、発行識別子情報「 IDI」及びそのビットサイズ「lenIDI」とからなる第 2情報を生成し、生成した第 2情報を 、素数情報生成部 133へ出力する。
[0069] また、繰返制御部 132は、鍵判定部 117より素数を再度生成する旨の再生成命令 を受け取ると、出力カウンタ 136の値に「1」を加算し、且つ繰返カウンタ 135の値を「 1」に設定し、繰返カウンタ 135の値力 1である力否かの判断を行う動作以降を行う。
<素数情報生成部 133 >
素数情報生成部 133は、図 5に示すように、情報制御部 140、乱数生成部 141、素 数候補生成部 142、第 1素数判定部 143及び第 2素数判定部 144から構成されてい る。 [0070] 素数情報生成部 133は、繰返制御部 132から受け取った素数のビットサイズが 2倍 のビットサイズからなる素数を生成する。例えば、 8ビットからなる素数を受け取った場 合には、 16ビットからなる素数を生成し、 16ビットからなる素数を受け取った場合に は、 32ビットからなる素数を生成する。
なお、以下の説明において、繰返制御部 132から受け取る素数を素数「q」、そのビ ットサイズを「lenq」として、各構成要素について説明する。
[0071] <情報制御部 140 >
情報制御部 140は、第 1情報及び第 2情報を記憶するための情報記憶領域を有し ている。
情報制御部 140は、証明書発行サーバ 200により割り当てられ、且つ制御情報「情 報 A」に基づいて素数を生成する際に用いる第 1検証値「cl l」及び第 2検証値「cl2 」を予め記憶して 、る検証値記憶領域を有して 、る。
[0072] 情報制御部 140は、繰返制御部 132から、素数「q」と、素数のビットサイズ「lenq」と 、制御情報とからなる第 1情報を受け取ると、受け取った第 1情報を情報記憶領域へ 書き込む。つまり、素数「q」と、素数のビットサイズ「lenq」と、制御情報 (この場合、「 情報 C」)とを書き込む。
情報制御部 140は、繰返制御部 132から、素数「q」と、素数のビットサイズ「lenq」と 、制御情報と、発行識別子情報「IDI」と、そのビットサイズ「lenIDI」とからなる第 2情 報を受け取ると、受け取った第 2情報を情報記憶領域へ書き込む。つまり、素数「q」と 、素数のビットサイズ「lenq」と、制御情報、発行識別子情報「IDI」と、そのビットサイ ズ「lenIDI」とを書き込む。
[0073] 情報制御部 140は、受け取った情報の書き込み後、乱数の生成の指示を示す第 1 生成指示を、乱数生成部 141へ出力する。
情報制御部 140は、第 2素数判定部 144より、素数を受け取ると、受け取った素数 を繰返制御部 132へ出力する。
情報制御部 140は、素数候補生成部 142から出力カウンタ 136の値を読み出す旨 の回数読出命令を受け取ると、繰返制御部 132の出力カウンタ 136の値を読み出す 。情報制御部 140は、読み出した値を、素数候補生成部 142へ出力する。 [0074] <乱数生成部 141 >
乱数生成部 141は、乱数の生成の指示を示す第 1生成指示を、情報制御部 140か ら受け取ると、情報制御部 140の情報記憶領域にて記憶されて 、る制御情報を読み 出す。乱数生成部 141は、読み出した制御情報力 ^情報 C」である力否かを判断する
「情報 C」であると判断する場合には、乱数生成部 141は、情報制御部 140の情報 記憶領域にて記憶されて 、る rienqjを読み出し、(lenq— 1)ビットからなる乱数「R1」 を生成し、生成した乱数「R1」と読み出した制御情報とを素数候補生成部 142へ出 力する。ここで、乱数「R1」の最上位ビットは 1とする。乱数生成方法は、非特許文献 2が詳しい。
[0075] 「情報 C」でないと判断する場合には、乱数生成部 141は、情報制御部 140の情報 記憶領域にて記憶されて 、る rienqj及び「lenIDI」を読み出し、 (lenq-lenIDI-1) ビットからなる乱数「R1」を生成し、生成した乱数「R1」と読み出した制御情報とを素 数候補生成部 142へ出力する。ここで、乱数「R1」の最上位ビットは 1とする。
[0076] また、乱数生成部 141は、第 1素数判定部 143及び第 2素数判定部 144の何れか から、再度乱数を生成する旨の第 2生成指示を受け付けると、制御情報を情報記憶 領域より読み出し、上記の動作を行う。
<素数候補生成部 142 >
素数候補生成部 142は、生成された情報を記憶する生成情報記憶領域と、単射で ある関数「f」を予め記憶している関数記憶領域とを有している。ここで、関数「f」は、 例えば、 f (X I I Y) =Enc (K、 X I I Y)である。 Enc (K、 X | | Y)は鍵 Xを用いた ときの (X I I Y)の共通鍵暗号による暗号文である。共通鍵暗号の暗号化関数は一 般的に全単射である。また、記号「 I I」はビットまたはバイト連結である。暗号化関 数「Enc (K、X I I Y)」の一例は、「Enc (K、X | | Y) =K XOR X | | Υ」である 。なお、共通暗号の一例は、 DESであり、 DESを用いる場合には、鍵長は 128ビット となる。このとき、素数候補生成部 142は、所定の鍵「Κ」を記憶している。
[0077] 素数候補生成部 142は、乱数生成部 141より、乱数「R1」と制御情報とを受け取る と、受け取った制御情報が「情報 C」である力否かの判断をする。 「情報 C」であると判断する場合には、素数候補生成部 142は、情報制御部 140の 情報記憶領域より素数「q」を読み出す。素数候補生成部 142は、読み出した素数「q 」と乱数生成部 141より受け取った乱数「R1」とを用いて、数「N = 2 XRl X q+ l」を 生成する。このとき生成した数「N」が素数候補となる。
[0078] 素数候補生成部 142は、生成した数「N」のビットサイズ「lenN」が「lenq」と一致す るカゝ否かを判断し、一致すると判断する場合には、素数候補生成部 142は、生成し た数「N」を第 1素数判定部 143へ出力し、受け取った乱数「R1」を、「R」として生成 情報記憶領域に記憶する。
一致しないと判断する場合には、素数候補生成部 142は、乱数生成部 141より受 け取った乱数「R1」に 2を掛けて、その結果を「R1」として、再度、上記の動作を行い 、数「N = 2 XRl X q+ l」を生成する。
[0079] 制御情報力 ^情報 C」でないと判断する場合には、素数候補生成部 142は、情報制 御部 140の情報記憶領域より素数「q」及び発行識別子情報「IDI」を読み出す。素数 候補生成部 142は、制御情報が「情報 B」であるか否かを判断する。
「情報 B」であると判断する場合には、素数候補生成部 142は、受け取った乱数「R 1」と読み出した発行識別子情報「IDI」とから、結合値「IDI I I Rl」を生成し、生成 した結合値「IDI I I Rl」と関数記憶領域にて記憶している関数「f」とを用いて、数「 R=f (lDI I I Rl)」を生成する。素数候補生成部 142は、生成した数「R」と読み出 した素数「q」とを用いて、数「N = 2 XRX q+ l」を生成する。このとき生成した数「N」 が素数候補となる。
[0080] 素数候補生成部 142は、生成した数「N」のビットサイズ「lenN」が「2 X lenqjである か否かを判断する。
「2 X lenq」であると判断する場合には、素数候補生成部 142は、生成した数「N」を 第 1素数判定部 143へ出力し、生成した数「R」を生成情報記憶領域に記憶する。
[0081] 「2 X lenq」でないと判断する場合には、素数候補生成部 142は、乱数生成部 141 より受け取った乱数「R1」に 2を掛けて、その結果を「R1」として、再度、数「R」及び「 N」を生成する。
「情報 B」でないと判断する場合には、素数候補生成部 142は、受け取った乱数「R 1」と読み出した発行識別子情報「IDI」とを用いて、数「R = IDIXR1」を生成する。 素数候補生成部 142は、回数読出命令を情報制御部 140へ出力し、情報制御部 14 0から、出力カウンタ 136の値を受け取る。素数候補生成部 142は、出力カウンタ 13 6の値が「1」であるか否かを判断する。
[0082] 出力回数力「l」であると判断する場合には、素数候補生成部 142は、情報制御部 140の検証値記憶領域より第 1検証値「c 11」を読み出す。
出力回数が「1」でない、つまり「2」以上であると判断する場合には、素数候補生成 部 142は、情報制御部 140の検証値記憶領域より第 2検証値「c 12」を読み出す。 なお、第 1検証値「cll」を読み出した場合の動作と、第 2検証値「cl2」を読み出し た場合の動作とは、同じであるため、以下においては、検証値「c」として説明する。
[0083] 素数候補生成部 142は、読み出した素数「q」、発行識別子情報「IDI」、検証値「c」 及び生成した数「R」とを用いて、数「N = 2X (R+w) Xq+1」を生成する。このとき 生成した数「N」が素数候補となる。
ここで、「w」は「2XwXq+l = c mod IDI、 0≤w<IDI」を満たす数である。「w」 は、「w=(c— l) Xm mod IDI」を計算することにより求める。「n^¾「(2Xq) Xm =1 mod IDI」を満たす数である。上述したように、発行識別子情報「IDI」が奇数、 すなわち、「GCD(IDI、 2)=1」であり、「IDI<q」であるため、「m」は計算可能であ る。計算方法については、非特許文献 5が詳しい。なお、以降において、第 1検証値 「cl 1」を用いた場合の「w」を「wl」と表記、及び第 2検証値を用いた場合の「w」を「 w2jと表記する。
[0084] 素数候補生成部 142は、素数「q」のビットサイズ「lenq」を、情報制御部 140の情報 記憶領域より読み出し、生成した数「N」のビットサイズが「2 X lenqjであるか否かを 判断する。
「2Xlenq」であると判断する場合には、素数候補生成部 142は、生成した数「N」を 第 1素数判定部 143へ出力し、生成した数「R」を生成情報記憶領域に記憶する。
[0085] 「2Xlenq」でないと判断する場合には、素数候補生成部 142は、乱数生成部 141 より受け取った乱数「R1」に 2を掛けて、その結果を「R1」として、再度、数「R」及び「 N」を生成する。 く第 1素数判定部 143 >
第 1素数判定部 143は、数「N」を素数候補生成部 142より受け取ると、受け取った 数「N」を用いて、以下の式の成立を判定する。
[0086] 2" (N-1) = 1 mod N (eql)
ここで、 2' (N— 1)は、 2の N—1乗を示している。
第 1素数判定部 143は、式 (eql)が成立していると判断する場合には、数「N」を第 2素数判定部 144へ出力する。
第 1素数判定部 143は、式 (eql)が成立していないと判断する場合には、乱数生 成部 141へ第 2生成指示を出力する。
[0087] <第 2素数判定部 144 >
第 2素数判定部 144は、数「N」を第 1素数判定部 143より受け取ると、素数候補生 成部 142の生成情報記憶領域にて記憶されている数「R」を読み出す。
第 2素数判定部 144は、数「N」及び「R」とを用いて、以下の式の成立を判定する。
[0088] 2" (2 XR) ≠ 1 mod N (eq2)
第 2素数判定部 144は、式 (eq2)が成立していると判断する場合には、数「N」を素 数「N」として、情報制御部 140を介して、繰返制御部 132へ出力する。
第 2素数判定部 144は、式 (eq2)が成立していないと判断する場合には、乱数生 成部 141へ第 2生成指示を出力する。
[0089] (8)鍵判定部 117
鍵判定部 117は、素数生成部 116より受け取った 2つの素数「pl」及び「p2」を、記 憶する素数記憶領域を有する。
鍵判定部 117は、素数生成部 116より素数「pl」及び「p2」を受け取ると、受け取つ た素数「p 1」及び「p2」をそれぞれ素数記憶領域へ記憶する。
[0090] 鍵判定部 117は、素数生成部 116より判定開始命令を受け取ると、素数記憶領域 にて記憶して 、る 2つの素数「pl」と「p2」とが一致するか否かを判断する。一致する と判断する場合には、記憶している素数「p2」を消去し、再生成命令を繰返制御部 1 32へ出力する。
一致しないと判断する場合には、記憶している 2つの素数「pl」及び「p2」を、秘密 鍵格納部 111の素数格納領域へ書き込み、鍵生成開始命令を鍵生成部 118へ出 力する。
[0091] (9)鍵生成部 118
鍵生成部 118は、鍵判定部 117より鍵生成命令を受け取ると、秘密鍵格納部 111 の素数格納領域にて記憶されている 2つの素数「pl」及び「p2」を読み出し、読み出 した素数「pl」と「p2」との積「n=pl X p2」を計算する。
鍵生成部 118は、乱数「e」を生成し、算出した「n」と、生成した乱数「e」とからなる 組「PK= (n、 e)」を公開鍵として生成し、生成した公開鍵「PK」を公開鍵格納部 112 へ書き込む。ここで、乱数「e」は、従来と同様に、乱数「e」は、数「L」と互いに素であ り、「l≤e≤L— 1、 GCD (e、 L) = 1」を満たす。ここで、 GCD (e、 L)は、 eと Lの最大 公約数を示し、数「L」は、「L=LCM (pl— 1、 p2— 1)」であり、 LCM (pl— 1、 p2— 1) は、「pl— 1」と「p2— 1」との最小公倍数を示す。
[0092] 鍵生成部 118は、「e X d= l mod L」を満たす「d」を算出し、算出した「d」と、素 数「pl」及び「p2」と力 なる組「SK= (pl、 p2、 d)」を秘密鍵として、秘密鍵格納部 1 11の秘密鍵格納領域へ書き込む。鍵生成部 118は、公開鍵証明書の要求処理を開 始する要求開始命令を、情報取得部 119へ出力する。
(10)情報取得部 119
情報取得部 119は、鍵生成部 118から要求開始命令を受け取ると、識別子格納部 110から発行識別子情報「IDI」と、公開鍵格納部 112から公開鍵「PK」と、制御部 1 14のサーバ識別子記憶領域 130からサーバ識別子とを、それぞれ読み出す。情報 取得部 119は、読み出した発行識別子情報「IDI」と、公開鍵「PK」と、サーバ識別子 と、公開鍵証明書の発行を依頼する証明書発行依頼情報とを送信部 121を介して、 証明書発行サーバ 200へ送信する。
[0093] 情報取得部 119は、制御部 114から配布開始命令を受け取ると、秘密鍵格納部 11 1にて記憶している秘密鍵「SK」と、証明書格納部 113にて記憶している公開鍵証明 書「Cert」と、制御部 114の端末情報記憶領域にて記憶している端末識別子とを、そ れぞれ読み出し、読み出した秘密鍵「SK」及び公開鍵証明書「Cert」を、読み出した 端末識別子に対応する端末装置 300へ送信部 121を介して送信する。 [0094] (11)受信部 120
受信部 120は、インターネットを介して、証明書発行サーバ 200及び端末装置 300 より情報を受信し、受信した情報を、制御部 114へ出力する。
(12)送信部 121
送信部 121は、情報取得部 119より、発行識別子情報「IDI」と、公開鍵「PK」と、サ ーバ識別子と、証明書発行依頼情報とを受け取ると、受け取った各情報を証明書発 行サーバ 200へ送信する。
[0095] 送信部 121は、情報取得部 119より、秘密鍵「SK」及び公開鍵証明書「Cert」を受 け取り、受け取った各情報を、端末装置 300に送信する。
1. 3 証明書発行サーバ 200の構成
証明書発行サーバ 200は、鍵発行サーバ 100、 101、及び 102から証明書発行依 頼情報を受け取ると、公開鍵証明書を発行し、発行した公開鍵証明書を発行依頼の あった鍵発行サーバへ送信する。
[0096] 証明書発行サーバ 200は、図 6にて示すように、秘密鍵格納部 210、発行公開鍵 格納部 211、発行識別子情報格納部 212、公開鍵証明書格納部 213、発行公開鍵 確認部 214、公開鍵証明書生成部 215、証明書取得部 216、受信部 217及び送信 部 218から構成されている。
証明書発行サーバ 200は、具体的には、マイクロプロセッサ、 ROM、 RAM,ハー ドディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンビ ユータシステムである。前記 RAM又は前記ハードディスクユニットには、コンピュータ プログラムが記憶されている。前記マイクロプロセッサ力 前記コンピュータプログラム に従って動作することにより、証明書発行サーバ 200は、その機能を達成する。
[0097] なお、鍵発行サーバ 100から証明書発行依頼情報を受け取った場合の動作と、他 の鍵発行サーノから証明書発行依頼情報を受け取った場合の動作とは、同じである ため、以降の説明では、鍵発行サーバ 100から送信された証明書発行依頼情報を 用いて説明する。
(1)秘密鍵格納部 210
秘密鍵格納部 210は、証明書発行サーバ 200のみが有する秘密鍵「SKCA」を予 め記憶している。
[0098] ここで、秘密鍵「SKCA」に対応する公開鍵「PKCA」は、端末装置 400に配布され ているものとする。
(2)発行公開鍵格納部 211
発行公開鍵格納部 211は、鍵発行サーバ 100より受け取った公開鍵「PK」を記憶 する領域を有している。
[0099] (3)発行識別子情報格納部 212
発行識別子情報格納部 212は、鍵発行サーバ 100より受け取った発行識別子情 報「IDI」を記憶する領域を有して!/、る。
(4)公開鍵証明書格納部 213
公開鍵証明書格納部 213は、発行した公開鍵証明書「Cert」を記憶する領域を有 している。
[0100] (5)発行公開鍵確認部 214
発行公開鍵確認部 214は、図 6に示すように、サーバ情報記憶領域 220及び確認 情報記憶領域 221を有して 、る。
サーバ情報記憶領域 220は、公開鍵証明書の発行依頼のあった鍵発行サーバを 識別するサーバ識別子を記憶する領域を有して 、る。
[0101] 確認情報記憶領域 221は、図 7に示すように、検証値テーブル T200を有している 。検証値テーブル T200は、サーバ識別子と、第 1検証値と、第 2検証値とからなる組 を 1以上記憶する領域を有している。サーバ識別子は、鍵発行サーバを識別する識 別子であり、「SIDA」は、鍵発行サーバ 100を示し、「SIDB」は、鍵発行サーバ 101 を示し、「SIDB」は、鍵発行サーバ 102を示す。第 1検証値及び第 2検証値は、対応 付けられたサーバ識別子にて示される鍵発行サーバに割り当てた検証値である。な お、以降では、鍵発行サーバ 100のサーバ識別子を「SID」として説明する。
[0102] 発行公開鍵確認部 214は、鍵発行サーバ 100から受信部 217を介して、発行識別 子情報「IDI」と、公開鍵「PK」と、サーバ識別子と、証明書発行依頼情報とを受け取 る。
発行公開鍵確認部 214は、受け取ったサーバ識別子を、サーバ情報記憶領域 22 0に書き込む。
[0103] 発行公開鍵確認部 214は、受け取ったサーバ識別子を用いて、対応する第 1検証 値「c 11」及び第 2検証値「c 12」を読み出す。
発行公開鍵確認部 214は、受け取った公開鍵「PK」と発行識別子情報「IDI」とを 用いて、公開鍵「PK」が、発行識別子情報「IDI」を用いて生成されたカゝ否かを確認 する。
[0104] ここで、確認方法について、説明する。公開鍵「PK」は、上述したように「ΡΚ= (η、 e)」である。発行公開鍵確認部 214は、「n— (cl l X cl2)」を算出し、算出結果力 「I DI」で割り切れるか否かを検証する。これにより、公開鍵「PK」が、発行識別子情報「I DIJを用いて生成された力否かを確認することができる。
発行公開鍵確認部 214は、「η— (cl l X cl2)」が、「IDI」で割り切れると判断する 場合には、公開鍵「PK」が、発行識別子情報「IDI」を用いて生成されたと判断し、 Γη — (cl l X cl2)」が、「IDI」で割り切れないと判断する場合には、公開鍵「PK」が、発 行識別子情報「IDI」を用いて生成されて 、な 、と判断する。
[0105] 発行公開鍵確認部 214は、公開鍵「PK」が、発行識別子情報「IDI」を用いて生成 されたと判断する場合には、受け取った公開鍵「PK」を発行公開鍵格納部 211へ、 発行識別子情報を発行識別子情報格納部 212へ、それぞれ書き込む。発行公開鍵 確認部 214は、公開鍵証明書の生成開始命令を公開鍵証明書生成部 215へ出力 する。
発行公開鍵確認部 214は、公開鍵「ΡΚ」が、発行識別子情報「IDI」を用いて生成 されていないと判断する場合には、処理を終了する。
[0106] (6)公開鍵証明書生成部 215
公開鍵証明書生成部 215は、発行公開鍵確認部 214より、公開鍵証明書の生成 開始命令を受け取ると、秘密鍵格納部 210より秘密鍵「SKCA」を、発行公開鍵格納 部 211より公開鍵「PK」を、発行識別子情報格納部 212より発行識別子情報「IDI」 を、それぞれ読み出す。
[0107] 公開鍵証明書生成部 215は、読み出した秘密鍵「SKCA」、公開鍵「PK」及び発 行識別子情報「IDI」を用いて、公開鍵証明書「 」を生成する。生成する公開鍵 証明書「Cert」は、具体的には、「Cert=n | | e | | IDI | | Sig (SKCA、 n | | e I I IDI)」である。ここで、 Sig (K、 D)は、データ「D」に対して、秘密鍵「K」を用いた ときの署名データである。記号「 I I」は、ビットまたはバイトの連結である。
[0108] 公開鍵証明書生成部 215は、生成した公開鍵証明書「Cert」を公開鍵証明書格納 部 213へ書き込み、公開鍵証明書「Cert」の送信開始命令を証明書取得部 216へ 出力する。
(7)証明書取得部 216
証明書取得部 216は、公開鍵証明書生成部 215より、公開鍵証明書「Cert」の送 信開始命令を受け取ると、公開鍵証明書格納部 213から公開鍵証明書「Cert」を、 サーバ情報記憶領域 220からサーバ識別子を、それぞれ読み出し、読み出した公開 鍵証明書「Cert」を、読み出したサーバ識別子に対応する鍵発行サーバ 100へ送信 部 218を介して送信する。
[0109] (8)受信部 217
受信部 217は、鍵発行サーバ 100より情報を受信し、受信した情報を、発行公開鍵 確認部 214へ出力する。
(9)送信部 218
送信部 218は、証明書取得部 216より情報を受け取り、受け取った情報を鍵発行 サーバ 100へ送信する。
[0110] 1. 4 端末装置 300の構成
端末装置 300は、図 8にて示すように、秘密鍵格納部 310、公開鍵証明書格納部 3 11、制御部 312、受付部 313、無線部 314、ベースバンド信号処理部 315、スピーカ 一 316、マイク 317及び表示部 318から構成されている。端末装置 300の一例は、携 帯電話機である。
[0111] 端末装置 300は、具体的には、マイクロプロセッサ、 ROM, RAM,ハードディスク ユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシ ステムである。前記 RAM又は前記ハードディスクユニットには、コンピュータプロダラ ムが記憶されている。前記マイクロプロセッサ力 前記コンピュータプログラムに従つ て動作することにより、端末装置 300は、その機能を達成する。 [0112] なお、端末装置 301、 · · ·、 302、 303、 · ·、 304、 305、 · · ·、 306は、端末装置 30 0と同様の構成であるため、説明は省略する。
また、端末装置 301、 · · ·、 302から鍵発行依頼情報と、端末識別子とを、鍵発行サ ーバ 100へ送信した場合、端末装置 303、 · · ·、 304から鍵発行依頼情報と、端末識 別子とを、鍵発行サーバ 101へ送信した場合、及び端末装置 305、 · · ·、 306から鍵 発行依頼情報と、端末識別子とを、鍵発行サーバ 102へ送信した場合の動作は、端 末装置 300から鍵発行依頼情報と、端末識別子とを、鍵発行サーバ 100へ送信した 場合の動作と同じであるため、以降の説明では、鍵発行依頼情報と、端末識別子と を、鍵発行サーバ 100へ送信した場合の動作について説明する。
[0113] (1)秘密鍵格納部 310
秘密鍵格納部 310は、鍵発行依頼情報を送信した鍵発行サーバ、ここでは、鍵発 行サーバ 100にて発行された秘密鍵「SK= (pl、 p2、 d)」を記憶する領域を有して いる。
(2)公開鍵証明書格納部 311
公開鍵証明書格納部 311は、鍵発行サーバ 100にて発行された秘密鍵に対応す る公開鍵の公開鍵証明書「Cert」を記憶する領域を有して!/ヽる。
[0114] (3)制御部 312
制御部 312は、図 8にて示すように、端末識別子記憶領域 320を有している。
制御部 312は、暗号ィ匕された電子メールを記憶するメール記憶領域をも有して!/、る 端末識別子記憶領域 320は、当該装置を識別する端末識別子「TID」を予め記憶 している。
[0115] 制御部 312は、受付部 313より鍵発行要求の指示を受け付けると、端末識別子記 憶領域 320から端末識別子「TID」を読み出す。
制御部 312は、鍵発行依頼情報と、読み出した端末識別子「TID」とを、鍵発行サ ーバ 100へ、ベースバンド信号処理部 315及び無線部 314を介して送信する。 制御部 312は、鍵発行サーバ 100より、無線部 314及びベースバンド信号処理部 3 15を介して、秘密鍵「SK」及び公開鍵証明書「Cert」を受け取ると、受け取った秘密 鍵「SK」を秘密鍵格納部 310へ、公開鍵証明書「Cert」を公開鍵証明書格納部 311 へ、それぞれ書き込む。
[0116] 制御部 312は、端末装置 400より、無線部 314及びベースバンド信号処理部 315 を介して、暗号ィ匕された電子メールを受け取ると、受け取った暗号化された電子メー ルをメール記憶領域へ書き込む。
制御部 312は、受付部 313より、暗号ィ匕された電子メールの表示命令を受け取ると 、秘密鍵格納部 310より秘密鍵「SK」を、メール記憶領域より暗号ィ匕された電子メー ルを、それぞれ読み出し、読み出した秘密鍵「SK」を用いて、暗号化された電子メー ルを復号し、復号された電子メール (以下、単に「電子メール」という。)を表示部 318 へ出力する。
[0117] (4)受付部 313
受付部 313は、ユーザの操作により、鍵発行要求の指示を受け付けると、受け付け た指示を制御部 312へ出力する。
受付部 313は、ユーザの操作により、暗号化された電子メールの表示の指示を受 け付けると、表示命令を制御部 312へ出力する。
[0118] (5)無線部 314
無線部 314は、アンテナ 319を備えており、無線信号の送受信を行う。
(6)ベースバンド信号処理部 315
ベースバンド信号処理部 315は、無線部 314より受け取った信号をスピーカー 316 へ出力するための信号処理や、マイク 317より受け取った音声を無線部 314へ出力 するための信号処理を行う。
[0119] ベースバンド信号処理部 315は、制御部 312から鍵発行依頼情報及び端末識別 子を受け取ると、受け取った力ゝら鍵発行依頼情報及び端末識別子を、無線部 314を 介して鍵発行サーバ 100へ送信する。
ベースバンド信号処理部 315は、鍵発行サーバ 100から秘密鍵及び公開鍵証明 書とを、無線部 314を介して受け取ると、受け取った秘密鍵及び公開鍵証明書を制 御部 312へ出力する。
[0120] ベースバンド信号処理部 315は、鍵発行サーバ 100から秘密鍵及び公開鍵証明 書とを、無線部 314を介して受け取ると、受け取った秘密鍵及び公開鍵証明書を制 御部 312へ出力する。
ベースバンド信号処理部 315は、端末装置 400から暗号ィ匕された電子メールを、無 線部 314を介して受け取ると、受け取った暗号ィ匕された電子メールを制御部 312へ 出力する。
[0121] (7)スピーカー 316
スピーカー 316は、ベースバンド信号処理部 315にて処理された信号を音声として 出力する。
(8)マイク 317
マイク 317は、使用者の音声を受け付け、受け付けた音声をベースバンド信号処理 部 315へ出力する。
[0122] (9)表示部 318
表示部 318は、制御部 312より受け取った電子メールを表示する。
1. 5 鍵発行システム 1の動作
ここでは、鍵発行システム 1の動作について説明する。
(1)鍵発行システム 1の動作概要
鍵発行システム 1の動作概要を図 9に示す流れ図を用いて、説明する。
[0123] 以下では、鍵発行サーバ 100が端末装置 300に鍵を発行するときの動作概要を示 す。
端末装置 300は、まず、鍵依頼処理にて、鍵発行依頼情報及び端末識別子「TID 」を鍵発行サーバ 100へ送信する (ステップ S5)。
鍵発行サーバ 100は、端末装置 300より鍵発行依頼情報及び端末識別子「TID」 を受信すると、鍵発行処理にて、発行識別子情報「IDI」、秘密鍵「SK= (pl、 p2、 d )」及び公開鍵「PK= (n、 e)」を生成する。鍵発行サーバ 100は、生成した発行識別 子情報「IDI」及び公開鍵「PK」と、証明書発行依頼情報と、サーバ識別子「SID」と を、証明書発行サーバ 200へ送信する (ステップ S10)。
[0124] 証明書発行サーバ 200は、発行識別子情報「IDI」及び公開鍵「PK」と、証明書発 行依頼情報と、サーバ識別子「SID」とを受信すると、証明書発行処理にて、公開鍵「 PK」に対応する秘密鍵「SK」に含まれる素数「pl」、「p2」が発行識別子情報「IDI」 を用いて生成されているかを判定し、判定結果が肯定的な場合に、公開鍵「PK」に 対する公開鍵証明書「 」を生成する。証明書発行サーバ 200は、生成した公開 鍵証明書「Cert」を鍵発行サーバ 100へ送信する (ステップ S 15)。
[0125] 鍵発行サーバ 100は、鍵発行処理にて、証明書発行サーバ 200から公開鍵証明 書「じ を受信すると、秘密鍵「SK= (pl、 p2、 d)」と公開鍵証明書「 」を端末 装置 300へ送信する (ステップ S 20)。
端末装置 300は、鍵依頼処理にて、鍵発行サーバ 100から秘密鍵「SK」と公開鍵 証明書「Cert」とを受信すると、受信した秘密鍵「SK」、公開鍵証明書「Cert」を格納 し、システムを終了する。
[0126] (2)鍵依頼処理
ここでは、図 9に示す鍵依頼処理の動作について、図 10に示す流れ図を用いて、 説明する。なお、ここでは、端末装置 300及び鍵発行サーバ 100を用いて、鍵依頼 処理の動作を説明する。
端末装置 300の受付部 313は、ユーザの操作により、鍵発行要求の指示を受け付 ける(ステップ S 100)。
[0127] 端末装置 300の制御部 312は、端末識別子記憶領域 320から端末識別子「TID」 を取得する(ステップ S 105)。
端末装置 300の制御部 312は、鍵発行依頼情報と、取得した端末識別子「TID」と を、鍵発行サーバ 100へ、ベースバンド信号処理部 315及び無線部 314を介して送 信する (ステップ S 110)。
[0128] 端末装置 300の制御部 312は、鍵発行サーバ 100より、無線部 314及びベースバ ンド信号処理部 315を介して、秘密鍵「SK」及び公開鍵証明書「Cert」を受け取る( ステップ S 115)。
制御部 312は、受け取った秘密鍵「SK」を秘密鍵格納部 310へ書き込み (ステップ S120)、公開鍵証明書「Cert」を公開鍵証明書格納部 311へ書き込む (ステップ S1 25)。
[0129] (3)鍵発行処理 ここでは、図 9に示す鍵発行処理の動作について、図 11、図 12、図 13及び図 13 に示す流れ図を用いて、説明する。
鍵発行サーバ 100の制御部 114は、端末装置 300から受信部 120を介して、鍵発 行依頼情報と、端末装置 300の端末識別子「TID」とを受け取ると (ステップ S200)、 受け取った端末識別子「TID」を端末情報記憶領域 131へ書き込み、発行識別子情 報の生成命令と、受け取った端末識別子「TID」とを識別子生成部 115へ出力する( ステップ S205)。
[0130] 識別子生成部 115は、制御部 114から発行識別子情報の生成命令と、端末識別 子「TID」とを受け取ると、サーバ識別子記憶領域にて記憶されて 、るサーバ識別子 「SID」を取得する。識別子生成部 115は、取得したサーバ識別子「SID」と、受け取 つた端末識別子「TID」と数「1」とから、発行識別子情報「IDI」を生成し、生成した発 行識別子情報「IDI」を識別子格納部 110へ書き込み、素数の生成命令を素数生成 部 116へ出力する (ステップ S210)。
[0131] 繰返制御部 132は、識別子生成部 115から素数の生成開始命令を受け取ると、繰 返カウンタ 135及び出力カウンタ 136を、それぞれ「1」に設定する (ステップ S215)。 繰返制御部 132は、繰返カウンタ 135の値力 1である力否かを判断する (ステップ S220)。
[0132] 1であると判断する場合には (ステップ S220における「YES」)、繰返制御部 132は 、初期値記憶領域より素数とそのビットサイズを読み出し (ステップ S225)、 1でないと 判断する場合には (ステップ S220における「NO」 )、一時記憶領域よりビットサイズ「 8 X (2" (11—1) )」と、その素数、つまり前回生成した素数とそのビットサイズとを読み 出す (ステップ S230)。つまり、繰返制御部 132は、繰返カウンタ 135の値力 1でな いと判断する場合には、一時記憶領域より、前回生成した素数とそのビットサイズとを 読み出す。ここで、「n」は、繰返カウンタの値である。
[0133] 繰返カウンタ 135の値に対応する制御情報を制御情報テーブル T100より読み出 し (ステップ S235)、読み出した制御情報力 「情報 C」である力否かを判断する (ステ ップ S 240)。
「情報 C」であると判断する場合には (ステップ S 240における「YES」 )、繰返制御部 132は、読み出した素数及びそのビットサイズと、制御情報とからなる第 1情報を生成 し、生成した第 1情報を、素数情報生成部 133へ出力する (ステップ S245)。
[0134] 「情報 C」でな 、と判断する場合には (ステップ S 240における「NO」 )、繰返制御部 132は、識別子格納部 110より発行識別子情報「IDI」を取得し、取得した発行識別 子情報「IDI」のビットサイズ「lenIDI」を算出し、読み出した素数及びそのビットサイズ と、制御情報と、発行識別子情報「IDI」及びそのビットサイズ「lenIDI」とからなる第 2 情報を生成し、生成した第 2情報を、素数情報生成部 133へ出力する (ステップ S25 0)。
[0135] 素数情報生成部 133は、素数生成処理により素数を生成し、生成した素数を繰返 制御部 132へ出力する (ステップ S 255)。
繰返制御部 132は、素数情報生成部 133から、素数を受け取ると、繰返カウンタ 13 5の値に「1」を加算し (ステップ S260)、加算結果力 7である力否かを判断する (ス テツプ S 265)。
[0136] 加算結果が 7でないと判断する場合には (ステップ S265における「NO」)、繰返制 御部 132は、受け取った素数のビットサイズを算出し (ステップ S270)、受け取った素 数と、算出したビットサイズとを一時的に記憶し (ステップ S275)、ステップ S220へ戻 る。
加算結果が 7であると判断する場合には (ステップ S265における「YES」)、繰返制 御部 132は、出力カウンタ 136の値が、 1である力否かを判断する(ステップ S280)。
[0137] 1であると判断する場合には (ステップ S280における「YES」)、繰返制御部 132は
、受け取った素数を素数「pl」として、鍵判定部 117へ出力し (ステップ S285)、出力 カウンタ 136の値に「1」を加算し (ステップ S290)、繰返カウンタ 135の値に「1」を設 定し (ステップ S295)、ステップ S220へ戻る。
1でない、つまり 2以上であると判断する場合には (ステップ SNOにおける「NO」)、 繰返制御部 132は、受け取った素数を素数「p2」として、素数「p2」と判定開始命令 を鍵判定部 117へ出力する (ステップ S300)。
[0138] 鍵判定部 117は、ステップ S285にて繰返制御部 132より素数「pl」を受け取ると、 受け取った素数「pl」を素数記憶領域へ記憶する。鍵判定部 117は、ステップ S300 にて繰返制御部 132より「p2」及び判定開始命令とを受け取ると、受け取った素数「p 2」を素数記憶領域へ記憶する。鍵判定部 117は、素数記憶領域にて記憶している 2 つの素数「pl」と「p2」とが一致する力否かを判断する (ステップ S305)。一致すると 判断する場合には、記憶している素数「p2」を消去し、再生成命令を繰返制御部 13 2へ出力し (ステップ S305における「YES」)、繰返制御部 132は、鍵判定部 117より 素数を再度生成する旨の再生成命令を受け取ると、上述したステップ S290及びステ ップ S295を行い、ステップ S220へ戻る。
[0139] 一致しないと判断する場合には、記憶している 2つの素数「pl」及び「p2」を、秘密 鍵格納部 111の素数格納領域へ書き込み、鍵生成開始命令を鍵生成部 118へ出 力し (ステップ S305における「NO」)、鍵生成部 118は、鍵判定部 117より鍵生成命 令を受け取ると、秘密鍵格納部 111の素数格納領域にて記憶されて ヽる 2つの素数 「pl」及び「p2」を読み出し、読み出した素数「pl」と「p2」との積「n=pl X p2」を計 算する(ステップ S310)。
[0140] 鍵生成部 118は、乱数「e」を生成し (ステップ S315)、算出した「n」と、生成した乱 数「e」と力もなる組「PK= (n、 e)」を公開鍵として生成し、生成した公開鍵「PK」を公 開鍵格納部 112へ書き込む (ステップ S320)。ここで、乱数「e」は、従来と同様に、乱 数「e」は、数「L」と互 、に素であり、「 1≤ e≤ L—l、 GCD (e、 L) = 1」を満たす。数「L 」は、「L=LCM (pl— 1、ρ2— 1)」である。
[0141] 鍵生成部 118は、「e X d= l mod L」を満たす「d」を算出し (ステップ S325)、算 出した「d」と、素数「pl」及び 2」とからなる組「SK= (pl、 p2、 d)」を秘密鍵として、 秘密鍵格納部 111の秘密鍵格納領域へ書き込み、要求開始命令を、情報取得部 1 19へ出力する (ステップ S330)。
情報取得部 119は、鍵生成部 118から要求開始命令を受け取ると、識別子格納部 110から発行識別子情報「IDI」と、公開鍵格納部 112から公開鍵「PK」と、制御部 1 14のサーバ識別子記憶領域 130からサーバ識別子とを、それぞれ読み出す (ステツ プ S335)。情報取得部 119は、読み出した発行識別子情報「IDI」と、公開鍵「PK」と 、サーバ識別子と、公開鍵証明書の発行を依頼する証明書発行依頼情報とを送信 部 121を介して、証明書発行サーバ 200へ送信する (ステップ S340)。 [0142] 制御部 114は、証明書発行サーバ 200から受信部 120を介して、公開鍵証明書「 Cert」を受け取ると、受け取った公開鍵証明書「Cert」を証明書格納部 113へ書き込 み、配布開始命令を情報取得部 119へ出力する (ステップ S345)。
情報取得部 119は、制御部 114から配布開始命令を受け取ると、秘密鍵格納部 11 1にて記憶している秘密鍵「SK」と、証明書格納部 113にて記憶している公開鍵証明 書「Cert」と、制御部 114の端末情報記憶領域にて記憶している端末識別子とを、そ れぞれ読み出し (ステップ S350)、読み出した秘密鍵「SK」及び公開鍵証明書「Cer tjを、読み出した端末識別子に対応する端末装置 300へ送信部 121を介して送信 する(ステップ S355)。
[0143] (4)素数生成処理
ここでは、図 12に示す素数生成処理の動作について、図 15に示す流れ図を用い て、説明する。
情報制御部 140は、繰返制御部 132から、素数「q」と、素数のビットサイズ「lenq」と 、制御情報とからなる第 1情報及び素数「q」と、素数のビットサイズ「lenq」と、制御情 報と、発行識別子情報「IDI」と、そのビットサイズ「lenIDI」とからなる第 2情報の何れ かを受け取ると、受け取った情報を情報記憶領域へ書き込み、乱数の生成の指示を 示す第 1生成指示を、乱数生成部 141へ出力する (ステップ S400)。
[0144] 乱数生成部 141は、乱数の生成の指示を示す第 1生成指示を、情報制御部 140か ら受け取ると、情報制御部 140の情報記憶領域にて記憶されて 、る制御情報を読み 出し (ステップ S405)、読み出した制御情報が「情報 C」である力否かを判断する (ス テツプ S410)。
「情報 C」であると判断する場合には (ステップ S410における「YES」)、乱数生成部 141は、情報制御部 140の情報記憶領域にて記憶されている「lenq」を読み出し (ス テツプ S415)、 (lenq— 1)ビットからなる乱数「R1」を生成し、生成した乱数「R1」と読 み出した制御情報とを素数候補生成部 142へ出力する (ステップ S420)。ここで、乱 数「R1」の最上位ビットは 1とする。乱数生成方法は、非特許文献 2が詳しい。
[0145] 「情報 C」でな 、と判断する場合には (ステップ S410における「NO」 )、乱数生成部 141は、情報制御部 140の情報記憶領域にて記憶されている「lenq」及び「lenIDI」 を読み出し (ステップ S425)、(lenq-lenIDI-1)ビットからなる乱数「R1」を生成し、 生成した乱数「R1」と読み出した制御情報とを素数候補生成部 142へ出力する (ステ ップ S430)。ここで、乱数「R1」の最上位ビットは 1とする。
[0146] 素数候補生成部 142は、素数候補生成処理により、乱数「R」と、素数候補である数
「N」とを生成し、生成した乱数「R」を生成情報記憶領域に記憶し、生成した数「N」を 第 1素数判定部 143へ出力する (ステップ S435)。
第 1素数判定部 143は、数「N」を素数候補生成部 142より受け取ると、受け取った 数「N」を用いて、上述した式 (eql)が成立する力否かを判断する (ステップ S440)。
[0147] 第 1素数判定部 143は、式 (eql)が成立していると判断する場合には、数「N」を第
2素数判定部 144へ出力し (ステップ S440における「YES」)、第 2素数判定部 144 は、数「N」を第 1素数判定部 143より受け取ると、素数候補生成部 142の生成情報 記憶領域にて記憶されている数「R」を読み出し、上述した式 (eq2)が成立するか否 かを判断する (ステップ S445)。
[0148] 第 2素数判定部 144は、式 (eq2)が成立していると判断する場合には (ステップ S4
45における「YES」)、数「N」を素数「N」として、情報制御部 140を介して、繰返制御 部 132へ出力する (ステップ S450)。
第 1素数判定部 143は、式 (eql)が成立していないと判断する場合には、乱数生 成部 141へ第 2生成指示を出力(ステップ S440における「NO」)、第 2素数判定部 1
44は、式 (eq2)が成立していないと判断する場合には、乱数生成部 141へ第 2生成 指示を出力し (ステップ S445における「NO」)、乱数生成部 141は、第 1素数判定部
143及び第 2素数判定部 144の何れかから、再度乱数を生成する旨の第 2生成指示 を受け付けると、ステップ S405〖こ戻る。
[0149] (5)素数候補生成処理
ここでは、図 15に示す素数候補生成処理の動作について、図 16及び図 17に示す 流れ図を用いて、説明する。
素数候補生成部 142は、乱数生成部 141より、乱数「R1」と制御情報とを受け取る と (ステップ S500)、受け取った制御情報が「情報 C」である力否かの判断をする (ス テツプ S505)。 [0150] 「情報 C」であると判断する場合には (ステップ S505における「YES」)、素数候補生 成部 142は、情報制御部 140の情報記憶領域より素数「q」を読み出す (ステップ S5 10)。素数候補生成部 142は、読み出した素数「q」と乱数生成部 141より受け取った 乱数「R1」とを用いて、数「N = 2 XRl X q+ l」を生成する(ステップ S 515)。素数候 補生成部 142は、生成した数「N」のビットサイズ「lenN」が「lenq」と一致するか否か を判断し (ステップ S520)、一致すると判断する場合には (ステップ S520における「Y ES」)、素数候補生成部 142は、生成した数「N」を第 1素数判定部 143へ出力し、受 け取った乱数「R1」を、「R」として生成情報記憶領域に記憶する (ステップ S595)。
[0151] 一致しないと判断する場合には (ステップ S520における「NO」)、素数候補生成部 142は、乱数生成部 141より受け取った乱数「R1」に 2を掛けて、その結果を「R1」と し (ステップ S525)、ステップ S515に戻る。
制御情報が「情報 C」でな 、と判断する場合には (ステップ S505における「NO」 )、 素数候補生成部 142は、情報制御部 140の情報記憶領域より素数「q」及び発行識 別子情報「IDI」を読み出す (ステップ S530)。素数候補生成部 142は、制御情報が「 情報 B」である力否かを判断する (ステップ S535)。
[0152] 「情報 B」であると判断する場合には (ステップ S535における「YES」)、素数候補生 成部 142は、受け取った乱数「R1」と読み出した発行識別子情報「IDI」とから、結合 値「IDI I I Rl」を生成し、生成した結合値「IDI I I Rl」と関数記憶領域にて記憶 している関数「f」とを用いて、数「R=f (IDI I I Rl)」を生成する(ステップ S540)。 素数候補生成部 142は、生成した数「R」と読み出した素数「q」とを用いて、数「N = 2 XR X q+ lJを生成する(ステップ S545)。
[0153] 素数候補生成部 142は、生成した数「N」のビットサイズ「lenN」が「2 X lenqjである か否かを判断する (ステップ S550)。
「2 X lenqjであると判断する場合には (ステップ S550における「YES」 )、素数候補 生成部 142は、生成した数「N」を第 1素数判定部 143へ出力し、生成した数「R」を 生成情報記憶領域に記憶する (ステップ S595)。
[0154] 「2 X lenqjでな 、と判断する場合には (ステップ S550における「NO」 )、素数候補 生成部 142は、乱数生成部 141より受け取った乱数「R1」に 2を掛けて、その結果を「 Rl」とし (ステップ S555)、ステップ S540へ戻る。
「情報 B」でな 、と判断する場合には (ステップ S535における「NO」 )、素数候補生 成部 142は、受け取った乱数「R1」と読み出した発行識別子情報「IDI」とを用いて、 数「R=IDI XR1」を生成する (ステップ S560)。素数候補生成部 142は、回数読出 命令を情報制御部 140へ出力し、情報制御部 140から、出力カウンタ 136の値を受 け取る。素数候補生成部 142は、受け取った値力「l」である力否かを判断する (ステ ップ S565)。
[0155] 出力回数力「l」であると判断する場合には (ステップ S565における「YES」)、素数 候補生成部 142は、情報制御部 140の検証値記憶領域より第 1検証値「cl l」を読 み出す (ステップ S570)。素数候補生成部 142は、読み出した素数「q」、発行識別 子情報「IDI」、検証値「cl l」及び生成した数「R」とを用いて、数「N = 2 X (R+wl) X q+ 1」を生成する(ステップ S575)。ここで、「wl」は「2 X wl X q+ 1 = cl l mod IDI、 0≤wl <IDI」を満たす数である。
[0156] 出力回数が「1」でない、つまり「2」以上であると判断する場合には (ステップ S565 における「NO」)、素数候補生成部 142は、情報制御部 140の検証値記憶領域より 第 2検証値「cl2」を読み出す (ステップ S580)。素数候補生成部 142は、読み出し た素数「q」、発行識別子情報「IDI」、検証値「cl2」及び生成した数「R」とを用いて、 数「N = 2 X (R+w2) X q+ 1」を生成する(ステップ S585)。ここで、「w2」は「2 X w 2 X q+ l = cl2 mod IDI、 0≤w2く IDI」を満たす数である。
[0157] 素数候補生成部 142は、素数「q」のビットサイズ「lenq」を、情報制御部 140の情報 記憶領域より読み出し、生成した数「N」のビットサイズが「2 X lenqjであるか否かを 判断する (ステップ S590)。
「2 X lenqjであると判断する場合には (ステップ S590における「YES」 )、素数候補 生成部 142は、生成した数「N」を第 1素数判定部 143へ出力し、生成した数「R」を 生成情報記憶領域に記憶する (ステップ S595)。
[0158] 「2 X lenqjでな 、と判断する場合には (ステップ S590における「NO」 )、素数候補 生成部 142は、乱数生成部 141より受け取った乱数「R1」に 2を掛けて、その結果を「 Rl」とし (ステップ S600)、ステップ S560に戻る。 (6)証明書発行処理
ここでは、図 9に示す証明書発行処理の動作について、図 18に示す流れ図を用い て、説明する。
[0159] 証明書発行サーバ 200の発行公開鍵確認部 214は、鍵発行サーバ 100から受信 部 217を介して、発行識別子情報「IDI」と、公開鍵「PK」と、サーバ識別子と、証明 書発行依頼情報とを受け取る (ステップ S650)。
発行公開鍵確認部 214は、受け取ったサーバ識別子を、サーバ情報記憶領域 22 0に書き込む(ステップ S655)。
[0160] 発行公開鍵確認部 214は、受け取ったサーバ識別子を用いて、対応する第 1検証 値「c 11」及び第 2検証値「c 12」を読み出す (ステップ S660)。
発行公開鍵確認部 214は、読み出した第 1検証値「c 11」及び第 2検証値「c 12」と 、受け取った公開鍵「PK」と、発行識別子情報「IDI」とを用いて、公開鍵「PK」が、発 行識別子情報「IDI」を用いて生成された力否かを確認する (ステップ S660)。
[0161] 発行公開鍵確認部 214は、「n— (cl l X cl2)」が、「IDI」で割り切れると判断する 場合、つまり公開鍵「PK」が、発行識別子情報「IDI」を用いて生成されたと判断する 場合には (ステップ S660における「YES」)、発行公開鍵確認部 214は、受け取った 公開鍵「PK」を発行公開鍵格納部 211へ、発行識別子情報を発行識別子情報格納 部 212へ、それぞれ書き込み、発行公開鍵確認部 214は、公開鍵証明書の生成開 始命令を公開鍵証明書生成部 215へ出力する (ステップ S665)。
[0162] 発行公開鍵確認部 214は、公開鍵「PK」が、発行識別子情報「IDI」を用いて生成 されて 、な 、と判断する場合には (ステップ S660における「YES」 )、処理を終了する 公開鍵証明書生成部 215は、発行公開鍵確認部 214より、公開鍵証明書の生成 開始命令を受け取ると、秘密鍵格納部 210より秘密鍵「SKCA」を、発行公開鍵格納 部 211より公開鍵「PK」を、発行識別子情報格納部 212より発行識別子情報「IDI」 を、それぞれ読み出す (ステップ S670)。
[0163] 公開鍵証明書生成部 215は、読み出した秘密鍵「SKCA」、公開鍵「PK」及び発 行識別子情報「IDI」を用いて、公開鍵証明書「 」を生成し、生成した公開鍵証 明書「Cert」を公開鍵証明書格納部 213へ書き込み、公開鍵証明書「 」の送信 開始命令を証明書取得部 216へ出力する (ステップ S675)。
証明書取得部 216は、公開鍵証明書生成部 215より、公開鍵証明書「Cert」の送 信開始命令を受け取ると、公開鍵証明書格納部 213から公開鍵証明書「Cert」を、 サーバ情報記憶領域 220からサーバ識別子を、それぞれ読み出し、読み出した公開 鍵証明書「Cert」を、読み出したサーバ識別子に対応する鍵発行サーバ 100へ送信 部 218を介して送信する(ステップ S680)。
[0164] 1. 6 素数情報生成部 133の動作検証
素数情報生成部 133の第 1素数判定部 143及び、第 2素数判定部 144は、 Pockli ngton判定である。 Pocklington判定は、非特許文献 1の 144ページ及び非特許文 献 4が詳しい。以下に、簡単に説明する。
Pocklington判定によると、「N = 2 XR X q + 1」の「q」が素数であり
2" (N-1) = 1 mod N
2" (2R) ≠1 mod N
の両方が成り立つ場合、数「N」は素数となり、素数情報生成部 133は、数「N」を素 数として出力することができる。
[0165] また、乱数「R1」のビットサイズが(lenq-lenIDI-1)であるので、数「R」のビットサイ ズが(lenq— 1)になり、ほとんどの数「N」のビットサイズが(2 X lenq)になる。ここで、 素数「q」や発行識別子情報「IDI」などの値によっては、ビットサイズが(2 X lenq— 1) となる場合がある。その場合は、素数候補生成部 142は、上述したように、 R1に 2を 掛けて、それを新たに R1とすることにより、生成する数「N」のビットサイズを (2 X lenq )になるように設定することができる。
[0166] 1. 7 第 1の実施の形態の効果
(1)生成される鍵の一意性
ここでは、鍵発行サーバ 100にて生成される鍵、つまり素数の一意性について説明 する。
ここで、以下の命題を証明する。
[0167] (命題)発行識別子情報 IDIが異なれば、出力される素数「N」が異なる。 まず、以下の補題を証明し、その補題を用いて、上記の命題を証明する。
(補題)二つの素数「pl = 2XqlXRl + 1」及び「p2 = 2 X q2 X R2 + 1」に対し、 p 1=ρ2であれば、、 ql = q2力つ R1=R2となる。
(証明) pl=p2の場合、素数「ql」及び「q2」のビットサイズは、それぞれ 256ビット であり、数「R1」及び「R2」のビットサイズは、それぞれ 255ビットであるため、 ql=q2 となるのは明らか。また、 ql=q2より、 R1=R2も成り立つ(証明終)。
[0168] 上記補題より、 pl=p2であれば、 R1=R2が成り立つ。 Rl=f(IDIl I | R11)、R 2 = f(lDI2 I I R22)とおくと、 R1=R2であり、 fは単射であるため、 IDI1=IDI2が 成り立つ。したがって、この対偶を取ることにより、上記の命題が成り立つ。 以上より 、 IDIが異なれば必ず素数が異なる。したがって、鍵発行サーバ 100に与える IDIを 毎回変えることで、毎回異なる素数を生成することができる。これにより、生成される 素数は、一意性が保たれる。
[0169] したがって、複数回生成した素数が一致しないことを比較することなぐ証明できる。
(2)生成された鍵の正当性
鍵発行サーバ 100にて生成された素数「pl」に対して、「pl— cll」は必ず発行識 別子情報「IDI」で割り切れる。
なぜなら、「pl— cll = 2XqX (R+wl)+l-cll = 2XqX (IDI XR1 +wl) + 1 — cll = 2XqXIDIXRl + 2XqXwl + l— cll」であり、項「2XqXIDIXR」は、「I DI」で割り切れることが分かる。また、上述したように、「2XqXwl + l = cll mod IDIJが成り立って!/、るため、残りの項「2 XqXwl + 1— cl 1」も「IDI」で割り切れる。 つまり、鍵発行サーバ 100にて生成された素数「pl」に対して、「pl— cll」は必ず発 行識別子情報「IDI」で割り切れる。したがって、生成された素数「pl」に対し、「pl— c 11」が発行識別子情報「IDI」で割り切れる力否かで、鍵発行サーバ 100を用いて素 数が生成されたかを確認することができる。
[0170] また、上記と同様の理由により、素数「pl」に対して、「p2— cl2」は必ず発行識別子 情報「IDI」で割り切れる。
したがって、「n— cllXcl2」は「IDI」で割り切れるため、証明書発行サーバ 200は 、「n— cllXcl2」が「IDI」で割り切れることを確認することで、素数「pl」、「p2」が正 しく発行識別子情報「IDI」を用いて生成して 、るかを確認することができる。
[0171] なぜなら、秘密鍵である素数「pl」、「p2」はそれぞれ、素数「ql」、「q2」、乱数「R1 1」、「R12」、発行識別子情報「IDI」に対して、「pl = 2XqlX (IDIXRll+wl) + l = cll mod IDI」、「p2 = 2Xq2X (IDIXR12+wl)+l = cl2 mod IDI」を 満たすため、
n = plXp2=(2XqlXIDIXRll + l) X (2Xq2XIDIXR12+l) = cllXcl2 mod IDI
となる。そのため、証明書発行サーバ 200は、「n— cllXcl2」が「IDI」で割り切れる か否かを確認することにより、鍵発行サーバが正しく発行識別子情報 IDIを用いて生 成して 、るかを確認することができる。
[0172] なお、「IDI」のビットサイズが「lenIDI」であり、「R1」のビットサイズが(lenq— lenlDI —1)であるため、ほとんどの「Nl = 2XqX (IDIXRl+w)+l」のビットサイズは、 2 Xlenqlとなる。ここで、「ql」や「IDI」などの値によっては、ビットサイズが(2 X lenq— 1)となる場合がある。その場合は、素数候補生成部 142で、「R1」に 2を掛けて、それ を新たに「R1」とみなすことにより、「N1」のビットサイズを「2Xlenql」になるように設 定することができる。
[0173] さらに、鍵発行システム 1は、端末がその端末がもつ秘密鍵を用いて、不正を働い たとき、以下の確認方法により、秘密鍵より不正を働いた端末の情報を得ることができ る。不正を働いた端末の秘密鍵「pl」、 「p2」が判明したとする。また、不正の追跡者 、例えば証明書発行サーバ 200の管理者は、発行識別子情報と端末の対応表と持 つているとする。「pl-cll」、 「p2-cl2」は共に発行識別子情報「IDI」で割り切れる 。そのため、 GCD(pl— cll、 P2-cl2)は発行識別子情報で割り切れる。したがって 、 GCD(pl— cll、 p2—cl2)の素因数を調べることにより、不正の追跡者は、取りうる 発行識別子情報を限定でき、発行識別子情報を知る、すなわち、端末を特定するた めの助けとなる。
[0174] 1. 10 素数生成の変形例 1
上記実施の形態では、第 1検証値及び第 2検証値の 2つの検証値を用いたが、ここ では、 1つの検証値を用いた場合の素数の生成について、説明する。 上記実施の形態と異なる点は、鍵発行サーバにおける素数情報生成部と、証明書 発行サーバにおける発行公開鍵確認部とが異なる。以下に、本変形例における素数 情報生成部 133A、及び発行公開鍵確認部 214Aについて説明する。なお、他の構 成要素については、第 1の実施の形態にて示した構成要素を用いる。
[0175] (1)素数情報生成部 133A
素数情報生成部 133Aは、図 19に示すように、情報制御部 140A、乱数生成部 14 1A、素数候補生成部 142A、第 1素数判定部 143A及び第 2素数判定部 144Aから 構成されている。
素数情報生成部 133Aは、繰返制御部 132から受け取った素数のビットサイズが 2 倍のビットサイズからなる素数を生成する。
[0176] なお、以下の説明において、繰返制御部 132から受け取る素数を素数「q」、そのビ ットサイズを「lenq」として、各構成要素について説明する。
<情報制御部 140A>
情報制御部 140Aは、第 1情報及び第 2情報を記憶するための情報記憶領域を有 している。
[0177] 情報制御部 140Aは、証明書発行サーバ 200により割り当てられ、且つ制御情報「 情報 A」に基づ 、て素数を生成する際に用いる検証値「cl」を予め記憶して 、る検証 値記憶領域を有している。
情報制御部 140Aは、繰返制御部 132から、素数「q」と、素数のビットサイズ「lenq」 と、制御情報とからなる第 1情報を受け取ると、受け取った第 1情報を情報記憶領域 へ書き込む。つまり、素数「q」と、素数のビットサイズ「lenq」と、制御情報 (この場合、 「情報 C」)とを書き込む。
[0178] 情報制御部 140Aは、繰返制御部 132から、素数「q」と、素数のビットサイズ「lenq」 と、制御情報と、発行識別子情報「IDI」と、そのビットサイズ「lenIDI」とからなる第 2 情報を受け取ると、受け取った第 2情報を情報記憶領域へ書き込む。つまり、素数「q 」と、素数のビットサイズ「lenq」と、制御情報、発行識別子情報「IDI」と、そのビットサ ィズ「lenIDI」とを書き込む。
[0179] 情報制御部 140Aは、受け取った情報の書き込み後、乱数の生成の指示を示す第 1生成指示を、乱数生成部 141Aへ出力する。
情報制御部 140Aは、第 2素数判定部 144Aより、素数を受け取ると、受け取った素 数を繰返制御部 132へ出力する。
<乱数生成部 141A>
乱数生成部 141 Aは、第 1の実施の形態にて示す乱数生成部 141 Aと同様である ため、説明は省略する。
[0180] <素数候補生成部 142A>
素数候補生成部 142Aは、生成された情報を記憶する生成情報記憶領域と、単射 である関数「f」を予め記憶している関数記憶領域とを有している。ここで、関数「f」は 、例えば、 f (X I I Y) =Enc (K、 X I I Y)である。 Enc (K、 X | | Y)は鍵 Xを用い たときの (X I I Y)の共通鍵暗号による暗号文である。共通鍵暗号の暗号化関数は 一般的に全単射である。また、記号「 I I」はビットまたはバイト連結である。暗号ィ匕 関数「Enc (K、X I I Y)」の一例は、「Enc (K、X | | Y) =K XOR X | | Υ」で ある。なお、共通暗号の一例は、 DESであり、 DESを用いる場合には、鍵長は 128ビ ットとなる。
[0181] 素数候補生成部 142Aは、乱数生成部 141Aより、乱数「R1」と制御情報とを受け 取ると、受け取った制御情報が「情報 C」である力否かの判断をする。
「情報 C」であると判断する場合には、素数候補生成部 142Aは、情報制御部 140 Aの情報記憶領域より素数「q」を読み出す。素数候補生成部 142Aは、読み出した 素数「q」と乱数生成部 141 Aより受け取った乱数「R1」とを用いて、数「N = 2 X Rl X q+ l」を生成する。素数候補生成部 142Aは、生成した数「N」のビットサイズ「lenN」 が「lenq」と一致するカゝ否かを判断し、一致すると判断する場合には、素数候補生成 部 142Aは、生成した数「N」を第 1素数判定部 143Aへ出力し、受け取った乱数「R1 」を、「R」として生成情報記憶領域に記憶する。
[0182] 一致しないと判断する場合には、素数候補生成部 142Aは、乱数生成部 141Aより 受け取った乱数「R1」に 2を掛けて、その結果を「R1」として、再度、上記の動作を行 い、数「N = 2 XRl X q+ l」を生成する。
制御情報力 ^情報 C」でないと判断する場合には、素数候補生成部 142Aは、情報 制御部 140Aの情報記憶領域より素数「q」及び発行識別子情報「IDI」を読み出す。 素数候補生成部 142Aは、制御情報が「情報 B」である力否かを判断する。
[0183] 「情報 B」であると判断する場合には、素数候補生成部 142Aは、受け取った乱数「 RUと読み出した発行識別子情報「IDI」と関数記憶領域にて記憶して 、る関数「f」と を用いて、数「R=f (IDI I I Rl)」を生成する。素数候補生成部 142Aは、生成した 数「R」と読み出した素数「q」とを用いて、数「N = 2 XRX q+ l」を生成する。
[0184] 素数候補生成部 142Aは、生成した数「N」のビットサイズ「lenN」が「2 X lenqjであ るか否かを判断する。
「2 X lenq」であると判断する場合には、素数候補生成部 142Aは、生成した数「N」 を第 1素数判定部 143Aへ出力し、生成した数「R」を生成情報記憶領域に記憶する
[0185] 「2 X lenq」でないと判断する場合には、素数候補生成部 142Aは、乱数生成部 14 1Aより受け取った乱数「R1」に 2を掛けて、その結果を「R1」として、再度、数「R」及 び「N」を生成する。
「情報 B」でないと判断する場合には、素数候補生成部 142Aは、受け取った乱数「 R 1」と読み出した発行識別子情報「IDI」とを用いて、数「R = IDI X R1」を生成する。
[0186] 素数候補生成部 142Aは、情報制御部 140Aの検証値記憶領域より検証値「cl」 を読み出す。
素数候補生成部 142Aは、読み出した素数「q」、発行識別子情報「IDI」、検証値「 cl」及び生成した数「R」とを用いて、数「N = 2 X (R+w) X q+ 1」を生成する。
[0187] ここで、「w」は「2 X w X q+ l = cl mod IDI、 0≤w<IDI」を満たす数である。「 w」は、「w= (cl— l) X m mod IDI」を計算することにより求める。「m」は「(2 X q) X m= l mod IDI」を満たす数である。
素数候補生成部 142Aは、素数「q」のビットサイズ「lenq」を、情報制御部 140Aの 情報記憶領域より読み出し、生成した数「N」のビットサイズが「2 X lenqjであるか否 かを判断する。
[0188] 「2 X lenq」であると判断する場合には、素数候補生成部 142Aは、生成した数「N」 を第 1素数判定部 143Aへ出力し、生成した数「R」を生成情報記憶領域に記憶する 「2 X lenq」でないと判断する場合には、素数候補生成部 142Aは、乱数生成部 14 1Aより受け取った乱数「R1」に 2を掛けて、その結果を「R1」として、再度、数「R」及 び「N」を生成する。
[0189] <第 1素数判定部 143A>
第 1素数判定部 143Aは、第 1の実施の形態にて示す第 1素数判定部 143と同様 であるため、説明は省略する。
<第 2素数判定部 144A>
第 2素数判定部 144Aは、第 1の実施の形態にて示す第 2素数判定部 144と同様 であるため、説明は省略する。
[0190] (2)発行公開鍵確認部 214A
発行公開鍵確認部 214Aは、図示していないが、サーバ情報記憶領域 220A及び 確認情報記憶領域 221 Aを有して 、る。
サーバ情報記憶領域 220Aは、公開鍵証明書の発行依頼のあった鍵発行サーバ を識別するサーバ識別子を記憶する領域を有している。
[0191] 確認情報記憶領域 221Aは、図 20に示すように、検証値テーブル T250を有して いる。検証値テーブル T250は、サーバ識別子と、検証値とからなる組を 1以上記憶 する領域を有している。サーバ識別子は、鍵発行サーバを識別する識別子であり、「 SIDA」は、鍵発行サーバ 100を示し、「SIDB」は、鍵発行サーバ 101を示し、「SID B」は、鍵発行サーバ 102を示す。検証値は、対応付けられたサーバ識別子にて示さ れる鍵発行サーバに割り当てた検証値である。なお、以降では、鍵発行サーバ 100 のサーバ識別子を「SID」として説明する。
[0192] 発行公開鍵確認部 214Aは、鍵発行サーバ 100から受信部 217を介して、発行識 別子情報「IDI」と、公開鍵「PK」と、サーバ識別子と、証明書発行依頼情報とを受け 取る。
発行公開鍵確認部 214Aは、受け取ったサーバ識別子を、サーバ情報記憶領域 2 20Αに書き込む。
[0193] 発行公開鍵確認部 214Aは、受け取ったサーバ識別子を用いて、対応する検証値 「cl」を読み出す。
発行公開鍵確認部 214Aは、受け取った公開鍵「PK」と発行識別子情報「IDI」とを 用いて、公開鍵「PK」が、発行識別子情報「IDI」を用いて生成されたカゝ否かを確認 する。
[0194] ここで、確認方法は、「n— (cl) "2J力 「IDI」で割り切れるか否かを検証する。これ により、公開鍵「PK」が、発行識別子情報「IDI」を用いて生成されたカゝ否かを確認す ることがでさる。
発行公開鍵確認部 214Aは、「n— (cl) '2」が、「IDI」で割り切れると判断する場合 には、公開鍵「PK」が、発行識別子情報「IDI」を用いて生成されたと判断し、「n— (c 1) '2」が、「IDI」で割り切れないと判断する場合には、公開鍵「PK」が、発行識別子 情報「IDI」を用いて生成されて 、な 、と判断する。
[0195] 発行公開鍵確認部 214Aは、公開鍵「PK」が、発行識別子情報「IDI」を用いて生 成されたと判断する場合には、受け取った公開鍵「PK」を発行公開鍵格納部 211へ 、発行識別子情報を発行識別子情報格納部 212へ、それぞれ書き込む。発行公開 鍵確認部 214Aは、公開鍵証明書の生成開始命令を公開鍵証明書生成部 215へ 出力する。
発行公開鍵確認部 214Aは、公開鍵「ΡΚ」が、発行識別子情報「IDI」を用いて生 成されて ヽな ヽと判断する場合には、処理を終了する。
[0196] (3)素数候補生成処理
本変形例に係る素数候補生成処理について、第 1実施の形態にて示した素数候 補生成処理と異なる点のみ説明する。なお、鍵発行処理、及び素数生成処理の動 作の流れは、第 1の実施の形態と同様であるため、説明は省略する。
素数候補生成部 142Aは、図 16及び図 17に示すステップ S500からステップ S56 0までを実行後、ステップ S565を省略して、ステップ S570にて、検証値「cl」を読み 出す。素数候補生成部 142Aは、ステップ S575にて、数「N = 2 X (R+w) X q+ 1」 を生成する。つまり、ステップ S565、ステップ S580及びステップ S585を省略し、ス テツプ S570及びステップ S575を上記のように変更する。
[0197] 以降は、第 1の実施の形態と同様であるため、説明は省略する。 つまり、本変形例に係る素数候補生成処理は、出力カウンタの値に関わらず、検証 値「c 1」と素数「q」と数「R」とを用いて、数「N」を生成することになる。
(4)証明書発行処理
本変形例に係る証明書発行処理について、第 1実施の形態にて示した証明書発 行処理と異なる点のみ説明する。
[0198] 発行公開鍵確認部 214Aは、ステップ S660にて、受け取ったサーバ識別子に対 応する検証値 (例えば、「cl」)を読み出し、ステップ S670にて、読み出した検証値「 cl」と、公開鍵「PK」と発行識別子情報「IDI」とを用いて、「PK」が「IDI」より生成され たか否かを確認する。
1. 11 素数生成の変形例 2
上記実施の形態では、第 1検証値及び第 2検証値の 2つの検証値を用いたが、ここ では、 1個の検証値であり、且つその検証値が固定値「1」である場合の素数の生成 について、説明する。
[0199] 上記実施の形態と異なる点は、鍵発行サーバにおける素数情報生成部と、証明書 発行サーバにおける発行公開鍵確認部とが異なる。以下に、本変形例における素数 情報生成部 133B、及び発行公開鍵確認部 214Bについて説明する。なお、他の構 成要素については、第 1の実施の形態にて示した構成要素を用いる。
(1)素数情報生成部 133B
素数情報生成部 133Bは、図 21に示すように、情報制御部 140B、乱数生成部 14 1B、素数候補生成部 142B、第 1素数判定部 143B及び第 2素数判定部 144Bから 構成されている。
[0200] 素数情報生成部 133Bは、繰返制御部 132から受け取った素数のビットサイズが 2 倍のビットサイズからなる素数を生成する。
なお、以下の説明において、繰返制御部 132から受け取る素数を素数「q」、そのビ ットサイズを「lenq」として、各構成要素について説明する。
く情報制御部 140B>
情報制御部 140Bは、第 1情報及び第 2情報を記憶するための情報記憶領域を有 している。 [0201] 情報制御部 140Bは、制御情報「情報 A」に基づいて素数を生成する際に用いる検 証値「 1」を予め記憶して!/、る検証値記憶領域を有して 、る。
情報制御部 140Bは、繰返制御部 132から、素数「q」と、素数のビットサイズ「lenq」 と、制御情報とからなる第 1情報を受け取ると、受け取った第 1情報を情報記憶領域 へ書き込む。つまり、素数「q」と、素数のビットサイズ「lenq」と、制御情報 (この場合、
「情報 C」)とを書き込む。
[0202] 情報制御部 140Bは、繰返制御部 132から、素数「q」と、素数のビットサイズ「lenq」 と、制御情報と、発行識別子情報「IDI」と、そのビットサイズ「lenIDI」とからなる第 2 情報を受け取ると、受け取った第 2情報を情報記憶領域へ書き込む。つまり、素数「q
」と、素数のビットサイズ「lenq」と、制御情報、発行識別子情報「IDI」と、そのビットサ ィズ「lenIDI」とを書き込む。
[0203] 情報制御部 140Bは、受け取った情報の書き込み後、乱数の生成の指示を示す第
1生成指示を、乱数生成部 141Bへ出力する。
情報制御部 140Bは、第 2素数判定部 144Bより、素数を受け取ると、受け取った素 数を繰返制御部 132へ出力する。
<乱数生成部 141B>
乱数生成部 141 Bは、第 1の実施の形態にて示す乱数生成部 141 Bと同様である ため、説明は省略する。
[0204] <素数候補生成部 142B >
素数候補生成部 142Bは、生成された情報を記憶する生成情報記憶領域と、単射 である関数「f」を予め記憶して 、る関数記憶領域とを有して 、る。
素数候補生成部 142Bは、乱数生成部 141Bより、乱数「R1」と制御情報とを受け 取ると、受け取った制御情報が「情報 C」である力否かの判断をする。
[0205] 「情報 C」であると判断する場合には、素数候補生成部 142Bは、情報制御部 140B の情報記憶領域より素数「q」を読み出す。素数候補生成部 142Bは、読み出した素 数「q」と乱数生成部 141Bより受け取った乱数「R1」とを用いて、数「N = 2 XRl X q + 1」を生成する。素数候補生成部 142Bは、生成した数「N」のビットサイズ「lenN」 が「lenq」と一致するカゝ否かを判断し、一致すると判断する場合には、素数候補生成 部 142Bは、生成した数「N」を第 1素数判定部 143Bへ出力し、受け取った乱数「R1
」を、「R」として生成情報記憶領域に記憶する。
[0206] 一致しないと判断する場合には、素数候補生成部 142Bは、乱数生成部 141Bより 受け取った乱数「R1」に 2を掛けて、その結果を「R1」として、再度、上記の動作を行 い、数「N = 2 XRl X q+ l」を生成する。
制御情報力 ^情報 C」でないと判断する場合には、素数候補生成部 142Bは、情報 制御部 140Bの情報記憶領域より素数「q」及び発行識別子情報「IDI」を読み出す。 素数候補生成部 142Bは、制御情報力 S「情報 B」である力否かを判断する。
[0207] 「情報 B」であると判断する場合には、素数候補生成部 142Bは、受け取った乱数「
RUと読み出した発行識別子情報「IDI」と関数記憶領域にて記憶して 、る関数「f」と を用いて、数「R=f (IDI I I Rl)」を生成する。素数候補生成部 142Bは、生成した 数「R」と読み出した素数「q」とを用いて、数「N = 2 XRX q+ l」を生成する。
[0208] 素数候補生成部 142Bは、生成した数「N」のビットサイズ「lenN」が「2 X lenqjであ るか否かを判断する。
「2 X lenq」であると判断する場合には、素数候補生成部 142Bは、生成した数「N」 を第 1素数判定部 143Bへ出力し、生成した数「R」を生成情報記憶領域に記憶する
[0209] 「2 X lenq」でないと判断する場合には、素数候補生成部 142Bは、乱数生成部 14 1Bより受け取った乱数「R1」に 2を掛けて、その結果を「R1」として、再度、数「R」及 び「N」を生成する。
「情報 B」でないと判断する場合には、素数候補生成部 142Bは、受け取った乱数「 R 1」と読み出した発行識別子情報「IDI」とを用いて、数「R = IDI X R1」を生成する。
[0210] 素数候補生成部 142Bは、情報制御部 140Bの検証値記憶領域より検証値「1」を
BJCみ出す。
素数候補生成部 142Bは、読み出した素数「q」、発行識別子情報「IDI」、検証値「 1」及び生成した数「R」とを用いて、数「N = 2 XRX q+ l」を生成する。ここで、最後 の項の「1」が検証値である。
[0211] 素数候補生成部 142Bは、素数「q」のビットサイズ「lenq」を、情報制御部 140Bの 情報記憶領域より読み出し、生成した数「N」のビットサイズが「2 X lenqjであるか否 かを判断する。
「2 X lenq」であると判断する場合には、素数候補生成部 142Bは、生成した数「N」 を第 1素数判定部 143Bへ出力し、生成した数「R」を生成情報記憶領域に記憶する
[0212] 「2 X lenq」でないと判断する場合には、素数候補生成部 142Bは、乱数生成部 14 1Bより受け取った乱数「R1」に 2を掛けて、その結果を「R1」として、再度、数「R」及 び「N」を生成する。
く第 1素数判定部 143B>
第 1素数判定部 143Bは、第 1の実施の形態にて示す第 1素数判定部 143と同様 であるため、説明は省略する。
[0213] <第 2素数判定部 144B>
第 2素数判定部 144Bは、第 1の実施の形態にて示す第 2素数判定部 144と同様 であるため、説明は省略する。
(2)発行公開鍵確認部 214B
発行公開鍵確認部 214Bは、図示していないが、サーバ情報記憶領域 220B及び 確認情報記憶領域 221Bを有して 、る。
[0214] サーバ情報記憶領域 220Bは、公開鍵証明書の発行依頼のあった鍵発行サーバ を識別するサーバ識別子を記憶する領域を有している。
確認情報記憶領域 221Bは、固定値である検証値「1」を記憶している。 発行公開鍵確認部 214Bは、鍵発行サーバ 100から受信部 217を介して、発行識 別子情報「IDI」と、公開鍵「PK」と、サーバ識別子と、証明書発行依頼情報とを受け 取る。
[0215] 発行公開鍵確認部 214Bは、受け取ったサーバ識別子を、サーバ情報記憶領域 2 20Βに書き込む。
発行公開鍵確認部 214Bは、検証値「1」を、確認情報記憶領域 221Bカゝら読み出 す。
発行公開鍵確認部 214Bは、受け取った公開鍵「ΡΚ」と発行識別子情報「IDI」とを 用いて、公開鍵「PK」が、発行識別子情報「IDI」を用いて生成されたカゝ否かを確認 する。
[0216] ここで、確認方法は、「n—検証値」、つまり「n— 1」力 「IDI」で割り切れるか否かを 検証する。これにより、公開鍵「PK」が、発行識別子情報「IDI」を用いて生成された か否かを確認することができる。
発行公開鍵確認部 214Bは、「n— 1」が、「IDI」で割り切れると判断する場合には、 公開鍵「PK」が、発行識別子情報「IDI」を用いて生成されたと判断し、「n— 1」が、「I DI」で割り切れないと判断する場合には、公開鍵「PK」が、発行識別子情報「IDI」を 用いて生成されて!ヽな!ヽと判断する。
[0217] 発行公開鍵確認部 214Bは、公開鍵「PK」が、発行識別子情報「IDI」を用いて生 成されたと判断する場合には、受け取った公開鍵「PK」を発行公開鍵格納部 211へ 、発行識別子情報を発行識別子情報格納部 212へ、それぞれ書き込む。発行公開 鍵確認部 214Bは、公開鍵証明書の生成開始命令を公開鍵証明書生成部 215へ出 力する。
発行公開鍵確認部 214Bは、公開鍵「ΡΚ」が、発行識別子情報「IDI」を用いて生 成されて ヽな ヽと判断する場合には、処理を終了する。
[0218] (3)素数候補生成処理
本変形例に係る素数候補生成処理について、第 1実施の形態にて示した素数候 補生成処理と異なる点のみ説明する。なお、鍵発行処理、及び素数生成処理の動 作の流れは、第 1の実施の形態と同様であるため、説明は省略する。
素数候補生成部 142Bは、図 16及び図 17に示すステップ S500力もステップ S560 までを実行後、ステップ S565を省略して、ステップ S570にて、検証値「1」を読み出 す。素数候補生成部 142Bは、ステップ S575にて、数「N = 2 X (R+w) X q+ 1」を 生成する。つまり、ステップ S565、ステップ S580及びステップ S585を省略し、ステツ プ S570及びステップ S575を上記のように変更する。なお、数「N」を算出する際の 最後の項が検証値である。
[0219] 以降は、第 1の実施の形態と同様であるため、説明は省略する。
つまり、本変形例に係る素数候補生成処理は、出力カウンタの値に関わらず、素数 「q」と数「R」とを用いて、数「N」を生成することになる。
(4)証明書発行処理
本変形例に係る証明書発行処理について、第 1実施の形態にて示した証明書発 行処理と異なる点のみ説明する。
[0220] 発行公開鍵確認部 214Bは、ステップ S660にて、検証値「1」を読み出し、ステップ S670にて、読み出した検証値「1」と、公開鍵「PK」と発行識別子情報「IDI」とを用 V、て、「PK」が「IDI」より生成されたか否かを確認する。
(5)確認方法の検証
上記に示した方法にて、証明書発行サーバは、鍵発行サーバが正しく発行識別子 情報 IDIを用いて生成して 、るかを確認することができる。
[0221] なぜなら、秘密鍵である素数「pl」、「p2」はそれぞれ、素数「ql」、「q2」、乱数「R1 1」、「R12」、発行識別子情報「IDI」を用いて、「pl = 2XqlXIDIXRll + l」、「p2 = 2Xq2XIDIXR12+l」を満たすため、
n = plXp2=(2XqlXIDIXRll + l) X (2Xq2XIDIXR12+l) = IDIX (4XqlXq2XRllXR12XIDI + 2XqlXRll + 2Xq2XR12) + となる。そのため、「n— 1」は「IDI」で割り切れるため、「n— 1」が「IDI」で割り切れること を確認することで、素数「pl」、「p2」が正しく発行識別子情報「IDI」を用いて生成し て!、るかを確認することができる。
[0222] 1.12 素数生成の変形例 3
上記実施の形態では、 256ビットの素数を生成する際に、単射関数を施して、生成 する素数の一意性を満たし、 512ビットの素数を生成する際に、生成する素数の正当 性を確認するための要素を付加したが、ここでは、素数の一意性及び正当性を確認 するための要素の付加を、 1回の動作にて行う場合について、説明する。
[0223] 上記実施の形態と異なる点は、鍵発行サーバにおける素数生成部と、証明書発行 サーバにおける発行公開鍵確認部とが異なる。以下に、本変形例における素数生成 部 116C、及び発行公開鍵確認部 214Cについて説明する。なお、他の構成要素に ついては、第 1の実施の形態にて示した構成要素を用いる。 また、ここでは、サーバ識別子のビットサイズを 15ビット、端末装置の端末識別子の ビットサイズを 16ビットとし、発行識別子情報のビットサイズを 32ビットする。
[0224] (1)素数生成部 116C
素数生成部 116Cは、図 22に示すように、繰返制御部 132C及び素数情報生成部 133Cとを有して!/ヽる。
素数生成部 116Cは、 8ビットの素数から 512ビットの素数を生成し、生成した 512 ビットの素数を鍵判定部 117へ出力する。
[0225] <繰返制御部 132C>
繰返制御部 132Cは、 8ビットからなる素数とその素数のビットサイズ (つまり「8」)と を予め記憶している初期値記憶領域と、素数情報生成部 133Cから、受け取った素 数を一時的に記憶する一時記憶領域とを有している。
繰返制御部 132Cは、素数情報生成部 133Cの動作の繰返回数をカウントする繰 返カウンタ 135Cと、鍵判定部 117へ出力した素数の個数、つまり生成した 512ビット の素数の出力回数をカウントする出力カウンタ 136Cとを有している。なお、繰返カウ ンタ 135C及び出力カウンタ 136Cの初期値は、それぞれ「1」である。
[0226] 繰返制御部 132Cは、図 23に示す制御情報テーブル T150を有している。制御情 報テーブル T150は、回数と制御情報とからなる組を 1以上格納している。回数は、 繰返カウンタ 135Cの値に対応する。制御情報は、素数情報生成部 133Cにて生成 する素数の生成方法の種別を示す。
繰返制御部 132Cは、識別子生成部 115から素数の生成開始命令を受け取ると、 素数情報生成部 133Cが素数を生成するよう制御する。素数情報生成部 133Cから 素数を受け取ると、繰返カウンタ 135C及び出力カウンタ 136Cのそれぞれの値に基 づいて、再度、素数情報生成部 133Cへ素数生成の命令、及び受け取った素数を鍵 判定部 117へ出力の何れかを行う。
[0227] 以下に、その動作について説明する。
繰返制御部 132Cは、識別子生成部 115から素数の生成開始命令を受け取ると、 繰返カウンタ 135C及び出力カウンタ 136Cを、それぞれ「1」に設定する。
繰返制御部 132Cは、素数情報生成部 133Cから、素数を受け取ると、繰返カウン タ 135Cの値に「1」を加算し、加算結果が、 7であるか否かを判断する。
[0228] 加算結果が 7であると判断する場合には、繰返制御部 132Cは、出力カウンタ 136 Cの値が、 1である力否かを判断する。 1であると判断する場合には、繰返制御部 132 Cは、受け取った素数を素数「pl」として、鍵判定部 117へ出力し、出力カウンタ 136 Cの値に「1」を加算し、繰返カウンタ 135Cの値に「1」を設定する。 1でない、つまり 2 以上であると判断する場合には、繰返制御部 132Cは、受け取った素数を素数「p2」 として、素数「p2」と判定開始命令を鍵判定部 117へ出力する。
[0229] 加算結果が 7でないと判断する場合には、受け取った素数のビットサイズを算出し、 受け取った素数と、算出したビットサイズとを、一時記憶領域に一時的に記憶する。 繰返制御部 132Cは、素数の生成開始命令を受け取り、繰返カウンタ 135C及び出 力カウンタ 136Cのそれぞれの値に「 1」を加算した後、素数情報生成部 133Cカも受 け取った素数とそのビットサイズとを一時的に記憶した後、及び出力カウンタ 136Cに 「1」を加算し、且つ繰返カウンタ 135Cの値を「1」に設定した後の何れかの場合にお いて、繰返制御部 132Cは、以下の動作を行う。
[0230] 繰返制御部 132Cは、繰返カウンタ 135Cの値力 1である力否かを判断する。 1で あると判断する場合には、繰返制御部 132Cは、初期値記憶領域より 8ビットの素数と そのビットサイズを読み出し、 1でないと判断する場合には、一時記憶領域よりビット サイズ「8 X (2" (11—1) )」と、その素数とを読み出す。つまり、繰返制御部 132Cは、 繰返カウンタ 135Cの値が、 1でないと判断する場合には、一時記憶領域より、前回 生成した素数とそのビットサイズとを読み出す。ここで、「n」は、繰返カウンタの値であ る。
[0231] 繰返カウンタ 135Cの値に対応する制御情報を制御情報テーブル T150より読み 出し、読み出した制御情報が、「情報 C」であるか否かを判断する。
「情報 C」であると判断する場合には、繰返制御部 132Cは、読み出した素数及び そのビットサイズと、制御情報とからなる第 1情報を生成し、生成した第 1情報を、素数 情報生成部 133Cへ出力する。
[0232] 「情報 C」でないと判断する場合には、繰返制御部 132Cは、識別子格納部 110より 発行識別情報「IDI」を取得し、取得した発行識別子情報「IDI」のビットサイズ rienlD I」を算出し、読み出した素数及びそのビットサイズと、制御情報と、発行識別子情報「 IDI」及びそのビットサイズ「lenIDI」とからなる第 2情報を生成し、生成した第 2情報を 、素数情報生成部 133Cへ出力する。
[0233] また、繰返制御部 132Cは、鍵判定部 117より素数を再度生成する旨の再生成命 令を受け取ると、出力カウンタ 136Cの値に「1」を加算し、且つ繰返カウンタ 135Cの 値を「1」に設定し、繰返カウンタ 135Cの値力 1であるか否かの判断を行う動作以降 を行う。
<素数情報生成部 133C>
素数情報生成部 133Cは、図 24に示すように、情報制御部 140C、乱数生成部 14 1C、素数候補生成部 142C、第 1素数判定部 143C及び第 2素数判定部 144Cから 構成されている。
[0234] 素数情報生成部 133Cは、繰返制御部 132C力も受け取った素数のビットサイズが 2倍のビットサイズからなる素数を生成する。例えば、 8ビットからなる素数を受け取つ た場合には、 16ビットからなる素数を生成し、 16ビットからなる素数を受け取った場合 には、 32ビットからなる素数を生成する。
なお、以下の説明において、繰返制御部 132C力 受け取る素数を素数「q」、その ビットサイズを「lenq」として、各構成要素について説明する。
[0235] <情報制御部 140C>
情報制御部 140Cは、第 1情報及び第 2情報を記憶するための情報記憶領域を有 している。
情報制御部 140Cは、証明書発行サーバ 200により割り当てられ、且つ制御情報「 情報 AB」に基づいて素数を生成する際に用いる素数「qg」とそのビットサイズ「lenqg 」とを予め記憶している割当素数記憶領域を有している。ここで、素数「qg」のビットサ ィズは、例えば、「64」ビットである。
[0236] 情報制御部 140Cは、繰返制御部 132Cから、素数「q」と、素数のビットサイズ「len q」と、制御情報とからなる第 1情報を受け取ると、受け取った第 1情報を情報記憶領 域へ書き込む。つまり、素数「q」と、素数のビットサイズ「lenq」と、制御情報 (この場合 、「情報 C」)とを書き込む。 情報制御部 140Cは、繰返制御部 132Cから、素数「q」と、素数のビットサイズ「len q」と、制御情報と、発行識別子情報「IDI」と、そのビットサイズ「lenIDI」とからなる第 2情報を受け取ると、受け取った第 2情報を情報記憶領域へ書き込む。つまり、素数「 q」と、素数のビットサイズ「lenq」と、制御情報、発行識別子情報「IDI」と、そのビット サイズ「lenIDI」とを書き込む。
[0237] 情報制御部 140Cは、受け取った情報の書き込み後、乱数の生成の指示を示す第 1生成指示を、乱数生成部 141Cへ出力する。
情報制御部 140Cは、第 2素数判定部 144Cより、素数を受け取ると、受け取った素 数を繰返制御部 132Cへ出力する。
情報制御部 140Cは、素数候補生成部 142Cから出力カウンタ 136Cの値を読み 出す旨の回数読出命令を受け取ると、繰返制御部 132Cの出力カウンタ 136Cの値 を読み出す。情報制御部 140Cは、読み出した値を、素数候補生成部 142Cへ出力 する。
[0238] <乱数生成部 141C>
乱数生成部 141Cは、乱数の生成の指示を示す第 1生成指示を、情報制御部 140 C力 受け取ると、情報制御部 140Cの情報記憶領域にて記憶されて 、る制御情報 を読み出す。乱数生成部 141Cは、読み出した制御情報が「情報 C」である力否かを 判断する。
[0239] 「情報 C」であると判断する場合には、乱数生成部 141Cは、情報制御部 140Cの情 報記憶領域にて記憶されて 、る rienqjを読み出し、(lenq— 1)ビットからなる乱数「R 1」を生成し、生成した乱数「R1」と読み出した制御情報とを素数候補生成部 142C へ出力する。ここで、乱数「R1」の最上位ビットは 1とする。乱数生成方法は、非特許 文献 2が詳しい。
[0240] 「情報 C」でないと判断する場合には、乱数生成部 141Cは、情報制御部 140Cの 情報記憶領域にて記憶されて 、る ienqjを、割当素数記憶領域にて記憶されて!、 る「lenqg」を、それぞれ読み出す。乱数生成部 141Cは、読み出した「lenq」及び「le nqg」を用いて、(lenq-2 X lenqg-l)ビットからなる乱数「R1」を生成し、生成した乱 数「R1」と読み出した制御情報とを素数候補生成部 142Cへ出力する。ここで、乱数 「R 1」の最上位ビットは 1とする。
[0241] また、乱数生成部 141Cは、第 1素数判定部 143及び第 2素数判定部 144の何れ かから、再度乱数を生成する旨の第 2生成指示を受け付けると、制御情報を情報記 憶領域より読み出し、上記の動作を行う。
<素数候補生成部 142C>
素数候補生成部 142Cは、生成された情報を記憶する生成情報記憶領域と、発行 識別子情報「IDI」と素数「qg」とから一意的に素数を生成する素数生成関数「gp」、 及び単射である関数「f」を予め記憶している関数記憶領域とを有している。
[0242] ここで、素数生成関数「gp」を用いた素数生成の一例を、以下に示す。
先ず、「c = 0」として、「2XqgXf(IDI | | c) + 1」が素数であるかを判定する。素 数である場合は、「gp(IDI, qg) = 2XqgXf (IDI | | c) +1」とする。素数でなけれ ば、「c」に「1」加算して、「2XqgXf(IDI | | c) + 1」が素数であるかを判定する。素 数であれば、「gp(IDI, qg)=2XqgXf(lDI | | c)+l」とする。素数でなければ、「 c」に「 1」加算して同様の判定を行!、素数になるまで繰り返す。このように関数「gp」を 定義するとき、関数「qg」と「f」とを保持していれば、発行識別子情報「IDI」に対して、 素数候補生成部 142Cは、何回素数生成関数により素数を生成しても、同じ素数を 生成するができる。このとき、「IDI」のビットサイズ及び「qg」のビットサイズ力 それぞ れ「32」ビット及び「64」ビットである場合には、「gp(IDI、 qg)」のビットサイズは、 128 ビットとなる。
[0243] 素数候補生成部 142Cは、乱数生成部 141Cより、乱数「R1」と制御情報とを受け 取ると、受け取った制御情報が「情報 C」である力否かの判断をする。
「情報 C」であると判断する場合には、素数候補生成部 142Cは、情報制御部 140 Cの情報記憶領域より素数「q」を読み出す。素数候補生成部 142Cは、読み出した 素数「q」と乱数生成部 141Cより受け取った乱数「R1」とを用いて、数「N = 2 X Rl X q+l」を生成する。素数候補生成部 142Cは、生成した数「N」のビットサイズ「lenN」 が「lenq」と一致するカゝ否かを判断し、一致すると判断する場合には、素数候補生成 部 142Cは、生成した数「N」を第 1素数判定部 143Cへ出力し、受け取った乱数「R1 」を、「R」として生成情報記憶領域に記憶する。 [0244] 一致しないと判断する場合には、素数候補生成部 142Cは、乱数生成部 141より受 け取った乱数「R1」に 2を掛けて、その結果を「R1」として、再度、上記の動作を行い 、数「N = 2 XRl X q+ l」を生成する。
制御情報が「情報 C」でな 、と判断する場合、つまり制御情報が「情報 AB」であると 判断する場合には、素数候補生成部 142Cは、情報制御部 140Cの情報記憶領域 より素数「q」及び発行識別子情報「IDI」を、割当素数記憶領域より素数「qg」を、そ れぞれ読み出す。
[0245] 素数候補生成部 142Cは、読み出した発行識別子情報「IDI」及び素数「qg」と、関 数記憶領域にて記憶して 、る関数「f」及び「gp」とを用いて、上記に示す方法にて、 素数「pIDI = gp (IDI、 qg)」を生成し、生成した素数「pIDI」を生成情報記憶領域へ feす。。
素数候補生成部 142Cは、生成情報記憶領域にて記憶している素数「pIDI」を読 み出し、読み出した素数「pIDI」と、受け取った乱数「R1」と、読み出した素数「q」とを 用いて、数「N = 2 XRl X q X pIDI+ l」を生成する。
[0246] 素数候補生成部 142Cは、生成した数「N」のビットサイズ「lenN」が「2 X lenqjであ るか否かを判断する。
「2 X lenq」であると判断する場合には、素数候補生成部 142Cは、生成した数「N」 を第 1素数判定部 143Cへ出力し、受け取った乱数「R1」を「R」として生成情報記憶 領域に記憶する。
[0247] 「2 X lenq」でないと判断する場合には、素数候補生成部 142Cは、乱数生成部 14 1Cより受け取った乱数「R1」に 2を掛けて、その結果を「R1」として、再度、数「N」を 生成する。
く第 1素数判定部 143C>
第 1素数判定部 143Cは、第 1の実施の形態にて示す第 1素数判定部 143と同様 であるため、説明は省略する。
[0248] <第 2素数判定部 144C>
第 2素数判定部 144Cは、第 1の実施の形態にて示す第 1素数判定部 144と同様 であるため、説明は省略する。 (2)発行公開鍵確認部 214C
発行公開鍵確認部 214Cは、図示していないが、サーバ情報記憶領域 220C及び 確認情報記憶領域 221Cを有して 、る。
[0249] サーバ情報記憶領域 220Cは、公開鍵証明書の発行依頼のあった鍵発行サーバ を識別するサーバ識別子を記憶する領域を有している。
確認情報記憶領域 221Cは、鍵発行サーバ 100に割り当てた素数「qg」とそのビッ トサイズ「lenqg」と、鍵発行サーバ 100にて記憶している素数生成関数及び単射関 数のそれぞれと同様の関数「gp」及び「f」を予め記憶して 、る。
[0250] 発行公開鍵確認部 214Cは、鍵発行サーバ 100から受信部 217を介して、発行識 別子情報「IDI」と、公開鍵「PK= (n、 e)」と、サーバ識別子と、証明書発行依頼情報 とを受け取る。
発行公開鍵確認部 214Cは、受け取ったサーバ識別子を、サーバ情報記憶領域 2 20Cに書き込む。
[0251] 発行公開鍵確認部 214Cは、受け取った公開鍵「PK」と発行識別子情報「IDI」とを 用いて、公開鍵「PK」が、発行識別子情報「IDI」を用いて生成されたカゝ否かを確認 する。
以下に、確認方法を示す。先ず、発行公開鍵確認部 214Cは、受け取った発行識 別子情報「IDI」と、記憶している素数「qg」、関数「gp」及び「f」とを用いて、素数「gp ( IDI、 qg)」を生成し、生成した素数素数「gp (IDI、 qg)」を確認情報記憶領域 221C へ書き込む。素数「gp (IDI、 qg)」の生成方法は、上記に示す方法と同様であるため 、説明は省略する。このとき、発行公開鍵確認部 214Cにて生成される素数「gp (IDI 、 qg)」は、鍵発行サーバの素数候補生成部 142Cにて生成される素数「pIDI」と同じ であることが分力ゝる。
[0252] 次に、発行公開鍵確認部 214Cは、確認情報記憶領域 221Cにて記憶している素 数「gp (IDI、 qg)」を読み出し、「n— 1」が、読み出した素数「gp (IDI、 qg)」で割り切 れるか否かを検証する。これにより、公開鍵「PK」が、発行識別子情報「IDI」を用い て生成されたカゝ否かを確認することができる。
発行公開鍵確認部 214Cは、「n-l」が、素数「gp (IDI、 qg)」で割り切れると判断す る場合には、公開鍵「PK」が、発行識別子情報「IDI」を用いて生成されたと判断し、 「n— 1」が、素数「gp (IDI、 qg)」で割り切れないと判断する場合には、公開鍵「PK」が 、発行識別子情報「IDI」を用いて生成されて 、な 、と判断する。
[0253] 発行公開鍵確認部 214Cは、公開鍵「PK」が、発行識別子情報「IDI」を用いて生 成されたと判断する場合には、受け取った公開鍵「PK」を発行公開鍵格納部 211へ 、発行識別子情報を発行識別子情報格納部 212へ、それぞれ書き込む。発行公開 鍵確認部 214Cは、公開鍵証明書の生成開始命令を公開鍵証明書生成部 215へ出 力する。
発行公開鍵確認部 214Cは、公開鍵「ΡΚ」が、発行識別子情報「IDI」を用いて生 成されて ヽな ヽと判断する場合には、処理を終了する。
[0254] (3)素数生成処理
本変形例に係る素数生成処理について、第 1実施の形態にて示した素数生成処 理と異なる点のみ説明する。なお、鍵発行処理の動作の流れは、第 1の実施の形態 と同様であるため、説明は省略する。
図 15に示す素数生成処理のステップ S425において、乱数生成部 141Cは、乱数 生成部 141Cは、情報制御部 140Cの情報記憶領域にて記憶されている「lenq」を、 割当素数記憶領域にて記憶されて 、る rienqgjを、それぞれ読み出すように変更す る。次に、ステップ S430において、乱数生成部 141Cは、読み出した「lenq」及び「le nqg」を用いて、(lenq-2 X lenqg-l)ビットからなる乱数「R1」を生成し、生成した乱 数「R1」と読み出した制御情報とを素数候補生成部 142Cへ出力するように変更する 。ここで、乱数「R1」の最上位ビットは 1とする。
[0255] (4)素数候補生成処理
本変形例に係る素数候補生成処理について、図 25に示す流れ図を用いて説明す る。
素数候補生成部 142Cは、乱数生成部 141Cより、乱数「R1」と制御情報とを受け 取ると (ステップ S 700)、受け取った制御情報が「情報 C」であるか否かの判断をする (ステップ S705)。
[0256] 「情報 C」であると判断する場合には (ステップ S705における「YES」 )、素数候補生 成部 142Cは、情報制御部 140Cの情報記憶領域より素数「q」を読み出す (ステップ S710)。素数候補生成部 142Cは、読み出した素数「q」と乱数生成部 141Cより受け 取つた乱数「R1」とを用いて、数「N = 2 XRl X q+ l」を生成する(ステップ S 715)。 素数候補生成部 142Cは、生成した数「N」のビットサイズ「lenN」が「lenq」と一致す る力否かを判断し (ステップ S720)、一致すると判断する場合には (ステップ S720に おける「YES」)、素数候補生成部 142Cは、生成した数「N」を第 1素数判定部 143C へ出力し、受け取った乱数「R1」を、「R」として生成情報記憶領域に記憶する (ステツ プ S755)。
[0257] 一致しないと判断する場合には (ステップ S720における「NO」)、素数候補生成部 142Cは、乱数生成部 141より受け取った乱数「R1」に 2を掛けて、その結果を「R1」 とし (ステップ S725)、ステップ S715へ戻る。
制御情報が「情報 C」でな 、と判断する場合 (ステップ S705における「NO」 )、つま り制御情報が「情報 AB」であると判断する場合には、素数候補生成部 142Cは、情 報制御部 140Cの情報記憶領域より素数「q」及び発行識別子情報「IDI」を、割当素 数記憶領域より素数「qg」を、それぞれ読み出す (ステップ S730)。
[0258] 素数候補生成部 142Cは、読み出した発行識別子情報「IDI」及び素数「qg」と、関 数記憶領域にて記憶して 、る関数「f」及び「gp」とを用いて、上記に示す方法にて、 素数「pIDI = gp (IDI、 qg)」を生成し、生成した素数「pIDI」を生成情報記憶領域へ 記憶する(ステップ S735)。
素数候補生成部 142Cは、生成情報記憶領域にて記憶している素数「pIDI」を読 み出し、読み出した素数「pIDI」と、読み出した素数「q」と、生成した素数「pIDI」とを 用いて、数「N = 2 XRl X q X pIDI + 1」を生成する(ステップ S 740)。
[0259] 素数候補生成部 142Cは、生成した数「N」のビットサイズ「lenN」が「2 X lenqjであ る力否かを判断する (ステップ S 745)。
「2 X lenqjであると判断する場合には (ステップ S745における「YES」 )、素数候補 生成部 142Cは、生成した数「N」を第 1素数判定部 143Cへ出力し、乱数「R1」を「R 」として生成情報記憶領域に記憶する (ステップ S755)。
[0260] 「2 X lenqjでな 、と判断する場合には (ステップ S745における「NO」 )、素数候補 生成部 142Cは、乱数生成部 141Cより受け取った乱数「R1」に 2を掛けて、その結 果を「R1」とし (ステップ S750)、ステップ S740へ戻る。
(5)証明書発行処理
本変形例に係る証明書発行処理について、第 1実施の形態にて示した証明書発 行処理と異なる点のみ説明する。
[0261] 発行公開鍵確認部 214Cは、ステップ S660にて、受け取った発行識別子情報「ID I」と、記憶している素数「qg」、関数「gp」及び「f」とを用いて、素数「gp(IDI、 qg)」を 生成し、確認情報記憶領域 221Cへ書き込むように変更する。ステップ S665におい ては、発行公開鍵確認部 214Cは、素数「gp(IDI、 qg)」を読み出し、受け取った公 開鍵「PK」及び発行識別子情報「IDI」と、読み出した素数「gp(IDI、 qg)」とを用いて 、公開鍵「PK」が、発行識別子情報「IDI」を用いて生成された力否かを確認する。
[0262] (6)素数の一意性及び確認方法の検証
上記と同様の証明により、素数生成部 116Cにて生成される素数の一意性は満たさ れる。つまり、端末装置ごとに、異なる発行識別子情報が生成されるため、素数生成 に用いる関数「f」の単射の性質により、生成される素数も異なる。これにより、端末装 置毎に、異なる秘密鍵及びそれに対応する公開鍵を割り当てることができる。
[0263] 上記に示した方法にて、証明書発行サーバは、鍵発行サーバが正しく発行識別子 情報 IDIを用いて生成して 、るかを確認することができる。
なぜなら、秘密鍵である素数「pl」、「p2」はそれぞれ、素数「ql」、「q2」、乱数「R1 1」、「R12」、及び素数「pIDI = gp(IDI、 qg)」を用いて、「pl = 2Xql XpIDIXRll + 1」、「p2 = 2Xq2XpIDIXR12+l」を満たすため、
n=plXp2= (2 Xql XpIDIXRll +1) X (2Xq2XpIDIXR12+l) = pIDIX (4XqlXq2XRllXR12XpIDI + 2XqlXRll + 2Xq2XR12) +1
となる。そのため、「n— 1」は「pIDI」で割り切れるため、「n— 1」が「pIDI」で割り切れる ことを確認することで、素数「pl」、「p2」が正しく発行識別子情報「IDI」を用いて生成 して 、るかを確認することができる。
[0264] (7)変形例 本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場 合も本発明に含まれる。
上記の変形例では、予め 1個の素数「qg」を記憶しているとしたが、これに限定され ない。鍵発行サーバは、予め 2つの素数「qgl」、 「qg2」を記憶しておき、素数「pl」を 生成する場合に、素数「qgl」を用い、素数「p2」を生成する場合に、素数「qg2」を用 いてもよい。
[0265] また、上記の変形例では、素数「pl」及び「p2」を生成する場合に用いる「pIDI」を 同一のものととした力 これに限定されない。例えば、素数「pl」の生成に用いる「c」 の値と、例えば、素数「p2」の生成に用いる「c」の値とを異なるように設定し、素数「pl 」及び「p2」を生成する場合に用いる、それぞれの「pIDI」の値を異なるようにしてもよ い。
[0266] 2.第 2の実施の形態
本発明に係る第 2の実施の形態としての鍵発行システム 2について、第 1の実施の 形態における鍵発行システム 1と異なる点を中心に説明する。
2. 1 鍵発行システム 2の概要
鍵発行システム 2は、図 26に示すように、鍵発行サーノ 1100、 1101、 1102と、鍵 発行監査サーノ 1200と、端末装置 1300、 1301、 · · ·、 1302、 1303、 · · ·、 1304、 1305、 · · ·、 1306から構成されている。端末装置の台数は、例えば 1000台である。
[0267] 鍵発行サーバ 1100、 1101及び 1102は、それぞれ異なる会社にて管理されてい る。端末装置 1300、 1301、 · · ·、 1302は、鍵発行サーバ 1100に対して、鍵の発行 要求し、端末装置 1303、 · · ·、 1304は、鍵発行サーバ 1101に対して、鍵の発行要 求し、端末装置 1305、 · · ·、 1306は、鍵発行サーバ 1102に対して、鍵の発行要求 をする。なお、端末装置 1300、 1301、 · · ·、 1302は、鍵発行サーバ 1100との間に は、安全な通信経路が確立されているものとする。また、端末装置 1303、 · · ·、 1304 と、鍵発行サーバ 1101との間、及び端末装置 1305、 · · ·、 1306は、鍵発行サーバ 1102との間においても、同様に、安全な通信経路が確立されているものとする。
[0268] また、鍵発行サーバ 1100、 1101、 1102と、鍵発行監査サーバ 1200との間にお いても、同様に、安全な通信経路が確立されているものとする。 なお、以下においては、鍵発行サーバ 1100、鍵発行監査サーバ 1200、及び端末 装置 1300を用いて、鍵発行システム 2の概要を説明する。
鍵発行サーバ 1100は、端末装置 1300より鍵の発行要求を受け取ると、 RSA暗号 における秘密鍵及び公開鍵を生成する。さらに、鍵発行サーバ 1100は、生成した公 開鍵に対する公開鍵証明書を生成し、生成した公開鍵証明書及び秘密鍵を、端末 装置 1300へ送信する。なお、ここで、生成する各鍵の鍵長は、 1024ビットとする。
[0269] 鍵発行サーバ 1100は、鍵発行監査サーバ 1200より、発行済みの公開鍵及び発 行識別子情報を要求する旨の発行済鍵依頼情報を受信すると、発行した公開鍵と、 公開鍵の生成に用いた発行識別子情報とからなる発行済鍵情報を鍵発行監査サー バ 1200へ送信する。
鍵発行監査サーバ 1200は、鍵発行サーバ 1100より発行済公開鍵情報を受け取 ると、発行された公開鍵の正当性を監査し、監査結果を表示する。
[0270] 端末装置 1300は、公開鍵証明書と、秘密鍵とを、鍵発行サーバ 1100より受け取る と、受け取った公開鍵証明書と、秘密鍵とを記憶する。
以降、例えば、端末装置 1400のユーザは、先ず、鍵発行サーバ 1100より、端末 装置 1300の公開鍵証明書を入手、又は端末装置 1300より公開鍵証明書を入手し 、鍵発行サーバ 1100が有し、公開鍵証明書の正当性を確認する際に用いる証明書 用公開鍵「C— PK」を用いて、公開鍵証明書の正当性を確認し、正当な公開鍵証明 書であると判断する場合に、入手した公開鍵証明書を、端末装置 1400にて記憶す る。端末装置 1400は、記憶している公開鍵証明書に含まれる公開鍵を用いて、端末 装置 1300へ送信する電子メールを暗号ィ匕して、暗号化された電子メールを端末装 置 1300へ送信する。
[0271] 端末装置 1300は、端末装置 1400より暗号ィ匕された電子メールを受信すると、記 憶している秘密鍵を用いて、暗号ィ匕された電子メールを復号して、復号された電子メ ールを表示する。
これにより、端末装置 1300と端末装置 1400との間では、安全にデータのやりとりが でさるよう〖こなる。
[0272] なお、端末装置 1301、 · · ·、 1302は、端末装置 1300と同様であるため、説明は省 略する。また、鍵発行サーバ 1101、及び 1102は、鍵発行サーバ 1100と同様である ため、説明は省略する。
以降の説明において、各端末装置の代表として端末装置 1300を、各鍵発行サー バの代表として鍵発行サーバ 1100を用いる。
[0273] 2. 2 鍵発行サーバ 1100の構成
鍵発行サーバ 1100は、図 27にて示すように、識別子格納部 1110、秘密鍵格納 部 1111、公開鍵格納部 1112、証明書格納部 1113、制御部 1114、識別子生成部 1115、素数生成部 1116、鍵判定部 1117、鍵生成部 1118、情報取得部 1119、受 信部 1120、送信部 1121、証明書生成部 1122、証明書用秘密鍵格納部 1123及び 発行済鍵情報格納部 1124から構成されて ヽる。
[0274] 鍵発行サーバ 1100は、具体的には、マイクロプロセッサ、 ROM、 RAM,ハードデ イスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュー タシステムである。前記 RAM又は前記ハードディスクユニットには、コンピュータプロ グラムが記憶されている。前記マイクロプロセッサ力 前記コンピュータプログラムに 従って動作することにより、鍵発行サーバ 1100は、その機能を達成する。
[0275] なお、鍵発行サーバ 1101、及び 1102は、鍵発行サーバ 1100と同様の構成であ るため、説明は省略する。
(1)識別子格納部 1110
識別子格納部 1110は、第 1の実施の形態における識別子格納部 1110と同様に、 ビットサイズが 126ビット以下である発行識別子情報を記憶するための領域を有して いる。発行識別子情報のビットサイズは、例えば、 64ビットである。
[0276] (2)秘密鍵格納部 1111
秘密鍵格納部 1111は、第 1の実施の形態における秘密鍵格納部 1111と同様に、 素数格納領域と秘密鍵格納領域とを有して ヽる。
(3)公開鍵格納部 1112
公開鍵格納部 1112は、第 1の実施の形態における公開鍵格納部 112と同様に、 公開鍵を記憶するための領域を有して 、る。
[0277] (4)証明書格納部 1113 証明書格納部 1113は、当該サーバにて生成した証明書発行サーバにて発行され た公開鍵証明書を記憶する領域を有して 、る。
(5)証明書用秘密鍵格納部 1123
証明書用秘密鍵格納部 1123は、公開鍵証明書を生成する際に用いられる証明書 用秘密鍵「C— SK」を、予め記憶している。
[0278] (6)制御部 1114
制御部 1114は、図 27に示すように、サーバ識別子記憶領域 1130と、端末情報記 憶領域 1131とを有している。
サーバ識別子記憶領域 1130は、当該サーバを識別するサーバ識別子を予め記 憶している。例えば、鍵発行サーバ 1100は、 SIDAを、鍵発行サーバ 1101は、 SID Bを、鍵発行サーバ 1102は、 SIDCを記憶している。なお、以降では、鍵発行サーバ 1100のサーバサーバ識別子を「SID」として説明する。ここでは、サーバ識別子のビ ットサイズを 31ビットとする。
[0279] 端末情報記憶領域 1131は、鍵発行の要求のあった端末装置を識別する端末識 別子を記憶する領域を有している。ここで、端末識別子は、例えば、端末装置のシリ アル番号である。ここでは、シリアル番号のビットサイズを 32ビットする。
制御部 1114は、端末装置 1300から受信部 1120を介して、鍵発行依頼情報と、 端末装置 1300の端末識別子「TID」とを受け取ると、受け取った端末識別子「TID」 を端末情報記憶領域 1131へ書き込む。制御部 1114は、発行識別子情報の生成命 令と、受け取った端末識別子「TID」とを識別子生成部 1115へ出力する。
[0280] 制御部 1114は、鍵発行監査サーバ 1200から受信部 1120を介して、発行済鍵依 頼情報を受け取ると、鍵情報取得命令を情報取得部 1119へ出力する。
(7)識別子生成部 1115
識別子生成部 1115は、第 1の実施の形態における識別子生成部 115と同様であ るため、説明は省略する。
[0281] (8)素数生成部 1116
素数生成部 1116は、第 1の実施の形態における素数生成部 116の素数の生成方 法と同様の方法にて、 512ビットの素数を生成する。 (9)鍵判定部 1117
鍵判定部 1117は、第 1の実施の形態における鍵判定部 117と同様であるため、説 明は省略する。
[0282] (10)鍵生成部 1118
鍵生成部 1118は、鍵判定部 1117より鍵生成命令を受け取ると、秘密鍵格納部 11 1の素数記憶領域にて記憶されている 2つの素数「pl」及び「p2」を読み出し、読み 出した素数「pl」と「p2」との積「n=pl X p2」を計算する。
鍵生成部 118は、乱数「e」を生成し、算出した「n」と、生成した乱数「e」とからなる 組「PK= (n、 e)」を公開鍵として生成し、生成した公開鍵「PK」を公開鍵格納部 112 へ書き込む。ここで、乱数「e」は、従来と同様に、乱数「e」は、数「L」と互いに素であ り、「l≤e≤L— 1、 GCD (e、 L) = 1」を満たす。ここで、 GCD (e、 L)は、 eと Lの最大 公約数を示し、数「L」は、「L=LCM (pl— 1、 p2— 1)」であり、 LCM (pl— 1、 p2— 1) は、「pl— 1」と「p2— 1」との最小公倍数を示す。
[0283] 鍵生成部 1118は、「e X d= l mod L」を満たす「d」を算出し、算出した「d」と、素 数「pl」及び「p2」と力 なる組「SK= (pl、 p2、 d)」を秘密鍵として、秘密鍵格納部 1 11の秘密鍵格納領域へ書き込む。鍵生成部 118は、公開鍵証明書の生成命令を、 証明書生成部 1122へ出力する。
(11)証明書生成部 1122
証明書生成部 1122は、鍵生成部 1118より公開鍵証明書の生成命令を受け取ると 、証明書用秘密鍵格納部より証明書用秘密鍵「C—SK」を、公開鍵格納部 1112より 公開鍵「PK」を、識別子格納部 1110より発行識別子情報「IDI」を、それぞれ読み出 す。
[0284] 証明書生成部 1122は、読み出した秘密鍵「C— SK」、公開鍵「PK」及び発行識別 子情報「IDI」を用いて、公開鍵証明書「 」を生成する。生成する公開鍵証明書「 Cert」は、具体的には、「Cert=n | | e | | IDI | | Sig (C— SK、 n | | e | | IDI ;)」である。ここで、 Sig (K、 D)は、データ「D」に対して、秘密鍵「K」を用いたときの署 名データである。記号「 I I」は、ビットまたはバイトの連結である。
[0285] 証明書生成部 1122は、生成した公開鍵証明書「Cert」を証明書格納部 1113へ書 き込み、公開鍵証明書「Cert」の配布開始命令を情報取得部 1119へ出力する。 (12)情報取得部 1119
情報取得部 1119は、証明書生成部 1122から配布開始命令を受け取ると、秘密鍵 格納部 1111にて記憶して!/、る秘密鍵「SK」と、証明書格納部 1113にて記憶して ヽ る公開鍵証明書「Cert」と、制御部 1114の端末情報記憶領域 1131にて記憶して 、 る端末識別子とを、それぞれ読み出し、読み出した秘密鍵「SK」及び公開鍵証明書 「Cert」を、読み出した端末識別子に対応する端末装置 1300へ送信部 1121を介し て送信する。
[0286] 情報取得部 1119は、秘密鍵「SK」及び公開鍵証明書「Cert」を、端末装置 1300 へ送信部 1121を介して送信した後、公開鍵格納部 1112より発行した公開鍵「PK = (n、 e)」を、識別子格納部 1110より発行した発行識別子情報「IDI」を、それぞれ読 み出し、読み出した公開鍵「PK」及び発行識別子情報「IDI」を 1つの組として、発行 済鍵情報格納部 1124へ書き込む。
[0287] 情報取得部 1119は、制御部 1114から鍵情報取得命令を受け取ると、発行済鍵情 報格納部 1124より、全ての発行済鍵情報を読み出す。情報取得部 1119は、制御 部 1114のサーバ識別子記憶領域 1130よりサーバ識別子を読み出し、読み出した 全ての発行済鍵情報とサーバ識別子とを、送信部 1121を介して鍵発行監査サーバ 1200へ送信する。
[0288] (13)発行済鍵情報格納部 1124
発行済鍵情報格納部 1124は、図 28に示すように、発行済鍵情報テーブル T110 0を有している。
発行済鍵情報テーブル T1100は、発行済公開鍵と、発行済識別子情報とからなる 組を 1以上記憶するための領域を有して 、る。
[0289] 発行済公開鍵は、当該鍵発行サーバにて発行した公開鍵であり、発行済識別子情 報は、公開鍵及びその公開鍵に対応する秘密鍵を生成する際に用いられた発行識 別子情報である。
上記により、鍵発行サーバ 1100は、発行した公開鍵と、発行した発行識別子情報 とを蓄積していくことができる。 [0290] なお、発行済鍵情報格納部 1124は、発行済公開鍵情報である発行履歴を格納す るために使用するため、電源が切れてもデータが消えない不揮発性メモリ(例えば、 ハードディスクなど)でなければならな 、。
(14)受信部 1120
受信部 1120は、鍵発行監査サーバ 1200及び端末装置 1300より情報を受信し、 受信した情報を、制御部 1114へ出力する。
[0291] (15)送信部 1121
送信部 1121は、情報取得部 1119より、秘密鍵「SK」及び公開鍵証明書「Cert」を 受け取り、受け取った各情報を、端末装置 1300に送信する。
送信部 1121は、情報取得部 1119より、 1以上の発行済鍵情報とサーバ識別子と を受け取ると、受け取った 1以上の発行済鍵情報とサーバ識別子とを鍵発行監査サ ーバ 1200へ送信する。
[0292] 2. 3 鍵発行監査サーバ 1200
鍵発行監査サーバ 1200は、図 29に示すように、確認情報格納部 1210、発行済 鍵情報格納部 1211、制御部 1212、発行公開鍵確認部 1213、受付部 1214、監査 結果出力部 1215、受信部 1216及び送信部 1217から構成されている。
鍵発行監査サーバ 1200は、具体的には、マイクロプロセッサ、 ROM、 RAM,ハー ドディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンビ ユータシステムである。前記 RAM又は前記ハードディスクユニットには、コンピュータ プログラムが記憶されている。前記マイクロプロセッサ力 前記コンピュータプログラム に従って動作することにより、鍵発行監査サーバ 1200は、その機能を達成する。
[0293] なお、鍵発行サーバ 1100から発行済鍵情報を受け取った場合の動作と、他の鍵 発行サーノから発行済鍵情報を受け取った場合の動作とは、同じであるため、以降 の説明では、鍵発行サーバ 100から送信された発行済鍵情報を用いて説明する。
(1)確認情報格納部 1210
確認情報格納部 1210は、図 30に示すように、検証値テーブル T1200を有してい る。検証値テーブル T1200は、サーバ識別子と、第 1検証値と、第 2検証値とからな る組を 1以上記憶する領域を有している。サーバ識別子は、鍵発行サーバを識別す る識別子であり、「SIDA」は、鍵発行サーバ 1100を示し、「SIDB」は、鍵発行サー ノ 1101を示し、「SIDB」は、鍵発行サーバ 1102を示す。第 1検証値及び第 2検証 値は、対応付けられたサーバ識別子にて示される鍵発行サーバに割り当てた検証値 である。なお、以降では、鍵発行サーバ 1100のサーバ識別子を「SID」として説明す る。
[0294] ( 2)発行済鍵情報格納部 1211
発行済鍵情報格納部 1211は、鍵発行サーバ 1100より送信された 1以上の発行済 鍵情報を記憶するための領域を有して 、る。
(3)制御部 1212
制御部 1212は、図 29に示すように、サーバ情報記憶領域 1220を有している。
[0295] サーバ情報記憶領域 220は、公開鍵証明書の発行依頼のあった鍵発行サーバを 識別するサーバ識別子を記憶する領域を有して 、る。
制御部 1212は、受付部 1214より、公開鍵の監査を開始する監査開始命令と、監 查対象のサーバ識別子 (ここでは、「SID」とする。)を受け付けると、発行済鍵依頼情 報を、送信部 1217を介してサーバ識別子に対応する鍵発行サーバ 1100へ送信す る。
[0296] 制御部 1212は、受付部 1214より受け取ったサーバ識別子をサーバ情報記憶領 域 1220へ書き込む。
制御部 1212は、鍵発行サーバ 1100から受信部 217を介して、 1以上の発行済鍵 情報とサーバ識別子とを受け取る。
制御部 1212は、受け取ったサーバ識別子と、サーバ情報記憶領域にて記憶して V、るサーバ識別子とがー致するか否かを判断する。
[0297] 一致すると判断する場合には、制御部 1212は、受け取った 1以上の発行済鍵情報 を発行済鍵情報格納部 1211へ書き込み、監査開始命令と受け取ったサーバ識別 子とを発行公開鍵確認部 1213へ出力する。
一致しないと判断する場合には、制御部 1212は、処理を終了する。
(4)発行公開鍵確認部 1213
発行公開鍵確認部 1213は、制御部 1212より監査開始命令とサーバ識別子とを受 け取ると、受け取ったサーバ識別子を用いて、対応する第 1検証値「cl l」及び第 2検 証値「c 12」を、確認情報格納部 1210から読み出す。
[0298] 発行公開鍵確認部 1213は、未読の発行済鍵情報のうち 1つの発行済鍵情報を、 発行済鍵情報格納部 1211から読み出す。
発行公開鍵確認部 1213は、読み出した発行済鍵情報に含まれる公開鍵「PK」と 発行識別子情報「IDI」と、第 1検証値「cl l」及び第 2検証値「cl2」とを用いて、公開 鍵「PK」が、発行識別子情報「IDI」を用いて生成されたカゝ否かを確認する。
[0299] ここで、確認方法は、第 1の実施の形態と同様であるため、説明は省略する。
発行公開鍵確認部 1213は、「n— (cl l X cl2)」が、「IDI」で割り切れると判断する 場合には、公開鍵「PK」が、発行識別子情報「IDI」を用いて生成されたと判断し、 Γη — (cl l X cl2)」が、「IDI」で割り切れないと判断する場合には、公開鍵「PK」が、発 行識別子情報「IDI」を用いて生成されて 、な 、と判断し、読み出した発行識別子情 報「IDI」を一時的に記憶する。
[0300] 発行公開鍵確認部 1213は、未読の発行済鍵情報が存在するか否かを判断し、未 読の発行済鍵情報が存在すると判断する場合には、上記の動作を繰り返す。未読の 発行済鍵情報が存在しないと判断する場合には、一時的に記憶している発行識別 子情報が存在するカゝ否かを判断する。
一時的に記憶している発行識別子情報が存在すると判断する場合には、発行公開 鍵確認部 1213は、記憶されている全ての発行識別子を連結し、不正発行識別子情 報群を生成し、生成した不正発行識別子情報群を監査結果出力部 1215へ出力す る。
[0301] 一時的に記憶している発行識別子情報が存在しないと判断する場合には、発行公 開鍵確認部 1213は、全ての公開鍵の正当性が確認されたことを示す旨の正当メッ セージを監査結果出力部 1215へ出力する。
(5)受付部 1214
受付部 1214は、ユーザの操作により、監査を開始する指示と、監査対象の鍵発行 サーバのサーバ識別子とを受け付けると、監査開始命令と、サーバ識別子を制御部 1212へ出力する。 [0302] (6)監査結果出力部 1215
監査結果出力部 1215は、発行公開鍵確認部 1213から不正発行識別子情報群を 受け取ると、受け取った不正発行識別子情報群をモニタ 1250へ出力する。
監査結果出力部 1215は、発行公開鍵確認部 1213から正当メッセージを受け取る と、受け取った正当メッセージをモニタ 1250へ出力する。
[0303] なお、モニタ 1250では、監査結果出力部 1215より受け取った情報を表示する。
(7)受信部 1216
受信部 1216は、鍵発行サーバ 1100より、 1以上の発行済鍵情報と、サーバ識別 子とを受信すると、受信した 1以上の発行済鍵情報と、サーバ識別子とを制御部 121 2へ出力する。
[0304] (8)送信部 1217
送信部 1217は、制御部 1212より、発行済鍵依頼情報を受け取ると、受け取った発 行済鍵依頼情報を鍵発行サーバ 1100へ送信する。
2. 4 端末装置 1300の構成
端末装置 1300は、第 1の実施の形態における端末装置 300と同様であるため、説 明は省略する。
[0305] なお、端末装置 1301、 · · ·、 1302、 1303、 · · ·、 1304、 1305、 · · ·、 1306【こつ!ヽ ても、端末装置 300と同様であるため、説明は省略する。
2. 5 鍵発行システム 2の動作
ここでは、鍵発行システム 2の動作にっ 、て説明する。
(1)鍵発行システム 2の動作概要
ここでは、鍵発行システム 2の動作概要を説明する。
[0306] 以下では、鍵発行サーバ 1100が端末装置 1300に鍵を発行するときの動作概要 を示す。
以降の説明において、 1以上の発行済鍵情報を発行済鍵情報群として、記述する <鍵発行時の動作概要 >
鍵発行時の動作概要を図 31に示す流れ図を用いて、説明する。 [0307] 端末装置 1300は、ユーザの操作により、鍵発行要求の指示を受け付けると、鍵発 行依頼情報と、端末識別子「TID」とを、鍵発行サーバ 100へ送信する (ステップ S10 00)。
鍵発行サーバ 1100は、鍵発行依頼情報と、端末識別子「TID」とを、端末装置 13 00より受信すると、鍵発行処理にて秘密鍵及び公開鍵を生成し (ステップ S 1005)、 証明書発行処理により、ステップ S1005にて生成した公開鍵に対する公開鍵証明書 を発行し、発行した公開鍵証明書と、ステップ S 1005にて生成した秘密鍵とを、端末 装置 1300へ送信する(ステップ S 1010)
端末装置 1300は、鍵発行サーバ 1100より、秘密鍵「SK」及び公開鍵証明書「Ce rt」を受信すると、受信した秘密鍵「SK」、及び公開鍵証明書「Cert」を記憶する (ス テツプ S 1015)。
[0308] <鍵の監査時の動作概要 >
鍵の監査時の動作概要を図 32に示す流れ図を用いて、説明する。
鍵発行監査サーバ 1200は、監査処理にて、発行済鍵依頼情報を鍵発行サーバ 1 100へ送信する(ステップ S 1050)。
鍵発行サーバ 1100は、鍵情報取得処理にて取得した発行済鍵情報群と、サーバ 識別子とを鍵発行監査サーバ 1200へ送信する (ステップ S 1055)。
[0309] (2)鍵発行処理
ここでは、図 31に示す鍵発行処理の動作について、第 1の実施の形態にて示す鍵 発行処理との異なる点のみを、図 11、図 12、図 13及び図 14に示す流れ図を用いて 、説明する。
本実施の形態に係る鍵発行処理は、図 11、図 12及び図 13に示すステップ S200 力もステップ S325まで実行する。
[0310] 本実施の形態に係る鍵発行処理は、図 13に示すステップ S330を、鍵生成部 111 8は、組「SK= (pl、 p2、 d)」を秘密鍵として、秘密鍵格納部 1111の秘密鍵格納領 域へ書き込み、公開鍵証明書の生成命令を、証明書生成部 1122へ出力するように 変更する。
本実施の形態に係る鍵発行処理は、変更後のステップ S330を実行すると、処理を 終了する。
[0311] (3)証明書発行処理
ここでは、図 31に示す鍵発行処理の動作について、図 33に示す流れ図を用いて、 説明する。
証明書生成部 1122は、鍵生成部 1118より公開鍵証明書の生成命令を受け取ると 、証明書用秘密鍵格納部より証明書用秘密鍵「C—SK」を、公開鍵格納部 1112より 公開鍵「PK」を、識別子格納部 1110より発行識別子情報「IDI」を、それぞれ読み出 す (ステップ S 1100)。
[0312] 証明書生成部 1122は、読み出した秘密鍵「C— SK」、公開鍵「PK」及び発行識別 子情報「IDI」を用いて、公開鍵証明書「 」を生成し、生成した公開鍵証明書「Ce rtjを証明書格納部 1113へ書き込み、公開鍵証明書「Cert」の配布開始命令を情 報取得部 1119へ出力する (ステップ S 1105)。
情報取得部 1119は、証明書生成部 1122から配布開始命令を受け取ると、秘密鍵 格納部 1111にて記憶して!/、る秘密鍵「SK」と、証明書格納部 1113にて記憶して ヽ る公開鍵証明書「Cert」と、制御部 1114の端末情報記憶領域にて記憶している端 末識別子とを、それぞれ読み出し、読み出した秘密鍵「SK」及び公開鍵証明書「Cer t」を、読み出した端末識別子に対応する端末装置 1300へ送信部 1121を介して送 信する (ステップ S 1110)。
[0313] 情報取得部 1119は、公開鍵格納部 1112より発行した公開鍵「PK= (n、 e)」を、 識別子格納部 1110より発行した発行識別子情報「IDI」を、それぞれ読み出し、読み 出した公開鍵「PK」及び発行識別子情報「IDI」を 1つの組として、発行済鍵情報格 納部 1124へ書き込む (ステップ S 1115)。
(4)鍵情報取得処理
ここでは、図 32に示す鍵情報取得処理の動作について、図 34に示す流れ図を用 いて、説明する。
[0314] 鍵発行サーバ 1100の制御部 1114は、鍵発行監査サーバ 1200から受信部 1120 を介して、発行済鍵依頼情報を受け取ると、鍵情報取得命令を情報取得部 1119へ 出力する(ステップ S 1200)。 鍵発行サーバ 1100の情報取得部 1119は、制御部 1114から鍵情報取得命令を 受け取ると、発行済鍵情報格納部 1124より、全ての発行済鍵情報を読み出す (ステ ップ S 1205)。
[0315] 情報取得部 1119は、制御部 1114のサーバ識別子記憶領域 1130よりサーバ識 別子を読み出し、読み出した発行済鍵情報群とサーバ識別子とを、送信部 1121を 介して鍵発行監査サーバ 1200へ送信する(ステップ S 1210)。
(5)監査処理
ここでは、図 32に示す監査処理の動作について、図 35に示す流れ図を用いて、説 明する。
[0316] 鍵発行監査サーバ 1200の受付部 1214は、ユーザの操作により、監査を開始する 指示と、監査対象の鍵発行サーバのサーバ識別子とを受け付けると、監査開始命令 と、サーバ識別子を制御部 1212へ出力する (ステップ S 1300)。
制御部 1212は、受付部 1214より、公開鍵の監査を開始する監査開始命令と、監 查対象のサーバ識別子 (ここでは、「SID」とする。)を受け付けると、発行済鍵依頼情 報を、送信部 1217を介してサーバ識別子に対応する鍵発行サーバ 1100へ送信す る(ステップ S 1305)。
[0317] 制御部 1212は、受付部 1214より受け取ったサーバ識別子をサーバ情報記憶領 域 1220へ書き込む(ステップ S 1310)。
制御部 1212は、鍵発行サーバ 1100から受信部 217を介して、 1以上の発行済鍵 情報とサーバ識別子とを受け取る (ステップ S 1315)。
制御部 1212は、受け取ったサーバ識別子と、サーバ情報記憶領域にて記憶して いるサーバ識別子とがー致するか否かを判断する (ステップ S 1320)。
[0318] 一致すると判断する場合には (ステップ S1320における「YES」)、制御部 1212は
、受け取った 1以上の発行済鍵情報を発行済鍵情報格納部 1211へ書き込み、監査 開始命令と受け取ったサーバ識別子とを発行公開鍵確認部 1213へ出力する (ステ ップ S 1325)。
発行公開鍵確認部 1213は、確認処理において、公開鍵の正当性の確認を行い、 結果をモニタ 1250にて表示する。 [0319] 一致しないと判断する場合には (ステップ S1320における「NO」)、制御部 1212は 、処理を終了する。
(6)確認処理
ここでは、図 35に示す確認処理の動作について、図 36に示す流れ図を用いて、説 明する。
[0320] 発行公開鍵確認部 1213は、制御部 1212より監査開始命令とサーバ識別子とを受 け取ると、受け取ったサーバ識別子を用いて、対応する第 1検証値「cl l」及び第 2検 証値「c 12」を、確認情報格納部 1210から読み出す (ステップ S 1400)。
発行公開鍵確認部 1213は、発行済鍵情報格納部 1211から、未読の発行済鍵情 報を 1つ読み出す (ステップ S 1405)。
[0321] 発行公開鍵確認部 1213は、読み出した発行済鍵情報に含まれる公開鍵「PK」と 発行識別子情報「IDI」と、第 1検証値「cl l」及び第 2検証値「cl2」とを用いて、公開 鍵「PK」が、発行識別子情報「IDI」を用いて生成されたカゝ否かを確認する (ステップ S1410)。なお、確認方法は、第 1の実施の形態と同様であるため、説明は省略する
[0322] 発行公開鍵確認部 1213は、「n— (cl l X cl2)」が、「IDI」で割り切れないと判断す る場合、つまり公開鍵が不正であると判断する場合 (ステップ S1410における「NO」)
、読み出した発行識別子情報「IDI」を一時的に記憶する (ステップ S1415)。
発行公開鍵確認部 1213は、「n— (cl l X cl2)」が、「IDI」で割り切れると判断する 場合、つまり公開鍵が正当であると判断する場合には (ステップ S1410における「YE
S」)、ステップ S1415を省略する。
[0323] 発行公開鍵確認部 1213は、未読の発行済鍵情報が存在するカゝ否かを判断し (ス テツプ S1420)、未読の発行済鍵情報が存在すると判断する場合には (ステップ S14
20における「YES」)、ステップ S1405へ戻る。
未読の発行済鍵情報が存在しないと判断する場合には (ステップ S1420における「
NO」)、一時的に記憶している発行識別子情報が存在するカゝ否かを判断する (ステツ プ S1425)。
[0324] 一時的に記憶して 、る発行識別子情報が存在すると判断する場合には (ステップ S 1425における「YES」)、発行公開鍵確認部 1213は、記憶されている全ての発行識 別子を連結し、不正発行識別子情報群を生成し、生成した不正発行識別子情報群 を、監査結果出力部 1215を介して、モニタ 1250にて表示する(ステップ S1430)。 一時的に記憶して 、る発行識別子情報が存在しな 、と判断する場合には (ステップ S1425における「NO」)、発行公開鍵確認部 1213は、全ての公開鍵の正当性が確 認されたことを示す旨の正当メッセージを、監査結果出力部 1215を介して、モニタ 1 250にて表示する(ステップ S1435)。
[0325] 3.まとめ
上記の第 1の実施の形態にて示す鍵発行サーバ 100の素数生成部 116の素数情 報生成部 133は、図 37に示す動作を繰り返すことにより、 8ビットの素数から 512ビッ トの素数を生成する。
素数情報生成部 133は、 8ビットの素数から 16ビットの素数を生成し (ステップ S17 00)、生成した 16ビットの素数から 32ビットの素数を生成し (ステップ S1705)、以降 順に、 32ビットの素数から 64ビットの素数、 64ビットの素数から 128ビットの素数、 12 8ビットの素数力も 256ビットの素数を生成し (ステップ S1710、 S1715、及び S1720 )、最後に、生成した 256ビットの素数から 516ビットの素数を生成する (ステップ S17 25)。
[0326] 素数生成部 116は、 8ビットから 128ビットの素数を生成する間は、制御情報「情報
C」により、従来と同様の生成方法にて、素数を生成する。
素数生成部 116は、ステップ S1720においては、制御情報「情報 B」により、生成さ れる素数が、発行識別子情報「IDI」に対して一意となるように、単射の関数「f」を用
V、て 256ビットの素数を生成する。
[0327] 素数生成部 116は、ステップ S1725においては、制御情報「情報 A」により、生成さ れる素数の正当性を確認できるように、発行識別子情報「IDI」を埋め込んだ 512ビッ トの素数を生成する。
これにより、鍵発行サーバ 100は、単射関数「f」を用いることにより、端末装置毎に 異なる秘密鍵及び公開鍵を生成することができる。また、鍵発行サーバ 100にて、 25
6ビットの素数力も 512ビットの素数を生成する際に、生成される素数に、発行識別子 情報「IDI」が埋め込まれているため、証明書発行サーバ 200は、生成された公開鍵 と発行識別子情報とを用いて、公開鍵の正当性を確認することができる。
[0328] なお、第 2の実施の形態においても、上記の記載と同様に、鍵発行サーバ 1100は 、単射関数「f」を用いることにより、端末装置毎に異なる秘密鍵及び公開鍵を生成す ることができる。また、鍵発行サーバ 1100にて、 256ビットの素数から 512ビットの素 数を生成する際に、生成される素数に、発行識別子情報「IDI」が埋め込まれている ため、鍵発行監査サーバ 1200は、生成された公開鍵と発行識別子情報とを用いて 、公開鍵の正当性を確認することができる。
[0329] 上記第 1の実施の形態によると、鍵発行サーバ 100は、単射の関数「f」を用いること により、複数回素数生成を行っても、素数が一致しないことを比較することなぐ証明 できる素数を生成することが実現できる。
上記第 1の実施の形態によると、鍵発行サーバ 100が、生成する素数に発行識別 子情報「IDI」を埋め込むことにより、証明書発行サーバ 200は、正しく鍵発行してい るかを発行識別子情報「IDI」で割り切れるカゝをチェックすることで確認できる。
[0330] 従来、 1台の鍵発行サーバを有する鍵発行システムがある。し力しながら、ユーザが 増加すると、素数を生成する際に、複数回べき乗を行うことにより計算量が大きくなる ため、計算時間が大きくなつてくる。そこで、鍵発行サーバを複数もち、それぞれで鍵 発行をすることにより、計算量の分散を図ることがある。し力しながら、複数台の鍵発 行サーバをもつ従来の鍵発行システムでは、例えば、 2人のユーザで同じ素数が鍵と なる場合がある。このとき、暗号の安全性が著しく低下する。なぜなら、例えば、ユー ザ Aの素数を ρΑ1、 pA2とし、 ηΑ=ρΑ1 X pA2、ユーザ Bの素数を ρΒ1、 pB2とし、 ηΒ=ρΒ1 Χ ρΒ2とする。このとき、 ρΑ1 =ρΒ1であれば、ユーザ Aは GCD (pAl, n B)を求めることにより、ユーザ Bの素数の一つが pAlと等しいことがわかり、その結果 、 nBZpAlを計算することにより、 pB2も得ることができる。 RSA暗号は、素因数分 解を安全性の根拠としているため、素因数が判明すると、簡単に解読可能になる。そ のため、ユーザ Aはユーザ Bの公開鍵で暗号ィ匕した暗号文を解ける。また、同様に、 ユーザ Bはユーザ Aの公開鍵で暗号ィ匕した暗号文を解けてしまう。
[0331] 従来技術では、複数回素数生成を行ったときに素数が一致する可能性があり、そ れにより、暗号の安全性を著しく低下させる。それに対しては、発行済の素数 (秘密 鍵)と発行した素数を比較することにより、一致しないことを確認できる。しかし、通常 の公開鍵暗号のシステムでは、発行した後の公開鍵は鍵発行サーバで管理する力 秘密鍵は機密性が高いため、削除してしまうことが多い。そのため、新たに発行済の 素数 (秘密鍵)を管理する必要がある。さらに、発行数が 10億個程度に大きさになる と、比較する時間が大きく現実的でない。
[0332] また、複数の鍵発行サーバで発行した場合、すべての鍵発行サーバで発行した素 数が一致させないため、各鍵発行サーバ間で、発行した素数、すなわち、秘密鍵を 互いにチェックさせる必要がある。各鍵発行サーバ間で信頼関係がある場合は問題 ないが、各鍵発行サーバはそれぞれ別の会社が設置することが多いため、信頼でき るとは限らない。さらに、もし、各鍵発行サーバ間で信頼関係がある場合であっても、 鍵を発行するたびに、各鍵発行サーバの秘密鍵のデータベースにアクセスするため 、各鍵発行サーバ間の通信量が大きくなる。このように各鍵発行サーバ間で互いに チェックすることも現実的でな 、。
[0333] 本発明の鍵発行サーバを用いると、素数の生成を複数回行っても、素数が一致し ないことを比較することなぐ証明できる。
3. 1 変形例
本発明を上記の第 1、第 2実施の形態及び素数生成の変形例 1、 2、 3に基づいて 説明してきた力 本発明は、上記の実施の形態に限定されないのはもちろんである。 以下のような場合も本発明に含まれる。
[0334] (1)発行識別子情報「IDI」は、サーバ識別子、端末識別子及び数「1」の連結から なるとしたが、これに限定されない。 IDIはサーバ識別子と、カウンタにより生成される 発行識別子「PID」とを用いて生成してもよい。ここで、発行識別子「PID」は、 1から 発行順に割り当てられた奇数である。このとき、識別子生成部 115は、素数を発行( 生成)するたびに、数「2」をインクリメントしていくことで、容易に毎回異なる素数を生 成でさること〖こなる。
[0335] (2) 128ビットから 256ビットの素数を生成する際に、単射関数を用いたが、これに 限定されない。発行識別子情報を埋め込む前であれば、単射関数を施す動作は、ど の段階でもよい。
例えば、 8ビットの素数から 16ビットの素数を生成する際に、単射関数を施してもよ い。または、 16ビットの素数から 32ビットの素数を生成する際に、単射関数を施して もよい。または、 32ビットの素数から 64ビットの素数を生成する際に、単射関数を施し てもよい。または、 64ビットの素数から 128ビットの素数を生成する際に、単射関数を 施してちょい。
[0336] ただし、発行識別子「IDI」のビット数は、入力の用いられる素数「q」のビット数よりも 小さく、乱数「R1」のビット数は、(lenq— lenlDI— 1)ビットであり、数「R」のビット数は、 (lenq— 1)ビットである。
(3)第 1の実施の形態における素数生成部 116を、 1つの素数生成装置としてもよ い。このとき、素数生成装置は、発行識別子情報「IDI」とそのビットサイズ「lenIDI」が 与えられた場合、与えられた「IDI」及びそのビットサイズ「lenIDI」と、予め記憶されて いる 8ビットの素数とから、 512ビットの素数を生成する。
[0337] また、第 2の実施の形態における素数生成部 1116も同様に、 1つの素数生成装置 としてちよい。
(4)第 1の実施の形態における素数生成部 116を、予め記憶している 8ビットの素 数から 128ビットの素数を生成する第 1素数生成部と、 128ビットの素数から 512ビッ トの素数を生成する第 2素数生成部とからなるとしてもよい。また、第 1素数生成部及 び第 2素数生成部を、それぞれ個別の素数生成装置としてもよ!、。
[0338] 第 1素数生成部は、従来と同様の方法にて、 8ビットの素数から 128ビットの素数を 生成する。従来の方法については、特許文献 1及び非特許文献 3が詳しい。
以下に、第 2素数生成部の構成の一例を、図 38に示す。ここでは、第 2素数生成部 を 1つの素数生成装置 2100として説明する。素数生成装置 2100は、素数「ql」と、 そのビットサイズ「lenql」(ここでは、ビットサイズを 128ビットとする。)と、発行識別子 情報「IDI」と、そのビットサイズ「lenIDI」とが与えられた場合に、(4 X lenql)ビットか らなる素数「N」を出力する。なお、ここで示す素数生成装置 2100は、第 1の実施の 形態にて示す第 1及び第 2検証値を用いな 、で、素数「N」を生成する。
[0339] 素数生成装置 2100は、図 38に示すように、受付部 2101、受付情報記憶部 2102 、素数シード生成部 2103、乱数生成部 2104、素数候補生成部 2105、第 1素数判 定部 2106及び第 2素数判定部 2107から構成されている。
素数生成装置 2100は、具体的には、マイクロプロセッサ、 ROM, RAM,ハードデ イスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュー タシステムである。前記 RAM又は前記ハードディスクユニットには、コンピュータプロ グラムが記憶されている。前記マイクロプロセッサ力 前記コンピュータプログラムに 従って動作することにより、素数生成装置 2100は、その機能を達成する。
[0340] <受付情報記憶部 2102>
受付情報記憶部 2102は、素数「N」を生成する際に与えられた素数「ql」、素数「q 1」のビットサイズ「lenql」、発行識別子情報「IDI」及び発行識別子情報のビットサイ ズ「lenIDI」を記憶する領域を備えて!/、る。
<受付部 2101 >
受付部 2101は、素数「ql」、素数「ql」のビットサイズ「lenql (例えば、 128ビット)」 、発行識別子情報「IDI」及び発行識別子情報のビットサイズ「lenIDI」を、外部 (例え ば、上記に示す第 1素数生成部)より受け付け、受け付けた素数「ql」、そのビットサ イス、 rienq 1」、発行識別子情報「IDI」及びそのビットサイズ「lenIDI」を受付情報記 憶部 2102へ書き込む。
[0341] 受付部 2101は、受け付けた各情報を、素数シード生成部 2103へ出力する。
<素数シード生成部 2103 >
素数シード生成部 2103は、上記第 1の実施の形態にて示す素数生成部 116にお いて、制御情報装が「情報 B」の場合に行う動作と同様の動作を行うので、ここでの説 明は省略する。なお、ここでは、 128ビットの素数「ql」から 256ビットの素数「q2」を 生成するものとする。
[0342] 素数シード生成部 2103、生成した素数「q2」を素数候補生成部 2105へ出力する
<乱数生成部 2104 >
乱数生成部 2104は、第 1生成指示を、素数候補生成部 2105から受け取ると、素 数「ql」のビットサイズ「lenql」と、発行識別子情報「IDI」のビットサイズ「lenIDI」とを 、受付情報記憶部 2102より読み出す。
[0343] 乱数生成部 2104は、読み出したビットサイズ「lenql」及び「lenIDI」を用いて、(2
X lenql-lenIDI-1)ビットの乱数「R1」を生成する。ここで、乱数「R1」の最上位ビッ トは 1とする。
乱数生成部 2104は、生成した乱数「R1」を素数候補生成部 2105へ出力する。 また、乱数生成部 2104は、第 1素数判定部 2106及び第 2素数判定部 2107の何 れかから、再度乱数を生成する旨の第 2生成指示を受け付けると、各ビットサイズを 読み出し、上記の動作を行う。
[0344] <素数候補生成部 2105 >
素数候補生成部 2105は、生成された数を記憶する生成情報記憶領域とを有して いる。
素数候補生成部 2105は、素数シード生成部 2103より素数「q2」を受け取ると、第 1生成指示を乱数生成部 2104へ出力する。
[0345] 素数候補生成部 2105は、乱数生成部 2104より、乱数「R1」を受け取ると、受付情 報記憶部 2102にて記憶して 、る発行識別子情報「IDI」を読み出す。
素数候補生成部 2105は、素数シード生成部 2103より受け取った素数「q2」、受付 情報記憶部 2102より読み出した発行識別子情報「IDI」及び乱数生成部 2104より 受け取った乱数「R1」とを用いて、数「R=IDI XR1」と、数「N = 2 XRX q2+ l」とを 生成する。
[0346] 素数候補生成部 2105は、素数「ql」のビットサイズ「lenql」を、受付情報記憶部 2 102より読み出し、生成した数「N」のビットサイズが「4 X lenql」であるか否かを判断 する。
「4 X lenql」であると判断する場合には、素数候補生成部 2105は、生成した数「N 」を第 1素数判定部 2106へ出力し、生成した数「R」を生成情報記憶領域に記憶する
[0347] 「4 X lenql」でないと判断する場合には、素数候補生成部 2105は、乱数生成部 2 104より受け取った乱数「R1」に 2を掛けて、その結果を「R1」として、再度、上記の動 作を行 ヽ、数「R」及び「N」を生成する。 素数候補生成部 2105は、数「N」のビットサイズが、「4 X lenql」となるまで、上記 の動作を繰り返す。
[0348] く第 1素数判定部 2106〉
第 1素数判定部 2106は、第 1の実施の形態にて示す第 1素数判定部 143と同様の 動作であるため、ここでの説明は省略する。
く第 2素数判定部 2107〉
第 2素数判定部 2107は、第 1の実施の形態にて示す第 2素数判定部 144と同様の 動作であるため、ここでの説明は省略する。
[0349] なお、第 2素数判定部 2107は、判定により、生成した数「N」が素数であると判断す る場合には、生成した数「N」を素数「N」として出力する。
<素数生成装置 2100の動作 >
以下に、素数生成装置 2100の動作について説明する。
(素数生成処理)
ここでは、素数生成装置 2100にて行われる素数生成処理について、図 39に示す 流れ図を用いて、説明する。
[0350] 素数生成装置 2100は、受付部 2101において、素数「ql」、素数「ql」のビットサイ ズ「lenq 1」、発行識別子情報「IDI」及び発行識別子情報のビットサイズ「lenIDI」を 受け付け、受け付けた各情報を受付情報記憶部 2102へ書き込む (ステップ S2000) 素数生成装置 2100は、素数シード生成部 2103において、ステップ S2000にて受 け付けた各情報を用いて、素数「q2」を生成する (ステップ S 2005)。
[0351] 素数生成装置 2100は、乱数生成部 2104において、ステップ S2000にて受け付 けたビットサイズ「lenql」及び「lenIDI」を用いて、(2 X lenql— lenlDI— 1)ビットの乱 数「R1」を生成する (ステップ S2010)。ここで、乱数「R1」の最上位ビットは 1とする。 素数生成装置 2100は、素数候補生成部 2105において、ステップ S2000にて受 け付けられた発行識別子情報「IDI」、ステップ S2005にて生成された素数「q2」及び ステップ S2010にて生成された乱数「R1」とを用いて、素数候補生成処理を施すこと により、数「R」及び「N」を生成する (ステップ S2015)。素数生成装置 2100は、第 1 素数判定部 2106において、ステップ S2015にて生成した数「N」を用いて、上記に 示す式(eql)が成立するか否かを判定する(ステップ S2020)。
[0352] 式(eql)が成立していると判断する場合には (ステップ S2020における「YES」)、 素数生成装置 2100は、第 2素数判定部 2107において、ステップ S2015にて生成し た数「R」と「N」とを用いて、上記に示す式 (eq2)が成立するか否かを判定する (ステ ップ S 2025)。
式(eq2)が成立して!/、ると判断する場合には (ステップ S2025における「YES」 )、 素数生成装置 2100は、数「N」を素数「N」として出力し、処理を終了する (ステップ S 2030)。
[0353] 式 (eql)が成立していないと判断する場合 (ステップ S 2020における「NO」)、及び 式(eq2)が成立して!/ヽな!、と判断する場合には(ステップ S2025における「NO」)、 ステップ S2010に戻り、再度処理を行う。
(素数候補生成処理)
ここでは、素数生成処理のステップ S2015にて行われる素数候補生成処理につい て、図 40に示す流れ図を用いて説明する。
[0354] 素数候補生成部 2105は、素数生成処理のステップ S2000にて受け付けた発行識 別子情報「IDI」と、ステップ S 2010にて生成した乱数「R1」とを用いて、数「R」を生 成する(ステップ S 2050)。ここで、数「R」は「R = IDI XR1」である。
素数候補生成部 2105は、素数生成処理のステップ S2005にて生成された素数「q
2」と、ステップ S2050にて生成された数「R」とを用いて、数「N」を生成する(ステップ
S2055)。ここで、数「N」は、「N = 2 XR X q2+ l」である。
[0355] 素数候補生成部 2105は、生成した数「N」のビットサイズが「4 X lenql」であるか否 かを判断する(ステップ S 2060)。
「4 X lenql」であると判断する場合には (ステップ S2060における「YES」)、処理を 終了する。「4 X lenq 1」でな!/、と判断する場合には (ステップ S 2060における「NO」)
、素数生成処理のステップ S 2010にて生成した乱数「R1」に 2を掛けて、その結果を
「R1」として、ステップ S2050へ戻る(ステップ S2065)。
[0356] <その他 > ここでは、生成する秘密鍵である素数のビットサイズは 512ビットとしている力 これ に限定されない。 1024ビットであっても、 2048ビットであってもよい。また、上記の第 1素数生成部で生成する素数も同様に 128ビットに限らない。
(5)上記に示す素数シード生成部 2103を 1つの素数生成装置としてもよい。以下 に、この場合の素数生成装置 2200について、説明する。素数生成装置 2200は、素 数「q」と、そのビットサイズ「lenq」(ここでは、ビットサイズを 128ビットとする。)と、発行 識別子情報「IDI」と、そのビットサイズ「lenIDI」とが与えられた場合に、(2 X lenq)ビ ットからなる素数「N」を出力する。
[0357] 素数生成装置 2200は、図 41に示すように、受付部 2201、受付情報記憶部 2202 、乱数生成部 2203、素数候補生成部 2204、第 1素数判定部 2205及び第 2素数判 定部 2206から構成されて 、る。
素数生成装置 2200は、具体的には、マイクロプロセッサ、 ROM, RAM,ハードデ イスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュー タシステムである。前記 RAM又は前記ハードディスクユニットには、コンピュータプロ グラムが記憶されている。前記マイクロプロセッサ力 前記コンピュータプログラムに 従って動作することにより、素数生成装置 2200は、その機能を達成する。
[0358] <受付情報記憶部 2202 >
受付情報記憶部 2202は、素数「N」を生成する際に与えられた素数「q」、素数「q」 のビットサイズ「lenq」、発行識別子情報「IDI」及び発行識別子情報のビットサイズ「1 enlDIjを記憶する領域を備えて 、る。
<受付部 2201 >
受付部 2201は、素数「q」、素数「q」のビットサイズ「lenq」、発行識別子情報「IDI」 及び発行識別子情報のビットサイズ「lenIDI」を、外部 (例えば、上記に示す第 1素数 生成部)より受け付け、受付部 2201は、受け付けた素数「q」、そのビットサイズ「lenq 」、発行識別子情報「IDI」及びそのビットサイズ rienlDIjを受付情報記憶部 2202へ 書き込む。
[0359] 受付部 2201は、処理を開始する旨の開始指示を素数候補生成部 2204へ出力す る。 <乱数生成部 2203 >
乱数生成部 2203は、乱数を生成する旨の第 1生成指示を、素数候補生成部 220 4から受け取ると、素数「q」のビットサイズ「lenq」と、発行識別子情報「IDI」のビットサ ィズ「lenIDI」とを受付情報記憶部 2202より読み出す。
[0360] 乱数生成部 2203は、読み出したビットサイズ「lenq」及び「lenIDI」を用いて、(len q— lenlDI— 1)ビットの乱数「R1」を生成する。ここで、乱数「R1」の最上位ビットは 1と する。乱数生成方法は、非特許文献 2が詳しい。
乱数生成部 2203は、生成した乱数「R1」を素数候補生成部 2204へ出力する。 また、乱数生成部 2203は、第 1素数判定部 2205及び第 2素数判定部 2206の何 れかから、再度乱数を生成する旨の第 2生成指示を受け付けると、各ビットサイズを 読み出し、上記の動作を行う。
[0361] <素数候補生成部 2204 >
素数候補生成部 2204は、単射である関数「f」を予め記憶している関数記憶領域と 、関数「f」を用いて生成された数を記憶する生成情報記憶領域とを有して 、る。 素数候補生成部 2204は、受付部 2201より開始指示を受け取ると、第 1生成指示 を乱数生成部 2203へ出力する。
[0362] 素数候補生成部 2204は、乱数「R1」を乱数生成部 2203より受け取ると、受付情 報記憶部 2202にて記憶している素数「q」及び発行識別子情報「IDI」を読み出す。 素数候補生成部 2204は、関数記憶領域にて記憶している関数「f」と、読み出した 素数「q」及び発行識別子情報「IDI」と、乱数生成部 2203より受け取った乱数「R1」 とを用いて、数「R = f (IDI I I Rl)」と、数「N = 2 XRX q+ l」とを生成する。
[0363] 素数候補生成部 2204は、生成した数「N」のビットサイズが「2 X lenq」であるか否 かを判断する。
「2 X lenq」であると判断する場合には、素数候補生成部 2204は、生成した数「N」 を第 1素数判定部 2205へ出力し、生成した数「R」を生成情報記憶領域に記憶する
[0364] 「2 X lenqjでな 、と判断する場合には、素数候補生成部 2204は、乱数生成部 22 03より受け取った乱数「R1」に 2を掛けて、その結果を「R1」として、再度、上記の動 作を行 、、上記の式を満たす数「R」及び「N」を生成する。
素数候補生成部 2204は、生成した数「N」のビットサイズが、「2 X lenq」となるまで 、上記の動作を繰り返す。
[0365] <第 1素数判定部 2205 >
第 1素数判定部 2205は、第 1の実施の形態にて示す第 1素数判定部 143と同様の 動作であるため、ここでの説明は省略する。
く第 2素数判定部 2206 >
第 2素数判定部 2206は、第 1の実施の形態にて示す第 2素数判定部 144と同様の 動作であるため、ここでの説明は省略する。
[0366] なお、第 2素数判定部 2206は、判定により、生成した数「N」が素数であると判断す る場合には、生成した数「N」を素数「N」として出力する。
<素数生成装置 2200の動作 >
以下に、素数生成装置 2200の動作について説明する。
(素数生成処理)
ここでは、素数生成装置 2200にて行われる素数生成処理について、図 39に示す 流れ図を用いて、変更点のみ説明する。
[0367] 素数生成装置 2200は、ステップ S2000において、素数「q」、素数「q」のビットサイ ズ「lenq」、発行識別子情報「IDI」及び発行識別子情報のビットサイズ「lenIDI」を、 ユーザ操作により受け付け、受け付けた各情報を受付情報記憶部 2202へ書き込む ように変更する。
素数生成装置 2200は、上記のように変更されたステップ S2000の実行後、ステツ プ S2005を省略し、以下のように変更されたステップ S2010を実行する。素数生成 装置 2200は、ステップ S 2010において、(lenq— lenlDI— 1)ビットの乱数「R1」を生 成するように変更する。
[0368] 以降の動作の流れは、図 39と同様であるため、説明は省略する。
(素数候補生成処理)
ここでは、素数候補生成処理について、図 40に示す流れ図を用いて、変更点のみ 説明する。 先ず、ステップ S2050を、数「R=f (IDI I I Rl)」を生成するように変更する。
[0369] 次に、ステップ S 2055を、数「N = 2 XRX q + 1」を生成するように変更する。
以降の動作の流れは、図 40と同様であるため、説明は省略する。
(6)素数生成変形例 3における素数生成部 116Cを、予め記憶している 8ビットの素 数から 256ビットの素数を生成する第 1素数生成部と、 256ビットの素数から 512ビッ トの素数を生成する第 2素数生成部とからなるとしてもよい。また、第 1素数生成部及 び第 2素数生成部を、それぞれ個別の素数生成装置としてもよ!、。
[0370] 第 1素数生成部は、従来と同様の方法にて、 8ビットの素数から 256ビットの素数を 生成する。
以下に、第 2素数生成部の構成の一例を、図 42に示す。ここでは、第 2素数生成部 を 1つの素数生成装置 2300として説明する。素数生成装置 2300は、素数「q」と、そ のビットサイズ「lenq」(ここでは、ビットサイズを 128ビットとする。)と、発行識別子情 報「IDI」と、そのビットサイズ「lenIDI」とが与えられた場合に、(2 X lenq)ビットからな る素数「N」を出力する。なお、ここで示す素数生成装置 2300は、第 1の実施の形態 にて示す第 1及び第 2検証値を用 、な 、で、素数「N」を生成する。
[0371] 素数生成装置 2300は、図 42にて示すように、受付部 2301、受付情報記憶部 230 2、識別子素数生成部 2303、乱数生成部 2304、素数候補生成部 2305、第 1素数 判定部 2306及び第 2素数判定部 2307から構成されている。
素数生成装置 2300は、具体的には、マイクロプロセッサ、 ROM, RAM,ハードデ イスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュー タシステムである。前記 RAM又は前記ハードディスクユニットには、コンピュータプロ グラムが記憶されている。前記マイクロプロセッサ力 前記コンピュータプログラムに 従って動作することにより、素数生成装置 2300は、その機能を達成する。
[0372] <受付情報記憶部 2302 >
受付情報記憶部 2302は、素数「N」を生成する際に与えられた素数「q」、素数「q」 のビットサイズ「lenq」、発行識別子情報「IDI」及び発行識別子情報のビットサイズ「1 enlDIjを記憶する領域を備えて 、る。
<受付部 2301 > 受付部 2301は、素数「q」、素数「q」のビットサイズ「lenq」、発行識別子情報「IDI」 及び発行識別子情報のビットサイズ「lenIDI」を、外部 (例えば、第 1の素数生成部) より受け付け、受け付けた素数「q」、そのビットサイズ「lenq」、発行識別子情報「IDI」 及びそのビットサイズ「lenIDI」を受付情報記憶部 2302へ書き込む。
[0373] 受付部 2301は、処理を開始する旨の開始指示を、識別子素数生成部 2303へ出 力する。
<識別子素数生成部 2303 >
識別子素数生成部 2303は、素数「qg」及びそのビットサイズ「lenqg」を予め記憶し ている。
[0374] 識別子素数生成部 2303は、発行識別子「IDI」と素数「qg」力も一意的に素数を生 成する素数生成関数「gp」と、単射の関数「f」とを予め記憶している。
識別子素数生成部 2303は、受付部 2301より開始指示を受け取ると、発行識別子 情報「IDI」を、受付情報記憶部 2302より読み出す。
識別子素数生成部 2303は、予め記憶している素数「qg」及び素数生成関数「gp」 と、読み出した発行識別子情報「IDI」より、素数「pIDI = gp (IDI, qg)」を生成する。 素数「pIDI」の生成方法は、素数生成の変形例 3にて示す方法と同様であるため、説 明は省略する。
[0375] 識別子素数生成部 2303は、生成した素数「pIDI」を素数候補生成部 2305へ出力 する。
<乱数生成部 2304 >
乱数生成部 2304は、第 1生成指示を、素数候補生成部 2305から受け取ると、素 数「q」のビットサイズ「lenq」を、受付情報記憶部 2302より読み出し、素数「qg」のビッ トサイズ「lenqg」を識別子素数生成部 2303より読み出す。
[0376] 乱数生成部 2304は、読み出したビットサイズ「lenq」及び「lenqg」を用いて、(lenq — 2 X lenqg— 1)ビットの乱数「R」を生成する。ここで、乱数「R」の最上位ビットは 1と する。
乱数生成部 2304は、生成した乱数「R」を素数候補生成部 2305へ出力する。 また、乱数生成部 2304は、第 1素数判定部 2306及び第 2素数判定部 2307の何 れかから、再度乱数を生成する旨の第 2生成指示を受け付けると、各ビットサイズを 読み出し、上記の動作を行う。
[0377] <素数候補生成部 2305 >
素数候補生成部 2305は、識別子素数生成部 2303より素数「pIDI」を受け取ると、 第 1生成指示を乱数生成部 2304へ出力する。
素数候補生成部 2305は、乱数生成部 2304より、乱数「R」を受け取ると、受付情 報記憶部 2302にて記憶している素数「q」を読み出す。
[0378] 素数候補生成部 2305は、識別子素数生成部 2303より受け取った素数「pIDI」、 受付情報記憶部 2302より読み出した素数「q」及び乱数生成部 2304より受け取った 乱数「R」とを用いて、「N = 2 X R X q X pIDI + 1」を生成する。
素数候補生成部 2305は、素数「q」のビットサイズ「lenq」を、受付情報記憶部 230 2より読み出し、生成した数「N」のビットサイズが「2 X lenqjであるか否かを判断する
[0379] 「2 X lenq」であると判断する場合には、素数候補生成部 2305は、生成した数「N」 を第 1素数判定部 2306へ出力し、乱数「R」を一時的に記憶する。
「2 X lenq」でないと判断する場合には、素数候補生成部 2305は、乱数生成部 23 04より受け取った乱数「R」に 2を掛けて、その結果を「R」として、再度、上記の動作を 行い、数「N」を生成する。
[0380] 素数候補生成部 2305は、数「N」のビットサイズが、「2 X lenq」となるまで、上記の 動作を繰り返す。
く第 1素数判定部 2306 >
第 1素数判定部 2306は、第 1の実施の形態にて示す第 1素数判定部 143と同様の 動作であるため、ここでの説明は省略する。
[0381] <第 2素数判定部 2307 >
第 2素数判定部 2307は、第 1の実施の形態にて示す第 2素数判定部 144と同様の 動作であるため、ここでの説明は省略する。
なお、第 2素数判定部 2307は、判定により、生成した数「N」が素数であると判断す る場合には、生成した数「N」を素数「N」として出力する。 [0382] <素数生成装置 2300の動作 >
以下に、素数生成装置 2300の動作について説明する。
(素数生成処理)
ここでは、素数生成装置 2300にて行われる素数生成処理について、図 39に示す 流れ図を用いて、変更点のみ説明する。
[0383] 素数生成装置 2300は、ステップ S2000において、素数「q」、素数「q」のビットサイ ズ「lenq」、発行識別子情報「IDI」及び発行識別子情報のビットサイズ「lenIDI」を、 ユーザ操作により受け付け、受け付けた各情報を受付情報記憶部 2202へ書き込む ように変更する。
素数生成装置 2300は、ステップ S2005において、素数「pIDI」を生成するように変 更する。
[0384] 素数生成装置 2300は、ステップ S2010において、(lenq— 2 X lenqg— 1)ビットの 乱数「R」を生成するように変更する。
以降の動作の流れは、図 39と同様であるため、説明は省略する。
(素数候補生成処理)
ここでは、素数候補生成処理について、図 40に示す流れ図を用いて、変更点のみ 説明する。
[0385] 先ず、ステップ S2050を、省略する。
次に、ステップ S 2055を、数「N = 2 XRX q X pIDI+ 1」を生成するように変更する 以降の動作の流れは、図 40と同様であるため、説明は省略する。
<その他 >
ここでは、生成する秘密鍵である素数のビットサイズは 512ビットとしている力 これ に限定されない。 1024ビットであっても、 2048ビットであってもよい。また、上記の第 1素数生成部で生成する素数も同様に 256ビットに限らない。
[0386] (7)第 1の実施の形態における素数生成部 116を、予め記憶している 8ビットの素 数から 256ビットの素数を生成する第 1素数生成部と、 256ビットの素数から 512ビッ トの素数を生成する第 2素数生成部とからなるとしてもよい。また、第 1素数生成部及 び第 2素数生成部を、それぞれ個別の素数生成装置としてもよ!、。
第 1素数生成部は、従来と同様の方法にて、 8ビットの素数から 128ビットの素数を 生成し、上記に示す素数生成装置 2200を適用して、 128ビットの素数から 256ビット の素数を生成する。
[0387] 以下に、第 2素数生成部の構成の一例を、図 43に示す。ここでは、第 2素数生成部 を 1つの素数生成装置 2400として説明する。素数生成装置 2400は、素数「q」と、そ のビットサイズ「lenq」(ここでは、ビットサイズを 256ビットとする。)と、発行識別子情 報「IDI」と、そのビットサイズ「lenIDI」とが与えられた場合に、(2 X lenq)ビットからな る素数「N」を出力する。なお、ここで示す素数生成装置 2400は、第 1の実施の形態 にて示す第 1及び第 2検証値を用 、な 、で、素数「N」を生成する。
[0388] 素数生成装置 2400は、図 43に示すように、受付部 2401、受付情報記憶部 2402 、乱数生成部 2403、素数候補生成部 2404、第 1素数判定部 2405及び第 2素数判 定部 2406から構成されて 、る。
素数生成装置 2400は、具体的には、マイクロプロセッサ、 ROM, RAM,ハードデ イスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュー タシステムである。前記 RAM又は前記ハードディスクユニットには、コンピュータプロ グラムが記憶されている。前記マイクロプロセッサ力 前記コンピュータプログラムに 従って動作することにより、素数生成装置 2400は、その機能を達成する。
[0389] <受付情報記憶部 2402 >
受付情報記憶部 2402は、素数「N」を生成する際に与えられた素数「q」、素数「q」 のビットサイズ「lenq」、発行識別子情報「IDI」及び発行識別子情報のビットサイズ「1 enlDIjを記憶する領域を備えて 、る。
<受付部 2401 >
受付部 2401は、素数「q」、素数「q」のビットサイズ「lenq」、発行識別子情報「IDI」 及び発行識別子情報のビットサイズ「lenIDI」を、外部 (例えば、上記に示す第 1素数 生成部)より受け付け、受付部 2401は、受け付けた素数「q」、そのビットサイズ「lenq 」、発行識別子情報「IDI」及びそのビットサイズ rienlDIjを受付情報記憶部 2402へ 書き込む。 [0390] 受付部 2401は、処理を開始する旨の開始指示を素数候補生成部 2404へ出力す る。
<乱数生成部 2403 >
乱数生成部 2403は、乱数を生成する旨の第 1生成指示を、素数候補生成部 240 4から受け取ると、素数「q」のビットサイズ「lenq」と、発行識別子情報「IDI」のビットサ ィズ「lenIDI」とを受付情報記憶部 2402より読み出す。
[0391] 乱数生成部 2403は、読み出したビットサイズ「lenq」及び「lenIDI」を用いて、(len q— lenlDI— 1)ビットの乱数「R1」を生成する。ここで、乱数「R1」の最上位ビットは 1と する。
乱数生成部 2403は、生成した乱数「R1」を素数候補生成部 2404へ出力する。 また、乱数生成部 2403は、第 1素数判定部 2405及び第 2素数判定部 2406の何 れかから、再度乱数を生成する旨の第 2生成指示を受け付けると、各ビットサイズを 読み出し、上記の動作を行う。
[0392] <素数候補生成部 2404 >
素数候補生成部 2404は、生成された数を記憶する生成情報記憶領域とを有して いる。
素数候補生成部 2404は、受付部 2401より開始指示を受け取ると、第 1生成指示 を乱数生成部 2403へ出力する。
[0393] 素数候補生成部 2404は、乱数「R1」を乱数生成部 2403より受け取ると、受付情 報記憶部 2402にて記憶している素数「q」及び発行識別子情報「IDI」を読み出す。 素数候補生成部 2404は、読み出した素数「q」及び発行識別子情報「IDI」と、乱数 生成部 2403より受け取った乱数「R1」とを用いて、数「R=IDI XR1」と、数「N = 2 X R X q+ l」とを生成する。
[0394] 素数候補生成部 2404は、生成した数「N」のビットサイズが「2 X lenqjであるか否 かを判断する。
「2 X lenq」であると判断する場合には、素数候補生成部 2404は、生成した数「N」 を第 1素数判定部 2405へ出力し、生成した数「R」を生成情報記憶領域に記憶する [0395] 「2 X lenqjでな 、と判断する場合には、素数候補生成部 2404は、乱数生成部 24 03より受け取った乱数「R1」に 2を掛けて、その結果を「R1」として、再度、上記の動 作を行 ヽ、数「R」及び「N」を生成する。
素数候補生成部 2404は、生成した数「N」のビットサイズが、「2 X lenq」となるまで 、上記の動作を繰り返す。
[0396] く第 1素数判定部 2405 >
第 1素数判定部 2405は、第 1の実施の形態にて示す第 1素数判定部 143と同様の 動作であるため、ここでの説明は省略する。
く第 2素数判定部 2406 >
第 2素数判定部 2406は、第 1の実施の形態にて示す第 2素数判定部 144と同様の 動作であるため、ここでの説明は省略する。
[0397] なお、第 2素数判定部 2406は、判定により、生成した数「N」が素数であると判断す る場合には、生成した数「N」を素数「N」として出力する。
<素数生成装置 2400の動作 >
以下に、素数生成装置 2400の動作について説明する。
(素数生成処理)
ここでは、素数生成装置 2400にて行われる素数生成処理について、図 39に示す 流れ図を用いて、変更点のみ説明する。
[0398] 素数生成装置 2400は、ステップ S2000において、素数「q」、素数「q」のビットサイ ズ「lenq」、発行識別子情報「IDI」及び発行識別子情報のビットサイズ「lenIDI」を受 け付け、受け付けた各情報を受付情報記憶部 2402へ書き込むように変更する。 素数生成装置 2400は、上記のように変更されたステップ S2000の実行後、ステツ プ S2005を省略し、以下のように変更されたステップ S2010を実行する。素数生成 装置 2400は、ステップ S 2010において、(lenq— lenlDI— 1)ビットの乱数「R1」を生 成するように変更する。
[0399] 以降の動作の流れは、図 39と同様であるため、説明は省略する。
(素数候補生成処理)
ここでは、素数候補生成処理について、図 40に示す流れ図を用いて、変更点のみ 説明する。
先ず、ステップ S2050を、数「R=IDI XR1」を生成するように変更する。
[0400] 次に、ステップ S 2055を、数「N = 2 XRX q + 1」を生成するように変更する。
以降の動作の流れは、図 40と同様であるため、説明は省略する。
(8)第 1の実施の形態における素数生成部 116を、予め記憶している 8ビットの素 数から 256ビットの素数を生成する第 1素数生成部と、 256ビットの素数から 512ビッ トの素数を生成する第 2素数生成部とからなるとしてもよい。また、第 1素数生成部及 び第 2素数生成部を、それぞれ個別の素数生成装置としてもよ!、。
[0401] 第 1素数生成部は、従来と同様の方法にて、 8ビットの素数から 128ビットの素数を 生成し、上記に示す素数生成装置 2200を適用して、 128ビットの素数から 256ビット の素数を生成する。
以下に、第 2素数生成部の構成の一例を、図 44に示す。ここでは、第 2素数生成部 を 1つの素数生成装置 2500として説明する。素数生成装置 2500は、素数「q」と、そ のビットサイズ「lenq」(ここでは、ビットサイズを 256ビットとする。)と、発行識別子情 報「IDI」と、そのビットサイズ「lenIDI」と、検証値「c」が与えられた場合に、(2 X lenq )ビットからなる素数「N」を出力する。
[0402] 素数生成装置 2500は、図 44に示すように、受付部 2501、受付情報記憶部 2502 、乱数生成部 2503、素数候補生成部 2504、第 1素数判定部 2505及び第 2素数判 定部 2506から構成されて 、る。
素数生成装置 2500は、具体的には、マイクロプロセッサ、 ROM, RAM,ハードデ イスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュー タシステムである。前記 RAM又は前記ハードディスクユニットには、コンピュータプロ グラムが記憶されている。前記マイクロプロセッサ力 前記コンピュータプログラムに 従って動作することにより、素数生成装置 2500は、その機能を達成する。
[0403] <受付情報記憶部 2502 >
受付情報記憶部 2502は、素数「N」を生成する際に与えられた素数「q」、素数「q」 のビットサイズ「lenq」、発行識別子情報「IDI」、発行識別子情報のビットサイズ「lenl DIJ及び検証値「c」を記憶する領域を備えて!/、る。 <受付部 2501 >
受付部 2501は、素数「q」、素数「q」のビットサイズ「lenq」、発行識別子情報「IDI」 、発行識別子情報のビットサイズ「lenIDI」及び検証値「c」を、外部(例えば、上記に 示す第 1素数生成部)より受け付け、受付部 2501は、受け付けた素数「q」、そのビッ トサイズ「lenq」、発行識別子情報「IDI」、そのビットサイズ「lenIDI」及び検証値「c」 を受付情報記憶部 2502へ書き込む。
[0404] 受付部 2501は、処理を開始する旨の開始指示を素数候補生成部 2504へ出力す る。
<乱数生成部 2503 >
乱数生成部 2503は、乱数を生成する旨の第 1生成指示を、素数候補生成部 250 4から受け取ると、素数「q」のビットサイズ「lenq」と、発行識別子情報「IDI」のビットサ ィズ「lenIDI」とを受付情報記憶部 2502より読み出す。
[0405] 乱数生成部 2503は、読み出したビットサイズ「lenq」及び「lenIDI」を用いて、(len q— lenlDI— 1)ビットの乱数「R1」を生成する。ここで、乱数「R1」の最上位ビットは 1と する。
乱数生成部 2503は、生成した乱数「R1」を素数候補生成部 2504へ出力する。 また、乱数生成部 2503は、第 1素数判定部 2505及び第 2素数判定部 2506の何 れかから、再度乱数を生成する旨の第 2生成指示を受け付けると、各ビットサイズを 読み出し、上記の動作を行う。
[0406] <素数候補生成部 2504 >
素数候補生成部 2504は、生成された数を記憶する生成情報記憶領域とを有して いる。
素数候補生成部 2504は、受付部 2501より開始指示を受け取ると、第 1生成指示 を乱数生成部 2503へ出力する。
[0407] 素数候補生成部 2504は、乱数「R1」を乱数生成部 2503より受け取ると、受付情 報記憶部 2502にて記憶して 、る素数「q」、発行識別子情報「IDI」及び検証値「c」を
BJCみ出す。
素数候補生成部 2504は、読み出した素数「q」、発行識別子情報「IDI」及び検証 値「c」と、乱数生成部 2503より受け取った乱数「R1」とを用いて、数「R=IDIXR1」 と、数「N = 2X (R+w) Xq+1」とを生成する。
[0408] ここで、「w」は「2XwXq+l = c mod IDI、 0≤w<IDI」を満たす数である。「w」 は、「w=(c— l) Xm mod IDI」を計算することにより求める。「n^¾「(2Xq) Xm =1 mod IDI」を満たす数である。
素数候補生成部 2504は、生成した数「N」のビットサイズが「2 X lenq」であるか否 かを判断する。
[0409] 「2Xlenq」であると判断する場合には、素数候補生成部 2504は、生成した数「N」 を第 1素数判定部 2505へ出力し、生成した数「R」を生成情報記憶領域に記憶する
「2Xlenq」でないと判断する場合には、素数候補生成部 2504は、乱数生成部 25 03より受け取った乱数「R1」に 2を掛けて、その結果を「R1」として、再度、上記の動 作を行 ヽ、数「R」及び「N」を生成する。
[0410] 素数候補生成部 2504は、生成した数「N」のビットサイズが、「2Xlenq」となるまで 、上記の動作を繰り返す。
く第 1素数判定部 2505 >
第 1素数判定部 2505は、第 1の実施の形態にて示す第 1素数判定部 143と同様の 動作であるため、ここでの説明は省略する。
[0411] く第 2素数判定部 2506 >
第 2素数判定部 2506は、第 1の実施の形態にて示す第 2素数判定部 144と同様の 動作であるため、ここでの説明は省略する。
なお、第 2素数判定部 2506は、判定により、生成した数「N」が素数であると判断す る場合には、生成した数「N」を素数「N」として出力する。
[0412] <素数生成装置 2500の動作 >
以下に、素数生成装置 2400の動作について説明する。
(素数生成処理)
ここでは、素数生成装置 2500にて行われる素数生成処理について、図 39に示す 流れ図を用いて、変更点のみ説明する。 [0413] 素数生成装置 2500は、ステップ S2000において、素数「q」、素数「q」のビットサイ ズ「lenq」、発行識別子情報「IDI」、発行識別子情報のビットサイズ「lenIDI」及び検 証値「c」を受け付け、受け付けた各情報を受付情報記憶部 2502へ書き込むように 変更する。
素数生成装置 2500は、上記のように変更されたステップ S2000の実行後、ステツ プ S2005を省略し、以下のように変更されたステップ S2010を実行する。素数生成 装置 2500は、ステップ S 2010において、(lenq— lenlDI— 1)ビットの乱数「R1」を生 成するように変更する。
[0414] 以降の動作の流れは、図 39と同様であるため、説明は省略する。
(素数候補生成処理)
ここでは、素数候補生成処理について、図 40に示す流れ図を用いて、変更点のみ 説明する。
先ず、ステップ S2050を、数「R=IDI XR1」を生成するように変更する。
[0415] 次に、ステップ S2055を、数「N = 2 X (R+w) X q+ 1」を生成するように変更する 以降の動作の流れは、図 40と同様であるため、説明は省略する。
(9)上記第 1の実施の形態において、素数生成部 116は、単射関数「f」を施し、そ の後、発行識別子情報「IDI」の埋め込みを行ったが、単射関数「f」を施すだけでもよ V、し、発行識別子情報「IDI」の埋め込みのみを行ってもょ 、。
[0416] 単射関数を施しただけの場合には、生成される素数は一意性が満たされる。このと き、単射関数を施すタイミングは、いつでもよい。
発行識別子情報「IDI」の埋め込みのみを行う場合には、生成された素数の一意性 は満たされないが、生成された鍵の正当性の確認は、「IDI」を用いて行うことができ る。なお、発行識別子情報「IDI」の埋め込みのみを行う場合は、 256ビットの素数か ら 512ビットの素数を生成するタイミングに行う。
[0417] また、第 2の実施の形態においても同様である。
(10)上記第 1及び第 2の実施の形態において、制御情報が「情報 B」である場合に 、素数生成部 116は、単射関数を施し、数「R=f (IDI I I Rl)」を生成したが、これ に限定されない。
例えば、制御情報が「情報 B」である場合に、素数生成部 116は、数「R=f (Rl I DI)」を生成してもよいし、数「R=f (IDI) I I Rl」を生成してもよし、数「R=R1 I I f (IDI)」を生成してもよい。
[0418] また、単射関数を用いないで、数「R= (IDI I I Rl)」を生成してもよいし、数「R= Rl I I IDI」を生成してもよい。
また、発行識別子情報「IDI」のビット列に、乱数「R1」を構成する各ビットを埋め込 み、埋め込んだ結果 (以下、「IDI— Rl」という。)に単射関数「f」を施して数「R」を生 成してちょい。
[0419] その一例を図 45に示す。発行識別子情報「IDI」は、上述したように具体的には、 6 4ビット力 なり、そのビット列を「S S S S · · ' S S S 」とする。乱数「R1」は、具体
1 2 3 4 62 63 64
的には、 63ビットからなり、そのビット列を「Τ Τ Τ Τ · ' ·Τ Τ Τ 」とする。ここで、「S
1 2 3 4 61 62 63
」及び「T」は、「0」及び「1」の何れかである。なお、「η」は 1以上 64以下の数であり n m
、「m」は 1以上 63以下の数である。このとき、数「IDI Rl」のビット列は、「S T S T
2 2
S T S T - - ·Τ S T S T s 」となる。
3 3 4 4 61 62 62 63 63 64
[0420] なお、一例では、発行識別子情報「IDI」のビット列に対して、 1ビット置きに、乱数「 Rl」の各ビットを埋め込んだ力 これに限定されない。発行識別子情報「IDI」のビット 列に対して、複数ビット置きに、乱数「R1」の各ビットを埋め込んで、数「IDI— Rl」を 生成してもよい。このとき、「IDI」のビット列の間に埋め込まれないビット全てを、「IDI 」のビット列における末尾のビット以降に、結合して、「IDI_R1」を生成する。
[0421] また、乱数「R1」のビット列に対して、発行識別子情報「IDI」の各ビットを埋め込ん で、数「IDI— Rl」を生成してもよい。例えば、 1ビット置きに埋め込む場合には、数「I DI Rl」のビット列は、「T S T S T S T S ' "T S T S S 」となる。
一 1 1 2 2 3 3 4 4 62 62 63 63 64
また、発行識別子情報「IDI」と乱数「R1」とから、数「IDI— Rl」を生成し、生成した 数「IDI— Rl」に単射関数「f」を施して数「R」を生成した力 これに限定されない。数 「R」は、「R = IDI— Rl」としてもよい。
[0422] (11)上記第 1の実施の形態において、制御情報が「情報 A」である場合に、素数生 成部 116は、発行識別子情報「IDI」の埋め込みを行ったが、埋め込む情報は、 ΓΐϋΙ 」に限定されない。
例えば、鍵発行サーバ 100と証明書発行サーバ 200とだけが既知の秘密関数であ り、且つ 1対 1の関数である「g」を用いた値であってもよい。このとき、「IDI」の代わり に埋め込む値は、「g (IDI)」である。
[0423] また、第 2の実施の形態においても同様である。
(12)上記第 1の実施の形態において、鍵発行サーバ 100と端末装置 300との間に 、安全な通信経路を確立して、鍵発行サーバ 100から端末装置 300へ、秘密鍵及び 公開鍵の送付を行ったが、これに限定されない。
例えば、端末装置 300の製造時に、鍵発行サーバ 100と端末装置 300とを、入出 力装置を介して、秘密鍵及び公開鍵の送付を行ってもょ 、。
[0424] また、第 2の実施の形態においても同様である。
(13)上記第 1及び第 2の実施の形態において、端末装置の具体例として、携帯電 話機としたが、これに限定されない。
暗号化されたデータをネットワークを介して受信し、復号できる端末装置であればよ い。
[0425] 例えば、パーソナルコンピュータや、 PDA (Personal Digital Assistants)であ る。
(14)上記第 1及び第 2の実施の形態において、発行識別子情報「IDI」は、奇数で あるとしたが、素数生成に検証値を用いない場合には、発行識別子情報「IDI」は、 奇数でなくてもよい。
[0426] このとき、サーバ識別子と、カウンタにより、 1から順に生成される発行識別子「PID」 とを用いて生成する場合には、このとき、識別子生成部 115は、素数を発行 (生成) するたびに、数「1」をインクリメントしていくことで、容易に毎回異なる素数を生成でき ることになる。
(15)第 1及び第 2の実施の形態にて、生成する秘密鍵である素数のビットサイズは 512ビットに限らない。 1024ビットであっても、 2048ビットであってもよい。このとき、 素数生成部 116は、秘密鍵である素数のビットサイズ (ここでは、「lenN」とする。)に 対して、(lenNZ4)ビットからなる素数を、従来の素数の生成方法により生成し、その 後、単射関数「f」を施して、(lenNZ2)ビットからなる素数を生成し、最後に、発行識 別子情報「IDI」を埋め込んだ「lenN」ビットからなる素数「N」を生成する。
[0427] なお、発行識別子情報「IDI」の埋め込みのみを行う場合には、素数生成部は、 (le nNZ2)ビットからなる素数を、従来の素数の生成方法により生成し、最後に、発行 識別子情報「IDI」を埋め込んだ「lenN」ビットからなる素数「N」を生成する。
また、単射関数「f」を施し、一意な素数を生成するのみの場合は、(lenNZ2)ビット 力もなる素数を、従来の素数の生成方法により生成し、その後、単射関数「f」を施し て、「lenN」ビットからなる素数を生成する。
[0428] (16)第 1の実施の形態における素数生成部 116を、 1つの素数生成装置としてもよ い。このとき、この素数生成装置は、整数 lenと発行識別子情報 IDIを入力とし、 lenビ ットの素数を出力するとしてもよい。
また、上述したように、第 1実施の形態における素数生成部 116は、素数情報生成 部 133の代わりに、素数生成の変形例 1、 2及び 3にて示す素数情報生成部 133A、 素数情報生成部 133B及び素数情報生成部 133Cの何れかを用 V、てもよ 、。
[0429] また、第 1実施の形態における素数生成部 116は、 8ビットの素数から 512ビットの 素数を生成する際に、発行識別子情報「IDI」を埋め込まないで、単射関数「f」を 1回 のみ施してもよい。このとき、証明書発行サーバ 200では、証明書発行依頼情報と、 公開鍵を受け取ると、正当性の確認を行わないで、公開鍵証明書「Cert」を発行する
[0430] (17)素数に発行識別子情報を含ませる方法は、実施の形態に限らない。例えば、 下位 lenlDIビットが IDIである素数を生成 '発行するとしてもよい。
(18)鍵発行サーバは 3台に限定されない。鍵発行サーバは 1台以上であればよい 。このとき、各鍵発行サーバにて行う素数の生成方法は、同一の方法を用いる。
(19)第 1の実施の形態における第 2素数判定部 144は、素数の判定に用いる条件 式は、上記に示す (eq2)に限定されない。
[0431] 条件式「GCD (2" (2R)— 1、 N) = 1」を用いて、第 2素数判定部 144は、第 1素数 判定部 143より受け取った数「N」が、当該条件式を満たすか否かを判断し、満たす と判断する場合に、数「N」を素数「N」としてもよい。 (20)第 1の実施の形態において、鍵発行サーバ 100は、端末装置 300へ秘密鍵と 公開鍵証明書を配布したが、これに限定されない。鍵発行サーバ 100は、端末装置 300へ秘密鍵のみを配布してもよい。このとき、鍵発行サーバ 100は、公開鍵証明書 を第三者に対して、公開する。または、鍵発行サーバ 100は、公開鍵を第三者に対 して、公開する。
[0432] (21)第 1の実施の形態において、素数生成部 116は、出力カウンタ 136にて、鍵 判定部 117へ出力した素数の個数を管理したが、これに限定されない。
鍵判定部 117にて、受け取った素数の個数をカウントしてもよい。この場合の一例 を、以下に示す。
素数生成部 116は、識別子生成部 115から素数の生成開始命令を受け取ると、素 数「pl」を生成し、生成した素数「pl」を鍵判定部 117へ出力する。素数生成部 116 は、鍵判定部 117から次の素数の要求を受け取ると、素数「p2」を生成し、生成した 素数「p2」を鍵判定部 117へ出力する。なお、素数「pl」及び「p2」の生成は、第 1の 実施の形態と同様であるため、説明は省略する。
[0433] 鍵判定部 117は、カウンタ (初期値は「0」である。)を用いて、素数生成部 116より 素数を受け取ると、カウンタに「1」をインクリメントし、その結果が、 1である力否かを判 断する。 1であると判断する場合には、鍵判定部 117は、素数生成部 116へ、次の素 数を要求する。 1でないと判断する場合には、鍵判定部 117は、素数「pl」と「p2」と 力 一致する力否かの判断を行う。以降の動作は、第 1の実施の形態と同様であるた め、説明は省略する。
[0434] (22)上記第 1及び第 2の実施の形態において、発行識別子情報「IDI」のビットサイ ズを 64ビットとした力 これに限定されな 、。 (lenq-1)よりも小さ 、ビットサイズであれ ばよい。
また、素数生成の変形例 3において、素数「qg」のビットサイズを 64ビットとしたが、 これに限定されない。素数「qg」は、ビットサイズ「lenqg」が「(2 X lenqg)く(lenq— 1 )」を満たす素数であればよい。このとき、発行識別子情報は、そのビットサイズが、素 数「qg」のビットサイズより小さければよい。
[0435] (23)証明書発行サーバ 200の発行公開鍵確認部 214において、公開鍵「PK= ( n、 e)」が、発行識別子情報「IDI」を用いて生成されたか否かを確認する方法につい て、「n— (cl l X cl2)」が、「IDI」で割り切れるか否かを検証するとしている。ここで、 検証方法の具体例を示す。
検証方法の具体的な動作の流れを、図 46に示す流れ図を用いて説明する。
[0436] 発行公開鍵確認部 214は、数「n-(cl l X cl2)」を「Q」とする(ステップ S2500)。
次に、発行公開鍵確認部 214は、「Q— IDI」を算出し、算出結果を、再度、「Q」とす る(ステップ S 2505)。
発行公開鍵確認部 214は、数「Q」が、発行識別子情報「IDI」より小さいか否かを 判断する (ステップ S2510)。
[0437] 小さいと判断する場合には (ステップ S2510における「YES」)、発行公開鍵確認部 214は、数「Q」が「0」であるか否かを判断する(ステップ S2515)。
「0」であると判断する場合には (ステップ S2515における「YES」)、検証結果「0」を 出力する (ステップ S2520)。「0」でないと判断する場合には (ステップ S2515におけ る「NO」)、検証結果「1」を出力する (ステップ S2525)。
[0438] 数「Q」が、発行識別子情報「IDI」以上であると判断する場合には (ステップ S2510 における「NO」)、ステップ S2505へ戻る。
この動作により、公開鍵「PK= (n、 e)」が、発行識別子情報「IDI」を用いて生成さ れた力否かを確認することができる。
発行公開鍵確認部 214は、図 18に示すステップ S670にて、上記の検証処理を実 行後、出力された検証結果が「0」である場合には、公開鍵「PK」は発行識別子情報 「IDI」を用いて生成されたと判断し、検証結果力「l」である場合には、公開鍵「PK」 は発行識別子情報「IDI」を用いて生成されて 、な 、と判断する。
[0439] (24)素数候補生成部 142にて生成された数「N」が、「lenN= 2 X lenq」を満たさ ない場合、「R1 = 2 XR1」としている力 その演算の具体例を以下に示す。
素数候補生成部 142は、生成された数「N」が、「lenN= 2 X lenq」を満たさない場 合には、数「R1」のビット列を、左に 1ビット分だけシフトする。このとき、末尾のビットに は「0」が設定される。これにより、「R1 = 2 XR1」とすることできる。
[0440] (25)第 1及び第 2の実施の形態において、数「N」を算出する際に、「N = 2 X (R+ w) Xq+1」とした力 これに限定されない。「N = 2XRXq + c」としてもよい。
なぜなら、上記の実施の形態にて示した「w」及び「m」の条件式「w= (c-1) Xm mod IDI」と、「(2Xq) Xm=l mod IDI」とを用いると、「N = 2X (R+w) Xq + 1」は、以下のように変形することができるからである。
[0441] 2X (R+w) Xq+l = 2XRXq + 2XwXq+l
= 2XRXq + 2X (c 1) XmXq+1
= 2XRXq + 2X (c—l) X (l/2q) Xq+1
= 2XRXq+(c-l)+l
=2XRXq+c
これにより、「N = 2X (R+w) Xq+1」の代わりに、「N = 2XRXq + c」としてもよい ことがわ力ゝる。
[0442] なお、「c」は検証値であり、出力カウンタの値が「1」の場合には、検証値「c」は、「c 11」となり、出力カウンタの値が「2」以上の場合には、検証値「c」は、「cl2」となる。 例えば、第 1の実施の形態における証明書発行サーバ 200は、「N— cllXcl2」力 「IDI」で割り切れるカゝ否かを判断することにより、生成された公開鍵の正当性を確認 することができる。
[0443] (26)第 1の実施の鍵発行システム 1において、鍵発行サーバにて生成された素数 の正当性を検証する素数検証装置を加えてもょ 、。
この場合における素数検証装置及び鍵発行サーバ 100の動作について、以下に 説明する。
素数検証装置は、証明書発行サーバと同様に、検証値テーブルを予め記憶してい る。
[0444] 鍵発行サーバ 100は、素数生成部 116にて素数「pl」を生成すると、生成した素数 「pl」、発行識別子情報「IDI」及びサーバ識別子を、素数検証装置へ出力する。 素数検証装置は、鍵発行サーバ 100より、素数「pl」、発行識別子情報「IDI」及び サーバ識別子を受け取ると、受け取ったサーバ識別子に対応する第 1検証値「cll」 を読み出し、読み出した第 1検証値「cll」を用いて、「pl— cll」を算出し、算出結果 1S 「IDI」で割り切れるカゝ否かを判断する。割り切れると判断する場合には、素数検 証装置は、素数「pl」の利用を許可する情報を鍵発行サーバ 100へ出力する。割り 切れないと判断する場合には、素数「pl」の利用を禁止する情報を鍵発行サーバ 10 0へ出力する。
[0445] 鍵発行サーバ 100の素数生成部 116は、素数検証装置から、素数「pl」の利用を 禁止する情報を受け取ると、再度、素数「pl」を生成して、上記動作を繰り返す。 鍵発行サーバ 100の素数生成部 116は、素数検証装置から、素数「pl」の利用を 許可する情報を受け取ると、生成した素数「pl」を鍵判定部 117へ出力し、素数「p2」 を生成する。素数生成部 116は、生成した素数「p2」、発行識別子情報「IDI」及びサ ーバ識別子を、素数検証装置へ出力する。
[0446] 素数検証装置は、鍵発行サーバ 100より、素数「p2」、発行識別子情報「IDI」及び サーバ識別子を受け取ると、受け取ったサーバ識別子に対応する第 2検証値「cl2」 を読み出し、読み出した第 1検証値「cl2」を用いて、「pl— cl2」を算出し、算出結果 力 「IDI」で割り切れるカゝ否かを判断する。割り切れると判断する場合には、素数検 証装置は、素数「p2」の利用を許可する情報を鍵発行サーバ 100へ出力する。割り 切れないと判断する場合には、素数「p2」の利用を禁止する情報を鍵発行サーバ 10 0へ出力する。
[0447] 鍵発行サーバ 100の素数生成部 116は、素数検証装置から、素数「p2」の利用を 禁止する情報を受け取ると、再度、素数「p2」を生成して、上記動作を繰り返す。 鍵発行サーバ 100の素数生成部 116は、素数検証装置から、素数「p2」の利用を 許可する情報を受け取ると、生成した素数「p2」と判定開始命令とを鍵判定部 117へ 出力する。
[0448] 鍵発行サーバ 100における以降の動作は、第 1の実施の形態と同様であるため、 説明は省略する。
なお、素数生成部 116は、鍵判定部 117より再生成命令を受け取った場合には、 再度素数「p2」を生成し、上記の動作を繰り返す。
(27)第 1及び第 2の実施の形態において、第 1及び第 2検証値は、鍵発行サーバ 毎に割り当てたが、これに限定されない。
[0449] 端末装置毎に第 1及び第 2検証値を割り当て、端末識別子と、端末装置毎に割り当 てられた第 1及び第 2検証値とからなるテーブルを鍵発行サーバ及び証明書発行サ ーバにて管理してもよい。
鍵発行サーバは、鍵発行の要求のあった端末装置に対応する第 1及び第 2検証値 を用いて、素数「pl」及び「p2」を生成し、生成した「pl」及び「p2」を用いて、公開鍵 及び秘密鍵を生成する。鍵発行サーバは、公開鍵証明書を要求する際には、公開 鍵、発行識別子情報、サーバ識別子及び端末識別子を、証明書発行サーバへ送信 する。
[0450] 証明書発行サーバは、受け取った端末識別子に対応する第 1及び第 2検証値を読 み出し、読み出した検証値と、受け取った公開鍵、及び発行識別子情報とを用いて、 公開鍵の正当性を検証する。
端末装置毎に、 2つの検証値を割り当てることにより、公開鍵の一意性を保ちながら
、端末装置毎に割り当てた公開鍵の正当性を検証することができる。
[0451] また、上記に示す素数検証装置を用いて、生成した素数毎に、正当な素数である か否かの検証を行ってもよい。なお、素数検証装置は、端末識別子と、端末装置毎 に割り当てられた第 1及び第 2検証値とからなるテーブルを有して 、るとする。
(28)第 1及び第 2の実施の形態において、端末装置と鍵発行サーバとを、それぞ れ個別の装置としたが、端末装置にて鍵発行を行ってもよい。
[0452] このとき、端末装置は、例えば、第 1の形態にて示す構成に加えて、鍵発行サーバ
100の構成にて説明した識別子格納部、識別子生成部、素数生成部、鍵判定部、 鍵生成部及び公開鍵格納部とを有する。
端末装置は、識別子生成部を用いて、端末識別子と、数「1」とから発行識別子情 報「IDI=TID | I 1」を生成し、生成した発行識別子情報を識別子格納部にて記憶 する。
[0453] 端末装置は、素数生成部、鍵判定部及び鍵生成部を用いて、公開鍵と秘密鍵とを 生成し、生成した公開鍵を公開鍵格納部へ格納し、生成した秘密鍵を秘密鍵格納部 へ格納する。
さらに、端末装置は、発行識別子情報と、公開鍵と、端末識別子と、証明書発行依 頼情報とを、証明書発行サーバへ送信し、公開鍵証明書を、証明書発行サーバから 受信する。
また、端末装置は、 ICカードであってもよい。この場合、 ICカードは、鍵の生成及び 格納を行う。なお、発行識別子情報の生成及び格納をも ICカードが行ってもよい。こ のとき、 ICカードと、証明書発行サーバとの通信は、証明書発行サーバとネットワーク 接続された装置に、 ICカードを装着することにより行う。
[0454] (29)端末識別子は、一例として、シリアル番号としている力 これに限定されない。
端末識別子は、ユーザの生体科学的特徴を示すバイオメトリックス情報であっても よい。バイオメトリックス情報は、例えば、ユーザの指紋の特徴を示す指紋情報、ユー ザの声紋の特徴を示す声紋情報、ユーザの虹彩の特徴を示す虹彩情報、ユーザの 顔の輪郭の特徴を示す輪郭情報、ユーザの DNAの特徴を示す DNA情報又は、こ れら情報の組合せである。
[0455] また、端末識別子の一部が、バイオメトリックス情報であるとしてもよ!、。
また、端末識別子は、端末装置を管理する管理サーバにて発行され、管理サーバ 力 ネットワークによる通信によって、与えられるものとしてもよい。または、管理サー バにて発行された端末識別子を、 SDカード等の記録媒体によって、与えられるとし てもよい。
(30)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンビュ ータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプ ログラム力もなるデジタル信号であるとしてもよい。
[0456] また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ 読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、 CD-RO M、 MO、 DVD, DVD-ROM, DVD— RAMゝ BD (Blu— ray Disc)、半導体メモリ など、に記録したものとしてもよい。また、これらの記録媒体に記録されている前記コ ンピュータプログラム又は前記デジタル信号であるとしてもよい。
[0457] また、本発明は、前記コンピュータプログラム又は前記デジタル信号を、電気通信 回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して 伝送するものとしてもよ 、。
また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって 、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサ は、前記コンピュータプログラムに従って動作するとしてもよい。
[0458] また、前記プログラム又は前記デジタル信号を前記記録媒体に記録して移送する ことにより、又は前記プログラム又は前記デジタル信号を前記ネットワーク等を経由し て移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい
(31)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよ!/、。 産業上の利用可能性
[0459] 発明を構成する各サーバ及び各端末装置は、電器機器製造産業において、経営 的に、また継続的及び反復的に、製造し、販売することができる。また、本発明を構 成する各サーバ及び各端末装置は、インターネットを用いたサービス産業において、 経営的に、また継続的及び反復的に使用することができる。

Claims

請求の範囲
[1] 既知の素数 qより大きい素数候補 Nを算出して素数判定する素数算出装置であつ て、
既知の素数 qを記憶して 、る素数記憶手段と、
素数の利用範囲における一意の管理情報を記憶している管理情報記憶手段と、 前記管理情報記憶手段から前記管理情報を読み出し、読み出した前記管理情報 に依存する攪乱情報 Rを生成する攪乱情報生成手段と、
前記素数記憶手段から前記素数 qを読み出し、読み出した前記素数 q及び生成さ れた前記攪乱情報 Rを用いて、 N = 2 X攪乱情報 RX素数 q+ 1により、素数候補 N を算出する候補算出手段と、
算出された素数候補 Nが素数であるカゝ否かを判定する素数判定手段と、 素数であると判定される場合に、算出された素数候補 Nを素数として出力する出力 手段と
を備えることを特徴とする素数算出装置。
[2] 前記攪乱情報生成手段は、
前記管理情報記憶手段から前記管理情報を読み出す読出部と、
乱数 rを算出する乱数算出部と、
読み出した前記管理情報と生成した乱数 rとを結合する結合部と、
前記管理情報と乱数 rとの結合体に基づいて、攪乱情報 Rを算出する演算部と を含むことを特徴とする請求項 1に記載の素数算出装置。
[3] 前記演算部は、前記結合体に、単射の関数を施して攪乱情報 Rを生成する
ことを特徴とする請求項 2に記載の素数算出装置。
[4] 前記単射の関数は、排他的論理和であり、
前記演算部は、所定の鍵情報を予め記憶しており、前記鍵情報と前記結合体とに 排他的論理和を施して攪乱情報 Rを生成する
ことを特徴とする請求項 3に記載の素数算出装置。
[5] 前記素数算出装置は、素数 qの 2倍のビット長を有する素数候補 Nを算出し、 前記乱数算出部は、素数 qのビット長から前記管理情報のビット長及び 1を差し引 V、て得られるビット長の前記乱数 rを算出する
ことを特徴とする請求項 3に記載の素数算出装置。
[6] 前記素数判定手段は、
前記素数候補 Nに対して、 2N— i = l mod Nを満たすカゝ否かを判定する第 1判定 部と、
前記第 1判定部により満たすと判定される場合に、さらに、素数候補 N及び攪乱情 報 Rに対して、 22R ≠1 mod Nを満たすか否かを判定し、満たすと判定する場合 に、素数候補 Nが素数であると決定する第 2判定部と
を含むことを特徴とする請求項 5に記載の素数算出装置。
[7] 前記素数判定手段は、
前記素数候補 Nに対して、 2N— i = l mod Nを満たすカゝ否かを判定する第 1判定 部と、
前記第 1判定部により満たすと判定される場合に、さらに、素数候補 N及び攪乱情 報 Rに対して、 GCD (22R —1、 N) = 1を満たす力否かを判定し、満たすと判定する 場合に、素数候補 Nが素数であると決定する第 2判定部と
を含むことを特徴とする請求項 5に記載の素数算出装置。
[8] 前記素数算出装置は、さらに、
前記素数判定手段により素数であると判定されるまで、前記攪乱情報生成手段、 前記候補算出手段及び前記素数判定手段に対して、攪乱情報 Rの生成と、素数候 補 Nの算出と、前記判定とを繰り返すように制御する繰返制御手段
を含むことを特徴とする請求項 1に記載の素数算出装置。
[9] 前記素数算出装置は、さらに、
乱数 R'を算出する次段乱数算出手段と、
出力された前記素数 N及び生成された前記乱数 R'を用いて、 N' = 2 X乱数 R' X 素数 N+ 1により、素数候補 N'を算出する次段候補算出手段と、
算出された素数候補 N'が素数である力否かを判定する次段素数判定手段と、 素数であると判定される場合に、算出された素数候補 N'を素数として出力する次段 出力手段と、 前記次段素数判定手段により素数であると判定されるまで、前記次段乱数算出手 段、前記次段候補算出手段及び前記次段素数判定手段に対して、乱数 R'の生成と 、素数候補 N'の算出と、前記判定とを繰り返すように制御する次段繰返制御手段と を含むことを特徴とする請求項 8に記載の素数算出装置。
[10] 記素数算出装置は、さらに、
所定の検証値を記憶している次段情報記憶手段と、
乱数 r'を生成する次段乱数生成手段と、
前記管理情報に生成した前記乱数 r'を乗じて攪乱情報 R'を算出し、 N' = 2 X攪乱 情報 R' X素数 N+検証値により、素数候補 N'を算出する次段候補算出手段とを含 み、
前記素数判定手段は、さらに、算出された素数候補 N'が素数であるか否かを判定 し、
前記出力手段は、さらに、素数候補 N'が素数であると判定される場合に、算出され た素数候補 N'を素数として出力する
ことを特徴とする請求項 8に記載の素数算出装置。
[11] 前記素数算出装置は、 RSA暗号の公開鍵及び秘密鍵を生成する鍵生成装置であ り、
前記素数算出装置は、さらに、
算出された素数 Nを用いて、 RSA暗号の公開鍵を生成する公開鍵生成手段と、 生成された公開鍵を用いて、 RSA暗号の秘密鍵を生成する秘密鍵生成手段とを 含む
ことを特徴とする請求項 8に記載の素数算出装置。
[12] 前記公開鍵生成手段は、前記繰返制御手段に対して、新たに素数 N'が得られるよ うに指示し、前記素数 N及び新たに得られた素数 N'を用いて、 n=素数 N X素数 N' により、数 nを算出し、乱数 eを生成し、
算出された数 nと生成された乱数 eとの組が前記公開鍵であり、
前記秘密鍵生成手段は、 e X d= l mod Lを満たす dを算出し、
Lは、素数 N— 1と素数 N'— 1との最小公倍数であり、 算出された dが前記秘密鍵である
ことを特徴とする請求項 11に記載の素数算出装置。
[13] 前記素数算出装置は、端末装置に対して、 RSAの秘密鍵及び公開鍵を生成し、 発行する鍵発行サーバ装置であり、
前記素数算出装置は、さらに、
生成した前記秘密鍵を、端末装置に対して出力する鍵出力手段と、
生成した前記公開鍵を、公開する公開手段とを含む
ことを特徴とする請求項 11に記載の素数算出装置。
[14] 前記素数算出装置は、さらに、
前記端末装置を一意に識別する端末装置識別子を取得する識別子取得手段と、 取得した端末装置識別子を含む前記管理情報を生成する管理情報生成手段と、 生成した前記管理情報を前記管理情報記憶手段に書き込む書込手段とを 含むことを特徴とする請求項 13に記載の素数算出装置。
[15] 前記素数算出装置は、さらに、
鍵発行サーバ装置としての当該素数算出装置を一意に識別するサーバ識別子を 予め記憶して!/ヽるサーバ識別子記憶手段を含み、
前記管理情報生成手段は、さらに、前記サーバ識別子記憶手段から前記サーバ 識別子を読み出し、読み出したサーバ識別子をさらに含む前記管理情報を生成する ことを特徴とする請求項 14に記載の素数算出装置。
[16] 既知の素数より大きい素数を算出する素数算出装置であって、
既知の入力素数の 2倍のビット長を有する出力素数を算出する素数算出手段と、 既知の素数初期値を記憶して!/、る素数記憶手段と、
前記素数算出手段に対して、算出を複数回繰り返すように制御する繰返制御手段 とを備え、
前記繰返制御手段は、前記繰返しにおける初回の算出において、前記素数記憶 手段に記憶されている素数初期値を、前記入力素数として、前記素数算出手段に与 え、
前記繰返しの初回の算出以外の他の算出において、 1つ前の回の算出においてさ れた出力素数を、当該他の算出における前記入力素数として、前記素数算出手段 に与え、
前記複数回の算出のいずれか 1の算出において、前記素数算出手段は、 素数の利用範囲における一意の管理情報を記憶している管理情報記憶部と、 前記管理情報記憶部から前記管理情報を読み出し、読み出した前記管理情報に 依存する攪乱情報 Rを生成する攪乱情報生成部と、
前記入力素数 qを受け取り、受け取った前記入力素数 q及び生成された前記攪乱 情報 Rを用いて、 N = 2 X攪乱情報 R X素数 q+ 1により、素数候補 Nを算出する候 補算出部と、
算出された素数候補 Nが素数であるカゝ否かを判定する素数判定部と、
素数であると判定される場合に、算出された素数候補 Nを出力素数として出力する 出力部と、
前記素数判定部により素数であると判定されるまで、前記攪乱情報生成部、前記 候補算出部及び前記素数判定部に対して、攪乱情報 Rの生成と、素数候補 Nの算 出と、前記判定とを繰り返すように制御する繰返制御部とを含む
ことを特徴とする素数算出装置。
前記複数回の算出のうち、最終回の算出において、前記素数算出手段は、 所定の検証値を記憶して!/、る情報記憶部と、
乱数 r'を生成する乱数生成部と、
前記管理情報に生成した前記乱数 r'を乗じて攪乱情報 R'を算出し、 N' = 2 X攪乱 情報 R' X 1つ前の回において算出された出力素数 +検証値により、素数候補 N'を 算出する候補算出部と、
算出された素数候補 N'が素数であるカゝ否かを判定する素数判定部と、 素数候補 N'が素数であると判定される場合に、算出された素数候補 N'を素数とし て出力する出力部と、
前記素数判定部により素数であると判定されるまで、前記乱数生成部、前記候補 算出部及び前記素数判定部に対して、乱数 r'の生成と、素数候補 N'の算出と、前記 判定とを繰り返すように制御する繰返制御部とを含む ことを特徴とする請求項 16に記載の素数算出装置。
[18] 端末装置に対して RSAの秘密鍵及び公開鍵を生成して発行する鍵発行サーバ装 置と、前記端末装置とから構成される鍵発行システムであって、
鍵発行サーバ装置は、
既知の素数 qより大きい素数 Nを算出する素数算出手段と、
算出された素数 Nを用いて、 RSA暗号の公開鍵を生成する公開鍵生成手段と、 生成された公開鍵を用いて、 RSA暗号の秘密鍵を生成する秘密鍵生成手段と、 生成された前記秘密鍵を、端末装置に対して出力する鍵出力手段と、 生成された前記公開鍵を公開する公開手段とを備え、
前記素数算出手段は、
既知の素数 qを記憶して 、る素数記憶部と、
一意の管理情報を記憶して!/、る管理情報記憶部と、
前記管理情報記憶部から前記管理情報を読み出し、読み出した前記管理情報に 依存する攪乱情報 Rを生成する攪乱情報生成部と、
前記素数記憶部から前記素数 qを読み出し、読み出した前記素数 q及び生成され た前記攪乱情報 Rを用いて、 N = 2 X攪乱情報 RX素数 q+ 1により、素数候補 Nを 算出する候補算出部と、
算出された素数候補 Nが素数であるカゝ否かを判定する素数判定部と、 素数であると判定される場合に、算出された素数候補 Nを素数として出力する出力 部と、
前記素数判定部により素数であると判定されるまで、前記攪乱情報生成部、前記 候補算出部及び前記素数判定部に対して、攪乱情報 Rの生成と、素数候補 Nの算 出と、前記判定とを繰り返すように制御する繰返制御部とを含み、
前記端末装置は、
前記秘密鍵を受け取る受信手段と、
受信した秘密鍵を記憶する鍵記憶手段と
を備えることを特徴とする鍵発行システム。
[19] 前記鍵発行システムは、さらに、証明書発行サーバ装置を含み、 前記鍵出力手段は、前記公開鍵を前記証明書発行サーバ装置へ出力し、 前記証明書発行サーバ装置は、
当該証明書発行サーバ装置の秘密鍵を記憶している記憶手段と、
前記公開鍵を取得する取得手段と、
前記証明書発行サーバ装置の秘密鍵を用いて、前記公開鍵を含む公開鍵情報に 、デジタル署名を施して、署名データを生成し、少なくとも前記公開鍵及び生成した 前記署名データを含む公開鍵証明書を生成する証明書生成手段と、
生成した公開鍵証明書を鍵発行サーバ装置へ出力する出力手段とを備える ことを特徴とする請求項 18に記載の鍵発行システム。
[20] 既知の素数 qより大きい素数候補 Nを算出して素数判定する素数算出装置で用い られる素数算出方法であって、
前記素数算出装置は、既知の素数 qを記憶している素数記憶手段と、素数の利用 範囲における一意の管理情報を記憶している管理情報記憶手段とを備え、 前記素数算出方法は、
前記管理情報記憶手段から前記管理情報を読み出し、読み出した前記管理情報 に依存する攪乱情報 Rを生成する乱数生成ステップと、
前記素数記憶手段から前記素数 qを読み出し、読み出した前記素数 q及び生成さ れた前記攪乱情報 Rを用いて、 N = 2 X攪乱情報 RX素数 q+ 1により、素数候補 N を算出する候補算出ステップと、
算出された素数候補 Nが素数であるカゝ否かを判定する素数判定ステップと、 素数であると判定される場合に、算出された素数候補 Nを素数として出力する出力 ステップと
を含むことを特徴とする素数算出方法。
[21] 既知の素数 qより大きい素数候補 Nを算出して素数判定する素数算出装置で用い られる素数算出用のコンピュータプログラムであって、
前記素数算出装置は、既知の素数 qを記憶している素数記憶手段と、素数の利用 範囲における一意の管理情報を記憶している管理情報記憶手段とを備え、 前記素数算出用のコンピュータプログラムは、 前記管理情報記憶手段から前記管理情報を読み出し、読み出した前記管理情報 に依存する攪乱情報 Rを生成する乱数生成ステップと、
前記素数記憶手段から前記素数 qを読み出し、読み出した前記素数 q及び生成さ れた前記攪乱情報 Rを用いて、 N = 2 X攪乱情報 RX素数 q+ 1により、素数候補 N を算出する候補算出ステップと、
算出された素数候補 Nが素数であるカゝ否かを判定する素数判定ステップと、 素数であると判定される場合に、算出された素数候補 Nを素数として出力する出力 ステップと
を含むことを特徴とするコンピュータプログラム。
[22] 前記コンピュータプログラムは、
コンピュータ読み取り可能な記録媒体に記録されている
ことを特徴とする請求項 21に記載のコンピュータプログラム。
[23] 前記コンピュータプログラムは、
搬送波に乗せられて送信される
ことを特徴とする請求項 21に記載のコンピュータプログラム。
PCT/JP2004/019108 2003-12-26 2004-12-21 素数算出装置及び方法並びに鍵発行システム WO2005064843A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US10/582,803 US7634084B2 (en) 2003-12-26 2004-12-21 Prime calculation device, method, and key issuing system
EP04807465A EP1699160A1 (en) 2003-12-26 2004-12-21 Prime calculation device, method, and key issuing system
JP2005516589A JP4668795B2 (ja) 2003-12-26 2004-12-21 素数算出装置、鍵発行システム及び素数算出方法

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP2003-433903 2003-12-26
JP2003433904 2003-12-26
JP2003433903 2003-12-26
JP2003-433904 2003-12-26
JP2004023796 2004-01-30
JP2004-023796 2004-01-30

Publications (1)

Publication Number Publication Date
WO2005064843A1 true WO2005064843A1 (ja) 2005-07-14

Family

ID=34743474

Family Applications (2)

Application Number Title Priority Date Filing Date
PCT/JP2004/019108 WO2005064843A1 (ja) 2003-12-26 2004-12-21 素数算出装置及び方法並びに鍵発行システム
PCT/JP2004/019110 WO2005064844A1 (ja) 2003-12-26 2004-12-21 素数算出装置及び方法並びに鍵発行システム

Family Applications After (1)

Application Number Title Priority Date Filing Date
PCT/JP2004/019110 WO2005064844A1 (ja) 2003-12-26 2004-12-21 素数算出装置及び方法並びに鍵発行システム

Country Status (6)

Country Link
US (2) US7634084B2 (ja)
EP (2) EP1699161A1 (ja)
JP (2) JP4668796B2 (ja)
KR (2) KR20060129302A (ja)
TW (2) TW200527925A (ja)
WO (2) WO2005064843A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020141425A (ja) * 2020-06-10 2020-09-03 エヌ・ティ・ティ・コミュニケーションズ株式会社 端末装置、鍵提供システム、鍵生成方法及びコンピュータプログラム

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1741222B1 (en) * 2004-04-30 2011-02-23 Research In Motion Limited System and method for securing data
US7953978B2 (en) * 2006-09-07 2011-05-31 International Business Machines Corporation Key generation and retrieval using key servers
US8472620B2 (en) * 2007-06-15 2013-06-25 Sony Corporation Generation of device dependent RSA key
FR2946207A1 (fr) * 2009-05-28 2010-12-03 Proton World Internat Nv Protection d'une generation de nombres premiers pour algorithme rsa
US8971530B2 (en) * 2009-06-24 2015-03-03 Intel Corporation Cryptographic key generation using a stored input value and a stored count value
JP2011123356A (ja) * 2009-12-11 2011-06-23 Oki Semiconductor Co Ltd 素数生成装置、素数生成方法、及び素数生成プログラム
US20120297187A1 (en) * 2011-05-17 2012-11-22 Google Inc. Trusted Mobile Device Based Security
JP5848106B2 (ja) * 2011-11-28 2016-01-27 ルネサスエレクトロニクス株式会社 半導体装置及びicカード
WO2013088065A1 (fr) * 2011-12-15 2013-06-20 Inside Secure Procede de generation de nombres premiers prouves adapte aux cartes a puce
KR101493212B1 (ko) * 2012-10-31 2015-02-23 삼성에스디에스 주식회사 아이디 기반 암호화, 복호화 방법 및 이를 수행하기 위한 장치
US8897450B2 (en) * 2012-12-19 2014-11-25 Verifyle, Inc. System, processing device, computer program and method, to transparently encrypt and store data objects such that owners of the data object and permitted viewers are able to view decrypted data objects after entering user selected passwords
US20140344319A1 (en) * 2013-05-14 2014-11-20 Daljit Singh Jandu Algorithm for primality testing based on infinite, symmetric, convergent, continuous, convolution ring group
US9860235B2 (en) * 2013-10-17 2018-01-02 Arm Ip Limited Method of establishing a trusted identity for an agent device
US10069811B2 (en) 2013-10-17 2018-09-04 Arm Ip Limited Registry apparatus, agent device, application providing apparatus and corresponding methods
GB2533511B (en) * 2013-10-17 2021-02-03 Arm Ip Ltd Method of establishing a trusted identity for an agent device
US9307405B2 (en) 2013-10-17 2016-04-05 Arm Ip Limited Method for assigning an agent device from a first device registry to a second device registry
CN103580858B (zh) * 2013-11-06 2017-01-04 北京华大信安科技有限公司 Rsa算法私钥元素获取方法及获取装置
GB2529838B (en) 2014-09-03 2021-06-30 Advanced Risc Mach Ltd Bootstrap Mechanism For Endpoint Devices
GB2530028B8 (en) 2014-09-08 2021-08-04 Advanced Risc Mach Ltd Registry apparatus, agent device, application providing apparatus and corresponding methods
GB2540989B (en) 2015-08-03 2018-05-30 Advanced Risc Mach Ltd Server initiated remote device registration
GB2540987B (en) 2015-08-03 2020-05-13 Advanced Risc Mach Ltd Bootstrapping without transferring private key
WO2018174112A1 (ja) * 2017-03-21 2018-09-27 渡辺浩志 ネットワーク上の装置認証技術
KR101918741B1 (ko) 2017-08-21 2018-11-14 국방과학연구소 안전소수 판별 방법
GB2574613B (en) * 2018-06-12 2020-07-22 Advanced Risc Mach Ltd Device, system, and method of generating and handling cryptographic parameters
US11475134B2 (en) 2019-04-10 2022-10-18 Arm Limited Bootstrapping a device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07121107A (ja) * 1993-10-28 1995-05-12 Nec Corp 鍵生成方法および装置
WO1999052241A2 (en) * 1998-04-08 1999-10-14 Citibank, N.A. Generating rsa moduli including a predetermined portion
EP1026851A1 (en) * 1999-02-03 2000-08-09 Hewlett-Packard Company Composite cryptographic keys
US6687375B1 (en) * 1999-06-02 2004-02-03 International Business Machines Corporation Generating user-dependent keys and random numbers

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996031034A1 (en) * 1995-03-27 1996-10-03 Stefanus Alfonsus Brands System for ensuring that the blinding of secret-key certificates is restricted, even if the issuing protocol is performed in parallel mode
JP3835896B2 (ja) * 1997-07-30 2006-10-18 富士通株式会社 素数生成装置,B−smooth性判定装置及び記録媒体
JP3518672B2 (ja) * 1998-11-27 2004-04-12 村田機械株式会社 素数生成装置及び暗号システム
US6940976B1 (en) * 1999-06-02 2005-09-06 International Business Machines Corporation Generating user-dependent RSA keys
JP2002207426A (ja) * 2001-01-10 2002-07-26 Sony Corp 公開鍵証明書発行システム、公開鍵証明書発行方法、および電子認証装置、並びにプログラム記憶媒体
JP4102090B2 (ja) 2001-04-17 2008-06-18 松下電器産業株式会社 情報セキュリティ装置、素数生成装置及び素数生成方法
TWI244610B (en) 2001-04-17 2005-12-01 Matsushita Electric Ind Co Ltd Information security device, prime number generation device, and prime number generation method
GB2384403B (en) * 2002-01-17 2004-04-28 Toshiba Res Europ Ltd Data transmission links

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07121107A (ja) * 1993-10-28 1995-05-12 Nec Corp 鍵生成方法および装置
WO1999052241A2 (en) * 1998-04-08 1999-10-14 Citibank, N.A. Generating rsa moduli including a predetermined portion
EP1026851A1 (en) * 1999-02-03 2000-08-09 Hewlett-Packard Company Composite cryptographic keys
US6687375B1 (en) * 1999-06-02 2004-02-03 International Business Machines Corporation Generating user-dependent keys and random numbers

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"Fast Generation of Secure RSA-Moduli with Almost Maximal Diversity", LECTURE NOTES IN COMPUTER SCIENCE, vol. 434, 1990, pages 636 - 641, XP008112863 *
"Generation of RSA Keys That Are Guaranteed to be Unique for Each User", COMPUTER SECURITY, vol. 19, no. 3, 2000, pages 282 - 286, XP004222170 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020141425A (ja) * 2020-06-10 2020-09-03 エヌ・ティ・ティ・コミュニケーションズ株式会社 端末装置、鍵提供システム、鍵生成方法及びコンピュータプログラム

Also Published As

Publication number Publication date
JP4668796B2 (ja) 2011-04-13
US7634084B2 (en) 2009-12-15
EP1699161A1 (en) 2006-09-06
KR20060126705A (ko) 2006-12-08
WO2005064844A1 (ja) 2005-07-14
KR20060129302A (ko) 2006-12-15
US20070143388A1 (en) 2007-06-21
US7706528B2 (en) 2010-04-27
JPWO2005064844A1 (ja) 2007-12-20
TW200527925A (en) 2005-08-16
TW200531495A (en) 2005-09-16
EP1699160A1 (en) 2006-09-06
US20070121934A1 (en) 2007-05-31
JP4668795B2 (ja) 2011-04-13
JPWO2005064843A1 (ja) 2007-12-20

Similar Documents

Publication Publication Date Title
WO2005064843A1 (ja) 素数算出装置及び方法並びに鍵発行システム
EP0786178B1 (en) Secret-key certificates
JP4731686B2 (ja) 秘密鍵の妥当性および確認
US20100100724A1 (en) System and method for increasing the security of encrypted secrets and authentication
EP0503119A1 (en) Public key cryptographic system using elliptic curves over rings
JP2013140402A (ja) 公開鍵を検証可能に生成する方法及び装置
JPWO2013014778A1 (ja) 暗号化処理装置および認証方法
US8370633B2 (en) Apparatus, method, and computer instructions for generating a substitute signature key pair
CN113660087B (zh) 一种基于有限域的sm9标识密码算法硬件实现系统
AU2011283888B2 (en) Authentication device, authentication method, and program
JP2014515125A (ja) データの暗号化のための方法、コンピュータ・プログラム、および装置
US7130422B2 (en) Information security device, prime number generation device, and prime number generation method
Yang et al. A provably secure and efficient strong designated verifier signature scheme
CN110266478B (zh) 一种信息处理方法、电子设备
JP2002217898A (ja) 擬似乱数生成システム
JP4102090B2 (ja) 情報セキュリティ装置、素数生成装置及び素数生成方法
Schartner Random but system-wide unique unlinkable parameters
KR100368204B1 (ko) 정규 기저를 이용한 역원 계산 알고리즘
JP2000200038A (ja) 素数生成方法及び装置並びにrsa暗号化方法及び記録媒体
Koshiba On sufficient randomness for secure public-key cryptosystems
Jeng et al. A blind signature scheme based on elliptic curve cryptosystem
CN115606148A (zh) 与椭圆曲线操作相关的信息泄漏减轻
Kaderali Foundations and applications of cryptology
JPH0548599A (ja) 秘密通信用ネツトワークシステム

Legal Events

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

Ref document number: 200480038935.3

Country of ref document: CN

AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

WWE Wipo information: entry into national phase

Ref document number: 2005516589

Country of ref document: JP

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2007121934

Country of ref document: US

Ref document number: 10582803

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

WWW Wipo information: withdrawn in national office

Ref document number: DE

WWE Wipo information: entry into national phase

Ref document number: 2004807465

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 1020067013868

Country of ref document: KR

WWP Wipo information: published in national office

Ref document number: 2004807465

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1020067013868

Country of ref document: KR

WWP Wipo information: published in national office

Ref document number: 10582803

Country of ref document: US