Gae Ko's Blog

[암호] SEED 본문

암호

[암호] SEED

Gae Ko 2018. 1. 16. 04:22

※ SEED 


SEED 암호화 알고리즘은 민간 부분인 인터넷, 전자상거래, 무선 통신 등에서 공개시 민감한 영향을 미칠 수 있는 정보를 보호하기 위해 1999년 2월 한국정보보호진흥원을 중심으로 국내 암호 전문가들이 참여하여 순수 국내기술로 개발한 블록암호 알고리즘이다.


SEED는 128비트의 암호화/복호화키를 이용하여 임의의 길이를 갖는 입력 메세지를 128비트의 블록단위로 처리하는 128비트 블록암호 알고리즘이다.  따라서 임의의 길이를 가지는 평문 메세지를 128비트씩 블록단위로 나누어 암호화하여 암호문을 생성한다.


SEED 알고리즘 구조 


SEED 알고리즘의 전체 구조는 Feistel(페이스텔) 구조로 이루어져 있으며, 128비트 키를 입력으로 사용하여 총 16라운드를 거쳐 128비트 암호문 블록을 출력한다.


페이스텔 구조도[ 페이스텔 알고리즘의 구조도 ]



페이스텔 구조를 갖는 블록 암호 알고리즘은 F함수의 특성에 따라 구분될 수 있다. SEED의 F함수는 수정된 64비트 페이스텔 구조로 구성된다. F함수는 각 32비트 블록 2개 (C, D)를 입력으로 받아서 32비트 블록 (C', D')를 출력한다. 즉, 암호화 과정에서 64비트 블록과 64비트 라운드 키를 F함수의 입력으로 처리하여 64비트 암호블록을 출력한다.



F함수 이외에도 SEED 알고리즘에는 G함수, S-box등으로 구성되어 있다. 

이들에 대해 더 자세히 알고 싶다면 KISA에서 제공하는 다음 문서를 참조 ㄱ

(https://seed.kisa.or.kr/html/egovframework/iwt/ds/ko/ref/[1]_SEED_Algorithm_Specification_korean_M.pdf)