WO2004051920A1 - 鍵共有システム、共有鍵生成装置及び共有鍵復元装置 - Google Patents

鍵共有システム、共有鍵生成装置及び共有鍵復元装置 Download PDF

Info

Publication number
WO2004051920A1
WO2004051920A1 PCT/JP2003/015212 JP0315212W WO2004051920A1 WO 2004051920 A1 WO2004051920 A1 WO 2004051920A1 JP 0315212 W JP0315212 W JP 0315212W WO 2004051920 A1 WO2004051920 A1 WO 2004051920A1
Authority
WO
WIPO (PCT)
Prior art keywords
value
decryption
shared key
key
encryption
Prior art date
Application number
PCT/JP2003/015212
Other languages
English (en)
French (fr)
Inventor
Masato Yamamichi
Yuichi Futa
Motoji Ohmori
Makoto Tatebayashi
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 EP03812328A priority Critical patent/EP1475920A4/en
Priority to AU2003302544A priority patent/AU2003302544A1/en
Publication of WO2004051920A1 publication Critical patent/WO2004051920A1/ja

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • 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/60Digital content management, e.g. content distribution

Definitions

  • the present invention relates to an encryption technology as an information security technology, and particularly to a technology for distributing a key without being known to a third party.
  • a public key cryptosystem has been used to secretly transmit information from a transmitting device to a receiving device.
  • a transmitting device encrypts communication contents using a public key of a receiving device and transmits the encrypted communication contents, and the receiving device receives the encrypted communication contents and transmits the received communication contents to its own private key. To obtain the original communication content.
  • Non-Patent Document 1 (For example, see Non-Patent Document 1).
  • NTRU encryption was proposed as a public key encryption capable of high-speed processing (for example, see Non-Patent Document 2).
  • NTRU cryptography performs encryption and decryption using a polynomial operation that can be operated at high speed.Therefore, compared to RSA cryptography that performs exponentiation operation and elliptic curve cryptography that performs scalar multiplication of points on an elliptic curve, It is possible to perform processing at a higher speed by software than these conventional public key cryptosystems.
  • Key Encapsulation Mechanisms Uses public key cryptography to communicate between the transmitting device and the receiving device.
  • the transmitting device inputs the recipient's public key pk into the encryption algorithm E, generates the ciphertext C and the shared key K, and sends the ciphertext C to the receiving device. To be transmitted.
  • the receiving device inputs the secret key sk and the ciphertext C to the decryption algorithm D, and obtains the same shared key K as the transmitting device.
  • the transmitting device After sharing the shared key K between the transmitting device and the receiving device using the key encapsulation mechanism in this way, the transmitting device transmits the plaintext to be transmitted to the receiving device to the common key K using the shared key K.
  • a ciphertext is generated by encrypting with the encryption method, and the generated ciphertext is transmitted to the receiving device.
  • the receiving device receives the ciphertext, and decrypts the received ciphertext using the common key cryptosystem using the shared key K to generate a decrypted text.
  • the sender is unable to create a shared key intentionally while the sender sends information unilaterally to the receiver, thereby suppressing fraud by the sender. This is a unique feature.
  • Non-Patent Document 3 an algorithm called RSA-KEM is disclosed (for example, see Non-Patent Document 3).
  • the RSA-KEM algorithm described in Non-Patent Document 3 will be described below.
  • R SA — KEM has the following system parameters.
  • e is an element of Z L.
  • ZL is a set consisting of ⁇ 0, 1, 2 L-1 ⁇ .
  • the public key pk is input to the encryption algorithm K emE described below, and the shared key K and the ciphertext C are output.
  • the encryption algorithm KemE will be described below.
  • Zn is a set consisting of ⁇ 0, 1, 2n-1 ⁇ .
  • the ciphertext C and the secret key sk are input to the decryption algorithm K emD described below, and the shared key K is output.
  • the decoding algorithm Kemd will be described.
  • this RSA-KEM algorithm When this RSA-KEM algorithm is applied to a cryptographic system that performs encrypted communication between a transmitting device and a receiving device, first, the transmitting device obtains a public key P k of a receiving device with which the communication is performed. The obtained public key pk is input to the above-described encryption algorithm K emE to derive the shared key K and the ciphertext C, and transmit the ciphertext C to the receiving device. Next, the receiving device receives the ciphertext C from the transmitting device, inputs the received ciphertext C and the secret key sk of the receiving device to the above-described decryption algorithm K emD, and obtains the ciphertext C derived by the transmitting device. Derive a shared key K equal to
  • a randomly generated element s is used as the public key p by the encryption algorithm K em E. Then, a ciphertext C is generated by encrypting the ciphertext C using the secret key sk, and then the ciphertext C is decrypted using the secret key sk by the decryption algorithm KemD. Find the element s.
  • the encryption algorithm K em E and the decryption algorithm K em D since the same value of s is input to the same hash function G, the same shared key K can be derived for each.
  • the receiving device having the secret key sk can derive the same shared key K as that derived by the transmitting device.
  • the transmitting device and the receiving device can secretly share the shared key K.
  • the transmitting device transmits the communication content data to be communicated to the receiving device using the shared key K and the common key encryption method.
  • the receiving device receives the ciphertext, decrypts the received ciphertext using the same common key cryptosystem using the same shared key K, and decrypts the original communication content data. Can be obtained.
  • Non-Patent Document 3 (Non-Patent Document 3)
  • a secret key K is derived by inputting an element s that cannot be derived without knowing a secret key from a ciphertext C to a hash function G. Therefore, the secret key K cannot be derived without knowing the secret key.
  • the present invention provides a key sharing system, a shared key generation device, A key recovery device, a shared key generation method, a shared key recovery method, a shared key generation program, and a shared key recovery program are provided.
  • a key sharing system comprising a shared key generation device and a shared key recovery device that generates a shared key without being known to a third party, wherein the shared key generation device includes a seed Means for generating a seed value for generating a value, first shared key generation means for generating a blind value and a shared key from the generated seed value, and An encryption unit that encrypts the generated seed value to generate encryption information; and a transmission unit that transmits the generated encryption information.
  • the shared key restoration device includes the encryption information Receiving means for receiving the encrypted information; Decryption means for decrypting the information to generate a decryption seed value, and a decryption blind value and a decryption shared key from the decryption side value generated by the same method as the first shared key generation means. Second shared key generation means for generating the decryption shade value based on the generated decryption blind value, and re-encryption means for generating re-encryption information Determining means for determining whether or not to output the decryption shared key based on the received encryption information and the generated re-encryption information; Output means for outputting the generated decryption shared key.
  • the shared key generation device encrypts the generated seed value, generates and transmits encryption information, and the shared key recovery device performs decryption seeding from the received encryption information.
  • the shared key restoring device generates a decryption blind value from the generated decryption seed value by the same method as the shared key generation device, and converts the generated decryption blind value into the generated decryption blind value. Since the generated decryption seed value is encrypted based on the secret key value, if the decryption means of the shared key recovery device correctly generates the decryption seed value, it is generated by the shared key recovery device. This is because it can be expected that the re-encryption information to be generated is the same as the encryption information generated by the shared key generation device.
  • the shared key generation device generates a shared key and a blind value from the seed value, and encrypts the generated seed value based on the generated blind value. The effect is that the values can be disturbed.
  • the shared key generation device further generates an encrypted content by encrypting the obtained content by using the obtaining unit that obtains the content and the generated shared key.
  • the transmitting means further transmits the generated encrypted content
  • the receiving means further receives the encrypted content
  • the shared key restoring apparatus comprises: Further, the apparatus further includes a decryption unit that decrypts the received encrypted content by using the output decryption shared key to generate decrypted content, and an output unit that outputs the generated decrypted content.
  • the shared key generation device encrypts the acquired content using the generated shared key to generate encrypted content
  • the shared key restoration device outputs the output shared key. Since the received encrypted content is decrypted using the decryption shared key to generate the decrypted content, the content is transmitted from the shared key generation device to the shared key recovery device without being known to a third party. There is an effect that can be.
  • the present invention is a shared key generation device that transmits a shared key to a partner device without being known to a third party, comprising: a seed value generation unit configured to generate a seed value; and the generated seed value.
  • a shared key generation means for generating a blind value and a shared key from the encryption key; andencrypting means for encrypting the generated seed value based on the generated blind value to generate encryption information; Transmission means for transmitting the generated encryption information.
  • the shared key generation device generates a blind value from the seed value and encrypts the generated seed value based on the generated blind value. This has the effect of being able to disrupt the value.
  • the shared key generation means applies a one-way function to the seed value to generate a function value, generates the blind value and the shared key from the generated function value
  • the encryption means uses a public key acquisition unit for acquiring a public key, and a public key encryption algorithm for the generated seed value using the obtained public key and the generated blind value. And a public key encryption unit for generating an encryption seed value as the encryption information.
  • the shared key generation device performs a one-way function on the seed value to generate a function value, and generates the blind value and the shared key from the generated function value.
  • the same blind value and the same shared key as the blind value and the shared key are generated from the seed value decrypted by the other apparatus in the same apparatus receiving the encryption information. Can be expected.
  • the shared key generation device obtains a public key, performs a public key encryption algorithm on the seed value using the obtained public key, and generates the encryption information, so that the security is more secure. Public key cryptography with high security can be adopted.
  • the public key encryption algorithm is based on the NTRU encryption method
  • the public key obtaining unit obtains, as the public key, a public key polynomial generated by a key generation algorithm of the NTRU encryption method
  • the public key encryption unit generates a seed value polynomial from the seed value, generates a blind value polynomial from the blind value, and generates the public key polynomial using an NTRU encryption algorithm.
  • the seed value polynomial is encrypted using the blind value polynomial to disturb the seed value polynomial, and an encrypted seed is used as the encrypted seed value.
  • a value polynomial is generated, and the transmitting unit transmits the generated encrypted seed value polynomial as the encrypted seed value.
  • the NTRU encryption algorithm can be adopted as the public key encryption algorithm.
  • the encryption unit is configured to generate a public key obtaining unit for obtaining a public key, generate a blind value, and generate the blind value by using the obtained public key and the generated blind value.
  • a public key encryption unit that applies a public key encryption algorithm to the seed value and generates a public key ciphertext; and any one of the generated seed value, the blind value, and the shared key.
  • the shared key generation device adds a second value to the generated seed value.
  • the second function value is generated by performing the directional function, and the above-mentioned encryption information including the second function value is transmitted. Therefore, the second function value can be obtained without re-encryption in the partner device.
  • the output of the decryption shared key can be determined using the value.
  • the shared key generation means generates a function value by applying a one-way function to the seed value, and generates the privacy value and the shared key from the generated function value.
  • the shared key is generated from the first function value obtained by applying the first one-way function to the seed value, the shared key can be estimated even when the seed value is exposed. Is not easy.
  • the shared key generation unit generates a first function value by applying a first one-way function to the seed value instead of generating the blind value and the shared key.
  • the shared key is generated from the first function value.
  • the shared key is generated from the first function value obtained by performing the first one-way function on the seed value, even if the seed value is exposed, the shared key is generated. Is not easy to estimate.
  • the public key encryption algorithm is based on the NTRU encryption method, and the public key acquisition unit acquires the public key polynomial generated by the NTRU encryption key generation algorithm as the public key.
  • the public key encryption unit generates a seed value polynomial from the seed value, generates a blind value polynomial from the blind value, and uses the NTRU encryption algorithm to perform the public key encryption.
  • a key polynomial is used as a key
  • the seed value polynomial is encrypted using the blind value polynomial to disturb the seed value polynomial
  • an encrypted seed value is used as the public key ciphertext.
  • a polynomial is generated, and the encryption unit generates the encryption information including the encrypted side value polynomial as the public key ciphertext and the second function value.
  • the NTRU encryption algorithm can be adopted as the public key encryption algorithm.
  • the shared key generation unit applies a one-way function to the seed value. Generating a verification value, the blind value, and the shared key from the generated function value, and the encryption unit obtains a public key.
  • a first encryption unit configured to apply a public key encryption algorithm to the generated verification value using the public key and the generated blind value to generate a first ciphertext;
  • a second encryption unit that performs another operation algorithm on the generated seed value based on the verification value, and generates a second ciphertext. And generating the encrypted information including the ciphertext and the second ciphertext.
  • the shared key generation device performs a public key encryption algorithm on the generated verification value using the obtained public key and the generated blind value, (1) generating a ciphertext, performing another operation algorithm on the generated seed value based on the generated verification value, generating a second ciphertext, and generating the first ciphertext and the second ciphertext; 2 Transmit the above-mentioned encryption information including the ciphertext.
  • the two-stage algorithm since the two-stage algorithm is used, the probability that the first ciphertext and the second ciphertext are attacked and deciphered can be reduced.
  • the public key encryption algorithm is based on the NTRU encryption method
  • the public key acquisition unit acquires a public key polynomial generated by a key generation algorithm of the NTRU encryption method as the public key.
  • the first encryption unit generates a verification value polynomial from the verification value, generates a blind value polynomial from the blind value, and converts the public key polynomial by an NTRU encryption algorithm.
  • Using the key as a key encrypting the verification value polynomial using the blind value polynomial to disturb the verification value polynomial, generating an encrypted verification value polynomial as the first ciphertext;
  • the means generates the encrypted information including the encrypted verification value polynomial as the first ciphertext and the second ciphertext.
  • the NTRU encryption algorithm can be adopted as the public key encryption algorithm.
  • the other operation algorithm is a common key encryption algorithm
  • the second encryption unit uses the verification value as a key and The value is subjected to a common key encryption algorithm to generate the second ciphertext.
  • the other operation algorithm is an exclusive OR, and the second encryption unit performs an exclusive OR on the verification value and the seed value to generate the second ciphertext. I do.
  • the other operation algorithm is addition, and the second encryption unit performs addition on the verification value and the seed value to generate the second ciphertext.
  • the other operation algorithm is multiplication
  • the second encryption unit performs multiplication on the verification value and the seed value to generate the second ciphertext.
  • the seed value generation means generates a random number, and uses the generated random number as the above-described seed value.
  • the shared key generation device generates a random number and uses the generated random number as the seed value. Therefore, the shared key generation device generates a seed value, generates a blind value and a shared key, and generates the encryption information. After generating and transmitting the encryption information, a subsequent seed value may be generated when the next generation of the seed value is different from the initially generated seed value. Therefore, the encryption information transmitted by the shared key generation device is different every time. For this reason, even if an unauthorized third party eavesdrops and records the encrypted information transmitted from the shared key generation device to the partner device each time, even if the unauthorized third party records and records the encrypted information, the original cipher information is used. It is difficult to infer the value.
  • the shared key generating means generates a function value by applying a one-way function to the seed value, and generates the blind value and the shared key from the generated function value.
  • the shared key generation device performs a one-way function on the seed value to generate a function value, and generates the blind value and the shared key from the generated function value.
  • the device receiving the information uses the same method to calculate the seed value decrypted by the device. It can be expected that the same blind value and shared key can be generated as the blind value and the shared key, respectively.
  • the one-way function is a hash function
  • the shared key generation unit applies a hash function to the seed value.
  • the shared key generation device applies the hash function to the seed value, so that the function value can be reliably obtained.
  • the shared key generation means uses the part of the generated function value as the blind value and the other part of the generated function value as the shared key. Generate a key.
  • the shared key generation device uses a part of the generated function value as the blind value and the other part as the shared key. A shared key can be obtained.
  • the shared key generation device further includes: an obtaining unit that obtains the content; and an encryption unit that encrypts the obtained content by using the generated shared key to generate encrypted content. Means, and the transmitting means further transmits the generated encrypted content.
  • the shared key generation device encrypts the acquired content using the generated shared key, generates encrypted content, and transmits the encrypted content.
  • the content can be transmitted so that the other device can decrypt the content.
  • the present invention is a shared key recovery device that receives a shared key from a shared key generation device without being known to a third party, wherein the shared key generation device generates a seed value, and Generating a blind value and a shared key from the secret value, encrypting the generated seed value based on the generated blind value, generating encryption information, and generating the encrypted information.
  • the shared key restoration device that transmits the encrypted information, the receiving unit that receives the encrypted information, the decrypting unit that decrypts the received encrypted information to generate a decryption side value, Shared key generation means for generating a decrypted blind value and a decrypted shared key from the generated decrypted side value by the same method as the shared key generating method by the key generation device; and the generated decryption brine Generated based on the Re-encrypting means for encrypting the decrypted side value thus generated to generate re-encrypted information; and decrypting and sharing based on the received encrypted information and the generated re-encrypted information.
  • a determination unit for determining whether or not to output a key, and an output unit for outputting the generated decryption shared key when it is determined to output the key.
  • the shared key restoration device generates a decryption seed value from the received encryption information, re-encrypts the generated decryption seed value, generates re-encryption information, and Since it is determined whether or not to output the decryption shared key based on the encryption information and the re-encrypted information generated again, the shared key generated by the shared key generation device and the shared key recovery device If the generated shared decryption key matches, the decryption shared key can be output. In other words, when the shared key generated by the shared key generation device and the decryption shared key generated by the shared key recovery device do not match, the decryption shared key can be prevented from being output. .
  • the shared key generation device performs a one-way function on the seed value to generate a function value, generates the blind value and the shared key from the generated function value, and generates a public key. Using the obtained public key and the generated blind value, performing a public key encryption algorithm on the generated seed value, and obtaining the encrypted seed as the encryption information. Generating an encrypted seed value, transmitting the encrypted seed value, the receiving unit receiving the encrypted seed value as the encrypted information, and the decrypting unit generating a secret corresponding to the public key.
  • a secret key obtaining unit that obtains a key, and performing a public key decryption algorithm corresponding to the public key encryption algorithm on the received encrypted side value using the obtained secret key.
  • a decryption unit wherein the shared key generation means performs the one-way function on the generated decryption seed value to generate a decryption function value, and generates the decryption function value from the generated decryption function value. And a re-encryption unit that obtains the public key, using the obtained public key and the generated decryption blind value. Applying the public key encryption algorithm to the generated decryption seed value, A re-encryption unit that generates the re-encrypted seed value as encryption information, wherein the determination unit determines whether the received encrypted seed value and the re-encrypted seed value have been generated. It is determined whether or not they match, and if they match, it is determined that the decryption shared key is output.
  • the shared key recovery device determines whether the encrypted seed value matches the re-encrypted seed value, and if they match, determines that the decrypted shared key is output. Therefore, there is an effect that the output determination can be made reliably.
  • the public key encryption algorithm and the public key decryption algorithm are based on the NTRU encryption method, and the shared key generation device generates the public key using a key generation algorithm based on the NTRU encryption method.
  • the obtained public key polynomial is obtained, a seed value polynomial is generated from the seed value, a blind value polynomial is generated from the blind value, and the public key polynomial is calculated by an encryption algorithm of the NTRU cryptosystem.
  • the encryption seed value polynomial is transmitted as an encryption seed value, and the receiving unit transmits the encryption seed value polynomial as the encryption seed value.
  • the secret key obtaining unit obtains, as the secret key, a secret key polynomial generated by a key generation algorithm of the NTRU cryptosystem, and the public key decryption unit obtains the obtained secret key polynomial.
  • the received seed value polynomial is decrypted by the NTRU decryption algorithm to generate a decryption seed value polynomial, and the generated decryption seed value polynomial is generated.
  • the public key obtaining unit obtains the public key polynomial as the public key, and the re-encrypting unit generates a seed value from the decrypted seed value.
  • a polynomial is generated, a blind value polynomial is generated from the decryption private value, and the public key polynomial is used as a key by the NTRU encryption algorithm to disturb the seed value polynomial.
  • the determining unit determines the received encrypted seed value polynomial and the generated regenerated seed value polynomial. encryption It is determined whether or not the seed value polynomial matches.
  • the NTRU encryption algorithm can be adopted as the public key encryption algorithm and the public key decryption algorithm.
  • the shared key generation device obtains a public key, generates a baseline value, and uses the obtained public key and the generated blind value to generate the public key.
  • a public key encryption algorithm is applied to the seed value to generate a public key ciphertext, and at least one of the generated seed value, the baseline value, and the shared key is subjected to a second directionality.
  • the receiving unit includes: Receiving the encrypted information including a sentence and the second function value, the decryption unit receiving the encrypted information by using a secret key obtaining unit that obtains a secret key corresponding to the public key; and the obtained secret key.
  • a public key decryption unit that performs a public key decryption algorithm corresponding to the open key encryption algorithm to generate a decryption seed value; and any of the generated decryption seed value, the decryption blind value, and the decryption shared key Or a function unit that performs the second-directional function to generate a decrypted second function value, wherein the determining unit performs a determination based on the encryption information and the re-encryption information.
  • the second function value included in the received encryption information and the generated second function value for decryption It is determined whether or not they match, and if they match, it is determined that the decryption shared key is to be output, so that the output can be reliably determined.
  • the shared key generation device performs a one-way function on the seed value to generate a function value, generates the blind value and the shared key from the generated function value,
  • the shared key generation means includes the first one in the generated decryption seed value.
  • a decryption function value is generated by performing a directional function, and the decryption blind value and the decryption shared key are generated from the generated decryption function value.
  • the decryption shared key is generated from the decryption function value obtained by applying the first one-way function to the decryption seed value, so that the decryption seed value is exposed. Also, it is not easy to estimate the decryption shared key.
  • the shared key generation device generates a first function value by applying a first one-way function to the seed value instead of generating the blind value and the shared key.
  • Generating the shared key from the obtained first function value the shared key generating means, instead of generating the decryption plan value and the decryption shared key, A decryption function is generated by applying a one-way function, and the decryption shared key is generated from the generated decryption function value.
  • the decryption shared key is generated from the decryption function value obtained by applying the first one-way function to the decryption seed value, so that the decryption seed value is exposed. Also, it is not easy to estimate the decryption shared key.
  • the public key encryption algorithm and the public key decryption algorithm are based on the NTRU encryption method, and the shared key generation device generates the public key using a key generation algorithm of the NTRU encryption method.
  • the public key polynomial is obtained from the seed value, a seed value polynomial is generated from the seed value, a blind value polynomial is generated from the blind value, and the public key polynomial is generated by an NTRU encryption algorithm.
  • the seed value polynomial is encrypted using the blind value polynomial to disturb the seed value polynomial, and an encrypted seed value polynomial is generated as the public key ciphertext.
  • the secret key obtaining unit includes: Then, obtains a secret key polynomial generated by a key generation algorithm of the NTRU cryptosystem, and the public key decryption unit generates a public key ciphertext polynomial from the public key ciphertext, and obtains the obtained secret key polynomial.
  • the public key ciphertext polynomial is decrypted by a decryption algorithm of the NTRU cryptosystem by using as a key, a decryption seed value polynomial is generated, and the decryption Generate a value.
  • the NTRU encryption algorithm can be adopted as the public key encryption algorithm and the public key decryption algorithm.
  • the shared key generation device performs a one-way function on the seed value to generate a function value, and generates a verification value, the blind value, and the shared key from the generated function value.
  • Obtains a public key performs a public key encryption algorithm on the generated verification value using the obtained public key and the generated blind value, and generates a first ciphertext.
  • Applying another operation algorithm to the generated seed value based on the generated verification value to generate a second ciphertext, and including a first ciphertext and the second ciphertext.
  • Generating the encrypted information transmitting the generated encrypted information; receiving the encrypted information including the first ciphertext and the second ciphertext; and A secret key obtaining unit for obtaining a secret key corresponding to the public key; Using the obtained private key, the first ciphertext included in the received encrypted information is subjected to a public key decryption algorithm corresponding to the public key encryption algorithm, and a decryption verification value is obtained.
  • a public key decryption unit that generates a decryption value, and an operation algorithm that performs an inverse operation of the other operation algorithm on the second ciphertext included in the received encryption information based on the generated decryption verification value An operation decryption unit that generates a decryption seed value by performing a decryption function value, wherein the shared key generation means performs the one-way function on the generated decryption seed value to obtain a decryption function value.
  • Generating a decryption verification value, the decryption blind value, and the decryption shared key from the generated decryption function value, and the re-encryption unit includes a public key acquisition unit that acquires the public key.
  • the obtained public key and generation A re-encryption unit that generates the re-encryption information by applying the public key encryption algorithm to the generated decryption verification value using the obtained decryption blind value; Means for judging whether or not the first ciphertext included in the encryption information matches the generated re-encryption information, and if they match, outputs the decryption shared key Then judge.
  • the first ciphertext is subjected to a public key decryption algorithm corresponding to the public key encryption algorithm to generate a decryption verification value
  • the arithmetic algorithm is applied to the second cipher text based on the generated decryption verification value to generate a decryption seed value.
  • the public key encryption algorithm and the public key decryption algorithm are based on the NTRU encryption method, and the shared key generation device generates the public key using a key generation algorithm of the NTRU encryption method.
  • the shared key generation device generates the public key using a key generation algorithm of the NTRU encryption method.
  • the receiving unit includes: Receiving the encrypted information including the test value polynomial and the second ciphertext, and the secret key obtaining unit obtains, as the secret key, a secret key polynomial generated by an NTRU encryption key generation algorithm.
  • the public key decryption unit generates a first ciphertext polynomial from the first ciphertext, and uses the obtained secret key polynomial as a key to perform the first cipher by a decryption algorithm of the NTRU cryptosystem.
  • Decrypting the sentence polynomial, generating a decryption verification polynomial, generating the decryption verification value from the generated decryption verification value polynomial, the public key obtaining unit obtaining the public key polynomial, and the re-encryption unit Generates a decryption verification value polynomial from the decryption verification value, generates a blind value polynomial from the decryption blind value, and uses the public key polynomial as a key by an encryption algorithm of the NTRU encryption method.
  • the determining means determines whether or not the encrypted verification value polynomial as the first ciphertext matches the re-encryption verification value polynomial as the re-encrypted information.
  • the NTRU encryption algorithm can be adopted as the public key encryption algorithm and the public key decryption algorithm.
  • the other operation algorithm is a common key encryption algorithm
  • the operation algorithm for performing the inverse operation is a corresponding common key decryption algorithm
  • the operation decryption unit is configured to perform the decryption by the decryption unit.
  • a common key decryption algorithm is applied to the second ciphertext to generate the decryption side value.
  • the other operation algorithm and the operation algorithm for performing the inverse operation are exclusive OR, and the operation decryption unit performs an exclusive OR on the decryption verification value and the second ciphertext. Then, the decoding seed value is generated.
  • the other operation algorithm is addition, and the operation algorithm for performing the inverse operation is subtraction, and the operation decryption unit performs subtraction on the decryption verification value and the second ciphertext. To generate the decoded seed value.
  • the other operation algorithm is a multiplication
  • the operation algorithm for performing the inverse operation is a division
  • the operation decryption unit performs a division on the decryption verification value and the second ciphertext. To generate the decoded seed value.
  • a common key decryption algorithm exclusive OR, subtraction, and division can be adopted as the operation algorithm for performing the inverse operation.
  • the shared key generation means applies a one-way function to the decrypted seed value to generate a function value, and generates the decrypted blind value and the decrypted shared key from the generated function value. I do.
  • a one-way function is applied to the seed value to generate a function value, and a decryption blind value and a decryption shared key are generated from the generated function value. Can be used.
  • the one-way function is a hash function.
  • the shared key generation unit applies a hash function to the decrypted side value.
  • the shared key generation means uses the part of the generated function value as the decryption secret value and the other part as the decryption secret key, thereby obtaining the decryption secret. And a decryption shared key.
  • a part of the generated function value is used as the decryption blind value, and another part is used as the decryption shared key, so that the decryption blind value and the decryption are reliably obtained from the function value.
  • a shared key can be obtained.
  • the shared key generation device further obtains the content, encrypts the obtained content using the generated shared key, generates encrypted content, and generates the encrypted content.
  • the shared key decryption device transmits the content, and further uses the content receiving means for receiving the encrypted content, and the received encrypted content using the output decryption shared key.
  • the shared key restoring device uses the output decryption shared key to decrypt the received encrypted content to generate decrypted content, which is known to a third party. There is an effect that the content can be received from the shared key generation device without using the shared key generation device.
  • FIG. 1 is a conceptual diagram showing the configuration of the content distribution system 10 and the connection form between the components.
  • FIG. 2 is a block diagram showing the configuration of the encryption device 110.
  • FIG. 3 is a block diagram showing the configuration of the decoding device 120.
  • FIG. 4 is a processing system diagram showing operations of the encryption device 110 and the decryption device 120.
  • FIG. 5 is a flowchart showing the operation of the encryption device 110 and the decryption device 120.
  • FIG. 6 is a block diagram showing the configuration of the encryption device 110b.
  • FIG. 7 is a block diagram showing a configuration of the decoding device 120b.
  • FIG. 8 is a processing system showing the operation of the encryption device 110b and the decryption device 120b. It is a diagram.
  • FIG. 9 is a block diagram showing the configuration of the encryption device 110c.
  • FIG. 10 is a block diagram showing the configuration of the decoding device 120C.
  • FIG. 11 is a processing system diagram showing operations of the encryption device 110c and the decryption device 120c.
  • FIG. 12 is a processing system diagram showing an operation of a modification of the encryption device 110c and the decryption device 120c.
  • FIG. 13 is a block diagram showing the configuration of the encryption device 110d.
  • FIG. 14 is a block diagram showing the configuration of the decoding device 120d.
  • FIG. 15 is a flowchart showing the operation of the encryption device 110d and the decryption device 120d.
  • FIG. 16 is a processing system diagram illustrating operations of the encryption device 110d and the decryption device 120d.
  • FIG. 17 is a block diagram showing the configuration of the encryption device 110e.
  • FIG. 18 is a block diagram showing a configuration of the decoding device 120e.
  • FIG. 19 is a processing system diagram showing operations of the encryption device 110e and the decryption device 120e.
  • FIG. 20 is a processing system diagram showing the operation of a modification of the encryption device 110 e and the decryption device 120 e.
  • the content distribution system 10 is an encryption communication system that performs encrypted communication by performing key distribution using a key encapsulation mechanism using NTRU encryption.
  • the NTRU encryption method used in the content distribution system 10 will be briefly described.
  • the NTRU cryptosystem is a public key cryptosystem that performs encryption and decryption using polynomial operations.
  • Non-patent document 2 describes in detail the NTRU encryption method and the method of generating a public key and a secret key in the NTRU encryption method.
  • N integer system parameters
  • p integer system parameters
  • q an encryption device and a decryption device described later have these system parameters.
  • the NTRU cryptosystem is a public key cryptosystem that performs encryption and decryption by a polynomial operation.
  • the polynomial handled by the NTRU cryptosystem is a polynomial of N-1 dimension or less for the system parameter N described above.
  • N 5
  • it is a polynomial such as ⁇ ⁇ 4 + ⁇ ⁇ 3 +1.
  • ⁇ ⁇ ⁇ means X to the power a.
  • the public key h, secret key:, plaintext m, random number r, and ciphertext c used at the time of encryption or decryption are all expressed as polynomials of N-1 dimension or less.
  • the product of X is the product of a polynomial and a polynomial as x, and the product of an integer and a polynomial as
  • the operation is always performed to be a polynomial of ⁇ -1 dimension or less.
  • the encryption device described below performs NT RU encryption as shown below.
  • E (m, r, h) is a result of a polynomial operation obtained by inputting a plaintext polynomial m, a random number polynomial r, and a public key polynomial h to an encryption algorithm E of the NTRU encryption method.
  • the encryption algorithm E is described in detail in Non-Patent Document 2, and the description is omitted here.
  • a parameter d for generating a random number polynomial r is predetermined.
  • the coefficient is ⁇ 1 '' for d terms
  • the coefficient is ⁇ 1 1 '' for the other d terms
  • the remaining terms are For, the coefficient is chosen to be "0".
  • the random number polynomial r is a polynomial of N-1 dimension or less, and there are N coefficients for N terms from 0 (constant term) to N-1 dimension.
  • N coefficients are “1”
  • d coefficients are “1 1”
  • (N— 2 d) coefficients are “0”. Is chosen so that
  • the decryption device which will be described later, performs decryption of the NT RU encryption method as follows.
  • D (c, f) is the result of a polynomial operation obtained by inputting the ciphertext polynomial c and the secret key polynomial f to the decryption algorithm D of the NTRU cryptosystem.
  • the decoding algorithm D is described in detail in Non-Patent Document 2, and the description is omitted here.
  • the content distribution system 10 includes a content server device 140, an encryption device 110, a decryption device 120, a playback device 150, and a monitor 155.
  • the server device 140 and the encryption device 110 are connected via a dedicated line 20, and the encryption device 110 and the decryption device 120 are connected via the Internet 130.
  • the playback device 150 is connected to a decoding device 120 and a monitor 155 having a built-in speaker.
  • a memory card 160 is mounted on the encryption device 110, and a memory card 170 is mounted on the decryption device 120.
  • the content server device 140 transmits content such as a movie composed of video and audio to the encryption device 110 via the dedicated line 20.
  • the encryption device 110 and the decryption device 120 generate the same shared key K and shared key K ′, respectively.
  • the encryption device 110 encrypts the content received from the content server device 140 using the shared key K to generate encrypted content, transmits the generated encrypted content, and Receives the encrypted content and restores the received encrypted content.
  • the playback device 150 generates a video signal and an audio signal from the playback content, and the monitor 155 displays a video and outputs audio.
  • the content server device 140 is a computer system (not shown) including a microprocessor, a ROM, a RAM, a node disk unit, a display unit, a communication unit, a keyboard, a mouse, and the like.
  • a computer program is stored in the RAM or the hard disk unit.
  • the microprocessor operates according to the computer program, the content server device 140 achieves a part of its functions.
  • the content server device 140 stores the content in advance, and the content includes a plurality of partial contents mi (1 ⁇ i ⁇ n).
  • the content server device 140 reads the partial content mi in response to a request from the encryption device 110, and transmits the read partial content mi to the encryption device 110 via the dedicated line 20.
  • the memory card 160 is a card-type storage device employing flash memory as a storage medium, and stores a public key polynomial h in advance.
  • the memory card 170 is a card-type storage device similar to the memory card 160, and stores a secret key polynomial f and a public key polynomial h in advance.
  • the secret key polynomial; f and the public key polynomial h are generated by the NTRU cryptosystem and correspond to each other.
  • the encryption device 110 includes a public key input unit 111, a random number generation unit 112, a first function unit 113, an encryption unit 114, and a first transmission unit 111. 7. It is composed of a common key encryption unit 118 and a second transmission unit 119.
  • the encryption device 110 is, specifically, a computer system including a microprocessor, an R ⁇ M, a RAM, a communication unit, and the like. Previous The computer program is stored in the RAM. The cryptographic device 110 achieves its functions by the microphone processor operating in accordance with the computer program.
  • the public key input unit 111 reads the public key polynomial h of the decryption device 120 from the memory card 160 and outputs the read public key polynomial h to the encryption unit 114.
  • the random number generation unit 112 generates a random number s as a base value for generating the shared key K, and uses the generated random number s as the first function unit 113 and the encryption unit 1 Output to 1 and 4.
  • the first function unit 113 receives the random number s from the random number generation unit 112, and generates a function value G (s) of the random number s.
  • the function G is a hash function with an output length of 2 k bits.
  • the hash function is a kind of one-way function.
  • the first function part 113 sets the generated function by setting the upper k bits of the function value G (s) as the random value u and the lower k bits of G (s) as the shared key K.
  • Generate a shared key K and a random number u from the value G (s) output the generated random number u to the encryption unit 114, and output the generated shared key K to the common key encryption unit 118.
  • the encryption unit 114 receives the public key polynomial h from the public key input unit 111, receives the random number s from the random number generation unit 112, and receives the random value u from the first function unit 113.
  • the first ciphertext cl of the random number s is generated by the NTRU cipher using the public key polynomial h and the random value u as follows.
  • the random number value u is a blind value and is used to obscure the random number s to be encrypted.
  • the encryption unit 1 1 4 calculates that the coefficient of the d terms of the random number polynomial r is ⁇ 1 '', the coefficient of the d terms is ⁇ ⁇ 1 '', and the remaining The random number polynomial r with the coefficient of the term ⁇ 0 '' is uniquely determined from the random value u. Generate as follows.
  • the encryption unit 114 sets the random number value u as the initial value (random number seed) of the pseudo-random number sequence, and generates 2d pseudo-random numbers from ⁇ 0 1 N-1 ⁇ so as not to overlap.
  • the coefficient of the d-dimensional terms indicated by the first d pseudo-random numbers is “1”, and the coefficients of the d-dimensional terms indicated by the remaining d pseudo-random numbers are “1 1”. And the coefficients of the other dimension terms are “0”. ⁇
  • the encryption unit 114 sets the value of each digit of the N-digit bit string in the case where the random number s is represented by a binary number so that the random number s can be applied to the encryption algorithm E of the NTRU cryptosystem.
  • the random number polynomial s is configured to correspond to the coefficient of each term of the random number polynomial Sp.
  • the value of the lower b bits of the random number s is used as the coefficient of the term Xb.
  • s 110010 (bit representation)
  • the encryption unit 114 uses the public key polynomial h to apply the encryption algorithm E to the random number polynomial sp using the random number polynomial r,
  • the encryption unit 1 1 4 converts the generated first ciphertext c 1 into the first transmission unit 1 1
  • each block indicating each component of the encryption device 110 is connected to another block by a connection line.
  • each connection line indicates a route through which signals and information are transmitted.
  • those having a key mark on the connection line are transmitted with information as a key to the encryption unit 114. Route.
  • the block indicating the common key encryption unit 118 The same applies to other drawings.
  • the first transmission units 1 1 and 7 receive the first cipher text c 1 from the encryption unit 1 14 and transmit the first cipher text c 1 to the decryption device 120 via the Internet 130. I do.
  • the common key encryption unit 118 has a common key encryption algorithm Sym such as a DES encryption method, for example.
  • a ciphertext c Sym (m, K) is generated in a device on the encryption side by applying a symmetric key encryption algorithm Sym to plaintext m using an encryption key K.
  • symmetric key encrypting section 1 18 outputs symmetric key cipher text C i (1 ⁇ i ⁇ n) to second transmitting section 1 19.
  • the second transmission unit 1 19 receives the common key ciphertext C i (1 i ⁇ n) from the common key encryption unit 1 18, and converts the received common key ciphertext C i (1 i ⁇ n) into an integer.
  • the data is transmitted to the decryption device 120 via one network 130.
  • the decryption device 120 includes a secret key input unit 121, a first reception unit 122, a decryption unit 123, a second function unit 126, a comparison unit 127, and a common key decryption unit. It comprises a unit 128 and a second receiving unit 129.
  • the decryption device 120 is a computer system similar to the encryption device 110.
  • the decoding device 120 achieves its function by the microprocessor operating according to the computer program.
  • the secret key input section 1 2 1 starts from the memory card 1 7 It reads the secret key polynomial f and the public key polynomial h, outputs the read secret key polynomial f to the decryption unit 123, and outputs the read public key polynomial h to the comparison unit 127.
  • the first receiving unit 122 receives the first ciphertext c 1 from the encryption device 110 via the Internet 130 and decrypts the received first ciphertext c 1 to the decrypting unit 1 2 3 Output to
  • the decryption unit 1 2 3 receives the secret key polynomial f from the secret key input unit 1 2 1, receives the first ciphertext c 1 from the first reception unit 1 2 2, and performs NT Using the secret key polynomial f, the RU cipher decrypts the first cipher text c 1 to generate a decrypted random number s ′.
  • the decrypted random number polynomial sp ' is a decrypted sentence of the NT RU encryption and is represented by a polynomial
  • the coefficient of each term of the decrypted random number polynomial sp' is N when the decrypted random number s' is expressed in binary.
  • the coefficient of the b-dimensional term X b of the decoding random number polynomial s p ′ is the value of the lower b bits of the decoding random number s ′.
  • the decryption unit 1 2 3 outputs the received first ciphertext c 1 and the generated decryption random number s ′ to the comparison unit 1 27, and outputs the generated decryption random number s ′ to the second function unit 1 2 Output to 6.
  • the second function part 1 2 6 is the same function as the function of the first function part 1 13
  • the second function part 1 26 receives the decryption random number s' from the decryption part 1 2 3 and generates the function value G (s') of the decryption random number s' in the same manner as the first function part 113. Then, a random value u ′ and a shared key K ′ are generated from the function value G (s ′), and the generated random value u ′ and the shared key K ′ are output to the comparing unit 127.
  • the comparison section 127 includes an encryption section 127 X and a comparison operation section 127 y.
  • the encryption unit 127X receives the public key polynomial h from the secret key input unit 121, receives the decrypted random number s 'from the decryption unit 123, and receives the random value u' from the second function unit 126. .
  • the decrypted random number s' is encrypted using the public key polynomial h and the random value u 'to generate the first re-cipher text cl', and the generated 1 Output the re-cipher text c 1 ′ to the comparison operation unit 1 2 7 y.
  • the comparison operation unit 127 y receives the first cipher text c 1 from the decryption unit 123, receives the shared key K ′ from the second function unit 126, and performs the first re-encryption from the encryption unit 127 x. Receive the ciphertext c 1 '. Next, the first cipher text c 1 is compared with the first re-cipher text cl ′ to determine whether or not they match, and when it is determined that they match, the received shared key K ′ is used. Output to common key decryption section 128. If it does not match, do not output the received shared key K '.
  • the second receiving unit 1 229 receives the common key ciphertext C i (1 ⁇ in) from the encryption device 110 via the internet 130 and receives the common key ciphertext C i (1 ⁇ i ⁇ n) to the common key decryption unit 128.
  • the common key decryption unit 128 has in advance the same common key encryption algorithm Sym as the common key encryption algorithm Sym of the common key encryption unit 118.
  • the symmetric key decryption unit 1 28 generates the decrypted text mi '(1 ⁇ i ⁇ n) To the playback device 150.
  • the playback device 150 receives the decrypted text mi ′ (1 ⁇ i ⁇ n) from the decryption device 120, generates a video signal and an audio signal from the received decrypted text mi '(1 ⁇ i ⁇ n), and generates Output video and audio signals to monitor 155.
  • the monitor 155 receives the video signal and the audio signal from the playback device 150, and displays the video and outputs the audio based on the received video signal and the audio signal.
  • the public key input unit 111 of the encryption device 110 reads the public key polynomial h of the decryption device 120 from the memory card 160 and outputs the read public key polynomial h to the encryption unit 114. (Step S101).
  • the random number generation unit '112 generates a random number s, and outputs the generated random number s to the first function unit 113 and the encryption unit 114 (step S102).
  • the first function unit 1 13 receives the random number s from the random number generation unit 1 12 and generates a function value G (s) of the random number s (step S 103).
  • the first function The unit 113 generates a random value u and a shared key K from the function value G (s), outputs the random value u to the encryption unit 114, and outputs the shared key K to the common key encryption unit 111. Output to 8 (step S104).
  • the encryption unit 1 1 4 receives the public key polynomial h from the public key input unit 1 1 1, receives the random number s from the random number generation unit 1 1 2, and obtains the random value U from the first function unit 1 1 3 It receives and generates the first ciphertext c 1 of the random number S using the public key polynomial h and the random number value U, and outputs the first ciphertext c 1 to the first transmitting unit 1 17 (step S 10 5 ).
  • the first transmission unit 117 receives the first ciphertext c 1 from the encryption unit 114 and sends the first ciphertext c 1 to the decryption device 1 via the Internet 130. Send to 20 (step S106).
  • the secret key input unit 1 21 of the decryption device 1 2 0 reads the secret key polynomial f and the public key polynomial h of the decryption device 1 2 0 from the memory card 1 7 0, and reads the read private key polynomial f. Is output to the decryption unit 123, and the read public key polynomial h is output to the comparison unit 127 (step S155).
  • the first receiving unit 122 receives the first ciphertext c 1 from the encryption device 110 via the Internet 130 and decodes the first ciphertext c 1 into the decryption unit 1 2 Output to 3 (Step S106).
  • the decryption unit 1 2 3 receives the secret key polynomial f from the secret key input unit 1 2 1, receives the first ciphertext c 1 from the first reception unit 1 2 2, and then receives the secret key polynomial Using f, the first ciphertext c1 is decrypted to generate a decrypted random number s', the first ciphertext c1 and the decrypted random number s' are output to the comparison unit 127, and the decrypted random number s' is (2) Output to the function part 1 26 (step S 15 2).
  • the second function unit 1 26 receives the decryption random number s ′ from the decryption unit 1 2 3 and generates a function value G (s ′) of the decryption random number s ′ (step S 15 3), A random number value U ′ and a shared key K ′ are generated from the function value G (S ′), and the random number value U ′ and the shared key K ′ are output to the comparison unit 127 (step S154).
  • the comparison unit 127 receives the first ciphertext c 1 from the decryption unit 123, receives the random number u ′ and the shared key K ′ from the second function unit 126, and A re-cipher text c 1 ′ is generated (step S 155), and it is checked whether the first cipher text c 1 is a cipher text of a decrypted random number S. ′ using the random value U ′, and the first cipher text is checked. If the sentence c 1 is not the cipher text of the decrypted random number s ′ (step S 156), the decryption device 120 ends the process.
  • the second transmitting section 119 receives the common key ciphertext C i (1 ⁇ i ⁇ n) from the common key encrypting section 118, and receives the decryption device via the Internet 130. Send it to 120 (step S108), and end the processing.
  • the comparing section 127 outputs the shared key K' to the common key decrypting section 128 (step S15) 7).
  • the second receiving unit 129 receives the ciphertext C i (l ⁇ i ⁇ n) from the encryption device 110 via the Internet 130, and outputs the symmetric key decryption unit 1 Output to 28 (step S108).
  • the encryption device 110 receives the public key polynomial h of the decryption device 120 as input, generates a random number s, and derives a random number value u and a shared key K from the function value G (s).
  • the cryptographic device 110 encrypts the random number s with the public key polynomial h and the random number value u using the NT RU cryptosystem to generate a first ciphertext c 1, and interpolates the first ciphertext cl into the
  • the data is transmitted to the decryption device 120 via one network 130. That is, the encryption device 110 performs the following processing, and transmits the first cipher text c1 to the decryption device 120.
  • the cryptographic device 110 encrypts the plaintext mi (1 ⁇ i ⁇ n) input from the outside with symmetric key cryptography and encrypts the ciphertext C i (1 ⁇ i ⁇ n) to the decryption device 120 via the Internet 130 Send.
  • the decryption device 120 performs the following processing to derive a shared key K ′.
  • the decryption device 1 2 0 sends the common key ciphertext C i (1 ⁇ i ⁇ n from the encryption device 1 10 via the Internet. ) Is decrypted with common key cryptography to generate a decrypted text mi '(1 ⁇ i ⁇ n) and output it to the outside.
  • the decryption device 120 outputs the shared key K ′ do not do.
  • a shared key K is derived by inputting an element s that cannot be derived from a ciphertext C without knowing a secret key into a hash function G.
  • a decryption error may occur.
  • the element S cannot be derived, and therefore an incorrect shared key K 'is derived.
  • the hash value G (s) of the random number s is used to generate a random value u in addition to the shared key. Re-encrypt the decrypted random number s' using u and the public key polynomial h to generate the first re-cipher text c 1 ', unless the first re-cipher text cl' is the same value as the first cipher text c 1 Since the shared key K ′ is not output, different keys can be prevented from being derived between the encryption device and the decryption device when a decryption error occurs.
  • Embodiment 1 described above is an example of the embodiment of the present invention, and the present invention is not limited to this embodiment at all, and may be implemented in various modes without departing from the gist of the present invention. What you get. The following cases are also included in the present invention.
  • the method of conversion between the value of each bit of the bit string and the coefficient of each term of the polynomial performed by the encryption unit 114 and the decryption unit 123 is not limited to the method described above. Other conversion methods may be used.
  • a random number S to a random number polynomial Sp May be converted using a function that makes a one-to-one correspondence between the value of the polynomial and the coefficient of each term of the polynomial, and the value of each bit of the bit string and the coefficient of each term of the polynomial may be converted.
  • Conversion may be performed using a function value table stored in one-to-one correspondence.
  • the value of r is determined from u
  • the coefficient of the d-dimensional term of r is set to ⁇ 1 ''
  • the coefficient of the d-dimensional term is
  • Other conversion methods may be used as long as the coefficient of the other dimension is set to “0”, and the coefficient of the other dimension is set to “0”.
  • using a function that associates the random value u with a polynomial, or a function value table It may be converted.
  • the public key cryptosystem used in the encryption unit 114 and the decryption unit 123 is as follows.
  • the encryption unit 114 encrypts the random number s using the public key and the random value u to obtain the first key. It is only necessary that the cryptogram c 1 be generated, and that the decryption unit 123 generate the decrypted random number s ′ equal to the random value s by decrypting the first cipher text c 1 with the secret key.
  • the public key encryption used in the encryption unit 114 and the decryption unit 123 can use any public key encryption other than the NTRU encryption.
  • h and f are the public and private keys of E1Gama1 encryption, respectively, and the random number s is used as h and u in the encryption unit 114. Then, c 1 is generated by encrypting the data, and c 1 is generated in the decryption unit 123 by using; f to generate s ′.
  • the first function part 113 sets the upper k bits of the function value G (s) as the random number value u, and sets the lower k bits as the shared key K, and generates random numbers from the function value G (s).
  • Other methods may be used as long as the numerical value U and the shared key K are derived.
  • the upper kZ 2 bits of the function value G (s) are set as the random value u, and the lower k
  • X 3/2 bits may be used as shared key K.
  • k bits may be selected every other bit and used as the random number value u, and the remaining k bits may be used as the shared key.
  • the random value u is generated by the first function part 113 and the second function part 126.
  • other generation methods may be adopted as long as the same value can be obtained by the encryption device 110 and the decryption device 120.
  • the encryption device 110 may directly transmit the random number value u to the decryption device 120b.
  • the first cipher text c 1 and the random number value u may be transmitted to the decryption device 120 as follows. At this time, the random number value u may be transmitted after being encrypted.
  • the random number value u is separately transmitted from the encryption device 110 to the decryption device 120.
  • the decryption device 120 In the decryption device 120,
  • the first re-cipher text c 1 ′ is generated using the received random value u instead of the random value u ′.
  • the encryption device 110 may encrypt and transmit the random number value u
  • the decryption device 120 may decrypt the encrypted random value u.
  • the partial information of a part of the random value u is converted into the first function part 113 and the second function.
  • the partial information generated by the unit 126 and the remaining part of the random number value u may be directly transmitted from the encryption device 110 to the decryption device 120.
  • the encryption device 110 may transmit the first cipher text c 1 and the random value u 2 to the decryption device 120 as follows.
  • the encryption device 110 may transmit the first cipher text c 1 and the random value u 2 to the decryption device 120 as follows.
  • the first ciphertext c1 is generated using the random number value u.
  • the first re-cipher text c 1 ′ and the first cipher text c 1 are used to prevent a different shared key from being derived between the encryption device 110 and the decryption device 120 due to the occurrence of a decryption error. If is the same, instead of outputting shared key K ', cryptographic device 110 generates a hash function value for at least one of random number s, random value u, and shared key K, and generates By transmitting the hash function value thus obtained to decryption apparatus 120 and decrypting apparatus 120 verifying this hash function value, it may be determined whether or not to output shared key K ′.
  • a hash function value H (S) of a random number s may be generated for an arbitrary hash function H, or a random number S, a random value u, a shared key may be generated.
  • a combination of K for example, a hash function value H (s
  • the first function unit 113 of the cryptographic device 110 instead of deriving the random number u and the shared key K from the function value G (s), extracts only the shared key from G (s). It may be derived. The specific examples are described below.
  • the content distribution system 10 includes an encryption device 110b and a decryption device 120b instead of the encryption device 110 and the decryption device 120, and the encryption device 110b is shown in FIG.
  • the decryption device 120 includes a secret key input unit 122 b, a first reception unit 122 b, and a decryption unit.
  • the comparison unit 127 b includes a third function unit 127 u and a comparison operation unit 127 V.
  • the cryptographic device 110b When the cryptographic device 110b generates a hash function value of the random number s, and the decryption device 120b verifies the hash function value, the cryptographic device 110b generates a hash function value as shown in the processing system diagram of FIG. As described above, the first function unit 113 b generates G (s) (step S103), and generates K from G (s) (step S104).
  • the encryption unit 114b generates a random number value u, generates a random number polynomial r from the generated random number value u, and generates a random number s using the random number polynomial r and the public key polynomial h.
  • the ciphertext c1 is generated (step S105), and the knush function value H (s) is generated (step S111).
  • the first transmitting unit 117b transmits the first ciphertext c1 (step S106), and transmits the knush function value H (s) (step S112).
  • the first receiving section 122b receives the first ciphertext c1 (step S106) and receives the Nosh function value H (s) (step S106). 1 1 2).
  • the decryption unit 123b decrypts the first ciphertext c1 using the secret key polynomial f to generate s' (step S152).
  • the second function unit 126 generates G (s ') (step S153), and generates from G (s') (step S154).
  • Patent Document 1 a method disclosed in Patent Document 1 is used to encrypt a random number s with additional information and generate a first cipher text c 1. Is also good. That is, in FIG. 6, the encryption unit 114b generates the additional information Ra, encrypts the value of the bit combination sIIRa of s and Ra, and generates the first ciphertext c1, In FIG. 7, the decryption unit 123 b may decrypt the first cipher text c 1 to generate s ′ IIR a ′, and remove R a ′ to generate a decrypted random number s ′.
  • the value of the reversible conversion F (s, Ra) of s and Ra may be used instead of the value of sIiRa.
  • a content delivery system 10c (not shown) as another embodiment according to the present invention will be described.
  • the content distribution system 10c is a modified version of the content distribution system 10 based on the content distribution system 10, and further includes a verification value a in addition to the random number u and the shared key K from the function value G (s). Instead of generating and transmitting the first ciphertext 1 in which the random number s is encrypted, the cryptographic device generates the first ciphertext c 1 in which the verification value a is encrypted and the random number s in the verification value a
  • the content distribution system 10 differs from the content distribution system 10 in that a second ciphertext c2 encrypted based on the content is generated and transmitted.
  • the content distribution system 110 c has the same configuration as the content distribution system 10. Instead of the encryption device 110 and the decryption device 120, the encryption device 110 c and the decryption device are used. Contains 1 20 c. The other configuration is the same as that in the content distribution system 10, and therefore the description is omitted.
  • the encryption device 110c has the same configuration as the encryption device 110, as shown in FIG. 9, and includes a random number generation unit 112, a first function unit 113, and an encryption unit 1120. In place of 14 and 1st transmission section 1 17, random number generation section 1 1 2 c, 1st function section 1 1 3 c, encryption section 1 1 4 c, random number mask section 1 1 6 c and 1st transmission Part 1 Including 17C.
  • the random number generation unit 112c the first function unit 113c, the encryption unit 114c, the random number mask unit 116c, and the first transmission unit 117c will be described.
  • Random number generator 1 1 2 c
  • the random number generation unit 1 1 2 c generates a random number s as a seed value from which the shared key K is generated, and uses the generated random number s as a first function unit 1 1 3 b and a random number mask unit 1 1 6 Output to c and
  • the first function unit 1 1 3c receives the random number s from the random number generation unit 1 1 2c, and generates a function value G (s) of the random number s. Next, a verification value a, a shared key K, and a random value u are generated from the generated function value G (s).
  • the function G is a hash function having an output length of 3 k bits
  • the first function part 113c has the upper k bits of the function value G (s) as the verification value a
  • the function G The middle k bits of (s) are used as the shared key K
  • the lower k bits of the function value G (s) are used as the random number value u.
  • the first function unit 113c outputs the generated verification value a and the random number value u to the encryption unit 114c, and outputs the generated shared key K to the common key encryption unit 118. Then, the generated verification value a is output to the random number mask section 1 16 c.
  • the encryption unit 114c receives the public key polynomial h from the public key input unit 111, receives the verification value a and the random value u from the first function unit 113c, and performs the following: Then, the first cipher text c 1 of the verification value a is generated using the public key polynomial h and the random number value u.
  • the first ciphertext c1 is a ciphertext according to the NTRU cryptosystem.
  • the encryption unit 1 1 4c determines that each parameter of the d terms is “1” for the parameter d of the NTRU cryptosystem, and that each coefficient of the other d terms is “1 1”.
  • a random polynomial r in which each coefficient of the term is “0” is generated so as to be uniquely obtained from the random value u.
  • the random number value u is set as the initial value (random number seed) of the pseudo-random number sequence, and 2d pseudo-random numbers are selected from ⁇ 0, 1 N—1 ⁇ so as not to overlap.
  • the coefficient of the dimension term represented by d pseudorandom numbers is ⁇ 1 ''
  • the coefficient of the dimension represented by the other d pseudorandom numbers is ⁇ 1 1 ''
  • the coefficients of the remaining terms are ⁇ 0 '' Generates a random number polynomial r.
  • the encryption unit 114c generates each of the N-digit bit strings when the verification value a is expressed in a binary number.
  • the verification value a is converted to the verification value polynomial a by constructing the verification value polynomial ap such that the digit value corresponds to the coefficient of each term of the verification value polynomial ap.
  • the value of the lower b bits of the verification value a is the value of the coefficient of the term X ⁇ b.
  • a verification value polynomial a ⁇ ⁇ 5 + ⁇ ⁇ is generated.
  • the encryption unit 114c outputs the generated first ciphertext c1 to the first transmission unit 117c.
  • X 0 r is an operator representing an exclusive OR operation.
  • random number mask unit 1 16 c may use a shared key cryptography algorithm, addition or multiplication instead of exclusive OR.
  • the first transmission unit 1 17 c receives the first ciphertext c 1 from the encryption unit 1 14 c.
  • the second ciphertext c 2 is received from the random number mask unit 1 16 c, and the received first ciphertext c 1 and second ciphertext c 2 are received via the Internet 130 by the decryption device 1 Send to 20c.
  • the decoding device 120 c has the same configuration as the decoding device 120, as shown in FIG. Instead of the decoding unit 123, the second function unit 126, and the comparison unit 127, the first receiving unit 122c, the decoding unit 123c, and the random number mask removing unit 125c , The second function part 126c and the comparison part 127c.
  • the first receiving section 122c the decoding section 123c, the random number mask removing section 125c, the second function section 126c, and the comparing section 127c will be described.
  • the first receiving unit 122c receives the first ciphertext c1 and the second ciphertext c2 from the encryption device 110c via the Internet 130, and receives the received first ciphertext c1 and the second ciphertext c2.
  • the ciphertext c 1 is output to the decryption unit 123c, and the received second ciphertext c2 is output to the random number mask removal unit 125c.
  • the decryption unit 1 2 3 c receives the secret key polynomial f from the secret key input unit 1 2 1, receives the first ciphertext c 1 from the first reception unit 1 2 2 c, and performs Using the secret key polynomial f, the first cipher text C 1 is decrypted to generate a decryption verification value a ′.
  • the decryption verification value a ' is a decrypted text by NTRU encryption.
  • the decryption unit 1 2 3 c is an N-digit bit string in which the coefficient of each term of the decryption verification value polynomial ap 'is expressed in binary.
  • the decryption verification value polynomial ap ' is converted to the decryption verification value a' so as to correspond to each digit value of the decryption verification value a '.
  • the coefficient of the b-dimensional term X b of the decryption verification value polynomial ap ' is calculated as the lower b bits of the decryption verification value a' Eye value.
  • the decryption unit 123c outputs the generated decryption verification value a 'to the random number mask removal unit 125c, and outputs the received first ciphertext cl to the comparison unit 127c.
  • the random number mask removal unit 125c uses the shared key encryption algorithm, respectively.
  • a shared key decryption algorithm, subtraction, or division corresponding to may be used.
  • the second function part 126c has an algorithm by the same function G as the function of the first function part 113c.
  • the second function part 1 26 c receives the decrypted random number s ′ from the random number mask remover 125 c and generates a function value G (s ′) of the received decrypted random number s ′.
  • a verification value a ′ ′, a shared key K ′, and a random number value u ′ are generated from the function value G (s ′), and the generated verification value a ′ ', Shared key K', and random value u 'are output to comparison section 127c.
  • the comparison section 127 c includes a comparison operation section 127 s and an encryption section 127 t.
  • the encryption unit 127 t receives the public key polynomial h from the secret key input unit 122, receives the verification value a '' and the random value u '' from the second function unit 126 c, and receives the received public key. Using the polynomial h and the random value u ', the verification value a''is encrypted in the same way as the encryption unit 1 1 4 c to generate the first re-cipher text c 1', and the generated first re-cipher The statement cl 'is output to the comparison operation unit 127 s.
  • the encryption device 110c receives the public key polynomial h of the decryption device 120c (step S101), generates a random number s (step S102), and obtains a function value G (s). Then, a verification value a, a shared key K, and a random number value u are derived from the function value G (s) (step S122). Next, the encryption device 110c encrypts the verification value a using the public key polynomial h and the random number value u using the NTRU encryption to generate a first ciphertext c1 (step S105).
  • step S122 the encryption device 110c transmits the first ciphertext c1 and the second ciphertext c2 to the decryption device 120c via the Internet 130 (step S1). 0 6).
  • the No. 1 device 110c encrypts the plaintext mi (1 ⁇ i ⁇ n) received from the content server device 140 using the common key cryptosystem, and encrypts it.
  • a sentence C i (1 ⁇ i ⁇ n) is generated (step S 1 0 7) and transmitted to the decryption device 1 2 0 c via the internet 1 3 0. (Step S108).
  • the decryption device 120 c receives the secret key polynomial f and the public key polynomial h of the decryption device 120 c (step S 15 1), and the encryption device 1 10 0
  • the first ciphertext c1 and the second ciphertext c2 are received from c (step S106), and the first ciphertext c1 is decrypted using the secret key polynomial f to generate a decryption verification value a ' (Step S152).
  • the decryption device 120c performs the following processing to derive a shared key K '.
  • the first ciphertext c1 is correctly decrypted and decrypted.
  • the verification value a ′ a
  • the decryption verification value a 'and the verification value a are different, so that the decrypted random number s' obtained from the second ciphertext c2 is different from s. Therefore, the random value u 'and the shared key K' derived from G (s') are different from u and K, respectively.
  • the decryption device 120 c since the first re-cipher text c 1 ′ is different from the first cipher text c 1 because a ′ and u ′ are different from a and u, respectively, the decryption device 120 c generates the shared key K ′ Do not output.
  • a shared key K is derived by inputting an element s that cannot be derived from a ciphertext C without knowing the secret key into a hash function G.
  • a decryption error may occur.
  • the element s cannot be derived, and therefore an incorrect shared key K 'may be derived.
  • the content distribution system, the encryption device, and the decryption device generate the verification value a and the random value u in addition to the shared key from the hash function value G (s) of the random number s, and perform decryption.
  • the device re-encrypts the decryption verification value a 'using the random number value u and the public key polynomial h to generate the first re-cipher text c 1', and the first re-cipher text c 1 'becomes the first cipher text c Since the shared key K is not output unless it is the same value as 1, if a decryption error occurs, the Can prevent a different key from being derived.
  • Embodiment 2 described above is an example of the embodiment of the present invention, and the present invention is not limited to this embodiment at all, and may be implemented in various modes without departing from the gist of the present invention. What you get. It goes without saying that modifications similar to those in Embodiment 1 can be made, but the following cases are also included in the present invention.
  • the conversion from the verification value a to the verification value polynomial a p may be performed by another conversion method.
  • the value of each bit of the bit string and the coefficient of each term of the polynomial may be converted using a function that has a one-to-one correspondence, or the value of each bit of the bit string may be converted.
  • the conversion may be performed using a function table that stores the coefficients of each term of the polynomial in one-to-one correspondence.
  • the conversion from the random number value u to the random number polynomial r may be performed by another conversion method. For example, if u is determined from u, the coefficient of the d dimension term is “1”, the coefficient of the d dimension term is “1 1”, and the coefficient of the other dimension term is “0”. Other conversion methods may be used. For example, the conversion may be performed using a function that makes the random value u correspond to the polynomial or a function value table.
  • the encryption unit 114c encrypts the verification value a using the public key and the random number value u. If the first cipher text c 1 can be generated by the decryption unit 1 2 3 c using the secret key to generate a decryption verification value a ′ equal to the verification value a, Good. Therefore, the public key cryptosystem used in the encryption unit 114c and the decryption unit 123c may be any public key cryptosystem using random numbers other than the NTRU cryptosystem.
  • the public key and secret key of the cipher are used.
  • a is encrypted using h and the random value u to generate c1, and c1 is generated in the decryption unit 123c. It is sufficient to generate a 'by decoding using f.
  • the same value is used for the encryption device 110c and the decryption device 120c. If possible, another generation method may be used.
  • the encryption device 110c and the decryption device 120c Since it is sufficient that the same value is obtained by the above, the encryption device 110c may directly transmit the random number value u to the decryption device 120c.
  • the encryption device 110c may transmit the ciphertext C and the random number value u to the decryption device 120b as described below. Further, the random number value u may be transmitted after being encrypted.
  • the encryption device 110c sends a random value u separately to 120b.
  • the partial information that is a part of the random value U is converted to the first function part.
  • the remaining partial information of the random number value u generated by the unit 113c and the second function unit 126c may be directly transmitted from the encryption device 110c to the decryption device 120c.
  • the encryption device 110c may transmit the ciphertext C and the random number value u2 to the decryption device 120c. Further, the encryption device 110c may encrypt and transmit the random value u2.
  • the encryption device 110c separately transmits the random number value u2 to the decryption device 120c.
  • the decryption device 120c checks whether the first ciphertext c1 is the ciphertext of the verification value a '''obtained by the second function part 122, and checks whether the cl is the ciphertext of a''. At some point, the common key ciphertext C i is decrypted using the shared key K ′, but it may be checked whether the first ciphertext c1 is the ciphertext of the decryption verification value a ′.
  • the decryption device 120c checks whether the first ciphertext c1 is the ciphertext of the verification value a ′ ′ obtained by the second function part 126c, and checks the ciphertext of cl with a ′ ′.
  • the common key ciphertext C i is decrypted using the shared key K ′, but as shown in step S 156 of the processing system diagram of FIG. It may be checked whether or not the value of a ′ ′ decrypted by the part 123 c is equal to the value of a ′ ′′ generated by the second function part 126 c.
  • the encryption device 110 In order to prevent a different key from being derived between c and the decryption device 120c, it is verified whether the first re-cipher text c 1 ′ has the same value as the first cipher text c 1 and the shared key K Instead of outputting ', the cryptographic device 110c generates a hash function value for at least one of the random number s, the verification value a, the random number value u, and the shared key K, and generates the generated hash function value. To To the decryption device 120c, and the decryption device 120c may verify this hash function value to determine whether or not to output the shared key K '.
  • the method disclosed in Reference 1 may be used. That is, the modification (8) of the first embodiment may be applied.
  • the present invention relates to a shared key generation apparatus that outputs shared key data and encrypted shared key data obtained by encrypting the shared key data based on public key data given in advance.
  • a secret number data generation unit that generates secret number data; a shared key derivation unit that converts the secret number data into random number data and the shared key data based on a predetermined process;
  • a first encryption unit that encrypts the data and the random number data to generate encrypted shared key data.
  • a secret key generation device comprising: a secret number data generation unit that generates secret number data; and a shared key that converts the secret number data into verification value data, random number data, and the shared key data based on predetermined processing.
  • a derivation unit a first encryption unit that encrypts the verification value data based on the public key data and the random number data to generate a first cryptographic backup data, and converts the secret number data into the verification value.
  • the second encryption unit may perform an exclusive OR operation of the secret number data and the verification value data to generate the second encryption spare data.
  • the second encryption unit encrypts the secret number data by a common key cryptosystem using the verification value data as an encryption key to generate the second encryption spare data. Is also good.
  • the second encryption unit may generate the second cryptographic spare data by adding the verification value data to the secret number data.
  • the second encryption unit may generate the second cryptographic spare data by multiplying the secret number data by the verification value data.
  • the encrypted shared key data may be bit concatenated data of the first encrypted spare data and the second encrypted spare data.
  • the first encryption unit may generate the encrypted shared key data by performing encryption using an NTRU encryption method.
  • the first encryption unit may generate the first cryptographic spare data by performing encryption using an NTRU encryption method.
  • the secret number data may be a random number generated at random.
  • the shared key deriving unit may use a one-way hash function as the predetermined process.
  • the present invention also provides a shared key for decrypting encrypted shared key data and outputting shared key data based on secret key data and public key data given in advance.
  • a first decryption unit that decrypts the encrypted shared key data based on the secret key data to generate secret number data, and a random number based on a predetermined process.
  • a secret key deriving unit that converts the secret number data into data and the shared key data; and a third encryption unit that encrypts the secret number data based on the public key data and the random number data to generate re-encrypted shared key data.
  • An encryption unit and outputs the shared key data when the encrypted shared key data and the re-encrypted shared key data match.
  • the present invention decrypts encrypted shared key data composed of first cryptographic spare data and second cryptographic spare data based on secret key data and public key data given in advance, and forms a shared key.
  • a shared key recovery device for outputting data comprising: a first decryption unit that decrypts the first encryption preliminary data based on the secret key data to generate verification value data; and a second encryption unit.
  • a second decryption unit that decrypts the preliminary data based on the verification value data to generate secret number data, a verification value verification data, a random number data, and the shared key based on predetermined processing of the secret number data;
  • a shared key deriving unit that converts the verification value verification data into data, and a third encryption unit that generates third cryptographic spare data by encrypting the verification value verification data based on the public key data and the random number data.
  • the first cryptographic scheme When the storage data and the third cryptographic spare data match, the shared key data is output.
  • the present invention decrypts encrypted shared key data composed of first cryptographic spare data and second cryptographic spare data based on secret key data and public key data given in advance, and forms a shared key.
  • a shared key recovery device for outputting data comprising: a first decryption unit that decrypts the first encryption preliminary data based on the secret key data to generate verification value data; and a second encryption unit.
  • a second decryption unit that decrypts the preliminary data based on the verification value data to generate secret number data, a verification value verification data, a random number data, and the shared key based on predetermined processing of the secret number data;
  • a shared key derivation unit that converts the verification value data into data, and a third encryption unit that encrypts the verification value data based on the public key data and the random number data to generate third encryption spare data.
  • 1 Crypto reserve If data and the third cipher preliminary data matches And outputting the shared key data.
  • the second decryption unit may generate the secret number data by performing an exclusive OR operation of the second cryptographic spare data and the verification value data.
  • the second decryption unit may generate the secret number data by decrypting the second cryptographic spare data by a common key cryptosystem using the verification value data as an encryption key. .
  • the second decryption unit may generate the secret number data by subtracting the verification value data from the second cryptographic spare data.
  • the second encryption unit may generate the secret number data and second secret number data by dividing the second encryption preliminary data by the verification value data.
  • the first decryption unit may generate the shared key data by decrypting using the NTRU encryption method.
  • the first decryption unit may generate the verification value data by decrypting using the NTRU encryption method.
  • the shared key deriving unit may use a one-way hash function as the predetermined process.
  • the present invention is an encryption apparatus for generating ciphertext data obtained by encrypting plaintext data based on public key data given in advance, wherein a secret number data generating unit for generating secret number data; A shared key deriving unit that converts the data into random number data and shared key data based on a predetermined process; and encrypts the secret number data based on the public key data and the random number data.
  • the ciphertext data is composed of the first encrypted spare data and the second encrypted spare data.
  • the present invention decrypts ciphertext data composed of first cryptographic spare data and second cryptographic spare data based on secret key data and public key data given in advance, and decrypts the decrypted text data.
  • Output decryption device A first decryption unit that decrypts the first cryptographic spare data based on the secret key data to generate secret number data; and converts the secret number data into random number data and shared key data based on predetermined processing.
  • a decryption unit configured to decrypt the second encrypted preliminary data based on the shared key and generate the decrypted text data when the encrypted preliminary data matches the third encrypted preliminary data.
  • the present invention provides an encryption apparatus for generating ciphertext data obtained by encrypting plaintext data based on public key data given in advance, and ciphertext data based on secret key data and public key data given in advance.
  • This is a cryptographic system including a decryption device that decrypts and outputs decrypted text data.
  • the encryption device includes: a secret number data generation unit that generates secret number data; a shared key derivation unit that converts the secret number data into random number data and shared key data based on a predetermined process; A first encryption unit that encrypts based on the public key data and the random number data to generate first cryptographic spare data, and encrypts the plaintext data based on the shared key data to generate a second encrypted data; A second encryption unit for generating cryptographic spare data, wherein the ciphertext data is composed of the first cryptographic spare data, the second cryptographic spare data, and the third cryptographic spare data.
  • the decryption device includes: a first decryption unit that decrypts the first cryptographic backup data based on the secret key data to generate secret number data; and A shared key derivation unit that converts the secret number data into random number data and shared key data, and a third encryption unit that encrypts the secret number data based on the public key data and the random number data to generate third encrypted preliminary data.
  • a decryption unit that decrypts the first cryptographic backup data based on the secret key data to generate secret number data
  • a shared key derivation unit that converts the secret number data into random number data and shared key data
  • a third encryption unit that encrypts the secret number data based on the public key data and the random number data to generate third encrypted preliminary data.
  • the present invention has been made in view of the problems in the conventional system, and is applicable to the NTRU encryption in the encryption system.
  • a new key can be prevented from being derived between the encryption device and the decryption device, and transmission using the key derived by the key encapsulation mechanism can be prevented. Reliable encrypted communication from the device to the receiving device is possible.
  • a content distribution system 10d (not shown) as yet another embodiment according to the present invention will be described.
  • the content distribution system 10d is a modified version of the content distribution system 10.
  • the content distribution system 10d will be described in detail focusing on differences from the content distribution system 10.
  • the content distribution system 10d has the same configuration as the content distribution system 10; instead of the encryption device 110 and the decryption device 120, an encryption device 110d and a decryption device are used. It contains 1 2 0 d.
  • the other configuration is the same as that in the content distribution system 10 and therefore the description is omitted.
  • the content distribution system 110 d is a cryptographic communication system that performs encrypted communication by performing key distribution using a key encapsulation mechanism using NTRU cryptography.
  • the encryption device 110 d and the decryption device 12 0 d And are connected via the Internet 130.
  • the cryptographic device 1 110 d has a public key input unit 1 1 1 d, a random number generation unit 1 1 2 d, a first function unit 1 1 3 d, an encryption unit 1 1 4 d, It comprises a second function part 115d, a random number mask part 116d, a first transmission part 117d, a common key encryption part 118 and a second transmission part 119.
  • the cryptographic device 110d is a computer system similar to the cryptographic device 110, in which the microprocessor operates according to a computer program. By doing so, the encryption device 110d achieves its function.
  • the public key input unit 111d reads the public key polynomial h of the decryption device 120 from the memory card 160, and outputs the read public key polynomial h to the encryption unit 114d.
  • the random number generation unit 1 1 2 d generates a random number s as a seed value from which the shared key K is generated, and uses the generated random number s as the first function unit 1 13 and the random number mask unit 1 16 And output to
  • the first function unit 1 1 3 d receives the random number s from the random number generation unit 1 1 2 d, generates a function value G (s) of the received random number s, and shares the verification value a from the function value G (s). Generate a key K.
  • the function G is a one-way function and is a hash function with an output length of 2 k bits, and the first function part 113 d uses the upper k bits of G (s) as the verification value a. , G (s) as the shared key K.
  • the first function part 113d outputs the generated verification value a to the encryption part 114d and the second function part 115d, and outputs the generated shared key K to the common key encryption part. Output to 1 1 8
  • the encryption unit 111d receives the public key polynomial h from the public key input unit 111d, receives the verification value a from the first function unit 113d, and performs Using the received public key polynomial h, generate the first ciphertext c 1 of the verification value a.
  • the generated first ciphertext c1 is a ciphertext according to the NT RU cipher.
  • each coefficient of d terms is “1” and each coefficient of another d terms is “_ 1”. Randomly generate a random polynomial r in which the coefficients of the other terms are “0”.
  • the verification value a is generated so as to correspond to the coefficient of each term of the proof value polynomial ap.
  • the value of the lower-order b bit of the verification value a is set as the coefficient of the term ⁇ ⁇ ⁇ 3 of the verification value polynomial ap.
  • the verification value a is converted into the verification value polynomial ap.
  • the encryption unit 114d outputs the generated first ciphertext c1 to the second function unit 115d and the first transmission unit 117d.
  • the second function part 1 15 d receives the verification value a from the first function part 113 d, receives the first ciphertext c 1 from the encryption part 114 d, and performs verification as shown below. Generate a function value H (a, c1) of the value a and the first ciphertext c1.
  • the function H is a hash function and is a kind of one-way function. Since the first ciphertext c 1 is an NTRU cipher ciphertext and is represented by a polynomial, the second function part 1 15 d calculates the coefficients of each term of the first ciphertext c1 in binary notation. Then, the first ciphertext bit sequence c 1 ′ is generated so as to correspond to the value of each digit of the N-digit first ciphertext bit sequence c 1 ′. For example, the coefficient of the term X lambda b of the first b dimension of the ciphertext c 1, and the lower b bits th value of the first ciphertext bit string c.
  • I I is an operator indicating a bit combination.
  • the second function section 1 15 d outputs the generated function value H (a, c 1) to the random number mask section 1 16 d.
  • the random number mask section 1 16 d receives the random number s from the random number generation section 1 12 d, and receives the function value H (a, c 1) from the second function section 1 15 d.
  • a second ciphertext c 2 sX0rH (a, c1) is generated, and the generated second ciphertext c2 is output to the first transmission unit 117d.
  • random number mask section 1 16 d may use a shared key encryption algorithm, addition, or multiplication instead of the exclusive OR Xor.
  • the first transmitting unit 1 17 d receives the first cipher text c 1 from the encrypting unit 114 d, receives the second cipher text c 2 from the random number masking unit 1 16 d, and receives the first cipher text c 2
  • the ciphertext cl and the second ciphertext c2 are transmitted to the decryption device 120d via the Internet 130.
  • the common key encryption unit 1 18 and the second transmission unit 1 19 included in the encryption device 110 are the same as the common key encryption unit 1 18 and the second transmission unit 1 19, respectively, except for the following points. Same as 19.
  • the common key encryption unit 118 receives the shared key K from the first function unit 113d.
  • the decryption device 120 d includes a secret key input unit 121 d, a first reception unit 122 d, a decryption unit 123 d, a third function unit 124 d, and a random number mask. It comprises a removal unit 125 d, a fourth function unit 126 d, a comparison unit 127 d, a common key decryption unit 128 and a second reception unit 129.
  • the decoding device 120d is a computer system similar to the decoding device 120, and the microprocessor operates according to a computer program, so that the decoding device 120d achieves its function.
  • symmetric key decryption section 128 and second reception section 129 are the same as symmetric key decryption section 128 and second reception section 129 included in decryption apparatus 120, respectively. Then, the description is omitted.
  • the secret key input section 1 2 1 d is converted from the memory card 170 to the decryption device 1 20 d And reads the read secret key polynomial f to the decryption unit 123d.
  • the first receiving unit 1 2 2 d receives the first ciphertext c 1 and the second ciphertext c 2 from the encryption device 110 d via the Internet 130 and receives the received first ciphertext.
  • c1 is output to the decryption unit 123d and the third function unit 124d, and the received second ciphertext c2 is output to the random number mask removal unit 125d.
  • the random number mask removal section 125d corresponds to the shared key encryption algorithm, respectively.
  • a shared key decryption algorithm, subtraction, or division may be used.
  • the decryption unit 123d receives the secret key polynomial f from the secret key input unit 121d, receives the first ciphertext c1 from the first reception unit 122d, and performs Using the secret key polynomial f, the first cipher text C 1 is decrypted to generate a decryption verification value a ′.
  • the decryption verification value a ' is a decrypted text by the NTRU encryption.
  • the decryption unit 123 d calculates each coefficient of the decryption verification value polynomial ap ′ as a decryption verification value.
  • a decryption verification value a 'so that it corresponds to the number of each digit of the N-digit bit string when a' is expressed in binary.
  • the coefficient of the b-dimensional term X b of the decryption verification value polynomial a p ′ is the value of the lower b bits of the decryption verification value a ′.
  • the decryption verification value polynomial a p ′ is converted into the decryption verification value a ′.
  • the decryption verification value polynomial a p ′ X ⁇ 5 + X ⁇ 2
  • it is converted to a decryption verification value a ′ 10010 (bit representation).
  • the decryption unit 123 d outputs the generated decryption verification value a ′ to the third function unit 124 d and the comparison unit 127 d.
  • the third function part 124 d has the same function H algorithm as the function of the second function part 115 d.
  • the third function unit 124d receives the first ciphertext c1 from the first receiving unit 122d, and receives the decryption verification value a 'from the decrypting unit 123d.
  • a function value H (a ′, c 1) of the verification value a ′ and the first ciphertext c 1 is generated, and the generated function value H (a ', C 1) are output to the random mask remover 1 25 d.
  • the fourth function part 1 2 6 d is the same function as the function of the first function part 1 1 3 d
  • the fourth function unit 126d receives the decrypted random number s' from the random number mask removing unit 125d, and generates a hash function value G (s') of the decrypted random number s'.
  • a verification value a ′ ′ and a shared key K ′ are generated from the function value G (s ′), and the generated verification value a ′ ′ and the shared key K 'Is output to the comparison unit 127 d.
  • the comparison unit 127 d receives the decryption verification value a 'from the decryption unit 123 d, receives the verification value a' 'and the shared key K' from the fourth function unit 126 d, and then decrypts it. It is checked whether the verification value a 'is equal to the verification value a' ', and if the verification value a' is equal to the verification value a '', the shared key K 'is output to the common key decryption unit 128.
  • the common key decryption unit 128 receives the shared key K ′ from the comparison unit 127 d. Otherwise, symmetric key decryption section 128 is included in decryption apparatus 120. The description is omitted here because it is the same as the common key decryption unit 128 that is provided.
  • second receiving section 127 is the same as second receiving section 129 included in decoding apparatus 120, and thus description thereof is omitted here.
  • the public key input unit 111d receives the public key polynomial h of the decryption device 120d from the memory card 160 and outputs the public key polynomial h to the encryption unit 114d (step S20). 1).
  • the random number generation unit 112d generates a random number s, and outputs the random number s to the first function unit 113d and the random number mask unit 116d (step S202).
  • the first function unit 113d receives the random number s from the random number generation unit 112d and generates a function value G (s) of the random number s (step S203).
  • the first function part 113d generates a verification value a and a shared key K from the function value G (s), and converts the verification value a into the encryption part 114d and the second function part 111.
  • the shared key K is output to the common key encryption unit 118 (step S204).
  • the encryption unit 114d receives the public key polynomial h from the public key input unit 111d, and receives the verification value a from the first function unit 113d. Then, the encryption unit 114d generates the first ciphertext c1 of the verification value a using the public key polynomial h, and converts the first ciphertext c1 into the second function unit 1 15d and the first ciphertext c1. The data is output to the transmission section 1 17 d (step S205).
  • the second function part 1 15 d receives the verification value a from the first function part 113 d, receives the first ciphertext c 1 from the encryption part 114 d, and checks the verification value a Then, a function value H (a, c1) between the function value and the first ciphertext c1 is generated, and the function value H (a, c1) is output to the random number mask unit 116 (step S206).
  • the random number mask unit 1 16 d receives the random number s from the random number generation unit 1 12 d, receives the function value H (a, c 1) from the second function unit 1 15 d, and outputs the random number
  • the first transmission unit 1 17 d receives the first ciphertext c 1 from the encryption unit 114 d, receives the second ciphertext c 2 from the random number mask unit 1 16 d, and receives the first ciphertext.
  • the sentence c1 and the second ciphertext c2 are transmitted to the decryption device 120d via the internet 130 (step S208).
  • the common key encryption unit 118 receives a plurality of plaintexts mi (li ⁇ n) from the content server device 140, receives the shared key K from the first function unit 113d, and generates the shared key K.
  • the common key ciphertext C i S ym (mi, K) (1 in) is generated by applying the secret key encryption algorithm S ym to the plaintext mi (1 ⁇ i ⁇ n).
  • the sentence C i (1 ⁇ i ⁇ n) is output to the second transmission section 1 19 (step S209).
  • the second transmission unit 1 19 transmits the common key ciphertext C from the common key encryption unit 1 18
  • step S 210 the process ends.
  • the secret key polynomial f of 20 d is received, and the secret key polynomial f is output to the decryption unit 123 (step S 25 1).
  • the first receiving unit 122d receives the first ciphertext cl and the second ciphertext c2 from the encryption device 110d via the Internet 130, and receives the first ciphertext c. 1 is output to the decoding unit 123d and the third function unit 124d, and the second cipher text c2 is output to the random number mask removing unit 125d (step S208).
  • the decryption unit 123 d receives the secret key polynomial f from the secret key input unit 1 21, receives the first ciphertext c 1 from the first reception unit 122 d, and then outputs the secret key polynomial Using f, the first cipher text c 1 is decrypted to generate a decryption verification value a ′, and the decryption verification value a ′ is output to the third function part 124 d and the comparison part 127 d (step S 252 ).
  • the third function part 124d receives the first ciphertext c1 from the first receiving part 122d, receives the decryption verification value a 'from the decryption part 123d, and then performs the second function Generate the verification value a 'and the function value H (a', c1) of the first ciphertext c1, and divide the function value H (a ', c1) by the random mask
  • the data is output to the left section 125d (step S253).
  • the fourth function part 1 26 d receives the decrypted random number s ′ from the random number mask remover 125, generates a hash function value G (s ′) of the decrypted random number s ′ (step S255) In the same way as the first function part 1 1 3 d, a verification value a ′ ′ and a shared key K ′ are generated from the function value G (s ′), and the verification value a ′ ′ and the shared key Output to the comparison unit 127 d (step S256).
  • the comparison unit 127 d receives the decryption verification value a ′ from the decryption unit 123, receives the verification value a ′ ′ and the shared key K ′ from the fourth function unit 126 d, and It is checked whether a 'and the verification value a' 'are equal, and if they are not equal (step S257), the process ends.
  • the comparing unit 127d outputs the shared key K' to the common key decrypting unit 128 (step S258) .
  • the second receiving unit 1 229 receives the ciphertext C i (1 ⁇ i ⁇ n) from the encryption device 110 d via the Internet 130 and sends it to the common key decryption unit 128. Output (Step S210).
  • the encryption device 110d receives the public key polynomial h of the decryption device 120d as input, generates a random number s, and derives the verification value a and the shared key K from the function value G (s). Next, the encryption device 110d encrypts the verification value a using the public key polynomial h using the NT RU encryption to generate a first ciphertext c1, and generates the first ciphertext c1 from the verification value a and the first ciphertext c1.
  • the encryption device 110d transmits the first ciphertext c1 and the second ciphertext c2 to the decryption device 120d via the Internet 130.
  • the cryptographic device 110d encrypts the plaintext mi (1 ⁇ i ⁇ n) input from the content server i (1 ⁇ i ⁇ n) is generated and transmitted to the decoding device 120 d via the Internet 130.
  • the decryption device 120 d receives the secret key polynomial f of the decryption device 120 d as input, and receives the first ciphertext c 1 and the first cipher text c 1 from the encryption device 110 d via the Internet 130. 2 receives the ciphertext c 2 and decrypts the first ciphertext c 1 using the secret key polynomial f to generate a decryption verification value a ′.
  • the decryption device 120 d derives a shared key K ′ by performing the following processing. • Decrypt the first ciphertext c1 using the secret key polynomial ⁇ to generate a '.
  • the decryption device 120d can derive the same shared key K as the encryption device 110 d.
  • K the common key ciphertext
  • ⁇ n decrypts the received common key ciphertext C i (1 ⁇ i ⁇ n) with common key cryptography, generates a decrypted text mi '(1 ⁇ i ⁇ n), and sends it to the playback device 1 50 Output.
  • PSEC there is a problem that the KEM algorithm cannot be applied.
  • the content distribution system, the encryption device, and the decryption of the present invention Since the input of the hash function H is the verification value a and its ciphertext c1, the PSEC-KEM algorithm can be used to use NTRU cryptography and other public key cryptography.
  • the decrypted text is the same as the original plaintext.
  • a different case occurs (for example, see Non-Patent Document 2).
  • the decoding device obtains an erroneous decryption verification value a ', but the verification value a' 'obtained from G (s') is not equal to a'. Do not output key K '. Therefore, even if a decryption error occurs, it is possible to prevent an erroneous key from being shared between the encryption device and the decryption device.
  • the decryption device since the decryption device does not perform the process of generating the ciphertext again, the amount of calculation can be reduced as compared with the conventional technology.
  • the key encapsulation mechanism can be configured using the NTRU encryption, and key distribution can be performed between the encryption device and the decryption device using the NTRU encryption.
  • the parameter N may take other values.
  • the conversion may be performed using a function that associates a bit string with a polynomial one-to-one, or a table of function values. Further, for example, the conversion may be performed using the conversion method described in the modified example (1) of the second embodiment.
  • the public key encryption method used in the encryption unit 114d and the decryption unit 123d is such that the verification value a is encrypted with the public key in the encryption unit 114d, and the first ciphertext is obtained. It suffices if c 1 is generated and the decryption unit 123 d can decrypt the first cipher text c 1 with a secret key to generate a decryption verification value a ′ equal to the verification value a. Therefore, any public key cryptosystem other than the NTRU cryptosystem can be used as the public key cryptosystem used in the encryption unit 114d and the decryption unit 123d.
  • h and f are the public and private keys of the RSA encryption, respectively, and the encryption unit 114d encrypts a using h to generate c 1.
  • c 1 may be decoded using f to generate a ′.
  • h and f are used as the public key and the secret key of the E1Gama1 encryption, respectively, and a random number r is generated in the encryption unit 114d. Then, a may be generated by encrypting a using h and r to generate c 1, and decrypting c 1 using f to generate a ′ in the decoding unit 123 d.
  • the first function part 113 d has a function value G (s) other than using the upper k bits of the function value G (s) as the verification value a and the lower k bits as the shared key K. Other methods may be used as long as the verification value a and the shared key K are derived from.
  • the second function part 1 15 d may use another method as long as the function value H (a, c 1) is derived from the verification value a and the first ciphertext c 1.
  • a # c 1 may be input to the function H to derive the function value.
  • the first cipher text c 1 is a polynomial, so the first cipher text c 1 is converted to the first cipher text bit string c 1 ′, and a # cl ′ is input to the function H and the function is performed.
  • the value may be derived.
  • the second function part 1 15 d may use another method as long as the function value is derived using the verification value a.
  • the second function unit 1 15 d may output H (a) or may output the verification value a as it is. That is, in the encryption device 110d, the second ciphertext c2 is
  • the third function part 124 d of the decoding device 120 d is the third function part 124 d of the decoding device 120 d
  • the random number mask unit 1 16 d derives the second cipher text c 2 from the random number s and the function value H (a, c 1), and the random number mask removal unit 1 25 d generates the second cipher text c As long as the random number s can be derived from 2 and the function value H (a, c 1), another method may be used.
  • the random number mask part 1 16 d converts the second ciphertext c 2
  • the content distribution system 10e is a modified version of the content distribution system 10d shown in Embodiment 3 based on the content distribution system 10d.
  • the encryption device shares the verification value a from the function value G (s) Generates a random value u in addition to the key K, encrypts the verification value a using the random value u to generate the first ciphertext c1, and determines when the decryption device outputs the shared key K In this method, the content distribution system differs from 1 Od.
  • the content distribution system 100e has the same configuration as the content distribution system 10d. Instead of the encryption device 110d and the decryption device 120d, the encryption device 110e and the ⁇ Includes decoding device 120 e.
  • the other configuration is the same as that in the content distribution system 10d, and thus the description is omitted.
  • the content distribution system 10e is a system that distributes keys using NTRU encryption.
  • the encryption device 110e and the decryption device 120e are connected via the Internet 130.
  • the cryptographic device 110e includes a public key input unit 111d, a random number generation unit 112d, a first function unit 113e, an encryption unit 114e, It comprises a second function part 115d, a random number mask part 116d, a first transmission part 117d, a common key encryption part 118 and a second transmission part 119.
  • the second transmitting unit 119 are the same as the constituent elements of the cryptographic device 110d, and therefore the description is omitted, and here, the constituent elements of the cryptographic device 110d are different.
  • the configuration and operation of the first function unit 113 e and the encryption unit 114 e will be described.
  • the first function unit 1 1 3 e receives the random number s from the random number generation unit 1 1 2 d and generates a function value G (s) of the received random number s. Next, as shown below, a verification value a, a shared key K, and a random number value u are generated from the generated function value G (s).
  • the function G is a hash function having an output length of 3 k bits
  • the first function part 113 e sets the upper k bits of G (s) as the verification value a
  • G (s) The k bits in the middle of are the shared key K, and the lower k bits of G (s) are the random value u.
  • the first function unit 1 13 e outputs the generated verification value a to the encryption unit 1 14 e and the second function unit 1 15 d, and outputs the generated shared key K to the common key encryption unit. 1 18 and the generated random number value u is output to the encryption unit 114 e.
  • the encryption unit 114e receives the public key polynomial h from the public key input unit 111d, and receives the verification value a and the random value u from the first function unit 113e.
  • the first cipher text c 1 of the verification value a is generated using the public key polynomial h and the random value u as shown below.
  • the first cipher text c1 is a cipher text by NTR U encryption.
  • the random value u is a blind value and is used to obscure the verification value a to be encrypted.
  • each coefficient of d terms is “1” and each coefficient of the other d terms is “1 1”. Then, a random polynomial r in which each coefficient of the remaining terms is “0” is generated so as to be uniquely obtained from the random value u.
  • the encryption unit 114 e sets the random number value u as an initial value (random number seed) of the pseudo-random number sequence, and sets ⁇ 0, 1,... Generate 2 d pseudorandom numbers that do not overlap, set the coefficient of the dimension term indicated by the first d pseudorandom numbers to ⁇ 1 '', and set the coefficient of the dimension term indicated by the next d pseudorandom numbers to ⁇ 1 ''.
  • the random number polynomial r is generated by setting “-1” and setting the coefficients of the remaining dimension terms to “0”.
  • the encryption unit 114 e outputs the generated first ciphertext c1 to the second function unit 115d and the first transmission unit 117d.
  • the decryption device 120 e includes a secret key input unit 121 e, a decryption unit 123 e, a third function unit 124 d, a random number mask removal unit 125 d, and a fourth It comprises a function part 126 e, a comparison part 127 e, a common key decryption part 128 and a second reception part 129.
  • the third function part 124 d, the random number mask removal part 125 d, the common key decryption part 128 and the second reception part 129 are included in the decryption device 120 d. Therefore, the description is omitted, and the secret key input unit 1 2 1 e and the decryption unit that are different from the components included in the decryption device 120 d are omitted.
  • the secret key input unit 1 2 1 e receives the secret key polynomial f and the public key polynomial h of the decryption device 120 e from the memory card 170 and outputs the secret key polynomial f to the decryption unit 123 e. , And outputs the public key polynomial h to the comparison unit 127 e.
  • the decryption unit 123e receives the secret key polynomial f from the secret key input unit 122e, and receives the first ciphertext c1 from the first reception unit 122d. Next, by using the secret key polynomial f, the first ciphertext c 1 is decrypted to generate a decryption verification value a ′, and the generated decryption verification value a ′ is output to the third function part 124 d. The received first ciphertext c1 is output to the comparing unit 127e.
  • the fourth function part 1 2 6 e is the same function as the function of the first function part 1 1 3 e
  • the fourth function unit 1 26 e receives the decrypted random number s ′ from the random number mask removing unit 125 d, and generates a hash function value G (s) of the received decrypted random number s ′.
  • a verification value a ′ ′, a shared key K ′ and a random value u ′ are generated from the function value G (s ′), and the verification value a ′ ′ And the shared key K 'and the random number u' are output to the comparing unit 127 e.
  • the comparing section 127 e includes a comparing operation section 127 p and an encryption section 127 q.
  • the encryption unit 127 q receives the public key polynomial h from the secret key input unit 121 e, and receives the verification value a ′ ′ and the random value u ′ from the fourth function unit 126 e.
  • the received verification value a'' is encrypted and the first recipher text cl' is
  • the generated first re-cipher text c 1 ′ is compared with the comparison operation unit 1 2 7 Output to p.
  • the encryption device 110e receives the public key polynomial h of the decryption device 120e (step S201), generates a random number s (step S202), generates a function value G (s) (step S202). 203), derive a verification value a, a shared key K, and a random value u from the function value G (s) (step S204 e).
  • the cryptographic device 110 e encrypts the plaintext mi (1 ⁇ i ⁇ n) input from the content server To generate a ciphertext C i (1 ⁇ i ⁇ n) (step S209) and transmit it to the decryption device 120e via the Internet 130 (step S210)
  • the decryption device 120 e receives the secret key polynomial f and the public key polynomial h of the decryption device 120 e (step S 251, step S 251 e) and encrypts them via the Internet 130.
  • the first cipher text c 1 and the second cipher text c 2 are received from the device 1 110 e (step S 208), and the first cipher text cl is decrypted using the secret key polynomial f to obtain the decryption verification value a ′. It is generated (step S 2 52).
  • a function value H (a ', c1) is generated from the decryption verification value a' and the first ciphertext c1 (step S253), and the second ciphertext c2 and the function value H (a ', cl) are generated.
  • a decrypted random number s ′ c 2 X or H (a ′, cl) (step S 254).
  • the decryption device 1 20 e generates a function G (s ′) of the decrypted random number s ′ (step S 255), and verifies the verification value a ′ ′ from the generated function value G (s ′).
  • the key K ′ and the random value u ′ are derived (step S256 e).
  • the decryption device 120 e performs the following processes (a) to (e) to derive a shared key K ′.
  • the conventional PSEC-KEM algorithm uses a * P and a * W for the input of the hash function H, and it is difficult to calculate a * W from a * P without using a secret key.
  • the secret key K cannot be derived without knowing the secret key. Therefore, there is no equivalent of a * P and a * W of the Diffie-He1lman problem in other public key cryptosystems that do not use the Diffie-He11man problem, such as the NTRU cipher. Therefore, there is a problem that the PSEC-KEM algorithm cannot be applied.
  • the input of the hash function H is the verification value a and its ciphertext c1, so that the NTRU encryption and other Public key cryptography can be applied.
  • the decryption device When a decryption error occurs, the decryption device obtains an erroneous decryption verification value a ', but since cl' is not equal to c 1, the shared key K ' Is not output. Therefore, even if a decryption error occurs, it is possible to prevent an erroneous key from being shared between the encryption device and the decryption device.
  • the key encapsulation mechanism can be configured using the NTRU encryption, and key distribution can be performed between the encryption device and the decryption device using the NTRU encryption.
  • the method of converting the random number value u to the random number polynomial r performed by the encryption unit 114 e is not limited to this method, and any other conversion method may be used as long as r can be determined from u.
  • a function that associates a random value U with a polynomial For example, a function that associates a random value U with a polynomial,
  • the conversion may be performed using the conversion method described in the modified example (1) of the second embodiment.
  • the encryption unit 114 e encrypts the verification value a using the public key and the random number value u. If the first ciphertext c 1 is generated by decryption and the decryption unit 1 2 3 e can decrypt the first ciphertext c 1 with the secret key and generate a decryption verification value a ′ equal to the verification value a, Good. Therefore, as the public key cryptosystem used in the encryption unit 114 e and the decryption unit 123 e, any public key cryptosystem using random numbers can be used other than the NTRU cryptosystem.
  • h and f are the public and private keys of the E 1 Gama 1 cipher, respectively, and in the encryption unit 114 e, a is calculated using h and the random value u. It is sufficient that c 1 is generated by encryption, and a decryption unit 123 e e decrypts c 1 using f to generate a ′. (3) In addition to the random number value u generated by the first function unit 113 e and the fourth function unit 126 e, the same value is used for the encryption device 110 e and the decryption device 120 e. If possible, another generation method may be used.
  • the same value is used for the encryption device 110 e and the decryption device 120 e. Since it is sufficient to obtain the value, the encryption device 110e may directly transmit the random number value u to the decryption device 120e.
  • the ciphertext C and the random number value u may be transmitted to the decryption device 120 e as follows.
  • the encryption device 110e separately transmits the random number value u to the decryption device 120e.
  • the encryption device 110e may encrypt the random number value u and transmit it.
  • the partial information composed of a part of the random value u is represented by the first function
  • the remaining part information of the random number value u generated by the unit 113 e and the fourth function unit 126 e may be directly transmitted from the encryption device 110 e to the decryption device 120 e.
  • the ciphertext C and the random number value u2 may be transmitted to the decryption device 120e as follows.
  • the encryption device 110e separately transmits the random number value u2 to the decryption device 120e.
  • the decryption device 120 e checks whether the first cipher text c 1 is a cipher text of the verification value a ′ ′ obtained by the fourth function part 1 26 e and checks whether the cl is a ′ ′.
  • the shared key cipher C i is decrypted using the shared key K ′ when it is a sentence, the same check method as the decryption device 120 d of the third embodiment may be used.
  • G (s') is generated (step S255), and a ',, u', u 'are generated from G (s') (step S256e).
  • This check may be a check as to whether the first ciphertext c1 is a ciphertext of the decryption verification value a '.
  • the present invention relates to a shared key generation apparatus that outputs shared key data and encrypted shared key data obtained by encrypting the shared key data based on public key data given in advance.
  • a secret number data generation unit that generates secret number data; a shared key derivation unit that converts the secret number data into verification value data and the shared key data based on predetermined processing; and publishes the verification value data to the public.
  • a first encryption unit that encrypts based on the key data to generate first cryptographic spare data, and a verification value conversion unit that converts the verification value data into conversion verification value data based on a predetermined process.
  • a second encryption unit that encrypts the secret number data based on the conversion verification value data to generate second encryption preliminary data, wherein the encrypted shared key data includes the first encryption key.
  • Reserve Data and the second cryptographic spare data that specifies the secret number data and the second cryptographic spare data.
  • the present invention also provides a shared key generation device that outputs encrypted shared key data obtained by encrypting shared key data based on shared key data and public key data given in advance.
  • a shared key deriving unit that converts the secret number data and the first cryptographic spare data into verification value data and the shared key data based on a predetermined process; and the verification value data.
  • a first encryption unit that encrypts the verification value data based on the public key data to generate first encryption preliminary data, and a verification that converts the verification value data into conversion verification value data based on a predetermined process.
  • a value conversion unit, and a second encryption unit that encrypts the secret number data based on the conversion verification value data to generate second encryption preliminary data, wherein the encrypted shared key data is First cryptographic spare data
  • the composed second encryption preliminary data The composed second encryption preliminary data.
  • the present invention also provides a shared key generation device that outputs encrypted shared key data obtained by encrypting shared key data based on shared key data and public key data given in advance.
  • a secret key data generating unit that generates the secret number data
  • a shared key deriving unit that converts the secret number data into verification value data, random number data, and the shared key data based on a predetermined process, and publishes the verification value data.
  • a first encryption unit that encrypts based on key data and the random number data to generate first cryptographic spare data; and a verification value conversion that converts the verification value data into conversion verification value data based on a predetermined process.
  • the present invention also provides a shared key generation device that outputs encrypted shared key data obtained by encrypting shared key data based on shared key data and public key data given in advance.
  • a secret key data generating unit that generates the secret number data
  • a shared key deriving unit that converts the secret number data into verification value data, random number data, and the shared key data based on a predetermined process, and publishes the verification value data.
  • a first encryption unit for encrypting based on the key data and the random number data to generate first cryptographic spare data, the verification value data and the first encryption data;
  • a verification value conversion unit that converts the preliminary data into conversion verification value data based on a predetermined process, and a second encryption unit that encrypts the secret number data based on the conversion verification value data to generate second encrypted preliminary data.
  • the encrypted shared key data is composed of the first encrypted spare data and the second encrypted spare data.
  • the secret number data may be a random number generated at random.
  • the shared key deriving unit may use a one-way hash function as the predetermined process.
  • the first encryption unit may generate the first cryptographic spare data by performing encryption using an NTRU encryption method.
  • the verification value conversion unit may use a one-way hash function as the predetermined process.
  • the verification value conversion unit may use the verification value data as the conversion verification value data as it is.
  • the second encryption unit may perform an exclusive OR operation of the secret number data and the conversion verification value data to generate the second encryption spare data.
  • the second encryption unit may encrypt the secret number data by a common key cryptosystem using the conversion verification value data as an encryption key to generate the second cryptographic spare data. Good.
  • the second encryption unit may generate the second cryptographic spare data by adding the conversion verification value data to the secret number data.
  • the second encryption unit may generate the second cryptographic spare data by multiplying the secret number data by the conversion verification value data.
  • the encrypted shared key data may be bit concatenated data of the first encrypted spare data and the second encrypted spare data.
  • the present invention decrypts the shared key data by decrypting the encrypted shared key data composed of the first cryptographic spare data and the second cryptographic spare data based on the secret key data given in advance.
  • the key recovery device is A first decryption unit that decrypts the cryptographic spare data based on the secret key data to generate a verification value data, and converts the verification value data into conversion verification value data based on a predetermined process.
  • a verification value conversion unit, a second decryption unit that decrypts the second cryptographic spare data based on the conversion verification value data to generate secret number data, and performs a predetermined process on the secret number data.
  • a shared key deriving unit for converting the shared key data into the shared key data based on the shared key data.
  • the present invention decrypts an encrypted shared key data composed of first cryptographic spare data and second cryptographic spare data based on secret key data given in advance, and outputs shared key data.
  • a shared key recovery device decrypts an encrypted shared key data composed of first cryptographic spare data and second cryptographic spare data based on secret key data given in advance, and outputs shared key data.
  • a first decryption unit that decrypts the first cryptographic spare data based on the secret key data to generate verification value data, and performs a process on the verification value data and the first cryptographic spare data based on a predetermined process.
  • a verification value conversion unit that converts the second cryptographic spare data based on the conversion verification value data to generate secret number data; andthe secret number.
  • a shared key deriving unit that converts the data into verification value verification data and the shared key data based on a predetermined process, and when the verification value data and the verification value verification data match, Outputs key data.
  • the present invention decrypts an encrypted shared key data composed of first cryptographic spare data and second cryptographic spare data based on secret key data given in advance, and converts the shared key data.
  • a verification value conversion unit that converts the data into conversion verification value data based on the processing of the second step; and a second decryption that decrypts the second cryptographic spare data based on the conversion verification value data to generate secret number data.
  • a shared key deriving unit that converts the secret number data into verification value verification data, random number data, and the common key data based on a predetermined process, wherein the verification value data and the verification value verification data match.
  • the shared key data And it outputs the data.
  • the present invention decrypts an encrypted shared key data composed of first cryptographic spare data and second cryptographic spare data based on secret key data given in advance, and converts the shared key data.
  • a shared key restoring device for outputting, the first decryption unit decrypting the first cryptographic spare data based on the secret key data to generate a verification value data;
  • a verification value conversion unit that converts the first cryptographic spare data into conversion verification value data based on a predetermined process; and decrypts the second cryptographic spare data based on the conversion verification value data to generate secret number data.
  • a shared key deriving unit that converts the secret number data into verification value verification data, random number data, and the common key data based on a predetermined process. The verification value verification data When, it outputs the shared key data.
  • the present invention decrypts encrypted shared key data composed of first cryptographic spare data and second cryptographic spare data based on secret key data and public key data given in advance, and forms a shared key.
  • a shared key recovery device that outputs data, comprising: a first decryption unit that decrypts the first cryptographic spare data based on the secret key data to generate verification value data; and A verification value conversion unit that converts the data into conversion verification value data based on a predetermined process; and a second decryption unit that decrypts the second cryptographic spare data based on the conversion verification value data to generate secret number data.
  • a shared key deriving unit that converts the secret number data into verification value verification data, random number data, and the shared key data based on predetermined processing; and converts the verification value verification data based on the public key data and the random number data.
  • a third encryption unit that generates the third encrypted spare data by encrypting the shared key data and outputs the shared key data when the first encrypted spare data matches the third encrypted spare data I do.
  • the present invention decrypts encrypted shared key data composed of first cryptographic spare data and second cryptographic spare data based on secret key data and public key data given in advance, and forms a shared key.
  • a shared key recovery device that outputs data, comprising: a first decryption unit that decrypts the first cryptographic spare data based on the secret key data to generate verification value data; and A verification value conversion unit that converts the data into conversion verification value data based on predetermined processing; A second decryption unit that decrypts the second cryptographic spare data based on the conversion verification value data to generate secret number data, and verifies the secret number data with verification value verification data and a random number based on predetermined processing.
  • a third encryption unit for encrypting the verification value data based on the public key data and the random number data to generate third encryption spare data; and a third encryption unit for encrypting the verification value data based on the public key data and the random number data. And outputting the shared key data when the first encrypted preliminary data and the third encrypted preliminary data match.
  • the present invention decrypts encrypted shared key data composed of first cryptographic spare data and second cryptographic spare data based on secret key data and public key data given in advance, and forms a shared key.
  • a shared key recovery device for outputting data comprising: a first decryption unit for decrypting the first cryptographic spare data based on the secret key data to generate verification value data; and A verification value conversion unit that converts the first cryptographic spare data into conversion verification value data based on a predetermined process; and a decryption unit that decrypts the second cryptographic spare data based on the conversion verification value data to generate secret number data.
  • a second decryption unit to generate a shared key derivation unit configured to convert the secret number data into verification value verification data, random number data, and the shared key data based on a predetermined process; key Data and a third encryption unit that generates third cryptographic spare data by encrypting based on the random number data, wherein the first cryptographic spare data matches the third cryptographic spare data. Then, the shared key data is output.
  • the present invention decrypts encrypted shared key data composed of first cryptographic spare data and second cryptographic spare data based on secret key data and public key data given in advance, and forms a shared key.
  • a shared key recovery device for outputting data comprising: a first decryption unit for decrypting the first cryptographic spare data based on the secret key data to generate verification value data; and A verification value conversion unit that converts the first cryptographic spare data into a conversion verification value based on a predetermined process; and a secret number that decrypts the second cryptographic spare data based on the conversion verification value data.
  • a second decryption unit for generating data; a verification value verification data and a random number based on a predetermined process;
  • a shared key derivation unit that converts the verification value data into data and the shared key data, and a third encryption that generates third encryption spare data by encrypting the verification value data based on the public key data and the random number data. And outputting the shared key data when the first cryptographic spare data matches the third cryptographic spare data.
  • the shared key deriving unit may use a one-way hash function as the predetermined process.
  • the first decryption unit may decrypt the data using the NTRU encryption method to generate verification value data.
  • the verification value conversion unit may use a one-way hash function as the predetermined process.
  • the verification value conversion unit may use the verification value data as the conversion verification value data as it is as a predetermined process.
  • the second decryption unit may generate the secret number data by performing an exclusive OR operation on the second cryptographic spare data and the conversion verification value data.
  • the second decryption unit may generate the secret number data by decrypting the second cryptographic spare data by a common key cryptosystem using the conversion verification value data as an encryption key.
  • the second decryption unit may generate the secret number data by subtracting the conversion verification value data from the second cryptographic spare data.
  • the second encryption unit may generate the secret number data by dividing the second encryption preliminary data by the conversion verification value data.
  • the present invention is an encryption apparatus for generating ciphertext data obtained by encrypting plaintext data based on public key data given in advance, wherein a secret number data generating unit for generating secret number data; A shared key deriving unit that converts data into verification value data and shared key data based on a predetermined process; and encrypts the verification value data based on the public key data to generate a first cryptographic backup data.
  • a first encryption unit that generates the verification value conversion unit that converts the verification value data into conversion verification value data based on a predetermined process; and the secret number data.
  • a second encryption unit for encrypting the plaintext data based on the shared key data, and encrypting the plaintext data based on the shared key data.
  • a third encryption unit for generating cryptographic spare data, wherein the ciphertext data is composed of the first cryptographic spare data, the second cryptographic spare data, and the third cryptographic spare data.
  • a decryption device that outputs sentence data, comprising: a first decryption unit that decrypts the first cryptographic spare data based on the secret key data to generate verification value data; A verification value conversion unit that converts the data into conversion verification value data based on processing; a second decryption unit that decrypts the second cryptographic spare data based on the conversion verification value data to generate secret number data; A shared key deriving unit that converts the secret number data into verification value verification data and shared key data based on a predetermined process, and when the verification value data matches the verification value verification data, Crypto reserve data And a decoding unit for generating a pre-Symbol decrypted text data by decrypting the basis of data on the shared-key data.
  • the present invention provides an encryption apparatus for generating ciphertext data obtained by encrypting plaintext data based on a given public key data, and decrypting ciphertext data based on a given secret key data.
  • This is an encryption system composed of a decryption device that outputs decrypted text data.
  • the cryptographic device includes: a secret number data generation unit that generates secret number data; a shared key derivation unit that converts the secret number data into verification value data and shared key data based on a predetermined process; A first encryption unit that encrypts data based on the public key data to generate first cryptographic spare data, and converts the verification value data into conversion verification value data based on a predetermined process A verification value conversion unit, a second encryption unit that encrypts the secret number data based on the conversion verification value data to generate second encryption spare data, and converts the plaintext data based on the shared key data. A third encryption unit for generating third encrypted spare data by encrypting the first encrypted spare data and the second encrypted encrypted data. It is composed of spare data and the third encrypted spare data.
  • the decryption device includes: a first decryption unit that decrypts the first cryptographic spare data based on the secret key data to generate the verification value data; and A verification value conversion unit that converts the data into conversion verification value data, a second decryption unit that generates the secret number data by decoding the second cryptographic spare data based on the conversion verification value data, and the secret number
  • a shared key deriving unit that converts the data into verification value verification data and shared key data based on a predetermined process, and when the verification value data matches the verification value verification data, A decryption unit that decrypts data based on the shared key data to generate the decrypted data.
  • the present invention has been made in view of the problems in the conventional system, and has a cryptographic device by configuring a key encapsulation mechanism that can apply NTRU cryptography in a cryptographic system. Key distribution can be performed between the device and the decryption device using NTRU encryption.
  • each ciphertext may be read from.
  • the NTRU encryption used in the present invention is an E-SESS (Efficient Embedded Security Standard) NT
  • E E S S NTRU encryption may be used.
  • E E S S NTRU encryption For E E S S NTRU encryption,
  • the random number polynomial r is a polynomial in which d coefficients are 1 and (N ⁇ d) coefficients are 0, or a polynomial calculated using such a plurality of polynomials. It is. Therefore, if the random number polynomial r is generated in such a manner as to be such a polynomial in the above embodiment, the NTRU cipher of the EESS scheme can be used instead of the NTRU cipher, and the same effect is obtained. Is obtained.
  • the content distribution system may be configured as shown below.
  • the content distribution system includes a content server device, an encryption device, a broadcast device, a reception device, a decryption device, a playback device, and a monitor.
  • the encryption device and the decryption device correspond to the encryption device 110 and the decryption device 120 of the content distribution system 10.
  • the content server device and the encryption device are connected via a dedicated line, and the content server device transmits content such as a movie composed of video and audio to the encryption device via the dedicated line.
  • the encryption device and the broadcasting device are connected via a dedicated line.
  • the encryption device transmits each ciphertext to the broadcasting device, and the broadcasting device multiplexes each ciphertext and broadcasts it on a digital broadcast wave.
  • the receiving device and the decoding device are connected, and the decoding device and the reproducing device are connected.
  • the receiving device receives the digital broadcast wave, extracts each cipher text from the received digital broadcast wave, and transmits each extracted cipher text to the decryption device.
  • the decryption device receives each ciphertext, generates reproduction content using each received ciphertext, and outputs the generated reproduction content to the reproduction device.
  • the playback device is connected to a monitor containing a decoding device and speakers. The playback device receives the playback content, generates a video signal and an audio signal from the received playback content, and the monitor displays an image and outputs sound.
  • the content server device and the encryption device may be configured as an integrated device. Also, the decryption device and the playback device are integrated It may be composed of a common device.
  • the memory card 160 stores the public key polynomial h in advance
  • the memory card 170 stores the secret key polynomial f and the public key polynomial h in advance.
  • the encryption device 110 and the decryption device 120 obtain the public key polynomial and the secret key polynomial from the memory card 160 and the memory card 170, respectively. Is not limited.
  • the encryption device 110 may store the public key polynomial in advance, and the decryption device 120 may store the public key polynomial and the secret key polynomial in advance. Also, the key management device generates a secret key polynomial and a public key polynomial, transmits the generated secret key polynomial and public key polynomial to the decryption device 120 in a secret and secure manner, and generates the generated public key polynomial in the encryption device. It may be sent to 110.
  • the content distributed in the content distribution system is not limited to content such as a movie composed of video and audio. Moving images, still images, sounds, music, documents, novels, database generated by DB software, electronic table data generated by spreadsheet software, computer programs, and other computer data There may be.
  • the content may be key information used for encryption and decryption, digital signature and signature verification, etc., instead of the above-mentioned literary work.
  • the encryption device and the decryption device share a shared key, and the encryption device encrypts the content key using the shared key to generate an encrypted content key.
  • Generated content is encrypted using the content key to generate encrypted content, and the generated encrypted content key and the generated encrypted content are transmitted to the decryption device.
  • the decryption device receives the encrypted content key and the encrypted content, decrypts the encrypted content key using the shared key, generates a content key, and encrypts using the generated content key.
  • the content may be decrypted to generate the content.
  • the present invention may be the method described above. Further, these methods may be a computer program that is realized by a computer, or may be a digital signal formed by the computer program.
  • the present invention provides a computer-readable recording medium capable of reading the computer program or the digital signal, for example, a flexible disk, a hard disk, a CD_ROM, an MO, a DVD, a DVD-ROM, a DVD-RAM, a BD (Blu-ray Disc), semiconductor memory, etc. Further, the present invention may be the computer program or the digital signal recorded on these recording media.
  • the present invention provides the computer program or the digital signal transmitted via an electric communication line, a wireless or wired communication line, a network represented by the Internet, a data broadcast, or the like. Is also good.
  • the present invention is a convenience system including a microprocessor and a memory, wherein the memory stores the computer program, and the microprocessor operates according to the computer program. .
  • the program or the digital signal is recorded on the recording medium and transferred, or the program or the digital signal is transferred via the above-described network or the like, so that another independent computer can be used. It may be implemented by the evening system.
  • the content distribution system described above is used for business, repetitive and continuous in industries that supply digitized works such as music, movies, and novels from content providers to users.
  • the encryption device and the decryption device that make up the content distribution system are manufactured and sold in the electrical equipment industry that manufactures electric appliances and the like.
  • the present invention is suitable for an industry in which a digitalized work is stored in a recording medium such as a DVD and distributed to the market, distributed through a network, or broadcast.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)

Abstract

暗号装置と復号装置との間で異なる鍵の導出を防止するコンテンツ配信システムを提供する。 暗号装置110の乱数生成部112は、乱数sを生成し、第1関数部113は、乱数sの関数値G(s)を生成し、関数値G(s)から乱数値uと共有鍵Kとを生成し、暗号化部114は、公開鍵多項式hと乱数値uを用いて乱数sの第1暗号文c1を生成する。 復号装置120の復号化部123は、秘密鍵多項式fを用いて、第1暗号文c1を復号して復号乱数s'を生成し、第2関数部126は、復号乱数s'の関数値G(s')を生成し、関数値G(s')から乱数値u'と共有鍵K'とを生成し、比較部127は、乱数値u'と共有鍵K'とを用いて、第1再暗号文c1'を生成し、第1暗号文c1と第1再暗号文c1'とが一致すれば、共有鍵K'を出力する。 

Description

明 細 書
鍵共有システム、 共有鍵生成装置及び共有鍵復元装置 技術分野
本発明は、 情報セキュリティ技術としての暗号技術に関し、 特に、 第 三者に知られることなく、 鍵を配送する技術に関する。 背景技術 '
従来より、 送信装置から受信装置へ情報を秘密に送信するために、 公 開鍵暗号方式が用いられる。
公開鍵暗号方式では、 送信装置は、 通信内容を受信装置の公開鍵を用 いて暗号化して送信し、 受信装置は、 暗号化された通信内容を受信し、 受信した通信内容を自身の秘密鍵を用いて復号して元の通信内容を得る。
(例えば、 非特許文献 1参照) 。
1 99 6年、 高速処理が可能な公開鍵暗号として、 NTRU暗号が提 案された (例えば、 非特許文献 2参照) 。 NTRU暗号では、 高速に演 算可能な多項式演算を用いて暗号化と復号化とを行うので、 べき乗演算 を行う R S A暗号や楕円曲線上の点のスカラ倍演算を行う楕円曲線暗号 と比較すると、 これらの従来の公開鍵暗号よりもソフ ト ウェアにより高 速に処理することが可能である。
しかし、 この NTRU暗号では、 公開鍵を用いて平文を暗号化して暗 号文を生成し、 正規の秘密鍵を用いて暗号文を復号して復号文を生成す る際に、 復号文が元の平文と異なる場合が発生する。 このことを復号ェ ラーが発生するという。 なお、 復号エラーを回避する方法として、 平文 に付加情報を付加して暗号化し、 平文のハッシュ関数値と共に送信する 方法が開示されている (例えば、 特許文献 1参照) 。
一方で、 近年、 公開鍵暗号の新しい概念として、 鍵カプセル化メカ二 ズム (K e y E n c a p s u l a t i o n M e c h a n i s m s と呼ばれる方式が提案されている (例えば、 非特許文献 3参照) 。 この 鍵カプセル化メ カニズムは、 公開鍵暗号を用いて送信装置と受信装置と の間で共有鍵を配送するアルゴリ ズムであり、 送信装置は、 暗号化アル ゴリズム Eに受信者の公開鍵 p kを入力して暗号文 Cと共有鍵 Kを生成 し、 暗号文 Cを受信装置に伝送する。 次に、 受信装置は、 復号アルゴリ ズム Dに、 秘密鍵 s kと暗号文 Cを入力して送信装置と同じ共有鍵 Kを 求める。
このようにして鍵カプセル化メ力二ズムを用いて共有鍵 Kを送信装置 と受信装置とで共有した後に、 送信装置は、 受信装置へ送信すべき平文 を、共有鍵 Kを用いて共通鍵暗号方式により暗号化して暗号文を生成し、 生成した暗号文を受信装置へ送信する。 受信装置は、 暗号文を受信し、 受信した暗号文を共有鍵 Kを用いて前記共通鍵暗号方式により復号して 復号文を生成する。
鍵カプセル化メ力ニズムでは、 送信者から受信者に一方的に情報の送 信が行われていながら、送信者が作為的に共有鍵を作成できず、送信者に よる不正が抑制されている点が従来にない特徴である。
このような鍵カプセル化メカニズムの一例として、 R S A— KEMと 呼ばれるァルゴリズムが開示されている(例えば、非特許文献 3参照。)。 以下に、 この非特許文献 3に記載されている R S A— K E Mァルゴリズ ムについて説明する。
( 1 ) R S A— KEMのシステムパラメータ
R SA— KEMは、 以下のシステムパラメータを持つ。
• ノヽッシュ関数 : G
なお、 ハッシュ関数については、 非特許文献 1 に詳細に記述されてい るので、 こ こでは説明を省略する。
(2) R S A— KEMの公開鍵と秘密鍵
' 素数 p、 qを選び、 n = p ' qを生成する。
• (P - 1 ) と (q— 1 ) の最小公倍数を計算し、 計算結果を Lとす る。
' ランダムに、 Lと互いに素である eを選ぶ。 eは、 Z Lの要素であ る。
d = 1 / e mo d Lを計算する。 ここで、 Z Lは、 {0, 1, 2 L - 1 } からなる集合であ る。
• 公開鍵 P kを (e, n) とし、 秘密鍵 s kを (d, n) とする。
(3) R S A— KEMの暗号化
暗号化時には、 以下に述べる暗号化アルゴリ ズム K e mEに公開鍵 p kを入力して共有鍵 Kと暗号文 Cとを出力する。 以下に暗号化ァルゴリ ズム K e m Eについて説明する。
• Z nの要素 sをランダムに生成する。
ここで、 Z nは、 {0, 1 , 2 n - 1 } からなる集合であ る。
• K = G ( s ) を生成する。
• C = s Λ e m o d nを生成する。 こ こで「 Λ」 はべき乗を表す。 • 共有鍵 Κと暗号文 Cとを出力する。
(4) R S A— ΚΕΜの復号化
復号化時には、 以下に述べる復号アルゴリ ズム K e mDに、 暗号文 C と秘密鍵 s kとを入力して共有鍵 Kを出力する。 以下に復号ァルゴリズ ム K e mDについて説明する。
- s = C Λ d m o d nを生成する。
• G ( s ) を生成し、 K=G ( s ) とする。
· 共有鍵 Kを出力する。
この R S A— KEMアルゴリ ズムを、 送信装置と受信装置との間で暗 号化通信を行う暗号システムに応用した場合、 まず、 送信装置は、 通信 先である受信装置の公開鍵 P kを取得し、 取得した公開鍵 p kを前述の 暗号化ァルゴリズム K e mEに入力して共有鍵 Kと暗号文 Cとを導出し て、 暗号文 Cを受信装置へ送信する。 次に、 受信装置は、 送信装置から 暗号文 Cを受信し、 受信した暗号文 Cと自身が有する秘密鍵 s kとを前 述の復号ァルゴリズム K e mDに入力して、 送信装置が導出したものと 等しい共有鍵 Kを導出する。
以上説明したように、 R S A— K E Mアルゴリズムにおいては、 暗号 化アルゴリ ズム K e m Eにより、 ランダムに生成した要素 sを公開鍵 p kを用いて暗号化して暗号文 Cを生成し、 次に、 復号アルゴリズム K e mDにより、 暗号文 Cから秘密鍵 s kを用いて復号化して、 暗号化アル ゴリズム e mEにおいて生成されたランダムな要素 sを求める。 暗, 化アルゴリズム K e m E及ぴ復号ァルゴリズム K e m Dの両方において、 同一のハッシュ関数 Gに同じ sの値が入力されるので、 それぞれにおい て、 同じ共有鍵 Kを導出することができる。
この結果、 秘密鍵 s kを有する受信装置は、 送信装置が導出したもの と同じ共有鍵 Kを導出できることになる。
一方で、 秘密鍵 s kを知らない他の受信装置は、 たとえ公開鍵 p kを 取得して暗号文 Cを受信したとしても、 秘密鍵 s kを知らないので暗号 文 Cから要素 sを求めることができず、 送信装置が導出したものと同じ 共有鍵 Kを導出できない。
よって、 送信装置と受信装置とは、 共有鍵 Kを秘密に共有することが でき、 この後、 送信装置は、 受信装置へ通信する通信内容データを、 共 有鍵 Kを用いて共通鍵暗号方式により暗号化して暗号文を生成して送信 し、 受信装置は、 暗号文を受信し、 同じ共有鍵 Kを用いて、 同じ共通鍵 暗号方式により受信した暗号文を復号して元の通信内容データを得るこ とができる。
(特許文献 1 )
特開 200 2— 2526 1 1号公報
(非特許文献 1 )
岡本龍明、 山本博資、 「現代暗号」 、 シリーズノ情報科学の数学、 産業図書、 1997.
(非特許文献 2)
Jeffery Hoff stein, Jill Pipher, and Joseph H.
Silverman, "NTRU: A ring based public key cryptosystem" , Lecture Notes in Computer Science, 1423, pp.267-288,
Springer-Ver lag, 1998.
(非特許文献 3)
Victor Shoup, "A proposal for an ISO standard for public key encryption (version 2.1)"、 [online]、 2001年 12月 20 日、 [2002年 9月 29日検索]、 イ ンタ一ネッ トく URL:
ttp://shoup. net/papers/iso-2_l. pdf >
(発明が解決しょうとする課題)
上述したように、 R S A— KEMアルゴリ ズムでは、 暗号文 Cから秘 密鍵を知らなければ導出できない要素 sをハッシュ関数 Gに入力して共 有鍵 Kを導出するようにしている。 従って、 秘密鍵を知らなければその 共有鍵 Kを導出できない。
しかしながら、 NT RU暗号を用いて、 鍵カプセル化メカニズムであ る R S A— KEMアルゴリズムを適用して共有鍵の配送を行おうとする 際に、 NT RU暗号において復号エラーが発生した場合、 秘密鍵を用い ても要素 sが正しく導出できないので、正しい共有鍵 Kを導出できない。 このため、 送信装置と受信装置との間で異なる共有鍵が導出される場合 があり、 従って、 送信装置から受信装置への確実な暗号化通信ができな いという問題点がある。 発明の開示
そこで、 本発明は上記の問題点を解決するために、 共有鍵生成装置と 共有鍵復元装置との間で異なる共有鍵が導出されるのを防止できる鍵共 有システム、 共有鍵生成装置、 共有鍵復元装置、 共有鍵生成方法、 共有 鍵復元方法、 共有鍵生成プログラム及び共有鍵復元プログラムを提供す ることを目的とする。
上記目的を達成するために、 第 3者に知られることなく共有鍵を生成 する共有鍵生成装置及び共有鍵復元装置から構成される鍵共有システム であって、 前記共有鍵生成装置は、 シー ド値を生成するシー ド値生成手 段と、 生成された前記シ一ド値からブライ ン ド値及び共有鍵を生成する 第 1共有鍵生成手段と、 生成された前記ブライ ン ド値に基づいて、 生成 された前記シード値を暗号化して、暗号化情報を生成する暗号化手段と、 生成された暗号化情報を送信する送信手段とを備え、 前記共有鍵復元装 置は、 前記暗号化情報を受信する受信手段と、 受信された前記暗号化情 報を復号して復号シ一ド値を生成する復号手段と、 前記第 1共有鍵生成 手段と同一の方法により、 生成された前記復号シ一ド値から復号ブライ ン ド値及ぴ復号共有鍵を生成する第 2共有鍵生成手段と、 生成された前 記復号ブライン ド値に基づいて、 生成された前記復号シ一ド値を暗号化 して、 再暗号化情報を生成する再暗号化手段と、 受信された前記暗号化 情報と生成された前記再暗号化情報とに基づいて、 前記復号共有鍵を出 力するか否かを判断する判断手段と、 出力すると判断される場合に、 生 成された前記復号共有鍵を出力する出力手段とを備える。
この構成によると、 共有鍵生成装置は、 生成された前記シー ド値を暗 号化して、 暗号化情報を生成して送信し、 共有鍵復元装置は、 受信した 暗号化情報から復号シ一ド値を生成し、 生成された前記復号シ一ド値を 再度暗号化して、 再暗号化情報を生成し、 受信された前記暗号化情報と 再度生成された前記再暗号化情報とに基づいて、 前記復号共有鍵を出力 するか否かを判断するので、 共有鍵生成装置により生成された共有鍵と 共有鍵復元装置により生成された復号共有鍵とがー致する場合に、 復号 共有鍵を出力することができる。 言い換えると、 共有鍵生成装置により 生成された共有鍵と共有鍵復元装置により生成された復号共有鍵とがー 致しない場合に、 復号共有鍵を出力しないようにすることができるとい う効果がある。
これは、 前記共有鍵復元装置は、 前記共有鍵生成装置と同一の方法に より、 生成された前記復号シード値から復号ブライ ン ド値を生成し、 生 成された前記復号ブライ ン ド値に基づいて、 生成された前記復号シ一 ド 値を暗号化するので、 前記共有鍵復元装置の前記復号手段において、 正 しく復号シ一 ド値が生成されるならば、 前記共有鍵復元装置により生成 される再暗号化情報と、 前記共有鍵生成装置により生成される暗号化情 報とが同一であると期待できるためである。
また、 前記共有鍵生成装置は、 前記シード値から共有鍵及びブライ ン ド値を生成し、 生成された前記ブライン ド値に基づいて、 生成された前 記シード値を暗号化するので、 シー ド値を攪乱することができるという 効果がある。 こ こで、 前記共有鍵生成装置は、 さ らに、 コ ンテンツを取得する取得 手段と、 生成された前記共有鍵を用いて、 取得されたコンテンツを暗号 化して、 暗号化コ ンテンツを生成する暗号化手段とを備え、 前記送信手 段は、 さらに、 生成された前記暗号化コ ンテンツを送信し、 前記受信手 段は、 さらに、前記暗号化コンテンッを受信し、前記共有鍵復元装置は、 さらに、 出力された前記復号共有鍵を用いて、 受信された前記暗号化コ ンテンッを復号して、 復号コ ンテンツを生成する復号手段と、 生成され た復号コンテンッを出力する出力手段とを備える。
この構成によると、 共有鍵生成装置は、 生成された前記共有鍵を用い て、 取得されたコ ンテンツを暗号化して、 暗号化コ ンテンツを生成し、 前記共有鍵復元装置は、 出力された前記復号共有鍵を用いて、 受信され た前記暗号化コンテンッを復号して、 復号コンテンッを生成するので、 第三者に知られることなく、 共有鍵生成装置から共有鍵復元装置へコン テンッを送信することができるという効果がある。
また、 本発明は、 第 3者に知られることなく共有鍵を相手の装置へ伝 える共有鍵生成装置であって、シー ド値を生成するシード値生成手段と、 生成された前記シー ド値からブライン ド値及び共有鍵を生成する共有鍵 生成手段と、 生成された前記ブライン ド値に基づいて、 生成された前記 シー ド値を暗号化して、 暗号化情報を生成する暗号化手段と、 生成され た暗号化情報を送信する送信手段とを備える。
この構成によると、 前記共有鍵生成装置は、 前記シード値からブライ ンド値を生成し、 生成された前記ブライ ン ド値に基づいて、 生成された 前記シ一ド値を暗号化するので、 シー ド値を攪乱することができるとい う効果がある。
こ こで、 前記共有鍵生成手段は、 前記シー ド値に一方向性関数を施し て、 関数値を生成し、 生成した関数値から前記ブライ ン ド値及び前記共 有鍵を生成し、 前記暗号化手段は、 公開鍵を取得する公開鍵取得部と、 取得された前記公開鍵と生成された前記ブライ ン ド値とを用いて、 生成 された前記シー ド値に公開鍵暗号化アルゴリズムを施して、 前記暗号化 情報として暗号化シード値を生成する公開鍵暗号化部と含む。 この構成によると、 前記共有鍵生成装置は、 前記シード値に一方向性 関数を施して、 関数値を生成し、 生成した関数値から前記ブライ ン ド値 及び前記共有鍵を生成するので、 暗号化情報を受け取った相手の装置に おいて、同一の方法により、相手の装置により復号されたシード値から、 前記ブライン ド値及び前記共有鍵と、 それぞれ同じブライ ン ド値及び共 有鍵を生成することができると期待できる。
また、 前記共有鍵生成装置は、 公開鍵を取得し、 取得された前記公開 鍵を用いて、 前記シード値に公開鍵暗号化アルゴリズムを施して、 前記 暗号化情報を生成するので、 より安全性の高い公開鍵暗号化方式を採用 することができる。
ここで、 前記公開鍵暗号化アルゴリズムは、 N T R U暗号方式による ものであり、 前記公開鍵取得部は、 前記公開鍵として、 N T R U暗号方 式の鍵生成アルゴリズムにより生成された公開鍵多項式を取得し、 前記 公開鍵暗号化部は、 前記シー ド値からシー ド値多項式を生成し、 前記ブ ライ ン ド値からブライ ン ド値多項式を生成し、 N T R U暗号方式の暗号 化アルゴリズムにより、 前記公開鍵多項式を鍵と して用い、 前記シー ド 値多項式を攪乱するために前記ブライ ン ド値多項式を用いて、 前記シー ド値多項式を暗号化して、 前記暗号化シー ド値と して暗号化シー ド値多 項式を生成し、 前記送信手段は、 前記暗号化シー ド値として、 生成され た前記暗号化シード値多項式を送信する。
この構成によると、 公開鍵暗号化アルゴリズムとして、 N T R U暗号 アルゴリズムを採用することができる。
ここで、 前記暗号化手段は、 公開鍵を取得する公開鍵取得部と、 ブラ イン ド値を生成し、 取得された前記公開鍵と生成された前記ブライ ン ド 値とを用いて、 生成された前記シード値に公開鍵暗号化アルゴリズムを 施して、 公開鍵暗号文を生成する公開鍵暗号化部と、 生成された前記シ 一ド値、 前記ブライ ン ド値及び前記共有鍵のいずれか 1以上に第 2—方 向性関数を施して第 2関数値を生成する関数部とを含み、 前記暗号化手 段は、 前記公開鍵暗号文及び前記第 2関数値を含む前記暗号化情報を生 成する。 この構成によると、 共有鍵生成装置は、 生成された前記シー ド値に第
2—方向性関数を施して第 2関数値を生成し、 前記第 2関数値を含む前 記暗号化情報を送信するので、 相手の装置において、 再暗号化をするこ となく、 第 2関数値を用いて、 復号共有鍵の出力判断を行うことができ る。
ここで、 前記共有鍵生成手段は、 前記シー ド値に一方向性関数を施し て、 関数値を生成し、 生成した関数値から前記プライ ン ド値及び前記共 有鍵を生成する。
この構成によると、 シード値に第 1一方向性関数を施して得られた第 1関数値から前記共有鍵を生成するので、 シー ド値が暴露された場合で あっても、 共有鍵の推定が容易でない。
ここで、 前記共有鍵生成手段は、 前記ブライ ン ド値及び前記共有鍵の 生成に代えて、 前記シー ド値に第 1一方向性関数を施して、 第 1関数値 を生成し、 生成した第 1 関数値から前記共有鍵を生成する。
この構成によると、 シー ド値に第 1一方向性関数を施して得られた第 1関数値から前記共有鍵を生成するので、 シ一ド値が暴露された場合で あっても、 共有鍵の推定が容易でない。
ここで、 前記公開鍵暗号化アルゴリ ズムは、 N T R U暗号方式による ものであり、 前記公開鍵取得部は、 前記公開鍵として、 N T R U暗号方 式の鍵生成アルゴリ ズムにより生成された公開鍵多項式を取得し、 前記 公開鍵暗号化部は、 前記シー ド値からシー ド値多項式を生成し、 前記ブ ライ ン ド値からブライン ド値多項式を生成し、 N T R U暗号方式の暗号 化アルゴリ ズムにより、 前記公開鍵多項式を鍵と して用い、 前記シー ド 値多項式を攪乱するために前記ブライ ン ド値多項式を用いて、 前記シー ド値多項式を暗号化して、 前記公開鍵暗号文として暗号化シー ド値多項 式を生成し、 前記暗号化手段は、 前記公開鍵暗号文としての前記暗号化 シ一 ド値多項式及び前記第 2関数値を含む前記暗号化情報を生成する。 この構成によると、 公開鍵暗号化アルゴリズムとして、 N T R U暗号 アルゴリズムを採用することができる。
こ こで、 前記共有鍵生成手段は、 前記シー ド値に一方向性関数を施し て、 関数値を生成し、 生成した関数値から検証値、 前記ブライ ン ド値及 ぴ前記共有鍵を生成し、 前記暗号化手段は、 公開鍵を取得する公開鍵取 得部と、 取得された前記公開鍵と生成された前記ブライン ド値とを用い て、 生成された前記検証値に公開鍵暗号化アルゴリ ズムを施して、 第 1 暗号文を生成する第 1暗号化部と、 生成された前記検証値に基づいて、 生成された前記シー ド値に他の演算アルゴリ ズムを施して、 第 2暗号文 を生成する第 2暗号化部とを含み、 前記暗号化手段は、 前記第 1暗号文 及び前記第 2暗号文を含む前記暗号化情報を生成する。
この構成によると、 共有鍵生成装置は、 取得された前記公開鍵と生成 された前記ブライ ン ド値とを用いて、 生成された前記検証値に公開鍵暗 号化アルゴリ ズムを施して、 第 1暗号文を生成し、 生成された前記検証 値に基づいて、 生成された前記シ一ド値に他の演算アルゴリズムを施し て、 第 2暗号文を生成し、 前記第 1暗号文及び前記第 2暗号文を含む前 記暗号化情報を送信する。 このように、 2段階のアルゴリズムを用いる ので、 前記第 1暗号文及び前記第 2暗号文が攻撃されて解読される確率 を低くすることができる。
こ こで、 前記公開鍵暗号化アルゴリ ズムは、 N T R U暗号方式による ものであり、 前記公開鍵取得部は、 前記公開鍵として、 N T R U暗号方 式の鍵生成アルゴリズムにより生成された公開鍵多項式を取得し、 前記 第 1暗号化部は、 前記検証値から検証値多項式を生成し、 前記ブライ ン ド値からブライン ド値多項式を生成し、 N T R U暗号方式の暗号化アル ゴリズムにより、 前記公開鍵多項式を鍵として用い、 前記検証値多項式 を攪乱するために前記ブライン ド値多項式を用いて、 前記検証値多項式 を暗号化して、 前記第 1暗号文として暗号化検証値多項式を生成し、 前 記暗号化手段は、 前記第 1.暗号文としての前記暗号化検証値多項式及び 前記第 2暗号文を含む前記暗号化情報を生成する。
この構成によると、 公開鍵暗号化アルゴリ ズムとして、 N T R U暗号 アルゴリズムを採用することができる。
こ こで、 前記他の演算アルゴリ ズムは、 共通鍵暗号化アルゴリ ズムで あり、 前記第 2暗号化部は、 前記検証値を鍵として用いて、 前記シー ド 値に共通鍵暗号化アルゴリズムを施して、 前記第 2暗号文を生成する。 また、 前記他の演算アルゴリ ズムは、 排他的論理和であり、 前記第 2 暗号化部は、 前記検証値と前記シード値とに、 排他的論理和を施して、 前記第 2暗号文を生成する。
また、 前記他の演算アルゴリズムは、 加算であり、 前記第 2暗号化部 は、 前記検証値と前記シー ド値とに、 加算を施して、 前記第 2暗号文を 生成する。
また、 前記他の演算アルゴリズムは、 乗算であり、 前記第 2暗号化部 は、 前記検証値と前記シー ド値とに、 乗算を施して、 前記第 2暗号文を 生成する。
これらの構成によると、 他の演算アルゴリズムとして、 共通鍵暗号化 アルゴリズム、 排他的論理和、 加算及び乗算を採用することができる。 こ こで、 前記シー ド値生成手段は、 乱数を生成し、 生成した乱数を前 記シー ド値とする。
この構成によると、 共有鍵生成装置は、 乱数を生成し、 生成した乱数 を前記シー ド値とするので、 シー ド値を生成し、 ブライ ン ド値及び共有 鍵を生成し、暗号化情報を生成し、前記暗号化情報を送信した後、次に、 シード値を生成する際に、最初に生成されたシー ド値とは異なるように、 後のシー ド値を生成することができる。 従って、 共有鍵生成装置により 送信される暗号化情報は、 毎回異なるものとなる。 このため、 不正な第 三者が、 共有鍵生成装置から相手の装置へ送信される暗号化情報をその 都度、 盗聴し、 記録したとしても、 記録している各暗号化情報から元の シ一ド値を類推することは困難である。
こ こで、 前記共有鍵生成手段は、 前記シー ド値に一方向性関数を施し て、 関数値を生成し、 生成した関数値から前記ブライ ン ド値及び前記共 有鍵を生成する。
この構成によると、 共有鍵生成装置は、 前記シード値に一方向性関数 を施して、 関数値を生成し、 生成した関数値から前記ブライ ン ド値及び 前記共有鍵を生成するので、 暗号化情報を受け取った相手の装置におい て、 同一の方法により、 相手の装置により復号されたシード値から、 前 記ブライ ン ド値及び前記共有鍵と、 それぞれ同じブライ ン ド値及び共有 鍵を生成することができると期待できる。
こ こで、 前記一方向性関数は、 ハッ シュ関数であり、 前記共有鍵生成 手段は、 前記シー ド値にハッ シュ関数を施す。
この構成によると、 共有鍵生成装置は、 前記シード値にハッシュ関数 を施すので、 確実に関数値を得ることができる。
こ こで、 前記共有鍵生成手段は、 生成した関数値の一部を前記ブライ ン ド値とし、 他の一部を前記共有鍵とするこ とによ り、 前記ブライ ン ド 値及び前記共有鍵を生成する。
この構成によると、 共有鍵生成装置は、 生成した関数値の一部を前記 ブライン ド値とし、 他の一部を前記共有鍵とするので、 関数値から確実 に、 前記ブライ ン ド値及び前記共有鍵を得ることができる。
こ こで、 前記共有鍵生成装置は、 さらに、 コ ンテンツを取得する取得 手段と、 生成された前記共有鍵を用いて、 取得したコ ンテンツを暗号化 して、 暗号化コンテンツを生成する暗号化手段とを備え、 前記送信手段 は、 さ らに、 生成された前記暗号化コ ンテンツを送信する。
この構成によると、 共有鍵生成装置は、 生成された前記共有鍵を用い て、 取得されたコ ンテンツを暗号化して、 暗号化コンテンツを生成し、 送信するので、 第三者に知られることなく、 相手の装置において復号が 可能なように、 コ ンテンツを送信することができる。
また、 本発明は、 第 3者に知られることなく共有鍵生成装置から共有 鍵を受け取る共有鍵復元装置であって、 前記共有鍵生成装置は、 シー ド 値を生成し、 生成された前記シー ド値からブライ ン ド値及び共有鍵を生 成し、 生成された前記ブライ ン ド値に基づいて、 生成された前記シー ド 値を暗号化して、 暗号化情報を生成し、 生成された前記暗号化情報を送 信し、 前記共有鍵復元装置は、 前記暗号化情報を受信する受信手段と、 受信した前記暗号化情報を復号して復号シ一ド値を生成する復号手段と、 前記共有鍵生成装置による共有鍵生成方法と同一の方法により、 生成さ れた前記復号シ一ド値から復号ブライ ン ド値及び復号共有鍵を生成する 共有鍵生成手段と、 生成された前記復号ブライ ン ド値に基づいて、 生成 された前記復号シ一ド値を暗号化して、 再暗号化情報を生成する再暗号 化手段と、 受信された前記暗号化情報と生成された前記再暗号化情報と に基づいて、 前記復号共有鍵を出力するか否かを判断する判断手段と、 出力すると判断される場合に、 生成された前記復号共有鍵を出力する出 力手段とを備える。
この構成によると、 共有鍵復元装置は、 受信した暗号化情報から復号 シー ド値を生成し、 生成された前記復号シード値を再度暗号化して、 再 暗号化情報を生成し、 受信された前記暗号化情報と再度生成された前記 再暗号化情報とに基づいて、 前記復号共有鍵を出力するか否かを判断す るので、 共有鍵生成装置により生成された共有鍵と共有鍵復元装置によ り生成された復号共有鍵とがー致する場合に、 復号共有鍵を出力するこ とができる。 言い換えると、 共有鍵生成装置により生成された共有鍵と 共有鍵復元装置により生成された復号共有鍵とがー致しない場合に、 復 号共有鍵を出力しないようにすることができるという効果がある。
ここで、 前記共有鍵生成装置は、 前記シー ド値に一方向性関数を施し て、 関数値を生成し、 生成された関数値から前記ブライン ド値及び前記 共有鍵を生成し、 公開鍵を取得し、 取得された前記公開鍵と生成された 前記ブライ ン ド値とを用いて、 生成された前記シー ド値に公開鍵暗号化 アルゴリズムを施して、 前記暗号化情報として前記暗号化シー ド値を生 成し、 前記暗号化シード値を送信し、 前記受信手段は、 前記暗号化情報 ,と して前記暗号化シード値を受信し、 前記復号手段は、 前記公開鍵に対 応する秘密鍵を取得する秘密鍵取得部と、 取得された秘密鍵を用いて、 受信された前記暗号化シ一 ド値に、 前記公開鍵暗号化アルゴリズムに対 応する公開鍵復号アルゴリズムを施して、 前記復号シ一ド値を生成する 公開鍵復号部とを含み、 前記共有鍵生成手段は、 生成された前記復号シ — ド値に前記一方向性関数を施して、 復号関数値を生成し、 生成した前 記復号関数値から前記復号ブライ ン ド値及び前記復号共有鍵を生成し、 前記再暗号化手段は、 前記公開鍵を取得する公開鍵取得部と、 取得され た前記公開鍵と生成された前記復号ブライン ド値とを用いて、 生成され た前記復号シー ド値に前記公開鍵暗号化アルゴリズムを施して、 前記再 暗号化情報として、 前記再暗号化シ一 ド値を生成する再暗号化部とを含 み、 前記判断手段は、 受信された前記暗号化シー ド値と生成された前記 再暗号化シー ド値とがー致するか否かを判断し、 一致する場合に、 前記 復号共有鍵を出力すると判断する。
この構成によると、 共有鍵復元装置は、 暗号化シー ド値と再暗号化シ ード値とがー致するか否かを判断し、 一致する場合に、 前記復号共有鍵 を出力すると判断するので、出力判断が確実に行えるという効果がある。 ここで、 前記公開鍵暗号化ァルゴリズム及び前記公開鍵復号ァルゴリ ズムは、 N T R U暗号方式によるものであり、 前記共有鍵生成装置は、 前記公開鍵と して、 N T R U暗号方式の鍵生成アルゴリ ズムにより生成 された公開鍵多項式を取得し、 前記シー ド値からシー ド値多項式を生成 し、 前記ブライン ド値からブライ ン ド値多項式を生成し、 N T R U暗号 方式の暗号化ァルゴリズムにより、 前記公開鍵多項式を鍵として用い、 前記シード値多項式を攪乱するために前記ブライ ン ド値多項式を用いて、 前記シード値多項式を暗号化して、 前記暗号化シード値として暗号化シ ード値多項式を生成し、 前記暗号化シード値として、 前記暗号化シー ド 値多項式を送信し、 前記受信手段は、 前記暗号化シー ド値として、 前記 暗号化シード値多項式を受信し、 前記秘密鍵取得部は、 前記秘密鍵とし て、 N T R U暗号方式の鍵生成アルゴリズムにより生成された秘密鍵多 項式を取得し、 前記公開鍵復号部は、 取得した前記秘密鍵多項式を鍵と して用いて、 N T R U暗号方式の復号アルゴリ ズムにより、 受信した前 記暗号化シード値多項式を復号して、 復号シー ド値多項式を生成し、 生 成した前記復号シ一ド値多項式から前記復号シ一ド値を生成し、 前記公 開鍵取得部は、 前記公開鍵と して、 前記公開鍵多項式を取得し、 前記再 暗号化部は、 前記復号シー ド値からシー ド値多項式を生成し、 前記復号 プライ ン ド値からブライ ン ド値多項式を生成し、 N T R U暗号方式の暗 号化アルゴリ ズムにより、 前記公開鍵多項式を鍵として用い、 前記シー ド値多項式を攪乱するために前記ブライ ン ド値多項式を用いて、 前記シ ード値多項式を暗号化して、 再暗号化シー ド値多項式を生成し、 前記判 断手段は、 受信した前記暗号化シー ド値多項式と生成した前記再暗号化 シード値多項式とがー致するか否かを判断する。
この構成によると、 公開鍵暗号化ァルゴリズム及び公開鍵復号ァルゴ リズムとして、 N T R U暗号アルゴリズム 採用することができる。 こ こで、 前記共有鍵生成装置は、, 公開鍵を取得し、 プライン ド値を生 成し、取得された前記公開鍵と生成された前記ブライ ン ド値とを用いて、 生成された前記シ一 ド値に公開鍵暗号化アルゴリズムを施して、 公開鍵 暗号文を生成し、 生成された前記シー ド値、 前記プライン ド値及び前記 共有鍵のいずれか 1以上に、 第 2—方向性関数を施して第 2関数値を生 成し、前記公開鍵暗号文及び第 2関数値を含む前記暗号化情報を生成し、 前記暗号化情報を送信し、 前記受信手段は、 前記公開鍵暗号文及び前記 第 2関数値を含む前記暗号化情報を受信し、 前記復号手段は、 前記公開 鍵に対応する秘密鍵を取得する秘密鍵取得部と、 取得された前記秘密鍵 を用いて、 受信された前記暗号化情報に含まれる前記公開鍵暗号文に、 前記公開鍵暗号化ァルゴリズムに対応する公開鍵復号ァルゴリズムを施 して、 復号シード値を生成する公開鍵復号部と、 生成された復号シー ド 値、 前記復号ブライ ン ド値及び前記復号共有鍵のいずれか 1以上に、 前 記第 2—方向性関数を施して復号第 2関数値を生成する関数部とを含み、 前記判断手段は、 前記暗号化情報と前記再暗号化情報とに基づく判断に 代えて、 受信された前記暗号化情報に含まれる前記第 2関数値と、 生成 された前記復号第 2関数値とがー致するか否かを判断し、 一致する場合 に、 前記復号共有鍵を出力すると判断する。 ·
この構成によると、 前記暗号化情報と前記再暗号化情報とに基づく判 断に代えて、 受信された前記暗号化情報に含まれる前記第 2関数値と、 生成された前記復号第 2関数値とがー致するか否かを判断し、 一致する 場合に、 前記復号共有鍵を出力すると判断するので、 出力判断が確実に 行えるという効果がある。
ここで、 前記共有鍵生成装置は、 前記シー ド値に一方向性関数を施し て、 関数値を生成し、 生成した関数値から前記ブライ ン ド値及び前記共 有鍵を生成し、
前記共有鍵生成手段は、 生成された前記復号シー ド値に前記第 1一方 向性関数を施して、 復号関数値を生成し、 生成した前記復号関数値から 前記復号ブライ ン ド値及び前記復号共有鍵を生成する。
この構成によると、 前記復号シ一ド値に前記第 1一方向性関数を施し て得られる復号関数値から前記復号共有鍵を生成するので、 復号シ一ド 値が暴露された場合であっても、 復号共有鍵の推定が容易でない。
こ こで、 前記共有鍵生成装置は、 前記ブライ ン ド値及び前記共有鍵の 生成に代えて、 前記シー ド値に第 1一方向性関数を施して、 第 1 関数値 を生成し、 生成した第 1 関数値から前記共有鍵を生成し、 前記共有鍵生 成手段は、 前記復号プランイ ド値及び前記復号共有鍵の生成に代えて、 · 生成された前記復号シー ド値に前記第 1一方向性関数を施して、 復号関 数値を生成し、生成した前記復号関数値から前記復号共有鍵を生成する。
この構成によると、 前記復号シ一ド値に前記第 1一方向性関数を施し て得られる復号関数値から前記復号共有鍵を生成するので、 復号シ一ド 値が暴露された場合であっても、 復号共有鍵の推定が容易でない。
こ こで、 前記公開鍵暗号化アルゴリ ズム及び前記公開鍵復号アルゴリ ズムは、 N T R U暗号方式によるものであり、 前記共有鍵生成装置は、 前記公開鍵として、 N T R U暗号方式の鍵生成アルゴリズムにより生成 された公開鍵多項式を取得し、 前記シ一 ド値からシー ド値多項式を生成 し、 前記ブライ ン ド値からブライン ド値多項式を生成し、 N T R U暗号 方式の暗号化アルゴリ ズムにより、 前記公開鍵多項式を鍵として用い、 前記シード値多項式を攪乱するために前記ブライ ン ド値多項式を用いて、 前記シー ド値多項式を暗号化して、 前記公開鍵暗号文と して暗号化シー ド値多項式を生成し、 前記公開鍵暗号文としての前記暗号化シ一 ド値多 項式及び前記第 2関数値を含む前記暗号化情報を生成し、 前記秘密鍵取 得部は、 前記秘密鍵として、 N T R U暗号方式の鍵生成アルゴリズムに より生成された秘密鍵多項式を取得し、 前記公開鍵復号部は、 前記公開 鍵暗号文から公開鍵暗号文多項式を生成し、 取得した前記秘密鍵多項式 を鍵として用いて、 N T R U暗号方式の復号アルゴリ ズムにより、 前記 公開鍵暗号文多項式を復号して、 復号シー ド値多項式を生成し、 生成し た前記復号シ一ド値多項式から前記復号シ一ド値を生成する。 この構成によると、 公開鍵暗号化ァルゴリズム及び公開鍵復号ァルゴ リズムとして、 N T R U暗号アルゴリズムを採用することができる。 ここで、 前記共有鍵生成装置は、 前記シー ド値に一方向性関数を施し て、 関数値を生成し、 生成した関数値から検証値、 前記ブライ ン ド値及 び前記共有鍵を生成し、 公開鍵を取得し、 取得された前記公開鍵と生成 された前記ブライ ン ド値とを用いて、 生成された前記検証値に公開鍵暗 号化アルゴリズムを施して、 第 1暗号文を生成し、 生成された前記検証 値に基づいて、 生成された前記シー ド値に他の演算アルゴリズムを施し て、 第 2暗号文を生成し、 前記第 1暗号文及び前記第 2暗号文を含む前 記暗号化情報を生成し、 生成された前記暗号化情報を送信し、 前記受信 手段は、 前記第 1暗号文及び前記第 2暗号文を含む前記暗号化情報を受 信し、 前記復号手段は、 前記公開鍵に対応する秘密鍵を取得する秘密鍵 取得部と、 取得された秘密鍵を用いて、 受信された前記暗号化情報に含 まれている前記第 1暗号文に、 前記公開鍵暗号化アルゴリズムに対応す る公開鍵復号アルゴリ ズムを施して、 復号検証値を生成する公開鍵復号 部と、 生成された復号検証値に基づいて、 受信された前記暗号化情報に 含まれている前記第 2暗号文に、 前記他の演算アルゴリズムの逆演算を 行う演算アルゴリ ズムを施して、 復号シ一ド値を生成する演算復号部と を含み、 ·前記共有鍵生成手段は、 生成された前記復号シ一ド値に前記一 方向性関数を施して、 復号関数値を生成し、 生成した前記復号関数値か ら復号検証値、 前記復号ブライン ド値及び前記復号共有鍵を生成し、 前 記再暗号化手段は、 前記公開鍵を取得する公開鍵取得部と、 取得された 前記公開鍵と生成された前記復号ブライ ン ド値とを用いて、 生成された 前記復号検証値に、 前記公開鍵暗号化アルゴリ ズムを施して、 前記再暗 号化情報を生成する再暗号化部と、 前記判断手段は、 前記暗号化情報に 含まれている前記第 1暗号文と、 生成された前記再暗号化情報とがー致 するか否かを判断し、 一致する場合に、 前記復号共有鍵を出力すると判 断する。
この構成によると、 前記第 1暗号文に、 前記公開鍵暗号化ァルゴリズ ムに対応する公開鍵復号アルゴリ ズムを施して、 復号検証値を生成し、 生成された復号検証値に基づいて、 前記第 2暗号文に、 前記演算アルゴ リズムを施して、 復号シード値を生成する。 このように、 2段階のアル ゴリズムを用いるので、 前記第 1暗号文及び前記第 2暗号文が攻撃され て解読される確率を低くすることができる。
ここで、 前記公開鍵暗号化アルゴリ ズム及び前記公開鍵復号アルゴリ ズムは、 N T R U暗号方式によるものであり、 前記共有鍵生成装置は、 前記公開鍵と して、 N T R U暗号方式の鍵生成アルゴリズムにより生成 された公開鍵多項式を取得し、 前記検証値から検証値多項式を生成し、 前記ブライ ン ド値からブライ ン ド値多項式を生成し、 N T R U暗号方式 の暗号化アルゴリ ズムにより、 前記公開鍵多項式を鍵として用い、 前記 検証値多項式を攪乱するために前記ブライ ン ド値多項式を用いて、 前記 検証値多項式を暗号化して、 前記第 1暗号文として暗号化検証値多項式 を生成し、 前記第 1暗号文としての前記暗号化検証値多項式及び前記第 2暗号文を含む前記暗号化情報を生成し、 前記暗号化情報を送信し、 前 記受信手段は、 前記暗号化検証値多項式及び前記第 2暗号文を含む前記 暗号化情報を受信し、 前記秘密鍵取得部は、 前記秘密鍵と して、 N T R U暗号方式の鍵生成アルゴリズムにより生成された秘密鍵多項式を取得 し、 前記公開鍵復号部は、 前記第 1暗号文から第 1暗号文多項式を生成 し、 取得した前記秘密鍵多項式を鍵と して用いて、 N T R U暗号方式の 復号アルゴリ ズムにより、 前記第 1暗号文多項式を復号して、 復号検証 多項式を生成し、 生成した前記復号検証値多項式から前記復号検証値を 生成し、 前記公開鍵取得部は、 前記公開鍵多項式を取得し、 前記再暗号 化部は、 前記復号検証値から復号検証値多項式を生成し、 前記復号ブラ ィ ン ド値からブライ ン ド値多項式を生成し、 N T R U暗号方式の暗号化 アルゴリ ズムにより、 前記公開鍵多項式を鍵として用い、 前記復号検証 値多項式を攪乱するために前記ブライ ン ド値多項式を用いて、 前記復号 検証値多項式を暗号化して、 前記再暗号化情報として再暗号化検証値多 項式を生成し、 前記判断手段は、 前記第 1暗号文としての前記暗号化検 証値多項式と、 前記再暗号化情報としての前記再暗号化検証値多項式と がー致するか否か判断する。 この構成によると、 公開鍵暗号化ァルゴリズム及び公開鍵復号ァルゴ リズムとして、 N T R U暗号アルゴリズムを採用することができる。 こ こで、 前記他の演算アルゴリ ズムは、 共通鍵暗号化アルゴリ ズムで あり、 前記逆演算を行う前記演算アルゴリ ズムは、 対応する共通鍵復号 アルゴリ ズムであり、 前記演算復号部は、 前記復号検証値を鍵と して用 いて、 前記第 2暗号文に共通鍵復号アルゴリズムを施して、 前記復号シ 一ド値を生成する。
また、 前記他の演算アルゴリズム及び前記逆演算を行う前記演算アル ゴリズムは、 排他的論理和であり、 前記演算復号部は、 前記復号検証値 と前記第 2暗号文とに排他的論理和を施して、 前記復号シー ド値を生成 する。
また、 前記他の演算アルゴリ ズムは、 加算であり、 前記逆演算を行う 前記演算アルゴリ ズムは、 減算であり、 前記演算復号部は、 前記復号検 証値と前記第 2暗号文とに減算を施して、前記復号シ一ド値を生成する。
また、 前記他の演算アルゴリ ズムは、 乗算であり、 前記逆演算を行う 前記演算アルゴリ ズムは、 除算であり、 前記演算復号部は、 前記復号検 証値と前記第 2暗号文とに除算を施して、前記復号シ一ド値を生成する。
これらの構成によると、 逆演算を行う前記演算アルゴリズムとして、 共通鍵復号アルゴリ ズム、 排他的論理和、 減算及び除算を採用するこ と ができる。
こ こで、 前記共有鍵生成手段は、 前記復号シー ド値に一方向性関数を 施して、 関数値を生成し、 生成した関数値から前記復号ブライ ン ド値及 ぴ前記復号共有鍵を生成する。
この構成によると、 シード値に一方向性関数を施して、 関数値を生成 し、 生成した関数値から復号ブライ ン ド値及び復号共有鍵を生成するの で、 共有鍵生成装置と同一の方法を用いることができる。
こ こで、 前記一方向性関数は、 ハッシュ関数であり.、 前記共有鍵生成 手段は、 前記復号シ一ド値にハッシュ関数を施す。
この構成によると、 前記復号シー ド値にハッシュ関数を施すので、 確 実に関数値を得ることができる。 こ こで、 前記共有鍵生成手段は、 生成した関数値の一部を前記復号ブ ライ ン ド値と し、 他の一部を前記復号共有鍵とするこ とによ り、 前記復 号ブライ ン ド値及び前記復号共有鍵を生成する。
この構成によると、 生成した関数値の一部を前記復号ブライン ド値と し、 他の一部を前記復号共有鍵とするので、 関数値から確実に、 前記復 号ブライ ン ド値及び前記復号共有鍵を得ることができる。
ここで、 前記共有鍵生成装置は、 さらに、 コンテンツを取得し、 生成 された前記共有鍵を用いて、 取得したコ ンテンツを暗号化して、 暗号化 コ ンテンツを生成し、 生成された前記暗号化コンテンツを送信し、 前記 共有鍵復号装置は、 さ らに、 前記暗号化コンテンツを受信するコンテン ッ受信手段と、 出力された前記復号共有鍵を用いて、 受信された前記暗 号化コ ンテンツを復号して、 復号コンテンツを生成する復号手段と、 生 成され fこ前記復号コンテンッを再生する再生手段とを備える。
この構成によると、 前記共有鍵復元装置は、 出力された前記復号共有 鍵を用いて、 受信された前記暗号化コ ンテンツを復号して、 復号コンテ ンッを生成するので、 第三者に知られることなく、 共有鍵生成装置から コ ンテンツを受信することができるという効果がある。 図面の簡単な説明
図 1 は、 コンテンツ配信システム 1 0の構成と、 構成要素の間の接続 形態とを示す概念図である。
図 2は、 暗号装置 1 1 0の構成を示すプロック図である。
図 3は、 復号装置 1 2 0の構成を示すプロック図である。
図 4は、 暗号装置 1 1 0及び復号装置 1 2 0の動作を示す処理系統図 である。
図 5は、 暗号装置 1 1 0及び復号装置 1 2 0の動作を示すフローチヤ — トである。
図 6は、 暗号装置 1 1 0 bの構成を示すプロック図である。
図 7は、 復号装置 1 2 0 bの構成を示すプロック図である。
図 8は、 暗号装置 1 1 0 b及ぴ復号装置 1 2 0 bの動作を示す処理系 統図である。
図 9は、 暗号装置 1 1 0 cの構成を示すプロック図である。
図 1 0は、 復号装置 1 2 0 Cの構成を示すプ α ヅク図である。
図 1 1 は、 暗号装置 1 1 0 c及び復号装置 1 2 0 cの動作を示す処理 系統図である。
図 1 2は、 暗号装置 1 1 0 c及ぴ復号装置 1 2 0 cの変形例の動作を 示す処理系統図である。
図 1 3は、 暗号装置 1 1 0 dの構成を示すブ Όック図である。
図 1 4は、 復号装置 1 2 0 dの構成を示すブ Π ヅク図である。
図 1 5は、 暗号装置 1 1 0 d及び復号装置 1 2 0 dの動作を示すフロ 一チヤ一 トである。
図 1 6は、 暗号装置 1 1 0 d及び復号装置 1 2 0 dの動作を示す処理 系統図である。
図 1 7は、 暗号装置 1 1 0 eの構成を示すブ D ヅク図である。
図 1 8は、 復号装置 1 2 0 eの構成を示すブ Π ヅク図である。
図 1 9は、 暗号装置 1 1 0 e及ぴ復号装置 1 2 0 e の動作を示す処理 系統図である。
図 2 0は、 暗号装置 1 1 0 e及ぴ復号装置 1 2 0 eの変形例の動作を 示す処理系統図である 発明を実施するための最良の形態
1 . 実施の形態 1
本発明に係る 1個の実施の形態としてのコ ンテンツ配信システム 1 0 について説明する。 コンテンツ配信システム 1 0は、 N T R U暗号を用 いて鍵カプセル化メ力ニズムによる鍵配送を行って暗号化通信を行う暗 号通信システムである。
1 . 1 N T R U暗号方式
コンテンッ配信システム 1 0において用いる N T R U暗号方式につい て簡単に説明する。 N T R U暗号方式は、 多項式の演算を用いて暗号化 と復号化とを行う公開鍵暗号方式である。 なお、 NT RU暗号方式及び NT RU暗号方式における公開鍵と秘密 鍵との生成方法については、 非特許文献 2に詳しく述べられている。
( 1 ) NTRU暗号方式のシステムパラメータ
NT RU暗号方式においては、 整数のシステムパラメータ、 N、 p、 qが存在し、 後述する暗号装置及ぴ復号装置は、 これらのシステムパラ メータを有している。
上記文献には、 システムパラメータの例と して、 (N, p , q ) = ( 1 07, 3, 64) 、 (N, p , q) = ( 1 67, 3, 1 28) 、 (Ν, Ρ , q) = (503, 3, 2 56 ) の 3つの例が挙げられている。
以降、 本実施の形態では、 システムパラメータ N= l 67として、 説 明を行う。
(2) NTRU暗号方式の多項式演算
NTRU暗号方式は、 上述したように、 多項式の演算により暗号化と 復号化を行う公開鍵暗号方式である。
NTRU暗号方式で扱う多項式は、上記システムパラメータ Nに対し、 N— 1次元以下の多項式である。 例えば、 N= 5のとき、 Χ Λ 4 +Χ Λ 3 + 1等の多項式である。 ここで、 「Χ Λ Β」 は Xの a乗を意味するこ ととする。
また、 暗号化時又は復号化時に用いる公開鍵 h、 秘密鍵: 、 平文 m、 乱数 r、 暗号文 cはいずれも、 N— 1次元以下の多項式として表現され る (以降、 それぞれを公開鍵多項式 h、 秘密鍵多項式 f 、平文多項式 m、 乱数多項式 r、 暗号文多項式 cと呼ぶ) 。
多項式演算において、 上記システムパラメータ Nに対し、 関係式 X Λ Ν= 1を用いて、 演算結果が常に Ν— 1次元以下の多項式になるように 演算される。
例えば、 Ν = 5の場合、 多項式 X ^ 4 + X Λ 2 + 1 と多項式 X Λ 3 +
Xの積は、 多項式と多項式の積を x、 整数と多項式の積を · とすると、
X Λ 5 = 1 という関係から、
(X Λ 4 + X Λ 2 + 1 ) x (X ^ 3 + X)
Λ 7 + 2 · Χ ^ 5 + 2 · Χ Λ 3 +Χ =Χ Λ 2 χ ΐ + 2 · 1 +2 · Χ ^ 3+Χ
=2 · Χ Λ 3 +Χ ^ 2+Χ+ 2
となる。
このように、 多項式演算において、 常に Ν— 1次元以下の多項式にな るように演算される。
(3) NTRU暗号方式の暗号化
後述する暗号装置は、 次に示すように NT RU暗号方式の暗号化を行 ラ。
暗号化時には、 以下に述べる乱数多項式 rと公開鍵多項式 hとを用い て、 平文多項式 mに多項式演算である暗号化アルゴリ ズム Eを施して、 暗号文多項式 c =E (m, r, h) を生成する。
こ こで、 E (m, r , h) は、 N T R U暗号方式の暗号化ァルゴリズ ム Eに、 平文多項式 m、 乱数多項式 r及び公開鍵多項式 hを入力して得 られる多項式演算の結果である。 暗号化ァルゴリズム Eについては非特 許文献 2に詳しく述べられており、 ここでは説明を省略する。
なお、 NT RU暗号方式では、 乱数多項式 rを生成するためのパラメ ータ dが予め決められている。 乱数多項式 rは、 乱数多項式 rを構成す る各項のうち、 d個の項についてはその係数が 「1」 となり、 他の d個 の項については係数が 「一 1」 となり、 残りの項については係数は 「 0」 となるように、 選ばれる。
すなわち、 乱数多項式 rは、 N— 1次元以下の多項式であり、 0次元 (定数項)から N— 1次元までの N項について、 N個の係数が存在する。 乱数多項式 rは、 この N個の係数のうち、 d個の係数が 「 1」 であり、 かつ d個の係数が 「一 1」 であり、 かつ (N— 2 d) 個の係数は 「0」 となるように、 選ばれる。
非特許文献 2によれば、 パラメータ N = 1 67の場合、 d = 1 8であ る。 すなわち、 1 8個の係数が 「1」 であり、 かつ 1 8個の係数が 「― 1」 であり、 1 3 1 (= 1 67— 36) 個の係数が 「0」 となるように、 乱数多項式 rが選ばれる。
(4) NTRU暗号方式の復号化 後述する復号装置は、 次に示すように NT RU暗号方式の復号化を行 ラ。
復号化時には、 秘密鍵多項式 f を用いて、 暗号文多項式 cに多項式演 算である復号アルゴリ ズム Dを施して、 復号文多項式 m' = D (c. f ) を生成する。
こ こで、 D ( c , f ) は、 NT RU暗号方式の復号ァルゴリ ズム Dに、 暗号文多項式 c、 及び秘密鍵多項式 f を入力して得られる多項式演算の 結果である。 復号アルゴリズム Dについては非特許文献 2に詳しく述べ られており、 こ こでは説明を省略する。
( 5) NTRU暗号方式の復号エラ一
ところで、 この NTRU暗号方式において、 生成された復号文多項式 m'が平文多項式 mと異なる場合が発生する。 この場合は、 復号時に正し く平文多項式 mが得られないこ とになる。 このこ とを復号エラーが発生 するという。
1. 2 コ ンテンツ配信システム 1 0の構成
コ ンテンツ配信システム 1 0は、 図 1に示すよう に、 コ ンテンツサー バ装置 1 40と暗号装置 1 1 0と復号装置 1 20と再生装置 1 50とモ ニタ 1 55とから構成されており、 コンテンッサーバ装置 1 40と暗号 装置 1 1 0とは、 専用回線 20を介して接続されており、 暗号装置 1 1 0と復号装置 1 20とは、 イ ンターネッ ト 1 30を介して接続されてい る。 再生装置 1 50は、 復号装置 1 20及びスピーカを内蔵するモニタ 1 55に接続されている。 暗号装置 1 1 0には、 メモ リ カー ド 1 60が 装着され、 復号装置 1 20には、 メモ リ カー ド 1 70が装着される。
コンテンッサーバ装置 1 40は、 映像と音声から構成される映画など のコ ンテンツを専用回線 20を介して暗号装置 1 1 0へ送信する。
暗号装置 1 1 0と復号装置 1 20とは、 それぞれ同一の共有鍵 K及び 共有鍵 K' を生成する。 次に、 暗号装置 1 1 0は、 コ ンテンツサーバ装 置 140から受け取ったコンテンッを共有鍵 Kを用いて暗号化して暗号 化コンテンツを生成し、 生成した暗号化コンテンツを送信し、 復号装置 120は、 暗号化コ ンテンツを受信し、 受信した暗号化コ ンテンツを復 号して再生コンテンッを生成し、 再生装置 1 50は、 再生コ ンテンツか ら映像信号及び音声信号を生成し、 モニタ 1 55は、 映像を表示し、 音 声を出力する。
1. 3 コ ンテンツサーバ装置 1 40の構成
コンテンツサーバ装置 140は、 マイクロプロセッサ、 ROM、 R A M、 ノヽー ドディ スクユニッ ト、 ディ スプレイユニッ ト、 通信ユニッ ト、 キーボー ド、マウスなどから構成されるコンピュータシステムである(図 示していない) 。 前記 R A M又は前記ハードディ スクユニッ トには、 コ ンピュ一タプログラムが記憶されている。 前記マイクロプロセッサが、 前記コ ンピュータプログラムに従って動作することにより、 コ ンテンツ サーバ装置 140は、 その一部の機能を達成する。
コ ンテンッサーバ装置 140は、前記コンテンッを予め記憶しており、 前記コ ンテンツは、 複数の部分コ ンテンツ m i ( 1≤ i ≤ n) から構成 されている。 コンテンッサーバ装置 1 40は、 暗号装置 1 1 0の要求に 応じて、 部分コ ンテンツ m i を読み出し、 読み出した部分コンテンツ m i を、 専用回線 20を介して暗号装置 1 1 0へ送信する。
1. 4 メモ リ カー ド 1 60及ぴメモ リ カード 1 70の構成
メモ リ カー ド 1 60は、 記憶媒体としてフラッ シュメモ リを採用して いるカー ド型の記憶装置であり、 予め公開鍵多項式 hを記憶している。 また、 メモ リ カー ド 1 70は、 メモ リ カー ド 1 60と同様のカー ド型 の記憶装置であり、 予め秘密鍵多項式 f 及び公開鍵多項式 hを記憶して いる。
こ こで、 秘密鍵多項式 ; f と公開鍵多項式 hとは、 NTRU暗号方式に より生成されたものであり、 それぞれ対応している。
1. 5 暗号装置 1 1 0の構成
暗号装置 1 1 0は、 図 2に示すように、 公開鍵入力部 1 1 1、 乱数生 成部 1 1 2、 第 1関数部 1 1 3、 暗号化部 1 14、 第 1送信部 1 1 7、 共通鍵暗号部 1 1 8及び第 2送信部 1 1 9から構成されている。
暗号装置 1 1 0は、 具体的には、 マイクロプロセッサ、 R〇M、 R A M、 通信ユニッ トなどから構成されるコンピュータシステムである。 前 記 R A Mには、 コンピュータプログラムが記憶されている。 前記マイク 口プロセッサが、 前記コンピュータプログラムに従つて動作することに より、 暗号装置 1 1 0は、 その機能を達成する。
( 1 ) 公開鍵入力部 1 1 1
公開鍵入力部 1 1 1 は、 メモリ カード 1 6 0から復号装置 1 2 0の公 開鍵多項式 hを読み出し、 読み出した公開鍵多項式 hを暗号化部 1 1 4 へ出力する。
( 2 ) 乱数生成部 1 1 2
乱数生成部 1 1 2は、 共有鍵 Kを生成するための元となるシ一 ド値と して、 乱数 s を生成し、 生成した乱数 sを第 1関数部 1 1 3と暗号化部 1 1 4とへ出力する。
( 3 ) 第 1 関数部 1 1 3
第 1 関数部 1 1 3は、 乱数生成部 1 1 2から乱数 sを受け取り、 乱数 sの関数値 G ( s ) を生成する。 ここで、 関数 Gは、 出力長が 2 kビッ トのハッシュ関数である。 なお、 ハッシュ関数は、 一方向性関数の一種 である。 次に、 第 1関数部 1 1 3は、 関数値 G ( s ) の上位 kビッ トを 乱数値 uとし、 G ( s ) の下位 kビッ トを共有鍵 Kとすることにより、 生成した関数値 G ( s ) から共有鍵 Kと乱数値 uとを生成し、 生成した 乱数値 uを暗号化部 1 1 4へ出力し、 生成した共有鍵 Kを共通鍵暗号部 1 1 8へ出力する。
( 4 ) 暗号化部 1 1 4
暗号化部 1 1 4は、 公開鍵入力部 1 1 1 から公開鍵多項式 hを受け取 り、 乱数生成部 1 1 2から乱数 s を受け取り、 第 1関数部 1 1 3から乱 数値 uを受け取る。 次に、 以下のようにして、 N T R U暗号により、 公 開鍵多項式 hと乱数値 uとを用いて乱数 sの第 1暗号文 c l を生成する。 ここで、 乱数値 uは、 ブライン ド値であり、 暗号化の対象である乱数 s を不明瞭にするために用いられる。
暗号化部 1 1 4は、 N T R U暗号のパラメ一夕 dに対し、 乱数多項式 rの d個の項の係数が 「 1」 であり、 d個の項の係数が 「― 1」 であり、 残りの項の係数が 「0」 である乱数多項式 r を乱数値 uから一意に求ま るように生成する。
例えば、 暗号化部 1 1 4は、 乱数値 uを擬似乱数系列の初期値 (乱数 シー ド) として設定し、 {0 1 N- 1 } から重複しないよ うに 2 d個の擬似乱数を生成し、 最初の d個の疑似乱数によりそれぞれ 示される d個の次元の項の係数を 「 1」 とし、 残りの d個の擬似乱数に よりそれぞれ示される d個の次元の項の係数を 「一 1」 と し、 他の次元 の項の係数は 「0」 とする。 ·
次に、 暗号化部 1 1 4は、 乱数 sが NT RU暗号の暗号アルゴリ ズム Eに適用できるように、 乱数 sを 2進数表現した場合の N桁のビッ ト列 の各桁の値が、 乱数多項式 S pの各項の係数に対応するように、 乱数多 項式 s を構成する。 例えば、 乱数 sの下位 bビッ ト 目の値を、 項 X bの係数とする。 具体的には、 s = 1 0 0 1 0 (ビッ ト表現) の場合、 乱数多項式 s p =X ~ 5 +X 2を生成する。
次に、 暗号化部 1 1 4は、 公開鍵多項式 hを使用して、 乱数多項式 r を用いて乱数多項式 s pに前記暗号アルゴリズム Eを施して、
第 1暗号文 c 1 =暗号文多項式 E ( s p, r , h) を生成する。
次に、 暗号化部 1 1 4は、 生成した第 1暗号文 c 1 を第 1送信部 1 1
7へ出力する。
なお、図 2において、暗号装置 1 1 0の各構成部を示す各ブロックは、 接続線により他のブロックと接続されている。 こ こで、 各接続線は、 信 号や情報が伝達される経路を示している。 また、 暗号化部 1 1 4を示す ブロックに接続している複数の接続線のうち、 接続線上に鍵マークが付 されているものは、 暗号化部 1 1 4へ鍵としての情報が伝達される経路 を示している。 共通鍵暗号部 1 1 8を示すブロックについても同様であ る。 また、 他の図面についても同様である。
(5) 第 1送信部 1 1 7
第 1送信部 1 1 ·7は、暗号化部 1 1 4から第 1暗号文 c 1 を受け取り、 第 1暗号文 c 1をイ ンタ一ネッ ト 1 3 0を介して復号装置 1 20へ送信 する。
(6) 共通鍵暗号部 1 1 8 共通鍵暗号部 1 1 8は、 例えば D E S暗号方式のような共通鍵暗号ァ ルゴリズム S y mを有している。
一般的に、 共通鍵暗号では、 暗号側の装置において、 暗号鍵 Kを用い て、 平文 mに共通鍵暗号アルゴリ ズム S y mを施して、 暗号文 c = S y m (m, K) を生成し、 復号側の装置において、 暗号鍵 Κを用いて、 暗 号文 cに共通鍵暗号アルゴリズム S ymを施して、 復号文 m '= S ym
( c, K) を生成する。 こ こで、 暗号文生成時に用いる暗号鍵 Κと復号 文生成時に用いる暗号鍵 Κが同一であれば、 m'=mとなる。 なお、 共通 鍵暗号及び D E S暗号方式については、 非特許文献 1 に詳しく述べられ ているため、 ここでの詳細な説明は省略する。
共通鍵暗号部 1 1 8は、 コンテンッサーバ装置 1 40から複数の平文 (部分コ ンテンツ) m i ( 1 ≤ i ≤ n) を受け取り、 第 1関数部 1 1 3 から共有鍵 Kを受け取り、 受け取った共有鍵 Kを使用して平文 m i ( 1 ≤ i ≤ n) に共通鍵暗号アルゴリ ズム S ymを施して、 共通鍵暗号文 C i = S y m (m i , K) ( 1 ≤ i ≤ n) を生成する。
次に、 共通鍵暗号部 1 1 8は、 共通鍵暗号文 C i ( 1 ≤ i ≤ n) を第 2送信部 1 1 9へ出力する。
(7) 第 2送信部 1 1 9
第 2送信部 1 1 9は、 共通鍵暗号部 1 1 8から共通鍵暗号文 C i ( 1 i ≤ n) を受け取り、 受け取った共通鍵暗号文 C i ( 1 i ≤ n) を、 イ ンタ一ネッ ト 1 30を介して復号装置 1 20へ送信する。
1. 6 復号装置 1 2 0の構成
復号装置 1 20は、 図 3に示すように、 秘密鍵入力部 1 2 1、 第 1受 信部 1 22、 復号化部 1 23、 第 2関数部 1 26、 比較部 1 27、 共通 鍵復号部 1 28及び第 2受信部 1 29から構成される。
復号装置 1 20は、 暗号装置 1 1 0と同様のコ ンピュータシステムで ある。 マイクロプロセッサが、 コンピュータプログラムに従って動作す るこ とによ り、 復号装置 1 2 0は、 その機能を達成する。
( 1 ) 秘密鍵入力部 1 2 1
秘密鍵入力部 1 2 1は、 メモリ カー ド 1 7 0から、 復号装置 1 20の 秘密鍵多項式 f と公開鍵多項式 hとを読み出し、 読み出した秘密鍵多項 式 f を復号化部 1 2 3へ出力し、 読み出した公開鍵多項式 hを比較部 1 2 7へ出力する。
( 2 ) 第 1受信部 1 2 2
第 1受信部 1 2 2は、 イ ンタ一ネッ ト 1 3 0を介して暗号装置 1 1 0 から第 1暗号文 c 1 を受け取り、 受け取った第 1暗号文 c 1 を復号化部 1 2 3へ出力する。
( 3 ) 復号化部 1 2 3
復号化部 1 2 3は、 秘密鍵入力部 1 2 1 から秘密鍵多項式 f を受け取 り、 第 1受信部 1 2 2から第 1暗号文 c 1 を受け取り、 次に示すように して、 NT R U暗号により、 秘密鍵多項式 f を用いて、 第 1暗号文 c 1 を復号して復号乱数 s ' を生成する。
復号化部 1 2 3は、 秘密鍵多項式: を使用して、 第 1暗号文 c 1 に前 記復号アルゴリズム Dを施して、 復号乱数多項式 s p ' = D ( c 1 , f ) を生成する。 次に、 復号乱数多項式 s p ' は、 NT R U暗号の復号文で あり多項式で表現されているので、 復号乱数多項式 s p ' の各項の係数 が、 復号乱数 s ' を 2進数表現した場合の N桁のビッ ト列の各値に対応 するように、 復号乱数 s ' を生成する。 例えば、 復号乱数多項式 s p ' の b次元の項 X bの係数は、 復号乱数 s ' の下位 bビッ ト 目の値とな る。
具体的には、 復号乱数多項式 s p * = X Λ 5 + X ^ 2の場合、 復号乱 数 s ' = 1 0 0 1 0 (ビッ ト表現) を生成する。
次に、 復号化部 1 2 3は、 受け取った第 1暗号文 c 1 と生成した復号 乱数 s ' とを比較部 1 2 7へ出力し、 生成した復号乱数 s ' を第 2関数 部 1 2 6へ出力する。
( 4) 第 2関数部 1 2 6
第 2関数部 1 2 6は、 第 1 関数部 1 1 3が有している関数と同じ関数
Gのアルゴリズムを有している。
第 2関数部 1 2 6は、 復号化部 1 2 3から復号乱数 s ' を受け取り、 第 1 関数部 1 1 3と同様にして、 復号乱数 s ' の関数値 G ( s ' ) を生 成し、 次に、 関数値 G ( s ' ) から乱数値 u' と共有鍵 K' とを生成し、 生成した乱数値 u' と共有鍵 K' とを比較部 1 2 7へ出力する。
(5) 比較部 1 27
比較部 1 27は、 図 3に示すように、 暗号化部 1 27 Xと比較演算部 1 27 yとから構成されている。
暗号化部 1 27 Xは、 秘密鍵入力部 1 2 1から公開鍵多項式 hを受け 取り、 復号化部 1 23から復号乱数 s ' を受け取り、 第 2関数部 1 26 から乱数値 u' を受け取る。 次に、 暗号化部 1 1 4と同様にして、 公開 鍵多項式 hと乱数値 u' とを用いて、 復号乱数 s ' を暗号化して第 1再 暗号文 c l ' を生成し、 生成した第 1再暗号文 c 1 ' を比較演算部 1 2 7 yへ出力する。
比較演算部 1 2 7 yは、 復号化部 1 23から第 1暗号文 c 1 を受け取 り、 第 2関数部 1 26から共有鍵 K' を受け取り、 暗号化部 1 27 xか ら第 1再暗号文 c 1 ' を受け取る。 次に、 第 1暗号文 c 1 と第 1再暗号 文 c l ' とを比較して、 一致しているか否かを判断し、 一致していると 判断する場合に、 受け取った共有鍵 K' を共通鍵復号部 1 28へ出力す る。一致しないと判断する場合に、受け取った共有鍵 K' を出力しない。
(6) 第 2受信部 1 2 9
第 2受信部 1 2 9は、 イ ンタ一ネッ ト 1 30を介して暗号装置 1 1 0 から共通鍵暗号文 C i ( 1≤ i n) を受信し、 受信した共通鍵暗号文 C i ( 1 ≤ i ≤ n) を共通鍵復号部 1 28へ出力する。
(7) 共通鍵復号部 1 28
共通鍵復号部 1 2 8は、 共通鍵暗号部 1 1 8が有する共通鍵暗号アル ゴリズム S y mと同じ共通鍵暗号アルゴリズム S y mを予め有している。 共通鍵復号部 1 28は、 比較部 1 2 7から共有鍵 K' を受け取り、 第 2受信部 1 29から共通鍵暗号文 C i ( l ≤ i ≤ n) を受け取り、 受け 取った共有鍵 K' を使用して受け取った共通鍵暗号文 C i ( 1≤ i ≤ n) に共通鍵暗号アルゴリ ズム S ymを施して、 復号文 m i ' = S y m (C i , K) ( 1 ≤ i ≤ n) を生成する。
次に、 共通鍵復号部 1 28は、 生成した復号文 m i ' ( 1 ≤ i ≤ n) を再生装置 1 50へ出力する。
1. 7 再生装置 1 50及びモニタ 1 5 5
再生装置 1 50は、 復号装置 1 20から復号文 m i ' ( 1 ≤ i ≤ n) を受け取り、 受け取った復号文 m i ' ( 1 ≤ i ≤ n) から映像信号及び 音声信号を生成し、 生成した映像信号及び音声信号をモニタ 1 55へ出 力する。
モニタ 1 55は、 再生装置 1 50から映像信号及び音声信号を受け取 り、 受け取った映像信号及び音声信号により、 映像を表示し、 音声を出 力する。
1. 8 暗号装置 1 1 0及ぴ復号装置 1 2 0の動作
暗号装置 1 1 0及ぴ復号装置 1 20の動作について、 図 4に示す処理 系統図及び図 5に示すフローチャートを用いて説明する。
暗号装置 1 1 0の公開鍵入力部 1 1 1 は、 メモ リ カード 1 6 0から復 号装置 1 20の公開鍵多項式 hを読み出し、 読み出した公開鍵多項式 h を暗号化部 1 1 4へ出力する (ステップ S 1 0 1 ) 。
次に、 乱数生成部' 1 1 2は、 乱数 sを生成し、 生成した乱数 sを第 1 関数部 1 1 3と暗号化部 1 1 4とへ出力する (ステップ S 1 02) 。 次に、第 1関数部 1 1 3は、乱数生成部 1 1 2から乱数 sを受け取り、 乱数 sの関数値 G ( s ) を生成し (ステップ S 1 03) 、 次に、 第 1関 数部 1 1 3は、 関数値 G ( s ) から乱数値 uと共有鍵 Kとを生成して、 乱数値 uを暗号化部 1 1 4へ出力し、 共有鍵 Kを共通鍵暗号部 1 1 8へ 出力する (ステップ S 1 04) 。
次に、 暗号化部 1 1 4は、 公開鍵入力部 1 1 1から公開鍵多項式 hを 受け取り、 乱数生成部 1 1 2から乱数 sを受け取り、 第 1関数部 1 1 3 から乱数値 Uを受け取り、 公開鍵多項式 hと乱数値 Uを用いて乱数 Sの 第 1暗号文 c 1 を生成し、 第 1暗号文 c 1を第 1送信部 1 1 7へ出力す る (ステップ S 1 0 5) 。
次に、 第 1送信部 1 1 7は、 暗号化部 1 1 4から第 1暗号文 c 1 を受 け取り、 第 1暗号文 c 1をイ ンタ一ネッ ト 1 30を介して復号装置 1 2 0へ送信する (ステップ S 1 06 ) 。 次に、 復号装置 1 2 0の秘密鍵入力部 1 2 1 は、 メモ リ カード 1 7 0 から復号装置 1 2 0の秘密鍵多項式 f と公開鍵多項式 hとを読み出し、 読み出した秘密鍵多項式 f を復号化部 1 2 3へ出力し、 読み出した公開 鍵多項式 hを比較部 1 2 7へ出力する (ステップ S 1 5 1 ) 。
次に、 第 1受信部 1 2 2は、 イ ンタ一ネッ ト 1 3 0を介して暗号装置 1 1 0から第 1暗号文 c 1 を受け取り、 第 1暗号文 c 1 を復号化部 1 2 3へ出力する (ステップ S 1 0 6) 。
次に、 復号化部 1 2 3は、 秘密鍵入力部 1 2 1 から秘密鍵多項式 f を 受け取り、 第 1受信部 1 2 2から第 1暗号文 c 1 を受け取り、 次に、 秘 密鍵多項式 f を用いて、 第 1暗号文 c 1 を復号して復号乱数 s ' を生成 し、 第 1暗号文 c 1 と復号乱数 s ' を比較部 1 2 7へ出力し、 復号乱数 s ' を第 2関数部 1 2 6へ出力する (ステップ S 1 5 2) 。
次に、 第 2関数部 1 2 6は、 復号化部 1 2 3から復号乱数 s ' を受け 取り、 復号乱数 s ' の関数値 G ( s ' ) を生成し (ステップ S 1 5 3) 、 関数値 G ( S ' )から乱数値 U ' と共有鍵 K' とを生成して、乱数値 U ' と共有鍵 K' とを比較部 1 2 7へ出力する (ステップ S 1 5 4) 。
次に、 比較部 1 2 7は、 復号化部 1 2 3から第 1暗号文 c 1 を受け取 り、 第 2関数部 1 2 6から乱数値 u' と共有鍵 K' とを受け取り、 第 1 再暗号文 c 1 ' を生成し (ステップ S 1 5 5) 、 第 1暗号文 c 1 が乱数 値 U ' を用いた復号乱数 S.' の暗号文であるかどうかチヱックを行い、 第 1暗号文 c 1 が復号乱数 s ' の暗号文でなければ(ステップ S 1 5 6 )、 復号装置 1 2 0は、 処理を終了する。
共通鍵暗号部 1 1 8は、 外部から複数の平文 m i ( 1 ≤ i ≤ n) を受 け取り、 第 1関数部 1 1 3から共有鍵 Kを受け取り、 共有鍵 Kを使用し て平文 m i ( 1 ≤ i n) に共通鍵暗号アルゴリ ズム S y mを施して、 共通鍵暗号文 C i = S y m (m i , K) ( l ≤ i ≤ n) を生成し、 共通 鍵暗号文 C i ( 1 ≤ i ≤ n) を第 2送信部 1 1 9へ出力する (ステップ S 1 0 7 ) o
次に、 第 2送信部 1 1 9は、 共通鍵暗号部 1 1 8から共通鍵暗号文 C i ( 1 ≤ i ≤ n) を受け取り、 イ ンタ一ネッ ト 1 3 0を介して復号装置 1 2 0へ送信し (ステップ S 1 08) 、 処理を終了する。
第 1暗号文 c 1が復号乱数 s ' の暗号文であれば(ステップ S 1 56 )、 比較部 1 27は、 共有鍵 K' を共通鍵復号部 1 28へ出力する (ステツ プ S 1 5 7) 。 次に、 第 2受信部 1 29は、 イ ンタ一ネッ ト 1 3 0を介 して暗号装置 1 1 0から暗号文 C i ( l≤ i ≤ n) を受信し、 共通鍵復 号部 1 28へ出力する (ステップ S 1 08) 。
次に、 共通鍵復号部 1 28は、 比較部 1 27から共有鍵 K' を受け取 り、第 2受信部 1 29から共通鍵暗号文 C i ( 1≤ i ≤ n)を受け取り、 共有鍵 K' を使用して共通鍵暗号文 C i ( 1 ≤ i ≤ n) に共通鍵暗号ァ ルゴリズム S y mを施して、 復号文 m i ' = S y m (C i , K) ( 1≤ i ≤ n) を生成し、 復号文 m i ' ( 1 ≤ i ≤ n) を再生装置 1 5 0へ出 力し (ステップ S 1 58) 、 処理を終了する。
1. 9 コ ンテンツ配信システム 1 0の動作検証
以下に、 実施の形態 1 におけるコンテンッ配信システム 1 0の全体の 動作について説明する。
まず、 暗号装置 1 1 0は、 復号装置 1 20の公開鍵多項式 hを入力と し、 乱数 sを生成し、 関数値 G ( s ) から乱数値 uと共有鍵 Kとを導出 する。 次に、 暗号装置 1 1 0は、 乱数 sを、 公開鍵多項式 hと乱数値 u を用いて NT RU暗号で暗号化して第 1暗号文 c 1 を生成し、 第 1暗号 文 c l をイ ンタ一ネッ ト 1 30を介して復号装置 1 2 0へ送信する。 すなわち、 この暗号装置 1 1 0は、 以下の処理を行い、 第 1暗号文 c 1を復号装置 1 20へ送信する。
• 乱数 sを生成する。
• G ( s ) を生成し、 G ( s ) から u、 Kを生成する。
· 公開鍵多項式 hと乱数値 uとを用いて乱数 sの第 1暗号文 c l を生 成する。
• 共有鍵 Kと第 1暗号文 c 1 とを出力する。
次に、 暗号装置 1 1 0は、 導出した共有鍵 Kを用いて、 外部から入力 された平文 m i ( 1 ≤ i ≤ n)を共通鍵暗号で暗号化して暗号文 C i ( 1 ≤ i ≤ n ) を生成し、 イ ンターネ ッ ト 1 30を介して復号装置 1 20へ 送信する。
一方、 復号装置 1 20は、 復号装置 1 20の秘密鍵多項式 f 及び公開 鍵多項式 hを入力とし、 イ ンターネッ ト 1 30を介して暗号装置 1 1 0 から第 1暗号文 c 1 を受信し、 第 1暗号文 c 1を秘密鍵多項式 f を用い て復号して復号乱数 s ' を生成する。 次に、 復号乱数 s ' の関数値 G (s ' ) から乱数値 u' と共有鍵 K' を導出し、 復号乱数 s ' を暗号化 して第 1再暗号文 c 1 ' を生成し、 c 1 ' = c 1であれば、 共有鍵 K' を出力する。
すなわち、 この復号装置 1 2 0は、 以下の処理を行い、 共有鍵 K' を 導出する。
-秘密鍵多項式 f を用いて第 1暗号文 c l を復号して s ' を生成する。
• G ( s ' ) を生成し、 G ( s ' ) から u' 、 K' を生成する。
• 公開鍵多項式 h、 乱数値 u' を用いて s ' の第 1再暗号文 c l ' を 生成する。
· C 1 ' = C 1が成立するかどうかチヱックする。 成立すれば共有鍵
K' を出力する。
ここで、 暗号装置 1 1 0で用いられた公開鍵多項式 hに対応する正し い秘密鍵多項式 f が復号装置 1 20で用いられれば、 第 1暗号文 c 1は 正しく復号されて、 復号乱数 s ' = sとなり、 従って、 G ( s' ) から 導出される乱数値 u' = uとなり、共有鍵 K' =Kとなる。そして、 s '
= s及ぴ u' = uが成り立つので、 c l ' = c 1が成り立ち、 復号装置
1 20は暗号装置 1 1 0と同じ共有鍵 Kを導出できることになる。
次に、 復号装置 1 2 0は、 導出した共有鍵 K' ( = K) を用いて、 ィ ンタ一ネッ トを介して暗号装置 1 1 0から共通鍵暗号文 C i ( 1 ≤ i ≤ n) を共通鍵暗号で復号して復号文 m i ' ( 1 ≤ i ≤ n) を生成して外 部へ出力する。 ここで、 共通鍵暗号文生成時に用いた暗号鍵 Kと復号文 生成時に用いる暗号鍵 K' とは同一であるで、 復号装置 1 2 0は、 正し く m i ' = m i ( 1≤ i ≤ n) を得ることができる。
なお、 復号エラーが発生した場合には、 復号乱数 s ' と乱数 sとは異 なるので、 G (s ' ) から導出される乱数値 ι 及び共有鍵 K' は、 そ れぞれ u、 Kとは異なる。 しかし、 この場合、 s ' 、 u' がそれぞれ s、 uと異なるために第 1再暗号文 c 1 ' が第 1暗号文 c 1 と異なるので、 復号装置 1 20は、 共有鍵 K' を出力しない。
1. 1 0 実施の形態 1 における効果 '
従来の R S A— KEMアルゴリ ズムでは、 秘密鍵を知らなければ暗号 文 Cから導出できない要素 sをハッシュ関数 Gに入力して共有鍵 Kを導 出する。 しかしながら、 NT RU暗号を用いて、 鍵カプセル化メカニズ ムである R S A— KEMアルゴリズムを適用して共有鍵の配送を行おう とすると、 復号エラーが発生する場合があるため、 秘密鍵を用いても要 素 Sが導出できず、従って正しく ない共有鍵 K' を導出する場合がある。
しかしながら、 実施の形態 1のコ ンテンツ配信システム、 暗号装置及 び復号装置においては、 乱数 sのハッシュ関数値 G ( s ) から共有鍵に 加えて乱数値 uを生成し、'復号装置が乱数値 uと公開鍵多項式 hとを用 いて復号乱数 s ' を再暗号化して第 1再暗号文 c 1 ' を生成し、 第 1再 暗号文 c l ' が第 1暗号文 c 1 と同じ値でない限り共有鍵 K' を出力し ないようにしたので、 復号エラ一が発生した場合、 暗号装置と復号装置 との間で異なる鍵が導出されるのを防止できる。
また、 本発明による方式は、 非特許文献 3に記述されている証明方法 と同様の方法により、 理論的にその安全性が証明できる。
1. 1 1 変形例
上記に説明した実施の形態 1は、 本発明の実施の一例であり、 本発明 はこの実施の形態に何ら限定されるものではなく、 その主旨を逸脱しな い範囲において種々なる態様で実施し得るものである。 以下のような場 合も本発明に含まれる。
( 1 ) 用いる NT RU暗号のパラメ一タ N = 1 67に限定されない。 パラメータ Nは、 他の値をとるとしてもよい。
( 2 ) 暗号化部 1 1 4及ぴ復号化部 1 23で行われるビッ ト列の各ビ ッ トの値と多項式の各項の係数との変換方法は、 上記において説明した 方法に限られず他の変換方法でもよい。
例えば、 乱数 Sから乱数多項式 S pへの変換は、 ビッ ト列の各ビッ ト の値と多項式の各項の係数とを 1対 1 に対応させる関数を用いて変換し てもよいし、 また、 ビッ ト列の各ビッ トの値と多項式の各項の係数とを
1対 1 に対応させて記憶している関数値テーブルを用いて変換してもよ い。
また、 乱数値 uから乱数多項式 rへの変換は、 uから rがー意に求ま り、 rの d個の次元の項の係数を 「 1」 とし、 d個の次元の項の係数を 「一 1」 とし、 他の次元の項の係数は 「 0」 となるようにすれば、 他の 変換方法でもよく、 例えば、 乱数値 uを多項式に対応させる関数、 又は 関数値テーブルを用いて変換してもよい。
( 3 )暗号化部 1 1 4及び復号化部 1 2 3で用いる公開鍵暗号方式は、 暗号化部 1 1 4において、 乱数 sを公開鍵と乱数値 uを用いて暗号化し て第 1唷号文 c 1 を生成し、 復号化部 1 2 3において、 第 1暗号文 c 1 を秘密鍵で復号して乱数値 s と等しい復号乱数 s ' を生成できるもので あればよい。
従って、 暗号化部 1 1 4及ぴ復号化部 1 2 3で用いる公開鍵暗号は、 N T R U暗号以外に、 どんな公開鍵暗号でも利用できる。
例えば、 E 1 G a m a 1 暗号を採用するならば、 h、 f をそれぞれ E 1 G a m a 1 暗号の公開鍵、 秘密鍵とし、 暗号化部 1 1 4において、 乱 数 sを hと uを用いて暗号化して c 1 を生成し、 復号化部 1 2 3におい て、 c 1 を; f を用いて復号して s ' を生成すればよい。
なお、 E 1 G a m a 1暗号について非特許文献 1 に詳細に記載されて いるため、 ここでは説明を省略する。
( 4 ) 第 1 関数部 1 1 3は、 関数値 G ( s ) の上位 kビッ トを乱数値 uとし、 下位 kビッ トを共有鍵 Kとする以外に、 関数値 G ( s ) から乱 数値 Uと共有鍵 Kとを導出すれば他の方法でもよい。
例えば、 関数値 G ( s ) の上位 k Z 2 ビッ トを乱数値 uと し、 下位 k
X 3 / 2 ビッ トを共有鍵 Kとしてもよい。 また、 関数値 G ( s ) の 2 k ビッ トのうち、 1 ビッ ト置きに kビッ トを選択して乱数値 uとし、 残り の kビッ トを共有鍵 としてもよい。
( 5 ) 乱数値 uは、 第 1関数部 1 1 3及び第 2関数部 1 2 6で生成さ れる以外にも、 暗号装置 1 1 0と復号装置 1 20とで同じ値を得られれ ば、 他の生成方法を採用してもよい。
例えば、 任意の関数 F u n cに対し、 u = F u n c ( s ) として暗号 装置 1 1 0と復号装置 1 20とで同じ値を得られるようにしてもよい。 すなわち、 暗号装置 1 1 0と復号装置 1 20とにおいて、
• G ( s ) を生成し、 G ( s ) から Kを生成する。
• F u n c ( s ) を生成し、 u = F u n c ( s ) とする。
としてもよい。
(6) 乱数値 uは、 第 1関数部 1 1 3及び第 2関数部 1 26で生成さ れる以外にも、 暗号装置 1 1 0と復号装置 1 20とで同じ値を得られれ ばよいので、 暗号装置 1 1 0が乱数値 uを復号装置 1 20 bに直接送信 してもよい。
すなわち、 以下のように、 第 1暗号文 c 1 と乱数値 uを復号装置 1 2 0に送信してもよい。 このとき、 乱数値 uは暗号化して送信されてもよ い。
暗号装置 1 1 0において、
• G ( s ) を生成し、 G ( s ) から Kを生成する。
•乱数値 uを、別途、暗号装置 1 1 0から復号装置 1 2 0へ送信する。 復号装置 1 20において、
· 乱数値 Uを受信する。
•乱数値 u' に代えて、受信した乱数値 uを用いて第 1再暗号文 c 1 ' を生成する。
このとき、 暗号装置 1 1 0は、 乱数値 uを暗号化して送信し、 復号装 置 1 20は、 暗号化された乱数値 uを復号するとしてもよい。
(7) 乱数値 uは、 暗号装置 1 1 0と復号装置 1 20とで同じ値を得 られればよいので、 乱数値 uの一部分の部分情報を第 1関数部 1 1 3及 び第 2関数部 1 2 6で生成し、 乱数値 uの残りの部分の部分情報を暗号 装置 1 1 0から復号装置 1 20に直接送信してもよい。
例えば、 以下のように、 暗号装置 1 1 0は、 第 1暗号文 c 1 と乱数値 u 2とを復号装置 1 20に送信してもよい。 暗号装置 1 1 0において、
(a) G ( s ) を生成し、 G ( s ) から K、 u lを生成する。
(b) 乱数値 u 2を生成し、 別途、 復号装置 1 20へ送信する。
( c ) 乱数値 uを、 u = u l x o r u 2から生成する。
(d) 乱数値 uを用いて、 第 1暗号文 c 1を生成する。
復号装置 1 20において、
( e) 乱数値 u 2を受信する。
( f ) G ( s ' ) を生成し、 G (s ' ) から K' 、 u l ' を生成する。 ( g ) 乱数値 u' を、 u' = u l ' x o r u 2から生成する。 (h) 生成した乱数値 u' を用いて第 1再暗号文 c 1 ' を生成する。 このとき、 暗号装置 1 1 0は、 乱数値 u 2を暗号化して送信し、 復号 装置 1 2 0は、 暗号化された乱数値 u 2を復号すると してもよい。
また、 (c) 及ぴ (g) において、 排他的論理和 X o rに代えて他の 演算を用いるとしてもよい。 例えば、 ( c) 及び (g) において、 それ ぞれ加算及び減算を用いてもよいし、 また、 乗算及び除算を用いてもよ い。
(8) 復号エラーの発生により暗号装置 1 1 0と復号装置 1 20との 間で異なる共有鍵が導出されるのを防止するため、 第 1再暗号文 c 1 ' と第 1暗号文 c 1 とが同じである場合に、 共有鍵 K' を出力する代わり に、 暗号装置 1 1 0が乱数 s、 乱数値 u、 共有鍵 Kのいずれか 1つ以上 について、 ハッシュ関数値を生成し、 生成したハッシュ関数値を復号装 置 1 20へ送信し、 復号装置 1 20がこのハッシュ関数値を検証するこ とにより、 共有鍵 K' を出力するか否かを決定してもよい。 例えば、 こ のハッシュ関数値と して、 任意のハッシュ関数 Hに対して、 乱数 sのハ ッシュ関数値 H ( S ) を生成するようにしてもよいし、 乱数 S、 乱数値 u、 共有鍵 Kの組み合わせ、 例えば、 ハッシュ関数値 H ( s | I u I I k) やハッシュ関数値 H (u I I k) 等を生成するようにしてもよい。 また、この場合、暗号装置 1 1 0の第 1関数部 1 1 3は、関数値 G ( s ) から乱数値 uと共有鍵 Kを導出する代わりに、 G ( s ) から共有鍵 の みを導出してもよい。 以下に、 その具体例を述べる。
コンテンッ配信システム 1 0は、 暗号装置 1 1 0及ぴ復号装置 1 2 0 に代えて、 暗号装置 1 1 0 b及ぴ復号装置 1 20 bを含み、 暗号装置 1 1 0 bは、図 6に示すように、公開鍵入力部 1 1 1、乱数生成部 1 1 2、 第 1関数部 1 1 3 b、 暗号化部 1 1 4 b、 第 1送信部 1 1 7 b、 共通鍵 暗号部 1 1 8及び第 2送信部 1 1 9から構成されており、 復号装置 1 2 0は、図 7に示すように、秘密鍵入力部 1 2 1 b、第 1受信部 1 22 b、 復号化部 1 23 b、 第 2関数部 1 26 b、 比較部 1 27 b、 共通鍵復号 部 1 28及び第 2受信部 1 29から構成される。 比較部 1 2 7 bは、 第 3関数部 1 27 u及び比較演算部 1 27 Vを含む。
暗号装置 1 1 O bが乱数 sのハッシュ関数値を生成し、 復号装置 1 2 0 bがこのハッシュ関数値を検証する際に、暗号装置 1 1 0 bにおいて、 図 8の処理系統図に示すように、 第 1関数部 1 1 3 bは、 G ( s ) を生 成し (ステップ S 1 03) 、 G ( s ) から Kを生成する (ステップ S 1 04) 。
次に、 暗号化部 1 1 4 bは、 乱数値 uを生成し、 生成した乱数値 uか ら乱数多項式 rを生成し、 乱数多項式 r及び公開鍵多項式 hを用いて乱 数 sの第 1暗号文 c 1 を生成し (ステップ S 1 0 5) 、 ノヽッ シュ関数値 H ( s ) を生成する (ステップ S 1 1 1 ) 。
次に、 第 1送信部 1 1 7 bは、 第 1暗号文 c 1 を送信し (ステップ S 1 06) 、 ノヽッ シュ関数値 H ( s ) を送信する (ステップ S 1 1 2 ) 。
次に、 復号装置 1 20 bにおいて、 第 1受信部 1 22 bは、 第 1暗号 文 c 1を受信し (ステップ S 1 0 6 ) 、 ノヽッシュ関数値 H ( s ) を受信 する (ステップ S 1 1 2 ) 。
次に、 復号化部 1 23 bは、 秘密鍵多項式 f を用いて第 1暗号文 c 1 を復号して s ' を生成する (ステップ S 1 52 ) 。
次に、第 2関数部 1 26は、 G ( s ' )を生成し(ステップ S 1 53) 、 G ( s ' ) から を生成する (ステップ S 1 54 ) 。
次に、 比較部 1 27は、 第 3関数部 1 27 uにより、 H ( s ' ) を生 成し (ステップ S 1 54) 、 比較演算部 1 27 vにより、 H ( s ' ) = H (s ) が成立するかどうかチェック し (ステップ S 1 6 2) 、 成立す れば共有鍵 K' を出力する (ステップ S 1 57) 。
また、 この場合、 さらに安全性を高めるために、 特許文献 1 に開示さ れている方法を用いて、 乱数 sに付加情報を附したものを暗号化して第 1暗号文 c 1 を生成してもよい。 すなわち、 図 6において、 暗号化部 1 1 4 bは、 付加情報 R aを生成し、 s と R aのビッ ト結合 s I I R aの 値を暗号化して第 1暗号文 c 1 を生成し、 図 7において、 復号化部 1 2 3 bは、 第 1暗号文 c 1 を復号して s ' I I R a ' を生成し、 R a ' を 除去して復号乱数 s ' を生成してもよい。
また、特許文献 1 に開示されている通り、 s I i R aの値の代わりに、 s と R aの可逆変換 F ( s , R a ) の値を用いてもよい。
2. 実施の形態 2
本発明に係る別の実施の形態としてのコ ンテンツ配信システム 1 0 c (図示していない) について説明する。
コ ンテンツ配信システム 1 0 cは、 コ ンテンツ配信システム 1 0を基 本としてこれを変形したシステムであり、 関数値 G ( s ) から乱数値 u と共有鍵 Kとの他にさらに検証値 aを生成する点と、 暗号装置が、 乱数 sを暗号化した第 1暗号文 1 を生成して送信する代わりに、 検証値 a を暗号化した第 1暗号文 c 1 と、 乱数 sを検証値 aに基づいて暗号化し た第 2暗号文 c 2とを生成して送信する点において、 コ ンテンツ配信シ ステム 1 0と異なる。
以下、 コ ンテンツ配信システム 1 0 cについて、 上記差異点を中心に 詳しく説明する。
2. 1 コ ンテンツ配信システム 1 0 cの構成
コ ンテンツ配信システム 1 0 cは、 コ ンテンツ配信システム 1 0と同 様の構成を有しており、 暗号装置 1 1 0及ぴ復号装置 1 20に代えて、 暗号装置 1 1 0 c及び復号装置 1 20 cを含んでいる。 その他の構成に ついては、 コンテンツ配信システム 1 0におけるものと同様であるので 説明を省略する。
2. 2 暗号装置 1 1 0 cの構成 暗号装置 1 1 0 cは、 図 9に示すように、 暗号装置 1 1 0と同様の構 成を有しており、 乱数生成部 1 1 2、 第 1関数部 1 1 3、 暗号化部 1 1 4及び第 1送信部 1 1 7に代えて、 乱数生成部 1 1 2 c、 第 1関数部 1 1 3 c、 暗号化部 1 1 4 c、 乱数マスク部 1 1 6 c及び第 1送信部 1 1 7 Cを含む。
こ こでは、 乱数生成部 1 1 2 c、 第 1関数部 1 1 3 c、 暗号化部 1 1 4 c、乱数マスク部 1 1 6 c及び第 1送信部 1 1 7 cについて説明する。
( 1 ) 乱数生成部 1 1 2 c
乱数生成部 1 1 2 cは、 共有鍵 Kを生成するための元となるシー ド値 として、 乱数 sを生成し、 生成した乱数 sを第 1関数部 1 1 3 bと乱数 マスク部 1 1 6 cとへ出力する。
(2) 第 1関数部 1 1 3 c
第 1関数部 1 1 3 cは、 乱数生成部 1 1 2 cから乱数 sを受け取り、 乱数 sの関数値 G ( s ) を生成する。 次に、 生成した関数値 G (s ) か ら検証値 aと共有鍵 Kと乱数値 uとを生成する。
ここで、 関数 Gは、 出力長が 3 kビッ トのハッシュ関数であり、 第 1 関数部 1 1 3 cは、 関数値 G ( s ) の上位 kビッ トを検証値 aとし、 関 数値 G ( s ) の中間の kビッ トを共有鍵 Kとし、 関数値 G ( s ) の下位 kビッ トを乱数値 uとする。
次に、 第 1関数部 1 1 3 cは、 生成した検証値 aと乱数値 uとを暗号 化部 1 1 4 cへ出力し、 生成した共有鍵 Kを共通鍵暗号部 1 1 8へ出力 し、 生成した検証値 aを乱数マスク部 1 1 6 cへ出力する。
(3) 暗号化部 1 1 4 c
暗号化部 1 1 4 cは、 公開鍵入力部 1 1 1から公開鍵多項式 hを受け 取り、 第 1関数部 1 1 3 cから検証値 aと乱数値 uとを受け取り、 次に 示すよう にして、 公開鍵多項式 hと乱数値 uとを用いて検証値 aの第 1 暗号文 c 1 を生成する。 こ こでは、 第 1暗号文 c 1は NT RU暗号によ る暗号文である。
暗号化部 1 1 4 cは、 NT RU暗号のパラメータ dに対し、 d個の項 の各係数が 「 1」 であり、 他の d個の項の各係数が 「一 1」 であり、 残 りの項の各係数が 「0」 となる乱数多項式 rを乱数値 uから一意に求ま るように生成する。 具体的には、 乱数値 uを擬似乱数系列の初期値 (乱 数シー ド) として設定し、 {0, 1 N— 1 } から重複しない ように 2 d個の擬似乱数を選択し、 最初の d個の擬似乱数により示され る次元の項の係数を 「 1」 とし、 他の d個の擬似乱数により示される次 元の係数を 「一 1」 とし、 残りの項の係数を 「0」 とすることにより、 乱数多項式 rを生成する。
次に、 受け取つた検証値 aが NT R U暗号の暗号アルゴリズム Eに適 用できるように、 暗号化部 1 1 4 cは、 検証値 aを 2進数表現した場合 における N桁のビッ ト列の各桁の値が、 検証値多項式 a pの各項の係数 に対応するように、 検証値多項式 a pを構成するこ とによ り、 検証値 a を検証値多項式 a に変換する。 例えば、 検証値 aの下位 bビッ ト 目の 値は、 項 X Λ bの係数の値となる。 具体的には、 検証値 a = 1 0 0 1 0 (ビッ ト表現)の場合、検証値多項式 a =Χ Λ 5 + Χ Λ を生成する。 次に、 暗号化部 1 1 4 cは、 公開鍵多項式 hを鍵として使用して、 乱 数多項式 rを用いて検証値多項式 a pに前記暗号アルゴリズム Eを施し て、 暗号文多項式である第 1暗号文 c 1 = E ( a p , r , h) を生成す る。
次に、 暗号化部 1 1 4 cは、 生成した第 1暗号文 c 1を第 1送信部 1 1 7 cへ出力する。
(4) 乱数マスク部 1 1 6 c
乱数マスク部 1 1 6 cは、乱数生成部 1 1 2 cから乱数 sを受け取り、 第 1関数部 1 1 3 cから検証値 aを受け取り、 次に、 第 2暗号文 c 2 = s X o r aを生成し、 生成した第 2暗号文 c 2を第 1送信部 1 1 7 Cへ出力する。
こ こで、 X 0 rは排他的論理和演算を表す演算子である。
なお、 乱数マスク部 1 1 6 cは、 排他的論理和に代えて、 共有鍵暗号 アルゴリ ズム、 加算又は乗算を用いるとしてもよい。
(5) 第 1送信部 1 1 7 c
第 1送信部 1 1 7 cは、 暗号化部 1 1 4 cから第 1暗号文 c 1 を受け 取り、 乱数マスク部 1 1 6 cから第 2暗号文 c 2を受け取り、 受け取つ た第 1暗号文 c 1 と第 2暗号文 c 2とを、 イ ンターネッ ト 1 3 0を介し て復号装置 1 2 0 cへ送信する。
2. 2 復号装置 1 2 0 cの構成 , 復号装置 1 2 0 cは、 図 1 0に示すように、 復号装置 1 2 0と同様の 構成を有しており、 第 1受信部 1 2 2、 復号化部 1 2 3、 第 2関数部 1 2 6及び比較部 1 2 7に代えて、 第 1受信部 1 2 2 c、 復号化部 1 2 3 c、 乱数マスク除去部 1 2 5 c、 第 2関数部 1 2 6 c及び比較部 1 2 7 c ¾含む。
こ こでは、 第 1受信部 1 2 2 c、 復号化部 1 2 3 c、 乱数マスク除去 部 1 2 5 c、第 2関数部 1 2 6 c及び比較部 1 2 7 cについて説明する。
( 1 ) 第 1受信部 1 2 2 c
第 1受信部 1 2 2 cは、 イ ンタ一ネッ ト 1 3 0を介して、 暗号装置 1 1 0 cから第 1暗号文 c 1 と第 2暗号文 c 2とを受け取り、 受け取つた 第 1暗号文 c 1 を復号化部 1 2 3 cへ出力し、 受け取った第 2暗号文 c 2を乱数マスク除去部 1 2 5 cへ出力する。
( 2 ) 復号化部 1 2 3 c
復号化部 1 2 3 cは、 秘密鍵入力部 1 2 1 から秘密鍵多項式 f を受け 取り、 第 1受信部 1 2 2 cから第 1暗号文 c 1 を受け取り、 次に示すよ うにして、 秘密鍵多項式 f を用いて、 第 1暗号文 C 1 を復号して復号検 証値 a ' を生成する。 こ こでは、 復号検証値 a ' は NT R U暗号による 復号文である。
復号化部 1 2 3 cは、 秘密鍵多項式 f を鍵として使用して、 第 1暗号 文 c 1 に前記復号ァルゴリズム Dを施して、 復号検証値多項式 a p ' = D ( c 1 , f ) を生成する。 こ こで、 復号検証値多項式 a p ' は、 NT R
U暗号の復号文であり多項式で表現されているので、 復号化部 1 2 3 c は、 復号検証値多項式 a p ' の各項の係数が、 2進数表現された N桁の ビッ ト列である復号検証値 a ' の各桁の値に対応するように、 復号検証 値多項式 a p' を復号検証値 a' に変換する。 例えば、 復号検証値多項 式 a p ' の b次元の項 X bの係数を、 復号検証値 a ' の下位 bビッ ト 目の値とする。 具体的には、 復号検証値多項式 a p ' =X ^ 5 +X ^ 2 の場合、 復号検証値 a' = 1 00 1 0 (ビッ ト表現) に変換する。
次に、 復号化部 1 23 cは、 生成した復号検証値 a' を乱数マスク除 去部 1 25 cへ出力し、 受け取った第 1暗号文 c l を比較部 1 27 cへ 出力する。
(3) 乱数マスク除去部 1 25 c
乱数マスク除去部 1 25 cは、 第 1受信部 1 22 cから第 2暗号文 c 2を受け取り、 復号化部 1 23 cから復号検証値 a' を受け取り、 復号乱数 s ' = c 2 X 0 r a' を生成し、 生成した復号乱数 s ' を 第 2関数部 1 26 cへ出力する。
なお、 乱数マスク部 1 1 6 cが、 排他的論理和に代えて、 共有鍵暗号 アルゴリ ズム、 加算又は乗箅を用いる場合において、 乱数マスク除去部 1 25 cは、 それぞれ、 共有鍵暗号アルゴリ ズムに対応する共有鍵復号 アルゴリ ズム、 減算、 又は除算を用いると してもよい。
(4) 第 2関数部 1 26 c
第 2関数部 1 2 6 cは、 第 1関数部 1 1 3 cが有する関数と同じ関数 Gによるアルゴリ ズムを有している。
第 2関数部 1 2 6 cは、 乱数マスク除去部 1 2 5 cから復号乱数 s ' を受け取り、 受け取った復号乱数 s ' の関数値 G (s ' ) を生成する。 次に、 第 1関数部 1 1 3 cと同様にして、 関数値 G (s ' ) から検証値 a ' ' と共有鍵 K' と乱数値 u' とを生成し、 生成した検証値 a' ' と 共有鍵 K' と乱数値 u' とを比較部 1 27 cへ出力する。
(5) 比較部 1 27 c
比較部 1 2 7 cは、 図 1 0に示すように、 比較演算部 1 27 s及び暗 号化部 1 27 tから構成されている。
暗号化部 1 27 tは、 秘密鍵入力部 1 2 1から公開鍵多項式 hを受け 取り、第 2関数部 1 26 cから検証値 a ' ' と乱数値 u' とを受け取り、 受け取った公開鍵多項式 hと乱数値 u' を用いて、 暗号化部 1 1 4 cと 同様にして検証値 a' ' を暗号化して第 1再暗号文 c 1 ' を生成し、 生 成した第 1再暗号文 c l ' を比較演算部 1 27 sへ出力する。 また、 比較演算部 1 2 7 sは、 第 2関数部 1 2 6 cから共有鍵 K' を 受け取り、 復号化部 1 2 3 cから第 1暗号文 c 1 を受け取り、 暗号化部 1 2 7 tから第 1再暗号文 c 1 ' を受け取り、 次に、 受け取った第 1暗 号文 c 1 と、 受け取った第 1再暗号文 c 1 ' とを比較し、 第 1暗号文 c 1 =第 1再暗号文 c l ' であると判断する場合に、 受け取った共有鍵 K' を共通鍵復号部 1 2 8へ出力する。
2. 3 コ ンテンツ配信システム 1 0 cの動作
以下に、 実施の形態 2におけるコ ンテンッ配信システム 1 0 cの全体 の動作について、 図 1 1 に示す処理系統図を用いて、 説明する。
暗号装置 1 1 0 cは、 復号装置 1 2 0 cの公開鍵多項式 hを受け取り (ステップ S 1 0 1 ) 、 乱数 sを生成し (ステップ S 1 0 2) 、 関数値 G ( s ) を求め、 関数値 G ( s ) から検証値 a、 共有鍵 K及び乱数値 u を導出する (ステップ S 1 2 1 ) 。 次に、 暗号装置 1 1 0 cは、 検証値 aを、 公開鍵多項式 h及び乱数値 uを用いて NT RU暗号により暗号化 して第 1暗号文 c 1 を生成し (ステップ S 1 0 5) 、 検証値 aに基づき 乱数 sを暗号化して第 2暗号文 c 2 = s X 0 r aを生成する (ステ ップ S 1 2 2 ) 。 次に、 暗号装置 1 1 0 cは、 第 1暗号文 c 1 と第 2暗 号文 c 2とをイ ンターネッ ト 1 3 0を介して復号装置 1 2 0 cへ送信す る (ステップ S 1 0 6) 。
すなわち、 この暗号装置 1 1 0 cは、 以下の処理を行い、 暗号文 C = ( c 1 , c 2 ) を復号装置 1 2 0 cへ送信する。
(a) 乱数 s を生成する。
(b) G ( s ) を生成し、 G ( s ) から a、 K、 uを生成する。
( c ) 公開鍵多項式 h、 乱数値 uを用いて検証値 aの第 1暗号文 c 1 を生成する。
( d ) c 2 = s x o r aを生成する。
次に、 Βί号装置 1 1 0 cは、 導出した共有鍵 Kを用いて、 コ ンテンツ サーバ装置 1 4 0から受け取った平文 m i ( 1 ≤ i ≤ n) を共通鍵暗号 方式により暗号化して暗号文 C i ( 1 ≤ i ≤ n) を生成し (ステップ S 1 0 7) 、 イ ンタ一ネッ ト 1 3 0を介して復号装置 1 2 0 cへ送信する (ステップ S 1 0 8 ) 。
一方、 復号装置 1 20 cは、 復号装置 1 20 cの秘密鍵多項式 f 及び 公開鍵多項式 hを受け取り (ステップ S 1 5 1 ) 、 イ ンタ一ネッ ト 1 3 0を介して暗号装置 1 1 0 cから第 1暗号文 c 1 と第 2暗号文 c 2を受 信し (ステップ S 1 06) 、 第 1暗号文 c 1を秘密鍵多項式 f を用いて 復号して復号検証値 a ' を生成する (ステップ S 1 52) 。 次に、 復号 検証値 a' に基づき第 2暗号文 c 2を復号して、 復号乱数 s ' = c 2 X o r a ' を生成する (ステップ S 1 7 1 ) 。 次に、 復号装置 1 2 0 cは、 復号乱数 s ' の関数値 G (s ' ) から検証値 a' ' 、 共有鍵 K' 及び乱数値 u' を導出する (ステップ S 1 72 ) 。 さらに、検証値 a ' ' を暗号化して第 1再暗号文 c 1 ' を生成し (ステップ S 1 5 5) 、 c l ' = c 1であれば (ステップ S 1 5 6) 、 共有鍵 K' を出力する (ステツ プ S 1 5 7 ) 。
すなわち、 この復号装置 1 20 cは、 以下の処理を行い、 共有鍵 K' を導出する。
( a ) 秘密鍵多項式 f を用いて第 1暗号文 c 1 を復号して a ' を生成 する。
( b ) s ' = c 2 x o r a ' を生成する。
( c ) G ( s ' ) を生成し、 G ( s ' ) から a' ' 、 Κ' 、 u ' を生 成する。
(d) 公開鍵多項式 h、 乱数値 u' を用いて a' ' の第 1再暗号文 c 1 ' を生成する。
( e ) c 1 ' = c 1が成立するかどうかチ ックする。 成立すれば共 有鍵 K' を出力する。
ここで、 暗号装置 1 1 0 cで用いられた公開鍵多項式 hに対応する正 しい秘密鍵多項式 f が復号装置 1 20 cで用いられれば、 第 1暗号文 c 1は正しく復号されて、 復号検証値 a' = aとなり、 第 2暗号文 c 2と a ' から生成される復号乱数 s ' = sとなる。 従って、 G ( s ' ) から 導出される検証値 a' ' = aとなり、共有鍵 K' =Kとなり、乱数値 u' = uとなる。 こう して、 a' ' = a及び u' = uが成り立つので、 c l ' = c 1が成り立ち、 復号装置 1 20 cは暗号装置 1 1 0 cと同じ共有鍵 Kを導出できることになる。
次に、 復号装置 1 20 cは、 イ ンタ一ネッ ト 1 30を介して暗号装置 1 1 0 cから共通鍵暗号文 C i ( 1 ≤ i ≤ n) を受信し (ステップ S I 08 ) 、 導出した共有鍵 K' (= ) を用いて、 受信した共通鍵暗号文 C i ( 1 ≤ i n) を共通鍵暗号方式により復号して復号文 m i ' ( 1 ≤ i ≤ n) を生成し (ステップ S 1 58) 、 復号文 m i ' ( 1≤ i ≤ n) を再生装置 1 50へ出力する。
ここで、 共通鍵暗号文生成時に用いた暗号鍵 Kと復号文生成時に用い る暗号鍵 K' とは同一であるので、 復号装置 1 20 cは、 正しい復号文 m i ' = m i ( 1≤ i ≤ n) を得ることができる。
なお、 復号エラーが発生した場合には、 復号検証値 a' と検証値 aと は異なるので、第 2暗号文 c 2から得られる復号乱数 s ' は sと異なる。 従って、 G ( s ' ) から導出される乱数値 u' 及び共有鍵 K' は、 それ ぞれ u、 Kとは異なる。 しかし、 この場合、 a' 、 u' がそれぞれ a、 uと異なるために第 1再暗号文 c 1 ' は第 1暗号文 c 1 と異なるので、 復号装置 1 20 cは、 共有鍵 K' を出力しない。
2. 4 実施の形態 2における効果
従来の R S A— K E Mアルゴリズムでは、 秘密鍵を知らなければ暗号 文 Cから導出できない要素 sをハッシュ関数 Gに入力して共有鍵 Kを導 出する。 しかしながら、 NT RU暗号を用いて、 鍵カプセル化メカニズ ムである R S A— KEMアルゴリズムを適用して共有鍵の配送を行おう とすると、 復号エラーが発生する場合があるため、 秘密鍵を用いても要 素 sが導出できず、従って正しく ない共有鍵 K' を導出する場合がある。
しかしながら、 実施の形態 2のコ ンテンツ配信システム、 暗号装置及 び復号装置は、 乱数 sのハッシュ関数値 G ( s ) から共有鍵に加えて検 証値 aと乱数値 uとを生成し、 復号装置が乱数値 uと公開鍵多項式 hと を用いて復号検証値 a' を再暗号化して第 1再暗号文 c 1 ' を生成し、 第 1再暗号文 c 1 ' が第 1暗号文 c 1 と同じ値でない限り共有鍵 Kを出 ガしないので、 復号エラーが発生した場合、 暗号装置と復号装置との間 で異なる鍵が導出されるのを防止できる。
また、 本発明による方式は、 非特許文献 3に記述されている証明方法 と同様の方法により、 理論的にその安全性が証明できる。
2 . 5 変形例
上記に説明した実施の形態 2は、 本発明の実施の一例であり、 本発明 はこの実施の形態に何ら限定されるものではなく、 その主旨を逸脱しな い範囲において種々なる態様で実施し得るものである。 実施の形態 1 に おけるのと同様の変形を施すことができるのはもちろんであるが、 以下 のような場合も本発明に含まれる。
( 1 ) 検証値 aから検証値多項式 a pへの変換は、 他の変換方法でも よい。 例えば、 ビッ ト列の各ビッ トの値と多項式の各項の係数とを 1対 1 に対応させる関数を用いて変換してもよいし、 また、 ビッ ト列の各ビ ッ トの値と多項式の各項の係数とを 1対 1 に対応させて記憶している関 数値テーブルを用いて変換してもよい。
また、乱数値 uから乱数多項式 rへの変換は、他の変換方法でもよい。 例えば、 uから rがー意に求まり、 d個の次元の項の係数を 「 1」 とし、 d個の次元の項の係数を 「一 1」 とし、 他の次元の項の係数は 「 0」 と なるようにすれば、 他の変換方法でもよい。 例えば、 乱数値 uを多項式 に対応させる関数、 又は関数値テーブルを用いて変換してもよい。
( 2 )暗号化部 1 1 4 c及び復号化部 1 2 3 cで用いる公開鍵暗号は、 暗号化部 1 1 4 cにおいて、 検証値 aを公開鍵と乱数値 uを用いて暗号 ィ匕して第 1暗号文 c 1 を生成し、 復号化部 1 2 3 cにおいて、 第 1暗号 文 c 1 を秘密鍵で復号して、 検証値 aと等しい復号検証値 a ' を生成で きればよい。 従って、 暗号化部 1 1 4 c及ぴ復号化部 1 2 3 cで用いる 公開鍵暗号は、 N T R U暗号以外に、 乱数を用いる公開鍵暗号ならばど んな暗号であつてもよい。
例えば、 E 1 G a m a 1暗号ならば、 h、 f をそれぞれ E 1 G a m a
1 暗号の公開鍵、 秘密鍵とし、 暗号化部 1 1 4 cにおいて、 aを hと乱 数値 uを用いて暗号化して c 1 を生成し、 復号化部 1 2 3 cにおいて、 c 1 を f を用いて復号して a ' を生成すればよい。 (3) 乱数値 uは、 第 1関数部 1 1 3 c及び第 2関数部 1 26 cで生 成される以外にも、 暗号装置 1 1 0 cと復号装置 1 20 cとで同じ値を 得られれば、 他の生成方法でもよい。
例えば、 任意の関数 F u n cに対し、 u = F u n c ( s ) として暗号 装置 1 1 0 cと復号装置 1 2 0 cとで同じ値を得られるようにしてもよ い。 すなわち、
• G ( s ) を生成し、 G ( s ) から a、 Kを生成する。
• F u n c ( s ) を生成し、 u = F u n c ( s ) とする。
としてもよい。
(4) さらに、 乱数値 uについては、 第 1関数部 1 1 3 c及び第 2関 数部 1 2 6 cで生成される以外にも、 暗号装置 1 1 0 cと復号装置 1 2 0 cとで同じ値が得られればよいため、 暗号装置 1 1 0 cが乱数値 uを 復号装置 1 20 cに直接送信してもよい。
すなわち、 以下のように、 暗号装置 1 1 0 cは、 暗号文 Cと乱数値 u とを復号装置 1 20 bに送信してもよい。 また、 乱数値 uを暗号化して 送信してもよい。
• G ( s ) を生成し、 G ( s ) から a、 Kを生成する。
• 暗号装置 1 1 0 cは、 別途、 乱数値 uを、 1 20 bへ送信する。 (5) さらに、 乱数値 uについては、 暗号装置 1 1 0 cと復号装置 1 20 Cとで同じ値が得られればよいため、 乱数値 Uの一部である部分情 報を第 1関数部 1 1 3 c及び第 2関数部 1 2 6 cで生成し、 乱数値 uの 残りの部分情報を暗号装置 1 1 0 cから復号装置 1 20 cに直接送信し てもよい。
例えば、 以下のように、 暗号装置 1 1 0 cは、 暗号文 Cと乱数値 u 2 を復号装置 1 20 cに送信してもよい。 また、 暗号装置 1 1 0 cは、 乱 数値 u 2を暗号化して送信してもよい。
- G ( s ) を生成し、 G ( s ) から a、 K、 u lを生成する。
• 暗号装置 1 1 0 cは、 別途、 乱数値 u 2を復号装置 1 20 cへ送信 する。
· 暗号装置 1 1 0 cは、 乱数値 u = u 1 X o r u 2を生成する。 (6) 復号装置 1 20 cは、 第 1暗号文 c 1が第 2関数部 1 2 6 で 得られる検証値 a' ' の暗号文かどうかチヱックを行い、 c lが a' ' の暗号文であるときに共有鍵 K' を用いて共通鍵暗号文 C i を復号して いるが、 第 1暗号文 c 1が復号検証値 a' の暗号文かどうかをチヱック してもよい。
( 7 ) 復号装置 1 20 cは、 第 1暗号文 c 1が第 2関数部 1 2 6 cで 得られる検証値 a' ' の暗号文かどうかチヱックを行い、 c lが a' ' の暗号文であるときに共有鍵 K' を用いて共通鍵暗号文 C i を復号して いるが、 図 1 2の処理系統図のステップ S 1 56に示すように、 比較部 1 27 cにおいて、 復号化部 1 23 cが復号した a ' の値と第 2関数部 1 26 cが生成した a' ' の値が等しいかどうかをチェック してもよい (8) 復号エラ一発生により暗号装置 1 1 0 cと復号装置 1 20 cと の間で異なる鍵が導出されるのを防止するため、 第 1再暗号文 c 1 ' が 第 1暗号文 c 1 と同じ値かどうかを検証して共有鍵 K' を出力する代わ りに、 暗号装置 1 1 0 cが乱数 s、 検証値 a、 乱数値 u、 共有鍵 Kのい ずれか 1つ以上について、 ハッシュ関数値を生成し、 生成したハッシュ 関数値を復号装置 1 20 cへ送信し、 復号装置 1 20 cがこのハッシュ 関数値を検証して共有鍵 K' を出力するか否かを決定してもよいし、 安 全性を高めるために、特許文献 1 に開示されている方法を用いてもよい。 すなわち、 実施の形態 1の変形例 (8) を適用してもよい。
3. 実施の形態 1及び実施の形態 2のまとめ
以上説明したように、 本発明は、 共有鍵データと、 予め与えられた公 開鍵データに基づいて前記共有鍵データを暗号化した暗号化共有鍵デー 夕を出力する共有鍵生成装置であって、 秘密数データを生成する秘密数 データ生成部と、 前記秘密数データを所定の処理に基づいて乱数データ と前記共有鍵データに変換する共有鍵導出部と、 前記秘密数データを前 記公開鍵データと前記乱数データに基づいて暗号化して暗号化共有鍵デ ータを生成する第 1の暗号化部とを備える。
また、 本発明は、 共有鍵データと、 予め与えられた公開鍵データに基 づいて前記共有鍵データを暗号化した暗号化共有鍵データを出力する共 有鍵生成装置であって、秘密数データを生成する秘密数データ生成部と、 前記秘密数データを所定の処理に基づいて検証値データと乱数デ一夕と 前記共有鍵データに変換する共有鍵導出部と、 前記検証値データを前記 公開鍵データと前記乱数データに基づいて暗号化して第 1 の暗号予備デ 一夕を生成する第 1 の暗号化部と、 前記秘密数データを前記検証値デー タに基づいて暗号化して第 2の暗号予備データを生成する第 2の暗号化 部とを備え、 前記暗号化共有鍵データは、 前記第 1 の暗号予備データと 前記第 2の暗号予備データから構成される。
ここで、 前記第 2の暗号化部は、 前記秘密数データと前記検証値デー タの排他的論理和演算を行って前記第 2の暗号予備データを生成すると してもよい。
ここで、 前記第 2の暗号化部は、 前記秘密数データを、 前記検証値デ 一夕を暗号鍵として用いて共通鍵暗号方式により暗号化して前記第 2の 暗号予備データを生成すると してもよい。
ここで、 前記第 2の暗号化部は、 前記秘密数データに前記検証値デー 夕を加算して前記第 2の暗号予備データを生成するとしてもよい。
ここで、 前記第 2の暗号化部は、 前記秘密数データに前記検証値デー 夕を乗算して前記第 2の暗号予備データを生成すると してもよい。
ここで、 前記暗号化共有鍵データは、 前記第 1 の暗号予備データと前 記第 2暗号予備データのビッ ト連結データであるとしてもよい。
ここで、 前記第 1 の暗号化部は、 N T R U暗号方式により暗号化して 前記暗号化共有鍵データを生成するとしてもよい。
ここで、 前記第 1 の暗号化部は、 N T R U暗号方式により暗号化して 前記第 1 の暗号予備データを生成するとしてもよい。
ここで、 前記秘密数データは、 ランダムに生成される乱数であるとし てもよい。
ここで、 前記共有鍵導出部は、 所定の処理として、 一方向性ハッシュ 関数を用いるとしてもよい。
また、 本発明は、 予め与えられた秘密鍵データ及び公開鍵データに基 づいて、 暗号化共有鍵データを復号して共有鍵データを出力する共有鍵 復元装置であって、 前記暗号化共有鍵データを前記秘密鍵データに基づ いて復号化して秘密数データを生成する第 1 の復号化部と、 前記秘密数 データを所定の処理に基づいて乱数データと前記共有鍵データに変換す る共有鍵導出部と、 前記秘密数データを前記公開鍵データと前記乱数デ 一夕に基づいて暗号化して再暗号化共有鍵データを生成する第 3の暗号 化部とを備え、 前記暗号化共有鍵データと前記再暗号化共有鍵データが 一致する場合に、 前記共有鍵データを出力する。
また、 本発明は、 予め与えられた秘密鍵データ及び公開鍵データに基 づいて、 第 1 の暗号予備データと第 2の暗号予備データから構成される 暗号化共有鍵データを復号して共有鍵データを出力する共有鍵復元装置 であって、 前記第 1 の暗号予備データを前記秘密鍵データに基づいて復 号化して検証値データを生成する第 1 の復号化部と、 前記第 2の暗号予 備データを前記検証値データに基づいて復号化して秘密数データを生成 する第 2の復号化部と、 前記秘密数データを所定の処理に基づいて検証 値検証データと乱数データと前記共有鍵データに変換する共有鍵導出部 と、 前記検証値検証データを前記公開鍵データと前記乱数データに基づ いて暗号化して第 3の暗号予備データを生成する第 3の暗号化部とを備 え、 前記第 1 の暗号予備データと前記第 3の暗号予備データがー致する 場合に、 前記共有鍵データを出力する。
また、 本発明は、 予め与えられた秘密鍵データ及び公開鍵データに基 づいて、 第 1 の暗号予備データと第 2の暗号予備データから構成される 暗号化共有鍵データを復号して共有鍵データを出力する共有鍵復元装置 であって、 前記第 1 の暗号予備データを前記秘密鍵データに基づいて復 号化して検証値データを生成する第 1 の復号化部と、 前記第 2の暗号予 備データを前記検証値データに基づいて復号化して秘密数データを生成 する第 2の復号化部と、 前記秘密数データを所定の処理に基づいて検証 値検証データと乱数データと前記共有鍵データに変換する共有鍵導出部 と、 前記検証値データを前記公開鍵データと前記乱数データに基づいて 暗号化して第 3の暗号予備データを生成する第 3の暗号化部とを備え、 前記第 1 の暗号予備データと前記第 3の暗号予備データが一致する場合 に、 前記共有鍵データを出力する。
ここで、 前記第 2の復号化部は、 前記第 2の暗号予備データと前記検 証値データの排他的論理和演算を行って前記秘密数データを生成すると してもよい。
ここで、 前記第 2の復号化部は、 前記第 2の暗号予備データを、 前記 検証値データを暗号鍵として用いて共通鍵暗号方式により復号化して前 記秘密数データを生成するとしてもよい。
ここで、 前記第 2の復号化部は、 前記第 2の暗号予備データに前記検 証値データを減算して前記秘密数データを生成すると してもよい。
ここで、 前記第 2の暗号化部は、 前記第 2の暗号予備データを前記検 証値データで除算して前記秘密数データ第 2の秘密数データを生成する としてもよい。
ここで、 前記第 1 の復号化部は、 N T R U暗号方式により復号化して 前記共有鍵データを生成するとしてもよい。
ここで、 前記第 1 の復号化部は、 N T R U暗号方式により復号化して 前記検証値データを生成するとしてもよい。
ここで、 前記共有鍵導出部は、 所定の処理として、 一方向性ハッシュ 関数を用いるとしてもよい。
また、 本発明は、 予め与えられた公開鍵データに基づいて平文データ を暗号化した暗号文データを生成する暗号装置であって、 秘密数データ を生成する秘密数データ生成部と、 前記秘密数データを所定の処理に基 づいて乱数データと共有鍵データに変換する共有鍵導出部と、 前記秘密 数データを前記公開鍵データと前記乱数データに基づいて暗号化して第
1 の暗号予備データを生成する第 1 の暗号化部と、 前記平文データを前 記共有鍵データに基づいて暗号化して第 2の暗号予備データを生成する 第 2の暗号化部とを備え、 前記暗号文データは、 前記第 1の暗号予備デ —タと前記第 2の暗号予備データから構成される。
また、 本発明は、 予め与えられた秘密鍵データ及び公開鍵データに基 づいて、 第 1 の暗号予備データと第 2の暗号予備データから構成される 暗号文データを復号して復号文データを出力する復号装置であって、 前 記第 1 の暗号予備データを前記秘密鍵データに基づいて復号化して秘密 数データを生成する第 1 の復号化部と、 前記秘密数データを所定の処理 に基づいて乱数データと共有鍵データに変換する共有鍵導出部と、 前記 秘密数データを前記公開鍵データと前記乱数データに基づいて暗号化し て第 3の暗号予備データを生成する第 3の暗号化部とを備え、 前記第 1 の暗号予備データと前記第 3の暗号予備データが一致する場合に、 前記 第 2の暗号予備データを前記共有鍵に基づいて復号化して前記復号文デ 一夕を生成する復号部とを備える。
また、 本発明は、 予め与えられた公開鍵データに基づいて平文データ を暗号化した暗号文データを生成する暗号装置、 及び予め与えられた秘 密鍵データ及び公開鍵データに基づいて暗号文データを復号して復号文 データを出力する復号装置からなる暗号システムである。 前記暗号装置 は、 秘密数データを生成する秘密数データ生成部と、 前記秘密数データ を所定の処理に基づいて乱数データと共有鍵データに変換する共有鍵導 出部と、 前記秘密数データを前記公開鍵データと前記乱数データに基づ いて暗号化して第 1 の暗号予備データを生成する第 1 の暗号化部と、 前 記平文データを前記共有鍵データに基づいて暗号化して第 2の暗号予備 データを生成する第 2の暗号化部とを備え、 前記暗号文データは、 前記 第 1 の暗号予備データと前記第 2の暗号予備データと前記第 3の暗号予 備データから構成される。 前記復号装置は、 前記第 1 の暗号予備デ一夕 を前記秘密鍵データに基づいて復号化して秘密数データを生成する第 1 の復号化部と、 前記秘密数データを所定の処理に基づいて乱数データと 共有鍵データに変換する共有鍵導出部と、 前記秘密数データを前記公開 鍵データと前記乱数データに基づいて暗号化して第 3の暗号予備データ を生成する第 3の暗号化部とを備え、 前記第 1 の暗号予備データと前記 第 3の暗号予備データが一致する場合に、 前記第 2の暗号予備データを 前記共有鍵に基づいて復号化して前記復号文デ一タを生成する復号部と を備える。
以上に説明したように、 本発明は、 従来システムにおける問題点を鑑 みて行われたもので、 暗号システムにおいて、 N T R U暗号を適用でき る新しい鍵カプセル化メ力二ズムを構成することで、 暗号装置と復号装 置との間で異なる鍵が導出されるのを防止でき、 鍵カプセル化メカニズ ムにより導出される鍵を用いた送信装置から受信装置への確実な暗号化 通信ができる。
以上により、 従来技術では達成できなかった暗号システムを提供する ことができ、 その価値は大きい。
4 . 実施の形態 3
本発明に係るさらに別の実施の形態としてのコ ンテンツ配信システム 1 0 d (図示していない) について説明する。
なお、 コ ンテンツ配信システム 1 0 dは、 コ ンテンツ配信システム 1 0を変形したシステムである。 こ こでは、 コ ンテンツ配信システム 1 0 dについて、 コンテンツ配信システム 1 0との差異点を中心に詳しく説 明する。
4 . 1 コ ンテンツ配信システム 1 0 dの構成
コンテンツ配信システム 1 0 dは、 コ ンテンツ配信システム 1 0と同 様の構成を有しており、 暗号装置 1 1 0及ぴ復号装置 1 2 0に代えて、 暗号装置 1 1 0 d及び復号装置 1 2 0 dを含んでいる。 その他の構成に ついては、 コ ンテンツ配信システム 1 0 におけるものと同様であるので 説明を省略する。
コ ンテンツ配信システム 1 0 dは、 N T R U暗号を用いて鍵カプセル 化メ力ニズムによる鍵配送を行って暗号化通信を行う暗号通信システム であり、 暗号装置 1 1 0 dと復号装置 1 2 0 dとは、 イ ンターネッ ト 1 3 0を介して接続されている。
4 . 2 暗号装置 1 1 0 dの構成
暗号装置 1 1 0 dは、 図 1 3に示すように、 公開鍵入力部 1 1 1 d、 乱数生成部 1 1 2 d、 第 1 関数部 1 1 3 d、 暗号化部 1 1 4 d、 第 2関 数部 1 1 5 d、 乱数マスク部 1 1 6 d、 第 1送信部 1 1 7 d、 共通鍵暗 号部 1 1 8及び第 2送信部 1 1 9から構成されている。
暗号装置 1 1 0 dは、 暗号装置 1 1 0 と同様のコンピュータシステム であり、 マイ クロプロセッサが、 コンピュータプログラムに従って動作 することにより、 暗号装置 1 1 0 dは、 その機能を達成する。
( 1 ) 公開鍵入力部 1 1 1 d
公開鍵入力部 1 1 1 dは、 メモリカー ド 1 60から復号装置 1 20の 公開鍵多項式 hを読み出し、 読み出した公開鍵多項式 hを暗号化部 1 1 4 dへ出力する。
(2) 乱数生成部 1 1 2 d
乱数生成部 1 1 2 dは、 共有鍵 Kを生成するための元となるシード値 として、 乱数 sを生成し、 生成した乱数 sを第 1関数部 1 1 3と乱数マ スク部 1 1 6とへ出力する。
( 3 ) 第 1関数部 1 1 3 d
第 1関数部 1 1 3 dは、 乱数生成部 1 1 2 dから乱数 sを受け取り、 受け取った乱数 sの関数値 G ( s ) を生成し、 関数値 G ( s ) から検証 値 aと共有鍵 Kを生成する。 ここでは、 関数 Gは、 一方向性関数である 出力長が 2 kビッ トのハッシュ関数であり、 第 1関数部 1 1 3 dは、 G ( s ) の上位 kビッ トを検証値 aとし、 G ( s ) の下位 kビッ トを共有 鍵 Kとする。
次に、 第 1関数部 1 1 3 dは、 生成した検証値 aを暗号化部 1 1 4 d と第 2関数部 1 1 5 dとへ出力し、 生成した共有鍵 Kを共通鍵暗号部 1 1 8へ出力する。
(4) 暗号化部 1 1 4 d
暗号化部 1 1 4 dは、 公開鍵入力部 1 1 1 dから公開鍵多項式 hを受 け取り、 第 1関数部 1 1 3 dから検証値 aを受け取り、 次に示すように して、 受け取った公開鍵多項式 hを用いて検証値 aの第 1暗号文 c 1 を 生成する。 ここで、 生成される第 1暗号文 c 1は、 NT RU暗号による 暗号文である。
暗号化部 1 1 4 dは、 NT RU暗号のパラメ一タ dに対し、 d個の項 の各係数が 「 1」 であり、 別の d個の項の各係数が 「_ 1」 であり、 そ の他の項の各係数が 「0」 となる乱数多項式 rをランダムに生成する。 次に、 検証値 aが N T R U暗号の暗号アルゴリズム Eに適用できるよう に、 検証値 aを 2進数表現した場合の N桁のビッ ト列の各桁の値が、 検 証値多項式 a pの各項の係数に対応するように、 検証値多項式 a pを生 成する。 例えば、 検証値 aの下位 bビッ ト 目の値を、 検証値多項式 a p の項 Χ Λ ΐ3の係数とする。 こう して、 検証値 aを検証値多項式 a pに変 換する。. 具体的には、 検証値 a = 1 00 1 0 (ビッ ト表現) の場合、 検 証値多項式 a ρ =Χ Λ 5 +Χ Λ 2と変換する。 次に、 公開鍵多項式 hを 使用して、 乱数多項式 rを用いて検証値多項式 a pに前記暗号アルゴリ ズム Eを施して、 暗号文多項式である第 1暗号文 c 1 = E ( a p , r , h) を生成する。
次に、 暗号化部 1 1 4 dは、 生成した第 1暗号文 c 1 を第 2関数部 1 1 5 dと第 1送信部 1 1 7 dとへ出力する。
(5) 第 2関数部 1 1 5 d
第 2関数部 1 1 5 dは、第 1関数部 1 1 3 dから検証値 aを受け取り、 暗号化部 1 1 4 dから第 1暗号文 c 1 を受け取り、次に示すようにして、 検証値 aと第 1暗号文 c 1の関数値 H (a, c 1 ) を生成する。
ここでは、関数 Hはハッシュ関数であり、一方向性関数の一種である。 第 1暗号文 c 1は、 NT RU暗号の暗号文であり多項式で表現されて いるので、 第 2関数部 1 1 5 dは、 第 1暗号文 c 1の各項の係数が、 2 進数表現した場合の N桁の第 1暗号文ビッ ト列 c 1 ' の各桁の値に対応 するように、 第 1暗号文ビッ ト列 c 1 ' を生成する。 例えば、 第 1暗号 文 c 1の b次元の項 X Λ bの係数を、 第 1暗号文ビッ ト列 c の下位 bビッ ト 目の値とする。 こう して、 第 1暗号文 c l を第 1暗号文ビッ ト 列 c Γ に変換する。 具体的には、 第 1暗号文 c l =X ^ 5 +X 2の 場合、 第 1暗号文ビッ ト列 c 1 ' = 1 00 1 0 (ビッ ト表現) と変換す る。
次に、 第 2関数部 1 1 5 dは、 ハツシュ関数 Hに検証値 aと第 1暗号 文ビッ ト列 c 1 ' とのビッ ト結合 a I I c 1 ' を入力して、関数値 H(a , c l ) =H (a l | c l ' ) を生成する。 ここで、 「 I I 」 は、 ビッ ト 結合を示す演算子である。
次に、 第 2関数部 1 1 5 dは、 生成した関数値 H (a, c 1 ) を乱数 マスク部 1 1 6 dへ出力する。 ( 6 ) 乱数マスク部 1 1 6 d
乱数マスク部 1 1 6 dは、乱数生成部 1 1 2 dから乱数 sを受け取り、 第 2関数部 1 1 5 dから関数値 H (a, c 1 ) を受け取る。 次に、 第 2 暗号文 c 2 = s X 0 r H ( a , c 1 ) を生成し、 生成した第 2暗号 文 c 2を第 1送信部 1 1 7 dへ出力する。
なお、 乱数マスク部 1 1 6 dは、 排他的論理和 X o rに代えて、 共有 鍵暗号アルゴリズム、 加算又は乗算を用いるとしてもよい。
(7) 第 1送信部 1 1 7 d
第 1送信部 1 1 7 dは、 暗号化部 1 1 4 dから第 1暗号文 c 1 を受け 取り、 乱数マスク部 1 1 6 dから第 2暗号文 c 2を受け取り、 受け取つ た第 1暗号文 c l と第 2暗号文 c 2とを、 イ ンターネ ッ ト 1 30を介し て、 復号装置 1 20 dへ送信する。
(8) 共通鍵暗号部 1 1 8及び第 2送信部 1 1 9
共通鍵暗号部 1 1 8及び第 2送信部 1 1 9は、以下に示す点を除いて、 それぞれ、 暗号装置 1 1 0に含まれている共通鍵暗号部 1 1 8及び第 2 送信部 1 1 9と同じである。
共通鍵暗号部 1 1 8は、第 1関数部 1 1 3 dから共有鍵 Kを受け取る。 4. 3 復号装置 1 20 dの構成
復号装置 1 20 dは、 図 1 4に示すように、 秘密鍵入力部 1 2 1 d、 第 1受信部 1 22 d、 復号化部 1 23 d、 第 3関数部 1 24 d、 乱数マ スク除去部 1 25 d、 第 4関数部 1 26 d、 比較部 1 27 d、 共通鍵復 号部 1 28及び第 2受信部 1 29から構成されている。
復号装置 1 20 dは、 復号装置 1 20と同様のコンピュータシステム であり、 マイクロプロセッサが、 コンピュータプログラムに従って動作 することにより、 復号装置 1 20 dは、 その機能を達成する。
なお、 共通鍵復号部 1 28及び第 2受信部 1 2 9は、 それぞれ、 復号 装置 1 20に含まれている共通鍵復号部 1 28及び第 2受信部 1 29と 同じであるので、 こ こでは、 説明を省略する。
( 1 ) 秘密鍵入力部 1 2 1 d
秘密鍵入力部 1 2 1 dは、 メモ リ カー ド 1 70から復号装置 1 20 d の秘密鍵多項式 f を読み出し、 読み出した秘密鍵多項式 f を復号化部 1 23 dへ出力する。
(2) 第 1受信部 1 22 d .
第 1受信部 1 2 2 dは、 イ ンタ一ネッ ト 1 30を介して暗号装置 1 1 0 dから第 1暗号文 c 1 と第 2暗号文 c 2とを受け取り、 受け取った第 1暗号文 c 1 を復号化部 1 23 dと第 3関数部 1 24 dとへ出力し、 受 け取った第 2暗号文 c 2を乱数マスク除去部 1 25 dへ出力する。
なお、 乱数マスク部 1 1 6 dが、 排他的論理和に代えて、 共有鍵暗号 アルゴリズム、 加算又は乗算を用いる場合において、 乱数マスク除去部 1 25 dは、 それぞれ、 共有鍵暗号アルゴリ ズムに対応する共有鍵復号 アルゴリ ズム、 減算、 又は除算を用いるとしてもよい。
(3) 復号化部 1 23 d
復号化部 1 23 dは、 秘密鍵入力部 1 2 1 dから秘密鍵多項式 f を受 け取り、 第 1受信部 1 22 dから第 1暗号文 c 1 を受け取り、 次に示す ように して、 秘密鍵多項式 f を用いて、 第 1暗号文 C 1 を復号して復号 検証値 a' を生成する。 こ こでは、 復号検証値 a' は NT RU暗号によ る復号文である。
復号化部 1 23 dは、 秘密鍵多項式 f を使用して、 第 1暗号文 c 1 に 前記復号ァルゴリズム Dを施して、 復号検証値多項式 a p ' = D ( c 1 , f ) を生成する。 次に、 復号検証値多項式 a p' は、 NTRU暗号の復 号文であり多項式で表現されているので、 復号化部 1 23 dは、 復号検 証値多項式 a p' の各係数が、 復号検証値 a' を 2進数表現した場合の N桁のビッ ト列の各桁の数に対応するように、 復号検証値 a' を生成す る。 例えば、 復号検証値多項式 a p' の b次元の項 X bの係数を、 復 号検証値 a ' の下位 bビッ ト 目の値とする。 こう して、 復号検証値多項 式 a p' を復号検証値 a' に変換する。 具体的には、 復号検証値多項式 a p ' = X ^ 5 + X ^ 2の場合、 復号検証値 a ' = 1 00 1 0 (ビッ ト 表現) に変換する。 ·
次に、 復号化部 1 23 dは、 生成した復号検証値 a ' を第 3関数部 1 24 dと比較部 1 27 dとへ出力する。 (4) 第 3関数部 1 24 d
第 3·関数部 1 24 dは、 第 2関数部 1 1 5 dが有する関数と同じ関数 Hのアルゴリズムを有している。
第 3関数部 1 24 dは、 第 1受信部 1 22 dから第 1暗号文 c 1を受 け取り、 復号化部 1 23 dから復号検証値 a ' を受け取る。 次に、 第 2 関数部 1 1 5 dと同様にして、 検証値 a' と第 1暗号文 c 1 との関数値 H (a' , c 1 ) を生成し、 生成した関数値 H (a' , c 1 ) を乱数マ スク除去部 1 2 5 dへ出力する。
(5) 乱数マスク除去部 1 25 d
乱数マスク除去部 1 25 dは、 第 1受信部 1 22 dから第 2暗号文 c 2を受け取り、 第 3関数部 1 24 dからハッシュ関数値 H (a' , c l ) を受け取り、 次に、 復号乱数 s ' = c 2 X o r H (a' , c l ) を 生成し、 生成した復号乱数 sを第 4関数部 1 26 dへ出力する。
(6) 第 4関数部 1 2 6 d
第 4関数部 1 2 6 dは、 第 1関数部 1 1 3 dが有する関数と同じ関数
Gのアルゴリズムを有している。
第 4関数部 1 2 6 dは、 乱数マスク除去部 1 25 dから復号乱数 s ' を受け取り、 復号乱数 s ' のハッシュ関数値 G (s ' ) を生成する。 次 に、第 1関数部 1 1 3 dと同様にして、関数値 G( s' )から検証値 a' ' と共有鍵 K' とを生成し、 生成した検証値 a' ' と共有鍵 K' とを比較 部 1 27 dへ出力する。
(7) 比較部 1 27 d
比較部 1 2 7 dは、復号化部 1 23 dから復号検証値 a ' を受け取り、 第 4関数部 1 2 6 dから検証値 a ' ' と共有鍵 K' とを受け取り、次に、 復号検証値 a ' と検証値 a ' ' が等しいかどうかチェックを行い、 復号 検証値 a' と検証値 a' ' とが等しければ、 共有鍵 K' を共通鍵復号部 1 28へ出力する。
(8) 共通鍵復号部 1 28及び第 2受信部 1 29
共通鍵復号部 1 28は、 比較部 1 2 7 dから共有鍵 K' を受け取る。 その他の点については、 共通鍵復号部 1 28は、 復号装置 1 20に含 まれている共通鍵復号部 1 28と同じであるので、 ここでは、 説明を省 略する。
また、 第 2受信部 1 2 9は、 復号装置 1 20に含まれている第 2受信 部 1 29と同じであるので、 ここでは、 説明を省略する。
4. 4 コ ンテンツ配信システム 1 0 dの動作
コ ンテンッ配信システム 1 0 dの動作について、 図 1 5に示すフロー チャート及び図 1 6に示す処理系統図を用いて説明する。
公開鍵入力部 1 1 1 dは、 メモリカー ド 1 60から復号装置 1 2 0 d の公開鍵多項式 hを受け取り、 公開鍵多項式 hを暗号化部 1 1 4 dへ出 力する (ステップ S 20 1 ) 。
次に、 乱数生成部 1 1 2 dは、 乱数 sを生成して、 乱数 sを第 1関数 部 1 1 3 dと乱数マスク部 1 1 6 dとへ出力する(ステップ S 202)。 次に、 第 1関数部 1 1 3 dは、 乱数生成部 1 1 2 dから乱数 sを受け 取り、 乱数 sの関数値 G ( s ) を生成する (ステップ S 203) 。 そし て、 第 1関数部 1 1 3 dは、 関数値 G ( s ) から検証値 aと共有鍵 Kを 生成して、 検証値 aを暗号化部 1 1 4 dと第 2関数部 1 1 5 dとへ出力 し、 共有鍵 Kを共通鍵暗号部 1 1 8へ出力する (ステップ S 204) 。 次に、 暗号化部 1 1 4 dは、 公開鍵入力部 1 1 1 dから公開鍵多項式 hを受け取り、 第 1関数部 1 1 3 dから検証値 aを受け取る。 そして、 暗号化部 1 1 4 dは、 公開鍵多項式 hを用いて検証値 aの第 1暗号文 c 1 を生成し、 第 1暗号文 c 1 を第 2関数部 1 1 5 dと第 1送信部 1 1 7 dとへ出力する (ステップ S 20 5) 。
次に、 第 2関数部 1 1 5 dは、 第 1関数部 1 1 3 dから検証値 aを受 け取り、 暗号化部 1 1 4 dから第 1暗号文 c 1 を受け取り、 検証値 aと 第 1暗号文 c 1 との関数値 H (a, c 1 ) を生成し、 関数値 H (a, c 1 ) を乱数マスク部 1 1 6へ出力する (ステップ S 206) 。
次に、 乱数マスク部 1 1 6 dは、 乱数生成部 1 1 2 dから乱数 sを受 け取り、 第 2関数部 1 1 5 dから関数値 H (a, c 1 ) を受け取り、 乱 数マスク部 1 1 6 dは、 第 2暗号文 c 2 = s X o r H ( a , c 1 ) を生成し、 第 2暗号文 c 2を第 1送信部 1 1 7 dへ出力する (ステップ S 207 ) 0
次に、 第 1送信部 1 1 7 dは、 暗号化部 1 1 4 dから第 1暗号文 c 1 を受け取り、 乱数マスク部 1 1 6 dから第 2暗号文 c 2を受け取り、 第 1暗号文 c 1 と第 2暗号文 c 2とをイ ンタ一ネッ ト 1 30を介して復号 装置 1 2 0 dへ送信する (ステップ S 208) 。
次に、 共通鍵暗号部 1 1 8は、 コンテンッサーバ装置 1 40から複数 の平文 m i ( l i ≤ n) を受け取り、 第 1関数部 1 1 3 dから共有鍵 Kを受け取り、 共有鍵 Kを使用して平文 m i ( 1 ≤ i ≤ n) に共通鍵暗 号アルゴリ ズム S y mを施して、 共通鍵暗号文 C i = S y m (m i , K) ( 1 i n) を生成し、 共通鍵暗号文 C i ( 1 ≤ i ≤ n) を第 2送信 部 1 1 9へ出力する (ステップ S 209) 。
次に、 第 2送信部 1 1 9は、 共通鍵暗号部 1 1 8から共通鍵暗号文 C
1 ( 1≤ i ≤ n) を受け取り、 イ ンターネッ ト 1 3 0を介して復号装置 1 20 dへ送信し (ステップ S 2 1 0) 、 処理を終了する。
一方、 秘密鍵入力部 1 2 1 dは、 メモ リ カー ド 1 70から復号装置 1
20 dの秘密鍵多項式 f を受け取り、 秘密鍵多項式 f を復号化部 1 23 へ出力する (ステップ S 25 1 ) 。
次に、 第 1受信部 1 22 dは、 イ ンターネッ ト 1 30を介して暗号装 置 1 1 0 dから第 1暗号文 c l と第 2暗号文 c 2とを受け取り、 第 1暗 号文 c 1 を復号化部 1 23 dと第 3関数部 1 24 dとへ出力し、 第 2暗 号文 c 2を乱数マスク除去部 1 25 dへ出力する(ステップ S 208)。 次に、 復号化部 1 23 dは、 秘密鍵入力部 1 2 1から秘密鍵多項式 f を受け取り、第 1受信部 1 2 2 dから第 1暗号文 c 1 を受け取り、次に、 秘密鍵多項式 f を用いて、 第 1暗号文 c 1 を復号して復号検証値 a' を 生成し、 復号検証値 a' を第 3関数部 1 24 dと比較部 1 27 dへ出力 する (ステップ S 252) 。
次に、 第 3関数部 1 24 dは、 第 1受信部 1 22 dから第 1暗号文 c 1を受け取り、復号化部 1 23 dから復号検証値 a' を受け取り、次に、 第 2関数部 1 1 5 dと同様にして、 検証値 a' と第 1暗号文 c 1の関数 値 H (a ' , c 1 ) を生成し、 関数値 H (a' , c 1 ) を乱数マスク除 去部 1 2 5 dへ出力する (ステップ S 253) 。
次に、 乱数マスク除去部 1 25 dは、 第 1受信部 1 22 dから第 2暗 号文 c 2を受け取り、第 3関数部 1 24 dからハッシュ関数値 H( a' , c 1 ) を受け取り、 次に、 復号乱数 s ' = c 2 X o r H (a' , c 1 ) を生成し、 復号乱数 sを第 4関数部 1 26 dへ出力する (ステップ S 254 ) o
次に、 第 4関数部 1 2 6 dは、 乱数マスク除去部 1 25から復号乱数 s ' を受け取り、復号乱数 s ' のハッ シュ関数値 G ( s' ) を生成し (ス テツプ S 255) 、 第 1関数部 1 1 3 dと同様にして、 関数値 G ( s ' ) から検証値 a' ' と共有鍵 K' とを生成して、 検証値 a' ' と共有鍵 K' とを比較部 1 2 7 dへ出力する (ステップ S 25 6) 。
次に、 比較部 1 27 dは、 復号化部 1 23から復号検証値 a ' を受け 取り、第 4関数部 1 26 dから検証値 a' ' と共有鍵 K' とを受け取り、 復号検証値 a' と検証値 a' ' とが等しいかどうかチェックを行い、 等 しく なければ (ステップ S 257) 、 処理を終了する。
復号検証値 a' と検証値 a ' ' とが等しければ(ステップ S 257 )、 比較部 1 27 dは、 共有鍵 K' を共通鍵復号部 1 28へ出力する (ステ ップ S 25 8 ) 。
次に、 第 2受信部 1 2 9は、 インタ一ネッ ト 1 30を介して暗号装置 1 1 0 dから暗号文 C i ( 1 ≤ i ≤ n) を受信し、 共通鍵復号部 1 28 へ出力する (ステップ S 2 1 0) 。
次に、 共通鍵復号部 1 28は、 比較部 1 27 dから共有鍵 K' を受け 取り、 第 2受信部 1 29から共通鍵暗号文 C i ( 1≤ i ≤ n) を受け取 り、 共有鍵 K' を使用して共通鍵暗号文 C i ( 1 ≤ i ≤ n) に共通鍵暗 号アルゴリ ズム S y mを施して、 復号文 m i ' = S y m ( C i , K) ( 1 ≤ i ≤ n) を生成し、 復号文 m i ' ( 1 ≤ i ≤ n) を外部へ出力し (ス テツプ S 25 9 ) 、 処理を終了する。
4. 5 コンテンツ配信システム 1 0 dの動作検証
以下に、 コ ンテンツ配信システム 1 0 dの全体の動作について説明す る。 暗号装置 1 1 0 dは、復号装置 1 20 dの公開鍵多項式 hを入力とし、 乱数 sを生成して、関数値 G ( s )から検証値 aと共有鍵 Kを導出する。 次に、 暗号装置 1 1 0 dは、 検証値 aを公開鍵多項式 hを用いて NT R U暗号で暗号化して第 1暗号文 c 1を生成し、 検証値 aと第 1暗号文 c 1から関数値 H (a, c 1 ) を生成し、 乱数 sと関数値 Ή (a, c 1 ) から第 2暗号文 c 2 = s x o r H ( a , c 1 ) を生成する。 次に、 暗号装置 1 1 0 dは、 第 1暗号文 c 1 と第 2暗号文 c 2をイ ンタ一ネッ ト 1 30を介して復号装置 1 20 dへ送信する。
すなわち、 この暗号装置 1 1 0 dは、 以下の処理を行い、 暗号文 C = ( c 1 , c 2 ) を復号装置 1 20 dへ送信する。
• 乱数 sを生成する。
• G ( s ) を生成し、 G ( s ) から a, Kを生成する。
• 公開鍵多項式 hを用いて検証値 aの第 1暗号文 c 1を生成する。
• c 2 = s x o r H (a, c l ) を生成する。
· 共有鍵 Kと暗号文 C = (c l , c 2) を出力する。
次に、 暗号装置 1 1 0 dは、 導出した共有鍵 Kを用いて、 コ ンテンツ サーバ装置 1 40から入力された平文 m i ( 1≤ i ≤ n) を共通鍵暗号 で暗号化して暗号文 C i ( 1 ≤ i ≤ n) を生成し、 イ ンタ一ネッ ト 1 3 0を介して復号装置 1 20 dへ送信する。
一方、 復号装置 1 20 dは、 復号装置 1 20 dの秘密鍵多項式 f を入 力と し、 イ ンタ一ネッ ト 1 30を介して暗号装置 1 1 0 dから第 1暗号 文 c 1 と第 2暗号文 c 2とを受信し、 第 1暗号文 c 1 を秘密鍵多項式 f を用いて復号して復号検証値 a' を生成する。 復号検証値 a' と第 1暗 号文 c 1から関数値 H (a' , c 1 ) を生成し、 第 2暗号文 c 2と関数 値 H ( a ' , c 1 ) から復号乱数 s ' = c 2 x o r H ( a ' , c 1 ) を生成する。次に、復号装置 1 2 0 dは、復号乱数 s ' の関数値 G (s ' ) から検証値 a' ' と共有鍵 K' を導出し、 検証値 a' ' = a ' であれば 共有鍵 K' を出力する。
すなわち、 この復号装置 1 20 dは、 以下の処理を行い、 共有鍵 K' を導出する。 •秘密鍵多項式 ίを用いて第 1暗号文 c 1を復号して a' を生成する。
• s ' = c 2 X 0 r H ( a ' , c 1 ) を生成する。
• G ( s ' ) を生成し、 G (s ' ) から a' ' , Κ' を生成する。
• a' ' = a ' が成立するかどうかチェ ッ クする。 成立すれば共有鍵 K' を出力する。
こ こで、 暗号装置 1 1 0 dで用いられた公開鍵多項式 hに対応する正 しい秘密鍵多項式 f が復号装置 1 20 dで用いられれば、 第 1暗号文 c 1は正しく復号されて、 復号検証値 a' = aとなり、 第 2暗号文 c 2と H ( a ' , c 1 ) から生成される復号乱数 s ' = sとなる。 従って、 G ( s ' ) から導出される検証値 a' * = aとなり、 共有鍵 K' =Kとな る。 そして、 a' ' = a ' が成り立つので、 復号装置 1 2 0 dは暗号装 置 1 1 0 dと同じ共有鍵 Kを導出できることになる。
次に、 復号装置 1 20 dは、 導出した共有鍵 K' ( = K) を用いて、 イ ンターネッ ト 1 3 0を介して暗号装置 1 1 0 dから共通鍵暗号文 C i ( 1≤ i ≤ n) を受け取り、 受け取った共通鍵暗号文 C i ( 1≤ i ≤ n) を共通鍵暗号で復号して復号文 m i ' ( 1≤ i ≤ n) を生成して再生装 置 1 50へ出力する。
こ こで、 共通鍵暗号文生成時に用いた暗号鍵 Kと復号文生成時に用い る暗号鍵 K' は同一であるので、 復号装置 1 20 dは、 正しく m i ' = m i ( 1 ≤ i ≤ n) を得ることができる。
4. 6 実施の形態 3における効果
従来の P S E C— K E Mアルゴリズムでは、 ハッシュ関数 Hの入力に a * P, a *Wを用い、 秘密鍵を用いずに a * Pから a *Wを計算する ことが困難な D i f f i e - H e 1 1 m a n問題を用いて、 最終的に共 有鍵 Kを導出するこ とによ り、 秘密鍵を知らなければその共有鍵 Kを導 出できないようにしている。 従って、 NTRU暗号をはじめ、 D i f f i e - H e 1 1 m a n問題を利用しない他の公開鍵暗号は、 D i f f i e - H e 1 l ma n問題の a * P、 a *Wに相当するものがないため、
P S E C— KEMアルゴリズムを適用できないという問題点がある。 しかしながら、 本発明のコ ンテンツ配信システム、 暗号装置及ぴ復号 装置は、 ハツシュ関数 Hの入力を検証値 aとその暗号文 c 1 としている ので、 P S E C— K E Mアルゴリズムを適用して、 N T R U暗号や他の 公開鍵暗号を利用できる。
なお、 N T R U暗号では、 公開鍵を用いて平文を暗号化して暗号文を 生成し、 正規の秘密鍵を用いて暗号文を復号して復号文を生成しても、 復号文が元の平文と異なる場合が発生する(例えば、非特許文献 2参照。)。 このような復号エラーが発生すると、 復号装置は誤つた復号検証値 a ' を得ることになるが、 G ( s ' ) から得られる検証値 a ' ' は a ' と等 しくならないために、 共有鍵 K ' を出力しない。 従って、 復号エラ一が 発生しても、 暗号装置と復号装置との間で誤った鍵を共有することを防 止できるという効果がある。
また、復号装置において、再度暗号文を生成する処理を行わないので、 従来技術と比較すると、 演算量を削減することができる。
これにより、 N T R U暗号を用いて鍵カプセル化メ力二ズムを構成す ることができ、 暗号装置と復号装置との間で N T R U暗号を用いて鍵配 送が行えるようになる。
また、 本発明による方式は、 非特許文献 3に記述されている証明方法 と同様の方法により、 理論的にその安全性が証明できる。
4 . 7 変形例
上記に説明した実施の形態は、 本発明の実施の一例であり、 本発明は この実施の形態に何ら限定されるものではなく、 その旨を逸脱しない範 囲において種々なる態様で実施し得るものである。 以下のような場合も 本発明に含まれる。
( 1 ) 用いる N T R U暗号のパラメータ N = 1 6 7に限定されない。 パラメ一夕 Nは、 他の値をとるとしてもよい。
( 2 ) 暗号化部 1 1 4 d、 第 2関数部 1 1 5 d、 復号化部 1 2 3 d及 ぴ第 3関数部 1 2 4 dで行われるビッ ト列と多項式との変換方法は、 こ の方法に限られず他の変換方法でもよい。
例えば、 ビッ ト列と多項式を 1対 1 に対応させる関数、 又は関数値の テーブルを用いて変換してもよい。 また、 例えば、 実施の形態 2の変形例 ( 1 ) に述べた変換方法を用い て変換してもよい。
(3) 暗号化部 1 1 4 d及び復号化部 1 2 3 dで用いる公開鍵暗号方 式は、 暗号化部 1 1 4 dにおいて、 検証値 aを公開鍵で暗号化して第 1 暗号文 c 1 を生成し、 復号化部 1 23 dにおいて、 第 1暗号文 c 1 を秘 密鍵で復号して、検証値 aと等しい復号検証値 a ' を生成できればよい。 従って、暗号化部 1 1 4 d、復号化部 1 23 dで用いる公開鍵暗号は、 N T R U暗号以外に、 どんな公開鍵暗号でも利用できる。
例えば、 R S A暗号を採用するならば、 h、 f をそれぞれ R S A暗号 の公開鍵、 秘密鍵と し、 暗号化部 1 1 4 dにおいて、 aを hを用いて暗 号化して c 1 を生成し、 復号化部 1 2 3 dにおいて、 c 1 を f を用いて 復号して a ' を生成すればよい。
また、 例えば、 E 1 G a m a 1暗号採用するならば、 h, f をそれぞ れ E 1 G a m a 1 暗号の公開鍵, 秘密鍵とし、 暗号化部 1 1 4 dにおい て、 乱数 rを生成して aを hと rを用いて暗号化して c 1 を生成し、 復 号化部 1 2 3 dにおいて、 c 1 を f を用いて復号して a ' を生成すれば よい。
なお、 R S A暗号や E 1 G a m a 1 暗号について非特許文献 1 に詳細 に記載されているため、 ここでは説明を省略する。
(4) 第 1関数部 1 1 3 dは、 関数値 G ( s ) の上位 kビッ トを検証 値 aをして下位 kビッ トを共有鍵 Kとする以外に、 関数値 G ( s ) から 検証値 a と共有鍵 Kを導出すれば他の方法でもよい。
(5) 第 2関数部 1 1 5 dは、 検証値 aと第 1 暗号文 c 1 から関数値 H (a, c 1 ) を導出すれば他の方法でもよい。
例えば、 任意の 2項演算 #に対し、 a # c 1 を関数 Hに入力して関数 値を導出してもよい。 なお、 NTRU暗号では第 1暗号文 c 1 は多項式 であるので、 第 1暗号文 c 1 から第 1暗号文ビッ ト列 c 1 ' に変換し、 a # c l ' を関数 Hに入力して関数値を導出してもよい。
(6) さらに、 第 2関数部 1 1 5 dは、 検証値 aを用いて関数値を導 出すれば、 他の方法でもよい。 例えば、 第 2関数部 1 1 5 dは、 H (a) を出力してもよいし、 検証 値 aをそのまま出力してもよい。すなわち、暗号装置 1 1 0 dにおいて、 第 2暗号文 c 2を
• c 2 = s x o r H (a) 、 又は
■ c 2 = s X o r aとして導出してもよい。
これらの場合において、 復号装置 1 20 dの第 3関数部 1 24 dは、 それぞれ、
• H ( a ' ) 又は
• a
を出力する。
(7) 乱数マスク部 1 1 6 dは、 乱数 sと関数値 H (a , c 1 ) とか ら第 2暗号文 c 2を導出し、 乱数マスク除去部 1 25 dは、 第 2暗号文 c 2と関数値 H ( a , c 1 ) とから乱数 sが導出できれば、 他の方法で もよい。
例えば、 乱数マスク部 1 1 6 dは、 第 2暗号文 c 2を
- c 2 = s + H ( a , c l ) 、 又は
- c 2 = s ■ H ( a , c l )
として導出してもよい。
5. 実施の形態 4
本発明に係るさらに別の実施の形態としてのコンテンッ配信システム
1 0 e (図示していない) について説明する。
コンテンツ配信システム 1 0 eは、 実施の形態 3に示すコ ンテンッ配 信システム 1 0 dを基本として、 これを変形したシステムであり、 暗号 装置が、 関数値 G ( s) から検証値 aと共有鍵 Kの他に乱数値 uを生成 し、 乱数値 uを用いて検証値 aを暗号化して第 1暗号文 c 1を生成する 点と、 復号装置が、 共有鍵 Kを出力するときの判断の方法とにおいて、 コンテンツ配信システム 1 O dと異なる。
こ こでは、 コ ンテンツ配信システム 1 0 eについて、 コ ンテンツ配信 システム 1 0 dとの差異点を中心に詳しく説明する。
5. 1 コ ンテンツ配信システム 1 0 eの構成 コ ンテンツ配信システム 1 0 eは、 コ ンテンツ配信システム 1 0 dと 同様の構成を有しており、 暗号装置 1 1 0 d及び復号装置 1 2 0 dに代 えて、 暗号装置 1 1 0 e及ぴ復号装置 1 2 0 eを含んでいる。 その他の 構成については、 コンテンッ配信システム 1 0 dにおけるものと同様で あるので説明を省略する。
コ ンテンツ配信システム 1 0 eは、 N T R U暗号を用いて鍵配送を行 うシステムである。 暗号装置 1 1 0 e と復号装置 1 2 0 eとは、 イ ンタ 一ネッ ト 1 3 0を介して接続されている。
5 . 2 暗号装置 1 1 0 eの構成
暗号装置 1 1 0 eは、 図 1 7に示すように、 公開鍵入力部 1 1 1 d、 乱数生成部 1 1 2 d、 第 1関数部 1 1 3 e、 暗号化部 1 1 4 e、 第 2関 数部 1 1 5 d、 乱数マスク部 1 1 6 d、 第 1送信部 1 1 7 d、 共通鍵暗 号部 1 1 8及び第 2送信部 1 1 9から構成されている。
公開鍵入力部 1 1 1 d、 乱数生成部 1 1 2 d、 第 2関数部 1 1 5 d、 乱数マスク部 1 1 6 d、 第 1送信部 1 1 7 d、 共通鍵暗号部 1 1 8及び 第 2送信部 1 1 9は、 暗号装置 1 1 0 dを構成する構成要素と同一であ るので、 説明を省略し、 ここでは、 暗号装置 1 1 0 dを構成する構成要 素と異なる第 1 関数部 1 1 3 e及び暗号化部 1 1 4 eについてその構成 と動作を説明する。
( 1 ) 第 1 関数部 1 1 3 e
第 1関数部 1 1 3 eは、 乱数生成部 1 1 2 dから乱数 sを受け取り、 受け取った乱数 sの関数値 G ( s ) を生成する。 次に、 以下に示すよう にして、 生成した関数値 G ( s ) から検証値 aと共有鍵 Kと乱数値 uと を生成する。
こ こで、 関数 Gは、 出力長が 3 kビッ トのハッシュ関数であり、 第 1 関数部 1 1 3 eは、 G ( s ) の上位 kビッ トを検証値 aとし、 G ( s ) の中間の kビッ トを共有鍵 Kとし、 G ( s ) の下位 kビッ トを乱数値 u とする。
次に、 第 1関数部 1 1 3 eは、 生成した検証値 aを暗号化部 1 1 4 e と第 2関数部 1 1 5 dとへ出力し、 生成した共有鍵 Kを共通鍵暗号部 1 1 8へ出力し、 生成した乱数値 uを暗号化部 1 1 4 eへ出力する。
(2) 暗号化部 1 1 4 e
暗号化部 1 1 4 eは、 公開鍵入力部 1 1 1 dから公開鍵多項式 hを受 け取り、 第 1関数部 1 1 3 eから検証値 aと乱数値 uとを受け取る。 次 に、 以下に示すようにして、 公開鍵多項式 hと乱数値 uとを用いて検証 値 aの第 1暗号文 c 1を生成する。 ここで、 第 1暗号文 c 1は、 NTR U暗号による暗号文である。 また、 乱数値 uは、 ブライン ド値であり、 暗号化の対象である検証値 aを不明瞭にするために用いられる。
暗号化部 1 1 4 eは、 NT RU暗号のパラメ一タ dに対し、 d個の項 の各係数が 「 1」 であり、 他の d個の項の各係数が 「一 1」 であり、 残 りの項の各係数が 「 0」 となる乱数多項式 rを乱数値 uから一意に求ま るように生成する。
具体的には、 例えば、 暗号化部 1 1 4 eは、 乱数値 uを擬似乱数系列 の初期値 (乱数シー ド) として設定し、 {0, 1 , . . . , N- 1 } か ら重複しない 2 d個の擬似乱数を生成し、 最初の d個の擬似乱数により 示される次元の項の係数を 「 1」 とし、 次の d個の擬似乱数により示さ れる次元の項の係数を 「― 1」 とし、 残りの次元の項の係数を 「0」 と するこ とによ り、 乱数多項式 rを生成する。
次に、 暗号化部 1 1 4 eは、 生成した乱数多項式 rを用いて、 暗号化 部 1 1 4 dと同様にして、 第 1暗号文 c l = E ( a p , r , h) を生成 する。
次に、 暗号化部 1 1 4 eは、 生成した第 1暗号文 c 1を第 2関数部 1 1 5 dと第 1送信部 1 1 7 dとへ出力する。
5. 3 復号装置 1 20 eの構成
復号装置 1 20 eは、 図 1 8に示すように、 秘密鍵入力部 1 2 1 e、 復号化部 1 23 e、 第 3関数部 1 24 d、 乱数マスク除去部 1 2 5 d、 第 4関数部 1 2 6 e、 比較部 1 27 e、 共通鍵復号部 1 28及び第 2受 信部 1 2 9から構成されている。
こ こで、 第 3関数部 1 24 d、 乱数マスク除去部 1 25 d、 共通鍵復 号部 1 28及び第 2受信部 1 29については、 復号装置 1 20 dに含ま れている各構成要素と同一であるので、 説明を省略し、 復号装置 1 20 dに含まれている各構成要素と異なる秘密鍵入力部 1 2 1 e、 復号化部
1 23 e、 第 4関数部 1 26 e及び第 2比較部 1 27 eについてその構 成と動作を説明する。
( 1 ) 秘密鍵入力部 1 2 1 e
秘密鍵入力部 1 2 1 eは、 メモリカー ド 1 70から復号装置 1 20 e の秘密鍵多項式 f と公開鍵多項式 hとを受け取り、 秘密鍵多項式 f を復 号化部 1 23 eへ出力し、公開鍵多項式 hを比較部 1 27 eへ出力する。
(2) 復号化部 1 23 e
復号化部 1 23 eは、 秘密鍵入力部 1 2 1 eから秘密鍵多項式 f を受 け取り、 第 1受信部 1 22 dから第 1暗号文 c 1を受け取る。 次に、 秘 密鍵多項式 f を用いて、 第 1暗号文 c 1 を復号して復号検証値 a' を生 成し、 生成した復号検証値 a ' を第 3関数部 1 24 dへ出力し、 受け取 つた第 1暗号文 c 1を比較部 1 27 eへ出力する。
(3) 第 4関数部 1 2 6 e
第 4関数部 1 2 6 eは、 第 1関数部 1 1 3 eが有する関数と同じ関数
Gによるアルゴリズムを有している。
第 4関数部 1 2 6 eは、 乱数マスク除去部 1 2 5 dから復号乱数 s ' を受け取り、 受け取った復号乱数 s' のハッシュ関数値 G ( s ' ) を生 成する。 次に、 第 1関数部 1 1 3 eと同様にして、 関数値 G ( s ' ) か ら検証値 a ' ' と共有鍵 K' と乱数値 u' とを生成し、 検証値 a' ' と 共有鍵 K' と乱数値 u' とを比較部 1 27 eへ出力する。
(4) 比較部 1 27 e
比較部 1 27 eは、 図 1 8に示すように、 比較演算部 1 27 p及び暗 号化部 1 27 qから構成されている。
暗号化部 1 27 qは、 秘密鍵入力部 1 2 1 eから公開鍵多項式 hを受 け取り、 第 4関数部 1 2 6 eから検証値 a' ' と乱数値 u' とを受け取 る。 次に、 受け取った公開鍵多項式 hと乱数値 u' とを用いて、 暗号化 部 1 1 4 dと同様にして、 受け取った検証値 a ' ' を暗号化して第 1再 暗号文 c l ' を生成し、 生成した第 1再暗号文 c 1 ' を比較演算部 1 2 7 pへ出力する。
比較演算部 1 27 pは、 復号化部 1 23 bから第 1暗号文 c 1 を受け 取り、 暗号化部 1 2 7 qから第 1再暗号文 c 1 ' を受け取る。 次に、 受 け取った第 1暗号文 c 1 と第 1再暗号文 c 1 ' とを比較して、 c l ' = c 1であるか否かを判断する。 c l ' = c 1であれば、 受け取った共有 鍵 ' を共通鍵復号部 1 28へ出力し、 c l ' = c lでなければ、 受け 取った共有鍵 K' を出力しない。
5. 4 コンテンツ配信システム 1 0 eの動作検証
以下に、 コンテンツ配信システム 1 0 eの全体の動作について、 図 1 9に示す処理系統図を用いて説明する。
暗号装置 1 1 0 eは、 復号装置 1 20 eの公開鍵多項式 hを受け取り (ステップ S 20 1 ) 、 乱数 sを生成し (ステップ S 202) 、 関数値 G (s ) を生成し (ステップ S 203) 、 関数値 G ( s ) から検証値 a、 共有鍵 K及び乱数値 uを導出する (ステップ S 2 04 e) 。 次に、 暗号 装置 1 1 0 eは、 検証値 aを、 公開鍵多項式 h及び乱数値 uを用いて N TRU暗号で暗号化して第 1暗号文 c 1 を生成し(ステップ S 20 5)、 検証値 aと第 1暗号文 c 1から関数値 H (a, c l ) を生成し (ステツ プ S 20 6 ) 、 乱数 sと関数値 H (a, c 1 ) から第 2暗号文 c 2 = s x o r H ( a, c 1 ) を生成する (ステップ S 207 ) 。 次に、 暗号 装置 1 1 0 bは、 第 1暗号文 c 1 と第 2暗号文 c 2とをイ ンターネッ ト 1 30を介して復号装置 1 2 0 eへ送信する (ステップ S 2 08) 。 すなわち、 この暗号装置 1 1 0 eは、 以下の処理 (a) 〜 (d) を行 い、 暗号文 C = ( c l, c 2) を復号装置 1 20 eへ送信する。
(a) 乱数 sを生成する。
( b ) G ( s ) を生成し、 G ( s ) から a, K, uを生成する。
( c ) 公開鍵多項式 h, 乱数値 uを用いて検証値 aの第 1暗号文 c 1 を生成する。
( d ) c 2 = s X 0 r H (a, c l ) を生成する。
次に、 暗号装置 1 1 0 eは、 導出した共有鍵 Kを用いて、 コ ンテンツ サーバ装置 1 40から入力された平文 m i ( 1≤ i≤ n) を共通鍵暗号 で暗号化して暗号文 C i ( 1 ≤ i ≤ n) を生成し (ステップ S 2 09) 、 インターネッ ト 1 30を介して復号装置 1 2 0 eへ送信する (ステップ S 2 1 0 )
一方、 復号装置 1 20 eは、 復号装置 1 20 eの秘密鍵多項式 f 及び 公開鍵多項式 hを受け取り (ステップ S 25 1、 ステップ S 25 1 e)、 イ ンタ一ネッ ト 1 30を介して暗号装置 1 1 0 eから第 1暗号文 c 1 と 第 2暗号文 c 2を受信し (ステップ S 208) 、 第 1暗号文 c l を秘密 鍵多項式 f を用いて復号して復号検証値 a ' を生成する (ステップ S 2 52) 。 次に、 復号検証値 a' と第 1暗号文 c 1から関数値 H (a' , c 1 )を生成し(ステップ S 253)、第 2暗号文 c 2と関数値 H (a' , c l ) から復号乱数 s ' = c 2 X o r H ( a ' , c l ) を生成する (ステップ S 254) 。 次に、 復号装置 1 20 eは、 復号乱数 s ' の関 数値 G (s ' ) を生成し (ス.テツプ S 255)、 生成した関数値 G (s ' ) から検証値 a' ' 、 共有鍵 K' 及び乱数値 u' を導出する (ステップ S 25 6 e ) 。 次に、 検証値 a ' ' を暗号化して第 1再暗号文 c 1 ' を生 成し (ステッ プ S 26 1 ) 、 c 1 ' = c lであれば (ステップ S 257 e ) 、 共有鍵 K' を出力する (ステップ S 25 8) 。
すなわち、 復号装置 1 20 eは、 以下の処理 ( a ) 〜 ( e ) を行い、 共有鍵 K' を導出する。
(a ) 秘密鍵多項式 f を用いて第 1暗号文 c 1 を復号して a ' を生成 する。
(b) s ' = c 2 X o r H ( a ' , c l ) を生成する。
( c ) G ( s ' ) を生成し、 G ( s ' ) から a' ' , Κ' , u ' を生 成する。
(d) 公開鍵多項式 h及び乱数値 u' を用いて a' ' の第 1再暗号文 c 1 ' を生成する。
( e ) c l ' = c 1が成立するかどうかチヱックする。 成立すれば共 有鍵 K' を出力する。
こ こで、 暗号装置 1 1 0 eで用いられた公開鍵多項式 hに対応する正 しい秘密鍵多項式 f が復号装置 1 20 eで用いられれば、 第 1暗号文 c 1は正しく復号されて、 復号検証値 a' = aとなり、 第 2暗号文 c 2と H ( a ' , c 1 ) から生成される復号乱数 s ' = sとなる。 従って、 G (s ' ) から導出される検証値 a' ' = aとなり、 共有鍵 K' =Kとな り、 乱数値 u' = uとなる。 そして、 a' ' = a及び u' = uが成り立 つので、 c l ' = c lが成り立ち、 復'号装置 1 2 0 eは暗号装置 1 1 0 eと同じ共有鍵 Kを導出できることになる。
次に、 復号装置 1 2◦ eは、 導出した共有鍵 K' ( = K) を用いて、 イ ンターネッ ト 1 3 0を介して暗号装置 1 1 O eから共通鍵暗号文 C i ( 1≤ i ≤ n) を受信し (ステップ S 2 1 0) 、 受信した共通鍵暗号文 C i ( 1≤ i ≤ n) を共通鍵暗号で復号して復号文 m ( 1≤ i ≤ n) を生成し (ステップ S 25 9) 、 生成した復号文 m i ' ( 1 ≤ i ≤ n) を再生装置 1 50へ出力する。
ここで、 共通鍵暗号文生成時に用いた暗号鍵 Kと復号文生成時に用い る暗号鍵 K' とは同一であるので、 復号装置 1 20 eは、 正しく m i ' =m i ( 1≤ i ≤ n) を得ることができる。
5. 5 コ ンテンツ配信システム 1 0 eにおける効果
従来の P S E C— K EMアルゴリズムでは、 ハッシュ関数 Hの入力に a * P、 a *Wを用い、 秘密鍵を用いずに a * Pから a *Wを計算する ことが困難な D i f f i e -H e l l ma n問題を用いて、 最終的に共 有鍵 Kを導出することにより、 秘密鍵を知らなければその共有鍵 Kを導 出できないようにしている。 従って、 NTRU暗号をはじめ、 D i f f i e - H e 1 1 m a n問題を利用しない他の公開鍵暗号では、 D i f f i e— H e 1 l ma n問題の a * P、 a *Wに相当するものがないため、 P S E C— K E Mアルゴリ ズムを適用できないという問題点がある。 しかしながら、 本発明のコ ンテンツ配信システム、 暗号装置及び復号 装置では、 ハツシュ関数 Hの入力を検証値 aとその暗号文 c 1 としたの で、 実施の形態 3と同様に、 NTRU暗号や他の公開鍵暗号を適用でき る。
なお、 復号エラーが発生すると、 復号装置は誤った復号検証値 a' を 得ることになるが、 c l ' は c 1 と等しくならないために、 共有鍵 K' を出力しない。 従って、 復号エラーが発生しても、 暗号装置と復号装置 との間で誤った鍵を共有することを防止できるという効果もある。
これにより、 N T R U暗号を用いて鍵カプセル化メ力二ズムを構成す ることができ、 暗号装置と復号装置との間で N T R U暗号を用いて鍵配 送が行えるようになる。
また、 本発明による方式は、 非特許文献 3に記述されている証明方法 と同様の方法により、 理論的にその安全性が証明できる。
5 . 6 変形例
上記に説明した実施の形態は、 本発明の実施の一例であり、 本発明は この実施の形態に何ら限定されるものではなく、 その主旨を逸脱しない 範囲において種々なる態様で実施し得るものである。 実施の形態 3にお けるのと同様の変形を施すことができるのはもちろんであるが、 以下の ような場合も本発明に含まれる。
( 1 ) 暗号化部 1 1 4 eで行われる乱数値 uから乱数多項式 rへの変 換方法は、 この方法に限られず uから rがー意に求まれば他の変換方法 でもよい。 例えば、 乱数値 Uを多項式に対応させる関数、 又は関数値テ
—ブルを用いて変換してもよい。
また、 例えば、 実施の形態 2の変形例 ( 1 ) に述べた変換方法を用い て変換してもよい。
( 2 )暗号化部 1 1 4 e及ぴ復号化部 1 2 3 eで用いる公開鍵暗号は、 暗号化部 1 1 4 eにおいて、 検証値 aを公開鍵と乱数値 uとを用いて暗 号化して第 1暗号文 c 1 を生成し、 復号化部 1 2 3 eにおいて、 第 1暗 号文 c 1 を秘密鍵で復号して、 検証値 a と等しい復号検証値 a ' を生成 できればよい。 従って、 暗号化部 1 1 4 e及ぴ復号化部 1 2 3 eで用い る公開鍵暗号は、 N T R U暗号以外に、 乱数を用いる公開鍵暗号ならば どんな暗号でも利用できる。
例えば、 E 1 G a m a 1暗号ならば、 h、 f をそれぞれ E 1 G a m a 1暗号の公開鍵、 秘密鍵とし、 暗号化部 1 1 4 eにおいて、 aを hと乱 数値 uとを用いて暗号化して c 1 を生成し、復号化部 1 2 3 eにおいて、 c 1 を f を用いて復号して a ' を生成すればよい。 (3) 乱数値 uは、 第 1関数部 1 1 3 e及び第 4関数部 1 26 eで生 成される以外にも、 暗号装置 1 1 0 eと復号装置 1 20 eとで同じ値を 得られれば、 他の生成方法でもよい。
例えば、 任意の関数 F u n cに対し、 u = F u n c ( s ) として暗号 装置 1 1 0 eと復号装置 1 20 eとで同じ値を得られるようにしてもよ い。 すなわち、
• G ( s ) を生成し、 G ( s ) から a、 Kを生成する。
• F u n c ( s ) を生成し、 u = F u n c ( s ) とする。
としてもよい。
(4) さらに、 乱数値 uは、 第 1関数部 1 1 3 e及び第 4関数部 1 2 6 eで生成される以外にも、 暗号装置 1 1 0 eと復号装置 1 20 eとで 同じ値を得られればよいため、 暗号装置 1 1 0 eが乱数値 uを復号装置 1 20 eに直接送信してもよい。
すなわち、 以下のように、 暗号文 Cと乱数値 uとを復号装置 1 20 e に送信してもよい。
• G ( s ) を生成し、 G ( s ) から a、 Kを生成する。
- 暗号装置 1 1 0 eは、 別途、 乱数値 uを、 復号装置 1 20 eへ送信 する。
また、 暗号装置 1 1 0 eは、 乱数値 uを暗号化して送信してもよい。 (5) さらに、 乱数値 uは、 暗号装置 1 1 0 eと復号装置 1 20 eと で同じ値を得られればよいため、 乱数値 uの一部から構成される部分情 報を第 1関数部 1 1 3 e及び第 4関数部 1 2 6 eで生成し、 乱数値 uの 残りの部分情報を暗号装置 1 1 0 eから復号装置 1 20 eに直接送信し てもよい。
例えば、 以下のように、 暗号文 Cと乱数値 u 2とを復号装置 1 20 e に送信してもよい。
• G ( s ) を生成し、 G ( s ) から a、 Κ、 υ 1 を生成する。
• 暗号装置 1 1 0 eは、 別途、 乱数値 u 2を、 復号装置 1 20 eへ送 信する。
· 乱数値 uを、 u = u l x o r u 2により生成する。 また、暗号装置 1 1 0 eは、乱数値 u 2を暗号化して送信してもよい。 (6) 復号装置 1 2 0 eは、 第 1暗号文 c 1が第 4関数部 1 2 6 eで 得られる検証値 a ' ' の暗号文かどうかチヱックを行い、 c lが a' ' の暗号文であるときに共有鍵 K' を用いて共通鍵暗号文 C i を復号して いるが、 実施の形態 3の復号装置 1 2 0 dと同じチェック方法により行 うとしてもよい。
すなわち、 図 2 0の処理系統図に示すように、 復号装置 1 20 dと同 じ復号化部 1 2 3 d及び比較部 1 2 7 dを用いて、 以下のように、 チェ ック してもよい。
( a ) 秘密鍵多項式 : f を用いて第 1暗号文 c 1 を復号して a ' を生成 する (ステップ S 2 5 2) 。
(b ) s ' = c 2 X o r H ( a ' , c 1 ) を生成する (ステッ プ S 2 5 4 ) o
( c) G ( s ' ) を生成し (ステップ S 2 5 5 )、 G ( s ' )から a' , 、 Κ' 、 u ' を生成する (ステップ S 2 5 6 e ) 。
(d) a ' ' = a ' が成立するかどうかチェックする (ステッ プ S 2 5 7) 。 成立すれば共有鍵 K' を出力する (ステップ S 2 5 8) 。
また、 このチ Xックは、 第 1暗号文 c 1が復号検証値 a ' の暗号文か どうかのチェ ッ クでもよい。
7. 実施の形態 3及び実施の形態 4のまとめ
以上説明したように、 本発明は、 共有鍵データと、 予め与えられた公 開鍵データに基づいて前記共有鍵データを暗号化した暗号化共有鍵デー 夕を出力する共有鍵生成装置であって、 秘密数データを生成する秘密数 データ生成部と、 前記秘密数データを所定の処理に基づいて検証値デー 夕と前記共有鍵データに変換する共有鍵導出部と、 前記検証値データを 前記公開鍵データに基づいて暗号化して第 1 の暗号予備データを生成す る第 1 の暗号化部と、 前記検証値データを所定の処理に基づいて変換検 証値データに変換する検証値変換部と、 前記秘密数データを前記変換検 証値データに基づいて暗号化して第 2の暗号予備データを生成する第 2 の暗号化部とを備え、 前記暗号化共有鍵データは、 前記第 1 の暗号予備 データと前記第 2の暗号予備データから構成される。
また、 本発明は、 共有鍵データと、 予め与えられた公開鍵データに基 づいて前記共有鍵データを暗号化した暗号化共有鍵データを出力する共 有鍵生成装置であって、秘密数データを生成する秘密数データ生成部と、 前記秘密数データと前記第 1 の暗号予備データを所定の処理に基づいて 検証値データと前記共有鍵データに変換する共有鍵導出部と、 前記検証 値データを前記公開鍵データに基づいて暗号化して第 1 の暗号予備デ一 タを生成する第 1 の暗号化部と、 前記検証値データを所定の処理に基づ いて変換検証値データに変換する検証値変換部と、 前記秘密数データを 前記変換検証値データに基づいて暗号化して第 2の暗号予備データを生 成する第 2の暗号化部とを備え、 前記暗号化共有鍵データは、 前記第 1 の暗号予備データと前記第 2の暗号予備データから構成される。
また、 本発明は、 共有鍵データと、 予め与えられた公開鍵データに基 づいて前記共有鍵データを暗号化した暗号化共有鍵データを出力する共 有鍵生成装置であって、秘密数データを生成する秘密数データ生成部と、 前記秘密数データを所定の処理に基づいて検証値データと乱数データと 前記共有鍵データとに変換する共有鍵導出部と、 前記検証値データを前 記公開鍵データと前記乱数データに基づいて暗号化して第 1 の暗号予備 データを生成する第 1 の暗号化部と、 前記検証値データを所定の処理に 基づいて変換検証値データに変換する検証値変換部と、 前記秘密数デー タを前記変換検証値データに基づいて暗号化して第 2の暗号予備データ を生成する第 2の暗号化部とを備え、 前記暗号化共有鍵データは、 前記 第 1 の暗号予備データと前記第 2の暗号予備データから構成される。 また、 本発明は、 共有鍵データと、 予め与えられた公開鍵データに基 づいて前記共有鍵データを暗号化した暗号化共有鍵データを出力する共 有鍵生成装置であって、秘密数データを生成する秘密数データ生成部と、 前記秘密数データを所定の処理に基づいて検証値データと乱数データと 前記共有鍵データとに変換する共有鍵導出部と、 前記検証値データを前 記公開鍵データと前記乱数データに基づいて暗号化して第 1 の暗号予備 データを生成する第 1の暗号化部と、 前記検証値データと前記第 1 の暗 号予備データを所定の処理に基づいて変換検証値データに変換する検証 値変換部と、 前記秘密数データを前記変換検証値データに基づいて暗号 化して第 2の暗号予備データを生成する第 2の暗号化部とを備え、 前記 暗号化共有鍵データは、 前記第 1 の暗号予備データと前記第 2の暗号予 備データから構成される。
ここで、 前記秘密数データは、 ランダムに生成される乱数であるとし てもよい。
ここで、 前記共有鍵導出部は、 所定の処理として、 一方向性ハッシュ 関数を用いるとしてもよい。
ここで、 前記第 1 の暗号化部は、 N T R U暗号方式により暗号化して 前記第 1 の暗号予備データを生成するとしてもよい。
ここで、 前記検証値変換部は、 所定の処理として、 一方向性ハッシュ 関数を用いるとしてもよい。
ここで、 前記検証値変換部は、 所定の処理と して、 前記検証値データ をそのまま前記変換検証値データとするとしてもよい。
ここで、 前記第 2の暗号化部は、 前記秘密数データと前記変換検証値 データの排他的論理和演算を行って前記第 2の暗号予備データを生成す ると してもよい。
ここで、 前記第 2の暗号化部は、 前記秘密数データを、 前記変換検証 値データを暗号鍵として用いて共通鍵暗号方式により暗号化して前記第 2の暗号予備データを生成すると してもよい。
ここで、 前記第 2の暗号化部は、 前記秘密数データに前記変換検証値 データを加算して前記第 2の暗号予備データを生成するとしてもよい。
ここで、 前記第 2の暗号化部は、 前記秘密数データに前記変換検証値 データを乗算して前記第 2の暗号予備データを生成するとしてもよい。
ここで、 前記暗号化共有鍵データは、 前記第 1 の暗号予備データと前 記第 2暗号予備データのビッ ト連結データであるとしてもよい。
また、 本発明は、 予め与えられた秘密鍵データに基づいて、 第 1 の暗 号予備データと第 2の暗号予備データから構成される暗号化共有鍵デ一 タを復号して共有鍵データを出力すると有鍵復元装置であって、 前記第 1 の暗号予備データを前記秘密鍵データに基づいて復号化して検証値デ 一夕を生成する第 1 の復号化部と、 前記検証値データを所定の処理に基 づいて変換検証値データに変換する検証値変換部と、 前記第 2の暗号予 備データを前記変換検証値データに基づいて復号化して秘密数データを 生成する第 2の復号化部と、 前記秘密数データを所定の処理に基づいて 検証値検証データと前記共有鍵データに変換する共有鍵導出部とを備え、 前記検証値データと前記検証値検証データが一致する場合に、 前記共有 鍵データを出力する。
また、 本発明は、 予め与えられた秘密鍵データに基づいて、 第 1 の暗 号予備データと第 2の暗号予備データから構成される暗号化共有鍵デー 夕を復号して共有鍵データを出力する共有鍵復元装置であって、 前記第
1 の暗号予備データを前記秘密鍵データに基づいて復号化して検証値デ —タを生成する第 1 の復号化部と、 前記検証値データと前記第 1 の暗号 予備データを所定の処理に基づいて変換検証値データに変換する検証値 変換部と、 前記第 2の暗号予備データを前記変換検証値データに基づい て復号化して秘密数データを生成する第 2の復号化部と、 前記秘密数デ —夕を所定の処理に基づいて検証値検証データと前記共有鍵データに変 換する共有鍵導出部とを備え、 前記検証値データと前記検証値検証デー タが一致する場合に、 前記共有鍵データを出力する。
また、 本発明は、 予め与えられた秘密鍵データに基づいて、 第 1 の暗 号予備データと第 2の暗号予備データから構成される暗号化共有鍵デ一 夕を復号して共有鍵データを出力する共有鍵復元装置であって、 前記第 1 の暗号予備データを前記秘密鍵データに基づいて復号化して検証値デ 一夕を生成する第 1 の復号化部と、 前記検証値データを所定の処理に基 づいて変換検証値データに変換する検証値変換部と、 前記第 2の暗号予 備データを前記変換検証値データに基づいて復号化して秘密数データを 生成する第 2の復号化部と、 前記秘密数データを所定の処理に基づいて 検証値検証データと乱数データと前記共有鍵データに変換する共有鍵導 出部とを備え、 前記検証値データと前記検証値検証データが一致する場 合に、 前記共有鍵データを出力する。 また、 本発明は、 予め与えられた秘密鍵データに基づいて、 第 1 の暗 号予備データと第 2の暗号予備データから構成される暗号化共有鍵デ一 夕を復号して共有鍵データを出力する共有鍵復元装置であって、 前記第 1 の暗号予備データを前記秘密鍵データに基づいて復号化して検証値デ —夕を生成する第 1 の復号化部と、 前記検証値データと前記第 1 の暗号 予備データを所定の処理に基づいて変換検証値データに変換する検証値 変換部と、 前記第 2の暗号予備データを前記変換検証値データに基づい て復号化して秘密数データを生成する第 2の復号化部と、 前記秘密数デ 一夕を所定の処理に基づいて検証値検証データと乱数データと前記共有 鍵データに変換する共有鍵導出部とを備え、 前記検証値データと前記検 証値検証データが一致する場合に、 前記共有鍵データを出力する。
また、 本発明は、 予め与えられた秘密鍵データ及び公開鍵データに基 づいて、 第 1 の暗号予備データと第 2の暗号予備データから構成される 暗号化共有鍵データを復号して共有鍵データを出力する共有鍵復元装置 であって、 前記第 1 の暗号予備データを前記秘密鍵データに基づいて復 号化して検証値データを生成する第 1 の復号化部と、 前記検証値データ を所定の処理に基づいて変換検証値データに変換する検証値変換部と、 前記第 2の暗号予備データを前記変換検証値データに基づいて復号化し て秘密数データを生成する第 2の復号化部と、 前記秘密数データを所定 の処理に基づいて検証値検証データと乱数データと前記共有鍵データに 変換する共有鍵導出部と、 前記検証値検証データを前記公開鍵データと 前記乱数データに基づいて暗号化して第 3の暗号予備データを生成する 第 3の暗号化部とを備え、 前記第 1 の暗号予備データと前記第 3の暗号 予備データが一致する場合に、 前記共有鍵データを出力する。
また、 本発明は、 予め与えられた秘密鍵データ及び公開鍵データに基 づいて、 第 1 の暗号予備データと第 2の暗号予備データから構成される 暗号化共有鍵データを復号して共有鍵データを出力する共有鍵復元装置 であって、 前記第 1 の暗号予備データを前記秘密鍵データに基づいて復 号化して検証値データを生成する第 1 の復号化部と、 前記検証値データ を所定の処理に基づいて変換検証値データに変換する検証値変換部と、 前記第 2の暗号予備データを前記変換検証値データに基づいて復号化し て秘密数データを生成する第 2の復号化部と、 前記秘密数データを所定 の処理に基づいて検証値検証データと乱数データと前記共有鍵データに 変換する共有鍵導出部と、 前記検証値データを前記公開鍵データと前記 乱数データに基づいて暗号化して第 3の暗号予備データを生成する第 3 の暗号化部とを備え、 前記第 1 の暗号予備データと前記第 3の暗号予備 データが一致する場合に、 前記共有鍵データを出力する。
また、 本発明は、 予め与えられた秘密鍵データ及び公開鍵データに基 づいて、 第 1 の暗号予備データと第 2の暗号予備データから構成される 暗号化共有鍵データを復号して共有鍵データを出力する共有鍵復元装置 であって、 前記第 1 の暗号予備データを前記秘密鍵データに基づいて復 号化して検証値データを生成する第 1 の復号化部と、 前記検証値データ と前記第 1 の暗号予備データを所定の処理に基づいて変換検証値データ に変換する検証値変換部と、 前記第 2の暗号予備データを前記変換検証 値データに基づいて復号化して秘密数データを生成する第 2の復号化部 と、 前記秘密数データを所定の処理に基づいて検証値検証データと乱数 データと前記共有鍵データに変換する共有鍵導出部と、 前記検証値検証 データを前記公開鍵データと前記乱数データに基づいて暗号化して第 3 の暗号予備データを生成する第 3の暗号化部とを備え、 前記第 1 の暗号 予備データと前記第 3の暗号予備データが一致する場合に、 前記共有鍵 データを出力する。
また、 本発明は、 予め与えられた秘密鍵データ及び公開鍵データに基 づいて、 第 1 の暗号予備データと第 2の暗号予備データから構成される 暗号化共有鍵データを復号して共有鍵データを出力する共有鍵復元装置 であって、 前記第 1 の暗号予備データを前記秘密鍵データに基づいて復 号化して検証値データを生成する第 1 の復号化部と、 前記検証値データ と前記第 1 の暗号予備データを所定の処理に基づいて変換検証値デ一夕 に変換する検証値変換部と、 前記第 2の暗号予備データを前記変換検証 値データに基づいて復号化して秘密数データを生成する第 2の復号化部 と、 前記秘密数データを所定の処理に基づいて検証値検証データと乱数 データと前記共有鍵データに変換する共有鍵導出部と、 前記検証値デ一 タを前記公開鍵データと前記乱数データに基づいて暗号化して第 3の暗 号予備データを生成する第 3の暗号化部とを備え、 前記第 1 の暗号予備 データと前記第 3の暗号予備データが一致する場合に、 前記共有鍵デ一 タを出力する。
ここで、 前記共有鍵導出部は、 所定の処理として、 一方向性ハッシュ 関数を用いるとしてもよい。
ここで、 前記第 1 の復号化部は、 N T R U暗号方式により復号化して 検証値データを生成するとしてもよい。
ここで、 前記検証値変換部は、 所定の処理として、 一方向性ハッシュ 関数を用いるとしてもよい。
ここで、 前記検証値変換部は、 所定の処理として、 前記検証値データ をそのまま前記変換検証値データとすると してもよい。
ここで、 前記第 2の復号化部は、 前記第 2の暗号予備データと前記変 換検証値データの排他的論理和演算を行って前記秘密数データを生成す るとしてもよい。
ここで、 前記第 2の復号化部は、 前記第 2の暗号予備データを、 前記 変換検証値データを暗号鍵として用いて共通鍵暗号方式により復号化し て前記秘密数データを生成するとしてもよい。
ここで、 前記第 2の復号化部は、 前記第 2の暗号予備データに前記変 換検証値データを減算して前記秘密数データを生成すると してもよい。
ここで、 前記第 2の暗号化部は、 前記第 2の暗号予備データを前記変 換検証値データで除算して前記秘密数データを生成するとしてもよい。 また、 本発明は、 予め与えられた公開鍵データに基づいて平文データ を暗号化した暗号文データを生成する暗号装置であって、 秘密数データ を生成する秘密数データ生成部と、 前記秘密数データを所定の処理に基 づいて検証値データと共有鍵データに変換する共有鍵導出部と、 前記検 証値データを前記公開鍵データに基づいて暗号化して第 1 の暗号予備デ 一夕を生成する第 1 の暗号化部と、 前記検証値データを所定の処理に基 づいて変換検証値データに変換する検証値変換部と、 前記秘密数データ を前記変換検証値デ '一夕に基づいて暗号化して第 2の暗号予備データを 生成する第 2の暗号化部と、 前記平文データを前記共有鍵データに基づ いて暗号化して第 3の暗号予備データを生成する第 3の暗号化部とを備 え、 前記暗号文データは、 前記第 1 の暗号予備データと前記第 2の暗号 予備データと前記第 3の暗号予備データから構成される。
また、 本発明は、 予め与えられた秘密鍵データに基づいて、 第 1 の暗 号予備データと第 2の暗号予備データと第 3の暗号予備データから構成 される暗号文データを復号して復号文データを出力する復号装置であつ て、 前記第 1 の暗号予備データを前記秘密鍵データに基づいて復号化し て検証値データを生成する第 1の復号化部と、 前記検証値データを所定 の処理に基づいて変換検証値データに変換する検証値変換部と、 前記第 2の暗号予備データを前記変換検証値データに基づいて復号化して秘密 数データを生成する第 2の復号化部と、 前記秘密数データを所定の処理 に基づいて検証値検証データと共有鍵データに変換する共有鍵導出部と を備え、 前記検証値データと前記検証値検証データが一致する場合に、 前記第 3の暗号予備データを前記共有鍵データに基づいて復号化して前 記復号文データを生成する復号部とを備える。
また、 本発明は、 予め与えられた公開鍵データに基づいて平文データ を暗号化した暗号文データを生成する暗号装置、 及び予め与えられた秘 密鍵データに基づいて暗号文データを復号して復号文データを出力する 復号装置からなる暗号システムである。 前記暗号装置は、 秘密数データ を生成する秘密数データ生成部と、 前記秘密数データを所定の処理に基 づいて検証値データと共有鍵データに変換する共有鍵導出部と、 前記検 証値データを前記公開鍵データに基づいて暗号化して第 1 の暗号予備デ —タを生成する第 1 の暗号化部と、 前記検証値データを所定の処理に基 づいて変換検証値データに変換する検証値変換部と、 前記秘密数データ を前記変換検証値データに基づいて暗号化して第 2の暗号予備データを 生成する第 2の暗号化部と、 前記平文データを前記共有鍵データに基づ いて暗号化して第 3の暗号予備データを生成する第 3の暗号化部とを備 え、 前記暗号文データは、 前記第 1 の暗号予備データと前記第 2の暗号 予備データと前記第 3の暗号予備データから構成される。 前記復号装置 は、 前記第 1 の暗号予備データを前記秘密鍵データに基づいて復号化し て前記検証値データを生成する第 1の復号化部と、 前記検証値データを 所定の処理に基づいて前記変換検証値データに変換する検証値変換部と、 前記第 2の暗号予備データを前記変換検証値データに基づいて復号化し て前記秘密数データを生成する第 2の復号化部と、 前記秘密数データを 所定の処理に基づいて検証値検証データと共有鍵データに変換する共有 鍵導出部とを備え、 前記検証値データと前記検証値検証データが一致す る場合に、 前記第 3の暗号予備データを前記共有鍵データに基づいて復 号化して前記復号文データを生成する復号部とを備える。
以上に説明したように、 本発明は、 従来システムにおける問題点を鑑 みて行われたもので、 暗号システムにおいて、 NTRU暗号を適用でき る鍵カプセル化メ力二ズムを構成することで、 暗号装置と復号装置との 間で N T R U暗号を用いて鍵配送が行えるようになる。
以上により、 従来技術では達成できなかった暗号システムを提供する ことができ、 その価値は大きい。
8. その他の変形例
なお、 本発明を上記の実施の形態に基づいて説明してきたが、 本発明 は、 上記の実施の形態に限定されないのはもちろんである。 以下のよう な場合も本発明に含まれる。
( 1 ) 暗号装置が、 イ ンターネッ トを介して、 各暗号文を復号装置へ 送信する代わりに、 暗号装置は、 各暗号文を DVDなどの記録媒体に書 き込み、 復号装置は、 記録媒体から各暗号文を読み出すとしてもよい。
(2) 本発明で用いる NTRU暗号は、 非特許文献 2に記載の方式以 外に、 E E S S (Efficient Embedded Security Standard) 方式の NT
RU暗号であってもよい。 E E S S方式の NTRU暗号については、
"EESS; Consortium for Efficient Embedded Security, Efficient
Embedded Security Standards #1 : Implementation Aspects of NTRU
Encrypt and NTRU Sign, Version 2.0 , " available at
http://ceesstandards.org , May 2003.に詳細に記述されている。 この ため、 ここではその詳細については説明を省くが、 以下に簡単に説明す る。
E E S S方式の N T R U暗号では、 乱数多項式 rは、 d個の係数が 1 であり、 (N— d ) 個の係数が 0である多項式、 もしくはこのような複 数の多項式を用いて計算される多項式である。 従って、 上記の実施の形 態において、 乱数多項式 rを生成する際に、 このような多項式となるよ うに生成すれば、 N T R U暗号の代わりに E E S S方式の N T R U暗号 を用いることができ、 同様の効果が得られる。
( 3 ) コンテンツ配信システムは、 次に示すように構成してもよい。 コンテンツ配信システムは、 コ ンテンツサーバ装置と暗号装置と放送 装置と受信装置と復号装置と再生装置とモニタとから構成されている。 暗号装置と復号装置とは、 コ ンテンツ配信システム 1 0の暗号装置 1 1 0と復号装置 1 2 0とに対応している。
コンテンッサーバ装置と暗号装置とは、 専用回線を介して接続されて おり、 コンテンツサーバ装置は、 映像と音声から構成される映画などの コンテンッを専用回線を介して暗号装置へ送信する。 暗号装置と放送装 置とは、 専用回線を介して接続されている。 暗号装置は、 各暗号文を放 送装置へ送信し、 放送装置は、 各暗号文を多重化し、 デジタル放送波に 乗せて放送する。
受信装置と復号装置とは、接続されており、復号装置と再生装置とは、 接続されている。 受信装置は、 デジタル放送波を受信し、 受信したデジ タル放送波から各暗号文を抽出し、 抽出した各暗号文を復号装置へ送信 する。復号装置は、各暗号文を受け取り、受け取った各暗号文を用いて、 再生コンテンッを生成し、 生成した再生コンテンッを再生装置へ出力す る。 再生装置は、 復号装置及びス ピーカを内蔵するモニタに接続されて いる。 再生装置は、 再生コ ンテンツを受け取り、 受け取った再生コンテ ンッから映像信号及び音声信号を生成し、 モニタは、 映像を表示し、 音 声を出力する。
( 4 ) コ ンテンツサーバ装置と暗号装置とは、 一体となった装置から 構成されているとしてもよい。 また、 復号装置と再生装置とは、 一体と なつた装置から構成されているとしてもよい。
( 5 ) 上記の各実施の形態において、 メモリカード 1 6 0は、 予め公 開鍵多項式 hを記憶しており、 メモリ カー ド 1 7 0は、 予め秘密鍵多項 式 f 及び公開鍵多項式 hを記憶しており、 暗号装置 1 1 0及ぴ復号装置 1 2 0は、 メモリ カード 1 6 0及ぴメモリ カード 1 7 0から、 それぞれ 公開鍵多項式、 秘密鍵多項式を取得するとしているが、 これには限定さ れない。
暗号装置 1 1 0は、 予め公開鍵多項式を記憶しており、 復号装置 1 2 0は、予め公開鍵多項式及び秘密鍵多項式を記憶しているとしてもよい。 また、 鍵管理装置は、 秘密鍵多項式及び公開鍵多項式を生成し、 生成 した秘密鍵多項式及び公開鍵多項式を秘密にかつ安全に復号装置 1 2 0 へ送信し、 生成した公開鍵多項式を暗号装置 1 1 0へ送信するとしても よい。
( 6 ) コンテンツ配信システムにおいて配信されるコ ンテンツは、 映 像と音声とからなる映画などのコンテンッには、限定されない。動画像、 静止画像、 音声、 音楽、 文書、 小説、 D Bソフ ト により生成されるデ一 夕ベース、 表計算ソフ ト により生成される電子的な表データ、 コ ンビュ 一夕プログラム、 その他コンピュータ用データなどあってもよい。
また、 前記コ ンテンツは、 上記のような著作物ではなく、 暗号化及び 復号化、 デジタル署名及び署名検証などに用いる鍵情報であるとしても よい。
例えば、 上記の各実施の形態により示されるようにして、 暗号装置及 ぴ復号装置は、 共有鍵を共有し、 暗号装置は、 コ ンテンツ鍵を共有鍵を 用いて暗号化して暗号化コンテンッ鍵を生成し、 コンテンツをコ ンテン ッ鍵を用いて暗号化して暗号化コンテンツを生成し、 生成した暗号化コ ンテンッ鍵と生成した暗号化コンテンッとを復号装置に送信する。 復号 装置は、 暗号化コンテンツ鍵と暗号化コ ンテンツとを受信し、 共有鍵を 用いて、 暗号化コ ンテンツ鍵を復号してコ ンテンツ鍵を生成し、 生成し たコンテンッ鍵を用いて暗号化コンテンッを復号してコンテンッを生成 するとしてもよい。 ( 7 ) 本発明は、 上記に示す方法であるとしてもよい。 また、 これら の方法をコンピュータにより実現するコンピュータプログラムであると してもよいし、 前記コンピュータプログラムからなるデジタル信号であ ると してもよい。
また、 本発明は、 前記コ ンピュータプログラム又は前記デジタル信号 をコンピュータ読み取り可能な記録媒体、 例えば、 フ レキシブルデイ ス ク、 ハー ドディ スク、 C D_ROM、 MO、 DVD, DVD-ROM, DVD-RAM, B D (B l u— r a y D i s c ) 、 半導体メモリな ど、 に記録したものとしてもよい。 また、 これらの記録媒体に記録され ている前記コンピュ一タプログラム又は前記デジタル信号であるとして もよい。
また、 本発明は、 前記コンピュータプログラム又は前記デジタル信号 を、 電気通信回線、 無線又は有線通信回線、 イ ンタ一ネッ トを代表とす るネッ ト ワーク、 データ放送等を経由して伝送するものとしてもよい。 また、 本発明は、 マイクロプロセッサとメモリ とを備えたコンビュ一 夕システムであって、 前記メモリは、 上記コンピュータプログラムを記 憶しており、 前記マイクロプロセッサは、 前記コンピュータプログラム に従って動作するとしてもよい。
また、 前記プログラム又は前記デジタル信号を前記記録媒体に記録し て移送することにより、 又は前記プログラム又は前記デジタル信号を前 記ネッ ト ワーク等を経由して移送することにより、 独立した他のコンビ ユー夕システムにより実施すると してもよい。
(8) 上記実施の形態及び上記変形例をそれぞれ組み合わせるとして もよい。
産業上の利用の可能性
上記において説明したコンテンツ配布システムは、 コンテンツ供給者 から利用者に対して、 音楽、 映画、 小説などのデジタル化された著作物 を供給する産業において、 経営的、 反復的かつ継続的に使用される。 ま た、 コンテンツ配布システムを構成する暗号装置及ぴ復号装置は、 電化 製品などを製造する電機機器産業において、 製造され、 販売される。 特に、 デシタル化された著作物を、 D V Dなどの記録媒体に格納して 市場に流通させることにより、 ネッ ト ワークを介して流通させることに より、 又は放送により、 供給する産業において好適である。

Claims

請 求 の 範 囲
1 . 第 3者に知られることなく共有鍵を生成する共有鍵生成装置及び共 有鍵復元装置から構成される鍵共有システムであって、
前記共有鍵生成装置は、
シード値を生成するシー ド値生成手段と、
生成された前記シード値からブライン ド値及び共有鍵を生成する第 1 共有鍵生成手段と、
生成された前記プライ ン ド値に基づいて、 生成された前記シー ド値を 暗号化して、 暗号化情報を生成する暗号化手段と、
生成された暗号化情報を送信する送信手段とを備え、
前記共有鍵復元装置は、
前記暗号化情報を受信する受信手段と、
受信された前記暗号化情報を復号して復号シ一ド値を生成する復号手 段と、
前記第 1共有鍵生成手段と同一の方法により、 生成された前記復号シ 一ド値から復号ブライ ン ド値及ぴ復号共有鍵を生成する第 2共有鍵生成 手段と、
生成された前記復号ブライ ンド値に基づいて、 生成された前記復号シ 一ド値を暗号化して、 再暗号化情報を生成する再暗号化手段と、
受信された前記暗号化情報と生成された前記再暗号化情報とに基づい て、 前記復号共有鍵を出力するか否かを判断する判断手段と、
出力すると判断される場合に、 生成された前記復号共有鍵を出力する 出力手段とを備える
ことを特徴とする鍵共有システム。
2 . 前記共有鍵生成装置は、 さらに、
コンテンッを取得する取得手段と、
生成された前記共有鍵を用いて、取得されたコ ンテンツを暗号化して、 暗号化コンテンッを生成する暗号化手段とを備え、
前記送信手段は、さらに、生成された前記暗号化コンテンッを送信し、 前記受信手段は、 さらに、 前記暗号化コ ンテンツを受信し、 前記共有鍵復元装置は、 さらに、
出力された前記復号共有鍵を用いて、 受信された前記暗号化コンテン ッを復号して、 復号コ ンテンツを生成する復号手段と、
生成された復号コ ンテンツを出力する出力手段とを備える
ことを特徴とする請求の範囲 1 に記載の鍵共有システム。
3 . 第 3者に知られることなく共有鍵を相手の装置へ伝える共有鍵生成 装置であって、
シ一ド値を生成するシード値生成手段と、
生成された前記シード値からプライ ン ド値及び共有鍵を生成する共有 鍵生成手段と、
生成された前記ブライ ン ド値に基づいて、 生成された前記シー ド値を 暗号化して、 暗号化情報を生成する暗号化手段と、
生成された暗号化情報を送信する送信手段と
を備えることを特徴とする共有鍵生成装置。
4 . 前記共有鍵生成手段は、 前記シー ド値に一方向性関数を施して、 関 数値を生成し、 生成した関数値から前記ブライン ド値及び前記共有鍵を 生成し、
前記暗号化手段は、
公開鍵を取得する公開鍵取得部と、
取得された前記公開鍵と生成された前記ブライ ン ド値とを用いて、 生 成された前記シー ド値に公開鍵暗号化ァルゴリズムを施して、 前記暗号 化情報として暗号化シー ド値を生成する公開鍵暗号化部と含む
ことを特徴とする請求の範囲 3に記載の共有鍵生成装置。
5 . 前記公開鍵暗号化アルゴリ ズムは、 N T R U暗号方式によるもので あり、
前記公開鍵取得部は、 前記公開鍵として、 N T R U暗号方式の鍵生成 ァルゴリズムにより生成された公開鍵多項式を取得し、
前記公開鍵暗号化部は、 前記シード値からシー ド値多項式を生成し、 前記ブライ ン ド値からブライ ン ド値多項式を生成し、 N T R U暗号方式 の暗号化アルゴリ ズムにより、 前記公開鍵多項式を鍵として用い、 前記 シード値多項式を攪乱するために前記ブライ ン ド値多項式を用いて、 前 記シード値多項式を暗号化して、 前記暗号化シー ド値として暗号化シ一 ド値多項式を生成し、
前記送信手段は、 前記暗号化シード値として、 生成された前記唷号化 シー ド値多項式を送信する
ことを特徴とする請求の範囲 4記載の共有鍵生成装置。
6 . 前記暗号化手段は、
公開鍵を取得する公開鍵取得部と、
ブライ ン ド値を生成し、 取得された前記公開鍵と生成された前記ブラ イ ン ド値とを用いて、 生成された前記シード値に公開鍵暗号化アルゴリ ズムを施して、 公開鍵暗号文を生成する公開鍵暗号化部と、
生成された前記シ一ド値、 前記ブライ ン ド値及び前記共有鍵のいずれ か 1以上に第 2—方向性関数を施して第 2関数値を生成する関数部とを 含み、
前記暗号化手段は、 前記公開鍵暗号文及び前記第 2関数値を含む前記 暗号化情報を生成する
ことを特徴とする請求の範囲 3に記載の共有鍵生成装置。
7 . 前記共有鍵生成手段は、 前記シー ド値に一方向性関数を施して、 関 数値を生成し、 生成した関数値から前記ブライ ン ド値及び前記共有鍵を 生成する
ことを特徴とする請求の範囲 6に記載の共有鍵生成装置。
8 . 前記共有鍵生成手段は、 前記ブライ ン ド値及び前記共有鍵の生成に 代えて、 前記シー ド値に第 1一方向性関数を施して、 第 1 関数値を生成 し、 生成した第 1 関数値から前記共有鍵を生成する
ことを特徴とする請求の範囲 6に記載の共有鍵生成装置。
9 . 前記公開鍵暗号化アルゴリ ズムは、 N T R U暗号方式によるもので あり、
前記公開鍵取得部は、 前記公開鍵と して、 N T R U暗号方式の鍵生成 アルゴリズムにより生成された公開鍵多項式を取得し、
前記公開鍵暗号化部は、 前記シー ド値からシー ド値多項式を生成し、 前記プライ ン ド値からブライン ド値多項式を生成し、 N T R U暗号方式 の暗号化アルゴリ ズムにより、 前記公開鍵多項式を鍵として用い、 前記 シ一 ド値多項式を攪乱するために前記ブライ ン ド値多項式を用いて、 前 記シー ド値多項式を暗号化して、 前記公開鍵暗号文として暗号化シー ド 値多項式を生成し、
前記暗号化手段は、 前記公開鍵暗号文としての前記暗号化シー ド値多 項式及び前記第 2関数値を含む前記暗号化情報を生成する
こ とを特徴とする請求の範囲 6に記載の共有鍵生成装置。
10. 前記共有鍵生成手段は、 前記シー ド値に一方向性関数を施して、 関 数値を生成し、 生成した関数値から検証値、 前記ブライ ン ド値及び前記 共有鍵を生成し、
前記暗号化手段は、
公開鍵を取得する公開鍵取得部と、
取得された前記公開鍵と生成された前記ブライ ン ド値とを用いて、 生 成された前記検証値に公開鍵暗号化アルゴリ ズムを施して、 第 1暗号文 を生成する第 1暗号化部と、
生成された前記検証値に基づいて、 生成された前記シー ド値に他の演 算ァルゴリズムを施して、第 2暗号文を生成する第 2暗号化部とを含み、 前記暗号化手段は、 前記第 1暗号文及び前記第 2暗号文を含む前記暗 号化情報を生成する
ことを特徴とする請求の範囲 3に記載の共有鍵生成装置。
1 1. 前記公開鍵暗号化アルゴリ ズムは、 N T R U暗号方式によるもので あり、 '
前記公開鍵取得部は、 前記公開鍵として、 N T R U暗号方式の鍵生成 ァルゴリズムにより生成された公開鍵多項式を取得し、
前記第 1暗号化部は、 前記検証値から検証値多項式を生成し、 前記プ ライ ン ド値からブライ ン ド値多項式を生成し、 N T R U暗号方式の暗号 化アルゴリ ズムにより、 前記公開鍵多項式を鍵として用い、 前記検証値 多項式を攪乱するために前記ブライ ン ド値多項式を用いて、 前記検証値 多項式を暗号化して、 前記第 1暗号文として暗号化検証値多項式を生成 し、
前記暗号化手段は、 前記第 1暗号文としての前記暗号化検証値多項式 及び前記第 2暗号文を含む前記暗号化情報を生成する
ことを特徴とする請求の範囲 1 0記載の共有鍵生成装置。
12. 前記他の演算アルゴリ ズムは、 共通鍵暗号化アルゴリ ズムであり、 前記第 2暗号化部は、 前記検証値を鍵として用いて、 前記シー ド値に 共通鍵暗号化アルゴリズムを施して、 前記第 2暗号文を生成する
ことを特徴とする請求の範囲 1 1に記載の共有鍵生成装置。
13. 前記他の演算アルゴリ ズムは、 排他的論理和であり、
前記第 2暗号化部は、 前記検証値と前記シード値とに、 排他的論理和 を施して、 前記第 2暗号文を生成する
ことを特徴とする請求の範囲 1 1に記載の共有鍵生成装置。
14. 前記他の演算アルゴリ ズムは、 加算であり、
前記第 2暗号化部は、前記検証値と前記シード値とに、加算を施して、 前記第 2暗号文を生成する
ことを特徴とする請求の範囲 1 1に記載の共有鍵生成装置。
1 5. 前記他の演算アルゴリ ズムは、 乗算であり、
前記第 2暗号化部は、前記検証値と前記シ一ド値とに、乗算を施して、 前記第 2暗号文を生成する
こ とを特徴とする請求の範囲 1 1に記載の共有鍵生成装置。
16. 前記シード値生成手段は、 乱数を生成し、 生成した乱数を前記シー ド値とする
ことを特徴とする請求の範囲 3に記載の共有鍵生成装置。
1 7. 前記共有鍵生成手段は、 前記シード値に一方向性関数を施して、 関 数値を生成し、 生成した関数値から前記ブライ ン ド値及び前記共有鍵を 生成する
ことを特徴とする請求の範囲 3に記載の共有鍵生成装置。
18. 前記一方向性関数は、 ハッシュ関数であり、
前記共有鍵生成手段は、 前記シ一 ド値にハッシュ関数を施す こ とを特徴とする請求の範囲 1 7に記載の共有鍵生成装置。
19. 前記共有鍵生成手段は、 生成した関数値の一部を前記ブライ ン ド値 とし、 他の一部を前記共有鍵とすることにより、 前記ブライ ン ド値及び 前記共有鍵を生成する
ことを特徴とする請求の範囲 1 7に記載の共有鍵生成装置。
20. 前記共有鍵生成装置は、 さらに、
コ ンテンツを取得する取得手段と、
生成された前記共有鍵を用いて、 取得したコンテンツを暗号化して、 暗号化コ ンテンッを生成する暗号化手段とを備え、
前記送信手段は、 さ らに、 生成された前記暗号化コ ンテンツを送信す る
ことを特徴とする請求の範囲 3に記載の共有鍵生成装置。
21. 第 3者に知られることなく共有鍵生成装置から共有鍵を受け取る共 有鍵復元装置であって、
前記共有鍵生成装置は、 シー ド値を生成し、 生成された前記シード値 からブライン ド値及び共有鍵を生成し、 生成された前記ブライン ド値に 基づいて、生成された前記シ一 ド値を暗号化して、暗号化情報を生成し、 生成された前記暗号化情報を送信し、
前記共有鍵復元装置は、
前記暗号化情報を受信する受信手段と、
受信した前記暗号化情報を復号して復号シ一ド値を生成する復号手段 と、
前記共有鍵生成装置による共有鍵生成方法と同一の方法により、 生成 された前記復号シ一 ド値から復号ブライ ン ド値及び復号共有鍵を生成す る共有鍵生成手段と、
生成された前記復号ブライ ン ド値に基づいて、 生成された前記復号シ 一ド値を暗号化して、 再暗号化情報を生成する再暗号化手段と、 受信された前記暗号化情報と生成された前記再暗号化情報とに基づい て、 前記復号共有鍵を出力するか否かを判断する判断手段と、
出力すると判断される場合に、 生成された前記復号共有鍵を出力する 出力手段とを備える ことを特徴とする共有鍵復元装置。
22. 前記共有鍵生成装置は、 前記シード値に一方向性関数を施して、 関 数値を生成し、 生成された関数値から前記ブライ ン ド値及び前記共有鍵 を生成し、 公開鍵を取得し、 取得された前記公開鍵と生成された前記ブ ライン ド値とを用いて、 生成された前記シー ド値に公開鍵暗号化ァルゴ リズムを施して、 前記暗号化情報として前記暗号化シー ド値を生成し、 前記暗号化シー ド値を送信し、
前記受信手段は、前記暗号化情報として前記暗号化シ一 ド値を受信し、 前記復号手段は、
前記公開鍵に対応する秘密鍵を取得する秘密鍵取得部と、
取得された秘密鍵を用いて、 受信された前記暗号化シー ド値に、 前記 公開鍵暗号化ァルゴリズムに対応する公開鍵復号ァルゴリズムを施して、 前記復号シ一ド値を生成する公開鍵復号部とを含み、
前記共有鍵生成手段は、 生成された前記復号シ一ド値に前記一方向性 関数を施して、 復号関数値を生成し、 生成した前記復号関数値から前記 復号ブライン ド値及び前記復号共有鍵を生成し、
前記再暗号化手段は、
前記公開鍵を取得する公開鍵取得部と、
取得された前記公開鍵と生成された前記復号ブライ ン ド値とを用いて、 生成された前記復号シ一 ド値に前記公開鍵暗号化ァルゴリズムを施して、 前記再暗号化情報として、 前記再暗号化シー ド値を生成する再暗号化部 とを含み、
前記判断手段は、 受信された前記暗号化シー ド値と生成された前記再 暗号化シー ド値とがー致するか否かを判断し、 一致する場合に、 前記復 号共有鍵を出力すると判断する
ことを特徴とする請求の範囲 2 1 に記載の共有鍵復元装置。
23.前記公開鍵暗号化ァルゴリズム及び前記公開鍵復号ァルゴリズムは、 N T R U暗号方式によるものであり、
前記共有鍵生成装置は、 前記公開鍵として、 N T R U暗号方式の鍵生 成アルゴリ ズムにより生成された公開鍵多項式を取得し、 前記シード値 からシー ド値多項式を生成し、 前記ブライ ン ド値からブライ ン ド値多項 式を生成し、 N T R U暗号方式の暗号化アルゴリ ズムにより、 前記公開 鍵多項式を鍵として用い、 前記シード値多項式を攪乱するために前記ブ ライン ド値多項式を用いて、 前記シー ド値多項式を暗号化して、 前記暗 号化シー ド値として暗号化シード値多項式を生成し、 前記暗号化シー ド 値として、 前記暗号化シード値多項式を送信し、
前記受信手段は、 前記暗号化シード値として、 前記暗号化シー ド値多 項式を受信し、
前記秘密鍵取得部は、 前記秘密鍵として、 N T R U暗号方式の鍵生成 ァルゴリズムにより生成された秘密鍵多項式を取得し、
前記公開鍵復号部は、 取得した前記秘密鍵多項式を鍵として用いて、
N T R U暗号方式の復号アルゴリズムにより、 受信した前記暗号化シー ド値多項式を復号して、 復号シー ド値多項式を生成し、 生成した前記復 号シード値多項式から前記復号シ一 ド値を生成し、
前記公開鍵取得部は、前記公開鍵として、前記公開鍵多項式を取得し、 前記再暗号化部は、 前記復号シ一ド値からシー ド値多項式を生成し、 前記復号ブライ ン ド値からブライ ン ド値多項式を生成し、 N T R U暗号 方式の暗号化アルゴリズムにより、 前記公開鍵.多項式を鍵として用い、 前記シ一ド値多項式を攪乱するために前記ブライン ド値多項式を用いて、 前記シー ド値多項式を暗号化して、 再暗号化シー ド値多項式を生成し、 前記判断手段は、 受信した前記暗号化シー ド値多項式と生成した前記 再暗号化シード値多項式とがー致するか否かを判断する
こ とを特徴とする請求の範囲 2 2に記載の共有鍵復元装置。
24. 前記共有鍵生成装置は、 公開鍵を取得し、 ブライ ン ド値を生成し、 取得された前記公開鍵と生成された前記ブライン ド値とを用いて、 生成 された前記シー ド値に公開鍵暗号化ァルゴリズムを施して、 公開鍵暗号 文を生成し、 生成された前記シード値、 前記ブライ ン ド値及び前記共有 鍵のいずれか 1以上に、第 2—方向性関数を施して第 2関数値を生成し、 前記公開鍵暗号文及び第 2関数値を含む前記暗号化情報を生成し、 前記 暗号化情報を送信し、 前記受信手段は、 前記公開鍵暗号文及び前記第 2関数値を含む前記暗 号化情報を受信し、
前記復号手段は、
前記公開鍵に対応する秘密鍵を取得する秘密鍵取得部と、
取得された前記秘密鍵を用いて、 受信された前記暗号化情報に含まれ る前記公開鍵暗号文に、 前記公開鍵暗号化ァルゴリズムに対応する公開 鍵復号ァルゴリズムを施して、復号シ一ド値を生成する公開鍵復号部と、 生成された復号シ一ド値、 前記復号ブライ ン ド値及び前記復号共有鍵 のいずれか 1 以上に、 前記第 2—方向性関数を施して復号第 2関数値を 生成する関数部とを含み、
前記判断手段は、 前記暗号化情報と前記再暗号化情報とに基づく判断 に代えて、 受信された前記暗号化情報に含まれる前記第 2関数値と、 生 成された前記復号第 2関数値とがー致するか否かを判断し、 一致する場 合に、 前記復号共有鍵を出力すると判断する
ことを特徴とする請求の範囲 2 1 に記載の共有鍵復元装置。
25. 前記共有鍵生成装置は、 前記シー ド値に一方向性関数を施して、 関 数値を生成し、 生成した関数値から前記ブライン ド値及び前記共有鍵を 生成し、
前記共有鍵生成手段は、 生成された前記復号シ一ド値に前記第 1一方 向性関数を施して、 復号関数値を生成し、 生成した前記復号関数値から 前記復号ブライ ン ド値及び前記復号共有鍵を生成する
ことを特徴とする請求の範囲 2 4に記載の共有鍵復元装置。
26. 前記共有鍵生成装置は、 前記ブライ ン ド値及び前記共有鍵の生成に 代えて、 前記シー ド値に第 1一方向性関数を施して、 第 1 関数値を生成 し、 生成した第 1関数値から前記共有鍵を生成し、
前記共有鍵生成手段は、 前記復号ブランィ ド値及び前記復号共有鍵の 生成に代えて、 生成された前記復号シ一ド値に前記第 1一方向性関数を 施して、 復号関数値を生成し、 生成した前記復号関数値から前記復号共 有鍵を生成する
こ とを特徴とする請求の範囲 2 4に記載の共有鍵復元装置。
27.前記公開鍵暗号化アルゴリ ズム及び前記公開鍵復号アルゴリ ズムは、 N T R U暗号方式によるものであり、
前記共有鍵生成装置は、 前記公開鍵として、 N T R U暗号方式の鍵生 成アルゴリズムにより生成された公開鍵多項式を取得し、 前記シ一 ド値 からシー ド値多項式を生成し、 前記ブライン ド値からブライ ン ド値多項 式を生成し、 N T R U暗号方式の暗号化アルゴリ ズムにより、 前記公開 鍵多項式を鍵として用い、 前記シ一 ド値多項式を攪乱するために前記ブ ライン ド値多項式を用いて、 前記シー ド値多項式を暗号化して、 前記公 開鍵暗号文として暗号化シー ド値多項式を生成し、 前記公開鍵暗号文と しての前記暗号化シード値多項式及び前記第 2関数値を含む前記暗号化 情報を生成し、
前記秘密鍵取得部は、 前記秘密鍵と して、 N T R U暗号方式の鍵生成 アルゴリズムにより生成された秘密鍵多項式を取得し、
前記公開鍵復号部は、 前記公開鍵暗号文から公開鍵暗号文多項式を生 成し、 取得した前記秘密鍵多項式を鍵として用いて、 N T R U暗号方式 の復号アルゴリ ズムにより、 前記公開鍵暗号文多項式を復号して、 復号 シー ド値多項式を生成し、 生成した前記復号シ一ド値多項式から前記復 号シ一 ド値を生成する
ことを特徴とする請求の範囲 2 4に記載の共有鍵復元装置。
28. 前記共有鍵生成装置は、 前記シー ド値に一方向性関数を施して、 関 数値を生成し、 生成した関数値から検証値、 前記ブライン ド値及び前記 共有鍵を生成し、 公開鍵を取得し、 取得された前記公開鍵と生成された 前記ブライ ン ド値とを用いて、 生成された前記検証値に公開鍵暗号化ァ ルゴリズムを施して、 第 1暗号文を生成し、 生成された前記検証値に基 づいて、 生成された前記シー ド値に他の演算アルゴリ ズムを施して、 第 2暗号文を生成し、 前記第 1暗号文及び前記第 2暗号文を含む前記暗号 化情報を生成し、 生成された前記暗号化情報を送信し、
前記受信手段は、 前記第 1暗号文及び前記第 2暗号文を含む前記暗号 化情報を受信し、
前記復号手段は、 前記公開鍵に対応する秘密鍵を取得する秘密鍵取得部と、 取得された秘密鍵を用いて、 受信された前記暗号化情報に含まれてい る前記第 1暗号文に、 前記公開鍵暗号化アルゴリズムに対応する公開鍵 復号アルゴリ ズムを施して、 復号検証値を生成する公開鍵復号部と、 生成された復号検証'値に基づいて、 受信された前記暗号化情報に含ま れている前記第 2暗号文に、 前記他の演算アルゴリズムの逆演算を行う 演算アルゴリ ズムを施して、 復号シ一ド値を生成する演算復号部とを含 み、
前記共有鍵生成手段は、 生成された前記復号シ一ド値に前記一方向性 関数を施して、 復号関数値を生成し、 生成した前記復号関数値から復号 検証値、 前記復号ブライン ド値及び前記復号共有鍵を生成し、
前記再暗号化手段は、
前記公開鍵を取得する公開鍵取得部と、
取得された前記公開鍵と生成された前記復号ブライン ド値とを用いて、 生成された前記復号検証値に、前記公開鍵暗号化ァルゴリズムを施して、 前記再暗号化情報を生成する再暗号化部と、
前記判断手段は、 前記暗号化情報に含まれている前記第 1暗号文と、 生成された前記再暗号化情報とがー致するか否かを判断し、 一致する場 合に、 前記復号共有鍵を出力すると判断する
こ とを特徴とする請求の範囲 2 1 に記載の共有鍵復元装置。
29.前記公開鍵暗号化ァルゴリ ズム及び前記公開鍵復号ァルゴリ ズムは、 N T R U暗号方式によるものであり、
前記共有鍵生成装置は、 前記公開鍵として、 N T R U暗号方式の鍵生 成アルゴリズムにより生成された公開鍵多項式を取得し、 前記検証値か ら検証値多項式を生成し、 前記ブライ ン ド値からブライ ン ド値多項式を 生成し、 N T R U暗号方式の暗号化アルゴリ ズムにより、 前記公開鍵多 項式を鍵として用い、 前記検証値多項式を攪乱するために前記ブライ ン ド値多項式を用いて、 前記検証値多項式を暗号化して、 前記第 1暗号文 として暗号化検証値多項式を生成し、 前記第 1暗号文としての前記暗号 化検証値多項式及び前記第 2暗号文を含む前記暗号化情報を生成し、 前 記暗号化情報を送信し、
前記受信手段は、 前記暗号化検証値多項式及び前記第 2暗号文を含む 前記暗号化情報を受信し、
前記秘密鍵取得部は、 前記秘密鍵として、 N T R U暗号方式の鍵生成 ァルゴリズムにより生成された秘密鍵多項式を取得し、
前記公開鍵復号部は、前記第 1暗号文から第 1暗号文多項式を生成し、 取得した前記秘密鍵多項式を鍵として用いて、 N T R U暗号方式の復号 アルゴリ ズムにより、 前記第 1暗号文多項式を復号して、 復号検証多項 式を生成し、 生成した前記復号検証値多項式から前記復号検証値を生成 し、
前記公開鍵取得部は、 前記公開鍵多項式を取得し、
前記再暗号化部は、 前記復号検証値から復号検証値多項式を生成し、 前記復号プライ ン ド値からブライ ン ド値多項式を生成し、 N T R U暗号 方式の暗号化アルゴリズムにより、 前記公開鍵多項式を鍵として用い、 前記復号検証値多項式を攪乱するために前記ブライ ン ド値多項式を用い て、 前記復号検証値多項式を暗号化して、 前記再暗号化情報として再暗 号化検証値多項式を生成し、
前記判断手段は、前記第 1暗号文としての前記暗号化検証値多項式と、 前記再暗号化情報としての前記再暗号化検証値多項式とがー致するか否 か判断する .
こ とを特徴とする請求の範囲 2 8に記載の共有鍵復元装置。
30. 前記他の演算アルゴリ ズムは、 共通鍵暗号化アルゴリ ズムであり、 前記逆演算を行う前記演算アルゴリズムは、 対応する共通鍵復号ァルゴ リズムであり、
前記演算復号部は、 前記復号検証値を鍵として用いて、 前記第 2暗号 文に共通鍵復号アルゴリズムを施して、 前記復号シ一ド値を生成する こ とを特徴とする請求の範囲 2 9に記載の共有鍵復元装置。
31. 前記他の演算アルゴリズム及び前記逆演算を行う前記演算アルゴリ ズムは、 排他的論理和であり、
前記演算復号部は、 前記復号検証値と前記第 2暗号文とに排他的論理 和を施して、 前記復号シード値を生成する
ことを特徴とする請求の範囲 2 9に記載の共有鍵復元装置。
32. 前記他の演算アルゴリ ズムは、 加算であり、 前記逆演算を行う前記 演算アルゴリ ズムは、 減算であり、
前記演算復号部は、 前記復号検証値と前記第 2暗号文とに減算を施し て、 前記復号シー ド値を生成する
ことを特徴とする請求の範囲 2 9に記載の共有鍵復元装置。
33. 前記他の演算アルゴリ ズムは、 乗算であり、 前記逆演算を行う前記 演算アルゴリ ズムは、 除算であり、
前記演算復号部は、 前記復号検証値と前記第 2暗号文とに除算を施し て、 前記復号シー ド値を生成する
ことを特徴とする請求の範囲 2 9に記載の共有鍵復元装置。
34.前記共有鍵生成手段は、前記復号シ一ド値に一方向性関数を施して、 関数値を生成し、 生成した関数値から前記復号ブライン ド値及び前記復 号共有鍵を生成する
ことを特徴とする請求の範囲 2 1 に記載の共有鍵復元装置。
35. 前記一方向性関数は、 ハッシュ関数であり、
前記共有鍵生成手段は、 前記復号シ一ド値にハツシュ関数を施す こ とを特徴とする請求の範囲 3 4に記載の共有鍵復元装置。
36. 前記共有鍵生成手段は、 生成した関数値の一部を前記復号ブライ ン ド値とし、 他の一部を前記復号共有鍵とすることにより、 前記復号ブラ ィン ド値及び前記復号共有鍵を生成する
ことを特徴とする請求の範囲 3 4に記載の共有鍵復元装置。
37. 前記共有鍵生成装置は、 さらに、 コ ンテンツを取得し、 生成された 前記共有鍵を用いて、 取得したコンテンツを暗号化して、 暗号化コ ンテ ンッを生成し、 生成された前記暗号化コ ンテンツを送信し、
前記共有鍵復号装置は、 さらに、
前記暗号化コンテンッを受信するコンテンッ受信手段と、
出力された前記復号共有鍵を用いて、 受信された前記暗号化コンテン ッを復号して、 復号コ ンテンツを生成する復号手段と、 生成された前記復号コンテンッを再生する再生手段と を備えることを特徴とする請求の範囲 2 1 に記載の共有鍵復元装置。
38. 第 3者に知られることなく共有鍵を相手の装置へ伝える共有鍵生成 装置で用いられる共有鍵生成方法であって、
シー ド値を生成するシー ド値生成ステ ップと、
生成された前記シ一ド値からプライン ド値及び共有鍵を生成する共有 鍵生成ステップと、
生成された前記ブライ ン ド値に基づいて、 生成された前記シ一 ド値を 暗号化して、 暗号化情報を生成する暗号化ステップと、
生成された暗号化情報を送信する送信ステップと
を含むこ とを特徴とする共有鍵生成方法。
39. 第 3者に知られることなく共有鍵を相手の装置へ伝える共有鍵生成 装置で用いられる共有鍵生成プログラムであって、
シー ド値を生成するシード値生成ステツプと、
生成された前記シー ド値からブライ ン ド値及び共有鍵を生成する共有 鍵生成ステップと、
生成された前記ブライ ン ド値に基づいて、 生成された前記シ一 ド値を 暗号化して、 暗号化情報を生成する暗号化ステップと、
生成された暗号化情報を送信する送信ステップと
を含むこ とを特徴とする共有鍵生成プログラム。
40. 前記共有鍵生成プログラムは、 コ ンピュータ読み取り可能な記録媒 体に記録されている
こ とを特徴とする請求の範囲 3 9に記載の共有鍵生成プログラム。
41. 第 3者に知られることなく共有鍵生成装置から共有鍵を受け取る共 有鍵復元装置で用いられる共有鍵復元方法であって、
前記共有鍵生成装置は、 シード値を生成し、 生成された前記シー ド値 からブライ ン ド値及び共有鍵を生成し、 生成された前記ブライン ド値に 基づいて、生成された前記シ一ド値を暗号化して、暗号化情報を生成し、 生成された前記暗号化情報を送信し、
前記共有鍵復元方法は、 前記暗号化情報を受信する受信ステップと、
受信した前記暗号化情報を復号して復号シ一ド値を生成する復号ステ ップと、
前記共有鍵生成装置による共有鍵生成方法と同一の方法により、 生成 された前記復号シ一ド値から復号ブライ ンド値及ぴ復号共有鍵を生成す る共有鍵生成ステップと、
生成された前記復号ブライン ド値に基づいて、 生成された前記復号シ 一ド値を暗号化して、 再暗号化情報を生成する再暗号化ステップと、 受信された前記暗号化情報と生成された前記再暗号化情報とに基づい て、 前記復号共有鍵を出力するか否かを判断する判断ステップと、 出力すると判断される場合に、 生成された前記復号共有鍵を出力する 出力ステップと
含むこ とを特徴とする共有鍵復元方法。
42. 第 3者に知られることなく共有鍵生成装置から共有鍵を受け取る共 有鍵復元装置で用いられる共有鍵復元プログラムであって、
前記共有鍵生成装置は、 シード値を生成し、 生成された前記シー ド値 からブライ ン ド値及び共有鍵を生成し、 生成された前記ブライ ン ド値に 基づいて、生成された前記シー ド値を暗号化して、暗号化情報を生成し、 生成された前記暗号化情報を送信し、
前記共有鍵復元プログラムは、
前記暗号化情報を受信する受信ステップと、
受信した前記暗号化情報を復号して復号シ一 ド値を生成する復号ステ ップと、
前記共有鍵生成装置による共有鍵生成方法と同一の方法により、 生成 された前記復号シ一ド値から復号プライ ンド値及び復号共有鍵を生成す る共有鍵生成ステップと、
生成された前記復号ブライ ン ド値に基づいて、 生成された前記復号シ 一ド値を暗号化して、 再暗号化情報を生成する再暗号化ステップと、 受信された前記暗号化情報と生成された前記再暗号化情報とに基づい て、 前記復号共有鍵を出力するか否かを判断する判断ステップと、 出力すると判断される場合に、 生成された前記復号共有鍵を出力する 出力ステップと
含むことを特徴とする共有鍵復元プログラム。
43. 前記共有鍵復元プログラムは、 .コンピュータ読み取り可能な記録媒 体に記録されている
ことを特徴とする請求の範囲 4 2に記載の共有鍵復元プログラム。
PCT/JP2003/015212 2002-12-03 2003-11-28 鍵共有システム、共有鍵生成装置及び共有鍵復元装置 WO2004051920A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP03812328A EP1475920A4 (en) 2002-12-03 2003-11-28 KEY SHARING SYSTEM, SHARED KEY CREATING DEVICE, AND SHARED KEY RESTORING DEVICE
AU2003302544A AU2003302544A1 (en) 2002-12-03 2003-11-28 Key sharing system, shared key creation device, and shared key restoration device

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2002-351062 2002-12-03
JP2002351062 2002-12-03
JP2002-351063 2002-12-03
JP2002351063 2002-12-03

Publications (1)

Publication Number Publication Date
WO2004051920A1 true WO2004051920A1 (ja) 2004-06-17

Family

ID=32473683

Family Applications (2)

Application Number Title Priority Date Filing Date
PCT/JP2003/015212 WO2004051920A1 (ja) 2002-12-03 2003-11-28 鍵共有システム、共有鍵生成装置及び共有鍵復元装置
PCT/JP2003/015214 WO2004051921A1 (ja) 2002-12-03 2003-11-28 鍵共有システム、共有鍵生成装置及び共有鍵復元装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
PCT/JP2003/015214 WO2004051921A1 (ja) 2002-12-03 2003-11-28 鍵共有システム、共有鍵生成装置及び共有鍵復元装置

Country Status (5)

Country Link
US (2) US7471792B2 (ja)
EP (2) EP1475920A4 (ja)
KR (2) KR101027199B1 (ja)
AU (2) AU2003302545A1 (ja)
WO (2) WO2004051920A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100518374C (zh) * 2006-02-17 2009-07-22 鸿富锦精密工业(深圳)有限公司 接入点及其确定预共享密钥的方法
US8842835B2 (en) 2005-10-27 2014-09-23 Cisco Technology Network security system
CN109525385A (zh) * 2018-11-23 2019-03-26 全链通有限公司 一种共享密钥的封装方法、第一节点和第二节点
CN110622232A (zh) * 2017-05-25 2019-12-27 日本电信电话株式会社 秘密篡改探测系统、秘密篡改探测装置、秘密篡改探测方法以及程序
CN114070549A (zh) * 2020-07-31 2022-02-18 马上消费金融股份有限公司 一种密钥生成方法、装置、设备和存储介质

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998053637A1 (en) * 1997-05-21 1998-11-26 E.S.P. Communications, Inc. System, method and apparatus for 'caller only' initiated two-way wireless communication with caller generated billing
EP1746561A1 (en) * 2004-05-12 2007-01-24 Matsushita Electric Industrial Co., Ltd. Encryption system, encryption device, decryption device, program, and integrated circuit
US7598855B2 (en) 2005-02-01 2009-10-06 Location Based Technologies, Inc. Apparatus and method for locating individuals and objects using tracking devices
US20070229350A1 (en) * 2005-02-01 2007-10-04 Scalisi Joseph F Apparatus and Method for Providing Location Information on Individuals and Objects using Tracking Devices
WO2006100801A1 (ja) * 2005-03-23 2006-09-28 Kddi Corporation キーストリーム暗号化装置および方法ならびにプログラム
US9143323B2 (en) 2005-04-04 2015-09-22 Blackberry Limited Securing a link between two devices
US8316416B2 (en) * 2005-04-04 2012-11-20 Research In Motion Limited Securely using a display to exchange information
JP4372061B2 (ja) * 2005-07-01 2009-11-25 パナソニック株式会社 機密情報実装システム及びlsi
KR101155271B1 (ko) * 2005-09-29 2012-06-18 엘지전자 주식회사 신용카드 결제 시스템
CA2531411C (en) 2005-12-23 2017-02-14 Bce Inc System and method for encrypting traffic on a network
FR2898747A1 (fr) * 2006-03-15 2007-09-21 Gemplus Sa Procede de chiffrement cherchable dechiffrable, systeme pour un tel chiffrement
WO2007125877A1 (ja) * 2006-04-28 2007-11-08 Panasonic Corporation 通信装置、及び通信システム
US20080118009A1 (en) * 2006-11-20 2008-05-22 Yu-Min Chuang Pseudo-random number demodulation circuit of receiving device of wireless communication system
US7860244B2 (en) * 2006-12-18 2010-12-28 Sap Ag Secure computation of private values
JP5251520B2 (ja) * 2007-02-02 2013-07-31 日本電気株式会社 分散情報生成装置、復元装置、復元結果検証装置、秘密情報分散システム、方法およびプログラム
US8224355B2 (en) 2007-11-06 2012-07-17 Location Based Technologies Inc. System and method for improved communication bandwidth utilization when monitoring location information
US8774827B2 (en) 2007-04-05 2014-07-08 Location Based Technologies, Inc. Apparatus and method for generating position fix of a tracking device in accordance with a subscriber service usage profile to conserve tracking device power
US8102256B2 (en) 2008-01-06 2012-01-24 Location Based Technologies Inc. Apparatus and method for determining location and tracking coordinates of a tracking device
US8244468B2 (en) * 2007-11-06 2012-08-14 Location Based Technology Inc. System and method for creating and managing a personalized web interface for monitoring location information on individuals and objects using tracking devices
US9111189B2 (en) 2007-10-31 2015-08-18 Location Based Technologies, Inc. Apparatus and method for manufacturing an electronic package
US8497774B2 (en) 2007-04-05 2013-07-30 Location Based Technologies Inc. Apparatus and method for adjusting refresh rate of location coordinates of a tracking device
EP2168299A4 (en) * 2007-07-17 2011-10-05 Certicom Corp METHOD OF COMPRESSING CRYPTOGRAPHIC VALUE
US8654974B2 (en) * 2007-10-18 2014-02-18 Location Based Technologies, Inc. Apparatus and method to provide secure communication over an insecure communication channel for location information using tracking devices
US20090125171A1 (en) * 2007-11-08 2009-05-14 Gm Global Technology Operations, Inc. Processor security diagnostics for hybrid vehicle electric motor control system
FR2926651B1 (fr) * 2008-01-23 2010-05-21 Inside Contactless Procede et dispositifs de contre-mesure pour cryptographie asymetrique
JP2009278223A (ja) * 2008-05-13 2009-11-26 Panasonic Corp 電子証明システム及び秘匿通信システム
EP2120393A1 (en) * 2008-05-14 2009-11-18 Nederlandse Centrale Organisatie Voor Toegepast Natuurwetenschappelijk Onderzoek TNO Shared secret verification method
JP4666015B2 (ja) * 2008-07-08 2011-04-06 ソニー株式会社 コンテンツ配信システム、コンテンツ受信端末、及びコンテンツ配信方法
KR20100063301A (ko) * 2008-12-03 2010-06-11 노틸러스효성 주식회사 공유키 전송 장치, 금융 자동화 기기 및 그 제어 방법
US8731197B2 (en) * 2010-03-09 2014-05-20 Ebay Inc. Secure randomized input
EP2553622B1 (en) * 2010-03-31 2020-10-21 British Telecommunications public limited company Secure data recorder
US8831821B2 (en) 2010-12-17 2014-09-09 GM Global Technology Operations LLC Controller area network message transmission disable testing systems and methods
KR101233254B1 (ko) 2011-04-26 2013-02-14 숭실대학교산학협력단 가변길이 인증코드를 사용하는 무선 통신 단말간 세션키 공유 방법
US9122662B2 (en) 2011-06-01 2015-09-01 James Mason Faucett Processor safety test control systems and methods
US9172529B2 (en) * 2011-09-16 2015-10-27 Certicom Corp. Hybrid encryption schemes
US8731203B2 (en) * 2012-02-13 2014-05-20 Alephcloud Systems, Inc. Securing a secret of a user
US8996869B1 (en) * 2012-07-02 2015-03-31 Bae Systems Information And Electronic Systems Integration Inc. Secure mission module
JP5814880B2 (ja) * 2012-07-31 2015-11-17 三菱電機株式会社 暗号システム、暗号方法、暗号プログラム及び復号装置
KR102013841B1 (ko) * 2012-08-06 2019-08-23 삼성전자주식회사 데이터의 안전한 저장을 위한 키 관리 방법 및 그 장치
US9935768B2 (en) 2012-08-06 2018-04-03 Samsung Electronics Co., Ltd. Processors including key management circuits and methods of operating key management circuits
JP2014068140A (ja) * 2012-09-25 2014-04-17 Sony Corp 情報処理装置、情報処理方法及びプログラム
EP2932644B1 (en) * 2013-01-07 2019-04-24 Acano (UK) Limited Secrets renewability
US9143331B2 (en) * 2013-02-07 2015-09-22 Qualcomm Incorporated Methods and devices for authentication and key exchange
CN109548017B (zh) * 2013-03-05 2020-10-09 华为技术有限公司 一种密钥交互方法及装置
JP2014192612A (ja) * 2013-03-26 2014-10-06 Toshiba Corp 生成装置、暗号化装置、復号装置、生成方法、暗号化方法、復号方法およびプログラム
JP6067932B2 (ja) * 2013-08-30 2017-01-25 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. 鍵共有デバイス及び方法
RU2680761C1 (ru) * 2013-12-20 2019-02-26 Конинклейке Филипс Н.В. Безопасные преобразования данных
KR102195900B1 (ko) * 2013-12-20 2020-12-29 삼성전자주식회사 단말간 암호화된 메시지를 송수신하는 방법 및 장치
CN105337737B (zh) * 2014-07-03 2018-11-20 华为技术有限公司 公钥加密通信方法和装置
EP3195521B1 (en) 2014-08-29 2020-03-04 Visa International Service Association Methods for secure cryptogram generation
US10461933B2 (en) * 2015-01-27 2019-10-29 Visa International Service Association Methods for secure credential provisioning
US9813243B1 (en) * 2015-03-30 2017-11-07 EMC IP Holding Company LLC Methods and apparatus for password-based secret sharing schemes
EP3119031A1 (en) * 2015-07-16 2017-01-18 ABB Schweiz AG Encryption scheme using multiple parties
US9853813B2 (en) 2016-03-17 2017-12-26 Crater Dog Technologies, LLC Method for securing a private key
US10097948B2 (en) * 2016-03-31 2018-10-09 Intel Corporation Point-and-connect bluetooth pairing
US10917767B2 (en) 2016-03-31 2021-02-09 Intel Corporation IOT device selection
KR101924047B1 (ko) * 2016-05-10 2019-02-25 주식회사 엔젠소프트 암호화 방법 및 이를 이용한 송신 장치, 복호화 방법 및 이를 이용한 수신 장치
US10505909B2 (en) 2016-12-21 2019-12-10 Intel Corporation Dual physical channel secure connection
CN107196760B (zh) * 2017-04-17 2020-04-14 徐智能 具有可调整性的伴随式随机重构密钥的序列加密方法
KR101914028B1 (ko) * 2017-04-28 2018-11-01 삼성에스디에스 주식회사 부채널 공격에 안전한 연산 장치 및 방법
US11038671B2 (en) 2018-09-04 2021-06-15 International Business Machines Corporation Shared key processing by a storage device to secure links
US11025413B2 (en) 2018-09-04 2021-06-01 International Business Machines Corporation Securing a storage network using key server authentication
US11038698B2 (en) * 2018-09-04 2021-06-15 International Business Machines Corporation Securing a path at a selected node
US11088829B2 (en) 2018-09-04 2021-08-10 International Business Machines Corporation Securing a path at a node
US11991273B2 (en) 2018-09-04 2024-05-21 International Business Machines Corporation Storage device key management for encrypted host data
US11405203B2 (en) * 2020-02-17 2022-08-02 Eclypses, Inc. System and method for securely transferring data using generated encryption keys
CN114095151A (zh) * 2020-07-31 2022-02-25 马上消费金融股份有限公司 一种加解密方法、认证方法、装置、设备和存储介质
US11784798B2 (en) * 2021-03-30 2023-10-10 Visa International Service Association System, method, and computer program product for data security
CN114978554B (zh) * 2022-07-29 2022-10-18 广州匠芯创科技有限公司 一种软件授权认证系统及方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000516733A (ja) * 1996-08-19 2000-12-12 エヌティーアールユー クリプトシステムズ,インコーポレーテッド 公開鍵暗号システム方法および装置
JP2002252611A (ja) * 2000-12-19 2002-09-06 Matsushita Electric Ind Co Ltd 暗号通信システム、送信装置及び受信装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5937066A (en) 1996-10-02 1999-08-10 International Business Machines Corporation Two-phase cryptographic key recovery system
US5953420A (en) * 1996-10-25 1999-09-14 International Business Machines Corporation Method and apparatus for establishing an authenticated shared secret value between a pair of users
US5907618A (en) 1997-01-03 1999-05-25 International Business Machines Corporation Method and apparatus for verifiably providing key recovery information in a cryptographic system
JP2001222218A (ja) 2000-02-09 2001-08-17 Nippon Telegr & Teleph Corp <Ntt> 暗号化装置、方法、復号装置、方法、暗号システム及びプログラムを記憶した記憶媒体
US7155610B2 (en) 2000-12-19 2006-12-26 Matsushita Electric Industrial Co., Ltd. Cryptocommunication system, transmission apparatus, and reception apparatus
WO2003050998A1 (en) * 2001-12-07 2003-06-19 Ntru Cryptosystems, Inc. Digital signature and authentication method and apparatus

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000516733A (ja) * 1996-08-19 2000-12-12 エヌティーアールユー クリプトシステムズ,インコーポレーテッド 公開鍵暗号システム方法および装置
JP2002252611A (ja) * 2000-12-19 2002-09-06 Matsushita Electric Ind Co Ltd 暗号通信システム、送信装置及び受信装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8842835B2 (en) 2005-10-27 2014-09-23 Cisco Technology Network security system
CN100518374C (zh) * 2006-02-17 2009-07-22 鸿富锦精密工业(深圳)有限公司 接入点及其确定预共享密钥的方法
CN110622232A (zh) * 2017-05-25 2019-12-27 日本电信电话株式会社 秘密篡改探测系统、秘密篡改探测装置、秘密篡改探测方法以及程序
CN110622232B (zh) * 2017-05-25 2023-01-13 日本电信电话株式会社 秘密篡改探测系统、秘密篡改探测装置、秘密篡改探测方法以及程序
CN109525385A (zh) * 2018-11-23 2019-03-26 全链通有限公司 一种共享密钥的封装方法、第一节点和第二节点
CN114070549A (zh) * 2020-07-31 2022-02-18 马上消费金融股份有限公司 一种密钥生成方法、装置、设备和存储介质

Also Published As

Publication number Publication date
US20040174997A1 (en) 2004-09-09
KR20050083566A (ko) 2005-08-26
EP1569378A1 (en) 2005-08-31
AU2003302545A1 (en) 2004-06-23
EP1475920A1 (en) 2004-11-10
AU2003302544A1 (en) 2004-06-23
KR20050087815A (ko) 2005-08-31
WO2004051921A1 (ja) 2004-06-17
US20040165726A1 (en) 2004-08-26
KR101027199B1 (ko) 2011-04-06
EP1475920A4 (en) 2005-03-02
US7471792B2 (en) 2008-12-30
EP1569378A4 (en) 2006-08-02

Similar Documents

Publication Publication Date Title
WO2004051920A1 (ja) 鍵共有システム、共有鍵生成装置及び共有鍵復元装置
US7813512B2 (en) Encrypted communication system and communication device
JP3659791B2 (ja) 小時間鍵生成の方法及びシステム
JP5338668B2 (ja) 秘密情報分散システム、方法及びプログラム並びに伝送システム
US8972300B2 (en) Content distribution system
US7936874B2 (en) Information transfer system, encryption device, and decryption device
KR20050069936A (ko) 암호 장치, 복호 장치, 및 암호 시스템
WO2007011071A1 (ja) タイム装置、暗号化装置、復号化装置、暗号化/復号化システム
JP4422981B2 (ja) 暗号通信システム
US20020001383A1 (en) Cryptosystem using multivariable polynomials
JP4989293B2 (ja) コンテンツ配信システム
US7321658B2 (en) Padding application method ensuring security of cryptosystem and encryptor/decryptor
CN1745537B (zh) 密钥共享系统、共享密钥生成装置及共享密钥复原装置
JP4485175B2 (ja) 鍵共有システム、共有鍵生成装置及び共有鍵復元装置
US7155610B2 (en) Cryptocommunication system, transmission apparatus, and reception apparatus
JP2008177998A (ja) 同報通信暗号化方法、情報暗号化方法、情報復号方法、それらの装置、それらのプログラム、およびそれらの記録媒体
JP2004201293A (ja) 鍵共有システム、共有鍵生成装置及び共有鍵復元装置
US20120263296A1 (en) Private key compression
JP6275536B2 (ja) 限定受信システム、ならびに、コンテンツ配信装置、コンテンツ受信装置およびそれらのプログラム
JP2004135250A (ja) 情報処理システム及び情報処理方法
JP2004147270A (ja) 情報処理システム及び情報処理方法

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR 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 KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ 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 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 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 IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

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: 2003812328

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 1020047015153

Country of ref document: KR

WWP Wipo information: published in national office

Ref document number: 2003812328

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 20038A05040

Country of ref document: CN

WWP Wipo information: published in national office

Ref document number: 1020047015153

Country of ref document: KR

WWW Wipo information: withdrawn in national office

Ref document number: 2003812328

Country of ref document: EP