IITA-0436.hwp

Similar documents
본 강의에 들어가기 전

<333620BCDBC1A6C8A32DBDBAB8B6C6AE20C4ABB5E5BFEB20B3BBC0E5C7FC20C5B020BDBAC4C9C1ECB7AF20BAEDB7CF20BCB3B0E82E687770>

05 암호개론 (2)

0. 들어가기 전

Microsoft PowerPoint - chap06.ppt

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

PowerPoint Template

IP 심화 라우팅프로토콜적용시 라우팅테이블에서 이니셜이있는네트워크를설정하는것 : onnected 직접연결된네트워크를의미한다. 그러므로라우팅은 나는이런네트워크와연결되어있다. 를직접연결된라우터들에게알려주는것 1>en 1#conf t 1(config)#router rip 1

chap06.hwp

PowerPoint Template

Microsoft PowerPoint - note03 [호환 모드]

Windows 8에서 BioStar 1 설치하기

Sequences with Low Correlation

PowerPoint Template

UDP Flooding Attack 공격과 방어

1장 암호의 세계

Cloud Friendly System Architecture

1장 암호의 세계

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>


OCW_C언어 기초

PCServerMgmt7

Microsoft PowerPoint - 6.pptx

슬라이드 1

발신자 목적지 발신자 목적지 발신자 목적지 공격자 발신자 목적지 발신자 목적지 공격자 공격자

완벽한개념정립 _ 행렬의참, 거짓 수학전문가 NAMU 선생 1. 행렬의참, 거짓개념정리 1. 교환법칙과관련한내용, 는항상성립하지만 는항상성립하지는않는다. < 참인명제 > (1),, (2) ( ) 인경우에는 가성립한다.,,, (3) 다음과같은관계식을만족하는두행렬 A,B에

V. 통신망 기술

Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University

untitled

Vector Differential: 벡터 미분 Yonghee Lee October 17, 벡터미분의 표기 스칼라미분 벡터미분(Vector diffrential) 또는 행렬미분(Matrix differential)은 벡터와 행렬의 미분식에 대 한 표

이 장에서 사용되는 MATLAB 명령어들은 비교적 복잡하므로 MATLAB 창에서 명령어를 직접 입력하지 않고 확장자가 m 인 text 파일을 작성하여 실행을 한다

실험 5

<353220B0ADBFB5C1F82D DC0BB20C0A7C7D12E687770>

hwp

½½¶óÀ̵å Á¦¸ñ ¾øÀ½

RVC Robot Vaccum Cleaner


System Recovery 사용자 매뉴얼

Microsoft Word - PLC제어응용-2차시.doc

PowerPoint 프레젠테이션

네트워크 안정성을 지켜줄 최고의 기술과 성능 TrusGuard는 국내 최초의 통합보안솔루션으로서 지난 5년간 약 4천여 고객 사이트에 구축 운영되면서 기술의 안정성과 성능면에서 철저한 시장 검증을 거쳤습니다. 또한 TrusGuard는 단독 기능 또는 복합 기능 구동 시

Observational Determinism for Concurrent Program Security

2002년 2학기 자료구조

기초 암호화 기법

공개키 암호 방식

<4D F736F F F696E74202D FB5A5C0CCC5CDC5EBBDC5B0FA20B3D7C6AEBFF6C5A9205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

관용 암호 방식

동양미래대학교규정집제 8 편정보보안 ~2 제4조 ( 책임사항 ) 1. 정보보안담당관 : 대학의전반적인보안계획을수립관리하는자로대학에서 1명을선정하여, 암호화기술및프로그램등암호와관련된모든사항들에대해서최종승인과총괄적인관리를담당한다. 그리고기술의발달에따라암호화기술및

Microsoft Word - src.doc

ICT EXPERT INTERVIEW ITS/ ICT? 차량과 인프라 간 통신(V2I) Nomadic 단말 통신(V2P) 차량 간 통신(V2V) IVN IVN [ 1] ITS/ ICT TTA Journal Vol.160 l 9

C# Programming Guide - Types

PowerPoint 프레젠테이션

로거 자료실

슬라이드 1

1. 정보보호 개요

열거형 교차형 전개형 상승형 외주형 회전형 도해패턴 계층형 구분형 확산형 합류형 대비형 상관형 (C) 2010, BENESO All Rights Reserved 2

<3130C0E5>

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

thesis

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

<343120C0CCBCB1B1D92D E20C8AFB0E6BFA120C0FBC7D5C7D12E687770>

Microsoft PowerPoint - 알고리즘_5주차_1차시.pptx

*2008년1월호진짜

1217 WebTrafMon II

04 Çмú_±â¼ú±â»ç

< FBBE7B0EDB3EBC6AE5FB5F0C6FAC6AEC6D0BDBABFF6B5E5C3EBBEE0C1A128BCF6C1A4292E687770>

지능정보연구제 16 권제 1 호 2010 년 3 월 (pp.71~92),.,.,., Support Vector Machines,,., KOSPI200.,. * 지능정보연구제 16 권제 1 호 2010 년 3 월

LIDAR와 영상 Data Fusion에 의한 건물 자동추출

Cryptography v3

금오공대 컴퓨터공학전공 강의자료

1. 제품 개요 AhnLab Policy Center 4.6 for Windows(이하 TOE)는 관리대상 클라이언트 시스템에 설치된 안랩의 안티바이러스 제품인 V3 제품군에 대해 보안정책 설정 및 모니터링 등의 기능을 제공하여 관리대상 클라이언트 시스템에 설치된 V3

Microsoft Word - release note-VRRP_Korean.doc

Chapter ...

PowerPoint 프레젠테이션

농림축산식품부장관귀하 본보고서를 미생물을활용한친환경작물보호제및비료의제형화와현장적용매뉴 얼개발 ( 개발기간 : ~ ) 과제의최종보고서로제출합니다 주관연구기관명 : 고려바이오주식회사 ( 대표자 ) 김영권 (

Microsoft PowerPoint - 30.ppt [호환 모드]

Microsoft PowerPoint - chap01-C언어개요.pptx

PowerPoint Template

PowerPoint Presentation

서현수

5th-KOR-SANGFOR NGAF(CC)

쉽게배우는알고리즘 6장. 해시테이블 테이블 Hash Table

1 경영학을 위한 수학 Final Exam 2015/12/12(토) 13:00-15:00 풀이과정을 모두 명시하시오. 정리를 사용할 경우 명시하시오. 1. (각 6점) 다음 적분을 구하시오 Z 1 4 Z 1 (x + 1) dx (a) 1 (x 1)4 dx 1 Solut

Microsoft PowerPoint - chap06-1Array.ppt

Sena Device Server Serial/IP TM Version

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

<3235B0AD20BCF6BFADC0C720B1D8C7D120C2FC20B0C5C1FE20322E687770>

슬라이드 1

저작자표시 - 비영리 - 동일조건변경허락 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 이차적저작물을작성할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비

슬라이드 1

메일서버등록제(SPF) 인증기능적용안내서 (Exchange Windows 2000) OS Mail Server SPF 적용모듈 작성기준 Windows Server 2000 Exchange Server 2003 GFI MailEssentials 14 for

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation

[ 네트워크 1] 3 주차 1 차시. IPv4 주소클래스 3 주차 1 차시 IPv4 주소클래스 학습목표 1. IP 헤더필드의구성을파악하고요약하여설명할수있다. 2. Subnet ID 및 Subnet Mask 를설명할수있고, 각클래스의사용가능한호스트수와사설 IP 주소및네트

chap 5: Trees

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

FGB-P 학번수학과권혁준 2008 년 5 월 19 일 Lemma 1 p 를 C([0, 1]) 에속하는음수가되지않는함수라하자. 이때 y C 2 (0, 1) C([0, 1]) 가미분방정식 y (t) + p(t)y(t) = 0, t (0, 1), y(0)

U.Tu System Application DW Service AGENDA 1. 개요 4. 솔루션 모음 1.1. 제안의 배경 및 목적 4.1. 고객정의 DW구축에 필요한 메타정보 생성 1.2. 제품 개요 4.2. 사전 변경 관리 1.3. 제품 특장점 4.3. 부품화형

< FC1A4BAB8B9FDC7D D325FC3D6C1BEBABB2E687770>

Transcription:

2001 년도대학기초사업최종연구결과보고서 정보보호및누출방지를위한혼합형암호화칩설계 Design of Hybrid Crypto-Chip for the Information Protection and Lossless 총연구기간 : 2001. 7. 1 ~ 2002. 6. 30 2002. 6. 30. 주관연구기관원광대학교 정보통신부정보통신연구진흥원 -1-

정보보호및누출방지를위한혼합형 암호화칩설계 2002. 6. 30. 주관연구기관원광대학교 정보통신부정보통신연구진흥원 -2-

제출문 정보통신부장관귀하 본보고서를 정보보호및누출방지를위한혼합형암호화칩설계 의최종연구개발결과보고서로제출합니다. 2002년 6월 30일 주관연구기관 : 원광대학교 과제책임자 : 김환용 참여연구원 : 이선근 김영인 -3-

요약문 1. 제목 정보보호및누출방지를위한혼합형암호화칩설계 2. 연구의목적및중요성 가. 연구의목적현대정보화사회는컴퓨터통신망및유/ 무선통신망을통한다양한통신서비스를요구하고있다. 이러한정보통신의발달에따라전송메시지에대한정보누출, 바이러스침입그리고고의적인정보손상등의공격이매우심화되고있으며, 이러한정보공격에대한방어기술및인식은매우취약한상태이다. 그러므로본연구에서는정보 DB들에대한유출및변조를막기위하여하드웨어적인정보보호용암호화칩을설계하였다. 이러한암호화칩의설계는네트워크환경에서범용적으로누구나사용가능하며외국의법적규제나제약을받지않으면서정보누출및데이터손상을받지않도록하는데그목적이있다. 나. 연구의중요성현대사회는네트워크환경발전으로개인/ 단체들에대한전산망보급이확대되었다. 이와더불어정보남용, 유출등이라는정보사회의역기능들이날이갈수록심화되고있다. 그러므로중요한데이터를효율적이고안전하게보호할수있는정보보호서비스에대한요구가나날이증대되고있으며개인및기업의전문기술이나영업현황또는사적인데이터를정확하고안전하게관리하는기술이매우필요하게되었다. 세계는보다안전한정보보호를위해특정분야에만한정되어사용하던암호기술을기업정보나주요공공정보, 상거래정보, 그리고개인정보보호를위해사용하고있으며국내기업이나산업체에서도이에대한요구가증대되고있는실정이다. -4-

네트워크환경에서전산장비는해킹, 크래킹및바이러스로부터결코안전할수없다. 따라서안전한영역에서암호알고리즘수행과키관리가이루어져야한다. 이러한목적을달성하기위해서는물리적으로안전한암호화시스템을구축하여야한다. 그러므로본연구의중요성은암호화시스템구축과동시에미상신호검출기능을수행함으로써바이러스, 크래킹그리고해킹관련신호의출입을미연에방지하는것이다. 3. 연구의내용및범위 가. 범용적인암호화칩설계파일, 영상그리고음성과같은정보데이터들에대하여사용자의의도에따라선택적으로암호화를수행할수있도록설계 나. 암호키길이에무관한암호시스템사용세계각국은자국에서개발된암호알고리즘을이용하여암호시스템을개발하여사용하고있다. 또한범세계적인암호시스템인경우동일한암호알고리즘을사용하는경우가발생되므로키의길이를제한하여사용하도록한다. 그러므로본연구에서는이러한키의길이에무관하도록설계함으로써국내외환경에대한적용도를높일수있도록하였다. 다. 스트림암호방식과블록암호방식의혼용키길이를짧게하면서비도를유지하기위하여( 저비트, 고복잡도) 키스케쥴러를별도로설계하였으며스트림방식과블록방식을혼합하여사용함으로써데이터처리시간및사용자수증가에대하여대비하였다. 라. 미상신호검출기능미상신호에대하여바이러스(virus), 의사바이러스(pseudovirus), 비인가신호등에대한 판단기준을설정함으로써사용자가필요한기능만을수행할수있도록하였다. -5-

4. 연구결과 o 암호화칩( 스트림방식 + 블록방식) 설계 o 미상신호검출방법추가 o 비인가신호에대한유/ 출입차폐기능추가 5. 활용에대한건의 o 통신시스템의보안요구시스템 : 보안기능의성공을위해서는송/ 수신시스템에보안기능이있어야함. o 전자화폐, 전자상거래와같은전자금융시스템 : 전자금융시스템의경우독자적으로개발하여사용하기때문에전체금융시스템에대한호환성을이루어야함. ㅇ국산정보통신시스템의방화벽구축 : 개인및기업체에서사용되는방화벽의경우, 인증된데이터라도내부공격자때문에서버에서인증받지못하면유/ 출입이자유롭지못하다. 그러므로강화된방화벽을구성해야함. 6. 기대효과 o 정보보호에대한당위성제공 o 해킹모방범죄감소 o 암호화기구현기술배양 o 국내보안기술의축적 o 국내보안시스템평가기술배양ㅇ암호화알고리즘구현에대한기술축적 o 바이러스차폐를위한암호시스템의하드웨어화 o 대칭형, 비대칭형암호시스템구현에다한관심도증가 -6-

SUMMARY The various communication service via computer and wire/wireless communication network is required in today information technology society. The damages such as information leakage, virus and broken information by intentional attacks are being on the increase together with development of information communication. But recognition and protection technology against information attacking causing severe damage is highly fragile. In this study, encryption chip based on hardware technology for protecting leakage and counterfeit in information database is designed and proposed. The purpose these design of encryption chip is keep away from information leakage and data broking in using communication network by anybody free from the foreign legal restrictions and restrains. For the purpose of above mentions, proposed hybrid cryptosystem by means of block cipher algorithm and stream cipher algorithm is used. The proposed hybrid cryptosystem is divided in the key generation block which employs authentication work performs matrix computation that utilizes MSB and LSB for removing long period of LFSR and the data cipher block which uses Feistel structure and SPN does not employ iteration function. In addition, proposed compound cipher system can detect an unidentified signal more effectively by using integrated design unifies anti-virus and IDS accomplishes comparison and analysis in successively. -7-

CONTENTS Chapter 1. Symmetric Key Cryptoalgorithm Paragraph 1 Block Cryptoalgorithm Paragraph 2 Stream Cryptoalgorithm Chapter 2. Virus and Anti-virus Paragraph 1 Virus Paragraph 2 Anti-virus Chapter 3. Firewall and Intrusion Detection System Paragraph 1 Firewall Paragraph 2 Intrusion detection system Chapter 4. Hybrid crypto-chip design Paragraph 1 Data encryption block Paragraph 2 Key scheduler Paragraph 3 Unknown signal detection and signature update Paragraph 4 Hybrid cryptosystem -8-

목 차 제 제 제 제 1 제 1 제 2 2 제 1 제 2 3 제 1 제 2 4 장비밀키암호알고리즘 절블록암호알고리즘절스트림암호알고리즘 장바이러스및안티바이러스 절바이러스절안티바이러스 장방화벽과침입탐지시스템 절방화벽절침입탐지시스템 장혼합형암호화칩설계 제 1 절데이터암호블록제 2 절키스케줄러제 3 절미상신호검출및 signature 업데이트제 4 절혼합형암호시스템 -9-

제 1 장비밀키암호알고리즘 급속한인터넷의발달과정보화사회의전환으로정보공유및교환은현대문명에커다란영향을주고있다. 이러한정보네트워크발전의영향은장점도있지만그만큼의단점도존재한다. 이러한단점은네트워크의발전과더불어증대되고있으며특히사회에끼치는영향은이제위험수위를넘었다. 이러한악영향은개인정보및사생활노출그리고금융업등에대한정보개방으로인한물질적, 정신적인피해가증대되고있는것이가장커다란문제이다. 그러므로이러한단점으로부터발생되는피해를줄이고자정보보안에관한분야는네트워크발달과더불어병행되어발전되고있다. 정보보호분야는정보보호알고리즘개발, 정보보호시스템개발등과같이전문성을띄며분야별로발전되는것이현추세이다. 그러므로여러종류의플랫폼에대한확장성을고려하여정보보호시스템들은여러가지모양으로변화한다. 그림 1-1. 암호알고리즘의분류 그림 1-1 과같이암호알고리즘은대칭형암호방식과비대칭형암호방식으로분류된다. 비대칭형암호방식은수학적인해를얻기가어려운문제(mathematical concept) 를이용하여암호화를수행하지만대칭형암호방식은알고리즘자체의구조적개념 (structural concept) 을이용하여암호화를수행하기때문에암호화수행속도가비대칭형암호방식에비하여매우빠른장점을가진다. 그러나이러한구조적암호화방법은사용자수가한정되어있기때문에네트워크환경에서정보보호를위한메카니즘에는부적합하다. 그러므로여러가지장점을가짐에도불구하고대칭형암호방식이보다널리사용이되지않는이유는바로확장성이적다는것이다. -10-

이러한대칭형암호방식은데이터처리방식에따라서블록암호방식, 스트림암호방식으로분류된다. 블록암호방식은 Feistel 구조와 SPN(substitution and permutation network) 구조를사용하여 64 비트또는 128 비트등과같이블록단위로암호화를수행하며스트림암호방식은비트단위로데이터를처리하게된다. 제 1 절블록암호알고리즘 DES는 1977년미연방표준으로채택된후 25년이상을세계표준으로사용되어온블록 암호알고리즘이다. 그러나그동안기술의발달과암호학적분석기법의발전으로 DES는중 요한응용에서더이상사용될수없을정도로안전성을상실하였다. DES를대체할차세대 블록암호를위해 NIST는다시 AES(advanced encryption standard) 프로젝트를진행시켜 현재 세계적으로 공모된 15 개의 후보 알고리즘(CAST256, Cryption, DFC, E2, Mars, RC6. Rijndael, SAFER+, Serpent, Twofish 등) 을대상으로 AES 선정작업을진행하여 Rijndael 을차기블록암호알고리즘으로선정하였다. 기존의블록암호는대부분 64 비트블록크기와 56 비트의키를지원하고있으나 64비트 블록길이는블록암호를이용한 MAC(message authentication code) 의응용등에서충분한 안전도를제공하지못하며 64 비트정도의키길이로는키전수검사에대한충분한저항성 을제공하지못한다는것이일반화되어있다. 그래서 AES의기본요구조건의하나는 128 비트블록길이에 128, 192, 256 비트길이의키를지원하도록하는것이다. 그림 1-2에서와같이블록암호는기본적으로비선형변환과선형변환의적절한조합에의 해설계되며전체구조는크게 DES 와같이데이터블록의좌/ 우반부에교대로비선형변환 을적용시키는 Feistel 구조와모든데이터에동시에병렬로비선형변환을적용시키는 SPN 구조로나눌수있다. DES, Blowfish, CAST128, LOK191, MISTY, RC5, CAST256, DFE, E2, MArs, RC6, Twofish등이 Feistel 구조를바탕으로설계된것들이며 SAFER, IDEA, Square, Crypto, Rijndael, SAFER+, Serpent 등이 SPN 구조를바탕으로설계된 알고리즘들이다. Feistel 구조는병렬처리기능을강화하는현재의프로세서설계방향이나 하드웨어구현시효율성면에서보다많은이점을가진다. -11-

블록암호에서가장중요한비선형변환에는테이블을이용하는치환 (substitution : S-box), 곱셈, 가변데이터에의한회전(data-dependent rotation) 및이들과서로양립하지않는연 산예를 ( 들어 +/-와 / ) 들의결합등이이용된다. 각연산에따라안전도, 프로세서또는하드웨어에따른효율성에있어서장단점이있으나일반적으로작은단위의 S-box를적절히이용하는것이대부분의플랫폼에서보다효율적이다. 그림 1-2. SPN과 Feistel 구조 블록암호에대한가장단순한공격방법은하나의평문과암호문쌍에대해모든가능한키값으로주어진평문을암호화하여주어진암호문이나오는지를검사하는전수키검사 (exhaustive key search) 이다. 이러한전수검사방범은기술의발전에다른키길이를결정하는기준이되며현재전문가들이권고하는키길이는대략 75에서 90 비트정도이지만최근에개발된대부분의암호알고리즘들은최소 128 비트의키길이를지원하고있다. 1. DES 암호알고리즘 DES 는재배열(permutation), 치환(substiitution), 키스케쥴(key schedule) 로구성되어있 고, 암호화과정은 64 비트평문블록을 32 비트씩 2개의블록으로분할하고확장재배열 (expansion) 을거친후 56 비트키를사용하여암호화한다. 내부적으로 16 라운드(round) 의암호화과정을거치고, 복호화시에도암호화에사용된동일한키를역순으로사용하여 16 라운드의복호화과정을수행한다. -12-

그림 1-3은 DES 의전체적구성을나타내고있다. 그림 1-3. DES 알고리즘의전체적구성 평문 64 비트는초기재배열(initial permutation) 을거친다음 32 비트씩 L(left) 과 R(right) 의두개의서브블록으로분리된다. 이후 S-box를이용한치환과전치가포함된암호함수 F에서 16 회반복을거쳐마지막으로최종재배열을수행한다. 이때 i 번째라운드결과를 X i =(L i, R i ) 라고할경우, L과 R 은식(1-1) 과같은형태를가진다. 식 (1-1) 에대한표현은그림 1-4와같은 Feistel 구조에서나타나는수식으로써좌우의 데이터가 Feistel 구조의 F 함수에서키데이터와비선형결합을수행함으로써나타나게된 다. 키스케쥴은 64 비트키중 8 비트의패리티비트(parity bit) 를제외한 56 비트를선택재배 열(PC-1) 하고, 28 비트씩좌/ 우두개로나누어키스케쥴에의해각각 1 비트또는 2 비트 씩미리정해진포맷에의하여 shift left 동작을수행하게된다. Shifting 동작이후 56 비트 키는미리정해진표에의하여두번째선택재배열(PC-2) 연산을수행한후 48 비트로변 환되고변환된 48 비트는 Feistel 구조의 F 함수에대하여각라운드의서브키로사용된다. -13-

치환과재배열과정으로구성된암호함수 F 내부의비선형함수인 S-box는암호화강도를높이는기능으로설계되어있다. DES는 8개의 S-box로구성되어있으며각 S-box는 6 비트의입력을받아 4 비트의비선형출력을가진다. 그림 1-4. 단일라운드에대한 Feistel 구조 그림 1-5. 암호함수 F에대한 S-box 구조 그림 1-5는 Feistel 구조의 F함수안에존재하는비선형함수 S-box를중심으로암호함수 구조를나타낸것이다. 입력데이터는 64 비트를양분하여 32 비트씩 L, R로분류하여 S-box의입력으로사용하게되는데 S-box는 6 비트씩 8개의 box가존재하므로 48 비트 의데이터가필요하게된다. -14-

그러므로 32 비트씩의데이터를미리설정된확장표에의하여 48 비트로확장한다. 그림 1-5의 E가 32 비트를 48 비트로확장하는기능을수행하게된다. 키스케쥴에의하여 48 비트로설정된키데이터는 E를통하여 48비트로확장된정보데이터와 XOR 연산을통하여 S-box 의입력으로사용된다. 입력은 6 비트씩 8개의 S-box이지만출력은 4 비트씩 8개의 32 비트출력을가진다. 생성된 32 비트는그림 1-5의 P블록인 permutation 블록을통과함으로써역공격을당할근거를줄이게된다. 그러나 DES에서사용되는 S-box는트랩도어가있는것이아닌가하는의구심이제기되고있는부분이다. S-box 의구성은암호화의비도(security level) 를좌우하는매우중요한요소로서암호학적으로 DES형암호알고리즘을설계하기위해서는반드시연구해야할중요한블록이다. 그림 1-6은 DES 암호알고리즘의단일반복과정으로써암호함수 F와키스케쥴을중심으로나타내었다. 평문 64 비트중오른쪽 32 비트 (R -1) i 가확장을통하여 48비트로변환되고 56 비트의키가 28 비트씩분리된후좌측순환이동을한다. 좌측순환이동후 56 비트로환원되고선택재배열된 48 비트가확장된평문48비트와 XOR 연산을수행한후치환과재배열과정을거치고다시평문(L -1) i 32 비트와 XOR 연산후암호문이생성된다. DES는그림 1-6과같은과정이 16 회반복된다. 이때 16번째마지막단계의출력은예비출력을생성하기위해좌/ 우블록을교환하여배치한다. 그림 1-6. 키스케줄과 Feistel 구조의결합 -15-

가. S-box와재배열관계 DES에서단일라운드에대한반복과정은그림 1-6에서와같이암호함수강도는확장과재배열, 치환에결정적인영향을받으며이러한확장, 재배열, 치환은미리설정된표에의하여결정되며이러한설정된표는표 1-1, 표 1-2, 표 1-3 과같다. 표 1-1. DES의확장표 1-2. DES의재배열 그림 1-5와표 1-1, 표 1-2을이용하여암호함수 F를설계하는데이때일반적으로 S-box 와재배열관계는특별한관계가되도록설계된다. 표 1-3. DES의재배열및확장과 S-box 입력관계 표 1-3 을보면다음과같은특성을가진다. ⅰ) 이전라운드의 S-box 출력은다음라운드에서동일한 S-box에입력되지않으며모두 다른 S-box 의출력들이입력된다. -16-

ⅱ ) 이전라운드의 S-box 중 S -1 i 의출력은다음라운드 S-box의 b 5b 6 중어느한비트 에입력되고, 이전라운드의 S -2 i 의출력이다음라운드 S-box의 b 1 b 2 중어느한비트에 입력된다. ⅲ ) 이전라운드 S-box중 S +1 i 의출력은다음라운드 S-box의 b 3b 4 중어느한비트에 입력된다. 위와같은재배열레이블의특성은라운드가증가될수록평문에대한암호화를 더욱가속화시켜주며비도를증가시켜준다. 이상과같은 S-box 특성은비선형성을만족하는데주요한목적이있다. 비선형성을만족하 기위하여 6 비트입력에대한 4 비트출력관계는그림1-7과같이자리위치에대한변환으 로써구현될수있다. 그림 1-7. 비선형 S-box 결합 나. 키스케쥴러(key Scheduler) DES에서는 48 비트의서로다른서브키가각라운드별로 16 회사용된다. 이러한서브키는그림 1-8 과같이키스케쥴러에의해서생성된다. 키스케쥴은최초사용자가제공하는 64 비트의키에서 8, 16, 24, 32, 40, 48, 56, 64번째비트를제거하고남은 56 비트의키가암호화에사용되고 8 비트는패리티비트로활용된다. 우선 56 비트키를각비트의위치를바꾸어재배열하고재배열된 56 비트키를 28 비트씩양분(C, D) 한다음각라운드별로정해진룰(rule) 에의하여 1 또는 2 비트씩왼쪽순환이동(circular left shifting) 시키고, 각각의 48 비트에서 24 비트를선택하여재배열한다. 이와같이결정된 48 비트가암호함수의서브키(subkey) 로사용된다. 표 1-4는 DES 의키순환이동비트수를나타낸다. 키스케쥴은표 1-4에서보듯이좌측순환이동한총횟수가 28이되도록설계되어있으므로단순히역으로우측순환이동만하게되면각라운드의서브키 K 16, K 15,..., K1을차례로구할수있게되어 H/W 구현시암호화및복호화수행시Key 적용이매우편리하게된다. -17-

그림 1-8. DES의키스케쥴러 표 1-4. 키순환이동비트 2. 블록암호해석법(Block cryptanalysis) 가. 파라미터 1) SAC(Strict Avalanche Criterion) S-box에 대한 안전성 평가는 Webster와 Tavares가 정의한 Avalanche effect와 Completeness 개념을결합하여정의한 SAC(Strict Avalanche Criterion) 분석방법이있 다. -18-

임의의암호함수가 Avalanche effect를만족한다는것은입력의어느한비트가 complement 될때마다각출력비트의절반정도가변경되어야한다는의미이다. 2) 입출력비트상관관계 SAC 조건을만족한다고해도 S-box는입력비트와출력비트가상관관계를갖지않는상호독립적이어야한다. S-box의출력비트간의상관관계는입력의어느한비트가 complement되었을때출력의각비트들은상호간에어떤관계를갖고변화하는가에대한것이다. 상관계수(correlation coefficient) ρ ij (k) 는입력의어느한비트 k 가 complement 되었을때출력비트 i 와 j 의분산인 cov(i,j) 를 i 와 j 의표준편차의곱인 σ(i)* σ(j) 로나눈값으로나타낸다. 식 (1-2) 에서 cov(i,j) 는 i 와 j 의분산을, σ 2 (i) 는 i 의표준편차를, σ 2 (j) 는 j 의표준편차를, E[i] 와 E[j] 는 i 와 j 의기댓값을, E[ij] 는 i 와 j 의곱에대한기댓값을나다내는파라미터들이다. 일반적으로상관계수 ρ 값의범위는 -1에서 1 사이를가진다. ρ 값이음수일때는역상관 (negative correlation) 관계로써출력비트들중어느한비트는항상다른비트의 complement값이될확률값이며 ρ 값이양수일때는순상관(positive correlation) 관계로써두비트가확률적으로같을확률값이다. 그러므로확률값이 0에근접할수록출력비트간의상관관계는적어진다. S-box에서출력비트들간의상관관계가없어야랜덤하므로상관계수 ρ의값이 0에접근할수록비선형특성이우수한 S-box 가된다. 3) 키와암호문의상호의존도키와암호문의상호의존도는입력되는비밀키 64 비트중제거되는 8 비트를제외한 56 비 트가각라운드암호함수 F의입력 32 비트에미치는영향을누산하여백분율로구한파라 미터이다. 키와암호문사이의상호의존도는키스케줄의재배열과암호함수의확장(E) 및 재배열(P) 에영향을받는다. -19-

나. 차분암호해석법(Differential cryptanalysis : DC) 차문암호분석은비선형함수의입력쌍에대한차이(input difference) 와해당출력쌍에대 한차이(output difference) 값들의확률분포가균일하지않다는사실을이용하는선택적 평문공격(chosen plaintext attack) 이다. 가능한모든평문및키값들이존재하며그림 1-9 Feistel 구조의 r-라운드블록암호에 대해입력쌍의차가 P 일때 (r-2)-라운드에서출력쌍의차가 Q 가될확률은평균적으로 p가된다. 이러한입/ 출력차의쌍(P,Q ) 을 (r-2)-라운드 differential pair 라부른다. 이것은 P=P P * 를만족하는임의의평문쌍 (P,P * ) 를암호화했을때 (r-2)-라운드에서해당출력차 Q 가되는 (Q,Q * ) 를산출할확률이평균적으로 p가됨을의미한다. 차분공격방법은가능한높은확률로발생하는 differential pair를이용하여충분히많은암호문쌍을분석하여마지막라운드의라운드키 K r 을찾는것으로써수행절차는다음과같다. i ) 확률 p의 (r-2)-라운드 differential pair (P,Q ) 와입력차 P 를만족하는 m개의입력쌍에대한암호문쌍이존재할경우, 암호문쌍에대해마지막라운드함수의 DC 특성을고려하여확률 1 로설정하고 (r-2)-라운드의출력차가 Q 가되지않는것이존재하게되면이때값은무시한다. 이와같은필터링을수행한후라운드 F 함수의입출력차는암호문쌍의 차및 (r-2)-라운드의예상출력차 Q 로부터 A = CR, B = CL Q L 와 같이계산될수있고 F 함수의입력차 A 는 non-zero bit들의위치및 F 함수의구조에따라 B 의일부비트들에만영향을미칠수있으므로예측가능한 B 의비트위치에대해서는암호문의필터링이가능하다. ⅱ ) 마지막라운드의각가능한키값에대해단계 i ) 을통과한모든암호문쌍에대한 F 함수출력차를계산하여예상출력차 B 와같은값을주는암호문쌍의수를카운트한다. ⅲ ) 단계 ⅱ) 에서가장많이카운트된키값을마지막라운드키로결정한다. 이와같이차분공격의성공확률은차분확률 (differential probability) p, 단계 i) 에서 wrong pair들을걸러낼확률 β 및단계 ⅱ) 에서각키값에대해임의의암호문쌍이 F 함수예상출력차 B 를발생할수있는평균수 α, 그리고마지막라운드에서카운트되는키값의가능한수등에의존한다. -20-

만약마지막라운드에서 k 비트의키가 F 함수예상출력차 B 에영향을미친다면단계서필터링된임의의암호문쌍이 B 를발생시킬평균확률은 βㆍα/2 k 가된다. i) 에 그림 1-9. Feistel 구조블록암호에대한 DC 특성 그러므로주어진 m개의입력쌍중에서 (r-2)-라운드에서출력차 Q' 를발생하게하는 right pair는평균 mp개가생기는결과가되며이와는반대로단계 ⅲ) 에서각키에대해카운트되는암호문쌍(wrong/right pairs) 은평균 m β ㆍ α/2 k 개가생기므로신호대잡음비 (SNR) 는식(1-3) 과같다. 식 (1-3) 의 S/N 은차분공격에필요한암호문쌍의대략적인수를예측하는데사용된다. -21-

차분공격이높은확률로성공하기위해서는이 S/N비가 1보다충분히커야하며이러한경우, 몇개의 right pair를발생할정도의암호문쌍이면마지막라운드키를거의유일하게식 별해낼수있다. 즉필요한암호문쌍의수는대략m p -1 정도이다. 그러나 S/N비가 1보다작은경우는훨씬더많은암호문쌍이필요할것이고일반적인경우에는공격이불가능할수도있다. 다. 선형암호해석법(Linear cryptanalysis : LC) 선형암호해석법은확률적으로근사(approximation) 시킨비선형함수의선형근사식을이용하여관련된키비트들을추출하는알려진평문공격방법(known plaintext attack) 이다. 비선형함수 Y=F(K,X) 의선형근사(linear approximation) 는일정확률 1/2 + p( p <1/2) 로성립하며식 (1-4) 로나다낼수있다. 여기서 X[i] 는 X의번째 i 비트, X[i 0,i 1,...,i a ] 는 X[i 0 ] X[i 1 ] X[i a ] 를의미한다. 일반적으로필요에따라서 X[i 0,i 1,...,i a ] 를비트위치 i 0,i 1,...,i a 에만 1을갖는비트선택벡터 (bit selected vector) 를 I 이용한이진벡타의내적 (product) I X의형태로도표현하기도한다. 이와같이벡터연산을이용하고 X, Y, K에대한비트선택벡터를각각 I 0, I 1, J이라할때식(1-4) 는식(1-5) 와같이변형하여표현할수있다. 기본적인선형암호해석법은확률값 1/2 로부터가능한큰바이어스확률 p 를갖는식 (1-4) 와같은선형근사식을유도하여관련키비트 K[i 0,i 1,...,i c ] 를추출하고자하는것이 다. 즉충분히많은수(m) 의입/ 출력쌍 (X,Y) 에대해식 (1-4) 의좌변이 0 이되는입/ 출력 쌍의수 T를계산한후이 T가 m/2보다크면 p>0인경우이므로 K[i 0,i 1,...,i c ]=0으로하 며, p<0인경우에는 K[i 0,i 1,...,i c ]=1로판정하는 maximum likelihood decision을이용하 는것이다. -22-

동시에다수의키비트를추출할수있는보다유용한선형암호해석은 r-라운드블록암호 의번째 i 라운드를라운드키 K 와 i 데이터 X i-1 를입력으로출력 X 를 i 산출하는라운드함수 F 로 i 구성된 Feistel 구조라고가정한다. 즉각라운드 에 i 대해식 (1-6) 과같이표현할수 있다. 또한그림 1-10과같은모델에서블록암호의라운드 2에서 r-1까지를연쇄적으로선형근 사화시켜확률 1/2+p( p <1/2) 로성립하도록식 (1-7) 과같은 (r-2)-라운드선형근사식 을얻는다. 여기서 X 1 은첫라운드키 K 0 를알면평문 X 0 로부터구할수있고 X r-1 은마지막라운드키 K r 을알면암호문X r 로부터계산가능하다. 그림 1-10. 선형암호해석에대한블록암호모델 그러므로식 (1-7) 에두라운드키 K 0, K r 을대입시킨 r-라운드선형근사식은식 (1-8) 과같이얻을수있다. -23-

여기서 F -1 r 는마지막라운드함수의역함수로암호문 X r 을마지막라운드키 K r 로한라운드에대하여복호화한것에해당한다. 식 (1-8) 은원하는키값 K 0, K r 에대해서는평균 1/2+p( p <1/2) 의확률로성립되지만원하지않거나잘못된 K 0, K r 에대해서는 1/2에더가까운확률을가질것이다. 선형암호분석은이런성질을이용하여관련키비트들을추출한다. 제 2 절스트림암호알고리즘 스트림암호시스템(stream cipher system) 은일반적으로두가지형태로분류된다. 첫째는키비트스트림(key bit stream) 이평문과독립적인것으로써동기스트림방식 (synchronized stream cipher) 이라하며둘째는키비트스트림이평문또는암호문에대 하여 종속적인 함수로 구성되어 있는 것으로써 자동 동기 스트림 암호방식 (self-synchronized stream cipher) 이라한다. 최근까지는스트림암호시스템은군사및외교용으로범용되어사용되고있었으나정보통신 망의발달과연계서비스(roaming service) 로인하여상업용으로도각광을받으며사용되고 있다. 선형궤환치환레지스터(linear feedback shift register : LFSR) 에의해만들어지는 부호수열인키비트스트림은암호문을만들기위해평문과 2- 모듈러합을수행하게된다. 스트림암호시스템에서 LFSR 의역할은암호키를생성하는부호기(encoder) 로사용되기도 하고 LFSR 의입력이평문인경우출력은직접암호문으로구성해주는암호(encipherment) 역할로도수행한다. 일반적으로 LFSR은쉽게구현될수있고또한비교적저렴한구현비용 으로인하여상용스트림암호시스템에널리사용된다. 스트림암호방식은비트단위로암호화를수행하며기본연산은배타적논리합과지연소자이 다. 그러므로 LFSR 은의사난수와동일하다. 의사난수(pseudo random number : PRN) 는 비밀키암호시스템의세션키(session key) 또는초기값(initialize vector: Ⅳ) 생성, 공개키 암호나디지털서명의공개키/ 비밀키및시스템변수의생성, SSL과같은보안통신프로토 콜에서사용되는 Random Challenge 등각종암호시스템전반에걸쳐사용되고있다. 의사 난수는컴퓨터프로그래밍으로계산되며결정적(deterministic) 인성질을갖는다. 대칭형암 호알고리즘이나단방향해쉬알고리즘이랜덤한값을생성한다고가정할때, 의사난수에대 한안전성은입력으로사용되는 seed 값에대한엔트로피(entropy) 와 seed 및 state 정보 이므로비인가자로부터안전한보관및유지가매우중요하다. 즉 LFSR의초기값및키의 안전한관리가필요하다. -24-

스트림암호시스템은 Gilbert Vernam이 1918년경에평문과키비트계열을배타적논리합 인 2-모듈러합을수행해서평문으로환원하는암호화및복호화하는기법을처음으로고 안함으로써알려지게되었다. 2 차대전직후부터컴퓨터, VLSI 기술, 수학적난해성등의발전으로인하여암호통신기술 이급속하게발전하게되었다. 특히스트림암호방식은전송로상의인위적이거나자연발생 적인잡음에대하여블록암호방식보다뛰어난성능을보임으로써발전속도가매우빨랐 다. 이상과같이스트림암호시스템에대한장단점을비교하여정리하면표1-5 와같다. 표 1-5. 블록암호시스템과스트림암호시스템비교 연산과정 (processing) 종속성 (dependence) 초기조건 (initial condition) 오류전파 (error propagation) 기능 (operation) o o o o o 블록암호시스템 스트림암호시스템 비고 고정길이데이터블록 o 키비트수열 블록간종속적암호화 o 순차적비트 2원연산 종속관계를갖는평문 o 스트림단위로암호화증속관계를갖는키 o 개별성을유지평문과키의복합함수 오류검출, 인증단순암호화 1. 동기스트림암호시스템 LFSR 의의사난수발생기에유입되는외부키(external key) 는 LFSR에의하여무한한길이를가지는키비트수열을출력하게된다. 이때생성된키수열이암호시스템에대한키부호기역할을담당하게될때의암호시스템을동기식스트림암호시스템 (synchronous stream cipher system : SSCS) 이라고한다. 그림 1-11에서동기스트림암호시스템은동일한키비트수열에대하여암호화되는평문과복호화되는암호문사이에서상호독립적임을알수있다. 일반적으로암호해독법에대하여강한암호로암호화를수행할수있도록되어있는암호시스템을무조건적암호시스템(unconditionally secure system) 이라한다. 이러한특성을이상적으로표현한시스템을 one time pad 라고정의하는데이러한 one time pad 는평문과무한주기키스트림(infinite period key stream) 을비트단위로 2-모듈러합을수행함으로써암호문을생성하는경우이다. -25-

그러나현실적으로무한주기의키스트림수열을생성하여이용한다는것은실제적으로불가능하다. 그림 1-11. 스트림암호시스템 그러므로 one time pad를직접생성하는것이아니고 one time pad에가까운특성을얻음으로써일반적인스트림암호를생성하게된다. 스트림암호시스템의완벽한암호화수행을위해서는키비트스트림즉수행키 (running key) 는어느누구도예측(prediction) 할수없어야한다. 비인가자에대한비예측성 (unpredictability) 을위해서는키비트스트림의주기가무한히길어야하며무한히는비현실적이므로매우길어야한다. 키스트림의주기가무한대를향하면출력되는키수열의주기는무한대가되어완전한 one time pad 의특성을가지게된다. 그러나이러한경우는실현불가능하기때문에해독하기에어려울정도의키수열의주기를가지도록한다. 그러면서키수열에대한예측을수행할수없도록하기위하여선형복잡도 (linear complexity : LC) 를증가시킨다. 그러므로키발생수열의비예측성을증가시키기위해서는선형복잡도를증가시키면된다. LC가커지면키수열의주기가길어지는효과를가지므로 LC가크다는것은주기가길다는것을의미하게된다. 또한 LFSR에의해출력되는키수열을비선형결합법으로비주기함수형태의키비트스트림으로변형할수도있다. 전송로를통하여전송되는암호문이제 3 자에의하여비인가스트림데이터의유입, 삭제또는변경등과같은일이발생하게되면동기실패의직접적인원인이된다. 이때수신측에서동기를복원하기위해서는가능한모든수단을동원하여송신측에서키스트림을발생한 LFSR의 Ⅳ를재조정하거나수신측에서평문으로복원하기전에오류정정(ECC) 을수행해야한다. 2. LFSR 의사난수발생기에의한키수열 LFSR 에의한의사난수발생기(PRNG) 는그림 1-12와같이 one-to-many 구조와 many-to-one 구조의두가지종류가기본이다. -26-

(a) one to many architecture (b) many to one architecture 그림 1-12. 일반적인 LFSR 발생기 그림 1-12에서와같이일반적인 LFSR 의사난수발생기는 g 로부터 i g m 까지의계수 (coefficient), 지연소자(delay tap) 그리고 2-모듈러합으로구성되어있으며발생기구현은스위치와DF/F, 그리고XOR 를사용하게된다. 그림 1-12와같은 LFSR 의사난수발생기에의하여생성되는키비트스트림이통계적으로무작위성과같은랜덤함(randomness) 을가진다고하여도원래의외부키와그에대응되는키비트스트림사이에는항상선형성(linearity) 이존재한다. 그러므로선형성을가진키비트스트림은평문보안을유지하기위한암호키로서는부적합하다. 실제적으로알고있는평문과암호문의 2m 비트만으로도탭계수와 LFSR의초기내용을결정할수있기때문에키비트스트림을알아내는것은어려운문제가아니다. 모든정수 m에대해서유한체 GF( 2 m ) 상의원시다항식 p(x) 가주어질때주기가2 m -1인 m단 LFSR 을구성할수있다. 여기에서임의의값 m에대해서도탭계수는쉽게구해지므로 LFSR로부터출력되어지는부호화된키스트림(encoded key stream) 은불안전하고아주작은 m에대해서는일반컴퓨터로수초만에해석이가능하게된다. 그림 1-12에서 LFSR의초기상태는 s 1,s 2,, s m 이며여기에서 s i GF(2) 로표시되고탭계수는g 1, g 2,,g m 으로써 g 의 i 값은 0 또는 1을가지며실제적으로접속(connection) 또는단락(open) 되는스위치로표현된다. 이런종류의 LFSR배열 을치환레지스터부호화방식이라하며, 행렬T 를이용하여표현할수있다. -27-

외부키벡터를 K=(k 0, k 1,,k m-1 ) 로표시하면 LFSR을통해부호화된키스트림벡터 Z 는식(1-9) 와같이표현된다. 여기에서 T 는천이행렬(transfer matrix) 을나타낸다. LFSR 부호화과정은선형성을가지므로식 (1-9) 는해석적으로지연소자(delay element) D 에의해식(1-10) 과같이표현할수있다. 여기에서 K(D) 는외부에서입력되는외부키를의미한다. 또한지연소자에의한종속함수로표현이가능하므로 K(D) 는식(1-11) 과같이표현할수있다. 그러므로그림 1-12 와수식 (1-9), (1-10), (1-11) 을이용하여 LFSR 의사난수발생기에의하여생성되는부호화된출력키수열 Z(D) 를구하면식(1-12) 와같이표현된다. K=( k 0, k 1,, k m-1 ) 을초기에입력되는입력키, Z=(z 0, z 1,, z m-1 ) 을 LFSR의출력에대응되는부호한키수열이라고가정할때 LFSR 키생성부호기는탭계수 g 1, g 2,, g m 과초기값 S=(s 0,s 1,,s m ) 가저장된 m단 (m-stage) 레지스터로구성될수있다. 4단으로구성된 LFSR 키생성기는그림 1-13 과같다. LFSR의탭계수는 g 1, g 2, g 3, g 4 로설정하고키부호기의초기내용은 s 1, s 2, s 3, s 4 로되어있다. 따라서 2m=8이므로입력키 수열은 K=(k 0,k 1,,k 7 ) 이며부호화된출력키수열은 Z=(z 0,z 1,,z 7 ) 이다. -28-

그림 1-13. 4단 LFSR 의사난수발생기 모듈러-2 연산에서는 k j + s j = z 가 j z j + k j = s 와 j 같이교환법칙이성립되므로 4단스트림키부호생성기를해석하면다음식 (1-13) 과같다. 생성된키수열에대한방정식 (1-13) 을행렬형태로표현하면식 (1-14) 와같다. 이러한경우식(1-14) 는식(1-15) 와같이간단한형태의방정식으로변형된다. -29-

제 2 장바이러스및안티바이러스 제 1 절바이러스 컴퓨터바이러스(computer virus) 란일반적으로자기복제능력(self-replication) 을가지고있으며외부자극에의하여실행가능한코드(executable code) 로짜여진프로그램을의미한다. 컴퓨터바이러스란생물학적특징을가진바이러스는아니지만생물학적인특징은거의모두를가지고있다. 즉자기복제기능과정상적으로동작하는프로그램에대한감염 (infection) 및파괴(destroy) 를시킬수있다. 컴퓨터바이러스의가장큰특징은자기복제기능이다. 그러므로버그(bug) 또는불법적인컴퓨터해킹프로그램과는확연히구별되어진다. 트로이안목마(trojan horse) 는상대컴퓨터에잠입하여파괴적인활동을수행하지만자기복제기능이없으므로엄밀히말해서트로이안목마는바이러스의범주에포함될수없다. 또한프로그래머의실수또는고의적으로특정프로그램안에존재하는버그역시자기복제기능이없으므로바이러스는아니다. 바이러스는자기복제기능을가진다. 그러므로다른이상징후와는확연한구별이된다. 그렇지만자기복제기능을갖추었다고하여자기복제기능을가진프로그램은모두바이러스가될수는없다. 바이러스의원래목적인특정또는불특정컴퓨터의데이터또는프로그램의파괴기능이있어야한다. 즉바이러스최종목표는특정컴퓨터에잠입하여컴퓨터기능을파괴하는데있기때문에자기복제기능은이러한파괴기능의목표를위한하나의생존전략일뿐이다. 바이러스는일반적으로컴퓨터의처리속도를감소시키거나예상치않았던화면을디스플레이하던가아니면시스템 OS(operation system) 일부를파괴하여특정프로그램에대한점근불가, 특정기능의마비, 정보유출등의결과를목적으로활동하게된다. 1. 바이러스의특징특정컴퓨터의정보유출및파괴를목적으로생성된프로그램인바이러스는일반프로그램과는다른특정패턴을가지고있다. 이러한특정패턴은컴퓨터내부에서발생하게되는바이러스감염또는바이러스침입을탐지할수있는근거자료로써사용되기도한다. 그러므로바이러스에대한특징및특정패턴에대한연구는안티바이러스(anti-virus) 또는방화벽설계에매우중요한자료로이용된다. -30-

가. 자기복제기능(self-replication) 자기복제기능은컴퓨터바이러스의가장기본적인기능이며바이러스에대한평가기준이된다. 바이러스확산기능이바로자기복제기능으로써컴퓨터발달초기에는주로플로피디스크(floppy disk) 와같은저장매체를통하여감염되었으나현재와같이정보통신네트워크가발달하면서컴퓨터감염은네트워크환경에서 TCP/IP 또는전자메일 IRC등을이용하여감염된다. 이러한자기복제기능은바이러스감염을확산시키는데주요한목적이있지만부가적으로바이러스생존을위한도구로써사용되기도한다. 즉감염사실이컴퓨터사용자가인식하게되는경우바이러스는은폐기능을이용하여바이러스자신을숨기기도하지만네트워크를통하여다른컴퓨터로감염을확대하게되면다른컴퓨터는바이러스에대한인식이없는상태이므로바이러스의복사본은안전함을유지하게된다. 나. 은폐기능(concealment) 바이러스의침입및감염사실이공격대상컴퓨터의사용자에의하여노출될경우바이러스는즉시제거되기때문에이러한감염사실을컴퓨터사용자에게노출되어서는안된다. 그러므로바이러스는사용자에게노출되지않도록하는여러가지은폐기능을가지게된다. 즉응용프로그램에섞여있어서응용프로그램의일부라고생각하게하던가프로그램에직접영향을주지않고특정프로그램과연결을시켜바이러스의존재여부를숨기는경우등과같이은폐기능은매우많은경우를가지고있어은폐기능을이용한바이러스는매우오랜시간을생존할수있게된다. 다. 파괴기능(destroy) 바이러스의존재이유는특정컴퓨터에잠입하여컴퓨터의기능을저하시키거나특정기능을 마비시키거나정보유출을수행하는데있다. 그러므로바이러스는기본적으로프로그램의파 괴를수행할수있는능력이포함되어있다. 이러한특징에대한감염특징은매우다양하게 나타난다. 즉, 부팅(booting) 이안되거나특정프로그램실행이되지않거나컴퓨터다운이 발생한다거나컴퓨터내부파일이외부로유출된다거나하는막대한피해사실이매년수십만 건에이르고있으며국내의경우과해건수는기하급수적으로증가하고있는실태이다. -31-

2. 바이러스원리바이러스의실행원리는매우단순하다. 컴퓨터바이러스에감염된프로그램이나파일을실행시키면일반프로그램과같이컴퓨터의기억장소에서실행을시작하게된다. 이때컴퓨터바이러스는실행하고자하는원래의프로그램보다먼저실행되고다른프로그램에자신의바이러스를복제하여감염시키게된다. 그림 2-1 과같이바이러스에감염된프로그램을구동(driving) 하게되면바이러스는사용자가인식하지못하게다른인접프로그램의감염여부를판별하여감염이이미되어있다면그대로두고감염되지않았으면자기복제기능을동작시켜인접프로그램에바이러스를감염시킨다. 이때이러한일련의감염동작은사용자에게전혀인식하지못하게되어있으므로사용자는프로그램의일반적이며정상적인수행만을지켜보게된다. 바이러스는정상적인프로그램동작중에인터럽트(interrupt) 와같은성질을이용하여일반프로그램실행중에바이러스프로그램을실행함으로써여러가지예상치않았던증상들을발생시킨다. 그림 2-1. 바이러스감염절차 이러한바이러스증상들은다음과같다. 1) 컴퓨터메모리부족현상실제적으로컴퓨터메모리에는이상이없지만바이러스감염으로인하여메모리부족현상이라는메시지가뜬다. 2) 컴퓨터속도저하컴퓨터실행도중감자기컴퓨터속도가저하되거나다운되는현상이발생된다. -32-

3) 부팅이안되는경우가장일반적인현상으로써부트섹터에바이러스가침입하여컴퓨터를부팅하게되면바이러스가실행되게된다. 이때바이러스가부팅을억제하는기능을수행한다면컴퓨터는부팅을수행할수없게된다. 그림 2-2. 컴퓨터부팅과정 그림 2-2 는컴퓨터가부팅할경우에작동하는순서를나다내고있다. 컴퓨터가부팅을수행하기위해서는 ROM에저장된데이터를가장먼저실행하게되는데이때바이러스는 CONFIG 또는 IO와같은시스템파일에접근하여감염시켜컴퓨터의올바른수행을방해하게된다. 4) OS 파일변동 OS 파일변동은컴퓨터 OS 파일의일부를파괴하거나파일이름을변화시켜컴퓨터자체에서올바른인식을하지못하도록하여컴퓨터에악영향을미치는경우이다. 이러한기능을수행하는바이러스는일반적으로파일바이러스(file virus) 라고하며파일바이러스는프로그램내의어느곳에위치하는가에의하여바이러스를구별짓는다. 5) 파일크기변화바이러스에감염된특정파일은갑자기크기가증가하는현상을보인다. 실제로는파일크기변화가없지만바이러스영향으로인하여파일의크기가폭발적인증가를보이게된다. 바이러스감염경로는일반적으로불특정공격적인성향을가진다. 즉프로그램의복사, 인터넷상에서파일의다운,e-mail 등감염경로는이루헤아릴수없을정도로많다. 그렇기때문에컴퓨터바이러스감염여부는감염경로에대한확인을우선순위로수행할필요성이있다. -33-

만약감염경로를알게되면바이러스에대한특징을확인할수있으며이에대한백신을이용하여바이러스를제거할수있게된다. 3. 바이러스진화ㅇ제 1 세대원시형바이러스(primitive virus) -. 바이러스자체에대한제작및분석이쉬운초기단계의바이러스 -. Stoned virus, jerusalem virus etc o 제 2 세대암호화바이러스(encryption virus) -. 바이러스에대한감염사실을숨기기위하여바이러스를암호화 -. 바이러스활동시암호를푸는패턴이일정하여세계적인확산은안됨 -. 백신프로그램을대상으로공격 -.Cascadevirus,Zero-timevirusetc ㅇ제 3 세대은폐형바이러스(stealth virus) -. 메모리상주형바이러스의특징을가짐 -. 컴퓨터원래의정보를따로저장 -. 사용자정보탐색시감염된값이아닌원래정보를보여주기때문에사용자는감염사실여부를인식하지못함 -. 메모리를먼저검사한후바이러스진단을수행 -. 메모리를먼저검사하게되면바이러스은폐기능이차폐 -. 백신프로그램을공격 -.Brainvirus,Joshivirus,512virus,4096virusetc ㅇ제 4 세대갑옷형바이러스(armor virus) -. 자체암호화및자기오류수정기법(self-error correction) 을사용 -. 바이러스분석및백신개발지연을목적으로사용 -. polymorphic virus 바이러스형태를변화시켜바이러스탐지를방지 암호/ 복호시및감염경로에따라특성이변함 암호알고리즘이백신프로그램에내장되어있어야검출가능 -. Nathas virus, Whale virus, Coffee shop virus etc ㅇ제 5 세대매크로바이러스(Macro virus) -. MS 사의워드, 엑셀문서들의매크로(macro) 를이용하여파일을감염 -. Laroux virus, VCX virus, Melissa virus etc -34-

4. 바이러스분류 가. 감염부위에따른분류 1) 부트바이러스(boot virus) 컴퓨터부팅시부트섹터에위치한프로그램이가장먼저실행된다. 이때부트섹터위치에자리잡은바이러스를부트바이러스라고한다. 부트바이러스종류는플로피디스크감염바이러스와플로피/ 하드디스크바이러스가있다. 플로피디스크감염바이러스에는 brain, aircop, LBC 바이러스등이있으며플로피/ 하드디스크바이러스에는 disk killer, LBC, stoned, stoned-b, stoned-c, pingpong 바이러스등이있다. 2) 파일바이러스(file virus) 일반적인프로그램에감염되는컴퓨터바이러스를파일바이러스라고한다. 이러한바이러스는실행가능한(executable) 프로그램에감염되어있는바이러스로써확장자가.COM,.EXE 인실행파일이목표이다. 이러한바이러스종류에는표 2-1과같이 Jerusalem virus, Sunday virus, Crow virus, FCL virus, Win95/CIH virus 등이있다. 표 2-1. 파일바이러스의종류및특징 바이러스종류 Lehigh virus Vienna virus, Taiwan virus McGyber virus, Rosebud virus Jerusalem virus, Dark averger virus 특징 command.com에만감염 *.com 파일에감염 *.exe 파일에감염 *.com/*.exe 파일에감염 3) 파일바이러스의종류및특징 -. 파일바이러스는바이러스가존재하는위치에다라이름이다르다. -. 기생형바이러스(parasitics virus) -. 산란형바이러스(spawning virus) -. 상주형바이러스(resident virus) -. 비상주형바이러스(non-resident virus) -. 겹쳐쓰기형바이러스(overwriting virus) -35-

가) 기생형바이러스(parasitics virus) 기생형바이러스는그림 2-3과같이컴퓨터내부의감염된파일은손상시키지않고프로그램앞또는뒷부분에바이러스가붙어있는형태를취하는바이러스이다. 이러한기생바이러스는바이러스에감염된프로그램을실행시키면먼저바이러스가실행된후원래의프로그램을실행하기때문에사용자는바이러스감염여부를판별할수없게된다. 그림 2-3. 기생형바이러스에대한위치 나) 산란형바이러스(spawning virus) 산란형바이러스는그림 2-4와같이비감염파일을실행하여정상적인동작을수행하지만겉으로들어나는현상은마치바이러스에감염된것과같이나타나게된다. 그러므로사용자는바이러스에감염된것으로착각하여실행중인프로그램을강제로종료하게된다. 프로그램을실행시키면 exe 파일보다바이러스파일인 com 파일이실행되기때문에바이러스에감염된것과같은결과를출력하게된다. 그림 2-4. 산란형바이러스에대한감염 다) 겹쳐쓰기바이러스(overwriting virus) 겹쳐쓰기바이러스는그림 2-5와같이정상적인프로그램이있는곳에바이러스프로그램이겹쳐존재하는바이러스이다. -36-

이러한바이러스는정상적인프로그램의앞부분에위치하게되며감염된프로그램을실행하게되면정상적인프로그램이아닌바이러스가실행되며정상적인프로그램은파괴되어사라지게된다. 만약원래의프로그램보다바이러스의길이가길다면프로그램의전체적인길이가증가되어사용자가바로인식할수있게되지만바이러스길이가정상프로그램보다작은경우감염사실을파악하는것은불가능하다. 그림 2-5. 겹쳐쓰기바이러스의감염위치 라) 부트/ 파일바이러스(boot/file virus) 부트/ 파일바이러스는부트섹터와파일에감염되며피해정도가매우심각하다. 이러스의종류로는 Invader virus, Euthanasia virus, Ebola virus 등이있다. 이러한바 마) 매크로바이러스(macro virus) 매크로바이러스는 MS사의문서파일의매크로가주요한공격대상으로써응용프로그램매크로에대하여문서파일을열때(open) 바이러스가동작개시하게된다. XM/Laroux virus 가대표적인매크로바이러스이다. 나. 운영체제에따른분류바이러스는컴퓨터 OS 종류에따라서바이러스특징이다르게나타나기때문에이에대한분류를수행하여야바이러스의특징을분석할수있게된다. IBM 호환기종으로는 DOS, Win9x, Linux 체계등으로분류되며 Application program에대한매크로는 MS office, script language 등으로분류할수있다. -37-

1) DOS virus DOS virus는 boot, file, boot/file virus와같이시스템에전체적으로영향을주는것으로써 window2000 의완전사용이전까지는존재하게된다. 이러한종류의바이러스는 Monkey virus, Anti-CMOS virus, One-Half virus 등이있다. 2) Window virus Window virus는 DOS와 Win9x 사이에서동작하며주로 e-mail 을통하여전파된다. DOS 바이러스와같이 window2000 의완전사용이전까지는존재하게된다. 바이러스종류로는 Win95/CIH, Anxiety-Poppy, Win95/Marburg, Win95/Padania, Win32/Parvo 등이있다. 3) Application virus Application virus는 macro virus와 script virus 로구별된다. macro virus는운영체계와는 별개로동작하며주로응용프로그램을플랫폼으로사용하게된다. 모든응용프로그램에서 동작되는것은아니며 VBA(visual basic for application) 환경에서만작동되도록되어있 다. script virus는스크립트언어로작성된바이러스로써 bat file에대한바이러스를주로생 성하게된다. 주로인터넷용채팅프로그램을통하여감염되며 VBS(visual basic script) 에 대하여보안설정이안되어있을경우에만침투가가능하다. 5. 유사바이러스(pseudo-virus) 유사바이러스는일반바이러스와구별되는것으로써바이러스는아니지만형태나목적이바이러스와유사하기때문에유사바이러스라는용어를사용하게된다. 일반적으로유사바이러스는컴퓨터에침입하여사용자가인식하지못하게사용자에대한정보를유출시키는것이주요목적이다. 그러므로컴퓨터성능저하보다는정보유출및변조에매우신경을써야하며바이러스와같은보안등급이유지되어야한다. 가. Worm 바이러스는인위적으로전파되지만유사바이러스는특정컴퓨터및특정클라이언트에대한주위환경의만족도에따라서전파된다. Worm은네트워크상에서전파환경만되면네트워크를통하여자동적으로감염된다. -38-

1982년 Xerox사에서임시파일제거목적으로 Worm 프로그램을개발하였으나부가적으로시스템이다운되는문제점을발생시켰던것이유사바이러스의시초가되었다. Worm은컴퓨터에침입하여컴퓨터사용자에대한정보를외부로유출시킬목적으로변형되었으며현재까지도 Worm 과유사한유사바이러스가활동중에있다. Worm 프로그램은네트워크통신망을사용하여시스템에서시스템으로확산되어지며, 통신회선으로연결된컴퓨터를공격한다. 컴퓨터시스템내에침입하게되면활동을시작하게되는데 Worm 은컴퓨터바이러스와같이활동하게된다. 이때트로이안목마프로그램을삽입하거나컴퓨터내부정보에대한파괴적인활동을수행하기도한다. 나. Trojan horses 트로이안목마프로그램은자주사용되는프로그램또는명령수행절차내에숨겨진코드를포함시켜사용자가프로그램을실행할경우원치않는기능을수행한다. 트로이안목마는소스코드에접근할수있으므로프로그램에임의의특정코드를첨가하여유용한기능이외에부가적인기능을수행하도록한다. 다. Backdoor backdoor는일반적으로트랩도어의의미를가진것으로써일반인들은인지하지못하며특정인만인식하는경우이다. 이러한 backdoor는특정컴퓨터를항상침입가능한상태로만들어둠으로써언제나특정컴퓨터에접근할수있는접근제어(access control) 를용이하게한다. 이러한 backdoor 는자기복제기능이없기때문에일반바이러스와구별된다. 또한 backdoor의목적이특정컴퓨터의정보를유출시켜접근제어를원격에서수행할수있도록하는기능을수행하기때문에해커에의해서수동적으로전파된다. 라. Spyware Spyware는 background의인터넷연결을통하여사용자의정보를특정서버로전송하는프로그램으로써 Spyware의원래목적은개발된지얼마안되는프로그램이나계속적인프로그램의홍보또는배너(banner) 에대한모니터링을목적으로개발된프로그램이었으나악의적인의미가내포되면서사용자의로깅정보등을포함한정보를유출하는데사용되기도한다. -39-

마. Back orifice 해커들의연례행사인 DEFCON을통해 1998년에처음소개된 back orifice는인터넷프로 토콜 TCP/IP 를통하여상대방의시스템을제어할수있는해킹툴(hacking tool) 이다. Back orifice의가장큰특징중의하나는 GUI(graphic user interface) 형태의프로그램이기때 문에해킹초보자라도매우쉽게사용할수있으며윈도우 NT 까지도공격대상이된다. Back orifice는트로이안목마의일종으로써특정컴퓨터의시스템에접근하여사용자의정보를유출시키는기능을수행한다. 제 2 절안티바이러스(anti-virus) 바이러스에대한예방(prevention), 치료(treatment) 및진단(diagnosis) 을수행하기위하여만들어진프로그램을백신프로그램(vaccine program) 또는안티바이러스프로그램 (anti-virus program) 이라한다. 안티바이러스는바이러스제작자들의정보공유와바이러스제작툴들의간편화, 대중화등으로인하여매우어려운실정이다. 특히다양한복합기술의발전및바이러스에대한자체암호화와은폐기술의발전은안티바이러스생성을어렵게하고있는원인중의하나이다. 1. 안티바이러스의원리바이러스를진단하기위한가장단순한방법은알려진바이러스(known virus) 와알려지지않은바이러스(unknown virus) 에대한구별되는방어기법이다. 알려진바이러스인경우에는특정한패턴을가진문자열을기준으로하여바이러스를찾아낸다. 그러나이러한특정문자열에대한검색방법은계속적인업그레이드(upgrade) 가되는바이러스에대하여계속적인대응이필요하게되기때문에실용성은매우적다. 알려지지않은바이러스에대한대책으로는안티바이러스가알려지지않은바이러스에대하여검출기능(detection) 만을가진다. 이러한검출기능은사용자가수동으로바이러스를제거해야하는문제점이있지만시시각각변화하는네트워크환경에서는최선의솔루션이다. 2. 안티바이러스의구성 그림 2-6과같이안티바이러스에대한분류는크게 5 가지로구성된다. -40-

그림 2-6. 안티바이러스기술 가. Access control Access control은인가되지않은프로그램설치및비인가자에대한시스템사용을방지하기위한기법으로써바이러스검출방법은아니지만비인가자에대한접근통제메카니즘이바이러스검출기능과유사하다. 나. Behavior blockers Behavior blocker 는프로그램들의적법한행동룰(behavior rule) 에대하여룰을지키지않는프로그램을바이러스로판별하게된다. Behavior blocker는자주업데이트를수행해야하며바이러스에대한행동룰을미리알고있어야한다는전제조건이있다. 또한바이러스자체보다는바이러스에대한특정패턴만을감시하기때문에 behavior blocker는바이러스에대한치료기능은없고단지검출기능만을가지게된다. 다. Heuristic analysis Heuristic analysis는 replication이나바이러스로의심나는코드의특징과파일을 scanning 하기위한기술로써주기적인업데이트를계속적으로수행해야하기때문에변화하는바이러스에대하여매우취약하다. 의심나는파일이존재하게되면 scoring system을이용하여점수를매기고기준값보다이하의점수를얻었을경우바이러스로판별하게된다. 점수판별방법은매우중요한사항이므로점수판별법은중요한보안사항으로분류한다. 라. Integrity checkers Integrity checker 는컴퓨터내부에서동작하는정상적인프로그램들이임의로변경되었는 지를 checksum 값이나 message digests(md), 암호알고리즘등을이용하여체크한다. -41-

이때감염된파일은갑자기파일용량이증가하게된다. 이를이용하여컴퓨터가바이러스에감염되었는지를판별하여안티바이러스를사용하게된다. Integrity checker 방법은업데이트를수행해야하지만업데이트용프로그램은프로그램전체가업데이트되는것이아니고변경된내용에대해서만업데이트를수행한다. 마. Scanner 바이러스가시스템내에서발견되면바이러스패턴을분석하여 signature 를만든다. 이때 scanner는 signature 목록을검토하여바이러스를검출하게된다. 그러므로알려진바이러 스에대한탐지속도는매우빠르다. 거의대부분의안티바이러스가이러한메카니즘으로 구성되어있다. 그러나 scanner 방식은최신업데이트와 clean-booting 조건이필수적이다. 바이러스종류가증가할수록 signature량이증가하게되며이러한증가는검색시간의증가 를의미하게된다. 또한패턴을변형하는 Polymorphic, 암호및압축알고리즘을사용하는 바이러스에대해서는인식할수없다는것이단점이다. 3. 안티바이러스문제점그림 2-7은 1997년부터실시한 DOS, Win9x, WinNT에대한바이러스검출율을보여주는것으로써 Script 종류에대한바이러스탐지율이매우낮다. 즉계속적인바이러스출현은 signature 를사용하는대부분의안티바이러스가감당할수없음을의미한다. 이러한안티바이러스의취약점은다음과같다. 가. polymorphic type 패턴매칭방법(pattern matching) 을사용하는안티바이러스는바이러스를탐지하기위하여최신의 signature 를보유해야한다. 최신의 signature는계속적인업데이트가수행되어야하지만업데이트의수행속도에비하여변종바이러스의발전이매우앞선다. 또한 signature 는업데이트수행시 signature 자체분량이증가하게된다. 이러한결과는바이러스검출시처리속도와반비례하는특징을가진다. 이러한일련의과정은 scanning 방법을사용할경우더욱악영향을가져온다. 즉변형된바이러스로인하여 false negatives 또는 false positives 현상을심화시켜더욱바이러스침입에대한방어기제를감소시킬수밖에는없다. -42-

그림 2-7. DOS, Win9x, WinNT에대한바이러스검출율 나. Cryptolized algorithm 암호화된바이러스에대한안티바이러스의기능은암호화된바이러스의특정패턴을기존의암호알고리즘을이용하여해석한후바이러스를제거하는것이다. 그러나암호알고리즘의종류는매우많으며특히바이러스개발자가자신만의독특한암호알고리즘을사용할경우에는불특정바이러스에대한방어능력은없다. 다. Compressed virus 압축과바이러스와의결합은암호화된바이러스와같은결과이다. 즉압축방법에따라바이러스형태가매우다양하게표현된다는것이다. 특히, 압축대상이시스템전체디스크로확장되어있을경우이를해석하기위한안티바이러스의 performance는매우낮아져효용성자체에문제가발생하게된다. 라. Dependence 네트워크사용자는바이러스와유사바이러스를주의해야하지만 Macro virus와 Script virus 와같이특정제품군(MS group) 에대하여집중적으로공격하는바이러스나유사바이러스의퇴치는 MS 사의프로그래머에게절대적으로의존할수밖에없는것이현실정이다. 바이러스를퇴치하기위한안티바이러스개발자는전세계에폭넓게분포된바이러스에대한정보를가지고있지못하다. 그러므로전세계의바이러스를퇴치한다는것은비현실적이다. 그러므로바이러스에대한특징을관찰하여특정제품군에대한공격이심한경우그제품군을만든프로그래머에게의존하는것이현실적이며효율적이다. -43-

마. Unknown virus 알려진바이러스에대한대책은일정수준의방어능력을가지고있다. 그러나알려지지않은바이러스에대한대책은전무하다. 즉 scan에의하여 signature를만들수가없기때문에검출자체가불가능해진다. 알려지지않은바이러스에대해서는어떻게당했는지조차도모르게당하는것이현실정이기때문에이에대한방어능력의개발이매우시급하다. -44-

제 3 장방화벽과침입탐지시스템 컴퓨터내부의시스템 OS 또는응용프로그램자체의공격취약점을이용하여시스템에침투하고정보를유출하거나변조하며서비스거부공격(denial of service(dos) attack) 을수행하는해킹사고는정보통신과네트워크가발달할수록그수가기하급수적으로증가하고있다. 이러한해킹사고는네트워크환경속에서항상무방비상태라는것이현실이다. 그러나네트워크를통한정보통신의커뮤니티를사용하지않을수는없는것이현실이기때문에인터넷의 TCP/IP 에대한방어능력을증가시키는것이현시점에서는매우타당성이있다. 이러한네트워크의필요불가결특성으로인하여네트워크에대한보안성이요구된다. 네트워크의보안성을위하여개발된것이방화벽과 IDS 이다. 방화벽(firewall) 은인터넷과컴퓨터네트워크사이에위치하고있으며주로 TCP/IP protocol header의정보를이용하여외부로부터의접근을통제하는 access control device 이다. 일부방화벽은 content filtering 을통해더욱정교한 access control 기능을수행하지만네트워크병목을지키는방화벽이복잡한프로세싱을수행한다는것은현실적으로처리시간때문에매우열악한조건이된다. 또한방화벽은외부침입자에대하여어느정도필터링이가능하지만내부침입자인경우속수무책인경우가대부분이기때문에방화벽에대한보완대책이필요하다. 침입탐지시스템(intrusion detection system: IDS) 은 local network 또는호스트(host) 에위치하여보다정밀한유/ 출입데이터자료에대한분석을수행하며네트워크를통한공격이나시스템에대한불법접근을탐지하는2 차방화벽기능을수행하게된다. 제 1 절방화벽 1. 방화벽의개요방화벽이란그림 3-1에나타낸것과같이네트워크사이의통신에사용되어지는 OSI(open systems interconnection) 계층사이에서네트워크통신이이루어질경우발생되는트래픽을제어하기위하여구성된시스템이다. 방화벽은패킷전송도중특정패킷을여과 (filtering) 할수있는패킷필터(packet filter), 전용프락시서버, 로깅컴퓨터, 스위치, 허브, 라우터및전용서버와같은기능을수행할수있다. -45-

라우터는 OSI 계층의네트워크계층에서동작하는것으로써패킷전송에대한정보제어를수행하는기능을한다. 프락시는네트워크사이에서특정프로그램에대한접속을허용하거나거부하는기능을수행하는프로그램으로써 OSI 응용계층에서동작한다. 게이트웨이는특정한응용프로그램에대한접근을제어할수있는기능을가진시스템이다. 게이트웨이는유출되는정보트래픽에대한필터링을수행하며유입되는정보트래픽에대하여내용에다라유입수준을조절할수있고시스템내부정보등을은닉할수있는기능을가진다. 그림 3-1. OSI 계층과방화벽 2. 방화벽의필요성방화벽은네트워크를통한정보의유출입을사용자의의도에따라서제어할수있도록되어있다. 특히 LAN(local area network) 과같이특정그룹으로컴퓨터들이연결되어있는경우, 네트워크에대한보안수준은매우낮게설정될수밖에없기때문에정보보안에대한인식이매우필요하게된다. 방화벽을사용함으로써얻는이점은첫째로옥내(indoor), 연구소또는학교에서 LAN과같은네트워크로정보를공유하는집단의내부네트워크환경에대한보안성유지이다. -46-

둘째로네트워크를통한정보의공유를수행할경우상대방과의보안수준이동일해야상호통신이가능해지며보안을유지하면서상대방과의정보누출을억제할수있기때문에상호보안수준의표준화를얻을수있다. 셋째로비인가자또는해커로부터정보의유출을방지할수있다. 넷째로해킹사고발생시네트워크사용자에대한실시간유출입정보를쉽게얻을수있다. 다섯째로네트워크에대한일반적인자료분석이가능하며마지막으로네트워크에대한감시가가능하다는것이다. 방화벽을사용함으로써얻는이점도있지만방화벽을사용함으로써발생되는문제점도있다. 발생되는문제점중가장심각한것은내부공격자에대한무방비상태이다. 아무리강력한방화벽을구축하였어도방화벽의원래목적은네트워크를통한비인가정보유출을막는것이다. 그러므로네트워크그룹내부의소행으로인한정보유출은검색자체가어려우며검색된다하더라도이에대한정보유출을막을수는없다. 3. 방화벽의기능방화벽은그림 3-2와같은메카니즘을가지고있으며이러한메카니즘을통하여정보유출에대한감시를수행하게된다. 그림 3-2. 방화벽의기능 -47-

그림 3-2에서와같이 OSI 계층의트랜스포트계층에서방화벽의기능은송신자와수신자에대한 IP 주소에따라 TCP(transmission control protocol) 및 UDP(user diagram protocol) 포트에대한접근을허용하거나차단한다. 또한네트워크계층에서방화벽기능은 IP 패킷에대한투명성을제공하게된다. 투명성이란위치및사용자를알수있는 IP 주소가명시된패킷에한하여정보의유출입을수행한다는것이다. 또한부가적기능으로는내부 IP 주소를투명성이제공되는유효한인터넷 IP 주소로변환(network address translation :NAT) 할수있게해주기도하며역공격에대한방어책으로모든내부주소를방화벽주소로대체하는기능도수행하게된다. 응용계층에서방화벽의기능은응용게이트웨이라는프락시서버의기능을수행한다. 즉특정응용프로그램에대한요청을받아들여최종목적지까지요청에대한응답을진행시키거나차단하는역할을수행한다. 최종목적지에대하여투명성을유지해야하는프락시는접근통제및전송기능을가지는응용프로그램들중에서접근통제에관련된기능을제거한신뢰성있는프로그램이다. 프락시는 HTTP, Telnet, Ftp 및 SMTP(simple mail transfer protocol) 등의기능을수행할수있도록되어있다. 그림 3-3 인터넷프로토콜개요를보면알수있듯이 TCP/IP 인터넷프로토콜을사용할경우 DNS(domain name server) 응용프로그램은 IP 주소를가지고호스트이름을찾거나그반대기능을수행한다. 그림 3-3. 인터넷프로토콜개요 이때 DNS는정보의출처를확인하지않으므로해커와같이악의적인행동을수행하는비인가자는 DNS 서비스를 spoof 하여변조된정보를줄수있는근거가존재하게된다. 특히 rlogin과같은응용프로그램들은접근통제를수행할경우호스트이름을사용하므로 DNS spoof 에매우취약하다. -48-

그러므로프락시접근통제를수행해야하는경우에는 DNS 이름대신 IP주소를사용해야한다. 그러므로방화벽의주요한기능중의하나는이러한 spoof를이용한공격으로부터안전하도록 DNS 이름과 IP 주소를변환해주는 NAT 기능이포함되어있다. 그러나방화벽의 NAT 기능이존재하더라도라우터가올바르고투명성있게구성되어있지않거나스위치를사용하지않게되면 IP 주소도 spoof 공격범주안에존재하게된다. 4. 방화벽평가기준 가. 암호화기능 방화벽은외부에대한비인가신호방어를위한기능을수행한다. 그러므로투명성이기본이 되어야한다. 또한방화벽은기밀성제공및무결성인증을위하여암호화를수행할필요성 이있다. 방화벽자체에서암호화가수행되는경우방화벽은 VPN 내부에서사용되는프로 토콜을이해하며필터링을수행하게된다. 암호화를사용하게되는방화벽은암호화된스트 림정보를인식하게되지만인식한스트림정보를의미있는정보로인식하지는못한다. 단 지정보의흐름만을인식할뿐이다. 그러므로사용자가방화벽관리자를신임하지못할경우 에는해커들로부터공격당하기쉽다. 또한암호화정보가유출입하게될경우방화벽관리자 는정당한정보유출입으로인식하게되어해커의공격을당하는결과를초래하게된다. 그 러므로방화벽에암호화를수행할경우에는암호화와더불어인증기능도포함시켜야한다. 나. 방어능력및수준방화벽은여분의보안장벽및시스템을갖추고있어야단일지점장애로인한네트워크정지및다운이발생되었을경우에본래의방화벽기능을수행할수있다. 동시에특정사용자및네트워크상태의시스템정보를외부로유출시켜서는안된다. 다. 신뢰성방화벽에대한서비스신뢰도향상을위하여중복라우팅, 클러스터, RAID, cold standby 등의다양한가용성서비스수준을유지하여야한다. 5. 방화벽요구사항 가. 접근통제그룹별로네트워크환경이구축된학교, 회사또는연구소등에대한모든인터넷접속은방화벽에있는프락시서버를통해서만이정보의유출입이가능하도록한다. -49-

이러한이유는인가되지않은정보의유출입접근통제를보다효율적으로수행하기위한것으로써허가되지않은정보의서비스제공은방화벽에서원천봉쇄할수있어야한다. 이때방화벽에서의접근통제레벨은그룹내의사용자정보에따라차등적으로구성된다. 모든사용자들에대하여이메일과같은전자우편은모두제공되지만특정정보의유출입은제한되며특정업무를관할하는사용자에대하여제한적으로특정정보의유출입이가능하도록보안등급을방화벽이지정할수있다. 나. 정보보증방화벽의주요목적은비인가정보의유출입을통제하는것이므로방화벽관리자를제외한모든사용자는시스템에직접적인로깅작업을수행할수없도록명시되며이러한명시는모든사용자에게타당성을제공할수있어야한다. 이러한방화벽의보안등급및구성그리고정책은모든사용자에게투명성을제공하기위하여문서화되어있어야한다. 또한이러한문서화된정례의합법적인운용및관리가정당하게수행되는지를파악하기위하여정기적인모니터링을실시해야한다. 다. 로깅방화벽은시스템접근및사용자정보를수시로검사하며기록하게된다. 이러한로깅엔트리는방화벽사용자에대한통계적특성자료구성의기본이되며비인가자및불법적인정보사용자에대한접근을통제하는데매우중요한자료로이용된다. 라. 가용성방화벽은높은가용성을제공할수있어야하며이에대한필요한기능을수행할수있어야한다. 이를위하여방화벽은별도의프로세서를장착하고있다. 마. 방화벽서비스그림 3-4에서와같이방화벽에서제공되는서비스는입출입정보에따라서약간의차이가있다. -50-

방화벽으로부터외부로제공되는서비스는 Email, WWW(HTTP), Ftp, Telnet, SSH, DNS (analysis internet names), News등이있으며방화벽으로유입가능한서비스는방화벽이제어하는모든시스템사용자에대한 Email과 News, 그리고특정사용자들에한하여 SecureID와SSH를제공할수있도록하는Secure Login 이있다. 그림 3-4. 방화벽입/ 출입서비스 제 2 절침입탐지시스템 1. IDS의목적침입탐지시스템(IDS) 은개인적인경향을가지며내부침입자들에대한방어수단으로써강구된방화벽의한종류이다. IDS는 local network 또는 host에위치하여보다정밀한유출입데이터분석을수행하며네트워크를통한공격이나시스템에대한불법접근을탐지하는 2 차방화벽기능을수행한다. IDS는 1980년대이후많은발전을거듭하고있지만아직까지상용화된제품은매우극소수이다. 특히 TCP/IP 프로토콜을사용하는네트워크상에서 distributed attack에대한확실한방어능력이입증되지않았기때문에더욱 IDS에대한제품의상용화는더욱늦어질것으로전망되고있다. 2. IDS 표준화동향 TCP/IP protocol을사용하는인터넷환경에서 distributed attack에대한침입의조기탐지및대응을위해서는지역적으로분산된 IDS 구성요소들간에상호연관관계분석이필요하다. 이를위해서는 IDS 구성요소들간의인터페이스및프로토콜표준안설정이선행되어야하며 IDS 표준화동향도매우중요하다. -51-

가. DARPA(defence advanced research project agency) DARPA는 Berkely 대학을중심으로 IDS에대한표준화작업을수행하고있는대표적인 working group 이다. DARPA는 IDS 기술연구및표준화에대한내용을중심으로연구하고있으며 IDS 프로젝트에대하여다양한연구가진행중에있다. DARPA중에서 IDS 기술개발에매우적극적인곳은 Berkely 대학의 CIDF(common intrusion detect ion framework) 이며CIDF는그림3-5와같은IDS 의표준화된모델을제공하고있다. 그림 3-5. CIDF의 IDS 개념도 그림 3-5 CIDF의구성요소는 event들을수집하는 E box, E box로부터입력되는데이터를분석하는 A box, E box와 A box로부터정보에대한데이터베이스를관리하는 D box, detection 결과를알리거나 active reaction을수행하는 C box 로구성된다. 이와같이 CIDF는유출입데이터들에대한정보를분석하는기능을수행하게되는데이러한 CIDF의목적은 common intrusion specification language(cisl) 개발을통한 IDS component 역할분담및인터페이스에대한정의를내리는데있다. 특히 CIDF는주로학술적인내용을중심으로프로젝트를수행하기때문에 IDS 벤더의참여는없고가까운미래에상용화될 IDS 제품생산을기대하기란매우어려운실정이다. 나. IDWG(intrusion detection working group) IDWG는 DARPA와독립적으로주로업계를중심으로 IDS에대한표준화작업을수행중인 working group 이다. -52-

IDWG는 IDS 업계들이중심이되어다양한 IDS간의 Alert 메시지에대한표준화작업을 수행하고있다. 이러한 IAP(intrusion alert protocol) 표준화작업은 Alert 메시지에대한 포맷, 교환프로토콜등에대한실질적인 IDS 간의표준화작업을수행한다. IDWG에서작업중인 IDS Alert 모델은그림 3-6 과같다. IAP 구성요소 중 Detector/ Analyser(DA) 는 data source로부터발생되는 event들을수집하고분석하여침입에관련된 Alert 메시지를발생시키는기능을수행한다. 또한 Manager는 DA로부터유입받은 Alert 메시지를관리자또는운영자에게보고하고로깅정보를저장하며 Alert 종류에관련된필요 한대응책을취하는기능을맡고있다. IDWG의 IAP는 TCP상에서동작하는응용계층프로토콜로써 TLS1.0 을사용하게된다. 이 러한 IAP는 CIDF보다한단계높은상위레벨로써인터페이스작업을수행하게되는데 IDS 에서발생되는 Alert 메시지를하나의 Manager 에서통합하여분석/ 관리함으로써응용계층 에서 IDS 에대한호환성을매우광범위하게제공할수있는능력을가지게된다. 그림 3-6. IDWG의 IAP 모델 3. 침입탐지기술(intrusion detection method : IDM) 가.IDM종류 IDM은 IDS 실현을위한구현기술로써크게 3 가지로분류된다. 첫째로 Anomaly detection 은 behavior-based intrusion detection을이용하는기법으로써시스템자원에대하여정상적인경우와비정상적인경우에대한시스템자원의사용을비교, 분석하여비정상적인행위즉비인가자에의한정보유출행위를탐지하는기법이다. -53-

둘째로 Misuse detection은 knowledge-based intrusion detection을기반으로 IDS 기능을수행하는것으로써누적된로깅정보등과같이이미알고있거나등록된정보를이용하여시스템의자원에대한남용을탐지하는기능을수행하게된다. 마지막으로 Hybrid detection은anomaly detection과misuse detection 을상호절충하여사용하는방법이다. 나. 행위기반침입탐지기술(Anomaly detection method) 행위기반침입탐지기술은 anomaly detection method 또는 behavior-based intrusion detection으로써시스템이정상적으로동작할때사용자들의 system normal behavior에대한정보를이용하여기준을설정한뒤설정된범위를벗어나는정도를바탕으로침입여부를확인하여탐지하는기술이다. 정상적이거나합법적인행위에대한 user 또는 system 의 profile은다양한방법으로축적된 reference information 을바탕으로구축되며, 침입은현재의 user/system의 activity를 reference profile 과비교/ 분석하여일정수준이상의 deviation 을나타낼때비인가정보의유출이발생하였다고판단하게된다. 이때기준의가치로사용되는정상또는비정상에대한기준은모호하게된다. 그러므로 false alarm rate 가높아져시스템침입여부에대한정확도가낮을수있는단점이있다. 그러나 detection algorithm을좁은범위로 training 시켜서너무낮은기준값을설정하게되면 false positive rate이높아져정상적인데이타가유입되어도 false alarm 을발생시킬수있다. 또한 detection algorithm을넓은범위로training 시켜너무높은기준값을설정하게되면 false negative rate 가높아져침입탐지기능이저하된다. 그러므로 user/system profile의초기구축및지속적인관리가어렵게된다. 즉 user/system의 event가시간에따라서변화하는경우, behavior profile을주기적으로 retraining 시켜야되는데이때 retraining 과정이공격자에게악용될수있다. 공격자가자신의 profile에대하여시간을두고서서히변하시키면서 detection algorithm을 training 시켜불법적인행위조차도정상적인적법한절차로오인하는경우가발생하게된다. 그러나 knowledge-based ID가알려진공격에대해서만침입탐지가가능하고 insider attack을탐지하는것이어렵지만 behavior-based ID는알려지지않거나새로운공격방법에대해서침입탐지가가능하고 insider 또는 outsider attack 의구분없이동일한기준으로침입탐지가가능하다. 즉, Completeness가매우높다는것이장점이다. -54-

다. 지식기반침입탐지기술(Misuse detection method) 지식기반침입탐지기술은 misuse detection 또는 knowledged-based intrusion detection 방법으로써특정 attack이나 system vulnerability 에대해축적된정보(knowledge base) 를이용하여침입을탐지한다. 즉 knowledge base에등록된공격 scenario에해당하는유입신호가발견되면침입으로간주하고경고를발생한다. 그러므로 Misuse detection 방식은 accuracy가상당히높은편이지만 Completeness는 knowledge가얼마나많은공격유형을 DB화하고있으며최신정보를얼마나자주 update 시키느냐에의존한다. Update 되지않은최신공격이나알려지지않은공격에대해서지식기반침입기술은공격에대하여속수무책이므로 behavior-based ID방식에비하여 completeness 는낮다. 지식기반침입탐지기술은공격유형및검출에대하여 DB knowledge에대한유지보수가어렵다. 그러므로알려진공격에대한정보를수집하거나새로운공격유형또는취약점들을최신의것으로유지하는일은쉽지않다. 공격방법이나시스템취약점들이시스템 OS나 platform, version, application등에따라각자다른특성을가지므로 knowledge base의구축은공격및취약점들에대한면밀한분석을필요로한다. 또한취약점을이용하여공격하는것이아닌합법적인사용자가남용하는 insider attack을탐지하는것도매우어렵다. knowledge-based ID는knowledge base 구축형식에따라관측된 audit event를적절한형식으로변형하여비교하게되는데가장간단하고효율적이어서commercial IDS에서가장널리사용되는signature analysis 이다. 그러므로시스템침입여부는간단한 pattern matching algorithm을이용하여관측된 event 또는 audit trail을 knowledge base 의내용과비교함으로써쉽게탐지할수있다. 이러한방법이간단하고효율적이어서상용제품으로널리사용되고있지만조금이라도변형된공격이가해지면 signature 내용중에변형된내용이없으므로침입을탐지못하게된다. 그러므로침입탐지의accuracy 가낮다. 4. IDS 평가기준침입탐지기술을평가하는평가기준으로는안전성(accuracy & completeness), 뢰성등이사용된다. 성능및신 -55-

Accuracy는 IDS가공격에대하여얼마나정확하게탐지하는가를알아내는척도로써사용 되는파라미터이다. 즉 false alarm 을발생하는빈도가얼마나적은지를나타낸다. 실제로 침입이발생하지않았는데침입이발생한것으로간주하여경고를발생하는경우를 false positive alarm이라하는데 accuracy는 false positive alarm의수가얼마나작은지를나타 내는척도로써사용된다. Completeness는 IDS가모든종류의공격을탐지할수있을때 complete 하다고한다. 실 제로 침입이 발생하였는데 이를 탐지 못하는 경우를 false negative라고 하는데 completeness는 false negative 의수가얼마나작은지를나타내는파라미터이다. 실제로 공개되지않은공격방법들도많을뿐더러끊임없이새로운공격방법들이개발되고있으므로 IDS 가모든종류의공격을파악하고이에대처하는것은매우불가능하다. Performance는 Audit event 들을처리하는속도를나타내며성능이낮은경우, real-time detection 이불가능함을의미한다. IDS 는속도나대역폭등기존의컴퓨터/ 네트워크자원들 에대하여가능한최소의 overhead 를주도록설계되어야한다. IDS 자체가 DoS attack과같은주요공격대상이될수있으므로 IDS의가장중요한설계 원칙중의하나는다양한공격에대한저항성을가지도록하는것이다. 특히 host-based IDS인경우에 Fault Tolerance 는매우중요한파라미터가된다. 5. 침입탐지시스템 IDS 는크게두가지로분류될수있다. 첫째로host의불법접근을탐지하는데초점을맞추는 host-based IDS 이다. host-based IDS는웹서버나데이터베이스서버등과같은중요한서버보안에유용하다. 둘째로 network attack을탐지하는데초점을두는 network-based IDS 이다. network-based IDS 는네트워크인프라(network infra) 를보호하는데중요한역할을수행한다. 이상과같이두가지종류의시스템은상호보완적이므로일반적으로통합하여사용되는것이가장이상적이다. 가. Host-based IDS(HIDS) HIDS는개별적으로동작하는 host OS가제공하는 security audit, system log, accounting information등의정보를이용하여 host에대한공격을탐지하는시스템으로써 대부분의 HIDS는각 host에상주하는 agent와이를관리하는 agent manager 로구성된다. -56-

또한 HIDS는중요한시스템파일이나실행코드에대한 integrity check 기능이나시스템의 취약점들을탐지해주는 vulnerability scanner 등과결합되어사용된다. 그리고 HIDS는특 정시스템의 OS와결합되어각종 activity들을분석하는만큼보다정교한모니터링과로깅 이가능하다. 특히 HIDS는불법적인접근뿐만아니라합법적인사용자에의한불법행위도 탐지할수있으므로중요서버에서내부사용자에의한남용을방지하거나사후추적을가 능하게할수도있으며이러한상세기록들은공격을당했을경우시스템을복구하거나사 후대책을세울경우에도유용하다. HIDS는네트워크환경과무관하여 VPN이나 switched network 환경등에서도아무런영 향을받지않는다. 이러한기능들은일반적으로 network-based IDS에서는불가능한것들 이다. 그러나 HIDS는 high-level logging information만을 해석하므로 low-level의 network event들은전혀인식할수없으므로 network-based attack 탐지는거의불가능 하다. HIDS는또한보호하고자하는모든 host에설치되어야하고개별 host의 OS나플랫 폼에따라다른시스템이요구되므로개발비용이과다로지출되며대규모네트워크에서는 설치및관리비용등이매우비싸게든다. 그러나네트워크확장에다른 flexibility는뛰어나 다. 또한침입탐지를위한각종프로세싱이해당 host의 CPU time, storage 등과같은 resource를이용하여이루어지므로시스템의성능을상당히저하시키게되며 IDS에버그가 있거나비정상동작시에는해당 host 자체가기능수행을못할수도있으며해당host에 vulnerability가있을경우에는 IDS 자체가공격자의통제하에들어가아무런기능을못하 는경우도생길수있다. 나. Network-based IDS(NIDS) NIDS는주로 network packet이나 SNMP MIB, application log 등의정보를분석하여침입을탐지하는기능을수행한다. 대부분의상용 NIDS는 network packet 만을이용한다. 실제적으로 NIDS는 packet header의정보를이용하는 traffic analysis와 packet의 payload 를분석하는 contents analysis를동시에수행해야하지만대부분의상용 IDS에서는이들의일부만을수행하므로아직은많은문제점들이존재한다. NIDS는 network-based attack 을탐지하여 network infrastructure를보호하는것이목적이므로대부분의경우 host-based IDS에서처럼 host-specific한공격에대하여탐지하거나상세한기록을남길수없다. -57-

또한 NIDS는모든 network traffic의실시간분석을통해침입을탐지하지만네트워크고속화에비례하여대용량의 traffic을실시간으로분석할수있는 NIDS를만드는것은현실적으로불가능한일이다. 실제로대부분의 NIDS는기껏해야수십 Mbps 정도의 traffic을감당할수있을정도이다. 그러므로네트워크속도가증가함에따라 IDS의성능이따라가지 못하게되고따라서많은 packet 을잃어버리게된다. -58-

제 4 장혼합형암호화칩설계 암호알고리즘의개발이활발하고구현의방법론이다양화되고있지만해커나크래커와같은비인가자들은계속적인정보의유출을원하며이로인한정보누출피해는정보화사회로의발전과더불어계속될전망이다. 또한정보유출과더불어막대한경제적손실을주는피해는정보변조이다. 비인가자들은굳이정보를유출하지않아도정보변조및사용자감시를통하여원하는목적을이룰수있기때문이다. 특히전자상거래와같은인터넷을사용하는쇼핑몰에는개인정보및 ID, 페스워드까지를완전노출상태로만드는결과를초래하기때문에정보의누출및변조는정보화사회의커다란병폐일수밖에없다. 그러므로본연구에서는이러한정보누출및변조를막고정보를보호하기위한목적을달성하기위하여대칭형암호방식을기준으로비대칭형암호개념을적용하여암호화칩을구현하였다. 또한구현론적으로볼때소프트웨어방식은융통성이크며업데이트가용이하지만크랙및해킹에취약성을보인다. 이는소프트웨어로암호알고리즘을구현할경우플랫폼자체가의사바이러스로부터공격을당하여오히려더욱안전성에대한문제점들이발생할우려가존재하게된다. 그러므로본연구에서설계된암호시스템은하드웨어에의한구현을선택하였으며플랫폼의유출입부분에서동작하도록하였다. 본연구에서설계된혼합형암호시스템은비대칭형암호방식을기본으로혼합형암호시스템을구현하는것이아니고대칭형암호시스템을기본으로비대칭형암호시스템이가지는특징을가질수있도록하는혼합형암호시스템의설계가본연구의목적이며필요성이된다. 제 1 절데이터암호블록 1. Feistel 구조대칭형암호방식은데이터암호부분과키스케쥴부분으로분류된다. 데이터암호부분에서사용되는기법은 Feistel 구조또는 SNP 구조를사용하게된다. 또한데이터의처리를어떠한포맷으로하느냐에따라서스트림암호방식과블록암호방식으로분류된다. 블록암호방식과스트림암호방식의가장큰차이점은반복성에있다. 블록암호방식은한라운드에대하여기본안전성을획득하기까지일정횟수의 iteration 을수행하게된다. 스트림암호방식은기존안전성을획득하기위하여무한수열에가까운 LFSR의주기특성을가지도록한다. -59-

그러나 iteration의증가또는 LFSR 주기길이의증가는비밀키암호시스템의효율을저하 시키는요인이된다. 그러므로본연구에서개발하고자하는혼합형암호시스템은 iteration 을사용하지않고단일라운드를사용하며 LFSR의 stage 길이를일정한크기로설정하고 설정된 LFSR을다수개사용하여실제적으로는매우긴주기수열을생성할수있도록하였 다. 혼합형암호시스템은데이터재배열, 치환, 데이터암호블록, 키스케쥴러(key scheduler) 로구성되어있고, 데이터암호화과정은 128 비트평문블록을 64 비트씩 2개의블록으로 분할하고확장을거친후 80 비트크기를가지는혼합형키(hybrid key : HK) 를사용하여 암호화한다. 기존블록암호시스템인경우내부적으로 16 라운드의암호화과정을거치고, 복호화시에도암호화에사용된동일한키를역순으로사용하여 16 라운드의복호화과정을 수행한다. 그러나본연구에서구현하고자하는혼합형암호화시스템은단일라운드만을사 용하여기존 16 라운드에해당하는비도(Security level) 를얻기위하여혼합형키와블록 암호시스템의비선형부분인 F 암호함수부분을보다더비선형화시켰다. 그림 4-1은기존 Feistel 구조와거의동일한형태를취한다. 즉식(4-1) 과같이 128 비트 에대하여초기치환(IP) 을수행하고 IP 수행결과를 F 암호함수와혼합키(HK) 를이용하여 내부연산을수행한후교번하여출력을내보내도록되어있다. 그림 4-1. Feistel 구조와 SP 구조 -60-

식 (4-1) 은기본 Feistel 구조와같은형태를취한다. 그러나 iteration에관한 i 파라미터가없는대신이전과이후에관한방정식만존재한다. 입력 128 비트는 IP를거친후좌우 64 비트씩분리된다. 좌우로분리된 64비트는그림 4-1에서와같이오른쪽 64 비트는왼쪽으로이동하며왼쪽 64비트는혼합형키와 F 암호함수의연산과정후 XOR 연산을수행한후오른쪽으로이동하게된다. 이러한연산을수행한후역초기치환(IIP) 을수행하여암호화된데이터를출력하게된다. 그림 4-2. 단일라운드에대한 Feistel 구조특성 그림 4-1과그림 4-2는단일라운드를사용하기위한 Feistel 구조와 SPN 구조이다. 또한식 (4-1) 은단일라운드에대한수식적인표현이다. 일반블록암호시스템인경우 iteration 을최소 16회정도반복수행하지만본연구에서사용한 Feistel 구조는단지 1회의라운드에대해서만수행하도록한다. 이러한이유는 F 암호함수에있다. 즉 F 암호함수는일반적으로사용되는키스케쥴에의해발생된키를사용하는것이아니고단순키기능과인증및비대칭형개념을가진키값을사용하여연산을수행함으로써비도를보다더높일수있도록하였기때문이다. 2. 재배열관계 암호함수 F 의강도, 즉비도결정은확장과재배열, 치환에결정적으로영향을받으므로연 산은미리설정된표에의하여결정된다. 먼저초기치환과역초기치환은입력및출력 128 비트들에대하여수행된다. 표 4-1과표 4-2는초기치환및역초기치환을수행하기위한 표들이다. -61-

표 4-1. 128 비트초기치환표 표 4-2. 128 비트역초기치환표 표 4-1, 4-2에의하여초기및역초기치환된데이터들은암호화를수행하거나복호화를수행하는자료로이용된다. 3. F 암호함수혼합형암호방식은다양한통계적분석기법들에대한저항성을갖기위하여비선형연산못지않게비선형연산결과를가능한많은다른데이터비트들과섞어주는효율적인선형변환을사용하였다. 이와같이선형과비선형연산을섞어사용하는이유는암호해석기법인 DC 및 LC 암호분석에서의성공확률은상당부분얼마나선형변환을사용하느냐에의존하기때문이다. 그러므로혼합형암호시스템을구현하기위하여가장널리사용되는선형변환들중 bit permutation과 matrix 개념을도입하여구현하였다. 그림 4-3은혼합형키를사용하여비선형함수및선형함수를생성하는블록으로써기능블록은다음과같다. -62-

그림 4-3. F 암호함수 가.80E함수 E 함수는확장재배열(expansion) 기능을수행한다. E 함수는키와데이터간의비트수를맞 추어주며비도를증가시키기위하여사용되는선형암호블록이다. 표 4-3은확장재배열에 관한표이다. 표 4-3. 80 비트처리를위한확장표 혼합형키인 hybrid key는키스케쥴러에의하여 80 비트의크기를가진다. 또한 Data_in 은입력정보 128 비트를양분한크기이므로 64 비트의크기를가진데이터들이다. 혼합형 키와데이터에대한모듈러합을수행하기위하여먼저입력데이터 64 비트를 80 비트로확 장할필요성이있다. 이와같이 64 비트를 80 비트데이터로변환시켜주는부분이 80 E 함수이다. 80 E 함수에서는 16 비트의데이터가 2 번씩반복되어연산에참여한다. 그러므로 64 비트 들에대해서 16비트가첨가되므로전체 80 비트의데이터값들이산출되게된다. -63-

나.80C함수 80 C 함수는압축(Compression) 을수행하는기능블록으로써그림 4-3에서와같이혼합형키 80 비트와 80 비트로확장된입력데이터들끼리 bit by bit XOR 연산을수행한후유입되어 S 함수로유출시켜주는기능을수행한다. S 함수는 6 비트씩모두 12개의하부 S 함수로구성되어있기때문에 6X12=72 비트의값으로재조정을수행해야한다. 표 4-4. 72 비트처리를위한압축재배열표 표 4-4와같이 80 C 함수는 80 비트입력을받아서 72 비트크기의값을산출하기위하여미리설정된표에의하여압축과정을수행하게된다. 이때 9, 19, 29, 39, 49, 59, 69, 79번째에해당하는데이터들을소거시켜 72 비트데이터값을얻는다. 다. 비선형 S 함수비선형 S 함수는그림 4-3과같이암호함수 F 내부에서비선형함수를발생시키는기능을수행하게된다. S 함수의입력은 72 비트이고출력은48 비트크기를가진다. S 함수내부에는입력 6 비트, 출력 4비트를산출하는하부 S 함수가 12개존재하며 12개하부 S 함수의조합이전체 S 함수를구성하게된다. 식 (4-2) 는비선형 S 함수를표현한수식으로써기존의 S 함수에비하여하부 S 함수가 4 개증가함을알수있다. 표4-5는 12개의하부S 함수에대한테이블을보여주고있다. -64-

표에서알수있듯이기존 S 함수와입출력관계등이변화가없으며단지하부 S함수의개수가 4 개더증가한것이변화된내용이다. 표 4-5. 비선형 S 함수 -65-

-66-

S 함수의내용을변화시키지않은것은기존 S 함수가가지고있는비선형특성을유지하면 서더욱비도를증가시키기위한것이며 S 함수에대한자원의재사용을위함이다. S 함수를결정하기위해서는 S 함수의입출력이특별한관계를가지도록구성해야한다. 블록암호시스템의가장핵심은 S 함수에있기때문에 S함수의비선형성은매우중요하게 고려해야할파라미터이다. 라.E/P함수그림 4-3의 E/P 함수는확장과치환(expansion and permutation) 기능을수행하는블록이다. S함수의출력 48비트를 F함수의 64비트값으로매핑시키기위하여확장표를사용한다. 표 4-6은 48 비트에대하여 64 비트로확장하기위한테이블이다. 64 비트로확장되어나온값들을마지막으로다시한번치환을수행하는부분이표 4-7 이다. 표 4-6. S 함수확장배열표표 4-7. F 함수의치환표 제 2 절키스케쥴러 데이터암호블록은블록암호시스템으로구성되어있으며키스케쥴러는스트림암호시스템으로구성되어있다. 그림 4-4는스트림암호방식을적용한키스케쥴러로써주요한블록의기능은다음과같다. 1) Mixer : weight generator와 key sequence 출력, 각 chip에대한정보와 key sequence를이용하여비밀키에사용될수있는id 의확장을위한블록이다. -67-

또한비밀키방식의단점인키의확대를위하여키생성블록을보다확장시키는기능을수 행한다. 2) LFSR-128 : 스트림암호의대표적인방식인 LFSR을이용하여스트림암호를수행하며 128 비트들에대해서 8 비트씩의 chip을기준으로전체128 비트들에대한 32 비트 Chip Sequence 를생성한다. 3) Weight generator : chip sequence를생성하기위한8x chip generator 이다. 4) Time generator : key sequence의출력에서새롭게형성된 sequence를비밀키와공 개키에대하여분리또는구별하기위하여 weight generator와 key sequence의출력을 이용하여 time stamp 를형성하는블록이다. 5) Key sequence : LFSR-128의출력을기본으로하여 8x chip에해당하는정보를새로 운 sequence로설정한후새로형성된 sequence를이용하여비밀키와공개키로써사용한 다. 6) Replacement : Key sequence에서출력되는 key sequence와 Time generator의출력 인 time stamp를이용하여 8 by 4 weight and time sequence 를생성한다. 7) Merging & Expansion : Mixer 블록에서 interleaving된 mixer의출력과 Replacement 에서생성된 w-t stamp를이용하여 64 비트의크기를가지는블록데이터를생성한다. 그림 4-4. 스트림암호방식의키스케쥴러 1. Mixer 키스케쥴러의입력으로는키데이터가별도로존재하는것이아니고암호화하고자하는데이터가키스케쥴러의입력이된다. -68-

그러므로그림 4-5에서와같이 Mixer의입력은 128 비트의입력데이터와 LFSR로부터생 성된키수열이된다. 이두가지의데이터는 16 비트씩 8개의블록으로분리되며분리된 16 비트 8 블록은각각 XOR 연산을수행하게된다. 동시에 16 비트의데이터 8 블록들이 XOR 연산을수행한후 Matrix permutation을수행한후 Merging & Expansion 블록의 입력으로사용된다. Matrix permutation은 16 비트씩 8 블록들이독립적으로 XOR 연산을수행하게되며수행 된결과도역시 16 비트 8 블록으로형성된다. 이때행데이터들에대한연산결과는열데 이터의형태로출력되어진다. 입력데이터의집합을 I, 키수열의집합을 K라고하였을경우 I, K 에대한표현은식(4-3) 과같다. 그림 4-5. Mixer 식 (4-3) 에서 i 와 k는각각 16 비트씩으로구성된스트림데이터들이다. XOR 연산을수행 한결과를 M이라하였을경우 XOR 연산을수행한입력데이터들은식 (4-4) 와같이표현 된다. -69-

식 (4-4) 에서 M 역시 16 비트 8 블록이므로식 (4-5) 와같은수열을가질것이다. 식 (4-5) 에식 (4-3) 를대입하고식 (4-4) 의연산수행을행렬로표현하면식 (4-6) 과같이된다. 식 (4-6) 을정리하면식 (4-7) 과같이된다. 여기에서 ik 32 는 i 32 k 32 의연산결과임을나타낸다. 식 (4-7) 에대한매트릭스치환은식 (4-8) 과같이전치행렬로표시된다. -70-

이상과같은연산을통하여생성된 64 비트는 Merging & Expansion 모듈의입력으로사 용된다. 2. LFSR-128 LFSR-128은 8단으로구성된 LFSR이 16 개포함된의사난수발생기이다. 기본 8단 LFSR 의사난수발생기의구성은그림 4-6 과같다. 그림 4-6. 8단 LFSR 의사난수발생기 8단으로구성된 LFSR 키생성기는그림 4-6과같으며 LFSR의탭계수는 g 1, g 2, g 3, g 4, g 5, g 6, g 7, g 8 으로설정하고키부호기의초기내용은 s 1, s 2, s 3, s 4, s 5, s 6, s 7, s 8 으로되어있다. 따라서 2m=16이므로입력키수열은 K=(k 0, k 1,, k 7, k 8, k 9,, k 15 ) 이며부호화된출력키수열Z=(z 0,z 1,, z 7,z 8,z 9,, z 15 ) 이다. 모듈러-2연산에서 k j + s j = z 가 j z j + k j = s 와 j 같이교환법칙이성립되므로 8단스트림키부호생성기를해석하면다음식 (4-9) 와같은식이만들어진다. -71-

생성된키수열에대한방정식 (4-9) 를행렬형태로표현하면식 (4-10) 과같다. 그림 4-6의 8단 LFSR 의초기상태가모두 0 일경우 1 i 8이므로초기값 s 는 i 모두영의 값을가지게된다. 그러므로식 (4-10) 은식 (4-11) 과같이단순화시킬수있다. -72-

이러한 LFSR 의구조를가지고생성다항식으로표현하게되면식 (4-12) 와같이정의할수 있다. 식 (4-12) 는일반적인 LFSR에대한생성다항식으로써본연구에서사용한생성다항식은식 (4-13) 과같다. 식 (4-13) 생성다항식은탭계수 g 1 =g 6 =g 8 =1을만족하며초기값은모두 0을제외한값을사용하였다. 그러므로키출력수열 Z는식(4-13) 으로부터식(4-14) 를얻을수있다. 식 (4-14) 는식 (4-13) 의생성다항식에의한키수열을나타내는것으로써본연구에서는 식 (4-13) 의 MSB와 LSB 만을이용하도록하였다. -73-

일반적으로의사난수발생기의주기는 2 m -1로써표현되어지며이때 m값이클수록, 주기가길수록선형특성에안전하다. 그러므로 m값이긴의사난수발생기를설계하게되는데이는안전성에는좋은특성을가지지만주기에비례하여처리시간이길어지며특히동기시스템인경우오류발생시마다동기획득에걸리는시간이길어지는단점을가진다. 그러므로본연구에서는스트림암호방식의특징중하나인난수발생은한주기안에절대적으로존재한다라는것을이용한다. 즉한주기안에존재하는모든의사난수를이용하는것이아니고초기난수를암호화에이용하여주기시스템에대한주기시간의단축을이용한다. 즉 LFSR의초기값에대하여 m만큼의시간이지날때출력되는의사난수출력 Z m 을 LFSR의출력으로사용한다. 그림 4-7은 8단 LFSR을 16개동일하게사용하여 LFSR 128 블록을설계한것이다. LFSR Generator 0에서부터 LFSR Generator 15까지는동일한생성다항식을사용하는 LFSR로써모두 16개의 LFSR 로써구성되어있다. 초기입력이인가된후 8T(8 period) 까지출력되는출력수열은모두 128 비트의크기를가진다. 이때각각의 8 비트들에대하여 MSB와 LSB로분류하여 Weight generator, Time generator 의입력으로사용한다. 또한 MSB 그룹과 LSB 그룹을모두합한 128 비트는 Key sequence 로입력된다. 그림 4-7. LFSR 128 3. Weight Generator Weight generator는그림 4-8과같이그림 4-7 LFSR 128로부터출력되는데이터를재포맷(re-formating) 하는블록으로써 chip sequence를생성하기위한 8x chip generator 이다. MSB-N는 8단 LFSR의 N번째에위치하고있으며 8T가되는순간발생되어지는스트림데이터들의 MSB 에해당되는데이터이다. -74-

MSB 데이터들은 LFSR 128 블록으로유입되는최종데이터들로써유입데이터들에대한 LFSR 특징을가장잘표현하고있다. 즉 LFSR의블록에서가장잘변화가없는상태로발 생된스트림이기때문에 MSB 그룹은혼합형암호시스템의비도를측정할수있는기준으 로사용할수있다. 그림 4-8. Weight generator 이러한 MSB 데이터들에대하여위치를한번바꿈으로써복호시에원상태로복원이용이하 게되며외부의비인가자들이 MSB 데이터를획득하였다고하여도그의미를알수는없게 된다. 4. Time Generator Time generator는그림 4-9와같이그림 4-7의 LFSR 128로부터출력되는데이터를재 포맷(re-formating) 하는블록으로써 key sequence의출력에서새롭게형성된 sequence를 비밀키와공개키에대하여분리또는구별하기위하여 weight generator와 key sequence 의출력을이용하여 time stamp 를형성하는블록이다. 그림 4-9. Time generator -75-

LFSR 128에서 8T 가되는순간은데이터들에대한업데이트순간이다. 그러므로 8T가되는순간 LFSR의최종단에출력되는출력수열은현재와미래의데이터들에대한상관성 (correlation) 을추정할수있는근거자료가된다. 그러므로 LSB이존재하는시기는데이터들의변화가존재할때이므로이러한변화를감지하여데이터들에대한상관성을표시할필요성이있다. 이러한기능을표현하기위하여 time stamp 라는용어를사용하였다. 데이터들에대한상관성을인식함으로써비인가자에대한정보의변조사실여부는별도의신호처리없이도가능하다. 5. Key Sequence Key sequence는그림 4-10과같이그림 4-7의 LFSR 128로부터출력되는데이터를재포맷(re-formating) 하는블록으로써 LFSR-128의출력을기본으로하여 8x chip에해당하는정보를새로운 sequence로설정한후새로형성된 sequence를이용하여혼합형암호시스템의비밀키와공개키로써사용한다. 즉 key sequence에서출력은혼합형암호시스템에서비밀키와공개키에관한정보를모두포함하게된다. 그림 4-10과같이 key sequence 입력은 LFSR 128 로부터의의사난수입력이다. 입력되는의사난수는 8단에불과한비도가낮을수도있는데이터들이다. 그러므로이러한비도저하를방지하며혼합형암호시스템의비밀키와공개키로사용할키값을추출하기위하여재포맷을수행한다. 이러한재포맷과정은치환연산을사용하지않고데이터들에대한매트릭스포맷을수행함으로써외부로혼합형암호시스템에대한자료가노출되어도그값을파악하기어렵도록하였다. 그림 4-10. Key Sequence -76-

Key sequence 블록은의사난수발생기를통하여생성된데이터들에대하여전체적으로재포맷을수행하며수행과정은그림 4-11 Matrix weight 블록에서수행된다. 그림 4-11. Matrix weight 블록 그림 4-11은매트릭스연산을수행하는블록으로써유입되는 128 비트데이터들에대하여행렬로써표현하면식 (4-15) 와같이표현된다. 식 (4-15) 는 LFSR 128 에대한데이터들에대한행렬표현식이다. 식(4-15) 의행렬에서대 각행렬에대한데이터들을별도의데이터로취급하기위하여그림 4-11과같이데이터포맷 팅을수행한다. 이때생성되는별도의데이터는 rect와 orth 이다. 각각의데이터들은 16 비 트의크기를가지고있으며 rect와 orth에대한데이터값들의복원및생성을용이하도록 하기위하여 128 비트유입데이터들에대하여정방행렬의대각데이터만을데이터로추출 하여사용하였다. 정방행렬의대각에대한값을추출하기위하여식 (4-15) 에서 64 비트씩 두블록으로분리하여 rect와 orth 값을추출하였다. 식 (4-16) 은분리된두블록을표시한 다. -77-

여기에서두블록의범위는식 (4-17) 과같다. ax +bx는 mixer의입력으로사용되며 rect와 orth 는인증용, 즉공개키로사용하기위하여 XOR 연산을수행하게된다. 또한비밀키로사용하기위하여 rect와 orth 는단순합인 & 을수행하여 replator 의입력으로유입된다. 6. Replacement Key sequence는그림 4-12와같이 Key sequence, Weight generator, Time generator 의출력을받아서데이터재포맷을수행하는블록으로써 64비트크기를기지는암호용키 를생성시키기위한 16 by 8 weight and time sequence 를생성한다. LFSR로부터생성된 의사난수에대하여 8T시간동안에새롭게데이터들에대한재배치를위한포맷팅기능을 수행한다. LFSR의취약성을보완하는기능을수행하기위하여 Key sequence, Weight generator, Time generator의출력을받아 64 비트의새로운키수열을생성한다. 그림 4-12. Replator 블록 -78-

7. Merging & Expansion Key sequence는그림 4-13과같이 interleaving된 mixer 블록의출력과 replator 블록에서생성된 weight-time stamp를이용하여 64 비트의크기를가지는새로운블록데이터를생성한다. mixer(m) 의 MSB와 replator(r) 의 MSB를 XOR 시키고 mixer의 LSB와 replator 의 LSB를 XNOR 시킨후 MSB와 LSB 를합하여출력한다. 이때출력되는데이터는 Auth. 데이터를포함하며 80 비트의크기를가지게된다. Auth. 데이터는 key sequence 블록에서생성된 16 비트의데이터로써송신자의인증용으로사용되게된다. 그림 4-13. Merging & Expansion 그림 4-13 에 & 는단순데이터통합을의미한다. 출력되는데이터의프레임구조는그림 4-14 와같다. 그림 4-14에서와같이키스케쥴러에서출력되는최종출력값은 80 비트의크기를가지며이들중 64 비트는데이터암호화에사용되며나머지 16 비트는송신자에대한인증용으로사용된다. 그림 4-14. Mergin & Expansion 프레임포맷 -79-

mixer의데이터 M = {m 0,m 1,,m 62,m 63 }, replator의데이터 R = {r 0,r 1,,r 62,r 63 } 에대하여정리하면식 (4-18) 과같다. 그림 4-13의전체출력 Key_out 은식 (4-18) 의결과식과 Auth. 데이터를합한것으로써식 (4-19) 와같다. 여기에서 and 는 & 와같이단순합을의미하며 는비트들끼리의 XOR, 비트들끼리의 XNOR 연산을의미한다. 식 (4-19) 를행렬로표현하면식 (4-20) 과같다. 식 (4-20) 에서와같이 XOR, XNOR의연산이 bit by bit 연산을기본으로수행하기때문에각스트림들에대한연산은가중치(weight) 가없는단순2 진데이터연산이다. -80-

이러한단순연산의결과산출되어지는데이터스트림은그림 4-14와같이사용목적에따라별도의포맷을수행하게된다. 즉데이터암호용으로는 XOR, XNOR 연산의결과값을사용하며인증용으로는 Auth. 의값을사용하게된다. 8. 혼합형암호시스템기존혼합형암호시스템(hybrid cryptosystem) 은그림 4-15 와같다. 일반적으로혼합형이라함은블록암호시스템과스트림암호시스템의결합을의미한다. 그림 4-15와같이기존암호시스템은 LFSR의출력수열을블록암호시스템인 DES 의키스케쥴로써사용한다. 그러므로 DES의데이터블록의크기가 m인경우 LFSR의출력수열의크기는 m을가진다. 즉블록암호시스템의블록크기가스트림암호시스템의키수열의크기와같아야한다. 그러므로안전성을위하여블록크기를매우크게해야한다는결론을가진다. LFSR에의한의사난수발생은 LFSR 의출력수열에대한주기가길수록안전성을가지게된다. 그러나 LFSR 의출력수열의안전성을위하여주기를매우크게설정할경우블록암호시스템의블록데이터의크기가따라서증가해야한다는결론이다. 결국에는너무많은데이터의암호화를위하여너무많은잉여분(redundancy) 을산출하게된다. 그러므로암호화에대한효율성이떨어지게된다. 그림 4-15. 기존혼합형암호시스템 대칭형암호시스템의특징중의하나는비밀키를가지고있다는것이다. 그림 4-15에서 K 라는비밀키를송신자와수신자가동일하게가지고있어야한다. 그러므로사용자수가증가하거나암호화하여전송해야할데이터의블록크기가매우길어진다면대칭형암호시스템의장점인처리속도효율이크게저하될것이다. 또한암호화된데이터와키데이터량이방대하여암호화자체성능도저하된다. -81-

그러므로본연구에서는그림를가지고암호화를수행하는것이아니고그림데이터로사용하며키수열생성은상관없이키수열을생성할수있도록하였다. 4-15와같이암호화하고자하는데이터와별개의키데이터 4-16과같이암호화하고자하는데이터를키 LFSR과키재포맷팅을이용하여블록데이터의크기에 그림 4-16. 제안된혼합형암호시스템 그림 4-16과같이입력데이터 X에대하여키스케쥴러에서 X에의한키값 K를생성하고생성된키값 K와입력데이터 X를이용하여암호화된출력값 Y 를생성한다. 또한키스케줄러에서는암호화용키값과인증용수열을동시에생성하며이두값은전송로(channel) 를통하여수신자에게전송된다. 그림 4-16과같이제안된혼합형암호시스템은기존혼합형암호시스템과는확연한차이를가진다. 즉기존혼합형암호시스템은비도를증가시키기위해서는 LFSR의주기를길게해야하며이로인한블록데이터의값도따라서증가되는단점을가지고있다. 또한데이터와키값을별도로사용함으로써암호화에필요한자원관리를항상염두에두고있어야한다. 특히키값은고정된값으로존재하게되므로비인가자의키값획득은암호화의필요성을무력화시키게되는중요한요소를가지게된다. 그러나본연구에서제안된그림 4-16과같은혼합형암호시스템은유입되는정보데이터를기반으로암호화에사용되는키값을생성하므로데이터에다라서암호화패턴이변화된다. -82-

제 3 절미상신호검출및 signature 업데이트 미상신호(unknown signal) 란사용자가원하지않는신호또는사용자의정보를변조하거나파괴할수있는신호를의미한다. 그러므로미상신호란바이러스, 의사바이러스, 비인가자에대한의도적인신호등을의미하게된다. 사용자의플랫폼에침투하여특정정보유출및파괴를목적으로생성된프로그램인바이러스는일반프로그램과는다른특정패턴을가지고있다. 이러한특정패턴은컴퓨터내부에서발생하게되는바이러스감염또는바이러스침입을탐지할수있는근거자료로써사용되기도한다. 자기복제기능, 은폐기능, 파괴기능등과같은바이러스특징을모두파악할수만있으면안티바이러스를이용하여미상신호로부터의사용자정보의방어는가능해진다. 그러나이러한바이러스와는다르게의사바이러스가커다란문제점으로부상되었다. 이유는의사바이러스를바이러스로인식하여삭제하면되지만바이러스로인식하지않고정상적인데이터로인식하는경우가많기때문이다. 의사바이러스는바이러스와는구별되는것으로써바이러스는아니지만형태나목적이바이러스와유사하기때문에의사바이러스라는용어를사용하게된다. 일반적으로의사바이러스는컴퓨터에침입하여사용자가인식하지못하게사용자에대한정보를유출시키는것이주요한목적이다. 그렇기때문에컴퓨터에대한성능의저하보다는정보유출및변조에매우신경을써야하며바이러스와같은등급의보안이유지되어야한다. 특히바이러스에감염된것과동일한증상을보이지않기때문에더욱주의해야할사항이다. 방화벽은인터넷과컴퓨터네트워크사이에위치하며주로 TCP/IP protocol header의정보를이용하여외부로부터의접근을통제하는 access control device 이다. 일부방화벽은 content filtering을통해더욱정교한 access control 기능을수행하지만네트워크병목을지키는방화벽이복잡한프로세싱을수행한다는것은현실적으로처리시간때문에매우낮은성능을가지게된다. 또한방화벽은외부침입자에대해서는어느정도필터링이되지만내부침입자인경우속수무책인경우가많이발생하기때문에방화벽에대한보완대책이필요하다. IDS에대한침입탐지기술은행위기반침입탐지및지식기반침입탐지로분류될수있으나두종류모두signature 에의존하는형태를벗어나지못한다. -83-

안티바이러스, 방화벽, IDS는외부로부터비인가신호에대한방어기능을수행하여플랫폼보호, 정보유출및변조를방어하는기능을수행한다. 그러나이러한시스템들의공통점은 signature 를통한업데이트를수행해야한다는것이다. 즉지속적인업데이트가수행되지않으면비인가신호로부터플랫폼보호를수행할수없다는것이다. 그러므로알려진또는알려지지않은신호들에대하여각사용자들은정보에대한분류및 DB 화작업을수행하는것이다. 그러나정보통신이발달하면서네트워크로의접근이용이해지고이로인한비인가자에의한미상신호발생및형태에대한종류도이루헤아릴수없을정도로증가하고있다. 이러한기하급수적인정보의검색은현실적으로불가능하다. 그러므로본연구에서는지속적인업데이트에대한기준을미리설정함으로써기준에다른정보분류의효율성을높이고자한다. 이러한정보분류는단순하게 signature에대한업데이트뿐만이아니고업데이트에사용되는프로세서의부하를줄임으로써플랫폼성능의효율도높이고자한다. 그림 4-17. 제안된침입탐지시스템 그림 4-17 은유입되는미상신호를검출하기위한시스템이다. 제안된침입탐지시스템은 미리설정된기준값을이용하여바이러스, 외부비인가신호, 내부비인가신호에대한검출 및차폐기능을수행하게된다. -84-

위의기능을수행함에있어 DB 업데이트는기존시스템과동일하며단지기준에의한분류만다르다. 그림 4-17에서비교대상에대한기준은표4-8 과같다. 표 4-8. 침입탐지시스템종류별판단기준 패턴 특징 원리 증상 판단기준 o 자기복제기능 o 메모리부족현상 o 종속적행동 바이러스 o 은폐기능감염사실 o 처리속도저하 o 기존패턴 o 파괴기능확인 o 부팅정지 o 전파경로파악 o 전파경로로다양 o 파일크기변화 odata확인 o 특정 ID에의한접속외부 o은폐기능 o 접근제어변화사용자 o 게이트웨이감시비인가신호 o파일복제시 o 무인식실행 o 프락시감시 ( 의사바이러스) 사용자가실행 o 접근제어변화 o Distributed attack o은폐기능 내부 o파일복제시사용자 oidm의 signature o 무인식비인가신호사용자가실행실행보안등급변화 o네트워크그룹 그림 4-17과표 4-8 에서보듯이비교, 수행하는순서는정해진다. 바이러스, 외부비인가신호, 내부비인가신호는발생빈도가높은순서부터낮은순서대로나열된다. 그러므로발생빈도가높은바이러스에대한검출을최우선적으로수행할필요성이있다. 표 4-8 에서표시한판단기준은패턴들에대한특징을고려하여결정된다. 즉바이러스인경우바이러스특징을고려하여계속적인업데이트를수행한다. 이러한판단기준은기존과같이안티바이러스, 방화벽, IDS에대한판단기준과유사하지만각단계별로선택된기준은표 4-8 을기준으로하여안티바이러스, 방화벽, IDS의공통되는부분을우선적으로선택하여사용한다. 이러한결과로각각에대한미상신호의검출을독립적으로수행하는것이아니고미리정해진순서에의하여수행되기때문에별도의미상검출기가필요없게된다. -85-

또한별도의미상검출기가필요없게되므로업데이트를위한플랫폼사용효율도증가하게된다. 기존의방화벽인경우별도의프로세서가존재하여비인가신호에대한검색을수행하였지만플랫폼포트에서의미상신호검출로인한별도의프로세서가필요없게되는점도본연구에서제안한방법의장점이다. 제 4 절혼합형암호시스템 1. 데이터암호블록 그림 4-18 은제안된혼합형암호시스템에서데이터를암호화하는블록이다. 암호화를수행 하는데있어서사용되는하부블록은그림에서보는것과같이 6개의기능블록으로구성되 어있다. 데이터암호블록은블록암호시스템을기본으로하여 Feistel 구조와 SPN을동시에사용하 고있으며iteration은수행하지않고단지1 회의데이터연산만을수행하도록되어있다. 그림 4-18. 데이터암호블록 마.ip128블록 그림 4-19는 128 비트에대한초기치환(IP) 을수행하는기능블록이다. 입력값에대하여출 력은표 4-1과같은치환을수행하게되며치환된데이터는입력데이터의크기와동일한 128 비트의데이터값을가지게된다. ip128의기능블록은 performance를높이기위하여 wired logic 으로설계하였다. behavioral level에서 table 구문을사용하여구현하였으며구 현된 ip128은 wired logic 상태로구현되었다. ip128은입력값에대하여초기치환을수행하는동시에다음단의 64 비트레지스터블록으 로데이터를천이시키는기능도함께수행하게된다. -86-

그림 4-19. ip128 기능블록 나.load_reg64블록 그림 4-20은 64 비트에대한데이터를저장시키는기능을수행하는레지스터기능블록이 다. 그림 4-20. 64 비트레지스터기능블록 그림 4-20의 64 비트레지스터기능블록은 ip128에서초기치환된데이터들에대하여 64 비트씩좌우로분리된데이터들을잠시저장하는기능을수행하게된다. Feistel 구조한단(single stage) 에서데이터들을좌우로분리하여처리하는데이때데이터들을좌/ 우분리한후데이터들에대한동기처리를수행하기위한레지스터기능을수행하게된다. 레지스터의 load 단자는이러한동기처리를수행하기위한제어단자로써작동한다. 다.f_func블록그림 4-21 f_func 블록은그림 4-1의 Feistel 구조에서 F-Func. 기능을수행하기위한기능블록이다. 비선형함수인 F 암호함수에대한기능을실현하는블록으로써내부를구성하는블록으로써는 f_expansion80, xor80, f-com, s_table, f_expansion64, f-perm의기능블록이포함된다. 그림 4-21. f_func 블록 -87-

f_func 기능블록은입력으로초기치환된후좌/ 우로양분된 64 비트들값과 hybrid key를입력으로받아비선형연산을수행하게된다. 1) f_expansion80 블록 그림 4-22는비선형암호함수인 F 암호함수에서비트수를조정하기위하여 80 비트의데 이터를 80 비트로확장시키는기능을수행하는기능블록이다. 80 비트로확장을수행하는 f_expansion80은확장재배열기능을수행하게되는데표 4-3 과같이미리설정된표에의하여기능을수행하게된다. 비선형함수로유입되는키값은키스케쥴러블록에의하여 80 비트의크기를가지며 F 암 호함수로유입되는데이터는 64 비트의크기를가지므로 64 비트를 80 비트로확장시키는 기능을수행하여야한다. 이러한기능을담당하는블록이 f_expansion80 이다. 그림 4-22. f_expansion80 기능블록 2) xor80 블록그림 4-23은 XOR 연산을수행하는블록으로써비선형함수 F 암호함수에서 hybrid key와확장재배열된데이터값들에대하여 80 비트논리합연산을수행하게된다. 80 비트의 XOR 연산은 Feistel 구조에서 F 암호함수에대한정의로써표현하고있다. 그림 4-23. xor80 기능블록 3) f_com 블록그림 4-24는 F 암호함수에서비선형기능을수행하는부분인 S 함수에데이터를전송하기 위하여 80 비트의데이터를 72 비트의데이터로압축하는기능을수행하는블록이다. -88-

표 4-4는 80 비트의크기를가진데이터를 72 비트의크기로압축하기위한정해진표이다. 80 비트의데이터들에대하여열번째에해당하는데이터들을제외한 72 비트의데이터들에대하여치환을수행한후데이터값을출력하도록구성되어있다. 그림 4-24. f_com 기능블록 4) s_table 블록그림 4-25 는블록암호시스템에서유일한비선형특징을보인다. F 암호함수의핵심은 S 함수인데이러한 S 함수를구현한것이그림 4-25 이다. 그림 4-25. s_table 기능블록 S 함수는 6 비트가유입되어 4 비트의비선형데이터를출력하는비선형함수이다. 이러한 S 함수를 12개블록으로배열하고각각에대한테이블값은표 4-5 와같이설정하게된다. 그러므로입력은 6 12=72 비트의크기를가지게되며출력은 4 12=48 비트의크기를가진다. 72 비트의크기는비선형함수 s_table을거치게되면 48 비트의크기를가진비선형함수를가지게된다. -89-

기존 S 함수의값과중첩되는값을제안된 S 함수에적용하였는데이는기존함수를재사용할수있으며비도의변화를주지않기위한것이다. 5) f_expansion64 블록 S 함수의출력이 48 비트를가지므로 64 비트로확장할필요성이있다. 그림 4-26은 F 암호함수내의 48 비트를 64 비트로확장하기위한기능블록이다. 이러한확장은표 4-6의 S 함수확장재배열표에의하여수행되어진다. 그림 4-26. f_expansion64 기능블록 6) f_perm 블록 f_perm 기능블록은 f_expansion64와더불어 S 함수에대한치환을수행하는부분이다. 그림 4-27은 S 함수의출력에대하여치환을수행하는부분으로써표 4-7의치환표에의하여수행되는기능블록이다. 그림 4-27. f-perm 기능블록 라. buffer64 블록그림 4-1의 Feistel 구조에서왼쪽레지스터는 F 함수의결과값과 XOR연산을수행하여다음단의오른쪽레지스터에연산결과를보낸다. 이때오른쪽레지스터는 F 함수의입력에입력값으로데이터를보내는동시에다음단의왼쪽레지스터에데이터를전송하게된다. 이와같이교번적으로데이터를처리하기때문에데이터의유입동기를맞추어주어야할필요성이존재한다. buffer64는그림 4-1의 Right64와 Left64의사이에존재하는버퍼로써이러한동기를맞추어주기위한기능을수행하게된다. -90-

그림 4-28. buffer64 기능블록 마.xor64블록그림 4-29는 64 비트의크기를가진데이터들에대하여 XOR 연산을수행하는기능블록으로써그림 4-1의 Left64와 F-Func의 XOR 연산을수행한다. Feistel 구조에서왼쪽과오른쪽에대한연결고리로써 XOR 연산을수행하게되는데이는 Feistel 구조의특성상좌/ 우교번이라는역할이존재하기때문이다. 그림 4-29. xor64 기능블록 바.iipl28블록 그림 4-30은 128 비트에대한역초기치환(IIP) 을수행하는기능블록이다. 입력값에대하여 출력은표 4-2와같은역치환을수행하게되며치환된데이터는입력데이터의크기와동 일한 128 비트의데이터값을가지게된다. iip128 기능블록은 performance를높이기위하여 wired logic 으로설계하였다. behavioral level에서 table 구문을사용하여구현하였으며구현된 iip128은 wired logic 상태로구현 되었다. iip128은입력값에대하여역초기치환을수행하는동시에암호화된출력을전송하기위한기능을포함한다. 그림 4-30. iip128 기능블록 -91-

사. 데이터암호블록그림 4-1에대한회로구현이그림 4-31 이다. 그림 4-31은지금까지의기능블록들이포함된데이터암호블록으로써그림 4-18 의데이터암호블록에대한구현된암호시스템이다. 그림 4-31 은데이터를암호화하는기능을수행하는전체블록이다. 한단(single stage) 짜리로구성된 Feistel 구조와 SPN이포함된회로로써제어신호인 clkn, rst, load_reg가있으며입력은 data-in[127:0] 으로 128 비트의데이터가유입되며 key[79:0] 으로 hybrid key 가입력된다. 출력은 data_out[127:0 ] 으로암호화가수행된암호문이출력된다. 그림 4-31. 데이터암호블록 그림입력데이터는키값은암호화된데이터는 4-32 는데이터를암호화하는데이터암호블록에대한모의실험결과이다. 0123456789ABCDEF0123456789ABCDEF 이며 0010440880FF1001441881FF 이다. AA808D8D82080FAD7072FF55D0587775" 이다. -92-

그림 4-32. 데이터암호블록의모의실험결과 2. 키스케쥴러블록그림 4-33 은제안된혼합형암호시스템에서데이터를암호화하기위한키생성블록이다. 암호화에필요한키값을생성하는데있어서사용되는하부블록은그림에서보는것과같이 9 개의기능블록으로구성되어있다. 데이터암호를위한키스케쥴러블록은스트림암호시스템을기본으로하여 LFSR의의사난수발생및 SPN을동시에사용하고있으며암호화를수행하기위한키생성뿐만이아니라송신자에대한인증용데이터까지출력한다. 그림4-33. 키스케쥴러블록 -93-

가.buffer128블록 buffer128 블록은그림 4-34 와같이입출력포트가구성되어있다. 그림 4-34. buffer128 기능블록 buffer128 기능블록은유입신호에대하여암호화를처리하는첫관문으로써암호화를수행중이거나수행한후에유입데이터가비인가자에의한신호임이밝혀지면 system_en 단자에의하여 buffer128 은격리된다. 그러므로암호화에관련된모든동작은멈추게되며비인가신호를차단하게된다. 즉암호화및정보누출방지에대한게이트역할을수행하는기능블록이다. 나. preformat 블록 그림 4-35는키데이터를처리하기전에미리데이터에대한포맷을정리하는기능을수행 하는블록으로써 mixer의입력으로사용할데이터 16 비트씩 8개의블록으로구별하는동 작을수행한다. 키스케쥴러의입력은기존암호시스템과같이특정데이터를사용하는것이아니고암호화 를수행하고자하는평문을입력으로받아키열을생성하는것이므로키생성에적합하도 록미리포맷팅을수행할필요성이있다. 그림 4-36 preformat 블록은이와같이데이터 처리에대한전처리과정을수행하는기능을한다. 그림 4-35. preformat 기능블록 다. lfsr128 블록 그림 4-36은 lfsr128 블록으로써내부에는 8단으로구성된 lfsr8 블록이존재한다. -94-

lfsr8 에대한생성다항식은식 (4-14) 와같으며이를이용하여구현한 lfsr8은주기가 2 8-1 의길이를가진다. 본과제에서사용되는길이는 8T만을사용하므로실제적으로 LFSR의주기는크게비도를좌우하지는않는다. lfsr8을 16개모아놓은것이 lfsr128 이다. lfsr8 16 개의모듈은각각 8T 동안동일한값을출력하게되며이렇게출력된값들은 weight generator, time generator 그리고 key sequence 의입력으로사용된다. 그림 4-36. lfsr128 기능블록 라.keySeq블록그림 4-37은 key sequence 블록으로써키생성수열을수행하는기능블록이다. 8 비트 16개의블록데이터를입력으로받아서내부의 key matrix연산을수행한후 mixer와 replacement 블록으로데이터를전송한다. 이때인증용데이터 16 비트를생성하게되는데이는키스케쥴러블록의최종출력값에더해져인증용으로사용된다. 그림 4-37. keyseq 기능블록 마. weightgen 블록 그림 4-38 weightgen 블록은 weight generator로써 lfsr128로부터출력되는데이터를재 포맷하는기능을가진다. lfsr128로부터 MSB와 LSB 데이터를분리하여데이터의위치를 변화시키는기능을수행한다. -95-

그림 4-38. weightgen 기능블록 바. timegen 블록그림 4-39 timegen 블록은 time generator로써 lfsr128로부터출력되는데이터를재포맷하는기능을가진다. 이러한기능은 key sequence 출력에서새롭게형성된수열을비밀키와공개키로분리하기위하여time stamp 를생성하게된다. 그림 4-39. timegen 기능블록 사.mixer블록키수열생성은평문을사용하여수행되기때문에평문에대한알려진평문공격을당하지않기위해서는평문에대한근거를제거할필요성이있다. 이러한기능을담당하는부문이그림 4-40의 mixer 기능블록이다. mixer 기능블록은그림 4-5와같은기능을수행함으로써평문과생성되는키수열의상관성을줄인다. 그림 4-40. mixer 기능블록 아.replator블록그림 4-41 replator 기능블록은 key sequence, weight generator, time generator의데이터를받아서재포맷을수행한다. key sequence, weight generator, time generator의데이터에대하여새로운데이터포맷을결정함으로써 time stamp에의한암호용키수열생성을수행하도록한다. -96-

그림 4-41. replator 기능블록 자.mexp블록그림 4-42는 mexp 기능블록으로써데이터에대한 merging과 expansion 기능을수행한다. interleaving된 mixer 블록의데이터와 replator 블록에서생성된 weight-time stamp를이용하여 64 비트크기를가지는새로운블록데이터를생성한다. 그림 4-42. mexp 기능블록 차. key schedule 블록그림 4-43 key schedule 기능블록은평문을입력으로받아평문과의상관성을배제하고평문을암호화할수있는키수열을생성하는부분이다. 또한인증기능을위하여 16 비트의인증용데이터를생성하는부문으로써대칭형암호시스템과비대칭형암호시스템의기능을모두수행할수있도록시스템을설계하였다. key schedule 블록의입력은암호화하려는데이터를이용하였으며제어신호에의하여인증용과키데이터를생성하도록하였다. 그림 4-44 key schedule 블록의모의실험결과이다. 입력은 1F122F2030670012 이며데이터인증용출력은 8181 이고킷값은 01018080FFFF00008181 의데이터가출력된다. -97-

그림 4-43. key schedule 기능블록 그림 4-44. key schedule 모의실험결과 3. 미상신호검출블록 그림 4-17과같이미상신호검출을위하여입력되는미상신호에대하여미상신호를종류별 로비교/ 검색하여비인가신호를차단하는기능을수행한다. signature1, signature2, signature3은 RAM을사용하며비교기와더불어미상신호를비교 한다. 유입되는미상신호의데이터크기는 128 비트로블록킹(blocking) 을수행하여제안된 IDS 검출기에유입시킨다. 각비교기에서는유입된신호와 signature를비교하여미상신호에대 한정보가있으면비인가신호로규정하여시스템을정지시킨다. 만약 signature에등록된 정보가없으면다음단의비교기에데이터를전송하고다음단의 signature와비교동작을수 행하도록한다. -98-

그림 4-45는제안된 IDS 검출기로써 signature 블록은그림에서와같이메모리영역에서 계속적인업그레이드와비교동작을위한자료를제공한다. 128 비트의크기를가지는입력은 32 비트씩순차적으로각각의비교기를거치게되며마 지막단의비교기를통한비교/ 검색까지는 4 번의데이터를검색하게되어있다. signature에사용된 RAM은 256 by 32 bits로써 address 라인은 8 비트로써 256개의 address 를가지게된다. signature에대한업데이트는마지막단의비교기를통한검색이완료되면각 signature에 서 비교결과를 normal application program에 전달하고 이에 대한 결과에 따라서 각 signature 에업데이트를결정하게된다. 그림 4-45에서입력되는미상신호는 signature와비교및검색을수행하는데이때데이터 크기는각각 32 비트씩의데이터이다. 연산된결과 signature에등록된정보일경우바로 시스템을정지시키며 signature 등록사실이없을경우다음단으로입력신호를전송하는기 능을수행하게된다. 그림 4-45. 제안된침입탐지검출기 -99-

그림에서와같이입력데이터는 32 비트씩분리되어대기상태가되고 signature에서는 addr0 addr255까지 32 비트씩으로저장된데이터를비교기에출력한다. 비교기에서는입력데이터와 signature 데이터를비교하여동일한데이터라면시스템을정지시키고동일하지않으면다음비교/ 분석단계로넘어간다. 이상과같이제안된 IDS 검출기에대한동작은다음과같다. 1) 입력데이터 32 비트는먼저처음단 signature의 addr255 의데이터와비교를수행한다. 같으면 1, 다르면 0 의값을산출한다. 이러한과정을 addr0 까지계속한다. 2) 출력되는 256 비트의결과값중만약하나라도 1 의값을가지면시스템은정지되고그렇지않으면다음단으로진행한다. 3) (1),(2) 의과정을 3 단까지계속수행한다. 그림 4-46. 제안된 IDS 검출기전체블록도 그림 4-46은제안된 IDS 검출기전체구조를나타내는블록으로써구성블록은 comparator, controller, ram256x32 이다. ram256x32는기존데이터들에대한 DB로써입력신호에대한비교대상이되는블록이다. comparator는입력과 DB와비교동작을수행하는곳으로써한번연산에 32 비트를처리하며 256번의비교동작이끝나야 DB 안의한종류에대한검색이완료된다. 그림 4-47은 32 비트의데이터들에대한비교분석을수행하는블록이다. 32 비트의데이터결과값은레지스터에저장되며 256개의데이터가저장되면제어부에서이를판별하여시스템정지및유지에관한결정을출력한다. - 100 -

그림 4-47. 비교/ 검색기능블록 그림 4-48. DB 저장용 RAM 기능블록 그림 4-48은 DB 저장용메모리로써어드레스는 8 비트의크기를가지며입력은 32 비트 의크기를가진다. read 동작은 oen 단자의활성에따라서제어되며 write 동작은 wen 단 자에의하여결정된다. 그림 4-49. 제안된 IDS 검출기합성블록 - 101 -