1 |
1
입력된 평문 데이터를 분할하여 데이터 블록으로 저장하는 데이터 입력부;카운터 값을 생성하는 카운터 생성부;아리아(ARIA) 알고리즘에 따라 라운드 키를 이용하여 상기 카운터 값에 대한 상기 데이터 블록의 암호화 연산을 수행하는 아리아 라운드 연산부; 및상기 아리아 라운드 연산부의 각 라운드에서 사용되는 상기 라운드 키를 생성하는 아리아 키 생성부를 포함하고,상기 라운드 연산부는,상기 데이터 블록 또는 제1 키를 출력하는 제1 다중화기;키초기화 상수 또는 상기 라운드키를 출력하는 제2 다중화기;상기 데이터 블록 또는 상기 제1 키와 상기 키초기화 상수 또는 상기 라운드키에 대한 배타적 논리합을 산출하는 제1 XOR 연산기;상기 배타적 논리합에 대한 치환 연산을 적용하여 제1 치환 연산값을 생성하는 제1 치환부;상기 제1 치환 연산값을 저장하는 서브파이프라인 레지스터;상기 제1 치환부 또는 상기 서브파이프라인 레지스터로부터 제1 치환 연산값을 수신하여 출력하는 제3 다중화기;제1 치환 연산값에 대해 추가 치환 연산을 적용하여 제2 치환 연산값을 생성하는 제2 치환부;상기 제2 치환 연산값에 대해 확산 연산을 적용하여 확산 연산값을 생성하는 확산부; 및상기 확산 연산값과 제2 키에 대한 배타적 논리합을 생성하는 제2 XOR 연산기;를 포함하되,상기 제3 다중화기는 CTR(Counter) 모드에서 상기 서브파이프라인 레지스터로부터 수신한 상기 제1 치환 연산값을 상기 제2 치환부로 전송하고, CBC(Cipher Block Chaining)-MAC(message Authentication Code) 모드에서 상기 제1 치환부로부터 수신한 상기 제1 치환 연산값을 상기 제2 치환부로 전송하는 것을 특징으로 하는 아리아 암복호화 장치
|
2 |
2
제1 항에 있어서,상기 아리아 라운드 연산부는복수의 라운드 연산부;상기 라운드 연산부 간을 연결하는 파이프라인 레지스터를 포함하는 것을 특징으로 하는 아리아 암복호화 장치
|
3 |
3
삭제
|
4 |
4
제1 항에 있어서,상기 카운터 생성부를 통해 카운터 한계값까지 카운터 값을 1씩 증가시켜 생성하고, 상기 아리아 라운드 연산부를 통해 상기 카운터 값을 암호화하여 저장하고,상기 아리아 라운드 연산부를 통해 데이터 블록의 개수가 상기 카운터 한계 값을 초과하는 경우, 한계 값 초과 카운터 값을 암호화 하고, 상기 암호화된 카운터 값 및 상기 암호화된 한계값 초과 카운터 값 중 하나 이상과 상기 데이터 블록의 배타적 논리합 연산을 통해 암호문을 생성하는 제어부를 더 포함하는 것을 특징으로 하는 아리아 암복호화 장치
|
5 |
5
제4 항에 있어서,상기 제어부는 상기 아리아 라운드 연산부를 통해 상기 카운터 값에 대응하는 상기 데이터 블록과 상기 암호문의 암호문 블록을 베타적 논리합 연산을 수행하고,상기 암호문 블록 중 가장 마지막 암호문 블록을 메시지 인증 코드 값으로 출력하는 단계를 포함하는 것을 특징으로 하는 아리아 암복호화 장치
|
6 |
6
아리아 암복호화 장치가 아리아 암복호화를 수행하는 방법에 있어서,카운터 값을 생성하고, 상기 카운터 값을 암호화하는 단계;평문 데이터의 데이터 블록을 암호화하는 단계; 및상기 평문 데이터에 대한 메시지 인증 코드를 생성하는 단계;를 포함하고,상기 카운터 값을 암호화하는 단계는제1 다중화기에서, 상기 데이터 블록 또는 제1 키를 출력하는 단계;제2 다중화기에서, 키초기화 상수 또는 라운드키를 출력하는 단계;제1 XOR 연산기에서, 상기 데이터 블록 또는 상기 제1 키와 상기 키초기화 상수 또는 상기 라운드키에 대한 배타적 논리합을 산출하는 단계;제1 치환부에서, 상기 배타적 논리합에 대한 치환 연산을 적용하여 제1 치환 연산값을 생성하는 단계;서브파이프라인 레지스터에서, 상기 제1 치환 연산값을 저장하는 단계;제3 다중화기에서, 상기 제1 치환부 또는 상기 서브파이프라인 레지스터로부터 제1 치환 연산값을 수신하여 출력하는 단계;제2 치환부에서, 상기 제1 치환 연산값에 대해 추가 치환 연산을 적용하여 제2 치환 연산값을 생성하는 단계;확산부에서, 상기 제2 치환 연산값에 대해 확산 연산을 적용하여 확산 연산값을 생성하는 단계; 및제2 XOR 연산기에서, 상기 확산 연산값과 제2 키에 대한 배타적 논리합을 생성하는 단계;를 포함하되,상기 제3 다중화기에서, 상기 제1 치환부 또는 상기 서브파이프라인 레지스터로부터 제1 치환 연산값을 수신하여 출력하는 단계는 CTR(Counter) 모드에서 상기 서브파이프라인 레지스터로부터 수신한 상기 제1 치환 연산값을 상기 제2 치환부로 전송하고, CBC(Cipher Block Chaining)-MAC(message Authentication Code) 모드에서 상기 제1 치환부로부터 수신한 상기 제1 치환 연산값을 상기 제2 치환부로 전송하는 것을 특징으로 하는 아리아 암복호화 방법
|
7 |
7
제6 항에 있어서,카운터 값을 생성하고, 상기 카운터 값을 암호화하는 단계는,카운터 한계값까지 카운터 값을 1씩 증가시켜 생성하고, 아리아 라운드 연산부를 통해 상기 카운터 값을 암호화하여 저장하는 단계인 것을 특징으로 하는 아리아 암복호화 방법
|
8 |
8
제7 항에 있어서,평문 데이터의 데이터 블록을 암호화하는 단계는,상기 아리아 라운드 연산부를 통해 데이터 블록의 개수가 상기 카운터 한계 값을 초과하는 경우, 한계 값 초과 카운터 값을 암호화 하는 단계; 및상기 암호화된 카운터 값 및 상기 암호화된 한계값 초과 카운터 값 중 하나 이상과 상기 데이터 블록의 배타적 논리합 연산을 통해 암호문을 생성하는 단계;를 포함하는 아리아 암복호화 방법
|
9 |
9
제8 항에 있어서,상기 평문 데이터에 대한 메시지 인증 코드를 생성하는 단계는,상기 아리아 라운드 연산부를 통해 상기 카운터 값에 대응하는 상기 데이터 블록과 상기 암호문의 암호문 블록을 베타적 논리합 연산을 수행하는 단계; 및상기 암호문 블록 중 가장 마지막 암호문 블록을 메시지 인증 코드 값으로 출력하는 단계를 포함하는 것을 특징으로 하는 아리아 암복호화 방법
|