Control apparatus, control method, monitoring system, and program
The control device accurately detects specific character strings in processing data with low load by decomposing search expressions and using secret sharing and logical operations on distributed bit strings, ensuring confidentiality.
Patent Information
- Application Number
- JP2024066467
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-04-17
- Publication Date
- 2025-10-29
AI Technical Summary
Existing technologies face challenges in accurately and efficiently detecting specific character strings within processing data while maintaining data confidentiality and minimizing computational load.
A control device and method that decomposes a search expression with wildcards into front and back character strings, performs secret sharing on these strings, and uses logical operations on distributed bit strings to determine the presence of the specific character string in encrypted data, ensuring confidentiality and accuracy.
Enables accurate detection of specific character strings in processing data with low computational load while preserving data confidentiality by using secret sharing and logical operations on distributed bit strings.
Smart Images

Figure 2025163330000001_ABST
Abstract
Description
[Technical Field]
[0001] The present disclosure relates to a control device, a control method, a monitoring system, and a program. [Background technology]
[0002] With recent improvements in semiconductor performance, various types of surveillance are being carried out using information processing technology. For example, Patent Document 1 listed below describes a verification device that acquires anonymized media information in which characteristic parts of a visitor captured in an image are concealed from a surveillance device, compares the acquired anonymized media information with registered anonymized media information, and outputs the comparison result to the surveillance device.
[0003] According to Patent Document 1, since the concealed information is transmitted to the verification device, it is possible to determine whether a person in an image is a suspicious person while keeping information that can identify an individual concealed. [Prior art documents] [Patent documents]
[0004] [Patent Document 1] Patent No. 6273185 Summary of the Invention [Problem to be solved by the invention]
[0005] Here, it is required to accurately and with low load detect whether or not a specific character string is included in processing data that includes a character string.
[0006] In view of the above-mentioned problems, the present disclosure aims to provide a control device, a control method, a monitoring system, and a program that can accurately and with low load detect whether processing data contains a specific character string. [Means for solving the problem]
[0007] In order to solve the above-described problems and achieve the object, a control device according to the present disclosure includes a reception unit that receives a search formula for searching whether processing data includes a specific character string that indicates a specific character string; a decomposition unit that, when the specific character string in the search formula includes a wildcard between a character at the beginning of a sentence and a character at the end of a sentence, decomposes the specific character string into a front character string that is closer to the beginning of the sentence than the wildcard and a back character string that is closer to the end of the sentence than the wildcard; and a result acquisition unit that acquires a front bit string that indicates a result of a match search for a character string in the processing data from the beginning of the sentence using the front character string, and a back bit string that indicates a result of a match search for a character string in the processing data from the end of the sentence using the back character string. an additional processing unit that performs a logical sum operation from the front side to determine whether each bit included in the previous bit string contains a matching bit indicating that the character strings match, thereby generating a previous bit correction string, and that performs a logical sum operation from the back side to determine whether each bit included in the next bit string contains a matching bit indicating that the character strings match, thereby generating a next bit correction string; a logical product unit that performs a logical product operation on the previous bit correction string and the next bit correction string; and a determination unit that determines that the specific character string was included in the processed data if the bit string after the logical product operation contains a bit indicating that the character strings match.
[0008] In order to solve the above-mentioned problems and achieve the object, a control method according to the present disclosure includes the steps of: accepting a search expression for searching whether processing data includes a specific character string indicating a specific character string; when the specific character string in the search expression includes a wildcard between a character at the beginning of a sentence and a character at the end of a sentence, decomposing the specific character string into a preceding character string located closer to the beginning of the sentence than the wildcard and a following character string located closer to the end of the sentence than the wildcard; and acquiring a preceding bit string indicating a result of a match search using the preceding character string for a character string in the processing data from the beginning of the sentence, and a following bit string indicating a result of a match search using the following character string for a character string in the processing data from the end of the sentence. the step of performing a logical sum operation from the front side to determine whether or not each bit included in the previous bit string contains a matching bit indicating that the character strings match, thereby generating a previous bit correction string, and performing a logical sum operation from the back side to determine whether or not each bit included in the next bit string contains a matching bit indicating that the character strings match, thereby generating a next bit correction string; the step of performing a logical AND operation on the previous bit correction string and the next bit correction string; and the step of determining that the specific character string was included in the processed data if the bit string after the logical AND operation contains a bit indicating that the character strings match.
[0009] In order to solve the above-mentioned problems and achieve the objectives, the monitoring system of the present disclosure includes a control device and a monitoring device that obtains from the control device a determination result indicating whether the specific string was included in the processed data.
[0010] In order to solve the above-mentioned problems and achieve the object, a program according to the present disclosure includes the steps of: accepting a search expression for searching whether processing data includes a specific character string indicating a specific character string; if the specific character string in the search expression includes a wildcard between a character at the beginning of a sentence and a character at the end of a sentence, decomposing the specific character string into a preceding character string located closer to the beginning of the sentence than the wildcard and a following character string located closer to the end of the sentence than the wildcard; obtaining a preceding bit string indicating a result of a match search using the preceding character string for a character string in the processing data from the beginning of the sentence, and a following bit string indicating a result of a match search using the following character string for a character string in the processing data from the end of the sentence; The computer is caused to perform the following steps: for each bit contained in the preceding bit string, a logical sum operation is performed from the front side to determine whether or not a matching bit indicating that the character strings match is included, thereby generating a preceding bit correction string; for each bit contained in the following bit string, a logical sum operation is performed from the back side to determine whether or not a matching bit indicating that the character strings match is included, thereby generating a following bit correction string; a step of performing a logical product operation between the preceding bit correction string and the following bit correction string; and a step of determining that the specific character string was included in the processed data if the bit string after the logical product operation contains a bit indicating that the character strings match. [Effects of the Invention]
[0011] According to the present disclosure, it is possible to accurately and with low load detect whether or not a specific character string is included in processing data. [Brief explanation of the drawings]
[0012] [Figure 1] FIG. 1 is a diagram illustrating an example of the configuration of a monitoring system according to the present disclosure. [Figure 2] FIG. 2 is a diagram illustrating an example of the configuration of a target system according to the present disclosure. [Figure 3] FIG. 3 is a diagram illustrating an example of the configuration of a monitoring device according to the present disclosure. [Figure 4] FIG. 4 is a diagram illustrating an example of the configuration of a control device according to the present disclosure. [Figure 5] FIG. 5 is a diagram illustrating an example of the configuration of a distributed storage server according to the present disclosure. [Figure 6] FIG. 6 is a flowchart illustrating the process of monitoring the processing data. [Figure 7] FIG. 7 is a flowchart illustrating another example of the processing data monitoring processing. [Figure 8] FIG. 8 is a hardware configuration diagram illustrating an example of a computer that realizes the functions of the control device according to the present disclosure. DETAILED DESCRIPTION OF THE INVENTION
[0013] Hereinafter, embodiments of the present disclosure will be described in detail with reference to the drawings. However, the present disclosure is not limited to the embodiments described below.
[0014] (Monitoring system configuration) First, a monitoring system 1 according to the present disclosure will be described using Fig. 1. Fig. 1 is a diagram showing an example configuration of a monitoring system according to the present disclosure. As shown in Fig. 1, the monitoring system 1 includes a monitoring device 10, a control device 100, a target system 200, a plurality of distributed storage servers 300, and a network N. Below, a brief description of these configurations will be given.
[0015] The monitoring device 10 is a device that monitors the operational status of various information processing systems. In this embodiment, the monitoring device 10 monitors the operational status of a target system 200, which will be described later. The monitoring device 10 is realized by, for example, a PC (Personal Computer) or a WS (Work Station).
[0016] The target system 200 is an information processing system that is to be monitored by the monitoring device 10. The target system 200 may be an information processing system for any purpose, and may be used, for example, for managing facilities such as a plant. For example, the target system 200 may be a remote monitoring system for a thermal power plant, a warehouse management system (WMS) that manages the operation of automatic forklifts, or a traffic management system that manages the operation of automated people movers (APMs).
[0017] The control device 100 is a device that assists the monitoring device 10 in monitoring the target system 200. As will be described in detail later, the control device 100 determines whether a specific character string is included in the processing data of the target system 200, and transmits the determination result to the monitoring device 10. The control device 100 is realized by, for example, a PC or a WS.
[0018] The distributed storage server 300 is a device that stores anonymized data that conceals processing data of the target system 200. The distributed storage server 300 may be implemented by an information processing device that has security measures in place. Specifically, the distributed storage server 300 may be implemented using, for example, secure multi-party computation (MPC) technology. Note that while FIG. 1 illustrates an example of a configuration in which three distributed storage servers 300, 300A, 300B, and 300C, are provided as the distributed storage servers 300, the number of distributed storage servers 300 is not limited to three and may be any multiple number.
[0019] The network N exchanges information between the monitoring device 10 and the control device 100, between the control device 100 and the distributed storage server 300, and between the target system 200 and the distributed storage server 300. The network N may be implemented by wired or wireless means, for example, a wired LAN (Local Area Network) or a wireless LAN. Note that when security is important, the network N may be implemented by a VPN (Virtual Private Network).
[0020] The monitoring system 1 described above functions as a single system by the monitoring device 10, the target system 200, the control device 100, and the multiple distributed storage servers 300 exchanging information with one another.
[0021] (Target system configuration) As described above, the target system 200 is a system to be monitored. The target system 200 stores processing data, which is text data indicating a character string. The processing data may be data represented by a character string that is output from the target system 200. The processing data may be any text data stored in the target system 200, but in this embodiment, for example, the processing data is data indicating a history of information processing executed by the target system 200 (data indicating the operation history of the target system 200). Specific examples of processing data include a log of operation data generated in the target system 200 and a log of packet data used in communication with other devices. The data format of the processing data may be, for example, a binary format.
[0022] 2 is a diagram illustrating a configuration example of a target system according to the present disclosure. As shown in FIG. 2, a target system 200 according to the present disclosure includes a communication unit 210, a storage unit 220, a control unit 230, an input unit 240, and a display unit 250.
[0023] The communication unit 210 is responsible for transmitting and receiving various information to and from external devices via wired or wireless connections. In the wired case, it may be realized by, for example, a network interface card (NIC) equipped with an interface such as a wired LAN terminal. In the wireless case, it may be realized by a wireless LAN defined by IEEE802.11, Bluetooth (registered trademark), Wi-Fi (registered trademark), or the like.
[0024] The storage unit 220 is a storage device that stores various types of information. The storage unit 220 includes a main storage device and an auxiliary storage device. The main storage device may be realized by a semiconductor memory element such as a random access memory (RAM), a read only memory (ROM), or a flash memory. The auxiliary storage device may be realized by a hard disk, a solid state drive (SSD), an optical disk, or the like. The storage unit 220 stores processing data of the target system 200.
[0025] The input unit 240 receives various types of operation information from the user. The input unit 240 may receive, for example, input of a search formula as the various types of operation information. For example, the input unit 240 may receive various types of operation information using various switches, a keyboard, a mouse, etc. Alternatively, the input unit 240 may receive various types of operation information from the user via a display surface of a touch panel.
[0026] The display unit 250 displays various types of information. For example, the display unit 250 may display a GUI (Graphical User Interface) for receiving operations related to various processes from the user, search processing results, etc. The display unit 250 may be realized by a liquid crystal display, an organic EL (Electro Luminescence) display, a micro LED (Light Emitting Diode) display, etc. The display unit 250 may also be realized by a touch panel of various types, such as a capacitive type.
[0027] The control unit 230 is a controller that executes processes and the like to realize various arithmetic processes and functions. The control unit 230 is realized by a CPU (Central Processing Unit), an MPU (Micro Processing Unit), or the like executing various programs stored in the storage unit 220 using RAM as a work area. The control unit 130 may also be realized by an integrated circuit such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field Programmable Gate Array).
[0028] 2, the control unit 230 includes a processing unit 231, a processing data acquisition unit 232, a concealment unit 233, and a concealed data transmission unit 234. The control unit 230 realizes these functions and executes these processes by reading and executing a program (software) from the storage unit 220. Note that at least some of these functions of the control unit 230 may be realized by various electronic circuits. Furthermore, the control unit 230 may execute these processes using one CPU, or may be equipped with multiple CPUs and execute these processes using the multiple CPUs.
[0029] The processing unit 231 executes a predetermined process. Here, the predetermined process may be, for example, a process related to the operation of the plant or a process related to the shutdown of the plant. When the processing unit 231 executes the predetermined process, it outputs processing data indicating the content of the process.
[0030] The processing unit 231 stores the processed data output from the target system 200, i.e., the processed data that has been executed and used in a predetermined information processing, in the storage unit 220. Every time the processing unit 231 executes a predetermined information processing, i.e., every time the processed data is output, the processing unit 231 stores the processed data in the storage unit 220 one by one.
[0031] The processing data acquisition unit 232 reads out processing data stored in the storage unit 220. That is, the processing data acquisition unit 232 reads out from the storage unit 220 the processing data that has been used in the predetermined information processing by the processing unit 231 and has already been executed.
[0032] The concealment unit 233 conceals the processing data. Specifically, the concealment unit 233 conceals the processing data read by the processing data acquisition unit 232 through secret sharing processing, thereby generating multiple pieces of secret data D. The number of pieces of secret data D generated from the processing data by the concealment unit 233 may be any number equal to or greater than two, but is preferably three or more. The number of pieces of secret data D may be the same as the number of distributed storage servers 300, for example. In other words, the secret data D is one piece of data obtained by executing secret sharing processing on the processing data, and is encrypted data so that the processing data cannot be decrypted from one piece of secret data D.
[0033] The secret sharing process is a method of dividing data to be kept secret (here, processing data) into multiple secret data D while encrypting it. For example, a method defined in ISO / IEC19592-2, which is the international standard for secret sharing technology, may be used. For example, additive secret sharing or replica additive secret sharing may be used.
[0034] The secret data transmission unit 234 transmits each piece of secret data D generated by the secret unit 233 to the distributed storage servers 300. The secret data transmission unit 234 transmits separate pieces of secret data D to each distributed storage server 300. That is, for example, as shown in the example of FIG. 1, if three pieces of secret data DA, DB, and DC are generated from one piece of processed data, the secret data transmission unit 234 transmits the secret data DA to the distributed storage server 300A, the secret data DB to the distributed storage server 300B, and the secret data DC to the distributed storage server 300C.
[0035] This allows the processed data to be kept confidential and stored in the distributed storage server 300. Therefore, even if the distributed storage server 300 is accessed from outside, the processed data can be safely stored in a state that makes it impossible to decrypt the data.
[0036] (Configuration of monitoring device) Fig. 3 is a diagram illustrating an example configuration of a monitoring device according to the present disclosure. As shown in Fig. 3, the monitoring device 10 according to the present disclosure includes a communication unit 11, a storage unit 12, a control unit 13, an input unit 14, and a display unit 15. Note that the communication unit 11, the input unit 14, and the display unit 15 of the monitoring device 10 may be the same as the communication unit 210, the input unit 240, and the display unit 250 of the target system 200 according to the present disclosure, and therefore a description thereof will be omitted.
[0037] The means for realizing the memory unit 12 is the same as the memory unit 220 of the target system 200 described above, and therefore a description thereof will be omitted. The memory unit 12 stores the determination result transmitted from the control device 100. The determination result is information indicating whether or not a specific character string (described below) is included in the processed data. The determination result stored in the memory unit 12 does not include information on the number of specific character strings included in the processed data or information on the positions of the specific character strings in the processed data. In other words, the monitoring device 10 does not acquire and store information on the number and positions of the specific character strings included in the processed data, but acquires and stores only information indicating whether or not the specific character string is included in the processed data. This allows the target system 200 to be appropriately monitored while keeping the processed data confidential.
[0038] The means for realizing the control unit 13 is the same as the control unit 230 of the target system 200 described above, and therefore a description thereof will be omitted. As shown in Fig. 3, the control unit 13 includes a receiving unit 13A, a command unit 13B, and an acquiring unit 13C. The processing contents of the control unit 13 will be described later.
[0039] (Control device configuration) Fig. 4 is a diagram showing an example configuration of a control device according to the present disclosure. As shown in Fig. 4, the control device 100 includes a communication unit 110, a storage unit 120, a control unit 130, an input unit 140, and a display unit 150. Note that the communication unit 110, the input unit 140, and the display unit 150 of the control device 100 may be the same as the communication unit 210, the input unit 240, and the display unit 250 of the target system 200, and therefore a description thereof will be omitted.
[0040] The means for realizing the storage unit 120 is the same as that of the storage unit 220 of the target system 200 described above, and therefore a description thereof will be omitted. The storage unit 120 stores a search formula for a specific character string transmitted from the monitoring device 10, etc.
[0041] The means for realizing the control unit 130 is the same as the control unit 230 of the target system 200 described above, and therefore a description thereof will be omitted. As shown in Fig. 4, the control unit 130 includes a reception unit 131, a decomposition unit 132, a result acquisition unit 133, an additional processing unit 134, a logical product unit 135, a determination unit 136, and a search result output unit 137. The processing contents of the control unit 130 will be described later.
[0042] (Configuration of distributed storage servers) 5 is a diagram illustrating an example configuration of a distributed storage server according to the present disclosure. As shown in FIG. 5, the distributed storage server 300 according to the present disclosure includes a communication unit 310, a memory unit 320, a control unit 330, an input unit 340, and a display unit 350. Note that the communication unit 310, input unit 340, and display unit 350 of the distributed storage server 300 according to the present disclosure may be the same as the communication unit 210, input unit 240, and display unit 250 of the target system 200, and therefore description thereof will be omitted. Furthermore, the input unit 340 and display unit 350 of the distributed storage server 300 according to the present disclosure do not necessarily have to be provided.
[0043] The means for realizing the storage unit 320 is the same as that of the storage unit 220 of the target system 200 described above, and therefore a description thereof will be omitted. The storage unit 320 stores confidential data transmitted from the target system 200 and the like.
[0044] The means for realizing the control unit 330 is the same as that of the control unit 230 of the target system 200 described above, and therefore a description thereof will be omitted. As shown in Fig. 5 , the control unit 330 includes a secret data acquisition unit 331, a search formula acquisition unit 332, a search execution unit 333, and a search result output unit 334.
[0045] The secret data acquisition unit 331 acquires the secret data D by receiving it from the target system 200, and stores it in the storage unit 320. Specifically, the secret data acquisition unit 331 acquires one piece of secret data D from the multiple pieces of secret data D generated from the processing data by the target system 200. That is, in this example, the distributed storage server 300A acquires the secret data DA, the distributed storage server 300B acquires the secret data DB, and the distributed storage server 300C acquires the secret data DC.
[0046] 1, each distributed storage server 300 does not acquire secret data D transmitted to another distributed storage server 300. That is, for example, the distributed storage server 300A shown in Fig. 1 does not acquire secret data DB, DC. As a result, even if secret data stored in one distributed storage server 300 is leaked, other secret data will not be leaked, and the original processed data cannot be decrypted from one secret data, thereby preventing leakage of processed data.
[0047] The processing details of the search formula acquisition unit 332, search execution unit 333, and search result output unit 334 will be described later.
[0048] (Monitoring of processed data) The monitoring system 1 monitors the processing data of the target system 200 by detecting whether the processing data contains a specific character string that is a character string to be searched for. The monitoring process of the processing data of the target system 200 by the monitoring system 1 will be described.
[0049] FIG. 6 is a flowchart illustrating the process of monitoring the processing data.
[0050] (Get search expression) As shown in step S301 of FIG. 6, the reception unit 131 of the control device 100 acquires a search formula A for a specific character string that indicates a character string to be searched for. In this embodiment, the reception unit 131 receives (acquires) the search formula A for a specific character string from the monitoring device 10 via the communication unit 110. That is, in this embodiment, the reception unit 13A of the monitoring device 10 accepts the search formula A for a specific character string. For example, the reception unit 13A may accept the search formula A input by the user via the input unit 14. Note that the search formula A is an expression that indicates a specific character string to be searched for. In this embodiment, a character includes a character (such as an alphabet), a symbol, and a numerical value, and a character string refers to a plurality of characters.
[0051] The search expression A for a specific character string may be in any format, but in this embodiment, it is a search expression for a character string expressed in regular expressions. A regular expression is one method of expressing a set of character strings as a single character string. In this embodiment, an example will be described in which the search expression A for a specific character string includes a wildcard between the character (or character string) at the beginning of the sentence and the character (or character string) at the end of the sentence. A wildcard is an expression that indicates that a target character string contains one of the following at a position corresponding to the position where the wildcard is placed in search expression A: an arbitrary character, an arbitrary character string (multiple characters), or no characters. In a regular expression, when it indicates that an arbitrary character must be included (when an arbitrary character is included but two or more characters are not included), a predetermined mark (first predetermined mark), for example, a question mark (?), is used as the wildcard. Furthermore, in regular expressions, when the inclusion of zero or more characters is indicated, that is, when the inclusion of any one character, the inclusion of any string (multiple characters), or the inclusion of no characters is indicated, another predetermined mark (second predetermined mark), such as an asterisk (*), is used as a wildcard. For example, when searching for a specific string that includes the strings "tu" and "bin" in that order and that includes a wildcard between these strings, "tu?bin" or "tu*bin" is used as search expression A. Figure 6 shows an example in which search expression A "tu*bin" is obtained.
[0052] The command unit 13B of the monitoring device 10 transmits the search formula A for the specific character string received by the receiving unit 13A to the control device 100 via the communication unit 11.
[0053] As described above, the reception unit 131 of the control device 100 receives (acquires) search formula A for a specific character string from the monitoring device 10 via the communication unit 110. However, the reception unit 131 is not limited to acquiring search formula A for a specific character string from the monitoring device 10, and may acquire search formula A for a specific character string in any manner. For example, the reception unit 131 may accept search formula A input by the user via the input unit 140.
[0054] (Search expression division) As shown in step S302 of FIG. 6, the decomposition unit 132 of the control device 100 generates a leading string and a trailing string based on search formula A of a specific string. The leading string is a string of the specific string closer to the beginning of the sentence than the wildcard, and the trailing string is a string of the specific string closer to the end of the sentence than the wildcard. That is, the decomposition unit 132 determines whether search formula A of the specific string contains a wildcard between the character (or character string) at the beginning of the sentence and the character (or character string) at the end of the sentence, and if so, decomposes the specific string into a leading string that is closer to the beginning of the sentence than the wildcard and a trailing string that is closer to the end of the sentence than the wildcard. For example, if search formula A is "tu*bin", the leading string is "tu" and the trailing string is "bin".
[0055] (Confidentiality) As shown in step S303 of Fig. 6, the result obtaining unit 133 of the control device 100 conceals the front character string and the back character string. Specifically, the result obtaining unit 133 conceals the front character string through secret sharing processing to generate a plurality of front concealed character strings. Furthermore, the result obtaining unit 133 conceals the back character string through secret sharing processing to generate a plurality of back concealed character strings. That is, the front concealed character string and the back concealed character string are one of the data obtained by executing the secret sharing processing on the front character string and the back character string, and are encrypted data such that the front concealed character string and the back concealed character string cannot be decrypted from one front concealed character string and one back concealed character string. The number of front concealed character strings and the number of back concealed character strings are the same as the number of concealed data D.
[0056] The result acquisition unit 133 transmits each of the front secret character strings and the rear secret character strings to the distributed storage server 300. The result acquisition unit 133 transmits separate secret data D to each of the distributed storage servers 300. In this example, as shown in FIG. 1, the result acquisition unit 133 transmits one front secret character string B0A and one rear secret character string C0A to the distributed storage server 300A, one front secret character string B0B and one rear secret character string C0B to the distributed storage server 300B, and one front secret character string B0C and one rear secret character string C0C to the distributed storage server 300C.
[0057] The search formula acquisition unit 332 of the distributed storage server 300 acquires the front secret character string and the rear secret character string from the control device 100. After acquiring the front secret character string and the rear secret character string, the search formula acquisition unit 332 reads out the secret data D to be searched from the storage unit 320.
[0058] The search execution unit 333 of the distributed storage server 300 compares the secret data D acquired by the search formula acquisition unit 332 with the front secret character string and generates a front secret bit string indicating the comparison result. Also, the search execution unit 333 of the distributed storage server 300 compares the secret data D acquired by the search formula acquisition unit 332 with the rear secret character string and generates a rear secret bit string indicating the comparison result.
[0059] Specifically, the search execution unit 333 uses the front secret character string to perform a match search on the character strings in the secret data D in order from the front, and generates the result of the match search as a front secret bit string. That is, the search execution unit 333 extracts, from the secret data D, a character string that starts with the first character of the secret data D as a target character string, and performs a match search between the target character string and the front secret character string. If the target character string matches the front secret character string, the search execution unit 333 sets the first bit of the front secret bit string to a match bit (1 in this example) indicating that the character strings match, and if they do not match, sets it to a mismatch bit (0 in this example) indicating that the character strings do not match. Thereafter, the search execution unit 333 extracts, from the secret data D, a character string that starts with the character next to the character that started the target character string used in the previous match search, and performs a match search between the target character string and the front secret character string. If the target character string matches the front secret character string, the search execution unit 333 sets the bit next to the bit in the front secret bit string that was previously set to a match bit (1 in this example) indicating that the character strings match, and if they do not match, sets it to a mismatch bit (0 in this example) indicating that the character strings do not match. The search execution unit 333 repeats this process until all characters in the secret data D are at the beginning of a sentence, thereby generating the front secret bit string. Note that the match search here is a prefix match search. For example, if the secret data D is "ABCDEF" and the front secret character string is "AB", the front secret bit string will be "100000".
[0060] Furthermore, the search execution unit 333 uses the rear secret character string to search for a match between the character strings in the secret data D, tracing back from the rear, and generates the result of the match search as a rear secret bit string. That is, the search execution unit 333 extracts, from the secret data D, a character string that starts with the last character of the secret data D as a target character string, and performs a match search between the target character string and the rear secret character string. If the target character string matches the rear secret character string, the search execution unit 333 sets the last bit of the rear secret bit string to a match bit (1 in this example) indicating that the character strings match, and if they do not match, sets it to a mismatch bit (0 in this example) indicating that the character strings do not match. Thereafter, the search execution unit 333 extracts, from the secret data D, a character string that starts with a character immediately before the character that was the end of the target character string used in the previous match search, and performs a match search between the target character string and the rear secret character string. If the target character string matches the rear secret character string, the search execution unit 333 sets the bit immediately preceding the bit in the front secret bit string whose immediately preceding bit was set to a match bit (1 in this example) indicating that the character strings match, and if they do not match, sets it to a mismatch bit (0 in this example) indicating that the character strings do not match. The search execution unit 333 repeats this process until all characters in the secret data D are at the beginning of a sentence, thereby generating the rear secret bit string. Note that the match search here is a prefix match search. For example, if the secret data D is "ABCDEF" and the front secret character string is "DEF", the front secret bit string will be "000100".
[0061] The search result output unit 334 of the distributed storage server 300 transmits the front concealed bit string and the rear concealed bit string to the control device 100. Note that the front concealed bit string and the rear concealed bit string are data indicating the result of matching the concealed front concealed character string and the rear concealed character string with the concealed concealed data D, and therefore it is not possible to decode the content of the processed data or the result as to whether the processed data contains a specific character string from one front concealed character string or one rear concealed character string.
[0062] The above-described processing is performed for each distributed storage server 300. That is, in this example, the distributed storage server 300A compares the secret data DA with the front secret character string B0A, generates a front secret bit string BA indicating the comparison result, compares the secret data DA with the rear secret character string C0A, generates a rear secret bit string CA indicating the comparison result, and transmits the front secret bit string BA and the rear secret bit string CA to the control device 100. Similarly, the distributed storage server 300B generates a front secret bit string BB indicating the comparison result between the secret data DB and the front secret character string B0B, generates a rear secret bit string CB indicating the comparison result between the secret data DB and the rear secret character string C0B, and transmits the front secret bit string BB and the rear secret bit string CB to the control device 100. Similarly, the distributed storage server 300C generates a front secret bit string BB indicating the result of matching the secret data DC with the front secret string B0C, generates a back secret bit string CC indicating the result of matching the secret data DC with the back secret string C0C, and transmits the front secret bit string BC and the back secret bit string CC to the control device 100.
[0063] (Getting the previous and following bit strings) As shown in step S304 of FIG. 6, the result acquisition unit 133 of the control device 100 acquires the front secret bit string from each distributed storage server 300. The result acquisition unit 133 performs decryption using the front secret bit string acquired from each distributed storage server 300, and acquires the front bit string B, which is the decrypted front secret bit string. That is, the result acquisition unit 133 calculates the front bit string B by decrypting using each secretly shared front secret bit string. Since the front bit string B is data obtained by decrypting the front secret bit string, it becomes data indicating the result of a match search when a string match search is performed using the front character string in order from the front of the character string of the processing data. For example, if the processing data is "turbin" and the front character string is "tu", the front bit string B will be "100000".
[0064] As shown in step S305 of FIG. 6, the result acquisition unit 133 of the control device 100 acquires the rear concealed bit string from each distributed storage server 300. The result acquisition unit 133 performs decryption using the rear concealed bit string acquired from each distributed storage server 300 to acquire the rear bit string C, which is the decrypted rear concealed bit string. That is, the result acquisition unit 133 calculates the rear bit string C by decrypting using each secretly shared rear concealed bit string. Since the rear bit string C is data obtained by decrypting the rear concealed bit string, it becomes data indicating the result of a match search when a match search is performed on strings in the processing data using the rear character string, starting from the character string in the processing data. For example, if the processing data is "turbin" and the rear character string is "bin", the rear bit string C will be "000100".
[0065] (additional processing) The additional processing unit 134 of the control device 100 performs additional processing on at least one of the preceding bit string B and the succeeding bit string C to convert the bit values of the bit strings.
[0066] (Generating the previous bit correction sequence) Specifically, as shown in step S306 of FIG. 6 , the addition processing unit 134 performs a process of converting the previous bit string B into a bit string by performing a logical OR on it from the front to determine whether it contains a matching bit (1 in this example), thereby generating a previous bit-correction string Ba. That is, the addition processing unit 134 sets the first bit of the previous bit string B as the first bit of the previous bit-correction string Ba. Then, the addition processing unit 134 performs a logical OR on the first bit of the previous bit-correction string Ba and the second bit of the previous bit string B with respect to the matching bit, and sets the solution of the logical OR as the second bit of the previous bit-correction string Ba. The addition processing unit 134 repeats this process for all bits to generate the previous bit-correction string Ba. That is, the addition processing unit 134 performs a logical OR on the bit of the previous bit-correction string Ba obtained by the previous logical OR and the next bit of the previous bit string B with respect to the matching bit, and sets the solution of the logical OR as the next bit of the previous bit-correction string Ba, repeating this process from the front to generate the previous bit-correction string Ba. Note that the logical sum here refers to the process of setting a matching bit if either bit is a matching bit (1 in this example). For example, if the previous bit string B is "100000", the previous bit correction string Ba will be "111111".
[0067] (Generating post-bit correction string) 6, the additional processing unit 134 converts the later bit sequence C into a bit sequence that is obtained by performing a logical OR on the later bit sequence C in order from the beginning to the end to determine whether a matching bit (1 in this example) is included, thereby generating a later bit correction sequence Ca. That is, the additional processing unit 134 sets the last bit of the later bit sequence C as the last bit of the later bit correction sequence Ca. Then, the additional processing unit 134 performs a logical OR on the last bit of the later bit correction sequence Ca and the penultimate bit of the later bit sequence C with respect to the matching bit, and sets the solution of the logical OR as the penultimate bit of the later bit correction sequence Ca. The additional processing unit 134 repeats this process for all bits to generate the later bit correction sequence Ca. That is, the additional processing unit 134 performs a logical OR on the bit of the later bit correction sequence Ca obtained by the immediately preceding logical OR with the immediately preceding bit of the later bit sequence C with respect to the matching bit, and sets the solution of the logical OR as the immediately preceding bit of the later bit correction sequence Ca, repeating this process backwards to generate the later bit correction sequence Ca. For example, if the subsequent bit string C is "000100", the subsequent bit correction string Ca will be "111100".
[0068] (Generation of integrated bitstream) As shown in step S308 of FIG. 6, the logical product unit 135 of the control device 100 performs a process of taking a logical product of the preceding bit-correction sequence Ba and the following bit-correction sequence Ca to generate a combined bit sequence E. That is, the logical product unit 135 takes a logical product of the matching bits of the preceding bit-correction sequence Ba and the matching bits of the following bit-correction sequence Ca at the same positions, and sets the result of the logical product to the bit at that position in the combined bit sequence E. The logical product unit 135 performs a similar process for each bit to set the bit at each position in the combined bit sequence E to generate the combined bit sequence E. Note that the logical product here is a process in which if both bits are matching bits (1 in this example), the bit is set to a matching bit, and if one bit is a matching bit or if neither bit is a matching bit, the bit is set to a non-matching bit. For example, if the preceding bit-correction sequence Ba is "111111" and the following bit-correction sequence Ca is "111100," the combined bit sequence E will be "111100."
[0069] (judgement) The determination unit 136 of the control device 100 determines whether the specific character string is included in the processed data based on the combined bit string E (the bit string after the logical product process). Specifically, as shown in step S309 of FIG. 6, if the combined bit string E contains a matching bit (1 in this example), the determination unit 136 determines that the specific character string is included in the processed data (detected). On the other hand, if the combined bit string E does not contain a matching bit (all bits are 0 in this example), the determination unit 136 determines that the specific character string is not included in the processed data (not detected). That is, for example, if the combined bit string E is "111100," the determination unit 136 determines that the specific character string is included in the processed data.
[0070] In this way, the determination unit 136 determines whether the processing data contains a specific character string, but does not determine the number or positions of the specific character strings contained in the processing data. This makes it possible to monitor the target system 200 while keeping the processing data confidential. It is also preferable that the control device 100 does not acquire the processing data.
[0071] (Output of judgment result) The search result output unit 137 of the control device 100 outputs the determination result of the determination unit 136. The search result output unit 137 outputs the determination result indicating whether or not the specific character string is included in the processed data, without outputting information on the number and positions of the specific character strings included in the processed data. In this embodiment, the search result output unit 137 outputs the determination result of the determination unit 136 to the monitoring device 10. However, this is not limiting, and for example, the search result output unit 137 may output the determination result of the determination unit 136 to another device or to its own display unit 150.
[0072] The acquisition unit 13C of the monitoring device 10 acquires, from the control device 100 via the communication unit 11, a determination result as to whether or not the processing data contains a specific character string. The acquisition unit 13C stores the acquired determination result in the memory unit 12. The acquisition unit 13C may also display the acquired determination result on the display unit 15. Note that the acquisition unit 13C does not acquire information on the number and positions of specific character strings included in the processing data. It is also preferable that the acquisition unit 13C does not acquire the processing data. This allows the target system 200 to be appropriately monitored while keeping the processing data confidential.
[0073] (effect) Here, when performing a match search using a string containing a wildcard, a brute-force search using a regression process is usually required, which increases the computational load exponentially with the number of characters, resulting in longer processing time. In contrast, with the control device 100 described above, even if a search expression contains a wildcard, a match search for a string containing a wildcard can be performed simply by performing a match search using the preceding string and a match search using the following string, thereby preventing an increase in computational load and a longer processing time. Furthermore, since this embodiment only detects whether the target processing data contains a string, there is no need to detect the position or number of strings in the processing data, thereby more appropriately preventing an increase in computational load. Furthermore, since this embodiment performs a search on confidential (secretly shared) processing data, detecting only whether the target processing data contains a string enables appropriate monitoring of the processing data while maintaining its confidentiality. Furthermore, techniques such as pattern matching that shorten processing time require conditional branching and therefore have the disadvantage of being inapplicable to secure computation. However, the control device 100 according to the present disclosure allows appropriate searches to be performed without using conditional branching, while maintaining confidentiality.
[0074] (Other examples) In the above description, when a wildcard is included between the beginning and end of a specific character string, the control device 100 performs a logical OR operation on the preceding bit string B from the front to generate a preceding bit-correction string, and performs a logical OR operation on the following bit-correction string Ca from the back to generate a following bit-correction string, thereby generating the combined bit string E. However, the method of generating the combined bit string E is not limited to this. Other examples will be described below.
[0075] 7 is a flowchart illustrating another example of the processing data monitoring process. This example can be applied when the wildcard in the specific character string is a question mark indicating that any single character is always included. The processing before step S204 in FIG. 7 is the same as the processing before step S304 in FIG. 6 described in the above embodiment, and therefore will not be described again.
[0076] (Getting the previous and following bit strings) 7, the result acquisition unit 133 of the control device 100 acquires the front concealment bit string from each distributed storage server 300. The result acquisition unit 133 performs decryption using the front concealment bit string acquired from each distributed storage server 300, and acquires the front bit string B, which is the decrypted front concealment bit string.
[0077] 7, the result acquisition unit 133 of the control device 100 acquires the rear concealment bit strings from each distributed storage server 300. The result acquisition unit 133 performs decryption using the rear concealment bit strings acquired from each distributed storage server 300, and acquires the rear bit string C, which is the decrypted rear concealment bit string.
[0078] (Generating post-bit correction string) As shown in step S206 of FIG. 7, the addition processing unit 134 moves (bit-shifts) the matching bit (1 in this example) in the following bit string C forward by the sum of the number of characters included in the preceding character string and the number of wildcards (question marks) included in the specific character string, thereby generating the following bit-correction string Ca. More specifically, the addition processing unit 134 preferably moves each bit after the first matching bit in the following bit string C forward by the above-mentioned total number, thereby generating the following bit-correction string Ca. Note that the bit in the following bit-correction string Ca at the position from which the bit was moved is set to a non-matching bit (0 in this example). For example, if the following bit string C is "000100" and the specific character string is "tu?bin," the total number is three, so the following bit-correction string Ca is "100000."
[0079] In this example, the previous bit string B is used to generate the combined bit string E, without generating a previous bit correction string based on the previous bit string B.
[0080] (Generation of integrated bitstream) 7, the logical product unit 135 of the control device 100 performs a process of taking a logical product of the previous bit string B and the subsequent bit-correction string Ca to generate a combined bit string E. That is, the logical product unit 135 takes a logical product of the matching bits of the previous bit string B and the bit at the same position in the subsequent bit-correction string Ca, and sets the result of the logical product to the bit at that position in the combined bit string E. The logical product unit 135 performs a similar process for each bit to set the bit at each position in the combined bit string E to generate the combined bit string E. For example, if the previous bit string B is "1000000" and the subsequent bit-correction string Ca is "100000", the combined bit string E will be "100000".
[0081] (judgement) The determination unit 136 of the control device 100 determines whether the specific character string is included in the processed data based on the combined bit string E (the bit string after the logical product process). Specifically, as shown in step S208 of FIG. 7, if the combined bit string E contains a matching bit (1 in this example), the determination unit 136 determines that the specific character string is included in the processed data (detected). On the other hand, as shown in step S209 of FIG. 7, if the combined bit string E does not contain a matching bit (all bits are 0 in this example), the determination unit 136 determines that the specific character string is not included in the processed data (not detected). That is, for example, if the combined bit string E is "100000," the determination unit 136 determines that the specific character string is included in the processed data.
[0082] According to this example, since the processing can be performed without performing a logical sum operation, the calculation load can be more suitably reduced.
[0083] (Example that does not include confidential processing data) In the above description, the control device 100 detects whether the specific character string is included in the anonymized processing data, but the target processing data is not limited to anonymized data. In this case, the control device 100 performs a match search using the preceding character string and the following character string on the processing data itself to detect whether the specific character string is included.
[0084] In this example, the control device 100 acquires processing data. Then, the control device 100 uses the preceding character string to perform a match search on character strings in the processing data, starting from the front of the character string, using the result acquisition unit 133, and generates the result of the match search as a preceding bit string. The match search method here is the same as the match search on the secret data D using the preceding secret character string in the above-mentioned embodiment. Furthermore, the control device 100 uses the following character string to perform a match search on character strings in the processing data, starting from the rear of the character string, using the result acquisition unit 133, and generates the result of the match search as a following bit string. The match search method here is the same as the match search on the secret data D using the following secret character string in the above-mentioned embodiment. That is, in this example, step S303 in FIG. 6 (or step S203 in FIG. 7) is not executed, and a match search is performed using the processing data in steps S304 and S305 in FIG. 6 (or steps S204 and S205 in FIG. 7), and the preceding character string and the following character string are acquired. The subsequent processing is the same as that in the above-mentioned embodiment, and therefore a description thereof will be omitted.
[0085] Furthermore, the processing data is data output from the target system 200, but is not limited to this and may be any text data.
[0086] (Hardware configuration) The control device 100 according to the above-described embodiment is realized by, for example, a computer 1000 configured as shown in Fig. 8. Fig. 8 is a hardware configuration diagram showing an example of a computer that realizes the functions of the control device according to the present disclosure. The computer 1000 is connected to an output device 1010 and an input device 1020, and has a configuration in which a calculation device 1030, a primary storage device 1040, a secondary storage device 1050, an output IF (Interface) 1060, an input IF 1070, and a network IF 1080 are connected via a bus 1090.
[0087] The arithmetic device 1030 operates based on programs stored in the primary storage device 1040 and secondary storage device 1050, programs read from the input device 1020, and the like, and executes various processes. The primary storage device 1040 is a memory device, such as a RAM, that temporarily stores data used by the arithmetic device 1030 for various calculations. The secondary storage device 1050 is a storage device that stores data used by the arithmetic device 1030 for various calculations and various databases, and is realized by a ROM, HDD, flash memory, or the like.
[0088] The output IF 1060 is an interface for transmitting information to be output to an output device 1010 that outputs various types of information, such as a monitor or a printer, and is realized by a connector conforming to a standard such as USB (Universal Serial Bus), DVI (Digital Visual Interface), or HDMI (High Definition Multimedia Interface), etc. The input IF 1070 is an interface for receiving information from various input devices 1020, such as a mouse, keyboard, scanner, etc., and is realized by a USB, etc.
[0089] The input device 1020 may be a device that reads information from, for example, an optical recording medium such as a CD (Compact Disc), a DVD (Digital Versatile Disc), or a PD (Phase Change Rewritable Disk), a magneto-optical recording medium such as an MO (Magneto-Optical disk), a tape medium, a magnetic recording medium, or a semiconductor memory. The input device 1020 may also be an external storage medium such as a USB memory.
[0090] The network IF 1080 receives data from other devices via the network N and sends it to the arithmetic device 1030, and also transmits data generated by the arithmetic device 1030 to other devices via the network N.
[0091] The arithmetic unit 1030 controls the output device 1010 and the input device 1020 via the output IF 1060 and the input IF 1070. For example, the arithmetic unit 1030 loads a program from the input device 1020 or the secondary storage device 1050 onto the primary storage device 1040 and executes the loaded program.
[0092] For example, when the computer 1000 functions as the control device 100, the arithmetic unit 1030 of the computer 1000 realizes the functions of the control unit 130 of the control device 100 by executing a program loaded onto the primary storage device 1040.
[0093] (Composition and Effects) The control device 100 according to the first aspect includes a receiving unit 131 that receives a search formula for searching whether or not processing data contains a specific character string that indicates a specific character string; a decomposing unit 132 that, when the specific character string in the search formula contains a wildcard between a character at the beginning of a sentence and a character at the end of a sentence, decomposes the specific character string into a preceding character string that is closer to the beginning of the sentence than the wildcard and a following character string that is closer to the end of the sentence than the wildcard; a result obtaining unit 133 that obtains a preceding bit string that indicates the result of a match search of a character string in processing data from the beginning of the sentence using the preceding character string and a following bit string that indicates the result of a match search of a character string in processing data from the end of the sentence using the following character string; and The data processing unit 130 includes an additional processing unit 134 that performs a logical sum operation from the front side to determine whether or not each bit included in the post-bit string contains a matching bit indicating that the character strings match, thereby generating a pre-bit correction string, and that performs a logical sum operation from the rear side to determine whether or not each bit included in the post-bit string contains a matching bit indicating that the character strings match, thereby generating a post-bit correction string; a logical product unit 135 that performs a logical product operation on the pre-bit correction string and the post-bit correction string; and a determination unit 136 that determines that the processed data contains a specific character string when the bit string after the logical product operation contains a bit indicating that the character strings match.
[0094] With this configuration, if a wildcard is included in the search expression, the search is divided into the part before the wildcard and the part after the wildcard, and a search is performed for each part, thereby shortening the search time and appropriately searching for the character string. Therefore, it is possible to provide a control device 100 that can accurately and with low load detect whether a specific character string is included in processing data.
[0095] The control device 100 according to the second aspect is the control device 100 according to the first aspect, and when the wildcard is a predetermined mark indicating that any one character is always included, the additional processing unit 134 bit-shifts the matching bits included in the subsequent bit string forward by the sum of the number of characters included in the preceding string and the number of wildcards included in the specific string to generate a subsequent bit correction string, and the logical product unit performs a logical product process between the preceding bit string and the subsequent bit correction string.
[0096] This configuration allows appropriate correction to be made to the subsequent bit string. Therefore, it is possible to appropriately determine whether the processing data contains a specific character string. It is possible to provide a control device 100 that can accurately and with low load determine whether the processing data contains a specific character string.
[0097] The control device 100 according to the third aspect is the control device 100 according to the first or second aspect, and further has a search result output unit 137 that outputs a determination result indicating whether a specific character string was included in the processed data, without outputting information about the position and number of specific character strings included in the processed data.
[0098] According to this configuration, it is possible to output a determination result indicating whether the specific character string is included in the processed data without outputting information on the position and number of the specific character string included in the processed data. Therefore, it is possible to appropriately determine whether the specific character string is included in the processed data. Therefore, it is possible to provide a control device 100 that can accurately and with low load detect whether the specific character string is included in the processed data.
[0099] The control device 100 according to the fourth aspect is the control device 100 according to any one of the first to third aspects, and the processed data is anonymized and stored in a plurality of distributed storage servers as anonymized data distributed across a plurality of servers.
[0100] According to this configuration, the processing data is anonymized and stored in multiple distributed storage servers as multiple distributed anonymized data, thereby ensuring security. Therefore, it is possible to provide a control device 100 that can accurately and with low load detect whether processing data contains a specific character string.
[0101] The control device 100 according to the fifth aspect is the control device 100 according to any one of the first to fourth aspects, in which the result acquisition unit 133 transmits the anonymized front string and back string to the distributed storage server 300 where the secret data is stored in a distributed manner, acquires from the distributed storage server 300 a front secret bit string that is a front bit string for the anonymized data and a back secret bit string that is a back bit string for the anonymized data, decrypts the front secret bit string to acquire the front bit string, and decrypts the back secret bit string to acquire the back bit string.
[0102] According to this configuration, the anonymized leading and trailing character strings can be transmitted to the distributed storage server 300, and a search for the specific character string can be performed after the anonymization process has been completed. Therefore, it is possible to provide a control device 100 that can accurately and with low load detect whether or not the specific character string is included in the processing data.
[0103] The monitoring system 1 according to the first aspect includes a monitoring device 10 that acquires, from a control device 100, a determination result indicating whether a specific character string is included in the processed data.
[0104] According to this configuration, the monitoring device 10 can obtain a determination result indicating whether the specific character string is included in the processed data. Therefore, it is possible to provide a monitoring device 10 that can accurately and with low load detect whether the specific character string is included in the processed data.
[0105] a step of receiving a search expression for searching whether processing data includes a specific character string indicating a particular character string; a step of, when the specific character string in the search expression includes a wildcard between a character at the beginning and a character at the end of the sentence, decomposing the specific character string into a front character string that is closer to the beginning of the sentence than the wildcard and a back character string that is closer to the end of the sentence than the wildcard; a step of obtaining a front bit string that indicates the result of a match search of a character string in the processing data from the beginning side using the front character string and a back bit string that indicates the result of a match search of a character string in the processing data from the end side using the back character string; a step of performing a logical sum operation from the front side for each bit included in the front bit string to determine whether a match bit indicating a match between the character strings is included, thereby generating a front bit-corrected string, and a step of performing a logical sum operation from the rear side for each bit included in the back bit string to determine whether a match bit indicating a match between the character strings is included, thereby generating a back bit-corrected string; a step of performing a logical product operation on the front bit-corrected string and the back bit-corrected string; and a step of determining that the specific character string was included in the processing data if a bit indicating a match between the character strings is included in the bit string after the logical product operation.
[0106] With this configuration, if a wildcard is included in the search expression, the search is divided into the part before the wildcard and the part after the wildcard, and a search is performed for each part, thereby shortening the search time and appropriately searching for the character string. Therefore, a control method can be provided that can accurately and with low load detect whether a specific character string is included in processing data.
[0107] a step of receiving a search expression for searching whether processing data includes a specific character string that indicates a particular character string; a step of, when the specific character string in the search expression includes a wildcard between a character at the beginning and a character at the end of the sentence, decomposing the specific character string into a front character string that is closer to the beginning of the sentence than the wildcard and a back character string that is closer to the end of the sentence than the wildcard; a step of obtaining a front bit string that indicates the result of a match search of a character string in the processing data from the beginning side using the front character string and a back bit string that indicates the result of a match search of a character string in the processing data from the end side using the back character string; a step of performing a logical sum operation from the front side for each bit included in the front bit string to determine whether a match bit indicating a match between the character strings is included, thereby generating a front bit-corrected string, and a step of performing a logical sum operation from the rear side for each bit included in the back bit string to determine whether a match bit indicating a match between the character strings is included, thereby generating a back bit-corrected string; a step of performing a logical product operation on the front bit-corrected string and the back bit-corrected string; and a step of determining that the specific character string was included in the processing data if a bit indicating a match between the character strings is included in the bit string after the logical product operation.
[0108] With this configuration, if a wildcard is included in the search expression, the search is divided into the part before the wildcard and the part after the wildcard, and a search is performed for each separately, thereby shortening the search time and appropriately searching for the character string. Therefore, it is possible to provide a program that can accurately and with low load detect whether a specific character string is included in processing data.
[0109] Although the embodiments of the present invention have been described above, the embodiments are not limited to the contents of these embodiments. Furthermore, the above-described components include those that can be easily imagined by a person skilled in the art, those that are substantially the same, and those that are within the scope of what is called equivalents. Furthermore, the above-described components can be combined as appropriate. Furthermore, various omissions, substitutions, or modifications of the components can be made without departing from the spirit of the above-described embodiments. [Explanation of symbols]
[0110] 1. Surveillance System 10 Monitoring equipment 11 Communications Department 12 Storage section 13 Control Unit 13A Reception 13B Command Department 13C Acquisition Department 14 Input section 15 Display section 100 control device 110 Communications Department 120 Storage section 130 Control Unit 131 Reception 132 Disassembly section 133 Result acquisition part 134 Additional processing section 135 Logical Product 136 Judgment section 137 Search result output section 140 Input section 150 Display section 200 target systems 210 Communications Department 220 Storage section 230 Control Unit 231 Processing section 232 Processing data acquisition unit 233 Secret Department 234 Confidential Data Transmission Unit 240 Input section 250 Display section 300 Distributed Storage Server 310 Communications Department 320 Storage section 330 Control Unit 331 Confidential Data Acquisition Department 332 Search Expression Acquisition Unit 333 Search Execution Unit 334 Search result output section 340 Input section 350 Display section N Network
Claims
1. a reception unit that receives a search expression for searching whether a specific character string indicating a specific character string is included in the processing data; a decomposition unit that, when the specific character string in the search expression includes a wildcard between a character at the beginning of a sentence and a character at the end of a sentence, decomposes the specific character string into a pre-character string located closer to the beginning of the sentence than the wildcard and a post-character string located closer to the end of the sentence than the wildcard; a result acquisition unit that acquires a leading bit string indicating a result of a match search of the character string of the processing data from the beginning of the sentence using the leading character string, and a trailing bit string indicating a result of a match search of the character string of the processing data from the end of the sentence using the trailing character string; an additional processing unit that performs a logical sum operation from the front side to determine whether each bit included in the preceding bit string contains a matching bit indicating that the character strings match, thereby generating a preceding bit correction string, and that performs a logical sum operation from the rear side to determine whether each bit included in the following bit string contains a matching bit indicating that the character strings match, thereby generating a following bit correction string; a logical product unit that performs a logical product operation on the pre-bit correction sequence and the post-bit correction sequence; a determination unit that determines that the specific character string is included in the processed data when a bit indicating a match between character strings is included in the bit string after the logical product process, Control device.
2. when the wildcard is a predetermined mark indicating that any one character is necessarily included, the additional processing unit bit-shifts the matching bits included in the following bit string forward by the sum of the number of characters included in the preceding character string and the number of the wildcards included in the specific character string, thereby generating the following bit-corrected string; the logical product unit performs a logical product process on the preceding bit string and the succeeding bit correction string; The control device according to claim 1 .
3. a search result output unit that outputs a determination result indicating whether the specific character string is included in the processed data without outputting information about the position and number of the specific character string included in the processed data, The control device according to claim 1 or 2.
4. The processed data is anonymized and stored in a plurality of distributed storage servers as anonymized data that has been distributed to a plurality of servers. The control device according to claim 1 or 2.
5. The result acquisition unit transmitting the anonymized pre-character string and post-character string to a distributed storage server in which the anonymized data is distributed and stored; acquiring a front concealed bit string, which is the front bit string for the concealed data, and a rear concealed bit string, which is the rear bit string for the concealed data, from the distributed storage server; decrypting the front concealment bit string to obtain the front bit string, and decrypting the rear concealment bit string to obtain the rear bit string; The control device according to claim 4.
6. The control device according to claim 1 or 2; a monitoring device that acquires from the control device a determination result indicating whether the specific character string is included in the processing data; Including, Surveillance system.
7. A step of receiving a search expression for searching whether or not a specific character string indicating a specific character string is included in the processing data; When the specific character string in the search expression includes a wildcard between a character at the beginning and a character at the end of the sentence, decomposing the specific character string into a character string before the wildcard that is closer to the beginning of the sentence and a character string after the wildcard that is closer to the end of the sentence; obtaining a leading bit string indicating a result of a match search performed on the character string of the processing data from the beginning of the sentence using the leading character string, and a trailing bit string indicating a result of a match search performed on the character string of the processing data from the end of the sentence using the trailing character string; a step of performing a logical sum operation from the front side for each bit included in the preceding bit string to determine whether a matching bit indicating that the character strings match is included, thereby generating a preceding bit correction string, and performing a logical sum operation from the rear side for each bit included in the following bit string to determine whether a matching bit indicating that the character strings match is included, thereby generating a following bit correction string; performing a logical product operation on the pre-bit correction sequence and the post-bit correction sequence; determining that the specific character string is included in the processed data when the bit string after the logical product process includes a bit indicating that the character strings match, Control method.
8. A step of receiving a search expression for searching whether or not a specific character string indicating a specific character string is included in the processing data; When the specific character string in the search expression includes a wildcard between a character at the beginning and a character at the end of the sentence, decomposing the specific character string into a character string before the wildcard that is closer to the beginning of the sentence and a character string after the wildcard that is closer to the end of the sentence; obtaining a leading bit string indicating a result of a match search performed on the character string of the processing data from the beginning of the sentence using the leading character string, and a trailing bit string indicating a result of a match search performed on the character string of the processing data from the end of the sentence using the trailing character string; a step of performing a logical sum operation from the front side for each bit included in the preceding bit string to determine whether a matching bit indicating that the character strings match is included, thereby generating a preceding bit correction string, and performing a logical sum operation from the rear side for each bit included in the following bit string to determine whether a matching bit indicating that the character strings match is included, thereby generating a following bit correction string; performing a logical product operation on the pre-bit correction sequence and the post-bit correction sequence; determining that the specific character string is included in the processed data when the bit string after the logical product process contains a bit indicating that the character strings match; program.
Citation Information
Patent Citations
Spin detector
JP1987073185A