1 |
1
AES(Advanced Encryption Standard) 블록 복호의 라운드 연산을 수행하는 역믹스컬럼(MixColums)블록 장치에 있어서, 비트 단위의 입력 데이터를 바이트 단위로 저장하고 저장된 입력 바이트를 출력하는 저장부; 상기 저장부로부터 입력받은 상기 입력 바이트에 대한 16진수 값인 {01}, {02}, {04} 및 {08} 곱셈연산을 수행하여 출력하는 제1 곱셈연산 블록부; 상기 제1 곱셈연산 블록부로부터 입력받은 상기 {01}, {02}, {04} 및 {08} 곱셈연산을 수행한 결과를 이용하여 16진수 값인 {09}, {0b}, {0d} 및 {0e} 곱셈연산을 수행하여 출력하는 제2 곱셈연산 블록부; 및 상기 제2 곱셈연산 블록부로부터 입력받은 상기 {09}, {0b}, {0d} 및 {0e} 곱셈연산을 수행한 결과에 대한 배타적 논리합 연산을 수행하여 상기 입력 바이트에 대한 출력 바이트를 출력하는 배타적 논리합 연산부 를 포함하는 역믹스컬럼블록 장치
|
2 |
2
제1항에 있어서,상기 제1 곱셈연산 블록부는,상기 저장부로부터 상기 입력 바이트를 입력받아 출력하는 {01} 곱셈연산 블록;상기 {01} 곱셈연산 블록이 출력한 값을 입력받아 {02} 곱셈연산을 수행한 결과를 출력하는 {02} 곱셈연산 블록;상기 {02} 곱셈연산 블록이 출력한 값을 입력받아 {04} 곱셈연산을 수행한 결과를 출력하는 {04} 곱셈연산 블록; 및상기 {04} 곱셈연산 블록이 출력한 값을 입력받아 {08} 곱셈연산을 수행한 결과를 출력하는 {08} 곱셈연산 블록을 포함하는 것을 특징으로 하는 역믹스컬럼블록 장치
|
3 |
3
제2항에 있어서, 상기 {02} 곱셈연산 블록 또는 상기 {04} 곱셈연산 블록 또는 상기 {08} 곱셈연산 블록은, 바이트 단위의 입력 값을 저장하는 제1 저장 레지스터; 상기 제1 저장 레지스터로부터 입력 바이트를 입력받아 이를 좌측으로 1 비트 쉬프트시켜 출력하는 쉬프트 레지스터; 16진수 값 {1D}를 저장하는 제2 저장 레지스터; 상기 쉬프트 레지스터로부터 출력된 값과 상기 제2 저장 레지스터에 저장된 값을 입력받고, 입력받은 값들에 대한 배타적 논리합 연산을 수행하여 출력하는 배타적 논리합 연산기; 및 상기 제1 저장 레지스터로부터 입력받은 상기 입력 바이트의 최상위 비트를 제어 비트로 하고 상기 쉬프트 레지스터로부터 출력된 값 및 상기 배타적 논리합 연산기로부터 출력된 값을 입력받아 상기 입력받은 값들 중에서 출력할 값을 선별하는 먹스를 포함하는 것을 특징으로 하는 역믹스컬럼블록 장치
|
4 |
4
제3항에 있어서,상기 제1 곱셈연산 블록부는, 상기 {01} 곱셈연산 블록, {02} 곱셈연산 블록, {04} 곱셈연산 블록 및 {08} 곱셈연산 블록으로 구성되고, 상기 저장부로부터 입력된 복수개의 입력 바이트에 대한 {01}, {02}, {04} 및 {08} 곱셈연산을 수행하는 곱셈연산 모듈을 복수개 포함하는 것을 특징으로 하는 역믹스컬럼블록 장치
|
5 |
5
제1항 내지 제4항 중 어느 한 항에 있어서,상기 제2 곱셈연산 블록부는,상기 {01} 곱셈연산 블록 및 상기 {08} 곱셈연산 블록으로부터 출력된 값을 입력받아 이들에 대한 배타적 논리합 연산을 수행하여 {09} 곱셈연산 결과를 출력하는 {09} 곱셈연산 블록;상기 {01} 곱셈연산 블록, {02} 곱셈연산 블록 및 상기 {08} 곱셈연산 블록으로부터 출력된 값을 입력받아 이들에 대한 배타적 논리합 연산을 수행하여 {0b} 곱셈연산 결과를 출력하는 {0b} 곱셈연산 블록;상기 {01} 곱셈연산 블록, {04} 곱셈연산 블록 및 상기 {08} 곱셈연산 블록으로부터 출력된 값을 입력받아 이들에 대한 배타적 논리합 연산을 수행하여 {0d} 곱셈연산 결과를 출력하는 {0d} 곱셈연산 블록;{02} 곱셈연산 블록, {04} 곱셈연산 블록 및 {08} 곱셈연산 블록으로부터 출력된 값을 입력받아 이들에 대한 배타적 논리합 연산을 수행하여 {0e} 곱셈연산 결과를 출력하는 {0e} 곱셈연산 블록을 포함하는 것을 특징으로 하는 역믹스컬럼블록 장치
|
6 |
6
제3항에 있어서,상기 제2 곱셈연산 블록부는, 상기 {09} 곱셈연산 블록, {0b} 곱셈연산 블록, {0d} 곱셈연산 블록 및 {0e} 곱셈연산 블록으로 구성되고, 상기 저장부로부터 입력된 복수개의 입력 바이트에 대한 {09}, {0b}, {0d} 및 {0e} 곱셈연산을 수행하는 곱셈연산 모듈을 복수개 포함하는 것을 특징으로 하는 역믹스컬럼블록 장치
|
7 |
7
제6항에 있어서,상기 배타적 논리합 연산부는, 32 비트 단위로 입력된 데이터를 바이트 단위로 구분한 입력 바이트에 대한 출력 바이트를 연산하고,첫번째 입력 바이트에 대한 {0e} 곱셈연산 결과, 두번째 입력 바이트에 대한 {0b} 곱셈연산 결과, 세번째 입력 바이트에 대한 {0d} 곱셈연산 결과 및 네번째 입력 바이트에 대한 {09} 곱셈연산 결과를 입력받아 이들에 대한 배타적 논리합 연산을 수행한 결과를 상기 첫번째 입력 바이트에 대한 출력 바이트로 연산하는 제1 출력부;첫번째 입력 바이트에 대한 {09} 곱셈연산 결과, 두번째 입력 바이트에 대한{0e} 곱셈연산 결과, 세번째 입력 바이트에 대한 {0b} 곱셈연산 결과 및 네번째 입력 바이트에 대한 {0d} 곱셉연산 결과를 입력받아 이들에 대한 배타적 논리합 연산을 수행한 결과를 상기 두번째 입력 바이트에 대한 출력 바이트로 연산하는 제2 출력부;첫번째 입력 바이트에 대한 {0d} 곱셈연산 결과, 두번째 입력 바이트에 대한 {09} 곱셈연산 결과, 세번째 입력 바이트에 대한 {0e} 곱셈연산 결과 및 네번째 입력 바이트에 대한 {0b} 곱셈연산 결과를 입력받아 이들에 대한 배타적 논리합 연산을 수행한 결과를 상기 세번째 입력 바이트에 대한 출력 바이트로 연산하는 제3 출력부; 및첫번째 입력 바이트에 대한 {0b} 곱셈연산 결과, 두번째 입력 바이트에 대한 {0d} 곱셈연산 결과, 세번째 입력 바이트에 대한 {09} 곱셈연산 결과 및 네번째 입력 바이트에 대한 {0e} 곱셈연산 결과를 입력받이 이들에 대한 배타적 논리합 연산을 수행한 결과를 상기 네번째 입력 바이트에 대한 출력 바이트로 연산하는 제4 출력부 를 포함하는 것을 특징으로 하는 역믹스컬럼블록 장치
|
8 |
8
AES 블록 암호의 라운드 연산을 수행하는 역믹스컬럼블록의 곱셈연산방법에 있어서,입력 바이트에 대한 16진수 값인 {01}, {02}, {04} 및 {08} 곱셈연산을 수행하는 단계;상기 {01}, {02}, {04} 및 {08} 곱셈연산을 수행한 결과를 이용하여 16진수 값인 {09}, {0b}, {0d} 및 {0e} 곱셈연산을 수행하는 단계;상기 {09}, {0b}, {0d} 및 {0e} 곱셈연산을 수행한 결과에 대한 배타적 논리합 연산을 수행하는 단계; 및 상기 배타적 논리합 연산을 수행한 결과를 상기 입력 바이트에 대한 출력 바이트를 출력하는 단계를 포함하는 역믹스컬럼블록의 곱셈연산방법
|
9 |
9
제8항에 있어서,상기 {01}, {02}, {04} 및 {08} 곱셈연산을 수행하는 단계는,상기 입력 바이트를 입력받아 출력하는 {01} 곱셈연산 단계;상기 {01} 곱셈연산 결과를 이용하여 {02} 곱셈연산을 수행하는 {02} 곱셈연산 단계;상기 {02} 곱셈연산 결과를 이용하여 {04} 곱셈연산을 수행하는 {04} 곱셈연산 단계; 및상기 {04} 곱셈연산 결과를 이용하여 {08} 곱셈연산을 수행하는 {08} 곱셈연산 단계를 포함하는 것을 특징으로 하는 역믹스컬럼블록의 곱셈연산방법
|
10 |
10
제9항에 있어서,상기 {02} 곱셈연산 단계 또는 상기 {04} 곱셈연산 단계 또는 상기 {08} 곱셈연산 단계는,상기 입력 바이트를 좌측으로 1 비트 쉬프트시켜 출력하는 단계;상기 쉬프트시켜 출력한 값과 16진수 값 {1D}에 대한 배타적 논리합 연산을 수행하여 출력하는 단계; 및상기 입력 바이트의 최상위 비트를 이용하여 상기 쉬프트시켜 출력한 값과 상기 배타적 논리합 연산을 수행하여 출력한 값 중에서 출력할 값을 선별하는 단계를 포함하는 것을 특징으로 하는 역믹스컬럼블록의 곱셈연산방법
|
11 |
11
제10항에 있어서, 상기 {09}, {0b}, {0d} 및 {0e} 곱셈연산을 수행하는 단계는,상기 {01} 곱셈연산 결과 및 상기 {08} 곱셈연산 결과들을 이용한 배타적 논리합 연산을 수행하는 {09} 곱셈연산 단계;상기 {01} 곱셈연산 결과, {02} 곱셈연산 결과 및 상기 {08} 곱셈연산 결과들을 이용한 배타적 논리합 연산을 수행하는 {0b} 곱셈연산 단계;상기 {01} 곱셈연산 결과, {04} 곱셈연산 결과 및 상기 {08} 곱셈연산 결과들을 이용한 배타적 논리합 연산을 수행하는 {0d} 곱셈연산 단계; 및상기 {02} 곱셈연산 결과, {04} 곱셈연산 결과 및 {08} 곱셈연산 결과들을 이용한 배타적 논리합 연산을 수행하는 {0e} 곱셈연산 단계를 포함하는 것을 특징으로 하는 역믹스컬럼블록의 곱셈연산방법
|
12 |
12
제11항에 있어서, 상기 배타적 논리합 연산을 수행하는 단계는,32 비트 단위로 입력된 데이터를 바이트 단위로 구분한 입력 바이트에 대한 출력 바이트를 연산하고,첫번째 입력 바이트에 대한 {0e} 곱셈연산 결과, 두번째 입력 바이트에 대한 {0b} 곱셈연산 결과, 세번째 입력 바이트에 대한 {0d} 곱셈연산 결과 및 네번째 입력 바이트에 대한 {09} 곱셈연산 결과를 입력받아 이들에 대한 배타적 논리합 연산을 수행한 결과를 상기 첫번째 입력 바이트에 대한 출력 바이트로 연산하는 단계;첫번째 입력 바이트에 대한 {09} 곱셈연산 결과, 두번째 입력 바이트에 대한{0e} 곱셈연산 결과, 세번째 입력 바이트에 대한 {0b} 곱셈연산 결과 및 네번째 입력 바이트에 대한 {0d} 곱셉연산 결과를 입력받아 이들에 대한 배타적 논리합 연산을 수행한 결과를 상기 두번째 입력 바이트에 대한 출력 바이트로 연산하는 단계; 첫번째 입력 바이트에 대한 {0d} 곱셈연산 결과, 두번째 입력 바이트에 대한 {09} 곱셈연산 결과, 세번째 입력 바이트에 대한 {0e} 곱셈연산 결과 및 네번째 입력 바이트에 대한 {0b} 곱셈연산 결과를 입력받아 이들에 대한 배타적 논리합 연산을 수행한 결과를 상기 세번째 입력 바이트에 대한 출력 바이트로 연산하는 단계; 및첫번째 입력 바이트에 대한 {0b} 곱셈연산 결과, 두번째 입력 바이트에 대한 {0d} 곱셈연산 결과, 세번째 입력 바이트에 대한 {09} 곱셈연산 결과 및 네번째 입력 바이트에 대한 {0e} 곱셈연산 결과를 입력받이 이들에 대한 배타적 논리합 연산을 수행한 결과를 상기 네번째 입력 바이트에 대한 출력 바이트로 연산하는 단계를 포함하는 역믹스컬럼블록의 곱셈연산방법
|