KR20240070324A - 암호문을 처리하는 장치 및 방법 - Google Patents

암호문을 처리하는 장치 및 방법 Download PDF

Info

Publication number
KR20240070324A
KR20240070324A KR1020220152076A KR20220152076A KR20240070324A KR 20240070324 A KR20240070324 A KR 20240070324A KR 1020220152076 A KR1020220152076 A KR 1020220152076A KR 20220152076 A KR20220152076 A KR 20220152076A KR 20240070324 A KR20240070324 A KR 20240070324A
Authority
KR
South Korea
Prior art keywords
function
key
preset
electronic device
generating
Prior art date
Application number
KR1020220152076A
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 KR1020220152076A priority Critical patent/KR20240070324A/ko
Publication of KR20240070324A publication Critical patent/KR20240070324A/ko

Links

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/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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Storage Device Security (AREA)

Abstract

전자 장치가 개시된다. 본 전자 장치는 통신 장치, 보안 상수에 기초하여 생성된 공개키 파라미터 및 마스터 비밀키를 저장하는 메모리, 및 마스터 비밀키, 및 메시지에 대한 기설정된 연산을 수행하는 연산 함수를 이용하여, 연산 함수에 대한 함수키(functional key)를 생성하고, 생성된 함수키가 외부 장치에 전송하도록 통신 장치를 제어하는 프로세서를 포함하고, 프로세서는, 연산 함수의 복수의 원소의 곱을 기설정된 함수에 지수승하여 함수키를 생성한다.

Description

암호문을 처리하는 장치 및 방법{APPARATUS FOR PROCESSING HOMO ENCRYPTED MESSAGES AND METHOD FOR THEREOF}
본 개시는 암호문에 대한 연산을 수행하는 장치 및 방법에 관한 것으로, 구체적으로, 3차 다항식 연산을 지원하는 함수 암호를 생성하거나 이용할 수 있는 전자 장치 및 그 방법에 대한 것이다.
통신 기술이 발달하고, 전자 장치의 보급이 활발해짐에 따라, 전자 장치 간의 통신 보안을 유지하기 위한 노력이 지속적으로 이루어지고 있다. 이에 따라, 대부분의 통신 환경에서는 암호화/복호화 기술이 사용되고 있다.
암호화 기술에 의해 암호화된 메시지가 상대방에게 전달되면, 상대방은 메시지를 이용하기 위해서는 복호화를 수행하여야 한다. 이 경우, 상대방은 암호화된 데이터를 복호화하는 과정에서 자원 및 시간 낭비가 발생하게 된다. 또한, 상대방이 연산을 위해 일시적으로 메시지를 복호화한 상태에서 제3자의 해킹이 이루어지는 경우, 그 메시지가 제3자에게 손쉽게 유출될 수 있다는 문제점도 있었다.
이러한 문제점을 해결하기 위하여, 동형 암호화 방법 및 함수 암호 방법이 연구되고 있다. 동형 암호화 방법은 암호문 상태에서 여러 연산을 수행할 수 있다는 장점이 있지만, 연산 결과를 얻기 위해서는 해당 암호문에 대한 복호가 요구된다.
그러나 함수암호는 연산 결과가 평문 상태로 출력되기 때문에, 응용 환경의 특성 및 서비스 종류에서는 동형 암호문 방식보다 유리한 이점이 있다.
구체적으로, 함수 암호는 특정 함수에 대한 제한된 복호화 키를 제공하고, 함수에 대한 복호화 키와 데이터에 대한 암호문이 주어졌을 때, 복호화를 통해 연산의 결과를 출력하는 기술이다. 이러한 함수 암호는 데이터 전체를 노출하지 않으면서도 데이터 활용에 필요한 부분 정보만을 제공할 수 있다.
따라서 본 개시는 상술한 바와 같은 문제점을 해결하기 위한 고안된 것으로, 3차 다항식 연산을 지원하는 함수 암호를 생성하거나 이용할 수 있는 전자 장치 및 그 방법을 제공하는 데 있다.
본 개시는 이상과 같은 목적을 달성하기 위한 것으로, 본 개시의 일 실시 예에 따른 전자 장치는 통신 장치, 보안 상수에 기초하여 생성된 공개키 파라미터 및 마스터 비밀키를 저장하는 메모리, 및 상기 마스터 비밀키, 및 메시지에 대한 기설정된 연산을 수행하는 연산 함수를 이용하여, 상기 연산 함수에 대한 함수키(functional key)를 생성하고, 상기 생성된 함수키가 외부 장치에 전송하도록 상기 통신 장치를 제어하는 프로세서를 포함하고, 상기 프로세서는, 상기 연산 함수의 복수의 원소의 곱을 기설정된 함수에 지수승하여 상기 함수키를 생성한다.
이 경우, 상기 기설정된 함수는, 각 차수의 계수 값이 기설정된 값에 대한 지수 값으로 표현되며, 상기 계수 값이 적용된 2차 또는 3차 함수의 결과와 상기 기설정된 값들이 계수 값으로 적용된 2차 또는 3차 함수의 결과에 대해서 상기 지수 값들의 곱을 적용한 결과가 동일할 수 있다.
한편, 상기 프로세서는, 상기 복수의 원소 각각에 하나의 스케일링 값을 적용하고, 스케일링 값이 적용된 원소들의 곱을 상기 기설정된 함수에 지수승하여 함수키를 생성할 수 있다.
한편, 상기 프로세서는, 상기 연산 함수를 내적 연산을 지원하는 내적 함수 및 이차 함수로 분해하고, 분해된 내적 함수 및 이차 함수 각각에 대한 부분 함수 키를 생성하고, 상기 생성된 부분 함수키를 이용하여 상기 함수키를 생성할 수 있다.
이 경우, 상기 프로세서는, 상기 분해된 내적 함수 및 이차 함수 각각에 대해서 서로 다른 연산 방식을 이용하여 부분 함수 키를 생성할 수 있다.
한편, 상기 연산 함수는 내적 함수이고, 상기 프로세서는, 아래의 수학식을 이용하여 함수키를 생성할 수 있다.
여기서 sky는 함수 키, U는 상기 마스터 비밀키를 구성하는 샘플링 값, y 상기 연산 함수의 변수, D 는 상기 마스터 비밀키를 구성하는 분산 값이다.
한편, 상기 프로세서는, 확장된 매트릭스를 생성하고, 생성된 확장된 매트릭스를 포함하는 마스터 비밀키를 생성하여 상기 메모리에 저장할 수 있다.
한편, 상기 프로세서는,
Figure pat00002
를 만족하는 차수의 그룹과 이상 로그 문제에 대해서 상기 보안 상수에 대응되는 비트 보안을 갖는 생성기를 포함하는 공개키 파라미터를 생성할 수 있다.
한편, 상기 프로세서는, 상기 공개키 파라미터와 메시지를 이용하여 암호문을 생성할 수 있다.
이 경우, 상기 프로세서는, 상기 함수 암호의 복수의 원소 각각에 대해서 독립적인 복수의 벡터를 설정하고, 상기 복수의 벡터를 갖는 공개키 파라미터를 생성하고, 상기 복수의 원소 각각에 대응되는 암호화 데이터 및 상기 복수의 원소의 조합에 대응되는 암호화 데이터를 생성하여 암호문을 생성할 수 있다.
한편, 상기 암호문과 상기 함수키를 이용하여 상기 메시지가 상기 연산 함수를 수행한 결과에 대응되는 함수 결과를 생성할 수 있다.
한편, 본 개시의 일 실시 예에 따른 전자 장치에서의 암호화 방법은 보안 상수에 기초하여 생성된 공개키 파라미터 및 마스터 비밀키를 산출하는 단계, 상기 마스터 비밀키, 및 메시지에 대한 기설정된 연산을 수행하는 연산 함수를 이용하여, 상기 연산 함수에 대한 함수키(functional key)를 생성하는 단계, 및 상기 생성된 함수키를 외부 장치에 전송하는 단계를 포함하고, 상기 함수키를 생성하는 단계는, 상기 연산 함수의 복수의 원소의 곱을 기설정된 함수에 지수승하여 상기 함수키를 생성할 수 있다.
이 경우, 상기 기설정된 함수는, 각 차수의 계수 값이 기설정된 값에 대한 지수 값으로 표현되며, 상기 계수 값이 적용된 2차 또는 3차 함수의 결과와 상기 기설정된 값들이 계수 값으로 적용된 2차 또는 3차 함수의 결과에 대해서 상기 지수 값들의 곱을 적용한 결과가 동일할 수 있다.
한편, 상기 함수키를 생성하는 단계는, 상기 복수의 원소 각각에 하나의 스케일링 값을 적용하고, 스케일링 값이 적용된 원소들의 곱을 상기 기설정된 함수에 지수승하여 함수키를 생성할 수 있다.
한편, 본 개시의 일 실시 예에 따른 전자 장치에서의 암호화 방법을 수행하는 프로그램이 기록된 비일시적 컴퓨터 판독 가능 저장 매체에 있어서, 상기 암호화 방법은, 보안 상수에 기초하여 생성된 공개키 파라미터 및 마스터 비밀키를 산출하는 단계, 상기 마스터 비밀키, 및 메시지에 대한 기설정된 연산을 수행하는 연산 함수를 이용하여, 상기 연산 함수에 대한 함수키(functional key)를 생성하는 단계, 및 상기 생성된 함수키를 외부 장치에 전송하는 단계를 포함하고, 상기 함수키를 생성하는 단계는, 상기 연산 함수의 복수의 원소의 곱을 기설정된 함수에 지수승하여 상기 함수키를 생성한다.
도 1은 본 개시의 일 실시 예에 따는 네트워크 시스템의 구조를 설명하기 위한 도면,
도 2는 본 개시의 일 실시 예에 따른 전자 장치의 구성을 나타내는 블록도,
도 3은 본 개시의 일 일시 예에 따른 함수 암호의 알고리즘을 설명하기 위한 도면,
도 4는 본 개시의 일 실시 예에 따른 알고리즘을 설명하기 위한 도면,
도 5는 본 개시의 일 실시 예에 따른 암호화 방법을 설명하기 위한 흐름도,
도 6은 본 개시의 일 실시 예에 따른 복호화 방법을 설명하기 위한 흐름도이다.
이하에서는 첨부 도면을 참조하여 본 개시에 대해서 자세하게 설명한다. 본 개시에서 수행되는 정보(데이터) 전송 과정은 필요에 따라서 암호화/복호화가 적용될 수 있으며, 본 개시 및 특허청구범위에서 정보(데이터) 전송 과정을 설명하는 표현은 별도로 언급되지 않더라도 모두 암호화/복호화하는 경우도 포함하는 것으로 해석되어야 한다. 본 개시에서 "A로부터 B로 전송(전달)" 또는 "A가 B로부터 수신"과 같은 형태의 표현은 중간에 다른 매개체가 포함되어 전송(전달) 또는 수신되는 것도 포함하며, 반드시 A로부터 B까지 직접 전송(전달) 또는 수신되는 것만을 표현하는 것은 아니다.
본 개시의 설명에 있어서 각 단계의 순서는 선행 단계가 논리적 및 시간적으로 반드시 후행 단계에 앞서서 수행되어야 하는 경우가 아니라면 각 단계의 순서는 비제한적으로 이해되어야 한다. 즉, 위와 같은 예외적인 경우를 제외하고는 후행 단계로 설명된 과정이 선행단계로 설명된 과정보다 앞서서 수행되더라도 개시의 본질에는 영향이 없으며 권리범위 역시 단계의 순서에 관계없이 정의되어야 한다. 그리고 본 명세서에서 "A 또는 B"라고 기재한 것은 A와 B 중 어느 하나를 선택적으로 가리키는 것뿐만 아니라 A와 B 모두를 포함하는 것도 의미하는 것으로 정의된다. 또한, 본 개시에서 "포함"이라는 용어는 포함하는 것으로 나열된 요소 이외에 추가로 다른 구성요소를 더 포함하는 것도 포괄하는 의미를 가진다.
본 개시에서는 본 개시의 설명에 필요한 필수적인 구성요소만을 설명하며, 본 개시의 본질과 관계가 없는 구성요소는 언급하지 아니한다. 그리고 언급되는 구성요소만을 포함하는 배타적인 의미로 해석되어서는 안 되며 다른 구성요소도 포함할 수 있는 비배타적인 의미로 해석되어야 한다.
그리고 본 개시에서 "값"이라 함은 스칼라값뿐만 아니라 벡터도 포함하는 개념으로 정의된다. 그리고 본 개시에서 '산출한다', '계산한다' 등의 표현은 해당 산출 또는 계산의 결과물을 생성한다는 표현으로 대체될 수 있다. 또한, 별도의 언급이 없다면, 후술하는 암호문에 대한 연산은 동형 연산을 의미한다. 예를 들어, 동형 암호문에 대한 덧셈은 두 동형 암호문에 대한 동형 덧셈을 의미한다.
후술하는 본 개시의 각 단계의 수학적 연산 및 산출은 해당 연산 또는 산출을 하기 위해 공지되어 있는 코딩 방법 및/또는 본 개시에 적합하게 고안된 코딩에 의해서 컴퓨터 연산으로 구현될 수 있다.
이하에서 설명하는 구체적인 수학식은 가능한 여러 대안 중에서 예시적으로 설명되는 것이며, 본 개시의 권리 범위가 본 개시에 언급된 수학식에 제한되는 것으로 해석되어서는 아니된다.
설명의 편의를 위해서, 본 개시에서는 다음과 같이 표기를 정하기로 한다.
: 모든 정수의 세트
: 모든 양의 정수의 세트
s ← S: 분포(S)에 따라서 원소(s)를 선택함
s1, s2 ∈ R : S1, S2 : S1, S2 각각은 R 집합에 속하는 원소이다.
: 텐서 곱으로, , 인 경우에 로 계산될 수 있다.
도 1은 본 개시의 일 실시 예에 따는 네트워크 시스템의 구조를 설명하기 위한 도면이다.
도 1을 참조하면, 네트워크 시스템(1000)은 복수의 전자 장치(100, 20)를 포함할 수 있으며, 각 구성들은 네트워크를 통해 서로 연결될 수 있다.
네트워크는 다양한 형태의 유무선 통신 네트워크, 방송 통신 네트워크, 광통신 네트워크, 클라우드 네트워크 등으로 구현될 수 있으며, 각 장치들은 별도의 매개체 없이 와이파이, 블루투스, NFC(Near Field Communication) 등과 같은 방식으로 연결될 수도 있다.
도 1에서는 전자 장치가 복수 개(100, 20)인 것으로 도시하였으나, 반드시 복수 개의 전자 장치가 사용되어야 하는 것은 아니며 하나의 장치가 사용될 수도 있다. 일 예로, 전자 장치(100, 20)는 스마트폰, 태블릿, 게임 플레이어, PC, 랩톱 PC, 홈서버, 키오스크 등과 같은 다양한 형태의 장치로 구현될 수 있으며, 이밖에 IoT 기능이 적용된 가전 제품 형태로도 구현될 수 있다.
사용자는 자신이 사용하는 전자 장치(100, 20)를 통해서 다양한 정보를 입력할 수 있다. 입력된 정보는 전자 장치(100, 20) 자체에 저장될 수도 있지만, 저장 용량 및 보안 등을 이유로 외부 장치로 전송되어 저장될 수도 있다.
전자 장치(100)는 후술하는 함수 암호의 다양한 알고리즘 중 적어도 하나의 기능을 수행할 수 있다. 여기서 셋업 알고리즘, 키젠 알고리즘, 암호화 알고리즘, 복호화 알고리즘일 수 있다. 구체적으로, 전자 장치(100)는 상술한 4가지 알고리즘 중 하나만을 수행하는 장치일 수 있으며, 2개 이상의 동작을 수행하는 장치일 수 있다. 예를 들어, 도시된 예에서 전자 장치(100)는 셋업 알고리즘, 키젠 알고리즘, 암호화 알고리즘을 3가지 동작을 수행하는 장치일 수 있으며, 제2 전자 장치(20)는 는 복호화 동작만을 수행하는 장치일 수 있다.
여기서, 함수 암호는 암호문에 대한 연산을 수행하되, 연산 수행 결과가 바로 평문 상태로 출력되는 암호 방식이다. 구체적으로, 개인 정보의 보호 등을 이유로 암호문 상태로 연산이 필요하였으며, 이를 지원하는 암호화 방법에는 동형 암호화 방법과 함수 암호 방법이다.
동형 암호화 방법은 암호문 상태에서 다양한 연산을 수행할 수 있다는 점에서, 최근에 많은 분야에서 사용되고 있다. 그리나, 연산 결과를 이용하기 위해서는 암호문을 복호화하는 처리가 요구된다. 이에 반해, 함수 암호는 데이터 전체를 노출하지 않으면서도 데이터 활용에 필요한 부분 정보만을 제공할 수 있기 때문에, 안정한 데이터 활용이 가능하다.
예를 들어, 사용자의 지문 정보를 함수 암호 방식으로 이용하는 경우를 가정하여 설명한다. 사용자는 본인의 지문 정보를 클라우드 시스템(외부 시스템)에 암호화하여 저장할 수 있다. 동형 암호화 방식을 이용하는 경우, 암호화된 현재 수집된 지문 정보와 가 저장된 지문 정보를 비교하는 동형 연산을 수행하고, 그 결과를 비밀 키로 복원하여야 지문 정보의 비교를 수행할 수 있다.
반면에, 함수 암호 방식을 이용하는 경우, 지문 인증 서비스를 지원하는 시스템은 특정 사용자의 지문 정보를 이용하여 검증 동작을 수행할 수 있는 함수 암호를 만들 수 있다. 이와 같은 경우, 특정 사용자로부터 암호화된 지문 정보를 수신하면, 기생성된 함수 암호화 수신된 지문 정보를 이용하여 지문 인식 결과를 출력하는 것이 가능하다. 즉, 암호화된 데이터에 대한 처리 결과로서 평문 상태의 데이터가 출력된다는 점에서, 별도의 복호화 동작이 필요없는 장점이 있다.
다만, 함수 암호는 특정의 기능만을 수행할 수 있기 때문에, 동형 암호화 같은 다양한 연산을 지원하지 않지만, 상술한 경우와 같이 특정 서비스에 대해서는 평문 결과를 출력한다는 점에서, 오히려 유리한 장점이 있다.
또한, 암호화된 데이터는 사용자의 다양한 개인 정보를 저장하는 암호문일 수 있으며, 함수 키는 서로 다른 결과를 출력하는 함수일 수 있다. 예를 들어, 사용자가 서울에 사는 경우 1의 값을 출력하고, 서울 이외에 지역에 사는 경우 0을 출력하는 함수일 수 있다. 그리고 다른 함수 암호는 사용자의 나이가 30세 이상인 경우 1의 값을 출력하고, 30세 미만인 경우 0을 출력하는 함수일 수 있다. 이와 같이, 암호화된 데이터를 별도 가동하지 않고, 필요한 서비스에 대응되는 함수 키를 사용함으로써 보다 유용한 서비스를 제공하는 것이 가능하다.
이와 같은 함수 암호는 일반적으로 4가지 단계의 알고리즘으로 구성되며, 각 알고리즘은 셋업 알고리즘, 키젠 알고리즘, 암호화 알고리즘, 복호화 알고리즘이다. 이와 같은 알고리즘은 해당 함수 암호가 수행하고자 하는 기설정된 연산에 따라 변경될 수 있다. 구체적인 각 알고리즘의 동작에 대해서는 도 3을 참조하여 후술한다.
이와 같이 본 개시에 따른 네트워크 시스템은 다양한 기능을 수행할 수 있는 함수 암호를 생성하고, 생성된 함수 암호를 이용하여 암호화, 복호화 동작을 수행할 수 있다는 점에서, 다양한 분야에 적용될 수 있다.
한편, 이상에서는 함수 암호를 지문 인식과 같은 인증 동작에 적용되는 것만을 설명하였지만, 구현시에는 상술한 예시 말고 다양한 서비스 분야에 적용될 수 있다. 예를 들어, 함수의 연산 결과가 0(인증 실패) 또는 1(인증 성공)로 출력되는 패스워드 인증, 홍채 인증 등과 같은 서비스 분야뿐만 아니라, 암호문을 이용한 학습 모델에도 적용될 수 있다. 구체적으로, 최근에는 동형 암호문을 이용하여 학습 모델을 학습시키거나, 해당 학습 모델을 이용하는 기술이 이용되고 있는데, 동형 암호문을 이용하는 경우 부트스트래핑과 같은 많은 리소스가 요구되는 동작이 필요하나, 함수 암호 방식은 부트스트래핑과 같은 동작이 필요 없다는 점에서, 동형 암호문을 학습시키는 과정에서의 특정 연산 등에 적용될 수 있다.
한편, 도 1에서는 전자 장치(100)가 셋업 동작, 키젠 동작 및 암호화 동작을 모두 수행하는 것으로 도시하고 설명하였지만, 구현시에는 상술한 3가지 기능은 서로 다른 장치에서 수행할 수도 있다.
도 2는 본 개시의 일 실시 예에 따른 전자 장치의 구성을 나타내는 블록도이다.
도 2를 참조하면, 전자 장치(100)는 통신 장치(110), 메모리(120), 디스플레이(130), 조작 입력 장치(140) 및 프로세서(150)를 포함할 수 있다. 이러한 연산 장치는 PC(Personal computer), 노트북, 스마트폰, 태블릿, 서버 등 다양한 장치일 수 있다.
통신 장치(110)는 전자 장치(100)를 외부 장치(미도시)와 연결하기 위해 형성되고, 근거리 통신망(LAN: Local Area Network) 및 인터넷망을 통해 외부 장치에 접속되는 형태뿐만 아니라, USB(Universal Serial Bus) 포트 또는 무선 통신(예를 들어, WiFi 802.11a/b/g/n, NFC, Bluetooth) 포트를 통하여 접속되는 형태도 가능하다. 이러한 통신 장치(110)는 송수신부(transceiver)로 지칭될 수도 있다.
통신 장치(110)는 보안 상수 등을 수신하거나, 입력된 보안 상수에 따라 생성된 공개 파라미터(pp), 마스터 비밀키(msk)를 출력할 수 있다. 한편, 구현시에 상술한 보안 상수는 후술하는 조작 입력 장치(140)를 통하여 사용자로부터 직접 입력받을 수 있다.
그리고 통신 장치(110)는 다른 장치에서 생성한 공개 파라미터, 마스터 비밀 키를 수신하고, 그에 따라 생성한 함수 키를 출력할 수 있다.
그리고 통신 장치(110)는 다른 장치에서 생성한 함수 키를 수신할 수 있으며, 그에 따라 생성한 암호문을 출력할 수 있다. 여기서 함수 키는 특정 함수(f, 기설정된 연산 함수)에 대한 제한된 복호화 키이다.
또한, 통신 장치(110)는 다른 장치에서 생성한 암호문을 수신하고, 수신된 암호문에 대응되는 함수 결과를 출력할 수 있다. 이러한 함수 결과는 평문 상태로 출력될 수 있다.
메모리(120)는 전자 장치(100)를 구동하기 위한 O/S나 각종 소프트웨어, 데이터 등을 저장하기 위한 구성요소이다. 메모리(120)는 RAM이나 ROM, 플래시 메모리, HDD, 외장 메모리, 메모리 카드 등과 같은 다양한 형태로 구현될 수 있으며, 어느 하나로 한정되는 것은 아니다.
메모리(120)는 암호화할 메시지를 저장한다. 여기서 메시지는 사용자가 각종 인용한 각종 신용 정보, 개인 정보 등일 수 있으며, 전자 장치(100)에서 사용되는 위치 정보, 인터넷 사용 시간 정보 등 사용 이력 등과 관련된 정보일 수도 있다.
그리고 메모리(120)는 함수 암호와 관련된 복수의 알고리즘 중 해당 전자 장치(100)가 수행하는 암호화 알고리즘을 처리하는데 필요한 정보를 저장할 수 있다. 예를 들어, 전자 장치(100)가 함수 키를 생성하는 경우, 메모리(120)는 생성한 함수 키뿐만 아니라, 함수 키 생성 시에 필요한 마스터 비밀키, 연산 함수 등에 대한 정보를 저장할 수 있다.
디스플레이(130)는 전자 장치(100)가 지원하는 기능을 선택받기 위한 사용자 인터페이스 창을 표시한다. 구체적으로, 디스플레이(130)는 전자 장치(100)가 제공하는 각종 기능을 선택받기 위한 사용자 인터페이스 창을 표시할 수 있다. 이러한 디스플레이(130)는 LCD(liquid crystal display), OLED(Organic Light Emitting Diodes) 등과 같은 모니터일 수 있으며, 후술할 조작 입력 장치(140)의 기능을 동시에 수행할 수 있는 터치 스크린으로 구현될 수도 있다.
디스플레이(130)는 비밀키 및 공개키 생성에 필요한 파라미터의 입력을 요청하는 메시지를 표시할 수 있다. 그리고 디스플레이(130)는 암호화 대상이 메시지를 선택하는 메시지를 표시할 수 있다. 한편, 구현시에 암호화 대상은 사용자가 직접 선택할 수도 있고, 자동으로 선택될 수 있다. 즉, 암호화가 필요한 개인 정보 등은 사용자가 직접 메시지를 선택하지 않더라도 자동으로 설정될 수 있다.
조작 입력 장치(140)는 사용자로부터 전자 장치(100)의 기능 선택 및 해당 기능에 대한 제어 명령을 입력받을 수 있다. 구체적으로, 조작 입력 장치(140)는 보안 상수를 입력받을 수 있다. 또한, 조작 입력 장치(140)는 사용자로부터 암호화될 메시지를 설정받을 수 있다.
프로세서(150)는 전자 장치(100) 내의 각 구성을 제어한다. 이러한 프로세서(150)는 CPU(central processing unit), ASIC(application-specific integrated circuit)과 같은 단일 장치로 구성될 수 있으며, CPU, GPU(Graphics Processing Unit) 등의 복수의 장치로 구성될 수도 있다.
프로세서(150)는 전송하고자 하는 메시지가 입력되면 메모리(120)에 저장한다. 프로세서(150)는 메모리(120)에 저장된 각종 설정 값 및 프로그램을 이용하여, 공개 파라미터와 마스터 비밀키를 생성하는 동작, 함수 키를 생성하는 동작, 암호문을 생성하는 동작 및/또는 복호화 동작을 수행할 수 있다.
구체적으로, 셋업 동작을 수행하는 경우, 프로세서(150)는 수신되거나 입력된 보안 상수에 기초하여 공개키 파라미터, 마스터 비밀키를 생성할 수 있다. 이러한 마스터 비밀키는 확장된 매트릭스를 포함할 수 있다. 확장된 매트릭스는 이용할 함수의 분해 방식 등의 정보를 갖는 행렬이다. 마스터 비밀키는 상술한 확장된 매트릭스 이외에 다른 정보들을 포함할 수 있으며, 상술한 공개키 파라미터, 마스터 비밀키를 생성하는 방식 및 포함하는 정보 등은 이용하는 연산 함수의 차수(2차 다항식인지 또는 3차 다항식인지 따라 상이할 수 있다. 따라서 각 경우의 공개키 파라미터, 마스터 비밀키의 구성은 도 3에서 설명한다.
그리고 키젠 동작을 수행하는 경우, 프로세서(150)는 마스터 비밀 키, 메시지에 대한 기설정된 연산을 수행하는 연산 함수를 이용하여 함수키를 생성할 수 있다. 이러한 연산 함수는 2차 다항식, 내적 연산, 3차 다항식일 수 있다. 함수의 성격에 따라 각각 대응되는 방식을 이용하여 함수 키를 생성할 수 있다. 구체적인 생성 동작은 도 3에서 후술한다.
그리고 암호화 동작을 수행하는 경우, 프로세서(150)는 공개 파라미터와 메시지를 이용하여 암호문을 생성할 수 있다. 암호문의 생성 방식은 연산 함수의 종류, 차수 등에 따라 다를 수 있으며, 여러 경우에서의 구체적인 생성 방식은 도 3에서 설명한다.
그리고 복호화 동작을 수행하는 경우, 프로세서(150)는 공개 파라미터 함수키, 암호문을 이용하여 상술한 기설정된 연산에 대응되는 출력 값(y)을 생성할 수 있다. 한편, 이와 같이 복호화 동작은 암호문에 대응되는 평문을 생성하는 것이 아니라, 평문을 기설정된 연산에 반영한 결과(y)를 출력하는 것이라는 점에서, 일반적인 복호화 동작과는 구별될 수 있으며, 이하에서는 설명을 용이하게 하기 위하여 연산 결과를 출력하는 동작을 복호화 동작이라고 지칭한다.
한편, 상술한 설정 동작(또는 설정 알고리즘), 셋업 동작(또는 셋업 알고리즘), 암호화 동작(또는 암호화 알고리즘) 및 복호화 동작(또는 복호화 동작)은 수행하고자 하는 연산에 따라 각각의 동작의 상세는 달라질 수 있다. 다양한 조건별 세부 동작을 도 3을 참조하여 후술한다.
도 3은 본 개시의 일 일시 예에 따른 함수 암호의 알고리즘을 설명하기 위한 도면이다.
도 3을 참조하면, 함수 암호 알고리즘은 설정 알고리즘(310), 키 생성(또는 키젠) 알고리즘(320), 암호화 알고리즘(330), 복호화 알고리즘(340)을 포함할 수 있다. 상술할 각 알고리즘은 서로 다른 장치에서 수행될 수 있으며, 일부 동작은 하나의 장치에서 수행될 수 있다. 즉, 상술한 전자 장치(100)는 상술한 4개의 알고리즘 중 적어도 하나의 동작을 수행할 수 있다.
설정 알고리즘(310)은 공개 파라미터(pp)와 마스터비밀키(msk)를 출력한다. 구체적으로, 설정 알고리즘은 보안 상수(1λ)를 입력받고, 공개 파라미터와 마스터 비밀키를 생성하여 출력할 수 있다.
키 생성 알고리즘(320)은 함수키(skf)를 생성할 수 있다. 구체적으로, 키 생성 알고리즘은 설정 알고리즘(310)에서 생성된 마스터 비밀키(msk)를 입력받고, 기설정된 함수(f)를 입력받아 해당 함수(f)에 대한 함수키(skf)를 생성할 수 있다.
암호화 알고리즘(330) 메시지(x)를 암호화한다. 구체적으로, 암호화 알고리즘은 공개 파라미터(pp)와 메시지(x)를 입력받아. 메시지를 공개 파라미터로 암호화하여 암호문(ctx)을 생성할 수 있다.
복호화 알고리즘(340)은 암호문(ctx)과 함수 키(skf)를 이용하여 함수 결과(y)를 출력한다. 구체적으로, 복호화 알고리즘(340)은 공개 파라미터, 함수키, 암호문을 입력받고, 이에 따라 해당 암호문에 대한 특정 연산의 결과를 생성할 수 있다.
이와 같은 각 알고리즘은 크게 다중 선형 함수를 이용하는 방식과 다중 선형 함수를 이용하지 않는 방식으로 구분될 수 있다. 그리고 함수의 차수별로 2차 함수와 3차 함수로 구분될 수 있다. 이하에서는 예시로 2차 함수와 3차 함수의 경우에 대해서만 설명한다.
먼저, 다중 선형 함수를 이용하는 경우를 설명한다. 먼저, 다중 선형 함수란 임의의 정수(a1, ..., an)를 덧셈 순환군(G1 ,...Gn)의 원서들 g1, ... gn 곱셈 순환 군 GT가 주워졌을 때, 아래의 식을 만족하는 함수(e : G1 ×...× Gn → Gt)를 의미한다.
<수학식 1>
Figure pat00009
이하에서는 3차 다중 선형 함수(Mmap)를 가정하는 3차 다항식에 대한 함수 암호화를 설명한다.
먼저, 일반화를 위하여, k-LIN을 가정하는 이차다항식에 대한 함수 암호를 구축하는 방법을 설명한다. 따라서, 3차 다항식에 대한 함수 암호는 프라임 오더 삼차 그룹(prime order trilinear group) 내의 k-LIN 가정이 요구된다. 이 방식은 후술하는 3차 다항식에 대한 새로운 함수 암호를 구축하는데에도 사용된다.
함수 암호의 빌딩 블록(building block)을 설명한다. 이하에서 는 아래의 수학식 2를 의미한다.
<수학식 2>
이하에서는 3차 다항식에 대한 함수 암호에 사용되는 두 개의 빌딩 블록을 제공한다. 하나는 내적 연산(IPE, inner products)을 지원하는 함수 암호이고, 다른 하나는 이차 연산(QE, quadratic polynomials)을 지원하는 함수 암호이다.
이하에서는 다중 선형 함수가 3중 선형 함수( 또는 3중 선형 맵)인 것을 가정한다.
함수(의 크기 및 3중 선형 맵(e)은 [[M1]1·[M2]2·[M3]3]T로 정의될 수 있다. 따라서, a < b 인 경우, [[Ma]a·[Mb]b]T는 다음의 수학식 3과 같다.
<수학식 3>
여기서, I는 적절한 크기의 단위행렬이다.
이하에서는 내적 연산을 지원하는 함수 암호를 설명한다. 내적 연산은 길이가 같은 두 벡터(x=(x1, ..., xn), y=(y1, ..., yn))에 대해서 다음과 같이 정의될 수 있다.
<수학식 4>
<x, y> = x1y1 + x2y2 + ..., + xnyn
이러한 내적 연산은 통계 연산, 예측 모델 생성, 인공지능의 신경망 구조와 같은 응용 분야에서, 가중 평균, 유사도 측정, 선형 회귀 계산 등을 수행하는데 이용될 수 있다.
이러한 내적 연산을 수행할 수 있는 함수 암호를 이하에서는 Mus.IPE로 지칭한다. Mus.IPE의 보안성은 Dk-MDDH 가정의 경도(hardness)에 의존한다.
Mus.IPE의 4가지의 알고리즘의 상세는 다음의 수학식 5~8과 같다.
<수학식 5>
여기서, Mus.Setup은 3중 선형 맵을 사용한 내적 연산을 수행하는 함수 암호에 대한 셋톱 알고리즘이고, A, U는 샘플링된 행렬, msk는 마스터 비밀키 mpk는 마스터 공개키이다.
<수학식 6>
여기서, sky는 함수키다. 즉, 상술한 내적 연산을 수행하는 함수에 대응되는 함수키이다.
<수학식 7>
여기서, Ctxt는 암호문이다.
<수학식 8>
이와 같은 Mus.IPE의 정확도는 다음과 같은 수식으로 표현될 수 있다.
<수학식 9>
이하에서는 이차 연산을 지원하는 함수 암호에 대해서 설명한다.
이차 함수는 분산 또는 평균 제곱근 편차, 유클리드 거리, 이차 회귀 등의 연산을 이용하는 다양한 응용에 이용될 수 있다. 이러한 이차 연산을 지원하는 함수를 Mus.QE로 지칭한다. 이러한 이차 연산의 목적은 .에서 의 벡터를 획득하는 것이다.
Mus.QE의 4가지의 알고리즘의 상세는 다음의 수학식 10~13과 같다.
<수학식 10>
<수학식 11>
<수학식 12>
<수학식 13>
이와 같은 Mus.QE의 정확도는 다음과 같은 수식으로 표현될 수 있다.
<수학식 14>
이하에서는 삼차 연산(또는 삼차 방정식을 이용한 연산)을 지원하는 함수 암호에 대해서 설명한다.
경계된 노옴 다차 기능은 다음과 같은 수학식 15를 표현될 수 있다.
<수학식 15>
여기서, , , , 를 만족하면, 에 포함될 수 있다.
이하에서 기호 VEC는 unvec로 지칭하며, 벡터화의 역행 동작을 수행한다. 즉, 입력으로 v, r이 입력되면, 로우(row)의 수가 r이고, 칼럼의 수가 을 갖는 행렬을 출력한다. 즉, . 여기서 r은 정수로 결정되며, 는 v의 길이이다.
이러한 삼차 연산(또는 삼차 방정식을 이용한 연산)을 지원하는 함수 암호의 4가지 알고리즘의 상세는 다음의 수학식 16~19와 같다.
<수학식 16>
<수학식 17>
<수학식 18>
<수학식 19>
이상에서는 다중 선형 함수를 이용하는 함수 암호의 다양한 예를 설명하였다. 이하에서는 다중 선형 함수를 이용하지 않는 함수 암호의 다양한 예를 설명한다.
다중 선형 함수를 이용하지 않는 방법은 기존의 다중 선형 함수를 이용하는 방법보다 다소 약한 보안, 선택적인 IND-CPA 보안을 갖지만, 다중 선형 함수(구체적으로, 3중 선형 함수)를 이용하지 않고 3차 다항식을 지원할 수 있다는 점에서, 그 의미를 갖는다.
특히, 일반적인 그룹 기반 함수 암호 구성에서와 같이, 본 개시에 따른 방법은 이산 로그를 효율적으로 계산하기 위한 제한된 노름 기능을 제공한다. 여기서 제한된 노름 3차 기능(bounded-norms cubic functionalities)은 다음과 같은 형식을 가질 수 있다.
<수학식 20>
여기서, 모든 함수()는 와 같은 벡터로 간주할 수 있다. 따라서, 복호화 알고리즘 후에 의 값을 얻기에 충분하다.
이하에서, 는 보안 파라미터(1λ)를 입력받아 (G, g0, p)를 반환하는 PPT 알고리즘이라고 지칭한다. 여기서, G는 차수의 그룹이고, g0는 이산 로그 문제에 λ 비트 보안을 갖는 생성기이다. 그리고, 와 같은 대괄호 표기법을 와 같이 표기한다.
M을 의 넓은 행렬이라고 하고, m1 < m2 고, 내의 벡터다. M-1(v)를 벡터 세트()라고 하면, v ∈ <M>이고, 세트(M-1(v))는 비어 있지 않으며, 실제로 유한 집합이다. 따라서, w←M-1(v) 같은 표기법을 이용하여 M-1(v)의 요소를 균일하게 샘플링한다.
유사하게 유한 세트를 정의하면, (w1, w2)←(M, N)(v1, v2) 일때 M(w1) = v1, N(v2) = w2 각각을 만족한다. M와 N이 넓은 행렬이고, w1, w2의 크기 제약이 없기 때문에, 이러한 연산을 효율적으로 수행하는 것이 가능하다. 또한, 비슷한 방법으로 행렬(V)에 대해서 M-1(V)를 정의할 수 있다. 분포(D1)가 정의되면, A는 내의 행렬인바, 를 만족한다.
이와 같은 동작은 각 차수의 계수 값이 기설정된 값에 대한 지수 값으로 표현되며, 계수 값이 적용된 2차 함수(또는 3차 함수)의 결과와 기설정된 값들이 계수 값으로 적용된 2차 함수(또는 3차 함수)의 결과에 대해서 지수 값들의 곱을 적용한 결과가 동일한 함수를 이용하는 것과 같다. 따라서, 이하에서 함수키 생성은 연산 함수의 복수의 원소의 곱을 기설정된 함수에 지수승하여 함수키를 생성하는 것이라고 표현할 수 있다.
한편, 연산 함수의 각 원소 값에 대한 보안을 높이기 위하여, 구현시에는 스케일링 값을 적용할 수 있다. 즉 복수의 원소 각각에 스케일링 값을 적용하고, 스케일링 값이 적용된 원소들의 곱을 상술한 함수의 지수승에 반영하여 함수 키를 생성할 수 있다.
이와 같은 방식은 내적 함수를 이용한 함수 암호에 적용될 수 있으며, 이차 다항식을 이용한 함수 암호에 적용될 수 있다. 또한, 삼차 다항식(또는 그 이상 차수의 다항식)을 갖는 함수 암호에도 적용될 수 있다. 삼차 다항식에 적용되는 경우에는 해당 삼차 다항식에 이용하기 위하여, 삼차 다항식을 상술한 내적 함수를 이용한 다항식 또는 이차 다항식으로 분해하고, 분해된 방식 각각에 대한 부분 함수 키를 생성함으로써 함수키를 생성할 수도 있다.
이하에서는 다중 선형 맵의 이용 없이 3차 다항식을 지원하는 함수 암호를 생성하기 위한 두 가지 서브 스킴을 설명한다. 이러한 두 가지 서브 스킴은 내적을 지원하는 함수 암호(IPE)와 이차 연산을 지원하는 함수 암호(QE)이다. 이러한 두 스킴에 대해서는 앞서 설명하였지만, 다중 선형 맵을 이용하지 않는다는 점에서, 상세 동작에 대해서 차이가 있다.
이하에서의 각 동작은 비밀키 암호화 방식이다. 따라서, 앞서 설명한 동작이 공개키 암호화 방식이라면, 비밀키 암호화 방식으로 변경된 것이라고 볼 수도 있다. 이하의 동작은 다중 선형 맵의 타겟 그룹(GT)을 이용하지 않지만, 타겟 그룹의 몇몇 속성은 이용한다.
먼저, 서브 스킴 중 하나인 다중 선형 맵을 이용하지 않는 내적 연산을 지원하는 함수 암호를 설명한다.
여기서, nx는 메시지 벡터(x)의 입력 길이이고, λ는 보안 파라미터이다. 이러한 내적 연산을 지원하는 함수 암호의 목적은 복호화 동작을 통하여 일부 에 대해서 형태의 벡터를 얻는 것이다.
이러한 내적 연산을 지원하는 함수 암호의 4가지 알고리즘의 상세는 다음의 수학식 21~24와 같다.
<수학식 21>
여기서, A, U는 도시된 조건에서 샘플링된 행렬이다.
<수학식 22>
여기서 sky는 함수 키, U는 상기 마스터 비밀키를 구성하는 샘플링 값, y 상기 연산 함수의 변수, D 는 상기 마스터 비밀키를 구성하는 분산 값이다.
<수학식 23>
이와 같이 암호화 과정에서는 마스터 비밀키, 공개키 파라미터, 평문(x)을 이용하여 암호문(CtxtX)를 생성할 수 있다.
<수학식 24>
이와 같은 복호화 과정에서는 암호문, 함수키, 공개 파라미터를 이용하여 해당 암호문에 대응되는 평문이 함수키에 대응되는 함수에 적용되었을 때 산출되는 값(또는 출력값 y)을 산출할 수 있다. 즉, 암호화된 x 값과 함수에 포함된 y 값에 대한 내적 값을 출력할 수 있다.
이와 같은 알고리즘의 정확도는 다음의 수학식 25와 같다.
<수학식 25>
이하에서는 서브 스킴 중 다른 하나인 다중 선형 맵을 이용하지 않는 이차 다항식을 지원하는 함수 암호를 설명한다.
먼저, 2차 다항식을 지원하는 함수 암호(이하, QE)는 복호화 암호 결과 몇몇
에 대해서 형태의 벡터를 얻는 것이다.
이러한 이차 연산을 지원하는 함수 암호의 4가지 알고리즘의 상세는 다음의 수학식 26~29와 같다.
<수학식 26>
여기서, PPIPE는 {Go, g0}이고, 차수 p를 갖는 그룹(G0)의 생성기이다. 따라서 기능 키를 계산하기 위한 그룹 작업이 허용된다.
<수학식 27>
여기서, SKIPE상의 벡터이다.
<수학식 28>
여기서, 각 암호문 , 이다.
<수학식 29>
IPE의 복호화 알고리즘은 상의 원소를 반환한다. 이는 이산 로그 문제를 풀기 때문이다. 그러나 QE는 복호화 과정에서 필요한 것은 형태의 그룹 원소이다. 따라서, 와 같은 표기법이 많이 사용된다. 실제 알고리즘에서는 DECIPE 내의 이산 로그 알고리즘을 풀지 않음으로써 을 얻을 수 있다.
이러한 DECIPE의 정확성은 다음과 같은 수식으로 얻을 수 있다.
<수학식 30>
여기서, 가 유지되기 때문에 정확도는 유지되어야 한다.
이러한 DECQE의 출력은 기본 그룹을 제외하고는 실질적으로 MUS.DECQE와 실질적으로 같다.
이하에서는 다중 선형 맵을 이용하지 않는 3차 다항식을 지원하는 함수 암호의 동작을 설명한다.
먼저, 이하에서 새롭게 설명한 연산자 UNVEC를 설명한다. UNVEC는 입력 v, r에 대해서 벡터()를 반환하는 연산자이다. 즉, 어떠한 벡터(v)에 대해서 양의 정수(r)에 대해서 를 만족한다.
이에 대한 4가지 알고리즘은 다음과 같다.
<수학식 31>
여기서, PPIPE는 {G0, g0}이고, 차수 p의 그룹(G0)에 대한 생성기이다. 이와 같은 방식은 3차 다항식을 지원하기 위하여, 두 가지 함수 방식(즉, 내적 연산을 지원하는 함수 암호, 이차 다항식을 지원하는 함수 암호)를 이용하여, 3차 다항식을 두 함수 방식으로 분해하여 이용한다. 따라서, 셋업 과정 중 이후의 과정에서도 분해된 환경을 이용하여 확장된 매트릭스(M)를 생성하고, 확장된 매트릭스를 포함하는 마스터 비밀키를 생성한다.
<수학식 32>
이와 같이 3차 다항식을 이용하는 함수 암호는 앞서 설명한 바와 같이 내적 함수와 이차 다항식을 이용하는 함수로 분해하는 것이 가능하다. 따라서, 키 생성 과정에서는 분해된 3차 다항식을 이차 다항식과 내적을 지원하는 다항식으로 구분하고, 구분된 각각의 함수에 대응되는 부분 함수 키를 생성하고, 부분 함수키들을 이용하여 함수 키를 생성함을 확인할 수 있다.
<수학식 33>
<수학식 34>
이와 같은 스킴에서의 정확도는 앞서 설명한 다중 선형 맵을 이용한 3차 다항식을 이용하는 경우와 같다.
도 4는 본 개시의 일실시 예에 따른 알고리즘을 설명하기 위한 도면이다.
도 4를 참조하면, 분할 알고리즘은 Muc.IPE, Muc.QE 및 Muc.CE 각각으로부터 IPE, QE, CE의 암호화 및 키 생성 알고리즘을 구성한다. 각 방식에 대한 알고리즘은 다음의 수학식 35, 36, 37와 같다. 표현을 단순화하기 그룹(G), 주워진 차원의 벡터(L), 각 알고리즘의 입력은 생략되었다.
도 4의 행렬(D)은 A와
Figure pat00085
가 무작위로 샘플링되었기 때문에, 균일한 분포를 한다. 이러한 점은 아래의 수학식 35, 36, 37 각각이 IPE, QE, CE과 동일한 객체를 반환하고, 기능적으로 동일하게 수행함을 의미한다. 따라서, Enc(Mb,i), skf를 적재다는 취득할 수 있으며, 적대자는 시뮬레이터를 이용하여 Mus.CE를 구분할 수 있다.
이러한 시뮬레이터는 메시지(mb)를 결정한 이후에만 작동하며, 그에 따라 본 스킴은 선택적인 보안을 제공하는 것이 가능하다.
<수학식 35>
<수학식 36>
<수학식 37>
앞서 설명한 바와 같이 기존의 부트스트래핑 이론은 3차 다항식에 대한 암호문 생성에 입력 길이에 비례하는 시간이 소요되며, 모든 다차 항에 대한 구분불능 난독화를 구성할 수 있다고 언급하고 있다.
구분 불능화를 구축하기 위해 암호화 시간이 입력 길이에 대해 선형인 3차 다항식에 대한 기능적 암호화를 구성하는 것으로 충분하다. 이를 위해 본 개시에서는 QE, CE를 변형하였으며, 그에 따라 두 체계 모두 선형 효율적인 암호화 시간을 갖는다. 한편, IPE 방식은 이미 선형 효율을 달성하고 있으니, 선형 효율 달성을 위한 별도의 수정이 필요없었다.
도 5는 본 개시의 일 실시 예에 따른 암호화 방법을 설명하기 위한 흐름도이다.
도 5를 참조하면, 먼저 보안 상수에 기초하여 공개키 파라미터 및 마스터 비밀키를 산출한다(S510). 이와 같은 공개키 파라미터 및 마스터 비밀키의 산출 방법은 이용하는 알고리즘 방식에 따라 변경될 수 있다. 예를 들어, 앞서 설명한 바와 같이 본 개시에서는 함수 암호의 종류를 3가지(즉, 내적 연산을 지원하는 함수 암호, 이차 연산을 지원하는 함수 암호, 3차 방정식을 지원하는 함수 암호)로 설명한 바 있다. 이와 같이 각 방식에 맞은 앞서 설명한 셋업 알고리즘을 이용하여 공개 파라미터(pp), 마스터 비밀키(msk)를 생성할 수 있다. 각 방식에 대응되는 셋업 알고리즘은 앞서 설명하였는바 중복 설명은 생략한다.
그리고 마스터 비밀키, 및 메시지에 대한 기설정된 연산을 수행하는 연산 함수를 이용하여, 연산 함수에 대한 함수키(functional key)를 생성한다(S510). 구체적으로, 연산 함수의 복수의 원소의 곱을 기설정된 함수에 지수승하여 함수키를 생성할 수 있다. 여기서, 기설정된 함수는 각 차수의 계수 값이 기설정된 값에 대한 지수 값으로 표현되며, 계수 값이 적용된 3차 함수의 결과와 기설정된 값들이 계수 값으로 적용된 3차 함수의 결과에 대해서 지수 값들의 곱을 적용한 결과가 동일한 함수일 수 있다.
그리고 앞서 설명한 바와 같이 이용할 함수 종류에 따라 대응되는 키젠 알고리즘을 이용할 수 있으며, 3차 방정식을 지원하는 함수 암호의 경우라면, 연산 함수를 내적 연산을 지원하는 내적 함수 및 이차 함수로 분해하고, 분해된 내적 함수 및 이차 함수 각각에 대한 부분 함수 키를 생성하고, 생성된 부분 함수키를 이용하여 함수키를 생성할 수 있다.
그리고 생성된 함수 키를 외부에 전송할 수 있다(S530). 한편, 이러한 전송 과정은 연산 함수가 생성된 시점이 수행될 수 있으며, 외부 장치의 요청이 있는 경우에 수행될 수도 있다. 한편, 본 개시에서는 외부로 전송하는 것으로 설명하였지만, 이용 방식에 따라 외부로 전송하지 않고, 자체적으로 저장하여 이용할 수도 있다.
이상에서는 암호화 방식이 도 3에서 설명한 셋업 동작 및 키젠 동작에 대응되는 동작만을 수행하는 것으로 설명하였지만, 구현시에는 암호화 동작 및/또는 복호화 동작도 함께 수행할 수 있다. 또한, 구현시에는 전자 장치가 도 3에 도시된 각 동작의 어느 하나만 수행하는 형태로도 구현될 수 있다. 암호화 및 복호화 동작에 대해서는 도 4를 참조하여 설명한다.
도 6은 본 개시의 일 실시 예에 따른 복호화 방법을 설명하기 위한 흐름도이다.
도 6을 참조하면, 공개 파라미터, 함수 키 및 암호문을 획득한다(S610). 구체적으로, 마스터 비밀키와 평문을 이용하여 암호문을 생성할 수 있다. 한편, 구현시에는 다른 장치에서 생성한 암호문을 수신하여 이용하는 것도 가능하다.
그리고 획득된 함수키에 암호문 및 공개 파라미터를 적용하여 함수 결과를 연산할 수 있다. 구체적으로, 암호문은 함수키의 종류에 대응되는 성분을 가질 수 있다. 따라서, 함수키 또는 암호문에 기초하여 적용할 알고리즘을 결정하고, 결정된 알고리즘에 대응되는 복호화 알고리즘을 이용하여 함수 결과를 연산할 수 있다.
그리고 함수 결과를 출력할 수 있다. 이와 같은 출력은 전자 장치의 디스플레이에 출력되거나, 그 데이터가 다른 애플리케이션에 전송되거나, 다른 장치로 연산 결과가 출력되는 등의 다양한 형태일 수 있다.
이와 같이 본 개시는 복호화 결과에 따라 함수 결과만을 출력하는바, 복호화에 의해서도 암호문의 내용이 노출되지 않는다. 또한, 함수키 역시 마스터 비밀키를 갖는 사용자만 생성하는 것이 가능하다는 점에서, 제3 자가 임의로 함수키를 변경하기도 어렵다. 또한, 본 개시의 복호화 방법은 다중 선형 함수를 이용하지 않는바, 보다 현실적인 3차 함수를 지원하는 함수 암호를 구현하는 것이 가능하다.
상술한 다양한 실시 예에 따른 전자 장치의 제어 방법은 컴퓨터 프로그램 제품으로 제공될 수도 있다. 컴퓨터 프로그램 제품은 S/W 프로그램 자체 또는 S/W 프로그램이 저장된 비일시적 판독 가능 매체(non-transitory computer readable medium)를 포함할 수 있다.
비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 어플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.
또한, 이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시가 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안 될 것이다.
100: 전자 장치 110: 통신 장치
120: 메모리 130: 디스플레이
140: 입력장치 150: 프로세서

Claims (15)

  1. 전자 장치에 있어서,
    통신 장치;
    보안 상수에 기초하여 생성된 공개키 파라미터 및 마스터 비밀키를 저장하는 메모리; 및
    상기 마스터 비밀키, 및 메시지에 대한 기설정된 연산을 수행하는 연산 함수를 이용하여, 상기 연산 함수에 대한 함수키(functional key)를 생성하고, 상기 생성된 함수키가 외부 장치에 전송하도록 상기 통신 장치를 제어하는 프로세서;를 포함하고,
    상기 프로세서는,
    상기 연산 함수의 복수의 원소의 곱을 기설정된 함수에 지수승하여 상기 함수키를 생성하는 전자 장치.
  2. 제1항에 있어서,
    상기 기설정된 함수는,
    각 차수의 계수 값이 기설정된 값에 대한 지수 값으로 표현되며, 상기 계수 값이 적용된 2차 또는 3차 함수의 결과와 상기 기설정된 값들이 계수 값으로 적용된 2차 또는 3차 함수의 결과에 대해서 상기 지수 값들의 곱을 적용한 결과가 동일한 전자 장치.
  3. 제1항에 있어서,
    상기 프로세서는,
    상기 복수의 원소 각각에 하나의 스케일링 값을 적용하고, 스케일링 값이 적용된 원소들의 곱을 상기 기설정된 함수에 지수승하여 함수키를 생성하는 전자 장치.
  4. 제1항에 있어서,
    상기 프로세서는,
    상기 연산 함수를 내적 연산을 지원하는 내적 함수 및 이차 함수로 분해하고, 분해된 내적 함수 및 이차 함수 각각에 대한 부분 함수 키를 생성하고, 상기 생성된 부분 함수키를 이용하여 상기 함수키를 생성하는 전자 장치.
  5. 제4항에 있어서,
    상기 프로세서는,
    상기 분해된 내적 함수 및 이차 함수 각각에 대해서 서로 다른 연산 방식을 이용하여 부분 함수 키를 생성하는 전자 장치.
  6. 제1항에 있어서,
    상기 연산 함수는 내적 함수이고,
    상기 프로세서는,
    아래의 수학식을 이용하여 함수키를 생성하는 전자 장치,

    여기서 sky는 함수 키, U는 상기 마스터 비밀키를 구성하는 샘플링 값, y 상기 연산 함수의 변수, D 는 상기 마스터 비밀키를 구성하는 분산 값.
  7. 제1항에 있어서,
    상기 프로세서는,
    확장된 매트릭스를 생성하고, 생성된 확장된 매트릭스를 포함하는 마스터 비밀키를 생성하여 상기 메모리에 저장하는 전자 장치.
  8. 제1항에 있어서,
    상기 프로세서는,
    Figure pat00090
    를 만족하는 차수의 그룹과 이상 로그 문제에 대해서 상기 보안 상수에 대응되는 비트 보안을 갖는 생성기를 포함하는 공개키 파라미터를 생성하는 전자 장치.
  9. 제1항에 있어서,
    상기 프로세서는,
    상기 공개키 파라미터와 메시지를 이용하여 암호문을 생성하는 전자 장치.
  10. 제9항에 있어서,
    상기 프로세서는,
    상기 함수 암호의 복수의 원소 각각에 대해서 독립적인 복수의 벡터를 설정하고, 상기 복수의 벡터를 갖는 공개키 파라미터를 생성하고,
    상기 복수의 원소 각각에 대응되는 암호화 데이터 및 상기 복수의 원소의 조합에 대응되는 암호화 데이터를 생성하여 암호문을 생성하는 전자 장치.
  11. 제9항에 있어서,
    상기 암호문과 상기 함수키를 이용하여 상기 메시지가 상기 연산 함수를 수행한 결과에 대응되는 함수 결과를 생성하는 전자 장치.
  12. 전자 장치에서의 암호화 방법에 있어서,
    보안 상수에 기초하여 생성된 공개키 파라미터 및 마스터 비밀키를 산출하는 단계;
    상기 마스터 비밀키, 및 메시지에 대한 기설정된 연산을 수행하는 연산 함수를 이용하여, 상기 연산 함수에 대한 함수키(funtional key)를 생성하는 단계; 및
    상기 생성된 함수키를 외부 장치에 전송하는 단계;를 포함하고,
    상기 함수키를 생성하는 단계는,
    상기 연산 함수의 복수의 원소의 곱을 기설정된 함수에 지수승하여 상기 함수키를 생성하는 암호화 방법.
  13. 제12항에 있어서,
    상기 기설정된 함수는,
    각 차수의 계수 값이 기설정된 값에 대한 지수 값으로 표현되며, 상기 계수 값이 적용된 2차 또는 3차 함수의 결과와 상기 기설정된 값들이 계수 값으로 적용된 2차 또는 3차 함수의 결과에 대해서 상기 지수 값들의 곱을 적용한 결과가 동일한 암호화 방법.
  14. 제12항에 있어서,
    상기 함수키를 생성하는 단계는,
    상기 복수의 원소 각각에 하나의 스케일링 값을 적용하고, 스케일링 값이 적용된 원소들의 곱을 상기 기설정된 함수에 지수승하여 함수키를 생성하는 암호화 방법.
  15. 전자 장치에서의 암호화 방법을 수행하는 프로그램이 기록된 비일시적 컴퓨터 판독 가능 저장 매체에 있어서,
    상기 암호화 방법은,
    보안 상수에 기초하여 생성된 공개키 파라미터 및 마스터 비밀키를 산출하는 단계;
    상기 마스터 비밀키, 및 메시지에 대한 기설정된 연산을 수행하는 연산 함수를 이용하여, 상기 연산 함수에 대한 함수키(funtional key)를 생성하는 단계; 및
    상기 생성된 함수키를 외부 장치에 전송하는 단계;를 포함하고,
    상기 함수키를 생성하는 단계는,
    상기 연산 함수의 복수의 원소의 곱을 기설정된 함수에 지수승하여 상기 함수키를 생성하는 비일시적 컴퓨터 판독 가능 저장 매체.
KR1020220152076A 2022-11-14 2022-11-14 암호문을 처리하는 장치 및 방법 KR20240070324A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220152076A KR20240070324A (ko) 2022-11-14 2022-11-14 암호문을 처리하는 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220152076A KR20240070324A (ko) 2022-11-14 2022-11-14 암호문을 처리하는 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20240070324A true KR20240070324A (ko) 2024-05-21

Family

ID=91320688

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220152076A KR20240070324A (ko) 2022-11-14 2022-11-14 암호문을 처리하는 장치 및 방법

Country Status (1)

Country Link
KR (1) KR20240070324A (ko)

Similar Documents

Publication Publication Date Title
KR102432299B1 (ko) 양자 키 분배에 기초하는 암호화 및 복호화를 위한 시스템 및 방법
US11239995B2 (en) Apparatus for processing approximately encrypted messages and methods thereof
KR102339833B1 (ko) 다변수 패킹을 이용하는 연산 장치 및 방법
US11509454B2 (en) Apparatus for processing modular multiply operation and methods thereof
US9584315B2 (en) Order-preserving encryption system, encryption device, decryption device, encryption method, decryption method, and programs thereof
KR102393942B1 (ko) 비밀 키에 대한 정족수 설계를 수행하는 장치 및 방법
US20160013933A1 (en) Order-preserving encryption system, device, method, and program
US20130268750A1 (en) Encoded database management system, client and server, natural joining method and program
KR20200087061A (ko) 근사 암호화된 암호문에 대한 재부팅 연산을 수행하는 장치 및 방법
US11799628B2 (en) Apparatus and method for processing non-polynomial operation on encrypted messages
KR102443255B1 (ko) 래티스를 기반으로 하는 암호키 생성 방법 및 전자서명 방법
JP7449911B2 (ja) 同型暗号文に対する非多項式演算を行う装置
US20170310474A1 (en) Decryption condition addition device, cryptographic system, and decryption condition addition program
KR20240070324A (ko) 암호문을 처리하는 장치 및 방법
KR102522708B1 (ko) 동형 암호문에 대한 통계 연산 수행하는 장치 및 방법
KR102160294B1 (ko) 비밀 키에 대한 정족수 설계를 수행하는 장치 및 방법
KR102526114B1 (ko) 암호화 및 복호화를 위한 장치 및 방법
KR102418016B1 (ko) 래티스를 기반으로 하는 신원 기반 암호화 방법
KR20200131688A (ko) 비밀키 생성 장치 및 방법, 연산키 생성 장치 및 방법
US20240163076A1 (en) Apparatus for calculating matrix multiplication of homomorphic encryption and method thereof
KR20230049052A (ko) 격자전자서명의 비밀 키 생성 방법 및 이를 이용한 장치
KR102393941B1 (ko) 근사 암호화된 암호문에 대한 인코딩 또는 디코딩
KR102633416B1 (ko) 동형 암호를 활용한 사적 변수의 보안 방법 및 장치
KR20240048985A (ko) 투표 분석 정보를 포함하는 동형 암호문을 생성하는 방법 및 그 전자 장치
JP2023112981A (ja) 秘密計算システム、秘密計算方法及び秘密計算プログラム