SEED 암호화란?
SEED는 1999년 2월 한국정보보호진흥원의 기술진이 개발한 128비트 및 256비트 대칭 키 블록 암호 알고리즘으로, 미국에서 수출되는 웹 브라우저 보안 수준이 40비트로 제한됨에 따라 128비트 보안을 위해 별도로 개발된 알고리즘입니다.
대한민국의 인터넷 뱅킹 및 쇼핑 환경에서 자주 쓰이고 있습니다.
128비트의 평문을 암호화하며, 키 크기는 128비트이다. 총 16라운드에 걸쳐 암호화를 진행하며, Addition, XOR, bit-rotation등의 연산식을 사용하여 암호화를 수행합니다.
SEED 암호화가 나오게 된 배경
SEED 암호화는 대한민국 인터넷에 산재되어 있는 ActiveX의 주범입니다. 그러나 그 당시 상황도 생각해야 되는데, 미국이 자국 기술보호 등을 이유로 해외에 제공되는 웹 브라우저 보안 수준을 40비트로 제한시켰는데 이와 같은 암호기술로는 인터넷 뱅킹의 기술구현은 힘들기 때문입니다. 인터넷 뱅킹을 하기 위해서는 128비트급의 암호 알고리즘이 최소한의 필수 선택이었습니다.
이 무렵 나온 인터넷 익스플로러 4 버전을 예로 들면 128비트 암호화 버전은 미국에서 접속해야만 받을 수 있었고, 그 이외 지역은 40비트 암호화 버전만 다운로드 가능하도록 되어 있었습니다. 물론 다운로드만 접속 국가별로 제한했기에 우회 접속을 통한다면 128비트 암호화 버전 브라우저를 받을 수 있었지만 당시에는 VPN이나 프록시 서버가 일반화된 때가 아니었고, 무료 배포되는 웹 브라우저를 굳이 와레즈 찾아가면서 힘들여 받을 필요도 없었습니다.
결국 1990년대 후반의 기술로 40비트 암호화 버전 브라우저에서 암호화가 가능한 방법을 찾아야 했습니다. 40비트 암호화는 1997년의 컴퓨팅 환경에서도 겨우 3.5시간만에 깨지는 허술한 체계였고 당시의 표준이었던 DES의 56비트 암호화도 슬슬 위험해지던 시기였습니다. 덩달아 이게 등장하던 1990년대 후반에는 이미 PC통신으로 이루어지고 있던 홈뱅킹 서비스에서 해킹 사고가 터진 일이 여러 차례 있어서 온라인 금융의 보안에 대한 관심도 높던 시기였습니다. 당시 PC통신으로 이뤄지던 홈뱅킹은 사용자와 서버 간의 암호화 전송 이런 것이 전혀 없었기 때문에 3-DES의 112비트라도 되어야 그나마 안정성을 보장할 수 있었습니다. 이의 암호방식을 앞에서 설명드렸던 Triple-DES입니다.
이러한 문제를 타개하기 위해서 KISA에서는 자체적으로 128비트 키를 가지는 새로운 알고리즘의 개발에 착수게 된었습니다. 당시에는 AES도 없었고 미국의 암호화 수출제한 정책이 해금되기 전이라 SEED는 기술적으로 충분한 가치가 있었습니다. 128비트급인 SEED가 개발되어 배포되고 이를 통해서 대한민국 인터넷 뱅킹이 시작되긴 했는데, 문제가 있었습니다. 그것은 바로 웹 브라우저에 당연히 지원도 안 되었고 주요 TLS/SSL 라이브러리에도 없었던 것입니다. 그래서 SEED를 쓰기 위한 관련 라이브러리와 프로그램 배포를 위해서 ActiveX란 놈을 어거지로 이용하였으며, 이게 대한민국의 ActiveX 역사의 시작이 되었다.
물론 지금은 모질라 파이어폭스(버전 27부터 기본적으로 비활성화되어 있습니다.), Internet Explorer 등에 SEED 라이브러리가 깔려있고 OpenSSL에서도 SEED 128비트를 지원하기 때문에 ActiveX를 안 써도 되지만... 역시 타성의 바퀴는 잘도 굴러만 갔습니다. 초반에는 단순히 암호화 용도였지만 있는 것을 활용하다 보니 보안프로그램 전체가 ActiveX를 통해서 배포되는 상황. 어쨌든 128비트로 개발된 SEED는 시간이 지나가면서 버틸 수가 없게 되었습니다. 2015년 현재 128비트 키 암호화는 위험한 것으로 간주되었습니다. 최소 192비트 키를 사용할 것을 권고하고 있는 상황. 그래서 256비트짜리가 만들어지게 되었으나, 국제 표준은 아닙니다.
현재 128비트짜리는 국제 표준에 등재되어 있습니다. 2003년 KISA에선 SEED보다 더 나은 ARIA란 암호 알고리즘을 개발했고, 2004년부터 지금까지 쭈욱 공식적인 국가 표준 암호 알고리즘으로 사용되고 있습니다.
'cryptology' 카테고리의 다른 글
RSA 란? (0) | 2022.09.03 |
---|---|
공개키 암호화란? (2) | 2022.09.01 |
Twofish 암호화란? (0) | 2022.08.17 |
ARIA 암호란?? ARIA 에 대해 알아보자 (0) | 2022.08.16 |
AES 란? AES 암호란? (0) | 2022.08.12 |
댓글