1 |
1
"1"과 "0"의 코드 값을 성분으로 포함하는 k x k(k는 자연수) 크기의 이진 정칙 행렬 S, t(t는 자연수)비트의 코드에 대한 오류 정정 능력을 가지면서 "1"과 "0"의 코드 값을 성분으로 포함하는 k x n(n은 자연수) 크기의 생성 행렬 G 및 "1"과 "0"의 코드 값을 성분으로 포함하는 n x n 크기의 순열 행렬 P가 곱해진 공개키 Kpub(Kpub=SGP)가 저장되어 있는 공개키 저장부;데이터 수신 장치로 전송할 k비트의 크기를 갖는 원본 메시지 m을 선정된(predetermined) 해시 함수에 입력으로 인가하여 해시 값을 생성하고, 상기 해시 값으로부터 해밍 무게(Hamming Weight)가 t이면서, "1"과 "0"의 코드 값으로 구성된 크기가 n인 오류 벡터 e를 생성하는 오류 벡터 생성부;상기 원본 메시지 m에 대해 상기 공개키 Kpub와 상기 오류 벡터 e를 기초로 암호화를 수행하여 암호화 메시지 c를 생성하는 메시지 암호화부; 및상기 암호화 메시지 c를 상기 데이터 수신 장치로 전송하는 메시지 암호화 전송부를 포함하는 메시지 인증이 가능한 부호 기반 암호화 장치
|
2 |
2
제1항에 있어서,상기 메시지 암호화부는상기 원본 메시지 m에 상기 공개키 Kpub를 곱하여 결과 값 c'을 생성하고, 상기 결과 값 c'과 상기 오류 벡터 e에 대해 배타적 논리합 연산을 수행함으로써, 상기 암호화 메시지 c를 생성하는 메시지 인증이 가능한 부호 기반 암호화 장치
|
3 |
3
제2항에 있어서,상기 오류 벡터 생성부는상기 원본 메시지 m을 상기 선정된 해시 함수에 입력으로 인가하여 상기 해시 값을 생성하는 해시 값 생성부;상기 해시 값으로부터 상기 오류 벡터 e 상에 t개의 "1"의 코드 값이 삽입될 위치를 지시하는 t개의 인덱스 값들을 추출하는 인덱스 추출부; 및상기 t개의 인덱스 값들에 기초하여 상기 t개의 인덱스 값들이 지시하는 위치에 "1"의 코드 값을 삽입하고, 나머지 위치에 대해 "0"의 코드 값을 삽입함으로써, "1"과 "0"의 코드 값으로 구성된 크기가 n인 상기 오류 벡터 e를 생성하는 벡터 생성부를 포함하는 메시지 인증이 가능한 부호 기반 암호화 장치
|
4 |
4
제3항에 있어서,상기 인덱스 추출부는상기 해시 값을 구성하는 복수의 "1"과 "0"의 코드 값들을 log2n개의 코드 값들 별로 그룹화하여 log2n개의 코드 값들이 포함되어 있는 t개의 그룹들을 생성한 후, 상기 t개의 그룹들 별로, 상기 t개의 그룹들 내에 포함되어 있는 log2n개의 코드 값들을 십진수로 변환함으로써, 상기 t개의 그룹들을 통해 변환된 t개의 십진수들을 상기 t개의 인덱스 값들로 추출하는 메시지 인증이 가능한 부호 기반 암호화 장치
|
5 |
5
제4항에 있어서,상기 오류 벡터 생성부는상기 해시 값의 크기가 tlog2n보다 작은 경우, 상기 t개의 인덱스 값들을 추출하기 위해 사용되는 최종 해시 값의 크기가 tlog2n을 초과하기 위해 필요로 하는 추가 해시 값의 개수만큼 상기 원본 메시지 m에 대해 순환 시프트(cyclic shift) 연산을 수행함으로써, 적어도 하나의 변환 메시지를 생성하고, 상기 적어도 하나의 변환 메시지를 상기 선정된 해시 함수에 입력으로 인가하여 적어도 하나의 변환 해시 값을 생성하는 변환 해시 값 생성부; 및상기 해시 값과 상기 적어도 하나의 변환 해시 값을 조합하여 조합 해시 값을 생성한 후 상기 조합 해시 값을 상기 t개의 인덱스 값들을 추출하기 위해 사용하는 상기 최종 해시 값으로 결정하는 해시 값 보정부를 더 포함하고,상기 인덱스 추출부는상기 최종 해시 값이 결정되면, 상기 최종 해시 값으로부터 상기 오류 벡터 e 상에 t개의 "1"의 코드 값이 삽입될 위치를 지시하는 상기 t개의 인덱스 값들을 추출하는 메시지 인증이 가능한 부호 기반 암호화 장치
|
6 |
6
제4항에 있어서,상기 데이터 수신 장치는메모리 상에 상기 이진 정칙 행렬 S, 상기 생성 행렬 G 및 상기 순열 행렬 P를 상기 공개키 Kpub에 대응하는 개인키로 저장하고 있고, 상기 암호화 메시지 c가 수신되면, 상기 암호화 메시지 c에 대해 상기 메모리 상에 저장되어 있는 상기 순열 행렬 P의 역행렬 P-1을 곱하여 cP-1을 연산하고, 상기 생성 행렬 G를 기초로 상기 cP-1에 대한 오류 정정을 수행하여 상기 원본 메시지 m과 상기 이진 정칙 행렬 S가 곱해진 mS를 연산한 후 상기 mS에 대해 상기 이진 정칙 행렬 S의 역행렬 S-1을 곱하여 상기 원본 메시지 m을 복호화하는 메시지 인증이 가능한 부호 기반 암호화 장치
|
7 |
7
제6항에 있어서,상기 데이터 수신 장치는상기 메모리 상에 상기 선정된 해시 함수를 추가로 저장하고 있으며, 상기 원본 메시지 m의 복호화가 완료되면, 상기 복호화된 원본 메시지 m을 상기 메모리 상에 저장되어 있는 상기 선정된 해시 함수에 입력으로 인가하여 복호 해시 값을 생성하고, 상기 복호 해시 값으로부터 t개의 "1"의 코드 값이 삽입될 위치를 지시하는 t개의 인덱스 값들을 추출하여 추출된 t개의 인덱스 값들을 기초로 "1"과 "0"의 코드 값으로 구성된 크기가 n인 복호화 오류 벡터 z를 생성한 후 상기 암호화 메시지 c와 상기 복호화 오류 벡터 z에 대해 배타적 논리합 연산을 수행하여 제1 검증 값을 생성하고, 상기 복호화된 원본 메시지 m에 대해 상기 공개키 Kpub를 곱하여 제2 검증 값을 생성한 후 상기 제1 검증 값과 상기 제2 검증 값이 동일한 것으로 판단되면, 상기 복호화된 원본 메시지 m에 대해 무결성이 확인된 것으로 판단하는 메시지 인증이 가능한 부호 기반 암호화 장치
|
8 |
8
"1"과 "0"의 코드 값을 성분으로 포함하는 k x k(k는 자연수) 크기의 이진 정칙 행렬 S, t(t는 자연수)비트의 코드에 대한 오류 정정 능력을 가지면서 "1"과 "0"의 코드 값을 성분으로 포함하는 k x n(n은 자연수) 크기의 생성 행렬 G 및 "1"과 "0"의 코드 값을 성분으로 포함하는 n x n 크기의 순열 행렬 P가 곱해진 공개키 Kpub(Kpub=SGP)가 저장되어 있는 공개키 저장부를 유지하는 단계;데이터 수신 장치로 전송할 k비트의 크기를 갖는 원본 메시지 m을 선정된(predetermined) 해시 함수에 입력으로 인가하여 해시 값을 생성하고, 상기 해시 값으로부터 해밍 무게(Hamming Weight)가 t이면서, "1"과 "0"의 코드 값으로 구성된 크기가 n인 오류 벡터 e를 생성하는 단계;상기 원본 메시지 m에 대해 상기 공개키 Kpub와 상기 오류 벡터 e를 기초로 암호화를 수행하여 암호화 메시지 c를 생성하는 단계; 및상기 암호화 메시지 c를 상기 데이터 수신 장치로 전송하는 단계를 포함하는 메시지 인증이 가능한 부호 기반 암호화 방법
|
9 |
9
제8항에 있어서,상기 암호화 메시지 c를 생성하는 단계는상기 원본 메시지 m에 상기 공개키 Kpub를 곱하여 결과 값 c'을 생성하고, 상기 결과 값 c'과 상기 오류 벡터 e에 대해 배타적 논리합 연산을 수행함으로써, 상기 암호화 메시지 c를 생성하는 메시지 인증이 가능한 부호 기반 암호화 방법
|
10 |
10
제9항에 있어서,상기 오류 벡터 e를 생성하는 단계는상기 원본 메시지 m을 상기 선정된 해시 함수에 입력으로 인가하여 상기 해시 값을 생성하는 단계;상기 해시 값으로부터 상기 오류 벡터 e 상에 t개의 "1"의 코드 값이 삽입될 위치를 지시하는 t개의 인덱스 값들을 추출하는 단계; 및상기 t개의 인덱스 값들에 기초하여 상기 t개의 인덱스 값들이 지시하는 위치에 "1"의 코드 값을 삽입하고, 나머지 위치에 대해 "0"의 코드 값을 삽입함으로써, "1"과 "0"의 코드 값으로 구성된 크기가 n인 상기 오류 벡터 e를 생성을 수행하는 단계를 포함하는 메시지 인증이 가능한 부호 기반 암호화 방법
|
11 |
11
제10항에 있어서,상기 인덱스 값들을 추출하는 단계는상기 해시 값을 구성하는 복수의 "1"과 "0"의 코드 값들을 log2n개의 코드 값들 별로 그룹화하여 log2n개의 코드 값들이 포함되어 있는 t개의 그룹들을 생성한 후, 상기 t개의 그룹들 별로, 상기 t개의 그룹들 내에 포함되어 있는 log2n개의 코드 값들을 십진수로 변환함으로써, 상기 t개의 그룹들을 통해 변환된 t개의 십진수들을 상기 t개의 인덱스 값들로 추출하는 메시지 인증이 가능한 부호 기반 암호화 방법
|
12 |
12
제11항에 있어서,상기 오류 벡터 e를 생성하는 단계는상기 해시 값의 크기가 tlog2n보다 작은 경우, 상기 t개의 인덱스 값들을 추출하기 위해 사용되는 최종 해시 값의 크기가 tlog2n을 초과하기 위해 필요로 하는 추가 해시 값의 개수만큼 상기 원본 메시지 m에 대해 순환 시프트(cyclic shift) 연산을 수행함으로써, 적어도 하나의 변환 메시지를 생성하고, 상기 적어도 하나의 변환 메시지를 상기 선정된 해시 함수에 입력으로 인가하여 적어도 하나의 변환 해시 값을 생성하는 단계; 및상기 해시 값과 상기 적어도 하나의 변환 해시 값을 조합하여 조합 해시 값을 생성한 후 상기 조합 해시 값을 상기 t개의 인덱스 값들을 추출하기 위해 사용하는 상기 최종 해시 값으로 결정하는 단계를 더 포함하고,상기 인덱스 값들을 추출하는 단계는상기 최종 해시 값이 결정되면, 상기 최종 해시 값으로부터 상기 오류 벡터 e 상에 t개의 "1"의 코드 값이 삽입될 위치를 지시하는 상기 t개의 인덱스 값들을 추출하는 메시지 인증이 가능한 부호 기반 암호화 방법
|
13 |
13
제11항에 있어서,상기 데이터 수신 장치는메모리 상에 상기 이진 정칙 행렬 S, 상기 생성 행렬 G 및 상기 순열 행렬 P를 상기 공개키 Kpub에 대응하는 개인키로 저장하고 있고, 상기 암호화 메시지 c가 수신되면, 상기 암호화 메시지 c에 대해 상기 메모리 상에 저장되어 있는 상기 순열 행렬 P의 역행렬 P-1을 곱하여 cP-1을 연산하고, 상기 생성 행렬 G를 기초로 상기 cP-1에 대한 오류 정정을 수행하여 상기 원본 메시지 m과 상기 이진 정칙 행렬 S가 곱해진 mS를 연산한 후 상기 mS에 대해 상기 이진 정칙 행렬 S의 역행렬 S-1을 곱하여 상기 원본 메시지 m을 복호화하는 메시지 인증이 가능한 부호 기반 암호화 방법
|
14 |
14
제13항에 있어서,상기 데이터 수신 장치는상기 메모리 상에 상기 선정된 해시 함수를 추가로 저장하고 있으며, 상기 원본 메시지 m의 복호화가 완료되면, 상기 복호화된 원본 메시지 m을 상기 메모리 상에 저장되어 있는 상기 선정된 해시 함수에 입력으로 인가하여 복호 해시 값을 생성하고, 상기 복호 해시 값으로부터 t개의 "1"의 코드 값이 삽입될 위치를 지시하는 t개의 인덱스 값들을 추출하여 추출된 t개의 인덱스 값들을 기초로 "1"과 "0"의 코드 값으로 구성된 크기가 n인 복호화 오류 벡터 z를 생성한 후 상기 암호화 메시지 c와 상기 복호화 오류 벡터 z에 대해 배타적 논리합 연산을 수행하여 제1 검증 값을 생성하고, 상기 복호화된 원본 메시지 m에 대해 상기 공개키 Kpub를 곱하여 제2 검증 값을 생성한 후 상기 제1 검증 값과 상기 제2 검증 값이 동일한 것으로 판단되면, 상기 복호화된 원본 메시지 m에 대해 무결성이 확인된 것으로 판단하는 메시지 인증이 가능한 부호 기반 암호화 방법
|
15 |
15
제8항 내지 제14항 중 어느 한 항의 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록 매체
|
16 |
16
제8항 내지 제14항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램
|