WO2018047698A1 - 暗号化メッセージ検索方法、メッセージ送受信システム、サーバ、端末、プログラム - Google Patents
暗号化メッセージ検索方法、メッセージ送受信システム、サーバ、端末、プログラム Download PDFInfo
- Publication number
- WO2018047698A1 WO2018047698A1 PCT/JP2017/031195 JP2017031195W WO2018047698A1 WO 2018047698 A1 WO2018047698 A1 WO 2018047698A1 JP 2017031195 W JP2017031195 W JP 2017031195W WO 2018047698 A1 WO2018047698 A1 WO 2018047698A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- message
- search
- encrypted
- key
- secret key
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0822—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
- H04L9/16—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation
Definitions
- the present invention relates to an application of information security technology, and more particularly to a message transmission / reception technology in which a plurality of users forming a group transmit / receive a message.
- Some message transmission / reception systems that are assumed to be used in business are compatible with multiple devices, such as personal computers and smartphones, and data containing messages is stored on terminals in consideration of leakage of confidential business information.
- a product such as Non-Patent Document 1.
- Such a cloud-based message transmission / reception system is caused by the function of preventing eavesdropping by encrypting the communication path, or the loss or unauthorized take-out of the terminal by leaving no data on the terminal as described above. It has a function to prevent information leakage.
- the current cloud-based message transmission / reception system copes with communication paths and threats to terminals, but on the other hand, it does not necessarily cope with the threats to the servers constituting the message transmission / reception system. Is the situation. Examples of the threat to the server here include an external attack on the server and an unauthorized access from the inside by a server administrator or the like.
- Non-Patent Document 2 a protocol for sharing a common key between users without obtaining any information from the authentication server has been proposed (Non-Patent Document 2).
- the protocol of Non-Patent Document 2 enables transmission / reception between terminals while keeping the message secret from the server.
- a message search function can be considered, but when a session key sharing technique between users based on the protocol of Non-Patent Document 2 is applied, the message stored in the server is encrypted. It is necessary to be able to search a message stored in the server while keeping it secret. Furthermore, it is necessary to make it difficult to guess the concealed content from the search content itself and the tendency of answers to past searches.
- Patent Document 1 As a method of searching without decrypting encrypted data including an encrypted message stored in the server, there is a method of recording a hash value for information about encrypted data in the server (Patent Document 1).
- the object of the present invention is that when a message search is performed with a server storing an encrypted message obtained by encrypting a message shared by n terminals, the search contents and the search result are It is to provide an encrypted message retrieval technique that is difficult to guess.
- a message transmission / reception system including n terminals that share n and an n number of terminals, and a server that records an encrypted message obtained by encrypting the message
- the terminal searches for a message.
- An encrypted message search method for searching for an encrypted message using a character string wherein a unit that the server manages a message shared by the n terminals is a room, an identifier thereof is a room identifier, and the n
- the room identifier and the session key are recorded in the recording unit of one terminal, and the update interval set in advance after the terminal shares the room identifier or shares the first search secret key.
- a random number is generated as a search secret key, and an encrypted search secret key is generated from the search secret key using the session key, Transmitting an encrypted search secret key to the server, and the terminal acquires the encrypted search secret key from the server using the room identifier, and transmits the session key to the server.
- An encrypted message transmission step of generating an index set for message search using the latest search private key among the search private keys and transmitting the index set and the encrypted message together with the room identifier to the server
- the terminal uses the message search character string and one or more search secret keys among the search secret keys to execute a query.
- the present invention it is possible to realize a search in which a search content and a search result are not easily guessed when a message search is performed with a server storing an encrypted message obtained by encrypting a message shared by n terminals. Is possible.
- ⁇ Notation> _ (Underscore) represents a subscript.
- xy_z represents that yz is a superscript to x
- xy_z represents that yz is a subscript to x.
- ALG For a certain probabilistic polynomial time algorithm ALG, when ALG (x) is regarded as a random variable for input x, y is randomly output according to the probability distribution as y ⁇ R ALG (x).
- N the set of all positive integers.
- the function CRHF is a collision-resistant hash function that takes a character string of arbitrary length as input and outputs a fixed-length character string.
- the length of the output character string is fixed, but the length is not particularly limited.
- function F is a function that takes two character strings of arbitrary length as input and outputs a character string. There is no particular limitation on the length of the output character string.
- function F (m, r) m
- arbitrary functions can be used as the function CRHF and the function F.
- the second argument of the function F is a source of the plaintext space M pk or the key space KEY as will be described later.
- Gen is a key generation algorithm that takes a security parameter k as an input and outputs a pair (pk, sk) of a public key pk and a secret key sk, and is expressed as (pk, sk) ⁇ R Gen (1 k ) .
- the plaintext space Mpk is determined.
- Enc inputs the public key pk and the plaintext M ⁇ M pk, an encryption algorithm that outputs a ciphertext C, and to represent a C ⁇ R Enc (pk, m ).
- Dec is a decryption algorithm that receives the secret key sk and ciphertext C and outputs plaintext m ′, and is expressed as m ′ ⁇ R Dec (sk, C).
- KEY 1 M pk , that is, function f: M pk ⁇ M pk ⁇ M pk , function g: M pk ⁇ M pk ⁇ M pk , and any (K, K 1 ) ⁇ M pk ⁇ M
- (f, g) that satisfies Equation (1) for pk
- the following set of functions exists.
- the plaintext space M pk is an additive group formed by points on the elliptic curve generated when the key generation algorithm is executed.
- KEY 1 M pk , that is, function f: M pk ⁇ M pk ⁇ M pk , function g: M pk ⁇ M pk ⁇ M pk , and any (K, K 1 ) ⁇ M pk ⁇ M
- (f, g) that satisfies Equation (1) with respect to pk
- Public key cryptosystems other than the above and functions (f, g) associated therewith can be used for the configuration of the message transmission / reception system of the first embodiment.
- the message transmission / reception system of the first embodiment includes a server 100 and n ( ⁇ 2) terminals 200.
- the server 100 and the terminals 200 1 ,..., And the terminal 200 n are each connected to the network 300.
- the network 300 may be a network configured such that the server 100, the terminals 200 1 ,..., And the terminal 200 n can communicate with each other.
- the network 300 for example, the Internet or the like can be used.
- the server 100 includes a recording unit 110, a room generation unit 120, a key generation unit 130, and an index search unit 140.
- the terminal 200 i (1 ⁇ i ⁇ n) includes a recording unit 210, a room generation request transmission unit 220, a search private key generation unit 230, and a search private key encryption unit 233.
- the server 100 and the terminals 200 1 ,..., The terminal 200 n perform the processing of each step illustrated in FIGS.
- the server 100 and the terminal 200 i are configured, for example, by loading a special program into a known or dedicated computer having a central processing unit (CPU), a main storage (RAM), and the like. Special equipment. Each device executes each process under the control of the central processing unit, for example. The data input to each device and the data obtained in each process are stored in, for example, the main storage device, and the data stored in the main storage device is read out to the central processing unit as needed and other data is stored. Used for processing. Each processing unit included in each device may be at least partially configured by hardware such as an integrated circuit.
- the recording unit 110 included in the server 100 and the recording unit 210 included in the terminal 200 i include, for example, a main storage device such as a RAM (Random Access Memory), a semiconductor memory element such as a hard disk, an optical disk, or a flash memory.
- the auxiliary storage device can be configured by middleware such as a relational database or a key-value store. Since each recording unit stores secret information, it is desirable that the recording unit be a tamper-resistant storage device (such as a SIM card).
- a unit for managing a message shared by the group for terminals 200 1 ,..., And terminal 200 n (hereinafter also referred to as a group) that transmits and receives messages via the server 100 is referred to as a room.
- a recording area that is, a physical room
- An identifier for identifying the room is referred to as a room identifier.
- room identifier roomID public key pk roomID, secret key sk roomID, terminal 200 1 session key R 1 belongs to the group, ..., are shared between the terminal 200 n.
- a system setup flow will be described with reference to FIG.
- encrypted communication may be used between the terminal 200 i and the server 100, such as TLS communication.
- the terminal 200 i is assumed to be a personal computer, a smartphone, or the like, but is not limited thereto, and any terminal can be used as long as the user can use it to send and receive messages.
- the terminal 200 i that issues a room generation request is referred to as a representative terminal.
- Representative terminal is terminal 200 1, ..., may be selected arbitrarily from among the terminal 200 n.
- the general terminal 200 j that the representative terminal 200 1 other terminal 200 j (2 ⁇ j ⁇ n ).
- Representative terminal 200 1 room generation request transmitting unit 220 transmits the room generation request to the server 100 (S4-10).
- the room generation unit 120 of the server 100 When the server 100 receives the request, the room generation unit 120 of the server 100 generates a room identified by the room identifier roomID (S4-20).
- the key generation unit 130 of the server 100 At that time, the key generation unit 130 of the server 100 generates a public key pk roomID and a secret key sk roomID used for encryption / decryption in a room identified by roomID by a key generation algorithm (S4-30). Note that the plaintext space M pk is determined at the same time when the key generation algorithm is executed.
- the public key encryption algorithm (Gen, Enc, Dec) for generating the public key pk roomID and the secret key sk roomID is an arbitrary algorithm as long as there is a function (f, g) that satisfies the above-mentioned condition (expression (1)). Can be used.
- processing of S4-10 to S4-40 may be performed according to the following flow.
- General terminal 200 j upon receiving the room identifier roomID showing an invitation from the representative terminal 200 1 to the room (S4-50), and sends the room identifier roomID to the server 100 (S4-55), public key pk roomID and secret The key sk roomID is received (S4-60).
- Each terminal 200 i records the room identifier roomID, the public key pk roomID , and the secret key sk roomID in the recording unit 210.
- Each terminal 200 i shares the session key R 1 and records it in the recording unit 210 (S4-70).
- a sharing method for example, the technique described in Non-Patent Document 2 may be used. It is assumed that session key R 1 is concealed from server 100.
- search secret key SearchKey generated by a certain terminal 200 i — 0 (1 ⁇ i 0 ⁇ n) is shared among all the terminals 200 i belonging to the group via the server 100.
- a flow of sharing the search secret key SearchKey will be described with reference to FIG.
- the terminal 200 i_0 for generating a search secret key SearchKey is may be a common terminal 200 j be a representative terminal 200 1. Also, the terminal 200 i_0 that generates the search secret key SearchKey may leave the group during the course of the session. In this case, it is assumed that other terminals 200 i_1 (i 1 is an integer of 1 to n different from i 0 ) belonging to the group take over the role of generating the search secret key SearchKey. That is, it is assumed that any of the terminals 200 i currently participating in the group generates the search secret key SearchKey.
- the terminal 200 i_0 records the search secret key SearchKey in the recording unit 210.
- Terminal 200 i_1 other than terminal 200 i_0 transmits the room identifier roomID received in S4-50 to server 100 (S5-40), receives the encrypted search secret key CipherKey from the server 100 (S5-50).
- the terminal 200 i_1 other than terminal 200 i_0 may always transmits an acquisition request of the encrypted retrieving private key CipherKey of S5-40 to server 100. For example, rather than immediately after receiving an invitation to the room from the representative terminal 200 1, it may be in when you log in for the first time after the invitation.
- the private key SearchKey is decrypted (S5-60).
- the search secret key SearchKey can be obtained.
- the terminal 200 i_1 records the search secret key SearchKey obtained in S5-60 in the recording unit 210.
- the search secret key generation unit 230 of the terminal 200 i — 0 executes the first random number generation (that is, random selection of the original r of the plaintext space M pk ) for generating the search secret key after sharing the room identifier.
- a random number is periodically generated, and each time the search secret key encryption unit 233 generates an encrypted search secret key from the search secret key,
- the encryption search private key is transmitted to the server 100.
- the terminal 200 i_1 acquires the updated encrypted search private key from the server 100 in a timely manner, and acquires the search private key by decrypting it. That is, a plurality of search secret keys are recorded in the recording unit 210 of the terminal 200 i .
- the search secret key that is generated first after sharing the room identifier is the first generation search secret key SearchKey 1
- the search secret keys that are periodically generated thereafter are sequentially searched for the second generation search secret key SearchKey 2 , The third generation search private key SearchKey 3 , and so on.
- the latest generation secret key for search is the latest search secret key.
- the terminal 200 i transmits a message to the room managed by the room identifier roomID. At that time, the message is encrypted.
- the encrypted message (encrypted message) is associated with the room having the room identifier roomID, recorded in the recording unit 110 of the server 100, and a set of indexes used for the search so that the search can be performed with the encrypted message later.
- a set of (index set) and message ID is also recorded.
- the message encryption unit 240 of the terminal 200 i encrypts the message m 1 that the server 100 i wants to share within the group, and generates an encrypted message Enc (m 1 ) (S6-10).
- the key used for message encryption is a key generated by a public key encryption algorithm, even if it is generated by a common key encryption algorithm as long as it is a secret key for the server 100. It doesn't matter. It is assumed that the key is shared between terminals 200 i in the group.
- the terminal 200 i that transmits the message is an arbitrary terminal that belongs to the group.
- the message ID generating unit 243 of the terminal 200 i uses the message identifier ID m_1 for uniquely identifying the encrypted message Enc (m 1 ) within the room identified by the room identifier roomID. Are generated together (S6-15). Since the message m 1 is kept secret from the server 100, that is, Enc (m 1 ) is transmitted to the server 100 and recorded in the recording unit 110, the function for generating the message identifier ID m_1 is difficult to calculate the inverse image. (A message m 1 cannot be easily guessed from the message identifier ID m_1 ).
- the index generation unit 245 of the terminal 200 i also generates an index used for searching for the encrypted message Enc (m 1 ) (S6-20).
- the searchable character string length may or may not have an upper limit. In the following, it is assumed that the upper limit of the searchable character string length is set, and the value is assumed to be L.
- Function G is used to generate the index.
- the function G is a function that receives a character string of an arbitrary length and outputs a set of character strings (character string set) having a density depending on the input character string.
- the character string set that is the output of the function G is referred to as information related to the message m 1
- G (m 1 ) ⁇ s 1 , s 2 ,.
- the character string set G (m 1 ) ⁇ s 1 (1) , s 2 (1) , .., s j (i) , .. ⁇ is information related to the message m 1 .
- the character strings may be enumerated from the entire message, or the message may be divided into phrases and the character strings may be enumerated from each phrase.
- s 1 (i) is a character string consisting of consecutive i characters taken from the left end of the character string, and i consecutive characters obtained by shifting one from the left end to the right.
- s 2 (i) be a character string consisting of
- any enumeration method may be used because it does not affect the message search using the index.
- the search secret key SearchKey read here is assumed to be the newest search secret key and the latest search secret key. That is, the index Index j (i) is calculated for each character string s j (i) using the latest search secret key SearchKey.
- each element of the index set is a character string having a length L or less.
- An index set Ind whose elements are P / 2 (2length m_1 ⁇ P + 1) indexes obtained by Expression (2) is expressed by the following expression.
- the upper limit L of the searchable character string length is an integer of 3 or more and the message m 1 is a message “that” consisting of 3 characters, the following six indexes are calculated.
- an index set Ind ⁇ Index 1 , Index 2 , .., Index q , .. ⁇
- the terminal 200 i transmits, together with the encrypted message Enc (m 1 ), a set of each element of the index set Ind represented by the following expression and a message identifier to the server 100 (S6-30).
- the server 100 records the encrypted message Enc (m 1 ) and each index and message identifier pair (Index 1 (1) , .., Index j (i) , .., Index lengthm_1 (P) , ID m_1 ) Recorded in section 110.
- the terminal 200 i searches for a message managed in the room having the room identifier roomID.
- a query is generated from a character string serving as a search keyword (hereinafter referred to as a message search character string), and a message is searched while being encrypted.
- a message search flow by the terminal 200 i will be described with reference to FIG.
- T 1 and T 2 are integers of 1 or more indicating the generation of the search secret key
- the query Query i CRHF (F () for the i-th search secret key SearchKey i ) for the integer i satisfying T 1 ⁇ i ⁇ T 2 m ′, SearchKey i )) is calculated, and a query set ⁇ Query T_1 , Query T_1 + 1 , .., Query T_2 ⁇ is generated.
- the length of the message search character string m ′ may be compared with L first, and an error may be returned if it is larger than L. In this way, processing efficiency can be improved.
- the query generation unit 250 of the terminal 200 i transmits the query set ⁇ Query T_1 , Query T_1 + 1 , .., Query T_2 ⁇ to the server 100 (S7-20).
- the index search unit 140 of the server 100 includes a set of each element of the index set recorded in the recording unit 110 and a message identifier (Index 1 (1) , .., Index j (i) , .., ID m_1 ). Among them, a combination of an index and a message identifier (Index j (i) , ID that matches each element Query i and index Index j (i) of the received query set ⁇ Query T_1 , Query T_1 + 1 , .., Query T_2 ⁇ m_1 ) are all extracted (S7-30). The index search unit 140 of the server 100 transmits the encrypted message Enc (m 1 ) corresponding to the extracted message identifier ID m_1 to the terminal 200 i (S7-40).
- the encrypted message decryption unit 255 of the terminal 200 i decrypts the encrypted message encrypted message Enc (m 1 ) received in S7-40, and displays the message m 1 on the screen as a search result (S7-50). .
- the terminal 200 i may transmit the received message identifier ID m_1 to the server 100, acquires the encrypted message Enc (m 1 ) corresponding to the message identifier ID m_1 from the server 100, and the encrypted message decryption unit 255. Is used to decrypt the encrypted message Enc (m 1 ) and display the message m 1 on the screen as a search result.
- the terminal 200 i_0 updates the search secret key SearchKey.
- the update interval of the search secret key SearchKey is such that a message corresponding to the index or message identifier can be prevented from being estimated from the index recorded in the recording unit 110 of the server 100 and the number (distribution) of the message identifier associated therewith. It should be done regularly at a frequency. For example, every month or every six months can be considered, but it is possible to prevent a shorter update interval from being estimated.
- FIG. 9 the flow of updating the search private key by the terminal 200 i — 0 will be described.
- the search for the secret key encryption unit 233 of the terminal 200 i_0 is, a secret key for encryption search CipherKey ⁇ R Enc (pk roomID, f (SerachKey, R 1 )) is calculated (S8-20), and the encrypted search secret key CipherKey is transmitted to the server 100 (S8-30).
- the server 100 records the received encrypted search secret key CipherKey in the recording unit 110 in association with the room identifier roomID.
- the server 100 also records the previous encrypted search secret key CipherKey in the recording unit 110.
- the terminal 200 i_1 acquires the encrypted search secret key CipherKey from the server 100 (S8-40)
- the terminal 200 i_1 also acquires the past encrypted search secret key ⁇ CipherKey 1 , .., CipherKey i ,. S8-50).
- the encrypted search secret key CipherKey i is generated from the i-th generation search secret key SearchKey i .
- the terminal 200 i_1 may periodically acquire the encrypted search secret key itself.
- the representative terminal 200 1 and the general terminal 200 j may differ its role. That is, it is only whether or not it has a role of transmitting the room generation request to the server 100, but the configuration of these terminals has been described as being homogeneous as shown in FIG. However, this configuration is not necessarily required.
- the representative terminal 200 1 includes a recording unit 210, a room generation request transmitting unit 220, a search for a secret key generating unit 230, a search for a secret key encryption unit 233, an encryption search secret key decryption unit 235
- a query generation unit 250 and an encrypted message decryption unit 255 includes a query generation unit 250 and an encrypted message decryption unit 255.
- the terminal 200 i generates a concealed query from the search keyword and the search secret key shared between the terminals, and transmits it to the server 100.
- the server 100 includes information related to the message and the search secret. Search for a message using the concealed index generated from the key and the received query. As a result, the server 100 can search with the message encrypted. Further, by periodically updating the search secret key, different queries are generated for the same search keyword, and it is possible to prevent the search contents and search results from being estimated.
- the public key cryptosystem is used in the message transmission / reception system of the first embodiment, the message transmission / reception system of this embodiment does not use the public key cryptosystem.
- the key space KEY is defined instead of the plaintext space M pk , and the function f: KEY ⁇ KEY 1 ⁇ KEY and the function g: KEY ⁇ KEY 1 ⁇ KEY are the functions (f, g) in the first embodiment. Satisfy the same condition as the condition satisfied by (Equation (1)).
- the arithmetic / is multiplicative and-a
- x 1 / x 2 It is an operation defined as x 1 ⁇ x 2 -1 .
- the operation-adds + when the key space KEY has a structure as an addition group, and when the inverse element of x 2 in this operation + is -x 2 , x 1 -x 2 x It is an operation defined as 1 + (-x 2 ).
- the message transmission / reception system of the second embodiment includes a server 500 and n ( ⁇ 2) terminals 600 as in the message transmission / reception system of the first embodiment.
- the server 500 and the terminals 600 1 ,..., And the terminal 600 n are each connected to the network 300.
- the server 500 includes a recording unit 110, a room generation unit 120, and an index search unit 140, as illustrated in FIG. That is, the server 500 is different from the server 100 in that it does not have the key generation unit 130.
- the terminal 600 i (1 ⁇ i ⁇ n) includes a recording unit 210, a room generation request transmission unit 220, a search private key generation unit 230, and a search private key encryption unit 633.
- the terminal 600 i includes a search private key encryption unit 633 and an encrypted search private key decryption unit 635 instead of the search private key encryption unit 233 and the encrypted search private key decryption unit 235. It differs from the terminal 200 i in that it has.
- the message transmission / reception systems of the first embodiment and the second embodiment differ only in whether or not a public key encryption algorithm is used. As a result, there is a difference between the flow of system setup and search secret key sharing. Therefore, these two flows will be described below.
- the room generation request transmission unit 220 of the representative terminal 600 1 transmits a room generation request to the server 500 (S4-10).
- the room generation unit 120 of the server 500 generates a room identified by the room identifier roomID (S4-20).
- Server 500 records the room identifier roomID the recording unit 110, and transmits the room identifier roomID the representative terminal 600 1 (S4-42).
- Generally terminal 600 j receives the room identifier roomID indicating an invitation from the representative terminal 600 1 to the room (S4-50).
- Each terminal 600 i records the room identifier roomID in the recording unit 210.
- Each terminal 600 i shares the session key R 1 and records it in the recording unit 210 (S4-70).
- the session key R 1 is concealed from the server 500 as in the first embodiment.
- the search secret key SearchKey generated by a certain terminal 600 i — 0 (1 ⁇ i 0 ⁇ n) is shared among all the terminals 600 i belonging to the group via the server 500. .
- a flow of sharing the search secret key SearchKey will be described with reference to FIG.
- the terminal 600 i_0 records the search secret key SearchKey in the recording unit 210.
- the encrypted retrieving private key CipherKey f (SerachKey, R 1 ) to generate (S5-20), the encrypted search for private key CipherKey with room identifier roomID
- the data is transmitted to the server 500 (S5-30). That is, the terminal 600 i_0 differs from the terminal 200 i_0 only in that the public key is not used to generate the encrypted search secret key.
- the server 500 records the received encrypted search secret key CipherKey in the recording unit 110 in association with the room identifier roomID.
- the terminal 600 i_1 transmits the room identifier roomID received in S4-50 to the server 500 (S5-40), and receives the encrypted search secret key CipherKey from the server 500 (S5-50).
- the search secret key SearchKey can be obtained.
- the terminal 600 i_1 records the search secret key SearchKey obtained in S5-60 in the recording unit 210.
- the server 500 can search with the message encrypted. Further, by periodically updating the search secret key, different queries are generated for the same search keyword, and it is possible to prevent the search contents and search results from being estimated.
- the program describing the processing contents can be recorded on a computer-readable recording medium.
- a computer-readable recording medium for example, any recording medium such as a magnetic recording device, an optical disk, a magneto-optical recording medium, and a semiconductor memory may be used.
- this program is distributed, for example, by selling, transferring, or lending a portable recording medium such as a DVD or CD-ROM in which the program is recorded. Furthermore, the program may be distributed by storing the program in a storage device of the server computer and transferring the program from the server computer to another computer via a network.
- a computer that executes such a program first stores a program recorded on a portable recording medium or a program transferred from a server computer in its own storage device. When executing the process, this computer reads the program stored in its own recording medium and executes the process according to the read program.
- the computer may directly read the program from a portable recording medium and execute processing according to the program, and the program is transferred from the server computer to the computer. Each time, the processing according to the received program may be executed sequentially.
- the program is not transferred from the server computer to the computer, and the above processing is executed by a so-called ASP (Application Service Provider) type service that realizes the processing function only by the execution instruction and result acquisition. It is good.
- ASP Application Service Provider
- the program in this embodiment includes information that is used for processing by an electronic computer and that conforms to the program (data that is not a direct command to the computer but has a property that defines the processing of the computer).
- the present apparatus is configured by executing a predetermined program on a computer.
- a predetermined program on a computer.
- at least a part of these processing contents may be realized by hardware.
- server 110 recording unit 120 room generation unit 130 key generation unit 140 index search unit 200 terminal 210 recording unit 220 room generation request transmission unit 230 search secret key generation unit 233 search secret key encryption unit 235 encryption search secret key Decryption unit 240 Message encryption unit 243 Message ID generation unit 245 Index generation unit 250 Query generation unit 255 Encrypted message decryption unit 300 Network 500 Server 600 Terminal 633 Search private key encryption unit 635 Encrypted search private key decryption unit
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
暗号化したままメッセージ検索する際、検索内容や検索結果が推測されにくい暗号化メッセージ検索技術を提供する。端末が事前に設定された更新間隔が経過する度生成する検索用秘密鍵から暗号化検索用秘密鍵を生成しサーバに送信する暗号化検索用秘密鍵送信ステップと、端末がサーバから取得した暗号化検索用秘密鍵から検索用秘密鍵を復号する検索用秘密鍵復号ステップと、端末がメッセージに関係する情報と最新検索用秘密鍵を用いて生成したインデックス集合と暗号化メッセージとをサーバに送信する暗号化メッセージ送信ステップと、端末がメッセージ検索用文字列と検索用秘密鍵を用いて生成したクエリ集合をサーバに送信するクエリ送信ステップと、サーバがクエリ集合の要素と一致するインデックス集合の要素がある暗号化メッセージを端末に送信する暗号化メッセージ返信ステップとを含む。
Description
この発明は情報セキュリティ技術の応用に関し、特に、グループを形成する複数のユーザがメッセージを送受信するメッセージ送受信技術に関する。
ビジネスでの利用を前提とするメッセージ送受信システムの中には、パソコンやスマートフォンなど端末の種別を問わないマルチデバイス対応なもので、ビジネス上の機密情報漏えいを考慮して端末にメッセージを含むデータを残さないような、クラウドベース型のメッセージ送受信システムが存在する。クラウドベース型のメッセージ送受信システムの例として、非特許文献1のような製品がある。
このようなクラウドベース型のメッセージ送受信システムは、通信路を暗号化することにより盗聴を防止する機能や、既に述べたように端末にデータを残さないことにより端末の紛失や不正な持ち出しに起因する情報漏えいを防止する機能を備えている。このように現在のクラウドベース型のメッセージ送受信システムは、通信経路と端末に対する脅威については対応しているが、その一方でメッセージ送受信システムを構成するサーバに対する脅威については必ずしも対応が十分とは言えない状況である。ここでいうサーバに対する脅威には、例えば、サーバに対する外部からの攻撃、サーバ管理者等による内部からの不正アクセスなどがある。
このサーバに対する脅威に対しては、サーバに保存するメッセージを暗号化するという対策が考えられる。しかし、サーバにおいて復号可能である場合は、上述の脅威に対してサーバからメッセージが漏えいする可能性が依然として存在する。したがって、メッセージがサーバに対して秘匿化されている、つまりサーバにおいて盗聴されないようになっていることが重要である。
サーバにおいて盗聴されないようにする1つの方法としては、サーバに対してメッセージを秘匿化しつつ端末においてのみメッセージの復号が可能となるようなエンドツーエンドでの暗号化通信を実現する方法がある。このようなエンドツーエンドでの暗号化通信を実現するためには、端末で用いる共通鍵(以下、セッション鍵ともいう)を端末間でどのように共有するかが問題となる。その解決策として、中央に認証サーバを持つスター型のネットワークにおいて、認証サーバに対していかなる情報ももらさずに利用者間で共通鍵を共有するプロトコルが提案されている(非特許文献2)。非特許文献2のプロトコルにより、サーバに対しメッセージを秘匿化したまま端末間で送受信が可能となる。
しかし、ビジネスでの利用を踏まえると、過去のメッセージのやりとりに関して効率よく処理する方法が必要になる。そのような手段として、メッセージの検索機能が考えられるが、非特許文献2のプロトコルによる利用者間でのセッション鍵共有技術を適用した場合、サーバに保存されているメッセージは暗号化されているため、サーバに保存されたメッセージを秘匿化したまま検索できるようにする必要がある。さらに、検索内容そのものや過去の検索に対する回答の傾向等から秘匿化した内容が推測されにくくすることも必要である。
サーバに保存された暗号化メッセージを含む暗号化データを復号することなく検索する方法として、暗号化データに関する情報についてのハッシュ値をサーバに記録する方法がある(特許文献1)。
"ビジネス向けグループチャットTopicRoom",[online],[平成28年8月16日検索],インターネット<URL: https://www.ntts.co.jp/products/topicroom/index.html>
小林鉄太郎,米山一樹,吉田麗生,川原祐人,冨士仁,山本具英:"スケーラブルな動的多者鍵配布プロトコル",SCIS2016,4E2-3,2016.
しかし、特許文献1の検索技術では、同じ情報に対して常に同じハッシュ値が得られるため、一定期間通信路を盗聴することで得られるハッシュ値とレインボーテーブルを用いることにより検索しようとしている情報やその検索結果が推測されてしまうという問題がある。
この発明の目的は、このような点に鑑みて、n台の端末で共有するメッセージを暗号化した暗号化メッセージを記録するサーバにおいて暗号化したままメッセージ検索をする際、検索内容や検索結果が推測されにくい暗号化メッセージ検索技術を提供することである。
本発明の一態様は、nを2以上の整数とし、メッセージを共有するn台の端末と前記メッセージを暗号化した暗号化メッセージを記録するサーバとを含むメッセージ送受信システムにおいて、前記端末がメッセージ検索用文字列を用いて前記暗号化メッセージを検索する暗号化メッセージ検索方法であって、前記n台の端末で共有するメッセージを前記サーバが管理する単位をルーム、その識別子をルーム識別子とし、前記n台の端末の記録部には、前記ルーム識別子と、セッション鍵とが記録されており、前記端末が、ルーム識別子共有後または最初の検索用秘密鍵を共有した後は事前に設定された更新間隔が経過する度、検索用秘密鍵として乱数を生成し、前記セッション鍵を用いて前記検索用秘密鍵から暗号化検索用秘密鍵を生成し、前記暗号化検索用秘密鍵を前記サーバに送信する暗号化検索用秘密鍵送信ステップと、前記端末が、前記ルーム識別子を用いて前記サーバから前記暗号化検索用秘密鍵を取得し、前記セッション鍵を用いて前記暗号化検索用秘密鍵から前記検索用秘密鍵を復号する検索用秘密鍵復号ステップと、前記端末が、メッセージを暗号化した暗号化メッセージを生成し、前記メッセージに関係する情報と、前記検索用秘密鍵のうち最新検索用秘密鍵を用いて、メッセージ検索用のインデックス集合を生成し、前記インデックス集合と前記暗号化メッセージとを前記ルーム識別子とともに前記サーバに送信する暗号化メッセージ送信ステップと、前記端末が、前記メッセージ検索用文字列と、前記検索用秘密鍵のうち1つ以上の検索用秘密鍵を用いて、クエリ集合を生成し、前記クエリ集合を前記ルーム識別子とともに前記サーバに送信するクエリ送信ステップと、前記サーバが、前記ルーム識別子と対応付けて管理しているインデックス集合と暗号化メッセージの中から前記クエリ集合の要素と一致するインデックス集合の要素がある暗号化メッセージを検索し、前記暗号化メッセージを前記端末に送信する暗号化メッセージ返信ステップと、前記端末が、前記暗号化メッセージからメッセージを復号する暗号化メッセージ復号ステップと、を含む。
この発明によれば、n台の端末で共有するメッセージを暗号化した暗号化メッセージを記録するサーバにおいて暗号化したままメッセージ検索をする際、検索内容や検索結果が推測されにくい検索を実現することが可能となる。
実施形態の説明に先立って、この明細書における表記方法等について説明する。
<表記方法>
_(アンダースコア)は下付き添字を表す。例えば、xy_zはyzがxに対する上付き添字であり、xy_zはyzがxに対する下付き添字であることを表す。
_(アンダースコア)は下付き添字を表す。例えば、xy_zはyzがxに対する上付き添字であり、xy_zはyzがxに対する下付き添字であることを表す。
ある集合Setについて、Setから要素mを一様ランダムに選ぶことを、m←U Setと表記する。
ある確率的多項式時間アルゴリズムALGについて、入力xに対してALG(x)を確率変数とみたとき、その確率分布に従ってランダムにy が出力されることを、y←R ALG(x)と表記する。
<定義>
Nを正の整数全体の集合とする。
Nを正の整数全体の集合とする。
関数CRHFを任意長の文字列を入力とし、固定長の文字列を出力する衝突困難ハッシュ関数とする。出力文字列の長さは固定であるが、その長さについては特に限定しない。
関数Fを2つの任意長の文字列を入力とし、文字列を出力する関数とする。出力文字列の長さについては特に限定しない。関数Fの例として、2つの入力文字列を結合する関数F(m, r)=m||rがある。
なお、以下説明する実施形態では、関数CRHF、関数Fとして任意の関数を用いることができる。ただし、関数Fの第2引数は、後述するように平文空間Mpkまたは鍵空間KEYの元となる。
以下、この発明の実施形態について詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
<第一実施形態>
第一実施形態のメッセージ送受信システムは、公開鍵暗号アルゴリズムを用いる。そこで、まず公開鍵暗号アルゴリズムについて説明する。
第一実施形態のメッセージ送受信システムは、公開鍵暗号アルゴリズムを用いる。そこで、まず公開鍵暗号アルゴリズムについて説明する。
kをセキュリティパラメータとする。k1∈Nとし、k1ビット長の鍵空間をKEY1={0, 1}k_1とする。
公開鍵暗号方式は、3つのアルゴリズム(Gen, Enc, Dec)からなる。Genは、セキュリティパラメータkを入力とし、公開鍵pkと秘密鍵skの組(pk, sk)を出力する鍵生成アルゴリズムであり、(pk, sk)←R Gen(1k)と表すことにする。また、このとき平文空間Mpkが定まる。
Encは、公開鍵pkと平文m∈Mpkを入力とし、暗号文Cを出力する暗号化アルゴリズムであり、C←R Enc(pk, m)と表すことにする。
Decは、秘密鍵skと暗号文Cを入力とし、平文m’を出力する復号アルゴリズムであり、m’←R Dec(sk, C)と表すことにする。
また、上記3つのアルゴリズムは、任意のセキュリティパラメータk、任意の鍵ペア(pk,sk)←R Gen(1k)、任意の平文m∈Mpkに対し、Dec(sk,Enc(pk,m))=mを満たす。
次に、平文空間Mpkと鍵空間KEY1={0, 1}k_1の直積Mpk×KEY1を定義域、平文空間Mpkを値域とする関数f: Mpk×KEY1→Mpkに対し、関数g: Mpk×KEY1→Mpkが存在し、任意の(K, K1)∈Mpk×KEY1に対し、次式を満たす場合を考える。
RSA暗号や楕円ElGamal暗号については、上記条件(式(1))を満たす関数f,gの例を挙げることができる。RSA暗号方式の場合、平文空間Mpkは、鍵生成アルゴリズム実行時に生成した2つの素数p,qの積をn=pqとしたとき、{1,…,n-1}のうち、nと互いに素である整数の集合に、次式で定義される演算・が入った乗法群である。
なお、右辺の×は整数同士の通常の積である。
このとき、KEY1=Mpk、つまり、関数f: Mpk×Mpk→Mpk、関数g: Mpk×Mpk→Mpkであり、任意の(K, K1)∈Mpk×Mpkに対し、式(1)を満たす(f,g)の例として、以下の関数の組が存在する。
なお、演算/は、演算・におけるx2の逆元をx2
-1としたとき、x1/x2= x1・x2
-1と定義される演算である。
また、楕円ElGamal暗号の場合、平文空間Mpkは、鍵生成アルゴリズム実行時に生成する楕円曲線上の点がなす加法群である。このとき、KEY1=Mpk、つまり、関数f: Mpk×Mpk→Mpk、関数g: Mpk×Mpk→Mpkであり、任意の(K, K1)∈Mpk×Mpkに対し、式(1)を満たす(f,g)の例として、以下の関数の組が存在する(ただし、+を上記加法群における加法とする)。
なお、演算-は、演算+におけるx2の逆元を-x2としたとき、x1-x2=x1+(-x2)と定義される演算である。
上記条件を満たす公開鍵暗号方式と関数(f,g)の例として、RSA暗号や楕円ElGamal暗号とそれに付随する関数(f,g)を挙げたが、これらの暗号に限られるものでなく、第一実施形態のメッセージ送受信システムの構成に、上記以外の公開鍵暗号方式とそれに付随する関数(f,g)を用いることができる。
[システム構成]
第一実施形態のメッセージ送受信システムは、図1に例示するように、サーバ100と、n(≧2)台の端末200を含む。この実施形態では、サーバ100および端末2001、…、端末200nはそれぞれネットワーク300へ接続される。ネットワーク300は、サーバ100、端末2001、…、端末200nがそれぞれ相互に通信可能なように構成されたネットワークであればよい。ネットワーク300には、例えばインターネットなどを用いることができる。
第一実施形態のメッセージ送受信システムは、図1に例示するように、サーバ100と、n(≧2)台の端末200を含む。この実施形態では、サーバ100および端末2001、…、端末200nはそれぞれネットワーク300へ接続される。ネットワーク300は、サーバ100、端末2001、…、端末200nがそれぞれ相互に通信可能なように構成されたネットワークであればよい。ネットワーク300には、例えばインターネットなどを用いることができる。
サーバ100は、図2に例示するように、記録部110と、ルーム生成部120と、鍵生成部130と、インデックス検索部140を含む。端末200i(1≦i≦n)は、図3に例示するように、記録部210と、ルーム生成要求送信部220と、検索用秘密鍵生成部230と、検索用秘密鍵暗号化部233と、暗号化検索用秘密鍵復号部235と、メッセージ暗号化部240と、メッセージID生成部243と、インデックス生成部245と、クエリ生成部250と、暗号化メッセージ復号部255を含む。このサーバ100および端末2001、…、端末200nが、図4から図9に例示する各ステップの処理を行うことにより実施形態のメッセージ送受信方法が実現される。
サーバ100および端末200iは、例えば、中央演算処理装置(CPU: Central Processing Unit)、主記憶装置(RAM: Random Access Memory)などを有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。各装置は、例えば、中央演算処理装置の制御のもとで各処理を実行する。各装置に入力されたデータや各処理で得られたデータは、例えば、主記憶装置に格納され、主記憶装置に格納されたデータは必要に応じて中央演算処理装置へ読み出されて他の処理に利用される。各装置が備える各処理部は、少なくとも一部が集積回路等のハードウェアによって構成されていてもよい。
サーバ100が備える記録部110および端末200iが備える記録部210は、例えば、RAM(Random Access Memory)などの主記憶装置、ハードディスクや光ディスクもしくはフラッシュメモリ(Flash Memory)のような半導体メモリ素子により構成される補助記憶装置、またはリレーショナルデータベースやキーバリューストアなどのミドルウェアにより構成することができる。各記録部は秘密情報を記憶するため、(例えば、SIMカードなどのように)耐タンパ性を有する記憶装置であることが望ましい。
[システムセットアップ]
以下、サーバ100を介してメッセージの送受信をする端末2001、…、端末200n(以下、グループともいう)に対して、当該グループで共有するメッセージを管理する単位をルームと呼ぶことにする。具体的には、サーバ100の記録部110に当該グループで共有するメッセージを登録する記録領域(つまり、物理的なルーム)が確保される。このルームを識別するための識別子をルーム識別子という。
以下、サーバ100を介してメッセージの送受信をする端末2001、…、端末200n(以下、グループともいう)に対して、当該グループで共有するメッセージを管理する単位をルームと呼ぶことにする。具体的には、サーバ100の記録部110に当該グループで共有するメッセージを登録する記録領域(つまり、物理的なルーム)が確保される。このルームを識別するための識別子をルーム識別子という。
ここでは、ルーム識別子roomID、公開鍵pkroomID、秘密鍵skroomID、セッション鍵R1がグループに属する端末2001、…、端末200n間で共有される。図4を参照してシステムセットアップのフローについて説明する。
なお、端末200iとサーバ100との間は、例えば、TLS通信のように暗号化通信を用いてもよい。また、端末200iは、パソコンやスマートフォンなどを想定しているが、これらに限られるものでなく、ユーザがメッセージを送受信するのに利用できるものであれば何でもよい。
ルーム生成の要求を出す端末200iのことを代表端末ということにする。代表端末は端末2001、…、端末200nの中から任意に選定してよい。そこで、以下では端末2001を代表端末とする。また、代表端末2001以外の端末200j(2≦j≦n)のことを一般端末200jということにする。
代表端末2001のルーム生成要求送信部220は、サーバ100に対してルーム生成要求を送信する(S4-10)。サーバ100が当該要求を受信すると、サーバ100のルーム生成部120は、ルーム識別子roomIDで識別されるルームを生成する(S4-20)。その際、サーバ100の鍵生成部130は、鍵生成アルゴリズムにより、roomIDで識別されるルームで暗号化・復号に用いる公開鍵pkroomIDと秘密鍵skroomIDを生成する(S4-30)。なお、鍵生成アルゴリズム実行時に同時に平文空間Mpkが定まる。また、公開鍵pkroomIDと秘密鍵skroomIDを生成する公開鍵暗号アルゴリズム(Gen, Enc, Dec)は先述の条件(式(1))を満たす関数(f,g)が存在すれば任意のアルゴリズムを用いることができる。サーバ100は、ルーム識別子roomID、公開鍵pkroomID、秘密鍵skroomIDを記録部110に記録し、代表端末2001にこれらのデータを送信する(S4-40)。
なお、S4-10~S4-40の処理は、次のようなフローで処理してもよい。ルーム生成部120がルーム生成要求に従いルームを生成、代表端末2001にルーム識別子roomIDを送信する。その後、代表端末2001がルーム識別子roomIDとともに鍵生成要求をサーバ100に送信、鍵生成部130がroomIDで識別されるルーム用の公開鍵pkroomIDと秘密鍵skroomIDを生成、代表端末2001に公開鍵pkroomIDと秘密鍵skroomIDを送信する。
一般端末200jは、代表端末2001からルームへの招待を示すルーム識別子roomIDを受信すると(S4-50)、サーバ100にルーム識別子roomIDを送信し(S4-55)、公開鍵pkroomIDと秘密鍵skroomIDを受信する(S4-60)。
各端末200iは、ルーム識別子roomID、公開鍵pkroomID、秘密鍵skroomIDを記録部210に記録する。
また、各端末200iは、セッション鍵R1を共有し、記録部210に記録する(S4-70)。共有の方法については、例えば、非特許文献2に記載の技術を用いればよい。なお、セッション鍵R1はサーバ100に対して秘匿化されているものとする。
[検索用秘密鍵の共有]
ここでは、ある端末200i_0(1≦i0≦n)が生成した検索用秘密鍵SearchKeyがサーバ100を介してグループに属するすべての端末200iの間で共有される。図5を参照して検索用秘密鍵SearchKeyの共有のフローについて説明する。
ここでは、ある端末200i_0(1≦i0≦n)が生成した検索用秘密鍵SearchKeyがサーバ100を介してグループに属するすべての端末200iの間で共有される。図5を参照して検索用秘密鍵SearchKeyの共有のフローについて説明する。
なお、検索用秘密鍵SearchKeyを生成する端末200i_0は、代表端末2001であっても一般端末200jであっても構わない。また、セッション経過に伴い途中で検索用秘密鍵SearchKeyを生成する端末200i_0がグループから離脱することもありうる。この場合、グループに属するその他の端末200i_1(i1はi0と異なる1以上n以下の整数)が検索用秘密鍵SearchKeyを生成する役割を引き継ぐものとする。つまり、検索用秘密鍵SearchKeyの生成は、現在グループに参加している端末200iのいずれかが行うものとする。
端末200i_0の検索用秘密鍵生成部230は、ルーム識別子共有後、ランダムに選択した平文空間Mpkの元rを検索用秘密鍵SearchKeyとして生成する(S5-10)。つまり、SearchKey=rとなる。なお、rのことを乱数という。この検索用秘密鍵SearchKeyは、ルーム毎に生成されるものである。端末200i_0は、検索用秘密鍵SearchKeyを記録部210に記録する。
端末200i_0の検索用秘密鍵暗号化部233は、暗号化検索用秘密鍵CipherKey←R Enc(pkroomID, f(SerachKey, R1))を生成し(S5-20)、暗号化検索用秘密鍵CipherKeyをルーム識別子roomIDとともにサーバ100に送信する(S5-30)。サーバ100は、受信した暗号化検索用秘密鍵CipherKeyをルーム識別子roomIDと対応付けて記録部110に記録する。
端末200i_0以外の端末200i_1は、S4-50で受信したルーム識別子roomIDをサーバ100に送信し(S5-40)、サーバ100から暗号化検索用秘密鍵CipherKeyを受信する(S5-50)。
S5-10からS5-30の処理は、代表端末2001がS4-50において一般端末200jとルーム識別子roomIDを共有した後、いつ実行してもよい。したがって、端末200i_0以外の端末200i_1は、S5-40の暗号化検索用秘密鍵CipherKeyの取得要求をサーバ100にいつ送信してもよい。例えば、代表端末2001からルームへの招待を受けた直後でなく、招待後初めてログインする際でもよい。
端末200i_1の検索鍵復号部235は、Temp=Dec(skroomID, CipherKey)を計算、記録部210から読み出したセッション鍵R1を用いてSearchKey=g(Temp, R1)を計算、検索用秘密鍵SearchKeyを復号する(S5-60)。関数(f,g)が先述の条件(式(1))を満たすことより、検索用秘密鍵SearchKeyを得ることができる。端末200i_1は、S5-60で得た検索用秘密鍵SearchKeyを記録部210に記録する。
端末200i_0の検索用秘密鍵生成部230は、ルーム識別子共有後、検索用秘密鍵生成のため最初の乱数生成(つまり、平文空間Mpkの元rのランダム選択)を実行するが、後ほど詳述するように、以降は検索用秘密鍵更新のため、定期的に乱数を生成し、その都度検索用秘密鍵暗号化部233は、検索用秘密鍵から暗号化検索用秘密鍵を生成し、暗号化検索用秘密鍵をサーバ100に送信する。また、端末200i_1は更新された暗号化検索用秘密鍵をサーバ100から適時に取得し、復号することで検索用秘密鍵を取得する。つまり、端末200iの記録部210には、複数の検索用秘密鍵が記録されることになる。以下では、ルーム識別子共有後最初に生成される検索用秘密鍵を第一世代検索用秘密鍵SearchKey1、以降定期的に生成される検索用秘密鍵を順に第二世代検索用秘密鍵SearchKey2、第三世代検索用秘密鍵SearchKey3、…ということにする。また、検索用秘密鍵SearchKeyの中で最も世代が新しいものを最新検索用秘密鍵ということにする。
[暗号化メッセージの送信]
ここでは、端末200iがルーム識別子roomIDで管理されるルームにメッセージを送信する。その際、メッセージは暗号化される。暗号化したメッセージ(暗号化メッセージ)はルーム識別子roomIDを有するルームと対応付けられてサーバ100の記録部110に記録されるとともに、後ほど暗号化したままで検索ができるよう、検索に用いるインデックスの集合(インデックス集合)とメッセージIDの組も記録される。図6を参照して端末200iによるメッセージの送信のフローについて説明する。
ここでは、端末200iがルーム識別子roomIDで管理されるルームにメッセージを送信する。その際、メッセージは暗号化される。暗号化したメッセージ(暗号化メッセージ)はルーム識別子roomIDを有するルームと対応付けられてサーバ100の記録部110に記録されるとともに、後ほど暗号化したままで検索ができるよう、検索に用いるインデックスの集合(インデックス集合)とメッセージIDの組も記録される。図6を参照して端末200iによるメッセージの送信のフローについて説明する。
端末200iのメッセージ暗号化部240は、サーバ100にグループ内で共有したいメッセージm1を暗号化し、暗号化メッセージEnc(m1)を生成する(S6-10)。ここで、メッセージの暗号化に用いる鍵は、サーバ100に秘匿化されている鍵であれば、共通鍵暗号アルゴリズムで生成されるものであっても、公開鍵暗号アルゴリズムで生成されるものであっても構わない。なお、当該鍵はグループ内の端末200i間で共有されているものとする。また、メッセージを送信する端末200iは、グループに属する任意の端末である。
メッセージm1を暗号化する際、端末200iのメッセージID生成部243は、暗号化したメッセージEnc(m1)をルーム識別子roomIDで識別されるルーム内で一意に識別するためのメッセージ識別子IDm_1をあわせて生成する(S6-15)。サーバ100に対してメッセージm1を秘匿化したままにする、つまりEnc(m1)をサーバ100に送信し記録部110に記録するので、メッセージ識別子IDm_1を生成する関数は逆像計算が困難である(メッセージ識別子IDm_1からメッセージm1が容易に推測できない)関数であることが好ましい。
更に、メッセージm1を暗号化する際、端末200iのインデックス生成部245は、暗号化したメッセージEnc(m1)を検索するために用いるインデックスをあわせて生成する(S6-20)。検索可能な文字列長については上限を設けても、設けなくてもよい。以下では、検索可能な文字列長の上限が定められているものとし、その値をLとし説明する。
以下、インデックスの生成方法について説明する(図7参照)。インデックスの生成では関数Gを用いる。関数Gは、任意長の文字列を入力とし、入力文字列に依存する濃度を有する文字列の集合(文字列集合)を出力する関数とする。なお、関数Gの入力がメッセージm1である場合、関数Gの出力である文字列集合のことをメッセージm1に関係する情報といい、G(m1)={s1, s2,.., sq,..}と表すことにする。このような関数Gの例としては、メッセージm1のメタ情報を出力する関数、メッセージm1内に含まれる文字列を出力する関数、Nグラム・インデキシングを活用したメッセージm1内の連続するN文字からなる文字列すべてを出力する関数などがある。Nグラム・インデキシングについては、参考文献1に詳しい。
(参考文献1:北研二,津田和彦,獅々堀正幹,“情報検索アルゴリズム”,共立出版,2002年)
(参考文献1:北研二,津田和彦,獅々堀正幹,“情報検索アルゴリズム”,共立出版,2002年)
ここでは、メッセージm1の文字列長をlengthm_1、P=min{L, lengthm_1}とし、i=1,..,Pに対して、次の処理を行い、文字列集合G(m1)を生成する。
インデックス生成部245は、メッセージm1内の連続するi個の文字からなる文字列(つまり、長さiの文字列)をすべて列挙する(S6-20-1)。これを文字列集合{s1
(1), s2
(1),.., sj
(i),..}(ただし、j=1, 2,.., lengthm_1-i+1)とする。文字列集合G(m1)={s1
(1), s2
(1),.., sj
(i),..}は、メッセージm1に関係する情報である。
なお、メッセージ全体から当該文字列を列挙してもよいし、メッセージを文節ごとに区切り、各文節から当該文字列を列挙してもよい。また、列挙の方法については、例えば、文字列の左端からとってきた連続するi個の文字からなる文字列をs1
(i)、左端から右に1つシフトして得た連続するi個の文字からなる文字列をs2
(i)とするとよい。ただし、インデックスを用いたメッセージ検索に影響はないので、どのような列挙方法を用いてもよい。
次に、インデックス生成部245は、文字列集合G(m1)={s1
(1), s2
(1),.., sj
(i),..}と記録部210から読み出した最新検索用秘密鍵SearchKeyを用いて、j=1, 2,.., lengthm_1-i+1に対し、インデックスを次式で計算する(S6-20-2)。上述した通り、記録部210には一般に複数の検索用秘密鍵が記録されているが、ここで読み出す検索用秘密鍵SearchKeyは、最も新しい検索用秘密鍵、最新検索用秘密鍵であるとする。つまり、最新検索用秘密鍵SearchKeyを用いて各文字列sj
(i)に対して、インデックスIndexj
(i)を計算する。
なお、インデックス集合の各要素は長さL以下の文字列であるとする。式(2)で得られるP/2(2lengthm_1-P+1)個のインデックスを要素とするインデックス集合Indは次式のようにとなる。
例えば、検索可能な文字列長の上限Lを3以上の整数、メッセージm1を3文字からなるメッセージ“あいう”であるとすると、以下の6個のインデックスが計算される。
なお、一般には、メッセージm1に関係する情報G(m1)={s1, s2,.., sq,..}から、インデックス集合Ind={Index1, Index2,.., Indexq,..}は、各要素を次式で計算して求めることができる。
端末200iは、暗号化メッセージEnc(m1)とともに、次式で表されるインデックス集合Indの各要素とメッセージ識別子の組をサーバ100に送信する(S6-30)。
サーバ100は、暗号化メッセージEnc(m1)、各インデックスとメッセージ識別子の組(Index1
(1),.., Indexj
(i),.., Indexlengthm_1
(P), IDm_1)を記録部110に記録する。
なお、検索可能な文字列長の上限が定めない場合、L=+∞と表現することにすると、P=lengthm_1となり、メッセージm1に対し、上記と同様の方法でインデックス集合Ind
を生成することができる。
[暗号化メッセージの検索]
ここでは、端末200iがルーム識別子roomIDを有するルームで管理されるメッセージを検索する。検索キーワードとなる文字列(以下、メッセージ検索用文字列という)からクエリを生成し、暗号化したままメッセージの検索を行う。図8を参照して端末200iによるメッセージ検索のフローについて説明する。
ここでは、端末200iがルーム識別子roomIDを有するルームで管理されるメッセージを検索する。検索キーワードとなる文字列(以下、メッセージ検索用文字列という)からクエリを生成し、暗号化したままメッセージの検索を行う。図8を参照して端末200iによるメッセージ検索のフローについて説明する。
端末200iがルームに蓄積された暗号化メッセージから、メッセージ検索用文字列m’に合致するメッセージの検索を行うとする。端末200iのクエリ生成部250は、記録部210から一般に複数の検索用秘密鍵を読出し、各検索用秘密鍵SearchKeyに対してメッセージ検索に用いるクエリQueryを、Query=CRHF(F(m’, SearchKey))として計算し、これらのクエリを要素とするクエリ集合を生成する(S7-10)。T1、T2を検索用秘密鍵の世代を示す1以上の整数とし、T1≦i≦T2なる整数iについて第i世代検索用秘密鍵SearchKeyi)についてクエリQueryi=CRHF(F(m’, SearchKeyi))を計算し、クエリ集合{QueryT_1, QueryT_1+1,.., QueryT_2}を生成する。
例えば、現在からある過去の時点の間で送信されたメッセージに対して検索を行う場合、その間で更新された検索用秘密鍵に対してのみクエリを生成すればよい。つまり、必ずしも過去すべての検索用秘密鍵に対するクエリを生成する(T1=1である)必要はない。
なお、検索可能な文字列長の上限Lが定められている場合、最初にメッセージ検索用文字列m’の長さをLと比較し、Lよりも大きければエラーを返すようにしてもよい。このようにすることにより処理の効率化が図れる。
端末200iのクエリ生成部250は、クエリ集合{QueryT_1, QueryT_1+1,.., QueryT_2}をサーバ100に送信する(S7-20)。
サーバ100のインデックス検索部140は、記録部110に記録しているインデックス集合の各要素とメッセージ識別子の組(Index1
(1),.., Indexj
(i),.., IDm_1)のうち、受信したクエリ集合{QueryT_1, QueryT_1+1,.., QueryT_2}の各要素QueryiとインデックスIndexj
(i)が一致するインデックスとメッセージ識別子の組(Indexj
(i), IDm_1)をすべて抽出する(S7-30)。サーバ100のインデックス検索部140は、端末200iに抽出したメッセージ識別子IDm_1に対応する暗号化メッセージEnc(m1)を送信する(S7-40)。
端末200iの暗号化メッセージ復号部255は、S7-40で受信した暗号化メッセージ暗号化メッセージEnc(m1)を復号して、メッセージm1を検索結果として画面に表示する(S7-50)。
なお、S7-40で抽出したメッセージ識別子IDm_1に対応する暗号化メッセージEnc(m1)を送信する代わりに、メッセージ識別子IDm_1を送信してもよい。この場合、端末200iは、受信したメッセージ識別子IDm_1をサーバ100に送信し、当該メッセージ識別子IDm_1に対応する暗号化メッセージEnc(m1)をサーバ100から取得し、暗号化メッセージ復号部255を用いて暗号化メッセージEnc(m1)を復号して、メッセージm1を検索結果として画面に表示することになる。
[検索用秘密鍵の更新]
ここでは、端末200i_0が検索用秘密鍵SearchKeyを更新する。検索用秘密鍵SearchKeyの更新間隔はサーバ100の記録部110に記録されているインデックスとそれに紐づくメッセージ識別子の個数(分布)からインデックスやメッセージ識別子に対応するメッセージを推測されることを防げる程度の頻度で定期的に行うとよい。例えば、1ヵ月毎、半年毎など考えられるが、更新間隔が短い方がより推測されることを防ぐことができる。図9を参照して端末200i_0による検索用秘密鍵の更新のフローについて説明する。
ここでは、端末200i_0が検索用秘密鍵SearchKeyを更新する。検索用秘密鍵SearchKeyの更新間隔はサーバ100の記録部110に記録されているインデックスとそれに紐づくメッセージ識別子の個数(分布)からインデックスやメッセージ識別子に対応するメッセージを推測されることを防げる程度の頻度で定期的に行うとよい。例えば、1ヵ月毎、半年毎など考えられるが、更新間隔が短い方がより推測されることを防ぐことができる。図9を参照して端末200i_0による検索用秘密鍵の更新のフローについて説明する。
端末200i_0の検索用秘密鍵生成部230は、事前に設定された更新間隔が経過したことを検知すると、ランダムに選択した平文空間Mpkの元r’を更新後の検索用秘密鍵として生成する(S8-10)。つまり、SearchKey=r’とする。更新した検索用秘密鍵をグループ内の端末200i_1と共有するため、端末200i_0の検索用秘密鍵暗号化部233は、暗号化検索用秘密鍵CipherKey←R Enc(pkroomID,f(SerachKey, R1))を計算し(S8-20)、暗号化検索用秘密鍵CipherKeyをサーバ100に送信する(S8-30)。サーバ100は、受信した暗号化検索用秘密鍵CipherKeyをルーム識別子roomIDと対応付けて記録部110に記録する。なお、サーバ100は以前の暗号化検索用秘密鍵 CipherKeyも記録部110に記録しておく。端末200i_1がサーバ100から暗号化検索用秘密鍵CipherKeyを取得する場合(S8-40)、過去の暗号化検索用秘密鍵{CipherKey1,.. ,CipherKeyi,..}も含め取得する(S8-50)。ただし、暗号化検索用秘密鍵CipherKeyiは、第i世代検索用秘密鍵SearchKeyiから生成されたものを表す。
なお、過去の暗号化検索用秘密鍵すべてを取得する代わりに、最新検索用秘密鍵に対応する暗号化検索用秘密鍵のみを取得するようにしてもよい。このようにすることにより処理の効率化を図ることができる。
端末200i_1が検索用秘密鍵の更新があったことを知るためには、端末200i_0と更新間隔を共有しておいてもよいし、端末200i_0が更新したことを端末200i_1に通知してもよいし、端末200i_1が自ら定期的に暗号化検索用秘密鍵を取得するようにしてもよい。
端末200i_1の検索鍵復号部260は、取得した暗号化検索用秘密鍵CipherKey に対してTemp=Dec(skroomID, CipherKey)を計算、記録部210から読み出したセッション鍵R1を用いてSearchKey=g(Temp, R1)を生成する(S8-60)。この処理は、取得した暗号化検索用秘密鍵の数だけ繰り返される。
本実施形態の説明では、代表端末2001と一般端末200jはその役割が異なる。つまりルーム生成要求をサーバ100に送信する役割を負っているか否かだけであるが、これらの端末の構成については図3に示すように同質なものとして説明した。しかし、必ずしもこのように構成する必要はない。つまり、代表端末2001は、記録部210と、ルーム生成要求送信部220と、検索用秘密鍵生成部230と、検索用秘密鍵暗号化部233と、暗号化検索用秘密鍵復号部235と、メッセージ暗号化部240と、メッセージID生成部243と、インデックス生成部245と、クエリ生成部250と、暗号化メッセージ復号部255を含むものとして構成する一方、一般端末200jは、記録部210と、検索用秘密鍵生成部230と、検索用秘密鍵暗号化部233と、暗号化検索用秘密鍵復号部235と、メッセージ暗号化部240と、メッセージID生成部243と、インデックス生成部245と、クエリ生成部250と、暗号化メッセージ復号部255を含むものとして構成する。
本実施形態によると、端末200iは検索キーワードと端末間で共有された検索用秘密鍵から秘匿化されたクエリを生成し、サーバ100に送信、サーバ100はメッセージに関係する情報と検索用秘密鍵から生成される、秘匿化されたインデックスと受信したクエリを用いてメッセージを検索する。これによりサーバ100はメッセージを暗号化したまま検索することができる。また、検索用秘密鍵を定期的に更新することにより、同じ検索キーワードに対して異なるクエリが生成されることになり、検索内容や検索結果が推測されるのを防ぐことができる。
<第二実施形態>
第一実施形態のメッセージ送受信システムでは公開鍵暗号方式を用いたが、本実施形態のメッセージ送受信システムは、公開鍵暗号方式を用いない。ただし、ここでは、平文空間Mpkの代わりに鍵空間KEYを定義し、関数f:KEY×KEY1→KEYと関数g:KEY×KEY1→KEYは第一実施形態における関数(f,g)が満たす条件(式(1))と同一の条件を満たすものとする。
第一実施形態のメッセージ送受信システムでは公開鍵暗号方式を用いたが、本実施形態のメッセージ送受信システムは、公開鍵暗号方式を用いない。ただし、ここでは、平文空間Mpkの代わりに鍵空間KEYを定義し、関数f:KEY×KEY1→KEYと関数g:KEY×KEY1→KEYは第一実施形態における関数(f,g)が満たす条件(式(1))と同一の条件を満たすものとする。
このとき、例えば、KEY1=KEYであり、KEYに乗法群または加法群の構造が入っていれば、任意の(K, K1)∈KEY×KEYに対し、式(1)を満たす(f,g)の例として、以下の関数の組を挙げることができる。
なお、演算/は、鍵空間KEYに乗法群としての構造が入っているときの乗法を・とし、この演算・におけるx2の逆元をx2
-1としたとき、x1/x2=x1・x2
-1と定義される演算である。また、演算-は、鍵空間KEYに加法群としての構造が入っているときの加法を+し、この演算+におけるx2の逆元を-x2としたとき、x1-x2=x1+(-x2)と定義される演算である。
[システム構成]
第二実施形態のメッセージ送受信システムは、第一実施形態のメッセージ送受信システムと同様、サーバ500と、n(≧2)台の端末600を含む。また、第一実施形態と同様、サーバ500および端末6001、…、端末600nはそれぞれネットワーク300へ接続される。
第二実施形態のメッセージ送受信システムは、第一実施形態のメッセージ送受信システムと同様、サーバ500と、n(≧2)台の端末600を含む。また、第一実施形態と同様、サーバ500および端末6001、…、端末600nはそれぞれネットワーク300へ接続される。
サーバ500は、図10に例示するように、記録部110と、ルーム生成部120と、インデックス検索部140を含む。つまり、サーバ500は、鍵生成部130を有しない点でサーバ100と異なる。端末600i(1≦i≦n)は、図11に例示するように、記録部210と、ルーム生成要求送信部220と、検索用秘密鍵生成部230と、検索用秘密鍵暗号化部633と、暗号化検索用秘密鍵復号部635と、メッセージ暗号化部240と、メッセージID生成部243と、インデックス生成部245と、クエリ生成部250と、暗号化メッセージ復号部255を含む。つまり、端末600iは、検索用秘密鍵暗号化部233と、暗号化検索用秘密鍵復号部235の代わりに、検索用秘密鍵暗号化部633と、暗号化検索用秘密鍵復号部635を有する点で端末200iと異なる。
第一実施形態と第二実施形態のメッセージ送受信システムは公開鍵暗号アルゴリズムを用いるか用いないかの点においてのみ異なる。その結果、システムセットアップと検索用秘密鍵の共有のフローに違いが出てくる。そこで、この2つのフローについて以下では説明する。
[システムセットアップ]
ここでは、ルーム識別子roomID、セッション鍵R1がグループに属する端末6001、…、端末600n間で共有される。図12を参照してシステムセットアップのフローについて説明する。
ここでは、ルーム識別子roomID、セッション鍵R1がグループに属する端末6001、…、端末600n間で共有される。図12を参照してシステムセットアップのフローについて説明する。
代表端末6001のルーム生成要求送信部220は、サーバ500に対してルーム生成要求を送信する(S4-10)。サーバ500が当該要求を受信すると、サーバ500のルーム生成部120は、ルーム識別子roomIDで識別されるルームを生成する(S4-20)。サーバ500は、ルーム識別子roomIDを記録部110に記録し、代表端末6001にルーム識別子roomIDを送信する(S4-42)。
一般端末600jは、代表端末6001からルームへの招待を示すルーム識別子roomIDを受信する(S4-50)。
各端末600iは、ルーム識別子roomIDを記録部210に記録する。
また、各端末600iは、セッション鍵R1を共有し、記録部210に記録する(S4-70)。なお、セッション鍵R1がサーバ500に対して秘匿化されているのも、第一実施形態と同様である。
[検索用秘密鍵の共有]
ここでは、第一実施形態と同様、ある端末600i_0(1≦i0≦n)が生成した検索用秘密鍵SearchKeyがサーバ500を介してグループに属するすべての端末600iの間で共有される。図5を参照して検索用秘密鍵SearchKeyの共有のフローについて説明する。
ここでは、第一実施形態と同様、ある端末600i_0(1≦i0≦n)が生成した検索用秘密鍵SearchKeyがサーバ500を介してグループに属するすべての端末600iの間で共有される。図5を参照して検索用秘密鍵SearchKeyの共有のフローについて説明する。
端末600i_0の検索用秘密鍵生成部230は、ルーム識別子共有後、ランダムに選択した鍵空間KEYの元rを検索用秘密鍵SearchKeyとして生成する(S5-10)。つまり、SearchKey=rとなる。なお、rのことを乱数という。この検索用秘密鍵SearchKeyは、第一実施形態同様、ルーム毎に生成されるものである。端末600i_0は、検索用秘密鍵SearchKeyを記録部210に記録する。
端末600i_0の検索用秘密鍵暗号化部633は、暗号化検索用秘密鍵CipherKey=f(SerachKey, R1)を生成し(S5-20)、暗号化検索用秘密鍵CipherKeyをルーム識別子roomIDとともにサーバ500に送信する(S5-30)。つまり、暗号化検索用秘密鍵の生成に公開鍵を用いない点でのみ端末600i_0は端末200i_0と異なる。サーバ500は、受信した暗号化検索用秘密鍵CipherKeyをルーム識別子roomIDと対応付けて記録部110に記録する。
端末600i_1は、S4-50で受信したルーム識別子roomIDをサーバ500に送信し(S5-40)、サーバ500から暗号化検索用秘密鍵CipherKeyを受信する(S5-50)。
端末600i_1の検索鍵復号部635は、記録部210から読み出したセッション鍵R1を用いてSearchKey=g(CipherKey, R1)を計算、検索用秘密鍵SearchKeyを復号する(S5-60)。関数(f,g)が先述の条件(式(1))を満たすことより、検索用秘密鍵SearchKeyを得ることができる。端末600i_1はS5-60で得た検索用秘密鍵SearchKeyを記録部210に記録する。
なお、検索用秘密鍵の更新においても、検索用秘密鍵暗号化部633及び検索鍵復号部635が公開鍵・秘密鍵を用いないのは、検索用秘密鍵の共有と同じである。つまり、検索用秘密鍵暗号化部633は、暗号化検索用秘密鍵をCipherKey=f(SerachKey, R1)として生成し、検索鍵復号部635は、記録部210から読み出したセッション鍵R1を用いてSearchKey=g(CipherKey, R1)を計算、検索用秘密鍵SearchKeyを復号する。
本実施形態によると、第一実施形態と同様、サーバ500はメッセージを暗号化したまま検索することができる。また、検索用秘密鍵を定期的に更新することにより、同じ検索キーワードに対して異なるクエリが生成されることになり、検索内容や検索結果が推測されることを防ぐことができる。
<変形例>
この発明は上述の実施形態に限定されるものではなく、この発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。上記実施形態において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
この発明は上述の実施形態に限定されるものではなく、この発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。上記実施形態において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
<補記>
上記実施形態で説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
上記実施形態で説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
上述の本発明の実施形態の記載は、例証と記載の目的で提示されたものである。網羅的であるという意思はなく、開示された厳密な形式に発明を限定する意思もない。変形やバリエーションは上述の教示から可能である。実施形態は、本発明の原理の最も良い例証を提供するために、そして、この分野の当業者が、熟考された実際の使用に適するように本発明を色々な実施形態で、また、色々な変形を付加して利用できるようにするために、選ばれて表現されたものである。すべてのそのような変形やバリエーションは、公正に合法的に公平に与えられる幅にしたがって解釈された添付の請求項によって定められた本発明のスコープ内である。
100 サーバ
110 記録部
120 ルーム生成部
130 鍵生成部
140 インデックス検索部
200 端末
210 記録部
220 ルーム生成要求送信部
230 検索用秘密鍵生成部
233 検索用秘密鍵暗号化部
235 暗号化検索用秘密鍵復号部
240 メッセージ暗号化部
243 メッセージID生成部
245 インデックス生成部
250 クエリ生成部
255 暗号化メッセージ復号部
300 ネットワーク
500 サーバ
600 端末
633 検索用秘密鍵暗号化部
635 暗号化検索用秘密鍵復号部
110 記録部
120 ルーム生成部
130 鍵生成部
140 インデックス検索部
200 端末
210 記録部
220 ルーム生成要求送信部
230 検索用秘密鍵生成部
233 検索用秘密鍵暗号化部
235 暗号化検索用秘密鍵復号部
240 メッセージ暗号化部
243 メッセージID生成部
245 インデックス生成部
250 クエリ生成部
255 暗号化メッセージ復号部
300 ネットワーク
500 サーバ
600 端末
633 検索用秘密鍵暗号化部
635 暗号化検索用秘密鍵復号部
Claims (8)
- nを2以上の整数とし、
メッセージを共有するn台の端末と前記メッセージを暗号化した暗号化メッセージを記録するサーバとを含むメッセージ送受信システムにおいて、前記端末がメッセージ検索用文字列を用いて前記暗号化メッセージを検索する暗号化メッセージ検索方法であって、
前記n台の端末で共有するメッセージを前記サーバが管理する単位をルーム、その識別子をルーム識別子とし、
前記n台の端末の記録部には、前記ルーム識別子と、セッション鍵とが記録されており、
前記端末が、ルーム識別子共有後または最初の検索用秘密鍵を共有した後は事前に設定された更新間隔が経過する度、検索用秘密鍵として乱数を生成し、前記セッション鍵を用いて前記検索用秘密鍵から暗号化検索用秘密鍵を生成し、前記暗号化検索用秘密鍵を前記サーバに送信する暗号化検索用秘密鍵送信ステップと、
前記端末が、前記ルーム識別子を用いて前記サーバから前記暗号化検索用秘密鍵を取得し、前記セッション鍵を用いて前記暗号化検索用秘密鍵から前記検索用秘密鍵を復号する検索用秘密鍵復号ステップと、
前記端末が、メッセージを暗号化した暗号化メッセージを生成し、前記メッセージに関係する情報と、前記検索用秘密鍵のうち最新検索用秘密鍵を用いて、メッセージ検索用のインデックス集合を生成し、前記インデックス集合と前記暗号化メッセージとを前記ルーム識別子とともに前記サーバに送信する暗号化メッセージ送信ステップと、
前記端末が、前記メッセージ検索用文字列と、前記検索用秘密鍵のうち1つ以上の検索用秘密鍵を用いて、クエリ集合を生成し、前記クエリ集合を前記ルーム識別子とともに前記サーバに送信するクエリ送信ステップと、
前記サーバが、前記ルーム識別子と対応付けて管理しているインデックス集合と暗号化メッセージの中から前記クエリ集合の要素と一致するインデックス集合の要素がある暗号化メッセージを検索し、前記暗号化メッセージを前記端末に送信する暗号化メッセージ返信ステップと、
前記端末が、前記暗号化メッセージからメッセージを復号する暗号化メッセージ復号ステップと、
を含む暗号化メッセージ検索方法。 - 請求項1に記載の暗号化メッセージ検索方法であって、
関数f, gは任意の(K, K1)∈KEY×KEY1に対し次式を満たすものとし、
CRHFを任意長の文字列を入力とし、固定長の文字列を出力する衝突困難ハッシュ関数、Fを2つの任意長の文字列を入力とし、文字列を出力する関数とし、
前記暗号化検索用秘密鍵送信ステップでは、SearchKeyを検索用秘密鍵、R1をセッション鍵として、f(SerachKey, R1)を計算することにより、暗号化検索用秘密鍵CipherKeyを生成し、
前記検索用秘密鍵復号ステップでは、Temp=f(SerachKey, R1)とし、g(Temp, R1)を計算することにより、前記検索用秘密鍵SerachKeyを復号し、
前記暗号化メッセージ送信ステップでは、メッセージm1を暗号化するメッセージ、関数Gを任意長の文字列を入力として入力文字列に依存する濃度を有する文字列集合を出力する関数として、前記メッセージに関係する情報をG(m1)={s1, s2,.., sq,..}とし、前記インデックス集合{Index1, Index 2,.., Index q,..}の各要素を次式により計算し、
前記クエリ送信ステップでは、前記メッセージ検索用文字列をm’とし、前記クエリ集合{QueryT_1, QueryT_1+1,.., QueryT_2}の各要素をQueryi=CRHF(F(m’, SearchKeyi)) (T1≦i≦T2、ただし、T1、T2は検索用秘密鍵の世代を示す1以上の整数)として計算する暗号化メッセージ検索方法。 - 請求項1に記載の暗号化メッセージ検索方法であって、
前記n台の端末の記録部には、さらに前記サーバが前記ルームごとに生成した公開鍵pkroomIDと秘密鍵skroomIDとが記録されており、
関数f, gは任意の(K, K1)∈Mpk×KEY1に対し次式を満たすものとし、
CRHFを任意長の文字列を入力とし、固定長の文字列を出力する衝突困難ハッシュ関数、Fを2つの任意長の文字列を入力とし、文字列を出力する関数とし、
前記暗号化検索用秘密鍵送信ステップでは、SearchKeyを検索用秘密鍵、R1をセッション鍵として、暗号化検索用秘密鍵CipherKey=Enc(pkroomID, f(SerachKey, R1))を生成し、
前記検索用秘密鍵復号ステップでは、g(Dec(skroomID, CipherKey), R1)を計算することにより、前記検索用秘密鍵SerachKeyを復号し、
前記暗号化メッセージ送信ステップでは、メッセージm1を暗号化するメッセージ、関数Gを任意長の文字列を入力として入力文字列に依存する濃度を有する文字列集合を出力する関数として、前記メッセージに関係する情報をG(m1)={s1, s2,.., sq,..}とし、前記インデックス集合{Index1, Index 2,.., Index q,..}の各要素を次式により計算し、
前記クエリ送信ステップでは、前記メッセージ検索用文字列をm’とし、前記クエリ集合{QueryT_1, QueryT_1+1,.., QueryT_2}の各要素をQueryi=CRHF(F(m’, SearchKeyi)) (T1≦i≦T2、ただし、T1、T2は検索用秘密鍵の世代を示す1以上の整数)として計算する暗号化メッセージ検索方法。 - 請求項2または3に記載の暗号化メッセージ検索方法であって、
前記関数Gは、メッセージm1を入力とし、メッセージm1内の連続するi個(i=1,..,P、ただし、P=min{L, lengthm_1}、Lは検索可能な文字列長の上限値、lengthm_1はメッセージm1の文字列長)の文字からなる文字列を列挙することにより生成される集合{s1 (1), s2 (1),.., sj (i),..}(ただし、j=1, 2,.., lengthm_1-i+1)を出力する関数である暗号化メッセージ検索方法。 - nを2以上の整数とし、
メッセージを共有するn台の端末と前記メッセージを暗号化した暗号化メッセージを記録するサーバとを含むメッセージ送受信システムであって、
前記n台の端末で共有するメッセージを前記サーバが管理する単位をルーム、その識別子をルーム識別子とし、
前記サーバは、
前記ルーム識別子と、前記n台の端末が共有する検索用秘密鍵を暗号化した暗号化検索用秘密鍵と、暗号化メッセージと、メッセージ検索用のインデックス集合とを記録する記録部と、
前記ルーム識別子と対応付けて管理しているインデックス集合と暗号化メッセージの中から前記端末からのクエリ集合の要素と一致するインデックス集合の要素がある暗号化メッセージを検索するインデックス検索部と、
を含み、
前記端末は、
前記ルーム識別子と、前記n台の端末で共有するセッション鍵とを記録する記録部と、
ルーム識別子共有後または最初の検索用秘密鍵を共有した後は事前に設定された更新間隔が経過する度、乱数を前記検索用秘密鍵として生成する検索用秘密鍵生成部と、
前記セッション鍵を用いて前記検索用秘密鍵から暗号化検索用秘密鍵を生成する検索用秘密鍵暗号化部と、
前記ルーム識別子を用いて前記サーバから前記暗号化検索用秘密鍵を取得し、前記セッション鍵を用いて前記暗号化検索用秘密鍵から前記検索用秘密鍵を復号する暗号化検索用秘密鍵復号部と、
メッセージを暗号化した暗号化メッセージを生成するメッセージ暗号化部と、
前記メッセージに関係する情報と、前記検索用秘密鍵のうち最新検索用秘密鍵を用いて、メッセージ検索用のインデックス集合を生成するインデックス生成部と、
メッセージ検索用文字列と、前記検索用秘密鍵のうち1つ以上の検索用秘密鍵を用いて、クエリ集合を生成するクエリ生成部と、
暗号化メッセージからメッセージを復号する暗号化メッセージ復号部と、
を含むメッセージ送受信システム。 - nを2以上の整数とし、
n台の端末が共有するメッセージを暗号化した暗号化メッセージを記録するサーバであって、
前記n台の端末で共有するメッセージを前記サーバが管理する単位をルーム、その識別子をルーム識別子とし、
前記ルーム識別子と、前記n台の端末が共有する検索用秘密鍵を暗号化した暗号化検索用秘密鍵と、暗号化メッセージと、メッセージ検索用のインデックス集合とを記録する記録部と、
前記ルーム識別子と対応付けて管理しているインデックス集合と暗号化メッセージの中から前記端末からのクエリ集合の要素と一致するインデックス集合の要素がある暗号化メッセージを検索するインデックス検索部と、
を含むサーバ。 - メッセージを暗号化した暗号化メッセージを記録するサーバを介して他の端末と前記メッセージを共有する端末であって、
前記n台の端末で共有するメッセージを前記サーバが管理する単位をルーム、その識別子をルーム識別子とし、
前記ルーム識別子と、前記n台の端末で共有するセッション鍵とを記録する記録部と、
ルーム識別子共有後または最初の検索用秘密鍵を共有した後は事前に設定された更新間隔が経過する度、乱数を検索用秘密鍵として生成する検索用秘密鍵生成部と、
前記セッション鍵を用いて前記検索用秘密鍵から暗号化検索用秘密鍵を生成する検索用秘密鍵暗号化部と、
前記ルーム識別子を用いて前記サーバから暗号化検索用秘密鍵を取得し、前記セッション鍵を用いて前記暗号化検索用秘密鍵から検索用秘密鍵を復号する暗号化検索用秘密鍵復号部と、
メッセージを暗号化した暗号化メッセージを生成するメッセージ暗号化部と、
前記メッセージに関係する情報と、前記検索用秘密鍵のうち最新検索用秘密鍵を用いて、メッセージ検索用のインデックス集合を生成するインデックス生成部と、
メッセージ検索用文字列と、前記検索用秘密鍵のうち1つ以上の検索用秘密鍵を用いて、クエリ集合を生成するクエリ生成部と、
暗号化メッセージからメッセージを復号する暗号化メッセージ復号部と、
を含む端末。 - 請求項6に記載のサーバまたは請求項7に記載の端末としてコンピュータを機能させるためのプログラム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/323,922 US11223472B2 (en) | 2016-09-12 | 2017-08-30 | Encrypted message search method, message transmission/reception system, server, terminal and program |
EP17848638.7A EP3511845B1 (en) | 2016-09-12 | 2017-08-30 | Encrypted message search method, message transmission/reception system, server, terminal and programme |
CN201780053295.0A CN109643324B (zh) | 2016-09-12 | 2017-08-30 | 加密消息搜索方法、消息收发系统、终端、介质 |
JP2018538376A JP6770075B2 (ja) | 2016-09-12 | 2017-08-30 | 暗号化メッセージ検索方法、メッセージ送受信システム、端末、プログラム |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016177680 | 2016-09-12 | ||
JP2016-177680 | 2016-09-12 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2018047698A1 true WO2018047698A1 (ja) | 2018-03-15 |
Family
ID=61561555
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2017/031195 WO2018047698A1 (ja) | 2016-09-12 | 2017-08-30 | 暗号化メッセージ検索方法、メッセージ送受信システム、サーバ、端末、プログラム |
Country Status (5)
Country | Link |
---|---|
US (1) | US11223472B2 (ja) |
EP (1) | EP3511845B1 (ja) |
JP (1) | JP6770075B2 (ja) |
CN (1) | CN109643324B (ja) |
WO (1) | WO2018047698A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112632598A (zh) * | 2020-12-09 | 2021-04-09 | 西安电子科技大学 | 一种加密数据检索与共享方法、系统、介质、设备及应用 |
US11212720B2 (en) | 2018-10-16 | 2021-12-28 | Mediatek Inc. | 5GSM handling on invalid PDU session |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10735384B2 (en) * | 2017-02-17 | 2020-08-04 | Whatsapp Inc. | Techniques for key ratcheting with multiple step sizes |
WO2019088279A1 (ja) * | 2017-11-06 | 2019-05-09 | 日本電信電話株式会社 | データ共有方法、データ共有システム、データ共有サーバ、通信端末、プログラム |
CN113127536B (zh) * | 2021-04-14 | 2023-07-28 | 上海同态信息科技有限责任公司 | 一种基于同态构型加密的离线模糊匹配系统 |
CN117194756A (zh) * | 2023-11-02 | 2023-12-08 | 北京信安世纪科技股份有限公司 | 数据处理方法、装置及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07200617A (ja) * | 1994-01-10 | 1995-08-04 | Nippon Telegr & Teleph Corp <Ntt> | 共有情報参照権限制御方法 |
JP2011146895A (ja) * | 2010-01-14 | 2011-07-28 | Mitsubishi Electric Corp | 情報処理システム及び管理装置及びサーバ装置及び情報処理装置 |
JP2015135541A (ja) * | 2014-01-16 | 2015-07-27 | 株式会社日立ソリューションズ | 検索可能暗号処理システムおよび検索可能暗号処理方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003101570A (ja) * | 2001-09-21 | 2003-04-04 | Sony Corp | 通信処理システム、通信処理方法、およびサーバー装置、並びにコンピュータ・プログラム |
US20070269041A1 (en) * | 2005-12-22 | 2007-11-22 | Rajat Bhatnagar | Method and apparatus for secure messaging |
JPWO2009011120A1 (ja) * | 2007-07-18 | 2010-09-16 | パナソニック株式会社 | アドレス生成方法、アドレス生成システム、通信装置、通信方法、通信システム及び相手先通信装置 |
WO2013111284A1 (ja) * | 2012-01-25 | 2013-08-01 | 三菱電機株式会社 | データ検索装置、データ検索方法、データ検索プログラム、データ登録装置、データ登録方法、データ登録プログラムおよび情報処理装置 |
JP5814880B2 (ja) * | 2012-07-31 | 2015-11-17 | 三菱電機株式会社 | 暗号システム、暗号方法、暗号プログラム及び復号装置 |
CN103023637B (zh) * | 2012-12-25 | 2015-07-15 | 电子科技大学 | 一种云存储中可撤销的关键字搜索公钥加密及搜索方法 |
US9047480B2 (en) * | 2013-08-01 | 2015-06-02 | Bitglass, Inc. | Secure application access system |
JP2015118603A (ja) | 2013-12-19 | 2015-06-25 | 日本電信電話株式会社 | データベース検索システム及び検索方法 |
US10318754B2 (en) * | 2014-06-02 | 2019-06-11 | Robert Bosch Gmbh | System and method for secure review of audit logs |
CN104219051B (zh) * | 2014-08-20 | 2018-04-13 | 北京奇艺世纪科技有限公司 | 一种群组内消息的通信方法和系统 |
WO2016063344A1 (ja) * | 2014-10-21 | 2016-04-28 | 三菱電機株式会社 | サーバ装置及び検索システム及び端末装置及び検索方法及びサーバプログラム及び端末プログラム |
CN105468986B (zh) * | 2015-12-02 | 2018-11-13 | 深圳大学 | 一种保密信息检索方法及系统 |
CN105743888A (zh) * | 2016-01-22 | 2016-07-06 | 河南理工大学 | 一种基于关键字搜索的代理重加密方案 |
-
2017
- 2017-08-30 JP JP2018538376A patent/JP6770075B2/ja active Active
- 2017-08-30 CN CN201780053295.0A patent/CN109643324B/zh active Active
- 2017-08-30 WO PCT/JP2017/031195 patent/WO2018047698A1/ja active Application Filing
- 2017-08-30 US US16/323,922 patent/US11223472B2/en active Active
- 2017-08-30 EP EP17848638.7A patent/EP3511845B1/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07200617A (ja) * | 1994-01-10 | 1995-08-04 | Nippon Telegr & Teleph Corp <Ntt> | 共有情報参照権限制御方法 |
JP2011146895A (ja) * | 2010-01-14 | 2011-07-28 | Mitsubishi Electric Corp | 情報処理システム及び管理装置及びサーバ装置及び情報処理装置 |
JP2015135541A (ja) * | 2014-01-16 | 2015-07-27 | 株式会社日立ソリューションズ | 検索可能暗号処理システムおよび検索可能暗号処理方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11212720B2 (en) | 2018-10-16 | 2021-12-28 | Mediatek Inc. | 5GSM handling on invalid PDU session |
US11582656B2 (en) | 2018-10-16 | 2023-02-14 | Mediatek Inc. | 5GSM handling on invalid PDU session |
CN112632598A (zh) * | 2020-12-09 | 2021-04-09 | 西安电子科技大学 | 一种加密数据检索与共享方法、系统、介质、设备及应用 |
CN112632598B (zh) * | 2020-12-09 | 2022-10-18 | 西安电子科技大学 | 一种加密数据检索与共享方法、系统、介质、设备及应用 |
Also Published As
Publication number | Publication date |
---|---|
US11223472B2 (en) | 2022-01-11 |
CN109643324A (zh) | 2019-04-16 |
EP3511845B1 (en) | 2021-05-26 |
JP6770075B2 (ja) | 2020-10-14 |
CN109643324B (zh) | 2023-08-29 |
US20190215158A1 (en) | 2019-07-11 |
EP3511845A1 (en) | 2019-07-17 |
JPWO2018047698A1 (ja) | 2019-06-24 |
EP3511845A4 (en) | 2020-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
He et al. | Certificateless public key authenticated encryption with keyword search for industrial internet of things | |
Stanek et al. | A secure data deduplication scheme for cloud storage | |
WO2018047698A1 (ja) | 暗号化メッセージ検索方法、メッセージ送受信システム、サーバ、端末、プログラム | |
Yang et al. | Achieving efficient and privacy-preserving cross-domain big data deduplication in cloud | |
JP5562687B2 (ja) | 第1のユーザによって第2のユーザに送信される通信の安全化 | |
US10965448B1 (en) | Dynamic distributed storage for scaling blockchain | |
US20090138698A1 (en) | Method of searching encrypted data using inner product operation and terminal and server therefor | |
US11677543B2 (en) | Key exchange method and key exchange system | |
JP5670365B2 (ja) | 暗号文検索システム、検索情報生成装置、検索実行装置、検索要求装置、暗号文検索方法、検索情報生成方法、検索実行方法、検索要求方法、およびプログラム | |
CN110062941B (zh) | 消息发送系统及方法、通信终端、服务器装置、记录介质 | |
CN114417073A (zh) | 一种加密图的邻居节点查询方法及装置、电子设备 | |
Zhang et al. | Secure and efficient searchable public key encryption for resource constrained environment based on pairings under prime order group | |
Wang et al. | Secure and efficient encrypted keyword search for multi-user setting in cloud computing | |
Sharma et al. | Multiuser searchable encryption with token freshness verification | |
JP2019125956A (ja) | 鍵交換方法、鍵交換システム、鍵交換サーバ装置、通信装置、プログラム | |
Yan et al. | Secure and efficient big data deduplication in fog computing | |
JP6840685B2 (ja) | データ共有方法、データ共有システム、通信端末、データ共有サーバ、プログラム | |
KR20100003093A (ko) | 암호문 크기를 줄이기 위한 공개키 기반의 검색가능암호문생성 방법과, 그에 따른 공개키 기반의 데이터 검색 방법 | |
Ge et al. | A Source Hiding Identity‐Based Proxy Reencryption Scheme for Wireless Sensor Network | |
Liu et al. | Lightweight Fine‐Grained Multiowner Search over Encrypted Data in Cloud‐Edge Computing | |
Wang et al. | Privacy preserving protocol for service aggregation in cloud computing | |
Tang et al. | Edge‐Cloud‐Assisted Multiuser Forward Secure Searchable Encryption (EMFSSE) Scheme in the P2P Networking Environment | |
Lee et al. | A study of practical proxy reencryption with a keyword search scheme considering cloud storage structure | |
Lima et al. | A secure collaborative network protocol | |
Bhattasali | SeDReS: Secured Data Retrieval Service |
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: 17848638 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2018538376 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2017848638 Country of ref document: EP |