KR20140095179A - 환 동형 사상을 이용한 동형 암호화 방법과 복호화 방법 및 이를 이용한 장치 - Google Patents

환 동형 사상을 이용한 동형 암호화 방법과 복호화 방법 및 이를 이용한 장치 Download PDF

Info

Publication number
KR20140095179A
KR20140095179A KR1020130007760A KR20130007760A KR20140095179A KR 20140095179 A KR20140095179 A KR 20140095179A KR 1020130007760 A KR1020130007760 A KR 1020130007760A KR 20130007760 A KR20130007760 A KR 20130007760A KR 20140095179 A KR20140095179 A KR 20140095179A
Authority
KR
South Korea
Prior art keywords
encrypted
encryption
unit
positive integer
plaintext
Prior art date
Application number
KR1020130007760A
Other languages
English (en)
Other versions
KR101449239B1 (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 KR1020130007760A priority Critical patent/KR101449239B1/ko
Priority to US14/127,478 priority patent/US20150312028A1/en
Priority to PCT/KR2013/007743 priority patent/WO2014035146A2/ko
Publication of KR20140095179A publication Critical patent/KR20140095179A/ko
Application granted granted Critical
Publication of KR101449239B1 publication Critical patent/KR101449239B1/ko

Links

Images

Classifications

    • 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
    • G09C1/06Apparatus 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 wherein elements corresponding to the signs making up the clear text are operatively connected with elements corresponding to the signs making up the ciphered text, the connections, during operation of the apparatus, being automatically and continuously permuted by a coding or key member

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

평문에 에러(E)를 부가하여 랜덤화하는 단계; 및 랜덤화된 데이터(R)를 함수(Ψ)를 이용하여 암호화문(R')으로 변환하는 단계; 를 포함하며, 함수(Ψ)는 환 동형 사상(Ring Isomorphism)인 것을 특징으로 하는, 환 동형 사상을 이용한 동형 암호화 방법이 개시된다.

Description

환 동형 사상을 이용한 동형 암호화 방법과 복호화 방법 및 이를 이용한 장치{Homomorphic Encryption and Decryption Method using Ring Isomorphism and apparatus using the same}
본 발명은 환 동형 사상을 이용한 동형 암호화 방법과 복호화 방법 및 이를 이용한 장치에 관한 것이다.
준동형 암호화 기술은 암호화된 상태에서 곱셈이나 덧셈이 가능하도록 하는 암호화 기술로서, 여러 분야에서 활용이 기대되고 있다. 예를 들면, 프라이버시를 보호할 필요가 있는 경우, 준동형 암호화 기술은 복호화를 할 필요없이 암호화된 상태에서 처리가 가능하므로, 유용할 수 있다.
2009년 완전 준동형 암호화 기술을 제시된 뒤로 완전 준동형 암호에 대한 연구가 활발하게 이루어지고 있으며, 특히, 정수 기반 완전 준동형 암호화 기술은 횟수에 제한 없이 암호문간의 더하기와 곱하기 연산을 지원할 수 있는 기술이다. 하지만, 이러한 기술은 공개키의 크기가 지나치게 클 뿐만 아니라 암호화에 많은 시간이 걸린다고 하는 단점이 있다.
또한, 종래 다른 완전 준동형 암호화 기술들은, 안전하지 못하거나 충분한 횟수만큼 덧셈이나 곱셈을 지원하지 못하는 단점이 있다.
본 발명의 일 실시예에 따르면, 안전하고, 덧셈 및 곱셈의 횟수가 수용가능하고, 평문의 크기에 제한이 없고 속도와 저장 용량이 효율적인, 환 동형 사상(Ring Isomorphism)을 이용한 암호화 장치 및 방법, 복호화 장치 및 방법이 제공될 수 있다.
본 발명의 다른 실시예에 따르면, 안전하고, 덧셈 및 곱셈의 횟수가 수용가능하고, 평문의 크기에 제한이 없고 속도와 저장 용량이 효율적인, 환 동형 사상(Ring Isomorphism)을 이용한 암호화 장치 및 방법, 복호화 장치 및 방법이 제공될 수 있다.
본 발명의 다른 실시예에 따르면, 안전하고, 덧셈 및 곱셈의 횟수가 수용가능하고, 평문의 크기에 제한이 없고 속도와 저장 용량이 효율적인, 환 동형 사상(Ring Isomorphism)을 이용한 암호화 장치 및 방법, 복호화 장치 및 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체가 제공될 수 있다.
본 발명의 다른 실시예에 따르면, 준동형 암호의 파라미터 증가 없고 스쿼싱 업이 부트트랩핑을 달성할 수 있는 리플레시 장치가 제공될 수 있다.
본 발명의 일 실시예에 따르면, 평문에 에러(E)를 부가하여 랜덤화하는 단계; 및 랜덤화된 데이터(R)를 함수(Ψ)를 이용하여 암호화문(R')으로 변환하는 단계;를 포함하며, 상기 함수(Ψ)는 환 동형 사상(Ring Isomorphism)인 것을 특징으로 하는, 환 동형 사상을 이용한 동형 암호화 방법이 제공된다.
본 환 동형 사상을 이용한 동형 암호화 방법은, 평문(m)으로부터 모듈러를 연산하는 단계;를 더 포함하며,
상기 모듈러(M)를 연산하는 단계는,
M = m mod Q
에 의해 연산하는 단계이며, 여기서, Q = {qi| 1≤i≤k, i와 k는 양의 정수}이고, qi는 서로 소인 양의 정수이고,
상기 랜덤화하는 단계는 상기 모듈러(M)에 에러(E)를 부가하여 랜덤화하는 것일 수 있다.
상기 랜덤화하는 단계는,
수식 R = m + E·Q
에 의해 연산하는 단계이며,
여기서, m은 평문, E·Q는 E 와 Q의 내적이고, E= {ei| 1≤i≤k, i와 k는 양의 정수}이고, Q = {qi| 1≤i≤k, i와 k는 양의 정수}이고, qi는 서로 소인 양의 정수인 것일 수 있다.
상기 R 은 Zk n (모듈러 n의 최소 잉여 집합) = (a1, a2, ,,, , ak)으로 정의되고, 상기 R'는 R' = Zn[x]/(P(x)) = f(x)으로 정의되며,
f(x)는 f(αi)=ai를 만족하는 다항식으로서 라그랑즈 보간법에 구해지며,
여기서 α1, α2, ..., αk 는 S = {αi|αi - αi ∈ {Z* n} , 1≤i, j≤k, i, j, 및 k는 양의 정수} = (α1, α2, ..., αk)로 정의되는 함수의 원소일 수 있다.
상기 다항식(f(x))으로 변환하는 단계에서 생성된 암호화문들 간에 곱셈 연산을 하는 경우, 다음의 수식들
((C1 C2) mod P(x)) mod n
에 의해 곱셈 연산을 수행하며,
여기서, C1과 C2는 각각 상기 다항식(f(x))으로 변환하는 단계에서 변환된 암호화문이고, P(x)는 다음의 수식
R' = Zk n/(P(x))= Zk nk i=1(x-αi)= Zk n/((x-α1)(x-α2) ‥(x-αk))에 의해 정의될 수 있고,
Zk n 은 모듈러 n의 최소 잉여 집합이고, n은 양의 정수이며,
α1, α2, ..., αk 는 S = {αi|αi - αi ∈ {Z* n} , 1≤i, j≤k, i j, 및 k는 양의 정수} = (α1, α2, ..., αk)로 정의되는 함수의 원소일 수 있다.
상기 다항식(R')으로 변환하는 단계에서 생성된 암호화문들 간에 덧셈 연산을 하는 경우, 다음의 수식
(C1 + C2) mod P(x)
에 의해 덧셈 연산을 수행하며,
여기서, C1과 C2는 각각 상기 다항식(f(x))으로 변환하는 단계에서 변환된 암호화문이고, P(x)는 다음의 수식
R' = Zk n/(P(x))= Zk nk i=1(x-αi)= Zk n/((x-α1)(x-α2) ‥(x-αk))에 의해 정의될 수 있고,
Zk n 은 모듈러 n의 최소 잉여 집합이고, n은 양의 정수이며,
α1, α2, ..., αk 는 S = {αi|αi - αi ∈ {Z* n} , 1≤i, j≤k, i j, 및 k는 양의 정수} = (α1, α2, ..., αk)로 정의되는 함수의 원소일 수 있다.
본 발명의 다른 실시예에 따르면, 환 동형 사상을 이용한 동형 암호화 방법에 의해 암호화된 암호화문을 복호화 하는 방법에 있어서,
환 동형 사상을 이용한 동형 암호화 방법에 의해 암호화된 암호화문(c)에 키(S)를 적용하여 이벨류에이션하는 단계; 및
이벨류에이션된 값(R)을 Q 로 나누어 모듈러를 연산하는 단계;를 포함하며,
여기서, Q = {qi| 1≤i≤k, i와 k는 양의 정수}이고, qi는 서로 소인 양의 정수이고, S = {αi|αi - αi ∈ {Z* n} , 1≤i, j≤k, i, j, 및 k는 양의 정수} = (α1, α2, ..., αk)로 정의되는 것을 특징으로 하는 복호화 방법이 제공될 수 있다.
상기 동형 암호화 방법은, 평문에 에러(E)를 부가하여 랜덤화하는 단계; 및
랜덤화된 데이터(R)를 환 동형 사상(Ring Isomorphism)을 이용하여 암호화문(c)으로 변환하는 단계;를 포함할 수 있다.
상기 동형 암호화 방법은, 상기 랜덤화하는 단계를 수행하기 전에, 평문으로부터 모듈러를 연산하는 단계;를 더 포함하며,
상기 모듈러(M)를 연산하는 단계는, 수식 M = m mod Q
에 의해 연산하는 단계이며, 여기서, m은 평문이고, Q = {qi| 1≤i≤k, i와 k는 양의 정수}이고, qi는 서로 소인 양의 정수이며,
상기 랜덤화하는 단계는 상기 모듈러(M)에 에러(E)를 부가하여 랜덤화하는 것일 수 있다.
상기 랜덤화하는 단계는,
수식 R = m + E·Q
에 의해 연산하는 단계이며,
여기서, m은 평문이고, E·Q는 E 와 Q의 내적이고, E= {ei| 1≤i≤k, i와 k는 양의 정수}이고, Q = {qi| 1≤i≤k, i와 k는 양의 정수}이고, qi는 서로 소인 양의 정수이며,
R 은 Zk n (모듈러 n의 최소 잉여 집합)으로 정의되고, 여기서 n은
평문(m)의 크기(space) < Q의 크기(space) < n
을 만족하는 양의 정수일 수 있다.
본 환 동형 사상을 이용한 동형 암호화 방법에 의해 암호화된 암호화문을 복호화 하는 방법은, 상기 모듈러를 연산하는 단계의 수행 결과를, Q 로 나누어 모듈러를 연산하는 단계;를 더 포함할 수 있다.
본 발명의 다른 실시예에 따르면, 평문(m)에 에러(E)를 부가하여 랜덤화하는 랜덤화부; 및 랜덤화된 데이터(R)를 함수(Ψ)를 이용하여 암호화문(R')으로 변환하는 변환부;를 포함하며, 상기 함수(Ψ)는 환 동형 사상(Ring Isomorphism)인 것을 특징으로 하는 환 동형 사상을 이용한 동형 암호화 장치가 제공될 수 있다.
본 환 동형 사상을 이용한 동형 암호화 장치는, 평문(m)으로부터 모듈러를 연산하는 모듈러 연산부;를 더 포함하며, 상기 모듈러 연산부는,
수식 M = m mod Q
에 의해 연산하며, 여기서, Q = {qi| 1≤i≤k, i와 k는 양의 정수}이고, qi는 서로 소인 양의 정수이고,
상기 랜덤화부는, 상기 모듈러 연산부에 의해 연산된 모듈러(M)에 에러(E)를 부가하여 랜덤화하는 것일 수 있다.
상기 R 은 Zk n (모듈러 n의 최소 잉여 집합) = (a1, a2, ,,, , ak)으로 정의되고, 상기 R'는 R' = Zn[x]/(P(x)) = f(x)으로 정의되며,
상기 변환부는 상기 R 을 f(αi)=ai를 만족하는 다항식(f(x))로 변환하며,
여기서 α1, α2, ..., αk 는 S = {αi|αi - αi ∈ {Z* n} , 1≤i, j≤k, i, j, 및 k는 양의 정수} = (α1, α2, ..., αk)로 정의되는 함수의 원소이고,
여기서 n은 평문(m)의 크기(space) < Q의 크기(space) < n 을 만족하는 양의 정수일 수 있다.
본 환 동형 사상을 이용한 동형 암호화 장치는, 상기 변환부에서 변환된 암호화문들 간에 곱셈 연산을 하는 곱셈 연산부;를 더 포함하며, 상기 곱셈 연산부는, 다음의 수식들
((C1 C2) mod P(x)) mod n
에 의해 곱셈 연산을 수행하며,
여기서, C1과 C2는 각각 상기 변환부에 의해 변환된 암호화문이고, P(x)는 다음의 수식
R' = Zk n/(P(x))= Zk nk i=1(x-αi)= Zk n/((x-α1)(x-α2) ‥(x-αk))에 의해 정의될 수 있고,
Zk n 은 모듈러 n의 최소 잉여 집합이고, n은 양의 정수이며,
α1, α2, ..., αk 는 S = {αi|αi - αi ∈ {Z* n} , 1≤i, j≤k, i, j, 및 k는 양의 정수} = (α1, α2, ..., αk)로 정의되는 함수의 원소일 수 있다.
본 환 동형 사상을 이용한 동형 암호화 장치는, 상기 변환부에서 변환된 암호화문들 간에 덧셈 연산을 하는 덧셈 연산부;를 더 포함하며, 상기 덧셈 연산부는, 다음의 수식
(C1 + C2) mod P(x)
에 의해 덧셈 연산을 수행하며,
여기서, C1과 C2는 각각 상기 변환부에 의해 변환된 암호화문이고, P(x)는 다음의 수식
R' = Zn[x]/(P(x))= Zk nk i=1(x-αi)= Zk n/((x-α1)(x-α2) ‥(x-αk))에 의해 정의될 수 있고,
Zk n 은 모듈러 n의 최소 잉여 집합이고, n은 양의 정수이며,
α1, α2, ..., αk 는 S = {αi|αi - αi ∈ {Z* n} , 1≤i, j≤k, i j, 및 k는 양의 정수} = (α1, α2, ..., αk)로 정의되는 함수의 원소 일 수 있다.
본 발명의 다른 실시예에 따르면, 환 동형 사상을 이용한 동형 암호화 방법에 의해 암호화된 암호화문을 복호화 하는 장치에 있어서,
환 동형 사상을 이용한 동형 암호화 방법에 의해 암호화된 암호화문(c)에 키(S)를 적용하여 이벨류에이션하는 이벨류에이션부; 및
이벨류에이션된 값(R)을 Q 로 나누어 모듈러를 연산하는 모듈러 연산부;를 포함하며,
여기서, Q = {qi| 1≤i≤k, i와 k는 양의 정수}이고, qi는 서로 소인 양의 정수이고, S = {αi|αi - αi ∈ {Z* n} , 1≤i, j≤k, i, j, 및 k는 양의 정수} = (α1, α2, ..., αk)로 정의되는 환 동형 사상을 이용한 동형 암호화 방법에 의해 암호화된 암호화문을 복호화 하는 장치가 제공될 수 있다.
본 발명의 다른 실시예에 따르면, 평문에 에러(E)를 부가하여 랜덤화하는 단계; 및 랜덤화된 데이터(R)를 이벨류에이션하는 이벨류에이션 단계;를 포함하며,
상기 이벨류에이션 단계는, 환 동형 사상(Ring Isomorphism)인 함수(Ψ)를 사용하는 것인, 환 동형 사상을 이용한 동형 암호화 방법이 제공될 수 있다.
상기 랜덤화하는 단계는,
수식 R = m(x) + Qe(x)
에 의해 연산하는 단계이며,
여기서, m(x) = m0 + m1x + m2x2 + ... + mk-1xk-1 , mi ∈ {0, 1, ..., Q-1}
이고, Q는 Q ∈ {0, 1, ..., n-1}이고,
여기서, e(x) = e0 + e1x + e2x2 + ... + ek-1xk-1 , e i ∈ {0, 1, ..., E-1}
이고 E는 ∈ {0, 1, ..., n-1}이고,
상기 n은 양의 정수이며,
평문(m(x))의 크기(space) < Q 의 크기(space) < n 을 만족하며, 그리고
평문(m(x))의 크기(space) < E의 크기(space) < n 을 만족하는 것일 수 있다.
상기 R = Zn[x]/(P(x))= Zn[x]/Πk i=1(x-αi)= Zn[x]/((x-α1)(x-α2) ‥(x-αk))에 의해 정의되고, 상기 이벨류에이션 단계의 수행결과(R')는 R' = Zk n 에 의해 정의되며,
여기서 Zk n 은 모듈러 n의 최소 잉여 집합이고, α1, α2, ..., αk 는 S = {αi|αi - αi ∈ {Z* n} , 1≤i, j≤k, i, j, 및 k는 양의 정수} = (α1, α2, ..., αk)로 정의되는 함수의 원소일 수 있다.
상기 이벨류에이션 단계의 수행결과(R')는
R' = (m(α1) + Qe(α1), m(α2) + Qe(α2), ... , m(αk) + Qe(αk))
일 수 있다.
본 발명의 다른 실시예에 따르면, 환 동형 사상을 이용한 동형 암호화 방법에 의해 암호화된 암호화문을 복호화 하는 방법에 있어서,
환 동형 사상을 이용한 동형 암호화 방법에 의해 암호화된 암호화문(C)을, 비밀키(S)를 적용하여 다항식(f(x))으로 변환하는 단계; 및
상기 다항식(f(x))을 Q 로 나누어 모듈러를 연산하는 단계;를 포함하며,
상기 암호화문(C)는
C = (C1, C2, ..., Ck)
로서 정의될 수 있고 이러한 경우, 상기 f(x)는 다음의 식들
f(α1) = C1
f(α2) = C2
.
.
.
f(αk)= Ck
을 만족하며, 여기서 α1, α2, ..., αk 는 S = {αi|αi - αi ∈ {Z* n} , 1≤i, j≤k, i, j, 및 k는 양의 정수} = (α1, α2, ..., αk)로 정의되는 함수의 원소이며,
Q는 Q ∈ {0, 1, ..., n-1}이고, 여기서 n은 양의 정수이고
평문(m(x))의 크기(space) < Q 의 크기(space) < n 을 만족하는 것을 특징으로 하는 복호화 방법이 제공될 수 있다.
본 발명의 다른 실시예에 따르면, 평문에 에러(E)를 부가하여 랜덤화하는 랜덤화부; 및 랜덤화된 데이터(R)를 이벨류에이션하는 이벨류에이션부;를 포함하며,
상기 이벨류에이션 단계는, 환 동형 사상(Ring Isomorphism)인 함수(Ψ)를 사용하는 것인, 환 동형 사상을 이용한 동형 암호화 장치가 제공될 수 있다.
본 발명의 다른 실시예에 따르면, 환 동형 사상을 이용한 동형 암호화 방법에 의해 암호화된 암호화문을 복호화 하는 장치에 있어서, 환 동형 사상을 이용한 동형 암호화 방법에 의해 암호화된 암호화문(C)을, 비밀키(S)를 적용하여 다항식(f(x))으로 변환하는 변환부; 및 상기 다항식(f(x))을 Q 로 나누어 모듈러를 연산하는 모듈러 연산부;를 포함하며,
상기 암호화문(C)는
C = (C1, C2, ..., Ck)
로서 정의될 수 있고 이러한 경우, 상기 f(x)는 다음의 식들
f(α1) = C1
f(α2) = C2
.
.
.
f(αk)= Ck
을 만족하며, 여기서 α1, α2, ..., αk 는 S = {αi|αi - αi ∈ {Z* n} , 1≤i, j≤k, i, j, 및 k는 양의 정수} = (α1, α2, ..., αk)로 정의되는 함수의 원소이며,
Q는 Q ∈ {0, 1, ..., n-1}이고, 여기서 n은 양의 정수인 것을 특징으로 하는 복호화 장치가 제공될 수 있다.
상술한 방법들 중 어느 하나의 방법은 프로그램을 기록한 것을 특징으로 하는 컴퓨터로 판독 가능한 기록 매체에 의해 제공될 수 있다.
본 발명의 하나 이상의 실시예에 따르면, 안전한 레벨까지 암호화가 가능하며, 암호화된 상태에서 덧셈 및 곱셈의 횟수가 현실적으로 수용가능한 횟수까지 지원이 될 수 있다. 또한, 암호화를 할 평문의 크기에 제한이 없고 속도와 저장 용량이 효율적일 수 있다.
도 1은 본 발명의 일 실시예에 따른 환 동형 사상(Ring Isomorphism)을 이용한 암호화 장치를 설명하기 위한 도면이고,
도 2는, 본 발명에 따른 실시예들을 설명하기 위해 사용되는 용어 및 파라미터들을 나타낸 것이고,
도 3은 본 발명의 일 실시예에 따른 복호화 장치를 설명하기 위한 도면이고,
도 4는 본 발명의 일 실시예에 따른 암호화 장치를 설명하기 위한 도면이고,
도 5는 본 발명의 일 실시예에 따른 복호화 장치를 설명하기 위한 도면이고,
도 6은 본 발명의 일 실시예에 따른 연산 장치를 설명하기 위한 도면이고,
도 7은 본 발명의 일 실시예에 따른 암호화 방법을 설명하기 위한 도면이고,
도 8은 본 발명의 일 실시예에 따른 암호화 방법을 설명하기 위한 도면이고,
도 9는 본 발명의 일 실시예에 따른 복호화 방법을 설명하기 위한 도면이고,
도 10은 본 발명의 일 실시예에 따른 복호화 방법을 설명하기 위한 도면이고,
도 11은 본 발명의 일 실시예에 따른 암호화 장치와 복호화 장치를 설명하기 위한 도면이고,
도 12는 본 발명의 일 실시예에 따른 암호화 방법을 설명하기 위한 도면이고,
도 13은 본 발명의 일 실시예에 따른 복호화 방법을 설명하기 위한 도면이고,
도 14는 본 발명의 일 실시예에 따른 암호화 장치와 복호화 장치를 설명하기 위한 도면이고,
도 15는 본 발명의 일 실시예에 따른 암호화 방법을 설명하기 위한 도면이고,
도 16은 본 발명의 일 실시예에 따른 복호화 방법을 설명하기 위한 도면이고,
도 17은 본 발명의 일 실시예에 따른 리플레시 장치를 설명하기 위한 도면이고, 그리고
도 18은 본 발명의 일 실시예에 따른 컴퓨터 시스템을 설명하기 위한 도면이다.
이상의 본 발명의 목적들, 다른 목적들, 특징들 및 이점들은 첨부된 도면과 관련된 이하의 바람직한 실시예들을 통해서 쉽게 이해될 것이다. 그러나 본 발명은 여기서 설명되는 실시예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 오히려, 여기서 소개되는 실시예들은 개시된 내용이 철저하고 완전해질 수 있도록 그리고 당업자에게 본 발명의 사상이 충분히 전달될 수 있도록 하기 위해 제공되는 것이다. 본 명세서에서, 어떤 구성요소가 다른 구성요소 상에 있다고 언급되는 경우에 그것은 다른 구성요소 상에 직접 형성될 수 있거나 또는 그들 사이에 제 3의 구성요소가 개재될 수도 있다는 것을 의미한다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 '포함한다(comprises)' 및/또는 '포함하는(comprising)'은 언급된 구성요소는 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.
이하, 도면을 참조하여 본 발명을 상세히 설명하도록 한다. 아래의 특정 실시예들을 기술하는데 있어서, 여러 가지의 특정적인 내용들은 발명을 더 구체적으로 설명하고 이해를 돕기 위해 작성되었다. 하지만 본 발명을 이해할 수 있을 정도로 이 분야의 지식을 갖고 있는 독자는 이러한 여러 가지의 특정적인 내용들이 없어도 사용될 수 있다는 것을 인지할 수 있다. 어떤 경우에는, 발명을 기술하는 데 있어서 흔히 알려졌으면서 발명과 크게 관련 없는 부분들은 본 발명을 설명하는 데 있어 별 이유 없이 혼돈이 오는 것을 막기 위해 기술하지 않음을 미리 언급해 둔다.
용어의 정의
환(ring) R 에서 환(ring) R' 으로의 사상 f:R→R'이 임의의 a, b∈R에 대해 다음 의 두 연산을 만족하면, 환의 두 연산을 보존한다고 말하며, f를 R에서 R'으로의 환 준동형사상(ring-homomorphism)이라 한다.
f(a+b) = f(a)+f(b), f(ab) = f(a)f(b)
특히, f가 환 준동형사상인 동시에 일대일 대응이면 f를 R에서 R'으로의 환 동형사상(ring-isomorphism)이라고 한다.
제1 실시예
도 1은 본 발명의 일 실시예에 따른 환 동형 사상(Ring Isomorphism)을 이용한 암호화 장치를 설명하기 위한 도면이고, 도 2와 도 3은, 도 1, 도 3 내지 도 10을 참조하여 설명할 실시예들을 설명하기 위해 사용되는 용어 및 파라미터들을 정의한 것이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 환 동형 사상(Ring Isomorphism)을 이용한 암호화 장치는, 랜덤화부(20)와 변환부(30)를 포함할 수 있다.
랜덤화부(20)는, 평문(m)에 에러(e)를 부가하여 랜덤화할 수 있다. 여기서, m ∈ M, e ∈ E 이고, M은 평문 공간, E는 에러 공간이다. 일반적으로 E 에는 크기에 대한 제한이 붙는다.
랜덤화부(20)는, 예를 들면 아래 수식 1에 의해서 평문(m)을 랜덤화시킬 수 있다. 평문(m)은 벡터 또는 스칼라일 수 있으나, 본 실시예에서는, 본원 발명의 설명의 목적을 위해서, 평문(m)이 스칼라인 것을 전제로 설명하기로 한다.
<수식 1>
Ω : M → R
여기서, R = Zn 이고, r ∈ Zn 이며, Zn은 모듈러 n의 최소 잉여 집합이다.
r = m + eq= (m + e1q1, m + e2q2, ... , m + ekqk) = (r1, r2, ..., rk)
여기서, eq는 e와 q의 성분별 곱하기 이며, m ∈ R, ei ∈ E, qi ∈ R 를 만족한다.
변환부(30)는 랜덤화부(20)에 의해 랜덤화된 데이터(R)를, 예를 들면 아래 수식 2에 의해서, 암호화문으로 변환할 수 있다.
<수식 2>
Ψ : R → R'
변환부(30)에서 사용하는 함수(Ψ)는 환 동형 사상(Ring Isomorphism)이고, 본 실시예에서 평문은 정수 또는 벡터의 형태일 수 있다.
환 동형 사상의 일 예로서 라그랑즈 보간법을 들 수 있으며, 라그랑즈 보간법을 본 실시예에 사용하는 경우 R과 R'는 다음과 같이 정의 될 수 있다.
R = Zk n , R' = Zn[x]/(P(x)), P(x) = Πk i=1(x-αi) = (x-α1)(x-α2) ‥(x-αk) = p0 + p1x1+ p2x2 + … + pk-1xk-1
라그랑즈 보간법을 사용하는 경우 함수(Ψ)는 다음과 같이 다시 기술될 수 있다.
Ψ : Zk n → Zn[x]/(P(x))
: (a1, a2, ,,, , ak) → f(x)
여기서, 다항식 f(x)는, f(αi)=ai를 만족하는 다항식으로서 라그랑즈 보간법에 의해서 구해질 수 있다.
예를 들면, R'는 다음을 만족하는 다항식(f(x))일 수 있다.
f(α1) = r1
f(α2) = r2
.
.
.
f(αk)= rk
이하에서는 본 실시예에서 사용할 용어 및 파라미터들을 설명하기로 한다.
a) q = (q1, q2, ... , qk), q ∈ Q , qi는 여기서 서로 소인 정수.
b) e = (e1, e2, ... , ek), ei ∈ E
c) R = Zk n
Zk n = {(r1, r2, ..., rk)|ri ∈{0, 1, ... , n-1}, 1≤i≤k, i와 k와 n은 양의 정수}
d) r = (r1, r2, ... , rk), ri는 Zn의 원소
e) Zn = {0, 1, ... , n-1}
여기서, Zn 는 모듈러 n의 최소 잉여 집합으로 정의된다.
f) R' = Zn[x]/Πk i=1(x-αi)
g) f(x)는 R'의 원소이며, f(x)는 다음과 같이 정의된다.
f(x) = b0 + b1x1+ b2x2 + … + bk-1xk-1 , bi ∈ {0, 1, ... , n-1}
f) p(x)는 다음과 같이 정의된다.
p(x) = p0 + p1x1+ p2x2 + … + pk-1xk-1, pi ∈ {0, 1, ... , n-1}
h) α = (α1, α2, ..., αk), α ∈ S , αi - αj ∈ Z* n, 1≤i, j≤k
i) Z* n 는 Zn의 역원이 존재하는 원소의 집합이고, Zn은 모듈러 n의 잉여 집합이다.
n은 다음과 같은 조건을 만족하는 양의 정수이며, 곱하기의 지원 횟수에 따라서 n의 크기가 달라질 수 있다.
평문공간(M)의 크기(space) < qi의 크기(space) < n
본 실시예에서, Ψ 는 비밀이며 q = (q1, q2, ... , qk)가 공개될 수 있다.
본 실시예에서, 평문(m)이 스칼라 인 경우를 가정하고 설명하였으나, 평문(m)은 벡터가 되는 것도 가능하다.
Ω : M → R
만약 평문(m)이 (m1, m2, ... , mj)라면 R은 다음과 같이 기술된다.
r= m + eq= (m1 + e1q1, m2 + e2q2, ... , mj +ejqj, ... , m + ekqk) = (r1, r2, ..., rk), mj ∈ M, ej ∈ E, qi ∈ Q이고, rj+1, ... , rk는 Zn의 랜덤한 값이다.
즉, 랜덤화부(20)는, 벡터인 평문의 차수가 j인 경우 j ≤ k를 만족해야 한다. 랜덤한 값 rj+1, ... , rk 를 추가하여 벡터인 평문을 k개의 차수로 임의로 만들어서 r로 변환시킨다.
제2 실시예
도 3은 본 발명의 일 실시예에 따른 환 동형 사상(Ring Isomorphism)을 이용한 동형 암호화 방법에 의해 암호화된 암호화문을 복호화 하는 장치를 설명하기 위한 도면이다.
도 3을 참조하면, 본 복호화 장치는, 이벨류에이션부(40)와 모듈러 연산부(50)를 포함할 수 있다.
이벨류에이션부(40)는, 환 동형 사상을 이용한 동형 암호화 방법에 의해 암호화된 암호화문(c)에 키(S)를 적용하여 이벨류에이션할 수 있다.
이벨류에이션부(40)는 아래의 수식 3과 같은 연산을 수행할 수 있다.
<수식 3>
Ψ-1 : C → R
여기서, c ∈ C 이고, c는 도 1을 참조하여 설명한 제1 실시예에 의해 암호화된 암호화문일 수 있고, R은 제1 실시예에서 설명한 것일 수 있으며, Ψ-1 는 Ψ의 역함수이다.
암호화문이 다항식 f(x)이고, 암호화되기 전의 평문이 스칼라(m)였다면, 수식 3에 의거하여, 이벨류에이션부(40)는 f(x)로부터 f(α1)를 산출한다.
암호화문이 다항식 f(x)이고, 암호화되기 전의 평문이 벡터((m1, m2, ... , mj))였다면, 수식 3에 의거하여, 이벨류에이션부(40)는 f(x) 로부터 (f(α1), f(α2), .... , f(αj))를 산출한다.
모듈러 연산부(50)는, 아래의 수식 4와 같은 연산을 수행할 수 있다.
<수식 4>
r mod q
여기서, r ∈ R 이고, 모듈러 연산부(50)는 이벨류에이션부(40)에 의해 이벨류에이션된 값(r)을 q 로 나누어 모듈러를 연산할 수 있으며, 이로써 평문(m)이 생성될 수 있다.
즉, 암호화문이 다항식 f(x)이고 평문이 스칼라(m) 인 경우, 본 실시예에 따른 복호화 장치의 복호화 과정은 다음과 같이 요약될 수 있다.
Dec(c) = f(α1) mod q1 = m
암호화문이 다항식 f(x)이고 평문이 벡터(m) 인 경우, 본 실시예에 따른 복호화 장치의 복호화 과정은 다음과 같이 요약될 수 있다.
Dec(c) = (f(α1), f(α2), .... , f(αj)) mod q= (f(α1) mod q1, f(α2)mod q2, ... , f(αj)mod qj) = (m1, m2, ... , mj)
제3실시예
도 4은 본 발명의 일 실시예에 따른 환 동형 사상(Ring Isomorphism)을 이용한 암호화 장치를 설명하기 위한 도면이다.
도 4를 참조하면, 본 발명의 일 실시예에 따른 환 동형 사상(Ring Isomorphism)을 이용한 암호화 장치는 모듈러 연산부(10), 랜덤화부(20), 및 변환부(30)를 포함할 수 있다.
모듈러 연산부(10)는, 스칼라인 평문(m)을 벡터인 q로 나누어 모듈러 연산을 수행한다. 본 과정에서, 평문(m)은 벡터로 변환될 수 있으며, 랜덤화부(20)는 백터에 대하여 랜덤화 동작을 수행한다.
한편, 평문이 벡터인 경우에도, 모듈러 연산부(10)는 벡터인 평문을 벡터인 q로 나누어 모듈러 연산을 수행할 수 있다. 한편, 본 발명의 설명의 목적을 위해서 모듈러 연산부(10)에 의해 입력되는 평문과 모듈러 연산부(10)로부터 출력되는 평문을 모두 m으로 표기하기로 한다.
모듈러 연산부(10)에 의해 벡터화된 평문(m)을 m1, m2, ..., mk라고 하면, 랜덤화부(20)는 다음과 같은 연산을 한다.
Ω : M → R
여기서, m ∈ M, r ∈ R이고, r = m+ eq = (m1 + e1q1, m2 + e2q2, ... , mk + ekqk) = (r1, r2, ..., rk) 이다.
변환부(30)는, 환 동형 사상(Ring Isomorphism)인 함수(Ψ)를 사용하여 다음과 같은 연산을 한다.
Ψ : R → R'
랜덤화부(20)와 변환부(30)의 기능은 상술한 제1실시예의 것과 그 기능이 동일 또는 유사하므로 그 설명은 생략하기로 한다. 또한, q, e, s, R, R', Ψ, Ω는 제1실시예에서 설명한 것과 동일 또는 유사하므로 그 설명을 생략하기로 한다.
제4실시예
도 5는 본 발명의 일 실시예에 따른 환 동형 사상(Ring Isomorphism)을 이용한 동형 암호화 방법에 의해 암호화된 암호화문을 복호화 하는 장치를 설명하기 위한 도면이다.
도 5를 참조하면, 본 복호화 장치는, 이벨류에이션부(40)와 제1 모듈러 연산부(50)와 제2 모듈러 연산부(60)를 포함할 수 있다.
제1 모듈러 연산부(50)는, 이벨류에이션부(40)에 의해 이벨류에이션된 값(r)을 q 로 나누어 모듈러를 연산한다.
제2 모듈러 연산부(60)는 제1 모듈러 연산부(50)에 의해 계산된 값에 대하여 다시 q로 나누어 모듈러를 연산하며, 이로써 평문(m)이 생성될 수 있다.
여기서, 이벨류에이션부(40)와 제1 모듈러 연산부(50)는 상술한 제3실시예의 것과 그 기능이 동일 또는 유사하므로 그 설명은 생략하기로 한다.
제5실시예
도 6은 본 발명의 실시예에 따른 암호화 방법에 의해 암호화된 암호화문의 연산을 수행하는 연산장치를 설명하기 위한 도면이다. '연산 장치'는, 예를 들면, 본 발명의 실시예에 따른 암호화 장치 또는 복호화 장치 또는 암복호화 장치에 구현될 수 있다.
도 6의 (a)는 덧셈 연산을 설명하기 위한 것이고, 도 6의 (b)는 곱셈 연산을 설명하기 위한 것이다.
도 6의 (a)를 참조하면, 본 발명의 실시예에 따른 암호화 방법에 의해 암호화된 암호화문의 연산을 수행하는 연산 장치는 덧셈 연산부(70)를 포함할 수 있다.
덧셈 연산부(70)는, 다음 수식에 의해 덧셈 연산을 할 수 있다.
(c1 + c2) mod p(x)
여기서, c1 , c2 는 각각 상술한 제1 실시예와 제3 실시예에 의해 암호화된 암호화문이고, p(x)는 c1 , c2 로 암호화될 때 사용된 것이다.
도 6의 (b)를 참조하면, 본 발명의 실시예에 따른 암호화 방법에 의해 암호화된 암호화문의 연산을 수행하는 장치는 곱셈 연산부(80)를 포함할 수 있다.
곱셈 연산부(80)는, 다음 수식을 수행함으로써 곱셈 연산을 할 수 있다.
((c1c2) mod p(x)) mod n
여기서, c1 , c2 는 각각 상술한 제1 실시예와 제3 실시예에 의해 암호화된 암호화문이고, p(x)와 n은 c1 , c2 로 암호화될 때 사용된 것이다.
본 발명의 실시예에 따른 암호화 방법에 의해 암호화된 암호화문의 연산을 수행하는 연산장치는 상술한 덧셈 연산부(70)와 곱셈 연산부(80) 중 적어도 어느 하나를 포함하도록 구성될 수 있다. 그리고, 덧셈 연산부(70)와 곱셈 연산부(80)는 하드웨어 또는 소프트웨어 어떠한 것으로도 구현될 수 있을 것이다.
제6실시예
도 7은 본 발명의 일 실시예에 따른 환 동형 사상(Ring Isomorphism)을 이용한 암호화 방법을 설명하기 위한 도면이다.
도 7을 참조하면, 본 발명의 일 실시예에 따른 환 동형 사상(Ring Isomorphism)을 이용한 암호화 방법은, 랜덤화 단계(S101)와 변환단계(S103)를 포함할 수 있다.
랜덤화 단계(S101)는, 평문(m)에 에러(e)를 부가하여 랜덤화하는 단계이다.
랜덤화 단계(S101)는, 예를 들면 수식 1에 의해서 평문을 랜덤화시킬 수 있다. 평문(m)은 벡터 또는 스칼라일 수 있다.
랜덤화 단계(S101)는, 예를 들면, 상술한 제1실시예에서의 랜덤화부(20)에 의해 수행될 수 있다.
랜덤화 단계(S101)는, r = m + eq 동작을 수행하며, 이들에 대한 상세한 설명은 제1 실시예의 것을 참조하기 바란다.
변환단계(S103)는, 랜덤화 단계(S101)에서 랜덤화된 데이터(r)를 함수(Ψ)를 이용하여 암호화문으로 변환할 수 있다. 변환단계(S103)에서 사용하는 함수(Ψ)는 환 동형 사상(Ring Isomorphism)이다.
환 동형 사상의 하나로서 라그랑즈 보간법을 사용하는 경우, 함수(Ψ)에 의해 변환된 것은 다항식(f(x))이 될 수 있다.
변환단계(S103)는 예를 들면, 상술한 제1실시예에서의 변환부(30)에 의해 수행될 수 있다.
변환단계(S103)는 Ψ: R → R' 를 수행하며, 이들에 대한 상세한 설명은 제1 실시예의 것을 참조하기 바란다.
제7실시예
도 8은 본 발명의 일 실시예에 따른 환 동형 사상(Ring Isomorphism)을 이용한 암호화 방법을 설명하기 위한 도면이다.
도 8을 참조하면, 본 발명의 일 실시예에 따른 환 동형 사상(Ring Isomorphism)을 이용한 암호화 방법은, 모듈러 연산하는 모듈러 연산 단계(S201), 랜덤화 단계(S201)와 변환단계(S203)를 포함할 수 있다.
도 7의 실시예와 비교하면, 도 8의 실시예는 모듈러 연산 단계(S201)만을 더 포함하고 있다. 도 8의 랜덤화 단계(S203)와 변환단계(S205)에 수행되는 동작은, 각각 도 7의 랜덤화 단계(S101)와 변환단계(S103)에서 수행되는 동작들과 각각 동일 또는 유사할 수 있다.
모듈러 연산 단계(S201)에서는, 평문(m)을 벡터인 q로 나누어 모듈러 연산을 수행할 수 있다. 여기서, 평문(m)은 스칼라 또는 벡터일 수 있다.
랜덤화 단계(S203)는, 예를 들면 수식 1에 의해서 평문을 랜덤화시킬 수 있다. 평문(m)은 벡터 또는 스칼라일 수 있다.
랜덤화 단계(S203)는, 예를 들면, 상술한 제1실시예에서의 랜덤화부(20)에 의해 수행될 수 있다.
랜덤화 단계(S203)는, 다음 동작을 수행한다
Ω : M → R
여기서, (m mod q) ∈ M, r ∈ R, r = m+ eq 이다. 이들에 대한 상세한 설명은 제1 실시예의 것을 참조하기 바란다.
변환단계(S205)는, 랜덤화 단계(S203)에서 랜덤화된 데이터(r)를 함수(Ψ)를 이용하여 암호화문으로 변환할 수 있다. 변환단계(S205)에서 사용하는 함수(Ψ)는 환 동형 사상(Ring Isomorphism)이다.
환 동형 사상의 하나로서 라그랑즈 보간법을 사용하는 경우, 함수(Ψ)에 의해 변환된 것은 다항식(f(x))이 될 수 있다.
변환단계(S205)는 예를 들면, 상술한 제1실시예에서의 변환부(30)에 의해 수행될 수 있다.
변환단계(S205)는 Ψ: R → R' 를 수행하며, 이들에 대한 상세한 설명은 제1 실시예의 것을 참조하기 바란다.
제8실시예
도 9는 본 발명의 일 실시예에 따른 환 동형 사상(Ring Isomorphism)을 이용한 동형 암호화 방법에 의해 암호화된 암호화문을 복호화 하는 방법을 설명하기 위한 도면이다.
도 9를 참조하면, 본 복호화 장치는, 이벨류에이션 단계(S301)와 모듈러 연산 단계(S303)를 포함할 수 있다.
이벨류에이션 단계(S301)에서는, 환 동형 사상을 이용한 동형 암호화 방법에 의해 암호화된 암호화문(c)에 키(s)를 적용하여 이벨류에이션할 수 있다.
이벨류에이션 단계(S301)에서는, 예를 들면, 다음과 같은 연산을 수행할 수 있다.
Ψ-1 : C → R
여기서, c ∈ C 이고, c는 도 1을 참조하여 설명한 제1 실시예에 의해 암호화된 암호화문일 수 있고, R 과 Ψ는 제1 실시예에서 정의된 바에 따르며, Ψ-1 는 Ψ의 역함수이다.
암호화문(c)이 다항식 f(x)이고, 암호화되기 전의 평문(m)이 스칼라였다면, 이벨류에이션 단계(S301)에서는, f(x) 로부터 f(α1)를 산출한다.
암호화문이 다항식 f(x)이고, 암호화되기 전의 평문이 벡터((m1, m2, ... , mj))였다면, 이벨류에이션 단계(S301)에서는 f(x)로부터 (f(α1), f(α2), .... , f(αj))를 산출한다.
이벨류에이션 단계(S301)는, 예를 들면, 상술한 제2 실시예에서의 이벨류에이션부(40)에 의해 수행될 수 있다.
모듈러 연산 단계(S303)에서는, r mod q 연산을 수행할 수 있다.
즉, 모듈러 연산 단계(S303)에서는, 이벨류에이션 단계(S301)에서 이벨류에이션된 값(r)을 q 로 나누어 모듈러를 연산할 수 있으며, 이로써 평문(m)이 생성될 수 있다.
모듈러 연산 단계(S303)는, 예를 들면, 상술한 제2 실시예에서의 모듈러 연산부(50)에 의해 수행될 수 있다.
제10실시예
도 10은 본 발명의 일 실시예에 따른 환 동형 사상(Ring Isomorphism)을 이용한 동형 암호화 방법에 의해 암호화된 암호화문을 복호화 하는 방법을 설명하기 위한 도면이다.
도 10을 참조하면, 본 복호화 방법은, 이벨류에이션 단계(S401)와 제1 모듈러 연산 단계(S403)와 제2 모듈러 연산 단계(S405)를 포함할 수 있다. 도 10과 도 9를 비교하면, 도 10의 실시예는 제2 모듈러 연산 단계(S405)를 더 포함하고 있다는 점에서 차이가 있다.
이벨류에이션 단계(S401)에서는, 환 동형 사상을 이용한 동형 암호화 방법에 의해 암호화된 암호화문(c)에 키(S)를 적용하여 이벨류에이션할 수 있다.
이벨류에이션 단계(S401)에서는, 예를 들면, 다음과 같은 연산을 수행할 수 있다.
Ψ-1 : C → R
여기서, c ∈ C 이고, c는 상술한 제3 실시예에 의해 암호화된 암호화문일 수 있고, R 과 Ψ는 제1 실시예에서 정의된 바에 따르며, Ψ-1 는 Ψ의 역함수이다.
이벨류에이션 단계(S401)에서의 동작은 도 9의 이벨류에이션 단계(S301)에서의 동작과 동일 또는 유사하므로 상세한 설명은 생략하기로 한다.
제1 모듈러 연산 단계(S403)에서는, 이벨류에이션 단계(S401)에서 이벨류에이션된 값(r)을 q 로 나누어 모듈러를 연산할 수 있다. 제1 모듈러 연산 단계(S403)에서의 동작은 도 9의 모듈러 연산 단계(S303)에서의 동작과 동일 또는 유사하므로 상세한 설명은 생략하기로 한다.
제2 모듈러 연산 단계(S405)에서는, 제1 모듈러 연산 단계(S403)에서 계산된 값(r)을 q 로 나누어 모듈러를 연산할 수 있으며, 이로써 평문(m)이 산출된다.
제11실시예
도 11은 본 발명의 일 실시예에 따른 환 동형 사상(Ring Isomorphism)을 이용한 암호화 장치와 복호화 장치를 설명하기 위한 도면이다.
도 11을 참조하면, 본 발명의 일 실시예에 따른 환 동형 사상(Ring Isomorphism)을 이용한 암호화 장치는, 랜덤화부(120)와 이벨류에이션부(130)를 포함할 수 있다.
랜덤화부(120)는 아래의 수식 5에 의해서 평문을 랜덤화시킬 수 있다.
<수식 5>
Ω : M → R
여기서, m(x) ∈ M 이고, m(x)는 다항식으로서 m(x) = m0 + m1x1 + ... + mk-1xk-1로 주어질 수 있고, r은 다음과 같이 기술될 수 있다.
r = m(x) + qe(x)
이벨류에이션부(130)는 랜덤화부(120)에 의해 랜덤화된 데이터(r)를 함수(Ψ)를 이용하여 암호화문으로 변환할 수 있다.
Ψ : R → R'
여기서, 함수(Ψ)는 환 동형 사상(Ring Isomorphism)이다.
환 동형 사상의 일 예로서 라그랑즈 보간법을 들 수 있으며, 라그랑즈 보간법을 본 실시예에 사용하는 경우 R과 R'는 다음과 같이 정의 될 수 있다.
R = Zn[x]/(p(x)), R' = Zk n , p(x) = Πk i=1(x-αi) = (x-α1)(x-α2) ‥(x-αk) = p0 + p1x1+ p2x2 + … + pk-1xk-1
f(x)는 R의 일 원소이며, 이벨류에이션부(130)는 f(x)로부터 c를 산출한다. 여기서, c = (c1, c2, ,,, , ck) = (m(α 1 ) + Qe(α 1 ), m(α 2 ) + Qe(α 2 ), ... , m(α k ) + Qe(α k ))
여기서, Qe(x)는 Q와 e(x)의 곱이며, 이하에서는 도 11를 참조하여 용어 및/또는 파라미터들을 설명하기로 한다.
m(x) = m0 + m1x1 + ... + mk-1xk-1
여기서, mi ∈{0, 1, ... , Q-1}, Q ∈{0, 1, ... , n-1}이고, n은 양의 정수이다
e(x) = e0 + e1x + e2x2 + ... + ek-1xk-1 , e i ∈ {0, 1, ..., E-1}
이고 E ∈ {0, 1, ..., n-1}이고, n은 양의 정수이다.
R = Z[x]nk i=1(x-αi)
R의 원소 f(x)는 f(x)는 다음과 같이 정의된다.
f(x) = b0 + b1x1+ b2x2 + … + bk-1xk-1 , bi ∈ {0, 1, ... , n-1}
p(x)는, 다음과 같이 정의될 수 있다.
p(x) = p0 + p1x1+ p2x2 + … + pk-1xk-1 , pi ∈ {0, 1, ... , n-1}
한편, p(x)는 다음과 같은 형태로 기술이 가능하다.
p(x) = Πk i=1(x-αi) = (x-α1)(x-α2) ‥(x-αk)
S의 원소 α는 다음과 같이 정의될 수 있다.
α = (α1, α2, ..., αk), α ∈ S , αi - αj ∈ Z* n
Z* n는 Zn의 역원이 존재하는 원소의 집합이고, Zn은 모듈러 n의 잉여 집합이다.
R' = Zk n = {(r1, r2, ..., rk)|ri ∈{0, 1, ... , n-1}, 1≤i≤k, i와 k와 n은 양의 정수}
평문(m(x))의 계수의 크기(space), Q 의 크기(space), E의 크기와, n은 다음과 같은 관계가 있다.
평문(m(x))의 계수의 크기(space) < Q의 크기(space) < n
평문(m(x))의 계수의 크기(space) < E의 크기(space) < n
도 11을 계속 참조하면, 본 실시예에 따른 복호화 하는 장치는, 변환부(140)와 모듈러 연산부(150)를 포함할 수 있다.
변환부(140)는 다음과 같은 동작을 수행할 수 있다.
Ψ-1 : C → R
여기서, f(x) ∈ R, c ∈ C이고, 여기서 c = (m(α1) + Qe(α1), m(α2) + Qe(α2), ... , m(αk) + Qe(αk)) = (c1, c2, ... , ck)이고, f(x)는 다항식이며, Ψ-1 는 Ψ의 역함수이다.
예를 들면, 다항식 f(x)는, f(αi)=ci를 만족하는 다항식으로서 라그랑즈 보간법에 의해서 구해질 수 있다. 즉, 변환부(140)에 의해 변환된 다항식(f(x))은 다음을 만족한다.
f(α1) = c1
f(α2) = c2
.
.
.
f(αk)= ck
모듈러 연산부(150)는, 변환부(140)에 의해 산출된 다항식 f(x)를 Q 로 나누어 모듈러를 연산할 수 있으며, 이로써 평문(m)이 생성될 수 있다.
변환부(140)에 의해 산출된 다항식 f(x)를 f(x)= f0 + f1x1 + ... + fk-1xk-1 라고 하면, 모듈러 연산부(150)에 의해 생성되는 평문은 다음과 같이 기술될 수 있다.
m = f0 mod Q + f1x1mod Q + ... + fk-1xk-1mod Q
제12실시예
도 12는 본 발명의 일 실시예에 따른 환 동형 사상(Ring Isomorphism)을 이용한 암호화 방법을 설명하기 위한 도면이다.
도 12를 참조하면, 본 발명의 일 실시예에 따른 환 동형 사상(Ring Isomorphism)을 이용한 암호화 방법은, 랜덤화 단계(S501)와 이벨류에이션부(S503)를 포함할 수 있다.
랜덤화 단계(S501)에서는 다음과 같은 동작을 수행할 수 있다.
Ω : M → R
여기서, m(x) ∈ M 이고, 다항식인 평문(m(x))은 r(x)로 변환된다. 여기서, 평문 m(x) = m0 + m1x1 + ... + mk-1xk-1로 주어질 수 있다.
랜덤화 단계(S501)에서는, 예를 들면 상기 수식 5에 의해서 평문(m(x))을 랜덤화시킬 수 있다. 평문(m(x))은 다항식일 수 있다.
랜덤화 단계(S501)에서 수행되는 동작은, 예를 들면, 상술한 제11실시예의 랜덤화부(120)에 의해 이루어지는 동작과 동일 또는 유사할 수 있다.
이벨류에이션 단계(S503)에서는, 랜덤화 단계(S501)에서 의해 랜덤화된 데이터(R)를 함수(Ψ)를 이용하여 암호화문으로 변환할 수 있다.
이벨류에이션 단계(S503)에서 사용하는 함수(Ψ)는 환 동형 사상(Ring Isomorphism)이며, 다음과 같은 동작을 수행한다.
Ψ : R → R'
이벨류에이션 단계(S503)에서 수행되는 동작은, 예를 들면, 상술한 제11실시예의 이벨류에이션부(130)에 의해 이루어지는 동작과 동일 또는 유사할 수 있다.
제13실시예
도 13은 본 발명의 일 실시예에 따른 환 동형 사상(Ring Isomorphism)을 이용한 복호화 방법을 설명하기 위한 도면이다.
도 13을 참조하면, 본 발명의 일 실시예에 따른 환 동형 사상(Ring Isomorphism)을 이용한 동형 암호화 방법에 의해 암호화된 암호화문을 복호화 방법은, 암호문을 다항식으로 변환하는 변환 단계(S601)와 모듈러 연산 단계(S603)를 포함할 수 있다.
변환 단계(S601)는 예를 들면, 도 11에서의 변환부(140)의 동작과 동일 또는 유사할 수 있고, 모듈러 연산 단계(S603)는 예를 들면, 도 11에서의 모듈러 연산부(150)의 동작과 동일 또는 유사할 수 있다.
변환 단계(S601)에서는 다음과 같은 동작을 수행할 수 있다.
Ψ-1 : C → R
여기서, c ∈ C, 여기서 c = (m(α1) + Qe(α1), m(α2) + Qe(α2), ... , m(αk) + Qe(αk)) = (c1, c2, ... , ck)이고, f(x) ∈ R, f(x)는 다항식이고, Ψ-1 는 Ψ의 역함수이다.
예를 들면, 다항식 f(x)는, f(αi)=ci를 만족하는 다항식으로서 라그랑즈 보간법에 의해서 구해질 수 있다. 즉, 변환 단계(S601)에서 산출된 다항식(f(x))은 다음을 만족한다.
f(α1) = c1
f(α2) = c2
.
.
.
f(αk)= ck
모듈러 연산 단계(S603)에서는, 변환 단계(S601)에서 산출된 다항식 f(x)를 Q 로 나누어 모듈러를 연산할 수 있으며, 이로써 평문(m)이 생성될 수 있다.
변환 단계(S601)에서 산출된 다항식 f(x)를 f(x)= f0 + f1x1 + ... + fk-1xk-1 라고 하면, 모듈러 연산 단계(S603)의 수행결과 생성되는 평문은 다음과 같이 기술될 수 있다.
m = f0 mod Q + f1x1mod Q + ... + fk-1xk-1mod Q
제14실시예
도 14는 본 발명의 일 실시예에 따른 환 동형 사상(Ring Isomorphism)을 이용한 암호화 장치와 복호화 장치를 설명하기 위한 도면이다.
도 14를 참조하면, 본 발명의 일 실시예에 따른 환 동형 사상(Ring Isomorphism)을 이용한 암호화 장치는, 랜덤화부(220)와 제1 모듈러 연산부(230)를 포함할 수 있다.
본 암호화 장치는 평문(m)을 암호화문(c)으로 변환하며, c는 (c1, c2, ..., ck)의 형태로 산출될 수 있다.
랜덤화부(220)는 평문(m)에 대하여 m + eq 연산을 수행한다. 여기서, e와 q는 정수고, ei는 λ 비트, ρ = 2λ, λ는 시큐어리티 파라미터이다.
제1 모듈러 연산부(230)는 m + eq 에 대하여 (m + eq) mod s 연산을 수행한다.
여기서, 비밀키 s = (s1, s2, ..., sk)이며, si는 서로 소인 정수들이다.
제1 모듈러 연산부(230)의 연산결과, c = (c1, c2, ... , ck) 형태로 되는 암호화문이 산출된다.
도 14를 계속 참조하여, 본 발명의 일 실시예에 따른 환 동형 사상(Ring Isomorphism)을 이용한 복호화 장치를 설명하기로 한다.
본 복호화 장치는 CRT 연산부(240)와 제2 모듈러 연산부(250)를 포함할 수 있다.
CRT 연산부(240)는, 다음의 수식 6에 의해, 암호화문(c)에 대하여 CRT(Chinese Remainder Theorem: CRT)을 적용하여 출력하며, 출력은 m + eq 의 형태를 가질 수 있다.
<수식 6>
CRTS(c)
CRT는 중국인의 나머지 정리를 적용하는 함수(환 동형 사상(Ring Isomorphism)의 일예)이고, S= {si| 1≤i≤k, i와 k는 양의 정수} 로서 키(Key)이며, k는 키의 갯수를 나타낸다. 본 발명의 실시예에 따르면, 여기서 키(Key)는 비밀키일 수 있다.
CRT는, 예를 들면, s_1, s_2, ..., s_k가 서로 소인 정수라고 하고, b = s_1· s_2· s_3· ... s_k 라고 하면, 이때 임의의 수열 a_1, a_2, ..., a_k 대하여 c=a_k (mod s_k) 가 되는 c가 mod s 로 유일하게 존재한다는 정리이다.
c에 대한 연립 합동식은 다음과 같이 기재될 수 있다.
c = a_1 (mod s_1)
c = a_2 (mod s_2)
.
.
.
c = a_k (mod s_k)
상기 수식 CRTS(c)에서, c는 나머지에 해당하고 s는 제수(나누는 수)에 해당하며, 수식 CRTS(c)의 해는 상기 연립 합동식을 만족하는 값이 된다.
s = (s1, s2, ..., sk)는 비밀키로서, si는 서로 소인 정수들이다.
제2 모듈러 연산부(250)는 A에 대하여 A mod Q의 연산을 수행함으로써 평문을 산출한다.
제15실시예
도 15는본 발명의 일 실시예에 따른 환 동형 사상(Ring Isomorphism)을 이용한 암호화 방법을 설명하기 위한 도면이다.
도 15를 참조하면, 본 발명의 일 실시예에 따른 환 동형 사상(Ring Isomorphism)을 이용한 암호화 방법은, 랜덤화 단계(S701)와 모듈러 연산 단계(S703)를 포함할 수 있다.
본 암호화 방법에서는 평문(m)을 암호화문(c)으로 변환하며, c는 (c1, c2, ..., ck)의 형태로 산출될 수 있다.
랜덤화 단계(S701)에서는 평문(m)에 대하여 m + eq 연산을 수행한다. 랜덤화 단계(S701)에서 수행되는 동작은, 예를 들면, 도 14에서의 랜덤화부(220)의 동작과 동일 또는 유사할 수 있다.
모듈러 연산 단계(S703)에서는, (m+eq) mod s 연산을 수행하며, 수행결과 (c1, c2, ... , ck) 형태의 암호화문이 산출된다.
모듈러 연산 단계(S703)에서 수행되는 동작은, 예를 들면, 도 14에서의 제1 모듈러 연산부(230)의 동작과 동일 또는 유사할 수 있다.
제16실시예
도 16은 본 발명의 일 실시예에 따른 환 동형 사상(Ring Isomorphism)을 이용한 복호화 방법을 설명하기 위한 도면이다.
도 16을 참조하면, 본 발명의 일 실시예에 따른 환 동형 사상(Ring Isomorphism)을 이용한 복호화 방법은, CRT 연산 단계(S801)와 모듈러 연산 단계(S803)를 포함할 수 있다.
CRT 연산 단계(S801)에서는, 수식 6에 의해, 암호화문(c)에 대하여 CRT(Chinese Remainder Theorem: CRT)을 적용하여 출력하며, 여기서 출력은 m + eq 의 형태를 가질 수 있다.
CRT 연산 단계(S801)에서 수행되는 동작은, 예를 들면 도 14의 CRT 연산부(240)의 동작과 동일 또는 유사할 수 있다.
모듈러 연산 단계(S803)에서는, (m + eq) mod Q의 연산을 수행함으로써 평문을 산출한다.
모듈러 연산 단계(S803)에서 수행되는 동작은, 예를 들면 도 14의 제2 모듈러 연산부(250)의 동작과 동일 또는 유사할 수 있다.
제17실시예
도 17은 본 발명의 일 실시예에 따른 리플레시 장치를 설명하기 위한 도면이다.
도 17은 참조하면, 본 발명의 일 실시예에 따른 리플레시 장치(310)는, 암호화문(C)을 입력받고 리플레시 동작을 수행하여 새로운 암호화문(C')을 산출할 수 있다.
리플레시 장치(310)로 입력되는 암호화문(c)는 암호화문들끼리의 곱셈이나 덧셈 연산이 반복된 결과로서의 암호화문이며, 이러한 암호문(C)에는 에러가 포함된 상태이다. 암호화문(c)은 설명의 편의를 위해서, c = (c1, c2, ... , cn)이라고 가정한다.
리플레시 장치(310)로부터 출력되는 암호화문(c')은, 에러가 제거된 상태로서, 곱셈이나 덧셈 연산을 다시 할 수 있는 상태가 된다.
본 발명의 일 실시예에 따른 리플레시 장치(310)는 다음과 같은 가정이 필요하다.
1) 암호화문 c = (c1, c2, ... , cn), ci ∈ {0, 1}
2) 비밀키 s = (s1, s2, ... , sn), si ∈ {0, 1}
3) 복호화 과정은 다음과 같은 과정을 가져야 함.
m = f(c) =
Figure pat00001
, λj, aj는 알려진 상수
종래 Gentry와 Halevi는 복호화 회로(decryption circuit)의 모양이 특별한 경우 스쿼싱(squashing) 없이 부트트랩핑(bootstrapping)을 할 수 있는 완전동형암호를 제시하였는데, 그중 하나는 엘가말(Elgamal) 암호에서 사용되는 비밀키 e를 이진전개하여, 복호화 회로(decryption circuit)을 homomorphic 하게 이벨류에이션 시키는 방법이 있다. 본 발명의 일 실시예에 따른 리플레시 장치(310)는 그러한 방법을 개선한 것이다.
즉, Gentry와 halevi는 비밀키 e를 다음과 같이 이진전개하였다.
Figure pat00002
여기서, 공개키에 e_₩ell의 encryption을 추가하면, y^e를 homomorphic 하게 이벨류에이션할 수 있게 된다. 즉, 이것의 의미는 엘가말 암호의 복호화 회로(decryption circuit)을 homomorphic 하게 이벨류에이션할 수 있다는 것이다. 하지만, 이처럼 시행하는 경우, 주어진 준동형 암호의 homomorphic capacity (지원가능 한 곱하기 횟수)가 4₩lambda 까지 늘어나야 한다는 단점이 있다. Gentry와 Halevi는 이를 해결하기 위해서 준동형 암호의 파라미터의 크기를 키워서 해결한다고 했지만, 이렇게 될 경우 암호알고리즘 전체의 효율성이 덜어지게 된다.
본 발명의 일 실시예에 따른 리플레시 장치(310)에서는, 위 Gentry와 Halevi가 제시한 방법을 사용하되, 비밀키 e를 다음과 같이 전개하는 방법을 취하고 있다.
Figure pat00003
이렇게 함으로써, 비밀키 e를 이진전개가 아닌 일반적인 자연수 w 진법 전개를 통해 준동형 암호의 homomorphic capacity를 낮추었다. 기존의 4₩lambda에서 4₩lambda/logw (e_{₩ell k}'와 {y^{w^₩ell})^곱, 그리고 log_w e개(약 2₩lambda/logw) 만큼의 곱셈을 해야 하므로) 만큼으로 줄일 수 있고, 이로써 준동형 암호의 파라미터 증가 없이 스쿼싱 업이 부트트랩핑을 달성할 수 있다.
이상 설명한 본 발명의 일 실시예에 따른 리플레시 장치(310)는, 암호화 장치, 복호화 장치, 또는 연산 장치에 포함되도록 구현될 수 있다.
도 18은 본 발명의 일 실시예에 따른 암호화 장치, 복호화 장치, 및/또는 연산장치가 적용되는 컴퓨터 시스템을 설명하기 위한 도면이다.
도 1, 도 3 내지 도 10, 및 도 11 내지 도 17을 참조하여 설명한 본 발명의 실시예들은, 예를 들면 도 18에 도시된 컴퓨터 시스템에 구현될 수 있다.
도 18의 컴퓨터 시스템은 스마트 폰이나 PDA와 같은 모바일 기기, 데스크 탑 PC, 타블렛 PC, 또는 서버와 같은 컴퓨터 시스템 중의 어느 하나일 수 있으나, 이들 컴퓨터 시스템에만 한정되는 것이 아니다.
도 18의 컴퓨터 시스템에는, 도 1, 도 3 내지 도 10, 및 도 11 내지 도 17을 참조하여 설명한 암호화 장치 또는 방법, 복호화 장치 또는 방법, 연산 장치, 또는 리플레시 장치가 구현될 수 있다
도 18을 참조하면, 컴퓨터 시스템(100)은, 프로그램 로직(101), 컴퓨터 프로세서(103), 저장부(105), 및 메모리(107)를 포함할 수 있다.
프로그램 로직(101)은, 컴퓨터에서 실행가능한 코드(Code)의 형태로 구현될 수 있으며, 저장부(105)에 저장되어 있다가 컴퓨터 프로세서(103)의 제어하에 메모리(107)에 로딩되어 동작할 수 있다.
예를 들면, 프로그램 로직(101)은, 도 1을 참조하여 설명한 랜덤화부(20), 및/또는 변환부(30)의 동작을 수행하는 코드(code)를 포함할 수 있다. 대안으로, 랜덤화부(20)와 변환부(30) 중 적어도 하나는 하드웨어로 구현될 수 있다.
다른 예를 들면, 프로그램 로직(101)은, 도 3을 참조하여 설명한 이벨류에이션부(40), 및 모듈러 연산부(50)의 동작을 수행하는 코드(code)를 포함할 수 있다. 대안으로, 이벨류에이션부(40)와 모듈러 연산부(50) 중 적어도 하나는 하드웨어로 구현될 수 있다.
예를 들면, 프로그램 로직(101)은, 도 4을 참조하여 설명한 모듈러 연산부(10), 랜덤화부(20), 및/또는 변환부(30)의 동작을 수행하는 코드(code)를 포함할 수 있다. 대안으로, 모듈러 연산부(10), 랜덤화부(20), 및 변환부(30)중 적어도 하나는 하드웨어로 구현될 수 있다.
예를 들면, 프로그램 로직(101)은, 도 5를 참조하여 설명한 이벨류에이션부(40), 제1 모듈러 연산부(50), 제2 모듈러 연산부(60)의 동작을 수행하는 코드(code)를 포함할 수 있다. 대안으로, 이벨류에이션부(40), 제1 모듈러 연산부(50), 제2 모듈러 연산부(60) 중 적어도 하나는 하드웨어로 구현될 수 있다.
예를 들면, 프로그램 로직(101)은, 도 6를 참조하여 설명한 연산장치들(70, 80)의 동작을 수행하는 코드(code)를 포함할 수 있다. 대안으로, 연산장치들(70, 80)은 하드웨어로 구현될 수 있다.
예를 들면, 프로그램 로직(101)은, 도 7을 참조하여 설명한 암호화 방법을 수행하는 코드(code)를 포함할 수 있다.
예를 들면, 프로그램 로직(101)은, 도 8을 참조하여 설명한 암호화 방법을 수행하는 코드(code)를 포함할 수 있다.
예를 들면, 프로그램 로직(101)은, 도 9를 참조하여 설명한 복호화 방법을 수행하는 코드(code)를 포함할 수 있다.
예를 들면, 프로그램 로직(101)은, 도 10을 참조하여 설명한 복호화 방법을 수행하는 코드(code)를 포함할 수 있다.
예를 들면, 프로그램 로직(101)은, 도 11을 참조하여 설명한 암호화 장치와 복호화 장치의 동작을 수행하는 코드(code)를 포함할 수 있다. 즉, 프로그램 로직(101)은, 도 11을 참조하여 설명한 랜덤화부(120), 이벨류에이션부(130)의 동작을 수행하는 코드를 포함할 수 있다. 또한, 프로그램 로직(101)은, 도 11을 참조하여 설명한 변환부(140)와 모듈러 연산부(150)의 동작을 수행하는 코드를 포함할 수 있다.
예를 들면, 프로그램 로직(101)은, 도 12를 참조하여 설명한 암호화 방법을 수행하는 코드(code) 및/또는 도 13을 참조하여 설명한 복호화 방법을 수행하는 코드(code)를 포함할 수 있다.
예를 들면, 프로그램 로직(101)은, 도 14를 참조하여 설명한 암호화 장치의 동작을 수행하는 코드(code) 또는 도 14를 참조하여 설명한 복호화 장치의 동작을 설명하는 코드(code)를 포함할 수 있다. 즉, 프로그램 로직(101)은 도 14를 참조하여 설명한 랜덤화부(220)와 모듈러 연산부(230)의 동작을 수행하는 코드를 포함할 수 있다. 또한, 프로그램 로직(101)은 도 14를 참조하여 설명한 CRT 연산부(240)와 모듈러 연산부(250)의 동작을 수행하는 코드를 포함할 수 있다.
예를 들면, 프로그램 로직(101)은, 도 15를 참조하여 설명한 암호화 방법을 수행하는 코드(code) 및/또는 도 16을 참조하여 설명한 복호화 방법을 수행하는 코드(code)를 포함할 수 있다.
예를 들면, 프로그램 로직(101)은, 도 17을 참조하여 설명한 리플레시 장치의 동작을 수행하는 코드(code)를 포함할 수 있다.
이상 설명한 실시예에서, 컴퓨터에서 실행가능한 프로그램의 코드로 구현되는 구성요소들은, 하드웨어 로직으로도 구현이 가능할 것이다. 하드웨어 로직으로 구현되는 경우에는 컴퓨터 프로세서(103)에 내장된 형태로 구현되거나, 또는 컴퓨터 프로세서(103)와는 별도의 하드웨어로 구현이 될 수 있다.
상기와 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
10, 50, 60, 150, 230, 250: 모듈러 연산부
20, 120, 220: 랜덤화부
30, 140: 변환부
40, 130: 이벨류에이션부
70: 덧셈 연산부
80: 곱셈 연산부
240: CRT 연산부
310: 리플레시 장치

Claims (27)

  1. 평문에 에러(e)를 부가하여 랜덤화하는 단계; 및
    랜덤화된 데이터(r)를 함수(Ψ)를 이용하여 암호화문으로 변환하는 단계;를 포함하며,
    상기 함수(Ψ)는 환 동형 사상(Ring Isomorphism)인 것을 특징으로 하는, 환 동형 사상을 이용한 동형 암호화 방법.
  2. 제1항에 있어서,
    평문(m)으로부터 모듈러를 연산하는 단계;를 더 포함하며,
    상기 모듈러(M)를 연산하는 단계는,
    M = m mod Q
    에 의해 연산하는 단계이며, 여기서, Q = {qi| 1≤i≤k, i와 k는 양의 정수}이고, qi는 서로 소인 양의 정수이고,
    상기 랜덤화하는 단계는 상기 모듈러(M)에 에러(E)를 부가하여 랜덤화하는 것을 특징으로 하는 환 동형 사상을 이용한 동형 암호화 방법.
  3. 제1항에 있어서,
    상기 랜덤화하는 단계는,
    수식 R = m + E·Q
    에 의해 연산하는 단계이며,
    여기서, m은 평문, E·Q는 E 와 Q의 내적이고, E= {ei| 1≤i≤k, i와 k는 양의 정수}이고, Q = {qi| 1≤i≤k, i와 k는 양의 정수}이고, qi는 서로 소인 양의 정수인 것을 특징으로 하는 환 동형 사상을 이용한 동형 암호화 방법.
  4. 제3항에 있어서,
    상기 R 은 Zk n (모듈러 n의 최소 잉여 집합) = (a1, a2, ,,, , ak)으로 정의되고, 상기 R'는 R' = Zn[x]/(P(x)) = f(x)으로 정의되며,
    f(x)는 f(αi)=ai를 만족하는 다항식으로서 라그랑즈 보간법에 구해지며,
    여기서 α1, α2, ..., αk 는 S = {αi|αi - αi ∈ {Z* n} , 1≤i, j≤k, i, j, 및 k는 양의 정수} = (α1, α2, ..., αk)로 정의되는 함수의 원소인 것을 특징으로 하는 환 동형 사상을 이용한 동형 암호화 방법.
  5. 제1항에 있어서,
    상기 다항식(f(x))으로 변환하는 단계에서 생성된 암호화문들 간에 곱셈 연산을 하는 경우, 다음의 수식들
    ((C1 C2) mod P(x)) mod n
    에 의해 곱셈 연산을 수행하며,
    여기서, C1과 C2는 각각 상기 다항식(f(x))으로 변환하는 단계에서 변환된 암호화문이고, P(x)는 다음의 수식
    R' = Zk n/(P(x))= Zk nk i=1(x-αi)= Zk n/((x-α1)(x-α2) ‥(x-αk))에 의해 정의될 수 있고,
    Zk n 은 모듈러 n의 최소 잉여 집합이고, n은 양의 정수이며,
    α1, α2, ..., αk 는 S = {αi|αi - αi ∈ {Z* n} , 1≤i, j≤k, i j, 및 k는 양의 정수} = (α1, α2, ..., αk)로 정의되는 함수의 원소인 것을 특징으로 하는 환 동형 사상을 이용한 동형 암호화 방법.
  6. 제1항에 있어서,
    상기 다항식(R')으로 변환하는 단계에서 생성된 암호화문들 간에 덧셈 연산을 하는 경우, 다음의 수식
    (C1 + C2) mod P(x)
    에 의해 덧셈 연산을 수행하며,
    여기서, C1과 C2는 각각 상기 다항식(f(x))으로 변환하는 단계에서 변환된 암호화문이고, P(x)는 다음의 수식
    R' = Zk n/(P(x))= Zk nk i=1(x-αi)= Zk n/((x-α1)(x-α2) ‥(x-αk))에 의해 정의될 수 있고,
    Zk n 은 모듈러 n의 최소 잉여 집합이고, n은 양의 정수이며,
    α1, α2, ..., αk 는 S = {αi|αi - αi ∈ {Z* n} , 1≤i, j≤k, i j, 및 k는 양의 정수} = (α1, α2, ..., αk)로 정의되는 함수의 원소인 것을 특징으로 하는 환 동형 사상을 이용한 동형 암호화 방법.
  7. 환 동형 사상을 이용한 동형 암호화 방법에 의해 암호화된 암호화문을 복호화 하는 방법에 있어서,
    환 동형 사상을 이용한 동형 암호화 방법에 의해 암호화된 암호화문(c)에 키(S)를 적용하여 이벨류에이션하는 단계; 및
    이벨류에이션된 값(R)을 Q 로 나누어 모듈러를 연산하는 단계;를 포함하며,
    여기서, Q = {qi| 1≤i≤k, i와 k는 양의 정수}이고, qi는 서로 소인 양의 정수이고, S = {αi|αi - αi ∈ {Z* n} , 1≤i, j≤k, i, j, 및 k는 양의 정수} = (α1, α2, ..., αk)로 정의되는 것을 특징으로 하는 복호화 방법.
  8. 제7항에 있어서,
    상기 동형 암호화 방법은,
    평문에 에러(E)를 부가하여 랜덤화하는 단계; 및
    랜덤화된 데이터(R)를 환 동형 사상(Ring Isomorphism)을 이용하여 암호화문(c)으로 변환하는 단계;를 포함하는 것을 특징으로 하는 복호화 방법.
  9. 제8항에 있어서,
    상기 동형 암호화 방법은,
    상기 랜덤화하는 단계를 수행하기 전에, 평문으로부터 모듈러를 연산하는 단계;를 더 포함하며,
    상기 모듈러(M)를 연산하는 단계는,
    수식 M = m mod Q
    에 의해 연산하는 단계이며, 여기서, m은 평문이고, Q = {qi| 1≤i≤k, i와 k는 양의 정수}이고, qi는 서로 소인 양의 정수이며,
    상기 랜덤화하는 단계는 상기 모듈러(M)에 에러(E)를 부가하여 랜덤화하는 것을 특징으로 하는 복호화 방법.
  10. 제8항에 있어서,
    상기 랜덤화하는 단계는,
    수식 R = m + E·Q
    에 의해 연산하는 단계이며,
    여기서, m은 평문이고, E·Q는 E 와 Q의 내적이고, E= {ei| 1≤i≤k, i와 k는 양의 정수}이고, Q = {qi| 1≤i≤k, i와 k는 양의 정수}이고, qi는 서로 소인 양의 정수이며,
    R 은 Zk n (모듈러 n의 최소 잉여 집합)으로 정의되고, 여기서 n은
    평문(m)의 크기(space) < Q의 크기(space) < n
    을 만족하는 양의 정수인 것을 특징으로 하는 복호화 방법.
  11. 제7항에 있어서,
    상기 모듈러를 연산하는 단계의 수행 결과를, Q 로 나누어 모듈러를 연산하는 단계;를 더 포함하는 것을 특징으로 하는 복호화 방법.
  12. 평문(m)에 에러(E)를 부가하여 랜덤화하는 랜덤화부; 및
    랜덤화된 데이터(R)를 함수(Ψ)를 이용하여 암호화문(R')으로 변환하는 변환부;를 포함하며,
    상기 함수(Ψ)는 환 동형 사상(Ring Isomorphism)인 것을 특징으로 하는 환 동형 사상을 이용한 동형 암호화 장치.
  13. 제12항에 있어서,
    평문(m)으로부터 모듈러를 연산하는 모듈러 연산부;를 더 포함하며,
    상기 모듈러 연산부는,
    수식 M = m mod Q
    에 의해 연산하며, 여기서, Q = {qi| 1≤i≤k, i와 k는 양의 정수}이고, qi는 서로 소인 양의 정수이고,
    상기 랜덤화부는, 상기 모듈러 연산부에 의해 연산된 모듈러(M)에 에러(E)를 부가하여 랜덤화하는 것을 특징으로 하는 환 동형 사상을 이용한 동형 암호화 장치.
  14. 제12항에 있어서,
    상기 R 은 Zk n (모듈러 n의 최소 잉여 집합) = (a1, a2, ,,, , ak)으로 정의되고, 상기 R'는 R' = Zn[x]/(P(x)) = f(x)으로 정의되며,
    상기 변환부는 상기 R 을 f(αi)=ai를 만족하는 다항식(f(x))로 변환하며,
    여기서 α1, α2, ..., αk 는 S = {αi|αi - αi ∈ {Z* n} , 1≤i, j≤k, i, j, 및 k는 양의 정수} = (α1, α2, ..., αk)로 정의되는 함수의 원소이고,
    여기서 n은 평문(m)의 크기(space) < Q의 크기(space) < n 을 만족하는 양의 정수인 것을 특징으로 하는 환 동형 사상을 이용한 동형 암호화 장치.
  15. 제12항에 있어서,
    상기 변환부에서 변환된 암호화문들 간에 곱셈 연산을 하는 곱셈 연산부;를 더 포함하며,
    상기 곱셈 연산부는, 다음의 수식들
    ((C1 C2) mod P(x)) mod n
    에 의해 곱셈 연산을 수행하며,
    여기서, C1과 C2는 각각 상기 변환부에 의해 변환된 암호화문이고, P(x)는 다음의 수식
    R' = Zk n/(P(x))= Zk nk i=1(x-αi)= Zk n/((x-α1)(x-α2) ‥(x-αk))에 의해 정의될 수 있고,
    Zk n 은 모듈러 n의 최소 잉여 집합이고, n은 양의 정수이며,
    α1, α2, ..., αk 는 S = {αi|αi - αi ∈ {Z* n} , 1≤i, j≤k, i, j, 및 k는 양의 정수} = (α1, α2, ..., αk)로 정의되는 함수의 원소인 것을 특징으로 하는 환 동형 사상을 이용한 동형 암호화 장치.
  16. 제12항에 있어서,
    상기 변환부에서 변환된 암호화문들 간에 덧셈 연산을 하는 덧셈 연산부;를 더 포함하며,
    상기 덧셈 연산부는, 다음의 수식
    (C1 + C2) mod P(x)
    에 의해 덧셈 연산을 수행하며,
    여기서, C1과 C2는 각각 상기 변환부에 의해 변환된 암호화문이고, P(x)는 다음의 수식
    R' = Zn[x]/(P(x))= Zk nk i=1(x-αi)= Zk n/((x-α1)(x-α2) ‥(x-αk))에 의해 정의될 수 있고,
    Zk n 은 모듈러 n의 최소 잉여 집합이고, n은 양의 정수이며,
    α1, α2, ..., αk 는 S = {αi|αi - αi ∈ {Z* n} , 1≤i, j≤k, i j, 및 k는 양의 정수} = (α1, α2, ..., αk)로 정의되는 함수의 원소인 것을 특징으로 하는 환 동형 사상을 이용한 동형 암호화 장치.
  17. 환 동형 사상을 이용한 동형 암호화 방법에 의해 암호화된 암호화문을 복호화 하는 장치에 있어서,
    환 동형 사상을 이용한 동형 암호화 방법에 의해 암호화된 암호화문(c)에 키(S)를 적용하여 이벨류에이션하는 이벨류에이션부; 및
    이벨류에이션된 값(R)을 Q 로 나누어 모듈러를 연산하는 모듈러 연산부;를 포함하며,
    여기서, Q = {qi| 1≤i≤k, i와 k는 양의 정수}이고, qi는 서로 소인 양의 정수이고, S = {αi|αi - αi ∈ {Z* n} , 1≤i, j≤k, i, j, 및 k는 양의 정수} = (α1, α2, ..., αk)로 정의되는 것을 특징으로 하는 복호화 장치.
  18. 평문에 에러(E)를 부가하여 랜덤화하는 단계; 및
    랜덤화된 데이터(R)를 이벨류에이션하는 이벨류에이션 단계;를 포함하며,
    상기 이벨류에이션 단계는, 환 동형 사상(Ring Isomorphism)인 함수(Ψ)를 사용하는 것인, 환 동형 사상을 이용한 동형 암호화 방법.
  19. 제18항에 있어서,
    상기 랜덤화하는 단계는,
    수식 R = m(x) + Qe(x)
    에 의해 연산하는 단계이며,
    여기서, m(x) = m0 + m1x + m2x2 + ... + mk-1xk-1 , mi ∈ {0, 1, ..., Q-1}
    이고, Q는 Q ∈ {0, 1, ..., n-1}이고,
    여기서, e(x) = e0 + e1x + e2x2 + ... + ek-1xk-1 , e i ∈ {0, 1, ..., E-1}
    이고 E는 ∈ {0, 1, ..., n-1}이고,
    상기 n은 양의 정수이며,
    평문(m(x))의 크기(space) < Q 의 크기(space) < n 을 만족하며, 그리고
    평문(m(x))의 크기(space) < E의 크기(space) < n 을 만족하는 것을 특징으로 하는 환 동형 사상을 이용한 동형 암호화 방법.
  20. 제19항에 있어서,
    상기 R = Zn[x]/(P(x))= Zn[x]/Πk i=1(x-αi)= Zn[x]/((x-α1)(x-α2) ‥(x-αk))에 의해 정의되고, 상기 이벨류에이션 단계의 수행결과(R')는 R' = Zk n 에 의해 정의되며,
    여기서 Zk n 은 모듈러 n의 최소 잉여 집합이고, α1, α2, ..., αk 는 S = {αi|αi - αi ∈ {Z* n} , 1≤i, j≤k, i, j, 및 k는 양의 정수} = (α1, α2, ..., αk)로 정의되는 함수의 원소인것을 특징으로 하는 환 동형 사상을 이용한 동형 암호화 방법.
  21. 제19항에 있어서,
    상기 이벨류에이션 단계의 수행결과(R')는
    R' = (m(α1) + Qe(α1), m(α2) + Qe(α2), ... , m(αk) + Qe(αk))
    인 것을 특징으로 하는 환 동형 사상을 이용한 동형 암호화 방법.
  22. 환 동형 사상을 이용한 동형 암호화 방법에 의해 암호화된 암호화문을 복호화 하는 방법에 있어서,
    환 동형 사상을 이용한 동형 암호화 방법에 의해 암호화된 암호화문(C)을, 비밀키(S)를 적용하여 다항식(f(x))으로 변환하는 단계; 및
    상기 다항식(f(x))을 Q 로 나누어 모듈러를 연산하는 단계;를 포함하며,
    상기 암호화문(C)는
    C = (C1, C2, ..., Ck)
    로서 정의될 수 있고 이러한 경우, 상기 f(x)는 다음의 식들
    f(α1) = C1
    f(α2) = C2
    .
    .
    .
    f(αk)= Ck
    을 만족하며, 여기서 α1, α2, ..., αk 는 S = {αi|αi - αi ∈ {Z* n} , 1≤i, j≤k, i, j, 및 k는 양의 정수} = (α1, α2, ..., αk)로 정의되는 함수의 원소이며,
    Q는 Q ∈ {0, 1, ..., n-1}이고, 여기서 n은 양의 정수이고
    평문(m(x))의 크기(space) < Q 의 크기(space) < n 을 만족하는 것을 특징으로 하는 복호화 방법.
  23. 제22항에 있어서,
    상기 동형 암호화 방법은,
    제18항 내지 제21항 중 어느 하나의 항에 의한 것임을 특징으로 하는 복호화 방법.
  24. 평문에 에러(E)를 부가하여 랜덤화하는 랜덤화부; 및
    랜덤화된 데이터(R)를 이벨류에이션하는 이벨류에이션부;를 포함하며,
    상기 이벨류에이션 단계는, 환 동형 사상(Ring Isomorphism)인 함수(Ψ)를 사용하는 것인, 환 동형 사상을 이용한 동형 암호화 장치.
  25. 환 동형 사상을 이용한 동형 암호화 방법에 의해 암호화된 암호화문을 복호화 하는 장치에 있어서,
    환 동형 사상을 이용한 동형 암호화 방법에 의해 암호화된 암호화문(C)을, 비밀키(S)를 적용하여 다항식(f(x))으로 변환하는 변환부; 및
    상기 다항식(f(x))을 Q 로 나누어 모듈러를 연산하는 모듈러 연산부;를 포함하며,
    상기 암호화문(C)는
    C = (C1, C2, ..., Ck)
    로서 정의될 수 있고 이러한 경우, 상기 f(x)는 다음의 식들
    f(α1) = C1
    f(α2) = C2
    .
    .
    .
    f(αk)= Ck
    을 만족하며, 여기서 α1, α2, ..., αk 는 S = {αi|αi - αi ∈ {Z* n} , 1≤i, j≤k, i, j, 및 k는 양의 정수} = (α1, α2, ..., αk)로 정의되는 함수의 원소이며,
    Q는 Q ∈ {0, 1, ..., n-1}이고, 여기서 n은 양의 정수인 것을 특징으로 하는 복호화 장치.
  26. 제1항 내지 제7항 중 어느 한 항의 방법을 실행하기 위한 프로그램을 기록한 것을 특징으로 하는 컴퓨터로 판독 가능한 기록 매체.
  27. 제8항 내지 제12항 중 어느 한 항의 방법을 실행하기 위한 프로그램을 기록한 것을 특징으로 하는 컴퓨터로 판독 가능한 기록 매체.
KR1020130007760A 2012-08-28 2013-01-24 환 동형 사상을 이용한 동형 암호화 방법과 복호화 방법 및 이를 이용한 장치 KR101449239B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020130007760A KR101449239B1 (ko) 2013-01-24 2013-01-24 환 동형 사상을 이용한 동형 암호화 방법과 복호화 방법 및 이를 이용한 장치
US14/127,478 US20150312028A1 (en) 2012-08-28 2013-08-28 Homomorphic encryption and decryption methods using ring isomorphism, and apparatuses using the same
PCT/KR2013/007743 WO2014035146A2 (ko) 2012-08-28 2013-08-28 환 동형 사상을 이용한 동형 암호화 방법과 복호화 방법 및 이를 이용한 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130007760A KR101449239B1 (ko) 2013-01-24 2013-01-24 환 동형 사상을 이용한 동형 암호화 방법과 복호화 방법 및 이를 이용한 장치

Publications (2)

Publication Number Publication Date
KR20140095179A true KR20140095179A (ko) 2014-08-01
KR101449239B1 KR101449239B1 (ko) 2014-10-15

Family

ID=51743680

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130007760A KR101449239B1 (ko) 2012-08-28 2013-01-24 환 동형 사상을 이용한 동형 암호화 방법과 복호화 방법 및 이를 이용한 장치

Country Status (1)

Country Link
KR (1) KR101449239B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101965628B1 (ko) * 2017-12-15 2019-04-04 서울대학교산학협력단 동형 암호화를 수행하는 단말 장치와 그 암호문을 처리하는 서버 장치 및 그 방법들
WO2019117694A1 (ko) * 2017-12-15 2019-06-20 서울대학교산학협력단 동형 암호화를 수행하는 단말 장치와 그 암호문을 처리하는 서버 장치 및 그 방법들
WO2019139200A1 (ko) * 2018-01-12 2019-07-18 한국스마트인증 주식회사 익명성 보장 및 시빌 공격 방지가 가능한, 블록 체인을 이용한 의사 표시 확인 방법
KR102040106B1 (ko) * 2018-10-29 2019-11-27 주식회사 크립토랩 실수 평문에 대한 동형 암호화 방법
WO2020022598A1 (ko) * 2018-07-27 2020-01-30 주식회사 크립토랩 암호문에 대한 근사 연산을 수행하는 장치 및 방법

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210135075A (ko) 2020-05-04 2021-11-12 삼성전자주식회사 동형 암복호화 장치, 상기 장치를 포함하는 시스템, 및 동형 암복호화의 수행 방법
KR20210147645A (ko) 2020-05-29 2021-12-07 삼성전자주식회사 동형 암호화 장치 및 그것의 암호문 연산 방법
KR20220048225A (ko) 2020-10-12 2022-04-19 삼성전자주식회사 동형 연산 가속기 및 이를 포함하는 동형 연산 수행 장치

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100954579B1 (ko) * 2008-02-20 2010-04-26 고려대학교 산학협력단 다항식 기저 기반의 유한체 직렬 곱셈 장치 및 방법
WO2010123112A1 (ja) * 2009-04-24 2010-10-28 日本電信電話株式会社 暗号化装置、復号装置、暗号化方法、復号方法、セキュリティ方法、プログラム及び記録媒体
US8462939B2 (en) * 2010-12-07 2013-06-11 King Fahd University Of Petroleum And Minerals RNS-based cryptographic system and method

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101965628B1 (ko) * 2017-12-15 2019-04-04 서울대학교산학협력단 동형 암호화를 수행하는 단말 장치와 그 암호문을 처리하는 서버 장치 및 그 방법들
WO2019117694A1 (ko) * 2017-12-15 2019-06-20 서울대학교산학협력단 동형 암호화를 수행하는 단말 장치와 그 암호문을 처리하는 서버 장치 및 그 방법들
US10778409B2 (en) 2017-12-15 2020-09-15 Crypto Lab Inc. Terminal device performing homomorphic encryption, server device processing ciphertext and methods thereof
US11101976B2 (en) 2017-12-15 2021-08-24 Crypto Lab Inc. Terminal device performing homomorphic encryption, server device processing ciphertext and methods thereof
US11115183B2 (en) 2017-12-15 2021-09-07 Crypto Lab Inc. Terminal device performing homomorphic encryption, server device processing ciphertext and methods thereof
WO2019139200A1 (ko) * 2018-01-12 2019-07-18 한국스마트인증 주식회사 익명성 보장 및 시빌 공격 방지가 가능한, 블록 체인을 이용한 의사 표시 확인 방법
US11303427B2 (en) 2018-01-12 2022-04-12 Korea Smart Authentication Corp. Method for verifying opinion by use of block chain which guarantees anonimity and prevents sybil attack
WO2020022598A1 (ko) * 2018-07-27 2020-01-30 주식회사 크립토랩 암호문에 대한 근사 연산을 수행하는 장치 및 방법
US11115182B2 (en) 2018-07-27 2021-09-07 Crypto Lab Inc. Apparatus for approximately processing encrypted messages and methods thereof
KR102040106B1 (ko) * 2018-10-29 2019-11-27 주식회사 크립토랩 실수 평문에 대한 동형 암호화 방법

Also Published As

Publication number Publication date
KR101449239B1 (ko) 2014-10-15

Similar Documents

Publication Publication Date Title
KR101449239B1 (ko) 환 동형 사상을 이용한 동형 암호화 방법과 복호화 방법 및 이를 이용한 장치
US20150312028A1 (en) Homomorphic encryption and decryption methods using ring isomorphism, and apparatuses using the same
EP3059894B1 (en) Modular multiplication using look-up tables
US9166785B2 (en) Cryptography processing device and cryptography processing method
JP5562475B2 (ja) 秘密分散システム、分散装置、分散管理装置、取得装置、それらの処理方法、秘密分散方法、プログラム
WO2019005845A1 (en) VARIABLE RELINARIZATION IN A HOMOMORPHIC ENCRYPTION
KR20180013064A (ko) 근사 복소수 연산을 지원하는 복수 개의 메시지의 동형 암호화 방법
KR101233682B1 (ko) 타원곡선암호를 위한 연산 장치 및 방법
KR102550812B1 (ko) 동형 암호를 이용한 암호문 비교 방법 및 이를 수행하기 위한 장치
CN111783129A (zh) 一种保护隐私的数据处理方法及系统
EP3893429A1 (en) Apparatus and method for performing non-polynomial calculation on cryptogram
KR20160114624A (ko) 연관된 개인 키 부분을 사용하는 보다 빠른 공개 키 암호화를 위한 시스템들 및 방법들
US8553878B2 (en) Data transformation system using cyclic groups
US11799628B2 (en) Apparatus and method for processing non-polynomial operation on encrypted messages
KR20220079522A (ko) 기하 대수 및 헨젤 코드들을 이용한 암호화를 위한 방법들 및 시스템들과 동형 암호화 시스템들
JP7117964B2 (ja) 復号装置、暗号システム、復号方法及び復号プログラム
KR101440680B1 (ko) 중국인 나머지 정리에 기반한 준동형 암복호화 방법 및 이를 이용한 장치
KR20230078510A (ko) 동형 암호 연산 장치 및 방법
JP5679344B2 (ja) 署名鍵難読化システム、署名鍵難読化方法、難読化された署名鍵を用いた暗号化署名システム、難読化された署名鍵を用いた暗号化署名方法とプログラム
JP5300374B2 (ja) 表現変換装置、演算装置、表現変換方法及びプログラム
US11343070B2 (en) System and method for performing a fully homomorphic encryption on a plain text
Wang et al. Research on full homomorphic encryption algorithm for integer in cloud environment
JP2017223822A (ja) 暗号文処理システム、暗号文処理サーバ、及び暗号文処理方法
KR20240047280A (ko) 동형 암호 연산 장치 및 방법
JP5514345B2 (ja) 表現変換装置、演算装置、表現変換方法及びプログラム

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
FPAY Annual fee payment

Payment date: 20170911

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190927

Year of fee payment: 6