Information processing device and program
By directly mapping the encrypted value to plaintext value using tables in the information processing device, the problems of complex decryption operations and high processing load in the prior art are solved, and a more efficient decryption process is achieved.
Patent Information
- Application Number
- JP2023158495
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-09-22
- Publication Date
- 2025-04-04
AI Technical Summary
In the prior art, the decryption operation is complicated, resulting in an increase in processing load, and the data length of the decryption key is longer, affecting efficiency.
By introducing a processing execution unit into the information processing device, the unit references a table during the decryption process, which displays the correspondence between the encrypted value and the plaintext value, thereby directly obtaining the decrypted plaintext value.
Reduce the processing load of the decryption encryption value and reduce the data length of the decryption key, thereby improving efficiency.
Smart Images

Figure 2025049956000001_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates to an information processing device and a program. [Background technology]
[0002] Information such as location information may be encrypted and decrypted (Patent Document 1). In such a technique, the encrypted value is decrypted by performing a calculation using the encrypted value and a decryption key such as a private key. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Patent No. 5960035 Summary of the Invention [Problem to be solved by the invention]
[0004] The calculations required for the above-mentioned decryption may require complex calculations, and the data length of the decryption key may become long, which may increase the processing load of the decryption process.
[0005] An object of the present invention is to reduce the processing load for decrypting an encrypted value. [Means for solving the problem]
[0006] In order to solve the above problems, an information processing device according to the present invention includes a processing execution unit that performs a decryption process of an encrypted value obtained by encrypting a plaintext numerical value, and the processing execution unit performs a first process in the decryption process, in which a plaintext value corresponding to the encrypted value to be decrypted is obtained as a decrypted value obtained by decrypting the encrypted value to be decrypted by referring to a table showing the correspondence between encrypted values and plaintext values.
[0007] Further, a program according to the present invention causes a computer to function as the information processing device. Effect of the Invention
[0008] According to the present invention, the processing load for decrypting encrypted values is reduced. [Brief description of the drawings]
[0009] [Figure 1] FIG. 1 is a configuration diagram of an information processing device according to an embodiment of the present invention. [Diagram 2] FIG. 2 is a block diagram of a portion that executes processing in the information processing device of FIG. [Diagram 3] FIG. 3 is a diagram for explaining the contents of the plaintext position information and the encrypted position information. [Figure 4] FIG. 4 is a flowchart of the location information processing. [Diagram 5] FIG. 5 is a flowchart of the process in step S14 of FIG. [Figure 6] FIG. 6 is a diagram illustrating an example of the configuration of a rainbow table. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0010] Hereinafter, an embodiment of the present invention will be described with reference to the drawings.
[0011] An information processing device 10 according to this embodiment shown in Fig. 1 is configured to communicate with each mobile terminal T (such as a mobile phone or an automobile terminal) via a communication network NW and collect location information of each mobile terminal T. The information processing device 10 provides the collected location information to a destination server S to which the location information is provided. The destination server S performs a counting process to count the location information. The counting process also includes statistical processing.
[0012] As shown in FIG. 1, the information processing device 10 includes a processor 11 such as a CPU (Central Processing Unit), a storage device 12 for storing programs, tables, etc., a RAM (Random Access Memory) 13 that functions as the main memory of the processor 11, and a communication module 14 such as a network card connected to a communication network NW.
[0013] The processor 11 executes a program stored in the storage device 12 to operate as an acquisition unit 11A and a process execution unit 11B shown in FIG.
[0014] The acquisition unit 11A communicates with each mobile terminal T via the communication module 14 and the communication network NW, and periodically acquires location information of each mobile terminal T. Each mobile terminal T acquires its own location information using a global positioning system (GPS) or the like, encrypts the acquired location information, and transmits the encrypted location information to the information processing device 10. Hereinafter, the encrypted location information is also referred to as encrypted location information, and the location information before encryption and after decryption is also referred to as plaintext location information. Herein, the plaintext location information is assumed to be numerical values indicating latitude and longitude, but may be data indicating a location other than latitude and longitude. The data may be hashed and quantified as appropriate.
[0015] As shown in FIG. 3(1), the plaintext location information includes a latitude value lai that represents latitude with 32-bit data, and a longitude value loi that represents longitude with 32-bit data. Of the 32-bit data, the first 16 bits (highest digits) are all set to 0. The remaining 16 bits indicate latitude or longitude. In the encryption, as shown in FIG. 3(2), the latitude value lai and the longitude value loi are each encrypted. This encryption results in a latitude encrypted value G(lai) and a longitude encrypted value G(loi). The encrypted values G(lai) and G(loi) obtained by encryption constitute the encrypted location information. The latitude encrypted value G(lai) and the longitude encrypted value G(loi) are also represented by 32-bit data.
[0016] The encryption method may be any homomorphic encryption method. Examples of such methods include elliptic curve encryption, particularly elliptic ElGamal encryption. With such encryption, a value obtained by computing (e.g., multiplying) a plurality of encrypted values while they are encrypted and then decrypting the values can be made the same as a value obtained by decrypting the plurality of encrypted values and then computing (e.g., multiplying) the values. In other words, the location information can be calculated as the encrypted values (particularly, the calculation for calculating the average value described later). During encryption, the latitude value lai and longitude value loi of the plaintext are encrypted by a predetermined calculation using a secret key or a public key. As an example, the coordinates of the point obtained by multiplying the origin of the elliptic curve by the secret key may be used as a public key, and the value obtained by multiplying the public key by the plaintext location information may be used as the encrypted location information. Also, the value obtained by multiplying the plaintext location information by the secret key and encrypting it may be used as the encrypted location information. Note that the value obtained by multiplying the plaintext position information by the private key and encrypting it, i.e., the coordinates obtained by multiplying the origin by "plaintext position information x private key", is the same as the value obtained by multiplying the public key (coordinates) by the plaintext position information, i.e., the coordinates obtained by multiplying the coordinates indicated by the public key by the value of the plaintext position information. Due to the characteristics of elliptic curves, even if the value after multiplication (coordinates), i.e., the encrypted value, and the public key are known, it is difficult to decrypt the plaintext using normal methods.
[0017] The processing execution unit 11B processes the encrypted position information for each mobile terminal T (for example, for each terminal ID transmitted from the mobile terminal T together with the encrypted position information), and outputs the processing result to the destination server S via the communication module 14 and the communication network NW. The processing execution unit 11B executes the position information processing shown in FIG. 4 every time it receives encrypted position information.
[0018] In the location information process, the process execution unit 11B accumulates the encrypted location information acquired by the acquisition unit 11A for the same mobile terminal T without decrypting it (step S11), and increments the count value i (initial value=0) of the accumulation counter by one (step S12). The accumulation counter is provided in the RAM 13 to count the number of times the encrypted location information of the same mobile terminal T has been accumulated. In step S11, as shown in the following formulas (1) and (2), the latitude encrypted value G(lai) and the longitude encrypted value G(loi) are added as the i-th acquired encrypted value to a latitude encrypted accumulated value σ(la(i-1)) obtained by accumulating the 1st to the (i-1)th latitude encrypted values, and a longitude encrypted accumulated value σ(lo(i-1)) obtained by accumulating the 1st to the (i-1)th longitude encrypted values. As a result, a latitude encrypted integrated value σ(lai) is obtained by accumulating the 1st to i-th latitude encrypted values G(lai), and a latitude encrypted integrated value σ(lai) is obtained by accumulating the 1st to i-th longitude encrypted values G(loi). σ(lai) and σ(loi) constitute the accumulated encrypted position information. σ(lai)=G(lai)+σ(la(i-1))...(1) σ(loi)=G(loi)+σ(lo(i-1))...(2)
[0019] After step S12, the process execution unit 11B determines whether the count value i has reached a predetermined value N (step S13), and if the count value i has reached the predetermined value N (step S13; Yes), it decrypts the encrypted accumulated values σ(laN) and σ(loN), which are the accumulated encrypted position information (step S14). N is set to an arbitrary value.
[0020] An example of the decryption process in step S14 will be described with reference to FIG. 5. A method for decrypting the latitude encrypted accumulated value σ(laN) will be described below, but the longitude encrypted accumulated value σ(loN) is also decrypted in a similar manner. In the process of FIG. 5, the rainbow table shown in FIG. 6 is referenced. The rainbow table shows the correspondence between the encrypted value and the plaintext value when the encrypted value is decrypted. The encrypted value and the plaintext value in FIG. 6 are expressed in hexadecimal. In the rainbow table, not all values that can be taken as the plaintext value (more specifically, the encrypted accumulated value), that is, continuous values that change by 1, are registered, but only some plaintext values, that is, intermittent values, are registered as the plaintext values. This reduces the size of the table. Each interval of the plaintext value is set to 0x00001000 here, but the interval is arbitrary. The rainbow table is prepared in advance in the storage device 12. A common rainbow table may be provided for both latitude and longitude, or separate rainbow tables may be provided for latitude and longitude. When different encryption and decryption keys are used for latitude and longitude, separate rainbow tables are provided for latitude and longitude.
[0021] 5, the process execution unit 11B refers to the rainbow table and determines whether an encrypted value that matches the latitude encrypted accumulated value σ(laN) to be decrypted this time is registered in the rainbow table (step S21). If the encrypted value is registered (step S21; Yes), the process execution unit 11B obtains a plaintext value corresponding to the registered encrypted value from the rainbow table as the latitude plaintext accumulated value β(laN) obtained by decrypting the latitude encrypted accumulated value σ(laN) to be decrypted this time (step S22).
[0022] If the encrypted value is not registered (step S21; No), the process execution unit 11B changes (adds or subtracts) the latitude encrypted integrated value σ(laN) by the encrypted value P obtained by encrypting the minimum unit value A (here, 0x00000001) when the plaintext value changes (step S23). After that, the count value j of a counter (provided in the RAM 13) for counting the number of times the change occurs is incremented by 1 (step S24).
[0023] After step S24, the process execution unit 11B refers to the rainbow table and determines whether an encrypted value matching the value to which the latitude encrypted accumulated value σ(laN) was changed in the most recent step S23 (more specifically, the value obtained by adding or subtracting P*j to σ(laN)) is registered in the rainbow table (step S25). If it is not registered (step S25; No), step S23 is executed again. This repeats the process of changing the latitude encrypted accumulated value σ(laN) until it matches an encrypted value registered in the rainbow table. Here, if this process is repeated a maximum of (plaintext value interval / A)-1 times, the changed latitude encrypted accumulated value σ(laN) will match one of the encrypted values in the rainbow table.
[0024] If the encrypted value is registered in the rainbow table (step S25; Yes), the process execution unit 11B acquires a plaintext value corresponding to the registered encrypted value from the rainbow table, corrects the acquired plaintext value with a correction value calculated by A*j, and sets the corrected value as the latitude plaintext accumulated value β(laN) obtained by decrypting the latitude encrypted accumulated value σ(laN) to be decrypted this time (step S26). The correction is a subtraction when the encrypted value P is added to the latitude encrypted accumulated value σ(laN) in step S23, and an addition when the encrypted value P is subtracted from the latitude encrypted accumulated value σ(laN). In this way, even if the latitude encrypted accumulated value σ(laN) is not directly registered in the rainbow table, an appropriate decrypted value can be obtained.
[0025] Referring again to FIG. 4, the process execution unit 11B divides the decrypted accumulated values obtained by decrypting the encrypted location information in step S14 (specifically, the latitude plaintext accumulated value β(laN) obtained by decrypting the latitude encrypted accumulated value σ(laN) and the longitude plaintext accumulated value β(loN) obtained by decrypting the longitude encrypted accumulated value σ(loN)) by a predetermined value N (step S15). As a result, the average of the location information of the mobile terminal T during the period obtained by multiplying the location information acquisition cycle by the predetermined value N is derived as the average location information. The plaintext accumulated value and / or the average location information may be 16-bit data.
[0026] Thereafter, the process execution unit 11B executes a process using the derived average location information (step S16) and resets various data such as the encrypted cumulative value and the count values i and j (step S17). The process using the average location information is a process of transmitting the average location information to the destination server S via the communication module 14 and the communication network NW. The transmitted average location information is used for aggregating the location information in the destination server S. How the average location information is used is arbitrary, but for example, the destination server S can aggregate the average location (approximate location) of those who are telecommuting and monitor whether the telecommuting person is slacking off in a place away from home. In addition, the destination server S detects overlaps and omissions in activity areas by monitoring in which area the salesman is currently active.
[0027] As described above, in this embodiment, the information processing device 10 includes an acquisition unit 11A and a processing execution unit 11B. The acquisition unit 11A acquires N pieces of location information (where N is an integer equal to or greater than 2) of mobile terminal T. The processing execution unit 11B executes a first process of deriving average location information by averaging the N pieces of location information based on the N pieces of location information, and a second process using the derived average location information. With this configuration, at least in the second process, the actual detailed location information of the mobile terminal T is not used, so that the detailed location information of the individual who owns the mobile terminal T is unknown. Therefore, the location information is used in a state where the privacy of the individual is protected.
[0028] In this embodiment, in particular, since the second process is a process of transmitting the average location information to the destination server S, the detailed location of the mobile terminal T is unlikely to be leaked to a third party from the destination server S that handles the average location information or in communication between the information processing device 10 and the providing server S, and personal privacy is protected. Note that the content of the second process is arbitrary, and the information processing device 10 may execute a process of counting the average location information as the second process.
[0029] Furthermore, in this embodiment, each of the N pieces of location information acquired by acquisition unit 11A is an encrypted cryptographic value, and when deriving average location information in the first process, processing execution unit 11B accumulates the N pieces of location information as encrypted values to derive an accumulated value, and then decrypts the derived accumulated value and divides it by N. As a result, detailed location information is not plaintext (decrypted) during the first process, making it difficult for detailed location information to be leaked, and therefore individual privacy is better protected.
[0030] As a modified example, in the first process, the process execution unit 11B may be configured to accumulate N pieces of location information as encrypted values to derive an accumulated value, and to decrypt the accumulated value after dividing the derived accumulated value by the above-mentioned N. In this way, the accumulated value is also encrypted, so that personal privacy is further protected.
[0031] As another example, in the first process described above, the process execution unit 11B may decode each of the N pieces of position information, add up the decoded numerical values, and divide the added up value by N described above.
[0032] The encrypted value may be decrypted by any method, and may be decrypted using a decryption key such as a private key without using the rainbow table.
[0033] The acquisition unit 11A and the processing execution unit 11B of the information processing device 10 may be implemented in the mobile terminal T. In other words, an information processing device including the acquisition unit 11A and the processing execution unit 11B may be configured as a mobile terminal. In this case, the acquisition unit 11A of the mobile terminal T may acquire detailed location information of the mobile terminal T by using a GPS or the like, and then encrypt the information to acquire encrypted location information. Note that since the average location information is derived within the mobile terminal T, the location information does not need to be encrypted. The processing execution unit 11B may transmit the average location information to the destination server S via the communication network NW directly or via the information processing device 10.
[0034] The information processing device 10 also includes a process execution unit 11B that performs a decryption process of an encrypted value obtained by encrypting a plaintext numerical value. The process execution unit 11B performs a first process in the decryption process of obtaining a plaintext value corresponding to the encrypted value to be decrypted as a decrypted value obtained by decrypting the encrypted value to be decrypted, by referring to a rainbow table that indicates the correspondence between the encrypted value and the plaintext value. In this configuration, the plaintext and the encrypted value may be any information and are not limited to the above-mentioned position information.
[0035] With this configuration, the table is referenced in the decryption of the encrypted value, so that complex calculations are not required in the decryption process, and the processing load of the decryption of the encrypted value is reduced. In addition, the table eliminates the need for a private key for decryption, so there is no risk of the private key being leaked. This is particularly true when the encrypted value is an encrypted value encrypted by elliptic curve cryptography.
[0036] If there is no encrypted value in the table that matches the encrypted value to be decrypted, the process execution unit 11B further executes a second process of changing the encrypted value to be decrypted, referring to the table based on the changed encrypted value, and acquiring a plaintext value corresponding to the changed encrypted value, and a third process of correcting the acquired plaintext value with a correction value according to the difference between the changed encrypted value and the encrypted value to be decrypted before the change, thereby acquiring a decrypted value obtained by decrypting the encrypted value to be decrypted. This makes it unnecessary to store all values that the encrypted value or plaintext value can take in the table, and the size of the table can be reduced.
[0037] Furthermore, in the second process, the process execution unit 11B changes the encrypted value to be decrypted by adding or subtracting the encrypted value P obtained by encrypting the minimum unit value A that changes the plaintext value to the encrypted value to be decrypted, and repeats the fourth process of referring to the table based on the changed encrypted value until the changed encrypted value matches the encrypted value in the table, and in the third process, corrects the plaintext value with a correction value (=A*j) obtained by multiplying the number of times the fourth process was repeated by the minimum unit value A. This makes it possible to reduce the number of plaintext values to be registered in the table, and the size of the table is reduced. Note that the encrypted value P may be prepared in advance as a fixed value, or may be encrypted by the process execution unit 11B using the same algorithm as the encryption of the location information. In the latter case, the encryption may be performed using a public key that is also made public to the mobile terminal T.
[0038] Furthermore, the information processing device 10 further includes an acquisition unit 11A that acquires a plurality of encrypted values, and the process execution unit 11B performs an operation on the plurality of encrypted values acquired by the acquisition unit 11A and performs a decryption process on the encrypted values to be decrypted using the operation results. With this configuration, the processing load of decrypting the encrypted values is reduced.
[0039] (Additional Note) The following configurations are taken as examples of the above configurations. The following configurations are not limited to the above embodiment. The following configurations can be combined in any combination.
[0040] (Appendix 1) An acquisition unit that acquires location information of N mobile terminals (where N is an integer equal to or greater than 2); a processing execution unit that executes a first process of deriving average location information by averaging the N pieces of location information based on the N pieces of location information acquired by the acquisition unit, and a second process using the derived average location information; An information processing device comprising: (Appendix 2) The second process includes a process of transmitting the average location information to a device that aggregates the average location information. 2. An information processing device according to claim 1. (Appendix 3) each of the N pieces of location information acquired by the acquisition unit is an encrypted cryptographic value; In the first process, the process execution unit accumulates the N pieces of location information as encrypted values to derive an accumulated value, decrypts the derived accumulated value, and then divides it by N. 3. The information processing device according to claim 1 or 2. (Appendix 4) each of the N pieces of location information acquired by the acquisition unit is an encrypted cryptographic value; In the first process, the process execution unit accumulates the N pieces of location information as encrypted values to derive an accumulated value, divides the derived accumulated value by the N, and then decrypts the value. 3. The information processing device according to claim 1 or 2. (Appendix 5) each of the N pieces of location information acquired by the acquisition unit is an encrypted cryptographic value; In the first process, the process execution unit decodes each of the N pieces of location information, accumulates the decoded numerical values, and divides the accumulated value by N. 3. The information processing device according to claim 1 or 2. (Appendix 6) The information processing device is the mobile terminal. 6. An information processing device according to any one of claims 1 to 5. (Appendix 7) A program that causes a computer to function as the information processing device according to any one of claims 1 to 6.
[0041] (Appendix 8) A processing execution unit that performs a decryption process of an encrypted value obtained by encrypting a plaintext numerical value, the processing execution unit performs a first processing in the decryption processing, by referring to a table indicating a correspondence relationship between an encrypted value and a plaintext value, to obtain a plaintext value corresponding to the encrypted value to be decrypted as a decrypted value obtained by decrypting the encrypted value to be decrypted. Information processing device. (Appendix 9) The processing execution unit is a second process of changing the encrypted value of the decryption target when the table does not contain an encrypted value that matches the encrypted value of the decryption target, referring to the table based on the changed encrypted value, and acquiring a plaintext value corresponding to the changed encrypted value; and a third process of acquiring a decrypted value by decrypting the encrypted value to be decrypted by correcting the acquired plaintext value with a correction value according to a difference between the encrypted value after the change and the encrypted value to be decrypted before the change. 9. The information processing device according to claim 8. (Appendix 10) The processing execution unit is in the second process, changing the encrypted value of the object to be decrypted by adding or subtracting an encrypted value obtained by encrypting a minimum unit value that changes the plaintext value to the encrypted value of the object to be decrypted, and repeatedly performing a fourth process of referring to the table based on the changed encrypted value until the changed encrypted value matches the encrypted value in the table; In the third process, the plaintext value is corrected by the correction value obtained by multiplying the number of times the fourth process is repeated by the minimum unit value. 10. The information processing device according to claim 9. (Appendix 11) An acquisition unit for acquiring a plurality of encryption values, the processing execution unit performs an operation on the plurality of encrypted values acquired by the acquisition unit, and performs the decryption processing on the encrypted values to be decrypted as a result of the operation. 11. The information processing device according to any one of claims 8 to 10. (Appendix 12) The cryptographic value is a cryptographic value encrypted by elliptic curve cryptography. 12. The information processing device according to any one of claims 8 to 11. (Appendix 13) A program for causing a computer to function as the information processing device according to any one of claims 8 to 12.
[0042] (Scope of the present invention) Although the present invention has been described above with reference to the embodiments and modifications, the present invention is not limited to the above embodiments and modifications. For example, the present invention includes various modifications to the above embodiments and modifications that can be understood by a person skilled in the art within the scope of the technical concept of the present invention. The configurations listed in the above embodiments and modifications can be appropriately combined within a range without contradiction. Also, the omission of each configuration is optional. [Explanation of symbols]
[0043] 10: information processing device, 11A: acquisition unit, 11B: processing execution unit, T: mobile terminal, S: destination server.
Claims
1. A processing execution unit that performs a decryption process of an encrypted value obtained by encrypting a plaintext numerical value, the processing execution unit performs a first processing in the decryption processing, by referring to a table indicating a correspondence relationship between an encrypted value and a plaintext value, to obtain a plaintext value corresponding to the encrypted value to be decrypted as a decrypted value obtained by decrypting the encrypted value to be decrypted. Information processing device.
2. The processing execution unit is a second process of changing the encrypted value of the decryption target when the table does not contain an encrypted value that matches the encrypted value of the decryption target, referring to the table based on the changed encrypted value, and acquiring a plaintext value corresponding to the changed encrypted value; and a third process of acquiring a decrypted value by decrypting the encrypted value to be decrypted by correcting the acquired plaintext value with a correction value according to a difference between the encrypted value after the change and the encrypted value to be decrypted before the change. The information processing device according to claim 1 .
3. The processing execution unit is in the second process, changing the encrypted value of the object to be decrypted by adding or subtracting an encrypted value obtained by encrypting a minimum unit value that changes the plaintext value to the encrypted value of the object to be decrypted, and repeatedly performing a fourth process of referring to the table based on the changed encrypted value until the changed encrypted value matches the encrypted value in the table; In the third process, the plaintext value is corrected by the correction value obtained by multiplying the number of times the fourth process is repeated by the minimum unit value. The information processing device according to claim 2 .
4. An acquisition unit for acquiring a plurality of encryption values, the processing execution unit performs an operation on the plurality of encrypted values acquired by the acquisition unit, and performs the decryption processing on the encrypted values to be decrypted as a result of the operation. The information processing device according to claim 1 .
5. The cryptographic value is a cryptographic value encrypted by elliptic curve cryptography. The information processing device according to claim 1 .
6. A program for causing a computer to function as the information processing device according to claim 1.
Citation Information
Patent Citations
Air-cooled v-type engine for motor cycle
JP1984060035A