1 |
1
블록 데이터와 입력 암호 키의 배타적 논리합 연산을 수행하는 입력키가산부; 상기 배타적 논리합 연산의 결과 및 상기 입력 암호 키를 이용하여 암호복호화 연산을 수행하는 라운드연산부; 및 라운드 수를 카운트하여 상기 라운드연산부가 소정의 라운드 수만큼 상기 암호복호화 연산을 반복하게 하는 라운드제어부를 포함하는 것을 특징으로 하는 블록 데이터 암호복호화 장치
|
2 |
2
제 1 항에 있어서, 상기 라운드연산부는 암호화에 필요한 부분과 복호화에 필요한 부분 중 공통되는 부분을 다중화기를 사용하여 공유하는 것을 특징으로 하는 블록 데이터 암호복호화 장치
|
3 |
3
제 1 항에서 있어서, 상기 라운드연산부는, 상기 입력 암호 키로부터 각 라운드에 사용할 라운드 키를 생성하는 라운드키생성부; 제1라운드에서는 상기 배타적 논리합 연산의 결과를 암호화 모드 또는 복호화 모드에 따른 소정의 양만큼 그 위치를 쉬프트하고 각 바이트를 치환 연산하며, 이후의 라운드에서는 상기 라운드연산부의 이전 라운드의 출력을 암호화 모드 또는 복호화 모드에 따른 소정의 양만큼 그 위치를 쉬프트하고 각 바이트를 치환 연산하는 바이트연산부; 및 데이터를 암호화하는 경우, 상기 치환 연산된 바이트 각각에 소정의 상수와의 바이트별 곱셈 연산을 수행한 후 상기 라운드 키와의 배타적 논리합 연산을 수행하며, 데이터를 복호화하는 경우, 상기 치환 연산된 바이트 각각에 상기 라운드 키와의 배타적 논리합 연산을 수행한 후 상기 상수와의 바이트 별 곱셈 연산을 수행하는 믹스컬럼연산및라운드키가산부를 포함하는 것을 특징으로 하는 블록 데이터 암호복호화 장치
|
4 |
4
제 3 항에 있어서, 상기 바이트연산부는 쉬프트 연산한 데이터를 저장하지 않고 바로 치환 연산하는 것을 특징으로 하는 블록 데이터 암호복호화 장치
|
5 |
5
제 3 항에 있어서, 상기 믹스컬럼연산및라운드키가산부는 상기 바이트별 곱셈 연산을 배타적 논리합 게이트의 조합으로 구현한 것을 특징으로 하는 블록 데이터 암호복호화 장치
|
6 |
6
제 1 항에 있어서, 동작 모드가 ECB 암호화 모드, ECB 복호화 모드, 또는 CBC 복호화 모드인 경우, 상기 블록 데이터를 상기 입력키가산부에 그대로 전달하며, 동작 모드가 CBC 암호화 모드인 경우, 상기 블록 데이터와 초기화 벡터 값의 배타적 논리합 연산을 수행하여 그 결과값을 상기 입력키가산부에 전달하며, 동작 모드가 CFB 암호화 모드, CFB 복호화 모드, OFB 암호화 모드, OFB 복호화 모드, CTR 암호화 모드, 또는 CTR 복호화 모드인 경우, 초기화 벡터 값을 상기 입력키가산부에 전달하는 초기화부를 더 포함하는 것을 특징으로 하는 블록 데이터 암호복호화 장치
|
7 |
7
삭제
|
8 |
8
삭제
|
9 |
9
제 1 항에 있어서, 상기 블록 데이터 및 상기 입력 암호 키는 각각 128 비트의 크기를 가지며, 상기 라운드 연산의 수는 10회인 것을 특징으로 하는 블록 데이터 암호복호화 장치
|
10 |
10
제 1 항에 있어서, 암호화를 수행할 것인지 복호화를 수행할 것인지에 대한 정보, 모드에 대한 정보, 및 제어에 관한 정보를 저장하고 이를 상기 라운드연산부 및 상기 라운드제어부에 전달하는 상태레지스터를 더 포함하는 것을 특징으로 하는 블록 데이터 암호복호화 장치
|
11 |
11
입력 암호 키로부터 각 라운드에 사용할 라운드 키를 생성하는 라운드키생성부; 데이터의 각 바이트를 암호화 모드인지 복호화 모드인지에 따른 소정의 수만큼 그 위치를 쉬프트하고 각 바이트를 치환 연산하는 바이트연산부; 및 데이터를 암호화하는 경우, 상기 치환 연산된 바이트 각각에 소정의 상수와의 바이트별 곱셈 연산을 수행한 후 상기 라운드 키와의 배타적 논리합 연산을 수행하며, 데이터를 복호화하는 경우, 상기 치환 연산된 바이트 각각에 상기 라운드 키와의 배타적 논리합 연산을 수행한 후 상기 상수와의 바이트 별 곱셈 연산을 수행하는 믹스컬럼연산및라운드키가산부를 포함하는 것을 특징으로 하는 블록 데이터 라운드 연산 장치
|
12 |
12
(a) 블록 데이터와 입력 암호 키의 배타적 논리합 연산을 수행하는 단계; (b) 상기 배타적 논리합 연산의 결과, 상기 입력 암호 키, 및 이전 라운드의 계산 값을 이용하여 하나의 라운드에 해당하는 암호복호화 연산을 수행하는 단계; 및 (c) 소정의 라운드 수만큼 상기 (b) 단계를 반복하는 단계를 포함하는 것을 특징으로 하는 블록 데이터 암호복호화 방법
|
13 |
13
제 12 항에 있어서, 상기 (b) 단계는, (b1) 상기 입력 암호 키로부터 라운드 키를 생성하는 단계; (b2) 라운드 수에 따른 소정의 데이터의 각 바이트를 암호화 모드인지 복호화 모드인지에 따른 소정의 수만큼 그 위치를 쉬프트하고 각 바이트를 치환 연산하는 단계; (b3) 상기 데이터의 각 바이트별로 소정의 상수를 곱하는 연산을 수행하는 단계; 및 (b4) 상기 데이터와 상기 라운드 키와의 배타적 논리합 연산을 수행하는 단계를 포함하며, 상기 (b2) 단계의 데이터는, 제 1 라운드에서는 상기 (a) 단계에서의 배타적 논리합 결과를 이용하며, 이후의 라운드에서는 이전 라운드의 (b4) 단계에서의 배타적 논리합 결과를 이용하는 것을 특징으로 하는 블록 데이터 암호복호화 방법
|
14 |
14
제 13 항에 있어서, 상기 (b1) 단계는 상기 (b2) 및 (b3) 단계와 병행하여 수행되는 것을 특징으로 하는 블록 데이터 암호복호화 방법
|
15 |
15
제 12 항에 있어서, 상기 블록 데이터 및 상기 입력 암호 키는 각각 128 비트의 크기를 가지며, 상기 라운드 연산의 수는 10회인 것을 특징으로 하는 블록 데이터 암호복호화 방법
|
16 |
16
(a) 블록 데이터와 입력 암호 키의 배타적 논리합 연산을 수행하는 단계; (b) 상기 배타적 논리합 연산의 결과, 상기 입력 암호 키, 및 이전 라운드의 계산 값을 이용하여 하나의 라운드에 해당하는 암호복호화 연산을 수행하는 단계; 및 (c) 소정의 라운드 수만큼 상기 (b) 단계를 반복하는 단계를 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체
|
17 |
16
(a) 블록 데이터와 입력 암호 키의 배타적 논리합 연산을 수행하는 단계; (b) 상기 배타적 논리합 연산의 결과, 상기 입력 암호 키, 및 이전 라운드의 계산 값을 이용하여 하나의 라운드에 해당하는 암호복호화 연산을 수행하는 단계; 및 (c) 소정의 라운드 수만큼 상기 (b) 단계를 반복하는 단계를 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체
|