system

The system employs secret sharing to protect the privacy of UE position information during verification, ensuring accurate determination of the UE's position within the verification range without exposing sensitive information.

JP2025093771AActive Publication Date: 2025-06-24SOFTBANK CORPORATION
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2023209629
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-12-12
Publication Date
2025-06-24
Estimated Expiration
2043-12-12

AI Technical Summary

Technical Problem

Existing systems for verifying the position of a UE within a verification range face challenges in ensuring the privacy of the UE's position information and reducing the risk of information leakage.

Method used

A system utilizing secret sharing to distribute range information and position information among multiple servers, where each server performs arithmetic processing on received shares and transmits results back to a central server for determination, thereby maintaining the privacy of the UE's position.

Benefits of technology

The system effectively determines whether the UE's position is within the verification range without exposing the actual position information, thus enhancing privacy and reducing the risk of information leakage.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025093771000001_ABST
    Figure 2025093771000001_ABST
Patent Text Reader

Abstract

To provide a system capable of verifying the location of a user equipment (UE) associated with user information without an external device being aware of it, and reducing the risk of personal information leakage and loss.SOLUTION: In a system 10, a request server 100, which is a first server, generates a plurality of range shares from range information indicative of a verification range and sends each of the plurality of range shares to each of position verifications NF300, which are a plurality of third servers. A management server 200, which is a second server, acquires position information of target UE, generates a plurality of position shares from the position information of the target UE, and sends each of the plurality of position shares to each of the plurality of third servers. Each of the plurality of third servers carries out predetermined arithmetic processing for the range share and position share received by each third server, and sends an arithmetic result of the arithmetic processing performed by an arithmetic processing execution unit to the first server. In addition, the first server determines whether the position of the target UE 40 is included within the verification range on the basis of a plurality of the arithmetic results received from each of the plurality of third servers.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a system, a request server, a position verification system, a management server, and a program.

Background Art

[0002] Patent Document 1 describes that a server acquires the location information of a UE (User Equipment) via the NEF (Network Exposure Function) of a mobile communication network. [Prior Art Document] [Patent Document] [Patent Document 1] Japanese Patent Application Laid-Open No. 2023-112615

Summary of the Invention

Means for Solving the Problems

[0003] According to an embodiment of the present invention, a system is provided. The system may include a first server, a second server, and a plurality of third servers. The first server may have a range share generation unit that generates a plurality of range shares from range information indicating a verification range for verifying whether the location of a target UE is included. The first server may have a range share transmission unit that transmits each of the plurality of range shares generated by the range share generation unit to each of the plurality of third servers. The second server may have a location information acquisition unit that acquires the location information of the target UE from the location information of the plurality of UEs managed by a location information management unit that manages the location information of the plurality of UEs. The second server may have a location share generation unit that generates a plurality of location shares from the location information of the target UE. The second server may have a location share transmission unit that transmits each of the plurality of location shares generated by the location share generation unit to each of the plurality of third servers. Each of the plurality of third servers may have an arithmetic processing execution unit that executes a predetermined arithmetic process on the range share received from the first server and the location share received from the second server. Each of the plurality of third servers may have an arithmetic result transmission unit that transmits the arithmetic result of the arithmetic process by the arithmetic processing execution unit to the first server. The first server may have a determination unit that determines whether the location of the target UE is included in the verification range based on the plurality of arithmetic results received from each of the plurality of third servers.

[0004] In the system, the range share generation unit may generate a plurality of range shares by which the range information can be restored when the plurality of range shares are complete, and the position share generation unit may generate a plurality of position shares by which the position information can be restored when the plurality of position shares are complete. The range share generation unit may generate N random numbers and a sum value obtained by adding the N random numbers to the range information as N + 1 range shares, and the position share generation unit may generate N random numbers and a sum value obtained by adding the N random numbers to the position information as N + 1 position shares, and the arithmetic processing execution unit may execute an arithmetic process of calculating a difference between the range share and the position share.

[0005] In any of the above systems, the range information may include high latitude, low latitude, high longitude, and low longitude indicating the verification range in a rectangular shape, the position information may include UE latitude and UE longitude indicating the latitude and longitude of the target UE, the range share generation unit may generate the plurality of range shares including N random numbers, N + 1 high latitude shares including the high latitude addition values obtained by adding the N random numbers to the high latitude, N random numbers, N + 1 low latitude shares including the low latitude addition values obtained by adding the N random numbers to the low latitude, N random numbers, N + 1 high longitude shares including the high longitude addition values obtained by adding the N random numbers to the high longitude, and N random numbers, N + 1 low longitude shares including the low longitude addition values obtained by adding the N random numbers to the low longitude, the range share transmission unit may transmit one high latitude share, one low latitude share, one high longitude share, and one low longitude share to each of the N + 1 third servers, the position share generation unit may generate the position share including N random numbers, N + 1 UE latitude shares including the addition values obtained by adding the N random numbers to the UE latitude, and N random numbers, N + 1 UE longitude shares including the addition values obtained by adding the N random numbers to the UE longitude, and the position share transmission unit may transmit one UE latitude share and one UE longitude share to each of the N + 1 third servers.The arithmetic processing execution unit may execute arithmetic processing of subtracting the UE latitude share from the high-latitude share, subtracting the low-latitude share from the UE latitude share, subtracting the UE longitude share from the high-longitude share, and subtracting the low-longitude share from the UE longitude share. The arithmetic result transmission unit may transmit to the first server a high-latitude arithmetic result obtained by subtracting the UE latitude share from the high-latitude share, a low-latitude arithmetic result obtained by subtracting the low-latitude share from the UE latitude share, a high-longitude arithmetic result obtained by subtracting the UE longitude share from the high-longitude share, and a low-longitude arithmetic result obtained by subtracting the low-longitude share from the UE longitude share. The determination unit may determine whether the UE latitude is included in the range of the high latitude and the low latitude of the range information based on the N + 1 high-latitude arithmetic results and the N + 1 low-latitude arithmetic results, and may determine whether the UE longitude is included in the range of the high longitude and the low longitude of the range information based on the N + 1 high-longitude arithmetic results and the N + 1 low-longitude arithmetic results.

[0006] In any of the above systems, the range information may include a verification latitude and a verification longitude, which are the latitude and longitude of the center of the circular verification range, and a verification radius, which is the radius of the verification range. The position information may include a UE latitude and a UE longitude indicating the latitude and longitude of the target UE. The range share generation unit may generate the plurality of range shares including N + 1 verification latitude shares including N random numbers and a verification latitude subtraction value obtained by subtracting the N random numbers from the verification latitude, N + 1 verification longitude shares including N random numbers and a verification longitude subtraction value obtained by subtracting the N random numbers from the verification longitude, and N + 1 verification radius shares including N random numbers and a verification radius subtraction value obtained by subtracting the N random numbers from the verification radius. The range share transmission unit may transmit one verification latitude share, one verification longitude share, and one verification radius share to each of the N + 1 third servers. The position share generation unit may generate the position share including N + 1 UE latitude shares including N random numbers and a sum value obtained by adding the N random numbers to the UE latitude, and N + 1 UE longitude shares including N random numbers and a sum value obtained by adding the N random numbers to the UE longitude. The position share transmission unit may transmit one UE latitude share and one UE longitude share to each of the N + 1 third servers.In the system, the arithmetic processing execution unit may execute arithmetic processing of subtracting the UE latitude share from the verification latitude share and subtracting the UE longitude share from the verification longitude share. The arithmetic result transmission unit may transmit the verification latitude arithmetic result obtained by subtracting the UE latitude share from the verification latitude share and the verification longitude arithmetic result obtained by subtracting the UE longitude share from the verification longitude share to other third servers among the N + 1 third servers. The arithmetic processing execution unit may calculate a share of the squared distance from the verification latitude arithmetic result obtained by the arithmetic processing execution unit subtracting the UE latitude share from the verification latitude share, the verification longitude arithmetic result obtained by subtracting the UE longitude share from the verification longitude share, the verification latitude arithmetic result and the verification longitude arithmetic result received from other third servers. The arithmetic result transmission unit may transmit the share of the squared distance calculated by the arithmetic processing execution unit and the verification radius share to the first server. The determination unit may identify the distance between the center of the verification range and the position of the UE based on the N + 1 shares of the squared distance, identify the verification radius based on the N + 1 shares of the verification radius, and determine whether the position of the target UE is included in the verification range based on the identified distance and the identified verification radius. In the system, the arithmetic processing execution unit may execute arithmetic processing of subtracting the UE latitude share from the verification latitude share and subtracting the UE longitude share from the verification longitude share. The arithmetic result transmission unit may transmit the verification latitude arithmetic result obtained by subtracting the UE latitude share from the verification latitude share, the verification longitude arithmetic result obtained by subtracting the UE longitude share from the verification longitude share, and the verification radius share to the first server. The determination unit may identify the distance between the center of the verification range and the position of the UE based on the N + 1 verification latitude arithmetic results and the N + 1 verification longitude arithmetic results, identify the verification radius based on the N + 1 shares of the verification radius, and determine whether the position of the UE is included in the verification range based on the identified distance and the identified verification radius.

[0007] According to an embodiment of the present invention, a request server is provided. The request server may include a range share generation unit that generates a plurality of range shares from range information indicating a verification range for verifying whether the position of a target UE is included. The request server may include a range share transmission unit that transmits each of the plurality of range shares generated by the range share generation unit to each of the plurality of position verification servers. The request server may include a request information transmission unit that transmits request information to a management server that manages position information of a plurality of UEs, requesting to generate a plurality of position shares from the position information of the target UE and transmit each of the plurality of position shares to each of the plurality of position verification servers. The request server may include a calculation result reception unit that receives, from each of the plurality of position verification servers, a calculation result obtained by performing a predetermined calculation process on the received range share and the position share. The request server may include a determination unit that determines whether the position of the target UE is included in the verification range based on the plurality of calculation results received from each of the plurality of position verification servers.

[0008] According to an embodiment of the present invention, a program for causing a computer to function as the request server is provided.

[0009] According to an embodiment of the present invention, a position verification system including a plurality of position verification servers is provided. Each of the plurality of position verification servers may include a share receiving unit that receives one of the plurality of range shares from a request server that generates the plurality of range shares from range information indicating a verification range for verifying whether the position of a target UE is included, and receives one of the plurality of position shares generated from the position information of the target UE from a management server that manages the position information of the plurality of UEs. Each of the plurality of position verification servers may include an arithmetic processing execution unit that executes predetermined arithmetic processing on the range share received from the request server and the position share received from the management server. Each of the plurality of position verification servers may include an arithmetic result transmission unit that transmits the arithmetic result of the arithmetic processing by the arithmetic processing execution unit to the request server.

[0010] According to an embodiment of the present invention, a management server is provided. The management server may include a position information management unit that manages the position information of a plurality of UEs. The management server may include a request information receiving unit that receives, from a request server, request information requesting to generate a plurality of position shares from the position information of a target UE and transmit each of the plurality of position shares to each of the plurality of position verification servers. The management server may include a position information acquisition unit that acquires the position information of the target UE from the position information of the plurality of UEs managed by the position information management unit in response to the request information receiving unit receiving the request information. The management server may include a position share generation unit that generates the plurality of position shares from the position information of the target UE. The management server may include a position share transmission unit that transmits each of the plurality of position shares generated by the position share generation unit to each of the plurality of position verification servers.

[0011] According to an embodiment of the present invention, a program for causing a computer to function as the management server is provided.

[0012] Note that the above summary of the invention does not list all the necessary features of the present invention. Also, sub - combinations of these feature groups can also be inventions.

Brief Description of the Drawings

[0013]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Modes for Carrying Out the Invention

[0014] Hereinafter, the present invention will be described through embodiments of the invention. However, the following embodiments do not limit the invention claimed in the claims. Also, not all combinations of features described in the embodiments are essential for the solution means of the invention.

[0015] NEF has the function of aggregating and providing information obtained from the 5GC (5G Core) and the UE. Functions for determining and verifying the UE's position from its in-circuit cell information, etc. for the UE in response to an external request are defined by various standardization organizations. In a conventional NF (Network Function) implementing the UE position verification function, consideration for personal information is required because the position of the UE associated with user information is used in the calculation. In the system 10 according to the present embodiment, for example, using secret sharing that performs anonymization by dividing data into several meaningless fragments, the position information associated with the user and the range information indicating the verification range to be verified are distributed as shares, calculated by a plurality of servers, obtaining the result shares, and collecting and performing secret restoration processing to provide the truth value of the position information verification result to an external device. Thereby, it is possible to realize UE position verification without the external device knowing the position of the UE associated with the user information, and it is possible to reduce the risk of information leakage and loss of personal information.

[0016] FIG. 1 schematically shows an example of the system 10. The system 10 executes a process of determining whether the position of the UE 40 is included in the verification range using secret sharing. The UE 40 may be a terminal possessed by the user 42. The UE 40 may be, for example, a smartphone. The UE 40 may also be a tablet terminal, a wearable terminal, or the like.

[0017] The system 10 includes a request server 100. The system 10 includes a management server 200. The system 10 includes a position verification system 30. The position verification system 30 has a plurality of position verification NFs 300.

[0018] The request server 100 may be an example of a first server. The management server 200 may be an example of a second server. The position verification NF 300 may be an example of a third server.

[0019] The request server 100, the management server 200, the position verification system 30, and the UE 40 may communicate via the network 20. The network 20 includes a mobile communication network. The mobile communication network may conform to any of the communication methods such as the 5G (5th Generation) communication method, the LTE (Long Term Evolution) communication method, the 3G (3rd Generation) communication method, and the communication methods after the 6G (6th Generation) communication method. The network 20 includes the Internet.

[0020] The management server 200 manages UE position information indicating the position of each of the plurality of UEs 40. The management server 200 may receive and manage the UE position information specified by the UE 40 by executing positioning processing such as GPS positioning (Global Positioning System) from each UE 40. The management server 200 may manage the UE position information specified by the presence information of the UE 40. The UE position information may include a UE latitude and a UE longitude indicating the latitude and longitude where the UE 40 is located. In addition, when the position of the UE 40 is not specified at a single point but indicates a range centered on a certain point, the management server 200 may manage the latitude and longitude of the certain point and the range. The management server 200 may be arranged in the core network of the mobile communication network. The management server 200 may be realized by one device or may be realized by a plurality of devices.

[0021] The request server 100 may be used by any entity that wishes to determine whether the position of the target UE 40 is included in the verification range. The any entity may be, for example, a so-called 3rd party for a communication carrier having the management server 200.

[0022] Although the request server 100 can determine whether the position of the target UE 40 is included in the verification range by receiving the position information of the target UE 40 from the management server 200 via the network 20, there is a risk that the position information of the target UE 40 may be leaked. Therefore, in the system 10 according to the present embodiment, a mechanism is provided using secret sharing so that the request server 100 can obtain a determination result as to whether the position of the target UE 40 is included in the verification range without leaking the position information of the target UE 40.

[0023] FIG. 2 is an explanatory diagram for schematically explaining the processing content of the system 10. Here, a case will be described by taking as an example the case where an application 102 for determining whether the position of the target UE 40 is included in the verification range is installed in the request server 100.

[0024] The application 102 may receive an input of range information indicating a verification range for verifying whether the position of the target UE 40 is included by the user of the request server 100. The application 102 may perform secret sharing processing on the range information to generate a plurality of range shares. The application 102 may generate a plurality of range shares that can restore the range information when the plurality of range shares are assembled. The application 102 may transmit each of the generated plurality of range shares to each of the plurality of position verification NFs 300.

[0025] In addition, the application 102 may receive an input of UE identification information that can identify the target UE40 by the user of the request server 100. The application 102 may send request information that requests to generate a plurality of location shares from the location information of the target UE40 and send each of them to each of the plurality of location verification NF300 to the management server 200. The request information may include UE identification information. The UE identification information may be any information as long as it can identify the UE40. Examples of UE identification information include, but are not limited to, IMSI (International Mobile Subscriber Identity), TMSI (Temporary Mobile Subscriber Identity), and GUTI (Global Unique Temporary Identity).

[0026] In response to receiving the request information from the request server 100, the management server 200 may identify the target UE40 based on the UE identification information included in the request information. The management server 200 may read out the location information of the target UE40 from the location information table 202 that includes the location information of a plurality of UE40s. The management server 200 may perform secret sharing processing on the read location information to generate a plurality of location shares. The management server 200 may generate a plurality of location shares such that the location information can be restored when the plurality of location shares are complete. The transmission unit 204 of the management server 200 may send each of the generated plurality of location shares to each of the plurality of location verification NF300.

[0027] Each of the plurality of location verification NF300 may perform predetermined arithmetic processing on the range share received from the request server 100 and the location share received from the management server 200. Each of the plurality of location verification NF300 may send the arithmetic result to the request server 100. The request server 100 may perform secret restoration processing on the arithmetic results received from each of the plurality of location verification NF300 to obtain a determination result as to whether the location of the target UE40 is included in the verification range.

[0028] FIG. 3 is an explanatory diagram for explaining an example of the processing content by the system 10. Here, it will be described how to determine whether the latitude of the target UE 40 is included in the rectangular verification range. In this example, the latitude of the target UE is 35, the latitude of the northwest vertex of the rectangular area of the verification range is 41, the latitude of the southeast vertex of the rectangular area of the verification range is 30, and the number of shares for secret sharing is 3.

[0029] The management server 200 generates encrypted data B and encrypted data C with random numbers for the latitude of the UE 40, and generates encrypted data A by adding the encrypted data B and encrypted data C to the latitude of the UE 40. In the example shown in FIG. 3, the encrypted data B is "20000", the encrypted data C is "10000", and the encrypted data A is "30035". The management server 200 uses the encrypted data A, the encrypted data B, and the encrypted data C as three UE latitude shares. The management server 200 transmits each of the three UE latitude shares to each of the first location verification NF 300, the second location verification NF 300, and the third location verification NF 300.

[0030] The request server 100 generates encrypted data B and encrypted data C with random numbers for the latitude of the northwest vertex of the verification range, and generates encrypted data A by adding the encrypted data B and encrypted data C to the latitude of the northwest vertex. In the example shown in FIG. 3, the encrypted data B is "35000", the encrypted data C is "5000", and the encrypted data A is "40041". The request server 100 uses the encrypted data A, the encrypted data B, and the encrypted data C as three high-latitude shares. The request server 100 transmits each of the three high-latitude shares to each of the first location verification NF 300, the second location verification NF 300, and the third location verification NF 300.

[0031] The request server 100 generates the encrypted data B and the encrypted data C with random numbers for the southeast vertex latitude of the verification range, and generates the encrypted data A by adding the encrypted data B and the encrypted data C to the southeast vertex latitude. In the example shown in FIG. 3, the encrypted data B is "15000", the encrypted data C is "10000", and the encrypted data A is "25030". The request server 100 uses the encrypted data A, the encrypted data B, and the encrypted data C as three low-latitude shares. The request server 100 transmits each of the three low-latitude shares to each of the first location verification NF300, the second location verification NF300, and the third location verification NF300.

[0032] The first location verification NF300 that has received the UE latitude share "30035", the high-latitude share "40041", and the low-latitude share "25030" transmits the calculation result "10006" obtained by subtracting the UE latitude share from the high-latitude share and the calculation result "5005" obtained by subtracting the low-latitude share from the UE latitude share to the request server 100.

[0033] The second location verification NF300 that has received the UE latitude share "20000", the high-latitude share "35000", and the low-latitude share "15000" transmits the calculation result "15000" obtained by subtracting the UE latitude share from the high-latitude share and the calculation result "5000" obtained by subtracting the low-latitude share from the UE latitude share to the request server 100.

[0034] The third location verification NF300 that has received the UE latitude share "10000", the high-latitude share "5000", and the low-latitude share "10000" transmits the calculation result "-5000" obtained by subtracting the UE latitude share from the high-latitude share and the calculation result "0" obtained by subtracting the low-latitude share from the UE latitude share to the request server 100.

[0035] The request server 100 determines whether the latitude of the target UE40 is included in the verification range based on the calculation result "6" obtained by subtracting the calculation result "15000" received from the second position verification NF300 and the calculation result "-5000" received from the third position verification NF300 from the calculation result "10006" received from the first position verification NF300, and the result "5" obtained by subtracting the calculation result "5000" received from the second position verification NF300 and the calculation result "0" received from the third position verification NF300 from the calculation result "5005" received from the first position verification NF300. In this example, if both the result "6" and the result "5" are greater than 0, the request server 100 determines that the latitude of the target UE40 is included in the verification range, and if at least one of them is less than 0, it determines that it is not included in the verification range.

[0036] Similarly, the system 10 may determine whether the longitude of the target UE40 is included in the verification range. Thus, the system 10 can determine whether the position of the target UE40 is included in the verification range.

[0037] FIG. 4 is an explanatory diagram for explaining the processing content by the system 10. Here, it is explained how to determine whether the position of the target UE40 is included in the circular verification range. In this example, the UE latitude indicating the latitude of the UE40 is 6, the UE longitude indicating the longitude of the UE40 is 7, the verification latitude which is the latitude of the center of the verification range is 9, the verification longitude which is the longitude of the center of the verification range is 11, the verification radius which is the radius of the verification range is 10, and the dispersion number of the secret sharing is 3.

[0038] The management server 200 generates encrypted data B and encrypted data C as random numbers for the UE latitude, and generates encrypted data A by subtracting encrypted data B and encrypted data C from the UE latitude. In the example shown in FIG. 4, the encrypted data B is "1000", the encrypted data C is "2000", and the encrypted data A is "-2994". The management server 200 uses the encrypted data A, encrypted data B, and encrypted data C as three UE latitude shares. The management server 200 transmits each of the three UE latitude shares to each of the first location verification NF300, the second location verification NF300, and the third location verification NF300.

[0039] The management server 200 generates encrypted data B and encrypted data C as random numbers for the UE longitude, and generates encrypted data A by subtracting encrypted data B and encrypted data C from the UE longitude. In the example shown in FIG. 4, the encrypted data B is "300", the encrypted data C is "100", and the encrypted data A is "-393". The management server 200 uses the encrypted data A, encrypted data B, and encrypted data C as three UE longitude shares. The management server 200 transmits each of the three UE longitude shares to each of the first location verification NF300, the second location verification NF300, and the third location verification NF300.

[0040] The request server 100 generates encrypted data B and encrypted data C as random numbers for the verification latitude, and generates encrypted data A by subtracting encrypted data B and encrypted data C from the verification latitude. In the example shown in FIG. 4, the encrypted data B is "4214", the encrypted data C is "4124", and the encrypted data A is "-8329". The request server 100 uses the encrypted data A, encrypted data B, and encrypted data C as three verification latitude shares. The request server 100 transmits each of the three verification latitude shares to each of the first location verification NF300, the second location verification NF300, and the third location verification NF300.

[0041] The request server 100 generates the encrypted data B and the encrypted data C with random numbers for the verification longitude, and generates the encrypted data A by subtracting the encrypted data B and the encrypted data C from the verification longitude. In the example shown in FIG. 4, the encrypted data B is "4142", the encrypted data C is "241", and the encrypted data A is "-4372". The request server 100 uses the encrypted data A, the encrypted data B, and the encrypted data C as three verification longitude shares. The request server 100 transmits each of the three verification longitude shares to each of the first position verification NF300, the second position verification NF300, and the third position verification NF300.

[0042] The request server 100 generates the encrypted data B and the encrypted data C with random numbers for the verification radius, and generates the encrypted data A by subtracting the encrypted data B and the encrypted data C from the verification radius. In the example shown in FIG. 4, the encrypted data B is "31", the encrypted data C is "3213", and the encrypted data A is "-3234". The request server 100 uses the encrypted data A, the encrypted data B, and the encrypted data C as three verification radius shares. The request server 100 transmits each of the three verification radius shares to each of the first position verification NF300, the second position verification NF300, and the third position verification NF300.

[0043] The first position verification NF300 that has received the UE latitude share "-2994", the UE longitude share "-393", the verification latitude share "-8329", the verification longitude share "-4372", and the verification radius share "-3234" transmits the calculation result x1 "-5335" obtained by subtracting the UE latitude share from the verification latitude share and the calculation result y1 "-3979" obtained by subtracting the UE longitude share from the verification longitude share to the third position verification NF300.

[0044] The second location verification NF300 that received the UE latitude share "1000", the UE longitude share "300", the verification latitude share "4214", the verification longitude share "4142", and the verification radius share "31" subtracts the UE latitude share from the verification latitude share to obtain the calculation result x2 "3214", and subtracts the UE longitude share from the verification longitude share to obtain the calculation result y2 "3842", and sends them to the first location verification NF300.

[0045] The third location verification NF300 that received the UE latitude share "2000", the UE longitude share "100", the verification latitude share "4124", the verification longitude share "241", and the verification radius share "3213" subtracts the UE latitude share from the verification latitude share to obtain the calculation result x3 "2124", and subtracts the UE longitude share from the verification longitude share to obtain the calculation result y3 "141", and sends them to the second location verification NF300.

[0046] The first location verification NF300 uses the calculation result x1 and calculation result y1 calculated by itself, and the calculation result x2 and calculation result y2 received from the second location verification NF300 to obtain, as the share of the squared distance, the calculation result "-20573350" obtained by adding "x1 2 +2x1x2" and "y1 2 +2y1y2", and sends the verification radius share "-3234" to the request server 100.

[0047] The second location verification NF300 uses the calculation result x2 and calculation result y2 calculated by itself, and the calculation result x3 and calculation result y3 received from the third location verification NF300 to obtain, as the share of the squared distance, the calculation result "39827276" obtained by adding "x2 2 +2x2x3" and "y2 2 +2y2y3", and sends the verification radius share "31" to the request server 100.

[0048] The third location verification NF300 uses the calculation result x3 and calculation result y3 calculated by itself, and the calculation result x1 and calculation result y1 received from the first location verification NF300 to obtain, as the share of the squared distance, the calculation result obtained by adding "x3 2 +2x3x1" and "y3 2The operation result "-19253901" obtained by adding "+2y3y1" and the verification radius share "3213" are transmitted to the request server 100.

[0049] The request server 100 determines the squared distance "25" between the position of the UE40 and the center of the verification range by adding the operation result "-20573350" received from the first position verification NF300, the operation result "39827276" received from the second position verification NF300, and the operation result "-19253901" received from the third position verification NF300. The request server 100 determines the distance "5" between the position of the UE40 and the center of the verification range from the squared distance "25".

[0050] Also, the request server 100 determines the verification radius from the verification radius shares received from the first position verification NF300, the second position verification NF300, and the third position verification NF300. The request server 100 determines the verification radius "10" by adding the verification radius share "-3234" received from the first position verification NF300, the verification radius share "31" received from the second position verification NF300, and the verification radius share "3213" received from the third position verification NF300.

[0051] The request server 100 determines whether the position of the UE40 is included in the verification range based on the determined distance "5" between the position of the UE40 and the center of the verification range and the verification radius "10". In this example, since the distance "5" is smaller than the verification radius "10", the request server 100 determines that the position of the UE40 is included in the verification range.

[0052] As another example, the request server 100 may perform the calculation of the squared distance. For example, the first position verification NF300 that has received the UE latitude share "-2994", the UE longitude share "-393", the verification latitude share "-8329", the verification longitude share "-4372", and the verification radius share "-3234" subtracts the UE latitude share from the verification latitude share to obtain the calculation result x1 "-5335", subtracts the UE longitude share from the verification longitude share to obtain the calculation result y1 "-3979", and sends the verification radius share "3234" to the request server 100. Also, the second position verification NF300 that has received the UE latitude share "1000", the UE longitude share "300", the verification latitude share "4214", the verification longitude share "4142", and the verification radius share "31" subtracts the UE latitude share from the verification latitude share to obtain the calculation result x2 "3214", subtracts the UE longitude share from the verification longitude share to obtain the calculation result y2 "3842", and sends the verification radius share "31" to the request server 100. Also, the third position verification NF300 that has received the UE latitude share "2000", the UE longitude share "100", the verification latitude share "4124", the verification longitude share "241", and the verification radius share "3213" subtracts the UE latitude share from the verification latitude share to obtain the calculation result x3 "2124", subtracts the UE longitude share from the verification longitude share to obtain the calculation result y3 "141", and sends the verification radius share "3213" to the request server 100. Then, the request server 100 determines the distance between the position of the target UE40 and the center of the verification range from the calculation result x1 and the calculation result y1 received from the first position verification NF300, the calculation result x2 and the calculation result y2 received from the second position verification NF300, and the calculation result x3 and the calculation result y3 received from the third position verification NF300. The request server 100 calculates the calculation result "-20573350" obtained by adding "x1 2 +2x1x2" and "y1 2 +2y1y2", the calculation result "39827276" obtained by adding "x2 2 +2x2x3" and "y2 2 +2y2y3", and the calculation result "x3 2 +2x3x1" and "y3 2By adding the operation result “-19253901” obtained by adding “+2y3y1”, the square distance “25” between the position of the target UE40 and the center of the verification range is specified.

[0053] Note that when the position of the target UE40 is not specified as a single point and the position information of UE40 includes UE latitude, UE longitude, and UE range, the management server 200 may generate encrypted data B and encrypted data C with random numbers for the UE range, and generate encrypted data A by subtracting encrypted data B and encrypted data C from the UE range. In the example shown in FIG. 4, encrypted data B is “321”, encrypted data C is “231”, and encrypted data A is “-549”. The management server 200 may use encrypted data A, encrypted data B, and encrypted data C as three UE range shares. The management server 200 may transmit each of the three UE range shares to each of the first position verification NF300, the second position verification NF300, and the third position verification NF300. In this case, the position verification system 30 and the request server 100 may determine whether the position of UE40 is included in the verification range by using Heron's formula or the like.

[0054] FIG. 5 schematically shows an example of the functional configuration of the request server 100. The request server 100 includes a storage unit 110, a UE information acquisition unit 112, a request information transmission unit 114, a range information acquisition unit 116, a range share generation unit 118, a range share transmission unit 120, an arithmetic processing reception unit 122, a determination unit 124, and an output control unit 126. Note that it is not essential for the request server 100 to include all of these.

[0055] The UE information acquisition unit 112 acquires information on the target UE40 to be verified. The UE information acquisition unit 112 acquires, for example, the UE identification information of UE40 input by the user of the request server 100. The UE information acquisition unit 112 stores the acquired information in the storage unit 110.

[0056] The request information transmission unit 114 transmits request information to the management server 200. The request information transmission unit 114 may transmit to the management server 200 request information that requests generating a plurality of location shares from the location information of the target UE 40 and transmitting each of the plurality of location shares to each of the plurality of location verification NF 300. The request information may include the UE identification information of the target UE 40. The request information may include a preset dispersion number. For example, the request information includes a dispersion number set by a user of the request server 100. The request information may include information indicating the plurality of location verification NF 300 that are the destinations of the plurality of location shares.

[0057] The range information acquisition unit 116 acquires range information indicating a verification range for verifying whether the location of the target UE 40 is included. The range information acquisition unit 116 acquires, for example, range information input by a user of the request server 100. The range information acquisition unit 116 stores the acquired range information in the storage unit 110.

[0058] The range share generation unit 118 generates a plurality of range shares from the range information acquired by the range information acquisition unit 116. The range share generation unit 118 may generate a plurality of range shares that can restore the range information when the plurality of range shares are aligned.

[0059] The range share generation unit 118 generates, for example, range shares with a preset dispersion number. The range share generation unit 118 may generate range shares with a dispersion number set by a user of the request server 100.

[0060] The range share transmission unit 120 transmits each of the plurality of range shares generated by the range share generation unit 118 to each of the plurality of location verification NF 300.

[0061] For example, the range share generation unit 118 generates a plurality of random numbers, calculates a subtraction value obtained by subtracting the plurality of random numbers from the range information, or an addition value obtained by adding the plurality of random numbers to the range information, and sets the plurality of random numbers and the subtraction value or the addition value as a plurality of range shares. As an example, the range share generation unit 118 generates N random numbers, calculates a subtraction value obtained by subtracting the N random numbers from the range information or an addition value obtained by adding the N random numbers to the range information, and sets the N random numbers and the subtraction value or the addition value as N + 1 range shares.

[0062] When the verification range is rectangular, the range information may include high latitude, low latitude, high longitude, and low longitude. The high latitude and the high longitude may be the latitude and the longitude of the northwest vertex of the rectangle. The low latitude and the low longitude may be the latitude and the longitude of the southeast vertex of the rectangle. The range share generation unit 118 may generate a plurality of range shares including a plurality of high latitude shares generated from the high latitude, a plurality of low latitude shares generated from the low latitude, a plurality of high longitude shares generated from the high longitude, and a plurality of low longitude shares generated from the low longitude.

[0063] For example, the range share generation unit 118 may generate N random numbers for high latitude, calculate a high latitude subtraction value obtained by subtracting the N random numbers from the high latitude or a high latitude addition value obtained by adding the N random numbers to the high latitude, and use the N random numbers and the high latitude subtraction value or the high latitude addition value as N + 1 high latitude shares. For low latitude, the range share generation unit 118 may generate N random numbers, calculate a low latitude subtraction value obtained by subtracting the N random numbers from the low latitude or a low latitude addition value obtained by adding the N random numbers to the low latitude, and use the N random numbers and the low latitude subtraction value or the low latitude addition value as N + 1 low latitude shares. For high longitude, the range share generation unit 118 may generate N random numbers, calculate a high longitude subtraction value obtained by subtracting the N random numbers from the high longitude or a high longitude addition value obtained by adding the N random numbers to the high longitude, and use the N random numbers and the high longitude subtraction value or the high longitude addition value as N + 1 high longitude shares. For low longitude, the range share generation unit 118 may generate N random numbers, calculate a low longitude subtraction value obtained by subtracting the N random numbers from the low longitude or a low longitude addition value obtained by adding the N random numbers to the low longitude, and use the N random numbers and the low longitude subtraction value or the low longitude addition value as N + 1 low longitude shares. The range share transmission unit 120 may transmit one high latitude share, one low latitude share, one high longitude share, and one low longitude share to each of the N + 1 position verification NF300s.

[0064] When the verification range is circular, the range information may include a verification latitude and a verification longitude that are the central latitude and the central longitude of the circular verification range, and a verification radius that is the radius of the verification range. The range share generation unit 118 may generate a plurality of range shares including a plurality of verification latitude shares generated from the verification latitude, a plurality of verification longitude shares generated from the verification longitude, and a plurality of verification radius shares generated from the verification radius.

[0065] For example, the range share generation unit 118 generates N random numbers for the verification latitude, calculates a verification latitude subtraction value obtained by subtracting the N random numbers from the verification latitude or a verification latitude addition value obtained by adding the N random numbers to the verification latitude, and uses the N random numbers and the verification latitude subtraction value or the verification latitude addition value as N + 1 verification latitude shares. The range share generation unit 118 generates N random numbers for the verification longitude, calculates a verification longitude subtraction value obtained by subtracting the N random numbers from the verification longitude or a verification longitude addition value obtained by adding the N random numbers to the verification longitude, and uses the N random numbers and the verification longitude subtraction value or the verification longitude addition value as N + 1 verification longitude shares. The range share generation unit 118 generates N random numbers for the verification radius, calculates a verification radius subtraction value obtained by subtracting the N random numbers from the verification radius or a verification radius addition value obtained by adding the N random numbers to the verification radius, and uses the N random numbers and the verification radius subtraction value or the verification radius addition value as N + 1 verification radius shares. The range share transmission unit 120 may transmit one verification latitude share, one verification longitude share, and one verification radius share to each of the N + 1 position verifications NF300.

[0066] The arithmetic processing reception unit 122 receives arithmetic results from each of the plurality of position verifications NF300. The arithmetic processing reception unit 122 stores the received arithmetic results in the storage unit 110.

[0067] The determination unit 124 determines whether the position of the target UE40 is included in the verification range based on the plurality of arithmetic results received by the arithmetic processing reception unit 122 from each of the plurality of position verifications NF300.

[0068] The output control unit 126 controls to output the determination result by the determination unit 124. For example, the output control unit 126 controls to display the determination result by the determination unit 124 on a display included in the request server 100.

[0069] FIG. 6 schematically shows an example of the functional configuration of the management server 200. The management server 200 includes a storage unit 210, a location information management unit 212, a request information receiving unit 214, a location information acquisition unit 216, a location share generation unit 218, and a location share transmission unit 220. Note that it is not essential for the management server 200 to include all of these.

[0070] The location information management unit 212 manages the location information of a plurality of UEs 40. The location information management unit 212 may manage a location information table 202 including the location information of a plurality of UEs 40 arranged in the core network of the mobile communication network. Instead of managing the location information table 202, the location information management unit 212 may manage the location information of a plurality of UEs 40 by referring to the location information table 202 managed by other devices or NFs, etc.

[0071] The request information receiving unit 214 receives request information from the request server 100. The request information receiving unit 214 receives the request information transmitted by the request information transmission unit 114.

[0072] The location information acquisition unit 216 acquires the location information of the target UE 40 from the location information of a plurality of UEs 40 managed by the location information management unit 212. The location information acquisition unit 216 may acquire the location information of the target UE 40 from the location information of a plurality of UEs 40 managed by the location information management unit 212 in response to the request information receiving unit 214 receiving the request information. The location information acquisition unit 216 may identify the target UE 40 using the UE identification information included in the request information and acquire the location information of the identified UE 40.

[0073] The location share generation unit 218 generates a plurality of location shares from the location information of the target UE 40 acquired by the location information acquisition unit 216. The location share generation unit 218 may generate a plurality of location shares from which the location information can be restored when the plurality of location shares are complete. The location share generation unit 218 generates, for example, the number of location shares distributed included in the request information received by the request information receiving unit 214.

[0074] The location share transmission unit 220 transmits each of the plurality of location shares generated by the location share generation unit 218 to each of the plurality of location verification NFs 300. The location share transmission unit 220 may transmit each of the plurality of location shares to each of the plurality of location verification NFs 300 according to information indicating the plurality of location verification NFs 300, which are the transmission destinations of the plurality of location shares, included in the request information received by the request information reception unit 214.

[0075] For example, the location share generation unit 218 generates a plurality of random numbers, calculates a subtraction value obtained by subtracting the plurality of random numbers from the location information or an addition value obtained by adding the plurality of random numbers to the location information, and sets the plurality of random numbers and the subtraction value or the addition value as the plurality of location shares. As an example, the location share generation unit 218 generates N random numbers, calculates a subtraction value obtained by subtracting the N random numbers from the location information or an addition value obtained by adding the N random numbers to the location information, and sets the N random numbers and the subtraction value or the addition value as N + 1 location shares.

[0076] For the UE latitude indicating the latitude of the target UE 40, the location share generation unit 218 generates a plurality of random numbers, calculates a subtraction value obtained by subtracting the plurality of random numbers from the UE latitude or an addition value obtained by adding the plurality of random numbers to the UE latitude, and may set the plurality of random numbers and the subtraction value or the addition value as the plurality of UE latitude shares. For example, for the UE latitude indicating the latitude of the target UE 40, the location share generation unit 218 generates N random numbers, calculates a subtraction value obtained by subtracting the N random numbers from the UE latitude or an addition value obtained by adding the N random numbers to the UE latitude, and may set the N random numbers and the subtraction value or the addition value as N + 1 UE latitude shares.

[0077] The location share generation unit 218 generates a plurality of random numbers for the UE longitude indicating the longitude of the target UE 40, calculates a subtraction value obtained by subtracting the plurality of random numbers from the UE longitude or an addition value obtained by adding the plurality of random numbers to the UE longitude, and may use the plurality of random numbers and the subtraction value or the addition value as a plurality of UE longitude shares. For example, the location share generation unit 218 generates N random numbers for the UE longitude indicating the longitude of the target UE 40, calculates a subtraction value obtained by subtracting the N random numbers from the UE longitude or an addition value obtained by adding the N random numbers to the UE longitude, and may use the N random numbers and the subtraction value or the addition value as N + 1 UE longitude shares.

[0078] The location share transmission unit 220 transmits one UE latitude share and one UE longitude share to each of the plurality of location verification NFs 300. The location share transmission unit 220 may transmit one UE latitude share and one UE longitude share to each of the N + 1 location verification NFs 300.

[0079] When the UE range is included in the location information acquired by the location information acquisition unit 216, the location share generation unit 218 generates a plurality of random numbers for the UE range, calculates a subtraction value obtained by subtracting the plurality of random numbers from the UE range or an addition value obtained by adding the plurality of random numbers to the UE range, and may use the plurality of random numbers and the subtraction value or the addition value as a plurality of UE range shares. For example, the location share generation unit 218 generates N random numbers for the UE range, calculates a subtraction value obtained by subtracting the N random numbers from the UE range or an addition value obtained by adding the N random numbers to the UE range, and may use the N random numbers and the subtraction value or the addition value as N + 1 UE range shares. The location share transmission unit 220 may transmit one UE range share to each of the plurality of location verification NFs 300.

[0080] FIG. 7 schematically shows an example of the functional configuration of the location verification NF 300. The location verification NF 300 includes a storage unit 310, a reception unit 312, an arithmetic processing execution unit 314, and an arithmetic result transmission unit 316.

[0081] The receiving unit 312 receives the range share from the request server 100. The receiving unit 312 receives the position share from the management server 200.

[0082] The arithmetic processing execution unit 314 executes predetermined arithmetic processing on the range share received by the receiving unit 312 from the request server 100 and the position share received by the receiving unit 312 from the management server 200.

[0083] The arithmetic result transmission unit 316 transmits the arithmetic result of the arithmetic processing by the arithmetic processing execution unit 314 to the request server 100.

[0084] When the verification range is rectangular and the receiving unit 312 receives the high-latitude share, low-latitude share, high-longitude share, and low-longitude share from the request server 100 and receives the UE latitude share and UE longitude share from the management server 200, the arithmetic processing execution unit 314 may execute arithmetic processing of subtracting the UE latitude share from the high-latitude share, subtracting the low-latitude share from the UE latitude share, subtracting the UE longitude share from the high-longitude share, and subtracting the low-longitude share from the UE longitude share. The arithmetic result transmission unit 316 may transmit the high-latitude arithmetic result obtained by subtracting the UE latitude share from the high-latitude share, the low-latitude verification result obtained by subtracting the low-latitude share from the UE latitude share, the high-longitude arithmetic result obtained by subtracting the UE longitude share from the high-longitude share, and the low-longitude arithmetic result obtained by subtracting the low-longitude share from the UE longitude share to the request server 100. The determination unit 124 may determine whether the UE latitude is included in the range of the high-latitude and low-latitude of the range information based on a plurality of high-latitude arithmetic results and a plurality of low-latitude arithmetic results, and determine whether the UE longitude is included in the range of the high-longitude and low-longitude of the range information based on a plurality of high-longitude arithmetic results and a plurality of low-longitude arithmetic results. For example, the determination unit 124 may determine whether the UE latitude is included in the range of the high-latitude and low-latitude of the range information based on N + 1 high-latitude arithmetic results and N + 1 low-latitude arithmetic results, and determine whether the UE longitude is included in the range of the high-longitude and low-longitude of the range information based on N + 1 high-longitude arithmetic results and N + 1 low-longitude arithmetic results.

[0085] When the verification range is circular and the receiving unit 312 receives the verification latitude share, verification longitude share, and verification radius share from the request server 100 and receives the UE latitude share and UE longitude share from the management server 200, the arithmetic processing execution unit 314 may execute arithmetic processing of subtracting the UE latitude share from the verification latitude share and subtracting the UE longitude share from the verification longitude share. The arithmetic result transmission unit 316 may transmit the verification latitude arithmetic result obtained by subtracting the UE latitude share from the verification latitude share and the verification longitude arithmetic result obtained by subtracting the UE longitude share from the verification longitude share to another location verification NF 300. Which of the plurality of location verification NF 300 the arithmetic result transmission unit 316 transmits the verification latitude arithmetic result and the verification longitude arithmetic result to may be determined in advance according to the variance number or the like. The determination may be made by the administrator of the system 10, the administrator of the request server 100, etc., and may be set for each of the plurality of location verification NF 300. The determination may be made by the request server 100, and the determination result may be notified from the request server 100 to each of the plurality of location verification NF 300.

[0086] The receiving unit 312 receives the verification latitude arithmetic result and the verification longitude arithmetic result from another location verification NF 300. The arithmetic processing execution unit 314 may calculate the share of the squared distance from the verification latitude arithmetic result (which may be described as the self-verification latitude arithmetic result) obtained by subtracting the UE latitude share from the verification latitude share, the verification longitude arithmetic result (which may be described as the self-verification longitude arithmetic result) obtained by subtracting the UE longitude share from the verification longitude share, the verification latitude arithmetic result (which may be described as the other verification latitude arithmetic result) and the verification longitude arithmetic result (which may be described as the self-verification longitude arithmetic result) received by the share receiving unit 312 from another location verification NF 300. The arithmetic processing execution unit 314 adds the value obtained by multiplying the self-verification latitude arithmetic result by the other verification latitude arithmetic result and 2 and the square of the self-verification latitude arithmetic result (self-verification latitude arithmetic result 2 +2×self-verification latitude arithmetic result×other verification latitude arithmetic result), the value obtained by multiplying the self-verification longitude arithmetic result by the other verification longitude arithmetic result and 2, and the square of the self-verification longitude arithmetic result (self-verification longitude arithmetic result 2The share of the squared distance may be calculated by adding (+2 × the self-verification longitude calculation result × the other-verification longitude calculation result). The calculation result transmission unit 316 may transmit the share of the squared distance calculated by the calculation process execution unit 314 and the verification radius share to the request server 100.

[0087] The calculation process reception unit 122 receives the share of the squared distance and the verification radius share from each of the plurality of position verification NF 300. The determination unit 124 may specify the distance between the center of the verification range and the position of the target UE 40 based on the plurality of shares of the squared distance received from the plurality of position verification NF 300. The determination unit 124 may specify the squared distance between the center of the verification range and the position of the target UE 40 by adding the plurality of shares of the squared distance, and specify the distance between the center of the verification range and the position of the target UE 40 from the squared distance. Further, the determination unit 124 may specify the verification radius based on the plurality of verification radius shares. The determination unit 124 may specify the verification radius by adding the plurality of verification radius shares. The determination unit 124 may determine whether the position of the target UE 40 is included in the verification range based on the specified distance between the center of the verification range and the position of the target UE 40 and the specified verification radius.

[0088] In this way, when the verification range is circular, by exchanging shares among the position verification NF 300 (however, limited to exchanges up to a recoverable number), the position verification NF 300 may be made to calculate up to the share of the squared distance. Thereby, the amount of information provided to the request server 100 can be reduced, and the concealment degree of the information can be increased.

[0089] As another example when the verification range is circular, when the receiving unit 312 receives the verification latitude share, verification longitude share, and verification radius share from the request server 100 and receives the UE latitude share and UE longitude share from the management server 200, the arithmetic processing execution unit 314 may execute arithmetic processing of subtracting the UE latitude share from the verification latitude share and subtracting the UE longitude share from the verification longitude share. The arithmetic result transmission unit 316 may transmit the verification latitude arithmetic result obtained by subtracting the UE latitude share from the verification latitude share, the verification longitude arithmetic result obtained by subtracting the UE longitude share from the verification longitude share, and the verification radius share to the request server 100. The determination unit 124 may specify the distance between the center of the verification range and the position of the UE 40 based on a plurality of verification latitude arithmetic results and a plurality of verification longitude arithmetic results, specify the verification radius based on a plurality of verification radius shares, and determine whether the position of the UE 40 is included in the verification range based on the specified distance and the specified verification radius. For example, the determination unit 124 may specify the distance between the center of the verification range and the position of the UE 40 based on N + 1 verification latitude arithmetic results and N + 1 verification longitude arithmetic results, specify the verification radius based on N + 1 verification radius shares, and determine whether the UE 40 position is included in the verification range based on the specified distance and the specified verification radius.

[0090] FIG. 8 schematically shows an example of the system 10. Here, the case where the system 10 is applied to a 5G mobile communication network is illustrated.

[0091] In the example shown in FIG. 8, the network 20 includes a UPF 22, a location information table 24, and a NEF 26. The NEF 26 may function as the management server 200. That is, the management server 200 may include the NEF 26. The management server 200 may include the location information table 24. The management server 200 may include the UPF 22.

[0092] The management server 200 communicates with the request server 100 and the location verification system 30 via the NEF 26. The management server 200 may receive request information from the request server 100. In response to receiving the request information, the management server 200 may retrieve the location information of the target UE 40 from a location information table 24 containing the location information of a plurality of UEs 40, generate a plurality of location shares from the location information, and transmit each of the plurality of location shares to each of the plurality of location verification NFs 300.

[0093] FIG. 9 schematically shows an example of the hardware configuration of a computer 1200 that functions as the request server 100, the management server 200, or the location verification NF 300. Programs installed in the computer 1200 may cause the computer 1200 to function as one or more "parts" of the apparatus according to the present embodiment, or cause the computer 1200 to execute operations or the one or more "parts" associated with the apparatus according to the present embodiment, and / or cause the computer 1200 to execute the process or stages of the process according to the present embodiment. Such programs may be executed by the CPU 1212 to cause the computer 1200 to execute certain operations associated with some or all of the blocks of the flowcharts and block diagrams described herein.

[0094] The computer 1200 according to this embodiment includes a CPU 1212, a RAM 1214, and a graphic controller 1216, which are interconnected by a host controller 1210. The computer 1200 also includes input / output units such as a communication interface 1222, a storage device 1224, a DVD drive, and an IC card drive, which are connected to the host controller 1210 via an input / output controller 1220. The DVD drive may be a DVD-ROM drive, a DVD-RAM drive, or the like. The storage device 1224 may be a hard disk drive, a solid state drive, or the like. The computer 1200 also includes legacy input / output units such as a ROM 1230 and a keyboard, which are connected to the input / output controller 1220 via an input / output chip 1240.

[0095] The CPU 1212 operates according to programs stored in the ROM 1230 and the RAM 1214, thereby controlling each unit. The graphic controller 1216 acquires image data generated by the CPU 1212 in a frame buffer provided in the RAM 1214 or the like, or in itself, and causes the image data to be displayed on the display device 1218.

[0096] The communication interface 1222 communicates with other electronic devices via a network. The storage device 1224 stores programs and data used by the CPU 1212 in the computer 1200. The DVD drive reads a program or data from a DVD-ROM or the like and provides it to the storage device 1224. The IC card drive reads programs and data from an IC card and / or writes programs and data to an IC card.

[0097] ROM 1230 stores therein a boot program or the like executed by computer 1200 at activation, and / or a program dependent on the hardware of computer 1200. Input / output chip 1240 may also be connected to input / output controller 1220 via various input / output units through a USB port, a parallel port, a serial port, a keyboard port, a mouse port, etc.

[0098] The program is provided by a computer-readable storage medium such as a DVD-ROM or an IC card. The program is read from the computer-readable storage medium, installed in storage device 1224, RAM 1214, or ROM 1230 which is also an example of a computer-readable storage medium, and executed by CPU 1212. The information processing described in these programs is read by computer 1200, resulting in cooperation between the programs and the various types of hardware resources described above. The apparatus or method may be configured by realizing an operation or processing of information according to the use of computer 1200.

[0099] For example, when communication is executed between computer 1200 and an external device, CPU 1212 may execute a communication program loaded in RAM 1214 and instruct communication interface 1222 to perform communication processing based on the processing described in the communication program. Communication interface 1222 reads transmission data stored in a transmission buffer area provided in a recording medium such as RAM 1214, storage device 1224, DVD-ROM, or IC card under the control of CPU 1212, transmits the read transmission data to the network, or writes the received data received from the network to a reception buffer area or the like provided on the recording medium.

[0100] In addition, the CPU 1212 may cause all or a necessary part of a file or database stored in an external recording medium such as the storage device 1224, a DVD drive (DVD-ROM), an IC card, etc. to be read into the RAM 1214, and may execute various types of processing on the data on the RAM 1214. Next, the CPU 1212 may write back the processed data to the external recording medium.

[0101] Various types of information such as various types of programs, data, tables, and databases may be stored in the recording medium and may be subjected to information processing. The CPU 1212 may perform various types of processing on the data read from the RAM 1214, including various types of operations, information processing, conditional judgment, conditional branch, unconditional branch, information search / replacement, etc. described throughout this disclosure and specified by the instruction sequence of the program, and write back the result to the RAM 1214. Also, the CPU 1212 may search for information in files, databases, etc. in the recording medium. For example, when a plurality of entries each having an attribute value of a first attribute associated with an attribute value of a second attribute are stored in the recording medium, the CPU 1212 searches for an entry that matches the condition where the attribute value of the first attribute is specified among the plurality of entries, reads the attribute value of the second attribute stored in the entry, and thereby may obtain the attribute value of the second attribute associated with the first attribute that satisfies a predetermined condition.

[0102] The programs or software modules described above may be stored in a computer-readable storage medium on or near the computer 1200. Also, a recording medium such as a hard disk or RAM provided in a server system connected to a dedicated communication network or the Internet can be used as a computer-readable storage medium, and thereby provide the program to the computer 1200 via the network.

[0103] In the flowcharts and block diagrams in this embodiment, the blocks may represent stages of a process in which an operation is performed or "parts" of a device that has a role in performing the operation. Specific stages and "parts" may be implemented by a dedicated circuit, a programmable circuit supplied with computer-readable instructions stored on a computer-readable storage medium, and / or a processor supplied with computer-readable instructions stored on a computer-readable storage medium. The dedicated circuit may include digital and / or analog hardware circuits, and may include an integrated circuit (IC) and / or discrete circuits. The programmable circuit may include, for example, a field programmable gate array (FPGA), a programmable logic array (PLA), etc., and includes AND, OR, exclusive OR, NAND, NOR, and other logical operations, flip-flops, registers, and memory elements, and may include a reconfigurable hardware circuit.

[0104] The computer-readable storage medium may include any tangible device capable of storing instructions executable by an appropriate device. As a result, a computer-readable storage medium having instructions stored therein will comprise a product that includes instructions that can be executed to create means for performing the operations specified in the flowchart or block diagram. Examples of computer-readable storage media may include electronic storage media, magnetic storage media, optical storage media, electromagnetic storage media, semiconductor storage media, etc. More specific examples of computer-readable storage media may include floppy (registered trademark) disks, diskettes, hard disks, random access memory (RAM), read only memory (ROM), erasable programmable read only memory (EPROM or flash memory), electrically erasable programmable read only memory (EEPROM), static random access memory (SRAM), compact disc read only memory (CD-ROM), digital versatile disc (DVD), Blu-ray (registered trademark) disc, memory stick, integrated circuit card, etc.

[0105] Computer-readable instructions may include any combination of one or more programming languages, including assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state-setting data, or object-oriented programming languages such as Smalltalk®, JAVA®, C++, and conventional procedural programming languages such as the "C" programming language or similar programming languages, either in source code or object code.

[0106] Computer-readable instructions may be provided locally or via a wide area network (WAN) such as a local area network (LAN), the Internet, etc., to a processor of a programmable data processing device such as a computer, or to a programmable circuit, for the processor or programmable circuit to execute the computer-readable instructions to generate means for performing the operations specified in a flowchart or block diagram. Here, the computer may be a personal computer (PC), tablet computer, smartphone, workstation, server computer, general-purpose computer, or special-purpose computer, etc., or may be a computer system with multiple computers connected. Such a computer system with multiple computers connected is also called a distributed computing system and is a computer in a broad sense. In a distributed computing system, each of the multiple computers executes a part of the program and, as needed, transfers data during program execution between computers, so that the multiple computers collectively execute the program.

[0107] Examples of processors include computer processors, central processing units, processing units, microprocessors, digital signal processors, controllers, microcontrollers, etc. A computer may include one processor or multiple processors. In a multiprocessor system with multiple processors, each processor executes a part of the program and, if necessary, passes data during program execution between processors so that the multiple processors execute the program collectively. For example, in the execution of multitasking, each of the multiple processors may execute a portion of each task in pieces by switching tasks every time slice. In this case, which part of a single program each processor executes changes dynamically. Which part of the program each of the multiple processors executes may be statically determined by programming that takes into account the multiprocessor.

[0108] As described above, the present invention has been described using embodiments, but the technical scope of the present invention is not limited to the scope described in the above embodiments. It is obvious to those skilled in the art that various changes or improvements can be made to the above embodiments. It is clear from the description of the claims that forms with such changes or improvements can also be included in the technical scope of the present invention.

[0109] It should be noted that the execution order of each process such as operations, procedures, steps, and stages in the devices, systems, programs, and methods shown in the claims, the specification, and the drawings is not explicitly stated as "before" or "preceding" etc., and can be realized in any order unless the output of the previous process is used in the subsequent process. Regarding the operation flows in the claims, the specification, and the drawings, even if explanations are given using "first," "next," etc. for convenience, it does not mean that it is essential to implement in this order.

Explanation of Reference Numerals

[0110] 10 System, 20 Network, 22 UPF, 24 Location Information Table, 26 NEF, 30 Location Verification System, 40 UE, 42 User, 100 Request Server, 102 Application, 110 Memory Unit, 112 UE Information Acquisition Unit, 114 Request Information Transmission Unit, 116 Range Information Acquisition Unit, 118 Range Share Generation Unit, 120 Range Share Transmission Unit, 122 Computation Processing Reception Unit, 124 Determination Unit, 126 Output Control Unit, 200 Management Server, 202 Location Information Table, 204 Transmission Unit, 210 Memory Unit, 212 Location Information Management Unit, 214 Request Information Reception Unit, 216 Location Information Acquisition Unit, 218 Location Share Generation Unit, 220 Location Share Transmission Unit, 300 Location Verification NF, 310 Memory Unit, 312 Reception Unit, 314 Computation Processing Execution Unit, 316 Computation Result Transmission Unit, 1200 Computer, 1210 Host Controller, 1212 CPU, 1214 RAM, 1216 Graphics Controller, 1218 Display Device, 1220 Input / Output Controller, 1222 Communication Interface, 1224 Storage Device, 1230 ROM, 1240 Input / Output Chip

Claims

1. A first server, a second server, and a plurality of third servers are provided, wherein the first server includes a range share generation unit that generates a plurality of range shares from range information indicating a verification range for verifying whether the position of a target UE is included; and a range share transmission unit that transmits each of the plurality of range shares generated by the range share generation unit to each of the plurality of third servers. The first server has The second server includes a position information acquisition unit that acquires the position information of the target UE from the position information of the plurality of UEs managed by a position information management unit that manages the position information of the plurality of UEs; a position share generation unit that generates a plurality of position shares from the position information of the target UE; and a position share transmission unit that transmits each of the plurality of position shares generated by the position share generation unit to each of the plurality of third servers. The second server has Each of the plurality of third servers includes an arithmetic processing execution unit that executes predetermined arithmetic processing on the range share received from the first server and the position share received from the second server; and an arithmetic result transmission unit that transmits the arithmetic result of the arithmetic processing by the arithmetic processing execution unit to the first server. Each of the plurality of third servers has The first server includes a determination unit that determines whether the position of the target UE is included in the verification range based on the plurality of arithmetic results received from each of the plurality of third servers. A system having

2. The range share generation unit generates the plurality of range shares that can restore the range information when the plurality of range shares are combined, The position share generation unit generates the plurality of position shares that can restore the position information when the plurality of position shares are combined. The system according to claim 1.

3. The range share generation unit generates N random numbers and an addition value obtained by adding the N random numbers to the range information as N + 1 range shares, The position share generation unit generates N random numbers and an addition value obtained by adding the N random numbers to the position information as N + 1 position shares, The arithmetic processing execution unit executes arithmetic processing for calculating the difference between the range share and the position share. The system according to claim 2.

4. The range information includes high latitude, low latitude, high longitude, and low longitude indicating the rectangular verification range, The position information includes UE latitude and UE longitude indicating the latitude and longitude of the target UE. The range share generation unit generates the plurality of range shares including N random numbers and N + 1 high-latitude shares including the N random numbers and a high-latitude addition value obtained by adding the N random numbers to the high latitude, N random numbers and N + 1 low-latitude shares including the N random numbers and a low-latitude addition value obtained by adding the N random numbers to the low latitude, N random numbers and N + 1 high-longitude shares including the N random numbers and a high-longitude addition value obtained by adding the N random numbers to the high longitude, and N random numbers and N + 1 low-longitude shares including the N random numbers and a low-longitude addition value obtained by adding the N random numbers to the low longitude, and the range share transmission unit transmits one high-latitude share, one low-latitude share, one high-longitude share, and one low-longitude share to each of the N + 1 third servers, The location share generation unit generates the location shares including N random numbers and N + 1 UE latitude shares including the N random numbers and an addition value obtained by adding the N random numbers to the UE latitude, and N random numbers and N + 1 UE longitude shares including the N random numbers and an addition value obtained by adding the N random numbers to the UE longitude, and the location share transmission unit transmits one UE latitude share and one UE longitude share to each of the N + 1 third servers. The system according to claim 3.

5. The arithmetic processing execution unit executes arithmetic processing of subtracting the UE latitude share from the high-latitude share, subtracting the low-latitude share from the UE latitude share, subtracting the UE longitude share from the high-longitude share, and subtracting the low-longitude share from the UE longitude share, and the arithmetic result transmission unit transmits a high-latitude arithmetic result obtained by subtracting the UE latitude share from the high-latitude share, a low-latitude arithmetic result obtained by subtracting the low-latitude share from the UE latitude share, a high-longitude arithmetic result obtained by subtracting the UE longitude share from the high-longitude share, and a low-longitude arithmetic result obtained by subtracting the low-longitude share from the UE longitude share to the first server, and the determination unit determines whether the UE latitude is included in the range of the high latitude and the low latitude of the range information based on the N + 1 high-latitude arithmetic results and the N + 1 low-latitude arithmetic results, and determines whether the UE longitude is included in the range of the high longitude and the low longitude of the range information based on the N + 1 high-longitude arithmetic results and the N + 1 low-longitude arithmetic results. The system according to claim 4.

6. ​ ​ The range information includes a verification latitude and a verification longitude which are the latitude and longitude of the center of the circular verification range, and a verification radius which is the radius of the verification range. The position information includes a UE latitude and a UE longitude which indicate the latitude and longitude of the target UE. The range share generation unit generates N + 1 verification latitude shares including N random numbers and a verification latitude subtraction value obtained by subtracting the N random numbers from the verification latitude, N + 1 verification longitude shares including N random numbers and a verification longitude subtraction value obtained by subtracting the N random numbers from the verification longitude, N + 1 verification radius shares including N random numbers and a verification radius subtraction value obtained by subtracting the N random numbers from the verification radius, generates the plurality of range shares including the above, The range share transmission unit transmits one verification latitude share, one verification longitude share, and one verification radius share to each of the N + 1 third servers. The position share generation unit generates N + 1 UE latitude shares including N random numbers and a sum value obtained by adding the N random numbers to the UE latitude, N + 1 UE longitude shares including N random numbers and a sum value obtained by adding the N random numbers to the UE longitude generates the position share including the above, The position share transmission unit transmits one UE latitude share and one UE longitude share to each of the N + 1 third servers. The system according to claim 3.

7. The arithmetic processing execution unit executes an arithmetic process of subtracting the UE latitude share from the verification latitude share and subtracting the UE longitude share from the verification longitude share. The arithmetic result transmission unit transmits a verification latitude arithmetic result obtained by subtracting the UE latitude share from the verification latitude share and a verification longitude arithmetic result obtained by subtracting the UE longitude share from the verification longitude share to the other third servers among the N + 1 third servers. The arithmetic processing execution unit calculates a share of the squared distance from the verification latitude arithmetic result obtained by subtracting the UE latitude share from the verification latitude share, the verification longitude arithmetic result obtained by subtracting the UE longitude share from the verification longitude share, and the verification latitude arithmetic result and the verification longitude arithmetic result received from the other third servers. The arithmetic result transmission unit transmits the share of the squared distance calculated by the arithmetic processing execution unit and the verification radius share to the first server. The determination unit specifies the distance between the center of the verification range and the position of the target UE based on the shares of the N + 1 squared distances, specifies the verification radius based on the shares of the N + 1 verification radii, and determines whether the position of the target UE is included in the verification range based on the specified distance and the specified verification radius. The system according to claim 6.

8. The arithmetic processing execution unit executes arithmetic processing of subtracting the UE latitude share from the verification latitude share and subtracting the UE longitude share from the verification longitude share. The arithmetic result transmission unit transmits the verification latitude arithmetic result obtained by subtracting the UE latitude share from the verification latitude share, the verification longitude arithmetic result obtained by subtracting the UE longitude share from the verification longitude share, and the verification radius share to the first server. The determination unit specifies the distance between the center of the verification range and the position of the UE based on the N + 1 verification latitude arithmetic results and the N + 1 verification longitude arithmetic results, specifies the verification radius based on the N + 1 verification radius shares, and determines whether the position of the target UE is included in the verification range based on the specified distance and the specified verification radius. The system according to claim 6.

9. A range share generation unit that generates a plurality of range shares from range information indicating a verification range for verifying whether the position of a target UE is included; A range share transmission unit that transmits each of the plurality of range shares generated by the range share generation unit to each of a plurality of position verification servers; A request information transmission unit that transmits request information for requesting a management server that manages position information of a plurality of UEs to generate a plurality of position shares from the position information of the target UE and transmit each of the plurality of position shares to each of the plurality of position verification servers; An arithmetic result reception unit that receives, from each of the plurality of position verification servers, an arithmetic result obtained by executing a predetermined arithmetic process on the received range share and position share; A determination unit that determines whether the position of the target UE is included in the verification range based on the plurality of arithmetic results received from each of the plurality of position verification servers A request server comprising.

10. A program for causing a computer to function as the request server according to claim 9.

11. A plurality of position verification servers Comprising, Each of the plurality of location verification servers receives, from a request server that has generated a plurality of range shares from range information indicating a verification range for verifying whether the location of a target UE is included, one of the plurality of range shares, and a share reception unit that receives, from a management server that manages location information of a plurality of UEs, one of a plurality of location shares generated from the location information of the target UE; an arithmetic processing execution unit that executes predetermined arithmetic processing on the range share received from the request server and the location share received from the management server; an arithmetic result transmission unit that transmits the arithmetic result of the arithmetic processing by the arithmetic processing execution unit to the request server A location verification system having.

12. A location information management unit that manages location information of a plurality of UEs; a request information reception unit that receives, from a request server, request information for requesting to generate a plurality of location shares from the location information of a target UE and transmit each of the plurality of location shares to each of the plurality of location verification servers; a location information acquisition unit that acquires the location information of the target UE from the location information of the plurality of UEs managed by the location information management unit in response to the request information reception unit receiving the request information; a location share generation unit that generates the plurality of location shares from the location information of the target UE; a location share transmission unit that transmits each of the plurality of location shares generated by the location share generation unit to each of the plurality of location verification servers A management server comprising.

13. A program for causing a computer to function as the management server according to claim 12.

Citation Information

Patent Citations

  • Computer system and provision method of data

    JP2021165896A

  • Contact analysis system, contact analysis method, and program

    JP2022141480A

  • Audio content provision device, control method, and computer-readable medium

    WO2022244109A1