Open - Yobi for NewHeart

Download Report

Transcript Open - Yobi for NewHeart

압축 알고리즘 과 시스템
보안에서의 활용
인하대학교
정보통신공학부
송상헌
목차
I.압축 은 도대체 왜?
II.압축 은 도대체 무엇이?
III.압축 은 도대체 어떻게?
IV.LZ( Lempel – ZIV) 압축 알고리즘
V.압축과 보안
압축 은 도대체 왜? - Non 압축 데이터
영상 : 40초 분량
음악 : 1시간 30분 분량
이미지: 500장
출처 : samsung
압축 은 도대체 왜? – 방송에서의 압축
압축은 도대체 왜? - 네트워크 시대
글로벌 네트워크 시대에 이미 살고 있으며,
빠른 데이터 전송 방식과 의미 전달의 효율성을 극대화 시키기 위함.
실시간 데이터 처리, 실시간 영상 처리 등의 이른바 네트워크 시대의 중요성
대두
- 무 손실 압축
- 손실 압축
압축의 분류
무손실 압축
무손실 기법은 비트 보존 압축 기법이라고도 하며, 압축한 데이터를
복원했을때 복원한 데이터가 압축 전의 데이터와 완전히 일치해야 한다. 즉
복원한 비트 스트림 이 압축 전의 비트 스트림과 같아야 한다는것이다. 이
기법은 압축 할 때 압축할 데이터에 어떠한 변경이나 수정을 하지 않으며,
멀티미디어 정보에서 정확성이 생명인 데이터들의 압축에 이용
ex> .exe 파일 .bash 파일 등
압축의 분류
손실 압축
복원한 데이터가 압축 전의 데이터와 일치하지 않는 경우로 사운드나
비디오와 같은 연속적인 미디어 데이터를 압축하는데 적당하다. 그러나
복원한 데이터와 압축 전의 데이터가 일치하지 않는다고 본래의 정보와
다르다고 느낄 정도로 손실되어서는 안 된다. 사용자는 손실 기법으로 압축,
복원한 데이터를 볼 때 본래의 데이터와 거의 동일하다고 느낄 뿐이다 따라서
객관적인 평가가 필요하다.
ex > MP3파일 , JPEG 파일
압축의 분류
압축 확장자
윈도우의 대표적인 압축파일 확장자
ace, WINACE 라는 프로그램을 통해압축
매우 우수한 압축률을 가지고 있고, 분할 압축 가능
러시아에서 만들어진 압축형식, rar과 winrar 프로그램을
사용, 분할압축이 가능하고, 매우 안정인 특징이 있음.
유닉스,리눅스에서 사용하는 압축포멧
용량이 압축되기보다는 여러파일을 하나로 묶어줍니다.
WINZIP을 이용하여 압축하고 풀 수 있으며
GZIP으로 압축하여 .TGZ 확장자를 사용하기도 합니다.
- Run Length
- Huffman Tree
- Lempel - Ziv
How to compress DATA !
1.
2.
3.
4.
겹치는 데이터를 제거
필요 없는 부분을 삭제
반복되는 부분을 통일
데이터의 기호화
기본 압축 알고리즘 - 1. Run Length
단순히 문자가 이어서 반복되는 경우 그것을
문자와 개수의 쌍으로 치환하는 방법.
2. Huffman Coding
Data : ACABFEAFDE
2. Huffman Coding
"ACABFEAFDE"
transform to
000111000110111000
1101010
3. Lempel - Ziv Algorithm
Run Length 알고리즘과 유사
But 강력하고 유용하다
- Sliding Window Queue
- Hash Table
- 알고리즘 시연
LZ 알고리즘 구현
Queue - Sliding Window
Hash Table
LZ 알고리즘 구현
1. Queue - Sliding Window
FIFO ( First Input , First Out) 구조
큐에는 압축할 파일에서 문자를 하나씩
읽어서 저장해 놓는다.
Front는 큐의 get() 명령 시 빠져나올
원소의 위치이고
Rear는 큐의 put() 명령 시 새 원소가
들어갈 위치를 의미한다.
Sliding Window
상대위치 : 15 - 6 = 9
첫문자 : D
길이 : 5
LZ 알고리즘 구현
2. Hash Table
데이터를 담아 놓을 테이블
미리 데이터를 담아 놓는 테이블을
만들어 놓고 Sliding Window가 움직임에
따라서 동적 사전이 만들어 지는데,
만들어지는 동적 사전에 따라서 담는
정보를 해시 테이블에 담음
LZ 알고리즘 구현
LZ 알고리즘 - 패턴 찾기
LZ 알고리즘 구현
Decoding
시연
시연
시연
- Packer, 압축을 PE에 삽입하자
- 압축형식 파일, 복원이 가능 할 것 인가?
- 22세기 시스템의 위기
V-I 패커 란?
패커 란?
패커 란?
V-II 삭제된 파일 복구?
- 파일의 메타 데이터의 삭제 Flag 기반 복구
- 파일시스템은 일반적으로 파일 삭제 시 데이터 영역이나
메타데이터 영역을 덮어쓰지 않고, 삭제 관련 Flag만 수정하여
데이터를 관리한다. 따라서 추가적인 작업으로 인해 삭제파일이
다른 파일로 덮이지 않았다면 복구가 가능하다.
• 복구하고자 하는 파일의 메타 정보와 데이터가 온전하다면 100%
복구
• 운영체제 별로 차이가 있음
• 윈도우의 경우 시스템 파티션이냐 아니냐에 따라 차이가 있음
• 데이터 카빙은 바이너리 스트림에서 의미 있는 정보를 획득하는
기법, 개별 파일 구조에 기반하여 복구 데이터 카빙 (Data Carving)
• 그래픽, 문서, 텍스트, 특정 데이터 구조, 문자열 등
특히 압축 형식 미디어 파일에 유용 JPEG, MP3등 다양한 미디어
압축 포맷에서 적용 가능
연속적 카빙 기법
• 헤더/푸터
카빙
• 램 슬랙 카빙
• 파일 크기 카빙
• 파일 검증 카빙
헤더/푸터 카빙
- 어떤 데이터 는 데이터의 시작과 끝을
알리는, 헤더 , 푸터를 가지고 있음
- 이때 가지고 있는 데이터의 포맷에 따라서
각각 다른 footer , header를 가지게됨.
헤더/푸터 카빙
헤더/푸터 를 어떻게 찾지?
헤더/푸터 카빙 의문점
헤더/푸터 + 램슬랙
램 슬랙은 파일 데이터가 512의 배수로 떨어지지 않을 경우 0×00으로
채워지는 영역을 말한다. 따라서, 512 배수로 떨어지지 않았다면 푸터
시그니처 이후에 0×00 값이 나올것이다. 512로 떨어졌다고 하더라도
512의 마지막에 푸터 시그니처가 나오게 된다. 이 점을 이용하여 “FF D9″
이후에 0×00이 나오는 데이터를 찾은 후 연속된 파일의 “FF D9″를
제외하면 쉽게 조각난 JPEG의 푸터를 찾을 수 있다.
비 연속적 카빙 기법
시그니처 (Signature) 탐색
엔트로피 (Entropy)
바이트 분포 (Byte Frequency
Distribution)
바이트 편차 (Rate of Change)
엔트로피?
엔트로피? 무질서
엔트로피? 압축?
압축된 파일의 엔트로피?
압축파일에 엔트로피
패턴을 통한 파일 복원
An adaptive method to identify disk cluster size based on block content(2010)
V – III 시스템의 위기
V – III 시스템의 위기
V – III 시스템의 위기
비행기, 자동차, 동영상 등 다양한 곳에서 Lempel-Ziv
알고리즘이 압축처리 방식으로 사용
V – III 시스템의 위기