SEA는 파일 암호화와 실시간 보안통신(스트리밍)을 지원하는 매우 단순한 보안 알고리즘입니다. 2002년 경 고안 되었지만, 마땅한 기회가 없어 개인적인 프로젝트에서만 간간히 사용했던 방법입니다. 너무 간단해서 보안 알고리즘이라기보다는 보안기법 정도로 봐도 무색합니다만, 성능은 끝내줍니다. 본문에서 우선 간단한 특징을 소개드리고, 2007년도에 TinyOS + nesC 기반 센서네트워크 모트(USN Sensor Network Mote)간의 보안통신을 위해 사용했던 예제를 소개 드릴까 합니다.
(sixgen@gmail.com)
SEA(Simple Encryption Algorithm)의 특징
• 키 길이 및 보안 강도의 유연한 조정성
:가변 키길이 및 가변 메시지 폭을 지원하여 키길이를 가변적으로 조절할 수 있으므로 암호화 강도 및 계산비용을 필요에따라 조정할 수 있다.
• 암호화 및 복호화 연산이 동일
• 하나의 메인키로부터 파생된 서브키를 이용하여 유사 OTP를 생성하여 암호화에 이용
(암호방식은 OTP와 동일하다.)
• 알고리즘 선택형( 특정 알고리즘에 의존하지 않음)
:유사 OTP생성을 위해 SHA1-160 같은 Secure Hash Algorithm이나 Cipher Algorithm을 선별적으로 사용할 수 있다.
• 다양한 확장성
:기본 원리가 매우 단순하고 파일 암호화 및 스트림 통신 등의 모든 방식으로의 응용 및 확장 개발이 용이하다.
핵심 포인트:
- 가장 완벽한, 유일한 보안 알고리즘은 OTP(One Time Password; 일회용 패스워드) 이다.
- 랜덤 정보로 구성된 충분한 길이의 OTP를 키로 사용하여 암호화(DATA와 XOR 연산) 한다면 해독이 불가능하다. (수학적으로 계산 자체가 불가능)
- 하지만, OTP는 암호화될 DATA와 동일한 크기의 키가 필요하므로 실용성이 없다.
- SEA는 시중의 여러가지 Secure Hash Algorith 이나 Encryption Algorith들의 조합으로 pseudo OTP(유사 일회용패스워드) 생성기를 만들어 Pesudo OTP를 생성해낸다.
- 유사 OTP는 공격 가능성이 있다. 하지만 실용적이다.
- 유사 OTP도 충분한 키길이의 무작위 seed값을 사용하면 보안 강도가 크다.
- SEA는 유사 OTP생성기를 정의하고 조율하여 용도에 따라 보안성과 실용성 사이의 절충점을 설정하여 이용하게된다.
실제 구현 예제는 첨부파일을 참고하세요.
응용예제는 별도의 글로 작성할 예정입니다.
첨부파일: SecureRemoBot.ppt ( 센서노드의 무선 보안통신 응용 예)
'보안과 알고리즘(Security & Algorithm)' 카테고리의 다른 글
[요일 맞추는 알고리즘] 0000년 00월 00일은 무슨 요일인가?란 질문에 대응하는 우리의 자세 (0) | 2010.07.22 |
---|