KR20160131798A - 연산 에러 검출이 가능한 준동형 암호 방법 및 그 시스템 - Google Patents

연산 에러 검출이 가능한 준동형 암호 방법 및 그 시스템 Download PDF

Info

Publication number
KR20160131798A
KR20160131798A KR1020150064880A KR20150064880A KR20160131798A KR 20160131798 A KR20160131798 A KR 20160131798A KR 1020150064880 A KR1020150064880 A KR 1020150064880A KR 20150064880 A KR20150064880 A KR 20150064880A KR 20160131798 A KR20160131798 A KR 20160131798A
Authority
KR
South Korea
Prior art keywords
information
error
final
public key
additional
Prior art date
Application number
KR1020150064880A
Other languages
English (en)
Other versions
KR102423885B1 (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 KR1020150064880A priority Critical patent/KR102423885B1/ko
Priority to US15/147,806 priority patent/US10270588B2/en
Publication of KR20160131798A publication Critical patent/KR20160131798A/ko
Application granted granted Critical
Publication of KR102423885B1 publication Critical patent/KR102423885B1/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
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • 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/304Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy based on error correction codes, e.g. McEliece

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)
  • Power Engineering (AREA)

Abstract

연산 에러 검출이 가능한 준동형 암호 방법 및 그 시스템이 제공된다. 준동형 암호 기법을 토대로 암호화되고 연산이 수행된 암호문에 대하여 평문을 획득하고, 획득된 평문으로부터 최종 비밀키에 포함된 부가 비밀 정보에 대응하는 하위 설정 비트들을 평문 정보로 추출한다. 그리고 획득한 평문에서 하위 설정 비트들을 제외한 나머지 비트들에 대하여 연산 에러 검사를 수행한다.

Description

연산 에러 검출이 가능한 준동형 암호 방법 및 그 시스템{Method and system for additive homomorphic encryption scheme with error detection functionality}
본 발명은 암호 방법에 관한 것으로, 더욱 상세하게 말하자면, 연산 에러 검출이 가능한 준동형 암호 방법 및 그 시스템에 관한 것이다.
준동형 암호(Homomorphic Encryption) 기법은 암호화된 데이터에 대한 평문 정보나 비밀 정보를 사용하지 않고도, 공개키와 같이 공개된 정보를 기반으로 암화화된 데이터에 대한 연산을 수행할 수 있는 기술이다. 구체적으로는 암호문에 대응되는 평문 데이터를 알지 못하더라도 암호문에 일련의 데이터 처리를 수행하여 암호화된 평문 데이터에 연산이 적용되게 함으로써, 암호화된 정보의 기밀성을 해치지 않으면서 암호 데이터에 대한 다양한 데이터 처리를 수행할 수 있는 암호 기법이다.
준동형 암호 기법에 대한 다양한 연구가 이루어지고 있으며, 초반에는 암호화된 상태로 덧셈 또는 곱셈에 대한 연산만 보존하는 제한된 기법들이 제안되어 두 연산을 모두 보존할 수 있는 방향에 대한 관심이 높았다. 최근까지 모든 연산에 대한 연산 보존은 어렵다는 것이 일반적인 인식이었다. 유일하게 두 연산을 모두 보존하는 기법으로 타원곡선(elliptic curve)에서 정의되는 페어링(pairing) 연산을 기반으로 하는 기법이 제안되었으나, 곱셈 횟수가 1회로 제한되는 한계가 있었다.
최근 2009년도 Gentry에 의해 최초로 두 연산을 안전하게 제공하는 기법이 설계되었으며, Gentry의 설계 방식에 기초한 준동형 암호 기법을 기반으로 이론적인 안전성 제공, 구현 성능 향상, 응용 서비스 제공 등 다양한 방향의 연구가 진행되고 있다. 그러나 Gentry의 새로운 설계 방식이 성능면에서 근본적인 한계를 가지기 때문에 현실적으로 응용 환경에 적용하기 어렵다는 단점이 있다. 이에 따라, 최근 현실적으로 응용 환경에 적용 가능한 성능이 제공되는 기술에 대한 연구가 다시 활발해지고 있다.
실제로 암호화된 데이터에 대한 처리가 이루어지는 응용 환경 중에는 덧셈 연산만 제공되어도 제공 가능한 서비스가 상당수 존재한다. 더욱이, 근래 Gentry의 설계 방식으로는 현실적인 기술 개발이 어려울 것이라는 판단과 함께 현실적인 기술에 대한 필요성의 증가로 인하여, 위에 기술한 바와 같이 실제 서비스에 적용 가능한 수준의 현실적인 기술에 대한 요구와 이에 따른 연구가 증가하고 있다.
준동형 암호에 대한 연구가 진행됨에 따라 암호화된 상태로 저장된 데이터를 기반으로 가공된 정보가 올바르게 생성되었는지에 대한 검증의 필요성이 제기되고 있다. 즉, 계산 과정에서 다양한 이유로 발생할 수 있는 에러에 대한 검증 방법의 필요하게 되었다. 그러나 아직은 암호화된 상태에서 연산을 현실적인 비용으로 제공하는 것도 쉽지 않은 수준이며, 에러 검출 기술에 대한 필요성은 인식되고 있으나 기술적 해결책은 아직 전무한 상태이다. 향후 데이터 위탁시 암호화 상태로 저장하고, 이를 기반으로 다양한 데이터 가공 서비스를 제공하며, 이와 같이 제공된 서비스의 신뢰성을 향상시키기 위해서는 암호데이터 가공 과정에서 발생하는 에러를 검출할 수 있는 기술이 필요하다.
본 발명이 해결하고자 하는 과제는 암호화된 데이터들에 대한 연산이 수행될 때, 계산 과정에 발생한 에러를 검출할 수 있는 준동형 암호 방법 및 그 시스템을 제공하는 것이다.
본 발명의 특징에 따른 암호 방법은, 준동형 암호 기법을 토대로 암호화되고 연산이 수행된 암호문에 대하여, 상기 암호문을 복호화하여 평문을 획득하는 단계; 상기 획득된 평문으로부터 최종 비밀키에 포함된 부가 비밀 정보에 대응하는 하위 설정 비트들을 평문 정보로 추출하는 단계; 및 상기 획득한 평문에서 하위 설정 비트들을 제외한 나머지 비트들에 대하여 연산 에러 검사를 수행하는 단계를 포함한다.
상기 연산 에러 검사를 수행하는 단계는, 상기 암호문에 할당된 색인 집합에 포함되는 각 색인에 대응하는 난수를 유도하는 단계; 상기 색인들에 대응하여 유도된 난수들의 합을 구하는 단계; 및 상기 구해진 난수들의 합과 에러 판단을 위한 설정값을 비교하여 상기 연산에 대한 에러 발생 여부를 판단하는 단계를 포함할 수 있다.
상기 에러 발생 여부를 판단하는 단계는, 상기 구해진 난수들의 합이 상기 설정값과 동일한 경우에는 상기 암호문에 대하여 수행된 연산에 에러가 발생하지 않은 것으로 판단하는 단계; 및 상기 구해진 난수들의 합이 설정값과 동일하지 않은 경우에는 상기 암호문에 대하여 수행된 연산에 에러가 발생한 것으로 판단하는 단계를 포함할 수 있다.
상기 설정값은 상기 평문에서 하위 설정 비트들을 제외한 나머지 비트들 중에서 상위 설정 비트에 해당하는 값이며, 상위 설정 비트는 eb + ob 비트이며, eb는 에러 검출을 위한 부가 데이터의 정보량을 나타내고, ob 는 최대 연산수를 나타낼 수 있다.
상기 최종 비밀키에 포함된 부가 비밀 정보는 상기 암호문에 할당된 색인 정보와 기본 비밀키를 토대로 생성된 비트 정보일 수 있다.
상기 암호문은 최종 공개키를 이용하여 암호화된 평문이며, 상기 최종 공개키는 상기 준동형 암호 기법에 대한 기본 공개키와 연산 에러 검사를 위한 부가 정보를 토대로 생성된 공개키일 수 있다.
상기 부가 정보는 데이터 연산 결과 크기의 상한값을 나타내는 ub, 에러 검출을 위한 부가 데이터의 정보량을 나타내는 eb, 그리고 최대 연산수를 나타내는 ob 를 포함할 수 있다.
본 발명의 다른 특징에 따른 암호 방법은, 준동형 암호 기법에 대한 기본 공개키와 연산 에러 검사를 위한 부가 정보를 토대로 하는 최종 공개키를 생성하는 단계; 상기 준동형 암호 기법에 대한 기본 비밀키와 연산 에러 검사를 위한 부가 비밀 정보를 토대로 하는 최종 비밀키를 생성하는 단계; 및 상기 최종 공개키를 이용하여 평문을 암호화하는 단계를 포함한다.
상기 부가 정보는 데이터 연산 결과 크기의 상한값을 나타내는 ub, 에러 검출을 위한 부가 데이터의 정보량을 나타내는 eb, 그리고 최대 연산수를 나타내는 ob 를 포함할 수 있다. 상기 부가 정보는 ob·2 ub+eb <N 을 만족하며, 상기 N은 평문의 최대 크기를 나타낼 수 있다.
상기 최종 비밀키에 포함되는 부가 비밀 정보는 상기 암호문에 할당된 색인 정보와 기본 비밀키를 토대로 생성된 비트 정보일 수 있다.
상기 기본 비밀키와 상기 색인 정보를 해쉬(hash) 처리하여 획득되는 결과를 에러 검사를 위한 비밀 부가 정보로 사용할 수 있다.
본 발명의 또 다른 특징에 따른 암호 시스템은, 준동형 암호 기법에 대한 기본 공개키와 연산 에러 검사를 위한 부가 정보를 토대로 하는 최종 공개키를 생성하는 최종 공개키 생성부, 상기 준동형 암호 기법에 대한 기본 비밀키와 연산 에러 검사를 위한 부가 비밀 정보를 토대로 하는 최종 비밀키를 생성하는 최종 비밀키 생성부를 포함하는, 키 생성 장치; 및 상기 최종 공개키를 이용하여 평문을 암호화하는 암호화 장치를 포함할 수 있다.
상기 최종 공개키는 상기 준동형 암호 기법에 대한 기본 공개키와 연산 에러 검사를 위한 부가 정보를 토대로 생성된 공개키이며, 상기 부가 정보는 데이터 연산 결과 크기의 상한값을 나타내는 ub, 에러 검출을 위한 부가 데이터의 정보량을 나타내는 eb, 그리고 최대 연산수를 나타내는 ob 를 포함할 수 있다.
상기 최종 비밀키에 포함되는 부가 비밀 정보는 상기 암호문에 할당된 색인 정보와 기본 비밀키를 토대로 생성된 비트 정보일 수 있다.
상기 암호 시스템은 상기 준동형 암호 기법을 토대로 암호화되고 연산이 수행된 암호문에 대하여 복호화를 수행하고, 상기 연산에 대한 에러 검사를 수행하는 복호화 장치를 더 포함할 수 있다.
상기 복호화 장치는 상기 암호문을 복호화하여 평문을 획득하는 복호화부; 상기 획득된 평문으로부터 상기 최종 비밀키에 포함된 부가 비밀 정보에 대응하는 하위 설정 비트들을 평문 정보로 추출하는 평문 추출부; 및 상기 획득한 평문에서 하위 설정 비트들을 제외한 나머지 비트들에 대하여 연산 에러 검사를 수행하는 에러 검사부를 포함할 수 있다.
상기 에러 검사부는, 상기 암호문에 할당된 색인 집합에 포함되는 각 색인에 대응하는 난수를 유도하는 난수 유도부; 상기 색인들에 대응하여 유도된 난수들의 합을 구하는 난수 합 계산부; 및 상기 구해진 난수들의 합과 에러 판단을 위한 설정값을 비교하여 상기 연산에 대한 에러 발생 여부를 판단하는 에러 판단 처리부를 포함할 수 있다.
상기 에러 판단 처리부는, 상기 구해진 난수들의 합이 상기 설정값과 동일한 경우에는 상기 암호문에 대하여 수행된 연산에 에러가 발생하지 않은 것으로 판단하고, 상기 구해진 난수들의 합이 설정값과 동일하지 않은 경우에는 상기 암호문에 대하여 수행된 연산에 에러가 발생한 것으로 판단할 수 있다.
본 발명의 실시 예에 따르면, 암호데이터 연산시 발생하는 다양한 에러를 검출할 수 있다.
또한 준동형 암호화 기법을 사용하여 암호데이터 연산 위탁 서비스로 암호화된 데이터에 대한 덧셈이 수행되는 경우, 데이터 원 소유주는 결과만 전송 받더라도 본인이 요청했던 연산이 제대로 수행되었는지 확인할 수 있는 부가 기능이 제공된다. 이러한 특성으로 인해 암호데이터 위탁 및 위탁 정보 기반의 데이터 가공 서비스에서 데이터 처리 과정의 에러 발생 여부를 확인할 수 있는 기능이 제공되기 때문에 해당 서비스 신뢰성 향상을 기대할 수 있다.
도 1은 본 발명의 실시 예에 따른 부가 정보를 포함하는 키 생성 과정을 나타낸 도이다.
도 2는 본 발명의 실시 예에 따른 암호화 과정을 나타낸 도이다.
도 3은 본 발명의 실시 예에 따른 복호화 및 에러 검사 과정을 나타낸 도이다.
도 4는 본 발명의 실시 예에 따른 암호 방법에서의 키 생성 및 암호화 과정의 흐름도이다.
도 5는 본 발명의 실시 예에 따른 암호 방법에서의 복호화 및 에러 검사 과정의 흐름도이다.
도 6은 본 발명의 실시 예에 따른 암호 시스템의 구조를 나타낸 도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하, 도면을 참조하여 본 발명의 실시 예에 따른 준동형 암호 방법 및 그 시스템에 대하여 설명한다.
본 발명의 실시 예에 따른 준동형 암호 방법에서, 암호화된 데이터들에 대한 연산(예를 들어, 덧셈)이 수행될 때, 계산과정에 발생한 에러를 검출한다.
먼저, 준동형 암호화 기법에 대한 기본적인 설정 및 동작 방식에 대하여 설명한다.
일반적인 정보를 평문(plaintext)이라고 하고, 이 평문의 내용을 숨기는 방법을 암호화(encryption)라고 한다. 암호화된 평문을 암호문(ciphertext)이라 하며, 암호문을 다시 평문으로 바꾸는 방법을 복호화(decryption)라고 한다. 공개키 알고리즘은 암호화와 복호화에 서로 다른 키를 사용하는 알고리즘이다. 제3자는 암호화 키를 알고 있더라도 암호문을 복호화할 수 없으며, 복호화 키를 가진 사람만이 암호문을 복호화할 수 있다. 이러한 특징 때문에 암호화 키를 공개하고, 복호화 키는 숨기며, 암호화 키를 공개키(public-key)라고 하고, 복호화 키를 비밀키(private-key)라고 한다.
여기서는 Paillier의 기법을 토대로 준동형 암호화 기법의 기본적인 설정 및 동작 방식을 설명한다. 그러나 본 발명은 Paillier의 기법에 한정되는 것은 아니며, 정수의 덧셈이 지원되는 준동형 암호화 기법에는 모두 적용 가능하다.
Paillier의 암호화 기법은 다음과 같이 구성된다.
우선, 키를 생성한다. 인수분해 문제에 대한 안전성을 제공하기 위한 크기를 가지는 두 소수 p, q 를 선택한다. 두 소수 p, q 또는 Φ(N) 이 비밀키로 사용될 수 있다. 여기서 Φ는 오일러(Euler) 함수를 나타낸다.
비밀키로 생성된 두 소수를 토대로 N=pq를 계산하고 N2를 공개 모듈로 사용한다. 모듈로 N2 에 대한 수 체계는 곱셈에 대한 위수가 N·Φ(N) 이므로, 위수가 N인 원소와 Φ(N)인 원소가 존재한다. 위수가 N인 생성원 g와 위수가 Φ(N)인 생성원 h를 찾는다. 두 생성원은 다음과 같은 방법으로 계산할 수 있다.
임의의 원소 a를 선택하고, g=aΦ(N) mod N2 로 계산하면 g의 위수는 N이 된다. g=1+N 도 동일한 특성이 제공되므로, 이하에서는 g=1+N 인 경우를 기준으로 설명한다. g와 유사하게, h는 임의의 원소 b를 선택하고 h=b N mod N 2 로 계산하면 h의 위수가 Φ(N)이 된다.
이러한 과정을 통하여 생성되는 공개 정보는 N 2 , g, h 이다. Paillier의 암호화 기법에서는 암호화를 위해 난수 r을 선택하고, 평문 m에 대한 암호문을 다음과 같이 계산한다.
Figure pat00001
c에 대한 복호화는 다음과 같은 수학식으로 이루어진다.
Figure pat00002
이러한 암복호화 과정에서 평문은 Z N 에서 선택된다.
본 발명의 실시 예에서는 위와 같은 준동형 암호화 기법(예: Paillier의 암호화 기법)에서, 계산 과정에서 다양한 이유로 발생할 수 있는 에러에 대한 검증을 수행한다.
먼저, 본 발명의 실시 예에 따른 연산 에러 검출이 가능한 준동형 암호 방법에서, 키를 포함하는 부가 정보를 생성하는 과정에 대하여 설명한다.
도 1은 본 발명의 실시 예에 따른 부가 정보를 포함하는 키 생성 과정을 나타낸 도이다.
본 발명의 실시 예에서는, 도 1에서와 같이, 기반이 되는 준동형 암호화 기법(또는 기반 암호 기법이라고 함)의 공개키와 비밀키를 포함하는 키 정보, 그리고 부가 기능 제공을 위한 데이터 인코딩시 필요한 정보를 입력으로 하여, 연산 에러에 대한 검증이 가능한 준동형 암호에서 사용될 공개키+와 비밀키+를 생성한다.
에러 검사 기능 제공을 위한 부가 정보 생성 과정을 통하여, 연산 에러에 대한 검증 기능을 제공하기 위한 키가 생성된다. 에러 검증 기능을 제공할 대상인 기반 암호 기법의 공개키, 비밀키, 그리고 데이터 인코딩 정보를 토대로, 부가 기능 제공이 가능한 형태로 변형되거나 정보가 추가된 공개키+와 비밀키+를 생성한다.
Paillier 기법의 경우 안전성을 위해 연산 모듈로 N의 크기가 정해지고 이에 따라 연산 가능한 정수 크기가 결정된다. 본 발명의 실시 예에 따른 부가 기능 제공을 위해 세 가지의 변수가 추가로 정해진다. 여기서 부가 기능은 연산에 대한 에러 검사 기능을 포함한다. 세 가지의 변수는 데이터 연산 결과 크기의 상한값 ub, 에러 검출을 위한 부가 데이터의 정보량 eb, 최대 연산수 (암호 데이터에 대한 연산(예: 덧셈) 횟수의 최대값) ob 를 포함한다.
이러한 세가지 변수로 이루어지는 값을 구성한다. 이 값은 ob·2 ub+eb 와 같이 구성될 수 있다. 이러한 세가지 변수로 이루어지는 값이 기반 암호 기법에서 표현 가능한 평문의 최대 크기보다 작아야 하며, 이에 따라 세가지 변수로 이루어지는 값은 ob·2 ub+eb <N 의 조건을 만족한다. 이러한 조건을 만족하도록 세 변수들의 값이 선택될 수 있다. 예를 들어, 1025비트 N을 사용하고, 에러 검출을 위해 80비트 부가 데이터(eb)를 사용하며, 약 100만(
Figure pat00003
220)번 이하(ob )의 덧셈 연산이 수행되는 경우, 위의 조건 2 20+ub+80 <2 1024 에 의해 데이터 연산 결과 크기의 상한값 ub 즉, 연산 합의 총 크기가 2924(
Figure pat00004
10278)보다 작은 데이터 처리에 본 발명의 실시 예에 따른 방법이 적용 가능하다. 이와 같이 선택된 경우, 데이터 연산 결과 크기의 상한값이 2 ub 보다 작은 평문 집합에 대해 본 발명의 실시 예에 따른 방법이 적용 가능하다.
위에 기술된 바와 같은 데이터 연산의 조건(ob·2 ub+eb <N )을 만족하는 평문 집합을 M 이라 하자. 이 경우, 본 발명의 실시 예에 따른 공개키+는 기존 공개키 정보(도 1에서 입력되는 키 정보에 포함되는 공개키)에 세 변수 ub, eb, ob 를 추가적으로 더 포함한다.
이러한 본 발명의 실시 예에 따른 부가 정보를 생성하는 방법을 Paillier 기법 이외의 다른 암호화 기법에 적용하는 경우, N 대신 해당 암호화 기법에서 제공하는 연산의 상한을 위의 데이터 연산의 조건에 따른 조건 변수로 설정하여 위에 기술된 바와 같이 세 변수들을 선택하고, 선택된 세 변수들을 토대로 공개키+ 를 생성하여 해당 암호화 기법을 동일하게 적용한다. 세 변수들을 설명의 편의상 "부가 정보"라고 명명할 수 있다.
한편, 도 1에서 키 정보에 포함되는 비밀키는 기반 암호 기법에 따라 생성되는 암호화/복호화를 위한 비밀키이며, 본 발명의 실시 예에 따른 비밀키+는 에러 검사를 위한 부가 비밀 정보를 포함하는 비밀키이다. 에러 검사를 위한 부가 비밀 정보(또는 eb 비트 정보라고도 함)는 다양한 방식으로 생성될 수 있다.
기본적으로 각 암호문마다 해당 암호문을 유일하게 지정하는 색인 정보가 존재하는 것으로 가정한다. 이 경우, 색인 정보는 유형의 정보로 암호문 앞에 추가될 수도 있고, 암호문 집합에서 존재하는 순서가 해당 색인 정보가 될 수도 있다. 이때, 에러 검사를 위한 부가 비밀 정보는 색인 정보에서 생성된 비밀 난수이다. 암호화 수행측에서만 알 수 있는 방식으로 색인 정보로부터 비밀 난수를 생성하여 에러 검사를 위한 부가 정보(eb 비트 정보)로 사용될 수 있다. 예를 들어, 암호화 수행자가 가진 비밀키와 색인 정보를 해쉬(hash) 처리하여 획득되는 결과를 에러 검사를 위한 부가 정보로 사용할 수 있다. 이것은 하나의 예이며, 본 발명에 한정되는 것은 아니다.
본 발명의 실시 예에서는 암호문에 할당된 색인 정보와 비밀 정보(비밀키)를 토대로 생성된 eb 비트 정보를 에러 검사를 위한 부가 정보로 사용하며, 이에 따라 에러 검사를 위한 부가 비밀 정보가 기반 암호 기법의 비밀키에 포함되어 비밀키+가 된다.
다음에는 위와 같이 생성되는 공개키+를 토대로 암호화를 수행한다.
도 2는 본 발명의 실시 예에 따른 암호화 과정을 나타낸 도이다.
여기서는 본 발명의 실시 예에 따라 정의되는 평문 집합에서 선택된 평문에 대하여 암화를 수행하는 과정에 대하여 설명하며, 예로써 Paillier 기법을 기반으로 도 2를 참조하여 암호화 과정을 설명한다.
평문 데이터 즉, 위에 기술된 데이터 연산의 조건을 만족하는 평문 집합 M에서 선택된 평문 m 과 공개키+를 입력으로, 도 2에서와 같이, 평문 m 에 대한 암호화가 다음과 같이 수행된다.
각 암호문에 유일하게 할당되는 색인 정보 idx을 선택하고 이를 기반으로 임의의 난수 r idx 를 생성하고, 생성된 난수와 공개키+를 이용하여 선택된 평문을 다음과 같이 인코딩한다.
Figure pat00005
난수 r idx 를 생성하는 방식은 비밀로 유지되며, 암호화 생성이 허용된 신뢰 가능 주체들이 이를 공유한다. 도 1에 대한 설명에서 기술한 것과 같은 방식을 사용하여 난수 r idx 를 생성할 있다. 위에서 언급한 바와 같이 난수 r idx 생성 과정시 키 또는 알고리즘의 형태의 비밀 공유를 통한 접근 방법이 적용될 수 있으며, 그 제한은 없다.
임의 난수 r을 선택하고, 위와 같이 인코딩된 평문 m’ 에 대한 암호문 c 을 다음과 같이 산출한다.
Figure pat00006
응용 환경에 따라 암호문에 할당된 색인 정보 idx는 암호문 c와 함께 저장될 수도 있고, 필요하지 않은 경우 저장하지 않고 암호문만 저장될 수 있다.
이와 같이 생성된 암호문에 대하여 연산이 수행될 수 있다.
암호화된 평문 데이터 즉, 암호 데이터에 연산을 수행할 수 있는데, 여기서는 암호 데이터 덧셈 과정을 예시로 설명한다. 암호 데이터 덧셈 과정은 공개된 기술을 사용할 수 있으며, 본 발명의 보호 범주에 해당하지 않기 때문에 별도의 도면을 통해 설명하지는 않으나, 발명의 이해를 돕기 위해 간략히 설명한다.
예를 들어, 평문 m 1m 2 에 대한 두 암호문 c 1 , c 2 가 주어지면 다음과 같은 계산을 통해 m 1m 2 의 덧셈 연산 결과 즉, m 1m 2 의 합에 대한 암호문 c 3 를 계산할 수 있다.
Figure pat00007
이러한 간단한 곱셈 연산이 두 암호화된 평문의 합을 보존하는 것은 다음의 식을 통해 확인할 수 있다.
Figure pat00008
이러한 연산에 대하여, 암호화된 상태로 저장된 데이터를 기반으로 가공된 정보가 올바르게 생성되었는지에 대한 검증이 필요하다.
다음에는 위와 같은 암호화 과정을 통하여 획득된 암호문에 대한 복호화 및 에러 검사 과정에 대하여 설명한다.
도 3은 본 발명의 실시 예에 따른 복호화 및 에러 검사 과정을 나타낸 도이다.
암호문 c 는 다음과 같은 과정을 통하여 복호화되고 연산 과정의 에러가 검사된다.
첨부한 도 3에서와 같이, 주어진 암호문 c와 본 발명의 실시 예에 따른 공개키+와 비밀키+를 토대로, 복호화 및 에러 검사 과정이 수행된다.
주어진 암호문 c에 대해 다음과 같이 평문 m’ 를 산출한다.
Figure pat00009
위의 수학식 7에 따라 산출된 m’ 에서 비밀키+에 포함된 에러 검사를 위한 부가 비밀 정보(eb 비트 정보)를 토대로 평문 정보를 추출한다. 구체적으로, m’ 에서 하위비트들 즉, eb 비트 정보에 대응하는 하위 설정 비트(하위 ub 비트)를 평문 정보로 추출한다. m’ 에서 하위 ub 비트 정보를 제외한 나머지는 연산 에러 검사를 위해 사용된다.
본 발명의 실시 예에 따른 연산 결과의 에러 검사를 위해, 연산 대상이 되는 암호문에 할당된 색인 집합이 필요하다. 총 n개의 데이터에 대한 덧셈을 수행하였고, 각 색인이 idx_1, …, idx_n 이라고 하면, 각 색인 idx_i 에 대응되는 난수 r idx_i 를 유도하고, 유도된 난수 r idx_i 들의 합이 m’의 상위 설정 비트들과 동일한지를 확인한다. 상위 설정 비트는 eb+ob 비트에 해당한다. m’ 에서 하위 ub 비트 정보를 제외한 나머지들 중에서 상위 eb+ob 비트들이 에러 검사를 위해 사용된다.
여기서, 난수 r idx_i 를 유도하기 위하여 다양한 방식들이 사용될 수 있다. 예를 들어, 암호화를 수행하는 권한을 가진 사람들 사이에 난수를 공유하고, 각 색인 정보와 공유한 난수를 함께 입력으로 하여 해쉬값을 생성하는 방식(제1 난수 유도 방법)을 사용하여 난수를 유도할 수 있다. 또는 어떤 다항식 함수의 비밀 계수를 암호화 권한 소유자들이 공유한 상태에서 색인을 입력으로 다항식 함수의 값을 구하여 이를 난수로 사용(제2 난수 유도 방법)할 수 있다. 이러한 두 가지 난수 유도 방법을 기술하였으나, 본 발명은 이러한 난수 유도 방법에 제한되지 않으며, 암호화 생성시 비밀 정보를 공유한 사람들만 계산할 수 있는 방식이라면 어떤 방법이라도 사용될 수 있다.
유도된 난수 r idx_i 들의 합이 m’의 상위 설정 비트(eb+ob 비트)와 동일한 경우에는 연산에 에러가 발생하지 않은 것으로 판단하며, 동일하지 않은 경우에는 에러가 발생한 것으로 판단한다.
본 발명의 실시 예에서는 기본적으로 설정값 보다 큰 수의 덧셈이 제공되는 준동형 암호화 기법의 평문 영역을 2개로 나누어 처리(m’에서 하위 ub 비트들과, 이러한 하위 ub 비트들을 제외한 나머지 비트들)하는 기본 아이디어를 바탕으로 하고 있다. 구체적으로, 큰 수의 덧셈 수행시 서로 영역을 미치지 않을 정도로 거리가 있는 하위 비트와 상위 비트 영역에 암호화할 데이터와 해당 데이터 포함된 연산 수행시 이를 검증하기 위한 검증 데이터를 나누어 저장함으로써, 큰 수의 덧셈이 수행되더라도 데이터 연산 결과와 검증 정보들의 처리 결과가 독립적으로 존재하게 되고, 검증 정보들을 통해 수행된 연산이 올바른지 검사할 수 있다.
이와 같은 아이디어를 일반화하면, 평문 영역을 덧셈에 대한 연산을 고려했을 때 기반 기법의 평문의 영역을 다수의 독립된 영역으로 나누는 기술로 이해할 수 있으며 이와 같이 독립적으로 관리되는 영역에 다른 값을 저장하여 서로 다른 덧셈 연산을 동시에 병렬로 진행할 수 있다. 이러한 특성은 다양한 장점을 제공할 수 있다. 따라서, 본 발명의 범위를 에러 검사 기능 제공으로 한정 짓지 아니하고 평문 공간을 다수의 공간으로 나누어 활용할 수 있다는 일반적인 기능을 제공하는 것으로 확장하여 이해할 수 있다.
이러한 본 발명의 실시 예에 따르면 준동형 암호화 기법에서 암호화된 데이터들에 대한 연산(덧셈)이 수행될 때, 계산 과정에 발생한 에러를 검출할 수 있다.
암호데이터 연산시 발생하는 다양한 에러를 검출할 수 있으므로, 준동형 암호화 기술에서 선의의 서비스 제공자라고 하더라도 발생할 수 있는 연산 에러를 확인할 수 있다. 그러므로 암호화된 데이터를 외부 서버에 저장하고 이에 대한 가공을 위탁하는 서비스에서, 데이터 처리 결과의 신뢰성을 향상시킬 수 있다.
다음에는 위에 기술된 바와 같은 과정들을 흐름도를 토대로 설명한다.
도 4는 본 발명의 실시 예에 따른 암호 방법에서의 키 생성 및 암호화 과정의 흐름도이다.
준동형 암호 기법을 기반으로 하는 암호화를 위하여, 본 발명의 실시 예에 따른 공개키+와 비밀키+를 생성한다.
여기서는 설명의 편의를 위하여, 기반 암호 기법의 비밀키를 "기본 비밀키"라 명명하고, 본 발명의 실시 예에 따른 비밀키+ 를 "최종 비밀키"라 명명한다. 그리고 미리 알려진 공개키를 "기본 공개키"라 명명하고, 본 발명의 실시 예에 따른 공개키+ 를 "최종 공개키"라 명명한다.
구체적으로, 기본 공개키와 기본 비밀키 그리고 데이터 인코딩시 필요한 정보(세가지 변수 등)를 입력받고(S100), 본 발명의 실시 예에 따른 세 가지 변수를 포함하는 공개키+ 즉, 최종 공개키를 생성한다(S110). 여기서 세 가지 변수는 데이터 연산 결과 크기의 상한값, 에러 검출을 위한 부가 데이터의 정보량, 최대 연산수를 포함한다. 이러한 세가지 변수들로 이루어지는 값(ob·2 ub+eb )은 암호화 기법에서 표현 가능한 평문의 최대 크기보다 작은 조건을 만족한다.
또한, 비밀키+ 즉, 최종 비밀키를 생성한다. 기반 암호화 방법에 사용되는 비밀키와 에러 검사를 위한 부가 비밀 정보를 생성하고(S120), 부가 비밀 정보를 포함하는 최종 비밀키를 생성한다(S130). 에러 검사를 위한 부가 비밀 정보는 암호문에 대하여 지정되는 색인 정보로부터 생성되는 비밀 난수일 수 있다. 비밀 난수는 다양한 방법으로 생성될 수 있으며, 예를 들어, 암호화 수행자가 가진 비밀키(기반 암호화 방법에 사용되는 비밀키)와 색인 정보를 해쉬(hash) 처리하여 획득되는 결과를 에러 검사를 위한 부가 비밀 정보로 사용할 수 있다.
이후, 데이터 연산의 조건을 만족하는 평문 집합에서 선택된 평문에 대하여 암호화를 수행한다(S140).
각 암호문에 유일하게 할당되는 색인 정보를 선택하고, 선택된 색인 정보를 기반으로 임의의 난수를 생성하고, 생성된 난수와 최종 공개키를 이용하여 선택된 평문을 인코딩한다. 그리고 임의 난수를 선택하고 인코딩된 평문에 대한 암호문을 계산한다.
이와 같은 암호화에 따라 생성된 암호문에 대하여 연산이 수행될 수 있다. 예를 들어, 설정값 보다 큰 수의 덧셈이 암호문에 대하여 수행될 수 있다.
도 5는 본 발명의 실시 예에 따른 암호 방법에서의 복호화 및 에러 검사 과정의 흐름도이다.
위에 기술된 바와 같이 준동형 암호 기법을 토대로 암호화되고 연산이 수행된 암호문에 대하여 복호화를 수행한다.
먼저, 연산이 수행된 암호문을 입력받는다(S300). 암호문에 대하여 최종 비밀키를 이용하여 복호화를 수행하여 평문을 획득한다(S310).
그리고 획득한 평문에서 평문 정보를 추출한다(S320). 구체적으로, 인코딩된 평문에서 최종 비밀키에 포함된 부가 비밀 정보에 대응하는 하위 설정 비트들을 평문 정보로 추출한다. 그리고, 평문에서 하위 설정 비트들을 제외한 나머지 비트들에 대하여 연산 에러 검사를 수행한다.
연산 결과의 에러 검사를 위해, 암호문에 할당된 색인 집합에 포함되는 각 색인에 대응하는 난수를 유도한다(S340). 그리고 색인들에 대응하여 유도된 난수들의 합을 구하고, 구해진 난수들의 합과 에러 판단을 위한 설정값을 비교한다(S350). 여기서 설정값은 평문에서 하위 설정 비트들을 제외한 나머지 비트들 중에서 상위 설정 비트에 해당하는 값이다. 상위 설정 비트는 eb + ob 비트이다.
구해진 난수들의 합이 설정값 즉, 상위 설정 비트와 동일한 경우에는 암호문에 대하여 수행된 연산에 에러가 발생하지 않은 것으로 판단한다(S360, S370). 반면, 난수들의 합이 설정값과 동일하지 않은 경우에는 암호문에 대하여 수행된 연산에 에러가 발생한 것으로 판단한다(S380).
도 7은 본 발명의 실시 예에 따른 암호 시스템의 구조를 나타낸 도이다.
본 발명의 실시 예에 따른 암호 시스템(1)은 키 생성 장치(10), 암호화 장치(20), 및 복호화 장치(30) 중 적어도 하나를 포함한다.
키 생성 장치(10)는 정보 입력부(11), 최종 공개키 생성부(12), 및 최종 비밀키 생성부(13)를 포함한다.
정보 입력부(11)는 기반 암호 기법에 사용되는 기본 공개키와 기본 비밀키 그리고 데이터 인코딩시 필요한 정보(세가지 변수 등)를 입력받는다.
최종 공개키 생성부(12)는 기본 공개키와 세가지 변수를 포함하는 공개키+ 즉, 최종 공개키를 생성한다. 여기서 세가지 변수는 데이터 연산 결과 크기의 상한값, 에러 검출을 위한 부가 데이터의 정보량, 최대 연산수를 포함한다.
최종 비밀키 생성부(13)는 에러 검사를 위한 부가 비밀 정보를 생성하고, 부가 비밀정보와 기본 비밀키를 포함하는 최종 비밀키를 생성한다. 부가 비밀 정보는 암호문에 할당된 색인 정보와 기본 비밀키를 토대로 생성되며, 기본 비밀키에 포함될 수 있다.
암호화 장치(20)는 평문에 대하여 최종 공개키를 이용하여 암호화를 수행한다. 여기서 평문은 데이터 연산의 조건을 만족하는 평문 집합으로부터 선택될 수 있다. 이를 위하여, 암호화 장치(20)는 난수 생성부(21), 평문 인코딩부(22) 및 암호문 계산부(23)를 포함한다.
난수 생성부(21)는 각 암호문에 유일하게 할당되는 색인 정보를 선택하고, 선택된 색인 정보를 기반으로 임의의 난수를 생성한다.
평문 인코딩부(22)는 생성된 난수와 최종 공개키를 이용하여 선택된 평문을 인코딩한다.
암호문 계산부(23)는 임의 난수를 선택하고 선택되니 난수를 이용하여 인코딩된 평문에 대한 암호문을 계산한다.
복호화 장치(30)는 준동형 암호 기법을 토대로 암호화되고 연산이 수행된 암호문에 대하여 복호화를 수행한다. 이를 위하여, 복호화 장치(30)는 복호화부(31), 평문 추출부(32), 및 에러 검사부(33)를 포함한다.
복호화부(31)는 암호문에 대하여 최종 비밀키를 이용하여 복호화를 수행하여 평문을 획득한다.
평문 추출부(32)는 획득한 평문에서 평문 정보를 추출한다. 구체적으로, 평문추출부(32)는 평문에서 최종 비밀키에 포함된 부가 비밀 정보에 대응하는 하위 설정 비트들을 평문 정보로 추출한다.
에러 검사부(33)는 평문에서 하위 설정 비트들을 제외한 나머지 비트들에 대하여 연산 에러 검사를 수행한다.
이를 위하여, 에러 검사부(33)는 암호문에 할당된 색인 집합에 포함되는 각 색인에 대응하는 난수를 유도하는 난수 유도부(331), 색인들에 대응하여 유도된 난수들의 합을 구하는 난수 합 계산부(332), 구해진 난수들의 합과 에러 판단을 위한 설정값을 비교하는 에러 판단 처리부(333)를 포함한다. 여기서, 설정값은 평문에서 하위 설정 비트들을 제외한 나머지 비트들 중에서 상위 설정 비트에 해당하는 값이다. 상위 설정 비트는 eb + ob 비트이다.
에러 판단 처리부(332)는 구해진 난수들의 합이 상위 설정 비트와 동일한 경우에는 암호문에 대하여 수행된 연산에 에러가 발생하지 않은 것으로 판단한다. 반면, 난수들의 합이 설정값과 동일하지 않은 경우에는 암호문에 대하여 수행된 연산에 에러가 발생한 것으로 판단한다.
이러한 구조로 이루어지는 본 발명의 실시 예에 따른 암호 시스템은 응용 서비스 환경에 적용될 수 있다. 예를 들어, 데이터 원 소유측이 암호문을 생성하여 데이터 위탁 서버 예를 들어, 스토리지 서버에 위탁하고, 스토리지 서버가 위탁받은 암호문을 필요에 따라 데이터 원 소유측에 제공하고, 특히, 필요에 따라 스토리지 서버가 위탁받은 암호문에 대하여 연산을 수행하여 데이터 원 소유측에 제공하는 응용 서비스 환경에 적용될 수 있다. 이 경우, 데이터 원 소유측은 본 발명의 실시 예에 따른 암호 시스템(1)을 포함하는 형태로 구현될 수 있다.
일례로, 데이터 원 소유측은 다수의 데이터를 암호화된 상태에서 덧셈이 제공되는 준동형 암호화 기법을 사용해 각기 다른 암호문으로 암호화 하고 암호문들을 스토리지 서버에 위탁한다. 그리고 데이터 원 소유측은 필요시 스토리지 서버에 저장된 데이터 중에서 일부 값들의 합을 계산해 달라고 서버에 요청할 수 있다. 이때, 스토리지 서버가 저장된 데이터 중 요청된 데이터들에 대한 합을 암호화된 상태로 계산하고 이를 요청한 데이터 원 소유측에 전달할 수 있다.
데이터 원 소유측은 결과가 암호화된 한 개의 암호문을 전송 받으며, 암호문 자체가 요청된 데이터 처리 결과에 대한 에러 검증 가능한 정보를 담고 있으므로, 위에 기술된 바와 같이 데이터 원 소유측은 연산 에러 검사를 수행하여 연산이 제대로 수행되었는지 확인한다. 즉, 스토리지 서버에 개인의 정보 등을 저장한 데이터 원 소유측은 스토리지 서버가 계산해서 보내준 결과만 전송 받더라도 자신이 요청했던 연산이 제대로 수행되었는지 확인할 수 있다.
이에 따라, 암호 데이터 위탁 및 위탁 정보 기반의 데이터 가공 서비스 신뢰성 향상을 기대할 수 있다. 또한 본 발명의 실시 예에 따른 방법을 기존의 연산(예를 들어, 큰 수의 덧셈)이 제공되는 준동형 암호화 기법에 기반 기술의 구성을 크게 변형하지 않고 쉽게 적용할 수 있어, 그 활용성이 높다.
한편 상술한 본 발명의 설명에서는 구체적인 실시 예에 관해 설명하였으나, 여러 가지 변형이 본 발명의 범위에서 벗어나지 않고 실시될 수 있다. 즉 본 발명에서 기술하고 있는 각 변수를 생성하는 방법에는 제약이 없으며 상기 기술된 목적에 위배되지 않는 범위에서 선택 및 구현 가능하다.
이상에서 설명한 본 발명의 실시 예는 장치(물건) 및 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시 예에 따른 방법의 구성에 대응하는 기능을 실행시킬 수 있는 프로그램 또는 그 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록 매체를 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시예의 기재로부터 본 발명이 속하는 기술분야의 전문가라면 쉽게 구현할 수 있는 것이다.
이상에서 본 발명의 실시 예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.

Claims (19)

  1. 준동형 암호 기법을 토대로 암호화되고 연산이 수행된 암호문에 대하여, 상기 암호문을 복호화하여 평문을 획득하는 단계;
    상기 획득된 평문으로부터 최종 비밀키에 포함된 부가 비밀 정보에 대응하는 하위 설정 비트들을 평문 정보로 추출하는 단계; 및
    상기 획득한 평문에서 하위 설정 비트들을 제외한 나머지 비트들에 대하여 연산 에러 검사를 수행하는 단계
    를 포함하는, 암호 방법.
  2. 제1항에 있어서
    상기 연산 에러 검사를 수행하는 단계는,
    상기 암호문에 할당된 색인 집합에 포함되는 각 색인에 대응하는 난수를 유도하는 단계;
    상기 색인들에 대응하여 유도된 난수들의 합을 구하는 단계; 및
    상기 구해진 난수들의 합과 에러 판단을 위한 설정값을 비교하여 상기 연산에 대한 에러 발생 여부를 판단하는 단계
    를 포함하는 암호 방법.
  3. 제2항에 있어서
    상기 에러 발생 여부를 판단하는 단계는,
    상기 구해진 난수들의 합이 상기 설정값과 동일한 경우에는 상기 암호문에 대하여 수행된 연산에 에러가 발생하지 않은 것으로 판단하는 단계; 및
    상기 구해진 난수들의 합이 설정값과 동일하지 않은 경우에는 상기 암호문에 대하여 수행된 연산에 에러가 발생한 것으로 판단하는 단계
    를 포함하는 암호 방법.
  4. 제2항에 있어서
    상기 설정값은 상기 평문에서 하위 설정 비트들을 제외한 나머지 비트들 중에서 상위 설정 비트에 해당하는 값이며, 상위 설정 비트는 eb + ob 비트이며, eb는 에러 검출을 위한 부가 데이터의 정보량을 나타내고, ob 는 최대 연산수를 나타내는, 암호 방법.
  5. 제1항에 있어서
    상기 최종 비밀키에 포함된 부가 비밀 정보는 상기 암호문에 할당된 색인 정보와 기본 비밀키를 토대로 생성된 비트 정보인, 암호 방법.
  6. 제1항에 있어서
    상기 암호문은 최종 공개키를 이용하여 암호화된 평문이며, 상기 최종 공개키는 상기 준동형 암호 기법에 대한 기본 공개키와 연산 에러 검사를 위한 부가 정보를 토대로 생성된 공개키인, 암호 방법.
  7. 제6항에 있어서
    상기 부가 정보는 데이터 연산 결과 크기의 상한값을 나타내는 ub, 에러 검출을 위한 부가 데이터의 정보량을 나타내는 eb, 그리고 최대 연산수를 나타내는 ob 를 포함하는, 암호 방법.
  8. 준동형 암호 기법에 대한 기본 공개키와 연산 에러 검사를 위한 부가 정보를 토대로 하는 최종 공개키를 생성하는 단계;
    상기 준동형 암호 기법에 대한 기본 비밀키와 연산 에러 검사를 위한 부가 비밀 정보를 토대로 하는 최종 비밀키를 생성하는 단계; 및
    상기 최종 공개키를 이용하여 평문을 암호화하는 단계
    를 포함하는, 암호 방법.
  9. 제8항에 있어서
    상기 부가 정보는 데이터 연산 결과 크기의 상한값을 나타내는 ub, 에러 검출을 위한 부가 데이터의 정보량을 나타내는 eb, 그리고 최대 연산수를 나타내는 ob 를 포함하는, 암호 방법.
  10. 제9항에 있어서
    상기 부가 정보는 ob·2 ub+eb <N 을 만족하며, 상기 N은 평문의 최대 크기를 나타내는, 암호 방법.
  11. 제8항에 있어서
    상기 최종 비밀키에 포함되는 부가 비밀 정보는 상기 암호문에 할당된 색인 정보와 기본 비밀키를 토대로 생성된 비트 정보인, 암호 방법.
  12. 제11항에 있어서
    상기 기본 비밀키와 상기 색인 정보를 해쉬(hash) 처리하여 획득되는 결과를 에러 검사를 위한 비밀 부가 정보로 사용하는, 암호 방법.
  13. 준동형 암호 기법에 대한 기본 공개키와 연산 에러 검사를 위한 부가 정보를 토대로 하는 최종 공개키를 생성하는 최종 공개키 생성부, 상기 준동형 암호 기법에 대한 기본 비밀키와 연산 에러 검사를 위한 부가 비밀 정보를 토대로 하는 최종 비밀키를 생성하는 최종 비밀키 생성부를 포함하는, 키 생성 장치; 및
    상기 최종 공개키를 이용하여 평문을 암호화하는 암호화 장치
    를 포함하는, 암호 시스템.
  14. 제13항에 있어서
    상기 최종 공개키는 상기 준동형 암호 기법에 대한 기본 공개키와 연산 에러 검사를 위한 부가 정보를 토대로 생성된 공개키이며, 상기 부가 정보는 데이터 연산 결과 크기의 상한값을 나타내는 ub, 에러 검출을 위한 부가 데이터의 정보량을 나타내는 eb, 그리고 최대 연산수를 나타내는 ob 를 포함하는, 암호 시스템.
  15. 제13항에 있어서
    상기 최종 비밀키에 포함되는 부가 비밀 정보는 상기 암호문에 할당된 색인 정보와 기본 비밀키를 토대로 생성된 비트 정보인, 암호 시스템.
  16. 제13항에 있어서
    상기 준동형 암호 기법을 토대로 암호화되고 연산이 수행된 암호문에 대하여 복호화를 수행하고, 상기 연산에 대한 에러 검사를 수행하는 복호화 장치
    를 더 포함하는, 암호 시스템.
  17. 제16항에 있어서
    상기 복호화 장치는
    상기 암호문을 복호화하여 평문을 획득하는 복호화부;
    상기 획득된 평문으로부터 상기 최종 비밀키에 포함된 부가 비밀 정보에 대응하는 하위 설정 비트들을 평문 정보로 추출하는 평문 추출부; 및
    상기 획득한 평문에서 하위 설정 비트들을 제외한 나머지 비트들에 대하여 연산 에러 검사를 수행하는 에러 검사부
    를 포함하는, 암호 시스템.
  18. 제17항에 있어서
    상기 에러 검사부는,
    상기 암호문에 할당된 색인 집합에 포함되는 각 색인에 대응하는 난수를 유도하는 난수 유도부;
    상기 색인들에 대응하여 유도된 난수들의 합을 구하는 난수 합 계산부; 및
    상기 구해진 난수들의 합과 에러 판단을 위한 설정값을 비교하여 상기 연산에 대한 에러 발생 여부를 판단하는 에러 판단 처리부
    를 포함하는 암호 시스템.
  19. 제18항에 있어서
    상기 에러 판단 처리부는, 상기 구해진 난수들의 합이 상기 설정값과 동일한 경우에는 상기 암호문에 대하여 수행된 연산에 에러가 발생하지 않은 것으로 판단하고, 상기 구해진 난수들의 합이 설정값과 동일하지 않은 경우에는 상기 암호문에 대하여 수행된 연산에 에러가 발생한 것으로 판단하는, 암호 시스템.
KR1020150064880A 2015-05-08 2015-05-08 연산 에러 검출이 가능한 준동형 암호 방법 및 그 시스템 KR102423885B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150064880A KR102423885B1 (ko) 2015-05-08 2015-05-08 연산 에러 검출이 가능한 준동형 암호 방법 및 그 시스템
US15/147,806 US10270588B2 (en) 2015-05-08 2016-05-05 Method and system for additive homomorphic encryption scheme with operation error detection functionality

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150064880A KR102423885B1 (ko) 2015-05-08 2015-05-08 연산 에러 검출이 가능한 준동형 암호 방법 및 그 시스템

Publications (2)

Publication Number Publication Date
KR20160131798A true KR20160131798A (ko) 2016-11-16
KR102423885B1 KR102423885B1 (ko) 2022-07-21

Family

ID=57222907

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150064880A KR102423885B1 (ko) 2015-05-08 2015-05-08 연산 에러 검출이 가능한 준동형 암호 방법 및 그 시스템

Country Status (2)

Country Link
US (1) US10270588B2 (ko)
KR (1) KR102423885B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116405293A (zh) * 2023-04-07 2023-07-07 光谷技术有限公司 安全运维系统的数据加密存储方法

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG10201701044SA (en) * 2017-02-09 2018-09-27 Huawei Int Pte Ltd System and method for computing private keys for self certified identity based signature schemes
US10778409B2 (en) * 2017-12-15 2020-09-15 Crypto Lab Inc. Terminal device performing homomorphic encryption, server device processing ciphertext and methods thereof
US11032061B2 (en) * 2018-04-27 2021-06-08 Microsoft Technology Licensing, Llc Enabling constant plaintext space in bootstrapping in fully homomorphic encryption
CN108933650B (zh) * 2018-06-28 2020-02-14 阿里巴巴集团控股有限公司 数据加解密的方法及装置
US11221989B2 (en) * 2018-07-31 2022-01-11 International Business Machines Corporation Tape image reclaim in hierarchical storage systems
US11764940B2 (en) 2019-01-10 2023-09-19 Duality Technologies, Inc. Secure search of secret data in a semi-trusted environment using homomorphic encryption
CN110069939A (zh) * 2019-03-12 2019-07-30 平安科技(深圳)有限公司 加密数据一致性校验方法、装置、计算机设备及存储介质
CN110401524B (zh) * 2019-08-27 2022-11-01 武汉理工大学 一种借助同态加密的包含秘密的数的协同生成方法及系统
CN111159727B (zh) * 2019-12-11 2022-12-09 西安交通大学医学院第一附属医院 一种面向多方协同的贝叶斯分类器安全生成系统及方法
CN117640066B (zh) * 2024-01-26 2024-04-05 北京隐算科技有限公司 一种基于同态加密的多用户联合加解密方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100811419B1 (ko) * 2000-12-07 2008-03-07 주식회사 케이티 공개키 암호화를 이용하는 인증 프로토콜에서의서비스거부공격에 대한 방어 방법
KR20130056314A (ko) * 2010-12-08 2013-05-29 가부시키가이샤 히타치세이사쿠쇼 검색 가능 암호 처리 시스템

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI20002453A (fi) * 2000-11-08 2002-05-09 Nokia Corp Adaptiivinen sanoman autentikointikoodi
US7194766B2 (en) * 2001-06-12 2007-03-20 Corrent Corporation Method and system for high-speed processing IPSec security protocol packets
US8520844B2 (en) * 2003-06-20 2013-08-27 Alcatel Lucent Methods and apparatus for providing secure two-party public key cryptosystem
US20100218037A1 (en) * 2008-09-16 2010-08-26 File System Labs Llc Matrix-based Error Correction and Erasure Code Methods and Apparatus and Applications Thereof
EP2228715A1 (en) 2009-03-13 2010-09-15 Thomson Licensing Fault-resistant calculcations on elliptic curves
US8249250B2 (en) * 2009-03-30 2012-08-21 Mitsubishi Electric Research Laboratories, Inc. Secure similarity verification between homomorphically encrypted signals
NO331571B1 (no) * 2009-10-30 2012-01-30 Uni I Stavanger System for a beskytte en kryptert informasjonsenhet
US8630422B2 (en) * 2009-11-10 2014-01-14 International Business Machines Corporation Fully homomorphic encryption method based on a bootstrappable encryption scheme, computer program and apparatus
US8861716B2 (en) * 2010-03-30 2014-10-14 International Business Machines Corporation Efficient homomorphic encryption scheme for bilinear forms
US20120002811A1 (en) * 2010-06-30 2012-01-05 The University Of Bristol Secure outsourced computation
US8903083B2 (en) 2010-08-16 2014-12-02 International Business Machines Corporation Fast evaluation of many polynomials with small coefficients on the same point
WO2013069776A1 (ja) * 2011-11-11 2013-05-16 日本電気株式会社 データベース暗号化システムと方法及びプログラム
JP5967570B2 (ja) 2012-07-17 2016-08-10 国立研究開発法人情報通信研究機構 通信管理装置、通信管理方法、通信装置、通信方法
KR20140046568A (ko) 2012-10-05 2014-04-21 한국전자통신연구원 단순 전력 파형 분석 및 오류 주입 분석을 방지하는 타원곡선 암호화 방법 및 그 시스템
KR101795771B1 (ko) 2013-03-18 2017-11-09 한국전자통신연구원 정수 기반 준동형 암호 기법에서 압축 암복호화를 제공하는 시스템 및 방법
JP2014220661A (ja) 2013-05-08 2014-11-20 株式会社東芝 証明装置、出力装置、検証装置、入力装置、証明方法、検証方法およびプログラム
US9094378B1 (en) * 2013-08-16 2015-07-28 Google Inc. Homomorphic cryptography on numerical values in digital computing
GB2586549B (en) * 2013-09-13 2021-05-26 Vodafone Ip Licensing Ltd Communicating with a machine to machine device
US9749128B2 (en) * 2014-05-15 2017-08-29 Xerox Corporation Compact fuzzy private matching using a fully-homomorphic encryption scheme
EP3158497B1 (en) * 2014-06-23 2020-02-26 Porticor Ltd. Methods and devices for key management in an as-a-service context
US9819650B2 (en) * 2014-07-22 2017-11-14 Nanthealth, Inc. Homomorphic encryption in a healthcare network environment, system and methods

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100811419B1 (ko) * 2000-12-07 2008-03-07 주식회사 케이티 공개키 암호화를 이용하는 인증 프로토콜에서의서비스거부공격에 대한 방어 방법
KR20130056314A (ko) * 2010-12-08 2013-05-29 가부시키가이샤 히타치세이사쿠쇼 검색 가능 암호 처리 시스템

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Paillier cyptosystem, WIKIPEDIA(2014.12.16.) 1부.* *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116405293A (zh) * 2023-04-07 2023-07-07 光谷技术有限公司 安全运维系统的数据加密存储方法
CN116405293B (zh) * 2023-04-07 2023-09-01 光谷技术有限公司 安全运维系统的数据加密存储方法

Also Published As

Publication number Publication date
US20160330017A1 (en) 2016-11-10
KR102423885B1 (ko) 2022-07-21
US10270588B2 (en) 2019-04-23

Similar Documents

Publication Publication Date Title
KR102423885B1 (ko) 연산 에러 검출이 가능한 준동형 암호 방법 및 그 시스템
US7574596B2 (en) Cryptographic method and apparatus
KR101246241B1 (ko) 암호화 장치, 복호장치, 암호화 방법, 복호방법, 세큐러티 방법, 프로그램 및 기록매체
KR101478766B1 (ko) 암호화 장치, 복호 장치, 암호화 방법, 복호 방법, 프로그램, 및 기록 매체
CA2693133C (en) Method and system for generating implicit certificates and applications to identity-based encryption (ibe)
KR101606317B1 (ko) 암호 시스템, 암호 방법, 암호 프로그램을 기록한 컴퓨터 판독가능한 기록 매체 및 복호 장치
KR20140055509A (ko) 아이디 기반 암호화, 복호화 방법 및 이를 수행하기 위한 장치
WO2019106166A1 (en) Cryptography device having secure provision of random number sequences
US20050005100A1 (en) Cryptographic method and system
JP5506704B2 (ja) 復号システム、鍵装置、復号方法、及びプログラム
CN107078906A (zh) 公钥加密系统
US20160013933A1 (en) Order-preserving encryption system, device, method, and program
JP4869824B2 (ja) 受信者装置及び送信者装置及び暗号通信システム及びプログラム
Muhammad et al. Loop-based RSA key generation algorithm using string identity
WO2014030706A1 (ja) 暗号化データベースシステム、クライアント装置およびサーバ、暗号化データ加算方法およびプログラム
JP2014515125A (ja) データの暗号化のための方法、コンピュータ・プログラム、および装置
Huang et al. Block-Level Message-Locked Encryption with Polynomial Commitment for IoT Data.
JP2013243441A (ja) 秘密分散システム、データ分散装置、データ復元装置、秘密分散方法、およびプログラム
Al-Kaabi Methods toward enhancing RSA algorithm: a survey
US20050021973A1 (en) Cryptographic method and apparatus
CN115336224A (zh) 自适应抗攻击分布式对称加密
CN114362912A (zh) 基于分布式密钥中心的标识密码生成方法、电子设备及介质
Backes et al. Fully secure inner-product proxy re-encryption with constant size ciphertext
JP4143036B2 (ja) 鍵生成システム、鍵生成サーバ及び鍵生成方法
Tian et al. Security analysis of a fuzzy identity-based encryption scheme

Legal Events

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