KR20170004456A - 데이터를 관리하는 방법 및 그를 위한 장치들 - Google Patents

데이터를 관리하는 방법 및 그를 위한 장치들 Download PDF

Info

Publication number
KR20170004456A
KR20170004456A KR1020150094823A KR20150094823A KR20170004456A KR 20170004456 A KR20170004456 A KR 20170004456A KR 1020150094823 A KR1020150094823 A KR 1020150094823A KR 20150094823 A KR20150094823 A KR 20150094823A KR 20170004456 A KR20170004456 A KR 20170004456A
Authority
KR
South Korea
Prior art keywords
data
query
electronic device
encrypted
equation
Prior art date
Application number
KR1020150094823A
Other languages
English (en)
Other versions
KR102402625B1 (ko
Inventor
서재우
천정희
김미란
김명선
Original Assignee
삼성전자주식회사
서울대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사, 서울대학교산학협력단 filed Critical 삼성전자주식회사
Priority to KR1020150094823A priority Critical patent/KR102402625B1/ko
Priority to US15/010,738 priority patent/US10198592B2/en
Publication of KR20170004456A publication Critical patent/KR20170004456A/ko
Application granted granted Critical
Publication of KR102402625B1 publication Critical patent/KR102402625B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명의 일 실시예에 따른 전자 장치가 데이터를 관리하는 방법은, 사용자에 의해 입력된 제1 데이터를 암호화하여 제2 데이터를 생성하는 동작과, 상기 제2 데이터를 포함하는 쿼리를 생성하는 동작과, 상기 쿼리를 서버로 전송하는 동작과, 상기 쿼리에 대응하는 제3 데이터를 수신하는 동작과, 상기 제3 데이터를, 미리 저장된 비밀키를 이용하여 복호화한 제4 데이터를 생성하여 출력하는 동작을 포함할 수 있다. 또한 다른 실시예도 가능하다.

Description

데이터를 관리하는 방법 및 그를 위한 장치들{A METHOD FOR MANAGING DATA AND APPARATUSES THEREFOR}
본 발명은 데이터를 관리하는 방법 및 그를 위한 장치들에 관한 것이다.
최근 클라우드 스토리지와 같은 외부 저장 공간에 저장된 데이터에 대한 보안 문제가 이슈화되고 있다. 외부 저장 공간에 저장된 데이터를 보호하기 위해 접근 제어나 키 관리 기술이 주로 사용되는데, 이는 외부 침입자를 막기에 유효한 방법이지만 외부 저장 공간의 운영자가 저장되어 있는 데이터를 악의적으로 사용하는 것을 근본적으로 방지하지 못한다. 또한 외부 사용자가 외부 저장 공간에 접근할 수 있는 키를 알아내는 경우, 그 외부 사용자 또한 상기 외부 저장 공간에 있는 데이터를 허가 없이 악의적으로 사용할 수 있다.
데이터를 외부 저장 공간에 저장한 당사자 이외의 타인이 외부 저장 공간에 저장된 데이터를 악의적으로 사용하는 것을 방지하기 위하여 상기 데이터를 암호화하여 저장하는 방식을 고려할 수 있다. 그러나 데이터를 암호화하여 저장하는 경우 일반적인 데이터 검색 방법으로는 해당 데이터를 저장한 당사자조차 원하는 데이터를 검색하기에 용이하지 않아 관리에 어려움이 따른다.
본 발명의 목적은 외부 저장 공간에 저장되어 있는 암호화된 데이터의 암호화 상태를 유지하면서 상기 암호화된 데이터를 관리할 수 있는 방법 및 그를 위한 장치들을 제공함에 있다.
본 발명의 일 실시예에 따른 전자 장치가 데이터를 관리하는 방법은, 사용자에 의해 입력된 제1 데이터를 공개키를 이용하여 암호화한 제2 데이터를 생성하는 동작과, 상기 제2 데이터를 포함하는 쿼리를 생성하는 동작과, 상기 쿼리를 서버로 전송하는 동작과, 상기 서버로부터 상기 쿼리에 대응하는 제3 데이터를 수신하는 동작과, 상기 제3 데이터를, 상기 공개키에 대응하는 비밀키를 이용하여 복호화한 제4 데이터를 생성하여 출력하는 동작을 포함할 수 있다.
본 발명의 일 실시예에 따른 데이터를 관리하는 전자 장치는, 통신 인터페이스와, 사용자에 의해 입력된 제1 데이터를 공개키를 이용하여 암호화한 제2 데이터를 생성하고, 상기 제2 데이터를 포함하는 쿼리를 생성하고, 상기 쿼리를 서버로 전송하고, 상기 서버로부터 상기 쿼리에 대응하는 제3 데이터를 수신하고, 상기 제3 데이터를, 상기 공개키에 대응하는 비밀키를 이용하여 복호화한 제4 데이터를 생성하여 출력하는 프로세서를 포함할 수 있다.
본 발명의 일 실시예에 따른 서버가 데이터를 관리하는 방법은, 전자 장치로부터 제1 데이터를 포함하는 쿼리를 수신하는 동작과, 상기 제1 쿼리에 포함된 명령어에 기초하여 상기 쿼리를, 데이터를 검색하기 위한 로직으로 변환하는 동작과, 상기 로직을 만족하는 제2 데이터를 결정하는 동작과, 상기 제2 데이터를, 상기 쿼리에 대응하는 응답으로서 상기 전자 장치로 전송하는 동작을 포함하고, 상기 제1 데이터 및 상기 제2 데이터는, 상기 전자 장치에 의하여 공개키를 이용하여 동형 암호화된 데이터일 수 있다.
본 발명의 일 실시예에 따른 데이터를 관리하는 서버는, 전자 장치로부터 제1 데이터를 포함하는 쿼리를 수신하는 통신 인터페이스와, 상기 제1 쿼리에 포함된 명령어에 기초하여 상기 쿼리를, 데이터를 검색하기 위한 로직으로 변환하고, 상기 로직을 만족하는 제2 데이터를 결정하고, 상기 제2 데이터를, 상기 쿼리에 대응하는 응답으로서 상기 전자 장치로 전송하도록 상기 통신 인터페이스를 제어하는 프로세서와, 상기 제1 데이터 및 상기 제2 데이터는, 상기 전자 장치에 의하여 공개키를 이용하여 동형 암호화된 데이터일 수 있다.
본 발명에 따르면, 외부 저장 공간에 저장되어 있는 암호화된 데이터의 암호화 상태를 유지하면서 상기 암호화된 데이터를 관리할 수 있는 방법 및 그를 위한 장치들을 제공할 수 있다.
도 1은 본 발명의 다양한 실시예에 따른 전자 장치가 포함된 네트워크 환경을 나타낸 도면이다.
도 2는 도 1에 도시된 네트워크 환경에 포함된 서버를 나타낸 도면이다.
도 3은 본 발명의 다양한 실시예에 따른 전자 장치가 암호문인 제1 데이터를 서버에 저장하는 방법을 나타낸 도면이다.
도 4는 본 발명의 다양한 실시예에 따른 전자 장치가 서버에 저장된 암호문들을 이용하는 방법을 나타낸 순서도이다.
도 5는 본 발명의 다양한 실시예에 따른 서버가 전자 장치의 요청을 처리하는 일 예를 나타낸 순서도이다.
이하, 본 문서의 다양한 실시예가 첨부된 도면을 참조하여 기재된다. 그러나 이는 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 문서의 실시예의 다양한 변경(modifications), 균등물(equivalents) 및/또는 대체물(alternatives)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.
본 문서에서, “가진다”, “가질 수 있다”, “포함한다”, 또는 “포함할 수 있다” 등의 표현은 해당 특징(예: 수치, 기능, 동작 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
본 문서에서, “A 또는 B”, “A 또는/및 B 중 적어도 하나” 또는 “A 또는/및 B 중 하나 또는 그 이상” 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, “A 또는 B”, “A 및 B 중 적어도 하나”, 또는 “A 또는 B 중 적어도 하나”는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함 또는(3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.
본 문서에서 사용된 “제1”, “제2”, “첫째” 또는 “둘째” 등의 표현들은 다양한 구성 요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성 요소를 다른 구성 요소와 구분하기 위해 사용될 뿐 해당 구성 요소들을 한정하지 않는다. 예를 들면, 제1 사용자 기기와 제2 사용자 기기는, 순서 또는 중요도와 무관하게, 서로 다른 사용자 기기를 나타낼 수 있다. 예를 들면, 본 문서에 기재된 권리 범위를 벗어나지 않으면서 제1 구성 요소는 제2 구성 요소로 명명될 수 있고, 유사하게 제2 구성 요소도 제1 구성 요소로 바꾸어 명명될 수 있다.
어떤 구성 요소(예: 제1 구성 요소)가 다른 구성 요소(예: 제 2 구성 요소)에 “(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)” 있다거나 “접속되어(connected to)” 있다고 언급된 때에는, 상기 어떤 구성 요소가 상기 다른 구성 요소에 직접적으로 연결되거나, 다른 구성 요소(예: 제3 구성 요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소(예: 제1 구성 요소)가 다른 구성 요소(예: 제2 구성 요소)에 “직접 연결되어” 있다거나 “직접 접속되어” 있다고 언급된 때에는, 상기 어떤 구성 요소와 상기 다른 구성 요소 사이에 다른 구성 요소(예: 제3 구성 요소)가 존재하지 않는 것으로 이해될 수 있다.
본 문서에서 사용된 표현 “~하도록 구성된(또는 설정된)(configured to)”은 상황에 따라, 예를 들면, “~에 적합한(suitable for)”, “~하는 능력을 가지는(having the capacity to)”, “~하도록 설계된(designed to)”, “~하도록 변경된(adapted to)”, “~하도록 만들어진(made to)” 또는 “~를 할 수 있는(capable of)”과 바꾸어 사용될 수 있다. 용어 “~하도록 구성된(또는 설정된)”은 하드웨어적으로 “특별히 설계된(specifically designed to)” 것만을 반드시 의미하지 않을 수 있다. 대신에 어떤 상황에서는, “~하도록 구성된 장치”"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 “~할 수 있는” 것을 의미할 수 있다. 예를 들면, 문구 “A, B 및 C를 수행하도록 구성된(또는 설정된) 프로세서”는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.
본 문서에서 사용된 용어들은 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 다른 실시예의 범위를 한정하려는 의도가 아닐 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 문서에 기재된 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 본 문서에 사용된 용어들 중 일반적인 사전에 정의된 용어들은, 관련 기술의 문맥상 가지는 의미와 동일 또는 유사한 의미로 해석될 수 있으며, 본 문서에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 경우에 따라서, 본 문서에서 정의된 용어일지라도 본 문서의 실시예들을 배제하도록 해석될 수 없다.
본 문서의 다양한 실시예들에 따른 전자 장치는, 예를 들면, 스마트 폰(smartphone), 태블릿 PC(tablet personal computer), 이동 전화기(mobile phone), 영상 전화기, 전자책 리더기(e-book reader), 데스크탑 PC(desktop personal computer), 랩탑 PC(laptop personal computer), 넷북 컴퓨터(netbook computer), 워크스테이션(workstation), 서버, PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 모바일 의료기기, 카메라(camera) 또는 웨어러블 장치(wearable device)중 적어도 하나를 포함할 수 있다. 다양한 실시예에 따르면, 웨어러블 장치는 액세서리형(예: 시계, 반지, 팔찌, 발찌, 목걸이, 안경, 콘택트 렌즈 또는 머리 착용형 장치(head-mounted-device(HMD)), 직물 또는 의류 일체형(예: 전자의복), 신체 부착형(예: 스킨 패드(skin pad) 또는 문신), 또는 생체 이식형(예: implantable circuit) 중 적어도 하나를 포함할 수 있다.
어떤 실시예들에서, 전자 장치는 가전제품(home appliance)일 수 있다. 가전제품은, 예를 들면, 텔레비전, DVD(digital video disk) 플레이어, 오디오, 냉장고, 에어컨, 청소기, 오븐, 전자레인지, 세탁기, 공기청정기, 셋톱박스(set-top box), 홈 오토매이션 컨트롤 패널(home automation control panel), 보안 컨트롤 패널(security control panel), TV 박스(예: 삼성HomeSyncTM, 애플TVTM 또는 구글 TVTM), 게임콘솔(예: XboxTM, PlayStationTM), 전자 사전, 전자키, 캠코더(camcorder) 또는 전자 액자 중 적어도 하나를 포함할 수 있다.
다른 실시예에서, 전자 장치는, 각종 의료기기(예:각종 휴대용 의료측정기기(혈당 측정기, 심박 측정기, 혈압 측정기 또는 체온 측정기 등), MRA(magnetic resonance angiography), MRI(magnetic resonance imaging), CT(computed tomography), 촬영기 또는 초음파기 등), 네비게이션(navigation) 장치, 위성 항법 시스템(GNSS(global navigation satellite system)), EDR(event data recorder), FDR(flight data recorder), 자동차 인포테인먼트(infotainment) 장치, 선박용 전자 장비(예:선박용 항법장치, 자이로 콤파스 등), 항공전자기기(avionics), 보안기기, 차량용 헤드 유닛(head unit), 산업용 또는 가정용 로봇, 금융기관의 ATM(automatic teller's machine), 상점의 POS(point of sales) 또는 사물 인터넷 장치(internet of things)(예: 전구, 각종 센서, 전기 또는 가스 미터기, 스프링클러 장치, 화재 경보기, 온도 조절기(thermostat), 가로등, 토스터(toaster), 운동 기구, 온수 탱크, 히터, 보일러 등) 중 적어도 하나를 포함할 수 있다.
어떤 실시예에 따르면, 전자 장치는 가구(furniture) 또는 건물/구조물의 일부, 전자 보드(electronic board), 전자 사인 수신 장치(electronic signature receiving device), 프로젝터(projector) 또는 각종 계측기기(예: 수도, 전기, 가스 또는 전파 계측 기기 등) 중 적어도 하나를 포함할 수 있다. 다양한 실시예에서, 전자 장치는 전술한 다양한 장치들 중 하나 또는 그 이상의 조합일 수 있다. 어떤 실시예에 따른 전자 장치는 플렉서블 전자 장치일 수 있다. 또한 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않으며, 기술 발전에 따른 새로운 전자 장치를 포함할 수 있다.
이하, 첨부 도면을 참조하여, 다양한 실시예에 따른 전자 장치가 설명된다. 본 문서에서, 사용자라는 용어는 전자 장치를 사용하는 사람 또는 전자 장치를 사용하는 장치(예: 인공지능 전자 장치)를 지칭할 수 있다.
도 1은 본 발명의 다양한 실시예에 따른 전자 장치가 포함된 네트워크 환경을 나타낸 도면이다. 도 1을 참조하여, 다양한 실시예에서의, 네트워크 환경(100) 내의 전자 장치(101)가 기재된다.
전자 장치(101)는 제1 버스(110), 제1 프로세서(120), 제1 메모리(130), 입출력 인터페이스(140) 및 제1 통신 인터페이스(150)를 포함할 수 있다. 어떤 실시예에서는, 전자 장치(101)는, 구성 요소들 중 적어도 하나를 생략하거나 다른 구성 요소를 추가적으로 구비할 수 있다.
제1 버스(110)는, 예를 들면, 구성 요소들(120-150)을 서로 연결하고, 구성 요소들 간의 통신(예: 제어 메시지 및/또는 데이터)을 전달하는 회로를 포함할 수 있다.
제1 프로세서(120)는, 중앙처리장치(central processing unit(CPU)), 어플리케이션 프로세서(application processor(AP)) 또는 커뮤니케이션 프로세서(communication processor(CP)) 중 하나 또는 그 이상을 포함할 수 있다. 제1 프로세서(120)는, 예를 들면, 전자 장치(101)의 적어도 하나의 다른 구성 요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 실행할 수 있다.
한 실시예에 따르면, 제1 프로세서(120)는 공개키 또는 비밀키를 생성할 수 있다. 상기 제1 프로세서(120)는 상기 공개키 또는 비밀키를 이용하여 데이터(평문)를 암호화하거나 또는 암호화된 데이터(암호문)를 복호화할 수 있다.
상기 제1 프로세서(120)는 상기 공개키를 서버(201)에 전송하도록 제1 통신 인터페이스(150)를 제어할 수 있다. 또한 제1 프로세서(120)는 상기 암호문을 서버(201)에 전송하도록 제1 통신 인터페이스(150)를 제어할 수 있다.
한 실시예에 따르면, 상기 제1 프로세서(120)는 사용자 입력에 따라 쿼리를 생성할 수 있다. 예를 들어, 사용자가 입출력 인터페이스(140)를 통해 서버(201)에 저장된 데이터를 검색하여 줄 것을 요청하였다고 가정한다. 상기 제1 프로세서(120)에 상기 사용자의 요청을 반영한 쿼리를 생성할 수 있다. 이때 상기 제1 프로세서(120)는 상기 요청에 포함된 특정한 값(예를 들어, 검색 범위 등)을 공개키를 이용하여 암호화하고, 암호화된 값과 상기 사용자의 요청에 대응하는 동작을 실행하기 위한 명령어를 포함하는 쿼리를 생성할 수 있다.
예를 들어, 서버(201)에 직원별 연봉이 입력되어 있다고 가정한다. 전자 장치(101)의 사용자는 상기 연봉이 5만불 이상 10만불 이하인 직원의 수를 알려줄 것을 전자 장치(101)에 요청할 수 있다. 전자 장치(101)의 제1 프로세서(120)는 위와 같은 사용자의 요청에 따른 쿼리를 생성할 수 있다. 또한 상기 쿼리를 생성하기 앞서, 제1 프로세서(120)는 사용자에 의해 입력된 파라미터, 예를 들어, 연봉의 범위(5만불 이상 10만불 이하), 검색 항목인 ‘직원’ 등을 공개키를 이용하여 암호화할 수 있다. 제1 프로세서(120)는 상기 암호화된 파라미터와, 상기 사용자의 요청에 따른 동작(연봉이 5만불 이상 10만불 이하인 직원의 수를 카운트하는 동작)을 실행하기 위한 명령어를 조합함으로써 서버(201)에 전송할 쿼리를 생성할 수 있다. 이때, 제1 프로세서(120)는 상기 파라미터(예: ‘5만불 이상 10만불 이하’, ‘직원’ 등)를 동형 암호화 방식으로 암호화할 수 있다.
한 실시예에 따르면, 제1 프로세서(120)는, 상기 쿼리에 대한 응답으로서 상기 서버(201)로부터 수신한 결과값을 비밀키를 이용하여 복호화할 수 있다. 상기 서버(201)로부터 수신한 결과값은 동형 암호일 수 있다.
예를 들어, 연봉이 5만불 이상 10만불 이하인 직원의 수가 10명이라고 가정한다. 상기 서버(201)는, 상기 전자 장치(101)로부터 연봉이 5만불 이상 10만불 이하인 직원의 수로서, 동형 암호인 ‘3482101’를 출력할 수 있다. 제1 프로세서(120)는 상기 동형 암호인 ‘3482101’를 비밀키를 이용하여 복호화하고, 복호화된 값으로서 ‘10’을 획득할 수 있다. 그에 따라 제1 프로세서(120)는 5만불 이상 10만불 이하인 직원의 수로서 ‘10’을 사용자에게 출력하여 제공할 수 있다. 한 실시예에 따르면, 상기 제1 프로세서(120)는 입출력 인터페이스(140)에 포함된 스크린을 통하여 상기 5만불 이상 10만불 이하인 직원의 수 ‘10’을 출력할 수 있다.
제1 메모리(130)는, 휘발성 및/또는 비휘발성 메모리를 포함할 수 있다. 제1 메모리(130)는, 예를 들면, 전자 장치(101)의 적어도 하나의 다른 구성 요소에 관계된 명령 또는 데이터를 저장할 수 있다.
한 실시예에 따르면, 제1 메모리(130)에는 공개키 및 비밀키가 저장될 수 있으며, 또한 제1 메모리(130)에는 비밀키 또는 공개키를 이용하여 암호화된 데이터, 예를 들어 동형 암호 등이 저장될 수 있다.
입출력 인터페이스(140)는, 예를 들면, 사용자 또는 다른 외부 기기로부터 입력된 명령 또는 데이터를 전자 장치(101)의 다른 구성 요소(들)에 전달할 수 있는 인터페이스의 역할을 할 수 있다. 또한 입출력 인터페이스(140)는 전자 장치(101)의 다른 구성 요소(들)로부터 수신된 명령 또는 데이터를 사용자 또는 다른 외부 기기로 출력할 수 있다.
한 실시예에 따르면, 상기 입출력 인터페이스(140)는 터치 스크린 등의 디스플레이를 포함하는 형태로 구현되어 전자펜 또는 사용자의 신체의 일부를 이용한 터치, 제스처, 근접 또는 호버링 입력을 수신할 수 있다. 한 실시예에 따르면, 전자 장치(101)가 서버(201)로부터 수신한 데이터가 암호문인 경우, 상기 입출력 인터페이스(140)는 상기 암호문이 복호화된 평문을 표시하여 사용자에게 제공할 수 있다. 상기 암호문은 제1 프로세서(120)에 의하여 복호화되어 평문으로 변환될 수 있다.
제1 통신 인터페이스(150)는, 예를 들면, 전자 장치(101)와 외부 장치(예를 들어, 서버(201)) 간의 통신을 설정할 수 있다. 예를 들면, 제1 통신 인터페이스(150)는 무선 통신 또는 유선 통신을 통해서 네트워크(162)에 연결되어 외부 장치(예를 들어, 서버(201))와 통신할 수 있다.
한 실시예에 따르면, 제1 통신 인터페이스(150)는 제1 프로세서(120)의 제어 하에 상기 제1 프로세서(120)에 의하여 생성된 공개키를 서버(201)로 전송할 수 있다. 또한 제1 통신 인터페이스(150)는 제1 프로세서(120)에 의하여 생성된 쿼리(query)를 서버(201)에 전송하고, 상기 서버(201)로부터 상기 쿼리(query)에 대응하는 응답(response)을 수신할 수 있다. 이때 상기 쿼리 또는 응답은 암호문이거나 또는 암호문을 포함하는 데이터일 수 있다.
무선 통신은, 예를 들면, 셀룰러 통신 프로토콜로서, 예를 들면, LTE(long-term evolution), LTE-A(LTE Advance), CDMA(code division multiple access), WCDMA(wideband CDMA), UMTS(universal mobile telecommunications system), WiBro(Wireless Broadband) 또는 GSM(Global System for Mobile Communications) 등 중 적어도 하나를 사용할 수 있다. 또한 무선 통신은, 예를 들면, 근거리 통신을 포함할 수 있다. 근거리 통신은, 예를 들면, WiFi(wireless fidelity), 블루투스(Bluetooth), NFC(near field communication), 또는 GNSS(global navigation satellite system) 등 중 적어도 하나를 포함할 수 있다. GNSS는 사용 지역 또는 대역폭 등에 따라, 예를 들면, GPS(Global Positioning System), Glonass(Global Navigation Satellite System), Beidou Navigation Satellite System(이하 “Beidou”) 또는 Galileo, the European global satellite-based navigation system 중 적어도 하나를 포함할 수 있다. 이하, 본 문서에서는, “GPS”는 “GNSS”와 혼용되어 사용(interchangeably used)될 수 있다. 유선 통신은, 예를 들면, USB(universal serial bus), HDMI(high definition multimedia interface), RS-232(recommended standard 232) 또는 POTS(plain old telephone service) 등 중 적어도 하나를 포함할 수 있다. 네트워크(162)는 통신 네트워크(telecommunications network), 예를 들면, 컴퓨터 네트워크(computer network)(예: LAN 또는 WAN), 인터넷 또는 전화망(telephone network) 중 적어도 하나를 포함할 수 있다.
도 1에는 도시되지 않았으나, 전자 장치(101)는 디스플레이를 추가적으로 더 포함할 수 있다. 상기 디스플레이는 제1 프로세서(120)에 의하여 복호화된 데이터, 예를 들어 평문 또는 상기 평문을 포함하는 데이터를 표시함으로써 사용자에게 제공할 수 있다. 디스플레이는, 예를 들면, 액정 디스플레이(liquid crystal display(LCD)), 발광 다이오드(light-emitting diode(LED)) 디스플레이, 유기 발광 다이오드(organic light-emitting diode(OLED)) 디스플레이, 마이크로 전자기계 시스템(micro electro mechanical systems(MEMS)) 디스플레이 또는 전자종이(electronic paper) 디스플레이를 포함할 수 있다.
한 실시예에 따르면, 전자 장치(101)가 어떤 기능이나 서비스를 자동으로 또는 요청에 의하여 수행해야 할 경우에, 전자 장치(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 그와 연관된 적어도 일부 기능을 다른 장치(예를 들어, 서버(201))에게 요청할 수 있다. 다른 장치(예를 들어, 서버(201))는 요청된 기능 또는 추가 기능을 실행하고, 그 결과를 전자 장치(101)로 전달할 수 있다. 전자 장치(101)는 수신된 결과를 그대로 또는 추가적으로 처리하여 요청된 기능이나 서비스를 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다.
본 발명의 일 실시예에 따른 데이터를 관리하는 전자 장치는, 통신 인터페이스와, 사용자에 의해 입력된 제1 데이터를 공개키를 이용하여 암호화한 제2 데이터를 생성하고, 상기 제2 데이터를 포함하는 쿼리를 생성하고, 상기 쿼리를 서버로 전송하고, 상기 서버로부터 상기 쿼리에 대응하는 제3 데이터를 수신하고, 상기 제3 데이터를, 상기 공개키에 대응하는 비밀키를 이용하여 복호화한 제4 데이터를 생성하여 출력하는 프로세서를 포함할 수 있다.
도 2는 도 1에 도시된 네트워크 환경에 포함된 서버를 나타낸 도면이다.
서버(201)는 제2 버스(210), 제2 프로세서(220), 제2 메모리(230) 및 제2 통신 인터페이스(250)를 포함할 수 있다. 어떤 실시예에서는, 서버(201)는, 구성 요소들 중 적어도 하나를 생략하거나 다른 구성 요소를 추가적으로 구비할 수 있다.
제2 버스(210)는, 예를 들면, 구성 요소들(220, 230, 250)을 서로 연결하고, 구성 요소들 간의 통신(예: 제어 메시지 및/또는 데이터)을 전달하는 회로를 포함할 수 있다.
제2 프로세서(220)는, 중앙처리장치(central processing unit(CPU)), 어플리케이션 프로세서(application processor(AP)) 또는 커뮤니케이션 프로세서(communication processor(CP)) 중 하나 또는 그 이상을 포함할 수 있다. 제2 프로세서(220)는, 예를 들면, 서버(201) 의 적어도 하나의 다른 구성 요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 실행할 수 있다.
한 실시예에 따르면, 제2 프로세서(220)는 전자 장치(101)로부터 수신한 공개키를 이용하여 데이터를 암호화하거나 또는 암호화된 데이터를 복호화할 수 있다. 상기 제2 프로세서(220)는 전자 장치(101)로부터 수신한 쿼리를 분석하고, 상기 쿼리를 로직으로 변환할 수 있다. 이때 제2 프로세서(220)는 공개키를 이용하여 상기 쿼리를 로직으로 변환할 수 있다. 상기 쿼리는 전자 장치(101)의 사용자로부터 상기 전자 장치(101)에 입력된 특정한 값, 즉 파라미터와 명령어를 포함할 수 있다. 상기 제2 프로세서(220)는 상기 쿼리를 분석하여 상기 쿼리에 포함된 파라미터의 처리 방식을 결정할 수 있다. 제2 프로세서(220)는 상기 결정된 파라미터의 처리 방식에 따라 상기 쿼리를 로직으로 변환할 수 있다. 상기 제2 프로세서(220)는 상기 로직에 따라 제2 메모리(230)에 저장된 데이터(예를 들어 암호문)을 검색하거나 또는 데이터(예를 들어, 암호문)에 대한 연산을 수행할 수 있다. 상기 제2 프로세서(220)는 상기 로직을 만족하는 하나 이상의 결과값들을, 상기 쿼리에 대응하는 응답으로서 제2 통신 인터페이스(250)를 통해 전자 장치(101)로 전송할 수 있다.
한 실시예에 따르면, 상기 제2 프로세서(220)는 전자 장치(101)로부터 수신한 쿼리 중 명령어를 추출할 수 있다. 상기 명령어는, 상기 쿼리에 포함된 파라미터를 처리하는 방식으로, 제2 메모리(230)에는 명령어들 각각에 대응하는 로직이 저장되어 있을 수 있다. 한 실시예에 따르면, 상기 제2 메모리(230)에는 상기 명령어들 각각에 대응하는 로직들을 포함하는 로직 테이블이 미리 저장되어 있을 수 있다. 또한 상기 제2 프로세서(220)는 상기 테이블 및 공개키를 이용하여 전자 장치(101)로부터 수신한 쿼리를 로직으로 변환할 수 있다.
제2 메모리(230)는, 휘발성 및/또는 비휘발성 메모리를 포함할 수 있다. 제2 메모리(230)는, 예를 들면, 서버(201)의 적어도 하나의 다른 구성 요소에 관계된 명령 또는 데이터를 저장할 수 있다.
한 실시예에 따르면, 제2 메모리(230)에는 전자 장치(101)로부터 수신한 공개키가 저장될 수 있으며, 또한 제2 메모리(230)에는 전자 장치(101)로부터 수신한 일반 데이터, 즉 암호화되지 않은 데이터(평문) 또는 상기 전자 장치(101)에 의하여 암호화된 데이터(암호문)가 저장될 수 있다. 한 실시예에 따르면, 상기 제2 메모리(230)는 SQL(Structured Query Language)을 이용하는 데이터베이스(Database)의 구조를 가질 수 있다.
제2 통신 인터페이스(250)는, 예를 들면, 서버(201)와 외부 장치(예를 들어, 전자 장치(101)) 간의 통신을 설정할 수 있다. 예를 들면, 제2 통신 인터페이스(250)는 무선 통신 또는 유선 통신을 통해서 네트워크(162)에 연결되어 외부 장치(예를 들어, 전자 장치(101))와 통신할 수 있다.
한 실시예에 따르면, 제2 통신 인터페이스(250)는 전자 장치(101)로부터 수신한 공개키를 해당 전자 장치(101)에 대응하여 저장할 수 있다. 상기 제2 통신 인터페이스(250)는 전자 장치(101)로부터 쿼리를 수신하고, 상기 쿼리에 대응하는 결과값을 포함하는 응답을 전자 장치(101)에 전송할 수 있다.
무선 통신은, 예를 들면, 셀룰러 통신 프로토콜로서, 예를 들면, LTE(long-term evolution), LTE-A(LTE Advance), CDMA(code division multiple access), WCDMA(wideband CDMA), UMTS(universal mobile telecommunications system), WiBro(Wireless Broadband) 또는 GSM(Global System for Mobile Communications) 등 중 적어도 하나를 사용할 수 있다. 또한 무선 통신은, 예를 들면, 근거리 통신을 포함할 수 있다. 상기 근거리 통신은, 예를 들면, WiFi(wireless fidelity), 블루투스(Bluetooth), NFC(near field communication), 또는 GNSS(global navigation satellite system) 등 중 적어도 하나를 포함할 수 있다. GNSS는 사용 지역 또는 대역폭 등에 따라, 예를 들면, GPS(Global Positioning System), Glonass(Global Navigation Satellite System), Beidou Navigation Satellite System(이하 “Beidou”) 또는 Galileo, the European global satellite-based navigation system 중 적어도 하나를 포함할 수 있다. 유선 통신은, 예를 들면, USB(universal serial bus), HDMI(high definition multimedia interface), RS-232(recommended standard232) 또는 POTS(plain old telephone service) 등 중 적어도 하나를 포함할 수 있다. 네트워크(162)는 통신 네트워크(telecommunications network), 예를 들면, 컴퓨터 네트워크(computer network)(예: LAN 또는 WAN), 인터넷 또는 전화망(telephone network) 중 적어도 하나를 포함할 수 있다.
서버(201)는 전자 장치(101)와 동일한 또는 다른 종류의 장치일 수 있다. 한 실시예에 따르면, 서버(201)는 하나 또는 그 이상의 서버들의 그룹을 포함할 수 있다. 다양한 실시예에 따르면, 전자 장치(101)에서 실행되는 동작들의 전부 또는 일부는 서버(201)에서 실행될 수 있다. 한 실시예에 따르면, 전자 장치(101)가 어떤 기능이나 서비스를 자동으로 또는 요청에 의하여 수행해야 할 경우에, 전자 장치(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 그와 연관된 적어도 일부 기능을 서버(201)에게 요청할 수 있다. 서버(201) 는 요청된 기능 또는 추가 기능을 실행하고, 그 결과를 전자 장치(101)로 전달할 수 있다. 서버(201)는 클라우드 컴퓨팅, 분산 컴퓨팅 또는 클라이언트-서버 컴퓨팅 기술을 적용한 하나 이상의 장치로 구현될 수 있다.
본 발명의 일 실시예에 따른 데이터를 관리하는 서버는, 전자 장치로부터 제1 데이터를 포함하는 쿼리를 수신하는 통신 인터페이스와, 상기 제1 쿼리에 포함된 명령어에 기초하여 상기 쿼리를, 데이터를 검색하기 위한 로직으로 변환하고, 상기 로직을 만족하는 제2 데이터를 결정하고, 상기 제2 데이터를, 상기 쿼리에 대응하는 응답으로서 상기 전자 장치로 전송하도록 상기 통신 인터페이스를 제어하는 프로세서를 포함하고, 상기 제1 데이터 및 상기 제2 데이터는, 상기 전자 장치에 의하여 공개키를 이용하여 동형 암호화된 데이터일 수 있다.
도 3은 본 발명의 다양한 실시예에 따른 전자 장치(101)가 암호문인 제1 데이터를 서버(201)에 저장하는 방법을 나타낸 도면이다.
도 3을 참조하면, 전자 장치(101)는 사용자 입력에 대응하는 제1 데이터를 선택할 수 있다(S302). 상기 제1 데이터는 암호화되지 않은 데이터, 즉 평문일 수 있다.
전자 장치(101)의 제1 프로세서(120)는 제1 메모리(130)에 저장되어 있던 공개키를 이용하여 상기 제1 데이터를 암호화한 암호문인 제2 데이터를 생성할 수 있다(S304). 이때 상기 제2 데이터는, 상기 제1 프로세서(120)에 의하여 상기 제1 데이터가 동형 암호화(Homomorphic Encryption) 방식으로 암호화된 것일 수 있다.
상기 동형화 암호화 방식은, 완전 동형 암호화(Fully Homomorphic Encrytion) 방식 및 준 동형 암호화(Somwhat Homomorphic Encryption) 방식이 있다. 제1 프로세서(120)는 암호화된 데이터에 대한 복호화 과정 없이 덧셈 및 곱셈 연산을 지원하는 알고리즘인 완전 동형 암호화 방식 또는 준 동형 암호화 방식으로 상기 제1 데이터를 암호화하여 제2 데이터로 변환할 수 있다.
전자 장치(101)는 단계 S304에서 생성된 제2 데이터를 서버(201)로 전송할 수 있다(S306). 서버(201)는 상기 제2 데이터를 상기 전자 장치(101)와 대응시켜 저장할 수 있다(S308). 즉 서버(201)에는 상기 제1 데이터가 동형 암호화된 데이터(제2 데이터)가 저장될 수 있다.
도 4는 본 발명의 다양한 실시예에 따른 전자 장치(101)가 서버(201)에 저장된 암호문들을 이용하는 방법을 나타낸 순서도이다.
도 4를 참조하면, 전자 장치(101)의 제1 프로세서(120)는 사용자 입력에 따라 제1 데이터를 포함하는 제1 쿼리를 생성할 수 있다(S402). 한 실시예에 따르면, 상기 제1 쿼리는 SQL 타입의 쿼리일 수 있다. 상기 제1 쿼리는 전자 장치(101)의 사용자로부터 입력된 명령어, 예를 들어 덧셈, 뺄셈, 곱셈 또는 나눗셈 등의 연산을 나타내는 연산자, 또는 검색(search)임을 나타내는 연산자 등을 포함할 수 있다. 한 실시예에 따르면, 사용자는 단계 S402 이전에 검색 키워드 또는 검색 범위를 제1 데이터, 즉 파라미터로서 전자 장치(101)에 입력할 수 있다. 예를 들어, 제1 프로세서(120)는 상기 제1 데이터를 이용하여 아래와 같은 제1 쿼리(451)를 생성할 수 있다.
[제1 쿼리]
Figure pat00001
……(451)
상기 제1 쿼리(451)는, 서버(201)의 제2 메모리(230)에 저장된 데이터 테이블 중 R로부터
Figure pat00002
Figure pat00003
인 값을 포함하는,
Figure pat00004
,
Figure pat00005
,
Figure pat00006
를 선택(또는 추출)하기 위한 것이다.
전자 장치(101)의 제1 프로세서(120)는 상기 제1 쿼리를 제2 쿼리로 변환할 수 있다(S404). 이때, 제1 프로세서(120)는 명령어(예를 들어, 제1 쿼리(451)에서 Select, from 및 where)를 제외한 제1 데이터(예를 들어, 제1 쿼리(451)의
Figure pat00007
,
Figure pat00008
,
Figure pat00009
,
Figure pat00010
Figure pat00011
)를 암호화한 제2 데이터를 생성할 수 있다. 상기 제1 데이터는, 상기 전자 장치(101)의 제1 프로세서(120)에 의하여 공개키를 이용하여 동형 암호 형태를 가지는 암호문으로 변환될 수 있다. 상기 제2 쿼리는 상기 공개키를 이용하여 동형 암호화된 데이터인 제2 데이터가 포함된 쿼리를 가리킨다. 예를 들어, 제1 프로세서(120)는 상기 제1 쿼리(451)를 아래와 같은 제2 쿼리(452)로 변환할 수 있다.
[제2 쿼리]
Figure pat00012
……(452)
상기 제2 쿼리(452)에서,
Figure pat00013
,
Figure pat00014
,
Figure pat00015
,
Figure pat00016
Figure pat00017
각각은 제1 쿼리(451)의
Figure pat00018
,
Figure pat00019
,
Figure pat00020
,
Figure pat00021
Figure pat00022
각각이 공개키를 이용하여 동형 암호화된 데이터일 수 있다.
전자 장치(101)는 상기 제2 쿼리를 서버(201)에 전송할 수 있다(S406). 서버(201)의 제2 프로세서(220)는 상기 제2 쿼리를 분석하여 상기 제2 쿼리를 로직(logic)으로 변환할 수 있다(S408). 한 실시예에 따르면, 제2 프로세서(220)는 제2 메모리(230)에 포함된 로직 테이블을 참조하여 상기 제2 쿼리를 로직으로 변환할 수 있다. 예를 들어, 제2 프로세서(230)는 제2 쿼리(452)를 아래의 로직(453)으로 변환할 수 있다.
[로직]
Figure pat00023
……(453)
상기 로직(453)은 SQL 구조의 제2 메모리(230)를 검색하기 위한 것으로서, 제2 프로세서(220)는 상기 제2 쿼리를 분석하여 상기 제2 쿼리를 상기 제2 메모리(230)의 검색을 위한 로직으로 변환할 수 있다. 한 실시예에 따르면, 제2 쿼리에 포함된 명령어 각각에 대응하는 로직 명령어가 미리 설정되어 있을 수 있다. 상기 로직 명령어는 로직에 포함된 제2 데이터를 처리하기 위한 명령어로서, 예를 들어 로직(453) 중 equal일 수 있다.
한 실시예에 따르면, 상기 제2 프로세서(220)는 이퀄 회로(Equality circuit), 비교 회로(Greater-than comparison circuit) 및 덧셈 회로(Integer addition circuit) 중 적어도 하나를 포함하는 형태로 구현될 수 있다.
제2 프로세서(220)에 의하여 변환된 로직이 명령어 comp를 포함하는 경우, 상기 제2 프로세서(220)는 비교 회로를 이용하여 상기 로직을 처리할 수 있다. 상기 로직이 명령어 fadd를 포함하는 겨우, 상기 제2 프로세서(220)는 덧셈 회로를 이용하여 상기 로직을 처리할 수 있다. 상기 제2 프로세서(220)는 상기 제2 쿼리가 변환된 로직에 포함된 로직 명령어를 기초로 상기 이퀄 회로, 비교 회로 또는 덧셈 회로 중 적어도 하나를 실행시켜 상기 로직에 대응하는 동작을 실행할 수 있다.
상기 로직이 명령어 equal을 포함하는 경우, 제2 프로세서(220)는 상기 이퀄 회로를 이용하여 상기 로직을 처리할 수 있다. 예를 들어, 상기 이퀄 회로가
Figure pat00024
비트 정수 x 및 y를 처리하는 방식은 아래와 같은 수식으로 표현될 수 있다.
Figure pat00025
……(461)
상기 수식(461)의 결과값에 대하여, x의 암호문
Figure pat00026
y의 암호문
Figure pat00027
가 동일한 평문인 xy를 가질 경우(x=y) 이퀄 회로는
Figure pat00028
을 결과값으로서 출력할 수 있다. 또한 xy가 동일하지 않은 경우,
Figure pat00029
을 결과값으로서 출력할 수 있다. 위의 식에서 x i 는 x의 i번째 bit를 의미하며,
Figure pat00030
x의 i번째 bit가 동형 암호화된 암호문이고, y i y의 i번째 bit를 의미하며,
Figure pat00031
y의 i번째 bit가 동형 암호화된 암호문일 수 있다. 상기 암호문
Figure pat00032
Figure pat00033
는 아래와 같이 표현될 수 있다.
Figure pat00034
Figure pat00035
한 실시예에 따르면, 상기 E pk ()는 공개키 암호화 알고리즘을 나타낸 것으로서, 괄호 안의 값을 공개키인 pk를 이용하여 암호화함을 의미할 수 있다. 또한 상기 공개키는 동형 암호의 형태로 암호화될 수 있다. 위와 같이 상기 식(461)은 암호문인
Figure pat00036
Figure pat00037
을 포함하고 있으며, 상기 이퀄 회로는 상기 암호문이 포함된 상태로 식(461)의 출력값인 암호문(
Figure pat00038
)를 계산할 수 있다. 상기 암호문 e는 아래와 같다.
Figure pat00039
……(462)
한 실시예에 따르면, 상기 제2 프로세서(220)는 Permuting 기법을 이용하여 상기 전자 장치(101)로부터 수신한 쿼리에 대응하는 응답, 예를 들어 응답 메시지의 모든 슬롯(slot)에 상기 암호문 e(462)(즉, 제3 데이터)를 포함시킬 수 있다. 상기 전자 장치(101)는 상기 서버(201)로부터 수신한 결과값, 즉 암호문 e(462)을 포함하는 응답 메시지 중 상기 슬롯들 간의 순서를 재배치함으로써 상기 암호문 e(462)를 상기 응답 메시지로부터 추출할 수 있다. 한 실시예에 따르면, 상기 전자 장치(101)의 프로세서(120)는 상기 암호문 e(462)에 대하여
Figure pat00040
번 동형 곱셈(homomorphic multiplication)을 수행함으로써, 상기 암호문 e(462)를 복호화할 수 있다.
상기 로직이 명령어 comp를 포함하는 경우, 제2 프로세서(220)는 비교 회로를 이용하여 상기 로직을 처리할 수 있다. 예를 들어, 상기 비교 회로가
Figure pat00041
비트의 정수 x 및 y를 처리하는 방식은 아래와 같은 수식
Figure pat00042
(471)으로 표현될 수 있다.
Figure pat00043
……(471)
상기의 수식(471)에서
Figure pat00044
는 다음의 수식(472)을 이용하여 계산될 수 있다.
Figure pat00045
……(472)
또한 i=0일 때의
Figure pat00046
, 즉
Figure pat00047
는 다음의 수식(473)을 이용하여 계산될 수 있다.
Figure pat00048
……(473)
이때,
Figure pat00049
xi번째 비트(bit)이고,
Figure pat00050
는 1비트
Figure pat00051
에 대한 동형 암호문일 수 있다. 또한
Figure pat00052
인 경우
Figure pat00053
(471)는
Figure pat00054
이고,
Figure pat00055
인 경우
Figure pat00056
일 수 있다. 상기
Figure pat00057
은 0의 동형 암호문이고,
Figure pat00058
은 1의 동형 암호문일 수 있다.
비교 회로는 아래와 같은 수식(474)을 이용하여 2개 이상의 값들을 서로 비교한 결과를 출력할 수 있다.
Figure pat00059
……(474)
where
Figure pat00060
한 실시예에 따르면 상기 제2 프로세서(220)는, 상기 수식
Figure pat00061
(472)의 연산 결과가 메시지의 모든 슬롯에 포함되어 있는 암호문을 결과값으로서 얻을 수 있다. 또한 상기 제2 프로세서(220)는 암호문
Figure pat00062
Figure pat00063
에 대하여 다음과 같은 연산을 수행할 수 있다.
Figure pat00064
Figure pat00065
한 실시예에 따르면, 상기 제2 프로세서(220)에 의하여 상기
Figure pat00066
은 다음과 같이 계산될 수 있다.
Figure pat00067
한 실시예에 따르면, 상기 제2 프로세서(220)는 Permuting 기법을 이용하여 상기 전자 장치(101)로부터 수신한 쿼리에 대응하는 응답 메시지의 모든 슬롯에 상기 암호문(즉, 제3 데이터)
Figure pat00068
또는
Figure pat00069
를 포함시킬 수 있다. 상기 전자 장치(101)는 상기 서버(201)로부터 수신한 결과값, 즉 암호문
Figure pat00070
또는
Figure pat00071
로부터 응답 메시지를 추출할 수 있다. 한 실시예에 따르면, 상기 전자 장치(101)의 프로세서(120)는 상기 암호문 암호문
Figure pat00072
또는
Figure pat00073
에 대하여
Figure pat00074
번의 동형 곱셈(homomorphic multiplication)을 수행함으로써 상기 암호문
Figure pat00075
또는
Figure pat00076
를 복호화할 수 있다.
상기 로직이 fadd를 포함하는 경우, 상기 제2 프로세서(220)는 가산 회로를 이용하여 상기 로직을 처리할 수 있다. 예를 들어, 상기 가산 회로가
Figure pat00077
비트 정수 x 및 y를 zero padding을 통해 처리하는 방식은 아래와 같은 수식(481)으로 표현될 수 있다.
Figure pat00078
………(481)
위의 수식(481)에서
Figure pat00079
는 다음의 수식(482)를 이용하여 계산될 수 있다.
Figure pat00080
………(482)
상기 수식(482)에서
Figure pat00081
는 다음의 수식(483)을 이용하여 계산될 수 있다.
Figure pat00082
……(483)
상기의 수식들(481, 482, 483)에서
Figure pat00083
x의 i번째 비트이고,
Figure pat00084
는 1 비트의
Figure pat00085
에 대한 동형 암호문일 수 있다. 마찬가지로
Figure pat00086
y의 i번째 비트이고,
Figure pat00087
는 1 비트의
Figure pat00088
에 대한 동형 암호문일 수 있다. 상기
Figure pat00089
에 대한 결과값으로서 제2 프로세서(230)는
Figure pat00090
개의 암호문(s)을 출력할 수 있다.
상기 수식(482)에서
Figure pat00091
Figure pat00092
각각은 다음과 같이 계산될 수 있다.
Figure pat00093
Figure pat00094
한 실시예에 따르면,
Figure pat00095
Figure pat00096
는 다음 수식(484)을 이용하여 계산될 수 있다.
Figure pat00097
…… (484)
상기 수식(484)에서
Figure pat00098
는 및
Figure pat00099
각각은 다음의 수식(485) 및 수식(486)을 이용하여 계산될 수 있다.
Figure pat00100
…… (485)
Figure pat00101
…… (486)
상기 연산 회로는 암호문인
Figure pat00102
Figure pat00103
을 포함된 상태로 식(481)의 출력값인 암호문(
Figure pat00104
)을 계산할 수 있다. 상기 암호문은 아래와 같이 나타낼 수 있다.
Figure pat00105
…… (487)
한 실시예에 따르면, 상기 2 프로세서(220)는 Permuting 기법을 이용하여 상기 전자 장치(101)로부터 수신한 쿼리에 대응하는 응답 메시지의 모든 슬롯(slot)에 상기 암호문 s(487)(즉, 제3 데이터)를 포함시킬 수 있다. 상기 전자 장치(101)는 상기 서버(201)로부터 수신한 결과값, 즉 암호문 s(487)을 포함하는 응답 메시지 중 상기 슬롯들 간의 순서를 재배치함으로써 상기 암호문 s(487)를 상기 응답 메시지로부터 추출할 수 있다. 한 실시예에 따르면, 상기 전자 장치(101)의 프로세서(120)는 상기 암호문 s(487)에 대하여
Figure pat00106
번의 동형 곱셈(homomorphic multiplication)을 수행하여 상기 암호문 s(487)를 복호화할 수 있다.
한 실시예에 따르면, 상기 제3 데이터가 결정되면(S410), 서버(201)의 제2 통신 인터페이스(250)는 상기 제3 데이터를 전자 장치(101)에 전송할 수 있다(S412). 전자 장치(101)는 제3 데이터를 복호화한 제4 데이터를 생성할 수 있다(S414). 서버(201)에 저장된 데이터는 공개키를 이용하여 동형 암호화된 암호문일 수 있다. 따라서 서버(201)로부터 전자 장치(101)로 전송된 제3 데이터 또한, 공개키를 이용하여 동형 암호화된 암호문일 수 있다. 전자 장치(101)는 제1 메모리(130)에 저장되어 있는 비밀키를 이용하여 상기 제3 데이터를 복호화할 수 있다. 상기 제4 데이터는 상기 동형 암호 형태의 암호문이 복호화된 평문으로서, 전자 장치(101)는 평문인 상기 제4 데이터를 출력할 수 있다(S416). 예를 들어, 상기 전자 장치(101)는 상기 제4 데이터를, 상기 제1 쿼리에 대한 응답으로서 디스플레이(미도시)를 통해 출력하여 사용자에게 제공할 수 있다.
도 5는 본 발명의 다양한 실시예에 따른 서버가 전자 장치의 요청을 처리하는 일 예를 나타낸 순서도이다.
도 5를 참조하면, 서버(201)는 전자 장치(101)로부터 암호문인 제1 데이터와 명령어를 포함하는 쿼리를 수신할 수 있다(S502). 상기 서버(201)는 상기 쿼리를 분석하여 상기 쿼리에 대응하는 로직 명령어를 결정할 수 있다(S504). 상기 서버(201)는 상기 로직 명령어를 이용하여 상기 쿼리를 로직으로 변환할 수 있다.
예를 들어, 전자 장치(101)에 의해 생성된 쿼리가 simple selection query(예를 들어,
Figure pat00107
)라고 가정한다.
Figure pat00108
은 아래와 같이 정의될 수 있다.
Figure pat00109
서버(201)의 제2 프로세서(220)는 상기 쿼리(
Figure pat00110
)를 분석하여 상기 쿼리(
Figure pat00111
)를 이퀄 로직(
Figure pat00112
)으로 변환시키는 것으로 결정할 수 있다. 그에 따라 상기 제2 프로세서(220)는 아래와 같이 쿼리(
Figure pat00113
)를 상기 로직(
Figure pat00114
) 으로 변환할 수 있다.
Figure pat00115
예를 들어, 전자 장치(101)에 의해 생성된 쿼리가 conjunctive selection query(예를 들어,
Figure pat00116
)라고 가정한다.
Figure pat00117
는 아래와 같이 정의될 수 있다.
Figure pat00118
서버(201)의 제2 프로세서(220)는 상기 쿼리(
Figure pat00119
)를 분석하여 상기 쿼리(
Figure pat00120
)를 이퀄 로직(
Figure pat00121
)으로 변환시키는 것으로 결정할 수 있다. 그에 따라 상기 제2 프로세서(220)는 아래와 같이 쿼리(
Figure pat00122
)를 상기 로직(
Figure pat00123
) 으로 변환할 수 있다.
Figure pat00124
예를 들어, 전자 장치(101)에 의해 생성된 쿼리가 disjunctive selection query(예를 들어,
Figure pat00125
)라고 가정한다.
Figure pat00126
는 아래와 같이 정의될 수 있다.
Figure pat00127
서버(201)의 제2 프로세서(220)는 상기 쿼리(
Figure pat00128
)를 분석하여 상기 쿼리(
Figure pat00129
)를 이퀄 로직(
Figure pat00130
)으로 변환시키는 것으로 결정할 수 있다. 그에 따라 상기 제2 프로세서(220)는 아래와 같이 쿼리(
Figure pat00131
)를 상기 로직(
Figure pat00132
) 으로 변환할 수 있다.
Figure pat00133
예를 들어, 전자 장치(101)에 의해 생성된 쿼리가 search-and-sum query(예를 들어,
Figure pat00134
)라고 가정한다.
Figure pat00135
는 아래와 같이 정의될 수 있다.
Figure pat00136
서버(201)의 제2 프로세서(220)는 상기 쿼리(
Figure pat00137
)를 분석하여 상기 쿼리(
Figure pat00138
)를 이퀄 로직(
Figure pat00139
)으로 변환시키는 것으로 결정할 수 있다. 그에 따라 상기 제2 프로세서(220)는 아래와 같이 쿼리(
Figure pat00140
)를 상기 로직(
Figure pat00141
)으로 변환할 수 있다.
Figure pat00142
예를 들어, 전자 장치(101)에 의해 생성된 쿼리가 serach-and-count query(예를 들어,
Figure pat00143
)라고 가정한다.
Figure pat00144
는 아래와 같이 정의될 수 있다.
Figure pat00145
서버(201)의 제2 프로세서(220)는 상기 쿼리(
Figure pat00146
)를 분석하여 상기 쿼리(
Figure pat00147
)를 이퀄 로직(
Figure pat00148
)으로 변환시키는 것으로 결정할 수 있다. 그에 따라 상기 제2 프로세서(220)는 아래와 같이 쿼리(
Figure pat00149
)를 상기 로직(
Figure pat00150
)으로 변환할 수 있다.
Figure pat00151
예를 들어, 전자 장치(101)에 의해 생성된 쿼리가 search-and-avg query인 경우, 제2 프로세서(220)는 상기 쿼리를 search-and-sum query 및 search-and-count로 변환하여 처리하고, 그 결과값(암호문)을 제2 통신 인터페이스(250)를 통해 전자 장치(101)로 전송할 수 있다. 상기 전자 장치(101)의 제1 프로세서(120)는 상기 search-and-sum query 결과값(암호문)을 비밀키로 복호화한 후, 복호화된 결과값을 상기 search-and-count의 결과값으로 division 연산을 수행함으로써, 예를 들어 상기 평문에 포함된 하나 이상의 데이터에 대한 평균을 구함으로써 상기 search-and-avg query에 대한 최종적인 결과값을 구할 수 있다. 예를 들어, 전자 장치(101)는 평균을 구하는 모든 대상들을 더한 값 및 대상들의 개수를 입력받아서 상기 모든 대상들을 더한 값을 대상들의 개수로 나눔으로써 평균값을 구할 수 있다. 또한 서버(201)는 상기 전자 장치(101)로부터 상기 평균값을 수신할 수 있다.
예를 들어, 전자 장치(101)에 의해 생성된 쿼리가 search-and-max query인 경우, 제2 프로세서(220)는 상기 쿼리에 포함된 파라미터에 비교 회로를 반복적으로 적용하여 최대값 또는 최소값에 대응하는 암호문을 상기 제2 메모리(230)로부터 추출할 수 있다. 서버(201)는 상기 최대값 또는 최소값에 대응하는 암호문을 전자 장치(101)에 전송할 수 있다. 상기 전자 장치(101)의 제1 프로세서(120)는 상기 암호문을 비밀키로 복호화하여 최종적인 결과값, 즉 상기 최대값 또는 최소값을 구할 수 있다.
서버(201)는 단계 S506에서 변환된 로직을 이용하여 상기 로직에 대한 결과값으로서 제2 데이터를 결정할 수 있다(S508). 서버(201)의 제2 메모리(230)에는 공개키를 이용하여 동형 암호화된 데이터가 저장되어 있으므로, 상기 제2 데이터 또한 동형 암호화된 데이터일 수 있다. 서버(201)는 상기 제2 데이터를 전자 장치(101)로 전송할 수 있다(S510).
본 발명의 일 실시예에 따른 전자 장치가 데이터를 관리하는 방법은, 사용자에 의해 입력된 제1 데이터를 공개키를 이용하여 암호화한 제2 데이터를 생성하는 동작과, 상기 제2 데이터를 포함하는 쿼리를 생성하는 동작과, 상기 쿼리를 서버로 전송하는 동작과, 상기 서버로부터 상기 쿼리에 대응하는 제3 데이터를 수신하는 동작과, 상기 제3 데이터를, 상기 공개키에 대응하는 비밀키를 이용하여 복호화한 제4 데이터를 생성하여 출력하는 동작을 포함할 수 있다.
본 발명의 일 실시예에 따른 서버가 데이터를 관리하는 방법은, 전자 장치로부터 제1 데이터를 포함하는 쿼리를 수신하는 동작과, 상기 제1 쿼리에 포함된 명령어에 기초하여 상기 쿼리를, 데이터를 검색하기 위한 로직으로 변환하는 동작과, 상기 로직을 만족하는 제2 데이터를 결정하는 동작과, 상기 제2 데이터를, 상기 쿼리에 대응하는 응답으로서 상기 전자 장치로 전송하는 동작을 포함하고, 상기 제1 데이터 및 상기 제2 데이터는, 상기 전자 장치에 의하여 공개키를 이용하여 동형 암호화된 데이터일 수 있다.
101: 전자 장치 110: 제1 버스
120: 제1 프로세서 130: 제1 메모리
140: 입출력 인터페이스 150: 제1 통신 인터페이스
162: 네트워크 201: 서버
210: 제2 버스 220: 제2 프로세서
250: 제2 통신 인터페이스

Claims (22)

  1. 전자 장치가 데이터를 관리하는 방법에 있어서,
    사용자에 의해 입력된 제1 데이터를 공개키를 이용하여 암호화한 제2 데이터를 생성하는 동작과,
    상기 제2 데이터를 포함하는 쿼리를 생성하는 동작과,
    상기 쿼리를 서버로 전송하는 동작과,
    상기 서버로부터 상기 쿼리에 대응하는 제3 데이터를 수신하는 동작과,
    상기 제3 데이터를, 상기 공개키에 대응하는 비밀키를 이용하여 복호화한 제4 데이터를 생성하여 출력하는 동작을 포함함을 특징으로 하는 방법.
  2. 제1항에 있어서, 상기 제2 데이터 및 상기 제3 데이터 각각은,
    동형 암호화된 데이터임을 특징으로 하는 방법.
  3. 제2항에 있어서, 상기 사용자에 의해 입력된 제1 데이터를 암호화하여 제2 데이터를 생성하는 동작 이전에,
    상기 공개키를 이용하여 하나 이상의 평문들을 암호화한 암호문들을 생성하는 동작과,
    상기 암호문들을 상기 서버로 전송하는 동작을 더 포함함을 특징으로 하는 방법.
  4. 제3항에 있어서, 상기 쿼리에 대응하는 제3 데이터를 수신하는 동작은,
    상기 서버에 전송된 상기 암호문들 중 적어도 일부를 상기 제3 데이터로서 수신하는 동작을 포함함을 특징으로 하는 방법.
  5. 데이터를 관리하는 전자 장치에 있어서,
    통신 인터페이스와,
    사용자에 의해 입력된 제1 데이터를 공개키를 이용하여 암호화한 제2 데이터를 생성하고, 상기 제2 데이터를 포함하는 쿼리를 생성하고, 상기 쿼리를 상기 통신 인터페이스를 통해 서버로 전송하고, 상기 통신 인터페이스를 통해 상기 서버로부터 상기 쿼리에 대응하는 제3 데이터를 수신하고, 상기 제3 데이터를, 상기 공개키에 대응하는 비밀키를 이용하여 복호화한 제4 데이터를 생성하여 출력하는 프로세서를 포함함을 특징으로 하는 전자 장치.
  6. 제5항에 있어서, 상기 제2 데이터 및 상기 제3 데이터 각각은,
    동형 암호화된 데이터임을 특징으로 하는 전자 장치.
  7. 제6항에 있어서, 상기 프로세서는,
    상기 공개키를 이용하여 하나 이상의 평문들을 암호화한 암호문들을 생성하고, 상기 통신 인터페이스를 통해 상기 암호문들을 상기 서버로 전송함을 특징으로 하는 전자 장치.
  8. 제7항에 있어서, 상기 통신 인터페이스는,
    상기 서버에 전송된 상기 암호문들 중 적어도 일부를 상기 제3 데이터로서 수신함을 특징으로 하는 전자 장치.
  9. 서버가 데이터를 관리하는 방법에 있어서,
    전자 장치로부터 제1 데이터를 포함하는 쿼리를 수신하는 동작과,
    상기 쿼리에 포함된 명령어에 기초하여 상기 쿼리를, 데이터를 검색하기 위한 로직으로 변환하는 동작과,
    상기 로직을 만족하는 제2 데이터를 결정하는 동작과,
    상기 제2 데이터를, 상기 쿼리에 대응하는 응답으로서 상기 전자 장치로 전송하는 동작을 포함하고,
    상기 제1 데이터 및 상기 제2 데이터는,
    상기 전자 장치에 의하여 공개키를 이용하여 동형 암호화된 데이터임을 특징으로 하는 방법.
  10. 제9항에 있어서, 상기 전자 장치로부터 제1 데이터를 포함하는 쿼리를 수신하는 동작 이전에,
    상기 전자 장치로부터 상기 공개키를 수신하여 저장하는 동작을 더 포함함을 특징으로 하는 방법.
  11. 제9항에 있어서, 상기 전자 장치로부터 제1 데이터를 포함하는 쿼리를 수신하는 동작 이전에,
    상기 전자 장치에 의하여, 상기 공개키를 이용하여 하나 이상의 평문들이 암호화된 암호문들을 수신하여 저장하는 동작을 더 포함함을 특징으로 하는 방법.
  12. 제9항에 있어서,
    상기 쿼리가 상기 제1 데이터에 포함되는 두 값이 서로 일치하는지 여부를 결정하기 위한 것이라면, 아래 식 1에 의해 상기 두 값의 일치 여부가 결정됨을 특징으로 하는 방법.
    Figure pat00152
    ……(식 1)
    상기 식 1에서 i 및 (μ-1)은 자연수이고,
    상기 식 1은 xy가 동일한 경우 1을 출력하고, 상기 x와 상기 y가 서로 다른 경우 0을 출력하는 것이고, 상기 x 및 상기 y는 정수이고, 상기
    Figure pat00153
    및 상기
    Figure pat00154
    는, 상기 x 및 상기 y가 암호화된 값이고, x i xi번째 비트를 나타내는 수이고, y i y의 i번째 비트를 나타내는 수이며, 상기
    Figure pat00155
    x i 가 암호화된 값이고,
    Figure pat00156
    y i 가 암호화된 값이다.
  13. 제9항에 있어서,
    상기 쿼리가 상기 제1 데이터에 포함되는 두 값들 중 큰 값을 결정하기 위한 것이라면, 아래 식 2에 의해 상기 두 값들 중 큰 값이 결정됨을 특징으로 하는 방법.
    Figure pat00157
    ……(식 2)
    상기 식 2에서, i 및 (μ-1)은 자연수이고,
    상기 식 2는 상기 제1 데이터에 포함된 xy 중 상기 큰 값을 출력하는 것이고, 상기 x 및 상기 y는 정수이고, 상기
    Figure pat00158
    및 상기
    Figure pat00159
    는, 상기 x 및 상기 y가 암호화된 값이고, x i xi번째 비트를 나타내는 수이고, y i y의 i번째 비트를 나타내는 수이며, 상기
    Figure pat00160
    x i 가 암호화된 값이고,
    Figure pat00161
    y i 가 암호화된 값이다.
  14. 제9항에 있어서,
    상기 쿼리가 상기 제1 데이터에 포함되는 적어도 두 값들을 더하기 위한 것이라면, 아래 식 3에 의해 상기 적어도 두 값들을 더한 값이 결정됨을 특징으로 하는 방법.
    Figure pat00162
    ……(식 3)
    상기 식 3에서, i 및 (ν-1)은 자연수이고,
    상기 식 3은 상기 제1 데이터에 포함된 xy를 더한 값을 출력하기 위한 것이고, 상기 x 및 상기 y는 정수이고, 상기
    Figure pat00163
    및 상기
    Figure pat00164
    는, 상기 x 및 상기 y가 암호화된 값이고, x i xi번째 비트를 나타내는 수이고, y i y의 i번째 비트를 나타내는 수이며, 상기
    Figure pat00165
    x i 가 암호화된 값이고,
    Figure pat00166
    y i 가 암호화된 값이다.
  15. 제9항에 있어서,
    상기 전자 장치에 의하여 상기 제2 데이터가 복호화된 제3 데이터가 생성되는 동작을 더 포함함을 특징으로 하는 방법.
  16. 데이터를 관리하는 서버에 있어서,
    전자 장치로부터 제1 데이터를 포함하는 쿼리를 수신하는 통신 인터페이스와,
    상기 쿼리에 포함된 명령어에 기초하여 상기 쿼리를, 데이터를 검색하기 위한 로직으로 변환하고, 상기 로직을 만족하는 제2 데이터를 결정하고, 상기 제2 데이터를, 상기 쿼리에 대응하는 응답으로서 상기 전자 장치로 전송하도록 상기 통신 인터페이스를 제어하는 프로세서와,
    상기 제1 데이터 및 상기 제2 데이터는,
    상기 전자 장치에 의하여 공개키를 이용하여 동형 암호화된 데이터임을 특징으로 하는 서버.
  17. 제16항에 있어서,
    상기 통신 인터페이스를 통해 상기 전자 장치로부터 수신된 상기 공개키를 저장하는 메모리를 더 포함함을 특징으로 하는 서버.
  18. 제17항에 있어서, 상기 프로세서는,
    상기 전자 장치에 미리 저장된 공개키를 이용하여 하나 이상의 평문들이 암호화된 암호문들이 상기 전자 장치로부터 전송되면, 상기 암호문들을 상기 메모리에 저장함을 특징으로 하는 서버.
  19. 제16항에 있어서,
    상기 쿼리가 상기 제1 데이터에 포함되는 두 값이 서로 일치하는지 여부를 결정하기 위한 것이라면, 아래 식 4에 의해 상기 두 값의 일치 여부가 결정됨을 특징으로 하는 방법.
    Figure pat00167
    ……(식 4)
    상기 식 4에서 i 및 (μ-1)은 자연수이고,
    상기 식 4는 xy가 동일한 경우 1을 출력하고, 상기 x와 상기 y가 서로 다른 경우 0을 출력하는 것이고, 상기 x 및 상기 y는 정수이고, 상기
    Figure pat00168
    및 상기
    Figure pat00169
    는, 상기 x 및 상기 y가 암호화된 값이고, x i xi번째 비트를 나타내는 수이고, y i y의 i번째 비트를 나타내는 수이며, 상기
    Figure pat00170
    x i 가 암호화된 값이고,
    Figure pat00171
    y i 가 암호화된 값이다.
  20. 제16항에 있어서,
    상기 쿼리가 상기 제1 데이터에 포함되는 두 값들 중 큰 값을 결정하기 위한 것이라면, 아래 식 5에 의해 상기 두 값들 중 큰 값이 결정됨을 특징으로 하는 서버.
    Figure pat00172
    ……(식 5)
    상기 식 5에서, i 및 (μ-1)은 자연수이고,
    상기 식 5는 상기 제1 데이터에 포함된 xy 중 상기 큰 값을 출력하는 것이고, 상기 x 및 상기 y는 정수이고, 상기
    Figure pat00173
    및 상기
    Figure pat00174
    는, 상기 x 및 상기 y가 암호화된 값이고, x i xi번째 비트를 나타내는 수이고, y i y의 i번째 비트를 나타내는 수이며, 상기
    Figure pat00175
    x i 가 암호화된 값이고,
    Figure pat00176
    y i 가 암호화된 값이다.
  21. 제16항에 있어서,
    상기 쿼리가 상기 제1 데이터에 포함되는 적어도 두 값들을 더하기 위한 것이라면, 아래 식 6에 의해 상기 적어도 두 값들을 더한 값이 결정됨을 특징으로 하는 서버.
    Figure pat00177
    ……(식 6)
    상기 식 6에서, i 및 (ν-1)은 자연수이고,
    상기 식 6은 상기 제1 데이터에 포함된 xy를 더한 값을 출력하기 위한 것이고, 상기 x 및 상기 y는 정수이고, 상기
    Figure pat00178
    및 상기
    Figure pat00179
    는, 상기 x 및 상기 y가 암호화된 값이고, x i xi번째 비트를 나타내는 수이고, y i y의 i번째 비트를 나타내는 수이며, 상기
    Figure pat00180
    x i 가 암호화된 값이고,
    Figure pat00181
    y i 가 암호화된 값이다.
  22. 제16항에 있어서, 상기 전자 장치는,
    상기 제2 데이터를 복호화하여 제3 데이터를 생성하여 출력함을 특징으로 하는 서버.
KR1020150094823A 2015-07-02 2015-07-02 데이터를 관리하는 방법 및 그를 위한 장치들 KR102402625B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150094823A KR102402625B1 (ko) 2015-07-02 2015-07-02 데이터를 관리하는 방법 및 그를 위한 장치들
US15/010,738 US10198592B2 (en) 2015-07-02 2016-01-29 Method and system for communicating homomorphically encrypted data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150094823A KR102402625B1 (ko) 2015-07-02 2015-07-02 데이터를 관리하는 방법 및 그를 위한 장치들

Publications (2)

Publication Number Publication Date
KR20170004456A true KR20170004456A (ko) 2017-01-11
KR102402625B1 KR102402625B1 (ko) 2022-05-27

Family

ID=57684244

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150094823A KR102402625B1 (ko) 2015-07-02 2015-07-02 데이터를 관리하는 방법 및 그를 위한 장치들

Country Status (2)

Country Link
US (1) US10198592B2 (ko)
KR (1) KR102402625B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11316657B2 (en) 2018-04-06 2022-04-26 Crypto Lab Inc. User device and electronic device for sharing data based on block chain and homomorphic encryption technology and methods thereof

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9961516B1 (en) * 2016-12-27 2018-05-01 Motorola Solutions, Inc. System and method for obtaining supplemental information in group communication using artificial intelligence
US11593668B2 (en) 2016-12-27 2023-02-28 Motorola Solutions, Inc. System and method for varying verbosity of response in a group communication using artificial intelligence
US10051442B2 (en) * 2016-12-27 2018-08-14 Motorola Solutions, Inc. System and method for determining timing of response in a group communication using artificial intelligence
US20190149959A1 (en) 2017-11-16 2019-05-16 Motorola Solutions, Inc Method for controlling a virtual talk group memeber to perform an assignment
JP6730740B2 (ja) * 2017-12-25 2020-07-29 株式会社アクセル 処理装置、処理方法、処理プログラム、及び暗号処理システム
JP6730741B2 (ja) * 2017-12-26 2020-07-29 株式会社アクセル 処理装置、処理方法、処理プログラム、及び暗号処理システム
WO2020116807A1 (ko) * 2018-12-07 2020-06-11 주식회사 크립토랩 암호문에 대한 비다항식 연산을 수행하는 장치 및 방법
FR3090618B1 (fr) 2018-12-20 2021-01-22 Ifp Energies Now Procédé de traitement d’eau de production issue de la récupération assistée de pétrole par hydrocyclone en présence d’additifs de type sels de tetrakis(hydroxymethyl)phosphonium
US10641619B1 (en) * 2019-03-23 2020-05-05 Chengdu Qinchuan Technology Development Co., Ltd. Gas meter query method based on compound internet of things (IoT) and IoT system
US11991283B2 (en) * 2019-06-05 2024-05-21 Nitromia Ltd. Accelerated execution of applications with fully homomorphically encrypted input data
US11782893B2 (en) * 2021-12-15 2023-10-10 WizRocket Inc. Method and system for performing unification of data of users across multiple communication devices in a sharded environment
US11650981B1 (en) * 2021-12-15 2023-05-16 WizRocket Inc. Method and system for reducing scan-time for single user query

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080104171A (ko) * 2006-03-16 2008-12-01 브리티쉬 텔리커뮤니케이션즈 파블릭 리미티드 캄퍼니 통신 장치의 인증 방법 및 장치
US20100146299A1 (en) * 2008-10-29 2010-06-10 Ashwin Swaminathan System and method for confidentiality-preserving rank-ordered search

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8862895B2 (en) 2010-04-27 2014-10-14 Fuji Xerox Co., Ltd. Systems and methods for communication, storage, retrieval, and computation of simple statistics and logical operations on encrypted data
US8930691B2 (en) 2011-08-16 2015-01-06 Microsoft Corporation Dynamic symmetric searchable encryption
KR101398216B1 (ko) 2012-10-19 2014-05-22 숭실대학교산학협력단 검색 가능한 암호화 방법 및 암호화된 데이터 검색방법
US9729312B2 (en) * 2015-04-28 2017-08-08 The United States Of America As Represented By The Secretary Of The Navy System and method for high-assurance data storage and processing based on homomorphic encryption

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080104171A (ko) * 2006-03-16 2008-12-01 브리티쉬 텔리커뮤니케이션즈 파블릭 리미티드 캄퍼니 통신 장치의 인증 방법 및 장치
US20100146299A1 (en) * 2008-10-29 2010-06-10 Ashwin Swaminathan System and method for confidentiality-preserving rank-ordered search

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11316657B2 (en) 2018-04-06 2022-04-26 Crypto Lab Inc. User device and electronic device for sharing data based on block chain and homomorphic encryption technology and methods thereof

Also Published As

Publication number Publication date
US20170004324A1 (en) 2017-01-05
KR102402625B1 (ko) 2022-05-27
US10198592B2 (en) 2019-02-05

Similar Documents

Publication Publication Date Title
KR102402625B1 (ko) 데이터를 관리하는 방법 및 그를 위한 장치들
KR102598613B1 (ko) 개인 인증 및 차량 인증 기반으로 차량 정보를 제공하는 시스템 및 방법
US10187359B2 (en) Secure message transmission apparatus and processing method thereof
US11509709B1 (en) Providing access to encrypted insights using anonymous insight records
KR20180089682A (ko) 블록체인 기반의 데이터의 무결성을 검증하는 전자 장치 및 방법
KR102449816B1 (ko) 암호화 및 검색 장치 및 그 방법
KR20160046559A (ko) 보안 연결 장치 및 방법
US10038674B2 (en) Secure mobile data sharing
JP2018519682A (ja) ウェアラブル装置との安全な通信
WO2016115889A1 (zh) 一种对信息进行加密控制、解析信息的方法、系统和终端
KR20160056591A (ko) 질의를 처리하는 장치 및 방법
KR20160010237A (ko) 심 운용 방법 및 이를 지원하는 전자 장치
KR102370842B1 (ko) 컨텐츠를 암호화하기 위한 전자 장치 및 방법
JP7302600B2 (ja) 情報処理システムおよび情報処理方法
US9614673B2 (en) Method of managing keys and electronic device adapted to the same
CN107683481A (zh) 使用延迟求值计算加密数据
KR20160057101A (ko) 이미지 데이터의 보안 방법 및 이를 지원하는 전자 장치
KR20150104838A (ko) 근접 통신 방법 및 장치
KR20150099628A (ko) 관심정보에 따른 컨텐츠 추천장치 및 방법
KR20160063793A (ko) 전자 장치 및 전자 장치에서의 정보 송신 및 수신 방법
KR20150126232A (ko) 암호화 데이터 결정 방법 및 이를 제공하는 호스트 장치
KR20170071116A (ko) 서버, 전자 장치 및 전자 장치에서 이미지를 처리하는 방법
KR20160026313A (ko) 데이터 암호화 또는 복호화를 위한 장치 및 방법
JP2020068486A (ja) データ通信システム
KR102317471B1 (ko) 프로그램이 악성 코드를 포함하는지 판단하는 전자 장치 및 그 제어 방법

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant