KR20220026502A - Mobile device for detecting route overlap and methods thereof - Google Patents
Mobile device for detecting route overlap and methods thereof Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16H—HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- G16H50/00—ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics
- G16H50/80—ICT 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
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO 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/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/01—Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/13—Receivers
- G01S19/24—Acquisition or tracking or demodulation of signals transmitted by the system
- G01S19/30—Acquisition or tracking or demodulation of signals transmitted by the system code related
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16H—HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- G16H50/00—ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics
- G16H50/70—ICT 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
Abstract
Description
본 개시는 타인의 동선과 중복되었는지 여부를 판단하는 모바일 디바이스 및 그 방법에 대한 것이다. 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
로 표현된다. 여기서, 은 랜덤 벡터, 는 비교 대상 경로 정보를 인코딩한 벡터 값, 은 동형 암호화된 상기 이동 경로 정보이다. is expressed as here, is a random vector, is a vector value encoding the path information to be compared, is the isomorphic-encrypted moving path information.
상기 프로세서는 상기 ctxt를 복호화하여 를 획득하고, 상기 의 i번째 원소가 0이면 시각 ti에 위치한 지점에서 동선이 중복되었다고 판단하고, 모든 원소가 0이 아니면 동선이 비중복되었다고 판단한다.The processor decrypts the ctxt to obtain, and 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)은 로 표현된다. 여기서 x는 변수, Zp[x]는 상기 평문 공간, ai는 상기 평문 공간의 i번째 원소가 될 수 있다.The polynomial f A (x) is 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.
또한, 상기 연산 결과 데이터는, 로 표현될 수 있다. 여기서, , 은 랜덤 다항식, fB(x)는 비교 대상 경로 정보를 인코딩한 다항식이다. In addition, the calculation result data is, can be expressed as here, , 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
를 획득하고, 상기 fA(x)와의 최대 공약수를 계산하고, 상기 최대 공약수가 일 때 bi를 복호화한 시각 ti에 위치한 지점에서 동선이 중복되었다고 판단하고, 상기 최대 공약수가 1이면 상기 동선이 비중복되었다고 판단한다. , calculate the greatest common divisor with f A (x), and the greatest common divisor is 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
상기 연산 결과 데이터는, 로 표현되고, 여기서, 은 랜덤 벡터, 는 비교 대상 경로 정보를 인코딩한 벡터 값, 은 동형 암호화된 상기 이동 경로 정보가 될 수 있다. The calculation result data is is expressed as, where is a random vector, is a vector value encoding the path information to be compared, may be isomorphic-encrypted moving path information.
또한, 상기 메시지를 출력하는 단계는, 상기 ctxt를 복호화하여 를 확득하고, 획득한 의 i번째 원소가 0이면 시각 ti에 위치한 지점에서 동선이 중복되었다고 판단하고, 모든 원소가 0이 아니면 동선이 비중복되었다고 판단하는 단계 및 판단 결과에 대응되는 메시지를 생성하여 출력하는 단계를 포함할 수 있다. In addition, the step of outputting the message, decoding the ctxt obtained and obtained 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)은 이고, x는 변수, Zp[x]는 상기 평문 공간, ai는 상기 평문 공간의 i번째 원소가 될 수 있다. Here, the polynomial f A (x) is , 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.
상기 연산 결과 데이터는, 가 될 수 있다다. 여기서, , 은 랜덤 다항식, fB(x)는 비교 대상 경로 정보를 인코딩한 다항식이 될 수 있다. The calculation result data is can be here, , may be a random polynomial, f B (x) may be a polynomial encoding target path information to be compared.
또한, 상기 메시지를 출력하는 단계는, 상기 연산 결과 데이터를 복호화하여 획득한 와 상기 fA(x)와의 최대 공약수를 계산하는 단계, 상기 최대 공약수가 일 때 bi를 복호화한 시각 ti에 위치한 지점에서 동선이 중복되었다고 판단하고, 상기 최대 공약수가 1이면 상기 동선이 비중복되었다고 판단하는 단계 및 상기 판단 결과에 대응되는 메시지를 생성하여 출력하는 단계를 포함할 수 있다. In addition, the step of outputting the message is obtained by decoding the operation result data. and calculating a greatest common divisor of f A (x), wherein the greatest common divisor is 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
: 내부 값을 반올림함 : 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
단말 장치(10)란 관심 대상이 되는 사용자의 이동 경로를 제공하는 장치를 의미한다. 관심 대상이 되는 사용자란 동선을 비교할 대상을 의미한다. 일 예로, COVID-19 확진자가 될 수 있으나 반드시 이에 한정되는 것은 아니며, 다양한 환경에 적용 가능하다. 예를 들어, 기타 전염병 환자, 성 범죄자, 스토커, 접근 금지 명령을 받은 자 등 다양한 사람의 동선을 기준으로 할 수 있다. 설명의 편의상, 본 명세서에서는 이러한 관심 대상의 이동 경로를 비교 대상 경로라고 기재한다. The
단말 장치(10)는 비교 대상 경로를 서버 장치(200)에 등록하기 위한 장치이다. 구체적으로는, 경찰서, 보건소, 질병 예방 센터, 병원, 법원 및 기타 관공서 등에 구비된 서버 장치나 각종 단말 장치, 키오스크 등으로 구현될 수도 있고, 이러한 업무를 관리하는 관리자가 보유한 휴대폰이나 태블릿과 같은 모바일 디바이스로 구현될 수도 있으며, 관심 대상인 사람이 직접 보유한 모바일 디바이스가 될 수도 있다. The
복수의 모바일 디바이스(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
서버 장치(200)는 각 모바일 디바이스(100-1 ~ 100-n)에서 제공되는 동형 암호문, 즉, 이동 경로 정보와 비교 대상 경로 정보를 이용하여 기 설정된 연산을 수행하고, 그 연산 결과 데이터를 다시 각 모바일 디바이스(100-1 ~ 100-n)로 제공한다. 동형 암호화된 상태로 이동 경로 정보가 서버 장치(200)로 제공되므로, 서버 장치(200)에 의해 각 모바일 디바이스(100-1 ~ 100-n)의 사용자의 동선이 유출될 위험이 없으며, 사용자의 프라이버시를 침해하지 않을 수 있다. 또한, 비교 대상 경로 정보 자체도 각 모바일 디바이스(100-1 ~ 100-n)로 제공되는 일이 없으므로, 관심 대상의 프라이버시도 침해하지 않을 수 있다. The
이와 같이 보안이 유지된 상태에서 연산한 연산 결과 데이터가 전송되면, 각 모바일 디바이스(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
도 2에 따르면, 모바일 디바이스(100)는 통신부(communicator : 110), 메모리(120), 프로세서(130), GPS부(140), 디스플레이(150)를 포함한다. According to FIG. 2 , the
통신부(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
통신부(110)는 외부 장치로부터 수신되는 각종 신호 및 데이터를 프로세서(130)로 제공하고, 프로세서(130)의 제어에 따라 각종 신호 및 데이터를 다양한 외부 장치들로 전송할 수 있다. 일 예로, 통신부(110)는 프로세서(130)의 제어에 따라 이동 경로 정보를 서버 장치(200)로 제공할 수 있고, 서버 장치(200)로부터 연산 결과 데이터를 수신할 수 있다. The
메모리(120)는 모바일 디바이스(100)의 동작에 필요한 각종 프로그램, 데이터 및 인스트럭션(instruction)을 저장하기 위한 구성요소이다. 도 2에서는 프로세서(130)와 별개인 하나의 메모리(120)로 도시하였으나, 메모리의 개수 및 종류, 위치 등은 실시 예에 따라 다양하게 구현될 수 있다. 구체적으로는, 메모리(120)는 RAM 이나 ROM, Buffer, 캐쉬(Cache), 플래시 메모리, HDD, 외장 메모리, 메모리 카드 등과 같은 다양한 형태로 구현될 수 있으며, 어느 하나로 한정되는 것은 아니다. The
메모리(120)는 모바일 디바이스(100)의 시간 별 위치 정보, 복수의 위치 정보들로 구성되는 이동 경로 정보, 동형 암호화된 이동 경로 정보 등 다양한 정보를 저장할 수 있다. 그 밖에, 메모리(120)는 동형 암호화 및 복호화에 필요한 공개키, 비밀키를 저장할 수 있으며, 이러한 키들을 모바일 디바이스(100)가 직접 생성하는 경우에는 키 생성에 필요한 각종 파라미터를 저장할 수도 있다. 또한, 메모리(120)는 통신부(110)를 통해 서버 장치(200)로부터 수신되는 연산 결과 데이터를 저장할 수도 있다. The
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
디스플레이(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
프로세서(130)는 모바일 디바이스(100)의 전반적인 동작을 제어한다. 예를 들어, 프로세서(130)는 메모리(120)에 저장된 적어도 하나의 인스트럭션을 실행함으로써 본 개시의 실시 예에 따른 동선 중복 판단 동작 및 알림 동작 등을 수행할 수 있다. 프로세서(130)는 CPU(central processing unit), ASIC(application-specific integrated circuit)과 같은 단일 장치로 구성될 수 있으며, CPU, GPU(Graphics Processing Unit) 등의 복수의 구성으로 구성될 수도 있다. The
프로세서(130)는 GPS부(140) 및 기타 구성으로부터 획득하는 위치 정보를 메모리(120)에 저장한다. 프로세서(130)는 기 설정된 시간 주기 단위로 위치 정보를 저장할 수도 있고, 위치 변화가 감지될 때마다 변화되는 위치 정보를 저장할 수도 있다. 이에 따라, 메모리(120)에는 위치 변화에 따른 복수의 위치 정보가 저장될 수 있다. The
프로세서(130)는 특정 이벤트가 발생하면 메모리(120)에 저장된 복수의 위치 정보를 동형 암호화하여 모바일 디바이스의 이동 경로 정보를 생성한다. 여기서의 이동 경로 정보는 동형 암호문의 의미한다. 프로세서(130)는 생성한 이동 경로 정보를 통신부(110)를 통해 서버 장치(200)로 전송한다. 이동 경로 정보를 전송하기 위한 이벤트는 다양하게 설정될 수 있다. 일 예로, 메모리(120)에 설치된 특정 어플리케이션이 실행되는 이벤트 또는 그 어플리케이션의 실행 화면상에서 동선 중복 체크를 위한 메뉴가 선택되는 이벤트가 발생하면, 프로세서(130)는 동형 암호화된 이동 경로 정보를 서버 장치(200)로 전송할 수 있다. 다른 예로, 이벤트에는 기 설정된 시간 주기가 도래하는 이벤트, 모바일 디바이스(100)가 턴-온되거나 재부팅되는 이벤트 등이 될 수도 있으며, 이러한 이벤트 들 중 적어도 두 개 이상의 이벤트에 대해서 동선 중복 판단 기능이 실행될 수도 있다. When a specific event occurs, the
서버 장치(200)는 모바일 디바이스(100)로부터 이동 경로 정보가 수신되면, 비교 대상 경로 정보와 함께 연산하여 연산 결과 데이터를 제공한다. 동형 암호문 형태의 이동 경로 정보이기 때문에, 서버 장치(200)는 모바일 디바이스(100)의 이동 경로 정보를 복호화하지 않은 상태에서 연산을 수행할 수 있다. When the moving path information is received from the
프로세서(130)는 통신부(110)를 통해서 연산 결과 데이터가 수신되면, 연산 결과 데이터를 복호화한다. 동형 암호문의 특성 상 암호화된 상태로 연산이 수행되더라도, 연산 결과는 평문에 그대로 반영이 된다. 따라서, 복호화된 연산 결과 데이터는 모바일 디바이스의 실제 이동 경로 정보와 비교 대상 정보를 직접 연산한 결과가 될 수 있다. 프로세서(130)는 복호화된 결과에 기초하여, 비교 대상 경로 정보와의 동선 중복 여부를 판단한다. When the operation result data is received through the
프로세서(130)는 판단 결과에 따른 동작을 수행할 수 있다. 일 예로, 프로세서(130)는 동선 중복 여부를 알리는 메시지를 디스플레이(150)를 통해 출력할 수 있다. 다른 예로, 모바일 디바이스(100)에 구비된 스피커(미도시)를 통해 음성 메시지를 출력할 수도 있다. 또 다른 예로, 동선 중복 여부 판단 결과, 동선이 중복되었다고 판단된 경우에는, 그 사실을 외부 서버로 즉시 통지할 수도 있다. 외부 서버가 보건소나 소방서, 구급대, 병원, 질병 예방 센터 등의 기관에서 운영하는 서버라면, 동선이 중복된 사실을 확인한 기관에서 바로 해당 사용자를 감염 의심 대상으로 확인하고 대응 조치를 취할 수 있다. The
도 3은 모바일 디바이스(100)가 휴대폰으로 구현된 경우, 휴대폰에서 디스플레이하는 메시지의 일 예를 나타낸다. 도 3에 따르면, 프로세서(130)는 모바일 디바이스(100)의 시간별 위치 정보와 동선 중복 판단 결과에 기초하여, 언제 어디에서 동선이 중복되었는지를 알리는 메시지(151)를 생성한 후, 디스플레이(150)를 통해 디스플레이한다. 도 3에서는 텍스트 형태의 메시지(151)를 도시하였으나, 다르게는 지도 형태로 이동 경로 정보를 표시하고, 그 이동 경로 정보 상에서 일부 위치에서 비교 대상 경로와의 중복 여부를 표시하는 형태로 구현될 수도 있다. 3 illustrates an example of a message displayed by the mobile phone when the
한편, 위치 정보는 경도 및 위도와 같은 좌표 정보로 표시될 수 있다. 위치 상으로 완전히 중복되는 것은 어려우므로, 일정 범위 안에 위치 정보가 포함되는 경우에 중복되는 것으로 판단할 수 있다. 즉, 본 개시의 일 실시 예에 따르면, 일정한 간격으로 분산된 복수의 그리드(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
제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
일 예로, 프로세서(130)는 메모리(120)에 저장된 복수의 위치 정보를 동형 암호의 평문 공간의 각 원소로 인코딩하여 벡터 값 을 산출할 수 있다. As an example, the
여기서 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)는 인코딩된 벡터 값을 동형 암호화하여, 동형 암호문 형태의 이동 경로 정보 을 생성한다.The
프로세서(130)는 생성한 이동 경로 정보 를 서버 장치(200)로 제공한다. 이에 대응하여, 서버 장치(200)는 비교 대상 경로 정보와 이동 경로 정보를 연산한 연산 결과 데이터를 전송한다. The
연산 결과 데이터는 다음 수학식으로 표현될 수 있다. The operation result data may be expressed by the following equation.
<수학식 1><Equation 1>
여기서, 은 랜덤 벡터, 는 비교 대상 경로 정보를 인코딩한 벡터 값, 은 동형 암호화된 이동 경로 정보를 의미한다. here, is a random vector, is a vector value encoding the path information to be compared, 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>
수학식 1 및 2에서 은 원소별 곱셈을 의미한다. 연산 결과 데이터 ctxt는 여전히 암호문 형태임을 알 수 있다. In Equations 1 and 2 denotes element-wise multiplication. It can be seen that the operation result data ctxt is still in the form of cipher text.
프로세서(130)는 전송된 연산 결과 데이터를 복호화한다. 복호화된 결과를 라 하면, 프로세서(130)는 의 각 원소의 값을 확인하여, 동선 중복 여부를 판단한다. 수학식 1 및 2와 같이 연산된 경우, 이동 경로 정보와 비교 대상 경로 정보 사이의 감산 연산이 이루어지므로, 중복되는 원소에서는 그 값이 0이 된다. 따라서, 프로세서(130)는 i번째 원소가 0이면 시각 ti에 위치한 지점에서 동선이 중복되었다고 판단할 수 있다. 반면, 모든 원소가 0이 아니면, 프로세서(130)는 전체 동선이 비중복되었다고 판단할 수 있다. The
다른 예로, 이동 경로 정보 및 비교 대상 경로 정보는 다항식으로 구성될 수도 있다. 구체적으로, 프로세서(130)는 메모리(120)에 저장된 복수의 위치 정보를 동형 암호의 평문 공간의 각 원소로 인코딩한 후, 인코딩된 각 원소로 구성되는 다항식을 산출할 수 있다. 다항식은 다음과 같은 수학식으로 표현될 수 있다. As another example, the moving path information and the comparison target path information may be configured as polynomials. Specifically, the
<수학식 3><Equation 3>
수학식 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
<수학식 4><Equation 4>
여기서, , 은 랜덤 다항식, fB(x)는 비교 대상 경로 정보를 인코딩한 다항식을 의미한다. here, , is a random polynomial, and f B (x) is a polynomial encoding target path information to be compared.
프로세서(130)는 통신부(110)를 통해 수신된 연산 결과 데이터를 복호화하여, 연산 결과를 확인한다. 연산 결과는 다음과 같이 표현될 수 있다.The
<수학식 5> <Equation 5>
프로세서(130)는 획득한 연산 결과 g(x)와 fA(x)와의 최대 공약수 를 계산한다. The
프로세서(130)는 최대 공약수의 값에 따라 동선 중복 여부를 판단한다. 즉, 프로세서(130)는 최대 공약수가 일 때, bi를 복호화한 시각 ti에 위치한 지점 ai에서 동선이 중복되었다고 판단한다. 반면, 프로세서(130)는 최대 공약수가 1이면 전체 동선이 비중복되었다고 판단한다. The
이상과 같이, 동형 암호화된 이동 경로 정보를 이용함으로써, 보안이 유지된 상태에서도 신속하고 정확하게 동선 중복 여부를 확인할 수 있다. 동형 암호화는 다양한 스킴 중 하나에 따라 수행될 수 있다. 일 예로, 프로세서(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
도 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
통신부(210)는 적어도 하나 이상의 모바일 디바이스들 및 단말 장치와 통신을 수행하기 위한 구성이다. 통신부(210)는 비교 대상 경로 정보를 외부 장치로부터 수신할 수 있다. 구체적으로는, 비교 대상 경로 정보는 관심 대상자가 구비한 단말 장치로부터 직접 수신하거나, 기타 다양한 기관의 서버 장치로부터 수신할 수도 있다. 또한, 비교 대상 경로 정보 자체를 상술한 바와 같은 동형 암호문 형태로 수신할 수도 있지만, 본 실시 예에서는 서버 장치(200)가 직접 암호화하는 경우를 기준으로 설명한다. 또한, 통신부(210)는 적어도 하나 이상의 모바일 디바이스로부터 동형 암호화된 이동 경로 정보를 수신할 수 있다. The
메모리(230)는 비교 대상 경로 정보를 저장하기 위한 구성이다. The
프로세서(220)는 비교 대상 경로 정보 자체가 수신되면, 비교 대상 경로 정보에 포함된 각 위치 정보를 인코딩한다. 상술한 바와 같이 벡터 형태로 연산하는 실시 예라면, 인코딩된 비교 대상 경로 정보는 으로 표현된다. When the comparison target path information itself is received, the
또한, 프로세서(220)는 0이 아닌 평문 공간 Zn의 원소 ri를 무작위로 뽑아서 랜덤 벡터 를 계산한다. 프로세서(220)는 이동 경로 정보, 비교 대상 경로 정보, 랜덤 벡터를 이용한 연산을 수행하여, 연산 결과 데이터를 생성한다. 연산 결과 데이터는 상술한 수학식 1 또는 2와 같이 표현될 수 있으나 이에 한정되는 것은 아니다. 프로세서(220)는 생성한 연산 결과 데이터를 통신부(210)를 통해 모바일 디바이스로 제공한다. In addition, the
한편, 상술한 바와 같이 다항식 형태로 연산하는 실시 예라면, 프로세서(220)는 비교 대상 경로 정보의 각 위치 정보를 동형 암호의 평문 공간의 각 원소로 인코딩하여 fB(x)를 생성한다. On the other hand, as described above, in the embodiment of calculating in the form of a polynomial, the
또한, 프로세서(220)는 기 선정된 차수의 랜덤 다항식 rA(x), rB(x)를 무작위로 생성한다. 여기서 랜덤 다항식의 차수 d와 fB(x)의 원소 개수 n은, 사용되는 동형 암호의 링(Ring)의 차수(dimension) N 보다 n+d의 값이 이하가 되도록 설정될 수 있다. In addition, the
모바일 디바이스로부터 동형 암호화된 이동 경로 정보가 수신되면, 메모리(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
이상과 같이 랜덤 벡터나 랜덤 다항식과 같은 랜덤 데이터를 생성하여 연산에 반영하게 되면, 모바일 디바이스에서 복호화를 수행하더라도 비교 대상 경로 정보 전체를 복구할 수 없게 된다. 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
단말 장치(10)는 관심 대상자가 보유한 모바일 디바이스 또는 그 관심 대상자의 위치 정보를 제공받은 장치가 될 수 있다. 따라서, 단말 장치(10)의 위치 정보는 상술한 실시 예들에서 언급한 비교 대상 경로 정보로 사용된다. The
단말 장치(10)는 위치 정보를 확인하여 동형 암호화하여 비교 대상 경로 정보를 생성한 후, 서버 장치(200)로 전송한다(S710, S715). 서버 장치(200)는 비교 대상 경로 정보를 저장한다(S720).The
한편, 모바일 디바이스(100)도 위치 정보를 확인하여 동형 암호화하여 이동 경로 정보를 생성한 후, 서버 장치(200)로 전송한다(S725, S730).On the other hand, the
서버 장치(200)는 랜덤 데이터를 생성하고(S735), 이동 경로 정보 및 비교 대상 경로와 함께 동형 암호문 상태에서 연산을 수행한다(S740). 랜덤 데이터의 형태 및 연산 방법에 대해서는 상술한 부분에서 구체적으로 설명하였으므로 중복 설명은 생략한다. 서버 장치(200)는 연산 결과 데이터를 모바일 디바이스(100)로 제공한다. The
모바일 디바이스(100)는 연산 결과 데이터를 복호화하고(S745), 복호화된 결과값에 기초하여 경로 중복 여부를 판단한다(S750). The
도 6 및 도 7의 방법은 도 2에 도시된 구성을 가지는 모바일 디바이스(100) 및 도 5에 도시된 구성을 가지는 서버 장치(200)에서 수행될 수 있으나, 반드시 이에 한정되는 것은 아니며, 다양한 구성의 다른 디바이스에서 수행될 수도 있다. The methods of FIGS. 6 and 7 may be performed in the
또한, 상술한 실시 예들에서는 동선 중복이라고 판단되면 알림 메시지를 제공하는 것으로 설명하였으나, 제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.
상기 프로세서는,
상기 메모리에 저장된 상기 복수의 위치 정보를 동형 암호의 평문 공간의 각 원소로 인코딩하여 벡터 값을 산출하고, 산출한 벡터 값을 동형 암호화하여 상기 암호화된 이동 경로 정보를 생성하는, 모바일 디바이스. 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.
상기 연산 결과 데이터는,
이고,
여기서, 은 랜덤 벡터, 는 비교 대상 경로 정보를 인코딩한 벡터 값, 은 동형 암호화된 상기 이동 경로 정보이고,
상기 프로세서는 상기 ctxt를 복호화하여 를 획득하고, 상기 의 i번째 원소가 0이면 시각 ti에 위치한 지점에서 동선이 중복되었다고 판단하고, 모든 원소가 0이 아니면 동선이 비중복되었다고 판단하는, 모바일 디바이스. According to claim 1,
The calculation result data is
ego,
here, is a random vector, is a vector value encoding the path information to be compared, is the isomorphic-encrypted movement path information,
The processor decrypts the ctxt to obtain, and 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.
상기 프로세서는,
상기 메모리에 저장된 상기 복수의 위치 정보를 동형 암호의 평문 공간의 각 원소로 인코딩한 후, 인코딩된 각 원소로 구성되는 다항식을 산출하고, 산출된 다항식 fA(x)을 동형 암호화하여 상기 이동 경로 정보를 생성하며,
상기 다항식 fA(x)은
이고,
여기서 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
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.
상기 연산 결과 데이터는,
이고,
여기서,,은 랜덤 다항식, fB(x)는 비교 대상 경로 정보를 인코딩한 다항식이고,
상기 프로세서는 상기 연산 결과 데이터를 복호화하여 를 획득하고, 상기 fA(x)와의 최대 공약수를 계산하고, 상기 최대 공약수가 일 때 bi를 복호화한 시각 ti에 위치한 지점에서 동선이 중복되었다고 판단하고, 상기 최대 공약수가 1이면 상기 동선이 비중복되었다고 판단하는, 모바일 디바이스. 5. The method of claim 4,
The calculation result data is
ego,
here, , 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 , calculate the greatest common divisor with f A (x), and the greatest common divisor is 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.
상기 이동 경로 정보를 생성하는 단계는,
상기 복수의 위치 정보를 동형 암호의 평문 공간의 각 원소로 인코딩하여 벡터 값을 산출하는 단계; 및
산출한 벡터 값을 동형 암호화하여 상기 이동 경로 정보를 생성하는 단계;를 포함하는, 동선 중복 판단 방법. 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.
상기 연산 결과 데이터는,
이고,
여기서, 은 랜덤 벡터, 는 비교 대상 경로 정보를 인코딩한 벡터 값, 은 동형 암호화된 상기 이동 경로 정보이고,
상기 메시지를 출력하는 단계는,
상기 ctxt를 복호화하여 획득한 의 i번째 원소가 0이면 시각 ti에 위치한 지점에서 동선이 중복되었다고 판단하고, 모든 원소가 0이 아니면 동선이 비중복되었다고 판단하는 단계; 및
판단 결과에 대응되는 메시지를 생성하여 출력하는 단계;를 포함하는, 동선 중복 판단 방법. 8. The method of claim 7,
The calculation result data is
ego,
here, is a random vector, is a vector value encoding the path information to be compared, is the isomorphic-encrypted movement path information,
The step of outputting the message is
obtained by decoding the ctxt 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.
상기 이동 경로 정보를 생성하는 단계는,
상기 복수의 위치 정보를 동형 암호의 평문 공간의 각 원소로 인코딩한 후, 인코딩된 각 원소로 구성되는 다항식을 산출하고, 산출된 다항식 fA(x)을 동형 암호화하여 상기 이동 경로 정보를 생성하며,
상기 다항식 fA(x)은
이고,
여기서 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
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.
상기 연산 결과 데이터는,
이고,
여기서, , 은 랜덤 다항식, fB(x)는 비교 대상 경로 정보를 인코딩한 다항식이고,
상기 메시지를 출력하는 단계는,
상기 연산 결과 데이터를 복호화하여 획득한 와 상기 fA(x)와의 최대 공약수를 계산하는 단계;
상기 최대 공약수가 일 때 bi를 복호화한 시각 ti에 위치한 지점에서 동선이 중복되었다고 판단하고, 상기 최대 공약수가 1이면 상기 동선이 비중복되었다고 판단하는 단계; 및
상기 판단 결과에 대응되는 메시지를 생성하여 출력하는 단계;를 포함하는 동선 중복 판단 방법. 10. The method of claim 9,
The calculation result data is
ego,
here, , 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 calculating a greatest common divisor of and f A (x);
The greatest common divisor is 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.
상기 이동 경로 정보를 생성하는 단계는,
상기 복수의 위치 정보를 동형 암호의 평문 공간의 각 원소로 인코딩하여 벡터 값을 산출하는 단계; 및
산출한 벡터 값을 동형 암호화하여 상기 이동 경로 정보를 생성하는 단계;를 포함하고,
상기 연산 결과 데이터는,
이고,
여기서, 은 랜덤 벡터, 는 비교 대상 경로 정보를 인코딩한 벡터 값, 은 동형 암호화된 상기 이동 경로 정보이고,
상기 메시지를 출력하는 단계는,
상기 ctxt를 복호화하여 획득한 의 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
ego,
here, is a random vector, is a vector value encoding the path information to be compared, is the isomorphic-encrypted movement path information,
The step of outputting the message is
obtained by decoding the ctxt 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.
상기 이동 경로 정보를 생성하는 단계는,
상기 복수의 위치 정보를 동형 암호의 평문 공간의 각 원소로 인코딩한 후, 인코딩된 각 원소로 구성되는 다항식을 산출하고, 산출된 다항식 fA(x)을 동형 암호화하여 상기 이동 경로 정보를 생성하며,
상기 다항식 fA(x)은
이고,
여기서 x는 변수, Zp[x]는 상기 평문 공간, ai는 상기 평문 공간의 i번째 원소이며,
상기 연산 결과 데이터는,
이고,
여기서, , 은 랜덤 다항식, fB(x)는 비교 대상 경로 정보를 인코딩한 다항식이고,
상기 메시지를 출력하는 단계는,
상기 연산 결과 데이터를 복호화하여 획득한 와 상기 fA(x)와의 최대 공약수를 계산하는 단계;
상기 최대 공약수가 일 때 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
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
ego,
here, , 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 calculating a greatest common divisor of and f A (x);
The greatest common divisor is 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.
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) |
-
2021
- 2021-08-20 KR KR1020210110113A patent/KR20220026502A/en not_active Application Discontinuation
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 |