1. ■ 컴퓨터보안학과 1학년 A반 박동진
■ 컴퓨터보안학과 1학년 A반 정윤상
■ 컴퓨터보안학과 1학년 D반 최호준
■ 컴퓨터보안학과 1학년 D반 조진호
2. We found project team call OneClick. It is start of our developing production.
Now, we are going to show our software. We have tried and we did our best .
Let me introduce our program. It’s call Saper.
02 02pHow it works
01 01pDefinition of Saper
04 04pEncryption Algorithm
03 03pUI ( User Interface )
3. We found project team call OneClick. It is start of our developing production.
Now, we are going to show our software. We have tried and we did our best .
Let me introduce our program. It’s call Saper.
4. We found project team call OneClick. It is start of our developing production. Now, we are going to show our software.
We have tried and we did our best . Let me introduce our program. It’s call Saper.
5. We found project team call OneClick. It is start of our developing production.
Now, we are going to show our software. We have tried and we did our best .
Let me introduce our program. It’s call Saper.
6. We found project team call OneClick. It is start of our developing production. Now, we are going to show our software.
We have tried and we did our best . Let me introduce our program. It’s call Saper.
7. We found project team call OneClick. It is start of our developing production.
Now, we are going to show our software. We have tried and we did our best .
Let me introduce our program. It’s call Saper.
8. We found project team call OneClick. It is start of our developing production. Now, we are going to show our software.
We have tried and we did our best . Let me introduce our program. It’s call Saper.
9. We found project team call OneClick. It is start of our developing production. Now, we are going to show our software.
We have tried and we did our best . Let me introduce our program. It’s call Saper.
`
10. We found project team call OneClick. It is start of our developing production. Now, we are going to show our software.
We have tried and we did our best . Let me introduce our program. It’s call Saper.
11. We found project team call OneClick. It is start of our developing production.
Now, we are going to show our software. We have tried and we did our best .
Let me introduce our program. It’s call Saper.
12. We found project team call OneClick. It is start of our developing production. Now, we are going to show our software.
We have tried and we did our best . Let me introduce our program. It’s call Saper.
13. We found project team call OneClick. It is start of our developing production. Now, we are going to show our software.
We have tried and we did our best . Let me introduce our program. It’s call Saper.
01010111011101101001010011101110…
14. 01010111011101101001010011101110…
We found project team call OneClick. It is start of our developing production. Now, we are going to show our software.
We have tried and we did our best . Let me introduce our program. It’s call Saper.
15. We found project team call OneClick. It is start of our developing production. Now, we are going to show our software.
We have tried and we did our best . Let me introduce our program. It’s call Saper.
…
16. We found project team call OneClick. It is start of our
developing production.
Now, we are going to show our software. We have tried
and we did our best .
Let me introduce our program. It’s call Saper.
Editor's Notes
안녕하십니까 지금부터 저희 원클릭의 작품 세이퍼의 발표를 시작하겠습니다
먼저 목차를 말씀드리겠습니다 목차는 세이퍼의 정의 , 프로그램 작동구성도, 유저인터페이스 그리고 암호화 알고리즘으로 구성되어있습니다
그럼 지금부터 세이퍼에대한 간단한 소개로 시작하곘습니다
세이퍼는 C와C++ 그리고 win32 API로 개발된 누구나 쉽게 비공개문서를 만들 수 있는 다중사용자기반 문서암호화 프로그램입니다
비밀을 뜻하는 Secret과 문서를 뜻하는 Paper를 합성하여 만들어진 세이퍼는 강력한 문서암호화와 안전한 백업이 특징입니다
또한 Saper는 MS office 제품군, 한글과 컴퓨터 제품군, PDF문서, JPEG같은 이미지파일, 압축파일 등 다양한 확장자를 지원합니다
이제 구성도를 통해 세이퍼의 전반적인 프로세스를 살펴보겠습니다
사용자 즉 클라이언트는 원본파일을 Saper를 통해 간단히 암호화, 복호화를 할 수 있습니다.
원본파일을 원하는 위치에 암호화 하게 되면 spp라는 확장자로 세이퍼 전용 암호화된 파일이생성되며
원본파일은 삭제되고 암호화된 파일은 자동으로 서버에 백업하게 됩니다
이로써 로컬 컴퓨터의 저장장치가 손상되어도 서버로 백업했기에 파일을 더욱 안전하게 보관할 수 있게 됩니다.
그럼 실제 시연영상과 함께 UI 로넘어가곘습니다
설치 ->
회원가입-> 아이디 중복검사,파일소유자부분 시연을위해 아이디를 하나더만듭니다
로드->드래그앤드롭으로 간편히 암호화할 파일을 선택하구요
원본확인->
암호화->하단에 리스트뷰밑에 문자열로 위치가 표시,원본삭제
암호화된거 확인->파일 읽기 실패
로그아웃 및 더블클릭복호화->아까의 방식처럼 드래그앤드롭으로도됨,사용자편의를 위해 구현,파일 소유자 검사
복호화 확인->
로그확인->시간순으로 작업기록이 표시됩니다
시연영상에 나왔다시피 UI는 화면을 4개로 분할하여 모듈화를 적용하였습니다
프로시져1은 사용자의 계정을 생성 또는 인증을 하는창입니다 사용자는 로그인을 하지않으면 암호화나 복호화를 사용할수없으며 로그인을 하게되면 로그인한시간을 표시해줍니다
프로시져2는 편의를 위해 드래그앤드롭방식을 도입한 리스트뷰입니다 원하는 파일을 드래그하면 파일의 정보를 읽어 표시해줍니다
프로시져3은 두번째 리스트뷰에 로드된 파일들을 버튼만클릭하면 암호화가 시작되고 서버에 암호화된 파일이 백업됩니다 또한 작업기록도 텍스트파일로 남깁니다 이를통해
사용자가 과거기록이필요한경우 로그 버튼만눌러주면 시간순으로 정렬되어 작업기록이 리스트뷰로 출력됩니다 복호화도 이와동일합니다
프로시져4는 프로시져2에 로드된 파일들을 암호화되어 저장할 위치를 표시해주는 리스트뷰이며 하단에 현재경로가 표시됩니다 그리고 오른쪽에 도움말을 넣었습니다
다음은 대화상자입니다
상단의 대화상자는 계정을 등록하는 창입니다 비밀번호는 MD5보다 안전한 SHA-1 해시를 사용하였으며 레인보우 테이블에 대비하여 6자이상 입력하도록 했습니다 또한 아이디도 중복검사를 통해 아이디를 고유 식별자로 사용했습니다
하단의 대화상자는 암호화된 파일 즉 spp확장자를 가진 파일을 더블클릭 만으로 복호화를 진행하는 창입니다 앞장의서의 암호화할떄처럼 드래그앤드롭으로 복호화 하여도 되지만 편의를 위해만들었으며
로그인을 통해 소유자 인증을 통과하면 이창이 실행된 디렉토리에 복호화된 원본파일이 생성됨과 동시에 로그를 남기고 암호화된 파일은 삭제됩니다
마지막으로 저희 세이퍼의 핵심인 암호화 알고리즘입니다
세이퍼의 문서 암호화는 3단계를 거처 이루어집니다
1단계는 파일의앞에서 이루어지고 소유자별로 암호화의 구별을 위한 단계이며
2단계는 1단계를 거친 파일전체 데이터의 비트들을 전치시키며 난독화하고
마지막인 3단계는 파일의 끝에 소유자를 삽입합니다
그럼 한단계씩 화면을 통해 상세히 설명드리겠습니다
//다른암호화도 구현했지만 속도 면에서 우월 어필 스트림 암호화 대칭키 사용임 엑소알 연산속도 치환
먼저 1단계는 원본파일을 비트단위로 받아와 메모리에 적재시킨후 로그인되어있는 아이디를 파일 앞부분의 비트와
아이디길이만큼 Exclusive OR연산을 합니다 이로써 ID별로 암호화된 파일의 앞부분 비트가 다르게되어 같은 원본파일이라도 ID별로 개별적인 암호화 파일 생성이 가능하게 됩니다
//스트림암호화
전 장에서 아이디별로 암호화에 구분을 준후에 그비트들을 바이트형 배열에 대입하여 자동으로 8비트씩 들어가게합니다 //(unsigned char) 아스키 0~127 부호비트 있으면안되서 BYTE임
그다음 순차적으로 8개의 인덱스를 DWORD형 2개의 변수로 치환하고 각각 로그이한 아이디와 XOR 연산후 전치 시킵니다
이과정을 바이트배열 전체에 수행하면 대칭키인 아이디로 스트림암호화하고 파일내의 비트스트림에 변화를주어 파일내의 데이터를 완전히 난독화시키기 떄문에 각종 연결프로그램들이 파일을 읽을수없게 되어 파일 안의 내용이 확인 불가능해집니다
//인덱스 암호화는 xor를 하고바꾼다
//아이디의 한문자씩 끝까지 XOR 연산한다 남은 BYTE배열이 8개 미만이면 그건 그대로 출력 즉 7개이하면 그대로 원본유지
전장에서 난독화된 파일끝에 파일의 소유자를 추가하기위해
특정 문자열 20글자를 대칭키로, 사용자의 ID를 평문으로 사용한 스트림암호화의 결과를 파일끝에 추가하여 소유자를 삽입합니다
이로써 복호화시에 로그인한 아이디와 해당 파일을 암호화한 아이디를 비교해 소유자인증을 할수있습니다