KR20210049378A - 암호화 장치 및 방법 - Google Patents

암호화 장치 및 방법 Download PDF

Info

Publication number
KR20210049378A
KR20210049378A KR1020190133612A KR20190133612A KR20210049378A KR 20210049378 A KR20210049378 A KR 20210049378A KR 1020190133612 A KR1020190133612 A KR 1020190133612A KR 20190133612 A KR20190133612 A KR 20190133612A KR 20210049378 A KR20210049378 A KR 20210049378A
Authority
KR
South Korea
Prior art keywords
data
encryption
encrypted
data set
original
Prior art date
Application number
KR1020190133612A
Other languages
English (en)
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 KR1020190133612A priority Critical patent/KR20210049378A/ko
Priority to US16/666,098 priority patent/US11438136B2/en
Publication of KR20210049378A publication Critical patent/KR20210049378A/ko

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
    • 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/602Providing cryptographic facilities or services
    • 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/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Medical Informatics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computational Linguistics (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

암호화 장치 및 방법이 개시된다. 본 발명의 일 실시예에 따른 암호화 장치는 원본 데이터 셋에 대한 분석을 위해 상기 원본 데이터 셋에 포함된 각 데이터에 적용될 연산이 기 설정된 연산인지 여부 및 상기 각 데이터가 민감 정보에 해당하는지 여부 중 적어도 하나에 기초하여, 상기 각 데이터를 암호화 대상 데이터 및 비 암호화 대상 데이터 중 하나로 분류하는 분류부; 및 동형 암호(homomorphic encryption) 알고리즘을 이용하여 상기 원본 데이터 셋에 포함된 데이터 중 상기 암호화 대상 데이터를 암호화하는 암호화부를 포함한다.

Description

암호화 장치 및 방법{APPARATUS AND METHOD FOR ENCRYPTION}
본 발명의 실시예들은 암호화 기술과 관련된다.
종래 동형암호를 이용한 데이터 프라이버시 보호 분석은 모든 데이터를 동형암호로 암호화하여 처리하고 있다. 암호문의 경우 일반 데이터에 비해 많게는 수 천 배 이상으로 데이터 크기가 커지기 때문에 암호화할 필요가 없는 데이터까지 암호화하여 처리하게 되면 계산 비용이 늘어나게 된다. 이를 개선하기 위해 일반적으로 동형암호는 여러 개의 데이터를 하나의 암호문으로 암호화하게 되는데, 이때 암호화된 전체 데이터에 같은 연산을 한 번에 처리 (SIMD, Single Instruction Multiple Data) 하는 한계가 있다.
미국 등록특허 US 9,252,942 (2016.02.02. 등록)
본 발명의 실시예들은 암호화 장치 및 방법을 제공하기 위한 것이다
본 발명의 일 실시예에 따른 암호화 장치는 원본 데이터 셋에 대한 분석을 위해 상기 원본 데이터 셋에 포함된 각 데이터에 적용될 연산이 기 설정된 연산인지 여부 및 상기 각 데이터가 민감 정보에 해당하는지 여부 중 적어도 하나에 기초하여, 상기 각 데이터를 암호화 대상 데이터 및 비 암호화 대상 데이터 중 하나로 분류하는 분류부; 및 동형 암호(homomorphic encryption) 알고리즘을 이용하여 상기 원본 데이터 셋에 포함된 데이터 중 상기 암호화 대상 데이터를 암호화하는 암호화부를 포함한다.
상기 분류부는, 상기 원본 데이터 셋에 포함된 데이터 중 상기 민감 정보에 해당하는 데이터를 상기 암호화 대상 데이터로 분류할 수 있다.
상기 분류부는, 상기 원본 데이터 셋에 포함된 데이터 중 상기 기 설정된 연산이 적용될 데이터를 상기 암호화 대상 데이터로 분류할 수 있다.
상기 분류부는, 상기 원본 데이터 셋에 포함된 데이터 중 상기 민감 정보에 해당하거나 상기 기 설정된 연산이 적용될 데이터를 상기 암호화 대상 데이터로 분류할 수 있다.
상기 암호화 장치는, 상기 원본 데이터 셋에 포함된 데이터 중 상기 동형 암호 알고리즘을 이용하여 암호화된 데이터 및 상기 비 암호화 대상 데이터로 분류된 데이터를 포함하는 분석 대상 데이터 셋을 외부 장치로 제공하고, 상기 외부 장치로부터 상기 분석 대상 데이터 셋에 포함된 데이터 중 적어도 하나를 이용한 동형 연산을 통해 생성된 암호문을 수신하는 분석 요청부; 및 상기 수신된 암호문을 상기 동형 암호 알고리즘을 이용하여 복호화하는 복호화부를 더 포함할 수 있다.
상기 암호문은, 상기 분석 대상 데이터 셋에 포함된 데이터 중 암호화된 데이터를 이용한 동형 연산 및 상기 분석 대상 데이터 셋에 포함된 데이터 중 암호화된 데이터와 암호화되지 않은 데이터를 이용한 동형 연산 중 적어도 하나를 이용하여 생성될 수 있다.
일 실시예에 따른 암호화 방법은, 원본 데이터 셋에 대한 분석을 위해 상기 원본 데이터 셋에 포함된 각 데이터에 적용될 연산이 기 설정된 연산인지 여부 및 상기 각 데이터가 민감 정보에 해당하는지 여부 중 적어도 하나에 기초하여, 상기 각 데이터를 암호화 대상 데이터 및 비 암호화 대상 데이터 중 하나로 분류하는 단계; 및 동형 암호(homomorphic encryption) 알고리즘을 이용하여 상기 원본 데이터 셋에 포함된 데이터 중 상기 암호화 대상 데이터를 암호화하는 단계를 포함한다.
상기 분류하는 단계는, 상기 원본 데이터 셋에 포함된 데이터 중 상기 민감 정보에 해당하는 데이터를 상기 암호화 대상 데이터로 분류할 수 있다.
상기 분류하는 단계는, 상기 원본 데이터 셋에 포함된 데이터 중 상기 기 설정된 연산이 적용될 데이터를 상기 암호화 대상 데이터로 분류할 수 있다.
상기 분류하는 단계는, 상기 원본 데이터 셋에 포함된 데이터 중 상기 민감 정보에 해당하거나 상기 기 설정된 연산이 적용될 데이터를 상기 암호화 대상 데이터로 분류할 수 있다.
상기 암호화 방법은, 상기 원본 데이터 셋에 포함된 데이터 중 상기 동형 암호 알고리즘을 이용하여 암호화된 데이터 및 상기 비 암호화 대상 데이터로 분류된 데이터를 포함하는 분석 대상 데이터 셋을 외부 장치로 제공하는 단계; 상기 외부 장치로부터 상기 분석 대상 데이터 셋에 포함된 데이터 중 적어도 하나를 이용한 동형 연산을 통해 생성된 암호문을 수신하는 단계; 및 상기 수신된 암호문을 상기 동형 암호 알고리즘을 이용하여 복호화하는 단계를 더 포함할 수 있다.
상기 암호문은, 상기 분석 대상 데이터 셋에 포함된 데이터 중 암호화된 데이터를 이용한 동형 연산 및 상기 분석 대상 데이터 셋에 포함된 데이터 중 암호화된 데이터와 암호화되지 않은 데이터를 이용한 동형 연산 중 적어도 하나를 이용하여 생성될 수 있다.
본 발명의 실시예들에 따르면, 데이터 셋에 포함된 데이터 중 일부 대해서만 동형 암호 알고리즘을 이용한 암호화를 수행하고, 암호화된 데이터와 암호화되지 않은 데이터를 분석에 이용함으로써, 민감한 데이터에 대한 기밀성을 유지하면서 분석에 필요한 데이터 전송량과 분석에 필요한 연산 시간 및 비용을 감소시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 암호화 장치의 구성도
도 2는 원본 데이터 셋의 일 예를 나타낸 예시도
도 3은 추가적인 실시예에 따른 암호화 장치의 구성도
도 4는 일 실시예에 따른 암호화 방법의 순서도
도 5는 추가적인 실시예에 따른 암호화 방법의 순서도
도 6은 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
도 1은 본 발명의 일 실시예에 따른 암호화 장치의 구성도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 암호화 장치(100)는 분류부(110) 및 암호화부(120)를 포함한다.
분류부(110)는 원본 데이터 셋에 대한 분석을 위해 원본 데이터 셋에 포함된 각 데이터에 적용될 연산이 기 설정된 연산인지 여부 및 원본 데이터 셋에 포함된 각 데이터가 민감 정보에 해당하는지 여부 중 적어도 하나에 기초하여 원본 데이터 셋에 포함된 각 데이터를 암호화 대상 데이터 및 비 암호화 대상 데이터 중 하나로 분류한다.
이때, 원본 데이터 셋은 암호화되지 않은 데이터의 집합을 의미하며, 원본 데이터 셋에 포함된 각 데이터는 반드시 특정한 종류나 특정한 형태의 데이터로 한정되는 것은 아니다.
한편, 민감 정보는 예를 들어, 이름, 나이, 계좌 비밀번호, 계좌 번호 등과 같이 법률 상 허가되지 않은 제3자에 대한 공개가 금지되거나, 개인의 프라이버시 보호, 보안 상의 필요성 등에 따라 비공개가 요구되는 각종 정보를 의미할 수 있다.
일 실시예에서, 분류부(110)는 원본 데이터 셋에 포함된 각 데이터에 사전 할당된 카테고리에 기초하여 민감 정보에 해당하는 데이터를 결정할 수 있다. 예를 들어, 원본 데이터 셋이 도 2에 도시된 예와 같이 각각 '이름', 'ID', '대출일자', '대출금액' 및 '대출지점' 중 하나의 카테고리에 해당하는 데이터들을 포함하고, '이름' 및 'ID'가 사용자에 의해 민감 정보로 사전 지정된 카테고리인 것으로 가정하면, 분류부(110)는 원본 데이터 셋(200)에 포함된 데이터 중 '이름' 및 'ID' 에 속하는 데이터(210)를 민감 정보에 해당하는 데이터로 판단할 수 있다.
다른 실시예에 따르면, 분류부(110)는 머신 러닝(machine learning)을 통해 민감 정보에 속하는 데이터를 분류하도록 사전 학습된 분류 모델을 이용하여 원본 데이터 셋에 포함된 각 데이터가 민감 정보에 해당하는지 여부를 판단할 수 있다.
한편, 민감 정보에 해당하는 데이터를 판단하는 방식은 실시예에 따라 상술한 예 외에도 다양한 방식으로 수행될 수 있으며, 반드시 특정한 방식으로 한정되는 것은 아니다.
한편, 일 실시예에 따르면, '기 설정된 연산'은 효율적인 동형 연산이 가능한 연산일 수 있다. 이때, 특정 연산에 대한 동형 연산은 암호화된 데이터를 복호화하지 않고 암호화된 상태로 연산하여, 해당 암호화된 데이터의 평문 데이터에 대해 특정 연산을 수행한 결과에 대한 암호문을 생성할 수 있는 연산을 의미한다.
구체적인 예로, '기 설정된 연산'은 덧셈 연산, 곱셈 연산, 뺄셈 연산 및 이들 중 하나 이상의 조합으로 구성된 다항식 연산 등과 같이 동형 연산을 위해 지나치게 많은 시간이나 컴퓨팅 자원을 요구하지 않는 연산일 수 있다.
한편, '기 설정된 연산'은 동형 연산이 수행될 환경에서 가용한 컴퓨팅 자원, 암호화를 위해 이용된 동형 암호 알고리즘 등을 고려하여 사용자에 의해 미리 설정될 수 있다.
한편, 일 실시예에 따르면, 분류부(110)는 원본 데이터 셋에 포함된 데이터 중 민감 정보에 해당하는 데이터를 암호화 대상 데이터로 분류하고, 나머지 데이터를 비 암호화 대상 데이터로 분류할 수 있다.
다른 실시예에 따르면, 분류부(110)는 원본 데이터 셋에 포함된 데이터 중 기 설정된 연산이 적용될 데이터를 암호화 대상 데이터로 분류하고, 나머지 데이터를 비 암호화 대상 데이터로 분류할 수 있다.
또 다른 실시예에 따르면, 분류부(110)는 원본 데이터 셋에 포함된 데이터 중 민감 정보에 해당하거나 기 설정된 연산이 적용될 데이터를 암호화 대상 데이터로 분류하고, 나머지 데이터를 비 암호화 대상 데이터로 분류할 수 있다.
구체적인 예로, 도 2에 도시된 원본 데이터 셋(200)에 대해 수행될 분석이 '2017년에 대출받은 사용자의 대출금 잔액 계산'이고, '이름' 및 'ID' 카테고리에 속하는 데이터(210)가 민감 정보에 해당하는 데이터이며, 덧셈, 뺄셈 및 곱셈이 기 설정된 연산인 것으로 가정하자.
이 경우, 분석을 위해 원본 데이터 셋(200)에 포함된 데이터 중 '대출일자' 카테고리에 속하는 각 데이터 A에 대해 아래의 수학식 1에 따른 비교 연산이 수행되어야 하며, '대출금액' 카테고리에 속하는 각 데이터 X와 '상환금액' 카테고리에 속하는 각 데이터 Y에 대해 아래의 수학식 2에 따른 뺄셈 연산이 수행되어야 한다.
[수학식 1]
20170101≤A≤20171231
[수학식 2]
대출금 잔액=X-Y
이때, 분류부(110)는 예를 들어, 민감 정보에 해당하는 데이터(210)를 암호화 대상 데이터로 분류하고, 나머지 데이터를 비 암호화 대상 데이터로 분류할 수 있다.
다른 예로, 분류부(110)는 기 설정된 연산 중 하나인 뺄셈이 적용될 데이터(220)를 암호화 대상 데이터로 분류하고, 나머지 데이터를 비 암호화 대상 데이터로 분류할 수 있다.
또 다른 예로, 분류부(110)는 민감 정보에 해당하는 데이터(210) 및 기 설정된 연산이 적용될 데이터(220)를 암호화 대상 데이터로 분류하고, 나머지 데이터를 비 암호화 대상 데이터로 분류할 수 있다.
다시 도 1을 참조하면, 암호화부(120)는 동형 암호(homomorphic encryption)알고리즘을 이용하여 원본 데이터 셋에 포함된 데이터 중 암호화 대상 데이터로 분류된 데이터를 암호화한다.
이때, 일 실시예에 따르면, 암호화를 위한 동형 암호 알고리즘으로서, 암호화된 데이터 사이의 동형 연산 및 암호화된 데이터와 암호화되지 않은 데이터 사이의 동형 연산을 지원하는 다양한 형태의 동형 암호 알고리즘이 이용될 수 있으며 반드시 특정한 동형 암호 알고리즘으로 한정되는 것은 아니다.
도 3은 추가적인 실시예에 따른 암호화 장치의 구성도이다.
도 3을 참조하면, 추가적인 실시에에 따른 암호화 장치(300)는 분류부(310), 암호화부(320), 분석 요청부(330) 및 복호화부(340)를 포함한다.
도 3에 도시된 예에서, 분류부(310) 및 암호화부(320)는 도 1에 도시된 분류부(110) 및 암호화부(120)와 동일한 구성이므로, 이에 대한 중복적인 설명은 생략한다.
분석 요청부(330)는 암호화부(320)에 의해 암호화된 데이터 및 원본 데이터 셋에 포함된 데이터 중 비 암호화 대상 데이터로 분류된 데이터를 포함하는 분석 대상 데이터 셋을 외부 장치(미도시)로 제공하고, 외부 장치로부터 분석 대상 데이터 셋에 포함된 데이터 중 적어도 하나를 이용한 동형 연산을 통해 생성된 암호문을 수신한다.
이때, 외부 장치는 예를 들어, 데이터 분석 서비스를 제공하는 외부 업체에 의해 운영되는 장치일 수 있으나, 외부 장치의 운영 주체는 실시예에 따라 상이할 수 있다.
한편, 일 실시예에 따르면, 외부 장치에 의해 수행되는 동형 연산은 분석 대상 데이터 셋에 포함된 데이터 중 암호화된 데이터를 이용한 동형 연산 및 분석 대상 데이터 셋에 포함된 데이터 중 암호화된 데이터 및 암호화되지 않은 데이터를 이용한 동형 연산 중 적어도 하나를 포함할 수 있다.
복호화부(340)는 외부 장치로부터 암호문이 수신된 경우, 동형 암호 알고리즘을 이용하여 수신된 암호문을 복호화한다.
이하에서는 상술한 실시예들에서 적용될 수 있는 예시적인 동형 암호 알고리즘에 대해 설명한다. 구체적으로, 예시적인 동형 암호 알고리즘은, 아래와 같은 키 생성 알고리즘, 암호화 알고리즘, 복호화 알고리즘 및 동형 연산 알고리즘으로 구성될 수 있다.
키 생성 알고리즘
암호화를 위한 메시지 공간이 다항식환(polynomial ring) R=Z[X[/(XN+1)으로 정의되고, 메시지에 대한 암호문 공간이 정수 q에 대해 상환(quotient ring) Rq:=R/qR로 정의될 때, 예시적인 키 생성 알고리즘은 R의 원소 a, b 및 e를 선택하여, 비밀키 sk=(1, s)∈R2, 공개키 pk=(b, a):=(-as+e, a)∈Rq 2 및 연산키(evaluation key) evk=(b', a'):=(-a's+e'+Ps2, a')∈RPq 2(이때, a'는 RPq의 임의의 원소, P는 충분히 큰 정수)를 생성한다.
이때, s는 크기가 작은 원소이며, e는 높은 확률로 크기가 작은 원소일 수 있다. 한편, R의 원소 r의 크기가 작다는 것은 R 상의 크기를 재는 놈(norm) |r|이 미리 정한 경계(bound) B보다 작다는 것을 의미한다.
한편, 일 실시예에서, 키 생성 알고리즘은 예를 들어, 별도의 신뢰기관에 의해 수행될 수 있다.
암호화 알고리즘 및 복호화 알고리즘
암호화 알고리즘은 v, e0 및 e1(이때, v는 R의 원소로서 크기가 작은 임의의 값, e0 및 e1은 각각 R의 원소로서 높은 확률로 크기가 매우 작은 임의의 노이즈 값)을 선택한 후, v, e0, e1 및 공개키 pk를 이용하여 아래의 수학식 1과 같이 크기가 작은 메시지 m∈R에 대한 암호문 c를 생성한다.
[수학식 1]
c=(c0, c1)=v(b, a)+(m+e0, e1)∈Rq 2
이때, 메시지 m은 아래의 수학식 2와 같이 암호화 대상인 데이터 A=(a1, a2,..., an)을 하나의 다항식으로 인코딩하여 생성될 수 있다.
[수학식 2]
Ecd(A) → m(X)
이때, 다항식 m(X)의 차수는 n의 상수배일 수 있다.
한편, 복호화 알고리즘은 암호문 c으로부터 메시지 m을 복호화하기 위해 아래의 수학식 3과 같이 암호문 c와 비밀키 sk 사이의 내적(dot product)을 계산할 수 있다.
[수학식 3]
Dec(sk, c) → <c, sk>:=c0+c1s∈Rq
이때, c0+c1s=m+e∈Rq가 성립하며, e가 메시지 m에 비해 충분히 작다면 m+e를 m의 근사값으로 생각할 수 있다.
한편, 데이터 A는 복호화 알고리즘을 통해 복호화된 메시지 m은 아래의 수학식 4와 같이 디코딩함으로써 복원될 수 있다.
[수학식 4]
Dcd(m(X)) → A=(a1, a2,..., an)
한편, 일 실시예에서, 암호화 알고리즘 및 복호화 알고리즘은 상술한 암호화 장치(100, 300)와 같이 신뢰기관으로부터 비밀키 sk 및 공개키 pk를 제공받은 장치에 의해 수행될 수 있다.
동형 연산 알고리즘
동형 연산 알고리즘은 동형 연산을 수행하기 위한 것으로, 메시지 m의 암호문 c와 메시지 m'의 암호문 c'를 암호화된 상태로 연산하여 m+m'에 대한 암호문 c+을 생성하는 동형 덧셈 연산 및 메시지 m의 암호문 c와 메시지 m'의 암호문 c'를 암호화된 상태로 연산하여 m·m'에 대한 암호문 c*를 생성하는 동형 곱셈 연산을 수행할 수 있다.
또한, 동형 연산 알고리즘은 상술한 동형 덧셈과 동형 곱셈을 이용하여 덧셈과 곱셈의 조합으로 표현되는 다항식에 대한 동형 연산을 수행할 수 있다.
한편, 동형 연산 알고리즘은 암호화된 데이터와 암호화되지 않은 데이터 사이의 동형 연산을 지원할 수 있다.
구체적으로, 상술한 수학식 1 및 2에 따라 데이터 A=(a1, a2,..., an)를 암호화한 암호문 c와 암호화되지 않은 데이터 B=(b1, b2,..., bn) 사이의 연산은 다음과 같이 수행될 수 있다.
우선, 동형 연산 알고리즘은 아래의 수학식 5와 같이 데이터 B를 인코딩하여 메시지 m'를 생성할 수 있다.
[수학식 5]
Ecd(B) → m'(X)
이후, 동형 연산 알고리즘은 아래의 수학식 6 및 7과 같이 c와 m' 사이의 연산을 통해 A+B에 대한 암호문 cA+B 및 A×B에 대한 암호문 cA×B 을 생성할 수 있다.
[수학식 6]
cA+B:=c+(m', 0)=v(b, a)+(m, 0)+(m', 0)
[수학식 7]
cA×B:=c·m'=vm'(b, a)+m'(m, 0)
한편, 일 실시예에서, 동형 연산 알고리즘은 암호화 장치(100, 300)로부터 분석 대상 데이터 셋을 제공받은 외부 장치에 의해 수행될 수 있다.
한편, 암복호화 장치(100, 300)가 외부 장치로부터 cA+B 및 cA×B 각각을 수신한 경우, 암복호화 장치(100, 300)는 복호화 알고리즘을 이용하여 아래의 수학식 8 및 9와 같이 m+m' 및 m·m'을 생성할 수 있으며, 이를 디코딩하여 A+B와 A×B을 획득할 수 있다.
[수학식 8]
Dec(sk, cA+B) → <cA+B, sk>=<c, sk>+<(m', 0), sk>=(m+e)+m'
Figure pat00001
m+m'
[수학식 9]
Dec(sk, cA×B) → < cA×B, sk>=<m'·c, sk>=m'·<c, sk>=m'·(m+e)
Figure pat00002
m·m'
도 4는 일 실시예에 따른 암호화 방법의 순서도이다.
도 4에 도시된 방법은 예를 들어, 도 1에 도시된 암호화 장치(100)에 의해 수행될 수 있다.
도 4를 참조하면, 우선 암호화 장치(100)는 원본 데이터 셋에 대한 분석을 위해 상기 원본 데이터 셋에 포함된 각 데이터에 적용될 연산이 기 설정된 연산인지 여부 및 각 데이터가 민감 정보에 해당하는지 여부 중 적어도 하나에 기초하여, 원본 데이터 셋에 포함된 각 데이터를 암호화 대상 데이터 및 비 암호화 대상 데이터 중 하나로 분류한다(410).
이때, 일 실시예에 따르면, 암호화 장치(100)는 원본 데이터 셋에 포함된 데이터 중 민감 정보에 해당하는 데이터를 암호화 대상 데이터로 분류할 수 있다.
다른 실시예에 따르면, 암호화 장치(100)는 원본 데이터 셋에 포함된 데이터 중 기 설정된 연산이 적용될 데이터를 암호화 대상 데이터로 분류할 수 있다.
또 다른 실시예에 따르면, 암호화 장치(100)는 원본 데이터 셋에 포함된 데이터 중 민감 정보에 해당하거나 기 설정된 연산이 적용될 데이터를 암호화 대상 데이터로 분류할 수 있다.
이후, 암호화 장치(100)는 동형 암호 알고리즘을 이용하여 원본 데이터 셋에 포함된 데이터 중 암호화 대상으로 분류된 데이터를 암호화한다(420).
한편, 도 4에 도시된 순서도에서는 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.
도 5는 추가적인 실시예에 따른 암호화 방법의 순서도이다.
도 5에 도시된 방법은 예를 들어, 도 3에 도시된 암호화 장치(300)에 의해 수행될 수 있다.
도 5에서, 510 단계 및 520 단계는 도 4에 도시된 410 단계 및 420 단계와 동일하므로, 이에 대한 중복적인 설명은 생략한다.
도 5를 참조하면, 암호화 장치(300)는 520 단계에서 암호화된 데이터 및 원본 데이터 셋에 포함된 데이터 중 비 암호화 대상 데이터로 분류된 데이터(즉, 암호화되지 않은 데이터)를 포함하는 분석 대상 데이터 셋을 외부 장치로 전송한다(530).
이후, 암호화 장치(300)는 외부 장치로부터 분석 대상 데이터 셋에 포함된 데이터 중 적어도 하나를 이용한 동형 연산을 통해 생성된 암호문을 수신한다(540).
이후, 암호화 장치(300)는 수신된 암호문을 동형 암호 알고리즘을 이용하여 복호화한다(550).
한편, 도 5에 도시된 순서도에서는 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.
도 6은 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술되지 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.
도시된 컴퓨팅 환경(10)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 암호화 장치(100, 300)에 포함되는 하나 이상의 컴포넌트일 수 있다.
컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.
컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.
통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다.
컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(12)와 연결될 수도 있다.
이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 전술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
10: 컴퓨팅 환경
12: 컴퓨팅 장치
14: 프로세서
16: 컴퓨터 판독 가능 저장 매체
18: 통신 버스
20: 프로그램
22: 입출력 인터페이스
24: 입출력 장치
26: 네트워크 통신 인터페이스
100, 300: 암호화 장치
110, 310: 분류부
120, 320: 암호화부
330: 분석 요청부
340: 복호화부

Claims (12)

  1. 원본 데이터 셋에 대한 분석을 위해 상기 원본 데이터 셋에 포함된 각 데이터에 적용될 연산이 기 설정된 연산인지 여부 및 상기 각 데이터가 민감 정보에 해당하는지 여부 중 적어도 하나에 기초하여, 상기 각 데이터를 암호화 대상 데이터 및 비 암호화 대상 데이터 중 하나로 분류하는 분류부; 및
    동형 암호(homomorphic encryption) 알고리즘을 이용하여 상기 원본 데이터 셋에 포함된 데이터 중 상기 암호화 대상 데이터를 암호화하는 암호화부를 포함하는 암호화 장치.
  2. 청구항 1에 있어서,
    상기 분류부는, 상기 원본 데이터 셋에 포함된 데이터 중 상기 민감 정보에 해당하는 데이터를 상기 암호화 대상 데이터로 분류하는 암호화 장치.
  3. 청구항 1에 있어서,
    상기 분류부는, 상기 원본 데이터 셋에 포함된 데이터 중 상기 기 설정된 연산이 적용될 데이터를 상기 암호화 대상 데이터로 분류하는 장치.
  4. 청구항 1에 있어서,
    상기 분류부는, 상기 원본 데이터 셋에 포함된 데이터 중 상기 민감 정보에 해당하거나 상기 기 설정된 연산이 적용될 데이터를 상기 암호화 대상 데이터로 분류하는 암호화 장치.
  5. 청구항 1에 있어서,
    상기 원본 데이터 셋에 포함된 데이터 중 상기 동형 암호 알고리즘을 이용하여 암호화된 데이터 및 상기 비 암호화 대상 데이터로 분류된 데이터를 포함하는 분석 대상 데이터 셋을 외부 장치로 제공하고, 상기 외부 장치로부터 상기 분석 대상 데이터 셋에 포함된 데이터 중 적어도 하나를 이용한 동형 연산을 통해 생성된 암호문을 수신하는 분석 요청부; 및
    상기 수신된 암호문을 상기 동형 암호 알고리즘을 이용하여 복호화하는 복호화부를 더 포함하는 암호화 장치.
  6. 청구항 5에 있어서,
    상기 암호문은, 상기 분석 대상 데이터 셋에 포함된 데이터 중 암호화된 데이터를 이용한 동형 연산 및 상기 분석 대상 데이터 셋에 포함된 데이터 중 암호화된 데이터와 암호화되지 않은 데이터를 이용한 동형 연산 중 적어도 하나를 이용하여 생성되는 암호화 장치.
  7. 원본 데이터 셋에 대한 분석을 위해 상기 원본 데이터 셋에 포함된 각 데이터에 적용될 연산이 기 설정된 연산인지 여부 및 상기 각 데이터가 민감 정보에 해당하는지 여부 중 적어도 하나에 기초하여, 상기 각 데이터를 암호화 대상 데이터 및 비 암호화 대상 데이터 중 하나로 분류하는 단계; 및
    동형 암호(homomorphic encryption) 알고리즘을 이용하여 상기 원본 데이터 셋에 포함된 데이터 중 상기 암호화 대상 데이터를 암호화하는 단계를 포함하는 암호화 방법.
  8. 청구항 7에 있어서,
    상기 분류하는 단계는, 상기 원본 데이터 셋에 포함된 데이터 중 상기 민감 정보에 해당하는 데이터를 상기 암호화 대상 데이터로 분류하는 암호화 방법.
  9. 청구항 7에 있어서,
    상기 분류하는 단계는, 상기 원본 데이터 셋에 포함된 데이터 중 상기 기 설정된 연산이 적용될 데이터를 상기 암호화 대상 데이터로 분류하는 암호화 방법.
  10. 청구항 7에 있어서,
    상기 분류하는 단계는, 상기 원본 데이터 셋에 포함된 데이터 중 상기 민감 정보에 해당하거나 상기 기 설정된 연산이 적용될 데이터를 상기 암호화 대상 데이터로 분류하는 암호화 방법.
  11. 청구항 7에 있어서,
    상기 원본 데이터 셋에 포함된 데이터 중 상기 동형 암호 알고리즘을 이용하여 암호화된 데이터 및 상기 비 암호화 대상 데이터로 분류된 데이터를 포함하는 분석 대상 데이터 셋을 외부 장치로 제공하는 단계;
    상기 외부 장치로부터 상기 분석 대상 데이터 셋에 포함된 데이터 중 적어도 하나를 이용한 동형 연산을 통해 생성된 암호문을 수신하는 단계; 및
    상기 수신된 암호문을 상기 동형 암호 알고리즘을 이용하여 복호화하는 단계를 더 포함하는 암호화 방법.
  12. 청구항 11에 있어서,
    상기 암호문은, 상기 분석 대상 데이터 셋에 포함된 데이터 중 암호화된 데이터를 이용한 동형 연산 및 상기 분석 대상 데이터 셋에 포함된 데이터 중 암호화된 데이터와 암호화되지 않은 데이터를 이용한 동형 연산 중 적어도 하나를 이용하여 생성되는 암호화 방법.
KR1020190133612A 2019-10-25 2019-10-25 암호화 장치 및 방법 KR20210049378A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190133612A KR20210049378A (ko) 2019-10-25 2019-10-25 암호화 장치 및 방법
US16/666,098 US11438136B2 (en) 2019-10-25 2019-10-28 Encryption apparatus and method for encrypting encryption target data in data based on homomorphic encryption algorithm

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190133612A KR20210049378A (ko) 2019-10-25 2019-10-25 암호화 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20210049378A true KR20210049378A (ko) 2021-05-06

Family

ID=75586332

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190133612A KR20210049378A (ko) 2019-10-25 2019-10-25 암호화 장치 및 방법

Country Status (2)

Country Link
US (1) US11438136B2 (ko)
KR (1) KR20210049378A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9252942B2 (en) 2012-04-17 2016-02-02 Futurewei Technologies, Inc. Method and system for secure multiparty cloud computation

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060210071A1 (en) * 2005-03-16 2006-09-21 Chandran Gayathiri R Encryption of security-sensitive data

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9252942B2 (en) 2012-04-17 2016-02-02 Futurewei Technologies, Inc. Method and system for secure multiparty cloud computation

Also Published As

Publication number Publication date
US20210126768A1 (en) 2021-04-29
US11438136B2 (en) 2022-09-06

Similar Documents

Publication Publication Date Title
US20130028419A1 (en) System and a method for use in a symmetric key cryptographic communications
KR102143525B1 (ko) 교집합 연산을 지원하는 함수 암호를 위한 방법 및 이를 이용한 장치
JP6925686B1 (ja) 情報処理システム、情報処理装置、情報処理方法、および、情報処理プログラム
EP3644544A1 (en) Method for comparing ciphertext using homomorphic encryption and apparatus for executing thereof
US11251936B2 (en) System and method for performing homomorphic aggregation over encrypted data
CN114039785B (zh) 数据加密、解密、处理方法、装置、设备和存储介质
CN111555880A (zh) 数据碰撞方法、装置、存储介质及电子设备
KR102284877B1 (ko) 효율적인 교집합 연산을 위한 함수 암호 기술
KR102281265B1 (ko) 시간 제약을 지원하는 교집합 연산을 위한 함수 암호 기술
KR20210158824A (ko) 재현 데이터 생성 장치 및 방법
CN111953480B (zh) 密钥生成装置以及方法、运算密钥生成装置以及方法
KR20210049378A (ko) 암호화 장치 및 방법
KR102526114B1 (ko) 암호화 및 복호화를 위한 장치 및 방법
KR102192594B1 (ko) 신뢰기관이 없는 다중 클라이언트 환경의 순서 노출 암호화를 위한 장치 및 방법
EP3985540B1 (en) Method and apparatus for generating synthetic data
AbdElminaam et al. FHE-Chaos NHCP: Developing a Novel Secure Framework for Cloud Computing Environment
US11646877B2 (en) Apparatus and method for generating secret key, apparatus and method for generating evaluation key
WO2023193597A1 (en) Image encryption
US20230085577A1 (en) Secured performance of an elliptic curve cryptographic process
KR20210118717A (ko) 암호화된 데이터를 이용한 연산을 수행하기 위한 방법 및 장치
Singh et al. Security of Data with 3DES & Watermarking Algorithm
Antenor et al. LAF Chat: A Message Encrypting Application Utilizing RSA Algorithm for Android-Based Mobile Device
Hamza Homomorphic Encryption for AI-Based Applications: Challenges and Opportunities
KR20230048912A (ko) 분산화된 키 발급을 지원하는 교집합 연산을 위한 효율적인 함수 암호 기술
Christy Data Prevention Technique For Securing The Data

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal