system
Patent Information
- Application Number
- JP2023209629
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2023-12-12
- Publication Date
- 2025-03-14
- Estimated Expiration
- 2043-12-12
Smart Images

Figure 0007645973000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to a system, a request server, a location verification system, a management server, and a program. [Background technology]
[0002] Patent Document 1 describes that a server acquires location information of a UE (User Equipment) via a NEF (Network Exposure Function) of a mobile communication network. [Prior art document] [Patent Documents] [Patent Document 1] JP 2023-112615 A Summary of the Invention [Means for solving the problem]
[0003] According to one embodiment of the present invention, there is provided a system. The system may include a first server, a second server, and a plurality of third servers. The first 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 location of a target UE is included. The first 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 third servers. The second server may include a location information acquisition unit that acquires location information of the target UE from location information of the plurality of UEs managed by a location information management unit that manages location information of the plurality of UEs. The second server may include a location share generation unit that generates a plurality of location shares from the location information of the target UE. The second server may include 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 include an arithmetic processing execution unit that executes a predetermined arithmetic processing on the range share received from the first server and the location share received from the second server. Each of the third servers may include a calculation result transmission unit that transmits a calculation result of the calculation process by the calculation processing execution unit to the first server. The first server may include a determination unit that determines whether the location of the target UE is included in the verification range based on the calculation results received from the third servers.
[0004] In the system, the range share generation unit may generate the plurality of range shares from which the range information can be restored when the plurality of range shares are gathered, and the location share generation unit may generate the plurality of location shares from which the location information can be restored when the plurality of location shares are gathered. The range share generation unit may generate N+1 range shares by adding N random numbers and sums obtained by adding the N random numbers to the range information, and the location share generation unit may generate N+1 location shares by adding N random numbers and sums obtained by adding the N random numbers to the location information, and the calculation processing execution unit may execute a calculation processing to calculate a difference between the range share and the location share.
[0005] In any of the systems, the range information may include a high latitude, a low latitude, a high longitude, and a low longitude indicating the rectangular verification range, the location information may include a UE latitude and a UE longitude indicating the latitude and longitude of the target UE, and the range share generation unit may generate N+1 high latitude shares including N random numbers and a high latitude added value obtained by adding the N random numbers to the high latitude, N+1 low latitude shares including N random numbers and a low latitude added value obtained by adding the N random numbers to the low latitude, N+1 high longitude shares including N random numbers and a high longitude added value obtained by adding the N random numbers to the high longitude, and N+1 low longitude shares including N random numbers and a low longitude added value obtained by adding the N random numbers to the low longitude. The range share transmission unit may transmit the high latitude share, the low latitude share, the high longitude share, and the low longitude share one by one to each of the N+1 third servers, the location share generation unit may generate the location shares including N+1 UE latitude shares each including N random numbers and an added value obtained by adding the N random numbers to the UE latitude, and N+1 UE longitude shares each including N random numbers and an added value obtained by adding the N random numbers to the UE longitude, and the location share transmission unit may transmit the UE latitude share and the UE longitude share one by one to each of the N+1 third servers.The calculation processing execution unit may execute calculation processing to subtract the UE latitude share from the high latitude share, subtract the low latitude share from the UE latitude share, subtract the UE longitude share from the high longitude share, and subtract the low longitude share from the UE longitude share, and the calculation result transmission unit may transmit a high latitude calculation result obtained by subtracting the UE latitude share from the high latitude share, a low latitude calculation result obtained by subtracting the low latitude share from the UE latitude share, and a calculation result obtained by subtracting the UE longitude share from the high longitude share. The high longitude calculation result obtained by subtracting the low longitude share from the UE longitude share may be transmitted to the first server, and the determination unit may determine whether the UE latitude is included in the high latitude and low latitude range of the range information based on the N+1 high longitude calculation results and the N+1 low latitude calculation results, and may determine whether the UE longitude is included in the high longitude and low longitude range of the range information based on the N+1 high longitude calculation results and the N+1 low longitude calculation results.
[0006] In any of the systems, the range information may include a verification latitude and a verification longitude that are the latitude and longitude of the center of the circular verification range, and a verification radius that is the radius of the verification range, the location information may include a UE latitude and a UE longitude that indicate the latitude and longitude of the target UE, and the range share generation unit may generate 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 transmitter may transmit the verification latitude share, the verification longitude share, and the verification radius share one by one to each of the N+1 third servers, the location share generator may generate the location shares including N+1 UE latitude shares each including N random numbers and an added value obtained by adding the N random numbers to the UE latitude, and N+1 UE longitude shares each including N random numbers and an added value obtained by adding the N random numbers to the UE longitude, and the location share transmitter may transmit the UE latitude share and the UE longitude share one by one to each of the N+1 third servers.In the system, the calculation processing execution unit may execute a calculation process to subtract the UE latitude share from the verification latitude share and to subtract the UE longitude share from the verification longitude share, and the calculation result transmission unit may transmit a verification latitude calculation result obtained by subtracting the UE latitude share from the verification latitude share and a verification longitude calculation result obtained by subtracting the UE longitude share from the verification longitude share to another third server among the N+1 third servers, and the calculation processing execution unit may transmit the verification latitude calculation result obtained by subtracting the UE latitude share from the verification latitude share and the verification longitude calculation result obtained by subtracting the UE longitude share from the verification longitude share to another third server among the N+1 third servers. and the verification latitude calculation result and the verification longitude calculation result received from the other third server, the calculation result transmission unit may transmit the squared distance share and the verification radius share calculated by the calculation processing execution unit to the first server, and the determination unit may identify a distance between the center of the verification range and a position of the UE using the N+1 squared distance shares, identify the verification radius using the N+1 verification radius shares, and determine whether the position of the target UE is included in the verification range using the identified distance and the identified verification radius. In the system, the calculation processing execution unit may perform calculation processing to subtract the UE latitude share from the verification latitude share and to subtract the UE longitude share from the verification longitude share; the calculation result transmission unit may transmit to the first server a verification latitude calculation result obtained by subtracting the UE latitude share from the verification latitude share, a verification longitude calculation result obtained by subtracting the UE longitude share from the verification longitude share, and the verification radius share; and the determination unit may determine the distance between the center of the verification range and the position of the UE using the N+1 verification latitude calculation results and the N+1 verification longitude calculation results, determine the verification radius using the N+1 verification radius shares, and determine whether the position of the UE is included in the verification range based on the determined distance and the determined verification radius.
[0007] According to one embodiment of the present invention, there is provided a request server. The request server may include a range share generation unit that generates multiple range shares from range information indicating a verification range for verifying whether the location of a target UE is included. The request server may include a range share transmission unit that transmits each of the multiple range shares generated by the range share generation unit to each of the multiple location verification servers. The request server may include a request information transmission unit that transmits request information to a management server that manages location information of multiple UEs, requesting that the management server generate multiple location shares from the location information of the target UE and transmit each of the multiple location shares to each of the multiple location verification servers. The request server may include a calculation result receiving unit that receives, from each of the multiple location verification servers, calculation results obtained by each of the multiple location verification servers performing a predetermined calculation process on the received range shares and location shares. The request server may include a determination unit that determines whether the location of the target UE is included in the verification range based on the multiple calculation results received from each of the multiple location verification servers.
[0008] According to one embodiment of the present invention, there is provided a program for causing a computer to function as the request server.
[0009] According to one embodiment of the present invention, there is provided a location verification system including a plurality of location verification servers. Each of the plurality of location verification servers may include a share receiving unit that receives one of a plurality of range shares from a request server 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, and that receives one of a plurality of location shares from a management server that manages location information of a plurality of UEs, the location shares having been generated from the location information of the target UE. Each of the plurality of location verification servers may include a calculation processing execution unit that executes predetermined calculation processing on the range share received from the request server and the location share received from the management server. Each of the plurality of location verification servers may include a calculation result transmission unit that transmits a calculation result of the calculation processing executed by the calculation processing execution unit to the request server.
[0010] According to one embodiment of the present invention, there is provided a management server. The management server may include a location information management unit that manages location 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 that the management server generate a plurality of location shares from location information of a target UE and transmit each of the plurality of location shares to a plurality of location verification servers. The management server may include 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 being received by the request information receiving unit. The management server may include a location share generation unit that generates the plurality of location shares from the location information of the target UE. The management server may include 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.
[0011] According to one embodiment of the present invention, there is provided a program for causing a computer to function as the management server.
[0012] The above summary of the invention does not list all of the necessary features of the present invention, and subcombinations of these features may also constitute inventions. [Brief explanation of the drawings]
[0013] [Figure 1] An example of a system 10 is shown schematically. [Figure 2] FIG. 2 is an explanatory diagram for explaining the outline of the processing contents of the system 10. [Figure 3] FIG. 2 is an explanatory diagram for explaining an example of processing content by the system 10. [Figure 4] FIG. 2 is an explanatory diagram for explaining an example of processing content by the system 10. [Figure 5] 2 shows an example of a functional configuration of the request server 100. [Figure 6] 2 shows an example of a functional configuration of a management server 200. [Figure 7] 10 shows an example of the functional configuration of the location verification NF 300. [Figure 8] An example of a system 10 is shown schematically. [Figure 9] 1 illustrates an example of a hardware configuration of a computer 1200 that functions as the request server 100, the management server 200, or the location verification NF 300. DETAILED DESCRIPTION OF THE INVENTION
[0014] The present invention will be described below through embodiments of the invention, but the following embodiments do not limit the scope of the invention according to the claims. Furthermore, not all of the combinations of features described in the embodiments are necessarily essential to the solution of the invention.
[0015] The NEF has the function of aggregating and providing information obtained from 5GC (5GCore) and UEs. Various standardization organizations have defined functions that, upon external request, determine and verify the UE's location based on the UE's serving cell information, etc. In a conventional NF (Network Function) that implements UE location verification functionality, consideration must be given to personal information because the UE's location associated with user information is used in calculations. In the system 10 according to this embodiment, for example, secret sharing, which conceals data by dividing it into meaningless fragments, distributes location information associated with a user and range information indicating the verification range as shares, calculates the information on multiple servers, obtains the resulting shares, and collects them for secret recovery processing to provide the truth value of the location information verification result to an external device. This enables UE location verification without the external device knowing the UE's location associated with user information, thereby reducing the risk of information leakage and loss.
[0016] FIG. 1 illustrates an example of a system 10. The system 10 uses secret sharing to execute a process of determining whether the location of a UE 40 is within a verification range. The UE 40 may be a terminal carried by a 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 location verification system 30. The location verification system 30 includes a plurality of location 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, and the location verification NF 300 may be an example of a third server.
[0019] The request server 100, the management server 200, the location verification system 30, and the UE 40 may communicate via a network 20. The network 20 includes a mobile communication network. The mobile communication network may conform to any of the following communication methods: 5G (5th Generation), LTE (Long Term Evolution), 3G (3rd Generation), and 6G (6th Generation) or later. The network 20 includes the Internet.
[0020] The management server 200 manages UE location information indicating the location of each of the multiple UEs 40. The management server 200 may receive and manage, from each UE 40, the UE location information identified by the UE 40 performing a positioning process such as GPS (Global Positioning System) positioning. The management server 200 may manage the UE location information identified by the presence information of the UE 40. The UE location information may include UE latitude and UE longitude indicating the latitude and longitude at which the UE 40 is located. Note that, when the location of the UE 40 is not identified 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 point and the range. The management server 200 may be located within a core network of a mobile communication network. The management server 200 may be realized by a single device or multiple devices.
[0021] The request server 100 may be used by any entity that wishes to determine whether the location of the target UE 40 is within the verification range. The entity may be, for example, a so-called third party for a communication carrier that has the management server 200.
[0022] Although the request server 100 can determine whether the location of the target UE 40 is included in the verification range by receiving the location information of the target UE 40 from the management server 200 via the network 20, there is a risk of leakage of the location information of the target UE 40. Therefore, the system 10 according to this embodiment provides a mechanism using secret sharing that enables the request server 100 to obtain a determination result as to whether the location of the target UE 40 is included in the verification range, so as to prevent leakage of the location information of the target UE 40.
[0023] 2 is an explanatory diagram for outlining the processing content of the system 10. Here, the description will be given taking as an example a 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 accept input of range information from a user of the request server 100, the range information indicating a verification range for verifying whether the location of the target UE 40 is included. The application 102 may generate multiple range shares by performing secret sharing processing on the range information. The application 102 may generate multiple range shares from which the range information can be restored when the multiple range shares are collected. The application 102 may transmit each of the generated multiple range shares to each of the multiple location verification NFs 300.
[0025] Furthermore, the application 102 may accept input of UE identification information capable of identifying the target UE 40 from a user of the request server 100. The application 102 may transmit request information to the management server 200 requesting that multiple location shares be generated from the location information of the target UE 40 and transmitted to multiple location verification NFs 300, respectively. The request information may include the UE identification information. The UE identification information may be any information capable of identifying the UE 40. Examples of the UE identification information include, but are not limited to, an International Mobile Subscriber Identity (IMSI), a Temporary Mobile Subscriber Identity (TMSI), and a Global Unique Temporary Identity (GUTI).
[0026] In response to receiving request information from the request server 100, the management server 200 may identify the target UE 40 by the UE identification information included in the request information. The management server 200 may read out the location information of the target UE 40 from a location information table 202 that includes the location information of multiple UEs 40. The management server 200 may generate multiple location shares by performing secret sharing processing on the read out location information. The management server 200 may generate multiple location shares from which the location information can be restored when the multiple location shares are collected. The transmission unit 204 of the management server 200 may transmit each of the generated multiple location shares to each of the multiple location verification NFs 300.
[0027] Each of the multiple location verification NFs 300 may execute a predetermined calculation process on the range share received from the request server 100 and the location share received from the management server 200. Each of the multiple location verification NFs 300 may transmit the calculation result to the request server 100. The request server 100 may execute a secret recovery process on the calculation result received from each of the multiple location verification NFs 300, and obtain a determination result as to whether the location of the target UE 40 is included in the verification range.
[0028] 3 is an explanatory diagram illustrating an example of processing performed by the system 10. Here, we will explain 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 in the secret sharing is 3.
[0029] The management server 200 generates encrypted data B and encrypted data C using 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 regards 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 the first location verification NF300, the second location verification NF300, and the third location verification NF300, respectively.
[0030] The request server 100 generates encrypted data B and encrypted data C using random numbers for the northwest vertex latitude of the verification range, and generates encrypted data A by adding encrypted data B and encrypted data C to the northwest vertex latitude. In the example shown in FIG. 3, encrypted data B is "35000", encrypted data C is "5000", and encrypted data A is "40041". The request server 100 considers encrypted data A, encrypted data B, and encrypted data C as three high-latitude shares. The request server 100 transmits each of the three high-latitude shares to the first position verification NF300, the second position verification NF300, and the third position verification NF300, respectively.
[0031] The request server 100 generates encrypted data B and encrypted data C using random numbers for the southeast vertex latitude of the verification range, and generates encrypted data A by adding encrypted data B and encrypted data C to the southeast vertex latitude. In the example shown in FIG. 3, encrypted data B is "15000", encrypted data C is "10000", and encrypted data A is "25030". The request server 100 considers encrypted data A, encrypted data B, and encrypted data C as three low-latitude shares. The request server 100 transmits each of the three low-latitude shares to the first position verification NF300, the second position verification NF300, and the third position verification NF300, respectively.
[0032] The first location verification NF300 receives the UE latitude share "30035", the high latitude share "40041", and the low latitude share "25030", and transmits to the request server 100 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.
[0033] The second location verification NF300 receives the UE latitude share "20000", the high latitude share "35000", and the low latitude share "15000", and transmits to the request server 100 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.
[0034] The third location verification NF300, which receives the UE latitude share "10000", the high latitude share "5000", and the low latitude share "10000", transmits to the request server 100 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.
[0035] The request server 100 determines whether the latitude of the target UE 40 is included in the verification range based on the 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, the request server 100 determines that the latitude of the target UE 40 is included in the verification range if both the result "6" and the result "5" are greater than 0, and determines that the latitude is not included in the verification range if at least either one is less than 0.
[0036] Similarly, the system 10 may determine whether the longitude of the target UE 40 is included in the verification range. This allows the system 10 to determine whether the position of the target UE 40 is included in the verification range.
[0037] 4 is an explanatory diagram for explaining the processing content by the system 10. Here, we will explain how to determine whether the position of the target UE 40 is included in the circular verification range. In this example, the UE latitude indicating the latitude of the UE 40 is 6, the UE longitude indicating the longitude of the UE 40 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 number of shares of the secret sharing is 3.
[0038] The management server 200 generates encrypted data B and encrypted data C using random numbers for the UE latitude, and generates encrypted data A by subtracting the 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 regards 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 the first location verification NF300, the second location verification NF300, and the third location verification NF300, respectively.
[0039] The management server 200 generates encrypted data B and encrypted data C using random numbers for the UE longitude, and generates encrypted data A by subtracting the 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 sets the encrypted data A, the encrypted data B, and the encrypted data C as three UE longitude shares. The management server 200 transmits each of the three UE longitude shares to the first location verification NF300, the second location verification NF300, and the third location verification NF300, respectively.
[0040] The request server 100 generates encrypted data B and encrypted data C using 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, encrypted data B is "4214", encrypted data C is "4124", and encrypted data A is "-8329". The request server 100 considers 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 the first position verification NF300, the second position verification NF300, and the third position verification NF300, respectively.
[0041] The request server 100 generates encrypted data B and encrypted data C using random numbers for the verification longitude, and generates encrypted data A by subtracting encrypted data B and encrypted data C from the verification longitude. In the example shown in FIG. 4, encrypted data B is "4142", encrypted data C is "241", and encrypted data A is "-4372". The request server 100 considers encrypted data A, encrypted data B, and encrypted data C as three verification longitude shares. The request server 100 transmits each of the three verification longitude shares to the first position verification NF300, the second position verification NF300, and the third position verification NF300, respectively.
[0042] The request server 100 generates encrypted data B and encrypted data C using random numbers for the verification radius, and generates encrypted data A by subtracting the encrypted data B and 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 sets 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 the first position verification NF300, the second position verification NF300, and the third position verification NF300, respectively.
[0043] The first position verification NF300 receives 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", and transmits to the third position verification NF300 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.
[0044] The second position verification NF300 receives the UE latitude share of "1000", the UE longitude share of "300", the verification latitude share of "4214", the verification longitude share of "4142", and the verification radius share of "31", and transmits to the first position verification NF300 the calculation result x2 "3214" obtained by subtracting the UE latitude share from the verification latitude share, and the calculation result y2 "3842" obtained by subtracting the UE longitude share from the verification longitude share.
[0045] The third position verification NF300 receives the UE latitude share of "2000", the UE longitude share of "100", the verification latitude share of "4124", the verification longitude share of "241", and the verification radius share of "3213", and transmits the calculation result x3 "2124" obtained by subtracting the UE latitude share from the verification latitude share, and the calculation result y3 "141" obtained by subtracting the UE longitude share from the verification longitude share to the second position verification NF300.
[0046] The first position verification NF300 calculates the squared distance share of the calculation result x1 and calculation result y1 calculated by itself and the calculation result x2 and calculation result y2 received from the second position verification NF300, and calculates "x1 2 +2x1x2" and "y1 2 The result of the addition of "+2y1y2" and "-20573350" and the verification radius share "-3234" are sent to the request server 100.
[0047] The second position verification NF300 calculates the squared distance share of the calculation result x2 and the calculation result y2 calculated by itself and the calculation result x3 and the calculation result y3 received from the second position verification NF300, and calculates "x2 2 +2x2x3" and "y2 2 +2y2y3”, the calculation result “39827276” and the verification radius share “31” are sent to the request server 100.
[0048] The third position verification NF300 calculates the result x3 and the result y3 calculated by itself and the result x1 and the result y1 received from the first position verification NF300 as a share of the squared distance. 2 +2x3x1" and "y3 2The result of the addition of "+2y3y1" and "-19253901" and the verification radius share "3213" are sent to the request server 100.
[0049] The request server 100 specifies the squared distance "25" between the position of UE 40 and the center of the verification range by adding the calculation result "-20573350" received from the first position verification NF 300, the calculation result "39827276" received from the second position verification NF 300, and the calculation result "-19253901" received from the third position verification NF 300. The request server 100 specifies the distance "5" between the position of UE 40 and the center of the verification range from the squared distance "25".
[0050] Furthermore, the request server 100 determines the verification radius from the verification radius share received from the first position verification NF 300, the verification radius share received from the second position verification NF 300, and the verification radius share received from the third position verification NF 300. The request server 100 determines the verification radius of "10" by adding the verification radius share "-3234" received from the first position verification NF 300, the verification radius share "31" received from the second position verification NF 300, and the verification radius share "3213" received from the third position verification NF 300.
[0051] The request server 100 determines whether the position of the UE 40 is included in the verification range based on the distance "5" between the identified position of the UE 40 and the center of the verification range and the verification radius "10." In this example, the distance "5" is smaller than the verification radius "10," so the request server 100 determines that the position of the UE 40 is included in the verification range.
[0052] As another example, the calculation of the squared distance may be performed by the request server 100. For example, the first position verification NF 300 receives 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", and transmits to the request server 100 the calculation result x1 "-5335" obtained by subtracting the UE latitude share from the verification latitude share, the calculation result y1 "-3979" obtained by subtracting the UE longitude share from the verification longitude share, and the verification radius share "3234". In addition, the second position verification NF300, which receives 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", transmits to the request server 100 the calculation result x2 "3214" obtained by subtracting the UE latitude share from the verification latitude share, the calculation result y2 "3842" obtained by subtracting the UE longitude share from the verification longitude share, and the verification radius share "31". Furthermore, the third position verification NF300, which 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", transmits to the request server 100 the calculation result x3 "2124" obtained by subtracting the UE latitude share from the verification latitude share, the calculation result y3 "141" obtained by subtracting the UE longitude share from the verification longitude share, and the verification radius share "3213". Then, the request server 100 specifies the distance between the position of the target UE 40 and the center of the verification range from the calculation results x1 and y1 received from the first position verification NF300, the calculation results x2 and y2 received from the second position verification NF300, and the calculation results x3 and y3 received from the third position verification NF300. The request server 100 specifies the distance between the position of the target UE 40 and the center of the verification range from the calculation results x1 and y1 received from the first position verification NF300, the calculation results x2 and y2 received from the second position verification NF300, and the calculation results x3 and y3 received from the third position verification NF300. 2 +2x1x2" and "y1 2 +2y1y2" and the result of the operation "-20573350" and "x2 2 +2x2x3" and "y2 2 +2y2y3" and the result of the operation "39827276" and "x3 2 +2x3x1" and "y3 2By adding the calculation result "-19253901" obtained by adding "+2y3y1" to "-19253901", the squared distance "25" between the position of the target UE 40 and the center of the verification range is identified.
[0053] In addition, when the location of the target UE 40 is not specified at a single point and the location information of the UE 40 includes the UE latitude, UE longitude, and UE range, the management server 200 may generate encrypted data B and encrypted data C for the UE range using random numbers, and generate encrypted data A by subtracting the encrypted data B and encrypted data C from the UE range. In the example shown in FIG. 4, the encrypted data B is "321," the encrypted data C is "231," and the encrypted data A is "-549." The management server 200 may treat the encrypted data A, the encrypted data B, and the encrypted data C as three UE range shares. The management server 200 may transmit each of the three UE range shares to the first location verification NF 300, the second location verification NF 300, and the third location verification NF 300, respectively. In this case, the location verification system 30 and the request server 100 may determine whether the location of the UE 40 is included in the verification range using Heron's rule or the like.
[0054] 5 shows an example of a 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, a calculation 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 units.
[0055] The UE information acquisition unit 112 acquires information about the UE 40 to be verified. The UE information acquisition unit 112 acquires, for example, UE identification information of the UE 40 input by a 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 sending unit 114 sends request information to the management server 200. The request information sending unit 114 may send request information to the management server 200, requesting that multiple location shares be generated from location information of the target UE 40 and that each of the multiple location shares be transmitted to each of the multiple location verification NFs 300. The request information may include UE identification information of the target UE 40. The request information may include a preset distribution number. For example, the request information includes the distribution number set by a user of the request server 100. The request information may include information indicating multiple location verification NFs 300 to which the multiple location shares are to be transmitted.
[0057] The range information acquisition unit 116 acquires range information indicating a verification range for verifying whether or not 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 from which the range information can be restored by collecting a plurality of range shares.
[0059] The range share generating unit 118 generates a range share of a predetermined number of shares, for example. The range share generating unit 118 may generate a range share of a number of shares set by the user of the request server 100.
[0060] The range share transmitting unit 120 transmits each of the multiple range shares generated by the range share generating unit 118 to each of the multiple position verification NFs 300.
[0061] For example, range share generation unit 118 generates a plurality of random numbers, calculates a subtraction value by subtracting the plurality of random numbers from range information, or calculates an addition value by adding the plurality of random numbers to range information, and sets the plurality of random numbers and the subtraction value or addition value as a plurality of range shares. As one example, range share generation unit 118 generates N random numbers, calculates a subtraction value by subtracting the N random numbers from range information, or calculates an addition value by adding the N random numbers to range information, and sets the N random numbers and the subtraction value or addition value as N+1 range shares.
[0062] When the verification range is rectangular, the range information may include a high latitude, a low latitude, a high longitude, and a low longitude. The high latitude and the high longitude may be the latitude and longitude of the northwest vertex of the rectangular shape. The low latitude and the low longitude may be the latitude and longitude of the southeast vertex of the rectangular shape. The range share generator 118 may generate a plurality of range shares including a plurality of high latitude shares generated from the high latitudes, a plurality of low latitude shares generated from the low latitudes, a plurality of high longitude shares generated from the high longitudes, and a plurality of low longitude shares generated from the low longitudes.
[0063] For example, the range share generation unit 118 may generate N random numbers for high latitudes, calculate a high-latitude subtraction value by subtracting the N random numbers from the high latitude, or calculate a high-latitude addition value 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 the N+1 high-latitude shares.The range share generation unit 118 may generate N random numbers for low latitudes, calculate a low-latitude subtraction value by subtracting the N random numbers from the low latitude, or calculate a low-latitude addition value 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 the N+1 low-latitude shares. The range share generation unit 118 may generate N random numbers for the high longitude, calculate a high longitude subtraction value by subtracting the N random numbers from the high longitude, or calculate a high longitude addition value by adding the N random numbers to the high longitude, and set the N random numbers and the high longitude subtraction value or the high longitude addition value as the N+1 high longitude shares. The range share generation unit 118 may generate N random numbers for the low longitude, calculate a low longitude subtraction value by subtracting the N random numbers from the low longitude, or calculate a low longitude addition value by adding the N random numbers to the low longitude, and set the N random numbers and the low longitude subtraction value or the low longitude addition value as the 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 NFs 300.
[0064] When the verification range is circular, the range information may include a verification latitude and a verification longitude, which are the central latitude and central longitude of the circular verification range, and a verification radius, which 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 may generate N random numbers for the verification latitude, calculate a verification latitude subtraction value by subtracting the N random numbers from the verification latitude, or calculate a verification latitude addition value by adding the N random numbers to the verification latitude, and use the N random numbers and the verification latitude subtraction value or the verification latitude addition value as the N+1 verification latitude shares.The range share generation unit 118 may generate N random numbers for the verification longitude, calculate a verification longitude subtraction value by subtracting the N random numbers from the verification longitude, or calculate a verification longitude addition value by adding the N random numbers to the verification longitude, and use the N random numbers and the verification longitude subtraction value or the verification longitude addition value as the N+1 verification longitude shares. The range share generation unit 118 may generate N random numbers for the verification radius, calculate a verification radius subtraction value by subtracting the N random numbers from the verification radius, or calculate a verification radius addition value by adding the N random numbers to the verification radius, and use the N random numbers and the verification radius subtraction value or 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 verification NFs 300.
[0066] The calculation processing receiving unit 122 receives the calculation results from each of the position verification NFs 300. The calculation processing receiving unit 122 stores the received calculation results in the storage unit 110.
[0067] The determination unit 124 determines whether or not the position of the target UE 40 is included in the verification range based on the multiple calculation results received by the calculation processing receiving unit 122 from the multiple position verification NFs 300, respectively.
[0068] The output control unit 126 controls the output of the determination result by the determination unit 124. For example, the output control unit 126 controls the output of the determination result by the determination unit 124 to be displayed on a display provided in the request server 100.
[0069] 6 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 units.
[0070] The location information management unit 212 manages location information of a plurality of UEs 40. The location information management unit 212 may manage a location information table 202 including location information of a plurality of UEs 40 arranged in a core network of a mobile communication network. The location information management unit 212 may manage the location information of a plurality of UEs 40 by referring to a location information table 202 managed by another device, an NF, or the like, instead of managing the location information table 202.
[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 transmitting unit 114.
[0072] The location information acquisition unit 216 acquires location information of the target UE 40 from location information of the plurality of UEs 40 managed by the location information management unit 212. In response to the request information reception unit 214 receiving the request information, the location information acquisition unit 216 may acquire location information of the target UE 40 from location information of the plurality of UEs 40 managed by the location information management unit 212. The location information acquisition unit 216 may identify the target UE 40 by using UE identification information included in the request information, and acquire location information of the identified UE 40.
[0073] The location share generation unit 218 generates multiple 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 multiple location shares from which location information can be restored by collecting multiple location shares. The location share generation unit 218 generates, for example, the location share for the number of shares included in the request information received by the request information reception unit 214.
[0074] The location share sending unit 220 sends each of the multiple location shares generated by the location share generating unit 218 to each of the multiple location verification NFs 300. The location share sending unit 220 may send each of the multiple location shares to each of the multiple location verification NFs 300 in accordance with information that is included in the request information received by the request information receiving unit 214 and that indicates the multiple location verification NFs 300 to which the multiple location shares are to be sent.
[0075] For example, the location share generation unit 218 generates a plurality of random numbers, calculates a subtraction value by subtracting the plurality of random numbers from the location information, or calculates an addition value by adding the plurality of random numbers to the location information, and sets the plurality of random numbers and the subtraction value or addition value as a plurality of location shares. As an example, the location share generation unit 218 generates N random numbers, calculates a subtraction value by subtracting the N random numbers from the location information, or calculates an addition value by adding the N random numbers to the location information, and sets the N random numbers and the subtraction value or addition value as N+1 location shares.
[0076] The location share generation unit 218 may generate a plurality of random numbers for the UE latitude indicating the latitude of the target UE 40, calculate a subtraction value by subtracting the plurality of random numbers from the UE latitude or an addition value by adding the plurality of random numbers to the UE latitude, and use the plurality of random numbers and the subtraction value or the addition value as the plurality of UE latitude shares. For example, the location share generation unit 218 may generate N random numbers for the UE latitude indicating the latitude of the target UE 40, calculate a subtraction value by subtracting the N random numbers from the UE latitude or an addition value by adding the N random numbers to the UE latitude, and use the N random numbers and the subtraction value or the addition value as the N+1 UE latitude shares.
[0077] The location share generation unit 218 may generate a plurality of random numbers for the UE longitude indicating the longitude of the target UE 40, calculate a subtraction value by subtracting the plurality of random numbers from the UE longitude or an addition value by adding the plurality of random numbers to the UE longitude, and use the plurality of random numbers and the subtraction value or the addition value as the plurality of UE longitude shares. For example, the location share generation unit 218 may generate N random numbers for the UE longitude indicating the longitude of the target UE 40, calculate a subtraction value by subtracting the N random numbers from the UE longitude or an addition value by adding the N random numbers to the UE longitude, and use the N random numbers and the subtraction value or the addition value as the 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 multiple 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 location information acquired by the location information acquisition unit 216 includes a UE range, the location share generation unit 218 may generate multiple random numbers for the UE range, calculate a subtraction value by subtracting the multiple random numbers from the UE range, or calculate an addition value by adding the multiple random numbers to the UE range, and set the multiple random numbers and the subtraction value or addition value as multiple UE range shares. For example, the location share generation unit 218 may generate N random numbers for the UE range, calculate a subtraction value by subtracting the N random numbers from the UE range, or calculate an addition value by adding the N random numbers to the UE range, and set the N random numbers and the subtraction value or addition value as N+1 UE range shares. The location share transmission unit 220 may transmit one UE range share to each of the multiple location verification NFs 300.
[0080] 7 shows an example of the functional configuration of the position verification NF 300. The position verification NF 300 includes a storage unit 310, a receiving unit 312, a calculation processing execution unit 314, and a calculation result transmission unit 316.
[0081] The receiving unit 312 receives the range share from the request server 100. The receiving unit 312 receives the location share from the management server 200.
[0082] The calculation processing execution unit 314 executes a predetermined calculation 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 calculation result transmitting unit 316 transmits the calculation result of the calculation process performed by the calculation process executing unit 314 to the request server 100 .
[0084] When the verification range is rectangular and the receiving unit 312 receives the high-latitude share, the low-latitude share, the high-longitude share, and the low-longitude share from the request server 100 and receives the UE latitude share and the UE longitude share from the management server 200, the calculation processing executing unit 314 may execute calculation processing to subtract the UE latitude share from the high-latitude share, the low-latitude share from the UE latitude share, the UE longitude share from the high-longitude share, and the low-longitude share from the UE longitude share. The calculation result transmitting unit 316 may transmit to the request server 100 a high-latitude calculation result obtained by subtracting the UE latitude share from the high-latitude share, a low-latitude calculation result obtained by subtracting the low-latitude share from the UE latitude share, a high-longitude calculation result obtained by subtracting the UE longitude share from the high-longitude share, and a low-longitude calculation result obtained by subtracting the low-longitude share from the UE longitude share. The determination unit 124 may determine whether the UE latitude is included in the high latitude and low latitude ranges of the range information based on the multiple high latitude calculation results and the multiple low latitude calculation results, and may determine whether the UE longitude is included in the high longitude and low longitude ranges of the range information based on the multiple high longitude calculation results and the multiple low longitude calculation results. For example, the determination unit 124 may determine whether the UE latitude is included in the high latitude and low latitude ranges of the range information based on the N+1 high latitude calculation results and the N+1 low latitude calculation results, and may determine whether the UE longitude is included in the high longitude and low longitude ranges of the range information based on the N+1 high longitude calculation results and the N+1 low longitude calculation results.
[0085] When the verification range is circular and the receiving unit 312 receives the verification latitude share, the verification longitude share, and the verification radius share from the request server 100 and the UE latitude share and the UE longitude share from the management server 200, the calculation processing execution unit 314 may execute calculation processing to subtract the UE latitude share from the verification latitude share and the UE longitude share from the verification longitude share. The calculation result transmission unit 316 may transmit the verification latitude calculation result obtained by subtracting the UE latitude share from the verification latitude share and the verification longitude calculation result obtained by subtracting the UE longitude share from the verification longitude share to another location verification NF 300. To which of the multiple location verification NFs 300 the calculation result transmission unit 316 transmits the verification latitude calculation result and the verification longitude calculation result may be determined in advance based on the number of distributions, etc. This determination may be made by an administrator of the system 10, an administrator of the request server 100, or the like, and may be set for each of the multiple location verification NFs 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 multiple location verification NFs 300.
[0086] The receiving unit 312 receives a verification latitude calculation result and a verification longitude calculation result from another position verification NF 300. The calculation processing executing unit 314 may calculate the share of the squared distance from the verification latitude calculation result (sometimes referred to as the self-verification latitude calculation result) obtained by subtracting the UE latitude share from the verification latitude share, the verification longitude calculation result (sometimes referred to as the self-verification longitude calculation result) obtained by subtracting the UE longitude share from the verification longitude share, and the verification latitude calculation result (sometimes referred to as the other-verification latitude calculation result) and the verification longitude calculation result (sometimes referred to as the self-verification longitude calculation result) received by the share receiving unit 312 from another position verification NF 300. The calculation processing executing unit 314 may calculate the share of the squared distance from the verification latitude calculation result (sometimes referred to as the self-verification latitude calculation result) obtained by multiplying the self-verification latitude calculation result by the other-verification latitude calculation result and 2, and the square of the self-verification latitude calculation result. 2 + 2 × self-verification latitude calculation result × other-verification latitude calculation result), the value obtained by multiplying the self-verification longitude calculation result by the other-verification longitude calculation result and 2, plus the square of the self-verification longitude calculation result (self-verification longitude calculation result) 2The calculation result transmitting unit 316 may transmit the squared distance share and the verification radius share calculated by the calculation processing executing unit 314 to the request server 100.
[0087] The calculation processing receiving unit 122 receives a share of the squared distance and a verification radius share from each of the multiple position verification NFs 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 multiple shares of the squared distance received from the multiple position verification NFs 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 up the multiple shares of the squared distance, and may specify the distance between the center of the verification range and the position of the target UE 40 from the squared distance. The determination unit 124 may also specify the verification radius based on the multiple verification radius shares. The determination unit 124 may specify the verification radius by adding up the multiple 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 distance between the specified 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, the position verification NFs 300 may exchange shares (limited to the number that can be restored) with each other, so that the shares of the squared distance can be calculated in the position verification NFs 300. This reduces the amount of information provided to the request server 100, and improves the degree of information hiding.
[0089] As another example of a case where the verification range is circular, when the receiving unit 312 receives a verification latitude share, a verification longitude share, and a verification radius share from the request server 100 and receives a UE latitude share and a UE longitude share from the management server 200, the calculation processing executing unit 314 may execute a calculation processing to subtract the UE latitude share from the verification latitude share and to subtract the UE longitude share from the verification longitude share. The calculation result transmitting unit 316 may transmit to the request server 100 a verification latitude calculation result obtained by subtracting the UE latitude share from the verification latitude share, a verification longitude calculation result obtained by subtracting the UE longitude share from the verification longitude share, and the verification radius share. The determining unit 124 may specify a distance between the center of the verification range and the position of UE 40 based on the multiple verification latitude calculation results and the multiple verification longitude calculation results, specify a verification radius based on the multiple verification radius shares, and determine whether the position of 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 determine the distance between the center of the verification range and the position of UE40 based on N+1 verification latitude calculation results and N+1 verification longitude calculation results, determine the verification radius based on N+1 verification radius shares, and determine whether the position of UE40 is included in the verification range based on the determined distance and the determined verification radius.
[0090] 8 schematically illustrates an example of the system 10. Here, the system 10 is illustrated as being applied to a 5G mobile communication network.
[0091] 8 , the network 20 includes a UPF 22, a location information table 24, and an 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 extract location information of a target UE 40 from a location information table 24 that includes 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] 9 schematically illustrates an example of the hardware configuration of a computer 1200 functioning as the request server 100, the management server 200, or the location verification NF 300. A program installed on the computer 1200 can cause the computer 1200 to function as one or more "parts" of an apparatus according to the present embodiment, or can cause the computer 1200 to perform operations associated with the apparatus according to the present embodiment or one or more "parts," and / or can cause the computer 1200 to perform a process according to the present embodiment or steps of the process. Such a program can be executed by the CPU 1212 to cause the computer 1200 to perform specific operations associated with some or all of the blocks in the flowcharts and block diagrams described herein.
[0094] The computer 1200 according to this embodiment includes a CPU 1212, a RAM 1214, and a graphics controller 1216, which are interconnected by a host controller 1210. The computer 1200 also includes input / output units such as a communications 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 a ROM 1230 and legacy input / output units such as 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 graphics controller 1216 acquires image data generated by the CPU 1212 into a frame buffer or the like provided in the RAM 1214 or into the graphics controller 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 programs or data from a DVD-ROM or the like and provides them 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] The ROM 1230 stores therein a boot program or the like that is executed by the computer 1200 upon activation, and / or programs that depend on the hardware of the computer 1200. The input / output chip 1240 may also connect various input / output units to the input / output controller 1220 via a USB port, a parallel port, a serial port, a keyboard port, a mouse port, etc.
[0098] The programs are provided by a computer-readable storage medium such as a DVD-ROM or an IC card. The programs are read from the computer-readable storage medium, installed in the storage device 1224, RAM 1214, or ROM 1230, which are also examples of computer-readable storage media, and executed by the CPU 1212. Information processing described in these programs is read by the computer 1200, and causes cooperation between the programs and the various types of hardware resources described above. An apparatus or method may be configured by implementing operations or processing of information in accordance with the use of the computer 1200.
[0099] For example, when communication is performed between the computer 1200 and an external device, the CPU 1212 may execute a communication program loaded into the RAM 1214 and instruct the communication interface 1222 to perform communication processing based on the processing described in the communication program. Under the control of the CPU 1212, the communication interface 1222 reads transmission data stored in a transmission buffer area provided in the RAM 1214, the storage device 1224, a DVD-ROM, or a recording medium such as an IC card, and transmits the read transmission data to the network, or writes reception data received from the network to a reception buffer area or the like provided on the recording medium.
[0100] Furthermore, the CPU 1212 may cause all or a necessary portion 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 perform various types of processing on the data on the RAM 1214. The CPU 1212 may then 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 on the recording medium and may undergo information processing. The CPU 1212 may perform various types of processing on data read from the RAM 1214, including various types of operations, information processing, conditional judgment, conditional branching, unconditional branching, information search / replacement, etc., as described throughout this disclosure and specified by the instruction sequences of the programs, and write the results back to the RAM 1214. The CPU 1212 may also search for information in a file, database, etc. on the recording medium. For example, if multiple entries, each having an attribute value of a first attribute associated with an attribute value of a second attribute, are stored on the recording medium, the CPU 1212 may search for an entry whose attribute value of the first attribute matches a specified condition from among the multiple entries, read the attribute value of the second attribute stored in the entry, and thereby obtain the attribute value of the second attribute associated with the first attribute that satisfies a predetermined condition.
[0102] The above-described programs or software modules may be stored in a computer-readable storage medium on or near the computer 1200. 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 also be used as a computer-readable storage medium, thereby providing the programs to the computer 1200 via the network.
[0103] The blocks in the flowcharts and block diagrams in the present embodiments may represent stages of a process in which an operation is performed or "parts" of an apparatus responsible for performing the operation. Particular stages and "parts" may be implemented by dedicated circuitry, programmable circuitry provided with computer-readable instructions stored on a computer-readable storage medium, and / or a processor provided with computer-readable instructions stored on a computer-readable storage medium. The dedicated circuitry may include digital and / or analog hardware circuits, including integrated circuits (ICs) and / or discrete circuits. The programmable circuitry may include reconfigurable hardware circuits, such as field programmable gate arrays (FPGAs) and programmable logic arrays (PLAs), including AND, OR, XOR, NAND, NOR, and other logical operations, flip-flops, registers, and memory elements.
[0104] A computer-readable storage medium may include any tangible device capable of storing instructions that are executed by an appropriate device, such that a computer-readable storage medium having instructions stored thereon comprises an article of manufacture, including instructions that can be executed to create means for performing the operations specified in the flowcharts or block diagrams. 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 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 disc, memory stick, integrated circuit card, etc.
[0105] The computer readable instructions may include either assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state-setting data, or source or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk®, JAVA®, C++, etc., and conventional procedural programming languages such as the “C” programming language or similar programming languages.
[0106] Computer-readable instructions may be provided to a general-purpose computer, a special-purpose computer, or another programmable data processing device, or a programmable circuit, either locally or via a local area network (LAN), a wide area network (WAN) such as the Internet, so that the processor of the programmable data processing device, such as a computer, or the programmable circuit executes the computer-readable instructions to generate means for performing the operations specified in the flowcharts or block diagrams. Here, the computer may be a personal computer (PC), a tablet computer, a smartphone, a workstation, a server computer, a general-purpose computer, a special-purpose computer, or the like, or may be a computer system in which multiple computers are connected. Such a computer system in which multiple computers are connected is also called a distributed computing system, and is a broad definition of computers. In a distributed computing system, multiple computers collectively execute a program by each executing a portion of the program and passing data between the computers as needed during program execution.
[0107] Examples of processors include computer processors, central processing units, processing units, microprocessors, digital signal processors, controllers, microcontrollers, etc. A computer may have one or more processors. In a multiprocessor system with multiple processors, each processor executes a portion of a program and passes data between processors as needed during program execution, allowing the multiple processors to collectively execute the program. For example, in multitasking, each of the multiple processors may execute a portion of each task in small chunks by switching tasks at time slice intervals. In this case, which portion of a program each processor executes changes dynamically. Which portion of a program each of the multiple processors executes may also be statically determined by multiprocessor-aware programming.
[0108] Although the present invention has been described above using the embodiments, the technical scope of the present invention is not limited to the scope described in the above embodiments. It will be apparent to those skilled in the art that various modifications and improvements can be made to the above embodiments. It is clear from the claims that such modifications and improvements can also be included within 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, specifications, and drawings is not specifically stated as "before," "prior to," etc., and that the processes can be performed in any order unless the output of a previous process is used in a later process. Even if the operational flow in the claims, specifications, and drawings is described using "first," "next," etc. for convenience, this does not mean that the processes must be performed in this order. [Explanation of symbols]
[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 Arithmetic 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 Arithmetic Processing Execution Unit, 316 Calculation result transmission unit, 1200 computer, 1210 host controller, 1212 CPU, 1214 RAM, 1216 graphic 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 Multiple third servers Equipped with The first server is a server used by an entity that wishes to determine whether the location of a target UE is within a verification range; The second server is disposed in a mobile communication network, includes a network element function (NEF), and communicates with the first server and the plurality of third servers through the NEF; The first server A range share generating unit that generates a plurality of range shares from range information including a verification latitude and a verification longitude, which are the latitude and longitude of the center of a circular verification range for verifying whether or not a position of a target UE is included, and a verification radius, which is a radius of the verification range, so that the range information can be restored by collecting a plurality of range shares, 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 or a verification latitude addition value obtained by adding the N random numbers to 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 or a verification longitude addition value obtained by adding the N random numbers to 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 or a verification radius addition value obtained by adding the N random numbers to the verification radius; a range share generator for generating the plurality of range shares, 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 range share transmission unit transmitting the verification latitude share, the verification longitude share, and the verification radius share one by one to each of the N+1 third servers; having The second server, a location information acquisition unit that acquires location information including UE latitude and UE longitude indicating the latitude and longitude of the target UE from location information of the plurality of UEs managed by a location information management unit that manages a location information table including location information of the plurality of UEs arranged in the mobile communication network; A location share generation unit that generates a plurality of location shares from the location information of the target UE, the plurality of location shares being able to restore the location information, N+1 UE latitude shares including N random numbers and 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; N+1 UE longitude shares including N random numbers and 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; a location share generator for generating the plurality of location shares, the location share 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, the location share transmission unit transmitting the UE latitude share and the UE longitude share one by one to each of the N+1 third servers; having Each of the plurality of third servers a calculation processing execution unit that executes a calculation processing to calculate a difference between the range share received from the first server and the location share received from the second server; a calculation result transmission unit that transmits a calculation result of the calculation process performed by the calculation process execution unit to the first server; having The first server a determination unit that determines whether or not the location of the target UE is included in the verification range based on the plurality of calculation results received from each of the plurality of third servers. having The calculation processing execution unit executes a calculation process of subtracting the UE latitude share from the verification latitude share and subtracting the UE longitude share from the verification longitude share; The calculation result transmission unit transmits a verification latitude calculation result obtained by subtracting the UE latitude share from the verification latitude share and a verification longitude calculation result obtained by subtracting the UE longitude share from the verification longitude share to another third server among the N+1 third servers; the calculation processing execution unit calculates a share of a squared distance from a verification latitude calculation result obtained by subtracting the UE latitude share from the verification latitude share, a verification longitude calculation result obtained by subtracting the UE longitude share from the verification longitude share, and the verification latitude calculation result and the verification longitude calculation result received from another third server; the calculation result transmission unit transmits the share of the squared distance and the verification radius share calculated by the calculation processing execution unit to the first server; The system, wherein the determination unit determines the distance between the center of the verification range and the position of the target UE using N+1 shares of the squared distance, determines the verification radius using N+1 shares of the verification radius, and determines whether the position of the target UE is included in the verification range using the determined distance and the determined verification radius.
2. The range share generation unit N+1 verification latitude shares including the 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 the 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 the N random numbers and a verification radius subtraction value obtained by subtracting the N random numbers from the verification radius; generating the plurality of range shares including The position share generation unit is N+1 UE latitude shares including the N random numbers and the subtracted values obtained by subtracting the N random numbers from the UE latitudes; N+1 UE longitude shares including the N random numbers and the subtracted value obtained by subtracting the N random numbers from the UE longitude; The system of claim 1 , further comprising:
3. A first server; A second server; and Multiple third servers Equipped with The first server is a server used by an entity that wishes to determine whether the location of a target UE is within a verification range; The second server is disposed in a mobile communication network, includes a network element function (NEF), and communicates with the first server and the plurality of third servers through the NEF; The first server A range share generating unit that generates a plurality of range shares from range information including a verification latitude and a verification longitude, which are the latitude and longitude of the center of a circular verification range for verifying whether or not a position of a target UE is included, and a verification radius, which is a radius of the verification range, so that the range information can be restored by collecting a plurality of range shares, 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 or a verification latitude addition value obtained by adding the N random numbers to 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 or a verification longitude addition value obtained by adding the N random numbers to 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 or a verification radius addition value obtained by adding the N random numbers to the verification radius; a range share generator for generating the plurality of range shares, 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 range share transmission unit transmitting the verification latitude share, the verification longitude share, and the verification radius share one by one to each of the N+1 third servers; having The second server, a location information acquisition unit that acquires location information including UE latitude and UE longitude indicating the latitude and longitude of the target UE from location information of the plurality of UEs managed by a location information management unit that manages a location information table including location information of the plurality of UEs arranged in the mobile communication network; A location share generation unit that generates a plurality of location shares from the location information of the target UE, the plurality of location shares being able to restore the location information, N+1 UE latitude shares including N random numbers and 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; N+1 UE longitude shares including N random numbers and 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; a location share generator for generating the plurality of location shares, the location share 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, the location share transmission unit transmitting the UE latitude share and the UE longitude share one by one to each of the N+1 third servers; having Each of the plurality of third servers a calculation processing execution unit that executes a calculation processing to calculate a difference between the range share received from the first server and the location share received from the second server; a calculation result transmission unit that transmits a calculation result of the calculation process performed by the calculation process execution unit to the first server; having The first server a determination unit that determines whether or not the location of the target UE is included in the verification range based on the plurality of calculation results received from each of the plurality of third servers. having The calculation processing execution unit executes a calculation process of subtracting the UE latitude share from the verification latitude share and subtracting the UE longitude share from the verification longitude share; the calculation result transmission unit transmits a verification latitude calculation result obtained by subtracting the UE latitude share from the verification latitude share, a verification longitude calculation result obtained by subtracting the UE longitude share from the verification longitude share, and the verification radius share to the first server; The system, wherein the determination unit determines the distance between the center of the verification range and the position of the UE based on the N+1 verification latitude calculation results and the N+1 verification longitude calculation results, determines 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 determined distance and the determined verification radius.
4. The range share generation unit, N+1 verification latitude shares including the 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 the 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 the N random numbers and a verification radius subtraction value obtained by subtracting the N random numbers from the verification radius; generating the plurality of range shares including The position share generation unit is N+1 UE latitude shares including the N random numbers and the subtracted values obtained by subtracting the N random numbers from the UE latitudes; N+1 UE longitude shares including the N random numbers and the subtracted value obtained by subtracting the N random numbers from the UE longitude; The system of claim 3 , further comprising:
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