KR20240080344A - 동형 함수 암호화 방법 및 시스템 - Google Patents

동형 함수 암호화 방법 및 시스템 Download PDF

Info

Publication number
KR20240080344A
KR20240080344A KR1020220163610A KR20220163610A KR20240080344A KR 20240080344 A KR20240080344 A KR 20240080344A KR 1020220163610 A KR1020220163610 A KR 1020220163610A KR 20220163610 A KR20220163610 A KR 20220163610A KR 20240080344 A KR20240080344 A KR 20240080344A
Authority
KR
South Korea
Prior art keywords
encryption
homomorphic
ciphertext
function
cipher
Prior art date
Application number
KR1020220163610A
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 KR1020220163610A priority Critical patent/KR20240080344A/ko
Publication of KR20240080344A publication Critical patent/KR20240080344A/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/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/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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Collating Specific Patterns (AREA)

Abstract

동형 함수 암호화 방법 및 시스템이 제시된다. 본 발명에서 제안하는 동형 함수 암호화 방법은 동형 함수 암호를 생성하기 위한 초기 설정 및 키 생성 단계, 공개키를 이용하여 평문에 대한 동형 암호화를 수행하는 단계 및 상기 동형 암호로 암호화된 암호문에 대하여 상기 동형 암호의 암호문을 평문으로 인식하여 함수 암호로 암호화 및 복호화를 수행하는 단계를 포함한다.

Description

동형 함수 암호화 방법 및 시스템{Homomorphic Functional Encryption Method and System}
본 발명은 동형 함수 암호화 방법 및 시스템에 관한 것이다.
데이터에 대한 기밀성을 보장하면서 기계학습, 데이터 분석, 통계 연산, 바이오 인증 등의 위탁 서비스를 수행하기 위해 암호문 상에서 연산을 수행하는 방법이 널리 이용되고 있다. 암호문 상에서 연산이 가능한 암호로는 동형 암호(homomorphic encryption)와 함수 암호(functional encryption)가 있다.
동형 암호는 컴퓨터에서 수행하는 대부분의 연산을 암호문 상에서도 제공 가능하다는 장점이 있으나, 연산의 결과 역시 암호문으로 출력되므로 비밀키 또는 개인키를 소유하지 않은 사람은 연산의 결과를 확인할 수 없는 문제가 있다. 연산 결과 확인을 위해 키의 소유자에게 복호화를 요청하는 경우, 연산 결과가 키 소유자에게 노출되므로 활용 가능한 응용이 제한된다.
함수 암호는 암호문 간의 연산의 결과가 평문으로 도출되므로, 원본 데이터는 암호화하여 숨기되 암호화된 데이터 간의 연산의 결과는 많은 사람이 확인하고자 하는 상황에 널리 이용될 수 있다. 다만 이런 특성 때문에 누구나 암호문에 대한 연산을 반복할 수 있어 암호문 내에 인코딩된 원본 데이터에 대한 일부 정보가 유출될 수 있는 취약점이 있으며, 또한 실용적으로 수행 가능한 연산이 동형 암호에 비해 다소 제한적이다.
[1] Sam Kim, Kevin Lewi, Avradip Mandal, Hart William Montgomery, Arnab Roy and David J. Wu, "Function-Hiding Inner Product Encryption is Practical", IACR Cryptology ePrint Archive, 2016:440, 2016. [2] K. Zhou and J. Ren, "PassBio: Privacy-preserving user-centric biometric authentication," IEEE Trans. Inf. Forensics Security, vol. 13, no. 12, pp. 3050-3063, Dec. 2018.
본 발명이 이루고자 하는 기술적 과제는 동형 암호와 함수 암호의 장점을 결합한 동형 함수 암호(homomorphic functional encryption)를 제공하는데 있다. 본 발명에 따르면 동형 암호로 암호화된 암호문들은 다시 함수 암호로 암호화하여, 함수 암호의 암호문들 간의 연산에 의해 생성되는 동형 암호문은 키 소유자에 의해 복호화되고, 함수 암호 암호문 상에서 이미 연산을 수행한 후 복호화가 요청되므로, 키 소유자에게 노출되는 정보를 제한하고자 한다.
일 측면에 있어서, 본 발명에서 제안하는 동형 함수 암호화 방법은 동형 함수 암호를 생성하기 위한 초기 설정 및 키 생성 단계, 공개키를 이용하여 평문에 대한 동형 암호화를 수행하는 단계 및 상기 동형 암호로 암호화된 암호문에 대하여 상기 동형 암호의 암호문을 평문으로 인식하여 함수 암호로 암호화 및 복호화를 수행하는 단계를 포함한다.
상기 동형 함수 암호를 생성하기 위한 초기 설정 및 키 생성 단계는 미리 정해진 안전성 요구조건에 상응하는 동형 암호 개인키, 동형 암호 공개키의 쌍을 생성하고 함수 암호의 공개 파라미터, 마스터 비밀키를 생성한다.
상기 공개키를 이용하여 평문에 대한 동형 암호화를 수행하는 단계에서 상기 동형 암호는 암호문 간의 덧셈과 암호문 간의 곱셈이 모두 무제한으로 가능한 완전 동형 암호 또는 암호문 간의 덧셈은 무제한으로 가능하고, 암호문 간의 곱셈은 제한되는 부분 동형 암호이다.
상기 동형 암호로 암호화된 암호문에 대하여 상기 동형 암호의 암호문을 평문으로 인식하여 함수 암호로 암호화 및 복호화를 수행하는 단계는 상기 동형 암호로 암호화된 암호문의 제1 벡터와 마스터 비밀키를 이용하여 함수 암호의 제1 암호문을 생성하고, 상기 동형 암호로 암호화된 암호문의 제2 벡터와 마스터 비밀키를 이용하여 함수 암호의 제2 암호문을 생성하고, 함수 암호의 공개 파라미터, 함수 암호의 제1 암호문 및 함수 암호의 제2 암호문을 이용하여 상기 제1 벡터 및 제2 벡터의 내적을 계산한다.
또 다른 일 측면에 있어서, 본 발명에서 제안하는 동형 함수 암호화 시스템은 동형 함수 암호를 생성하기 위한 초기 설정 및 키 생성 후, 공개키를 이용하여 평문에 대한 동형 암호화를 수행하는 동형 암호화부 및 상기 동형 암호로 암호화된 암호문에 대하여 상기 동형 암호의 암호문을 평문으로 인식하여 함수 암호로 암호화 및 복호화를 수행하는 함수 암호화부를 포함한다.
본 발명의 실시예들에 따른 동형 암호와 함수 암호의 장점을 결합한 동형 함수 암호(homomorphic functional encryption)를 통해 동형 암호로 암호화된 암호문들은 다시 함수 암호로 암호화하여, 함수 암호의 암호문들 간의 연산에 의해 생성되는 동형 암호문은 키 소유자에 의해 복호화될 수 있고, 함수 암호 암호문 상에서 이미 연산을 수행한 후 복호화가 요청되므로, 키 소유자에게 노출되는 정보를 제한할 수 있다.
도 1은 본 발명의 일 실시예에 따른 동형 함수 암호화 방법을 설명하기 위한 흐름도이다.
도 2는 본 발명의 일 실시예에 따른 동형 함수 암호화의 함수 암호화 과정을 설명하기 위한 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 동형 함수 암호화 시스템의 구성을 나타내는 도면이다.
이하, 본 발명의 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.
본 발명에서 제안하는 동형 함수 암호화 방법 및 시스템을 설명하기 위해, 먼저 동형 암호 및 함수 암호에 관하여 설명한다.
함수 암호(functional encryption)란 평문(plaintext) 에 대한 암호문과 함수 에 대한 암호문이 주어지면, 두 정보로부터 을 계산할 수 있는 암호이다. 의 계산은 누구나 수행할 수 있으나, 이 계산에 의해 평문 이나 함수 에 대한 직접적인 정보를 알아낼 수 없도록 설계된다. 예를 들어, 함수 암호 중 가장 널리 쓰이는 내적 함수 암호는, 미리 정해진 계수 벡터 을 암호화한 함수 암호문과, 내적 계산의 대상이 되는 평문 벡터 를 암호화한 암호문이 주어질 때 내적 을 계산할 수 있는 암호로, 다음과 같은 기능들로 구성된다:
(F1) 초기 설정(setup) 단계에서, 주어진 안전성 요구조건(안전성 파라미터 )을 만족하는 공개 파라미터 , 마스터 비밀키 를 생성한다. 이를 로 표기한다.
(F2) 제1 암호문 생성(Left encrypt) 단계에서, 마스터 비밀키 와 계수 벡터 로부터 제1 암호문 을 생성한다(은 함수의 암호문에 해당한다). 이를 로 표기한다.
(F3) 제2 암호문 생성(Right encrypt) 단계에서, 마스터 비밀키 와 데이터 벡터 로부터 제2 암호문 을 계산한다(은 데이터의 암호문에 해당한다). 이를 로 표기한다.
(F4) 내적 복호화(decrypt) 단계에서, 공개 파라미터 와 두 암호문 , 로부터 의 내적을 계산한다. 복호화를 로 표기할 때, 로 계산된 결과에 대해 가 만족된다.
동형 암호(homomorphic encryption)는 두 암호문들에 대해 연산을 수행한 결과와, 평문 상에서 연산을 먼저 수행한 후 그 결과를 암호화한 것이 서로 같은 암호이다. 구체적으로, 동형 암호는 다음과 같은 기능들로 구성된다:
(H1) 초기 설정 및 키 생성(key generation) 단계에서, 주어진 안전성 요구조건(안전성 파라미터 )에 부합하는 개인키 , 공개키 쌍을 생성한다. 즉, 로 나타낼 수 있다.
(H2) 암호화(encrypt) 단계에서, 공개키 를 이용하여 평문 을 암호화한다. 이를 로 표기한다.
(H3) 복호화(decrypt) 단계에서, 개인키 을 이용하여 암호문 을 복호화한다. 이를 로 표기한다.
(H4) 암호문 상의 연산(evaluation) 단계에서, 암호문 간의 연산을 수행한다. 예를 들어, 암호문 간의 덧셈을 ADD, 암호문 간의 곱셈을 MULT라 할 경우, 덧셈 동형 암호(additive homomorphic encryption)는 , 곱셈 동형 암호(multiplicative homomorphic encryption)는 를 만족한다.
도 1은 본 발명의 일 실시예에 따른 동형 함수 암호화 방법을 설명하기 위한 흐름도이다.
본 발명에서는 동형 암호의 암호문들을 함수 암호의 평문처럼 간주하여 연산을 수행하는 동형 함수 암호(homomorphic functional encryption)를 제안한다.
제안하는 동형 함수 암호화 방법은 동형 함수 암호를 생성하기 위한 초기 설정 및 키 생성 단계(110), 공개키를 이용하여 평문에 대한 동형 암호화를 수행하는 단계(120), 상기 동형 암호로 암호화된 암호문에 대하여 상기 동형 암호의 암호문을 평문으로 인식하여 함수 암호로 암호화 및 복호화를 수행하는 단계(130) 및 함수 암호의 복호화된 결과에 대해 개인키를 이용하여 동형 암호로 복호화를 수행하는 단계(140)를 포함한다.
단계(110)에서, 제안하는 동형 함수 암호를 생성하기 위한 초기 설정 및 키 생성을 수행한다.
초기 설정 및 키 생성 단계에서, 주어진 안전성 요구조건(안전성 파라미터 )에 부합하는 동형 암호 개인키 , 동형 암호 공개키 쌍을 생성하고 함수 암호의 공개 파라미터 , 마스터 비밀키 를 생성한다. 즉, 를 수행한다. 단, 를 소유하는 주체와 을 소유하는 주체는 서로 달라야 한다.
단계(120)에서, 공개키를 이용하여 평문에 대한 동형 암호화를 수행한다.
본 발명의 일 실시예에 따른 동형 함수 암호화의 동형 암호화 과정에 있어서,
먼저, 동형 암호 암호화 단계에서 공개키 를 이용하여 평문 을 암호화한다. 이를 로 표기한다.
다음으로, 동형 암호 복호화 단계에서 개인키 을 이용하여 암호문 을 복호화한다. 이를 로 표기한다.
이후, 동형 암호 암호문 간의 연산을 수행한다. 본 발명에서 고려하는 동형 암호는 모두 무제한으로 가능한 완전 동형 암호(fully homomorphic encryption) 또는 는 무제한으로 가능하되 는 깊이(depth) 2 까지만 가능한, 즉 의 결과인 암호문에 다시 를 적용하는 것은 한 번만 가능한 부분 동형 암호(somewhat homomorphic encryption)이다. 단, 연산의 피연산자 중 한 쪽이 암호문이 아닌 평문으로 제한될 경우, 깊이(depth) 1 까지만 가능한, 즉 의 결과인 암호문에 다시 를 적용하는 것이 허용되지 않는 부분 동형 암호를 사용하는 것도 가능하다.
다시 도 1을 참조하면, 단계(130)에서 상기 동형 암호로 암호화된 암호문에 대하여 상기 동형 암호의 암호문을 평문으로 인식하여 함수 암호로 암호화 및 복호화를 수행한다.
도 2는 본 발명의 일 실시예에 따른 동형 함수 암호화의 함수 암호화 과정을 설명하기 위한 흐름도이다.
먼저, 함수 암호의 제1 암호문을 생성한다(210). 벡터 의 동형 암호문 벡터 와 마스터 비밀키 로부터 제1 암호문 을 생성한다. 이를 로 표기한다.
다음으로, 함수 암호의 제2 암호문을 생성한다(220). 벡터 의 동형 암호문 벡터 와 마스터 비밀키 로부터 제2 암호문 을 계산한다. 이를 로 표기한다.
이후, 내적 함수 암호의 복호화를 수행한다(230). 공개 파라미터 와 두 암호문 , 로부터 의 내적을 계산한다. 함수 암호의 복호화를 로 표기할 때, , 로 계산된 결과에 대해 이 만족된다. 따라서 이다.
이후, 단계(140)에서 함수 암호 복호화된 결과에 대해 개인키를 이용하여 동형 암호로 복호화를 수행한다.
도 3은 본 발명의 일 실시예에 따른 동형 함수 암호화 시스템의 구성을 나타내는 도면이다.
본 실시예에 따른 동형 함수 암호화 시스템(300)은 프로세서(310), 버스(320), 네트워크 인터페이스(330), 메모리(340) 및 데이터베이스(350)를 포함할 수 있다. 메모리(340)는 운영체제(341) 및 동형 함수 암호화 루틴(342)을 포함할 수 있다. 프로세서(310)는 동형 암호화부(311) 및 함수 암호화부(312)를 포함할 수 있다. 다른 실시예들에서 동형 함수 암호화 시스템(300)은 도 3의 구성요소들보다 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 예를 들어, 동형 함수 암호화 시스템(300)은 디스플레이나 트랜시버(transceiver)와 같은 다른 구성요소들을 포함할 수도 있다.
메모리(340)는 컴퓨터에서 판독 가능한 기록 매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 또한, 메모리(340)에는 운영체제(341)와 동형 함수 암호화 루틴(342)을 위한 프로그램 코드가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 드라이브 메커니즘(drive mechanism, 미도시)을 이용하여 메모리(340)와는 별도의 컴퓨터에서 판독 가능한 기록 매체로부터 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록 매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록 매체(미도시)를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록 매체가 아닌 네트워크 인터페이스(330)를 통해 메모리(340)에 로딩될 수도 있다.
버스(320)는 동형 함수 암호화 시스템(300)의 구성요소들간의 통신 및 데이터 전송을 가능하게 할 수 있다. 버스(320)는 고속 시리얼 버스(high-speed serial bus), 병렬 버스(parallel bus), SAN(Storage Area Network) 및/또는 다른 적절한 통신 기술을 이용하여 구성될 수 있다.
네트워크 인터페이스(330)는 동형 함수 암호화 시스템(300)을 컴퓨터 네트워크에 연결하기 위한 컴퓨터 하드웨어 구성요소일 수 있다. 네트워크 인터페이스(330)는 동형 함수 암호화 시스템(300)을 무선 또는 유선 커넥션을 통해 컴퓨터 네트워크에 연결시킬 수 있다.
데이터베이스(350)는 동형 함수 암호화를 위해 필요한 모든 정보를 저장 및 유지하는 역할을 할 수 있다. 도 3에서는 동형 함수 암호화 시스템(300)의 내부에 데이터베이스(350)를 구축하여 포함하는 것으로 도시하고 있으나, 이에 한정되는 것은 아니며 시스템 구현 방식이나 환경 등에 따라 생략될 수 있고 혹은 전체 또는 일부의 데이터베이스가 별개의 다른 시스템 상에 구축된 외부 데이터베이스로서 존재하는 것 또한 가능하다.
프로세서(310)는 기본적인 산술, 로직 및 동형 함수 암호화 시스템(300)의 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(340) 또는 네트워크 인터페이스(330)에 의해, 그리고 버스(320)를 통해 프로세서(310)로 제공될 수 있다. 프로세서(310)는 동형 암호화부(311) 및 함수 암호화부(312)를 위한 프로그램 코드를 실행하도록 구성될 수 있다. 이러한 프로그램 코드는 메모리(340)와 같은 기록 장치에 저장될 수 있다.
동형 암호화부(311) 및 함수 암호화부(312)는 도 1의 단계들(110~140)을 수행하기 위해 구성될 수 있다.
동형 함수 암호화 시스템(300)은 동형 암호화부(311) 및 함수 암호화부(312)를 포함할 수 있다.
동형 암호화부(311)는 미리 정해진 안전성 요구조건에 상응하는 동형 암호 개인키, 동형 암호 공개키의 쌍을 생성하고, 동형 암호 공개키를 이용하여 평문에 대한 동형 암호화를 수행하거나 동형 암호 개인키를 이용하여 동형 암호 암호문을 복호화하며, 동형 암호 암호문 간의 연산을 수행한다.
동형 암호화부(311)는 암호문 간의 덧셈과 암호문 간의 곱셈이 모두 무제한으로 가능한 완전 동형 암호 또는 암호문 간의 덧셈은 무제한으로 가능하고, 암호문 간의 곱셈은 제한되는 부분 동형 암호로 암호화한다.
함수 암호화부(312)는 미리 정해진 안전성 요구조건에 상응하는 함수 암호의 공개 파라미터, 마스터 비밀키를 생성하며, 상기 동형 암호로 암호화된 암호문에 대하여 상기 동형 암호의 암호문을 평문으로 인식하여 함수 암호로 암호화 및 복호화를 수행한다.
함수 암호화부(312)는 상기 동형 암호로 암호화된 암호문의 제1 벡터와 마스터 비밀키를 이용하여 함수 암호의 제1 암호문을 생성한다.
함수 암호화부(312)는 상기 동형 암호로 암호화된 암호문의 제2 벡터와 마스터 비밀키를 이용하여 함수 암호의 제2 암호문을 생성한다.
함수 암호화부(312)는 함수 암호의 공개 파라미터, 함수 암호의 제1 암호문 및 함수 암호의 제2 암호문을 이용하여 상기 제1 벡터 및 제2 벡터의 내적을 계산한다.
본 발명의 실시예에 따른 동형 함수 암호를 응용하는 일 실시예로, 블록체인을 활용한 바이오인증을 설명한다. 이를 위해 종래기술[1]에서 설명된, 내적 함수 암호를 변형하여 바이오인증 템플릿 간의 유사도 계산을 수행하는 방법을 적용한다. 바이오인증은 각 사용자가 암호화된 바이오인증 템플릿을 블록체인에 등록하고, 인증 서버 S가 이를 복호화하여 확인함으로써 수행된다.
초기 설정 단계에서 상기 단계(110)를 수행한다. 단, 은 서버 S가 한 번만 수행하며, 개인키 은 서버가 안전하게 보관하고 이에 대응되는 공개키 는 공개한다. 은 사용자마다 각자 수행하며, 사용자 C는 에 의해 생성된 본인의 마스터 비밀키 를 안전하게 보관하고 공개 파라미터 는 공개한다. 이후의 설명에서, 편의상 , 를 각각 , 로 간소화하여 표기하기로 한다.
바이오 템플릿 등록 단계에서, 사용자 C는 바이오 센서로부터 인식된 본인의 바이오 정보로부터 특징 추출(feature extraction)을 수행하여 바이오 템플릿 벡터 를 생성하고, 이로부터 벡터 를 생성한다. C는 S의 동형 암호 공개키 를 이용하여 를 계산하고, 본인의 마스터 비밀키 를 이용하여 상기 단계(210)의 제1 암호문 생성 연산으로 암호화된 등록 템플릿 를 생성한다. C는 자신의 식별정보와 를 블록체인에 등록한다. 필요할 경우 C는 식별정보를 익명으로(anonymous) 할 수 있다. 한번 등록된 바이오 템플릿은 여러 번의 바이오 인증에 반복적으로 사용될 수 있다.
바이오 인증 단계에서, 사용자 C가 어떤 서비스를 이용하고자 할 때, 서비스 제공자 A는 블록체인으로부터 C의 암호화된 바이오 템플릿 를 가져오고, C에게 인증을 요청한다. C는 바이오 센서로부터 인식된 본인의 바이오 정보로부터 특징 추출(feature extraction)을 수행하여 바이오 템플릿 벡터 를 생성하고, 이로부터 벡터 를 생성한다. C는 S의 동형 암호 공개키 를 이용하여 를 계산하고, 본인의 마스터 비밀키 를 이용하여 상기 단계(220)의 제2 암호문 생성 연산으로 암호화된 템플릿 를 생성하여 A에게 전달한다. A는 에 대해 상기 단계(230)의 과정을 통해 를 계산하고 인증 서버 S에게 를 전달한다. 서버 S는 상기 동형 암호 복호화의 과정을 통해 를 계산한다. 이 때 를 만족한다. 즉 z는 두 벡터 ,의 내적인 동시에 두 템플릿 벡터 의 유클리드 거리의 제곱이다. 서버는 z 값이 미리 정한 임계값(threshold) 이내인지를 판단하여 인증 성공 여부를 결정하거나, z 값을 A에게 반환하여 A가 인증 여부를 직접 결정하게 할 수 있다. 이때, 인증의 대상은 C의 신원일 수도 있고, C의 어떤 특성(attribute)일 수도 있다. 후자의 경우 익명 인증이 가능하다.
위와 같은 바이오인증은 다음과 같은 특성을 모두 제공 가능하다.
사용자 및 인증 서버 양자 모두 바이오인증 템플릿을 직접 저장하지 않으며, 템플릿은 블록체인에 저장되므로 투명성이 보장된다. 템플릿은 암호화된 상태로 블록체인에 저장되므로 원본이 유출되지 않는다.
인증 서버의 개인키 및 사용자의 마스터 비밀키 없이는 인증이 불가능하다. 따라서 제3자의 사전 공격(dictionary attack)에 의한 바이오 정보 역공학 복원도 방지할 수 있다.
인증이 이뤄질 때마다 적법한 사용자가 제출하는 값이 변경되므로 재사용 공격(replay attack)이 방지된다.
블록체인에 바이오인증 템플릿 등록시 익명 인증자(anonymous credential)와 함께 등록할 경우 사용자의 익명성(anonymity)이 보장된다.
동형 함수 암호가 아닌 기존의 기술로 구성한 바이오인증 방법들은 상기 특성들 중 일부만 만족 가능하므로, 본 발명은 상기 특성을 모두 만족시키는 최초의 바이오인증 방법을 제안하고 있다. 상기 구성에서 내적 함수 암호를 임계 술어 암호(threshold predicate encryption; TPE)로 대체할 경우, z 값은 유클리드 거리의 제곱이 아닌, 유클리드 거리가 특정 임계값 이내인지의 여부만을 참/거짓으로 나타내는 이진값이 된다. 이 경우 인증 서버 S가 서비스 제공자 A에게 z 값을 직접 주더라도 서비스 제공자 A로 하여금 인증의 성공 여부만 확인하게 할 수 있다. 이렇게 함으로써 사용자 바이오 템플릿에 대한 프라이버시를 더 강화할 수 있다. TPE의 일 실시예로는 종래기술[2]를 고려할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다.  또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다.  이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다.  예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다.  또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다.  소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다.  소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다.  상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다.  상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.  컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.  프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다.  예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (10)

  1. 동형 함수 암호를 생성하기 위한 초기 설정 및 키 생성 단계;
    공개키를 이용하여 평문에 대한 동형 암호화를 수행하는 단계;
    상기 동형 암호로 암호화된 암호문에 대하여 상기 동형 암호의 암호문을 평문으로 인식하여 함수 암호로 암호화 및 복호화를 수행하는 단계
    를 포함하는 암호화 방법.
  2. 제1항에 있어서,
    상기 동형 함수 암호를 생성하기 위한 초기 설정 및 키 생성 단계는,
    미리 정해진 안전성 요구조건에 상응하는 동형 암호 개인키, 동형 암호 공개키의 쌍을 생성하고 함수 암호의 공개 파라미터, 마스터 비밀키를 생성하는
    암호화 방법.
  3. 제1항에 있어서,
    상기 공개키를 이용하여 평문에 대한 동형 암호화를 수행하는 단계는,
    동형 암호 공개키를 이용하여 평문을 암호화하고, 동형 암호 암호문 간의 연산을 수행하는
    암호화 방법.
  4. 제3항에 있어서,
    상기 공개키를 이용하여 평문에 대한 동형 암호화를 수행하는 단계는,
    상기 동형 암호는 암호문 간의 덧셈과 암호문 간의 곱셈이 모두 무제한으로 가능한 완전 동형 암호 또는 암호문 간의 덧셈은 무제한으로 가능하고, 암호문 간의 곱셈은 제한되는 부분 동형 암호인
    암호화 방법.
  5. 제1항에 있어서,
    상기 동형 암호로 암호화된 암호문에 대하여 상기 동형 암호의 암호문을 평문으로 인식하여 함수 암호로 암호화 및 복호화를 수행하는 단계는,
    상기 동형 암호로 암호화된 암호문의 제1 벡터와 마스터 비밀키를 이용하여 함수 암호의 제1 암호문을 생성하고,
    상기 동형 암호로 암호화된 암호문의 제2 벡터와 마스터 비밀키를 이용하여 함수 암호의 제2 암호문을 생성하고,
    함수 암호의 공개 파라미터, 함수 암호의 제1 암호문 및 함수 암호의 제2 암호문을 이용하여 상기 제1 벡터 및 제2 벡터의 내적을 계산하는
    암호화 방법.
  6. 제1항에 있어서,
    함수 암호의 복호화된 결과에 대해 개인키를 이용하여 동형 암호로 복호화를 수행하는 단계
    를 더 포함하는 암호화 방법.
  7. 동형 함수 암호를 생성하기 위한 초기 설정 및 키 생성 후, 공개키를 이용하여 평문에 대한 동형 암호화를 수행하는 동형 암호화부; 및
    상기 동형 암호로 암호화된 암호문에 대하여 상기 동형 암호의 암호문을 평문으로 인식하여 함수 암호로 암호화 및 복호화를 수행하는 함수 암호화부
    를 포함하는 암호화 시스템.
  8. 제7항에 있어서,
    상기 동형 암호화부는,
    미리 정해진 안전성 요구조건에 상응하는 동형 암호 개인키, 동형 암호 공개키의 쌍을 생성하고,
    동형 암호 공개키를 이용하여 평문을 암호화하고, 동형 암호 개인키를 이용하여 동형 암호 암호문을 복호화하고, 동형 암호 암호문 간의 연산을 수행하는
    암호화 시스템.
  9. 제8항에 있어서,
    상기 동형 암호화부는,
    암호문 간의 덧셈과 암호문 간의 곱셈이 모두 무제한으로 가능한 완전 동형 암호 또는 암호문 간의 덧셈은 무제한으로 가능하고, 암호문 간의 곱셈은 제한되는 부분 동형 암호로 암호화 하는
    암호화 시스템.
  10. 제7항에 있어서,
    상기 함수 암호화부는,
    미리 정해진 안전성 요구조건에 상응하는 함수 암호의 공개 파라미터, 마스터 비밀키를 생성하고,
    상기 동형 암호로 암호화된 암호문의 제1 벡터와 마스터 비밀키를 이용하여 함수 암호의 제1 암호문을 생성하고,
    상기 동형 암호로 암호화된 암호문의 제2 벡터와 마스터 비밀키를 이용하여 함수 암호의 제2 암호문을 생성하고,
    함수 암호의 공개 파라미터, 함수 암호의 제1 암호문 및 함수 암호의 제2 암호문을 이용하여 상기 제1 벡터 및 제2 벡터의 내적을 계산하는
    암호화 시스템.
KR1020220163610A 2022-11-30 2022-11-30 동형 함수 암호화 방법 및 시스템 KR20240080344A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220163610A KR20240080344A (ko) 2022-11-30 2022-11-30 동형 함수 암호화 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220163610A KR20240080344A (ko) 2022-11-30 2022-11-30 동형 함수 암호화 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR20240080344A true KR20240080344A (ko) 2024-06-07

Family

ID=91480654

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220163610A KR20240080344A (ko) 2022-11-30 2022-11-30 동형 함수 암호화 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR20240080344A (ko)

Similar Documents

Publication Publication Date Title
US9100185B2 (en) Encryption processing apparatus and method
JP5300983B2 (ja) データ処理装置
JP6413598B2 (ja) 暗号処理方法、暗号処理装置、及び暗号処理プログラム
WO2018210895A1 (en) Post-quantum secure private stream aggregation
Yasuda et al. Practical packing method in somewhat homomorphic encryption
US9020149B1 (en) Protected storage for cryptographic materials
Yasuda et al. New packing method in somewhat homomorphic encryption and its applications
JP5586795B2 (ja) データ処理装置及びデータ処理方法及びプログラム
JP2016012111A (ja) 暗号処理方法、暗号処理装置、および暗号処理プログラム
WO2019018046A1 (en) EXTRACTOR OF PRACTICAL REUSABLE APPROXIMATE VALUES BASED ON ERROR ASSUMPTION HYPOTHESIS AND RANDOM ORACLE
KR101739203B1 (ko) 일회용 개인키 기반 전자 서명과 동형 암호를 이용한 패스워드 기반 사용자 인증 방법
KR102008101B1 (ko) 함수 암호를 이용한 안전한 바이오 인증 방법
JP2017524306A (ja) 暗号化操作における悪意のある変更に対する保護
Vengala et al. Three factor authentication system with modified ECC based secured data transfer: untrusted cloud environment
KR101528112B1 (ko) 생체 특성에 기반해 데이터 서버로 액세스하고자 하는 사용자를 인증하기 위한 클라우드 서버
KR20240080344A (ko) 동형 함수 암호화 방법 및 시스템
JP7098091B2 (ja) 秘匿情報処理システム、暗号化装置、暗号化方法及び暗号化プログラム
KR102094606B1 (ko) 인증 장치 및 방법
KR102526114B1 (ko) 암호화 및 복호화를 위한 장치 및 방법
US11979501B2 (en) Optimized access in a service environment
US11811915B1 (en) Stateless system to protect data
KR102145679B1 (ko) Https 프로토콜에서 mitm 공격을 회피하는 방법
CN116318647B (zh) 一种具有同态特性的cp-abe外包解密方法和装置
Ramesh et al. Cha-Cha 20: stream cipher based encryption for cloud data centre
RU2774807C2 (ru) Гомоморфное шифрование для проверки подлинности с помощью пароля