1 |
1
SEED 암/복호화 연산을 수행하는 장치에 있어서,외부 프로세서와의 인터페이스를 위한 인터페이스 처리부;암/복호 블록들의 저장을 위한 데이터 메모리;병렬로 각각의 암/복호 블록들을 처리하는 제1 및 제2의 SEED 코어들;상기 제1 및 제2 SEED 코어들에서 필요한 라운드별 키 값들을 생성하는 키 스케줄러; 및SEED 암/복호 동작에 필요한 동작 모드, 초기값 등을 저장하며, 상기 제1 및 제2 SEED 코어들과 데이터 메모리, 키 스케줄러를 제어하기 위한 SEED 제어기를 포함하는 SEED 암/복호화 장치
|
2 |
2
제1항에 있어서, 상기 인터페이스 처리부는 PCI 인터페이스를 수행하는 것을 특징으로 하는 SEED 암/복호화 장치
|
3 |
3
제1항에 있어서, 상기 데이터 메모리는 양방향 입출력 메모리인 것을 특징으로 하는 SEED 암/복호화 장치
|
4 |
4
제1항에 있어서, 상기 제1 및 제2 SEED 코어들은 입력 데이터의 상위 및 하위 데이터 혹은 라운드별 중간값을 저장하는 LO 레지스터 및 R0 레지스터; 상기 R0 레지스터에 저장된 하위 데이터를 버퍼링하고, 1라운드의 처리가 종료되면 버퍼링된 데이터를 상기 L0 레지스터에 저장시키는 M0 레지스터; 상기 키 스케줄러에서 제공되는 라운드별 키값과 상기 RO 레지스터에서 제공되는 하위 데이터에 대하여 F함수 처리를 수행하는 F함수 처리기; 상기 F함수 처리기의 처리 결과와 상기 L0 레지스터에 저장된 상위 데이터와를 XOR연산하며, 1라운드의 처리가 종료되면 XOR연산된 결과를 상기 RO 레지스터에 저장시키는 제3XOR 연산기; 및 16라운드의 처리가 종료되면 각각 상기 제3XOR 연산기의 연산 결과 및 상기 M0 레지스터에 버퍼링된 데이터를 저장하는 L1 레지스터 및 R1 레지스터를 포함하는 것을 특징으로 하는 SEED 암/복호화 장치
|
5 |
5
제4항에 있어서, 상기 SEED 코어는 상기 SEED 제어기에서 제공되는 암호화를 위한 초기값의 상위 데이터 혹은 이전 암호화 블록의 상위 데이터를 선택하는 제1입력 다중화기; 입력 데이터의 상위 데이터와 상기 제1 입력 다중화기의 출력과를 XOR연산하여 상기
|
6 |
6
제4항에 있어서, 상기 제1 및 제2 SEED 코어들은 상기 SEED 제어기에서 제공되는 복호화를 위한 초기값의 상위 데이터 혹은 이전 암호화 블록의 상위 데이터를 선택하는 제3 입력 다중화기; 상기 L1 레지스터에 저장된 데이터와 상기 제3 입력 다중화기의 출력과를 XOR연산하는 제4XOR 연산기; 상기 SEED 제어기에서 제공되는 복호화를 위한 초기값의 하위 데이터 혹은 이전 암호화 블록의 하위 데이터를 선택하는 제4 입력 다중화기; 상기 R1 레지스터에 저장된 데이터와 상기 제4입력 다중화기의 출력과를 XOR연산하여 출력하는 제5XOR 연산기; 상기 제4XOR 연산기의 출력 혹은 상기 L1 레지스터에 저장된 데이터를 선택적으로 출력하는 제1 출력 다중화기; 및 상기 제5XOR연산기의 출력 혹은 상기 R1 레지스터에 저장된 데이터를 선택적으로 출력하는 제2 출력 다중화기; 이전 암호화 블록을 버퍼링하여 다른 SEED 코어의 제3입력 다중화기 및 제4입력 다중화기에 각각 제공하기 위한 L2 레지스터 및 R2레지스터를 포함하는 것을 특징으로 하는 SEED 연산 장치
|
7 |
7
제6항에 있어서, 상기 제2SEED 코어는 상기 L2 레지스터 및 R2 레지스터들의 출력을 버퍼링하여 상기 제1SEED 코어의 제3 입력 다중화기 및 제4입력 다중화기에 제공하기 위한 L4 레지스터 및 R4레지스터들을 더 구비하는 것을 특징으로 하는 SEED 연산 장치
|
8 |
8
제4항에 있어서, 표준의 F함수의 전반부 및 후반부를 각각 처리하는 제1 및 제2F 함수 처리기; 상기 제1F함수 처리기의 결과를 버퍼링하는 M2 레지스터; 및 상기 L0 레지스터의 출력을 버퍼링하여 상기 제3XOR 연산기에 제공하는 M1 레지스터를 더 구비하여, 두 개의 블록들을 파이프라인 처리하는 것을 특징으로 하는 SEED 연산 장치
|
9 |
9
제8항에 있어서, 상기 제1F함수 처리기는 각각이 F함수에 의해 처리될 64비트의 입력 데이터로부터 절단된 32비트 데이터와 F함수에 의해 처리될 64비트의 키 데이터로부터 절단된 32비트 데이터를 XOR연산하는 제6 및 제7XOR 연산기들; 상기 제6 및 제7 XOR 연산기들의 출력을 XOR연산하는 제8XOR 연산기; 상기 제8XOR 연산기의 출력을 G함수 처리하는 제1G함수 처리기; 상기 제1G함수 처리기의 출력과 상기 제1XOR 연산기의 출력을 가산하는 제1가산기; 및 상기 제1가산기의 출력을 G함수 처리하는 제2G함수 처리기를 구비하는 것을 특징으로 하는 SEED 연산 장치
|
10 |
10
제8항에 있어서, 상기 제2F함수 처리기는 각각이 상기 제1F함수 처리기에서 출력되는 데이터의 상위 및 하위 데이터들을 가산하는 제2덧셈기; 상기 제2덧셈기의 출력을 G함수 처리하는 제3 G함수 처리기; 상기 제3 G함수 처리기의 출력과 상기 제1F함수 처리기에서 출력되는 데이터로부터 상위 데이터를 가산하는 제3덧셈기를 포함하는 것을 특징으로 하는 SEED 연산 장치
|
11 |
11
각각이 SEED 알고리즘에 의해 암/복호화를 수행하는 제1 및 제2 SEED 모듈을 이용한 SEED CBC 모드 암호화 방법에 있어서, I번째 평문 블록 Mi를 상기 제1SEED 모듈에 입력하여 i번째 암호문 블록 Ci를 생성하는 과정; 상기 i번째 암호문 블록 Ci를 i+1번째 평문 블록 Mi+1과 XOR연산하는 제1XOR연산 과정; 상기 제1XOR 연산 과정의 결과를 상기 제2SEED 모듈에 입력하여 i+1번째 암호문 블록 Ci+1을 생성하는 과정; 상기 i+1번째 암호문 블록 Ci+1을 i+2번째 평문 블록 Mi+2와 XOR 연산하는 제2XOR 연산 과정; 상기 제2XOR 연산 과정의 결과를 상기 제1SEED 모듈에 입력하여 i+2 번째 암호문 블록 Ci+2를 생성하는 과정을 포함하는 SEED CBC 모드 암호화 방법
|
12 |
12
각각이 SEED 알고리즘에 의해 암/복호화를 수행하는 제1 및 제2 SEED 모듈을 이용한 SEED CBC 모드 복호화 방법에 있어서, I번째 암호문 블록 Ci 및 i+2번째 암호문 블록 Ci+2를 상기 제1SEED 모듈에 차례로 입력하여 복호하는 제1복호과정; I-1번째 암호문 블록 Ci-1 및 i+1번째 암호문 블록 Ci+1을 상기 제2SEED 모듈에 차례로 입력하여 복호하는 제2복호과정; 상기 제2SEED 모듈에 차례로 제공되는 I-1번째 암호문 블록 Ci-1 및 i+1번째 암호문 블록 Ci+1을 선입선출 방식에 의해 버퍼링하되 상기 제1 및 제2SEED 모듈의 블록 처리 기간만큼의 주기로 차례로 출력하는 제1지연과정; 제1지연 과정의 결과를 상기 제1복호과정의 결과들과 순차로 XOR연산하여 I번째 평문 블록 Mi 및 i+2번째 평문 블록 Mi+2를 복호하는 제1XOR연산과정; 상기 제1SEED 모듈에 차례로 제공되는 I번째 암호문 블록 C1 및 i+2번째 암호문 블록 Ci+2를 선입선출 방식에 의해 버퍼링하되 상기 제1 및 제2SEED 모듈의 블록 처리 기간만큼의 주기로 차례로 지연하는 제2지연과정; 및 제2지연 과정의 결과를 상기 제2복호과정의 결과들과 순차로 XOR연산하여 I-1번째 평문 블록 Mi-1 및 i+1번째 평문 블록 Mi+1을 복호하는 제1XOR연산과정을 포함하는 SEED CBC 복호화 방법
|
13 |
13
I번째 블록 Bi를 상위 데이터 Bi_upper 및 하위 데이터 Bi_lower로 분리하고, 하위 데이터 Bi_lower에 대하여 F함수 처리한 결과와 상위 데이터 Bi_upper를 XOR 연산하여 다음 라운드의 하위 데이터 Bi_lower_next로 제공하고, 상기 하위 데이터 Bi_lower를 다음 라운드의 상위 데이터 Bi_upper_next로 제공하는 SEED 암/복호의 라운드 처리 방법에 있어서, a) I번째 블록 Bi의 하위 데이터 Bi_lower를 버퍼링하는 과정; b) I번째 블록 Bi의 하위 데이터 Bi_lower에 대하여 F함수의 전반부를 처리하고, 그 결과 Bi_lower_f0 및 I번째 블록 Bi의 상위 데이터 Bi_upper를 버퍼링하는 과정; 및 c) i+1번째 블록의 하위 데이터 Bi+1_lower에 대하여 F함수의 전반부를 처리하고 그 결과 Bi+1_lower_f0 및 I+1번째 블록 Bi+1의 상위 데이터 Bi+1_upper를 버퍼링하는 한편, 상기 b)과정에서 버퍼링된 F함수의 전반부가 처리된 I번째 블록 Bi의 하위 데이터 Bi_lower_f0 에 대하여 F함수의 후반부를 처리하고, 그 결과 Bi_lower_f0_f1 및 I번째 블록 Bi의 상위 데이터 Bi_upper를 XOR연산하여 다음 라운드의 하위 데이터 Bi_lower_next로서 제공하며, 그리고 상기 a)과정에서 버퍼링된 I번째 블록 Bi의 하위 데이터 Bi_lower를 다음 라운드의 상위 데이터 Bi_upper_next로서 제공하는 과정을 포함하여, 2개의 블록을 파이프라인 방식에 의해 처리하는 SEED 암/복호 라운드 처리 방법
|
14 |
14
SEED 암/복호화 장치의 F함수 처리기에 있어서, F함수의 전반부를 처리하는 제1F함수 처리기; 상기 제1F함수 처리기의 처리 결과를 버퍼링하는 레지스터; 및 상기 레지스터에 저장된 데이터에 대하여 F함수의 후반부를 처리하는 제2F함수 처리기를 포함하는 F함수 처리기
|
15 |
15
제14항에 있어서, 상기 제1F함수 처리기는 각각이 F함수에 의해 처리될 64비트의 입력 데이터로부터 절단된 32비트의 데이터와 F함수에 의해 처리될 64비트의 키데이터로부터 절단된 32비트의 데이터를 XOR연산하는 제6 및 제7 XOR들; 상기 제6 및 제7XOR들의 출력들을 XOR연산하는 제8XOR; 상기 제8XOR의 출력을 G함수 처리하는 제1G함수 처리기; 상기 제1G함수 처리기의 출력과 상기 제6XOR의 출력을 가산하는 제1덧셈기; 및 상기 제1덧셈기의 출력을 G함수 처리하는 제2G함수 처리기를 구비하며, 상기 제1 및 제2G함수 처리기의 출력들을 조합하여 출력하는 F함수 처리기
|
16 |
16
제14항에 있어서, 상기 제2F함수 처리기는 각각이 상기 제1F함수 처리기에서 출력되는 64비트의 데이터로부터 절단된 32비트 데이터들을 가산하는 제2덧셈기; 상기 제2덧셈기의 출력을 G함수 처리하는 제3G함수 처리기; 상기 제3G함수 처리기의 출력과 상기 제1F함수 처리기에서 출력되는 64비트의 데이터로부터 절단된 32비트 데이터를 가산하는 제3덧셈기를 포함하며, 상기 제3덧셈기의 출력과 상기 제3G함수 처리기의 출력들은 조합하여 출력하는 F함수 처리기
|
17 |
17
삭제
|
18 |
17
삭제
|