KR20230138459A - 동형 암호 방법 및 관련 디바이스 및 시스템 - Google Patents

동형 암호 방법 및 관련 디바이스 및 시스템 Download PDF

Info

Publication number
KR20230138459A
KR20230138459A KR1020237024609A KR20237024609A KR20230138459A KR 20230138459 A KR20230138459 A KR 20230138459A KR 1020237024609 A KR1020237024609 A KR 1020237024609A KR 20237024609 A KR20237024609 A KR 20237024609A KR 20230138459 A KR20230138459 A KR 20230138459A
Authority
KR
South Korea
Prior art keywords
encrypted
message
determining
messages
bootstrapping
Prior art date
Application number
KR1020237024609A
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 라벨 테크놀로지스
Publication of KR20230138459A publication Critical patent/KR20230138459A/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Collating Specific Patterns (AREA)
  • Traffic Control Systems (AREA)
  • Control Of Turbines (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 개시 기술은 암호화 메시지를 복호화 없이 암호화 메시지에 대한 작업을 수행할 수 있게 하는 동형 암호 기술에 관한 것이며, 이들 암호화 메시지는 pi 개별 요소로 구성된 이산 세트에 속하는 비암호화 메시지에 관련되고, pi는 홀수이고, 상기 이산 세트의 요소는 이들 요소의 임의의 2 개 요소 간의 차이의 두 배가 정수가 아니도록 하고, 상기 이산 세트는 예를 들어 이산 토러스 Tpi = {-(pi-1)/2, -(pi-1)/2+1,…, (pi-1)/2-1,(pi-1)/2}/pi이다. 특히, 이러한 암호화 메시지로부터의 구체적인 부트스트래핑 절차가 개시된다. 개시된 기술은 또한 Zp에 속하는 비암호화 메시지에 관련된 암호화 메시지에 대한 작업을 수행하는 동형 암호 기술에 관한 것이며, p는 서로 소인 r 정수 pi, i=1..r의 곱과 같다. 개시된 기술은 또한 이러한 기술을 구현하는 관련 전자 디바이스 및 시스템에 관한 것이다.

Description

동형 암호 방법 및 관련 디바이스 및 시스템
본 기술은 동형 암호에 대한 방법, 디바이스 및 시스템에 관한 것이다.
암호화된 데이터를 먼저 복호화하지 않고도 계산이나 데이터 처리를 할 수 있는 동형 암호(Homomorphic Encryption)가 최근 많은 관심을 받고 있다.
실제로, 개인 데이터의 디지털 데이터 처리는 일상 생활에서 유비쿼터스화되었다. 따라서 이러한 개인 데이터가 디지털 환경에서 점점 더 많이 유통되는 경향이 있으므로 이러한 데이터의 비밀성과 개인 정보 보호가 중요해졌다.
이와 관련하여, 동형 암호는 매우 유망한 솔루션인데, 이는 데이터가 처리 중에 복호화되지 않기 때문에, 매우 안전하게 데이터 익명화 및 프라이버시를 동시에 보존하면서 데이터를 처리할 수 있기 때문이다.
동형 암호는 일반적으로 "오류를 통한 학습(learning with error)" 암호화 체계에 기반하며, 여기서 암호화 메시지 c=(a,b)는 다음 공식에 따라 비암호화 메시지 m에서 도출된다: b=m+e+a.s, 여기서:
- s는 비밀 키이고,
- a는 비밀 키 s를 투사하기 위해 무작위로 선택된 벡터이며, 그리고
- e는 m+a.s에 추가된 랜덤 노이즈 성분이다.
메시지를 복호화하기 위해, 비밀 키 s를 소유한 누군가는 수량 b-a.s(m+e와 같음)를 계산한 다음, 결과를 반올림하여 노이즈 성분 e를 제거하고 메시지 m을 검색할 수 있다. 물론, 메시지 m을 검색할 수 있으려면, 노이즈 항 e가 충분히 작아야 하고 유지되어야 한다.
두 개의 암호화 메시지를 합하거나 더 나쁘게 동형으로 함께 곱할 시에 한 암호화 메시지를 얻으며, 상기 한 암호화 메시지는, 노이즈 성분이 두 개의 초기 암호화 메시지보다 높은 두 개의 초기 비암호화 메시지의 합계 또는 곱의 암호화 버전이다.
따라서, 노이즈 항이 데이터 처리 과정에서 계속 증가하는 것을 방지하기 위해, 일반적으로 "부트스트래핑(bootstrapping)"이라고 하는 리프레시 절차가 일반적으로 암호화 메시지 c에 대한 각 작업 후에 반복적으로 실행된다. 이 절차는 c의 리프레시 버전, 즉 m으로 복호화되고(s를 사용하여 복호화될 때) 노이즈 성분이 c의 것보다 작은 암호화 메시지 c'를 생성한다.
부트스트래핑 절차는 일반적으로 Xq.V(X)의 동형(즉: 암호화 형태) 계산을 포함하며, 여기에서:
- V(X)는 다음과 같은 다항식이며:1+X+X2+X3+…+XN-1,
- 그리고 q는 2N(b-a.s)에 가장 가까운 정수와 같다:
Xq.V(X) mod (XN+1)의 상수 항, 즉 coef0(Xq.V(X))는 c의 리프레시 버전이다: 이는 노이즈 성분 e'가 c의 노이즈 성분 e보다 작은 m의 암호화 버전이다.
반올림 작업 으로 인해, q를 (동형으로) 계산할 때, 초기 노이즈 e가 다소 제거되는 것(washed out)을 알 수 있다. 이 작업에서, 계수(factor) 2N은 b-a.s의 가능한 값(일부 노이즈에 의해 손상됨)을, 반올림하기 전에, 충분히 퍼뜨릴 수 있는 확장 계수의 역할을 한다.
이러한 부트스트래핑 절차는 매우 유용하고 독창적이지만, 또한 반복적으로 실행되어야 하는 만큼 시간이 많이 소요된다(특히 포함된 작업이 동형으로 수행되어야 하기 때문에).
"오류를 통한 학습"과 부트스트래핑 절차를 결합하는, 상기에서 간략히 설명된 동형 암호 체계는 일반적으로 이진 메시지(즉, 값이 0 또는 1인 메시지)와 함께 수행된다. 실제로, 이 기술 분야에서, 대부분의 도구는 이러한 메시지를 위해 특별히 개발되고 최적화되었다.
더 긴 메시지에 대해 동형 작업을 수행하기 위해, 메시지는 이진 메시지로 분해되고(고전적인 이진 분해), 각각의 이진 메시지는 개별적으로 암호화된 다음, 동형으로 비트 단위(bit by bit)로 작업이 수행된다. 그러나, 이 과정에서 각각의 이진 추가로 인한 (암호화된) 캐리(carry)를 고려하고 이 캐리를 다음 이진 작업으로 전파해야 한다. 따라서 이 과정은 시간이 많이 걸리는 일련의 과정이다. 게다가, 각 이진 작업은 동형으로 수행되고, 이는 동형(따라서 시간 소모적인) 작업의 수를 크게 증가시킨다.
이와 관련하여, 이진 메시지보다 긴 메시지를 효율적으로 처리할 수 있는 동형 암호 기술이 개시된다.
본 기술의 관점은 메시지 mi의 암호화 버전인 암호화 메시지 ci를 결정하는 방법에 관한 것이고, ci는, bi가 mi 및 비밀 키 s로부터 결정되는 (ai,bi)와 같고, bi는 mi+ei+ai.s와 같고, ai는 s를 투사하기 위해 무작위로 선택된 벡터이고, ei는 mi+ai.s에 추가된 랜덤 노이즈 성분이며, 메시지 mi는 pi 개별 요소로 구성된 이산 세트(discrete set)에 속하고, pi는 홀수이고, 상기 이산 세트의 요소는, 상기 요소 중 임의의 2 개 요소 간의 차이의 두 배가 정수가 아니도록 하고, 상기 이산 세트는 이산 토러스(discrete torus) 이거나, 또는 계수가 Tpi에 속하는 N-1 차수의 다항식 세트 Tpi,N[X]이거나, 또는 Tpi와 전단사 관계(bijective relationship)에 있는 또 다른 이산 센트인다.
본 발명자들은 이러한 "긴" 메시지(이진 메시지보다 김)에 대한 동형 암호법 기술을 개발하여, 무엇보다도 암호화된 상태를 유지하면서 이들 메시지를 추가, 증가 및 리프레시(즉: 부트스트래핑)할 수 있다. 이들 작업은 메시지를 독립적으로 암호화된 더 작은 이진 메시지로 분해함 없이 수행된다. 다시 말해, 암호화 메시지는 더 작은 필드로 분해되지 않고 전체로 취급된다.
따라서, 수많은 암호화 비트의 암호화 캐리와 직렬 처리를 처리해야 하는 부담을 피할 수 있다.
긴 메시지에 대해 동형 처리가 (분해함 없이) 가능하다는 사실에 주목해야 하고, 이 처리가 빠르고 효율적일 수 있다는 사실은 즉각적이고 직접적인 결과와는 거리가 멀다.
실제로, 상기에서 언급한 바와 같이, 현재 사용 가능한 대부분의 동형 암호법 도구는 특별히 이진 메시지에 적용된다. 따라서, 발명자들은 일반적인 관행과 편견에 맞서야 했고, 긴 메시지의 직접적인 동형 처리가 실제로 가능한지 여부 또는 효율적으로 실행될 수 있는지 여부를 알지 못한 채, 더 긴 메시지를 위한 특정(그리고 정교한) 도구의 개발을 진행해야 했다. 특히, 발명자들은 이러한 암호화 프로토콜을 개발하기 위해, 새로운 동형 곱셈 체계와 새로운 부트스트래핑 방법(아래 제시됨)을 정교하게 만들어야 했다. 이러한 매우 복잡한 도구가 개발된 후에야 발명자들은 그러한 처리가 실제로 수행될 수 있음을 확신할 수 있었다.
그리고, 이들 새로운 도구를 개발하는 과정에서, 발명자들은 이산 토러스(discrete 토러스) Tpi, 또는 다항식 세트 Tpi,N[X], 또는 또 다른 등가의 이산 세트에 속하는 메시지로 작업하는 것을 깨달았고, 여기에서:
- pi는 홀 수이고,
- 그리고 상기 세트의 요소 중 두 개를 그룹화하는 임의의 커플에 대해, 이 두 요소 간의 차의 두 배는 정수가 아니라는 점
이 매우 유익했는데, 이는 이러한 특정 기능이 위에서 언급한 곱셈 및 부트스트래핑 처리와 관련된 서로 다른 작업을 실현 가능하게 만드는 것으로 밝혀졌기 때문이다(나중에 자세히 설명함).
"긴" 메시지의 직접적인 동형 처리가 가능할 뿐만 아니라 제한된 시간 내에 효율적으로 달성될 수 있다는 사실도 언뜻 보기에는 명백하지 않다.
실제로, 메시지 mi가 길 때, 즉 정수 pi가 상당히 클 때, 예를 들어 17, 21 또는 그 이상과 같을 때, 언뜻 보기에 부트스트래핑 작업 중에, N-1 차수가 높은 다항식을 사용해야 한다고 예상할 수 있다. 실제로 위에서 설명한 것처럼 수량 q의 계산에서 정수 N은 일종의 팽창 계수로 작용한다. 따라서 pi가 클 때, 메시지 mi(구간 ]-1/2;1/2]로 분포)의 가능한 값이 서로 가깝기 때문에, 수량 q의 계산과 관련된 반올림 작업 전에, 이들 값을 충분히 분산시킬 수 있도록 하기 위해서는 큰 숫자 N을 선택해야 할 것으로 예상된다. 그리고 큰 N은 계산 시간을 상당히 증가시킨다.
보다 정확하게는, 대략적인 추정은 부트스트래핑 작업이 적절하게 작동하기 위해(즉, 이 작업 중에 메시지 m은 저하되거나 손실될 확률이 낮음), N이 대략 10000(예를 들어, pi=20 및 n=500) 이상이어야 한다는 결론에 이르게 한다. 그리고 이러한 N 값은 계산 시간 측면에서 거의 엄두도 못 낼 정도로 크다.
그러나 사실, 완전한 예리한 확률 계산은 이러한 부트스트래핑 작업이 N-1 차수가 위에서 언급한 첫 번째 근사 추정이 제안하는 것보다 훨씬 작은 다항식으로 성공적으로 수행될 수 있음을 보여준다. 보다 정확하게는, 1000 정도의 정수 N(예를 들어, 1024)이 통상적인 pi 값(예를 들어 약 20-40)에 충분한 것으로 밝혀졌음을 보여줄 수 있다.
개시된 기술에 따르면, N은, 이토록 놀랍도록 유리한 스케일링을 이용하고 부트스트래핑 처리를 가속화하기 위해, pi의 50배, 또는 그 미만 또는 심지어 30배 미만으로 작게 선택될 수 있다.
상기에서 언급된 본 발명자들에 의해 개발된 부트스트래핑하는 방법은 상기에서 설명된 바와 같이 결정된 암호화 메시지 ci=(ai,bi)를 부트스트래핑하는 바업이며, 이 방법은 메시지 mi에 적용된 함수 g의 값 g(mi)의 암호화 버전인 리프레시 암호화 메시지 ci'=(ai',bi')를 결정하는 단계를 포함하며, ci'는 ei보다 작은 노이즈 성분 ei'을 가진다.
ci'의 결정은 Xq.Wg(X) mod (XN+1)의 상수 계수 coef0(Xq.Wg(X))를 동형으로 결정하는 단계를 포함하며,
여기서,는 계수 wj가 다음 식에 의해 주어진 N-1 차수의 다항식이며:
, 여기서 이며,
은 2Nmi에 가장 가까운 정수이고, 에 적용된 천장 함수이며,
그리고 q는 에 가장 가까운 정수이다.
따라서, 이러한 부트스트래핑 작업 동안, 암호문의 노이즈 성분을 감소(리프레시)하는 것과 더불어, 임의의 함수 g가 해당 메시지 mi에 적용될 수 있다.
이는 상당히 많은 데이터 처리 루틴을 가속화한다. 실제로, 이러한 함수 g를 메시지에 적용하기 위해서는, 기본 작업(동형)을 수행한 다음 결과를 부트스트래핑(이전 작업으로 인한 노이즈 증가에 대응하기 위해)하고, 또 다른 기본 작업을 수행한 다음 결과를 부트스트래핑하는 등 대신에, 위에 제시된 특별한 부트스트래핑 절차를 한 번만 실행하면 된다.
이러한 부트스트래핑 절차에서, 다항식 Wg(X)의 N-1 차수는 pi 이상 또는 심지어 pi의 5배 이상이 되도록 선택될 수 있다.
개시된 기술은 또한 2 개의 메시지 m1i 및 m2i를 동형으로(homomorphically) 곱하는 방법에 관한 것이며, 2 개의 메시지 m1i 및 m2i 각각은 이산 토러스 Tpi 또는 다항식 Tpi,N[X] 세트에 속하며, 상기 방법은 m1i와 m2i의 곱의 암호화 버전인 암호화 메시지 c3i를 결정하는 단계를 포함하고, c3i는 c1i 또는 c2i를 복호화함 없이 메시지 m1i 및 m2i의 암호화 버전 c1i 및 c2i으로부터 결정되고,
방법은 다음 식을 동형으로 결정하는 단계를 포함하고,
여기서 , 또는 , 또는 은 상기에서 제시된 부트스트래핑 방법을 실행하여 동형으로 결정되고, 함수 g는 , 또는 , 또는 각각이다.
위에 제시된 도구는, 이러한 이산 pi 요소 세트(pi 홀수 포함)에 속하는 메시지 mi의 동형 처리를 위해, 고유한 이점과 더불어, 중국인의 나머지 정리 분해(Chinese remainder theorem decomposition)를 기반으로 더 작은 성분 mi로 분해되는 훨씬 더 긴 메시지에 대한 암호법 기술에 매우 유익한 방식으로 적용될 수 있고, 이는 다시 캐리를 처리하는 부담을 피할 수 있음을 주목할 수 있다(다시 말해, 위에서 언급한 도구는 이러한 중국인의 나머지 처리 방법의 기본적인 브릭(bricks)의 일종이며, 아래에서 자세히 설명된다).
개시된 기술은 또한 메시지 m1i 및 m2i에 적용된 2 개의 변수 함수 f의 값 f(m1i, m2i)의 암호화 버전인 암호화 메시지 cf,i를 결정하는 방법에 관한 것이며, m1i 및 m2i 각각은 상기에서 언급된 이산 세트(예를 들면, 토러스 Tpi 또는 다항식 세트 Tpi,N[X])에 속하고,
cf,i는 c1i 또는 c2i를 복호화함 없이 암호화 메시지 c1i 및 c2i로부터 결정되고, c1i 및 c2i 각각은 상기에서 제시된 암호화 메시지 결정 방법에 따라 결정된 m1i 및 m2i 암호화 버전이고,
cf,i의 결정은:
- 상기에서 제시된 부트스트래핑 방법을 실행하여 c1i 및 c2i 각각으로부터 c1'i 및 c2'i을 결정하는 단계, 여기서 이 부트스트래핑 동안에 사용된 함수 g는, 계수 각각이 토러스 에 속하고 인 임의의 인덱스 세트(i,j,k,l)에 대해 (k,l)이 (j,i)와는 다르도록 하는 세트 S에 이산 세트를 매핑하는 함수 gmap이고: 와는 다르며, α 및 β는 숫자가 주어진 2 개의 상수 및 정수이고,
c1'i 및 c2'im1 i =gmap(m1i) 및 m2 i =gmap(m2i) 각각의 암호화 버전이고, m1 i m2 i 각각은 S에 속함;
- c1'i 및 c2'i로부터, 의 암호화 버전인 암호화 메시지 cs를 동형으로 결정하는 단계;
- 상기에서 제시된 부트스트래핑 방법을 실행하여 cs로부터 cf,i를 결정하는 단계, 여기서 이 부트스트래핑 동안에 사용된 함수 g는, 다음 조건에 의해 정의된, T로부터 Tpi 까지의 1 개의 변수 함수 gf이고:
이산 세트에 각각 속하는 메시지 m1j, m2j의 임의의 커플에 대해,
즉: 임;을 포함한다.
이 기술의 관점에 따르면, 세트 S의 요소는 인 임의의 인덱스 세트(i,j,k,l)에 대해, 심지어일 때도 와는 다르도록 한다. 이러한 경우에, 특히 : α=1 및 β=-1일 수 있으며, cs는 c1'i과 c2' 간의 동형 차이 으로 계산하여 결정되거나, 또는 α=-1이고 β=1이며, cs는 c2'i과 c1' 간의 동형 차이 으로 계산하여 결정된다.
이 기술의 또 다른 관점에 따르면, 함수 f는 대칭이고, f(m1i,m2i)는 메시지 m1i 및 m2i의 임의의 커플에 대해 f(m2i,m1i)와 같고, α 및 β 각각은 1이고, cs는 c1'i과 c2'의 동형 합 으로 계산하여 결정된다.
본 기술은 또한 암호화 메시지 cf,i를 결정하는 방법에 관한 것이며, cf,i는 예를 들면 해당 부트스트래핑 방법과는 독립적으로 2 개의 변수 함수 f의 값f(m1i,m2i)의 암호화 버전이다. 실제로, 당업자가 이해할 수 있는 바와 같이, S에 대한 이산 세트(예를 들어: Tpi)의 중간 매핑을 기반으로 하여, f를 동형으로 평가하는 방법은 상기 이산 세트를 S에 동형적으로 매핑하는 임의의 방법(매핑 방법은 상기에서 설명한 것과 다를 수 있음)을 사용하고, 그 후 수량 에 함수 gf와 같은 함수를 동형으로 적용하는 임의의 방법을 사용하여, 이러한 특정 부트스트래핑 절차와는 독립적으로 달성될 수 있다.
본 기술의 관점에 따르면, 상기에서 제시된 임의의 방법은 컴퓨터(해당 방법을 실행하도록 프로그래밍되거나 이와 달리 배열됨), 즉 논리 연산을 실행하는 적어도 하나의 프로세서 및 데이터를 저장하는 하나의 메모리 디바이스를 포함하는 전자 디바이스 또는 시스템(여러 개의 원격 디바이스 사이에 분포될 수 있음)에 의해 실행된다.
특히, 본 기술의 관점은 하나 이상의 프로세서 및 적어도 하나의 메모리를 포함하는 암호화 디바이스에 관한 것이며, 암호화 디바이스는 프로세서 또는 프로세서들이 다음 단계를 실행하도록 프로그램된다:
- 상기에서 언급된 이산 세트에 속하는 비암호화 메시지 mi를 나타내는 데이터를 수신하는 단계
- 암호화 메시지 ci를 나타내는 암호화 데이터를 결정하기 위해, 상기에서 제시된 암호화하는 방법에 따라 상기 데이터를 처리하는 단계, 여기서 상기 처리 동안에 사용되는 비밀 키 s는 암호화 디바이스의 메모리에 적어도 일시적으로 저장되며, 상기 처리 동안에 프로세서 또는 프로세서에 의해 액세스된다.
개시된 기술의 관점는 이러한 암호화 디바이스 및 처리 디바이스를 포함하는 암호법 시스템에 관한 것이며,
처리 디바이스는 하나 이상의 프로세서 및 적어도 하나의 메모리를 포함하고, 처리 디바이스는 프로세서 또는 프로세서들이 다음 단계를 실행하도록 프로그램된다:
- 암호화 디바이스에 의해 생성된 암호화 메시지 ci를 나타내는 데이터를 수신하는 단계,
- 암호화 메시지 c'i를 나타내는 리프레시 데이터를 결정하기 위해, 상기에서 제시된 부트스트래핑에 대한 방법에 따라, 상기 데이터를 처리하는 단계, 상기 처리 단계는 ci를 복호화하지 않고 비밀 키 s를 사용, 판독 또는 액세스함 없이 달성됨.
특히, 비밀 키 s는 처리 디바이스(암호화 디바이스와 구별되는 별도의 디바이스)에 완전히 없을 수 있으며, 항상 처리 디바이스에 없을 수 있다.
개시된 기술은 또한 예를 들면 암호화 디바이스와는 독립적인 그러한 처리 디바이스에 관한 것이다.
처리 디바이스는 또한 상기에 제시된 곱셈 방법, 및 암호화 메시지 cf,i를 결정하는 방법을 실행하도록 프로그래밍될 수 있으며, cf,i는 2 개의 변수 함수 f의 값 f(m1i,m2i)의 암호화 버전이다.
개시된 기술은 또한 컴퓨터에 의해 실행될 때 컴퓨터가 위에 제시된 임의의 방법을 실행하게 하는 명령어를 포함하는 컴퓨터 판독 가능 프로그램 제품에 관한 것이다.
개시된 기술은 또한 에 속하는 메시지 x의 암호화 버전인 암호화 메시지 C를 결정하는 방법에 관한 것이며, p는 와 같고, 정수 pi는 서로소(pairwise coprime)이고, 방법은 다음을 포함한다:
- x를 성분 xi, i=1...r로 분해하는 단계, 여기서 xi는 x 모듈로(modulo) pi와 같음,
- 연관 계수 pi가 홀수인 각 성분 xi에 대해, 상기에서 제시된 암호화 방법에 따라 메시지 mi의 암호화 버전 ci를 결정하는 단계, 여기서 mi는, 상기 이산 세트의 요소 중에서, 와 이산 세트 간의 주어진 전단사 관계에 의해 xi에 연관된 요소임,
- 성분 xi가 2와 같은 계수 pi와 관련되는 경우, xi와 관련되고 2개의 개별 값을 취할 수 있는 수량 Qi의 암호화 버전 ci를 결정하는 단계, 여기서 ci는 bi= Qi+ei+ai.s인 (ai,bi)와 같음,
C=(c1,...ci,...cr)을 반환하는 단계.
방금 설명된 암호화 방법에 따라 결정된 암호화 메시지 C=(c1,...ci,...cr)를 부트스트래핑 방법에 관한 것이며, 이러한 (일반적인) 부트스트래핑 방법은 다음을 포함한다:
- 연관 계수 pi가 홀수인 ci 각각에 대해, 앞에서 제시된 부트스트래핑을 하는 방법을 실행하여, ci로부터 리프레시 암호화 메시지 c'i를 결정하는 단계;
- C'=(c'1,...,c'i,...c'r)을 반환하는 단계.
본 기술은 또한 2 개의 메시지 x1과 x2의 곱의 암호화 버전인 암호화 메시지 C3=(c31,...c3i,...c3r)를 결정하는 방법에 관한 것이고, 2 개의 메시지 x1과 x2 각각은 에 속하고,
C3은 암호화 메시지 C1 또는 C2를 복호화함 없이, C1 및 C2로부터 결정되고, C1 및 C2는 x1 및 x2 각각의 암호화 버전이고, C1=(c11,...c1i,...c1r) 및 C2=(c21,...c2i,...c2r)은 방금 제시된 암호화 방법에 따라 x1 및 x2 각각으로부터 결정되고, 상기 이산 세트는 Tpi 또는 Tpi,N[X]이며, 그리고
c1i 및 c2i가 홀수인 계수 pi와 관련될 때, 이산 토러스 Tpi에 속하는 메시지에 대한 상기에서 설명된 곱 방법에 따라, C3의 각 성분 c3i은 C1 및 C2의 대응하는 성분 c1i 및 c2i으로부터 결정된다.
개시된 기술은 상기에서 제시된 (Tpi에 속하는 메시지에 대한) 부트스트래핑 방법과는 독립적으로 메시지 C를 부트스트래핑하는 방법, 또는 동형으로 두 개의 메시지 x1 및 x2를 곱하는 방법 자체에 관한 것이다. 실제로, 당업자가 이해할 수 있는 바와 같이, Zp에 속하는 비암호화 메시지 x와 관련된 암호화 메시지를 처리하는 이들 두 방법(p는 와 같고, 정수 pi는 서로소임)은 중국인의 나머지 정리를 이용하여, 암호화된 캐리어를 처리하거나 고려함 없이, 암호화된 "하위 메시지" ci, i=1..r를 서로 독립적으로 처리한다. 이 기술은 하위 메시지 mi의 동형 처리를 위해 상기에 제시된 것 이외의 다른 "하위 루틴"을 사용하여 분명히 적용될 수 있다. 특히, 상기에서 언급된 이산 세트(예를 들어: 이산 토러스 Tpi)에 속하는 요소에 대한 임의의 곱셈 또는 부트스트래핑 방법이 상기에서 설명된 방법 대신에 사용될 수 있다.
개시된 기술에 따르면, 이들 암호화 및 처리 기술("중국인의 나머지" 분해를 기반으로 함)은 컴퓨터에 의해 실행될 수 있다.
개시된 기술은 또한 이들 방법 중 하나를 실행하기 위해 프로그램되거나 그렇지 않으면 구성되는, 적어도 하나의 프로세서 및 하나의 메모리를 포함한 전자 디바이스에 관한 것이다. 개시된 기술은 또한 컴퓨터에 의한 실행이 컴퓨터로 하여금 이들 방법 중 어느 하나를 실행하도록 하는 명령어를 포함한 컴퓨터 판독 가능 프로그램 제품에 관한 것이다.
개시된 기술의 다른 특징 및 이점은 도면을 참조하여 비제한적으로 예로서 아래에 주어진 설명으로부터 명백해질 것이며, 여기서:
도 1은 두 개의 메시지를 동형으로 곱하기 위해 수행되는 작업을 블록도로 나타낸다.
도 2는 2개-변수 함수를 동형으로 평가하기 위해 수행되는 작업을 블록도로 나타낸다.
도 3은 중국인의 나머지 분해에 기반한 긴 메시지 x의 암호 단계를 블록도로 나타낸다.
도 4는 도 3의 암호 단계에 따라 이전에 획득된 2개의 암호화 메시지를 동형으로 더하기 위해 수행되는 작업을 블록도로 나타낸다.
도 5는 도 3의 암호 단계에 따라 이전에 획득된 2개의 암호화 메시지를 동형으로 곱하기 위해 수행되는 동작을 블록도로 나타내며, 상기 곱셈은 도 1에 나타낸 처리에 따라 수행되는 여러 부분 곱셈을 포함한다.
도 6은 개시된 기술에 따른 암호법 시스템을 개략적으로 도시한다.
위에서 언급한 바와 같이, 개시된 기술은 암호화 메시지를 복호화하지 않고 암호화 메시지에 대한 작업을 수행할 수 있게 하는 동형 암호 기술에 관한 것이며, 이들 암호화 메시지는 각각 단일 비트보다 길고 개별 이진 메시지로 분해되지 않고 처리되는 비암호화 메시지와 연관된다.
개시된 기술은, 보다 구체적으로, pi 개별 요소로 구성된 이산 세트에 속하는 메시지 mi를 암호화 및 처리하기 위한 기술에 관한 것이며, pi는 홀수이고, 이들 메시지는 개별적으로 암호화되는 더 작은(예를 들어, 이진) 메시지로 분해됨 없이, 암호화 및 직접 처리된다. 이 기술은 해당 이산 세트가 이산 토러스 이거나, 또는 계수가 Tpi에 속하는 N-1 차수의 다항식 세트 인 경우에 아래에 제시된다. 여전히, 당업자가 이해할 수 있는 바와 같이, 이 기술은 예를 들어 와 같이 Tpi와 전단사 관계(bijective relationship)에 있는 또 다른 이산 메시지 세트에도 (동형 덧셈 또는 곱셈에 대한 약간의 수정이 있을 수 있음) 적용될 수 있다(즉, 오프셋이 +1/pi인 Tpi이고; 주목될 수 있는 바와 같이, 이러한 대체 예의 경우, 아래에 설명된 서로 다른 작업 - 부트스트래핑 절차뿐만 아니라 동형 곱셈도 포함함 -은, [-1/2, 1/2[ 간격으로 값을 재적분하기 위해 값을 이동해야 하는 경우에도 Tpi의 경우와 동일한 방식으로 구현될 수 있음).
개시된 기술은 또한 더 작은 메시지 mi로의 메시지 x의 특정 분해를 사용하여 더 긴 메시지 x를 암호화 및 처리하기 위한 기술에 관한 것이며, 이 분해는 중국인의 나머지 정리 분해를 기반으로 하며 가능한 캐리를 고려하지 않고도 하위 메시지 mi를 서로 별도로 처리할 수 있다.
메시지 mi를 분해함 없이 암호화 및 처리하는 암호 기술을 먼저 제시한다. 중국인의 나머지 정리 분해를 기반으로 여러 메시지 mi로 구성된 더 긴 메시지 x를 암호화 및 처리하는 기술이 제시될 것이다. 마지막으로, 이러한 방법을 구현하기 위한 전자 디바이스 및 시스템이 제시될 것이다.
T pi 또는 T pi,N [X]에 속하는 메시지 m i 의 동형 암호화 및 처리.
위에서 언급한 바와 같이, 이 동형 암호 기술은 이산 토러스 , 또는 계수가 Tpi에 속하는 N-1 차수의 다항식 세트 Tpi,N[X]에 속하는 메시지 mi에 적용된다.
보다 정확하게는, 다항식 세트 Tpi,N[X]는 모듈로(modulo) XN+1로 정의된 N-1 차수의 다항식으로 구성되고 계수가 Tpi: Tpi,N[X]=Tpi[X]/(XN+1)에 속하는 유한체(finite field)이다.
놀랍게도, 정수 pi는 홀수이다(이는 아래에서 설명하는 작업 중 일부를 가능하게 함).
암호
Tpi에 속하는 비암호화 메시지 mi는 "오류를 통한 학습" 체계에 따라 암호화된다: mi의 암호화 버전인 암호화 메시지 ci=(ai,bi)(또는, 다시 말해, 암호문 ci)는 다음과 같이 결정된다:
- 벡터 ai를 무작위로 선택하며, 그리고
- 수량 bi=mi+ei+ai.s를 계산하고, 여기서 s는 비밀 키이고, ei는 노이즈 성분이며, mi+ai.s에 추가된다.
mi가 Tpi에 속할 때, 노이즈 성분 ei는 토러스 T=]-1/2,1/2]에 속한다. 그리고 mi가 Tpi,N[X]에 속할 때, ei는 모듈로(XN+1)로 정의되고 계수가 T 각각에 속하는 N-1 차수의 다항식 세트 TN[X]에 속한다. ei는 미리 정의된 통계 분포에 따라 무작위로 선택된다. 이 분포의 적어도 하나의 특징, 예를 들어 그의 표준 편차(또는 ei가 다항식일 때 각 계수의 표준 편차)는 정수 pi에 따라 결정된다. 예를 들어, 이 분포의 표준 편차 모두는 pi가 높은 것보다 작다(이 표준 편차는, 예를 들어, pi에 반비례할 수 있음).
비밀 키 s는 n 개의 성분을 갖는 벡터이고, n 개의 성분 각각은 정수 Z의 세트에 속하거나, 또는 모듈로(XN+1)로 정의되고 계수가 각각 Z에 속하는 N-1 차수의 다항식의 세트에 속한다. 다시 말해, s는 Zn 또는 ZN[X]n에 속하며, 여기서 ZN[X] = Z[X]/(XN+1)이다. 비밀 키 s는 특히 Bn 또는 BN[X]n에 속할 수 있으며, 여기서 B={0,1}(B는 이진 값 0과 1로 구성된 세트임)이다.
벡터 ai는 또한 n 개의 성분을 가지며, 스칼라 곱 ai.s이 Tpi에 속하거나(mi가 Tpi에 속할 때), 또는 Tpi,N[X]에 속하도록(mi가 Tpi,N[X]에 속할 때) 한다. 예를 들어, mi가 Tpi에 속하고 s가 Bn에 속하는 경우, ai는 Tpi n에 속한다(ai의 n 개 성분 각각은 Tpi에 속함).
다음에서, 명확성을 위해 mi는 Tpi에 속하고 s는 Zn 또는 Bn에 속하는 것으로 고려한다.
게다가, 다음에서, s가 Bn에 속한다는 것을 더 구체적으로 고려한다(이는 아래에 설명된 부트스트래핑 절차에 관련된 작업 중 일부를 단순화함).
암호화 메시지 ci=(ai,bi)를 복호화하기 위해, 비밀 키 s에 액세스하는 복호화 모듈 또는 복호화 디바이스는 bi-ai.s(mi+ei와 같음)를 계산하고, 그 후에 이를, 이산 토러스 Tpi에 속하는 가장 가까운 값으로 반올림하여, 노이즈 성분 ei를 제거하고 mi를 얻는다.
또한, 비밀키 s를 이용하여 mi를 암호화함으로써 얻은 암호화 메시지 ci로 표기할 수 있다.
동형 작업
본 기술의 목적은 동작을 동형으로 수행하는 것, 즉 하나, 둘 또는 그 이상의 메시지 m1i, m2i, ...에 대한 작업을 수행하지만, (비암호화 메시지 m1i, m2i, … 대신에) 암호를 복호화하지 않고 비밀 키 s를 알거나 액세스함 없이, 그들의 암호화된 버전 c1i, c2i, ...를 사용하는 것이다.
보다 일반적으로, 주어진 수량을 동형으로 결정한다는 것은 이들 암호화 메시지의 비암호화 버전(비암호화 상대)을 사용하거나 결정함 없이, 그리고 비밀 키를 사용함 없이(특히 액세스함 없이) 암호화 메시지를 기반으로 하여, 이 수량의 암호화 버전을 결정하는 것을 의미한다.
실제로, 동형 덧셈, 곱셈 또는 두 메시지의 비교와 같은 2 개의 피연산자 동형 작업(이는 암호화된 데이터를 복호화하지 않고 분류하는데 매우 유용하다)을 달성할 수 있다는 것은 특히 흥미롭다.
2 개의 피연산자 작업 경우, 피연산자가 m1i 및 m2i인 일반적인("정상") 작업은 Op로 표시되고 그 결과는 m3i로 표시된다: m3i=Op(m1i,m2i). 해당 동형 작업(즉, Op의 동형 상대)은 Hop로 표시된다. 따라서, 동형 작업 Hop는 다음과 같은 작업이다:
- 피연산자는 두 개의 메시지 m1i 및 m2i(각각 Tpi에 속함) 각각의 암호화 버전인 두 개의 암호문 c1i 및 c2i이고;
- c1i 또는 c2i를 복호화하지 않고, 비밀 키 s를 사용하지 않고(특히, 비밀 키 s를 알거나 액세스하지 않고), c1i 및 c2i로부터 결정된 암호문 c3i=Hop(c1i,c2i)를 생성하고;
- 암호문 c3i은 m3i=Op(m1i,m2i)의 암호화 버전이다.
다시 말해, 비밀키 s를 사용하여 c1i, c2i, c3i를 복호화할 때, 각각 m1i, m2i, m3i=Op(m1i,m2i)가 된다.
동형 덧셈
동형 덧셈은 으로 표시된다(Hop=). 두 개의 암호문 c3i=c1i c2i의 동형 덧셈은 두 개의 암호문 c1i=(a1i,b1i) 및 c2i=(a2i,b2i)을 성분별로 합산하여 쉽게 달성된다: c3i=(a3i,b3i)이며, 여기서 a3i=a1i+a2i 및 b3i=b1i+b2i이다.
실제로, b3i-s.a3i=m1i+m2i+e1i+e2i는 m1i+m2i로 반올림된다(e1i+e2i가 충분히 작은 경우). 따라서, c3i=c1i c2i는 실제로 m3i=m1i+m2i로 복호화된다.
동형 뺄셈 은 두 개의 암호문을 성분별로 빼서 유사하게 얻을 수 있다.
이산 토러스에 속하는 메시지에 대한 동형 곱셈은 개발 및 구현이 더욱더 복잡하다. 이산 토러스에 속하는 메시지에 대한 새로운 부트스트래핑 기술을 설명한 후에 나중에 제시될 것이다(이 부트스트래핑 기술이 해당 동형 곱셈을 수행하는 데 사용되기 때문이다).
암호화 메시지 c i 를 부트스트래핑하는 방법
비밀 키 s를 사용하여 메시지 mi를 암호화함으로써 상술한 바와 같이 결정된 암호화 메시지 ci=(ai,bi)를 부트스트랩하는 방법이 아래에 제시된다.
이 방법은 리프레시 암호화 메시지 ci'=(ai',bi')의 동형 결정을 포함하고, 상기 리프레시 암호화 메시지는 메시지 mi에 적용된 함수 g의 값 g(mi)의 암호화 버전이며, ci'는 ci의 노이즈 성분 ei보다 작은 노이즈 성분 ei'를 가진다. ci에 적용된 이 부트스트래핑 방법의 결과 ci'는 G(ci)로 표시된다.
따라서, 이 새로운 부트스트래핑 방법은 이산 토러스 Tpi에 속하는 메시지 mi에 적응된 부트스트래핑 방법이다. 이러한 메시지 mi와 관련된 암호화 메시지 ci를 리프레싱할 수 있고, 다시 말해, 이들 암호문 ci의 노이즈 성분 ei를 감소시킬 수 있다. 그리고 동시에 메시지 mi에 임의의 함수 g를 적용할 수도 있다. 다시 말해, 이 방법은 mi에 적용되는 함수 g의 값 g(mi)를 동형으로 결정할 수 있게 한다.
함수 g는 Tpi로부터 Tpi까지의 임의의 함수일 수 있다. 다시 말해, g는 Tpi의 요소를 Tpi의 요소로 매핑한다(또는 Tpi,N[X]의 요소를 Tpi,N[X]의 요소로 매핑한다).
ci'의 결정은 다항식 Xq.Wg(X) mod (XN+1)의 상수 계수 coef0(Xq.Wg(X))를 동형으로 결정하는 단계를 포함하며, 여기서 q는 에 가장 가까운 정수이다.
coef0(Xq.Wg(X))의 동형 결정은 Ilaria Chillotti, Nicolas Gama, Mariya Georgieva 및 Malika Izabachene의 섹션 6, "TFHE: Fast full homomorphic encryption over the torus", Journal of Cryptology, 33(1):34-91, 2020에 설명된 바와 같은 종래 기술과 유사한 방식으로 수행되지만, 예를 들어, 그러나 고려된 함수 g와 관련된, 특별히 설계된 다항식 Wg(X)를 사용한다.
차수가 N-1인 다항식 Wg(X)의 계수는 wj로 표시된다:
이들 각각은 Tpi에 속하며 다음과 같이 결정된다.
다음과 같이 정의되는 Z로부터 Tpi까지의 함수 fw를 고려한다:
여기서 이다.
은 천장 함수를 나타낸다.
Wg(X)의 계수 wj는, g에 따라, Tpi에 속하는 임의의 mi에 대해 다음과 같이 정의된다:
따라서 계수 wj는 다음 식에 의해 함수 g와 관련된다:
여기서
pi가 홀수라는 점을 감안할 때, 고려되는 이산 세트의 요소 중 임의의 두 요소 간의 차이(즉, 여기서는 Tpi)의 두 배는 정수가 아님이 증명될 수 있다:
a) Tpi로부터 T까지의 임의의 함수 g에 대해(더 일반적으로 상기에 정의된 것과 같은 pi 요소의 임의의 이산 세트로부터 T까지의 임의의 함수에 대해) 해당 함수 fw를 구성하는 것이 가능하고, 따라서 다항식 Wg(X)를 구성하는 것이 가능하고, 위에 주어진 조건을 충족하고,
b) 다항식의 이러한 특정 선택 덕분에(즉: 특정 다항식 Wg(X)의 사용 덕분에), coef0(Xq.Wg(X))를 동형으로 결정하면 실제로 g(mi)의 암호화 버전이 결정된다.
간결함을 위해 그리고 본 기술을 구현하는 관점에서 직접적으로 유용하지 않기 때문에, 이들 결과의 상세한(그리고 매우 정교한) 증명은 여기에 제시되지 않는다.
여전하게, 포인트 a)가 즉각적인 것과는 거리가 멀다는 것에 유의할 수 있다. 실제로, Z에 속하는 임의의 z에 대해, 다음과 같은 것을 쉽게 알 수 있다.
따라서, 상기에서 정의된 함수 fw는 매우 제한적이며, 실제로 적절한 fw 함수가 임의의 함수 g에 대해 실제로 구성될 수 있음을 보장하기 위해 자세한 분석이 필요하다(pi와 세트의 요소에 관한 상기의 조건이 충족되는 경우).
pi 요소를 갖는 이산 세트가 Tpi(또는 Tpi,N[X])인 경우, 상기에 제시된 이 부트스트래핑 기술은 pi 요소로 구성된 또 다른 이산 세트의 경우에도 적용될 수 있다는 점에 유의할 수 있다(여기서 pi가 홀수이고, 이 세트의 요소들 중 임의의 두 요소 간의 차이의 두 배가 정수가 아님). 특히, 다항식 Wg의 계수 wj 값을 제공하는 공식은 동일하게 유지된다.
"과제의 해결 수단"이라는 제목의 섹션에서 언급한 바와 같이, 다항식 Wg(X)의 N-1 차수는 N이 pi의 50배 미만 또는 심지어 pi의 30배 미만이 되도록 선택될 수 있고, 이는 이 부트스트래핑 절차의 합리적으로 빠른 실행으로 이어지는 동안 메시지 mi를 삭제 또는 저하시키는 것을 방지하기에 충분히 높다.
게다가, N은 pi 이상 또는 pi의 5배 이상으로 선택될 수 있다. Wg(X)의 계수 wj는 다항식 Wg(X)를 Tpi로부터 Tpi까지의 임의의 함수 g로 조정할 수 있을 만큼 충분히 많다.
coef0(Xq.Wg(X)) 그 자체의 동형 평가에 관한 일부 세부사항이 이제 제시된다. 세부사항은, 이 평가가 다항식 Wg(X)의 특정 선택과는 별개로, 종래 기술(그 예로 ***Ref1에 설명됨)과 유사한 방식으로 수행되기 때문에 간략하게 요약된다.
당업계에 공지된 바와 같이, Xq.Wg(X) 모듈로(XN+1)와 같은 다항식은 여러 개의 연속적인 모듈 곱으로 분해될 수 있다:
여기서 이다.
위의 식에서 각 곱 "." 모듈 곱이다: 예를 들어, 또는 와 같은 좌측 항은 ZN[X]에 속하는 반면, 예를 들어 Wg(X) 또는 의 우측 항은 Tpi,N[X]에 속한다. 이러한 곱은 Tpi에 속하는 숫자 mi를 갖는 정수 y의 곱 y.mi와 완전히 유사하며,이는 (모듈로 1로 정의된 Tpi의 모듈 구조로 인해) 일반적으로 모듈 곱으로 지정된다.
모듈 곱 y.mi 또는 Xj.Wg(X)는 소위 외부 곱 의 형태로 동형적으로 계산될 수 있는 것으로 알려져 있고, 여기서 은 메시지 mi의 암호화 버전이며(ci는 위에서 설명한 대로 계산됨), 은 z의 소위 TGSW 암호화 형태이다(TGSW는 "Gentry, Sahai, Waters" 토러스 암호를 의미하고, TGSW 체계는 C. Gentry, A. Sahai 및 B. Waters, InCrypto'13, 2013의 "Homomorphic encryption from learning with errors: Conceptual-simpler, asymptotically-faster, attribute-based" 논문에서 제안되었다).
게다가, 당업계에 공지된 바와 같이, 과 같은 수량은 비밀 키 성분 sk, k=1...n을 모르고도(보다 일반적으로 비밀 키 s를 앎없이) 계산될 수 있다.
실제로, 비밀 키 성분 sk, k=1...n이 각각 B={0,1}에 속하기 때문에, 수량 와 같고 로 암호화된다.
따라서, Xq.Wg(X) 모듈로 (XN+1)의 암호화된 버전은 비밀 키 s를 알지 못하거나 액세스하지 않고도 계산할 수 있는데, 이는 문헌에서 종종 부트스트랩 키 BKk로 지정된 비밀 키 성분 sk의 암호화 버전 를 사용하여 계산될 수 있는 것과 같이 그러하다. 일반적으로, 비밀 키 성분 sk의 암호화 버전이고 또 다른 키 s'를 사용하여 암호화된 부트스트랩 키 는 공개 키이다.
정수 y의 TGSW 암호화 버전 를 계산하는 방식 또는 동등하게 ZN[X]에 속하는 다항식 P의 TRGSW(GSW Torus 'Ring') 암호화 버전 을 계산하는 방식은 아래에서 다시 설명한다. 외적 을 계산하는 방식도 다시 설명한다.
와 동일한 것으로 정의되고 여기서:
- , 여기서 zj, j=1…l(n+1)은 0의 l(n+1) 개별 암호화 버전이고, null 값 0은 으로 암호화되고, 여기서 l은 주어진 고정 정수이며; 그리고
- 차원이 (n+1)×(n+1)×l이고 계수가 토러스 T에 속하는 행렬은 다음과 같다:
, 여기서 이며, B는 2 이상의 정수이다.
다음 사이의 외적 은 아래에서 설명된 바와 같이 계산된다:
- 이산 토러스 Tpi, 보다 일반적으로는 토러스 T에 속하는 메시지 m에 대응하는 암호화 메시지 , 및
- 정수 y의 암호화 버전 , .
암호화 메시지 의 n+1 성분 cj, j=1..n+1은 (를 계산하는데 사용되는 것과 같은) 일종의 베이스 B 기수법을 사용하여 각각 분해된다:
그 후, 다음을 계산한다.
여기서 은 일반적인 행 벡터 행렬 곱을 나타내고, 은 (n+1)×l 차원의 행렬이며, 그 표현은 다음과 같다:
여기서 .
Tn+1에 속하는 결과, 는 y.m의 암호화 버전이다. 다시 말해, s를 사용하여 이 수량을 복호화하는 것은 y.m을 제공한다.
이 기술은 토러스 T에 속하는 임의의 메시지 m에 적용될 수 있다. 따라서, 여기서와 같이, 이산 토러스 Tpi에 속하는 메시지에도 적용될 수 있다.
동형 곱셈
우선, 이산 토러스 Tpi에 속하는 2개의 메시지를 곱하기 위해 통상적인 자연 곱셈이 그 자체로 사용될 수 없다는 점에 유의한다.
그러나, 이산 토러스 Tpi에 속하는 요소의 경우, ×T로 표시되는 곱셈은 다음 식에 따라 정의될 수 있다:
여기서 m1i=x1i/pi, m2i=x2i/pi는 각각 Tpi에 속하고, x1i, x2i는 정수이고, "." 일반적인 자연 곱셈이다.
분명히, 곱 도 Tpi에 속한다. 게다가, 이산 토러스의 요소 간의 이러한 곱셈은 Tpi의 모듈러 특성을 준수한다. 실제로, Tpi 2에 속하는 메시지 m1i, m2i의 임의의 커플의 경우:
이고,
x2i는 정수이기 때문에, 이다.
여기에 설명된 동형 곱셈 절차는 ⊙로 표시된다.
의 암호화 버전인 암호문 이 생성되며, c1i 및 c2i 각각은 m1i 및 m2i의 암호화 버전이다.
c3i를 결정하기 위해, 즉 수량 (x1i.x2i)/pi mod (1)을 동형으로 결정하기 위해, 상기에서 설명된 부트스트래핑 절차와 xy=((x+y)2-(x-y)2)/4이라는 점이 이용된다.
이 항등식은 두 개의 피연산자 곱셈 작업 xy로부터 단일 피연산자 제곱 작업으로 스위칭하는데 사용되고, 이 제곱 작업은 이 특정 부트스트래핑 절차로 인해(함수 g의 적절한 선택으로 인해) 동형으로 수행된다.
보다 정확하게는, 을 동형으로 결정하기 위해, 동형으로 수량 M을 아래와 같이 결정한다:
여기서 이고, "."는 일반적인 자연 곱셈이다.
실제로,
(pi+1)/2은 Zpi에서 2의 역수이다.
이와 관련하여, Zpi에서 2가 가역이 되도록 하기 때문에 pi 홀수를 갖는 것이 유용하다는 것에 유의한다.
수량을 동형으로 결정하기 위해서
을 계산하고, 여기서 Gsq는, 함수 g가 함수인 특별한 경우에, 상기에서 설명한 부트스트래핑 절차를 나타낸다:
따라서, 최종적으로 c3i는 다음 식에 따라 c1i와 c2i로부터 동형적으로 결정되고, 여기서 는 상기에서 언급된 외적이다(도 1 참조):
당업자가 이해할 수 있는 바와 같이, 개시된 기술로부터 벗어남이 없이 이 동형 곱셈 절차에 여러 수정이 이루어질 수 있다. 예를 들어, 수량 M을 동형으로 결정하기 위해 부트스트래핑 "함수" Gsq를 사용하는 대신, 함수 g가 함수인 특별한 경우에 상기에서 설명된 부트스트래핑 절차에 대응하는 Gsq'로 표시되는 또 다른 부트스트래핑 "함수"를 사용할 수 있다:
이 경우 암호화 곱 c3i는 다음 식에 따라 동형으로 결정된다:
여전하게, Gsq의 사용은 Gsq'보다 더 빠른 계산을 가능하게 할 것인데, 이는 두 개의 추가 외적 이 계산되는 것을 막기 때문이다.
그리고 더욱더 빠른 계산을 위해, c3i는 다음 식에 따라, c1i 및 c2i로부터 동형으로 결정될 수 있다:
여기서 Gsq''는 함수 g가 함수인 경우 상기에 제시된 부트스트래핑 함수를 나타낸다:
2 개의 변수 함수의 동형 평가
개시된 기술은 또한 임의의 2 개의 피연산자 함수인 2 개의 변수 함수를 동형으로 평가하는 방법에 관한 것이다.
이러한 수량을 평가할 수 있다는 것은 동형 데이터베이스 처리에 매우 유용하다. 실제로, 이를 통해 특히 두 개의 암호 텍스트 c1i 및 c2i를 복호화하지 않고(예를 들어 데이터베이스를 분류하기 위해) 비교할 수 있다. 이를 위해, 사용되는 2 개의 변수 함수는 Max 또는 Min 함수일 수 있다. 이와 관련하여, 2 개 메시지 세트의 최대치 또는 최소치를 (암호화된 형식으로) 반환하는 함수는 2 개의 변수 함수라는 점에 유의할 수 있다. 그리고 여기에 사용된 메시지의 모듈러 특성으로 인해 이들 두 메시지의 차이에 대한 부호를 간단하게 보고 두 메시지의 최대 또는 최소를 결정할 수 없다.
아래에 설명된 바와 같이, 2 개의 변수 함수 f를 동형으로 평가하기 위해, 이 함수의 두 입력 각각(각각 Tpi에 속함)은 특별히 설계된 값 세트 S에 매핑된다. S의 요소 각각은 T에 속하며, 인 임의의 인덱스 세트(i,j,k,l)에 대해 이 또한 (j,i)와는 다르도록 한다:
modulo ½와는 다르며, 여기서 α 및 β는 숫자가 주어진 2 개의 상수 및 정수이다.
따라서:
그런 다음, 이 속성을 이용하여, 단일 피연산자를 얻기 위해(2 개의 메시지는 사전에 S에 매핑되었음), 2 개의 피연산자 함수 f는 먼저 이들 두 메시지의 선형 조합(계수 α 및 β를 각각 곱함)을 계산함으로써 1개의 피연산자 함수 gf로 변환된다. 그 후, 1 개의 피연산자 함수 gf는 상기에서 설명한 특정 부트스트래핑 절차를 사용하여 동형으로 평가된다.
보다 정확하게는, 2개의 입력 메시지 m1i 및 m2i는 매핑 함수 gmap으로 인해 먼저 S의 대응하는 요소에 매핑된다:
여기서 m은 S 요소 중 하나이다.
gmap은 TpiS에 매핑하는 가능한 여러 기능 중에서 선택된다.
위의 조건을 충족하는(그리고 또한 S에 대해 아래 주어진 추가 조건 중 하나를 충족하는) 세트 S를 구성하는 것이 항상 가능하다는 것이 입증될 수 있다는 점에 유의할 수 있다. 실제로, 세트 S는 이들 조건을 충족하는 여러 세트 중에서 선택될 수 있다. 바람직하게는, 선택된 세트 S는 세트의 값이 서로 더 많이 떨어져 있는 세트이다.
각각 m1i 및 m2i와 연관된 "매핑된" 메시지는 각각 m1 i m2 i 로 표시된다:
f에 해당하는 "1 개의 피연산자" 함수 gf는 다음과 같이 정의된다:
즉:
두 개의 서로 다른 메시지 커플 (m1i, m2i) 및 (m1'i, m2'i)이 항상 중간 수량 (각각, )의 두 가지 서로 다른 값으로 이어진다는 사실은, S의 특정 구조로 인해, Tpi ×Tpi로부터 Tpi까지, 심지어 Tpi ×Tpi로부터 T까지 임의의 2 개의 변수 함수 f에 방법을 적용할 수 있게 하는 요소 중 하나이다.
f(m1i, m2i)의 암호화 버전은 다음과 같이 기록된다.
비밀 키 s를 사용하여 cf,i가 복호화될 때, f(m1i, m2i)가 제공된다.
cf,i는 다음 식에 따라, 암호문 c1i 및 c2i(c1i 또는 c2i를 복호화하지 않음)로부터 동형으로 결정된다:
여기서 Gf는 g가 gf인 특별한 경우에 상기에서 설명한 부트스트래핑 함수를 나타내며, 그리고
여기서 Gmap은 g가 gmap인 특별한 경우에 상기에서 설명한 부트스트래핑 함수를 나타낸다.
α 및 β의 암호화되지 않은 값은 cf,i를 계산하는데 직접 사용된다는 점에 유의할 수 있다. 다시 말해, 계수 α 및 β는 암호화되지 않는다.
이 방법은 임의의 함수 f(특히 f가 대칭인지 여부)에 적용될 수 있다.
함수 f가 대칭일 때 α와 β는 서로 동일하게 선택된다. 예를 들어, 이들 각각은 1과 같은 것으로 선택될 수 있다. 이 경우, cf,i는 다음 식에 따라 c1i 및 c2i로부터 동형으로 결정된다(도 2 참조):
cf,i를 계산하는 이러한 방식은 수행될 α 또는 β에 의한 곱셈이 없고 노이즈 항이 1로 곱해지기 때문에 증폭되지 않기 때문에 유익하다.
예를 들어, 출력이 암호문 c1i 또는 c2i이고, 2 개의 메시지 m1i 및 m2i 중 가장 높은 메시지(Tpi 값의 일반적인 순서와 관련하여 가장 높음)와 연관된 Max(c1i, c2i) 함수가 대칭 함수라는 점에 유의할 수 있다.
함수 f가 대칭이 아닐 때, α 및 β는 서로 다르게 선택되고 S의 요소는 인 임의의 인덱스 세트(i,j,k,l)에 대해, 심지어일 때도 modulo ½와는 다르도록 한다.
이 경우, 예를 들어 α 및 β 각각은 +1 및 -1인 것으로 선택될 수 있다. cf,i는 다음 식에 따라 c1i 및 c2i로부터 동형으로 결정된다.
다시 말하지만, 이러한 종류의 구현은 1보다 높은 계수에 의한 곱셈을 포함하지 않기 때문에, 이에 따라 노이즈 증폭이 없기 때문에, 유익하다.
함수 f가 Tpi ×Tpi로부터 Tpi까지, 또는 Tpi ×Tpi로부터 T까지 함수인 경우에 2 개의 변수 함수를 동형으로 평가하는 이 방법은 상기에서 제시되었다. 여전하게, 함수 f의 2 개의 변수 각각이 pi 요소의 이산 세트(Tpi와 다를 수 있지만, pi가 홀수인 pi 요소로 구성되며 이 세트의 요소 중 임의의 두 요소 간의 차이의 두 배가 정수가 아님)에 속할 때 동일하게 구현될 수 있고, 함수 f의 값은 T에 속한다.
메시지 m을 직교 하위 메시지 m i 로 분해하여 캐리가 없는 처리
상기에서 언급한 바와 같이, 공개된 기술은 또한 메시지 x를 더 작은 메시지 xi로 특정 분해하는 것을 사용하여, '매우 긴' 메시지 x(또는 m)를 암호화하고 처리하는 기술에 관한 것이며, 이 분해는 중국인의 나머지 정리 분해를 기반으로 하고, 가능한 캐리를 고려함 없이, 하위 메시지 x i 또는 예를 들어 그의 상대 x i /p i 를 서로 별도로 처리할 수 있다.
이 기술은 에 속하는 임의의 메시지에 적용될 수 있으며, p는 와 같으며, 여기서 정수 pi는 서로소(pairwise coprime)이다.
보다 정확하게는, 에 속하는 임의의 메시지 x에 대해, 다음 작업을 실행하여 해당 암호화 메시지 C를 결정한다(도 3):
- 단계 D: x를 성분 xi, i=1...r로 분해하는 단계, 여기서 xi는 x 모듈로 pi와 동일함(이러한 분해가 항상 가능하다는 중국인의 나머지 정리).
- 단계 E: 연관 계수 pi가 홀수인 각 성분 xi에 대해, 상기에 제시된 암호 방법에 따라, 메시지 mi의 암호화 버전 ci를 결정하는 단계, mi는 상기에서 언급한 pi 요소의 이산 세트의 요소(예를 들어, Tpi) 중에서 와 상기 이산 세트 간의 주어진 전단사 관계(bijective relationship)에 의해 xi와 관련된 요소임,
- 성분 xi가 2와 같은 계수 pi와 관련되어 있는 경우, xi와 관련되고 2개의 개별 값을 취할 수 있는 수량 Qi의 암호화 버전 ci를 결정하는 단계, ci는 bi= Qi+ei+ai.s인 (ai,bi)와 같음,
- C=(c1,...ci,...cr)을 반환하는 단계
아래에서, 우리는 pi 개별 요소로 구성된 이산 세트가 Tpi인 경우를 고려한다. 성분 xi는 예를 들어 다음 식: mi=xi/pi에 따라, 또는 다음 식 mi=-xi/pi에 따라, 또는 대안으로, 다음 식 mi=(xi+1)/pi에 따라, Tpi의 대응 요소 mi에 (전단사적으로) 관련될 수 있다
게다가, 아래에서는 동일한 비밀키 s가 서로 다른 필드 에 사용되는 것을 고려한다. 다시 말해, 여기에서, 동일한 비밀 키 s가 서로 다른 메시지 m1, ...mi, ...mr를 암호화하는데 사용된다. 여전하게, 대안으로 서로 다른 키가 서로 다른 (하위) 메시지 m1, ...mi, ...mrr를 암호화하는데 사용될 수 있다.
다른 실시예에서, 해당 이산 세트가 Tpi와는 다른 또 다른 세트일 수 있고, 상기에서 언급된 것과는 또 다른 작업이 을 이러한 이산 세트에 매핑하기 위해 사용될 수 있다는 점에 유의할 수 있다(예를 들어, mi는 xi에, pi와 서로소인 임의의 정수를 곱한 다음, pi로 나누어서 얻을 수 있음).
게다가, 여기에서 x의 분해는 유일한 짝수 계수 pi가 2 하나가 있도록 수행된다. 따라서, 계수 2를 제외하고 가능한 다른 모든 계수 pi는 홀수이다. 따라서, 해당 메시지 mi는 상기에서 자세히 설명한 방법에 따라 개별적으로 모두 처리될 수 있되, Tpi에 속하는 요소의 경우, 가능하면 2와 같은 계수 pi와 관련된 요소 중 하나를 제외하고, 그러하며, 2와 같은 계수 pi는, 예를 들어, 이진 메시지에 대해 기존의 알려진 기술에 따라 처리된다.
이러한 암호화 메시지 C=(c1,...ci,...cr)를 처리할 때, 또는 두 개의 이러한 메시지 C1=(c11,...c1i,...c1r) 및 C2=(c21,...c2i,...c2r)의 커플(C1,C2)을 처리할 때, C의 성분 c1,...ci,...cr 또는 성분 커플(c11, c21) ... (c1i, c2i),... (c1r, c2r)은 서로 독립적으로(즉, 임의의 캐리를 고려함 없이) 동형으로 처리된다.
예를 들어, 두 개의 이러한 메시지 C1 및 C2의 동형 추가는 다음과 같이 달성된다(도 4 참조):
유사하게, 상기에서 ⊙으로 제시된 Tpi×Tpi 동형 곱셈을 기반으로 하여, 이러한 2 개의 메시지 C1 및 C2의 동형 곱셈은 다음과 같이 달성된다(도 5 참조):
유사하게, 이러한 암호화 메시지 C=(c1,...ci,...cr)의 리프레시 버전 C'는 다음 수량 을 계산함으로써 결정된다.
전자 디바이스 및 시스템
도 6은 암호화 메시지를 복호화함 없이 처리하는, 암호화 디바이스(2) 및 처리 디바이스(3)를 포함하는 암호법 시스템(1)을 개략적으로 나타낸다.
암호화 디바이스(2) 및 처리 디바이스(3) 각각은 적어도 하나의 프로세서, 및 적어도 하나의 메모리를 포함한다.
암호화 디바이스(2)는 다음 단계를 실행하기 위해 프로그램되거나 배치된다:
- pi 개별 요소로 구성된 이산 세트에 속하는 비암호화 메시지 mi를 나타내는 데이터를 수신하는 단계, 여기서 pi는 홀수이고, 상기 이산 세트는 이산 토러스 이거나, 또는 계수가 Tpi에 속하는 N-1 차수의 다항식 세트 , 또는 Tpi와 전단사 관계에 있는 또 다른 이산 세트임
- 암호화 메시지 ci를 나타내는 암호화 데이터를 결정하기 위해, 상기에 제시된 이러한 메시지를 암호화하는 방법에 따라 상기 데이터를 처리하는 단계, 여기서, 예를 들어, 암호화 디바이스의 메모리에 적어도 일시적으로 저장된, 상기 처리 동안 사용된 비밀 키 s는 상기 처리 동안 프로세서 또는 프로세서들에 의해 액세스됨.
암호화 디바이스(2)와는 구별되는 처리 디바이스(3)는 암호화 디바이스(2)로부터 암호화 메시지 ci를 수신하고 가능하게는 다른 이러한 암호화 메시지를 수신하도록 구성된다.
처리 디바이스(3)는 다음 단계를 실행하기 위해 프로그램되거나 배치된다:
- 암호화 디바이스(2)에 의해 생성된 암호화 메시지 ci를 나타내는 데이터를 수신하는 단계
- 암호화 메시지 c'i를 나타내는 리프레시 데이터를 결정하기 위해, 상기에서 설명된 부트스트래핑을 위한 방법에 따라 상기 데이터를 처리하는 단계, 상기 처리하는 단계는 ci를 복호화하지 않고 비밀 키 s를 사용, 판독 또는 액세스함 없이 달성됨.
특히, 이 부트스트래핑 동안 ci에 대응하는 비암호화 메시지 mi는 나타나지 않고, 작업의 결과도 아니며 사용, 판독되거나 액세스되지도 않는다. 따라서, 비암호화 메시지 mi는 비밀 키 s와 마찬가지로, 처리 디바이스(3)에 항상 존재하지 않는다.
처리 디바이스는 또한 상기에 제시된 동형 곱셈 방법을 실행하고/하거나 상기에 제시된 것과 같은 2 개의 변수 함수의 동형 평가를 위해 프로그래밍될 수 있다.
처리 디바이스(3)는 또한 상기에 제시된 메시지 C=(c1,...ci,...cr)와 같은 암호화 메시지에 대한 동형 처리 방법 중 하나 또는 여러 개를 실행하도록 프로그래밍될 수 있다. 그리고 암호화 디바이스(2)는 Zp에 속하는 비암호화 메시지 x로부터 이러한 암호화 메시지를 생성하기 위해 프로그램될 수 있다.

Claims (17)

  1. 메시지 mi의 암호화 버전인 암호화 메시지 ci를 결정하는 방법에 있어서,
    ci는, bi가 mi 및 비밀 키 s로부터 결정되는 (ai,bi)와 같고,
    bi는 mi+ei+ai.s와 같고,
    ai는 s를 투사하기 위해 무작위로 선택된 벡터이고, ei는 mi+ai.s에 추가된 랜덤 노이즈 성분이며,
    메시지 mi는 pi 개별 요소로 구성된 이산 세트(discrete set)에 속하고, pi는 홀수이고,
    상기 이산 세트의 요소는, 상기 요소 중 임의의 2 개 요소 간의 차이의 두 배가 정수가 아니도록 하고,
    상기 이산 세트는
    이산 토러스(discrete torus) 이거나, 또는
    계수가 Tpi에 속하는 N-1 차수의 다항식 세트 Tpi,N[X]이거나, 또는
    Tpi와 전단사 관계(bijective relationship)에 있는 또 다른 이산 센트인, 암호화 메시지 결정 방법.
  2. 청구항 1에 따른 암호화 메시지 결정 방법으로 결정된 암호화 메시지 ci=(ai,bi)를 부트스트래핑하는(bootstrapping) 방법에 있어서,
    상기 방법은
    메시지 mi에 적용된 함수 g의 값 g(mi)의 암호화 버전인 리프레시 암호화 메시지 ci'=(ai',bi')를 결정하는 단계를 포함하며,
    ci'는 ei보다 작은 노이즈 성분 ei'을 가진, 부트스트래핑 방법.
  3. 청구항 2에 있어서,
    ci'의 결정은
    Xq.Wg(X) mod (XN+1)의 상수 계수 coef0(Xq.Wg(X))를 동형으로 결정하는 단계를 포함하며,
    여기서,
    - 는 계수 wj가 다음 식에 의해 주어진 N-1 차수의 다항식이며:
    , 여기서 이며,
    은 2Nmi에 가장 가까운 정수이고,
    에 적용된 천장 함수이며
    - q는 에 가장 가까운 정수인, 부트스트래핑 방법.
  4. 청구항 3에 있어서,
    N은 pi의 50배 미만, 또는 심지어 pi의 30배 미만인, 부트스트래핑 방법.
  5. 청구항 3 또는 4에 있어서,
    N은 pi 이상, 또는 심지어 pi의 5배 이상인, 부트스트래핑 방법.
  6. 2 개의 메시지 m1i 및 m2i를 동형으로(homomorphically) 곱하는 방법에 있어서,
    2 개의 메시지 m1i 및 m2i 각각은 이산 토러스 Tpi 또는 다항식 Tpi,N[X] 세트에 속하며,
    상기 방법은
    m1i와 m2i의 곱의 암호화 버전인 암호화 메시지 c3i를 결정하는 단계를 포함하고,
    c3i는 c1i 또는 c2i를 복호화함 없이 암호화 메시지 c1i 및 c2i로부터 결정되고,
    c1i 및 c2i 각각은 청구항 1에 따른 암호화 메시지 결정 방법으로 결정된 m1i 및 m2i의 암호화 버전이고,
    c3i의 결정은 다음 식을 동형으로 결정하는 단계를 포함하고,

    여기서,
    , 또는 , 또는 은 청구항 2 내지 5 중 어느 한 항에 따른 부트스트래핑 방법을 실행하여 동형으로 결정되고,
    함수 g는
    , 또는
    , 또는
    각각인, 메시지 동형 곱 방법.
  7. 메시지 m1i 및 m2i에 적용된 2 개의 변수 함수 f의 값 f(m1i, m2i)의 암호화 버전인 암호화 메시지 cf,i를 결정하는 방법에 있어서,
    m1i 및 m2i 각각은 이산 세트에 속하고,
    cf,i는 c1i 또는 c2i를 복호화함 없이 암호화 메시지 c1i 및 c2i로부터 결정되고, c1i 및 c2i 각각은 청구항 1에 따른 암호화 메시지 결정 방법에 따라 결정된 m1i 및 m2i 암호화 버전이고,
    cf,i의 결정은:
    - 청구항 2 내지 5 중 어느 한 항에 따른 부트스트래핑 방법을 실행하여 c1i 및 c2i 각각으로부터 c1'i 및 c2'i을 결정하는 단계,
    여기서 부트스트래핑 동안에 사용된 함수 g는, 계수 각각이 토러스 에 속하고 인 임의의 인덱스 세트(i,j,k,l)에 대해 (k,l)이 (j,i)와는 다르도록 하는 세트 S에 이산 세트를 매핑하는 함수 gmap이고,
    와는 다르며, α 및 β는 숫자가 주어진 2 개의 상수 및 정수이고,
    c1'i 및 c2'im1 i =gmap(m1i) 및 m2 i =gmap(m2i) 각각의 암호화 버전이고, m1 i m2 i 각각은 S에 속함;
    - c1'i 및 c2'i로부터, 의 암호화 버전인 암호화 메시지 cs를 동형으로 결정하는 단계;
    - 청구항 2 내지 5 중 어느 한 항에 따른 부트스트래핑 방법을 실행하여 cs로부터 cf,i를 결정하는 단계, 여기서 부트스트래핑 동안에 사용된 함수 g는, 다음 조건에 의해 정의된 1 개의 변수 함수 gf이고: 이산 세트에 각각 속하는 메시지 m1j, m2j의 임의의 커플에 대해,

    즉: 임;을 포함하는, 암호화 메시지 결정 방법.
  8. 청구항 7에 있어서,
    세트 S의 요소는
    인 임의의 인덱스 세트(i,j,k,l)에 대해, 심지어일 때도 와는 다르도록 하는, 암호화 메시지 결정 방법.
  9. 청구항 8에 있어서,
    α=1이고, β=-1이며,
    cs는 c1'i과 c2' 간의 동형 차이 으로 계산하여 결정되거나, 또는
    α=-1이고 β=1이며,
    cs는 c2'i과 c1' 간의 동형 차이 으로 계산하여 결정되는, 암호화 메시지 결정 방법.
  10. 청구항 7에 있어서,
    함수 f는 대칭이고, f(m1i,m2i)는 메시지 m1i 및 m2i의 임의의 커플에 대해 f(m2i,m1i)와 같고,
    α 및 β 각각은 1이고, cs는 c1'i과 c2'의 동형 합 으로 계산하여 결정되는, 암호화 메시지 결정 방법.
  11. 에 속하는 메시지 x의 암호화 버전인 암호화 메시지 C를 결정하는 방법에 있어서,
    p는 와 같고, 정수 pi는 서로소(pairwise coprime)이고,
    상기 방법은:
    (D) x를 성분 xi, i=1...r로 분해하는 단계, 여기서 xi는 x 모듈로(modulo) pi와 같음;
    (E) 연관 계수 pi가 홀수인 각 성분 xi에 대해, 청구항 1에 따른 암호화 메시지 결정 방법에 따라 메시지 mi의 암호화 버전 ci를 결정하는 단계, 여기서 mi는, 이산 세트의 요소 중에서, 와 이산 세트 간의 주어진 전단사 관계에 의해 xi에 연관된 요소임;
    성분 xi가 2와 같은 계수 pi와 관련되는 경우, xi와 관련되고 2개의 개별 값을 취할 수 있는 수량 Qi의 암호화 버전 ci를 결정하는 단계, 여기서 ci는 bi= Qi+ei+ai.s인 (ai,bi)와 같음;
    C=(c1,...ci,...cr)을 반환하는 단계;를 포함하는, 암호화 메시지 결정 방법.
  12. 청구항 11에 따른 암호화 메시지 결정 방법으로 결정된 암호화 메시지 C=(c1,...ci,...cr)를 부트스트래핑하는 방법에 있어서,
    상기 방법은:
    - 연관 계수 pi가 홀수인 ci 각각에 대해, 청구항 2 내지 5 중 어느 한 항에 따른 부트스트래핑을 하는 방법을 실행하여, ci로부터 리프레시 암호화 메시지 c'i를 결정하는 단계;
    - C'=(c'1,...,c'i,...c'r)을 반환하는 단계;를 포함하는, 부트스트래핑 방법.
  13. 2 개의 메시지 x1과 x2의 곱의 암호화 버전인 암호화 메시지 C3=(c31,...c3i,...c3r)를 결정하는 방법에 있어서,
    2 개의 메시지 x1과 x2 각각은 에 속하고,
    C3은 암호화 메시지 C1 또는 C2를 복호화함 없이, C1 및 C2로부터 결정되고,
    C1 및 C2는 x1 및 x2 각각의 암호화 버전이고,
    C1=(c11,...c1i,...c1r) 및 C2=(c21,...c2i,...c2r)은 청구항 11에 따른 암호화 메시지 결정 방법에 따라 x1 및 x2 각각으로부터 결정되고,
    이산 세트는 Tpi 또는 Tpi,N[X]이고,
    c1i 및 c2i가 홀수인 계수 pi와 관련될 때, 청구항 6에 따른 메시지 동형 곱 방법에 따라, C3의 각 성분 c3i은 C1 및 C2의 대응하는 성분 c1i 및 c2i으로부터 결정되는, 암호화 메시지 결정 방법.
  14. 하나 이상의 프로세서 및 적어도 하나의 메모리를 포함하는 암호화 디바이스 (2)에 있어서,
    상기 암호화 디바이스는, 프로세서 또는 프로세서들이 다음 단계:
    pi 개별 요소로 구성된 이산 세트에 속하는 비암호화 메시지 mi를 나타내는 데이터를 수신하는 단계, 여기서 pi는 홀수이고, 상기 이산 세트의 요소는 상기 요소 중 임의의 2 개의 요소 간의 차이의 2 배가 정수가 아니도록 하고, 상기 이산 세트는 이산 토러스 이거나, 또는 계수가 Tpi에 속하는 N-1 차수의 다항식 세트 Tpi,N[X], 또는 Tpi와 전단사 관계에 있는 또 다른 이산 세트임;
    암호화 메시지 ci를 나타내는 암호화 데이터를 결정하기 위해, 청구항 1에 따른 암호화 메시지 결정 방법에 따라 데이터를 처리하는 단계, 여기서 암호화 디바이스의 메모리에 적어도 일시적으로 저장된, 상기 처리 동안 사용된 비밀 키 s는 상기 처리 동안 프로세서 또는 프로세서들에 의해 액세스됨;를 실행하도록 하기 위해 프로그램되는. 암호화 디바이스.
  15. 청구항 14에 따른 암호화 디바이스(2) 및 처리 디바이스(3)를 포함하는 암호법 시스템(1)에 있어서,
    처리 디바이스(3)는 하나 이상의 프로세서 및 적어도 하나의 메모리를 포함하고 처리 디바이스는 프로세서 또는 프로세서들이 다음 단계:
    암호화 디바이스(2)에 의해 생성된 암호화 메시지 ci를 나타내는 데이터를 수신하는 단계;
    암호화 메시지 c'i를 나타내는 리프레시 데이터를 결정하기 위해, 청구항 2 내지 5 중 어느 한 항에 따른 부트스트래핑 방법에 따라, 데이터를 처리하는 단계, 여기서 상기 처리하는 단계는 ci를 복호화하지 않고 비밀 키 s를 사용, 판독 또는 액세스함 없이 달성됨;를 실행하도록 하기 위해 프로그램되는. 암호법 시스템.
  16. 컴퓨터에 의해 실행될 때 컴퓨터로 하여금 청구항 2 내지 5 중 어느 한 항에 따른 부트스트래핑 방법을 실행하게 하는 명령어를 포함하는 컴퓨터-판독 가능 프로그램 제품.
  17. 컴퓨터에 의해 실행될 때 컴퓨터로 하여금 청구항 11에 따른 암호화 메시지 결정 방법을 실행하게 하는 명령어를 포함하는 컴퓨터-판독 가능 프로그램 제품.
KR1020237024609A 2020-12-18 2020-12-18 동형 암호 방법 및 관련 디바이스 및 시스템 KR20230138459A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IB2020/001147 WO2022129979A1 (en) 2020-12-18 2020-12-18 Homomorphic encryption method and associated devices and system

Publications (1)

Publication Number Publication Date
KR20230138459A true KR20230138459A (ko) 2023-10-05

Family

ID=75919333

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237024609A KR20230138459A (ko) 2020-12-18 2020-12-18 동형 암호 방법 및 관련 디바이스 및 시스템

Country Status (9)

Country Link
US (1) US20240064000A1 (ko)
EP (1) EP4264871A1 (ko)
JP (1) JP2024501243A (ko)
KR (1) KR20230138459A (ko)
CN (1) CN117063438A (ko)
AU (1) AU2020481275A1 (ko)
CA (1) CA3202356A1 (ko)
IL (1) IL303803A (ko)
WO (1) WO2022129979A1 (ko)

Also Published As

Publication number Publication date
WO2022129979A1 (en) 2022-06-23
IL303803A (en) 2023-08-01
CN117063438A (zh) 2023-11-14
AU2020481275A9 (en) 2024-02-08
JP2024501243A (ja) 2024-01-11
CA3202356A1 (en) 2022-06-23
EP4264871A1 (en) 2023-10-25
WO2022129979A8 (en) 2022-12-01
AU2020481275A1 (en) 2023-07-06
US20240064000A1 (en) 2024-02-22

Similar Documents

Publication Publication Date Title
Chen et al. Batched multi-hop multi-key FHE from ring-LWE with compact ciphertext extension
Dai et al. Implementation and evaluation of a lattice-based key-policy ABE scheme
Smart et al. Fully homomorphic SIMD operations
Fu et al. A new chaos‐based color image encryption scheme with an efficient substitution keystream generation strategy
KR101246490B1 (ko) 갈루아 폐체 암호 시스템
Aboytes-González et al. Design of a strong S-box based on a matrix approach
US6189095B1 (en) Symmetric block cipher using multiple stages with modified type-1 and type-3 feistel networks
Chatterjee et al. Accelerating sorting of fully homomorphic encrypted data
US11101980B2 (en) System and method for adding and comparing integers encrypted with quasigroup operations in AES counter mode encryption
CN115276947B (zh) 隐私数据处理方法、装置、系统及存储介质
Hong et al. Efficient sorting of homomorphic encrypted data with k-way sorting network
KR20050078271A (ko) 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법
Farajallah et al. Cryptanalyzing an image encryption scheme using reverse 2-dimensional chaotic map and dependent diffusion
Fu et al. A new chaos-based image cipher using a hash function
Kangavalli et al. A mixed homomorphic encryption scheme for secure data storage in cloud
Rentería-Mejía et al. Lattice-based cryptoprocessor for CCA-secure identity-based encryption
CN114900442B (zh) 用于对业务数据进行预测的方法及其相关产品
Singh et al. Study & analysis of cryptography algorithms: RSA, AES, DES, T-DES, blowfish
Chen et al. Bootstrapping fully homomorphic encryption with ring plaintexts within polynomial noise
Mono et al. Implementing and Optimizing Matrix Triples with Homomorphic Encryption
KR20230138459A (ko) 동형 암호 방법 및 관련 디바이스 및 시스템
Behera et al. FPGA-based design architecture for fast LWE fully homomorphic encryption
Goumidi et al. Hybrid chaos-based image encryption approach using block and stream ciphers
Kumar et al. New Symmetric Key Cipher Based on Quasigroup
AU2021106274A4 (en) A protocol for assuring data integrity in cloud setting by using a fully homomorphic batch encryption scheme with integer and shorter public key (hbeis)

Legal Events

Date Code Title Description
A201 Request for examination