KR20220026502A - Mobile device for detecting route overlap and methods thereof - Google Patents

Mobile device for detecting route overlap and methods thereof Download PDF

Info

Publication number
KR20220026502A
KR20220026502A KR1020210110113A KR20210110113A KR20220026502A KR 20220026502 A KR20220026502 A KR 20220026502A KR 1020210110113 A KR1020210110113 A KR 1020210110113A KR 20210110113 A KR20210110113 A KR 20210110113A KR 20220026502 A KR20220026502 A KR 20220026502A
Authority
KR
South Korea
Prior art keywords
path information
result data
mobile device
information
moving
Prior art date
Application number
KR1020210110113A
Other languages
Korean (ko)
Inventor
천정희
이기우
김수민
김재선
Original Assignee
주식회사 크립토랩
서울대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 크립토랩, 서울대학교산학협력단 filed Critical 주식회사 크립토랩
Priority to US17/410,375 priority Critical patent/US11937078B2/en
Publication of KR20220026502A publication Critical patent/KR20220026502A/en

Links

Images

Classifications

    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H50/00ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics
    • G16H50/80ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics for detecting, monitoring or modelling epidemics or pandemics, e.g. flu
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/13Receivers
    • G01S19/24Acquisition or tracking or demodulation of signals transmitted by the system
    • G01S19/30Acquisition or tracking or demodulation of signals transmitted by the system code related
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H50/00ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics
    • G16H50/70ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics for mining of medical data, e.g. analysing previous cases of other patients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption

Abstract

A mobile device is disclosed. The device includes a communication unit, a GPS unit for calculating location information, a memory, a display and a processor. The processor homomorphically encrypts a plurality of location information stored in a memory to generate moving route information of the mobile device, transmits the moving route information to a server device through the communication unit, decrypts operation result data if the operation result data, operated based on the moving route information and comparison target route information, is transmitted from the server device, and outputs a message for notifying whether a moving line overlaps the comparison target route information based on a decrypted result. Accordingly, it is possible to quickly and accurately check whether the moving line overlaps without infringing on privacy.

Description

동선 중복 여부를 판단하는 모바일 디바이스 및 그 방법{ Mobile device for detecting route overlap and methods thereof }Mobile device and method for determining whether or not a moving line overlaps { Mobile device for detecting route overlap and methods thereof }

본 개시는 타인의 동선과 중복되었는지 여부를 판단하는 모바일 디바이스 및 그 방법에 대한 것이다. The present disclosure relates to a mobile device and method for determining whether it overlaps with another person's movement.

최근 COVID-19과 같은 전염병이 급속도로 확산되고 있다. 이러한 전염병은 같은 시간에 같은 공간에 있는 다수의 사람들에게 전파될 수 있기 때문에, 만약 본인이 감염 가능성이 있다고 판단된다면, 신속하게 검진을 실시하여 또 다른 확산을 예방해야 할 필요가 있다. Recently, infectious diseases such as COVID-19 are spreading rapidly. Since such an infectious disease can spread to many people in the same space at the same time, if it is determined that the person is likely to be infected, it is necessary to prevent another spread by conducting a screening promptly.

감염 가능성이 있는지 여부는 감염 환자와 동시간 대에 같은 공간에 있었는지 여부를 확인하여 예측할 수 있다. 따라서, 시간 대 별로 이동 경로의 중복 여부를 판단하는 것이 중요하다. 이러한 취지에서 종래에는 각 지역 단체나 감염 예방 센터 등에서는 감염 환자의 시간 대 별 이동 경로를 메시지나 홈페이지 등에서 상세하게 공지하여, 이와 겹치는 사람들에 대해서는 자진해서 검진을 받도록 권고하였다. 이 경우, 감염 환자의 프라이버시가 크게 침해될 수도 있고, 이동 경로에 포함된 각종 매장에 대하여 사람들이 방문을 꺼리게 되면서 의도치 않은 피해를 주게 되는 문제점이 있었다. 이를 우려하여, 이동 경로를 모호하게 표시하게 되면, 사람들이 감염 위험을 쉽게 인지할 수 없게 되며, 특히 감염 위험에 대해 큰 관심이 없는 사람의 경우, 감염이 되었음에도 불구하고 이를 모르고 계속 활동을 하게 되어, 추가 확산의 위험성도 커지게 된다. Whether or not there is a possibility of infection can be predicted by checking whether or not the infected patient was in the same room at the same time. Therefore, it is important to determine whether the movement path overlaps by time period. For this purpose, in the prior art, each local group or infection prevention center, etc. announced the movement route of infected patients by time zone in detail through messages or homepages, and recommended that those who overlapped with this be screened voluntarily. In this case, the privacy of the infected patient may be greatly violated, and there is a problem in that people are reluctant to visit various stores included in the movement route, causing unintended damage. Concerned about this, if the movement route is vaguely displayed, people cannot easily recognize the risk of infection. , the risk of further spread increases.

따라서, 프라이버시 침해 및 불필요한 피해를 주지 않으면서, 감염 위험성을 정확하고 신속하게 알릴 수 있는 방법에 대한 필요성이 대두되었다. Accordingly, there is a need for a method that can accurately and quickly inform the risk of infection without infringing on privacy and causing unnecessary damage.

본 개시는 이러한 필요성에 따라 안출된 것으로, 본 개시의 목적은 프라이버시를 침해하지 않으면서 타인의 이동 경로와의 중복 여부를 정확하게 판단할 수 있는 장치 및 방법을 제공함에 있다. The present disclosure has been devised in response to such a need, and an object of the present disclosure is to provide an apparatus and method capable of accurately determining whether or not overlap with another person's movement path is overlapped without infringing privacy.

상술한 목적을 달성하기 위한 본 개시의 일 실시 예에 따른 모바일 디바이스는, 통신부, GPS 위치 정보를 산출하기 위한 GPS부, 메모리, 디스플레이 및 상기 모바일 디바이스의 위치 변화에 따른 복수의 GPS 위치 정보를 상기 GPS부로부터 획득하여 상기 메모리에 저장하는 프로세서를 포함한다. A mobile device according to an embodiment of the present disclosure for achieving the above object includes a communication unit, a GPS unit for calculating GPS location information, a memory, a display, and a plurality of GPS location information according to a change in the location of the mobile device. and a processor for obtaining from the GPS unit and storing it in the memory.

여기서, 프로세서는, 상기 복수의 GPS 위치 정보를 동형 암호화하여 상기 모바일 디바이스의 이동 경로 정보를 생성하고, 상기 이동 경로 정보를 상기 통신부를 통해 서버 장치로 전송하며, 상기 서버 장치로부터 상기 이동 경로 정보 및 비교 대상 경로 정보에 기초하여 연산한 연산 결과 데이터가 전송되면, 상기 연산 결과 데이터를 복호화하고, 복호화된 결과에 기초하여 상기 비교 대상 경로 정보와의 동선 중복 여부를 알리는 메시지를 상기 디스플레이를 통해 출력한다. Here, the processor homomorphically encrypts the plurality of GPS location information to generate movement route information of the mobile device, transmits the movement route information to a server device through the communication unit, and from the server device to the movement route information and When the calculation result data calculated based on the comparison target path information is transmitted, the calculation result data is decoded, and a message indicating whether the moving line overlaps with the comparison target path information is output through the display based on the decoded result .

일 예에 따르면, 상기 프로세서는, 상기 메모리에 저장된 상기 복수의 GPS 위치 정보를 동형 암호의 평문 공간의 각 원소로 인코딩하여 벡터 값을 산출하고, 산출한 벡터 값을 동형 암호화하여 상기 이동 경로 정보를 생성할 수 있다.According to an example, the processor encodes the plurality of GPS location information stored in the memory into each element of the plaintext space of the homomorphic encryption to calculate a vector value, and homomorphically encrypts the calculated vector value to obtain the movement path information. can create

이 경우, 상기 연산 결과 데이터는, In this case, the operation result data is

Figure pat00001
로 표현된다. 여기서,
Figure pat00002
은 랜덤 벡터,
Figure pat00003
는 비교 대상 경로 정보를 인코딩한 벡터 값,
Figure pat00004
은 동형 암호화된 상기 이동 경로 정보이다.
Figure pat00001
is expressed as here,
Figure pat00002
is a random vector,
Figure pat00003
is a vector value encoding the path information to be compared,
Figure pat00004
is the isomorphic-encrypted moving path information.

상기 프로세서는 상기 ctxt를 복호화하여

Figure pat00005
를 획득하고, 상기
Figure pat00006
의 i번째 원소가 0이면 시각 ti에 위치한 지점에서 동선이 중복되었다고 판단하고, 모든 원소가 0이 아니면 동선이 비중복되었다고 판단한다.The processor decrypts the ctxt
Figure pat00005
to obtain, and
Figure pat00006
If the i-th element of is 0, it is judged that the copper wire overlaps at the point located at time t i , and if all elements are not 0, the copper wire is judged as non-overlapping.

다른 예로, 상기 프로세서는, 상기 메모리에 저장된 상기 복수의 GPS 위치 정보를 동형 암호의 평문 공간의 각 원소로 인코딩한 후, 인코딩된 각 원소로 구성되는 다항식을 산출하고, 산출된 다항식 fA(x)을 동형 암호화하여 상기 이동 경로 정보를 생성할 수 있다. As another example, the processor encodes the plurality of GPS location information stored in the memory into each element of the plaintext space of the homomorphic encryption, and then calculates a polynomial composed of each encoded element, and the calculated polynomial f A (x ) can be homomorphically encrypted to generate the movement path information.

상기 다항식 fA(x)은

Figure pat00007
로 표현된다. 여기서 x는 변수, Zp[x]는 상기 평문 공간, ai는 상기 평문 공간의 i번째 원소가 될 수 있다.The polynomial f A (x) is
Figure pat00007
is expressed as Here, x may be a variable, Z p [x] may be the plaintext space, and a i may be the i-th element of the plaintext space.

또한, 상기 연산 결과 데이터는,

Figure pat00008
로 표현될 수 있다. 여기서,
Figure pat00009
,
Figure pat00010
은 랜덤 다항식, fB(x)는 비교 대상 경로 정보를 인코딩한 다항식이다. In addition, the calculation result data is,
Figure pat00008
can be expressed as here,
Figure pat00009
,
Figure pat00010
is a random polynomial, f B (x) is a polynomial encoding target path information to be compared.

상기 프로세서는 상기 연산 결과 데이터를 복호화하여 The processor decodes the operation result data and

Figure pat00011
를 획득하고, 상기 fA(x)와의 최대 공약수를 계산하고, 상기 최대 공약수가
Figure pat00012
일 때 bi를 복호화한 시각 ti에 위치한 지점에서 동선이 중복되었다고 판단하고, 상기 최대 공약수가 1이면 상기 동선이 비중복되었다고 판단한다.
Figure pat00011
, calculate the greatest common divisor with f A (x), and the greatest common divisor is
Figure pat00012
When b i is decoded, it is determined that the moving line overlaps at a point located at the time t i , and when the maximum common divisor is 1, it is determined that the moving line is non-overlapping.

한편, 본 개시의 일 실시 예에 따른 모바일 디바이스의 동선 중복 판단 방법은, GPS 위치 정보를 산출하여 저장하는 단계, 저장된 복수의 GPS 위치 정보를 동형 암호화하여 상기 모바일 디바이스의 이동 경로 정보를 생성하는 단계, 상기 이동 경로 정보를 서버 장치로 전송하는 단계, 상기 서버 장치로부터 상기 이동 경로 정보 및 비교 대상 경로 정보에 기초하여 연산한 연산 결과 데이터가 수신되면, 상기 연산 결과 데이터를 복호화하는 단계, 복호화된 결과에 기초하여 상기 비교 대상 경로 정보와의 동선 중복 여부를 알리는 메시지를 출력하는 단계를 포함한다. On the other hand, the method for determining overlapping movement of a mobile device according to an embodiment of the present disclosure includes the steps of calculating and storing GPS location information, isomorphically encrypting a plurality of stored GPS location information to generate movement route information of the mobile device , transmitting the moving-path information to a server device, when the calculation result data calculated based on the moving-path information and the comparison target path information is received from the server device, decoding the calculation result data, the decoded result and outputting a message indicating whether or not a moving line overlaps with the comparison target path information based on the .

여기서, 상기 이동 경로 정보를 생성하는 단계는, 상기 복수의 GPS 위치 정보를 동형 암호의 평문 공간의 각 원소로 인코딩하여 벡터 값을 산출하는 단계 및 산출한 벡터 값을 동형 암호화하여 상기 이동 경로 정보를 생성하는 단계를 포함한다.Here, the generating of the moving path information includes calculating a vector value by encoding the plurality of GPS location information into each element of the plaintext space of the homomorphic encryption, and homomorphically encrypting the calculated vector value to obtain the moving path information. comprising the steps of creating

상기 연산 결과 데이터는,

Figure pat00013
로 표현되고, 여기서,
Figure pat00014
은 랜덤 벡터,
Figure pat00015
는 비교 대상 경로 정보를 인코딩한 벡터 값,
Figure pat00016
은 동형 암호화된 상기 이동 경로 정보가 될 수 있다. The calculation result data is
Figure pat00013
is expressed as, where
Figure pat00014
is a random vector,
Figure pat00015
is a vector value encoding the path information to be compared,
Figure pat00016
may be isomorphic-encrypted moving path information.

또한, 상기 메시지를 출력하는 단계는, 상기 ctxt를 복호화하여

Figure pat00017
를 확득하고, 획득한
Figure pat00018
의 i번째 원소가 0이면 시각 ti에 위치한 지점에서 동선이 중복되었다고 판단하고, 모든 원소가 0이 아니면 동선이 비중복되었다고 판단하는 단계 및 판단 결과에 대응되는 메시지를 생성하여 출력하는 단계를 포함할 수 있다. In addition, the step of outputting the message, decoding the ctxt
Figure pat00017
obtained and obtained
Figure pat00018
If the i-th element of is 0, it is determined that the copper wire is overlapped at the point located at time t i , and if all elements are not 0, it is determined that the copper wire is non-overlapping. can do.

또는, 상기 이동 경로 정보를 생성하는 단계는, 상기 복수의 GPS 위치 정보를 동형 암호의 평문 공간의 각 원소로 인코딩한 후, 인코딩된 각 원소로 구성되는 다항식을 산출하고, 산출된 다항식 fA(x)을 동형 암호화하여 상기 이동 경로 정보를 생성할 수 있다. Alternatively, the generating of the moving route information may include encoding the plurality of GPS location information into each element of the plaintext space of the homomorphic encryption, calculating a polynomial composed of each encoded element, and calculating the polynomial f A ( x) may be homomorphically encrypted to generate the movement path information.

여기서, 상기 다항식 fA(x)은

Figure pat00019
이고, x는 변수, Zp[x]는 상기 평문 공간, ai는 상기 평문 공간의 i번째 원소가 될 수 있다. Here, the polynomial f A (x) is
Figure pat00019
, x may be a variable, Z p [x] may be the plaintext space, and a i may be an i-th element of the plaintext space.

상기 연산 결과 데이터는,

Figure pat00020
가 될 수 있다다. 여기서,
Figure pat00021
,
Figure pat00022
은 랜덤 다항식, fB(x)는 비교 대상 경로 정보를 인코딩한 다항식이 될 수 있다. The calculation result data is
Figure pat00020
can be here,
Figure pat00021
,
Figure pat00022
may be a random polynomial, f B (x) may be a polynomial encoding target path information to be compared.

또한, 상기 메시지를 출력하는 단계는, 상기 연산 결과 데이터를 복호화하여 획득한

Figure pat00023
와 상기 fA(x)와의 최대 공약수를 계산하는 단계, 상기 최대 공약수가
Figure pat00024
일 때 bi를 복호화한 시각 ti에 위치한 지점에서 동선이 중복되었다고 판단하고, 상기 최대 공약수가 1이면 상기 동선이 비중복되었다고 판단하는 단계 및 상기 판단 결과에 대응되는 메시지를 생성하여 출력하는 단계를 포함할 수 있다. In addition, the step of outputting the message is obtained by decoding the operation result data.
Figure pat00023
and calculating a greatest common divisor of f A (x), wherein the greatest common divisor is
Figure pat00024
When b i is decoded, it is determined that the moving line is overlapped at a point located at the time t i , and if the maximum common divisor is 1, determining that the moving line is non-overlapping, and generating and outputting a message corresponding to the determination result may include

한편, 본 개시의 일 실시 예에 따른 서버 장치는, 통신부, 메모리 및 프로세서를 포함하며, 상기 프로세서는, 환자의 이동 경로에 대응되는 비교 대상 경로 정보가 상기 통신부를 통해 수신되면 상기 비교 대상 경로 정보를 상기 메모리에 저장하고, 모바일 디바이스에서 동형 암호화한 이동 경로 정보가 상기 통신부를 통해 수신되면, 상기 비교 대상 경로 정보에서 상기 동형 암호화한 이동 경로 정보를 감산하고 그 감산 결과에 랜덤 데이터를 승산하여 연산 결과 데이터를 산출하며, 상기 연산 결과 데이터를 상기 통신부를 통해 상기 모바일 디바이스로 전송할 수 있다. On the other hand, the server device according to an embodiment of the present disclosure includes a communication unit, a memory, and a processor, wherein the processor includes, when the comparison target path information corresponding to the movement path of the patient is received through the communication unit, the comparison target path information is stored in the memory, and when the moving path information homomorphically encrypted in the mobile device is received through the communication unit, the isomorphic encrypted moving path information is subtracted from the comparison target path information, and the result of the subtraction is multiplied by random data. Result data may be calculated, and the operation result data may be transmitted to the mobile device through the communication unit.

또한, 본 개시의 일 실시 예에 따르면, 단말장치의 동선 중복 판단 방법을 수행하기 위한 프로그램 코드가 저장된 기록 매체가 개시된다. 여기서, 상기 동선 중복 판단 방법은, 상기 모바일 디바이스의 GPS 위치 정보를 산출하여 저장하는 단계, 저장된 복수의 GPS 위치 정보를 동형 암호화하여 상기 모바일 디바이스의 이동 경로 정보를 생성하는 단계, 상기 이동 경로 정보를 서버 장치로 전송하는 단계, 상기 서버 장치로부터 상기 이동 경로 정보 및 비교 대상 경로 정보에 기초하여 연산한 연산 결과 데이터가 수신되면, 상기 연산 결과 데이터를 복호화하는 단계, 복호화된 결과에 기초하여 상기 비교 대상 경로 정보와의 동선 중복 여부를 알리는 메시지를 출력하는 단계를 포함한다. Also, according to an embodiment of the present disclosure, there is disclosed a recording medium storing a program code for performing a method of determining overlapping moving lines of a terminal device. Here, the method for determining the overlapping movement includes calculating and storing the GPS location information of the mobile device, homomorphically encrypting a plurality of stored GPS location information to generate movement route information of the mobile device, the movement route information Transmitting to a server device, when the calculation result data calculated based on the moving path information and the comparison target path information is received from the server device, decoding the calculation result data, the comparison target based on the decoded result and outputting a message indicating whether or not the movement line overlaps with the route information.

이상과 같은 본 개시의 다양한 실시 예들에 따르면, 프라이버시를 침해하지 않으면서 타인의 이동 경로와 본인의 이동 경로의 중복 여부를 정확하게 판단할 수 있게 된다. 전염병이나 바이러스 등의 감염 환자의 이동 경로가 확보된다면, 그 환자의 프라이버시를 침해하거나 기타 피해를 최소화하면서, 환자의 이동 경로와의 중복 여부를 신속하고 정확하게 판단하여, 빠르게 대처할 수 있게 된다. According to various embodiments of the present disclosure as described above, it is possible to accurately determine whether another person's movement path overlaps with one's own movement path without violating privacy. If the movement route of a patient infected with an infectious disease or virus is secured, it is possible to quickly and accurately determine whether the patient's movement route overlaps with the patient's movement route while infringing on the patient's privacy or minimizing other damage.

도 1은 본 개시의 일 실시 예에 따른 시스템의 동작을 설명하기 위한 도면,
도 2는 본 개시의 일 실시 예에 따른 모바일 디바이스의 구성을 나타내는 블럭도,
도 3은 본 개시의 일 실시 예에 따른 모바일 디바이스에서 제공하는 메시지의 일 예를 나타내는 도면,
도 4는 복수의 그리드를 기초로 하여 위치 중복 여부를 판단하는 방법을 설명하기 위한 도면,
도 5는 본 개시의 일 실시 예에 따른 서버 장치의 구성을 나타내는 블럭도,
도 6은 본 개시의 일 실시 예에 따른 동선 중복 판단 방법을 설명하기 위한 흐름도, 그리고,
도 7은 본 개시의 일 실시 예에 따른 시스템에서의 동선 중복 판단 방법을 설명하기 위한 타이밍도이다.
1 is a view for explaining the operation of a system according to an embodiment of the present disclosure;
2 is a block diagram showing the configuration of a mobile device according to an embodiment of the present disclosure;
3 is a diagram illustrating an example of a message provided by a mobile device according to an embodiment of the present disclosure;
4 is a view for explaining a method of determining whether a position overlaps based on a plurality of grids;
5 is a block diagram showing the configuration of a server device according to an embodiment of the present disclosure;
6 is a flowchart for explaining a method for determining overlapping moving lines according to an embodiment of the present disclosure;
7 is a timing diagram for explaining a method for determining overlap of moving lines in a system according to an embodiment of the present disclosure.

이하에서는 첨부 도면을 참조하여 본 개시에 대해서 자세하게 설명한다. 본 개시에서 수행되는 정보(데이터) 전송 과정은 필요에 따라서 암호화/복호화가 적용될 수 있으며, 본 개시 및 특허청구범위에서 정보(데이터) 전송 과정을 설명하는 표현은 별도로 언급되지 않더라도 모두 암호화/복호화하는 경우도 포함하는 것으로 해석되어야 한다. 본 개시에서 "A로부터 B로 전송(전달)" 또는 "A가 B로부터 수신"과 같은 형태의 표현은 중간에 다른 매개체가 포함되어 전송(전달) 또는 수신되는 것도 포함하며, 반드시 A로부터 B까지 직접 전송(전달) 또는 수신되는 것만을 표현하는 것은 아니다. Hereinafter, the present disclosure will be described in detail with reference to the accompanying drawings. Encryption/decryption may be applied as needed to the information (data) transmission process performed in the present disclosure, and the expressions describing the information (data) transmission process in the present disclosure and claims are all encrypted/decrypted, even if not separately mentioned. It should be construed as including cases. In the present disclosure, expressions such as "transfer from A to B (transfer)" or "A receives from B" include transmission (transmission) or reception with another medium included in the middle, and must be from A to B. It does not represent only direct transmission (delivery) or reception.

본 개시의 설명에 있어서 각 단계의 순서는 선행 단계가 논리적 및 시간적으로 반드시 후행 단계에 앞서서 수행되어야 하는 경우가 아니라면 각 단계의 순서는 비제한적으로 이해되어야 한다. 즉, 위와 같은 예외적인 경우를 제외하고는 후행 단계로 설명된 과정이 선행단계로 설명된 과정보다 앞서서 수행되더라도 개시의 본질에는 영향이 없으며 권리범위 역시 단계의 순서에 관계없이 정의되어야 한다. 그리고 본 명세서에서 "A 또는 B"라고 기재한 것은 A와 B 중 어느 하나를 선택적으로 가리키는 것뿐만 아니라 A와 B 모두를 포함하는 것도 의미하는 것으로 정의된다. 또한, 본 개시에서 "포함"이라는 용어는 포함하는 것으로 나열된 요소 이외에 추가로 다른 구성요소를 더 포함하는 것도 포괄하는 의미를 가진다.In the description of the present disclosure, the order of each step should be understood as non-limiting unless the preceding step must be logically and temporally performed before the subsequent step. In other words, except for the above exceptional cases, even if the process described as the subsequent step is performed before the process described as the preceding step, the essence of the disclosure is not affected, and the scope of rights should also be defined regardless of the order of the steps. And, in the present specification, "A or B" is defined as meaning not only selectively pointing to any one of A and B, but also including both A and B. In addition, in the present disclosure, the term "comprising" has the meaning of encompassing the inclusion of other components in addition to the elements listed as being included.

본 개시에서 "모듈" 또는 "유닛"이라 함은 범용적인 하드웨어 또는 그 기능을 수행하는 소프트웨어이거나, 하드웨어와 소프트웨어와의 논리적인 결합일 수 있다. In the present disclosure, a “module” or “unit” may be general-purpose hardware or software performing its function, or may be a logical combination of hardware and software.

본 개시에서는 본 개시의 설명에 필요한 필수적인 구성요소만을 설명하며, 본 개시의 본질과 관계가 없는 구성요소는 언급하지 아니한다. 그리고 언급되는 구성요소만을 포함하는 배타적인 의미로 해석되어서는 안 되며 다른 구성요소도 포함할 수 있는 비배타적인 의미로 해석되어야 한다.In the present disclosure, only essential components necessary for the description of the present disclosure are described, and components not related to the essence of the present disclosure are not mentioned. And it should not be construed as an exclusive meaning including only the mentioned components, and it should be construed as a non-exclusive meaning that may include other components as well.

본 개시는 전자적 연산이 가능한 컴퓨터, 서버, 스마트폰과 같은 모바일 디바이스 등의 전자적인 연산 장치에 의해 수행될 수 있으며, 후술하는 본 개시의 각 단계의 수학적 연산 및 산출은 해당 연산 또는 산출을 하기 위해 공지되어 있는 코딩 방법 및/또는 본 개시에 적합하게 고안된 코딩에 의해서 컴퓨터 프로그램의 실행에 다른 연산으로 구현될 수 있다. 본 개시를 실행하는 컴퓨터 프로그램은 컴퓨터에 의해 판독 가능한 기록 매체에 저장될 수 있다. The present disclosure may be performed by an electronic arithmetic device such as a computer capable of electronic calculation, a server, or a mobile device such as a smart phone. It may be implemented by other operations in the execution of a computer program by a known coding method and/or coding devised suitable for the present disclosure. A computer program for executing the present disclosure may be stored in a computer-readable recording medium.

그리고 본 개시에서 "값"이라 함은 스칼라값뿐만 아니라 벡터, 행렬, 다항식 등 수학식으로 표현될 수 있는 모든 값을 포함하는 광의의 개념으로 정의될 수 있다. And, in the present disclosure, the term “value” may be defined as a broad concept including all values that can be expressed by mathematical expressions, such as vectors, matrices, and polynomials, as well as scalar values.

본 개시에서 특정 값에 대한 암호화 또는 해시 등과 같은 연산을 하여 소정의 값을 획득한다는 의미는 해당 특정 값뿐만 아니라, 해당 특정 값의 변형 값(예를 들어, 특정 값에 소정의 값을 추가로 연산하거나 소정의 규칙에 따라서 해당 특정 값을 변화시키는 등의 과정을 통해서 산출된 다른 값)에 대한 암호화 또는 해시 등의 연산도 포함하는 것으로 정의될 수 있다. In the present disclosure, the meaning of obtaining a predetermined value by performing an operation such as encryption or hashing on a specific value means not only the specific value, but also a modified value of the specific value (eg, adding a predetermined value to the specific value) Alternatively, it may be defined as including an operation such as encryption or hashing for another value calculated through a process such as changing a specific value according to a predetermined rule).

후술하는 본 개시의 각 단계의 수학적 연산 및 산출은 해당 연산 또는 산출을 하기 위해 공지되어 있는 코딩 방법 및/또는 본 개시에 적합하게 고안된 코딩에 의해서 컴퓨터 연산으로 구현될 수 있다.The mathematical operation and calculation of each step of the present disclosure to be described later may be implemented as a computer operation by a known coding method for performing the corresponding operation or calculation and/or coding designed appropriately for the present disclosure.

본 명세서의 첨부 도면에 도시되어 있는 장치의 각 구성요소는 도면에 명시적으로 도시된 형태, 크기, 치수뿐만 아니라 본 개시가 의도하는 기능을 수행할 수 있는 형태, 크기, 치수라면 어느 것이든 적용될 수 있다. Each component of the device shown in the accompanying drawings of the present specification may be applied to any form, size, and dimension that can perform the function intended by the present disclosure, as well as the shape, size, and dimension explicitly shown in the drawings. can

이하에서 설명하는 구체적인 수학식은 가능한 여러 대안 중에서 예시적으로 설명되는 것이며, 본 개시의 권리 범위가 본 개시에 언급된 수학식에 제한되는 것으로 해석되어서는 아니된다.The specific equations described below are illustratively described among possible alternatives, and the scope of the present disclosure should not be construed as being limited to the equations mentioned in the present disclosure.

설명의 편의를 위해서, 본 개시에서는 다음과 같이 표기를 정하기로 한다.For convenience of description, in the present disclosure, the notation is determined as follows.

a ← D : 분포(D)에 따라서 원소(a)를 선택함a ← D : Select element (a) according to distribution (D)

s1, s2 ∈ R : S1, S2 각각은 R 집합에 속하는 원소이다. s1, s2 ∈ R : Each of S1 and S2 is an element belonging to the set R.

mod(q) : q 원소로 모듈(modular) 연산mod(q) : Modular operation with q elements

Figure pat00025
: 내부 값을 반올림함
Figure pat00025
: rounds the internal value

그 밖에, 본 명세서에 설명하지 않은 기호나 수학식은 수학 분야에서 통상적으로 알려진 바와 같이 이해할 수 있다. In addition, symbols and mathematical expressions not described herein may be understood as commonly known in the mathematical field.

이하에서는 첨부된 도면을 이용하여 본 개시의 다양한 실시 예들에 대하여 구체적으로 설명한다. Hereinafter, various embodiments of the present disclosure will be described in detail with reference to the accompanying drawings.

도 1은 본 개시의 일 실시 예에 따른 시스템의 동작을 설명하기 위한 도면이다. 도 1에 따르면, 시스템은 서버 장치(200)와 복수의 모바일 디바이스(100-1 ~ 100-n) 및 단말 장치(10)를 포함한다. 1 is a diagram for explaining an operation of a system according to an embodiment of the present disclosure. Referring to FIG. 1 , a system includes a server device 200 , a plurality of mobile devices 100-1 to 100-n, and a terminal device 10 .

단말 장치(10)란 관심 대상이 되는 사용자의 이동 경로를 제공하는 장치를 의미한다. 관심 대상이 되는 사용자란 동선을 비교할 대상을 의미한다. 일 예로, COVID-19 확진자가 될 수 있으나 반드시 이에 한정되는 것은 아니며, 다양한 환경에 적용 가능하다. 예를 들어, 기타 전염병 환자, 성 범죄자, 스토커, 접근 금지 명령을 받은 자 등 다양한 사람의 동선을 기준으로 할 수 있다. 설명의 편의상, 본 명세서에서는 이러한 관심 대상의 이동 경로를 비교 대상 경로라고 기재한다. The terminal device 10 refers to a device that provides a movement path of a user of interest. A user of interest means a target for which a moving line is to be compared. As an example, it may be a confirmed case of COVID-19, but it is not necessarily limited thereto, and it is applicable to various environments. For example, it can be based on the movement of various people, such as patients with other infectious diseases, sex offenders, stalkers, and those with restraining orders. For convenience of description, in the present specification, the movement path of the object of interest is referred to as a path to be compared.

단말 장치(10)는 비교 대상 경로를 서버 장치(200)에 등록하기 위한 장치이다. 구체적으로는, 경찰서, 보건소, 질병 예방 센터, 병원, 법원 및 기타 관공서 등에 구비된 서버 장치나 각종 단말 장치, 키오스크 등으로 구현될 수도 있고, 이러한 업무를 관리하는 관리자가 보유한 휴대폰이나 태블릿과 같은 모바일 디바이스로 구현될 수도 있으며, 관심 대상인 사람이 직접 보유한 모바일 디바이스가 될 수도 있다. The terminal device 10 is a device for registering a comparison target path to the server device 200 . Specifically, it may be implemented as a server device, various terminal devices, kiosks, etc. provided in police stations, public health centers, disease prevention centers, hospitals, courts and other government offices, and mobile phones such as mobile phones or tablets owned by managers who manage these tasks It may be implemented as a device, or it may be a mobile device directly owned by a person of interest.

복수의 모바일 디바이스(100-1 ~ 100-n)는 동선 중복 알림 서비스를 이용하는 사용자들이 보유하는 휴대폰이나 태블릿 등과 같은 모바일 디바이스를 의미한다. The plurality of mobile devices 100-1 to 100-n refer to mobile devices, such as mobile phones or tablets, owned by users who use the overlapping movement notification service.

각 모바일 디바이스(100-1 ~ 100-n)는 자신의 이동 경로 정보를 동형 암호화(Homomorphic Encryption)한 후, 동형 암호화된 이동 경로 정보를 서버 장치(200)로 제공한다. 이동 경로 정보란 그 모바일 디바이스의 시간 별 위치를 포함하는 정보를 의미한다. 위치 정보는 경도 및 위도로 구성될 수 있으나, 반드시 이에 한정되는 것은 아니며 행정 구역 상의 주소 정보 등으로 구현될 수도 있다. 동형 암호화란 데이터를 암호화된 상태에서 연산할 수 있도록 하는 암호화 방법이다. 암호문들을 이용한 연산의 결과는 새로운 암호문이 되며, 이를 복호화하여 얻은 평문은 암호화하기 전 원래 데이터의 연산 결과와 같아지게 된다. Each mobile device 100-1 to 100-n performs homomorphic encryption on its moving-path information, and then provides the homomorphic-encrypted moving-path information to the server device 200 . The moving route information means information including the location of the mobile device by time. The location information may consist of longitude and latitude, but is not necessarily limited thereto, and may be implemented as address information on an administrative district. Homomorphic encryption is an encryption method that allows data to be operated in an encrypted state. The result of operation using ciphertexts becomes a new ciphertext, and the plaintext obtained by decrypting it becomes the same as the operation result of the original data before encryption.

서버 장치(200)는 각 모바일 디바이스(100-1 ~ 100-n)에서 제공되는 동형 암호문, 즉, 이동 경로 정보와 비교 대상 경로 정보를 이용하여 기 설정된 연산을 수행하고, 그 연산 결과 데이터를 다시 각 모바일 디바이스(100-1 ~ 100-n)로 제공한다. 동형 암호화된 상태로 이동 경로 정보가 서버 장치(200)로 제공되므로, 서버 장치(200)에 의해 각 모바일 디바이스(100-1 ~ 100-n)의 사용자의 동선이 유출될 위험이 없으며, 사용자의 프라이버시를 침해하지 않을 수 있다. 또한, 비교 대상 경로 정보 자체도 각 모바일 디바이스(100-1 ~ 100-n)로 제공되는 일이 없으므로, 관심 대상의 프라이버시도 침해하지 않을 수 있다. The server device 200 performs a preset operation using the homomorphic ciphertext provided by each mobile device 100-1 to 100-n, that is, the movement path information and the comparison target path information, and returns the operation result data again. It is provided to each mobile device (100-1 ~ 100-n). Since the movement route information is provided to the server device 200 in a homomorphic encrypted state, there is no risk of the user's movement line of each mobile device 100-1 to 100-n being leaked by the server device 200, and the user's Privacy may not be infringed. In addition, since the comparison target path information itself is not provided to each mobile device 100-1 to 100-n, privacy of an interest target may not be infringed.

이와 같이 보안이 유지된 상태에서 연산한 연산 결과 데이터가 전송되면, 각 모바일 디바이스(100-1 ~ 100-n)는 수신된 연산 결과 데이터를 복호화하고, 복호화된 결과에 기초하여 비교 대상 경로 정보와의 동선 중복 여부를 판단한다. 각 모바일 디바이스(100-1 ~ 100-n)는 동선이 중복되었다고 판단되면, 다양한 방식으로 사용자에게 알릴 수 있다. When the operation result data calculated in the state in which security is maintained in this way is transmitted, each mobile device 100-1 to 100-n decodes the received operation result data, and based on the decoded result, compare target path information and Determines whether or not the circulation of When it is determined that the moving lines are overlapped, each mobile device 100-1 to 100-n may notify the user in various ways.

도 2는 본 개시의 일 실시 예에 따른 모바일 디바이스의 구성을 나타내는 블럭도이다. 도 2의 모바일 디바이스(100)는 도 1의 복수의 모바일 디바이스(100-1 ~ 100-n) 중 본 개시의 실시 예를 설명하기에 적합한 하나의 디바이스를 상정한 것이며, 도 2의 구성은 모바일 디바이스의 종류에 따라서 다양하게 추가 또는 변경될 수 있다. 2 is a block diagram illustrating a configuration of a mobile device according to an embodiment of the present disclosure. The mobile device 100 of FIG. 2 assumes one device suitable for describing an embodiment of the present disclosure among the plurality of mobile devices 100-1 to 100-n of FIG. 1 , and the configuration of FIG. 2 is a mobile device It may be variously added or changed according to the type of device.

도 2에 따르면, 모바일 디바이스(100)는 통신부(communicator : 110), 메모리(120), 프로세서(130), GPS부(140), 디스플레이(150)를 포함한다. According to FIG. 2 , the mobile device 100 includes a communicator 110 , a memory 120 , a processor 130 , a GPS unit 140 , and a display 150 .

통신부(110)는 외부 장치와 통신을 수행하기 위한 구성이다. 통신부(110)는 와이파이 모듈, 블루투스 모듈, 적외선 통신 모듈, 지그비(zigbee), 3G(3rd Generation), 3GPP(3rd Generation Partnership Project), LTE(Long Term Evolution), LTE-A(LTE Advanced), 4G(4th Generation), 5G(5th Generation) 등과 같은 다양한 무선 통신 규격에 따라 통신을 수행하는 무선 통신 모듈 또는 HDMI(High Definition Multimedia Interface), MHL (Mobile High-Definition Link), USB (Universal Serial Bus), DP(Display Port), 썬더볼트(Thunderbolt), VGA(Video Graphics Array)포트, RGB 포트, D-SUB(D-subminiature), DVI(Digital Visual Interface) 등의 입출력 인터페이스들 중 적어도 하나를 포함하는 형태로 구현될 수 있으며, 이에 제한되지 않고 다양한 형태의 통신 방식이 사용될 수 있다. 통신부(110)는 다르게는 통신 인터페이스, 송수신부(transceiver)로 지칭될 수도 있으나, 본 명세서에서는 통신부로 기재한다. The communication unit 110 is configured to communicate with an external device. The communication unit 110 is a Wi-Fi module, a Bluetooth module, an infrared communication module, a Zigbee (zigbee), 3rd Generation (3G), 3GPP (3rd Generation Partnership Project), LTE (Long Term Evolution), LTE-A (LTE Advanced), 4G A wireless communication module that performs communication according to various wireless communication standards such as (4th Generation), 5G (5th Generation), etc. or HDMI (High Definition Multimedia Interface), MHL (Mobile High-Definition Link), USB (Universal Serial Bus), A form including at least one of input/output interfaces such as DP (Display Port), Thunderbolt (Thunderbolt), VGA (Video Graphics Array) port, RGB port, D-SUB (D-subminiature), and DVI (Digital Visual Interface) may be implemented, and various types of communication methods may be used without being limited thereto. The communication unit 110 may be otherwise referred to as a communication interface or a transceiver, but is described as a communication unit in this specification.

통신부(110)는 외부 장치로부터 수신되는 각종 신호 및 데이터를 프로세서(130)로 제공하고, 프로세서(130)의 제어에 따라 각종 신호 및 데이터를 다양한 외부 장치들로 전송할 수 있다. 일 예로, 통신부(110)는 프로세서(130)의 제어에 따라 이동 경로 정보를 서버 장치(200)로 제공할 수 있고, 서버 장치(200)로부터 연산 결과 데이터를 수신할 수 있다. The communication unit 110 may provide various signals and data received from an external device to the processor 130 , and may transmit various signals and data to various external devices under the control of the processor 130 . For example, the communication unit 110 may provide movement path information to the server device 200 under the control of the processor 130 , and may receive operation result data from the server device 200 .

메모리(120)는 모바일 디바이스(100)의 동작에 필요한 각종 프로그램, 데이터 및 인스트럭션(instruction)을 저장하기 위한 구성요소이다. 도 2에서는 프로세서(130)와 별개인 하나의 메모리(120)로 도시하였으나, 메모리의 개수 및 종류, 위치 등은 실시 예에 따라 다양하게 구현될 수 있다. 구체적으로는, 메모리(120)는 RAM 이나 ROM, Buffer, 캐쉬(Cache), 플래시 메모리, HDD, 외장 메모리, 메모리 카드 등과 같은 다양한 형태로 구현될 수 있으며, 어느 하나로 한정되는 것은 아니다. The memory 120 is a component for storing various programs, data, and instructions necessary for the operation of the mobile device 100 . In FIG. 2 , a single memory 120 separate from the processor 130 is illustrated, but the number, type, and location of the memory may be variously implemented according to embodiments. Specifically, the memory 120 may be implemented in various forms such as RAM, ROM, buffer, cache, flash memory, HDD, external memory, memory card, and the like, but is not limited thereto.

메모리(120)는 모바일 디바이스(100)의 시간 별 위치 정보, 복수의 위치 정보들로 구성되는 이동 경로 정보, 동형 암호화된 이동 경로 정보 등 다양한 정보를 저장할 수 있다. 그 밖에, 메모리(120)는 동형 암호화 및 복호화에 필요한 공개키, 비밀키를 저장할 수 있으며, 이러한 키들을 모바일 디바이스(100)가 직접 생성하는 경우에는 키 생성에 필요한 각종 파라미터를 저장할 수도 있다. 또한, 메모리(120)는 통신부(110)를 통해 서버 장치(200)로부터 수신되는 연산 결과 데이터를 저장할 수도 있다. The memory 120 may store various types of information, such as location information for each time of the mobile device 100 , movement route information composed of a plurality of location information, and isomorphic encrypted movement route information. In addition, the memory 120 may store public and private keys required for homomorphic encryption and decryption, and when the mobile device 100 directly generates these keys, various parameters necessary for key generation may be stored. Also, the memory 120 may store operation result data received from the server device 200 through the communication unit 110 .

GPS부(global position system sensor : 140)는 GPS 위치 정보를 산출하기 위한 구성이다. GPS부(140)는 복수의 GPS 신호를 수신하여, 모바일 디바이스(100)의 현재 위치 정보를 획득한다. 현재 위치 정보는 GPS부(140)에서 직접 산출할 수도 있고, GPS부(140)로부터 제공되는 GPS 신호에 기초하여 프로세서(130)가 산출할 수도 있다. 한편, 실시 예에 따라서는 GPS부(140)가 생략될 수도 있고, GPS부(140)에서 GPS 신호를 수신할 수 없는 상황이 발생할 수도 있다. 이러한 경우에는, 프로세서(130)는 통신부(110)에서 연결되는 와이파이 라우터나 통신 기지국 등의 위치에 기초하여 모바일 디바이스(100)의 위치를 추정할 수도 있다. The GPS unit (global position system sensor: 140) is configured to calculate GPS position information. The GPS unit 140 receives a plurality of GPS signals to obtain current location information of the mobile device 100 . The current location information may be directly calculated by the GPS unit 140 or may be calculated by the processor 130 based on a GPS signal provided from the GPS unit 140 . Meanwhile, depending on the embodiment, the GPS unit 140 may be omitted, or a situation may occur in which the GPS unit 140 cannot receive a GPS signal. In this case, the processor 130 may estimate the location of the mobile device 100 based on the location of a Wi-Fi router or a communication base station connected to the communication unit 110 .

디스플레이(150)는 각종 화면을 표시하기 위한 구성이다. 디스플레이(150)는 LCD(liquid crystal display), OLED(organic light-emitting diode), LCoS(Liquid Crystal on Silicon), DLP(Digital Light Processing), QD(quantum dot) 디스플레이 패널 등 다양한 형태로 구현될 수 있다. 디스플레이(150)는 프로세서(130)의 제어에 따라 다양한 메시지나 화면을 표시한다. The display 150 is configured to display various screens. The display 150 may be implemented in various forms, such as liquid crystal display (LCD), organic light-emitting diode (OLED), liquid crystal on silicon (LCoS), digital light processing (DLP), and quantum dot (QD) display panel. there is. The display 150 displays various messages or screens under the control of the processor 130 .

프로세서(130)는 모바일 디바이스(100)의 전반적인 동작을 제어한다. 예를 들어, 프로세서(130)는 메모리(120)에 저장된 적어도 하나의 인스트럭션을 실행함으로써 본 개시의 실시 예에 따른 동선 중복 판단 동작 및 알림 동작 등을 수행할 수 있다. 프로세서(130)는 CPU(central processing unit), ASIC(application-specific integrated circuit)과 같은 단일 장치로 구성될 수 있으며, CPU, GPU(Graphics Processing Unit) 등의 복수의 구성으로 구성될 수도 있다. The processor 130 controls the overall operation of the mobile device 100 . For example, the processor 130 may execute at least one instruction stored in the memory 120 to perform an operation for determining overlap of moving lines and a notification operation according to an embodiment of the present disclosure. The processor 130 may be configured as a single device such as a central processing unit (CPU) and an application-specific integrated circuit (ASIC), or may be configured as a plurality of components such as a CPU and a graphics processing unit (GPU).

프로세서(130)는 GPS부(140) 및 기타 구성으로부터 획득하는 위치 정보를 메모리(120)에 저장한다. 프로세서(130)는 기 설정된 시간 주기 단위로 위치 정보를 저장할 수도 있고, 위치 변화가 감지될 때마다 변화되는 위치 정보를 저장할 수도 있다. 이에 따라, 메모리(120)에는 위치 변화에 따른 복수의 위치 정보가 저장될 수 있다. The processor 130 stores location information obtained from the GPS unit 140 and other components in the memory 120 . The processor 130 may store location information in units of a preset time period or may store location information that is changed whenever a location change is detected. Accordingly, a plurality of pieces of location information according to a location change may be stored in the memory 120 .

프로세서(130)는 특정 이벤트가 발생하면 메모리(120)에 저장된 복수의 위치 정보를 동형 암호화하여 모바일 디바이스의 이동 경로 정보를 생성한다. 여기서의 이동 경로 정보는 동형 암호문의 의미한다. 프로세서(130)는 생성한 이동 경로 정보를 통신부(110)를 통해 서버 장치(200)로 전송한다. 이동 경로 정보를 전송하기 위한 이벤트는 다양하게 설정될 수 있다. 일 예로, 메모리(120)에 설치된 특정 어플리케이션이 실행되는 이벤트 또는 그 어플리케이션의 실행 화면상에서 동선 중복 체크를 위한 메뉴가 선택되는 이벤트가 발생하면, 프로세서(130)는 동형 암호화된 이동 경로 정보를 서버 장치(200)로 전송할 수 있다. 다른 예로, 이벤트에는 기 설정된 시간 주기가 도래하는 이벤트, 모바일 디바이스(100)가 턴-온되거나 재부팅되는 이벤트 등이 될 수도 있으며, 이러한 이벤트 들 중 적어도 두 개 이상의 이벤트에 대해서 동선 중복 판단 기능이 실행될 수도 있다. When a specific event occurs, the processor 130 homogeneously encrypts a plurality of location information stored in the memory 120 to generate movement path information of the mobile device. The movement path information here means homomorphic ciphertext. The processor 130 transmits the generated movement path information to the server device 200 through the communication unit 110 . An event for transmitting movement path information may be set in various ways. For example, when an event in which a specific application installed in the memory 120 is executed or an event in which a menu for checking overlapping movement lines is selected on the execution screen of the application occurs, the processor 130 transmits the same type-encrypted movement path information to the server device It can be sent to (200). As another example, the event may be an event at which a preset time period arrives, an event in which the mobile device 100 is turned on or rebooted, etc. may be

서버 장치(200)는 모바일 디바이스(100)로부터 이동 경로 정보가 수신되면, 비교 대상 경로 정보와 함께 연산하여 연산 결과 데이터를 제공한다. 동형 암호문 형태의 이동 경로 정보이기 때문에, 서버 장치(200)는 모바일 디바이스(100)의 이동 경로 정보를 복호화하지 않은 상태에서 연산을 수행할 수 있다. When the moving path information is received from the mobile device 100 , the server device 200 operates together with the comparison target path information to provide operation result data. Since the moving path information is in the form of a homomorphic cipher text, the server apparatus 200 may perform an operation without decrypting the moving path information of the mobile device 100 .

프로세서(130)는 통신부(110)를 통해서 연산 결과 데이터가 수신되면, 연산 결과 데이터를 복호화한다. 동형 암호문의 특성 상 암호화된 상태로 연산이 수행되더라도, 연산 결과는 평문에 그대로 반영이 된다. 따라서, 복호화된 연산 결과 데이터는 모바일 디바이스의 실제 이동 경로 정보와 비교 대상 정보를 직접 연산한 결과가 될 수 있다. 프로세서(130)는 복호화된 결과에 기초하여, 비교 대상 경로 정보와의 동선 중복 여부를 판단한다. When the operation result data is received through the communication unit 110 , the processor 130 decodes the operation result data. Due to the nature of the homomorphic ciphertext, even if the operation is performed in an encrypted state, the operation result is reflected in the plaintext as it is. Accordingly, the decoded operation result data may be a result of directly calculating the actual movement path information of the mobile device and the comparison target information. The processor 130 determines whether a moving line overlaps with the comparison target path information based on the decoded result.

프로세서(130)는 판단 결과에 따른 동작을 수행할 수 있다. 일 예로, 프로세서(130)는 동선 중복 여부를 알리는 메시지를 디스플레이(150)를 통해 출력할 수 있다. 다른 예로, 모바일 디바이스(100)에 구비된 스피커(미도시)를 통해 음성 메시지를 출력할 수도 있다. 또 다른 예로, 동선 중복 여부 판단 결과, 동선이 중복되었다고 판단된 경우에는, 그 사실을 외부 서버로 즉시 통지할 수도 있다. 외부 서버가 보건소나 소방서, 구급대, 병원, 질병 예방 센터 등의 기관에서 운영하는 서버라면, 동선이 중복된 사실을 확인한 기관에서 바로 해당 사용자를 감염 의심 대상으로 확인하고 대응 조치를 취할 수 있다. The processor 130 may perform an operation according to the determination result. As an example, the processor 130 may output a message informing whether the moving line overlaps through the display 150 . As another example, a voice message may be output through a speaker (not shown) provided in the mobile device 100 . As another example, when it is determined that the moving lines are duplicated as a result of determining whether the moving lines overlap, the fact may be immediately notified to an external server. If the external server is a server operated by an institution such as a public health center, fire department, ambulance, hospital, or disease prevention center, the institution that has confirmed the fact that the flow is duplicated can immediately identify the user as a suspected infection target and take countermeasures.

도 3은 모바일 디바이스(100)가 휴대폰으로 구현된 경우, 휴대폰에서 디스플레이하는 메시지의 일 예를 나타낸다. 도 3에 따르면, 프로세서(130)는 모바일 디바이스(100)의 시간별 위치 정보와 동선 중복 판단 결과에 기초하여, 언제 어디에서 동선이 중복되었는지를 알리는 메시지(151)를 생성한 후, 디스플레이(150)를 통해 디스플레이한다. 도 3에서는 텍스트 형태의 메시지(151)를 도시하였으나, 다르게는 지도 형태로 이동 경로 정보를 표시하고, 그 이동 경로 정보 상에서 일부 위치에서 비교 대상 경로와의 중복 여부를 표시하는 형태로 구현될 수도 있다. 3 illustrates an example of a message displayed by the mobile phone when the mobile device 100 is implemented as a mobile phone. According to FIG. 3 , the processor 130 generates a message 151 indicating when and where the moving line overlaps based on the location information by time of the mobile device 100 and the moving line overlap determination result, and then the display 150 displayed through Although the message 151 in the form of text is shown in FIG. 3 , the message 151 in the form of a text may be alternatively implemented in a form of displaying movement route information in the form of a map, and displaying whether or not the movement route information overlaps with a comparison target route at some locations on the movement route information. .

한편, 위치 정보는 경도 및 위도와 같은 좌표 정보로 표시될 수 있다. 위치 상으로 완전히 중복되는 것은 어려우므로, 일정 범위 안에 위치 정보가 포함되는 경우에 중복되는 것으로 판단할 수 있다. 즉, 본 개시의 일 실시 예에 따르면, 일정한 간격으로 분산된 복수의 그리드(grid)를 기준으로 위치 정보를 라운딩할 수 있다. Meanwhile, the location information may be displayed as coordinate information such as longitude and latitude. Since it is difficult to completely overlap in terms of location, when location information is included within a certain range, it may be determined as overlapping. That is, according to an embodiment of the present disclosure, location information may be rounded based on a plurality of grids distributed at regular intervals.

도 4는 본 개시의 일 실시 예에 따라서 위치 정보를 인코딩하는 방법을 설명하기 위한 도면이다. 구체적으로는, 도 4는 복수의 그리드(41 ~ 49)를 기초로 하여 위치 중복 여부를 판단하는 방법을 나타낸다. 도 4의 각 그리드는 위도선과 경도선의 교차점으로 설정될 수 있으나 이에 한정되지 않고 다양한 기준으로 설정될 수 있다. 도 4에서는 9개의 그리드만 표시하였으나 그리드의 개수 및 간격은 다양하게 변경될 수 있다. 4 is a diagram for explaining a method of encoding location information according to an embodiment of the present disclosure. Specifically, FIG. 4 shows a method of determining whether a position overlaps based on a plurality of grids 41 to 49 . Each grid of FIG. 4 may be set as an intersection of a latitude line and a longitude line, but is not limited thereto and may be set based on various criteria. Although only nine grids are displayed in FIG. 4 , the number and spacing of the grids may be variously changed.

제1 사용자의 위치를 u1이라고 하고, 제2 사용자의 위치를 u2라고 하면, 각 사용자의 위치는 가장 가까운 그리드의 위치로 매핑된다. 따라서, 1개의 그리드 단위로 위치 중복 여부를 판단하게 되면, u1의 위치는 45번 그리드에 매핑되고, u2의 위치는 46번 그리드에 매핑된다. 따라서, 두 위치는 서로 중복되지 않는 것으로 판단된다. 반면, 4개의 그리드 단위로 위치 중복 여부를 판단하게 되면, u1의 위치는 44, 45, 47, 48번 그리드를 포함하는 영역으로 매핑되고, u2의 위치는 42, 43, 45, 46번 그리드를 포함하는 영역으로 매핑된다. 따라서, 두 영역이 중복되는 45번 그리드가 중복되는 경로로 판단된다. 이와 같은 매핑을 본 명세서에서는 인코딩이라고 한다. 실시 예에 따라서, 각 위치 정보는 다양한 방식으로 인코딩되어 이동 경로 정보를 구성할 수 있다. If the first user's location is u1 and the second user's location is u2, the location of each user is mapped to the nearest grid location. Accordingly, when it is determined whether the positions overlap by one grid unit, the position of u1 is mapped to the 45th grid, and the position of u2 is mapped to the 46th grid. Therefore, it is determined that the two positions do not overlap each other. On the other hand, when it is determined whether the positions overlap in units of four grids, the position of u1 is mapped to an area including grids 44, 45, 47, and 48, and the position of u2 is located on grids 42, 43, 45, and 46. mapped to the containing area. Accordingly, it is determined that grid 45, in which the two regions overlap, is an overlapping path. Such mapping is referred to herein as encoding. According to an embodiment, each location information may be encoded in various ways to configure movement path information.

일 예로, 프로세서(130)는 메모리(120)에 저장된 복수의 위치 정보를 동형 암호의 평문 공간의 각 원소로 인코딩하여 벡터 값

Figure pat00026
을 산출할 수 있다. As an example, the processor 130 encodes a plurality of location information stored in the memory 120 into each element of the plaintext space of the homomorphic encryption to obtain a vector value.
Figure pat00026
can be calculated.

여기서 ai는 평문 공간 Zn의 i번째 원소를 의미한다. 각 위치 정보(l1, l2, ..., ln )는 서로 다른 시각(t1, t2, ..., tn )마다 기록된 GPS 위치 정보가 될 수 있다. Here, a i means the i-th element of the plaintext space Z n . Each location information (l 1, l 2, ..., l n ) may be GPS location information recorded at different times (t 1, t 2, ..., t n ).

프로세서(130)는 인코딩된 벡터 값을 동형 암호화하여, 동형 암호문 형태의 이동 경로 정보

Figure pat00027
을 생성한다.The processor 130 homomorphically encrypts the encoded vector value, and moves path information in the form of a homomorphic cipher text.
Figure pat00027
create

프로세서(130)는 생성한 이동 경로 정보

Figure pat00028
를 서버 장치(200)로 제공한다. 이에 대응하여, 서버 장치(200)는 비교 대상 경로 정보와 이동 경로 정보를 연산한 연산 결과 데이터를 전송한다. The processor 130 generates movement path information
Figure pat00028
is provided to the server device 200 . Correspondingly, the server device 200 transmits the calculation result data obtained by calculating the comparison target path information and the moving path information.

연산 결과 데이터는 다음 수학식으로 표현될 수 있다. The operation result data may be expressed by the following equation.

<수학식 1><Equation 1>

Figure pat00029
Figure pat00029

여기서,

Figure pat00030
은 랜덤 벡터,
Figure pat00031
는 비교 대상 경로 정보를 인코딩한 벡터 값,
Figure pat00032
은 동형 암호화된 이동 경로 정보를 의미한다. here,
Figure pat00030
is a random vector,
Figure pat00031
is a vector value encoding the path information to be compared,
Figure pat00032
denotes homomorphic-encrypted movement path information.

수학식 1에서 비교 대상 경로 정보는 암호화되지 않은 상태로 연산에 사용된 것으로 되어 있으나, 비교 대상 경로 정보도 동형암호문 형태로 연산에 사용될 수 있다. 따라서, 연산 결과 데이터 ctxt는 다음과 같은 수학식으로도 표현될 수 있다. In Equation 1, it is assumed that the comparison target path information is used for the operation in an unencrypted state, but the comparison target path information may also be used for the operation in the form of an isomorphic cipher text. Accordingly, the operation result data ctxt may also be expressed by the following equation.

<수학식 2><Equation 2>

Figure pat00033
Figure pat00033

수학식 1 및 2에서

Figure pat00034
은 원소별 곱셈을 의미한다. 연산 결과 데이터 ctxt는 여전히 암호문 형태임을 알 수 있다. In Equations 1 and 2
Figure pat00034
denotes element-wise multiplication. It can be seen that the operation result data ctxt is still in the form of cipher text.

프로세서(130)는 전송된 연산 결과 데이터를 복호화한다. 복호화된 결과를

Figure pat00035
라 하면, 프로세서(130)는
Figure pat00036
의 각 원소의 값을 확인하여, 동선 중복 여부를 판단한다. 수학식 1 및 2와 같이 연산된 경우, 이동 경로 정보와 비교 대상 경로 정보 사이의 감산 연산이 이루어지므로, 중복되는 원소에서는 그 값이 0이 된다. 따라서, 프로세서(130)는 i번째 원소가 0이면 시각 ti에 위치한 지점에서 동선이 중복되었다고 판단할 수 있다. 반면, 모든 원소가 0이 아니면, 프로세서(130)는 전체 동선이 비중복되었다고 판단할 수 있다. The processor 130 decodes the transmitted operation result data. the decrypted result
Figure pat00035
That is, the processor 130 is
Figure pat00036
Check the value of each element of to determine whether the copper wire overlaps. When the calculation is performed as in Equations 1 and 2, since a subtraction operation is performed between the moving path information and the comparison target path information, the value becomes 0 in the overlapping element. Accordingly, if the i-th element is 0, the processor 130 may determine that the copper line overlaps at a point located at time t i . On the other hand, if all elements are not 0, the processor 130 may determine that the entire copper wire is non-overlapping.

다른 예로, 이동 경로 정보 및 비교 대상 경로 정보는 다항식으로 구성될 수도 있다. 구체적으로, 프로세서(130)는 메모리(120)에 저장된 복수의 위치 정보를 동형 암호의 평문 공간의 각 원소로 인코딩한 후, 인코딩된 각 원소로 구성되는 다항식을 산출할 수 있다. 다항식은 다음과 같은 수학식으로 표현될 수 있다. As another example, the moving path information and the comparison target path information may be configured as polynomials. Specifically, the processor 130 may encode a plurality of location information stored in the memory 120 into each element of the plaintext space of the homomorphic encryption, and then calculate a polynomial composed of each encoded element. The polynomial can be expressed by the following equation.

<수학식 3><Equation 3>

Figure pat00037
Figure pat00037

수학식 1에서 x는 변수, Zp[x]는 평문 공간, ai는 평문 공간의 i번째 원소를 의미한다. In Equation 1, x denotes a variable, Z p [x] denotes a plaintext space, and a i denotes an i-th element of the plaintext space.

프로세서(130)는 산출한 다항식을 동형 암호화하여, 동형 암호화된 이동 경로 정보를 생성한 후, 통신부(110)를 통해 서버 장치(200)로 전송한다. 이 경우, 서버 장치(200)는 다음과 같은 수학식 형태로 표현되는 연산 결과 데이터를 제공할 수 있다. The processor 130 homomorphically encrypts the calculated polynomial to generate isomorphically encrypted movement path information, and then transmits it to the server device 200 through the communication unit 110 . In this case, the server device 200 may provide operation result data expressed in the following equation form.

<수학식 4><Equation 4>

Figure pat00038
Figure pat00038

여기서,

Figure pat00039
,
Figure pat00040
은 랜덤 다항식, fB(x)는 비교 대상 경로 정보를 인코딩한 다항식을 의미한다. here,
Figure pat00039
,
Figure pat00040
is a random polynomial, and f B (x) is a polynomial encoding target path information to be compared.

프로세서(130)는 통신부(110)를 통해 수신된 연산 결과 데이터를 복호화하여, 연산 결과를 확인한다. 연산 결과는 다음과 같이 표현될 수 있다.The processor 130 decodes the operation result data received through the communication unit 110 and confirms the operation result. The operation result can be expressed as follows.

<수학식 5> <Equation 5>

Figure pat00041
Figure pat00041

프로세서(130)는 획득한 연산 결과 g(x)와 fA(x)와의 최대 공약수

Figure pat00042
를 계산한다. The processor 130 determines the maximum common divisor of the obtained operation result g(x) and f A (x).
Figure pat00042
to calculate

프로세서(130)는 최대 공약수의 값에 따라 동선 중복 여부를 판단한다. 즉, 프로세서(130)는 최대 공약수가

Figure pat00043
일 때, bi를 복호화한 시각 ti에 위치한 지점 ai에서 동선이 중복되었다고 판단한다. 반면, 프로세서(130)는 최대 공약수가 1이면 전체 동선이 비중복되었다고 판단한다. The processor 130 determines whether the copper line overlaps according to the value of the greatest common divisor. That is, the processor 130 is the greatest common divisor
Figure pat00043
, it is determined that the moving line is overlapped at the point a i located at the time t i when b i is decoded. On the other hand, if the maximum common divisor is 1, the processor 130 determines that the entire copper line is non-overlapping.

이상과 같이, 동형 암호화된 이동 경로 정보를 이용함으로써, 보안이 유지된 상태에서도 신속하고 정확하게 동선 중복 여부를 확인할 수 있다. 동형 암호화는 다양한 스킴 중 하나에 따라 수행될 수 있다. 일 예로, 프로세서(130)는 Brakerski/Fan-Vercauteren(B/FV) 동형 암호화 스킴(scheme)을 이용하여 동형 암호화를 수행할 수 있다. 또한, 동형 암호화에 필요한 비밀키 및 공개키는 프로세서(130)가 직접 생성하여 메모리(120)에 저장해 둘 수도 있고, 외부 장치로부터 제공을 받아 사용할 수도 있다. 자체적으로 키를 생성하는 경우, 프로세서(130)는 Ring-LWE 기법을 이용하여 공개 키를 생성할 수 있으며, 이에 제한되는 것은 아니다. As described above, by using the homomorphic-encrypted movement path information, it is possible to quickly and accurately check whether the movement line overlaps even in a state in which security is maintained. Homomorphic encryption may be performed according to one of various schemes. For example, the processor 130 may perform homomorphic encryption using a Brakerski/Fan-Vercauteren (B/FV) homomorphic encryption scheme. In addition, the private key and public key required for homomorphic encryption may be directly generated by the processor 130 and stored in the memory 120 , or may be used by being provided by an external device. When generating a key by itself, the processor 130 may generate a public key using the Ring-LWE technique, but is not limited thereto.

도 5는 본 개시의 일 실시 예에 따른 서버 장치의 구성을 나타내는 블럭도이다. 도 5에 따르면, 서버 장치(200)는 통신부(210), 프로세서(220), 메모리(230)를 포함한다. 서버 장치(200)는 다양한 형태의 장치로 구현될 수 있으며, 통신부(210), 프로세서(220), 메모리(230) 역시 다양한 예시들로 구현될 수 있으나 이에 대해서는 도 1 및 도 2에서 구체적으로 설명한 바 있으므로 중복 설명은 생략한다. 5 is a block diagram illustrating a configuration of a server device according to an embodiment of the present disclosure. According to FIG. 5 , the server device 200 includes a communication unit 210 , a processor 220 , and a memory 230 . The server device 200 may be implemented in various types of devices, and the communication unit 210 , the processor 220 , and the memory 230 may also be implemented in various examples, but this has been described in detail with reference to FIGS. 1 and 2 . Therefore, duplicate description will be omitted.

통신부(210)는 적어도 하나 이상의 모바일 디바이스들 및 단말 장치와 통신을 수행하기 위한 구성이다. 통신부(210)는 비교 대상 경로 정보를 외부 장치로부터 수신할 수 있다. 구체적으로는, 비교 대상 경로 정보는 관심 대상자가 구비한 단말 장치로부터 직접 수신하거나, 기타 다양한 기관의 서버 장치로부터 수신할 수도 있다. 또한, 비교 대상 경로 정보 자체를 상술한 바와 같은 동형 암호문 형태로 수신할 수도 있지만, 본 실시 예에서는 서버 장치(200)가 직접 암호화하는 경우를 기준으로 설명한다. 또한, 통신부(210)는 적어도 하나 이상의 모바일 디바이스로부터 동형 암호화된 이동 경로 정보를 수신할 수 있다. The communication unit 210 is a component for performing communication with at least one or more mobile devices and a terminal device. The communication unit 210 may receive comparison target path information from an external device. Specifically, the comparison target path information may be directly received from a terminal device provided by a target of interest, or may be received from a server device of various other institutions. In addition, although the comparison target path information itself may be received in the form of the same cipher text as described above, in this embodiment, a case in which the server device 200 directly encrypts the information will be described. In addition, the communication unit 210 may receive the isomorphic encrypted movement path information from at least one or more mobile devices.

메모리(230)는 비교 대상 경로 정보를 저장하기 위한 구성이다. The memory 230 is configured to store comparison target path information.

프로세서(220)는 비교 대상 경로 정보 자체가 수신되면, 비교 대상 경로 정보에 포함된 각 위치 정보를 인코딩한다. 상술한 바와 같이 벡터 형태로 연산하는 실시 예라면, 인코딩된 비교 대상 경로 정보는

Figure pat00044
으로 표현된다. When the comparison target path information itself is received, the processor 220 encodes each location information included in the comparison target path information. As described above, in the embodiment of calculating in the form of a vector, the encoded comparison target path information is
Figure pat00044
is expressed as

또한, 프로세서(220)는 0이 아닌 평문 공간 Zn의 원소 ri를 무작위로 뽑아서 랜덤 벡터

Figure pat00045
를 계산한다. 프로세서(220)는 이동 경로 정보, 비교 대상 경로 정보, 랜덤 벡터를 이용한 연산을 수행하여, 연산 결과 데이터를 생성한다. 연산 결과 데이터는 상술한 수학식 1 또는 2와 같이 표현될 수 있으나 이에 한정되는 것은 아니다. 프로세서(220)는 생성한 연산 결과 데이터를 통신부(210)를 통해 모바일 디바이스로 제공한다. In addition, the processor 220 randomly selects an element r i of the non-zero plaintext space Z n to obtain a random vector
Figure pat00045
to calculate The processor 220 generates operation result data by performing an operation using the movement path information, the comparison target path information, and the random vector. The operation result data may be expressed as Equation 1 or 2 above, but is not limited thereto. The processor 220 provides the generated operation result data to the mobile device through the communication unit 210 .

한편, 상술한 바와 같이 다항식 형태로 연산하는 실시 예라면, 프로세서(220)는 비교 대상 경로 정보의 각 위치 정보를 동형 암호의 평문 공간의 각 원소로 인코딩하여 fB(x)를 생성한다. On the other hand, as described above, in the embodiment of calculating in the form of a polynomial, the processor 220 encodes each position information of the comparison target path information into each element of the plaintext space of the homomorphic encryption to generate f B (x).

또한, 프로세서(220)는 기 선정된 차수의 랜덤 다항식 rA(x), rB(x)를 무작위로 생성한다. 여기서 랜덤 다항식의 차수 d와 fB(x)의 원소 개수 n은, 사용되는 동형 암호의 링(Ring)의 차수(dimension) N 보다 n+d의 값이 이하가 되도록 설정될 수 있다. In addition, the processor 220 randomly generates random polynomials r A (x) and r B (x) of a predetermined order. Here, the order d of the random polynomial and the number of elements n of f B (x) may be set such that the value of n+d is less than or equal to the dimension N of the Ring of the used homomorphic cipher.

모바일 디바이스로부터 동형 암호화된 이동 경로 정보가 수신되면, 메모리(230)에 저장된 비교 대상 경로 정보와 함께 연산을 수행한다. 연산은 이동 경로 정보 및 비교 대상 경로 정보 사이의 감산 연산을 포함하는 형태로 구성되지만, 반드시 이에 한정되는 것은 아니며, 다른 형태의 연산이 이루어질 수도 있다. When homomorphic-encrypted moving path information is received from the mobile device, an operation is performed together with the comparison target path information stored in the memory 230 . The operation is configured in a form including a subtraction operation between the movement path information and the comparison target path information, but is not necessarily limited thereto, and other types of operation may be performed.

이상과 같이 랜덤 벡터나 랜덤 다항식과 같은 랜덤 데이터를 생성하여 연산에 반영하게 되면, 모바일 디바이스에서 복호화를 수행하더라도 비교 대상 경로 정보 전체를 복구할 수 없게 된다. As described above, when random data such as a random vector or a random polynomial is generated and reflected in an operation, even if the mobile device performs decoding, the entire comparison target path information cannot be recovered.

도 6은 본 개시의 일 실시 예에 따른 동선 중복 판단 방법을 설명하기 위한 흐름도이다. 도 6에 따르면, 모바일 디바이스는 위치 정보를 주기적으로 저장하여 둔 상태에서(S610), 이를 기초로 동형 암호화된 이동 경로 정보를 생성한다(S620). 모바일 디바이스는 생성한 이동 경로 정보를 서버 장치로 전송한다(S630). 이동 경로 정보 생성 방법에 대해서는 상술한 부분에서 설명하였으므로 중복 설명은 생략한다. 6 is a flowchart for explaining a method for determining overlapping moving lines according to an embodiment of the present disclosure. Referring to FIG. 6 , the mobile device periodically stores the location information ( S610 ), and generates isomorphic encrypted movement path information based thereon ( S620 ). The mobile device transmits the generated movement path information to the server device (S630). Since the method for generating movement path information has been described above, a redundant description thereof will be omitted.

이후, 서버 장치로부터 연산 결과 데이터가 수신되면(S640), 모바일 디바이스는 연산 결과 데이터를 복호화하고(S650), 그 결과에 기초하여 경로 중복 여부를 판단한다(S660). 연산 결과 데이터의 형태 및 경로 중복 여부 판단 방법 등에 대해서는 상술한 부분에서 구체적으로 설명하였으므로 중복 설명은 생략한다. Thereafter, when the calculation result data is received from the server device (S640), the mobile device decodes the calculation result data (S650), and determines whether a path overlaps based on the result (S660). Since the form of the calculation result data and the method of determining whether or not the path is duplicated have been described in detail in the above section, the duplicate explanation will be omitted.

모바일 디바이스는 판단 결과에 따라 메시지를 출력한다(S670).The mobile device outputs a message according to the determination result (S670).

도 7은 본 개시의 일 실시 예에 따른 시스템에서의 동선 중복 판단 방법을 설명하기 위한 타이밍도이다. 도 7에 따르면, 시스템은 모바일 디바이스(100), 서버 장치(200), 단말 장치(10)를 포함한다. 7 is a timing diagram for explaining a method for determining overlap of moving lines in a system according to an embodiment of the present disclosure. According to FIG. 7 , a system includes a mobile device 100 , a server device 200 , and a terminal device 10 .

단말 장치(10)는 관심 대상자가 보유한 모바일 디바이스 또는 그 관심 대상자의 위치 정보를 제공받은 장치가 될 수 있다. 따라서, 단말 장치(10)의 위치 정보는 상술한 실시 예들에서 언급한 비교 대상 경로 정보로 사용된다. The terminal device 10 may be a mobile device possessed by the person of interest or a device provided with location information of the person of interest. Accordingly, the location information of the terminal device 10 is used as the comparison target path information mentioned in the above-described embodiments.

단말 장치(10)는 위치 정보를 확인하여 동형 암호화하여 비교 대상 경로 정보를 생성한 후, 서버 장치(200)로 전송한다(S710, S715). 서버 장치(200)는 비교 대상 경로 정보를 저장한다(S720).The terminal device 10 checks the location information, generates comparison target path information by isomorphic encryption, and transmits it to the server device 200 (S710 and S715). The server device 200 stores comparison target path information (S720).

한편, 모바일 디바이스(100)도 위치 정보를 확인하여 동형 암호화하여 이동 경로 정보를 생성한 후, 서버 장치(200)로 전송한다(S725, S730).On the other hand, the mobile device 100 also checks the location information, generates movement path information by homomorphic encryption, and transmits it to the server device 200 (S725 and S730).

서버 장치(200)는 랜덤 데이터를 생성하고(S735), 이동 경로 정보 및 비교 대상 경로와 함께 동형 암호문 상태에서 연산을 수행한다(S740). 랜덤 데이터의 형태 및 연산 방법에 대해서는 상술한 부분에서 구체적으로 설명하였으므로 중복 설명은 생략한다. 서버 장치(200)는 연산 결과 데이터를 모바일 디바이스(100)로 제공한다. The server device 200 generates random data (S735), and performs an operation in a homomorphic ciphertext state together with movement path information and a path to be compared (S740). Since the form and calculation method of random data have been described in detail in the above section, redundant description will be omitted. The server device 200 provides operation result data to the mobile device 100 .

모바일 디바이스(100)는 연산 결과 데이터를 복호화하고(S745), 복호화된 결과값에 기초하여 경로 중복 여부를 판단한다(S750). The mobile device 100 decodes the operation result data (S745), and determines whether a path overlaps based on the decoded result value (S750).

도 6 및 도 7의 방법은 도 2에 도시된 구성을 가지는 모바일 디바이스(100) 및 도 5에 도시된 구성을 가지는 서버 장치(200)에서 수행될 수 있으나, 반드시 이에 한정되는 것은 아니며, 다양한 구성의 다른 디바이스에서 수행될 수도 있다. The methods of FIGS. 6 and 7 may be performed in the mobile device 100 having the configuration shown in FIG. 2 and the server device 200 having the configuration shown in FIG. 5 , but are not necessarily limited thereto, and various configurations It may be performed in other devices of

또한, 상술한 실시 예들에서는 동선 중복이라고 판단되면 알림 메시지를 제공하는 것으로 설명하였으나, 제3자의 단말 장치로 동선 중복 여부를 알리는 등의 다양한 방식으로 활용될 수도 있다. In addition, although it has been described in the above-described embodiments that a notification message is provided when it is determined that the movement line overlaps, it may be utilized in various ways, such as notifying a third party's terminal device of whether the movement line overlaps.

한편, 상술된 실시 예들은 컴퓨터에 의하여 실행 가능한 명령어 및 데이터를 저장하는 컴퓨터로 읽을 수 있는 기록 매체의 형태로 구현될 수 있다. 상기 명령어 및 데이터 중 적어도 하나는 프로그램 코드의 형태로 저장될 수 있으며, 프로세서에 의해 실행되었을 때, 소정의 프로그램 모듈을 생성하여 소정의 동작을 수행할 수 있다. Meanwhile, the above-described embodiments may be implemented in the form of a computer-readable recording medium storing instructions and data executable by a computer. At least one of the instructions and data may be stored in the form of a program code, and when executed by a processor, a predetermined program module may be generated to perform a predetermined operation.

구체적으로는, 위치 정보를 산출하여 저장하는 단계, 저장된 복수의 위치 정보를 동형 암호화하여 이동 경로 정보를 생성하는 단계, 이동 경로 정보를 서버 장치로 전송하는 단계, 서버 장치로부터 이동 경로 정보 및 비교 대상 경로 정보에 기초하여 연산한 연산 결과 데이터가 수신되면, 연산 결과 데이터를 복호화하는 단계, 복호화된 결과에 기초하여 상기 비교 대상 경로 정보와의 동선 중복 여부를 알리는 메시지를 출력하는 단계를 순차적으로 수행하는 프로그램 코드가 컴퓨터 판독 가능 기록 매체에 저장된 상태로 유포될 수 있다. Specifically, calculating and storing location information, generating movement route information by homomorphically encrypting a plurality of stored location information, transmitting the movement route information to a server device, moving route information and comparison target from the server device When the operation result data calculated based on the path information is received, decoding the operation result data, and outputting a message indicating whether the moving line overlaps with the comparison target path information based on the decoded result is sequentially performed The program code may be distributed while being stored in a computer-readable recording medium.

컴퓨터 판독 가능 기록매체는 다양한 장치에 탑재 또는 연결될 수 있다. 이러한 기록 매체가 탑재 또는 연결된 장치에서는 그 기록 매체에 기록된 프로그램 코드를 실행시켜, 상술한 다양한 실시 예들에 따른 동작을 수행할 수 있다. The computer-readable recording medium may be mounted on or connected to various devices. A device on which the recording medium is mounted or connected may execute the program code recorded on the recording medium to perform the operations according to the above-described various embodiments.

이와 같은 컴퓨터 판독 가능 기록 매체는 read-only memory (ROM), random-access memory (RAM), flash memory, CD-ROMs, CD-Rs, CD+Rs, CD-RWs, CD+RWs, DVD-ROMs, DVD-Rs, DVD+Rs, DVD-RWs, DVD+RWs, DVD-RAMs, BD-ROMs, BD-Rs, BD-R LTHs, BD-REs, 마그네틱 테이프, 플로피 디스크, 광자기 데이터 저장 장치, 광학 데이터 저장 장치, 하드 디스크, 솔리드-스테이트 디스크(SSD) 등이 될 수 있다. 그 밖에, 명령어 또는 소프트웨어, 관련 데이터, 데이터 파일, 및 데이터 구조들을 저장할 수 있고, 프로세서나 컴퓨터가 명령어를 실행할 수 있도록 프로세서나 컴퓨터에 명령어 또는 소프트웨어, 관련 데이터, 데이터 파일, 및 데이터 구조들을 제공할 수 있는 어떠한 장치라도 될 수 있다.Such computer-readable recording media include read-only memory (ROM), random-access memory (RAM), flash memory, CD-ROMs, CD-Rs, CD+Rs, CD-RWs, CD+RWs, DVD-ROMs , DVD-Rs, DVD+Rs, DVD-RWs, DVD+RWs, DVD-RAMs, BD-ROMs, BD-Rs, BD-R LTHs, BD-REs, magnetic tapes, floppy disks, magneto-optical data storage devices, It can be an optical data storage device, a hard disk, a solid-state disk (SSD), or the like. may store instructions or software, related data, data files, and data structures, and provide instructions or software, related data, data files, and data structures to a processor or computer so that the processor or computer can execute the instructions. It can be any device that can be used.

이상에서는 본 개시의 바람직한 실시 예에 대해서 도시하고, 설명하였으나, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시가 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능한 것은 물론이고, 그와 같은 변형은 청구범위 기재의 범위 내에 있게 된다.In the above, preferred embodiments of the present disclosure have been illustrated and described, but the present disclosure is not limited to the specific exemplary embodiments described above, and in the technical field to which the disclosure belongs without departing from the gist of the present disclosure as claimed in the claims. Any person of ordinary skill in the art can make various modifications, of course, and such modifications are within the scope of the claims.

110 : 통신부 120 : 메모리
130 : 프로세서 140 : GPS부
150 : 디스플레이
110: communication unit 120: memory
130: processor 140: GPS unit
150: display

Claims (14)

모바일 디바이스에 있어서,
통신부;
위치 정보를 산출하기 위한 GPS부;
메모리;
디스플레이; 및
상기 모바일 디바이스의 위치 변화에 따른 복수의 위치 정보를 상기 GPS부로부터 획득하여 상기 메모리에 저장하는 프로세서;를 포함하며,
상기 프로세서는,
상기 복수의 위치 정보를 동형 암호화하여 상기 모바일 디바이스의 이동 경로 정보를 생성하고, 상기 이동 경로 정보를 상기 통신부를 통해 서버 장치로 전송하며,
상기 서버 장치로부터 상기 이동 경로 정보 및 비교 대상 경로 정보에 기초하여 연산한 연산 결과 데이터가 전송되면, 상기 연산 결과 데이터를 복호화하고,
복호화된 결과에 기초하여 상기 비교 대상 경로 정보와의 동선 중복 여부를 알리는 메시지를 상기 디스플레이를 통해 출력하는, 모바일 디바이스.
In a mobile device,
communication department;
GPS unit for calculating location information;
Memory;
display; and
A processor for acquiring a plurality of location information according to the location change of the mobile device from the GPS unit and storing it in the memory;
The processor is
The plurality of location information is homomorphically encrypted to generate movement route information of the mobile device, and the movement route information is transmitted to a server device through the communication unit,
When the calculation result data calculated based on the moving path information and the comparison target path information is transmitted from the server device, the calculation result data is decoded,
A mobile device for outputting, through the display, a message indicating whether or not a moving line overlaps with the comparison target path information on the basis of the decoded result.
제1항에 있어서,
상기 프로세서는,
상기 메모리에 저장된 상기 복수의 위치 정보를 동형 암호의 평문 공간의 각 원소로 인코딩하여 벡터 값을 산출하고, 산출한 벡터 값을 동형 암호화하여 상기 암호화된 이동 경로 정보를 생성하는, 모바일 디바이스.
According to claim 1,
The processor is
A mobile device for generating a vector value by encoding the plurality of location information stored in the memory into each element of a plaintext space of a homomorphic encryption, and homomorphically encrypting the calculated vector value to generate the encrypted movement path information.
제1항에 있어서,
상기 연산 결과 데이터는,
Figure pat00046
이고,
여기서,
Figure pat00047
은 랜덤 벡터,
Figure pat00048
는 비교 대상 경로 정보를 인코딩한 벡터 값,
Figure pat00049
은 동형 암호화된 상기 이동 경로 정보이고,
상기 프로세서는 상기 ctxt를 복호화하여
Figure pat00050
를 획득하고, 상기
Figure pat00051
의 i번째 원소가 0이면 시각 ti에 위치한 지점에서 동선이 중복되었다고 판단하고, 모든 원소가 0이 아니면 동선이 비중복되었다고 판단하는, 모바일 디바이스.
According to claim 1,
The calculation result data is
Figure pat00046
ego,
here,
Figure pat00047
is a random vector,
Figure pat00048
is a vector value encoding the path information to be compared,
Figure pat00049
is the isomorphic-encrypted movement path information,
The processor decrypts the ctxt
Figure pat00050
to obtain, and
Figure pat00051
If the i-th element of is 0, it is determined that the copper wire is overlapped at the point located at time t i , and if all elements are not 0, it is determined that the copper wire is non-overlapping.
제1항에 있어서,
상기 프로세서는,
상기 메모리에 저장된 상기 복수의 위치 정보를 동형 암호의 평문 공간의 각 원소로 인코딩한 후, 인코딩된 각 원소로 구성되는 다항식을 산출하고, 산출된 다항식 fA(x)을 동형 암호화하여 상기 이동 경로 정보를 생성하며,
상기 다항식 fA(x)은
Figure pat00052
이고,
여기서 x는 변수, Zp[x]는 상기 평문 공간, ai는 상기 평문 공간의 i번째 원소인, 모바일 디바이스.
According to claim 1,
The processor is
After encoding the plurality of location information stored in the memory into each element of the plaintext space of the homomorphic encryption, a polynomial composed of each encoded element is calculated, and the calculated polynomial f A (x) is homomorphically encrypted to the movement path. create information,
The polynomial f A (x) is
Figure pat00052
ego,
where x is a variable, Z p [x] is the plaintext space, and a i is the i-th element of the plaintext space.
제4항에 있어서,
상기 연산 결과 데이터는,
Figure pat00053
이고,
여기서,
Figure pat00054
,
Figure pat00055
은 랜덤 다항식, fB(x)는 비교 대상 경로 정보를 인코딩한 다항식이고,
상기 프로세서는 상기 연산 결과 데이터를 복호화하여
Figure pat00056
를 획득하고, 상기 fA(x)와의 최대 공약수를 계산하고, 상기 최대 공약수가
Figure pat00057
일 때 bi를 복호화한 시각 ti에 위치한 지점에서 동선이 중복되었다고 판단하고, 상기 최대 공약수가 1이면 상기 동선이 비중복되었다고 판단하는, 모바일 디바이스.
5. The method of claim 4,
The calculation result data is
Figure pat00053
ego,
here,
Figure pat00054
,
Figure pat00055
is a random polynomial, f B (x) is a polynomial encoding the path information to be compared,
The processor decodes the operation result data and
Figure pat00056
, calculate the greatest common divisor with f A (x), and the greatest common divisor is
Figure pat00057
When b i is decoded, it is determined that the moving line is overlapped at a point located at the time t i , and if the maximum common divisor is 1, it is determined that the moving line is non-overlapping.
모바일 디바이스의 동선 중복 판단 방법에 있어서,
위치 정보를 산출하여 저장하는 단계;
저장된 복수의 위치 정보를 동형 암호화하여 상기 모바일 디바이스의 이동 경로 정보를 생성하는 단계;
상기 이동 경로 정보를 서버 장치로 전송하는 단계;
상기 서버 장치로부터 상기 이동 경로 정보 및 비교 대상 경로 정보에 기초하여 연산한 연산 결과 데이터가 수신되면, 상기 연산 결과 데이터를 복호화하는 단계;
복호화된 결과에 기초하여 상기 비교 대상 경로 정보와의 동선 중복 여부를 알리는 메시지를 출력하는 단계;를 포함하는 동선 중복 판단 방법.
In the method for determining overlapping movement of a mobile device,
calculating and storing location information;
generating movement path information of the mobile device by homomorphically encrypting a plurality of stored location information;
transmitting the moving path information to a server device;
decoding the calculation result data when the calculation result data calculated based on the moving path information and the comparison target path information is received from the server device;
and outputting a message indicating whether or not the moving line overlaps with the comparison target path information based on the decoded result.
제1항에 있어서,
상기 이동 경로 정보를 생성하는 단계는,
상기 복수의 위치 정보를 동형 암호의 평문 공간의 각 원소로 인코딩하여 벡터 값을 산출하는 단계; 및
산출한 벡터 값을 동형 암호화하여 상기 이동 경로 정보를 생성하는 단계;를 포함하는, 동선 중복 판단 방법.
According to claim 1,
The step of generating the movement path information includes:
calculating a vector value by encoding the plurality of location information into each element of the plaintext space of the homomorphic encryption; and
Generating the moving path information by homomorphically encrypting the calculated vector value; Containing, a moving line overlap determination method.
제7항에 있어서,
상기 연산 결과 데이터는,
Figure pat00058
이고,
여기서,
Figure pat00059
은 랜덤 벡터,
Figure pat00060
는 비교 대상 경로 정보를 인코딩한 벡터 값,
Figure pat00061
은 동형 암호화된 상기 이동 경로 정보이고,
상기 메시지를 출력하는 단계는,
상기 ctxt를 복호화하여 획득한
Figure pat00062
의 i번째 원소가 0이면 시각 ti에 위치한 지점에서 동선이 중복되었다고 판단하고, 모든 원소가 0이 아니면 동선이 비중복되었다고 판단하는 단계; 및
판단 결과에 대응되는 메시지를 생성하여 출력하는 단계;를 포함하는, 동선 중복 판단 방법.
8. The method of claim 7,
The calculation result data is
Figure pat00058
ego,
here,
Figure pat00059
is a random vector,
Figure pat00060
is a vector value encoding the path information to be compared,
Figure pat00061
is the isomorphic-encrypted movement path information,
The step of outputting the message is
obtained by decoding the ctxt
Figure pat00062
determining that the copper wire is overlapped at the point located at time t i if the i-th element of is 0, and determining that the copper wire is non-overlapping if all elements are not 0; and
Creating and outputting a message corresponding to the determination result; Containing, a method for determining overlap of moving lines.
제6항에 있어서,
상기 이동 경로 정보를 생성하는 단계는,
상기 복수의 위치 정보를 동형 암호의 평문 공간의 각 원소로 인코딩한 후, 인코딩된 각 원소로 구성되는 다항식을 산출하고, 산출된 다항식 fA(x)을 동형 암호화하여 상기 이동 경로 정보를 생성하며,
상기 다항식 fA(x)은
Figure pat00063
이고,
여기서 x는 변수, Zp[x]는 상기 평문 공간, ai는 상기 평문 공간의 i번째 원소인, 동선 중복 판단 방법.
7. The method of claim 6,
The step of generating the movement path information includes:
After encoding the plurality of location information into each element of the plaintext space of the homomorphic encryption, a polynomial consisting of each encoded element is calculated, and the calculated polynomial f A (x) is homomorphically encrypted to generate the movement path information, ,
The polynomial f A (x) is
Figure pat00063
ego,
where x is a variable, Z p [x] is the plaintext space, and a i is the i-th element of the plaintext space.
제9항에 있어서,
상기 연산 결과 데이터는,
Figure pat00064
이고,
여기서,
Figure pat00065
,
Figure pat00066
은 랜덤 다항식, fB(x)는 비교 대상 경로 정보를 인코딩한 다항식이고,
상기 메시지를 출력하는 단계는,
상기 연산 결과 데이터를 복호화하여 획득한
Figure pat00067
와 상기 fA(x)와의 최대 공약수를 계산하는 단계;
상기 최대 공약수가
Figure pat00068
일 때 bi를 복호화한 시각 ti에 위치한 지점에서 동선이 중복되었다고 판단하고, 상기 최대 공약수가 1이면 상기 동선이 비중복되었다고 판단하는 단계; 및
상기 판단 결과에 대응되는 메시지를 생성하여 출력하는 단계;를 포함하는 동선 중복 판단 방법.
10. The method of claim 9,
The calculation result data is
Figure pat00064
ego,
here,
Figure pat00065
,
Figure pat00066
is a random polynomial, f B (x) is a polynomial encoding the path information to be compared,
The step of outputting the message is
obtained by decoding the operation result data
Figure pat00067
calculating a greatest common divisor of and f A (x);
The greatest common divisor is
Figure pat00068
judging that the moving line is overlapped at a point located at the time t i when b i is decoded, and determining that the moving line is non-overlapping if the maximum common divisor is 1; and
Creating and outputting a message corresponding to the determination result; and a method for determining overlap of moving lines.
서버 장치에 있어서,
통신부;
메모리; 및
프로세서를 포함하며,
상기 프로세서는, 환자의 이동 경로에 대응되는 비교 대상 경로 정보가 상기 통신부를 통해 수신되면 상기 비교 대상 경로 정보를 상기 메모리에 저장하고,
모바일 디바이스에서 동형 암호화한 이동 경로 정보가 상기 통신부를 통해 수신되면, 상기 비교 대상 경로 정보에서 상기 동형 암호화한 이동 경로 정보를 감산하고 그 감산 결과에 랜덤 데이터를 승산하여 연산 결과 데이터를 산출하며, 상기 연산 결과 데이터를 상기 통신부를 통해 상기 모바일 디바이스로 전송하는, 서버 장치.
In the server device,
communication department;
Memory; and
includes a processor;
The processor stores the comparison target path information in the memory when the comparison target path information corresponding to the movement path of the patient is received through the communication unit,
When the moving path information homomorphically encrypted in the mobile device is received through the communication unit, the isomorphic encrypted moving path information is subtracted from the comparison target path information, and the calculation result data is calculated by multiplying the subtraction result by random data, A server device for transmitting operation result data to the mobile device through the communication unit.
단말장치의 동선 중복 판단 방법을 수행하기 위한 프로그램 코드가 저장된 기록 매체에 있어서,
상기 동선 중복 판단 방법은,
상기 모바일 디바이스의 위치 정보를 산출하여 저장하는 단계;
저장된 복수의 위치 정보를 동형 암호화하여 상기 모바일 디바이스의 이동 경로 정보를 생성하는 단계;
상기 이동 경로 정보를 서버 장치로 전송하는 단계;
상기 서버 장치로부터 상기 이동 경로 정보 및 비교 대상 경로 정보에 기초하여 연산한 연산 결과 데이터가 수신되면, 상기 연산 결과 데이터를 복호화하는 단계;
복호화된 결과에 기초하여 상기 비교 대상 경로 정보와의 동선 중복 여부를 알리는 메시지를 출력하는 단계;를 포함하는, 기록 매체.
In a recording medium storing a program code for performing a method of determining overlapping moving lines of a terminal device,
The method of determining overlap of the moving line,
calculating and storing location information of the mobile device;
generating movement path information of the mobile device by homomorphically encrypting a plurality of stored location information;
transmitting the moving path information to a server device;
decoding the calculation result data when the calculation result data calculated based on the moving path information and the comparison target path information is received from the server device;
and outputting a message indicating whether or not a moving line overlaps with the comparison target path information based on the decoded result.
제12항에 있어서,
상기 이동 경로 정보를 생성하는 단계는,
상기 복수의 위치 정보를 동형 암호의 평문 공간의 각 원소로 인코딩하여 벡터 값을 산출하는 단계; 및
산출한 벡터 값을 동형 암호화하여 상기 이동 경로 정보를 생성하는 단계;를 포함하고,
상기 연산 결과 데이터는,
Figure pat00069
이고,
여기서,
Figure pat00070
은 랜덤 벡터,
Figure pat00071
는 비교 대상 경로 정보를 인코딩한 벡터 값,
Figure pat00072
은 동형 암호화된 상기 이동 경로 정보이고,
상기 메시지를 출력하는 단계는,
상기 ctxt를 복호화하여 획득한
Figure pat00073
의 i번째 원소가 0이면 시각 ti에 위치한 지점에서 동선이 중복되었다고 판단하고, 모든 원소가 0이 아니면 동선이 비중복되었다고 판단하는 단계; 및
판단 결과에 대응되는 메시지를 생성하여 출력하는 단계;를 포함하는, 기록 매체.
13. The method of claim 12,
The step of generating the movement path information includes:
calculating a vector value by encoding the plurality of location information into each element of the plaintext space of the homomorphic encryption; and
Including; isomorphically encrypting the calculated vector value to generate the movement path information;
The calculation result data is
Figure pat00069
ego,
here,
Figure pat00070
is a random vector,
Figure pat00071
is a vector value encoding the path information to be compared,
Figure pat00072
is the isomorphic-encrypted movement path information,
The step of outputting the message is
obtained by decoding the ctxt
Figure pat00073
determining that the copper wire is overlapped at the point located at time t i if the i-th element of is 0, and determining that the copper wire is non-overlapping if all elements are not 0; and
A recording medium comprising a; generating and outputting a message corresponding to the determination result.
제12항에 있어서,
상기 이동 경로 정보를 생성하는 단계는,
상기 복수의 위치 정보를 동형 암호의 평문 공간의 각 원소로 인코딩한 후, 인코딩된 각 원소로 구성되는 다항식을 산출하고, 산출된 다항식 fA(x)을 동형 암호화하여 상기 이동 경로 정보를 생성하며,
상기 다항식 fA(x)은
Figure pat00074
이고,
여기서 x는 변수, Zp[x]는 상기 평문 공간, ai는 상기 평문 공간의 i번째 원소이며,
상기 연산 결과 데이터는,
Figure pat00075
이고,
여기서,
Figure pat00076
,
Figure pat00077
은 랜덤 다항식, fB(x)는 비교 대상 경로 정보를 인코딩한 다항식이고,
상기 메시지를 출력하는 단계는,
상기 연산 결과 데이터를 복호화하여 획득한
Figure pat00078
와 상기 fA(x)와의 최대 공약수를 계산하는 단계;
상기 최대 공약수가
Figure pat00079
일 때 bi를 복호화한 시각 ti에 위치한 지점에서 동선이 중복되었다고 판단하고, 상기 최대 공약수가 1이면 상기 동선이 비중복되었다고 판단하는 단계; 및
상기 판단 결과에 대응되는 메시지를 생성하여 출력하는 단계;를 포함하는, 기록 매체.
13. The method of claim 12,
The step of generating the movement path information includes:
After encoding the plurality of location information into each element of the plaintext space of the homomorphic encryption, a polynomial consisting of each encoded element is calculated, and the calculated polynomial f A (x) is homomorphically encrypted to generate the movement path information, ,
The polynomial f A (x) is
Figure pat00074
ego,
where x is a variable, Z p [x] is the plaintext space, a i is the i-th element of the plaintext space,
The calculation result data is
Figure pat00075
ego,
here,
Figure pat00076
,
Figure pat00077
is a random polynomial, f B (x) is a polynomial encoding the path information to be compared,
The step of outputting the message is
obtained by decoding the operation result data
Figure pat00078
calculating a greatest common divisor of and f A (x);
The greatest common divisor is
Figure pat00079
judging that the moving line is overlapped at a point located at the time t i when b i is decoded, and determining that the moving line is non-overlapping if the maximum common divisor is 1; and
and generating and outputting a message corresponding to the determination result.
KR1020210110113A 2020-08-25 2021-08-20 Mobile device for detecting route overlap and methods thereof KR20220026502A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/410,375 US11937078B2 (en) 2020-08-25 2021-08-24 Mobile device for detecting route overlap and methods thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020200107260 2020-08-25
KR20200107260 2020-08-25

Publications (1)

Publication Number Publication Date
KR20220026502A true KR20220026502A (en) 2022-03-04

Family

ID=80814109

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210110113A KR20220026502A (en) 2020-08-25 2021-08-20 Mobile device for detecting route overlap and methods thereof

Country Status (1)

Country Link
KR (1) KR20220026502A (en)

Similar Documents

Publication Publication Date Title
US10645430B2 (en) Reducing time to first encrypted frame in a content stream
Liu et al. Secure user authentication scheme for wireless healthcare sensor networks
US10454904B2 (en) Method, apparatus and system for secure data communication
CN102387343B (en) Terminal unit, server, data handling system, data processing method
KR101965628B1 (en) Terminal device for performing homomorphic encryption, server device for calculating encrypted messages, and methods thereof
JP6573600B2 (en) A method performed by at least one server for processing data packets from a first computing device to a second computing device to allow end-to-end encrypted communication
WO2017128869A1 (en) Information processing method, first terminal, second terminal, and server
KR102186114B1 (en) Method, system, and medium for using dynamic public key infrastructure to transmit and receive encrypted messages
EP3100407B1 (en) Systems and methods for faster public key encryption using the associated private key portion
KR102287946B1 (en) Method and Apparatus For Data Encrypting
Sharma et al. RSA based encryption approach for preserving confidentiality of big data
US10917440B1 (en) Communication server and method of secured transmission of messages
JP7422490B2 (en) Secure message provision method and system
CN106027455B (en) Method, equipment and the storage medium of policy information about existing communication channel are provided
KR20220026502A (en) Mobile device for detecting route overlap and methods thereof
KR20170022455A (en) Analytics center and control method thereof, and service providing device and control method thereof in co-operational privacy protection communication environment
US11937078B2 (en) Mobile device for detecting route overlap and methods thereof
ES2380684T3 (en) Improved proximity detection method
KR102475273B1 (en) Simulation apparatus for homomorphic encryption system and method thereof
JP6794160B2 (en) Methods and systems for securely obtaining decryption keys for encrypted content and playing the content
JP2018151620A (en) Method and system for privacy protection order statistic collection in star network
KR102160294B1 (en) Apparatus for performing quorum design on secret key and method thereof
JP2007060161A (en) Encryption system, terminal device and encrypting method
CN110995749A (en) Block chain encryption method and device, electronic equipment and storage medium
KR101676418B1 (en) Method and apparatus for processing information

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E902 Notification of reason for refusal