KR20240058009A - An electronic device for identifying proximity usning homomorphic encypted location information and method for identifying proximity thereof - Google Patents

An electronic device for identifying proximity usning homomorphic encypted location information and method for identifying proximity thereof Download PDF

Info

Publication number
KR20240058009A
KR20240058009A KR1020230140544A KR20230140544A KR20240058009A KR 20240058009 A KR20240058009 A KR 20240058009A KR 1020230140544 A KR1020230140544 A KR 1020230140544A KR 20230140544 A KR20230140544 A KR 20230140544A KR 20240058009 A KR20240058009 A KR 20240058009A
Authority
KR
South Korea
Prior art keywords
electronic device
location information
ciphertext
target device
processor
Prior art date
Application number
KR1020230140544A
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 주식회사 크립토랩
Publication of KR20240058009A publication Critical patent/KR20240058009A/en

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/52Network services specially adapted for the location of the user terminal
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Measurement Of Length, Angles, Or The Like Using Electric Or Magnetic Means (AREA)
  • Radar Systems Or Details Thereof (AREA)

Abstract

전자 장치가 개시된다. 본 전자 장치는 통신 인터페이스, 적어도 하나의 인스트럭션을 저장하는 메모리 및 통신 인터페이스 및 메모리와 연결되어 전자 장치를 제어하는 프로세서를 포함하고, 프로세서는 적어도 하나의 인스트럭션을 실행함으로써, 전자 장치의 위치 정보를 동형 암호화하여 생성된 동형 암호문을 통신 인터페이스를 이용하여 서버 장치로 전송하고, 타겟 장치의 위치 정보 및 동형 암호문 간의 연산에 기초하여 획득된 연산 결과 암호문이 통신 인터페이스를 통해 서버 장치로부터 수신되면, 연산 결과 암호문을 복호화하여 전자 장치에 대한 근접성 정보를 획득한다.An electronic device is disclosed. The electronic device includes a communication interface, a memory storing at least one instruction, and a processor connected to the communication interface and the memory to control the electronic device, where the processor executes the at least one instruction, thereby homogeneously storing location information of the electronic device. The homomorphic ciphertext generated by encryption is transmitted to the server device using a communication interface, and when the operation result ciphertext obtained based on the operation between the location information of the target device and the homomorphic ciphertext is received from the server device through the communication interface, the operation result ciphertext is decoded to obtain proximity information about the electronic device.

Description

동형 암호화된 위치 정보를 이용하여 근접성을 식별하는 전자 장치 및 그의 근접성 식별 방법 { AN ELECTRONIC DEVICE FOR IDENTIFYING PROXIMITY USNING HOMOMORPHIC ENCYPTED LOCATION INFORMATION AND METHOD FOR IDENTIFYING PROXIMITY THEREOF}Electronic device for identifying proximity using homomorphically encrypted location information and method for identifying proximity thereof

본 개시는 전자 장치 및 그의 근접성 식별 방법에 관한 것으로, 보다 구체적으로는 동형 암호화된 위치 정보를 이용하여 근접성을 식별하는 전자 장치 및 그의 근접성 식별 방법에 관한 것이다.The present disclosure relates to an electronic device and a method for identifying proximity thereof, and more specifically, to an electronic device and a method for identifying proximity using homomorphically encrypted location information.

전자 기술의 발달에 힘입어 사용자의 위치를 기반으로 다양한 서비스가 제공되고 있다. Thanks to the development of electronic technology, various services are being provided based on the user's location.

다만, 사용자의 위치 기반한 서비스를 위해서는 사용자는 자신의 위치를 제공해야 하는데, 이 경우, 사용자의 위치 정보가 제3자에게 유출될 수 있는 문제점이 존재한다.However, in order to provide a service based on the user's location, the user must provide his or her location. In this case, there is a problem that the user's location information may be leaked to a third party.

이에 따라, 암호화 기술을 통해 사용자의 위치 정보를 보호하면서 사용자의 위치 기반한 서비스를 제공할 수 있는 방안의 모색이 요청된다. Accordingly, there is a need to find a way to provide services based on the user's location while protecting the user's location information through encryption technology.

본 개시는 상술한 문제점을 해결하기 위한 것으로, 본 개시의 목적은 동형 암호화된 위치 정보를 이용하여 전자 장치와 타겟 장치 간의 거리를 식별하기 위한 전자 장치 및 그의 근접성 식별 방법을 제공함에 있다.The present disclosure is intended to solve the above-mentioned problems, and the purpose of the present disclosure is to provide an electronic device and a proximity identification method for identifying the distance between the electronic device and the target device using homomorphically encrypted location information.

본 개시의 일 실시 예에 따른 전자 장치는 통신 인터페이스, 적어도 하나의 인스트럭션을 저장하는 메모리 및 상기 통신 인터페이스 및 상기 메모리와 연결되어 상기 전자 장치를 제어하는 프로세서를 포함하고, 상기 프로세서는, 상기 적어도 하나의 인스트럭션을 실행함으로써, 상기 전자 장치의 위치 정보를 동형 암호화하여 생성된 동형 암호문을 상기 통신 인터페이스를 이용하여 서버 장치로 전송하고, 타겟 장치의 위치 정보 및 상기 동형 암호문 간의 연산에 기초하여 획득된 연산 결과 암호문이 상기 통신 인터페이스를 통해 상기 서버 장치로부터 수신되면, 상기 연산 결과 암호문을 복호화하여 상기 전자 장치에 대한 근접성 정보를 획득한다.An electronic device according to an embodiment of the present disclosure includes a communication interface, a memory storing at least one instruction, and a processor connected to the communication interface and the memory to control the electronic device, wherein the processor includes the at least one By executing the instruction, the homomorphic ciphertext generated by homomorphically encrypting the location information of the electronic device is transmitted to the server device using the communication interface, and the operation obtained based on the operation between the location information of the target device and the homomorphic ciphertext When the resulting ciphertext is received from the server device through the communication interface, the operation result ciphertext is decrypted to obtain proximity information about the electronic device.

또한, 상기 프로세서는 공개키를 이용하여 상기 전자 장치의 위치 정보를 동형 암호화하여 상기 동형 암호문을 생성할 수 있다.Additionally, the processor may generate the homomorphic encrypted text by homomorphically encrypting the location information of the electronic device using a public key.

그리고, 상기 프로세서는 상기 통신 인터페이스를 이용하여 상기 공개키를 상기 서버 장치로 전송하고, 상기 타겟 장치의 위치 정보는 상기 타겟 장치가 상기 서버 장치로부터 수신한 상기 공개키를 이용하여 상기 타겟 장치의 위치 정보를 동형 암호화하여 생성한 동형 암호문을 포함할 수 있다.Then, the processor transmits the public key to the server device using the communication interface, and the location information of the target device is determined by the target device using the public key received from the server device. It may contain homomorphic ciphertext generated by homomorphically encrypting information.

또한, 상기 타겟 장치의 위치 정보는 평문 상태의 상기 타겟 장치의 위치 정보를 포함할 수 있다.Additionally, the location information of the target device may include location information of the target device in plain text.

그리고, 상기 전자 장치에 대한 근접성 정보는 상기 전자 장치와 상기 타겟 장치 간의 거리를 포함할 수 있다.Additionally, the proximity information about the electronic device may include the distance between the electronic device and the target device.

또한, 상기 전자 장치에 대한 근접성 정보는 제1 값 또는 제2 값을 포함할 수 있다. 이 경우, 상기 프로세서는 상기 연산 결과 암호문을 복호화하여 상기 제1 값이 획득된 경우, 상기 전자 장치와 상기 타겟 장치 간의 거리가 기설정된 거리 이상인 것으로 식별하고, 상기 연산 결과 암호문을 복호화하여 상기 제2 값이 획득된 경우, 상기 전자 장치와 상기 타겟 장치 간의 거리가 기설정된 거리 미만인 것으로 식별할 수 있다.Additionally, the proximity information for the electronic device may include a first value or a second value. In this case, when the first value is obtained by decrypting the ciphertext as a result of the operation, the processor identifies that the distance between the electronic device and the target device is greater than a preset distance, decrypts the ciphertext as a result of the operation, and obtains the second value by decrypting the ciphertext as a result of the operation. When the value is obtained, it can be identified that the distance between the electronic device and the target device is less than a preset distance.

본 개시의 일 실시 예에 따른 전자 장치의 근접성 식별 방법은 상기 전자 장치의 위치 정보를 동형 암호화하여 생성된 동형 암호문을 서버 장치로 전송하는 단계 및 타겟 장치의 위치 정보 및 상기 동형 암호문 간의 연산에 기초하여 획득된 연산 결과 암호문이 상기 서버 장치로부터 수신되면, 상기 연산 결과 암호문을 복호화하여 상기 전자 장치에 대한 근접성 정보를 획득하는 단계를 포함한다.A method for identifying the proximity of an electronic device according to an embodiment of the present disclosure includes the steps of transmitting a homomorphic ciphertext generated by homomorphically encrypting the location information of the electronic device to a server device, and based on an operation between the location information of the target device and the homomorphic ciphertext. When the obtained ciphertext as a result of the operation is received from the server device, the method includes decoding the ciphertext as a result of the operation to obtain proximity information about the electronic device.

또한, 일 예에 따른 근접성 식별 방법은 공개키를 이용하여 상기 전자 장치의 위치 정보를 동형 암호화하여 상기 동형 암호문을 생성하는 단계를 더 포함할 수 있다.Additionally, the proximity identification method according to one example may further include generating the homomorphic encrypted text by homomorphically encrypting the location information of the electronic device using a public key.

그리고, 일 예에 따른 근접성 식별 방법은 상기 공개키를 상기 서버 장치로 전송하는 단계를 더 포함하고, 상기 타겟 장치의 위치 정보는 상기 타겟 장치가 상기 서버 장치로부터 수신한 상기 공개키를 이용하여 상기 타겟 장치의 위치 정보를 동형 암호화하여 생성한 동형 암호문을 포함할 수 있다.And, the proximity identification method according to an example further includes transmitting the public key to the server device, and the location information of the target device is determined by the target device using the public key received from the server device. It may include a homomorphic ciphertext generated by homomorphically encrypting the location information of the target device.

또한, 상기 타겟 장치의 위치 정보는, 평문 상태의 상기 타겟 장치의 위치 정보를 포함할 수 있다.Additionally, the location information of the target device may include location information of the target device in plain text.

그리고, 상기 전자 장치에 대한 근접성 정보는, 상기 전자 장치와 상기 타겟 장치 간의 거리를 포함할 수 있다.Additionally, the proximity information about the electronic device may include the distance between the electronic device and the target device.

또한, 상기 전자 장치에 대한 근접성 정보는, 제1 값 또는 제2 값을 포함하고, 상기 획득하는 단계는 상기 연산 결과 암호문을 복호화하여 상기 제1 값이 획득된 경우, 상기 전자 장치와 상기 타겟 장치 간의 거리가 기설정된 거리 이상인 것으로 식별하고, 상기 연산 결과 암호문을 복호화하여 상기 제2 값이 획득된 경우, 상기 전자 장치와 상기 타겟 장치 간의 거리가 기설정된 거리 미만인 것으로 식별할 수 있다.In addition, the proximity information for the electronic device includes a first value or a second value, and the obtaining step is performed when the first value is obtained by decrypting the operation result ciphertext, and the electronic device and the target device If the distance between the devices is identified as being greater than or equal to a preset distance, and the second value is obtained by decrypting the ciphertext as a result of the operation, the distance between the electronic device and the target device may be identified as being less than the preset distance.

이상과 같은 본 개시의 다양한 실시 예에 따르면, 동형 암호화된 위치 정보를 이용하여 전자 장치와 타겟 장치 간의 위치를 산출할 수 있다는 점에서, 사용자의 안전을 확보하면서도 사용자의 개인 정보를 보호할 수 있게 된다..According to various embodiments of the present disclosure as described above, the location between the electronic device and the target device can be calculated using homomorphically encrypted location information, thereby ensuring the user's safety and protecting the user's personal information. do..

도 1은 본 개시의 일 실시 예에 따른 네트워크 시스템의 구조를 설명하기 위한 도면,
도 2a는 본 개시의 일 실시 예에 따른 전자 장치의 구성을 설명하기 위한 블록도,
도 2b는 본 개시의 일 실시 예에 따른 전자 장치의 세부 구성을 설명하기 위한 블록도,
도 3 내지 도 6은 본 개시의 일 실시 예에 따라 전자 장치가 접근성 정보를 획득하는 방법을 설명하기 위한 도면들, 그리고
도 7은 본 개시의 일 실시 예에 따른 접근성 식별 방법을 설명하기 위한 도흐름도이다.
1 is a diagram for explaining the structure of a network system according to an embodiment of the present disclosure;
2A is a block diagram for explaining the configuration of an electronic device according to an embodiment of the present disclosure;
FIG. 2B is a block diagram for explaining the detailed configuration of an electronic device according to an embodiment of the present disclosure;
3 to 6 are diagrams for explaining a method for an electronic device to obtain accessibility information according to an embodiment of the present disclosure; and
Figure 7 is a flowchart for explaining an accessibility identification method 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 to the information (data) transmission process performed in this disclosure as necessary, and in the present disclosure and patent claims, all expressions describing the information (data) transmission process are encryption/decryption even if not separately mentioned. It should be interpreted to include cases as well. In the present disclosure, expressions such as “transmitted from A to B” or “received by A from B” also include transmission (transmission) or reception with another medium in between, and must be transmitted from A to B. It does not express only what is directly transmitted (delivered) or received.

본 개시의 설명에 있어서 각 단계의 순서는 선행 단계가 논리적 및 시간적으로 반드시 후행 단계에 앞서서 수행되어야 하는 경우가 아니라면 각 단계의 순서는 비제한적으로 이해되어야 한다. 즉, 위와 같은 예외적인 경우를 제외하고는 후행 단계로 설명된 과정이 선행단계로 설명된 과정보다 앞서서 수행되더라도 개시의 본질에는 영향이 없으며 권리범위 역시 단계의 순서에 관계없이 정의되어야 한다. 그리고 본 개시에서 "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 performed logically and temporally prior to the subsequent step. In other words, except for the above exceptional cases, even if the process described as a subsequent step is performed before the process described as a preceding step, the nature of disclosure is not affected, and the scope of rights must also be defined regardless of the order of the steps. In the present disclosure, the term “A or B” is defined to mean not only selectively indicating either A or B, but also including both A and B. In addition, in the present disclosure, the term "includes" has the meaning of including further other components in addition to the elements listed as included.

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

본 개시에서 "모듈" 혹은 "부"는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 "모듈" 혹은 복수의 "부"는 특정한 하드웨어로 구현될 필요가 있는 "모듈" 혹은 "부"를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서(미도시)로 구현될 수 있다.In the present disclosure, a “module” or “unit” performs at least one function or operation, and may be implemented as hardware or software, or as a combination of hardware and software. Additionally, a plurality of “modules” or a plurality of “units” are integrated into at least one module and implemented by at least one processor (not shown), except for “modules” or “units” that need to be implemented with specific hardware. It can be.

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

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

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

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

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

s1, s2 ∈ R : S1, S2 각각은 R 집합에 속하는 원소이다. s 1 , s 2 ∈ R : S1 and S2 are each elements belonging to the set R.

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

「-」 : 내부 값을 반올림함「-」 : Rounds the internal value.

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

도 1은 본 개시의 일 실시 예에 따른 네트워크 시스템의 구조를 설명하기 위한 도면이다. 1 is a diagram for explaining the structure of a network system according to an embodiment of the present disclosure.

도 1을 참조하면, 네트워크 시스템은 전자 장치(100), 서버 장치(200) 및 타겟 장치(300)를 포함할 수 있으며, 이들 장치들은 네트워크(10)를 통해 서로 연결될 수 있다. Referring to FIG. 1 , the network system may include an electronic device 100, a server device 200, and a target device 300, and these devices may be connected to each other through the network 10.

전자 장치(100)는 예를 들어, 스마트폰, 태블릿, 스마트워치, 노트북, PC, 홈 서버, 키오스크, IoT 기능이 적용된 가전제품 등과 같이 사용자가 휴대하거나 고정적인 위치에 설치된 다양한 유형의 장치로 구현되며, 전자 장치(100)의 위치 정보(예: GPS 정보 등)를 수집할 수 있다. The electronic device 100 is implemented as various types of devices carried by the user or installed in a fixed location, such as smartphones, tablets, smartwatches, laptops, PCs, home servers, kiosks, home appliances with IoT functions, etc. And location information (e.g. GPS information, etc.) of the electronic device 100 can be collected.

또한, 타겟 장치(300)는 예를 들어, 스마트폰, 태블릿, 스마트워치, 스마트 밴드, 스마트 목걸이, 스마트 태그, 전자발찌, 스마트 태그, 위치 추적기, 전자발찌 등과 같이 사용자가 휴대하거나 차량, 오토바이, 자전거 등과 같은 운송 수단에 설치될 수 있는 다양한 유형의 장치로 구현되며, 타겟 장치(300)의 위치 정보(예: GPS 정보 등)를 수집할 수 있다. In addition, the target device 300 may be carried by the user, such as a smartphone, tablet, smart watch, smart band, smart necklace, smart tag, electronic anklet, smart tag, location tracker, electronic anklet, etc., or in a vehicle, motorcycle, It is implemented as various types of devices that can be installed on a means of transportation such as a bicycle, and can collect location information (eg, GPS information, etc.) of the target device 300.

도 2a는 본 개시의 일 실시 예에 따른 전자 장치의 구성을 설명하기 위한 블록도이다.FIG. 2A is a block diagram for explaining the configuration of an electronic device according to an embodiment of the present disclosure.

도 2a를 참조하면, 전자 장치(100)는 통신 인터페이스(110), 메모리(120) 및 프로세서(130)를 포함할 수 있다. Referring to FIG. 2A , the electronic device 100 may include a communication interface 110, a memory 120, and a processor 130.

통신 인터페이스(110)는 회로(circuitry)를 포함한다. 통신 인터페이스(110)는 네트워크(10)를 통해 외부 장치(예: 서버 장치(200), 외부 서버 등)와 통신하여 외부 장치로 각종 정보나 데이터를 송신하거나 외부 장치로부터 각종 정보나 데이터를 수신할 수 있다. 이러한 통신 인터페이스(110)는 송수신부(transceiver)로 지칭될 수도 있다. The communication interface 110 includes circuitry. The communication interface 110 communicates with an external device (e.g., server device 200, external server, etc.) through the network 10 to transmit various information or data to the external device or receive various information or data from the external device. You can. This communication interface 110 may also be referred to as a transceiver.

예를 들어, 통신 인터페이스(110)는 이더넷 모듈과 같은 유선 랜 통신 모듈을 포함할 수 있다. 또한, 통신 인터페이스(110)는 와이파이(예: WiFi 802.11a/b/g/n), 블루투스, 지그비, NFC, 적외선 통신 등의 무선 통신 모듈을 포함할 수 있다. 또한, 통신 인터페이스(110)는 3G(3rd Generation), 3GPP(3rd Generation Partnership Project), LTE(Long Term Evolution), 5G 등과 같은 셀룰러 통신 모듈을 포함할 수 있다. 또한, 통신 인터페이스(110)는 HDMI(High-Definition Multimedia Interface), USB(Universal Serial Bus) 등과 같은 유선 통신 모듈을 포함할 수 있다.For example, the communication interface 110 may include a wired LAN communication module such as an Ethernet module. Additionally, the communication interface 110 may include a wireless communication module such as Wi-Fi (eg, WiFi 802.11a/b/g/n), Bluetooth, ZigBee, NFC, and infrared communication. Additionally, the communication interface 110 may include a cellular communication module such as 3rd Generation (3G), 3rd Generation Partnership Project (3GPP), Long Term Evolution (LTE), and 5G. Additionally, the communication interface 110 may include a wired communication module such as High-Definition Multimedia Interface (HDMI), Universal Serial Bus (USB), etc.

이와 같이, 통신 인터페이스(110)는 다양한 유형의 통신 방식 중 적어도 하나를 이용하여 외부 장치와 통신할 수 있다. In this way, the communication interface 110 can communicate with an external device using at least one of various types of communication methods.

메모리(120)는 본 개시의 다양한 실시 예에 따라 전자 장치(100)가 동작하기 위해 필요한 데이터를 저장할 수 있다. The memory 120 may store data necessary for the electronic device 100 to operate according to various embodiments of the present disclosure.

예를 들어, 메모리(120)는 전자 장치(100)를 구동하기 위한 O/S, 각종 소프트웨어, 데이터 등을 저장할 수 있다. 또한, 메모리(120)에는 하나 이상의 인스트럭션(instruction)이 저장될 수 있다. 이러한 메모리(120)는 RAM, ROM, 플래시 메모리, HDD, 외장 메모리, 메모리 카드 등과 같은 다양한 형태로 구현될 수 있으며, 어느 하나로 한정되는 것은 아니다. For example, the memory 120 may store an operating system operating system (OS) for driving the electronic device 100, various software, data, etc. Additionally, one or more instructions may be stored in the memory 120. This memory 120 may be implemented in various forms such as RAM, ROM, flash memory, HDD, external memory, memory card, etc., and is not limited to any one.

그리고, 메모리(120)에는 암호화(예: 동형 암호화)될 메시지가 저장될 수 있다. 여기에서, 메시지는 전자 장치(100)의 위치 정보일 수 있다.Additionally, a message to be encrypted (e.g., homomorphically encrypted) may be stored in the memory 120. Here, the message may be location information of the electronic device 100.

그리고, 메모리(120)에는 공개키가 저장될 수 있다. 공개키가 전자 장치(100)에 의해 생성되는 경우, 메모리(120)에는 공개키, 비밀키 뿐만 아니라, 공개키 및 비밀키의 생성에 필요한 각종 파라미터가 저장될 수 있다. Additionally, the public key may be stored in the memory 120. When the public key is generated by the electronic device 100, the memory 120 may store not only the public key and the private key, but also various parameters necessary for generating the public key and the private key.

그리고, 메모리(120)는 전자 장치(100)에서 생성된 동형 암호문을 저장할 수 있다. 또한, 메모리(120)는 동형 암호문의 생성 과정의 중간 데이터(예를 들어, 메시지 벡터, 다항식 형태의 메시지 등)를 저장할 수 있다. Additionally, the memory 120 may store the homomorphic ciphertext generated in the electronic device 100. Additionally, the memory 120 may store intermediate data (eg, message vector, polynomial message, etc.) in the process of generating homomorphic ciphertext.

그리고, 메모리(120)는 연산 결과 암호문을 저장할 수도 있다. 연산 결과 암호문은 동형 암호문에 대한 연산 과정을 통해 획득된 결과 값을 의미할 수 있다. 이러한 연산 과정은 서버 장치(200)에 의해 수행될 수 있으며, 서버 장치(200)는 연산 과정을 통해 획득한 연산 결과 암호문을 전자 장치(100)로 전송할 수 있다.Additionally, the memory 120 may store the ciphertext as a result of the operation. The calculation result ciphertext may refer to the result value obtained through the calculation process for the homomorphic ciphertext. This calculation process can be performed by the server device 200, and the server device 200 can transmit the calculation result ciphertext obtained through the calculation process to the electronic device 100.

프로세서(130)는 전자 장치(100)의 각 구성과 연결되어 전자 장치(100)의 전반적인 동작을 제어할 수 있다. 예를 들어, 프로세서(130)는 통신 인터페이스(110) 및 메모리(120)와 연결되어 전자 장치(100)를 제어할 수 있다. 이러한 프로세서(130)는 CPU(central processing unit), ASIC(application-specific integrated circuit)과 같은 단일 장치로 구성될 수 있으며, CPU, GPU(Graphics Processing Unit) 등의 복수의 장치로 구성될 수도 있다.The processor 130 is connected to each component of the electronic device 100 and can control the overall operation of the electronic device 100. For example, the processor 130 may be connected to the communication interface 110 and the memory 120 to control the electronic device 100. The processor 130 may be composed of a single device such as a central processing unit (CPU) or an application-specific integrated circuit (ASIC), or may be composed of a plurality of devices such as a CPU or a graphics processing unit (GPU).

또한, 프로세서(130)는 메모리(120)에 저장된 하나 이상의 인스트럭션을 실행함으로써, 본 개시의 다양한 실시 예에 따른 전자 장치(100)의 동작을 수행할 수 있다. Additionally, the processor 130 may perform operations of the electronic device 100 according to various embodiments of the present disclosure by executing one or more instructions stored in the memory 120.

도 2b는 본 개시의 일 실시 예에 따른 전자 장치의 구성을 설명하기 위한 블록도이다.FIG. 2B is a block diagram for explaining the configuration of an electronic device according to an embodiment of the present disclosure.

도 2b를 참조하면, 전자 장치(100)는 통신 인터페이스(110), 메모리(120), 프로세서(130), 디스플레이(140), 사용자 인터페이스(150), 스피커(160) 및 위치 수집 모듈(170)을 포함할 수 있다. 그러나, 이와 같은 구성은 예시적인 것으로서, 본 개시를 실시함에 있어 이와 같은 구성에 더하여 새로운 구성이 추가되거나 일부 구성이 생략될 수 있음을 물론이다. 한편, 도 2b에 도시된 구성 중 도 2a에 도시된 구성과 중복되는 구성에 대해서는 자세한 설명을 생략하도록 한다. Referring to FIG. 2B, the electronic device 100 includes a communication interface 110, a memory 120, a processor 130, a display 140, a user interface 150, a speaker 160, and a location collection module 170. may include. However, this configuration is an example, and of course, in carrying out the present disclosure, new configurations may be added or some configurations may be omitted in addition to these configurations. Meanwhile, a detailed description of the configuration shown in FIG. 2B that overlaps the configuration shown in FIG. 2A will be omitted.

디스플레이(140)는 다양한 화면을 표시할 수 있다. 디스플레이(140)는 LCD(liquid crystal display), OLED(Organic Light Emitting Diodes) 등으로 구현될 수 있으며, 후술한 사용자 인터페이스(150)의 기능을 수행할 수 있는 터치 스크린으로 구현될 수도 있다. The display 140 can display various screens. The display 140 may be implemented as a liquid crystal display (LCD), organic light emitting diodes (OLED), etc., and may also be implemented as a touch screen capable of performing the function of the user interface 150, which will be described later.

프로세서(130)는 전자 장치(100)가 제공하는 각종 기능과 관련된 다양한 화면을 디스플레이(140)에 표시할 수 있다. 예를 들어, 디스플레이(140)는 비밀키 및 공개키의 생성에 필요한 파라미터의 입력을 요청하는 텍스트 및 해당 파라미터를 입력받기 위한 사용자 인터페이스 창을 표시할 수 있다. The processor 130 may display various screens related to various functions provided by the electronic device 100 on the display 140. For example, the display 140 may display text requesting input of parameters necessary for generating a private key and a public key and a user interface window for receiving the corresponding parameters.

사용자 인터페이스(150)는 사용자 입력을 수신할 수 있다. 사용자 입력은 전자 장치(100)가 제공하는 각종 기능을 실행하기 위한 사용자 입력, 각종 기능의 실행을 위해 필요한 정보를 입력하기 위한 사용자 입력 등을 포함할 수 있다. 예를 들어, 사용자 입력은 비밀키 및 공개키 생성에 필요한 파라미터를 입력하기 위한 사용자 입력 등을 포함할 수 있다. User interface 150 may receive user input. User input may include user input for executing various functions provided by the electronic device 100, user input for inputting information necessary for executing various functions, etc. For example, user input may include user input for entering parameters necessary for generating a private key and a public key.

이 경우, 사용자 인터페이스(150)는 버튼, 터치 패드, 마우스 및 키보드 등으로 구현될 수 있다. 또한, 사용자 인터페이스(150) 및 디스플레이(140)는 디스플레이 기능을 수행하고 터치 동작을 감지하기 위한 터치 스크린으로 구현될 수 있다. In this case, the user interface 150 may be implemented with buttons, a touch pad, a mouse, and a keyboard. Additionally, the user interface 150 and the display 140 may be implemented as a touch screen to perform a display function and detect a touch operation.

이에 따라, 프로세서(130)는 사용자 인터페이스(150)를 통해 수신된 사용자 입력에 따라 전자 장치(100)의 다양한 기능을 수행할 수 있다.Accordingly, the processor 130 may perform various functions of the electronic device 100 according to user input received through the user interface 150.

스피커(160)는 각종 오디오뿐만 아니라 각종 알림 음이나 음성 메시지 등을 출력할 수 있다. 이에 따라, 프로세서(130)는 스피커(160)를 통해 다양한 오디오를 출력할 수 있다.The speaker 160 can output not only various types of audio but also various types of notification sounds or voice messages. Accordingly, the processor 130 can output various audio through the speaker 160.

위치 수집 모듈(170)은 전자 장치(100)의 위치 정보를 획득할 수 있다. 여기에서, 위치 정보는 GPS 정보일 수 있으나, 이 예에 한정되는 것은 아니다. The location collection module 170 may obtain location information of the electronic device 100. Here, the location information may be GPS information, but is not limited to this example.

이를 위해, 위치 수집 모듈(160)은 GPS 신호를 수신하기 위한 GPS 회로를 포함할 수 있다. GPS는 사용 지역 또는 대역폭 등에 따라, GLONASS(global navigation satellite system), Beidou Navigation Satellite System, QZSS(quasi-zenith satellite system), IRNSS(indian reginal satellite system) 또는 Galileo(the european global satellite-based navigation system) 중 적어도 하나를 포함할 수 있다. 프로세서(130)는 위치 수집 모듈(170)을 이용하여 전자 장치(100)의 위치에 대한 데이터를 획득할 수 있다.To this end, the location collection module 160 may include a GPS circuit for receiving GPS signals. Depending on the area or bandwidth of use, GPS can be operated by GLONASS (global navigation satellite system), Beidou Navigation Satellite System, QZSS (quasi-zenith satellite system), IRNSS (indian regional satellite system), or Galileo (the european global satellite-based navigation system). It may include at least one of: The processor 130 may obtain data about the location of the electronic device 100 using the location collection module 170.

한편, 본 개시의 일 실시 예에 따르면, 전자 장치(100)는 전자 장치(100)의 위치 정보를 동형 암호화하여 동형 암호문을 생성하고, 동형 암호문을 서버 장치(200)로 전송할 수 있다. 그리고, 전자 장치(100)는 서버 장치(200)로부터 동형 암호문에 대한 연산 결과인 연산 결과 암호문이 수신되면, 연산 결과 암호문을 복호화하여 전자 장치(100)와 타겟 장치(300) 간의 거리를 식별할 수 있다. 그리고, 전자 장치(100)는 전자 장치(100)와 타겟 장치(300) 간의 거리에 기초하여 알림을 제공하거나, 전자 장치(100)의 위치 정보를 서버 장치(200) 및/또는 경찰 등을 포함하는 관리 기관으로 전송할 수 있다.Meanwhile, according to an embodiment of the present disclosure, the electronic device 100 may homomorphically encrypt the location information of the electronic device 100 to generate a homomorphic ciphertext and transmit the homomorphic ciphertext to the server device 200. Then, when the electronic device 100 receives the operation result ciphertext, which is the result of the operation on the homomorphic ciphertext, from the server device 200, the electronic device 100 decrypts the operation result ciphertext to identify the distance between the electronic device 100 and the target device 300. You can. In addition, the electronic device 100 provides a notification based on the distance between the electronic device 100 and the target device 300, or provides location information of the electronic device 100 to the server device 200 and/or the police, etc. It can be sent to the management agency that does it.

이하에서 첨부된 도면을 참조하여 보다 구체적으로 설명하도록 한다.Hereinafter, it will be described in more detail with reference to the attached drawings.

프로세서(130)는 전자 장치(100)의 위치 정보를 동형 암호화하여 동형 암호문을 생성할 수 있다. 이를 위해, 프로세서(130)는 메시지(예: 전자 장치(100)의 위치 정보)를 동형 암호화하기 위한 모듈을 포함할 수 있다.The processor 130 may generate a homomorphic ciphertext by homomorphically encrypting the location information of the electronic device 100. To this end, the processor 130 may include a module for homomorphically encrypting a message (eg, location information of the electronic device 100).

구체적으로, 프로세서(130)는 메모리(120)에 저장된 각종 파라미터 및 프로그램 등을 이용하여 메시지(예: 전자 장치(100)의 위치 정보)를 동형 암호화할 수 있다. Specifically, the processor 130 may homomorphically encrypt a message (eg, location information of the electronic device 100) using various parameters and programs stored in the memory 120.

이 경우, 프로세서(130)는 동형 암호화를 수행하는 과정에서 산출되는 암호화 노이즈 즉, 에러를 암호문에 포함시킬 수 있다. In this case, the processor 130 may include encryption noise, that is, an error calculated in the process of performing homomorphic encryption, in the ciphertext.

구체적으로, 프로세서(130)에 의해 생성되는 동형 암호문은, 추후에 비밀키를 이용하여 복호화하였을 때 메시지 및 에러 값을 포함하는 결과 값이 복원되는 형태로 생성될 수 있다. Specifically, the homomorphic ciphertext generated by the processor 130 may be generated in a form in which the resulting value including the message and error value is restored when the homomorphic ciphertext is later decrypted using a secret key.

예를 들어, 프로세서(130)에 의해 생성되는 동형 암호문은 비밀키를 이용하여 복호화하였을 때 하기의 수학식 1을 만족하는 형태로 생성될 수 있다. For example, the homomorphic ciphertext generated by the processor 130 may be generated in a form that satisfies Equation 1 below when decrypted using a secret key.

[수학식 1][Equation 1]

Dec(ct, sk) = <ct, sk> = M+e(mod q)Dec(ct, sk) = <ct, sk> = M+e(mod q)

여기서 < , >는 내적 연산(usual inner product), ct는 암호문, sk는 비밀키, M은 평문 메시지, e는 암호화 에러 값, mod q는 암호문의 모듈러스(Modulus)를 의미한다. q는 스케일링 팩터(scaling factor)(Δ)가 메시지에 곱해진 결과 값 M보다 크게 선택되어야 한다. 에러 값 e의 절대값이 M에 비해서 충분히 작다면, 암호문의 복호화 값 M+e은 유효숫자연산에서 원래의 메시지를 동일한 정밀도로 대체될 수 있는 값이다. 복호화된 데이터 중에서 에러는 최하위 비트(LSB) 측에 배치되고, M은 에러와 인접하게 차하위 비트 측에 배치될 수 있다. Here, < , > are the inner product, ct is the ciphertext, sk is the secret key, M is the plaintext message, e is the encryption error value, and mod q is the modulus of the ciphertext. q should be selected to be larger than the resulting value M, where the scaling factor (Δ) is multiplied by the message. If the absolute value of the error value e is sufficiently small compared to M, the decryption value M+e of the ciphertext is a value that can replace the original message with the same precision in significant figure calculation. Among the decoded data, the error may be placed on the least significant bit (LSB) side, and M may be placed on the next least significant bit side adjacent to the error.

메시지의 크기가 너무 작거나 너무 큰 경우, 스케일링 팩터를 이용하여 그 크기가 조절될 수도 있다. 스케일링 팩터를 사용하게 되면, 정수 형태의 메시지뿐만 아니라 실수 형태의 메시지까지도 암호화할 수 있게 되므로, 활용성이 크게 증대할 수 있다. 또한, 스케일링 팩터를 이용하여 메시지의 크기를 조절함으로써, 연산이 이루어지고 난 이후의 암호문에서 메시지들이 존재하는 영역 즉, 유효 영역의 크기도 조절될 수 있다.If the size of the message is too small or too large, the size may be adjusted using a scaling factor. By using a scaling factor, not only messages in the form of integers but also messages in the form of real numbers can be encrypted, thereby greatly increasing usability. Additionally, by adjusting the size of the message using a scaling factor, the size of the area where messages exist in the ciphertext after the operation is performed, that is, the size of the effective area, can also be adjusted.

실시 예에 따라, 암호문의 모듈러스 q는 다양한 형태로 설정되어 사용될 수 있다. 예를 들어, 암호문의 모듈러스는 스케일링 팩터 Δ의 지수승 q=ΔL 형태로 설정될 수 있다. Δ가 2라면, q=210 과 같은 값으로 설정될 수 있다. Depending on the embodiment, the modulus q of the ciphertext may be set and used in various forms. For example, the modulus of the ciphertext may be set in the form q= ΔL , the exponent of the scaling factor Δ. If Δ is 2, q=2 can be set to a value such as 10 .

한편, 암호화를 위해 공개키가 사용될 수 있는데, 프로세서(130)는 암호화를 수행하는데 필요한 공개키를 생성할 수 있다. 다만, 이 예에 한정되는 것은 아니고, 공개키는 외부 장치로부터 수신될 수도 있다.Meanwhile, a public key may be used for encryption, and the processor 130 may generate the public key necessary to perform encryption. However, it is not limited to this example, and the public key may be received from an external device.

예를 들어, 프로세서(130)는 Ring-LWE 기법을 이용하여 공개키를 생성할 수 있다. 구체적으로, 프로세서(130)는 먼저 각종 파라미터 및 링(Ring)을 설정하여, 메모리(120)에 저장할 수 있다. 파라미터의 예로는 평문 메시지 비트의 길이, 공개키 및 비밀키의 크기 등이 있을 수 있다. For example, the processor 130 may generate a public key using the Ring-LWE technique. Specifically, the processor 130 may first set various parameters and rings and store them in the memory 120. Examples of parameters may include the length of plaintext message bits and the sizes of public and private keys.

그리고, 링은 하기의 수학식 2와 같이 표현될 수 있다. And, the ring can be expressed as Equation 2 below.

[수학식 2][Equation 2]

여기서 R은 링으로, Z_q를 계수로 가지는 n차 다항식의 집합이다. Zq는 정수를 modulus q한 계수 집합, Zq[x]는 Zq의 계수를 갖는 다항식, f(x)는 n차 다항식이다. Here, R is a ring and is a set of nth degree polynomials with Z_q as the coefficient. Zq is a set of coefficients with modulus q of an integer, Zq[x] is a polynomial with coefficients of Zq, and f(x) is a polynomial of degree n.

링이란 기설정된 계수를 가지는 다항식의 집합으로, 원소들 사이에 덧셈과 곱셈이 정의되어 있으며 덧셈과 곱셈에 대해서 닫혀 있는 집합을 의미한다. A ring is a set of polynomials with preset coefficients, in which addition and multiplication are defined between elements, and means a set that is closed with respect to addition and multiplication.

일 예로, 링은 계수가 Zq인 n차 다항식의 집합을 의미한다. ΦN(x)를 N차 사이클로토믹 다항식으로 정의하면, 링은 하기의 수학식 3과 같이 표현될 수 있다. As an example, a ring refers to a set of nth degree polynomials whose coefficients are Zq. If Φ N (x) is defined as an N-order cyclotomic polynomial, the ring can be expressed as Equation 3 below.

[수학식 3][Equation 3]

여기서, R은 n이 Φ(N)일 때, N차 사이클로토믹 다항식(N-th cyclotomic polynomial)이다. 그리고, Φ(N)는 Euler totient 함수로, N과 서로소이고 N보다 작은 자연수의 개수이다. Here, R is an N-th cyclotomic polynomial when n is Φ(N). And, Φ(N) is an Euler totient function, which is the number of natural numbers that are coprime to N and smaller than N.

한편, 비밀키(sk)는 다음과 같이 표현될 수 있다. Meanwhile, the secret key (sk) can be expressed as follows.

한편, 수학식 3의 링은 복소수 공간(즉, 실수 영역과, 허수 영역)을 가질 수 있다. 한편, 구현시에는 링의 복소수 공간 중 실수 공간(또는 실수 영역)만을 이용하도록 하여, 동형 암호문에 대한 연산 속도를 향상시킬 수도 있다. Meanwhile, the ring in Equation 3 may have a complex number space (i.e., a real domain and an imaginary domain). Meanwhile, during implementation, the operation speed for homomorphic ciphertext can be improved by using only the real space (or real space) of the complex number space of the ring.

링이 설정되면, 프로세서(130)는 링으로부터 비밀키(sk)를 산출할 수 있다. Once the ring is set, the processor 130 can calculate the secret key (sk) from the ring.

[수학식 4][Equation 4]

Figure pat00003
Figure pat00003

여기서, s(x)는 작은 계수로 랜덤하게 생성한 다항식을 의미한다. Here, s(x) means a polynomial randomly generated with small coefficients.

그리고, 프로세서(130)는 링으로부터 제1 랜덤 다항식(a(x))을 산출할 수 있다. 제1 랜덤 다항식은 하기의 수학식 5와 같이 표현될 수 있다. And, the processor 130 can calculate the first random polynomial (a(x)) from the ring. The first random polynomial can be expressed as Equation 5 below.

[수학식 5][Equation 5]

또한, 프로세서(130)는 에러를 산출할 수 있다. 구체적으로, 프로세서(130)는 이산 가우시안 분포 또는 그와 통계적 거리가 가까운 분포로부터 에러를 추출할 수 있다. 이러한 에러는 하기의 수학식 6과 같이 표현될 수 있다.Additionally, the processor 130 may calculate an error. Specifically, the processor 130 may extract an error from a discrete Gaussian distribution or a distribution with a statistical distance close to it. This error can be expressed as Equation 6 below.

[수학식 6][Equation 6]

에러까지 산출되면, 프로세서(130)는 제1 랜덤 다항식 및 비밀키에 에러를 모듈러 연산하여 제2 랜덤 다항식을 산출할 수 있다. 제2 랜덤 다항식은 하기의 수학식 7과 같이 표현될 수 있다. If an error is calculated, the processor 130 may calculate the second random polynomial by modularly calculating the error on the first random polynomial and the secret key. The second random polynomial can be expressed as Equation 7 below.

[수학식 7][Equation 7]

Figure pat00006
Figure pat00006

최종적으로, 프로세서(130)는 하기의 수학식 8과 같이, 제1 랜덤 다항식 및 제2 랜덤 다항식을 포함하는 형태로 공개키(pk)를 생성할 수 있다. Finally, the processor 130 may generate a public key (pk) in a form including a first random polynomial and a second random polynomial, as shown in Equation 8 below.

[수학식 8][Equation 8]

Figure pat00007
Figure pat00007

상술한 키 생성 방법은 일 예에 불과하므로, 반드시 이 예에 한정되는 것은 아니며, 이 밖에 다른 방법으로 공개키 및 비밀키가 생성될 수 있음은 물론이다. Since the above-described key generation method is only an example, it is not necessarily limited to this example, and of course, the public key and private key can be generated by other methods.

실시 예에 따라, 프로세서(130)는 생성된 공개키를 통신 인터페이스(110)를 통해 외부 장치(예: 서버 장치(200))로 전송할 수 있다. 이 경우, 프로세서(130)는 사용자 입력 또는 디폴트 명령에 따라 공개키를 통신 인터페이스(110)를 통해 서버 장치(200)로 전송할 수 있다.Depending on the embodiment, the processor 130 may transmit the generated public key to an external device (eg, server device 200) through the communication interface 110. In this case, the processor 130 may transmit the public key to the server device 200 through the communication interface 110 according to a user input or default command.

또한, 프로세서(130)는 메시지에 대한 동형 암호문을 생성할 수 있다. 구체적으로, 프로세서(130)는 메시지에 공개키를 적용하여 동형 암호문을 생성할 수 있다. 이때, 프로세서(130)는 암호문의 길이를 스케일링 팩터의 크기에 대응되도록 생성할 수 있다. 한편, 프로세서(130)는 동형 암호문에 대한 복호화가 필요한 경우, 동형 암호문에 비밀키를 적용하여 동형 암호문을 복호화하여 메시지를 생성할 수 있다. 이때 생성된 메시지는 앞서 설명한 수학식 1에서 언급한 바와 같이 에러를 포함할 수 있다.Additionally, the processor 130 may generate homomorphic ciphertext for the message. Specifically, the processor 130 can generate homomorphic ciphertext by applying a public key to the message. At this time, the processor 130 may generate the length of the ciphertext to correspond to the size of the scaling factor. Meanwhile, when decryption of the homomorphic ciphertext is necessary, the processor 130 can apply a secret key to the homomorphic ciphertext to decrypt the homomorphic ciphertext and generate a message. The message generated at this time may contain an error as mentioned in Equation 1 described above.

또한, 프로세서(130)는 동형 암호문이 생성되면, 동형 암호문을 메모리(120)에 저장하거나, 사용자 요청 또는 디폴트 명령에 따라 통신 인터페이스(110)를 통해 서버 장치(200)로 전송할 수 있다.Additionally, when the homomorphic ciphertext is generated, the processor 130 may store the homomorphic ciphertext in the memory 120 or transmit it to the server device 200 through the communication interface 110 according to a user request or default command.

이에 따라, 도 3과 같이, 프로세서(130)는 공개키를 생성하고(S310), 생성된 공개키를 통신 인터페이스(110)를 이용하여 서버 장치(200)로 전송할 수 있다(S315). Accordingly, as shown in FIG. 3, the processor 130 may generate a public key (S310) and transmit the generated public key to the server device 200 using the communication interface 110 (S315).

또한, 프로세서(130)는 전자 장치(100)의 위치 정보를 동형 암호화하여 동형 암호문을 생성할 수 있다(S320). 이 경우, 프로세서(130)는 공개키를 이용하여 전자 장치(100)의 위치 정보를 동형 암호화하여 동형 암호문을 생성할 수 있다. 그리고, 프로세서(130)는 생성된 동형 암호문을 통신 인터페이스(110)를 이용하여 서버 장치(200)로 전송할 수 있다(S325). Additionally, the processor 130 may generate a homomorphic ciphertext by homomorphically encrypting the location information of the electronic device 100 (S320). In this case, the processor 130 may homomorphically encrypt the location information of the electronic device 100 using a public key to generate a homomorphic ciphertext. Then, the processor 130 may transmit the generated homomorphic ciphertext to the server device 200 using the communication interface 110 (S325).

서버 장치(200)는 전자 장치(100)로부터 수신된 공개키를 타겟 장치(300)로 전송할 수 있다(S330). The server device 200 may transmit the public key received from the electronic device 100 to the target device 300 (S330).

타겟 장치(300)는 타겟 장치(300)의 위치 정보를 획득할 수 있다. 여기에서, 위치 정보는 GPS 정보일 수 있으나, 이 예에 한정되는 것은 아니다. 이를 위해, 위타겟 장치(300)는 GPS 신호를 수신하기 위한 GPS 회로를 포함할 수 있다.The target device 300 may obtain location information of the target device 300. Here, the location information may be GPS information, but is not limited to this example. To this end, the above target device 300 may include a GPS circuit for receiving GPS signals.

그리고, 타겟 장치(300)는 타겟 장치(300)의 위치 정보를 동형 암호화하여 동형 암호문을 생성할 수 있다(S335). 즉, 타겟 장치(300)는 서버 장치(200)로부터 공개키가 수신되면, 서버 장치(200)로부터 수신된 공개키를 이용하여 타겟 장치(300)의 위치 정보를 동형 암호화하여 동형 암호문을 생성할 수 있다. 그리고, 타겟 장치(300)는 생성된 동형 암호문을 서버 장치(200)로 전송할 수 있다(S340). Then, the target device 300 may generate a homomorphic ciphertext by homomorphically encrypting the location information of the target device 300 (S335). That is, when the target device 300 receives the public key from the server device 200, the target device 300 homomorphically encrypts the location information of the target device 300 using the public key received from the server device 200 to generate a homomorphic ciphertext. You can. Then, the target device 300 may transmit the generated homomorphic ciphertext to the server device 200 (S340).

이에 따라, 서버 장치(200)가 수신하는 타겟 장치(300)의 위치 정보는 타겟 장치(300)가 서버 장치(200)로부터 수신한 공개키를 이용하여 타겟 장치(300)의 위치 정보를 동형 암호화하여 생성한 동형 암호문을 포함할 수 있다. 이와 같이, 전자 장치(100)에서 수집한 전자 장치(100)의 위치 정보와 타겟 장치(300)에서 수집한 타겟 장치(300)의 위치 정보는 동일한 공개키에 의해 암호화될 수 있다.Accordingly, the location information of the target device 300 received by the server device 200 is homomorphically encrypted by the target device 300 using the public key received from the server device 200. It may include a homomorphic ciphertext generated by In this way, the location information of the electronic device 100 collected from the electronic device 100 and the location information of the target device 300 collected from the target device 300 may be encrypted using the same public key.

서버 장치(200)는 전자 장치(100)로부터 수신된 동형 암호문과 타겟 장치(300)로부터 수신된 동형 암호문을 연산하여 연산 결과 암호문을 획득할 수 있다(S345). The server device 200 may calculate the homomorphic ciphertext received from the electronic device 100 and the homomorphic ciphertext received from the target device 300 and obtain an ciphertext as a result of the calculation (S345).

여기에서, 연산 결과 암호문은 전자 장치(100)에 대한 근접성 정보가 동형 암호화된 암호문을 의미할 수 있다. Here, the ciphertext as a result of the operation may mean a ciphertext in which proximity information to the electronic device 100 is homomorphically encrypted.

전자 장치(100)에 대한 근접성 정보는 전자 장치(100)와 타겟 장치(300) 간의 거리를 포함할 수 있다. 또한, 실시 예에 따라, 전자 장치(100)에 대한 근접성 정보는 제1 값(예: 1) 또는 제2 값(예: 0)을 포함할 수 있다. 여기에서, 제1 값은 전자 장치(100)와 타겟 장치(300) 간의 거리가 기설정된 거리 이상인 것을 나타내는 값이고, 제2 값은 전자 장치(100)와 타겟 장치(300) 간의 거리가 기설정된 거리 미만인 것을 나타내는 값일 수 있다. Proximity information about the electronic device 100 may include the distance between the electronic device 100 and the target device 300. Additionally, depending on the embodiment, the proximity information for the electronic device 100 may include a first value (eg, 1) or a second value (eg, 0). Here, the first value is a value indicating that the distance between the electronic device 100 and the target device 300 is greater than or equal to a preset distance, and the second value is a value indicating that the distance between the electronic device 100 and the target device 300 is greater than or equal to a preset distance. It may be a value indicating that it is less than the distance.

구체적으로, 동형 암호의 성질 상, 동형 암호문을 복호화하지 않아도 동형 암호문 간 연산이 수행될 수 있고, 또한, 동형 암호문과 평문 간 연산이 수행될 수 있으며, 이들 연산 결과 값도 암호문 형태가 된다.Specifically, due to the nature of homomorphic encryption, operations between homomorphic ciphertexts can be performed without decrypting the homomorphic ciphertext, and operations between homomorphic ciphertext and plaintext can also be performed, and the resulting values of these operations are also in the form of ciphertext.

이에 따라, 서버 장치(200)는 전자 장치(100)의 위치 정보와 타겟 장치(300)의 위치 정보를 동형 암호화된 상태에서 연산하여 이들 장치들(100, 300) 간의 거리에 대한 정보를 포함하는 연산 결과 값을 획득할 수 있다. Accordingly, the server device 200 calculates the location information of the electronic device 100 and the location information of the target device 300 in a homomorphically encrypted state and includes information about the distance between these devices 100 and 300. The calculation result value can be obtained.

또한, 실시 예에 따라, 서버 장치(200)는 장치들(100, 300) 간의 거리에 대한 정보를 포함하는 연산 결과 값을 동형 암호 비교 연산을 이용하여 기설정된 값과 비교할 수 있다. 이때, 연산 결과 값이 기설정된 값 이상인 경우, 비교 연산 결과는 제1 값(예: 1)으로 연산되고, 연산 결과 값이 기설정된 값 미만인 경우, 비교 연산 결과는 제2 값(예: 0)으로 연산될 수 있다. 이를 위해, 기설정된 값은 전자 장치(100)와 타겟 장치(300) 간의 거리가 기설정된 거리 이상인 경우, 비교 연산 결과가 제1 값으로 연산되도록 설정되고, 또한, 전자 장치(100)와 타겟 장치(300) 간의 거리가 기설정된 거리 미만인 경우, 비교 연산 결과가 제2 값으로 연산되도록 설정될 수 있다. 이 경우, 기설정된 거리는 디폴트 값으로 설정되거나, 사용자 입력에 따라 변경 및 설정될 수 있다.Additionally, depending on the embodiment, the server device 200 may compare the result of the operation including information about the distance between the devices 100 and 300 with a preset value using a homomorphic encryption comparison operation. At this time, if the operation result value is more than the preset value, the comparison operation result is calculated as the first value (e.g. 1), and if the operation result value is less than the preset value, the comparison operation result is calculated as the second value (e.g. 0). It can be calculated as: For this purpose, the preset value is set so that when the distance between the electronic device 100 and the target device 300 is greater than or equal to the preset distance, the comparison operation result is calculated as the first value, and also the electronic device 100 and the target device 300 If the distance between 300 is less than a preset distance, the comparison operation result may be set to be calculated as a second value. In this case, the preset distance may be set to a default value, or may be changed and set according to user input.

그리고, 서버 장치(200)는 연산 결과 암호문을 전자 장치(100)로 전송할 수 있다(S350). Then, the server device 200 may transmit the operation result ciphertext to the electronic device 100 (S350).

한편, 프로세서(130)는 통신 인터페이스(110)를 통해 서버 장치(200)로부터 연산 결과 암호문이 수신되면, 연산 결과 암호문을 복호화하여 전자 장치(100)와 타겟 장치(300) 간의 거리를 식별할 수 있다(S355). 그리고, 프로세서(130)는 식별된 거리에 기초하여 알림을 제공할 수 있다(S360).Meanwhile, when the processor 130 receives the calculation result ciphertext from the server device 200 through the communication interface 110, the processor 130 can decrypt the calculation result ciphertext to identify the distance between the electronic device 100 and the target device 300. There is (S355). Additionally, the processor 130 may provide a notification based on the identified distance (S360).

구체적으로, 프로세서(130)는 연산 결과 암호문을 복호화하여 전자 장치(100)에 대한 근접성 정보를 획득할 수 있다. 이 경우, 프로세서(130)는 메모리(120)에 저장된 비밀키를 이용하여 연산 결과 암호문을 복호화할 수 있다.Specifically, the processor 130 may obtain proximity information about the electronic device 100 by decrypting the ciphertext as a result of the operation. In this case, the processor 130 can decrypt the ciphertext as a result of the operation using the secret key stored in the memory 120.

예를 들어, 복호화에 의해 획득되는 근접성 정보는 전자 장치(100)와 타겟 장치(300) 간의 거리를 포함할 수 있다. 이 경우, 프로세서(130)는 연산 결과 암호문을 복호화하여 획득한 근접성 정보를 이용하여 전자 장치(100)와 타겟 장치(300) 간의 거리를 식별할 수 있다. For example, proximity information obtained through decoding may include the distance between the electronic device 100 and the target device 300. In this case, the processor 130 may identify the distance between the electronic device 100 and the target device 300 using proximity information obtained by decrypting the ciphertext as a result of the operation.

그리고, 프로세서(130)는 전자 장치(100)와 타겟 장치(300) 간의 거리가 제1 거리 이하인 경우, 전자 장치(100)에 타겟 장치(300)가 접근하였음을 나타내는 텍스트를 디스플레이(140)에 표시하거나, 음성 메시지를 스피커(160)를 통해 출력할 수 있다. 여기에서, 제1 거리는 1km일 수 있으나, 이 예에 한정되는 것은 아니다. 제1 거리는 디폴트 값으로 설정되거나, 사용자 입력에 따라 변경 및 설정될 수 있다.And, when the distance between the electronic device 100 and the target device 300 is less than or equal to the first distance, the processor 130 displays text indicating that the target device 300 has approached the electronic device 100 on the display 140. It can be displayed or a voice message can be output through the speaker 160. Here, the first distance may be 1 km, but is not limited to this example. The first distance may be set to a default value, or may be changed and set according to user input.

또한, 프로세서(130)는 전자 장치(100)와 타겟 장치(300) 간의 거리가 제2 거리 이하인 경우, 전자 장치(100)의 위치 정보를 통신 인터페이스(110)를 통해 서버 장치(200) 및/또는 경찰 등을 포함하는 관리 기관으로 전송할 수 있다. 여기에서, 제2 거리는 100m일 수 있으나, 이 예에 한정되는 것은 아니다. 제2 거리는 디폴트 값으로 설정되거나, 사용자 입력에 따라 변경 및 설정될 수 있다. 이 경우, 서버 장치(200)를 관리하는 기관 또는 경찰 등을 포함하는 관리 기관에서는 사용자의 위치 정보를 이용하여 사용자의 안전을 위한 조치를 취할 수 있다. In addition, when the distance between the electronic device 100 and the target device 300 is less than or equal to the second distance, the processor 130 sends the location information of the electronic device 100 to the server device 200 and/or the location information through the communication interface 110. Alternatively, it may be transmitted to management authorities, including the police. Here, the second distance may be 100 m, but is not limited to this example. The second distance may be set to a default value, or may be changed and set according to user input. In this case, an organization that manages the server device 200 or a management organization including the police can take measures for the user's safety using the user's location information.

실시 예에 따라, 복호화에 의해 획득되는 근접성 정보는 제1 값 또는 제2 값을 포함할 수 있다. Depending on the embodiment, proximity information obtained through decoding may include a first value or a second value.

이 경우, 프로세서(130)는 연산 결과 암호문을 복호화하여 제1 값이 획득된 경우, 전자 장치(100)와 타겟 장치(300) 간의 거리가 기설정된 거리 이상인 것으로 식별하고, 연산 결과 암호문을 복호화하여 제2 값이 획득된 경우, 전자 장치(100)와 타겟 장치(300) 간의 거리가 기설정된 거리 미만인 것으로 식별할 수 있다. 여기에서, 기설정된 거리는 1km일 수 있으나, 이 예에 한정되는 것은 아니다. 기설정된 거리는 디폴트 값으로 설정되거나, 사용자 입력에 따라 변경 및 설정될 수 있다.In this case, when the first value is obtained by decrypting the ciphertext as a result of the operation, the processor 130 identifies that the distance between the electronic device 100 and the target device 300 is greater than or equal to a preset distance, and decrypts the ciphertext as a result of the operation. When the second value is obtained, it may be identified that the distance between the electronic device 100 and the target device 300 is less than a preset distance. Here, the preset distance may be 1km, but is not limited to this example. The preset distance may be set to a default value, or may be changed and set according to user input.

그리고, 프로세서(130)는 전자 장치(100)와 타겟 장치(300) 간의 거리가 기설정된 거리 미만인 것으로 식별되면, 타겟 장치(300)가 전자 장치(100)에 접근하였음을 나타내는 텍스트를 디스플레이(140)에 표시하거나, 음성 메시지를 스피커(160)를 통해 출력할 수 있다. Additionally, when the processor 130 identifies that the distance between the electronic device 100 and the target device 300 is less than a preset distance, the processor 130 displays text indicating that the target device 300 has approached the electronic device 100 (140). ), or a voice message can be output through the speaker 160.

이와 같이, 본 개시의 일 실시 예에 따르면, 전자 장치(100)는 서버 장치(200)로부터 수신된 연산 결과 암호문을 이용하여 전자 장치(100)와 타겟 장치(300) 간의 거리를 식별하고, 식별된 거리에 따라 알림을 제공할 수 있다. 이에 따라, 전자 장치(100)는 범죄 피해자가 전자 장치(100)의 사용자에 접근하였는지, 전자 장치(100)의 사용자가 위험 시설 또는 위험 지역에 접근하였는지 등에 대한 정보를 제공할 수 있어, 사용자의 안전을 확보할 수 있게 된다. As such, according to an embodiment of the present disclosure, the electronic device 100 identifies the distance between the electronic device 100 and the target device 300 using the operation result ciphertext received from the server device 200, and identifies the distance between the electronic device 100 and the target device 300. Notifications can be provided depending on the distance covered. Accordingly, the electronic device 100 can provide information on whether a crime victim has approached the user of the electronic device 100, or whether the user of the electronic device 100 has approached a dangerous facility or dangerous area, so that the user's Safety can be ensured.

또한, 서버 장치(200)는 동형 암호화된 위치 정보를 연산하여 연산 결과 값을 획득할 뿐이고, 비밀키가 서버 장치(200)에 저장되어 있지 않다. 따라서, 서버 장치(200)는 전자 장치(100)로부터 수신된 동형 암호화된 위치 정보를 복호화할 수 없다는 점에서, 전자 장치(100)의 사용자의 개인 정보도 보호될 수 있다.Additionally, the server device 200 only obtains the calculation result by calculating the homomorphically encrypted location information, and the secret key is not stored in the server device 200. Accordingly, since the server device 200 cannot decrypt the homomorphically encrypted location information received from the electronic device 100, the personal information of the user of the electronic device 100 can also be protected.

한편, 전술한 예에서 전자 장치(100)는 전자 장치(100)와 타겟 장치(300) 간의 거리가 가까운 경우, 알림을 제공하는 것으로 설명하였으나, 이는 일 예에 불과하다. 즉, 프로세서(130)는 전자 장치(100)와 타겟 장치(300) 간의 거리가 제1 거리(또는 기설정된 거리) 이상인 경우, 타겟 장치(300)가 전자 장치(100)로부터 멀어졌음을 나타내는 텍스트를 디스플레이(140)에 표시하거나, 음성 메시지를 스피커(160)를 통해 출력할 수 있다. 즉, 전자 장치(100)는 치매 환자나 유아동 등과 같이 보호가 필요한 대상자가 특정 장소(예: 거주지 등)를 이탈하였는지, 도난 등으로 인해 사용자 소유의 자동차나 자전거 등이 특정 장소를 이탈하였는지에 대한 정보를 제공할 수도 있다. Meanwhile, in the above-described example, the electronic device 100 is described as providing a notification when the distance between the electronic device 100 and the target device 300 is short, but this is only an example. That is, when the distance between the electronic device 100 and the target device 300 is greater than or equal to the first distance (or a preset distance), the processor 130 generates text indicating that the target device 300 has moved away from the electronic device 100. can be displayed on the display 140, or a voice message can be output through the speaker 160. In other words, the electronic device 100 provides information on whether a person in need of protection, such as a dementia patient or a child, has left a specific place (e.g., residence, etc.), or whether a car or bicycle owned by the user has left a specific place due to theft, etc. may also be provided.

한편, 전술한 예에서는 전자 장치(100)가 공개키를 서버 장치(200)로 전송하고, 타겟 장치(300)는 서버 장치(200)로부터 공개키를 수신하여 타겟 장치(300)의 위치 정보를 동형 암호화하여 서버 장치(200)로 전송하는 것으로 설명하였다. 다만, 이 예에 한정되는 것은 아니고, 타겟 장치(300)는 타겟 장치(300)의 위치 정보를 암호화하지 않고 서버 장치(200)로 전송할 수도 있다.Meanwhile, in the above-described example, the electronic device 100 transmits the public key to the server device 200, and the target device 300 receives the public key from the server device 200 to provide location information of the target device 300. It was explained that it is homomorphically encrypted and transmitted to the server device 200. However, it is not limited to this example, and the target device 300 may transmit the location information of the target device 300 to the server device 200 without encrypting it.

예를 들어, 도 4를 참조하면, 프로세서(130)는 공개키를 생성하고(S410), 공개키를 이용하여 전자 장치(100)의 위치 정보를 동형 암호화하여 동형 암호문을 생성할 수 있다(S415). 그리고, 프로세서(130)는 생성된 동형 암호문을 통신 인터페이스(110)를 이용하여 서버 장치(200)로 전송할 수 있다(S420). For example, referring to FIG. 4, the processor 130 may generate a public key (S410) and homomorphically encrypt the location information of the electronic device 100 using the public key to generate a homomorphic ciphertext (S415). ). Then, the processor 130 may transmit the generated homomorphic ciphertext to the server device 200 using the communication interface 110 (S420).

한편, 타겟 장치(300)는 타겟 장치(300)의 위치 정보를 획득하고, 획득된 위치 정보를 서버 장치(200)로 전송할 수 있다(S425). 즉, 타겟 장치(300)는 타겟 장치(300)의 위치 정보를 암호화하지 않고 서버 장치(200)로 전송할 수 있다. 이에 따라, 서버 장치(200)에서 수신하는 타겟 장치(300)의 위치 정보는 평문 상태의 타겟 장치(300)의 위치 정보를 포함할 수 있다.Meanwhile, the target device 300 may acquire location information of the target device 300 and transmit the obtained location information to the server device 200 (S425). That is, the target device 300 can transmit the location information of the target device 300 to the server device 200 without encrypting it. Accordingly, the location information of the target device 300 received by the server device 200 may include the location information of the target device 300 in a plain text state.

서버 장치(200)는 전자 장치(100)로부터 수신된 동형 암호문과 타겟 장치(300)로부터 수신된 위치 정보를 연산하여 연산 결과 암호문을 획득할 수 있다(S430). 이 경우, 도 3에서 설명한 바와 같이, 연산 결과 암호문은 전자 장치(100)에 대한 근접성 정보를 포함할 수 있다.The server device 200 may calculate the homomorphic ciphertext received from the electronic device 100 and the location information received from the target device 300 and obtain the ciphertext as a result of the calculation (S430). In this case, as described in FIG. 3, the operation result ciphertext may include proximity information to the electronic device 100.

그리고, 서버 장치(200)는 연산 결과 암호문을 전자 장치(100)로 전송할 수 있다(S435). 이 경우, 프로세서(130)는 연산 결과 암호문을 복호화하여 전자 장치(100)와 타겟 장치(300) 간의 거리를 식별하고(S440), 식별된 거리에 기초하여 알림을 제공할 수 있다(S445).Then, the server device 200 may transmit the operation result ciphertext to the electronic device 100 (S435). In this case, the processor 130 may decrypt the ciphertext as a result of the operation, identify the distance between the electronic device 100 and the target device 300 (S440), and provide a notification based on the identified distance (S445).

한편, 전술한 예에서는 타겟 장치(300)가 한 개인 것으로 설명하였으나, 이 예에 한정되는 것은 아니고, 타겟 장치(300)는 복수 개(300-1 ~ 300-n)일 수 있다(n은 2 이상의 자연수). 이 경우, 프로세서(130)는 복수의 타겟 장치(300-1 ~ 300-n) 각각과 전자 장치(100) 간의 거리를 식별하고, 그에 따른 알림을 제공할 수도 있다.Meanwhile, in the above example, it has been described that there is only one target device 300, but this is not limited to this example, and there may be a plurality of target devices 300 (300-1 to 300-n) (n is 2) or more natural numbers). In this case, the processor 130 may identify the distance between each of the plurality of target devices 300-1 to 300-n and the electronic device 100 and provide a notification accordingly.

예를 들어, 도 5와 같이, 프로세서(130)는 공개키를 생성하고(S510), 생성된 공개키를 통신 인터페이스(110)를 이용하여 서버 장치(200)로 전송할 수 있다(S515). 또한, 프로세서(130)는 공개키를 이용하여 전자 장치(100)의 위치 정보를 동형 암호화하여 동형 암호문을 생성하고(S520). 생성된 동형 암호문을 통신 인터페이스(110)를 이용하여 서버 장치(200)로 전송할 수 있다(S525). For example, as shown in FIG. 5, the processor 130 may generate a public key (S510) and transmit the generated public key to the server device 200 using the communication interface 110 (S515). Additionally, the processor 130 homomorphically encrypts the location information of the electronic device 100 using the public key to generate a homomorphic ciphertext (S520). The generated homomorphic ciphertext can be transmitted to the server device 200 using the communication interface 110 (S525).

서버 장치(200)는 전자 장치(100)로부터 수신된 공개키를 복수의 타겟 장치(300-1 ~ 300-n)로 전송할 수 있다(S530-1 ~ S530-n).The server device 200 may transmit the public key received from the electronic device 100 to a plurality of target devices 300-1 to 300-n (S530-1 to S530-n).

복수의 타겟 장치(300-1 ~ 300-n) 각각은 자신의 위치 정보를 획득할 수 있다. 그리고, 복수의 타겟 장치(300-1 ~ 300-n) 각각은 서버 장치(200)로부터 수신한 공개키를 이용하여 자신의 위치 정보를 동형 암호화하여 동형 암호문을 생성할 수 있다(S535-1 ~ S535-n).Each of the plurality of target devices 300-1 to 300-n can obtain its own location information. In addition, each of the plurality of target devices 300-1 to 300-n can homomorphically encrypt its location information using the public key received from the server device 200 to generate a homomorphic ciphertext (S535-1 to S535-1). S535-n).

그리고, 복수의 타겟 장치(300-1 ~ 300-n) 각각은 생성된 동형 암호문을 서버 장치(200)로 전송할 수 있다(S540-1 ~ S540-n). And, each of the plurality of target devices 300-1 to 300-n can transmit the generated homomorphic ciphertext to the server device 200 (S540-1 to S540-n).

서버 장치(200)는 전자 장치(100)로부터 수신된 동형 암호문과 복수의 타겟 장치(300-1 ~ 300-n) 각각으로부터 수신된 동형 암호문을 연산하여 복수의 연산 결과 암호문을 획득할 수 있다(S545). The server device 200 may obtain a plurality of operation result ciphertexts by calculating the homomorphic ciphertext received from the electronic device 100 and the homomorphic ciphertext received from each of the plurality of target devices 300-1 to 300-n ( S545).

그리고, 서버 장치(200)는 복수의 연산 결과 암호문을 전자 장치(100)로 전송할 수 있다(S550). Then, the server device 200 may transmit the encrypted text resulting from a plurality of calculations to the electronic device 100 (S550).

한편, 프로세서(130)는 통신 인터페이스(110)를 통해 서버 장치(200)로부터 복수의 연산 결과 암호문이 수신되면, 복수의 연산 결과 암호문을 각각 복호화하여 전자 장치(100)와 복수의 타겟 장치(300-1 ~ 300-n) 각각 간의 거리를 식별할 수 있다(S555). 그리고, 프로세서(130)는 식별된 거리에 기초하여 알림을 제공할 수 있다(S560). 이 경우, 알림은 타겟 장치(300-1 ~ 300-n) 별로 제공될 수 있다.Meanwhile, when the processor 130 receives a plurality of operation result ciphertexts from the server device 200 through the communication interface 110, the processor 130 decrypts each of the plurality of operation result ciphertexts to provide the electronic device 100 and the plurality of target devices 300 -1 ~ 300-n) The distance between each can be identified (S555). Additionally, the processor 130 may provide a notification based on the identified distance (S560). In this case, notifications may be provided for each target device (300-1 to 300-n).

다른 예로, 도 6과 같이, 프로세서(130)는 공개키를 생성하고(S610), 공개키를 이용하여 전자 장치(100)의 위치 정보를 동형 암호화하여 동형 암호문을 생성할 수 있다(S615). 그리고, 프로세서(130)는 생성된 동형 암호문을 통신 인터페이스(110)를 이용하여 서버 장치(200)로 전송할 수 있다(S620). As another example, as shown in FIG. 6, the processor 130 may generate a public key (S610) and homomorphically encrypt the location information of the electronic device 100 using the public key to generate a homomorphic ciphertext (S615). Then, the processor 130 may transmit the generated homomorphic ciphertext to the server device 200 using the communication interface 110 (S620).

한펀, 복수의 타겟 장치(300-1 ~ 300-n) 각각은 자신의 위치 정보를 획득하고, 획득된 위치 정보를 서버 장치(200)로 전송할 수 있다(S625-1 ~ S625-n). 즉, 복수의 타겟 장치(300-1 ~ 300-n) 각각은 자신의 위치 정보를 암호화하지 않고 서버 장치(200)로 전송할 수 있다. 이에 따라, 서버 장치(200)에서 수신하는 복수의 타겟 장치(300-1 ~ 300-n) 각각의 위치 정보는 평문 상태의 위치 정보를 포함할 수 있다.At once, each of the plurality of target devices 300-1 to 300-n can obtain its own location information and transmit the acquired location information to the server device 200 (S625-1 to S625-n). That is, each of the plurality of target devices 300-1 to 300-n can transmit its location information to the server device 200 without encrypting it. Accordingly, the location information of each of the plurality of target devices 300-1 to 300-n received by the server device 200 may include location information in plain text.

서버 장치(200)는 전자 장치(100)로부터 수신된 동형 암호문과 복수의 타겟 장치(300-1 ~ 300-n) 각각으로부터 수신된 위치 정보를 연산하여 복수의 연산 결과 암호문을 획득할 수 있다(S630). 그리고, 서버 장치(200)는 복수의 연산 결과 암호문을 전자 장치(100)로 전송할 수 있다(S635). The server device 200 may obtain a plurality of operation result ciphertexts by calculating the homomorphic ciphertext received from the electronic device 100 and the location information received from each of the plurality of target devices 300-1 to 300-n ( S630). Then, the server device 200 may transmit the encrypted text resulting from a plurality of calculations to the electronic device 100 (S635).

한편, 프로세서(130)는 통신 인터페이스(110)를 통해 서버 장치(200)로부터 복수의 연산 결과 암호문이 수신되면, 복수의 연산 결과 암호문을 각각 복호화하여 전자 장치(100)와 복수의 타겟 장치(300-1 ~ 300-n) 각각 간의 거리를 식별할 수 있다(S640). 그리고, 프로세서(130)는 식별된 거리에 기초하여 알림을 제공할 수 있다(S645). 이 경우, 알림은 타겟 장치(300-1 ~ 300-n) 별로 제공될 수 있다.Meanwhile, when the processor 130 receives a plurality of operation result ciphertexts from the server device 200 through the communication interface 110, the processor 130 decrypts each of the plurality of operation result ciphertexts to provide the electronic device 100 and the plurality of target devices 300 -1 ~ 300-n) The distance between each can be identified (S640). Additionally, the processor 130 may provide a notification based on the identified distance (S645). In this case, notifications may be provided for each target device (300-1 to 300-n).

이와 같이, 본 개시에 따르면, 프로세서(130)는 타겟 장치(300)의 위치 정보 및 전자 장치(100)의 동형 암호문 간의 연산에 기초하여 획득된 연산 결과 암호문이 통신 인터페이스(110)를 통해 서버 장치(100)로부터 수신되면, 연산 결과 암호문을 복호화하여 전자 장치(100)에 대한 근접성 정보를 획득하고, 근접성 정보에 기초하여 알림을 제공할 수 있다.As such, according to the present disclosure, the processor 130 transmits the operation result ciphertext obtained based on the operation between the location information of the target device 300 and the homomorphic ciphertext of the electronic device 100 to the server device through the communication interface 110. When received from 100, the operation result ciphertext is decrypted to obtain proximity information about the electronic device 100, and a notification can be provided based on the proximity information.

도 7은 본 개시의 일 실시 예에 따른 접근성 식별 방법을 설명하기 위한 도흐름도이다. Figure 7 is a flowchart for explaining an accessibility identification method according to an embodiment of the present disclosure.

전자 장치의 위치 정보를 동형 암호화하여 생성된 동형 암호문을 서버 장치로 전송한다(S710).The homomorphic ciphertext generated by homomorphically encrypting the location information of the electronic device is transmitted to the server device (S710).

그리고, 타겟 장치의 위치 정보 및 동형 암호문 간의 연산에 기초하여 획득된 연산 결과 암호문이 서버 장치로부터 수신되면, 연산 결과 암호문을 복호화하여 전자 장치에 대한 근접성 정보를 획득한다(S720).Then, when the operation result ciphertext obtained based on the operation between the location information of the target device and the homomorphic ciphertext is received from the server device, the operation result ciphertext is decrypted to obtain proximity information about the electronic device (S720).

또한, 공개키를 이용하여 상기 전자 장치의 위치 정보를 동형 암호화하여 상기 동형 암호문을 생성할 수 있다.Additionally, the location information of the electronic device can be homomorphically encrypted using a public key to generate the homomorphic ciphertext.

그리고, 공개키를 상기 서버 장치로 전송할 수 있다. 이 경우, 타겟 장치의 위치 정보는 타겟 장치가 서버 장치로부터 수신한 공개키를 이용하여 타겟 장치의 위치 정보를 동형 암호화하여 생성한 동형 암호문을 포함할 수 있다.Then, the public key can be transmitted to the server device. In this case, the location information of the target device may include a homomorphic encrypted text generated by homomorphically encrypting the location information of the target device using a public key received from the server device.

또한, 타겟 장치의 위치 정보는 평문 상태의 타겟 장치의 위치 정보를 포함할 수 있다. Additionally, the location information of the target device may include location information of the target device in plain text.

한편, 전자 장치에 대한 근접성 정보는 전자 장치와 타겟 장치 간의 거리를 포함할 수 있다.Meanwhile, proximity information about an electronic device may include the distance between the electronic device and the target device.

또한, 전자 장치에 대한 근접성 정보는 제1 값 또는 제2 값을 포함할 수 있다. 이 경우, S720 단계는 연산 결과 암호문을 복호화하여 제1 값이 획득된 경우, 전자 장치와 타겟 장치 간의 거리가 기설정된 거리 이상인 것으로 식별하고, 연산 결과 암호문을 복호화하여 제2 값이 획득된 경우, 전자 장치와 타겟 장치 간의 거리가 기설정된 거리 미만인 것으로 식별할 수 있다.Additionally, proximity information about the electronic device may include a first value or a second value. In this case, in step S720, if the first value is obtained by decrypting the ciphertext as a result of the operation, the distance between the electronic device and the target device is identified as being greater than or equal to a preset distance, and if the second value is obtained by decrypting the ciphertext as a result of the operation, The distance between the electronic device and the target device may be identified as being less than a preset distance.

한편, 상술한 다양한 실시 예에 따른 접근성 식별 방법은 각 단계들을 수행하기 위한 프로그램 코드 형태로 구현되어, 기록 매체에 저장되고 배포될 수도 있다. 이 경우, 기록 매체가 탑재된 장치는 상술한 암호화 또는 암호문 처리 등의 동작들을 수행할 수 있다. Meanwhile, the accessibility identification method according to the various embodiments described above may be implemented in the form of program code for performing each step, and may be stored and distributed on a recording medium. In this case, a device equipped with a recording medium can perform operations such as the above-described encryption or ciphertext processing.

이러한 기록 매체는, ROM, RAM, 메모리 칩, 메모리 카드, 외장형 하드, 하드, CD, DVD, 자기 디스크 또는 자기 테이프 등과 같은 다양한 유형의 컴퓨터 판독 가능 매체가 될 수 있다. These recording media may be various types of computer-readable media such as ROM, RAM, memory chips, memory cards, external hard drives, hard drives, CDs, DVDs, magnetic disks, or magnetic tapes.

이상 첨부 도면을 참고하여 본 개시에 대해서 설명하였지만 본 개시의 권리범위는 후술하는 특허청구범위에 의해 결정되며 전술한 실시 예 및/또는 도면에 제한되는 것으로 해석되어서는 안 된다. 그리고 특허청구범위에 기재된 개시의, 당업자에게 자명한 개량, 변경 및 수정도 본 개시의 권리범위에 포함된다는 점이 명백하게 이해되어야 한다.Although the present disclosure has been described above with reference to the accompanying drawings, the scope of rights of the present disclosure is determined by the scope of the patent claims described later and should not be construed as being limited to the above-described embodiments and/or drawings. In addition, it should be clearly understood that improvements, changes and modifications of the disclosure described in the patent claims, which are obvious to those skilled in the art, are also included in the scope of rights of the present disclosure.

100 : 전자 장치 110 : 통신 인터페이스
120 : 메모리 130 : 프로세서
200 : 서버 장치 300 : 타겟 장치
100: Electronic device 110: Communication interface
120: Memory 130: Processor
200: server device 300: target device

Claims (12)

전자 장치에 있어서,
통신 인터페이스;
적어도 하나의 인스트럭션(instruction)을 저장하는 메모리; 및
상기 통신 인터페이스 및 상기 메모리와 연결되어 상기 전자 장치를 제어하는 프로세서;를 포함하고,
상기 프로세서는, 상기 적어도 하나의 인스트럭션을 실행함으로써,
상기 전자 장치의 위치 정보를 동형 암호화하여 생성된 동형 암호문을 상기 통신 인터페이스를 이용하여 서버 장치로 전송하고,
타겟 장치의 위치 정보 및 상기 동형 암호문 간의 연산에 기초하여 획득된 연산 결과 암호문이 상기 통신 인터페이스를 통해 상기 서버 장치로부터 수신되면, 상기 연산 결과 암호문을 복호화하여 상기 전자 장치에 대한 근접성 정보를 획득하는, 전자 장치.
In electronic devices,
communication interface;
a memory storing at least one instruction; and
A processor connected to the communication interface and the memory to control the electronic device,
The processor executes the at least one instruction,
Transmitting the homomorphic ciphertext generated by homomorphically encrypting the location information of the electronic device to the server device using the communication interface,
When the operation result ciphertext obtained based on the operation between the location information of the target device and the homomorphic ciphertext is received from the server device through the communication interface, decrypting the operation result ciphertext to obtain proximity information about the electronic device, Electronic devices.
제1항에 있어서,
상기 프로세서는,
공개키를 이용하여 상기 전자 장치의 위치 정보를 동형 암호화하여 상기 동형 암호문을 생성하는, 전자 장치.
According to paragraph 1,
The processor,
An electronic device that homomorphically encrypts location information of the electronic device using a public key to generate the homomorphic ciphertext.
제2항에 있어서,
상기 프로세서는,
상기 통신 인터페이스를 이용하여 상기 공개키를 상기 서버 장치로 전송하고,
상기 타겟 장치의 위치 정보는,
상기 타겟 장치가 상기 서버 장치로부터 수신한 상기 공개키를 이용하여 상기 타겟 장치의 위치 정보를 동형 암호화하여 생성한 동형 암호문을 포함하는, 전자 장치.
According to paragraph 2,
The processor,
Transmitting the public key to the server device using the communication interface,
The location information of the target device is,
An electronic device comprising a homomorphic encrypted text generated by the target device by homomorphically encrypting location information of the target device using the public key received from the server device.
제1항에 있어서,
상기 타겟 장치의 위치 정보는, 평문 상태의 상기 타겟 장치의 위치 정보를 포함하는, 전자 장치.
According to paragraph 1,
The location information of the target device includes location information of the target device in a plain text state.
제1항에 있어서,
상기 전자 장치에 대한 근접성 정보는, 상기 전자 장치와 상기 타겟 장치 간의 거리를 포함하는, 전자 장치.
According to paragraph 1,
The proximity information about the electronic device includes a distance between the electronic device and the target device.
제1항에 있어서,
상기 전자 장치에 대한 근접성 정보는, 제1 값 또는 제2 값을 포함하고,
상기 프로세서는,
상기 연산 결과 암호문을 복호화하여 상기 제1 값이 획득된 경우, 상기 전자 장치와 상기 타겟 장치 간의 거리가 기설정된 거리 이상인 것으로 식별하고,
상기 연산 결과 암호문을 복호화하여 상기 제2 값이 획득된 경우, 상기 전자 장치와 상기 타겟 장치 간의 거리가 기설정된 거리 미만인 것으로 식별하는, 전자 장치.
According to paragraph 1,
The proximity information for the electronic device includes a first value or a second value,
The processor,
When the first value is obtained by decrypting the ciphertext as a result of the operation, identifying that the distance between the electronic device and the target device is greater than or equal to a preset distance,
When the second value is obtained by decrypting the ciphertext as a result of the operation, the electronic device identifies that the distance between the electronic device and the target device is less than a preset distance.
전자 장치의 근접성 식별 방법에 있어서,
상기 전자 장치의 위치 정보를 동형 암호화하여 생성된 동형 암호문을 서버 장치로 전송하는 단계; 및
타겟 장치의 위치 정보 및 상기 동형 암호문 간의 연산에 기초하여 획득된 연산 결과 암호문이 상기 서버 장치로부터 수신되면, 상기 연산 결과 암호문을 복호화하여 상기 전자 장치에 대한 근접성 정보를 획득하는 단계;를 포함하는 근접성 식별 방법.
In a method for identifying the proximity of an electronic device,
transmitting a homomorphic encrypted text generated by homomorphically encrypting the location information of the electronic device to a server device; and
When the operation result ciphertext obtained based on the operation between the location information of the target device and the homomorphic ciphertext is received from the server device, decrypting the operation result ciphertext to obtain proximity information about the electronic device; Proximity including; How to identify.
제7항에 있어서,
공개키를 이용하여 상기 전자 장치의 위치 정보를 동형 암호화하여 상기 동형 암호문을 생성하는 단계;를 더 포함하는, 근접성 식별 방법.
In clause 7,
Proximity identification method further comprising: generating the homomorphic encrypted text by homomorphically encrypting the location information of the electronic device using a public key.
제8항에 있어서,
상기 공개키를 상기 서버 장치로 전송하는 단계;를 더 포함하고,
상기 타겟 장치의 위치 정보는,
상기 타겟 장치가 상기 서버 장치로부터 수신한 상기 공개키를 이용하여 상기 타겟 장치의 위치 정보를 동형 암호화하여 생성한 동형 암호문을 포함하는, 근접성 식별 방법.
According to clause 8,
Further comprising: transmitting the public key to the server device,
The location information of the target device is,
A proximity identification method comprising a homomorphic encrypted text generated by the target device by homomorphically encrypting location information of the target device using the public key received from the server device.
제7항에 있어서,
상기 타겟 장치의 위치 정보는, 평문 상태의 상기 타겟 장치의 위치 정보를 포함하는, 근접성 식별 방법.
In clause 7,
The location information of the target device includes location information of the target device in plain text.
제7항에 있어서,
상기 전자 장치에 대한 근접성 정보는, 상기 전자 장치와 상기 타겟 장치 간의 거리를 포함하는, 근접성 식별 방법.
In clause 7,
Proximity information about the electronic device includes a distance between the electronic device and the target device.
제7항에 있어서,
상기 전자 장치에 대한 근접성 정보는, 제1 값 또는 제2 값을 포함하고,
상기 획득하는 단계는,
상기 연산 결과 암호문을 복호화하여 상기 제1 값이 획득된 경우, 상기 전자 장치와 상기 타겟 장치 간의 거리가 기설정된 거리 이상인 것으로 식별하고,
상기 연산 결과 암호문을 복호화하여 상기 제2 값이 획득된 경우, 상기 전자 장치와 상기 타겟 장치 간의 거리가 기설정된 거리 미만인 것으로 식별하는, 근접성 식별 방법.
In clause 7,
The proximity information for the electronic device includes a first value or a second value,
The obtaining step is,
When the first value is obtained by decrypting the ciphertext as a result of the operation, identifying that the distance between the electronic device and the target device is greater than or equal to a preset distance,
When the second value is obtained by decrypting the ciphertext as a result of the operation, the proximity identification method identifies that the distance between the electronic device and the target device is less than a preset distance.
KR1020230140544A 2022-10-25 2023-10-19 An electronic device for identifying proximity usning homomorphic encypted location information and method for identifying proximity thereof KR20240058009A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20220138740 2022-10-25
KR1020220138740 2022-10-25

Publications (1)

Publication Number Publication Date
KR20240058009A true KR20240058009A (en) 2024-05-03

Family

ID=91077692

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230140544A KR20240058009A (en) 2022-10-25 2023-10-19 An electronic device for identifying proximity usning homomorphic encypted location information and method for identifying proximity thereof

Country Status (1)

Country Link
KR (1) KR20240058009A (en)

Similar Documents

Publication Publication Date Title
JP6964688B2 (en) Devices and methods for performing approximation operations on ciphertext
US10491399B2 (en) Cryptographic method for secure communications
CN107038383B (en) Data processing method and device
KR101965628B1 (en) Terminal device for performing homomorphic encryption, server device for calculating encrypted messages, and methods thereof
JP2022059027A (en) Encryption method in terminal device and terminal
US10177906B2 (en) Method and apparatus for encrypting data
KR101600016B1 (en) method of encrypting data using Homomorphic Encryption and Computing device performing the method
USRE47324E1 (en) Data encryption systems and methods
CN102752101A (en) Hierarchical data encryption/decryption apparatus and method thereof
US20230421359A1 (en) System, Method, and Computer Program Product for Data Security
KR20180108008A (en) Apparatus and method for generating key, apparatus and method for encryption
KR101697868B1 (en) Method for encrypting data for sharing or searching the data and apparatus for performing the method
US20070005966A1 (en) Derivation of a shared keystream from a shared secret
KR20240058009A (en) An electronic device for identifying proximity usning homomorphic encypted location information and method for identifying proximity thereof
Liao et al. A location-dependent data encryption approach for enhancing mobile information system security
CN115396179A (en) Data transmission method, device, medium and equipment based on block chain
KR101701625B1 (en) Method and system for reproducing contents by secure acquiring decryption key for encrypted contents
CN105515760A (en) Information encryption method, information decryption method and information encryption and decryption system
CN110995749A (en) Block chain encryption method and device, electronic equipment and storage medium
JP2016025532A (en) Communication system, communication apparatus and communication method
EP3016343B1 (en) Telecommunication method for securely exchanging data
US20240039695A1 (en) Electronic apparatus for generating homomorphic encrypted message and method therefor
KR102393941B1 (en) Encoding or decoding for approximate encrypted messages
US20240039696A1 (en) Apparatus and method for homomorphic encryption of text data
JP2008011100A (en) Attribute authentication method, attribute certificate generating apparatus, service provision destination apparatus, service provision source apparatus, and attribute authentication system