1 |
1
PRNG 코어로부터 데이터를 입력 받아 공개키 생성 및 비밀키 생성과 암호화에 필요한 에러를 생성하고, NTT 연산을 수행한 뒤 공개키 및 비밀키를 생성하여 메모리에 저장하는 키생성 프로세서; 메모리로부터 저장된 공개키와 데이터를 수신하여 변형시키고, 공개키 생성 및 비밀키 생성과 암호화에 필요한 에러를 생성하며, NTT 및 INTT 연산을 수행한 뒤 암호문의 압축 과정을 거친 후, 암호문을 출력하는 암호화 프로세서; 및 메모리로부터 저장된 비밀키와 암호문을 수신하여 암호문을 복원하고, 비밀키를 변형시키며, INTT 연산을 수행한 뒤 복원된 암호문의 압축해제 과정을 거친 후, 원본 메시지를 최종 출력하는 복호화 프로세서를 포함하는 암호화 장치
|
2 |
2
제1항에 있어서,키생성 프로세서는,PRNG 코어로부터 데이터를 입력 받아 공개키 생성과 암호화에 필요한 에러를 생성하는 거부 샘플러; PRNG 코어로부터 데이터를 입력 받아 비밀키 생성과 암호화에 필요한 에러를 생성하는 이항 샘플러; 이항 샘플러의 출력을 입력 받아 NTT 연산을 수행하는 NTT 코어; 거부 샘플러 및 NTT 코어의 출력을 점 곱셈 연산한 후 다항식 덧셈을 통해 각각의 계수를 더한 값을 입력 받아 공개키를 생성하여 메모리에 저장하는 공개키 인코더; 및NTT 코어의 출력을 입력 받아 데이터를 변형시켜 비밀키를 생성하여 메모리에 저장하는 다항식 인코더를 포함하는 암호화 장치
|
3 |
3
제1항에 있어서,암호화 프로세서는,메모리로부터 저장된 메세지를 수신하여 데이터를 변형시키는 메시지 인코더; 메모리로부터 저장된 공개키를 수신하여 공개키를 변형시키는 공개키 디코더; 공개키 디코더의 출력을 입력 받아 공개키 생성과 암호화에 필요한 에러를 생성하는 거부 샘플러; 비밀키 생성과 암호화에 필요한 에러를 생성하는 이항 샘플러; 이항 샘플러의 출력을 입력 받아 NTT 연산을 수행하는 NTT 코어; NTT 코어 및 공개키 디코더의 출력을 점 곱셈 연산한 값을 입력 받아 역-NTT 연산을 수행하는 INTT 코어; 이항 샘플러 및 메시지 인코더의 출력을 다항식 덧셈한 후 INTT 코어의 출력과 다항식 덧셈을 통해 각각의 계수를 더한 값을 입력 받아 암호문을 압축하는 컴프레스; 및 거부 샘플러 및 NTT 코어의 출력을 점 곱셈 연산한 후 다항식 덧셈을 통해 각각의 계수를 더한 값을 입력 받아 암호문을 출력하는 암호문 인코더를 포함하는 암호화 장치
|
4 |
4
제1항에 있어서,복호화 프로세서는, 메모리로부터 저장된 암호문을 수신하여 암호문을 복원하는 암호문 디코더; 메모리로부터 저장된 비밀키를 수신하여 비밀키를 변형시키는 다항식 디코더; 암호문 디코더 및 다항식 디코더의 출력을 점 곱셈 연산한 값을 입력 받아 역-NTT 연산을 수행하는 INTT 코어; 암호문 디코더의 출력을 입력 받아 복원된 암호문을 압축해제하는 디컴프레스; 및 INTT 코어 및 디컴프레스의 출력을 다항식 뺄셈한 값을 입력 받아 원본 메시지를 최종 출력하는 디코더를 포함하는 암호화 장치
|
5 |
5
키생성 프로세서를 통해 PRNG 코어로부터 데이터를 입력 받아 공개키 생성 및 비밀키 생성과 암호화에 필요한 에러를 생성하고, NTT 연산을 수행한 뒤 공개키 및 비밀키를 생성하여 메모리에 저장하는 단계; 암호화 프로세서를 통해 메모리로부터 저장된 공개키와 데이터를 수신하여 변형시키고, 공개키 생성 및 비밀키 생성과 암호화에 필요한 에러를 생성하며, NTT 및 INTT 연산을 수행한 뒤 암호문의 압축 과정을 거친 후, 암호문을 출력하는 단계; 및 복호화 프로세서를 통해 메모리로부터 저장된 비밀키와 암호문을 수신하여 암호문을 복원하고, 비밀키를 변형시키며, INTT 연산을 수행한 뒤 복원된 암호문의 압축해제 과정을 거친 후, 원본 메시지를 최종 출력하는 단계 를 포함하는 암호화 방법
|
6 |
6
제5항에 있어서, 키생성 프로세서를 통해 PRNG 코어로부터 데이터를 입력 받아 공개키 생성 및 비밀키 생성과 암호화에 필요한 에러를 생성하고, NTT 연산을 수행한 뒤 공개키 및 비밀키를 생성하여 메모리에 저장하는 단계는,거부 샘플러를 통해 PRNG 코어로부터 데이터를 입력 받아 공개키 생성과 암호화에 필요한 에러를 생성하고, 이항 샘플러를 통해 PRNG 코어로부터 데이터를 입력 받아 비밀키 생성과 암호화에 필요한 에러를 생성하고, NTT 코어를 통해 이항 샘플러의 출력을 입력 받아 NTT 연산을 수행하고, 거부 샘플러 및 NTT 코어의 출력을 점 곱셈 연산한 후 다항식 덧셈을 통해 각각의 계수를 더한 값을 공개키 인코더를 통해 입력 받아 공개키를 생성하여 메모리에 저장하고, 다항식 인코더를 통해 NTT 코어의 출력을 입력 받아 데이터를 변형시켜 비밀키를 생성하여 메모리에 저장하는 암호화 방법
|
7 |
7
제5항에 있어서, 암호화 프로세서를 통해 메모리로부터 저장된 공개키와 데이터를 수신하여 변형시키고, 공개키 생성 및 비밀키 생성과 암호화에 필요한 에러를 생성하며, NTT 및 INTT 연산을 수행한 뒤 암호문의 압축 과정을 거친 후, 암호문을 출력하는 단계는, 메시지 인코더를 통해 메모리로부터 저장된 메세지를 수신하여 데이터를 변형시키고, 공개키 디코더를 통해 메모리로부터 저장된 공개키를 수신하여 공개키를 변형시키고, 거부 샘플러를 통해 공개키 디코더의 출력을 입력 받아 공개키 생성과 암호화에 필요한 에러를 생성하고, 이항 샘플러를 통해 비밀키 생성과 암호화에 필요한 에러를 생성하고, NTT 코어를 통해 이항 샘플러의 출력을 입력 받아 NTT 연산을 수행하고, NTT 코어 및 공개키 디코더의 출력을 점 곱셈 연산한 값을 INTT 코어를 통해 입력 받아 역-NTT 연산을 수행하고, 이항 샘플러 및 메시지 인코더의 출력을 다항식 덧셈한 후 INTT 코어의 출력과 다항식 덧셈을 통해 각각의 계수를 더한 값을 컴프레스를 통해 입력 받아 암호문을 압축하고, 거부 샘플러 및 NTT 코어의 출력을 점 곱셈 연산한 후 다항식 덧셈을 통해 각각의 계수를 더한 값을 암호문 인코더를 통해 입력 받아 암호문을 출력하는 암호화 방법
|
8 |
8
제5항에 있어서,복호화 프로세서를 통해 메모리로부터 저장된 비밀키와 암호문을 수신하여 암호문을 복원하고, 비밀키를 변형시키며, INTT 연산을 수행한 뒤 복원된 암호문의 압축해제 과정을 거친 후, 원본 메시지를 최종 출력하는 단계는, 암호문 디코더를 통해 메모리로부터 저장된 암호문을 수신하여 암호문을 복원하고, 다항식 디코더를 통해 메모리로부터 저장된 비밀키를 수신하여 비밀키를 변형시키고, 암호문 디코더 및 다항식 디코더의 출력을 점 곱셈 연산한 값을 INTT 코어를 통해 입력 받아 역-NTT 연산을 수행하고, 디컴프레스를 통해 암호문 디코더의 출력을 입력 받아 복원된 암호문을 압축해제하고, INTT 코어 및 디컴프레스의 출력을 다항식 뺄셈한 값을 디코더를 통해 입력 받아 원본 메시지를 최종 출력하는 암호화 방법
|