SEA는 파일 암호화와 실시간 보안통신(스트리밍)을 지원하는 매우 단순한 보안 알고리즘입니다. 2002년 경 고안 되었지만, 마땅한 기회가 없어 개인적인 프로젝트에서만 간간히 사용했던 방법입니다. 너무 간단해서 보안 알고리즘이라기보다는 보안기법 정도로 봐도 무색합니다만, 성능은 끝내줍니다.  본문에서 우선 간단한 특징을 소개드리고, 2007년도에 TinyOS + nesC 기반 센서네트워크 모트(USN Sensor Network Mote)간의 보안통신을 위해 사용했던 예제를 소개 드릴까 합니다.

(sixge@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 ( 센서노드의 무선 보안통신 응용 예) 
저작자 표시 비영리 변경 금지
신고
Posted by 로보밥 로보밥

댓글을 달아 주세요