1 |
1
소정의 라운드 키를 이용한 ARIA 암호 연산을 암호화 키 길이에 따른 라운드 횟수만큼 반복하여 수행하는 암호 처리부; 상기 암호 처리부의 암호 연산에 필요한 각 라운드별 라운드 키를 생성하여 상기 암호 처리부로 제공하는 키 스케줄러;제어 명령을 저장하는 제어 레지스터; 및상기 제어 명령에 따라 상기 암호 처리부 및 상기 키 스케줄러의 동작을 제어하는 제어회로;를 더 포함하고,상기 암호 처리부는,외부 프로세서와 동일한 크기의 데이터 버스를 통해 입력 데이터 및 암호화 키를 수신하고, 라운드 키 생성을 위해 상기 암호화 키를 상기 키 스케줄러로 전달하는 입력 인터페이스;상기 키 스케줄러에서 라운드별로 각각 생성되는 라운드 키를 기초로 상기 암호화 키 길이에 따른 라운드 횟수만큼 상기 ARIA 암호 연산을 반복 수행하는 암호 연산부; 및상기 AIRA 암호 연산의 결과를 상기 데이터 버스를 통해 출력하는 출력 인터페이스;를 포함하는 것을 특징으로 하는 ARIA 암호 모듈
|
2 |
2
삭제
|
3 |
3
삭제
|
4 |
4
제 1항에 있어서, 상기 암호 연산부는,첫 번째 라운드의 경우 외부 입력 데이터를 선택하고, 두 번째 이상의 라운드의 경우 피드백 데이터를 선택하는 데이터 선택부;상기 데이터 선택부에 의해 선택된 데이터를 저장하는 데이터 레지스터; 및상기 데이터 레지스터에 저장된 데이터와 상기 라운드별 라운드 키를 논리 연산하여 상기 피드백 데이터를 생성하는 조합논리회로;를 포함하는 것을 특징으로 하는 ARIA 암호 모듈
|
5 |
5
제 1항에 있어서, 상기 암호 연산부는,첫 번째 라운드의 경우 외부 입력 데이터를 선택하고, 두 번째 이상의 라운드의 경우 피드백 데이터를 선택하는 제1 데이터 선택부;상기 제1 데이터 선택부에 의해 선택된 데이터를 저장하는 데이터 레지스터;상기 데이터 레지스터에 저장된 데이터와 상기 키 스케줄러에서 생성된 라운드별 라운드 키를 XOR 연산하는 XOR 회로;상기 XOR 연산 결과에 대한 S-box 연산을 수행하는 S-box 레이어 회로;상기 S-box 레이어 회로의 출력을 소정 함수를 이용하여 확산하는 데이터 확산 회로; 상기 데이터 확산 회로의 출력이 최종 라운드의 결과가 아니면 상기 데이터 확산 회로의 출력을 상기 피드백 데이터로 제공하는 제2 데이터 선택부; 및상기 데이터 확산 회로의 출력이 최종 라운드의 결과이면 상기 결과와 해당 라운드의 라운드 키의 XOR 연산의 결과를 출력하는 제3 데이터 선택부;를 포함하는 것을 특징으로 하는 ARIA 암호 모듈
|
6 |
6
제 5항에 있어서, 상기 S-box 레이어 회로는,상기 라운드의 횟수가 홀수인 경우, S-box 연산을 수행하는 홀수용 S-box 레이어 회로; 및상기 라운드의 횟수가 짝수인 경우, S-box 연산을 수행하는 짝수용 S-box 레이어 회로;를 포함하는 것을 특징으로 하는 ARIA 암호 모듈
|
7 |
7
제 1항에 있어서, 상기 키 스케줄러는,외부로부터 입력받은 암호화 키를 Feistel 함수를 이용하여 확장하는 키 초기화부;상기 확장된 키 값을 기초로 상기 암호화 키 길이에 따른 라운드 횟수만큼 각각의 라운드 키를 생성하는 라운드키 생성부; 및상기 생성한 라운드 키를 저장하고 상기 암호 연산부의 라운드보다 미리 계산된 라운드 키를 상기 암호 연산부로 제공하는 키 레지스터;를 포함하는 것을 특징으로 하는 ARIA 암호 모듈
|
8 |
8
제 1항에 있어서, 상기 키 스케줄러는,외부로부터 입력된 암호화 키 데이터를 저장하는 키 레지스터;3 라운드의 256비트 Feistel 알고리즘을 이용하여 상기 암호화 키를 이용하여 256 비트로 확장한 후 4 등분하는 키 초기화부;상기 4등분된 키 초기값을 저장하는 키초기화 레지스터; 및상기 키초기화 레지스터에 저장된 값을 기초로 암호화/복호화 연산 수행에 필요한 라운드 키를 생성하는 라운드키 생성부;를 포함하는 것을 특징으로 하는 ARIA 암호 모듈
|
9 |
9
제 8항에 있어서, 상기 라운드키 생성부는,상기 4등분된 키 초기값을 좌측 또는 우측 데이터로 선택하는 데이터 선택부;상기 우측 데이터를 소정 비트 회전하는 로테이터 회로; 및상기 데이터 선택부의 우측 선택값과 상기 로테이터 회로의 결과값을 XOR 연산하여 출력하는 XOR 회로;를 포함하는 것을 특징으로 하는 ARIA 암호 모듈
|
10 |
10
(a) ARIA 암호 연산에 필요한 각 라운드별 라운드 키를 생성하는 단계; 및(b) 상기 라운드 키를 이용한 ARIA 암호 연산을 암호화 키 길이에 따른 라운드 횟수만큼 반복하여 수행하는 단계:를 포함하고,상기 (a) 단계는, (a1) 외부로부터 입력받은 암호화 키를 Feistel 함수를 이용하여 확장하는 단계; 및(a2) 상기 확장된 키 값을 기초로 상기 암호화 키 길이에 따른 라운드 횟수만큼 각각의 라운드 키를 생성하는 단계;를 포함하는 것을 특징으로 ARIA 암호 방법
|
11 |
11
삭제
|
12 |
12
제 10항에 있어서, 상기 (b) 단계는,(b1) 외부 프로세서와 동일한 크기의 데이터 버스를 통해 입력 데이터 및 암호화 키를 수신하는 단계;(b2) 상기 (a) 단계에서 라운드별로 각각 생성되는 라운드 키를 기초로 상기 암호화 키 길이에 따른 라운드 횟수만큼 상기 ARIA 암호 연산을 반복 수행하여 상기 입력 데이터에 대한 ARIA 암호화를 수행하는 단계; 및(b3) 상기 AIRA 암호 연산의 결과를 상기 데이터 버스를 통해 출력하는 단계;를 포함하는 것을 특징으로 하는 ARIA 암호 방법
|