WO2020110830A1 - 情報処理装置および情報処理方法 - Google Patents

情報処理装置および情報処理方法 Download PDF

Info

Publication number
WO2020110830A1
WO2020110830A1 PCT/JP2019/045275 JP2019045275W WO2020110830A1 WO 2020110830 A1 WO2020110830 A1 WO 2020110830A1 JP 2019045275 W JP2019045275 W JP 2019045275W WO 2020110830 A1 WO2020110830 A1 WO 2020110830A1
Authority
WO
WIPO (PCT)
Prior art keywords
information processing
unit
encryption
encrypted
key
Prior art date
Application number
PCT/JP2019/045275
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 US17/290,117 priority Critical patent/US20220311621A1/en
Priority to DE112019005865.7T priority patent/DE112019005865T5/de
Publication of WO2020110830A1 publication Critical patent/WO2020110830A1/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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • 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/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/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme

Definitions

  • the present disclosure relates to an information processing device and an information processing method.
  • a communication unit that receives a first hash value calculated using a first distributed key from a terminal, and a second unit that corresponds to the first distributed key with respect to the first hash value.
  • a homomorphic hash operation is performed using the distributed key, and a division unit that determines a word division unit used for a document search based on matching of the calculated second hash value and the encryption dictionary,
  • An information processing apparatus is provided, wherein the communication unit transmits to the terminal the encrypted information related to the division unit determined by the division unit.
  • an encryption unit that performs a homomorphic hash calculation using a first distributed key on word division candidates included in a document to be searched, and calculates a first hash value.
  • a communication unit that transmits the first hash value to an external device, the communication unit including a second hash value calculated by homomorphic hash calculation using a second distributed key for the first hash value.
  • An information processing apparatus is provided which receives, from the external device, encrypted information related to a word division unit for document search, which is determined based on matching between a hash value and an encryption dictionary.
  • the processor receives the first hash value calculated using the first distributed key from the terminal, and the processor uses the first distributed key for the first hash value. Performing a homomorphic hash operation using a corresponding second distributed key, determining a word division unit used for document search based on matching between the calculated second hash value and the encryption dictionary; An information processing method is provided that includes transmitting encrypted information related to a division unit to the terminal.
  • the processor performs a homomorphic hash operation using a first distributed key on word division candidates included in a document to be searched, and calculates a first hash value.
  • a second hash value calculated by transmitting the first hash value to an external device, and a homomorphic hash operation using a second distributed key for the first hash value, and an encryption dictionary.
  • FIG. 3 is a block diagram showing a functional configuration example of the information processing terminal according to the first embodiment.
  • FIG. 3 is a block diagram showing a functional configuration example of an information processing server according to the first embodiment.
  • FIG. 5 is a diagram showing a flow of initial setup according to the first embodiment.
  • FIG. 6 is a diagram showing a flow of encryption index generation according to the first embodiment.
  • FIG. 6 is an example of a lattice structure created by the dividing unit according to the first embodiment. 6 is an example of a table showing association between an encrypted index and a document included in the index storage unit according to the first embodiment.
  • FIG. 3 is an example of a table in which a document body and a document ID included in the data storage unit according to the first embodiment are stored.
  • FIG. 6 is a diagram for explaining a search for an encrypted document according to the first embodiment.
  • FIG. 6 is a diagram showing a flow in the case of performing voice recognition on the information processing terminal side in the voice data search according to the first embodiment.
  • FIG. 6 is a diagram showing a flow in the case of performing voice recognition on the information processing server side in the search of voice data according to the first embodiment.
  • FIG. 7 is a diagram for explaining sharing of a search by multi-users according to the first embodiment. 6 is an example of a table showing associations between sharing source users and sharing destination users according to the first embodiment. It is a figure which shows the mode of encryption using a secret key.
  • FIG. 6 is a block diagram showing an example of a functional configuration of an information processing terminal according to the second embodiment.
  • FIG. 9 is a block diagram showing an example of a functional configuration of an information processing server according to the second embodiment.
  • FIG. 7 is a diagram showing a flow of initial setup according to the second embodiment.
  • FIG. 11 is a diagram showing a flow of encryption index generation according to the second embodiment. It is a figure showing an example of hardware constitutions of an information processing terminal and an information processing server concerning one embodiment of this indication.
  • Embodiment 1 1.1. Background 1.2.
  • System configuration example 1.3 Example of functional configuration of information processing terminal 1.4.
  • Functional configuration example of information processing server 20 1.5.
  • Function details 2.
  • Embodiment 2 2.1. Re-encryption process 2.2.
  • Functional configuration example of information processing server 20 2.5.
  • Function details 3.
  • Patent Document 1 when data is encrypted or an index is created on the server side, when the data is intercepted when data is transmitted from a client, or before the encryption is performed by the server. If the data is illegally obtained from, the plaintext data will be leaked.
  • the decryption key for decrypting data may be managed by the server, and an authorized service administrator or service vendor may use the decryption key to store user data. It is also possible to decrypt. In order to prevent such a situation, it is important to control the user data stored on the server so that the user data can be decrypted only by the user terminal used by the user.
  • encryption of user data by the client side can be cited.
  • the user transmits/stores the encrypted data encrypted using the unique key of the user managed by the client terminal (hereinafter, also referred to as unique key) to the server, and at the time of decryption, the above-mentioned encrypted data downloaded from the server.
  • the encrypted data can be decrypted using the unique key.
  • the plaintext is never exposed during communication and processing/storing on the server, so it is possible to realize a more secure search system. Further, according to the encryption technique, since the decryption key is not managed on the server, it is possible to prevent unauthorized data acquisition by the service administrator as described above.
  • the dictionary used for creating the index may become bloated and pressure the processing on the client side. Further, for example, in order to deal with new words and the like, it is required to frequently update the above-mentioned dictionary, which increases communication costs for updating.
  • the technical idea according to the present disclosure was conceived in view of the above points, and executes word division necessary for index creation in a distributed manner between a client and a server to reduce the processing load and make it more secure. It realizes various searchable encryption technologies.
  • the information processing terminal 10 performs a homomorphic hash operation using a first distributed key on word division candidates included in a document to be searched, and then performs a first
  • the encryption unit 130 that calculates the hash value and the communication unit 170 that transmits the first hash value to the information processing server 20 are provided.
  • the information processing server 20 corresponds to the terminal communication unit 240 that receives the first hash value from the information processing terminal 10 and the first distributed key for the received hash value.
  • a homomorphic hash operation is performed using the second distributed key, and a dividing unit 210 that determines a word division unit used for document search based on matching of the calculated second hash value and the encryption dictionary 236 is provided. ..
  • FIG. 1 is a diagram illustrating a configuration example of an information processing system according to the first embodiment.
  • the information processing system according to the first embodiment includes an information processing terminal 10 and an information processing server 20. Further, the information processing terminal 10 and the information processing server 20 are connected via a network 30 so that they can communicate with each other.
  • the information processing terminal 10 is an information processing device used by a user who searches documents and the like.
  • the information processing terminal 10 may be, for example, a PC (Personal Computer), a smartphone, a tablet, or the like.
  • the information processing terminal 10 encrypts the document to be searched and the index used for searching the document with the unique key of the user, and then transmits/registers the information to the information processing server 20. Further, after the registration of the encrypted document and the encrypted index, the search keyword input by the user is encrypted and transmitted to the information processing server 20, and the search result corresponding to the search keyword is acquired.
  • the information processing server 20 is an information processing device that stores the encrypted document and the encrypted index received from the information processing terminal 10. Further, the information processing server 20 according to the first embodiment performs a document search based on the encrypted keyword and the encrypted index received from the information processing terminal 10, and sends the search result to the information processing terminal 10.
  • the network 30 has a function of connecting the information processing terminal 10 and the information processing server 20.
  • the network 30 may include the Internet, a telephone line network, a public line network such as a satellite communication network, various LANs (Local Area Networks) including Ethernet (registered trademark), WANs (Wide Area Networks), and the like. Further, the network 30 may include a dedicated line network such as an IP-VPN (Internet Protocol-Virtual Private Network). In addition, the network 30 may include a wireless communication network such as Wi-Fi (registered trademark) or Bluetooth (registered trademark).
  • the configuration described above with reference to FIG. 1 is merely an example, and the configuration of the information processing system according to the first embodiment is not limited to this example.
  • the configuration of the information processing system according to the first embodiment can be flexibly modified according to specifications and operations.
  • FIG. 2 is a block diagram illustrating a functional configuration example of the information processing terminal 10 according to the first embodiment.
  • the information processing terminal 10 according to the first embodiment includes a key management unit 110, an input unit 120, an encryption unit 130, a secret sharing processing unit 140, a decryption unit 150, a display unit 160, and a communication unit 170.
  • the key management unit 110 stores a unique key of a user, a common key received from the information processing server 20, a secret sharing piece (also referred to as a distributed key) generated by the secret sharing processing unit 140, and the like. ..
  • the input unit 120 according to the first embodiment detects various input operations by the user.
  • the input unit 120 according to the first embodiment detects, for example, a user inputting a search keyword or a document registration operation. Therefore, the input unit 120 according to the first embodiment has a keyboard, a mouse, various buttons, and the like.
  • Encryption unit 130 The encryption unit 130 according to the first embodiment encrypts a document or index. In addition, the encryption unit 130 according to the first embodiment creates a word division candidate included in a document and performs a homomorphic hash operation on the division candidate. Details of the functions of the encryption unit 130 according to the first embodiment will be described later.
  • the secret sharing processing unit 140 generates a shared key by secret sharing processing.
  • the secret sharing processing unit 140 according to the first embodiment performs, for example, a secret sharing process on a common key used for encrypting a word registered in the encryption dictionary 236 included in the information processing server 20 to obtain a first shared key. And generate a second distributed key. Details of the functions of the secret sharing processing unit 140 according to the first embodiment will be described later.
  • the decryption unit 150 decrypts encrypted data.
  • the decryption unit 150 according to the first embodiment for example, decrypts the search result received from the information processing server 20.
  • the display unit 160 outputs visual information such as images and text.
  • the display unit 160 according to the first embodiment includes, for example, a user interface for inputting input data such as a search keyword and displaying a search result.
  • the communication unit 170 performs information communication with the information processing server 20 via the network 30.
  • the communication unit 170 according to the first embodiment transmits, for example, an encrypted document or an encrypted index to the information processing server 20.
  • the communication unit 170 also transmits, for example, the encrypted keyword to the information processing server 20, and receives the search result corresponding to the encrypted keyword from the information processing server 20.
  • the example of the functional configuration of the information processing terminal 10 according to the embodiment of the present disclosure has been described above.
  • the above-described configuration described with reference to FIG. 2 is merely an example, and the functional configuration of the information processing terminal 10 according to the first embodiment is not limited to this example.
  • the functional configuration of the information processing terminal 10 according to the first embodiment can be flexibly modified according to specifications and operation.
  • FIG. 3 is a block diagram illustrating a functional configuration example of the information processing server 20 according to the first embodiment.
  • the information processing server 20 according to the first embodiment includes a division unit 210, a search unit 220, a storage unit 230, and a terminal communication unit 240.
  • the division unit 210 determines a word division unit used for document search by morphological analysis using the encryption dictionary 236. Details of the functions of the dividing unit 210 according to the first embodiment will be described later.
  • the search unit 220 performs a document search based on the encrypted keyword received from the information processing terminal 10 and the encrypted index stored in the index storage unit 238.
  • the storage unit 230 stores various information related to document search.
  • the storage unit 230 according to the first embodiment includes a data storage unit 232, a distributed key storage unit 234, an encryption dictionary 236, an index storage unit 238, and the like.
  • the data storage unit 232 stores various encrypted data such as an encrypted document received from the information processing terminal 10.
  • the distributed key storage unit 234 stores the distributed key received from the information processing terminal 10. Further, the distributed key storage unit 234 according to the first embodiment stores the information of the information processing terminal 10 and the user who are the generation sources of the distributed key together with the distributed key.
  • the encrypted dictionary 236 according to the first embodiment is a dictionary used by the dividing unit 210 for morphological analysis. A plurality of words encrypted by a common key common to all users are registered in the encryption dictionary 236 according to the first embodiment.
  • index storage unit 2338 The index storage unit 238 according to the first embodiment stores the encrypted index received from the information processing terminal 10.
  • Terminal communication unit 240 The terminal communication unit 240 according to the first embodiment performs information communication with the information processing terminal 10 via the network 30.
  • the terminal communication unit 240 according to the first embodiment receives, for example, an encrypted document or an encrypted index from the information processing terminal 10. Further, the terminal communication unit 240 receives, for example, the encrypted keyword from the information processing terminal 10 and transmits the search result acquired by the search unit 220 to the information processing terminal 10.
  • the example of the functional configuration of the information processing server 20 according to the embodiment of the present disclosure has been described above.
  • the configuration described above with reference to FIG. 3 is merely an example, and the functional configuration of the information processing server 20 according to the first embodiment is not limited to this example.
  • the function of the search unit 220 according to the first embodiment may be realized by a separate search device.
  • the functional configuration of the information processing server 20 according to the first embodiment can be flexibly modified according to specifications and operation.
  • the information processing method according to the first embodiment executes the word division necessary for index creation in a distributed manner between the client and the server to reduce the processing load and realize a more secure searchable encryption technique. To do.
  • the encryption unit 130 of the information processing terminal 10 creates word division candidates included in a document to be searched, and encrypts the division candidates. Then, it sends it to the information processing server.
  • the division unit 210 of the information processing server 20 performs matching between the encrypted division candidate and the encryption dictionary 236 to create a lattice structure required for morphological analysis.
  • the dividing unit 210 determines the optimum word division unit for document retrieval based on the weight information on the lattice structure.
  • the encryption unit 130 of the information processing server 20 creates a full-text search index of the document based on the above division unit, encrypts it, and registers it in the information processing server 20.
  • the information processing method according to the first embodiment it is possible to create a situation in which plain text is not exposed at all by using the searchable encryption technique on the information processing server 20, and the decryption key is stored on the information processing server 20. Since it is not managed by, it is possible to prevent unauthorized acquisition of data by a service administrator or the like.
  • FIG. 4 is a diagram showing a flow of initial setup according to the first embodiment.
  • the initial setup according to the first embodiment first, the unique key Uk of the user in the information processing terminal 10 and the common key Ck in the information processing server 20 are generated.
  • the common key Ck is a key for encrypting a word registered in the encryption dictionary 236 and is commonly used by all users.
  • the secret sharing processing unit 140 of the information processing terminal 10 downloads the common key Ck from the information processing server 20 via the communication unit 170, performs the secret sharing processing on the common key Ck, and is two secret sharing pieces. , And a first distributed key s1 and a second distributed key s2. At this time, the first distributed key s1 and the second distributed key s2 generated are different for each information processing terminal 10.
  • the generated first distributed key s1 is stored by the key management unit 110, and the second distributed key s2 is transmitted to the information processing server 20 (search device) by the communication unit 170 and stored in the distributed key storage unit 234. Be stored.
  • FIG. 5 is a diagram showing a flow of encrypted index generation according to the first embodiment.
  • a document to be searched is generated by user input or the like.
  • the encryption unit 130 encrypts the generated document D using the unique key Uk, and then the communication unit 170 transmits the encrypted document D to the information processing server 20.
  • the data storage unit 232 of the information processing server 20 also stores the encrypted document D received by the terminal communication unit 240.
  • FIG. 8 is an example of a table in which the document body and the document ID that the data storage unit 232 according to the first embodiment has are stored.
  • the encryption unit 130 generates a plurality of word division candidates included in the document D.
  • the division accuracy by the encryption unit 130 may be lower than the word division accuracy by the division unit 210 of the information processing server 20 described later.
  • the encryption unit 130 performs morphological analysis using a simple dictionary having a smaller number of registered words than the encryption dictionary 236 included in the information processing server 20 and generation of division candidates by N-Gram.
  • the encryption unit 130 may reduce the processing load by performing morphological analysis using a simple dictionary having a smaller number of registered words than the encryption dictionary 236.
  • words may be divided into words that are different from the original assumptions (for example, "National Diet Building”, “National Diet”, “Meeting”, “Meeting”, “Parliament Building”, etc.
  • the final division unit is determined by morphological analysis using the encryption dictionary 236 by the division unit 210 of the information processing server 20, the final division unit is divided by the encryption unit 130.
  • the processing efficiency may be prioritized without obtaining the accuracy.
  • the encryption unit 130 performs homomorphic hash calculation (power multiplication) on all of the generated division candidates using the first distributed key s1 to calculate the first hash value.
  • the communication unit 170 transmits the calculated first hash value to the information processing server 20 (also referred to as an external device).
  • the division unit 210 of the information processing server 20 uses the corresponding second distributed key s2 for the first hash value received by the terminal communication unit 240 from the information processing terminal 10 (also referred to as a terminal).
  • a homomorphic hash operation (multiplication) is performed to calculate a second hash value.
  • the dividing unit 210 determines a word division unit used for document search based on the matching between the calculated second hash value and the encryption dictionary 236. More specifically, the dividing unit 210 performs matching between the second hash value (word) and the encryption dictionary 236, and creates a lattice structure based on the result of the matching. Next, the division unit 210 can determine a division unit by performing a morphological analysis based on the weight of the created lattice structure.
  • the dictionary used for morphological analysis determines the breaks in charge based on the numerical value related to the appearance frequency and the connection between words when there are multiple word candidates. It has information on how easy it is to connect.
  • the common key used for encryption of the encryption dictionary 236 is distributed by the secret sharing process on the information processing terminal 10 side, and the second distributed key s2 that is one of the distributed pieces is processed as information.
  • FIG. 6 is an example of a lattice structure created by the dividing unit 210 according to the first embodiment.
  • FIG. 6 shows an example of the lattice structure for the sentence “Go to the Diet Building”.
  • the dividing unit 210 according to the first embodiment creates a lattice structure as illustrated by matching a word, such as “diet”, encrypted by the encryption unit 130 of the information processing terminal 10 with the encryption dictionary 236.
  • a word such as “diet”
  • FIG. 6 shows an example of the lattice structure for Japanese
  • the dividing unit 210 according to the first embodiment can also perform morphological analysis for other languages such as English.
  • the sentence "I live in New York City” "New York City” is a proper noun, so it is desirable to acquire it in a linked state.
  • “I”, “live”, “in”, and “New York City” are the optimum units for document search. It becomes possible to divide.
  • the dividing unit 210 should include the abbreviations “NY” and “NYC” as related words in the division unit. You can also
  • the terminal communication unit 240 transmits the encrypted information related to the determined division unit to the information processing terminal 10.
  • the encryption information related to the division unit may be data obtained by encrypting all the divided words.
  • the decryption unit 150 of the information processing terminal 10 decrypts the encrypted information received by the communication unit 170, and the index for the document D is fixed.
  • FIG. 7 is an example of a table included in the index storage unit 238 according to the first embodiment and showing the association between the encrypted index and the document.
  • the word W 9 is included in the documents A and B
  • the word W 11 is included in the documents A, B, and C.
  • FIG. 9 is a diagram for explaining the search for the encrypted document according to the first embodiment.
  • the encryption unit 130 of the information processing terminal 10 encrypts the search keyword input by the user using the unique key Uk to generate the encrypted keyword EKW.
  • the encryption unit 130 converts a search keyword into a hash value by a homomorphic hash operation, and encodes (maps) the hash value in an AMQ (Approximate Membership Query) format such as a Bloom filter or a counting filter. By doing so, the encrypted keyword may be generated.
  • AMQ Approximate Membership Query
  • the encryption unit 130 performs mapping to a single Bloom filter, for example.
  • the encryption unit 130 may perform mapping on the Bloom filter in units of OR, for example.
  • the communication unit 170 transmits the encrypted keyword EKW generated by the encryption unit 130 to the information processing server 20.
  • the search unit 220 of the information processing server 20 executes a document search based on the encrypted keyword EKW received from the information processing terminal 10 and the plurality of encrypted indexes EI stored in the index storage unit 238. Specifically, the search unit 220 can perform a search by performing a bitwise match determination between the encrypted keyword EKW and the encrypted index EI.
  • the encryption index EI according to the first embodiment may be mapped to a Bloom filter or the like, like the encryption keyword EKW.
  • the search unit 220 can specify the corresponding encrypted document based on the table as illustrated in FIG. 7. For example, when the encrypted keyword EKW is the word W 11 , the search unit 220 returns to the information processing terminal 10 via the terminal communication unit 240 as a search result that document A, document B, and document C are applicable. May be. On the other hand, the search unit 220 may return the documents A, B, and C themselves as search results. In the example illustrated in FIG. 9, the search unit 220 returns the corresponding encrypted document ED itself to the information processing terminal 10 as a search result.
  • the decryption unit 150 of the information processing terminal 10 can decrypt the encrypted document ED, which is the search result, received by the communication unit 170, and obtain the plaintext document D.
  • the flow of processing by the information processing terminal 10 and the information processing server 20 according to the first embodiment has been described above.
  • the information processing method according to the first embodiment it is possible to create a situation in which the plaintext is not exposed at all by using the searchable encryption technology on the information processing server 20. Since it is not managed on the server 20, it is possible to prevent unauthorized data acquisition by a service administrator or the like.
  • the information processing method according to the first embodiment can be applied to data other than a document.
  • the information processing method according to the first embodiment may be used, for example, for searching a voice memo.
  • voice recognition is performed on the recorded voice data, and a search index is created based on the result of the voice recognition, so that the voice data is searched more securely. It becomes possible.
  • FIG. 10 is a diagram showing a flow when voice recognition is performed on the information processing terminal 10 side in the voice data search according to the first embodiment.
  • the voice recognition unit included in the information processing terminal 10 performs voice recognition on the utterance UO of the user, and generates the voice recognition result RR and the voice data VR.
  • the encryption unit 130 encrypts the voice data VR using the unique key Uk, and the communication unit 170 transmits the encrypted voice data VR to the information processing server 20.
  • the data storage unit 232 of the information processing server 20 stores the encrypted voice data VR received by the terminal communication unit 240.
  • the information processing terminal 10 and the information processing server 20 perform an encryption index generation process based on the voice recognition result RR in parallel with the above process.
  • the information processing terminal 10 and the information processing server 20 can generate the encrypted index by performing the subsequent process shown in step S1101 of FIG. 5 on the division candidate generated from the voice recognition result RR.
  • FIG. 11 is a diagram showing a flow when voice recognition is performed on the information processing server 20 side in the voice data search according to the first embodiment.
  • the encryption unit 130 of the information processing terminal 10 encrypts the voice data VR in which the utterance UO of the user is recorded using the unique key, and the communication unit 170 converts the encrypted voice data VR into the information processing server 20.
  • the data storage unit 232 of the information processing server 20 stores the encrypted voice data VR received by the terminal communication unit 240.
  • the information processing terminal 10 and the information processing server 20 perform encryption index generation processing in parallel.
  • the voice recognition unit provided in the information processing server 20 executes the voice recognition process for the user's utterance UO and acquires the voice recognition result RR.
  • the division unit 210 of the information processing server 20 creates division candidates from the voice recognition result RR.
  • the division unit 210 performs a homomorphic hash operation on the division candidate using the first division key s1 temporarily acquired from the information processing terminal 10, and a second division stored in the distributed key storage unit 234. A homomorphic hash operation is performed using the split key s2.
  • the information processing server 20 and the information processing terminal 10 can generate the encrypted index by performing the subsequent processing shown in step S1102 of FIG.
  • the information processing method according to the first embodiment can also be applied to, for example, password management of Web services.
  • password management of Web services In recent years, a wide variety of Web services have been developed, but a user who uses a plurality of Web services may have an adverse effect such as being unable to remember a password.
  • secure password management can be realized by using the password, user ID, URL, site name, etc. used for the Web service as the search target.
  • the user instead of the document D, encrypts a password, a user ID, a URL, a site name, etc., and registers the encrypted information in the information processing server 20.
  • the information processing server 20 and the information processing terminal 10 shown in FIG. 5 execute the encryption index generation processing based on the above information, and the information processing server 20 stores the encryption index.
  • an inappropriate pattern for example, abc123 or the like
  • abc123 for example, abc123 or the like
  • the information processing method according to the first embodiment can be flexibly applied to various search services.
  • the information processing method according to the first embodiment can support a search by multiple users. For example, a situation is conceivable in which it is desired to grant a search action for a document registered by the user only to a specific other user.
  • the unique key used to encrypt the data is shared with other users, spoofing or the like can be performed, and the security is deteriorated. Therefore, in the information processing method according to the first embodiment, the unique keys used for encrypting data such as a document are distributed by secret sharing processing, one distributed piece is processed by another user, and the other distributed piece is processed by information processing. Storage in the server 20 enables secure sharing of searches by multiple users.
  • FIG. 12 is a diagram for explaining sharing of search by multi-users according to the first embodiment.
  • the user who owns the information processing terminal 10a registers the encrypted document and the encryption index shown in FIGS. 4 and 5
  • the user who owns the information processing terminal 10b searches for the registered encrypted document.
  • An example is shown in which a user who gives permission is granted.
  • the secret sharing processing unit 140 of the information processing terminal 10a serving as the sharing source performs the secret sharing processing on the unique key Uk used to generate the encrypted document and the encrypted index, and then the third distributed key s3 and the fourth distributed key s3.
  • the encryption unit 130b of the information processing terminal 10b uses the homomorphic hash parameter g and the third distributed key s3 received from the information processing terminal 10a.
  • the same-type hash calculation (power multiplication) is performed, and the calculated third hash value is transmitted to the information processing server 20.
  • the search unit 220 of the information processing server 20 receives the third hash value received by the terminal communication unit 240, and receives the fourth distributed key s4 received from the information processing terminal 10a and stored in the distributed key storage unit 234. Is used to perform a homomorphic hash operation (multiplication). Subsequently, the search unit 220 executes a search by performing a bit-unit match determination between the calculated fourth hash value and the encrypted index stored in the index storage unit 238.
  • the search unit 220 may execute the search based on a table showing the correspondence between the owner of the document (shared user) and the user who is permitted to search (shared user).
  • FIG. 13 is an example of a table showing associations between sharing source users and sharing destination users according to the first embodiment.
  • documents A, B, and C are relevant documents.
  • document B is permitted to search by user ⁇ and user ⁇
  • sentence C is permitted to search by user ⁇ and user ⁇ . Therefore, regarding the search for the word W 11 by the user ⁇ , the search unit 220 may exclude the existence of the document A from the search results and return the search results related to only the documents B and C.
  • the search unit 220 may exclude the existence of the document A and the document C from the search result and return the search result regarding only the document B.
  • the existence of the document not permitted to be shared can be concealed by returning the search result only to the document permitted to be shared. , More secure search sharing can be realized.
  • the information processing terminal 10 performs the secret sharing process on the common key Ck to generate the first distributed key s1 and the second distributed key s2. Therefore, the information processing server 20 needs to transmit the common key Ck to the information processing terminal 10. In this case, the common key Ck may leak to the outside via the information processing terminal 10.
  • the information processing server 20 may generate the first distributed key s1 and the second distributed key s2 by performing the secret sharing process on the common key Ck.
  • the first distributed key s1 that should be kept secret by the information processing terminal 10 is known to the information processing server 20.
  • the common key Ck is prevented from being acquired by the information processing terminal 10 by using the mechanism of re-encryption processing. This further improves the security of the dictionary matching method for performing morphological analysis.
  • FIG. 14 is a diagram showing a state of encryption using a secret key.
  • user A has a ciphertext obtained by encrypting a plaintext with his own secret key.
  • the user B wants to obtain the plaintext of the ciphertext.
  • the plaintext of the user A cannot be obtained.
  • FIG. 15 is a diagram for explaining the proxy re-encryption process.
  • proxy re-encryption agent re-encryption
  • a re-encryption key is generated using the private key of user A and the public key of user B.
  • the proxy re-encryption the ciphertext encrypted with the public key of the user A is encrypted with the re-encryption key.
  • a ciphertext encrypted with the public key of the user B is created.
  • the user B can obtain the plaintext of the user A by decrypting the ciphertext with his own secret key.
  • FIG. 16 is a diagram showing the proxy re-encryption process in more detail.
  • the user A has encrypted the plaintext m.
  • the ciphertext (mg r , r(aP)) is re-encrypted with the re-encryption key (b/a)P and converted into cipher text (mg r , grb ). Pairing is used for re-encryption as shown in FIG.
  • the ciphertext (mg r , g rb ) is decrypted with the secret key of user B. Thereby, the user B can obtain the plaintext m.
  • the configuration of the information processing system according to the second embodiment is the same as the configuration of the information processing system according to the first embodiment shown in FIG.
  • the information processing system according to the second embodiment includes an information processing terminal 10 and an information processing server 20. Further, the information processing terminal 10 and the information processing server 20 are connected via a network 30 so that they can communicate with each other.
  • FIG. 17 is a block diagram showing a functional configuration example of the information processing terminal 10 according to the second embodiment.
  • the information processing terminal 10 according to the second embodiment includes a key management unit 110, an input unit 120, an encryption unit 130, a decryption unit 150, a display unit 160, a communication unit 170, and a re-encryption key generation.
  • the unit 180 is provided.
  • the key management unit 110 stores the unique key of the user, the common key received from the information processing server 20, the re-encryption key generated by the re-encryption key generation unit 180, and the like.
  • the re-encryption key generation unit 180 (Re-encryption key generation unit 180)
  • the re-encryption key generation unit 180 according to the second embodiment generates a re-encryption key by re-encryption processing.
  • the re-encryption key generation unit 180 according to the second embodiment performs, for example, a re-encryption key generation process for a common key used to encrypt a word registered in the encryption dictionary 236 included in the information processing server 20, Generate a re-encryption key. Details of the functions of the re-encryption key generation unit 180 according to the second embodiment will be described later.
  • the configurations of the input unit 120, the encryption unit 130, the decryption unit 150, the display unit 160, and the communication unit 170 are the same as in the first embodiment.
  • the functional configuration example of the information processing terminal 10 according to the second embodiment has been described above. Note that the above configuration described using FIG. 17 is merely an example, and the functional configuration of the information processing terminal 10 according to the second embodiment is not limited to this example.
  • the functional configuration of the information processing terminal 10 according to the second embodiment can be flexibly modified according to specifications and operation.
  • FIG. 18 is a block diagram illustrating a functional configuration example of the information processing server 20 according to the second embodiment.
  • the information processing server 20 according to the second embodiment includes a division unit 210, a search unit 220, a storage unit 230, and a terminal communication unit 240.
  • the storage unit 230 stores various information related to document search.
  • the storage unit 230 according to the second embodiment includes a data storage unit 232, a re-encryption key storage unit 235, an encryption dictionary 236, an index storage unit 238, and the like.
  • the configurations of the data storage unit 232, the encryption dictionary 236, and the index storage unit 238 are the same as in the first embodiment.
  • the re-encryption key storage unit 235 stores the re-encryption key received from the information processing terminal 10.
  • the re-encryption key storage unit 235 according to the second embodiment stores the information of the information processing terminal 10 and the user who is the source of the re-encryption key together with the re-encryption key.
  • the configurations of the division unit 210, the search unit 220, and the terminal communication unit 240 are the same as those in the first embodiment.
  • the functional configuration example of the information processing server 20 according to the second embodiment has been described above.
  • the configuration described above with reference to FIG. 18 is merely an example, and the functional configuration of the information processing server 20 according to the second embodiment is not limited to this example.
  • the function of the search unit 220 according to the second embodiment may be realized by a separate search device.
  • the functional configuration of the information processing server 20 according to the second embodiment can be flexibly modified according to specifications and operation.
  • the encryption unit 130 of the information processing terminal 10 creates word division candidates included in the document to be searched. Then, the encryption unit 130 encrypts the division candidate and transmits it to the information processing server.
  • the division unit 210 of the information processing server 20 performs matching between the encrypted division candidate and the encryption dictionary 236 to create a lattice structure required for morphological analysis. Subsequently, the dividing unit 210 determines the optimum word division unit for document search based on the weight information on the lattice structure.
  • the encryption unit 130 of the information processing server 20 creates a full-text search index of the document based on the above division unit, encrypts it, and then registers it in the information processing server 20.
  • the information processing method according to the second embodiment it is possible to create a situation in which plain text is not exposed at all by using the searchable encryption technique on the information processing server 20, and the decryption key is stored on the information processing server 20. Since it is not managed by, it is possible to prevent unauthorized acquisition of data by a service administrator or the like.
  • FIG. 19 is a diagram showing a flow of initial setup according to the second embodiment. Also in the initial setup according to the second embodiment, the unique key Uk of the user in the information processing terminal 10 and the common key Ck in the information processing server 20 are generated.
  • the common key Ck is a key for encrypting a word registered in the encryption dictionary 236 and is commonly used by all users.
  • the information processing server 20 in order to prevent the common key Ck from leaking to the information processing terminal 10, the information processing server 20 performs homomorphic hash operation (power multiplication) on the common key Ck, and the hashed common key CkQ. To generate.
  • the secret sharing processing unit 140 of the information processing terminal 10 downloads the hashed common key Ck from the information processing server 20 via the communication unit 170, and performs re-encryption key generation processing for the common key Ck,
  • the private key aP (first distributed key) and the re-encryption key CkQ (second distributed key) are generated.
  • the generated secret key aP and re-encryption key CkQ are different for each information processing terminal 10.
  • the generated secret key aP is stored by the key management unit 110, the re-encryption key CkQ is transmitted to the information processing server 20 (search device) by the communication unit 170, and stored in the re-encryption key storage unit 235.
  • FIG. 20 is a diagram showing a flow of encryption index generation according to the second embodiment.
  • the process shown in step 2101 of FIG. 20 corresponds to the process shown in step S1101 of FIG. 5, and the process shown in step 2102 of FIG. 20 corresponds to the subsequent process shown in step S1102 of FIG.
  • the document to be searched is generated by user input.
  • the encryption unit 130 encrypts the generated document D using the unique key Uk, and then the communication unit 170 transmits the encrypted document D to the information processing server 20. Further, the data storage unit 232 of the information processing server 20 stores the encrypted document D received by the terminal communication unit 240.
  • the encryption unit 130 generates a plurality of word division candidates included in the document D. Then, the encryption unit 130 performs homomorphic hash calculation (power multiplication) on all of the generated division candidates using the secret key aP to calculate the first hash value. In addition, the communication unit 170 transmits the calculated first hash value to the information processing server 20 (also referred to as an external device).
  • the information processing server 20 also referred to as an external device.
  • the division unit 210 of the information processing server 20 pairs the first hash value received by the terminal communication unit 240 from the information processing terminal 10 (also referred to as a terminal) using the corresponding re-encryption key CkQ. A ring is performed and a second hash value is calculated.
  • the dividing unit 210 determines a word division unit used for document search based on the matching between the calculated second hash value and the encryption dictionary 236. More specifically, the dividing unit 210 performs matching between the second hash value (word) and the encryption dictionary 236, and creates a lattice structure based on the result of the matching. Next, the division unit 210 can determine a division unit by performing a morphological analysis based on the weight of the created lattice structure.
  • the processing of the second embodiment can also prevent the words to be searched from being leaked to other users, as in the first embodiment.
  • the information processing server 20 does not directly send the common key to the terminal, but sends the homomorphic hashed value to the terminal. Therefore, the common key Ck of the information processing server 20 will not be leaked to the terminal. As a result, the security of the matching method with the dictionary for performing the morphological analysis is further improved.
  • FIG. 21 is a block diagram showing a hardware configuration example of the information processing terminal 10 and the information processing server 20 according to an embodiment of the present disclosure.
  • the information processing terminal 10 and the information processing server 20 include, for example, a processor 871, a ROM 872, a RAM 873, a host bus 874, a bridge 875, an external bus 876, an interface 877, and an input device 878.
  • the hardware configuration shown here is an example, and some of the components may be omitted. Moreover, you may further include components other than the components shown here.
  • the processor 871 functions as, for example, an arithmetic processing unit or a control unit, and controls the overall operation of each component or a part thereof based on various programs recorded in the ROM 872, the RAM 873, the storage 880, or the removable recording medium 901. ..
  • the ROM 872 is means for storing programs read by the processor 871 and data used for calculation.
  • the RAM 873 temporarily or permanently stores, for example, a program read by the processor 871 and various parameters that appropriately change when the program is executed.
  • the processor 871, the ROM 872, and the RAM 873 are mutually connected, for example, via a host bus 874 capable of high-speed data transmission.
  • the host bus 874 is connected to the external bus 876, which has a relatively low data transmission rate, via the bridge 875, for example.
  • the external bus 876 is connected to various components via the interface 877.
  • Input device 8708 As the input device 878, for example, a mouse, a keyboard, a touch panel, a button, a switch, a lever, or the like is used. Further, as the input device 878, a remote controller (hereinafter, remote controller) capable of transmitting a control signal using infrared rays or other radio waves may be used. Further, the input device 878 includes a voice input device such as a microphone.
  • the output device 879 is, for example, a display device such as a CRT (Cathode Ray Tube), an LCD, or an organic EL device, an audio output device such as a speaker or a headphone, a printer, a mobile phone, or a facsimile, and the acquired information to the user. It is a device capable of visually or audibly notifying. Further, the output device 879 according to the present disclosure includes various vibration devices capable of outputting tactile stimuli.
  • the storage 880 is a device for storing various data.
  • a magnetic storage device such as a hard disk drive (HDD), a semiconductor storage device, an optical storage device, or a magneto-optical storage device is used.
  • the drive 881 is a device that reads information recorded on a removable recording medium 901 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory, or writes information on the removable recording medium 901.
  • a removable recording medium 901 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory
  • the removable recording medium 901 is, for example, a DVD medium, a Blu-ray (registered trademark) medium, an HD DVD medium, various semiconductor storage media, or the like.
  • the removable recording medium 901 may be, for example, an IC card equipped with a non-contact type IC chip, an electronic device, or the like.
  • connection port 882 is, for example, a USB (Universal Serial Bus) port, an IEEE 1394 port, a SCSI (Small Computer System Interface), an RS-232C port, or a port for connecting an external connection device 902 such as an optical audio terminal. is there.
  • the external connection device 902 is, for example, a printer, a portable music player, a digital camera, a digital video camera, an IC recorder, or the like.
  • the communication device 883 is a communication device for connecting to a network, and includes, for example, a wired or wireless LAN, a Bluetooth (registered trademark), a communication card for WUSB (Wireless USB), a router for optical communication, and an ADSL (Asymmetrical Digital). A router for Subscriber Line), a modem for various communications, or the like.
  • the information processing server 20 the terminal communication unit 240 that receives the first hash value calculated using the first distributed key from the information processing terminal 10, A homomorphic hash operation is performed on the first hash value using a second distributed key corresponding to the first distributed key, and a document search is performed based on the matching between the calculated second hash value and the encryption dictionary. And a division unit 210 that determines a division unit of a word to be used. Further, the terminal communication unit 240 transmits the encrypted information related to the division unit determined by the division unit 210 to the information processing terminal 10.
  • the information processing terminal 10 performs a homomorphic hash operation using a first distributed key on word division candidates included in a document to be searched, and obtains a first hash value.
  • the steps related to the processing of the information processing server 20 in this specification do not necessarily have to be processed in time series in the order shown.
  • the steps related to the processing of the information processing server 20 may be processed in a different order from the illustrated order or may be processed in parallel.
  • a communication unit that receives from the terminal a first hash value calculated using the first distributed key; A homomorphic hash operation is performed on the first hash value using a second distributed key corresponding to the first distributed key, and a document is obtained based on matching between the calculated second hash value and the encryption dictionary.
  • a division unit that determines the division unit of words used in the search, Equipped with The communication unit transmits, to the terminal, encrypted information related to the division unit determined by the division unit, Information processing device.
  • the first hash value is a value obtained by hashing word division candidates included in a document to be searched by a homomorphic hash operation using the first distributed key.
  • the accuracy of word division according to the first hash value is lower than the accuracy of word division by the divider.
  • the information processing device according to (2). The division unit determines the division unit by morphological analysis, The information processing device according to (1). (5) The division unit creates a lattice structure based on the matching between the second hash value and the encryption dictionary, and determines the division unit based on the weight on the lattice structure. The information processing device according to (4). (6)
  • the first distributed key and the second distributed key are generated by secret sharing processing of a common key used for encrypting a word registered in the encryption dictionary,
  • the communication unit receives the second distributed key from the terminal, The information processing apparatus according to any one of (1) to (5) above.
  • the communication unit receives from the terminal an encryption index generated based on the encryption information related to the division unit, The information processing apparatus according to any one of (1) to (6) above.
  • a search unit that performs a document search based on the encrypted keyword and the encrypted index received by the communication unit from the terminal; Further comprising, The information processing device according to (7).
  • the encrypted keyword and encrypted index are mapped to a Bloom filter, The information processing device according to (8).
  • An encryption unit that performs a homomorphic hash operation using the first distributed key on word division candidates included in the document to be searched, and calculates a first hash value;
  • a communication unit for transmitting the first hash value to an external device, Equipped with The communication unit is for document retrieval, which is determined based on matching between a second hash value calculated by a homomorphic hash operation using a second distributed key for the first hash value and an encryption dictionary.
  • a secret sharing processing unit that performs a secret sharing process on a common key used to encrypt a word registered in the encryption dictionary, and generates the first distributed key and the second distributed key.
  • the communication unit transmits the second distributed key to the external device, The information processing device according to (10).
  • the encryption unit generates an encrypted document in which the document to be searched is encrypted with a unique key, and an encryption index in which the division unit is encrypted with the unique key, The information processing device according to (11), wherein the communication unit transmits the encrypted document and the encrypted index to a search device.
  • the encryption unit generates an encrypted keyword by encrypting the input search keyword with the unique key, The information processing device according to (12), wherein the communication unit transmits the encrypted keyword to the search device and receives a search result.
  • the division unit is determined by morphological analysis using the encryption dictionary, The information processing device according to any one of (10) to (13).
  • the encryption unit determines the division candidate by morphological analysis, The number of words registered in the dictionary used for morphological analysis by the encryption unit is smaller than the number of words registered in the encryption dictionary, The information processing device according to (14).
  • the encryption unit determines the division candidate using N-Gram, The information processing device according to (14).
  • the secret sharing processing unit performs a secret sharing process on the encrypted document and the unique key used to generate the encrypted index to generate a third distributed key and a fourth distributed key, The communication unit transmits the third distributed key to the search permission terminal and transmits the fourth distributed key to the search device.
  • a decryption unit that decrypts the search result, Further comprising, The information processing device according to (13).
  • the processor Receiving from the terminal a first hash value calculated using the first distributed key; A homomorphic hash operation is performed on the first hash value using a second distributed key corresponding to the first distributed key, and a document is obtained based on matching between the calculated second hash value and the encryption dictionary. Determining the unit of division of the words used in the search, Transmitting encrypted information related to the division unit to the terminal, including, Information processing method.
  • the processor Calculating a first hash value by performing a homomorphic hash operation using the first distributed key on word division candidates included in the document to be searched; Sending the first hash value to an external device; A word division unit for document search, which is determined based on matching between the second hash value calculated by the homomorphic hash calculation using the second distributed key for the first hash value and the encryption dictionary. Receiving encrypted information related to the above from the external device, including, Information processing method.

Abstract

第1の分散鍵を用いて算出された第1のハッシュ値を端末から受信する通信部と、前記第1のハッシュ値に対し前記第1の分散鍵に対応する第2の分散鍵を用いて準同型ハッシュ演算を行い、算出した第2のハッシュ値と暗号化辞書とのマッチングに基づいて文書検索に用いられる単語の分割単位を決定する分割部と、を備え、前記通信部は、前記分割部により決定された前記分割単位に係る暗号化情報を前記端末に送信する、情報処理装置が提供される。

Description

情報処理装置および情報処理方法
 本開示は、情報処理装置および情報処理方法に関する。
 近年、クラウドサービス等の普及に伴い、個人や企業などのデータをサービス提供者が管理するサーバに保管する場面が増加している。上記のようなサーバでは、セキュリティ性を確保するために、データの暗号化などを行うのが一般的である。また、近年では、例えば、特許文献1に記載されるように、データを暗号化したまま情報検索を実現する検索可能暗号技術も開発されている。
特開2016-200938号公報
 しかし、特許文献1に記載の検索システムでは、クライアント端末から送信される文書を、クラウドに設置されるサーバ側で暗号化し、またインデックスの作成を行っている。このため、特許文献1に記載の検索システムでは、例えば、クライアントからの文書の送信時にデータを傍受された場合には、平文のままのデータが流出することとなる。
 本開示によれば、第1の分散鍵を用いて算出された第1のハッシュ値を端末から受信する通信部と、前記第1のハッシュ値に対し前記第1の分散鍵に対応する第2の分散鍵を用いて準同型ハッシュ演算を行い、算出した第2のハッシュ値と暗号化辞書とのマッチングに基づいて文書検索に用いられる単語の分割単位を決定する分割部と、を備え、前記通信部は、前記分割部により決定された前記分割単位に係る暗号化情報を前記端末に送信する、情報処理装置が提供される。
 また、本開示によれば、検索対象となる文書に含まれる単語の分割候補に対し第1の分散鍵を用いた準同型ハッシュ演算を行い、第1のハッシュ値を算出する暗号化部と、前記第1のハッシュ値を外部装置に送信する通信部と、を備え、前記通信部は、前記第1のハッシュ値に対する第2の分散鍵を用いた準同型ハッシュ演算により算出された第2のハッシュ値と暗号化辞書とのマッチングに基づいて決定された、文書検索用の単語の分割単位に係る暗号化情報を前記外部装置から受信する、情報処理装置が提供される。
 また、本開示によれば、プロセッサが、第1の分散鍵を用いて算出された第1のハッシュ値を端末から受信することと、前記第1のハッシュ値に対し前記第1の分散鍵に対応する第2の分散鍵を用いて準同型ハッシュ演算を行い、算出した第2のハッシュ値と暗号化辞書とのマッチングに基づいて文書検索に用いられる単語の分割単位を決定することと、前記分割単位に係る暗号化情報を前記端末に送信することと、を含む、情報処理方法が提供される。
 また、本開示によれば、プロセッサが、検索対象となる文書に含まれる単語の分割候補に対し第1の分散鍵を用いた準同型ハッシュ演算を行い、第1のハッシュ値を算出することと、前記第1のハッシュ値を外部装置に送信することと、前記第1のハッシュ値に対する第2の分散鍵を用いた準同型ハッシュ演算により算出された第2のハッシュ値と暗号化辞書とのマッチングに基づいて決定された、文書検索用の単語の分割単位に係る暗号化情報を前記外部装置から受信することと、を含む、情報処理方法が提供される。
 なお、上記の効果は必ずしも限定的なものではなく、上記の効果とともに、または上記の効果に代えて、本明細書に示されたいずれかの効果、または本明細書から把握され得る他の効果が奏されてもよい。
本開示の一実施形態に係る情報処理システムの構成例を示す図である。 実施形態1に係る情報処理端末の機能構成例を示すブロック図である。 実施形態1に係る情報処理サーバの機能構成例を示すブロック図である。 実施形態1に係る初期セットアップの流れを示す図である。 実施形態1に係る暗号化インデックス生成の流れを示す図である。 実施形態1に係る分割部により作成されるラティス構造の一例である。 実施形態1に係るインデックス保管部が有する、暗号化インデックスと文書の紐付きを示すテーブルの一例である。 実施形態1に係るデータ保管部が有する文書本体および文書IDが保管されるテーブルの一例である。 実施形態1に係る暗号化文書の検索について説明するための図である。 実施形態1に係る音声データの検索において、音声認識を情報処理端末側で行う場合の流れを示す図である。 実施形態1に係る音声データの検索において、音声認識を情報処理サーバ側で行う場合の流れを示す図である。 実施形態1に係るマルチユーザによる検索の共有について説明するための図である。 実施形態1に係る共有元ユーザと共有先ユーザの対応付けを示すテーブルの一例である。 秘密鍵を用いた暗号化の様子を示す図である。 プロキシ再暗号処理を説明するための図である。 プロキシ再暗号処理をより詳細に示す図である。 実施形態2に係る情報処理端末の機能構成例を示すブロック図である。 実施形態2に係る情報処理サーバの機能構成例を示すブロック図である。 実施形態2に係る初期セットアップの流れを示す図である。 実施形態2に係る暗号化インデックス生成の流れを示す図である。 本開示の一実施形態に係る情報処理端末と情報処理サーバのハードウェア構成例を示す図である。
 以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
 なお、説明は以下の順序で行うものとする。
 1.実施形態1
  1.1.背景
  1.2.システム構成例
  1.3.情報処理端末10の機能構成例
  1.4.情報処理サーバ20の機能構成例
  1.5.機能の詳細
 2.実施形態2
  2.1.再暗号処理
  2.2.システム構成例
  2.3.情報処理端末10の機能構成例
  2.4.情報処理サーバ20の機能構成例
  2.5.機能の詳細
 3.ハードウェア構成例
 4.まとめ
 <<1.実施形態1>>
 <1.1.背景>
 まず、本開示の一実施形態に係る背景について述べる。上述したように、近年では、クラウドサービス等の普及に伴い、個人や企業などのデータを、サービス提供者が管理するサーバに保管する場面が増加している。また、一般的なサーバでは、データベースを暗号化するなどの手法によりユーザのデータを保護している。
 しかし、例えば、特許文献1に記載されるように、データの暗号化やインデックスの作成をサーバ側で行う場合、クライアントからのデータの送信時に当該データが傍受された場合や、暗号化前にサーバからデータが不正に取得された場合、平文のままのデータが流出することとなる。
 また、一般的なクラウドサービスでは、データを復号するための復号鍵もサーバで管理あれている場合もあり、権限を有するサービス管理者やサービスベンダーであれば、当該復号鍵を用いてユーザデータを復号することも可能である。このような事態を防ぐためには、サーバ上に保管されるユーザデータを、ユーザが利用するユーザ端末のみで復号できるように制御することが重要となる。
 ここで、上記のような制御を実現する手法としては、例えば、クライアント側によるユーザデータの暗号化が挙げられる。ユーザは、クライアント端末が管理するユーザの固有鍵(以下、固有鍵、とも称する)を用いて暗号化した暗号化データをサーバに送信・保管し、復号の際には、サーバからダウンロードした上記暗号化データを固有鍵を用いて復号することができる。
 上記のようなクライアント側による暗号化技術によれば、通信時およびサーバでの処理・保管時に平文が露出することが一切ないため、よりセキュアな検索システムを実現することが可能である。また、当該暗号化技術によれば、復号鍵がサーバ上で管理されないため、上述したようなサービス管理者などによる不正なデータ取得を防止することが可能となる。
 しかし、上記のように、クライアント側で検索用のインデックス作成を行う場合、インデックス作成に用いる辞書が肥大化し、クライアント側の処理を圧迫することも想定される。また、例えば、新語などへの対応のためには、上記の辞書を頻繁に更新することが求められ、更新のための通信コスト等も増大することとなる。
 本開示に係る技術思想は、上記の点に着目して発想されたものであり、インデックス作成に必要な単語の分割をクライアントとサーバとで分散して実行し、処理負担を軽減すると共によりセキュアな検索可能暗号技術を実現するものである。
 このために、本開示の一実施形態に係る情報処理端末10は、検索対象となる文書に含まれる単語の分割候補に対し第1の分散鍵を用いた準同型ハッシュ演算を行い、第1のハッシュ値を算出する暗号化部130と、第1のハッシュ値を情報処理サーバ20に送信する通信部170を備える。
 また、本開示の一実施形態に係る情報処理サーバ20は、情報処理端末10から第1のハッシュ値を受信する端末通信部240と、受信されたハッシュ値に対し第1の分散鍵に対応する第2の分散鍵を用いて準同型ハッシュ演算を行い、算出した第2のハッシュ値と暗号化辞書236とのマッチングに基づいて文書検索に用いられる単語の分割単位を決定する分割部210を備える。
 以下、本開示の一実施形態に係る情報処理端末10および情報処理サーバ20が有する機能と、当該機能が奏する効果について詳細に説明する。
 <1.2.システム構成例>
 まず、本開示の一実施形態に係る情報処理システムの構成例について述べる。図1は、実施形態1に係る情報処理システムの構成例を示す図である。図1を参照すると、実施形態1に係る情報処理システムは、情報処理端末10および情報処理サーバ20を備える。また、情報処理端末10と情報処理サーバ20とは、互いに通信が行えるように、ネットワーク30を介して接続される。
 (情報処理端末10)
 実施形態1に係る情報処理端末10は、文書の検索等を行うユーザが使用する情報処理装置である。情報処理端末10は、例えば、PC(Personal Computer)、スマートフォン、タブレットなどであってもよい。
 実施形態1に係る情報処理端末10は、検索対象となる文書や当該文書の検索に用いられるインデックスをユーザの固有鍵で暗号化したうえで情報処理サーバ20に送信・登録する。また、暗号化文書および暗号化インデックスの登録後においては、ユーザが入力する検索キーワードを暗号化して情報処理サーバ20に送信し、当該検索キーワードに応じた検索結果を取得する。
 (情報処理サーバ20)
 実施形態1に係る情報処理サーバ20は、情報処理端末10から受信した暗号化文書および暗号化インデックスを保管する情報処理装置である。また、実施形態1に係る情報処理サーバ20は、情報処理端末10から受信した暗号化キーワードと暗号化インデックスとに基づく文書検索を行い、検索結果を情報処理端末10に送信する。
 (ネットワーク30)
 ネットワーク30は、情報処理端末10と情報処理サーバ20とを接続する機能を有する。ネットワーク30は、インターネット、電話回線網、衛星通信網などの公衆回線網や、Ethernet(登録商標)を含む各種のLAN(Local Area Network)、WAN(Wide Area Network)などを含んでもよい。また、ネットワーク30は、IP-VPN(Internet Protocol-Virtual Private Network)などの専用回線網を含んでもよい。また、ネットワーク30は、Wi-Fi(登録商標)、Bluetooth(登録商標)など無線通信網を含んでもよい。
 以上、本開示の一実施形態に係る情報処理システムの構成例について述べた。なお、図1を用いて説明した上記の構成はあくまで一例であり、実施形態1に係る情報処理システムの構成は係る例に限定されない。実施形態1に係る情報処理システムの構成は、仕様や運用に応じて柔軟に変形可能である。
 <1.3.情報処理端末10の機能構成例>
 次に、本開示の一実施形態に係る情報処理端末10の機能構成例について詳細に説明する。図2は、実施形態1に係る情報処理端末10の機能構成例を示すブロック図である。図2を参照すると、実施形態1に係る情報処理端末10は、鍵管理部110、入力部120、暗号化部130、秘密分散処理部140、復号部150、表示部160、および通信部170を備える。
 (鍵管理部110)
 実施形態1に係る鍵管理部110は、ユーザの固有鍵や、情報処理サーバ20から受信した共通鍵、また秘密分散処理部140が生成した秘密分散片(分散鍵、とも称する)などを保管する。
 (入力部120)
 実施形態1に係る入力部120は、ユーザによる各種の入力操作を検出する。実施形態1に係る入力部120は、例えば、ユーザによる検索キーワードの入力や、文書の登録操作などを検出する。このために、実施形態1に係る入力部120は、キーボードやマウス、各種のボタンなどを有する。
 (暗号化部130)
 実施形態1に係る暗号化部130は、文書やインデックスの暗号化を行う。また、実施形態1に係る暗号化部130は、文書に含まれる単語の分割候補の作成や、当該分割候補に対する準同型ハッシュ演算などを行う。実施形態1に係る暗号化部130が有する機能の詳細については別途後述する。
 (秘密分散処理部140)
 実施形態1に係る秘密分散処理部140は、秘密分散処理による分散鍵の生成を行う。実施形態1に係る秘密分散処理部140は、例えば、情報処理サーバ20が備える暗号化辞書236に登録される単語の暗号化に用いられた共通鍵に対する秘密分散処理を行い、第1の分散鍵および第2の分散鍵を生成する。実施形態1に係る秘密分散処理部140が有する機能の詳細については別途後述する。
 (復号部150)
 実施形態1に係る復号部150は、暗号化されたデータの復号を行う。実施形態1に係る復号部150は、例えば、情報処理サーバ20から受信された検索結果の復号などを行う。
 (表示部160)
 実施形態1に係る表示部160は、画像やテキストなどの視覚情報を出力する。実施形態1に係る表示部160は、例えば、検索キーワードなどの入力データの入力、および検索結果の提示などの表示を行うためのユーザインタフェースを具備する。
 (通信部170)
 実施形態1に係る通信部170は、ネットワーク30を介して情報処理サーバ20との情報通信を行う。実施形態1に係る通信部170は、例えば、暗号化文書や暗号化インデックスを情報処理サーバ20に送信する。また、通信部170は、例えば、暗号化キーワードを情報処理サーバ20に送信し、当該暗号化キーワードに応じた検索結果を情報処理サーバ20から受信する。
 以上、本開示の一実施形態に係る情報処理端末10の機能構成例について述べた。なお、図2を用いて説明した上記の構成はあくまで一例であり、実施形態1に係る情報処理端末10の機能構成は係る例に限定されない。実施形態1に係る情報処理端末10の機能構成は、仕様や運用に応じて柔軟に変形可能である。
 <1.4.情報処理サーバ20の機能構成例>
 次に、本開示の一実施形態に係る情報処理サーバ20の機能構成例について詳細に説明する。図3は、実施形態1に係る情報処理サーバ20の機能構成例を示すブロック図である。図3を参照すると、実施形態1に係る情報処理サーバ20は、分割部210、検索部220、記憶部230、および端末通信部240を備える。
 (分割部210)
 実施形態1に係る分割部210は、暗号化辞書236を用いた形態素解析により、文書検索に用いられる単語の分割単位を決定する。実施形態1に係る分割部210が有する機能の詳細については別途後述する。
 (検索部220)
 実施形態1に係る検索部220は、情報処理端末10から受信された暗号化キーワードとインデックス保管部238に保管される暗号化インデックスとに基づく文書検索を行う。
 (記憶部230)
 実施形態1に係る記憶部230は、文書検索に係る各種の情報を記憶する。実施形態1に係る記憶部230は、データ保管部232、分散鍵保管部234、暗号化辞書236、インデックス保管部238などを備える。
 (データ保管部232)
 実施形態1に係るデータ保管部232は、情報処理端末10から受信された暗号化文書など、暗号化された各種のデータを保管する。
 (分散鍵保管部234)
 実施形態1に係る分散鍵保管部234は、情報処理端末10から受信された分散鍵を保管する。また、実施形態1に係る分散鍵保管部234は、分散鍵と共に、分散鍵の生成元である情報処理端末10やユーザの情報を記憶する。
 (暗号化辞書236)
 実施形態1に係る暗号化辞書236は、分割部210が形態素解析に用いる辞書である。実施形態1に係る暗号化辞書236には、全ユーザに共通の共通鍵により暗号化された複数の単語が登録される。
 (インデックス保管部238)
 実施形態1に係るインデックス保管部238は、情報処理端末10から受信された暗号化インデックスを保管する。
 (端末通信部240)
 実施形態1に係る端末通信部240は、ネットワーク30を介して情報処理端末10との情報通信を行う。実施形態1に係る端末通信部240は、例えば、情報処理端末10から暗号化文書や暗号化インデックスを受信する。また、端末通信部240は、例えば、情報処理端末10から暗号化キーワードを受信し、検索部220が取得した検索結果を情報処理端末10に送信する。
 以上、本開示の一実施形態に係る情報処理サーバ20の機能構成例について述べた。なお、図3を用いて説明した上記の構成はあくまで一例であり、実施形態1に係る情報処理サーバ20の機能構成は係る例に限定されない。例えば、実施形態1に係る検索部220が有する機能は、別途の検索装置により実現されてもよい。実施形態1に係る情報処理サーバ20の機能構成は、仕様や運用に応じて柔軟に変形可能である。
 <1.5.機能の詳細>
 次に、実施形態1に係る情報処理端末10および情報処理サーバ20が有する機能について詳細に説明する。上述したように、実施形態1に係る情報処理方法は、インデックス作成に必要な単語の分割をクライアントとサーバとで分散して実行し、処理負担を軽減すると共によりセキュアな検索可能暗号技術を実現するものである。
 より具体的には、実施形態1に係る情報処理方法では、まず、情報処理端末10の暗号化部130により検索対象となる文書に含まれる単語の分割候補を作成し、当該分割候補を暗号化したうえで情報処理サーバに送信する。
 次に、情報処理サーバ20の分割部210は、暗号化された分割候補と暗号化辞書236とのマッチングを行い、形態素解析に必要なラティス構造を作成する。
 続いて、分割部210は、ラティス構造上の重み情報に基づいて、文書検索に最適な単語の分割単位を決定する。
 次に、情報処理サーバ20の暗号化部130は、上記の分割単位に基づいて文書の全文検索用インデックスの作成を行い、暗号化したうえで情報処理サーバ20に登録する。
 上記の処理によれば、以降、登録された暗号化インデックスを用いて暗号化文書の全文検索をセキュアに実行することが可能となる。また、実施形態1に係る情報処理方法によれば、情報処理サーバ20上では検索可能暗号技術を用いることで平文が一切露出しない状況を作ることができ、また、復号鍵が情報処理サーバ20上で管理されないため、サービス管理者などによる不正なデータ取得を防止することが可能となる。
 以下、実施形態1に係る情報処理方法が含む各処理について、より詳細に説明する。まず、実施形態1に係る分散鍵の生成と保管について述べる。
 図4は、実施形態1に係る初期セットアップの流れを示す図である。実施形態1に係る初期セットアップでは、まず、情報処理端末10におけるユーザの固有鍵Ukの生成と、情報処理サーバ20における共通鍵Ckの生成が行われる。
 ここで、実施形態1に係る共通鍵Ckは、暗号化辞書236に登録される単語を暗号化するための鍵であり、全ユーザに共通して用いられる。
 次に、情報処理端末10の秘密分散処理部140は、通信部170を介して情報処理サーバ20から共通鍵Ckをダウンロードし、共通鍵Ckに対する秘密分散処理を行い、2つの秘密分散片である、第1の分散鍵s1および第2の分散鍵s2を生成する。なお、この際、生成される第1の分散鍵s1および第2の分散鍵s2は、情報処理端末10ごとに異なる。
 ここで、生成された第1の分散鍵s1は鍵管理部110により保管され、第2の分散鍵s2は通信部170により情報処理サーバ20(検索装置)に送信され、分散鍵保管部234に保管される。
 次に、実施形態1に係る暗号化インデックスの生成について述べる。図5は、実施形態1に係る暗号化インデックス生成の流れを示す図である。ここでは、まず、検索対象となる文書がユーザによる入力などにより生成される。暗号化部130は、生成された文書Dを固有鍵Ukを用いて暗号化し、続いて、通信部170が暗号化された文書Dを情報処理サーバ20に送信する。また、情報処理サーバ20のデータ保管部232は、端末通信部240が受信した暗号化された文書Dを保管する。図8は、実施形態1に係るデータ保管部232が有する文書本体および文書IDが保管されるテーブルの一例である。
 次に、実施形態1に係る暗号化部130は、文書Dに含まれる単語の分割候補を複数生成する。ここで、暗号化部130による分割精度は、後述する情報処理サーバ20の分割部210による単語の分割精度よりも低いものであってよい。具体的には、暗号化部130は、情報処理サーバ20が備える暗号化辞書236よりも登録単語数が少ない簡易辞書を用いた形態素解析や、N-Gramにより分割候補の生成を行う。
 形態素解析を行うためには、辞書が必要となるが、この際、新語や専門用語などに対応するためには辞書が肥大化し、情報処理端末10の処理を圧迫する可能性がある。このため、実施形態1に係る暗号化部130は、暗号化辞書236よりも登録単語数の少ない簡易辞書を用いた形態素解析を行うことで、処理負担を軽減してもよい。
 また、一般的に、N-Gramでは、本来の想定とは異なる単語に分割されることがあるが(例えば、「国会議事堂」が、「国会」「会議」、「議事」、「議事堂」などに分解されるなど)、実施形態1では、最終的な分割単位は情報処理サーバ20の分割部210による暗号化辞書236を用いた形態素解析により決定されるため、暗号化部130による分割候補の生成においては、精度を求めずに処理効率を優先してよい。
 続いて、暗号化部130は、生成した分割候補のすべてに対し、第1の分散鍵s1を用いて準同型ハッシュ演算(べき乗算)を行い第1のハッシュ値を算出する。また、通信部170は、算出された第1のハッシュ値を情報処理サーバ20(外部装置、とも称する)に送信する。
 次に、情報処理サーバ20の分割部210は、端末通信部240が情報処理端末10(端末、とも称する)から受信した第1のハッシュ値に対し、対応する第2の分散鍵s2を用いて準同型ハッシュ演算(乗算)を行い、第2のハッシュ値を算出する。
 続いて、分割部210は、算出した第2のハッシュ値と暗号化辞書236とのマッチングに基づいて、文書検索に用いられる単語の分割単位を決定する。より詳細には、分割部210は、第2のハッシュ値(単語)と暗号化辞書236とのマッチングを行い、当該マッチングの結果に基づいてラティス構造を作成する。次に、分割部210は、作成したラティス構造の重みに基づく形態素解析を行い、分割単位を決定することができる。
 通常、形態素解析に用いられる辞書は、単語の候補が複数ある場合に、出現頻度や単語間のつながりに係る数値を基に担当の区切りを確定させるため、単語や品詞、また出現頻度や単語間のつながりやすさなどに関する情報を有している。
 この際、実施形態1のように、検索可能暗号向けに暗号化を行う場合、辞書が含むすべての単語を検索可能暗号で暗号文に予め変換しておくことが求められる。しかし、ここで、共通鍵で暗号化を行う場合、鍵を共有することにより、どの単語を検索しているかを把握できてしまう可能性がある。このために、実施形態1では、暗号化辞書236の暗号化に用いた共通鍵を情報処理端末10側で秘密分散処理により分散し、一方の分散片である第2の分散鍵s2を情報処理サーバ20での辞書検索に用いることで、他のユーザに検索する単語が流出することを防止することができる。
 図6は、実施形態1に係る分割部210により作成されるラティス構造の一例である。図6では、文章「国会議事堂に行く」に対するラティス構造の一例が示されている。実施形態1に係る分割部210は、情報処理端末10の暗号化部130が暗号化した、例えば、「国会」などの単語を暗号化辞書236とマッチングさせることにより図示するようなラティス構造を作成し、生起コストや連接コストなどの重みに基づいて、品詞などを決定することが可能である。
 なお、図6では、日本語に対するラティス構造の一例を示したが、実施形態1に係る分割部210は、例えば、英語などの他の言語に対する形態素解析を行うことも可能である。例えば、“I live in New York City”という文章の場合、“New York City”は固有名詞であるため、連結した状態で取得することが望まれる。この場合、暗号化辞書236に、固有名詞“New York City”を予め登録しておくことで、“I”、“live”、“in”、“New York City”を文書検索に最適な単位で分割することが可能となる。
 なお、“New York City”が固有名詞であることが暗号化辞書236に登録されている場合、分割部210は、略称である“NY”や“NYC”などを関連語として分割単位の含めることもできる。
 再び図5を参照して暗号化インデックス生成の流れについて説明を続ける。分割部210により分割単位が決定されると、端末通信部240は、決定された分割単位に係る暗号化情報を情報処理端末10に送信する。ここで、上記の分割単位に係る暗号化情報とは、分割されたすべての単語を暗号化したデータであってよい。
 次に、情報処理端末10の復号部150は、通信部170が受信した暗号化情報を復号化し、文書Dに対するインデックスが確定する。
 次に、暗号化部130は、確定したインデックスを、固有鍵Ukを用いて暗号化し暗号化インデックスを生成する。続いて、通信部170は、生成された暗号化インデックスを情報処理サーバ20に送信する。また、情報処理サーバ20のインデックス保管部238は、端末通信部240が受信した暗号化された文書Dを保管する。図7は、実施形態1に係るインデックス保管部238が有する、暗号化インデックスと文書の紐付きを示すテーブルの一例である。図7に示す一例の場合、例えば、単語Wは文書Aおよび文書Bに含まれており、単語W11は文書A、文書B、および文書Cに含まれていることがわかる。
 以上、実施形態1に係る暗号化インデックス生成の流れについて説明した。次に、上記のように生成した暗号化インデックスを用いた暗号化文書の検索について説明する。図9は、実施形態1に係る暗号化文書の検索について説明するための図である。
 まず、情報処理端末10の暗号化部130は、ユーザにより入力された検索キーワードを固有鍵Ukを用いて暗号化し、暗号化キーワードEKWを生成する。実施形態1に係る暗号化部130は、検索キーワードを準同型ハッシュ演算によりハッシュ値化し、当該ハッシュ値を、例えば、ブルームフィルタやカウンティングフィルタのようなAMQ(Appriximate Membership Query)形式にエンコード(マッピング)することで、暗号化キーワードを生成してもよい。
 この際、暗号化部130は、入力された検索キーワードが単一である場合や、複数の検索キーワードを用いたAND検索の場合には、例えば、単一のブルームフィルタにマッピングを行う。一方、複数の検索キーワードを用いたOR検索の場合、暗号化部130は、例えば、ORの単位でブルームフィルタへのマッピングを行ってよい。
 通信部170は、暗号化部130が生成した暗号化キーワードEKWを情報処理サーバ20に送信する。
 次に、情報処理サーバ20の検索部220は、情報処理端末10から受信された暗号化キーワードEKWと、インデックス保管部238が保管する複数の暗号化インデックスEIとに基づいて文書検索を実行する。具体的には、検索部220は、暗号化キーワードEKWと暗号化インデックスEIとの間でビット単位の一致判定を行うことで検索を行うことができる。なお、実施形態1に係る暗号化インデックスEIは、暗号化キーワードEKWと同じくブルームフィルタなどにマッピングされたものであってよい。
 ここで、暗号化インデックスEKWが含まれる暗号化インデックスEIが存在する場合、検索部220は、図7に示したようなテーブルに基づいて、対応する暗号化文書を特定することが可能である。例えば、暗号化キーワードEKWが単語W11であった場合、検索部220は、文書A、文書B、文書Cが該当する旨を検索結果として、端末通信部240を介して情報処理端末10に返してもよい。また、一方で、検索部220は、文書A、文書B、文書Cそのものを検索結果として返してもよい。図9に示す一例では、検索部220は、該当する暗号化文書EDそのものを検索結果として情報処理端末10に返している。
 この場合、情報処理端末10の復号部150は、通信部170が受信した、検索結果である暗号化文書EDを復号し、平文の文書Dを取得することができる。
 以上、実施形態1に係る情報処理端末10および情報処理サーバ20による処理の流れについて説明した。上述したように、実施形態1に係る情報処理方法によれば、情報処理サーバ20上では検索可能暗号技術を用いることで平文が一切露出しない状況を作ることができ、また、復号鍵が情報処理サーバ20上で管理されないため、サービス管理者などによる不正なデータ取得を防止することが可能となる。
 なお、上記では、主に文書の検索を行う場合を例に述べたが、実施形態1に係る情報処理方法は、文書以外のデータに対しても適用することが可能である。実施形態1に係る情報処理方法は、例えば、音声メモの検索に用いられてもよい。実施形態1に係る情報処理方法によれば、録音された音声データに対する音声認識を行い、当該音声認識の結果に基づいて検索用のインデックスを作成することで、よりセキュアに音声データの検索を行うことが可能となる。
 この際、上記を実現するための構成としては、音声認識を情報処理端末10側で行う場合と、情報処理サーバ20側で行う場合とが想定される。
 図10は、実施形態1に係る音声データの検索において、音声認識を情報処理端末10側で行う場合の流れを示す図である。この場合、まず、ユーザの発話UOに対して情報処理端末10に備えられる音声認識部が音声認識を行い、音声認識結果RRと音声データVRを生成する。次に、暗号化部130が固有鍵Ukを用いて音声データVRを暗号化し、通信部170が暗号化された音声データVRを情報処理サーバ20に送信する。情報処理サーバ20のデータ保管部232は、端末通信部240が受信した、暗号化された音声データVRを保管する。
 また、実施形態1に係る情報処理端末10および情報処理サーバ20は、上記の処理と並行して、音声認識結果RRに基づく暗号化インデックスの生成処理を行う。情報処理端末10および情報処理サーバ20は、音声認識結果RRから生成された分割候補に対し、図5のステップS1101に示す後続処理を行うことで、暗号化インデックスを生成することが可能である。
 一方、図11は、実施形態1に係る音声データの検索において、音声認識を情報処理サーバ20側で行う場合の流れを示す図である。この場合、まず、情報処理端末10の暗号化部130がユーザの発話UOを録音した音声データVRを固有鍵を用いて暗号化し、通信部170が暗号化された音声データVRを情報処理サーバ20に送信する。情報処理サーバ20のデータ保管部232は、端末通信部240が受信した、暗号化された音声データVRを保管する。
 また、この場合も同様に、情報処理端末10および情報処理サーバ20は、暗号化インデックスの生成処理を並行して行う。まず、情報処理サーバ20に備えられる音声認識部がユーザの発話UOに対する音声認識処理を実行し音声認識結果RRを取得する。次に、情報処理サーバ20の分割部210が音声認識結果RRから分割候補を作成する。続いて、分割部210は、分割候補に対し、情報処理端末10から一時的に取得した第1の分割鍵s1を用いた準同型ハッシュ演算、および分散鍵保管部234に保管される第2の分割鍵s2を用いた準同型ハッシュ演算を行う。上記の処理の後、情報処理サーバ20および情報処理端末10は、図5のステップS1102に示す後続処理を行うことで、暗号化インデックスを生成することが可能である。
 このように、実施形態1に係る情報処理方法によれば、テキストデータのみではなく、音声データの検索もよりセキュアに実現することが可能である。
 また、実施形態1に係る情報処理方法は、例えば、Webサービスのパスワード管理などに適用することも可能である。近年では、多種多様なWebサービスが展開されているが、複数のWebサービスを利用するユーザにとっては、パスワードを覚えきれないなどの弊害が発生し得る。
 このために、実施形態1に係る情報処理方法では、Webサービスに使用するパスワードやユーザID、URLやサイト名などを検索対象とすることで、セキュアなパスワード管理を実現することができる。
 具体的には、図5に示した処理の流れにおいて、ユーザは文書Dに代えて、パスワード、ユーザID、URL、サイト名などを暗号化して情報処理サーバ20に登録する。次に、図5に示す情報処理サーバ20および情報処理端末10は、上記の情報に基づく暗号化インデックスの生成処理を実行し、情報処理サーバ20が当該暗号化インデックスを保管する。
 上記の処理によれば、固有鍵Ukを有するユーザのみが、ユーザIDやURL、サイト名などを用いてパスワードを検索することができ、セキュアなパスワード管理を実現することが可能となる。
 また、例えば、暗号化辞書236にパスワードとして不適当なパターン(例えば、abc123など)を登録することにより、脆弱なパスワードが登録されることを防ぐことなども可能であり、セキュリティ性をより向上させることができる。
 以上、実施形態1に係る情報処理方法の文書検索以外への適用例について説明した。このように、実施形態1に係る情報処理方法は、種々の検索サービスに柔軟に適用可能である。
 また、実施形態1に係る情報処理方法は、マルチユーザによる検索にも対応可能である。例えば、自身が登録した文書に対する検索行為を特定の他のユーザにのみ許諾したい状況なども想定される。しかし、データの暗号化に用いた固有鍵を他のユーザと共有する場合、なりすましなどが可能となることから、セキュリティ性が低下することとなる。このため、実施形態1に係る情報処理方法では、文書などのデータの暗号化に用いた固有鍵を秘密分散処理により分散し、一方の分散片を他のユーザに、他方の分散片を情報処理サーバ20に保管することで、マルチユーザによる検索の共有をセキュアに実現することができる。
 図12は、実施形態1に係るマルチユーザによる検索の共有について説明するための図である。図12では、情報処理端末10aを所有するユーザが、図4および図5に示した暗号化文書と暗号化インデックスの登録を行った後、登録した暗号化文書の検索を情報処理端末10bを所有するユーザに許諾する場合の一例が示されている。
 この際、共有元となる情報処理端末10aの秘密分散処理部140は、暗号化文書および暗号化インデックスの生成に用いた固有鍵Ukに対する秘密分散処理を行い、第3の分散鍵s3および第4の分散鍵s4を生成する。次に、通信部170は、生成された第3の分散鍵s3を共有先となる情報処理端末10b(検索許諾装置)に送信し、第4の分散鍵s4を情報処理端末10を情報処理サーバ20(検索装置)に送信する。
 この後、共有先の情報処理端末10bで検索を行う場合、情報処理端末10bの暗号化部130bは、情報処理端末10aから受信した第3の分散鍵s3と準同型ハッシュパラメータgを用いて準同型ハッシュ演算(べき乗算)を行い、算出した第3のハッシュ値を情報処理サーバ20に送信する。
 次に、情報処理サーバ20の検索部220は、端末通信部240が受信した第3のハッシュ値に対し、情報処理端末10aから受信され分散鍵保管部234に保管される第4の分散鍵s4を用いて準同型ハッシュ演算(乗算)を行う。続いて、検索部220は、算出した第4のハッシュ値と、インデックス保管部238に保管される暗号化インデックスとの間でビット単位の一致判定を行うことで検索を実行する。
 この際、検索部220は、文書の所有者(共有元ユーザ)と検索が許諾されたユーザ(共有先ユーザ)との対応付けを示すテーブルに基づいて、検索を実行してもよい。図13は、実施形態1に係る共有元ユーザと共有先ユーザの対応付けを示すテーブルの一例である。
 例えば、図7に示した暗号化インデックスに対し単語W11を検索する場合、文書A、文書B、文書Cが該当する文書となるが、ここで、図13を参照すると、文書Aには検索が許諾されたユーザがなく、文書Bにはユーザβおよびユーザγ、文章Cにはユーザβおよびユーザσが検索を許諾されている。このため、検索部220は、ユーザβによる単語W11の検索に関しては、検索結果から文書Aの存在を排除し、文書Bおよび文書Cのみに係る検索結果を返してよい。同様に、ユーザγが単語W11を検索した場合、検索部220は、検索結果から文書Aおよび文書Cの存在を排除し、文書Bのみに係る検索結果を返してよい。
 このように、実施形態1に係るマルチユーザによる検索の共有によれば、共有が許諾された文書のみに係る検索結果を返すことで、共有が許諾されていない文書の存在を秘匿することができ、よりセキュアな検索の共有を実現することができる。
 <<2.実施形態2>>
 実施形態1では、情報処理端末10が共通鍵Ckに秘密分散処理を行い、第1の分散鍵s1および第2の分散鍵s2を生成している。そのため、情報処理サーバ20は情報処理端末10に共通鍵Ckを送信する必要がある。この場合、共通鍵Ckが情報処理端末10を介して外部に漏れる恐れがある。
 一方、情報処理サーバ20が共通鍵Ckに秘密分散処理を行うことで、第1の分散鍵s1および第2の分散鍵s2を生成することも考えられる。しかし、この場合、情報処理端末10が秘密に保持しておくべき第1の分散鍵s1が情報処理サーバ20に知られることになる。
 そこで、実施形態2では、再暗号処理の仕組みを利用することにより、共通鍵Ckが情報処理端末10に取得されないようにする。これにより、形態素解析を行うための辞書とのマッチング方法の安全性をさらに向上させる。
 <2.1.再暗号処理>
 実施形態2の説明に入る前に、実施形態2で使用する再暗号処理の概要を説明する。具体的には、プロキシ再暗号(代理人再暗号)の処理について簡単に説明する。
 図14は、秘密鍵を用いた暗号化の様子を示す図である。例えば、図14に示すように、ユーザAが、自分の秘密鍵で平文を暗号化した暗号文があるとする。そして、ユーザBがその暗号文の平文を得たいとする。この場合、ユーザBは、自分の秘密鍵でユーザAの暗号文を復号することはできないので、ユーザAの平文を得ることはできない。
 図15は、プロキシ再暗号処理を説明するための図である。プロキシ再暗号(代理人再暗号)では、ユーザAの秘密鍵とユーザBの公開鍵で再暗号化鍵を生成する。プロキシ再暗号では、ユーザAの公開鍵で暗号化した暗号文を再暗号化鍵で暗号化する。これにより、ユーザBの公開鍵で暗号化した暗号文を作り出す。ユーザBは、その暗号文を自分の秘密鍵で復号することでユーザAの平文を得ることができる。
 図16は、プロキシ再暗号処理をより詳細に示す図である。図16の例では、ユーザAは、平文mを暗号化している。暗号文(mg,r(aP))は再暗号化鍵(b/a)Pで再暗号化され、暗号文(mg,grb)に変換される。再暗号化には図16に示すようにペアリングを使用する。暗号文(mg,grb)はユーザBの秘密鍵で復号される。これによりユーザBは平文mを得ることができる。
 <2.2.システム構成例>
 以上、再暗号処理の概要を説明したが、次に、実施形態2に係る情報処理システムの構成例について述べる。
 実施形態2に係る情報処理システムの構成は、図1に示した実施形態1に係る情報処理システムの構成と同様である。図1を参照すると、実施形態2に係る情報処理システムは、情報処理端末10および情報処理サーバ20を備える。また、情報処理端末10と情報処理サーバ20とは、互いに通信が行えるように、ネットワーク30を介して接続される。
 <2.3.情報処理端末10の機能構成例>
 次に、実施形態2に係る情報処理端末10の機能構成例について詳細に説明する。図17は、実施形態2に係る情報処理端末10の機能構成例を示すブロック図である。図17を参照すると、実施形態2に係る情報処理端末10は、鍵管理部110、入力部120、暗号化部130、復号部150、表示部160、および通信部170、および再暗号化鍵生成部180を備える。
 (鍵管理部110)
 実施形態2に係る鍵管理部110は、ユーザの固有鍵や、情報処理サーバ20から受信した共通鍵、また再暗号化鍵生成部180が生成した再暗号化鍵などを保管する。
 (再暗号化鍵生成部180)
 実施形態2に係る再暗号化鍵生成部180は、再暗号化処理による再暗号化鍵の生成を行う。実施形態2に係る再暗号化鍵生成部180は、例えば、情報処理サーバ20が備える暗号化辞書236に登録される単語の暗号化に用いられた共通鍵に対する再暗号化鍵生成処理を行い、再暗号化鍵を生成する。実施形態2に係る再暗号化鍵生成部180が有する機能の詳細については別途後述する。
 (その他の構成)
 入力部120、暗号化部130、復号部150、表示部160、及び通信部170の構成は実施形態1と同様である。
 以上、実施形態2に係る情報処理端末10の機能構成例について述べた。なお、図17を用いて説明した上記の構成はあくまで一例であり、実施形態2に係る情報処理端末10の機能構成は係る例に限定されない。実施形態2に係る情報処理端末10の機能構成は、仕様や運用に応じて柔軟に変形可能である。
 <2.4.情報処理サーバ20の機能構成例>
 次に、本開示の一実施形態に係る情報処理サーバ20の機能構成例について詳細に説明する。図18は、実施形態2に係る情報処理サーバ20の機能構成例を示すブロック図である。図18を参照すると、実施形態2に係る情報処理サーバ20は、分割部210、検索部220、記憶部230、および端末通信部240を備える。
 (記憶部230)
 実施形態2に係る記憶部230は、文書検索に係る各種の情報を記憶する。実施形態2に係る記憶部230は、データ保管部232、再暗号化鍵保管部235、暗号化辞書236、インデックス保管部238などを備える。データ保管部232、暗号化辞書236、及びインデックス保管部238の構成は実施形態1と同様である。
 (再暗号化鍵保管部235)
 実施形態2に係る再暗号化鍵保管部235は、情報処理端末10から受信された再暗号化鍵を保管する。また、実施形態2に係る再暗号化鍵保管部235は、再暗号化鍵と共に、再暗号化鍵の生成元である情報処理端末10やユーザの情報を記憶する。
 (その他の構成)
 分割部210、検索部220、および端末通信部240の構成は実施形態1と同様である。
 以上、実施形態2に係る情報処理サーバ20の機能構成例について述べた。なお、図18を用いて説明した上記の構成はあくまで一例であり、実施形態2に係る情報処理サーバ20の機能構成は係る例に限定されない。例えば、実施形態2に係る検索部220が有する機能は、別途の検索装置により実現されてもよい。実施形態2に係る情報処理サーバ20の機能構成は、仕様や運用に応じて柔軟に変形可能である。
 <2.5.機能の詳細>
 次に、実施形態2に係る情報処理端末10および情報処理サーバ20が有する機能について詳細に説明する。上述したように、実施形態2に係る情報処理方法は、インデックス作成に必要な単語の分割をクライアントとサーバとで分散して実行し、処理負担を軽減すると共によりセキュアな検索可能暗号技術を実現するものである。
 実施形態2に係る情報処理方法でも、情報処理端末10の暗号化部130は、検索対象となる文書に含まれる単語の分割候補を作成する。そして、暗号化部130は、当該分割候補を暗号化したうえで情報処理サーバに送信する。
 次に、情報処理サーバ20の分割部210は、暗号化された分割候補と暗号化辞書236とのマッチングを行い、形態素解析に必要なラティス構造を作成する。続いて、分割部210は、ラティス構造上の重み情報に基づいて、文書検索に最適な単語の分割単位を決定する。次に、情報処理サーバ20の暗号化部130は、上記の分割単位に基づいて文書の全文検索用インデックスの作成を行い、暗号化したうえで情報処理サーバ20に登録する。
 上記の処理によれば、以降、登録された暗号化インデックスを用いて暗号化文書の全文検索をセキュアに実行することが可能となる。また、実施形態2に係る情報処理方法によれば、情報処理サーバ20上では検索可能暗号技術を用いることで平文が一切露出しない状況を作ることができ、また、復号鍵が情報処理サーバ20上で管理されないため、サービス管理者などによる不正なデータ取得を防止することが可能となる。
 以下、実施形態2に係る情報処理方法が含む各処理について、より詳細に説明する。まず、実施形態2に係る分散鍵の生成と保管について述べる。
 図19は、実施形態2に係る初期セットアップの流れを示す図である。実施形態2に係る初期セットアップでも、情報処理端末10におけるユーザの固有鍵Ukの生成と、情報処理サーバ20における共通鍵Ckの生成が行われる。
 実施形態2でも共通鍵Ckは、暗号化辞書236に登録される単語を暗号化するための鍵であり、全ユーザに共通して用いられる。なお、実施形態2では、共通鍵Ckが情報処理端末10に漏れないようにするため、情報処理サーバ20に共通鍵Ckに準同型ハッシュ演算(べき乗算)を行い、ハッシュ化された共通鍵CkQを生成する。
 次に、情報処理端末10の秘密分散処理部140は、通信部170を介して情報処理サーバ20からハッシュ化された共通鍵Ckをダウンロードし、共通鍵Ckに対する再暗号化鍵生成処理を行い、秘密鍵aP(第1の分散鍵)および再暗号化鍵CkQ(第2の分散鍵)を生成する。なお、この際、生成される秘密鍵aPおよび再暗号化鍵CkQは、情報処理端末10ごとに異なる。
 ここで、生成された秘密鍵aPは鍵管理部110により保管され、再暗号化鍵CkQは通信部170により情報処理サーバ20(検索装置)に送信され、再暗号化鍵保管部235に保管される。
 次に、実施形態2に係る暗号化インデックスの生成について述べる。図20は、実施形態2に係る暗号化インデックス生成の流れを示す図である。なお、図20のステップ2101に示す処理は図5のステップS1101に示す処理に対応し、図20のステップ2102に示す処理は図5のステップS1102に示す後続処理に対応する。
 ここでは、まず、検索対象となる文書がユーザによる入力などにより生成される。暗号化部130は、生成された文書Dを固有鍵Ukを用いて暗号化し、続いて、通信部170が暗号化された文書Dを情報処理サーバ20に送信する。また、情報処理サーバ20のデータ保管部232は、端末通信部240が受信した暗号化された文書Dを保管する。
 次に、実施形態2に係る暗号化部130は、文書Dに含まれる単語の分割候補を複数生成する。そして、暗号化部130は、生成した分割候補のすべてに対し、秘密鍵aPを用いて準同型ハッシュ演算(べき乗算)を行い第1のハッシュ値を算出する。また、通信部170は、算出された第1のハッシュ値を情報処理サーバ20(外部装置、とも称する)に送信する。
 次に、情報処理サーバ20の分割部210は、端末通信部240が情報処理端末10(端末、とも称する)から受信した第1のハッシュ値に対し、対応する再暗号化鍵CkQを用いてペアリングを行い、第2のハッシュ値を算出する。
 続いて、分割部210は、算出した第2のハッシュ値と暗号化辞書236とのマッチングに基づいて、文書検索に用いられる単語の分割単位を決定する。より詳細には、分割部210は、第2のハッシュ値(単語)と暗号化辞書236とのマッチングを行い、当該マッチングの結果に基づいてラティス構造を作成する。次に、分割部210は、作成したラティス構造の重みに基づく形態素解析を行い、分割単位を決定することができる。
 情報処理端末10及び情報処理サーバ20のその他の処理は、実施形態1の情報処理端末10及び情報処理サーバ20と同じであってもよい。
 以上、実施形態2の処理について述べたが、実施形態2の処理によっても、実施形態1と同様に、他のユーザに検索する単語が流出することを防止することができる。
 しかも、実施形態2では、情報処理サーバ20は共通鍵を直接端末に送信するのではなく、準同型ハッシュした値を端末に送信している。そのため、情報処理サーバ20が有する共通鍵Ckが端末に漏れることがない。その結果、形態素解析を行うための辞書とのマッチング方法の安全性がさらに向上する。
 <3.ハードウェア構成例>
 次に、本開示の一実施形態に係る情報処理端末10と情報処理サーバ20に共通するハードウェア構成例について説明する。図21は、本開示の一実施形態に係る情報処理端末10と情報処理サーバ20のハードウェア構成例を示すブロック図である。図21を参照すると、情報処理端末10と情報処理サーバ20は、例えば、プロセッサ871と、ROM872と、RAM873と、ホストバス874と、ブリッジ875と、外部バス876と、インターフェース877と、入力装置878と、出力装置879と、ストレージ880と、ドライブ881と、接続ポート882と、通信装置883と、を有する。なお、ここで示すハードウェア構成は一例であり、構成要素の一部が省略されてもよい。また、ここで示される構成要素以外の構成要素をさらに含んでもよい。
 (プロセッサ871)
 プロセッサ871は、例えば、演算処理装置又は制御装置として機能し、ROM872、RAM873、ストレージ880、又はリムーバブル記録媒体901に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。
 (ROM872、RAM873)
 ROM872は、プロセッサ871に読み込まれるプログラムや演算に用いるデータ等を格納する手段である。RAM873には、例えば、プロセッサ871に読み込まれるプログラムや、そのプログラムを実行する際に適宜変化する各種パラメータ等が一時的又は永続的に格納される。
 (ホストバス874、ブリッジ875、外部バス876、インターフェース877)
 プロセッサ871、ROM872、RAM873は、例えば、高速なデータ伝送が可能なホストバス874を介して相互に接続される。一方、ホストバス874は、例えば、ブリッジ875を介して比較的データ伝送速度が低速な外部バス876に接続される。また、外部バス876は、インターフェース877を介して種々の構成要素と接続される。
 (入力装置878)
 入力装置878には、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチ、及びレバー等が用いられる。さらに、入力装置878としては、赤外線やその他の電波を利用して制御信号を送信することが可能なリモートコントローラ(以下、リモコン)が用いられることもある。また、入力装置878には、マイクロフォンなどの音声入力装置が含まれる。
 (出力装置879)
 出力装置879は、例えば、CRT(Cathode Ray Tube)、LCD、又は有機EL等のディスプレイ装置、スピーカ、ヘッドホン等のオーディオ出力装置、プリンタ、携帯電話、又はファクシミリ等、取得した情報を利用者に対して視覚的又は聴覚的に通知することが可能な装置である。また、本開示に係る出力装置879は、触覚刺激を出力することが可能な種々の振動デバイスを含む。
 (ストレージ880)
 ストレージ880は、各種のデータを格納するための装置である。ストレージ880としては、例えば、ハードディスクドライブ(HDD)等の磁気記憶デバイス、半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイス等が用いられる。
 (ドライブ881)
 ドライブ881は、例えば、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体901に記録された情報を読み出し、又はリムーバブル記録媒体901に情報を書き込む装置である。
 (リムーバブル記録媒体901)
 リムーバブル記録媒体901は、例えば、DVDメディア、Blu-ray(登録商標)メディア、HD DVDメディア、各種の半導体記憶メディア等である。もちろん、リムーバブル記録媒体901は、例えば、非接触型ICチップを搭載したICカード、又は電子機器等であってもよい。
 (接続ポート882)
 接続ポート882は、例えば、USB(Universal Serial Bus)ポート、IEEE1394ポート、SCSI(Small Computer System Interface)、RS-232Cポート、又は光オーディオ端子等のような外部接続機器902を接続するためのポートである。
 (外部接続機器902)
 外部接続機器902は、例えば、プリンタ、携帯音楽プレーヤ、デジタルカメラ、デジタルビデオカメラ、又はICレコーダ等である。
 (通信装置883)
 通信装置883は、ネットワークに接続するための通信デバイスであり、例えば、有線又は無線LAN、Bluetooth(登録商標)、又はWUSB(Wireless USB)用の通信カード、光通信用のルータ、ADSL(Asymmetric Digital Subscriber Line)用のルータ、又は各種通信用のモデム等である。
 <4.まとめ>
 以上説明したように、本開示の一実施形態に係る情報処理サーバ20は、第1の分散鍵を用いて算出された第1のハッシュ値を情報処理端末10から受信する端末通信部240と、第1のハッシュ値に対し第1の分散鍵に対応する第2の分散鍵を用いて準同型ハッシュ演算を行い、算出した第2のハッシュ値と暗号化辞書とのマッチングに基づいて文書検索に用いられる単語の分割単位を決定する分割部210と、を備える。また、上記の端末通信部240は、分割部210により決定された分割単位に係る暗号化情報を情報処理端末10に送信する。
 また、本開示の一実施形態に係る情報処理端末10は、検索対象となる文書に含まれる単語の分割候補に対し第1の分散鍵を用いた準同型ハッシュ演算を行い、第1のハッシュ値を算出する暗号化部130と、第1のハッシュ値を情報処理サーバ20に送信する通信部170と、を備える。また、上記の通信部170は、第1のハッシュ値に対する第2の分散鍵を用いた準同型ハッシュ演算により算出された第2のハッシュ値と暗号化辞書とのマッチングに基づいて決定された、文書検索用の単語の分割単位に係る暗号化情報を情報処理サーバ20から受信する。
 上記の構成によれば、処理負担を軽減すると共によりセキュアな検索可能暗号技術を実現することが可能となる。
 以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
 また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
 また、コンピュータに内蔵されるCPU、ROMおよびRAMなどのハードウェアに、情報処理サーバ20が有する構成と同等の機能を発揮させるためのプログラムも作成可能であり、当該プログラムを記録した、コンピュータに読み取り可能な非一過性の記録媒体も提供され得る。
 また、本明細書の情報処理サーバ20の処理に係る各ステップは、必ずしも図示された順序に沿って時系列に処理される必要はない。例えば、情報処理サーバ20の処理に係る各ステップは、図示された順序と異なる順序で処理されても、並列的に処理されてもよい。
 なお、以下のような構成も本開示の技術的範囲に属する。
(1)
 第1の分散鍵を用いて算出された第1のハッシュ値を端末から受信する通信部と、
 前記第1のハッシュ値に対し前記第1の分散鍵に対応する第2の分散鍵を用いて準同型ハッシュ演算を行い、算出した第2のハッシュ値と暗号化辞書とのマッチングに基づいて文書検索に用いられる単語の分割単位を決定する分割部と、
 を備え、
 前記通信部は、前記分割部により決定された前記分割単位に係る暗号化情報を前記端末に送信する、
情報処理装置。
(2)
 前記第1のハッシュ値は、検索対象となる文書に含まれる単語の分割候補を前記第1の分散鍵を用いた準同型ハッシュ演算によりハッシュ化した値である、
前記(1)に記載の情報処理装置。
(3)
 前記第1のハッシュ値に係る単語の分割精度は、前記分割部による単語の分割精度よりも低い、
前記(2)に記載の情報処理装置。
(4)
 前記分割部は、形態素解析により前記分割単位を決定する、
前記(1)に記載の情報処理装置。
(5)
 前記分割部は、前記第2のハッシュ値と前記暗号化辞書とのマッチングに基づいてラティス構造を作成し、前記ラティス構造上の重みに基づいて前記分割単位を決定する、
前記(4)に記載の情報処理装置。
(6)
 前記第1の分散鍵および第2の分散鍵は、前記暗号化辞書に登録される単語の暗号化に用いられた共通鍵を秘密分散処理することで生成され、
 前記通信部は、前記端末から前記第2の分散鍵を受信する、
前記(1)~(5)のいずれかに記載の情報処理装置。
(7)
 前記通信部は、前記分割単位に係る暗号化情報に基づいて生成された暗号化インデックスを前記端末から受信する、
前記(1)~(6)のいずれかに記載の情報処理装置。
(8)
 前記通信部が前記端末から受信した暗号化キーワードと前記暗号化インデックスとに基づいて文書検索を行う検索部、
 をさらに備える、
前記(7)に記載の情報処理装置。
(9)
 前記暗号化キーワードおよび暗号化インデックスは、ブルームフィルタにマッピングされる、
前記(8)に記載の情報処理装置。
(10)
 検索対象となる文書に含まれる単語の分割候補に対し第1の分散鍵を用いた準同型ハッシュ演算を行い、第1のハッシュ値を算出する暗号化部と、
 前記第1のハッシュ値を外部装置に送信する通信部と、
 を備え、
 前記通信部は、前記第1のハッシュ値に対する第2の分散鍵を用いた準同型ハッシュ演算により算出された第2のハッシュ値と暗号化辞書とのマッチングに基づいて決定された、文書検索用の単語の分割単位に係る暗号化情報を前記外部装置から受信する、
情報処理装置。
(11)
 前記暗号化辞書に登録される単語の暗号化に用いられた共通鍵に対する秘密分散処理を行い、前記第1の分散鍵および前記第2の分散鍵を生成する秘密分散処理部、
 をさらに備え、
 前記通信部は、前記第2の分散鍵を前記外部装置に送信する、
前記(10)に記載の情報処理装置。
(12)
 前記暗号化部は、前記検索対象となる文書を固有鍵により暗号化した暗号化文書と、前記分割単位を前記固有鍵により暗号化した暗号化インデックスとを生成し、
 前記通信部は、前記暗号化文書および前記暗号化インデックスを検索装置に送信する、前記(11)に記載の情報処理装置。
(13)
 前記暗号化部は、入力された検索キーワードを前記固有鍵により暗号化した暗号化キーワードを生成し、
 前記通信部は、前記暗号化キーワードを前記検索装置に送信し、検索結果を受信する、前記(12)に記載の情報処理装置。
(14)
 前記分割単位は、前記暗号化辞書を用いた形態素解析により決定される、
前記(10)~(13)のいずれかに記載の情報処理装置。
(15)
 前記暗号化部は、形態素解析により前記分割候補を決定し、
 前記暗号化部による形態素解析に用いられる辞書に登録される単語の数は、前記暗号化辞書に登録される単語の数よりも少ない、
前記(14)に記載の情報処理装置。
(16)
 前記暗号化部は、N-Gramを用いて前記分割候補を決定する、
前記(14)に記載の情報処理装置。
(17)
 前記秘密分散処理部は、前記暗号化文書および前記暗号化インデックスの生成に用いられた前記固有鍵に対する秘密分散処理を行い、第3の分散鍵および第4の分散鍵を生成し、
 前記通信部は、前記第3の分散鍵を検索許諾端末に送信し、前記第4の分散鍵を前記検索装置に送信する、
前記(12)に記載の情報処理装置。
(18)
 前記検索結果を復号する復号部、
 をさらに備える、
前記(13)に記載の情報処理装置。
(19)
 プロセッサが、
 第1の分散鍵を用いて算出された第1のハッシュ値を端末から受信することと、
 前記第1のハッシュ値に対し前記第1の分散鍵に対応する第2の分散鍵を用いて準同型ハッシュ演算を行い、算出した第2のハッシュ値と暗号化辞書とのマッチングに基づいて文書検索に用いられる単語の分割単位を決定することと、
 前記分割単位に係る暗号化情報を前記端末に送信することと、
 を含む、
情報処理方法。
(20)
 プロセッサが、
 検索対象となる文書に含まれる単語の分割候補に対し第1の分散鍵を用いた準同型ハッシュ演算を行い、第1のハッシュ値を算出することと、
 前記第1のハッシュ値を外部装置に送信することと、
 前記第1のハッシュ値に対する第2の分散鍵を用いた準同型ハッシュ演算により算出された第2のハッシュ値と暗号化辞書とのマッチングに基づいて決定された、文書検索用の単語の分割単位に係る暗号化情報を前記外部装置から受信することと、
 を含む、
情報処理方法。
 10   情報処理端末
 110  鍵管理部
 130  暗号化部
 140  秘密分散処理部
 150  復号部
 170  通信部
 180  再暗号化鍵生成部
 20   情報処理サーバ
 210  分割部
 220  検索部
 232  データ保管部
 234  分散鍵保管部
 235  再暗号化鍵保管部
 236  暗号化辞書
 238  インデックス保管部
 240  端末通信部

Claims (20)

  1.  第1の分散鍵を用いて算出された第1のハッシュ値を端末から受信する通信部と、
     前記第1のハッシュ値に対し前記第1の分散鍵に対応する第2の分散鍵を用いて準同型ハッシュ演算を行い、算出した第2のハッシュ値と暗号化辞書とのマッチングに基づいて文書検索に用いられる単語の分割単位を決定する分割部と、
     を備え、
     前記通信部は、前記分割部により決定された前記分割単位に係る暗号化情報を前記端末に送信する、
    情報処理装置。
  2.  前記第1のハッシュ値は、検索対象となる文書に含まれる単語の分割候補を前記第1の分散鍵を用いた準同型ハッシュ演算によりハッシュ化した値である、
    請求項1に記載の情報処理装置。
  3.  前記第1のハッシュ値に係る単語の分割精度は、前記分割部による単語の分割精度よりも低い、
    請求項2に記載の情報処理装置。
  4.  前記分割部は、形態素解析により前記分割単位を決定する、
    請求項1に記載の情報処理装置。
  5.  前記分割部は、前記第2のハッシュ値と前記暗号化辞書とのマッチングに基づいてラティス構造を作成し、前記ラティス構造上の重みに基づいて前記分割単位を決定する、
    請求項4に記載の情報処理装置。
  6.  前記第1の分散鍵および第2の分散鍵は、前記暗号化辞書に登録される単語の暗号化に用いられた共通鍵を秘密分散処理することで生成され、
     前記通信部は、前記端末から前記第2の分散鍵を受信する、
    請求項1に記載の情報処理装置。
  7.  前記通信部は、前記分割単位に係る暗号化情報に基づいて生成された暗号化インデックスを前記端末から受信する、
    請求項1に記載の情報処理装置。
  8.  前記通信部が前記端末から受信した暗号化キーワードと前記暗号化インデックスとに基づいて文書検索を行う検索部、
     をさらに備える、
    請求項7に記載の情報処理装置。
  9.  前記暗号化キーワードおよび暗号化インデックスは、ブルームフィルタにマッピングされる、
    請求項8に記載の情報処理装置。
  10.  検索対象となる文書に含まれる単語の分割候補に対し第1の分散鍵を用いた準同型ハッシュ演算を行い、第1のハッシュ値を算出する暗号化部と、
     前記第1のハッシュ値を外部装置に送信する通信部と、
     を備え、
     前記通信部は、前記第1のハッシュ値に対する第2の分散鍵を用いた準同型ハッシュ演算により算出された第2のハッシュ値と暗号化辞書とのマッチングに基づいて決定された、文書検索用の単語の分割単位に係る暗号化情報を前記外部装置から受信する、
    情報処理装置。
  11.  前記暗号化辞書に登録される単語の暗号化に用いられた共通鍵に対する秘密分散処理を行い、前記第1の分散鍵および前記第2の分散鍵を生成する秘密分散処理部、
     をさらに備え、
     前記通信部は、前記第2の分散鍵を前記外部装置に送信する、
    請求項10に記載の情報処理装置。
  12.  前記暗号化部は、前記検索対象となる文書を固有鍵により暗号化した暗号化文書と、前記分割単位を前記固有鍵により暗号化した暗号化インデックスとを生成し、
     前記通信部は、前記暗号化文書および前記暗号化インデックスを検索装置に送信する、請求項11に記載の情報処理装置。
  13.  前記暗号化部は、入力された検索キーワードを前記固有鍵により暗号化した暗号化キーワードを生成し、
     前記通信部は、前記暗号化キーワードを前記検索装置に送信し、検索結果を受信する、請求項12に記載の情報処理装置。
  14.  前記分割単位は、前記暗号化辞書を用いた形態素解析により決定される、
    請求項10に記載の情報処理装置。
  15.  前記暗号化部は、形態素解析により前記分割候補を決定し、
     前記暗号化部による形態素解析に用いられる辞書に登録される単語の数は、前記暗号化辞書に登録される単語の数よりも少ない、
    請求項14に記載の情報処理装置。
  16.  前記暗号化部は、N-Gramを用いて前記分割候補を決定する、
    請求項14に記載の情報処理装置。
  17.  前記秘密分散処理部は、前記暗号化文書および前記暗号化インデックスの生成に用いられた前記固有鍵に対する秘密分散処理を行い、第3の分散鍵および第4の分散鍵を生成し、
     前記通信部は、前記第3の分散鍵を検索許諾端末に送信し、前記第4の分散鍵を前記検索装置に送信する、
    請求項12に記載の情報処理装置。
  18.  前記検索結果を復号する復号部、
     をさらに備える、
    請求項13に記載の情報処理装置。
  19.  プロセッサが、
     第1の分散鍵を用いて算出された第1のハッシュ値を端末から受信することと、
     前記第1のハッシュ値に対し前記第1の分散鍵に対応する第2の分散鍵を用いて準同型ハッシュ演算を行い、算出した第2のハッシュ値と暗号化辞書とのマッチングに基づいて文書検索に用いられる単語の分割単位を決定することと、
     前記分割単位に係る暗号化情報を前記端末に送信することと、
     を含む、
    情報処理方法。
  20.  プロセッサが、
     検索対象となる文書に含まれる単語の分割候補に対し第1の分散鍵を用いた準同型ハッシュ演算を行い、第1のハッシュ値を算出することと、
     前記第1のハッシュ値を外部装置に送信することと、
     前記第1のハッシュ値に対する第2の分散鍵を用いた準同型ハッシュ演算により算出された第2のハッシュ値と暗号化辞書とのマッチングに基づいて決定された、文書検索用の単語の分割単位に係る暗号化情報を前記外部装置から受信することと、
     を含む、
    情報処理方法。
PCT/JP2019/045275 2018-11-26 2019-11-19 情報処理装置および情報処理方法 WO2020110830A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US17/290,117 US20220311621A1 (en) 2018-11-26 2019-11-19 Information processing device and information processing method
DE112019005865.7T DE112019005865T5 (de) 2018-11-26 2019-11-19 Datenverarbeitungsvorrichtung und datenverarbeitungsverfahren

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018-220038 2018-11-26
JP2018220038A JP2020086116A (ja) 2018-11-26 2018-11-26 情報処理装置および情報処理方法

Publications (1)

Publication Number Publication Date
WO2020110830A1 true WO2020110830A1 (ja) 2020-06-04

Family

ID=70852077

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/045275 WO2020110830A1 (ja) 2018-11-26 2019-11-19 情報処理装置および情報処理方法

Country Status (4)

Country Link
US (1) US20220311621A1 (ja)
JP (1) JP2020086116A (ja)
DE (1) DE112019005865T5 (ja)
WO (1) WO2020110830A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023064844A1 (en) * 2021-10-15 2023-04-20 Lognovations Holdings, Llc Encoding/decoding system and method

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11321382B2 (en) * 2020-02-11 2022-05-03 International Business Machines Corporation Secure matching and identification of patterns
WO2023127038A1 (ja) * 2021-12-27 2023-07-06 三菱電機株式会社 登録要求装置、検索要求装置、データ管理装置、秘匿検索システム、秘匿検索方法、および、秘匿検索プログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05307570A (ja) * 1992-04-30 1993-11-19 Ricoh Co Ltd 文書管理装置
US20120159180A1 (en) * 2010-12-17 2012-06-21 Microsoft Corporation Server-side Encrypted Pattern Matching
JP2018029268A (ja) * 2016-08-18 2018-02-22 三菱電機株式会社 暗号システム、暗号装置、暗号プログラム及び暗号方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9288039B1 (en) * 2014-12-01 2016-03-15 Xerox Corporation Privacy-preserving text language identification using homomorphic encryption
JP6419633B2 (ja) 2015-04-09 2018-11-07 株式会社日立ソリューションズ 検索システム
WO2017168798A1 (ja) * 2016-03-30 2017-10-05 株式会社日立ソリューションズ 暗号化検索インデックスマージサーバ、暗号化検索インデックスマージシステム、及び暗号化検索インデックスマージ方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05307570A (ja) * 1992-04-30 1993-11-19 Ricoh Co Ltd 文書管理装置
US20120159180A1 (en) * 2010-12-17 2012-06-21 Microsoft Corporation Server-side Encrypted Pattern Matching
JP2018029268A (ja) * 2016-08-18 2018-02-22 三菱電機株式会社 暗号システム、暗号装置、暗号プログラム及び暗号方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023064844A1 (en) * 2021-10-15 2023-04-20 Lognovations Holdings, Llc Encoding/decoding system and method

Also Published As

Publication number Publication date
JP2020086116A (ja) 2020-06-04
DE112019005865T5 (de) 2021-09-09
US20220311621A1 (en) 2022-09-29

Similar Documents

Publication Publication Date Title
JP6180177B2 (ja) プライバシーを保護することができる暗号化データの問い合わせ方法及びシステム
WO2017181911A1 (zh) 基于公钥可搜索加密的文件存储、搜索方法及存储系统
JP7302600B2 (ja) 情報処理システムおよび情報処理方法
WO2020110830A1 (ja) 情報処理装置および情報処理方法
WO2022202284A1 (ja) データ共有システム、データ共有方法、およびデータ共有プログラム
CN111191289A (zh) 一种隐私数据的展示与存储的方法
JP6599066B1 (ja) 登録装置、サーバ装置、秘匿検索システム、秘匿検索方法、登録プログラムおよびサーバプログラム
JP5140026B2 (ja) データベース処理方法、データベース処理プログラム、および、暗号化装置
WO2014183671A1 (zh) 一种云存储安全控制的方法
EP2942899B1 (en) Information processing method, trust server and cloud server
WO2019120038A1 (zh) 数据加密存储
WO2015052957A1 (ja) 暗号文比較システム
JP6557338B2 (ja) 類似性秘匿検索システム、類似性秘匿検索方法
JP2004234344A (ja) データベースアクセスシステム
JP2004072151A (ja) ファイル暗号化機能を有する端末装置
CN109255248A (zh) 一种基于加解密算法的全文检索方法
CN108920968B (zh) 一种基于连接关键词的文件可搜索加密方法
JP2006099415A (ja) コンテンツ配信システム、コンテンツ配信方法、機器認証サーバおよび機器認証サーバの制御方法
US11887508B2 (en) Information processing apparatus and information processing method
CN113065146A (zh) 一种用于区块链数据保护的同态加密方法
KR20220011449A (ko) 익명 사용자 속성기반의 데이터 접근 제어 시스템 및 방법
WO2022259515A1 (ja) 暗号化タグ生成装置、秘匿検索システム、暗号化タグ生成方法及び暗号化タグ生成プログラム
JP7011874B1 (ja) データ共有システム、データ共有方法およびデータ共有プログラム
Sharmila Secure retrieval of files using homomorphic encryption for cloud computing
Gupta Hybrid Searchable Encryption Scheme for Data Security in Cloud

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

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 19890444

Country of ref document: EP

Kind code of ref document: A1