1 |
1
하나 이상의 프로세서들, 및상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서,사용자의 비밀키에 대한 상기 사용자 및 복수의 타 사용자 각각의 지분을 생성하는 단계;상기 복수의 타 사용자 각각의 지분을 상기 복수의 타 사용자 각각의 사용자 단말로 제공하는 단계;상기 복수의 타 사용자 각각의 사용자 단말로부터 상기 복수의 타 사용자 각각의 비밀키에 대한 상기 사용자의 지분을 수신하는 단계; 및상기 사용자의 비밀키에 대한 상기 사용자의 지분 및 상기 복수의 타 사용자 각각의 비밀키에 대한 상기 사용자의 지분을 이용하여 상기 사용자의 새로운 비밀키를 생성하는 단계를 포함하는 비밀키 생성 방법
|
2 |
2
청구항 1에 있어서,상기 지분을 생성하는 단계는, 상기 사용자의 비밀키에 대한 상기 사용자 및 상기 복수의 타 사용자 각각의 지분 중 기 설정된 수 이상의 지분을 이용하여 상기 사용자의 비밀키를 생성 가능하도록 상기 사용자의 비밀키에 대한 상기 사용자 및 상기 복수의 타 사용자 각각의 지분을 생성하는 비밀키 생성 방법
|
3 |
3
청구항 2에 있어서,공통 공개키를 이용하여 암호화된 암호문에 대하여 상기 사용자의 새로운 비밀키를 이용한 부분 복호화 결과를 생성하는 단계;상기 복수의 타 사용자 중 상기 기 설정된 수 이상의 타 사용자의 사용자 단말로부터 상기 기 설정된 수 이상의 타 사용자 각각의 갱신된 비밀키 지분을 이용하여 생성된 상기 암호문에 대한 부분 복호화 결과를 수신하는 단계; 및 상기 생성한 부분 복호화 결과 및 상기 수신된 부분 복호화 결과를 이용하여 상기 암호문에 대한 평문을 생성하는 단계를 더 포함하는 비밀키 생성 방법
|
4 |
4
청구항 3에 있어서,상기 공통 공개키는, 상기 사용자의 비밀키에 대응되는 상기 사용자의 공개키 및 상기 복수의 타 사용자 각각의 비밀키에 대응되는 상기 복수의 타 사용자 각각의 공개키를 이용하여 생성되는 비밀키 생성 방법
|
5 |
5
청구항 3에 있어서,상기 평문을 생성하는 단계는, 상기 생성한 부분 복호화 결과 및 상기 수신된 부분 복호화 결과 사이의 선형 결합(linear combination)을 통해 상기 평문을 생성하는 비밀키 생성 방법
|
6 |
6
하나 이상의 프로세서;메모리; 및하나 이상의 프로그램을 포함하는 장치로서,상기 하나 이상의 프로그램은 상기 메모리에 저장되고 상기 하나 이상의 프로세서에 의해 실행되도록 구성되며,상기 하나 이상의 프로그램은,사용자의 비밀키에 대한 상기 사용자 및 복수의 타 사용자 각각의 지분을 생성하는 단계;상기 복수의 타 사용자 각각의 지분을 상기 복수의 타 사용자 각각의 사용자 단말로 제공하는 단계;상기 복수의 타 사용자 각각의 사용자 단말로부터 상기 복수의 타 사용자 각각의 비밀키에 대한 상기 사용자의 지분을 수신하는 단계; 및상기 사용자의 비밀키에 대한 상기 사용자의 지분 및 상기 복수의 타 사용자 각각의 비밀키에 대한 상기 사용자의 지분을 이용하여 상기 사용자의 새로운 비밀키를 생성하는 단계를 실행하기 위한 명령어들을 포함하는 비밀키 생성 장치
|
7 |
7
청구항 6에 있어서,상기 지분을 생성하는 단계는, 상기 사용자의 비밀키에 대한 상기 사용자 및 상기 복수의 타 사용자 각각의 지분 중 기 설정된 수 이상의 지분을 이용하여 상기 사용자의 비밀키를 생성 가능하도록 상기 사용자의 비밀키에 대한 상기 사용자 및 상기 복수의 타 사용자 각각의 지분을 생성하는 비밀키 생성 장치
|
8 |
8
청구항 7에 있어서,상기 하나 이상의 프로그램은,공통 공개키를 이용하여 암호화된 암호문에 대하여 상기 사용자의 새로운 비밀키를 이용한 부분 복호화 결과를 생성하는 단계;상기 복수의 타 사용자 중 상기 기 설정된 수 이상의 타 사용자의 사용자 단말로부터 상기 기 설정된 수 이상의 타 사용자 각각의 갱신된 비밀키 지분을 이용하여 생성된 상기 암호문에 대한 부분 복호화 결과를 수신하는 단계; 및상기 생성한 부분 복호화 결과 및 상기 수신된 부분 복호화 결과를 이용하여 상기 암호문에 대한 평문을 생성하는 단계를 실행시키기 위한 명령어들을 더 포함하는 비밀키 생성 장치
|
9 |
9
청구항 8에 있어서,상기 공통 공개키는, 상기 사용자의 비밀키에 대응되는 상기 사용자의 공개키 및 상기 복수의 타 사용자 각각의 비밀키에 대응되는 상기 복수의 타 사용자 각각의 공개키를 이용하여 생성되는 비밀키 생성 장치
|
10 |
10
청구항 8에 있어서,상기 평문을 생성하는 단계는, 상기 생성한 부분 복호화 결과 및 상기 수신된 부분 복호화 결과 사이의 선형 결합(linear combination)을 통해 상기 평문을 생성하는 비밀키 생성 장치
|
11 |
11
하나 이상의 프로세서들, 및상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서,공통 공개키를 이용하여, 사용자의 비밀키에 대한 암호문을 생성하는 단계;상기 사용자의 비밀키에 대한 암호문을 복수의 타 사용자의 사용자 단말 각각으로 제공하는 단계;상기 복수의 타 사용자의 사용자 단말 각각으로부터 상기 공통 공개키를 이용하여 암호화된 상기 복수의 타 사용자 각각의 비밀키에 대한 암호문을 수신하는 단계;상기 사용자의 비밀키에 기초한 동형 덧셈 연산을 이용하여, 상기 사용자의 비밀키에 대한 암호문 및 상기 복수의 타 사용자 각각의 비밀키에 대한 암호문으로부터 상기 사용자의 연산키 지분을 생성하는 단계;상기 복수의 타 사용자 각각으로부터, 상기 복수의 타 사용자 각각의 비밀키에 기초한 동형 덧셈 연산을 이용하여, 상기 사용자의 비밀키에 대한 암호문 및 상기 복수의 타 사용자 각각의 비밀키에 대한 암호문으로부터 생성된 상기 복수의 타 사용자 각각의 연산키 지분을 수신하는 단계; 및상기 사용자의 연산키 지분 및 상기 복수의 타 사용자 각각의 연산키 지분을 이용하여, 상기 공통 공개키를 이용하여 암호화된 암호문에 대한 동형 곱셈 연산을 위한 연산키를 생성하는 단계를 포함하는 연산키 생성 방법
|
12 |
12
청구항 11에 있어서,상기 공통 공개키는, 상기 사용자의 비밀키에 대응되는 상기 사용자의 공개키 및 상기 복수의 타 사용자 각각의 비밀키에 대응되는 상기 복수의 타 사용자 각각의 공개키를 이용하여 생성되는 연산키 생성 방법
|
13 |
13
청구항 11에 있어서,상기 사용자의 비밀키 및 상기 복수의 타 사용자 각각의 비밀키는, 각각 아래의 수학식 1을 만족하고,[수학식 1]ski=(1,si), i=1,2,
|
14 |
14
청구항 13에 있어서,상기 사용자의 연산키 지분 및 상기 복수의 타 사용자 각각의 연산키 지분은, 각각 을 상기 공통 공개키를 이용하여 암호화한 암호문과 동일한 연산키 생성 방법
|
15 |
15
청구항 14에 있어서,상기 연산키를 생성하는 단계는, 상기 사용자의 연산키 지분 및 상기 복수의 타 사용자 각각의 연산키 지분에 대해 상기 동형 덧셈 연산을 수행하여 상기 연산키를 생성하고,상기 연산키는, 을 상기 공통 공개키를 이용하여 암호화한 암호문과 동일한 연산키 생성 방법
|
16 |
16
하나 이상의 프로세서;메모리; 및하나 이상의 프로그램을 포함하는 장치로서,상기 하나 이상의 프로그램은 상기 메모리에 저장되고 상기 하나 이상의 프로세서에 의해 실행되도록 구성되며,상기 하나 이상의 프로그램은,공통 공개키를 이용하여, 사용자의 비밀키에 대한 암호문을 생성하는 단계;상기 사용자의 비밀키에 대한 암호문을 복수의 타 사용자의 사용자 단말 각각으로 제공하는 단계;상기 복수의 타 사용자의 사용자 단말 각각으로부터 상기 공통 공개키를 이용하여 암호화된 상기 복수의 타 사용자 각각의 비밀키에 대한 암호문을 수신하는 단계;상기 사용자의 비밀키에 기초한 동형 덧셈 연산을 이용하여, 상기 사용자의 비밀키에 대한 암호문 및 상기 복수의 타 사용자 각각의 비밀키에 대한 암호문으로부터 상기 사용자의 연산키 지분을 생성하는 단계;상기 복수의 타 사용자 각각으로부터, 상기 복수의 타 사용자 각각의 비밀키에 기초한 동형 덧셈 연산을 이용하여, 상기 사용자의 비밀키에 대한 암호문 및 상기 복수의 타 사용자 각각의 비밀키에 대한 암호문으로부터 생성된 상기 복수의 타 사용자 각각의 연산키 지분을 수신하는 단계; 및상기 사용자의 연산키 지분 및 상기 복수의 타 사용자 각각의 연산키 지분을 이용하여, 상기 공통 공개키를 이용하여 암호화된 암호문에 대한 동형 곱셈 연산을 위한 연산키를 생성하는 단계를 실행하기 위한 명령어들을 포함하는 연산키 생성 장치
|
17 |
17
청구항 16에 있어서,상기 공통 공개키는, 상기 사용자의 비밀키에 대응되는 상기 사용자의 공개키 및 상기 복수의 타 사용자 각각의 비밀키에 대응되는 상기 복수의 타 사용자 각각의 공개키를 이용하여 생성되는 연산키 생성 장치
|
18 |
18
청구항 16에 있어서,상기 사용자의 비밀키 및 상기 복수의 타 사용자 각각의 비밀키는, 각각 아래의 수학식 1을 만족하고,[수학식 1]ski=(1,si), i=1,2,
|
19 |
19
청구항 18에 있어서,상기 사용자의 연산키 지분 및 상기 복수의 타 사용자 각각의 연산키 지분은, 각각 을 상기 공통 공개키를 이용하여 암호화한 암호문과 동일한 연산키 생성 장치
|
20 |
20
청구항 19에 있어서,상기 연산키를 생성하는 단계는, 상기 사용자의 연산키 지분 및 상기 복수의 타 사용자 각각의 연산키 지분에 대해 상기 동형 덧셈 연산을 수행하여 상기 연산키를 생성하고,상기 연산키는, 을 상기 공통 공개키를 이용하여 암호화한 암호문과 동일한 연산키 생성 장치
|
21 |
21
하나 이상의 프로세서들, 및상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서,사용자의 공개키를 이용하여, 상기 사용자의 비밀키에 대한 암호문을 생성하는 단계;상기 사용자의 비밀키에 대한 암호문을 복수의 타 사용자의 사용자 단말 각각으로 제공하는 단계;복수의 타 사용자의 사용자 단말 각각으로부터 상기 복수의 타 사용자 각각의 공개키를 이용하여 암호화된 상기 복수의 타 사용자 각각의 비밀키에 대한 암호문을 수신하는 단계;상기 사용자의 비밀키에 대한 암호문 및 상기 복수의 타 사용자 각각의 비밀키에 대한 암호문을 이용하여 중간 연산키를 생성하는 단계;상기 사용자의 비밀키 및 상기 중간 연산키를 이용하여 상기 사용자의 연산키 지분을 생성하는 단계;상기 복수의 타 사용자 각각으로부터, 상기 복수의 타 사용자 각각의 비밀키 및 상기 중간 연산키를 이용하여 생성된 상기 복수의 타 사용자 각각의 연산키 지분을 수신하는 단계; 및상기 사용자의 연산키 지분 및 상기 복수의 타 사용자 각각의 연산키 지분을 이용하여, 공통 공개키를 이용하여 암호화된 암호문에 대한 동형 곱셈 연산을 위한 연산키를 생성하는 단계를 포함하는 연산키 생성 방법
|
22 |
22
청구항 21에 있어서,상기 공통 공개키는, 상기 사용자의 공개키 및 상기 복수의 타 사용자 각각의 공개키를 이용하여 생성되는 연산키 생성 방법
|
23 |
23
청구항 21에 있어서,상기 사용자의 비밀키 및 상기 복수의 타 사용자 각각의 비밀키는, 각각 아래의 수학식 1을 만족하고,[수학식 1]ski=(1,si), i=1,2,
|
24 |
24
청구항 23에 있어서,상기 중간 연산키를 생성하는 단계는, 상기 사용자의 비밀키에 대한 암호문 및 상기 복수의 타 사용자 각각의 비밀키에 대한 암호문 사이의 동형 덧셈 연산을 수행하여 상기 중간 연산키를 생성하고, 상기 중간 연산키는, 를 상기 공통 공개키를 이용하여 암호화한 암호문과 동일한 연산키 생성 방법
|
25 |
25
청구항 23에 있어서,상기 사용자의 연산키 지분 및 상기 복수의 타 사용자 각각의 연산키 지분은, 각각 을 상기 공통 공개키를 이용하여 암호화한 암호문과 동일한 연산키 생성 방법
|
26 |
26
청구항 25에 있어서,상기 연산키를 생성하는 단계는, 상기 사용자의 연산키 지분 및 상기 복수의 타 사용자 각각의 연산키 지분에 대해 상기 동형 덧셈 연산을 수행하여 상기 연산키를 생성하고,상기 연산키는, 을 상기 공통 공개키를 이용하여 암호화한 암호문과 동일한 연산키 생성 방법
|
27 |
27
하나 이상의 프로세서;메모리; 및하나 이상의 프로그램을 포함하는 장치로서,상기 하나 이상의 프로그램은 상기 메모리에 저장되고 상기 하나 이상의 프로세서에 의해 실행되도록 구성되며,상기 하나 이상의 프로그램은,사용자의 공개키를 이용하여, 상기 사용자의 비밀키에 대한 암호문을 생성하는 단계;상기 사용자의 비밀키에 대한 암호문을 복수의 타 사용자의 사용자 단말 각각으로 제공하는 단계;복수의 타 사용자의 사용자 단말 각각으로부터 상기 복수의 타 사용자 각각의 공개키를 이용하여 암호화된 상기 복수의 타 사용자 각각의 비밀키에 대한 암호문을 수신하는 단계;상기 사용자의 비밀키에 대한 암호문 및 상기 복수의 타 사용자 각각의 비밀키에 대한 암호문을 이용하여 중간 연산키를 생성하는 단계;상기 사용자의 비밀키 및 상기 중간 연산키를 이용하여 상기 사용자의 연산키 지분을 생성하는 단계;상기 복수의 타 사용자 각각으로부터, 상기 복수의 타 사용자 각각의 비밀키 및 상기 중간 연산키를 이용하여 생성된 상기 복수의 타 사용자 각각의 연산키 지분을 수신하는 단계; 및상기 사용자의 연산키 지분 및 상기 복수의 타 사용자 각각의 연산키 지분을 이용하여, 공통 공개키를 이용하여 암호화된 암호문에 대한 동형 곱셈 연산을 위한 연산키를 생성하는 단계를 실행하기 위한 명령어들을 포함하는 연산키 생성 장치
|
28 |
28
청구항 27에 있어서,상기 공통 공개키는, 상기 사용자의 공개키 및 상기 복수의 타 사용자 각각의 공개키를 이용하여 생성되는 연산키 생성 장치
|
29 |
29
청구항 27에 있어서,상기 사용자의 비밀키 및 상기 복수의 타 사용자 각각의 비밀키는, 각각 아래의 수학식 1을 만족하고,[수학식 1]ski=(1,si), i=1,2,
|
30 |
30
청구항 29에 있어서,상기 중간 연산키를 생성하는 단계는, 상기 사용자의 비밀키에 대한 암호문 및 상기 복수의 타 사용자 각각의 비밀키에 대한 암호문 사이의 동형 덧셈 연산을 수행하여 상기 중간 연산키를 생성하고, 상기 중간 연산키는, 를 상기 공통 공개키를 이용하여 암호화한 암호문과 동일한 연산키 생성 장치
|
31 |
31
청구항 29에 있어서,상기 사용자의 연산키 지분 및 상기 복수의 타 사용자 각각의 연산키 지분은, 각각 을 상기 공통 공개키를 이용하여 암호화한 암호문과 동일한 연산키 생성 장치
|
32 |
32
청구항 31에 있어서,상기 연산키를 생성하는 단계는, 상기 사용자의 연산키 지분 및 상기 복수의 타 사용자 각각의 연산키 지분에 대해 상기 동형 덧셈 연산을 수행하여 상기 연산키를 생성하고,상기 연산키는, 을 상기 공통 공개키를 이용하여 암호화한 암호문과 동일한 연산키 생성 장치
|