WO2014007296A1 - 順序保存暗号化システム、暗号化装置、復号化装置、暗号化方法、復号化方法およびこれらのプログラム - Google Patents

順序保存暗号化システム、暗号化装置、復号化装置、暗号化方法、復号化方法およびこれらのプログラム Download PDF

Info

Publication number
WO2014007296A1
WO2014007296A1 PCT/JP2013/068278 JP2013068278W WO2014007296A1 WO 2014007296 A1 WO2014007296 A1 WO 2014007296A1 JP 2013068278 W JP2013068278 W JP 2013068278W WO 2014007296 A1 WO2014007296 A1 WO 2014007296A1
Authority
WO
WIPO (PCT)
Prior art keywords
encryption
decryption
plaintext
ciphertext
input
Prior art date
Application number
PCT/JP2013/068278
Other languages
English (en)
French (fr)
Inventor
勇 寺西
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to US14/412,475 priority Critical patent/US9584315B2/en
Publication of WO2014007296A1 publication Critical patent/WO2014007296A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • 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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/007Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise
    • 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/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Definitions

  • the present invention relates to an order storage encryption system, an encryption device, a decryption device, an encryption method, a decryption method, and a program thereof.
  • the plaintext is not necessarily selected uniformly from a plaintext space. It is related with the order preservation
  • the usefulness of the database system may be impaired.
  • the process of comparing the magnitudes of numerical data and rearranging the records in that order can be easily performed in an unencrypted database and is routinely performed.
  • such processing cannot be performed with each data being encrypted.
  • a technique that makes it possible is order-preserving encryption described in Non-Patent Documents 1 and 2.
  • this order-preserving cipher if two plaintexts m and m ′ are m ⁇ m ′, ciphertexts Enc (K, m) and Enc (K, m ′) obtained by encrypting them with the same encryption key are also used. Since Enc (K, m) ⁇ Enc (K, m ′) is satisfied, by confirming the magnitude relationship between Enc (K, m) and Enc (K, m ′), Plain text m and m ′ without decryption It becomes possible to confirm the magnitude relationship between the two.
  • Patent Document 1 describes a bulletin board device that specifies a user who has given a maximum or minimum intention value by electronic bidding and the like and keeps another secret.
  • Patent Document 2 describes an encryption device that performs split replacement of divided plaintext data to the same size as an encryption key with a specific function before nonlinear encryption processing.
  • Patent Document 3 describes that a random number generation device used for a propagation model simulation of mobile communication can generate random numbers in accordance with a specific probability distribution, standard deviation, and correlation characteristics.
  • Patent Document 4 describes a communication terminal that transmits and receives data in which plain text data is given a correct authentication code and a dummy authentication code.
  • Patent Document 5 describes an apparatus and a method for performing a function calculation without revealing original data by a secret circuit calculation.
  • the numerical value to be encrypted is not necessarily “uniformly random”. For example, most numerical values such as human height, weight, annual income, achievement test results, and deviation values are similar to the binomial distribution centered on the average value. When such numerical values are in plain text, the order-preserving encryption technique described in Non-Patent Documents 1 and 2 cannot be applied.
  • Patent Document 1 specifies the maximum value and the minimum value from the encrypted numerical values, it does not perform encryption while maintaining the magnitude relationship.
  • the other patent documents 2 to 5 have different purposes. Therefore, even if the techniques described in Non-Patent Documents 1 and 2 are combined with the techniques described in Patent Documents 1 to 5, the technique of order-preserving encryption can be applied to plaintext that is not necessarily uniformly random. You can't get the technology to do.
  • An object of the present invention is to provide an order-preserving encryption system, encryption device, and decryption that enable encryption while maintaining the magnitude relationship even when a numerical value “not necessarily uniform and random” is plaintext.
  • An apparatus, an encryption method, a decryption method, and a program thereof are provided.
  • an order-preserving encryption system includes an encryption device that encrypts an input plaintext and outputs a ciphertext, and a decryption that decrypts the input ciphertext and outputs a plaintext.
  • a storage system for storing the encryption key necessary for the encryption process and the plaintext in general.
  • a preprocessing function part that operates a preprocessing function that converts a certain input value to an output value that is uniformly distributed, and a plaintext that is operated by the preprocessing function using a cryptographic key and an order-preserving encryption
  • an encryption unit for outputting a ciphertext obtained by encryption while maintaining the above.
  • an encryption apparatus is an encryption apparatus that encrypts an input plaintext with an order-preserving encryption and outputs a ciphertext, and an encryption key necessary for encryption processing is preliminarily stored.
  • an encryption unit that outputs a ciphertext obtained by encrypting a plaintext subjected to a preprocessing function while maintaining a magnitude relationship by using an encryption key and maintaining a magnitude relationship using an encryption key.
  • a decryption apparatus is a decryption apparatus that decrypts an input ciphertext using an order-preserving cipher and outputs a plaintext, and a decryption key required for decryption processing is preliminarily stored.
  • a post-processing function unit that outputs an output value obtained by applying an inverse function that converts to an output value that may not be distributed as a plain text.
  • an order-preserving encryption method includes an encryption device that encrypts an input plaintext and outputs a ciphertext, and a decryption that decrypts the input ciphertext and outputs a plaintext.
  • the encryption key necessary for the encryption process is stored in the storage means provided in advance in the encryption device, and generally one for plaintext.
  • the encryption unit of the encryption device uses the encryption key to encrypt while maintaining the magnitude relationship by the order storage encryption, and the encryption unit of the encryption device outputs the ciphertext obtained by the encryption. .
  • an order-preserving decryption method includes an encryption device that encrypts an input plaintext and outputs a ciphertext, and a decryption that decrypts the input ciphertext and outputs a plaintext.
  • the decryption key required for the decryption process is stored in the storage means provided in advance in the decryption device, and the ciphertext is decrypted using the decryption key.
  • the decryption unit of the decryption device performs decryption while maintaining the magnitude relationship by the order-preserving encryption, and the output from the decryption unit is used as an input value, and the post-processing function unit of the decryption device is generally uniformly distributed.
  • An inverse function for conversion to an output value that may not be applied is applied, and an output value obtained from the inverse function is output as plaintext by a post-processing function unit of the decoding device.
  • an order-preserving encryption program includes an encryption device that encrypts an input plaintext and outputs a ciphertext, and a decryption that decrypts the input ciphertext and outputs a plaintext.
  • the encryption key necessary for the encryption process is stored in the storage means provided in advance in the encryption device
  • the processor provided in the encryption device includes: For plaintext, generally, a procedure for applying a preprocessing function that converts input values that may not be uniformly distributed into output values that are uniformly distributed, and plaintext with a preprocessing function applied Are encrypted using an encryption key while maintaining the magnitude relationship, and a procedure for outputting a ciphertext obtained by the encryption is executed.
  • an order-preserving decryption program includes an encryption device that encrypts an input plaintext and outputs a ciphertext, and a decryption that decrypts the input ciphertext and outputs a plaintext.
  • a decryption device in which a decryption key necessary for decryption processing is stored in a storage unit provided in advance in the decryption device, and a processor provided in the decryption device includes: Procedure for decrypting ciphertext using order-preserving encryption with decryption key while maintaining magnitude relationship, output from decryption unit as input value, output that may not be generally distributed in general A procedure for applying an inverse function for converting to a value and an output value obtained from the inverse function are output as plain text.
  • the present invention applies a preprocessing function that converts an input value that may not be uniformly distributed to an output value that is uniformly distributed to plaintext, and then performs encryption. Therefore, even if the numerical value “not necessarily uniform and random” is in plain text, it is possible to encrypt while maintaining the magnitude relationship, order-preserving encryption
  • a system, an encryption device, a decryption device, an encryption method, a decryption method, and a program thereof can be provided.
  • the order storage encryption system 1 includes an encryption device 10 that encrypts an input plaintext and outputs a ciphertext, and a decryption device 20 that decrypts the input ciphertext and outputs a plaintext.
  • the encryption device 10 stores a storage unit 12 that stores an encryption key (secret key 111) necessary for encryption processing in advance and an input value that may not be generally distributed uniformly over plaintext.
  • a preprocessing function unit 102 that operates a preprocessing function for converting into output values distributed in a similar manner, and a plaintext that is operated by the preprocessing function is encrypted using an encryption key while maintaining a magnitude relationship by using order-preserving encryption
  • an encryption unit 103 that outputs a ciphertext obtained by the conversion.
  • this preprocessing function is to add an arbitrarily selected random number to a value obtained by inputting an input value to a cumulative probability distribution function of an integer set to which the input value belongs, and use this as an output value.
  • the decryption device 20 stores the decryption key (public key 211) corresponding to the encryption key in advance, and decrypts the ciphertext using the decryption key while maintaining the magnitude relationship by the order-preserving encryption.
  • a post-processing function unit 202 that outputs an output value obtained by applying an inverse function of the preprocessing function to the output from the decoding unit as an input value.
  • this inverse function is an output value that is the maximum value obtained by inputting a specific numerical value to the cumulative probability distribution function that is equal to or greater than the input value.
  • the order-preserving cryptographic system 1 can perform encryption while maintaining the magnitude relationship even when a numerical value “not necessarily uniform and random” is a plaintext. Hereinafter, this will be described in more detail.
  • FIG. 1 is an explanatory diagram showing a configuration of an order storage encryption system 1 according to an embodiment of the present invention.
  • the order storage encryption system 1 includes an encryption device 10 that encrypts plaintext and outputs a ciphertext, and a decryption device 20 that decrypts the ciphertext and outputs a plaintext.
  • the encryption device 10 has a configuration as a general computer device. That is, the encryption apparatus 10 includes a processor 11 that executes a computer program, a storage unit 12 that stores data, a communication unit 13 that performs data communication with other computers, and inputs from a user. Input / output means 14 for receiving and presenting the calculation result to the user is provided.
  • the decryption device 20 also has a configuration as a general computer device. That is, the decryption device 20 includes a processor 21, a storage unit 22, a communication unit 23, and an input / output unit 24 that are the same as the encryption device 10.
  • the processor 11 of the encryption apparatus 10 functions as the encryption key generation unit 101, the preprocessing function unit 102, and the encryption unit 103 by the operation of the order storage encryption program. Then, the processor 21 of the decoding device 20 operates as the decoding unit 201 and the post-processing function unit 202 by the operation of the order storage decoding program.
  • the encryption key generation unit 101 generates an encryption key used in the order storage encryption system 1.
  • This encryption key is based on the secret key cryptosystem, and the secret key 111 is stored in the storage unit 12 of the encryption device 10, and the public key 211 corresponding thereto is stored in the storage unit 22 of the decryption device 20.
  • the secret key does not go out of the encryption device 10, and the order storage encryption system 1 can be constructed while maintaining security.
  • the encryption device 10 has the encryption key generation unit 101.
  • the decryption device 20 has the encryption key generation unit, and the decryption device 20 uses the secret key.
  • the encryption device 10 may be changed to have a public key.
  • the encryption device 10 and the decryption device 20 may be the same computer device.
  • a computer different from both the encryption device 10 and the decryption device 20 may have an encryption key generation unit.
  • the encryption key may be based on a common key encryption method instead of a secret key encryption method.
  • the plaintext m is an integer.
  • FIG. 2 is a flowchart showing the operation of the order storage encryption system 1 shown in FIG.
  • the encryption key generation unit 101 generates a pair of the secret key 111 and the public key 211 (step S301), and stores the secret key 111 in the storage unit 12 of the encryption device 10 (step S302).
  • the public key 211 is passed to the decryption device 20 via the communication means 13 (step S303).
  • the decryption device 20 receives this via the communication means 23 and stores it in the storage means 22 (step S351).
  • the output ciphertext C is input to the decryption apparatus 20 via the communication means 13 and 23 or the input / output means 24.
  • a function that satisfies this condition is shown below. Assume that a set of specific integers is M (m ⁇ M), and a probability function f [P] (m) is defined for the probability distribution P on the set M as shown in Equation 1 below. Further, a cumulative distribution function F [P] (m) is defined for the probability function f [P] (m) as shown in the following formula 2. These f [P] (m) and F [P] (m) are desirably functions that can be calculated efficiently.
  • a raised to the power B is expressed as “A ⁇ B”.
  • the plaintext space M is a section ⁇ u, ..., v ⁇ .
  • the encryption method according to the present embodiment includes an encryption device 10 that encrypts an input plaintext and outputs a ciphertext, and a decryption device 20 that decrypts the input ciphertext and outputs a plaintext.
  • the encryption key necessary for the encryption process is stored in a storage means provided in advance in the encryption apparatus, and generally distributed uniformly over plaintext.
  • the preprocessing function unit of the encryption apparatus operates the preprocessing function for converting the input value that may not exist into the output value that is uniformly distributed (step S304 in FIG. 2), and the preprocessing function can be operated.
  • the encryption unit of the encryption device encrypts the plaintext using the encryption key, and the encryption unit of the encryption device outputs the ciphertext obtained by the encryption (step S305 in FIG. 2).
  • the decryption method includes an encryption device 10 that encrypts input plaintext and outputs a ciphertext, and a decryption device 20 that decrypts the input ciphertext and outputs a plaintext. And a decryption key required for the decryption process is stored in a storage means provided in advance in the decryption apparatus, and the ciphertext is decrypted using the decryption key.
  • a decryption key required for the decryption process is stored in a storage means provided in advance in the decryption apparatus, and the ciphertext is decrypted using the decryption key.
  • the order-preserving cipher (FIG. 2, step S352)
  • the output from the decryption unit is used as an input value
  • the post-processing function part of the decryption device is generally not uniformly distributed.
  • An inverse function for conversion to a possible output value is applied, and an output value obtained from this inverse function is output as plaintext by
  • each of the above operation steps is programmed so as to be executable by a computer, and these are executed by the processor 11 of the encryption device and the processor 21 of the decryption device that directly execute the steps.
  • the program may be recorded on a non-temporary recording medium, such as a DVD, a CD, or a flash memory. In this case, the program is read from the recording medium by a computer and executed.
  • such an arrangement is made to compensate for the disadvantage that it cannot be applied to plain text “not necessarily uniformly random”, which is in the order-preserving cipher described in Non-Patent Documents 1 and 2.
  • encryption processing can be performed while maintaining the size relationship, so that comparison of numerical data size and processing based on the result are possible, especially with the encryption database server as described above It becomes. Since this processing is routinely performed in an unencrypted database as described above, the convenience of the encrypted database server can be greatly improved.
  • the encryption device 10 and the decryption device 20 may be the same computer device.
  • the encryption key may be based on the common key encryption method instead of the secret key encryption method.
  • the plaintext m is an integer, but the method of the present invention can be applied to any numerical value other than an integer that can be compared in magnitude.
  • a computer different from both the encryption device 10 and the decryption device 20 may have an encryption key generation unit.
  • the encryption device is Storage means for storing in advance an encryption key necessary for encryption processing;
  • a pre-processing function unit that operates a pre-processing function that converts an input value that may not be uniformly distributed to an output value that is uniformly distributed to the plain text,
  • An order-preserving encryption system comprising: an encryption unit that outputs the ciphertext obtained by encrypting the plaintext subjected to the preprocessing function using the encryption key by order-preserving encryption.
  • the preprocessing function is Supplementary note 1, wherein a random number selected arbitrarily is added to a value obtained by inputting the input value to a cumulative probability distribution function of an integer set to which the input value belongs, and this is used as the output value.
  • a random number selected arbitrarily is added to a value obtained by inputting the input value to a cumulative probability distribution function of an integer set to which the input value belongs, and this is used as the output value.
  • the said decoding apparatus is: Storage means for previously storing a decryption key corresponding to the encryption key; A decryption unit for decrypting the ciphertext using the decryption key with an order-preserving cipher; A post-processing function unit that outputs, as an input value, an output value from the decryption unit and an output value obtained by applying an inverse function of the pre-processing function to the output value as the plaintext. Or the order preservation
  • the supplementary note is characterized in that the inverse function uses the maximum value that is obtained by inputting a specific numerical value to the cumulative probability distribution function as the input value or more as the output value. 3.
  • An encryption device that encrypts an input plaintext using a sequence storage cipher and outputs a ciphertext, Storage means for storing in advance an encryption key necessary for encryption processing;
  • a pre-processing function unit that operates a pre-processing function that converts an input value that may not be uniformly distributed to an output value that is uniformly distributed to the plain text,
  • An encryption apparatus comprising: an encryption unit that outputs the ciphertext obtained by encrypting the plaintext on which the preprocessing function is applied using the encryption key by order-preserving encryption.
  • a decryption device that decrypts an input ciphertext using an order storage cipher and outputs a plaintext, Storage means for storing in advance a decryption key necessary for the decryption process; A decryption unit for decrypting the ciphertext using the decryption key with an order-preserving cipher; After the output from the decryption unit is input as an input value, and the output value obtained by applying an inverse function that converts this into an output value that may not be generally distributed uniformly is output as the plaintext And a processing function unit.
  • An order-preserving cryptographic system comprising: an encryption device that encrypts input plaintext and outputs a ciphertext; and a decryption device that decrypts the input ciphertext and outputs the plaintext.
  • the encryption key necessary for the encryption process is stored in a storage means provided in advance in the encryption device, and
  • the preprocessing function unit of the encryption apparatus operates a preprocessing function for converting an input value that may generally not be uniformly distributed into an output value that is uniformly distributed.
  • the encryption unit of the encryption device encrypts the plaintext subjected to the preprocessing function using the encryption key, using the order storage encryption, The encryption method, wherein the encryption unit of the encryption device outputs the ciphertext obtained by the encryption.
  • An order-preserving cryptosystem comprising: an encryption device that encrypts input plaintext and outputs a ciphertext; and a decryption device that decrypts the input ciphertext and outputs the plaintext.
  • a decryption key necessary for the decryption process is stored in a storage means provided in advance in the decryption device, and The decryption unit of the decryption device decrypts the ciphertext by using the decryption key, using an order storage cipher, The output from the decoding unit is used as an input value, and an inverse function that converts this into an output value that the post-processing function unit of the decoding device may not generally be distributed uniformly is applied, The decryption method, wherein the post-processing function unit of the decryption apparatus outputs an output value obtained from the inverse function as the plaintext.
  • An order-preserving cryptographic system comprising: an encryption device that encrypts input plaintext and outputs a ciphertext; and a decryption device that decrypts the input ciphertext and outputs the plaintext.
  • the encryption key necessary for the encryption process is stored in a storage means provided in advance in the encryption device, and In the processor included in the encryption device, A procedure for applying a preprocessing function for converting an input value that may not be uniformly distributed to an output value that is uniformly distributed to the plaintext.
  • An order-preserving cryptographic system comprising: an encryption device that encrypts an input plaintext and outputs a ciphertext; and a decryption device that decrypts the input ciphertext and outputs the plaintext.
  • a decryption key necessary for the decryption process is stored in a storage means provided in advance in the decryption device, and In the processor provided in the decoding device, A procedure for decrypting the ciphertext using an order-preserving cipher using the decryption key; A procedure for applying an inverse function that converts an output from the decoding unit as an input value and converts it into an output value that may not be generally distributed in general. And an output value obtained from the inverse function as the plaintext.
  • the present invention is applicable to an encrypted database (secure database) server.
  • the encryption device and the decryption device can be applied to either the physically same device or different devices.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】必ずしも一様ランダムなものではない数値を平文とした場合にも大小関係を維持したまま暗号化することを可能とする順序保存暗号化システム等を提供する。 【解決手段】暗号化装置10は、暗号化処理に必要な暗号鍵を予め記憶する記憶手段12と、平文に対して、一般には一様に分布していない可能性のある入力値を一様に分布している出力値に変換する前処理関数を作用させる前処理関数部102と、前処理関数を作用させられた平文を暗号鍵を用いて順序保存暗号によって大小関係を維持したまま暗号化して得られる暗号文を出力する暗号化部103とを有する。また、この前処理関数は、入力値の属する整数集合の累積確率分布関数に入力値を入力して得られる値に任意に選ばれた乱数を加算してこれを出力値とするものである。

Description

順序保存暗号化システム、暗号化装置、復号化装置、暗号化方法、復号化方法およびこれらのプログラム
 本発明は、順序保存暗号化システム、暗号化装置、復号化装置、暗号化方法、復号化方法およびこれらのプログラムに関し、特に平文空間から一様ランダムに選ばれたものであるとは限らない平文を大小関係を維持したまま暗号化しうる順序保存暗号化システム等に関する。
 企業などにおける業務の根幹がコンピュータ化されることによって、ほとんどの企業が業務で使用する大量のデータを収容する大規模データベースを持つようになっている。これらのデータは、業務上重要なデータであり、また個人情報保護という観点からも、外部に対して漏洩することは絶対にあってはならない。このため、そのような大規模データベースでは、収容されるデータが暗号化されていることが多い。
 ところが、収容されているデータを暗号化することによって、逆にデータベースシステムの有用性が損なわれることもある。たとえば、数値データの大小を比較してその順番に各レコードを並べ替える処理は、暗号化されていないデータベースでは簡単にできることであり、日常的に行われていることである。しかしながら、各データが暗号化された状態のままでそのような処理を行うことはできない。
 特に、多くのユーザが、各自のクライアント装置が持つ暗号鍵によって暗号化されたデータを登録する暗号化データベース(セキュアデータベース)サーバでは、その暗号鍵まで当該サーバに送信することは管理上できない。またもし当該サーバが各々の暗号鍵に対応する復号鍵を持っていたとしても、各データを復号化するだけで膨大な計算処理が必要となるので、「各データを復号化処理してから大小比較する」ことは現実的に実現可能な処理ではない。
 近年のいわゆるクラウドコンピューティング技術の発展により、ユーザが自身のデータをネットワークを介して接続されたデータベースサーバに送信して管理させるという機会は、今後ますます増えるであろうと予想されている。従って、データベースに記憶されたデータを暗号化されたまま大小比較するという技術は、今後ますます必要性が増大するであろうと考えられる。
 そのようなことを可能とする技術が、非特許文献1~2に記載された順序保存暗号(Order-Preserving Encryption)である。この順序保存暗号では、2つの平文mおよびm’がm<m’であれば、これらを各々同一の暗号鍵で暗号化した暗号文Enc(K,m)およびEnc(K,m’)もEnc(K,m)<Enc(K,m’)を満たすので、Enc(K,m)とEnc(K,m’)との間の大小関係を確認することによって、これら各々の暗号文を復号しなくても、平文mとm’
との間の大小関係を確認することが可能となる。
 これに関連する他の技術文献として、次の各特許文献がある。その中でも特許文献1には、電子入札などで最大もしくは最小の意中値をつけたユーザとその意中値を特定し、他の秘密を保つという掲示板装置が記載されている。特許文献2には、非線形暗号化処理の前に、分割された平文データを特定の関数で暗号鍵と同じ大きさに拡大置換するという暗号化装置が記載されている。
 特許文献3には、移動体通信の伝搬モデルシミュレーションなどに使用される乱数列生成装置で、特定の確率分布、標準偏差、相関特性に合わせて乱数を発生することが可能であるというものが記載されている。特許文献4には、平文データに正しい認証コードとダミー認証コードを付与したデータを送受信するという通信端末が記載されている。特許文献5には、秘匿回路計算によって元のデータを明かさずに関数計算をする装置および方法などが記載されている。
特開2002-304287号公報 特開2003-241656号公報 特開2003-323292号公報 特開2007-219157号公報 特開2008-176193号公報
AlexandraBoldyreva, Nathan Chenette, Younho Lee and Adam O'Neill. Order-PreservingSymmetric Encryption. EUROCRYPT 2009. pp.224-241. AlexandraBoldyreva, Nathan Chenette, Adam O'Neill. Order-Preserving EncryptionRevisited: Improved Security Analysis and Alternative Solutions. CRYPTO 2011:578-595
 この順序保存暗号は現在のところ、非特許文献1~2に記載されたもの以外に有効な技術はみられない。非特許文献1~2に記載された順序保存暗号では、暗号化される対象である平文の数値が「平文空間から一様ランダムに選ばれた」ものであることが、この技術の成立前提となっている。これ以外の場合では、この暗号の安全性を担保することはできない。
 しかしながら、現実の世界では、暗号化される対象となる数値は必ずしも「一様ランダム」なものであるとは限らない。たとえば人間の身長、体重、年収、学力試験の成績、偏差値など、ほとんどの数値は平均値を中心とした二項分布に近い分布となるものである。このような数値を平文とした場合には、非特許文献1~2に記載された順序保存暗号の技術を適用することはできない。
 ちなみに特許文献1は暗号化された数値の中から最大値と最小値を特定するというものではあるが、大小関係を維持したまま暗号化するものではない。他の特許文献2~5はそもそもの目的が異なる。従って、非特許文献1~2に記載の技術に特許文献1~5に記載の技術を組み合わせたとしても、「必ずしも一様ランダムなものではない」平文に対して順序保存暗号の技術を適用可能にする技術を得ることはできない。
 本発明の目的は、「必ずしも一様ランダムなものではない」数値を平文とした場合にも大小関係を維持したまま暗号化することを可能とする順序保存暗号化システム、暗号化装置、復号化装置、暗号化方法、復号化方法およびこれらのプログラムを提供することにある。
 上記目的を達成するため、本発明に係る順序保存暗号化システムは、入力された平文を暗号化して暗号文を出力する暗号化装置と、入力された暗号文を復号化して平文を出力する復号化装置とからなる順序保存暗号システムであって、暗号化装置が、暗号化処理に必要な暗号鍵を予め記憶する記憶手段と、平文に対して、一般には一様に分布していない可能性のある入力値を一様に分布している出力値に変換する前処理関数を作用させる前処理関数部と、前処理関数を作用させられた平文を暗号鍵を用いて順序保存暗号によって大小関係を維持したまま暗号化して得られる暗号文を出力する暗号化部とを有することを特徴とする。
 上記目的を達成するため、本発明に係る暗号化装置は、入力された平文を順序保存暗号によって暗号化して暗号文を出力する暗号化装置であって、暗号化処理に必要な暗号鍵を予め記憶する記憶手段と、平文に対して、一般には一様に分布していない可能性のある入力値を一様に分布している出力値に変換する前処理関数を作用させる前処理関数部と、前処理関数を作用させられた平文を暗号鍵を用いて順序保存暗号によって大小関係を維持したまま暗号化して得られる暗号文を出力する暗号化部とを有することを特徴とする。
 上記目的を達成するため、本発明に係る復号化装置は、入力された暗号文を順序保存暗号によって復号化して平文を出力する復号化装置であって、復号化処理に必要な復号鍵を予め記憶する記憶手段と、暗号文を復号鍵を用いて順序保存暗号によって大小関係を維持したまま復号化する復号化部と、復号化部からの出力を入力値として、これを一般には一様に分布していない可能性のある出力値に変換する逆関数を作用させて得られる出力値を平文として出力する後処理関数部とを有することを特徴とする。
 上記目的を達成するため、本発明に係る順序保存暗号化方法は、入力された平文を暗号化して暗号文を出力する暗号化装置と、入力された暗号文を復号化して平文を出力する復号化装置とからなる順序保存暗号システムにあって、暗号化処理に必要な暗号鍵が暗号化装置に予め備えられた記憶手段に記憶されているものであると共に、平文に対して、一般には一様に分布していない可能性のある入力値を一様に分布している出力値に変換する前処理関数を暗号化装置の前処理関数部が作用させ、前処理関数を作用させられた平文を暗号鍵を用いて暗号化装置の暗号化部が順序保存暗号によって大小関係を維持したまま暗号化し、暗号化によって得られる暗号文を暗号化装置の暗号化部が出力することを特徴とする。
 上記目的を達成するため、本発明に係る順序保存復号化方法は、入力された平文を暗号化して暗号文を出力する暗号化装置と、入力された暗号文を復号化して平文を出力する復号化装置とからなる順序保存暗号システムにあって、復号化処理に必要な復号鍵が復号化装置に予め備えられた記憶手段に記憶されているものであると共に、暗号文を復号鍵を用いて復号化装置の復号化部が順序保存暗号によって大小関係を維持したまま復号化し、復号化部からの出力を入力値として、これを復号化装置の後処理関数部が一般には一様に分布していない可能性のある出力値に変換する逆関数を作用させ、この逆関数から得られる出力値を復号化装置の後処理関数部が平文として出力することを特徴とする。
 上記目的を達成するため、本発明に係る順序保存暗号化プログラムは、入力された平文を暗号化して暗号文を出力する暗号化装置と、入力された暗号文を復号化して平文を出力する復号化装置とからなる順序保存暗号システムにあって、暗号化処理に必要な暗号鍵が暗号化装置に予め備えられた記憶手段に記憶されているものであると共に、暗号化装置が備えるプロセッサに、平文に対して、一般には一様に分布していない可能性のある入力値を一様に分布している出力値に変換する前処理関数を作用させる手順、前処理関数を作用させられた平文を暗号鍵を用いて順序保存暗号によって大小関係を維持したまま暗号化する手順、および暗号化によって得られる暗号文を出力する手順を実行させることを特徴とする。
 上記目的を達成するため、本発明に係る順序保存復号化プログラムは、入力された平文を暗号化して暗号文を出力する暗号化装置と、入力された暗号文を復号化して平文を出力する復号化装置とからなる順序保存暗号システムにあって、復号化処理に必要な復号鍵が復号化装置に予め備えられた記憶手段に記憶されているものであると共に、復号化装置が備えるプロセッサに、暗号文を復号鍵を用いて順序保存暗号によって大小関係を維持したまま復号化する手順、復号化部からの出力を入力値として、これを一般には一様に分布していない可能性のある出力値に変換する逆関数を作用させる手順、およびこの逆関数から得られる出力値を平文として出力することを特徴とする。
 本発明は、上記したように、一様に分布していない可能性のある入力値を一様に分布している出力値に変換する前処理関数を平文に作用させてから、その後で暗号化するように構成したので、「必ずしも一様ランダムなものではない」数値を平文とした場合にも大小関係を維持したまま暗号化することが可能であるという、優れた特徴を持つ順序保存暗号化システム、暗号化装置、復号化装置、暗号化方法、復号化方法およびこれらのプログラムを提供することができる。
本発明の実施形態に係る順序保存暗号システムの構成について示す説明図である。 図1に示した順序保存暗号システムの動作について示すフローチャートである。 図2のステップS353として示した逆関数m=Inv(x)の算出方法の一例について示すフローチャートである。
(実施形態)
 以下、本発明の実施形態の構成について添付図1に基づいて説明する。
 最初に、本実施形態の基本的な内容について説明し、その後でより具体的な内容について説明する。
 本実施形態に係る順序保存暗号システム1は、入力された平文を暗号化して暗号文を出力する暗号化装置10と、入力された暗号文を復号化して平文を出力する復号化装置20とからなる順序保存暗号システムである。暗号化装置10は、暗号化処理に必要な暗号鍵(秘密鍵111)を予め記憶する記憶手段12と、平文に対して、一般には一様に分布していない可能性のある入力値を一様に分布している出力値に変換する前処理関数を作用させる前処理関数部102と、前処理関数を作用させられた平文を暗号鍵を用いて順序保存暗号によって大小関係を維持したまま暗号化して得られる暗号文を出力する暗号化部103とを有する。また、この前処理関数は、入力値の属する整数集合の累積確率分布関数に入力値を入力して得られる値に任意に選ばれた乱数を加算してこれを出力値とするものである。
 復号化装置20は、暗号鍵に対応する復号鍵(公開鍵211)を予め記憶する記憶手段22と、暗号文を復号鍵を用いて順序保存暗号によって大小関係を維持したまま復号化する復号化部201と、復号化部からの出力を入力値として、これに前処理関数の逆関数を作用させて得られる出力値を平文として出力する後処理関数部202とを有する。また、この逆関数は、累積確率分布関数に特定の数値を入力して得られる値が入力値以上となる最大の数値を、出力値とするものである。
 以上の構成を備えることにより、順序保存暗号システム1は、「必ずしも一様ランダムなものではない」数値を平文とした場合にも大小関係を維持したまま暗号化することが可能となる。
 以下、これをより詳細に説明する。
 図1は、本発明の実施形態に係る順序保存暗号システム1の構成について示す説明図である。順序保存暗号システム1は、平文を暗号化して暗号文を出力する暗号化装置10と、暗号文を復号化して平文を出力する復号化装置20とからなる。
 暗号化装置10は、一般的なコンピュータ装置としての構成を備える。即ち、暗号化装置10は、コンピュータプログラムを実行する主体となるプロセッサ11と、データを記憶する記憶手段12と、他のコンピュータとの間でデータ通信を行う通信手段13と、ユーザからの入力を受け付け、また演算結果をユーザに提示する入出力手段14とを備える。
 復号化装置20も、一般的なコンピュータ装置としての構成を備える。即ち、復号化装置20は、暗号化装置10と各々同様の、プロセッサ21と、記憶手段22と、通信手段23と、入出力手段24とを備える。
 暗号化装置10のプロセッサ11は、順序保存暗号化プログラムが動作することにより、暗号鍵生成部101、前処理関数部102、暗号化部103として機能する。そして、復号化装置20のプロセッサ21は、順序保存復号化プログラムが動作することにより、復号化部201、後処理関数部202として動作する。
 暗号鍵生成部101は、順序保存暗号システム1で使用される暗号鍵を生成する。この暗号鍵は秘密鍵暗号方式によるものであり、秘密鍵111は暗号化装置10の記憶手段12に記憶され、これに対応する公開鍵211は復号化装置20の記憶手段22に記憶される。このように構成することにより、秘密鍵が暗号化装置10から外に出ることはなく、セキュリティを保ちつつ順序保存暗号システム1を構築することができる。
 図1に示す順序保存暗号システム1では、暗号化装置10が暗号鍵生成部101を持つ構成としたが、これを復号化装置20が暗号鍵生成部を持ち、復号化装置20が秘密鍵を、暗号化装置10が公開鍵を各々持つ構成に変更してもよい。また、暗号化装置10と復号化装置20を同一のコンピュータ装置としてもよい。
 暗号鍵の配送に係るセキュリティ上の問題が解決できるなら、暗号化装置10および復号化装置20のいずれとも異なるコンピュータが暗号鍵生成部を持つ構成としてもよい。また、暗号鍵は秘密鍵暗号方式ではなく共通鍵暗号方式によるものとしてもよい。
 本実施形態では、平文mは整数である。前処理関数部102は、入出力手段14から入力された平文mに対して、後述の関数Funcを適用し、x=Func(m)を出力する。暗号化部103は、この出力されたxを、非特許文献1~2に記載された順序保存暗号技術によって秘密鍵111=Kを用いて暗号化し、算出されたC=Enc(K,x)を暗号文として出力する。
 復号化部201は、暗号化装置10によって暗号化された暗号文Cを、前述の順序保存暗号技術によって公開鍵211=K’を用いて復号化し、算出されたx=Dec(K’,C)を出力する。後処理関数部202は、復号化部201から出力されたxに、関数Funcの逆関数であるInvを適用し、算出されたm=Inv(x)を元の平文として出力する。
 図2は、図1に示した順序保存暗号システム1の動作について示すフローチャートである。まず暗号鍵生成部101が秘密鍵111と公開鍵211とを一対で生成し(ステップS301)、秘密鍵111を暗号化装置10の記憶手段12に記憶する(ステップS302)。また公開鍵211を通信手段13を介して復号化装置20に渡す(ステップS303)。復号化装置20はこれを通信手段23を介して受信して、記憶手段22に記憶させる(ステップS351)。
 この前提で、暗号化装置10が入出力手段14を介して平文mを入力されると、前処理関数部102がこの平文mに対して関数Funcを適用し、x=Func(m)を出力する(ステップS304)。そして暗号化部103は、この出力されたxを、秘密鍵111=Kを用いて暗号化し、算出されたC=Enc(K,x)を暗号文として出力する(ステップS305)。
 出力された暗号文Cは、通信手段13および23を介して、もしくは入出力手段24を介して、復号化装置20に入力される。この暗号文Cが入力されると、復号化部201がこれを公開鍵211=K’を用いて復号化し、算出されたx=Dec(K’,C)を出力する(ステップS352)。そしてこの出力されたxに、後処理関数部202が逆関数Invを適用し、算出されたm=Inv(x)を元の平文として入出力手段24を介して出力する(ステップS353)。
 (関数Func) 関数Funcおよびその逆関数Invについて説明する。この関数Funcは、たとえば正規分布など、一般には一様に分布していないかもしれない平文mに対しても、Func(m)は一様に分布している値となる、そのような関数である。
 この条件を満たす関数の一例を示す。特定の整数の集合をM(m∈M)とし、この集合M上の確率分布Pに対して、以下の数1に示すように確率関数f[P](m)を定義する。さらにこの確率関数f[P](m)に対して、以下の数2に示すように累積分布関数F[P](m)を定義する。これらf[P](m)およびF[P](m)は、効率的に計算できる関数であることが望ましい。
Figure JPOXMLDOC01-appb-M000001
Figure JPOXMLDOC01-appb-M000002
 ここで、M上の確率分布Pで以下の数3に示す性質を満たすものを定義する。具体的には、たとえば例えばMを集合{1,…,n}、Pを2項分布B(n,1/2)と定義すれば、N=2^nに対してこの性質が満たされる。ここで、本明細書の数式以外の行では「AのB乗」を「A^B」と表記する。
Figure JPOXMLDOC01-appb-M000003
 この確率分布Pに対して、x=Func(m)を以下の数4に示すように定義することができる。
Figure JPOXMLDOC01-appb-M000004
 さらに、この逆関数であるm=Inv(x)は、以下の数5に示すように定義することができる
Figure JPOXMLDOC01-appb-M000005
 図3は、図2のステップS353として示した逆関数m=Inv(x)の算出方法の一例について示すフローチャートである。このm=Inv(x)は、図3に示す二分法によって容易に計算することが可能である。ただし平文空間Mが区間{u,…,v}であることを前提とする。
 まず後処理関数部202はx>F[P](v-1)であるか否かを判断し(ステップS401)、x>F[P](v-1)であればこのvを出力値として処理を終了する(ステップS402)。x>F[P](v-1)でなければ、m[0]=u、m[1]=vと各々定義し(ステップS403)、m[1]-m[0]=1であるか否かを判断する(ステップS404)。
 ステップS403で、m[1]-m[0]=1であればこのm[1]を出力値として処理を終了する(ステップS405)。m[1]-m[0]=1でなければ、mをm[0]+m[1]/2以下の最大の整数と定義し(ステップS406)、x>F[P](m-1)であるか否かについて判断する(ステップS407)。
 ステップS407で、x>F[P](m-1)であればm[0]=mと定義してステップS404に戻る(ステップS408)。x>F[P](m-1)でなければm[1]=mと定義してステップS404に戻る(ステップS409)。
(実施形態の全体的な動作)
 次に、上記の実施形態の全体的な動作について説明する。
 本実施形態に係る暗号化方法は、入力された平文を暗号化して暗号文を出力する暗号化装置10と、入力された暗号文を復号化して平文を出力する復号化装置20とからなる順序保存暗号システム1にあって、暗号化処理に必要な暗号鍵が暗号化装置に予め備えられた記憶手段に記憶されているものであると共に、平文に対して、一般には一様に分布していない可能性のある入力値を一様に分布している出力値に変換する前処理関数を暗号化装置の前処理関数部が作用させ(図2・ステップS304)、前処理関数を作用させられた平文を暗号鍵を用いて暗号化装置の暗号化部が順序保存暗号によって暗号化し、暗号化によって得られる暗号文を暗号化装置の暗号化部が出力する(図2・ステップS305)。
 また、本実施形態に係る復号化方法は、入力された平文を暗号化して暗号文を出力する暗号化装置10と、入力された暗号文を復号化して平文を出力する復号化装置20とからなる順序保存暗号システム1にあって、復号化処理に必要な復号鍵が復号化装置に予め備えられた記憶手段に記憶されているものであると共に、暗号文を復号鍵を用いて復号化装置の復号化部が順序保存暗号によって復号化し(図2・ステップS352)、復号化部からの出力を入力値として、これを復号化装置の後処理関数部が一般には一様に分布していない可能性のある出力値に変換する逆関数を作用させ、この逆関数から得られる出力値を復号化装置の後処理関数部が平文として出力する(図2・ステップS353)。
 ここで、上記各動作ステップについては、これをコンピュータで実行可能にプログラム化し、これらを前記各ステップを直接実行する暗号化装置のプロセッサ11、および復号化装置のプロセッサ21に実行させるようにしてもよい。本プログラムは、非一時的な記録媒体、例えば、DVD、CD、フラッシュメモリ等に記録されてもよい。その場合、本プログラムは、記録媒体からコンピュータによって読み出され、実行される。
 この動作により、本実施形態は以下のような効果を奏する。
 本実施形態によれば、非特許文献1~2に記載された順序保存暗号にあった「必ずしも一様ランダムなものではない」平文に対して適用することができないという短所を補って、そのような数値を平文とした場合にも大小関係を維持したまま暗号化の処理を行うことができるので、特に前述のような暗号化データベースサーバで数値データの大小の比較とその結果に基づく処理が可能となる。この処理は、前述のように暗号化されていないデータベースでは日常的に行われていることであるので、暗号化データベースサーバの利便性を大幅に向上させることが可能となる。
(実施形態の拡張)
 上記した実施形態は、以上で説明した本発明の趣旨を改変しない範囲で、様々な拡張が可能である。以下、これについて説明する。
 まず、前述したように暗号化装置10が暗号鍵生成部101を持つ構成の順序保存暗号システム1について説明したが、これを復号化装置20が暗号鍵生成部を持ち、復号化装置20が秘密鍵を、暗号化装置10が公開鍵を各々持つ構成に変更してもよい。
 また、暗号化装置10と復号化装置20を同一のコンピュータ装置としてもよい。この場合は、暗号鍵を秘密鍵暗号方式ではなく共通鍵暗号方式によるものとしてもよい。
 さらに、実施形態では平文mは整数であるものとしたが、整数以外にも大小の比較が可能な数値であれば本発明の方法を適用することが可能である。
 そして、暗号鍵の配送に係るセキュリティ上の問題が解決できるなら(たとえば別の暗号鍵によってさらに暗号化する、インターネットとは異なる管理専用ネットワークを介して配送する、記憶媒体に記憶させて持参あるいは郵送する…などのように)、暗号化装置10および復号化装置20のいずれとも異なるコンピュータが暗号鍵生成部を持つ構成としてもよい。
 これまで本発明について図面に示した特定の実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができる。
 上述した実施形態について、その新規な技術内容の要点をまとめると、以下のようになる。なお、上記実施形態の一部または全部は、新規な技術として以下のようにまとめられるが、本発明は必ずしもこれに限定されるものではない。
(付記1) 入力された平文を暗号化して暗号文を出力する暗号化装置と、入力された前記暗号文を復号化して前記平文を出力する復号化装置とからなる順序保存暗号システムであって、
 前記暗号化装置が、
 暗号化処理に必要な暗号鍵を予め記憶する記憶手段と、
 前記平文に対して、一般には一様に分布していない可能性のある入力値を一様に分布している出力値に変換する前処理関数を作用させる前処理関数部と、
 前記前処理関数を作用させられた平文を前記暗号鍵を用いて順序保存暗号によって暗号化して得られる前記暗号文を出力する暗号化部と
を有することを特徴とする順序保存暗号システム。
(付記2) 前記前処理関数が、
 前記入力値の属する整数集合の累積確率分布関数に前記入力値を入力して得られる値に任意に選ばれた乱数を加算してこれを前記出力値とする
ことを特徴とする、付記1に記載の順序保存暗号システム。
(付記3) 前記復号化装置が、
 前記暗号鍵に対応する復号鍵を予め記憶する記憶手段と、
 前記暗号文を前記復号鍵を用いて順序保存暗号によって復号化する復号化部と、
 前記復号化部からの出力を入力値として、これに前記前処理関数の逆関数を作用させて得られる出力値を前記平文として出力する後処理関数部と
を有することを特徴とする、付記1または2に記載の順序保存暗号システム。
(付記4) 前記逆関数が、前記累積確率分布関数に特定の数値を入力して得られる値が前記入力値以上となる最大の前記数値を、前記出力値とする
ことを特徴とする、付記3に記載の順序保存暗号システム。
(付記5) 入力された平文を順序保存暗号によって暗号化して暗号文を出力する暗号化装置であって、
 暗号化処理に必要な暗号鍵を予め記憶する記憶手段と、
 前記平文に対して、一般には一様に分布していない可能性のある入力値を一様に分布している出力値に変換する前処理関数を作用させる前処理関数部と、
 前記前処理関数を作用させられた平文を前記暗号鍵を用いて順序保存暗号によって暗号化して得られる前記暗号文を出力する暗号化部と
を有することを特徴とする暗号化装置。
(付記6) 入力された暗号文を順序保存暗号によって復号化して平文を出力する復号化装置であって、
 復号化処理に必要な復号鍵を予め記憶する記憶手段と、
 前記暗号文を前記復号鍵を用いて順序保存暗号によって復号化する復号化部と、
 前記復号化部からの出力を入力値として、これを一般には一様に分布していない可能性のある出力値に変換する逆関数を作用させて得られる前記出力値を前記平文として出力する後処理関数部と
を有することを特徴とする復号化装置。
(付記7) 入力された平文を暗号化して暗号文を出力する暗号化装置と、入力された前記暗号文を復号化して前記平文を出力する復号化装置とからなる順序保存暗号システムにあって、
 暗号化処理に必要な暗号鍵が前記暗号化装置に予め備えられた記憶手段に記憶されているものであると共に、
 前記平文に対して、一般には一様に分布していない可能性のある入力値を一様に分布している出力値に変換する前処理関数を前記暗号化装置の前処理関数部が作用させ、
 前記前処理関数を作用させられた平文を前記暗号鍵を用いて前記暗号化装置の暗号化部が順序保存暗号によって暗号化し、
 前記暗号化によって得られる前記暗号文を前記暗号化装置の前記暗号化部が出力する
ことを特徴とする暗号化方法。
(付記8) 入力された平文を暗号化して暗号文を出力する暗号化装置と、入力された前記暗号文を復号化して前記平文を出力する復号化装置とからなる順序保存暗号システムにあって、
 復号化処理に必要な復号鍵が前記復号化装置に予め備えられた記憶手段に記憶されているものであると共に、
 前記暗号文を前記復号鍵を用いて前記復号化装置の復号化部が順序保存暗号によって復号化し、
 前記復号化部からの出力を入力値として、これを前記復号化装置の後処理関数部が一般には一様に分布していない可能性のある出力値に変換する逆関数を作用させ、
 この逆関数から得られる出力値を前記復号化装置の前記後処理関数部が前記平文として出力する
ことを特徴とする復号化方法。
(付記9) 入力された平文を暗号化して暗号文を出力する暗号化装置と、入力された前記暗号文を復号化して前記平文を出力する復号化装置とからなる順序保存暗号システムにあって、
 暗号化処理に必要な暗号鍵が前記暗号化装置に予め備えられた記憶手段に記憶されているものであると共に、
 前記暗号化装置が備えるプロセッサに、
 前記平文に対して、一般には一様に分布していない可能性のある入力値を一様に分布している出力値に変換する前処理関数を作用させる手順、
 前記前処理関数を作用させられた平文を前記暗号鍵を用いて順序保存暗号によって暗号化する手順、
 および前記暗号化によって得られる前記暗号文を出力する手順
を実行させることを特徴とする暗号化プログラム。
(付記10) 入力された平文を暗号化して暗号文を出力する暗号化装置と、入力された前記暗号文を復号化して前記平文を出力する復号化装置とからなる順序保存暗号システムにあって、
 復号化処理に必要な復号鍵が前記復号化装置に予め備えられた記憶手段に記憶されているものであると共に、
 前記復号化装置が備えるプロセッサに、
 前記暗号文を前記復号鍵を用いて順序保存暗号によって復号化する手順、
 前記復号化部からの出力を入力値として、これを一般には一様に分布していない可能性のある出力値に変換する逆関数を作用させる手順、
 およびこの逆関数から得られる出力値を前記平文として出力する
ことを特徴とする復号化プログラム。
 この出願は2012年7月4日に出願された日本出願特願2012-150166を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 本発明は暗号化データベース(セキュアデータベース)サーバに対して適用可能である。暗号化装置と復号化装置は、物理的には同一の装置であっても異なる装置であっても、いずれの場合においても適用可能である。
  1 順序保存暗号システム
  10 暗号化装置
  11、21 プロセッサ
  12、22 記憶手段
  13、23 通信手段
  14、24 入出力手段
  20 復号化装置
  101 暗号鍵生成部
  102 前処理関数部
  103 暗号化部
  111 秘密鍵
  201 復号化部
  202 後処理関数部
  211 公開鍵

Claims (10)

  1.  入力された平文を暗号化して暗号文を出力する暗号化装置と、入力された前記暗号文を復号化して前記平文を出力する復号化装置とからなる順序保存暗号システムであって、
     前記暗号化装置が、
     暗号化処理に必要な暗号鍵を予め記憶する記憶手段と、
     前記平文に対して、一般には一様に分布していない可能性のある入力値を一様に分布している出力値に変換する前処理関数を作用させる前処理関数部と、
     前記前処理関数を作用させられた平文を前記暗号鍵を用いて順序保存暗号によって暗号化して得られる前記暗号文を出力する暗号化部と
    を有することを特徴とする順序保存暗号システム。
  2.  前記前処理関数が、
     前記入力値の属する整数集合の累積確率分布関数に前記入力値を入力して得られる値に任意に選ばれた乱数を加算してこれを前記出力値とする
    ことを特徴とする、請求項1に記載の順序保存暗号システム。
  3.  前記復号化装置が、
     前記暗号鍵に対応する復号鍵を予め記憶する記憶手段と、
     前記暗号文を前記復号鍵を用いて順序保存暗号によって復号化する復号化部と、
     前記復号化部からの出力を入力値として、これに前記前処理関数の逆関数を作用させて得られる出力値を前記平文として出力する後処理関数部と
    を有することを特徴とする、請求項1または2に記載の順序保存暗号システム。
  4.  前記逆関数が、前記累積確率分布関数に特定の数値を入力して得られる値が前記入力値以上となる最大の前記数値を、前記出力値とする
    ことを特徴とする、請求項3に記載の順序保存暗号システム。
  5.  入力された平文を順序保存暗号によって暗号化して暗号文を出力する暗号化装置であって、
     暗号化処理に必要な暗号鍵を予め記憶する記憶手段と、
     前記平文に対して、一般には一様に分布していない可能性のある入力値を一様に分布している出力値に変換する前処理関数を作用させる前処理関数部と、
     前記前処理関数を作用させられた平文を前記暗号鍵を用いて順序保存暗号によって暗号化して得られる前記暗号文を出力する暗号化部と
    を有することを特徴とする暗号化装置。
  6.  入力された暗号文を順序保存暗号によって復号化して平文を出力する復号化装置であって、
     復号化処理に必要な復号鍵を予め記憶する記憶手段と、
     前記暗号文を前記復号鍵を用いて順序保存暗号によって復号化する復号化部と、
     前記復号化部からの出力を入力値として、これを一般には一様に分布していない可能性のある出力値に変換する逆関数を作用させて得られる前記出力値を前記平文として出力する後処理関数部と
    を有することを特徴とする復号化装置。
  7.  入力された平文を暗号化して暗号文を出力する暗号化装置と、入力された前記暗号文を復号化して前記平文を出力する復号化装置とからなる順序保存暗号システムにあって、
     暗号化処理に必要な暗号鍵が前記暗号化装置に予め備えられた記憶手段に記憶されているものであると共に、
     前記平文に対して、一般には一様に分布していない可能性のある入力値を一様に分布している出力値に変換する前処理関数を前記暗号化装置の前処理関数部が作用させ、
     前記前処理関数を作用させられた平文を前記暗号鍵を用いて前記暗号化装置の暗号化部が順序保存暗号によって暗号化し、
     前記暗号化によって得られる前記暗号文を前記暗号化装置の前記暗号化部が出力する
    ことを特徴とする暗号化方法。
  8.  入力された平文を暗号化して暗号文を出力する暗号化装置と、入力された前記暗号文を復号化して前記平文を出力する復号化装置とからなる順序保存暗号システムにあって、
     復号化処理に必要な復号鍵が前記復号化装置に予め備えられた記憶手段に記憶されているものであると共に、
     前記暗号文を前記復号鍵を用いて前記復号化装置の復号化部が順序保存暗号によって復号化し、
     前記復号化部からの出力を入力値として、これを前記復号化装置の後処理関数部が一般には一様に分布していない可能性のある出力値に変換する逆関数を作用させ、
     この逆関数から得られる出力値を前記復号化装置の前記後処理関数部が前記平文として出力する
    ことを特徴とする復号化方法。
  9.  入力された平文を暗号化して暗号文を出力する暗号化装置と、入力された前記暗号文を復号化して前記平文を出力する復号化装置とからなる順序保存暗号システムにあって、
     暗号化処理に必要な暗号鍵が前記暗号化装置に予め備えられた記憶手段に記憶されているものであると共に、
     前記暗号化装置が備えるプロセッサに、
     前記平文に対して、一般には一様に分布していない可能性のある入力値を一様に分布している出力値に変換する前処理関数を作用させる手順、
     前記前処理関数を作用させられた平文を前記暗号鍵を用いて順序保存暗号によって暗号化する手順、
     および前記暗号化によって得られる前記暗号文を出力する手順
    を実行させることを特徴とする暗号化プログラム。
  10.  入力された平文を暗号化して暗号文を出力する暗号化装置と、入力された前記暗号文を復号化して前記平文を出力する復号化装置とからなる順序保存暗号システムにあって、
     復号化処理に必要な復号鍵が前記復号化装置に予め備えられた記憶手段に記憶されているものであると共に、
     前記復号化装置が備えるプロセッサに、
     前記暗号文を前記復号鍵を用いて順序保存暗号によって復号化する手順、
     前記復号化部からの出力を入力値として、これを一般には一様に分布していない可能性のある出力値に変換する逆関数を作用させる手順、
     およびこの逆関数から得られる出力値を前記平文として出力する
    ことを特徴とする復号化プログラム。
PCT/JP2013/068278 2012-07-04 2013-07-03 順序保存暗号化システム、暗号化装置、復号化装置、暗号化方法、復号化方法およびこれらのプログラム WO2014007296A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/412,475 US9584315B2 (en) 2012-07-04 2013-07-03 Order-preserving encryption system, encryption device, decryption device, encryption method, decryption method, and programs thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2012150166 2012-07-04
JP2012-150166 2012-07-04

Publications (1)

Publication Number Publication Date
WO2014007296A1 true WO2014007296A1 (ja) 2014-01-09

Family

ID=49882048

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/068278 WO2014007296A1 (ja) 2012-07-04 2013-07-03 順序保存暗号化システム、暗号化装置、復号化装置、暗号化方法、復号化方法およびこれらのプログラム

Country Status (2)

Country Link
US (1) US9584315B2 (ja)
WO (1) WO2014007296A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017185312A1 (zh) * 2016-04-28 2017-11-02 华为技术有限公司 加密、解密方法及装置
WO2019021386A1 (ja) * 2017-07-26 2019-01-31 日本電気株式会社 乱数算出装置、乱数算出方法、暗号装置、及び、乱数算出プログラムが記録された記録媒体

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9832179B2 (en) * 2015-02-25 2017-11-28 Red Hat Israel, Ltd. Stateless server-based encryption associated with a distribution list
CN105681279A (zh) * 2015-12-28 2016-06-15 上海瀚银信息技术有限公司 一种应用数据传输方法及移动终端
WO2019086429A1 (en) * 2017-10-30 2019-05-09 Abb Schweiz Ag Privacy-preserving log analysis
US10601580B2 (en) 2017-11-20 2020-03-24 International Business Machines Corporation Secure order preserving string compression
CN108768639B (zh) * 2018-06-06 2021-07-06 电子科技大学 一种公钥保序加密方法
CN108847937B (zh) * 2018-09-04 2021-06-15 捷德(中国)科技有限公司 密钥处理方法、装置、设备及介质
CN115623159B (zh) * 2022-12-05 2023-03-14 深圳码隆智能科技有限公司 一种智能化实验操作考试监控数据智能传输方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7426752B2 (en) * 2004-01-05 2008-09-16 International Business Machines Corporation System and method for order-preserving encryption for numeric data
US20100146299A1 (en) * 2008-10-29 2010-06-10 Ashwin Swaminathan System and method for confidentiality-preserving rank-ordered search
US20120121080A1 (en) * 2010-11-11 2012-05-17 Sap Ag Commutative order-preserving encryption

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
RAKESH AGRAWAL ET AL.: "Order preserving encryption for numeric data", SIGMOD '04 PROCEEDINGS OF THE 2004 ACM SIGMOD INTERNATIONAL CONFERENCE ON MANAGEMENT OF DATA, 2004, pages 563 - 574 *
RYOICHI ISAWA ET AL.: "Marking o Mochiita Application Trace Back no Kairyo to sono Oyo", 2010 NEN SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY SCIS2010, 19 January 2010 (2010-01-19) *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017185312A1 (zh) * 2016-04-28 2017-11-02 华为技术有限公司 加密、解密方法及装置
CN108028754A (zh) * 2016-04-28 2018-05-11 华为技术有限公司 加密、解密方法及装置
WO2019021386A1 (ja) * 2017-07-26 2019-01-31 日本電気株式会社 乱数算出装置、乱数算出方法、暗号装置、及び、乱数算出プログラムが記録された記録媒体
US11579845B2 (en) 2017-07-26 2023-02-14 Nec Corporation Random number generation device, random number generation method, encryption device, and non-transitory recording medium

Also Published As

Publication number Publication date
US20150172044A1 (en) 2015-06-18
US9584315B2 (en) 2017-02-28

Similar Documents

Publication Publication Date Title
Sohal et al. BDNA-A DNA inspired symmetric key cryptographic technique to secure cloud computing
WO2014007296A1 (ja) 順序保存暗号化システム、暗号化装置、復号化装置、暗号化方法、復号化方法およびこれらのプログラム
Ferreira et al. Practical privacy-preserving content-based retrieval in cloud image repositories
JP6934963B2 (ja) データを暗号化する方法およびシステム
CN110635909B (zh) 一种基于属性的抗合谋攻击的代理重加密方法
US9037846B2 (en) Encoded database management system, client and server, natural joining method and program
JP6575532B2 (ja) 暗号化装置、復号装置、暗号処理システム、暗号化方法、復号方法、暗号化プログラム、及び復号プログラム
KR20150073753A (ko) 정수 기반 준동형 암호 기법에 일반적으로 적용 가능한 압축 암복호화 장치 및 방법
US8533493B1 (en) Method of securing transmission data
Banerjee et al. Cloak: A stream cipher based encryption protocol for mobile cloud computing
US11431489B2 (en) Encryption processing system and encryption processing method
JP4737334B2 (ja) 暗号装置、復号装置、暗号プログラム、復号プログラム、及び記録媒体
JP2019168590A (ja) 情報処理方法及び情報処理システム
CN111555880A (zh) 数据碰撞方法、装置、存储介质及电子设备
WO2021098152A1 (zh) 基于区块链的数据处理方法、装置及计算机设备
CN114443718A (zh) 一种数据查询方法及系统
Cordova et al. Comparative analysis on the performance of selected security algorithms in cloud computing
WO2014030706A1 (ja) 暗号化データベースシステム、クライアント装置およびサーバ、暗号化データ加算方法およびプログラム
US10116439B2 (en) Encrypted data computation system, device, and program
CN114553557A (zh) 密钥调用方法、装置、计算机设备和存储介质
CN114036541A (zh) 一种复合加密存储用户私密内容的应用方法
Xie et al. Assured Deletion: A Scheme Based on Strong Nonseparability
US11811741B2 (en) Information processing system and information processing method
WO2024028961A1 (ja) 暗号システム、方法及びプログラム
Davida et al. Efficient encryption and storage of close distance messages with applications to cloud storage

Legal Events

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

Ref document number: 13812822

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 14412475

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13812822

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP