PGR21.com
- 자유 주제로 사용할 수 있는 게시판입니다.
- 토론 게시판의 용도를 겸합니다.
Date 2010/01/08 17:01:37
Name ArcanumToss
Subject [일반] 압축 파일의 암호화, 얼마나 신뢰할 수 있나?
아래는 제 블로그에 올린 글입니다.
그냥 재미로 시작해서 정보 수집을 하다 알게 된 내용들을 정리해 본 것입니다.



저작권과 관련해서 정보를 수집하다가 '압축 프로그램의 암호화를 얼마나 신뢰할 수 있을까?' 하는 궁금증이 생겼다.
그래서 정보를 찾아 보니 암호 해제 프로그램이 zip의 파일보다 rar의 것의 암호 찾는 속도가 6배나 느리다는 사실을 알게 됐다.
RAR 3.x는 일반 PC로 초당 5-10 개의 암호를 대입할 수 있다고 RAR 제작사 측에서 밝혔다.
이것은 일반적인 PC로 영어 소문자와 숫자 그리고 빈칸을 허용하는 조합의 8바이트 암호를 찾는데 걸리는 시간이 11138년 정도 걸리게 된다는 뜻이다.
물론 슈퍼 컴퓨터로는 1년 정도가 걸릴테지만 9바이트라면 어떨까?
PC에서 41만 2106년이 걸리고 슈퍼 컴퓨터로 37년이 걸린다.
그런데 8바이트로 하되 빈 칸을 빼고 영어 소문자 뿐 아니라 대문자까지 포함한다면 어떻게 될까?
일반 PC로 69만년 정도가 걸린다.
슈퍼 컴퓨터로는 62년!
단, 이 경우 초당 대입할 수 있는 암호의 수를 PC와 동일하다고 가정한 것이기는 하다.

경우의 수 : 62(영어 대소문자 + 10) ^ 8(바이트) = 218340105584896
해독 시간 : 218340105584896/초당 10개/60초/60분/24시/365일 = 692,352년

12테라플롭스의 슈퍼컴퓨터(세계랭킹 8위, 2004년 경 기준)의 20배 정도 성능이 일반 PC 400만대를 분산 컴퓨팅했을 경우의 성능이라고 하니, 분산 컴퓨팅을 통해 위 암호를 해독한다고 해도 약 2달이 걸리게 된다.
하지만 만일 특수 문자(32개)를 포함시키고 암호의 길이를 더 길게 하면?

8바이트 짜리로 했을 때 일반 PC로 19329304년, 슈퍼 컴퓨터로 1735년, 분산 컴퓨팅으로 7년이고
9바이트 짜리로 했을 때 일반 PC로 1816954598년, 슈퍼 컴퓨터로 163131년, 분산 컴퓨팅으로 439년!!

이 정도면 10바이트 길이면 암호 해독은 외계인이나 신이 아니면 불가능하게 된다.

물론 아주 간단하고 현실적인 방법이 하나 있다.
암호를 만든 사람을 찾아 내서 적당한(?) 방법으로 암호를 알아내는 것이다.

따라서 RAR로 암호를 걸 때는 일반적으로 특수 문자까지 포함한다면 8바이트짜리로 만들면 안심이다.
수퍼 컴퓨터까지도 못 뚫기 때문이다.
하지만 분산 컴퓨팅 환경에서도 안 되게 하고 싶다면 특수 문자까지 포함해서 9바이트로만 만들어도 충분하다.
단, 수학과 기술의 발전을 감안한다면 혹시 모른다.
그래도 30바이트 정도로 만들면 지금 살아 있는 사람들이 다 죽을 때까지는 절대 못 깨지 않을까? ^^

단, RAR로 압축했을 경우이다.
서두에 밝혔듯이 RAR 3.x로 압축한 파일에는 일반적인 PC 기준으로 초당 5-10개의 암호밖에 대입할 수 없기 때문이다.

여기까지 적고 나니 궁금한 게 하나 생겼다.
이런 바이러스가 나오면 어떻게 될까?
자신이 침투한 컴퓨터의 모든 내용을 암호화 해 버리고 돈을 모 계좌로 입금하면 풀어주겠다고 엄포를 놓는 갈취형 바이러스!
컥! 찾아보니 정말 있다( http://moonslab.com/644 )!!!!!

저 바이러스에 걸렸는데 바이러스를 만든 사람이 남자고 솔로라면 화질 좋은 미녀 사진으로 협상을 해 봐야겠다.

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
튼튼한 나무
10/01/08 17:09
수정 아이콘
예전부터 암호와 관련해 궁금한 점이 있습니다만....
예를들어 파일의 암호를 찾아내는데 1시간이라는 시간이 걸린다고 하면...
그건 1시간 중 어느 시간안에 임의로 풀린다는 건가요?
아니면 무조건 1시간이 걸린다는 건가요?
만약 001~100사이에 002라는 암호를 걸어놓은 경우.
컴퓨터가 암호를 풀 때 001부터 차례대로 시작하면 다음차례에 바로 풀리지 않나요?
예전부터 궁금했는데 컴맹인 고로....
10/01/08 17:13
수정 아이콘
튼튼한 나무님//
만약 001~100사이에 002라는 암호를 걸어놓은 경우.
컴퓨터가 암호를 풀 때 001부터 차례대로 시작하면 다음차례에 바로 풀리지 않나요?

넵 이 말이 맞습니다~
10/01/08 17:15
수정 아이콘
튼튼한 나무님// 전수검사를 할때 1시간이라는 이야기겠죠. 말씀대로 처음에 시도한 암호가 우연히 같은 암호일 경우도 있으니.
그러므로 암호 작성시 남들이 흔히 생각할 수 없는 복잡한 암호로 만들라고 권장하는 거죠.
10/01/08 17:15
수정 아이콘
저도 갑자기 궁금증이 생겨서 대충 구글링을 해봤는데요, ZIP 파일의 경우, AES 알고리즘을 사용해서 암호화를 한다고 하네요.
그렇다면, 사실상 리버스 엔지니어링 등을 통해서 푸는 방법은 없다는 얘기고, Brute-Force(맨땅에 헤딩) 방식밖에 없다는 얘긴데...

길게 글을 써 주셨는데 김 빼서 죄송하지만, 말씀하신 부분은 보안업계의 오랜 이슈입니다.
zip 파일 뿐만 아니라, 은행 등에서 사용하는 인증서, 보안이 유지되어야 하는 통신, 방화벽... 등등에서 계속 화제가 되었죠.
슈퍼컴퓨터건 뭐건 간에, 128bit 이상으로 암호화된 문서는 Brute-Force 방식으로는 푸는게 불가능하다는게 정론입니다.

이런 분야에 관심이 많으시다면, "해킹.파괴의 광학" 이라는 책을 권해드립니다.
프로그래밍적인 이슈를 다루고 있어서, 관련 전공이 아니라면 따라가기 좀 힘들지만,
다루고 있는 내용들을, 소설처럼 읽기만 해도 꽤나 흥미진진한 책입니다. 아래는 링크입니다.
http://book.naver.com/bookdb/book_detail.nhn?bid=2622381
튼튼한 나무
10/01/08 17:27
수정 아이콘
workbee님// Gidol님//
그렇군요..역시 보안을 위해선 특문을 넣은 복잡한 암호를 사용해야 하는군요...
이해는 하지만 실천은 어렵네요.
WizardMo진종
10/01/08 17:41
수정 아이콘
암호라는게 꼭 맞춰야만 깨지는건 아닙니다. 그외의 방법은 많죠 하이재킹이라던가;;; 수없이 때려넣어서 걸리는 시간으로 계산하는건 컴퓨터 성능측정 밖에 안된다고 봐야죠.
상한우유
10/01/08 17:44
수정 아이콘
그럼 ALZIP 으로 압축하면서 암호 걸은 화일도 볼 수 없는 건가요?
10/01/08 17:50
수정 아이콘
WizardMo진종님// 그건 그렇네요. 보안이 뚫리는 사건 중 대다수는 보안 알고리즘이 파해되었다기보다는 시스템 자체의 허술함 혹은 사람의 실수 부주의 나태 때문이라고 하니..
FantaSyStaR
10/01/08 18:13
수정 아이콘
사회공학만큼 무서운게 있을까요+_+
ArcanumToss
10/01/08 18:18
수정 아이콘
튼튼한 나무님//
001~100사이에 002라는 암호를 걸어놓은 경우는 알고리즘에 따라 다르겠지만 이렇게 될 겁니다.
암호의 자릿수를 모르기 때문에...
0, 1, 2, 3, ..., 9, 00, 01, 02, ..., 99, 000, 001, 002

WizardMo진종님//
압축 파일에 암호를 걸었을 때 그 방법으로 압축을 풀어낼 수 있나요?
10/01/08 18:28
수정 아이콘
ArcanumToss님// AES 방식으로 압축된 문서를 풀어내는 방법은, 현재까지 알려진 바로는 Brute-Force 밖에 없습니다.
하이재킹이란, 사용자의 입력이나, 네트웍 신호 등을 빼앗아오는 해킹 기법이죠.
사용자의 키보드 로그를 저장한다거나, 네트웍으로 주고받는 데이터를 훔치는 방법 등 말입니다.

즉.. "암호를 만든 사람을 찾아 내서 적당한(?) 방법으로 암호를 알아내는 것"이 하이재킹 되겠습니다. ^^;
ArcanumToss
10/01/08 19:35
수정 아이콘
AhnGoon님//
오~ 그렇군요.
그렇다면 압축 파일을 만들 때 독한 맘 품고 300글자 짜리 암호를 만들면 죽었다 깨어나도 절대 못 깨는 거군요.
Zakk Wylde
10/01/08 20:17
수정 아이콘
ArcanumToss님// 만든 사람이 못 풀 경우가 생깁니다. 복잡하고 긴게 능사는 아니죠.
10/01/08 20:51
수정 아이콘
ArcanumToss님// 300글자짜리를 만들어봐야, 어차피 AES에서 Key로 쓰는건 최대 256 bit(32 byte) 입니다.
그러니까, 결국 32글자 이상의 암호는 별 의미 없긴 합니다. 그래도 2^256 은 엄청난 숫자죠.
암호 Key는, 자신이 입력한 그대로 넣는 것이 아니라, 해시를 이용해서 한번 Encoding 합니다.
그러나, Key는 Encoding만 가능하지, Decoding이 불가능합니다. 즉, Key를 알았다고, 원래의 암호를 알아내는건 아니죠.
예쁜김태희
10/01/08 20:54
수정 아이콘
Zakk Wylde님// 네~ 복잡하고 긴게 능사는 아닙니다.

하지만 긴 암호를 만들고 싶으면 자신만이 알고 있는 자작시를 이용하면 만든 사람이 못 풀 확률이 좀 줄어 듭니다. :)

그리고 프로그래밍적인 암호의 접근은 어렵다 하시는 분들은 사이먼 싱이 지은 코드북이란 책을 추천드려요~

암호의 인문사회학적인 접근이라고나 할까요.
내일은
10/01/08 21:06
수정 아이콘
중요한 암호는 문장으로 해야 제맛이죠
WizardMo진종
10/01/08 21:50
수정 아이콘
ArcanumToss님// 의미 없는 300글짜 자리를 외우실수 있을까요? 어딘가에 적어놓거나 메모해놓거나 타이핑을 하거나 하겠죠. 그걸 가져가는게 하이재킹 입니다. 이미 암호화와는 관계가 없습니다. 보안이 더 중요하죠. 제일 좋은건 의미없는 긴~ 암호인데 이건 못외우니까 어딘가에 따로 보관해두게 됩니다. 그걸 슥삭 하는거죠. 오히려 이쪽이 훨씬 쉬우면서 대부분의 해킹을 의미합니다. 락을 깨는건 문을 박격포로 부시고 들어가는겁니다;;; 열쇠를 훔치거나 문근처에서 숨어있다가 따라 들어가거나 하는방법을 택하죠;;
피날레
10/01/09 00:17
수정 아이콘
리버스엔지니어링을 이용한 사례가 없다면 키의 값을 무차별 적으로 대입해서 암호문을 복호화시켜야되는데, 과연 당신이 데커라면 언제풀릴지 모를 암호화된 파일을 풀것인가?
아님 암호화된 압축을 한 사용자컴퓨터의 키로거나 패킷 스니핑을 이용하여 사용자의 다른 아이디와 비밀번호를 알아내서 참고, 추론하여 디코딩하는게 빠를것인가? 결국은 기술적인 문제보다 안일한 보안의식에 인해서 더 많이 발생한다고 보는 1인입니다.
10/01/09 18:27
수정 아이콘
피날레님// 실제로도 그렇고, 대부분의 전문가들이 그 부분을 지적하더군요.
RSA와 AES의 등장 이후, 양자컴퓨터가 나오기 전 까지는, 암호화된 문서를 기술적인 방법으로 풀어낼 방법은 존재하지 않는다는게 정설이고,
언제나 문제가 생기는건 보안 담당자의 실수 내지는 부주의가 원인이니까요.
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회 추천
19854 [일반]  2010.02.27 2PM 간담회 결과 보고 [352] 날카로운비수10073 10/02/28 10073 0
19791 [일반] 비가 오면 생각나는 그 사람? 그 음식! (식전이신 분들은 혐오 주의요!!) [28] 모챠렐라4467 10/02/25 4467 0
19775 [일반] [YUNA kim] 피겨 세계신기록 보유자의 실체...? [27] Arata6712 10/02/25 6712 1
19701 [일반] [인증해피] 아싸라비아 콜롬비아! 나이키 - 샥스 R4 이야기 입니다. [7] 해피5522 10/02/22 5522 0
19663 [일반] 스타2가 출시되면, 스타1은 사장될 것 같습니다 [56] 차사마7454 10/02/20 7454 0
19625 [일반] 카라-루팡 표절논란에 대한 조심스러운 추측 (자료有) [62] 사이문6769 10/02/18 6769 0
19415 [일반] [수정본] 링크 저작권 관련... [10] ThinkD4renT6444 10/02/09 6444 0
19346 [일반] [피겨]유투브 영상 삭제와 관련해서... [12] ThinkD4renT4479 10/02/06 4479 2
19318 [일반] 유투브 버퍼링 해결법... [16] ThinkD4renT5209 10/02/05 5209 0
19222 [일반] 나의 뉴질랜드 어학연수 이야기 그리고 피지알 분들의 도움을 받았던 편지 [11] 한듣보4108 10/01/31 4108 0
19182 [일반] 음악여행 라라라에 출연한 아이유&이영현 [46] 타나토노트6788 10/01/29 6788 0
19087 [일반] 헤이리를 아시나요? [16] ThinkD4renT5325 10/01/23 5325 0
19077 [일반] 박지윤 - Steal Away (주인공) [31] GrayEnemy7179 10/01/23 7179 0
18955 [일반] 정말 열불 터지는..... [17] 땡초5625 10/01/16 5625 1
18927 [일반] 전여옥 "일본은 없다" 표절 항소심 패소 [65] 거침없는삽질7316 10/01/15 7316 1
18787 [일반] 압축 파일의 암호화, 얼마나 신뢰할 수 있나? [19] ArcanumToss8701 10/01/08 8701 0
18716 [일반] 음악의 Out door화. [23] nickyo4558 10/01/04 4558 7
18396 [일반] 서태지, 저작권...그리고 퍼블리시티권... [4] 방구벌레4312 09/12/19 4312 0
18330 [일반] 마치 PGR을 노린듯한 문화관광부의 마수魔手 [13] 유유히5240 09/12/17 5240 0
18023 [일반] [쓴소리] 남의 컨텐츠에 무임승차한 자(者)가 신지식인 되는 세상 [15] The xian4310 09/12/04 4310 0
17904 [일반] 가슴이 따뜻해졌던 손병휘님 콘서트 [4] 사신토스3051 09/11/29 3051 0
17784 [일반] [잡담] 서비스가 부족한 기업들과 유져들의 대처. [44] Claire3941 09/11/24 3941 1
17619 [일반] [정보] 4대강 사업 저지를 위한 국민소송단 모집 [4] 바다란꿈3229 09/11/18 3229 1
목록 이전 다음
댓글

+ : 최근 1시간내에 달린 댓글
+ : 최근 2시간내에 달린 댓글
맨 위로