특집기사 > 전체

P2P 프로그램, 알고 씁시다

/ 2

안녕하세요. 게임메카에서 새롭게 연재되는 야심찬(?) 기획, 이름하야 ‘공짜로 가득한 유틸세상’의 집필을 맡은 쑹입니다. 이 코너의 기획의도는 정보의 보고 인터넷에서 만인에게 공유가 허용된 공짜 유틸리티 프로그램 중 활용도가 특히 높지만 아직 많은 분들에게 널리 알려지지 않은 것들을 소개해드리는 것입니다. 그렇다고 소개만 하고 끝나느냐? 그럼 섭하겠죠? 당연히 그 활용법과 유틸리티 프로그램을 다운로드 받을 수 있는 방법까지 친~절하게 안내해드립니다. 자, 그럼 쑹과 함께 공짜로 가득한 유틸세상에 빠~져 보시렵니까?

오늘 이 시간에는 유틸리티 프로그램의 소개가 아니라  지난 3회에서 다루었던 것처럼 PC, 하드웨어와 관련된 다른 쪽 이야기를 해볼까 합니다. 왠 뜬금없이 엉뚱한 이야기냐며 타박하지 마시고 즐겁게 읽어주시길. 남자에게도 한 달에 한 번 마법에 걸릴 때가 있답니다~(^^).

여러분, 무료 공유 프로그램들 많이 써보셨죠? 프루나 또는 예전에 당나귀처럼 보물섬이나 심파일 등에서 얻을 수 없었던 값비싼 프로그램들을 손쉽게 검색하여 다운받을 수 있도록 도와주었던 프로그램들. 이런 프로그램들을 P2P(peer to peer) 방식의 프로그램이라고 합니다. 오늘은 이것과 관련된 가벼운 상식을 집고 넘어가 보죠.

최근 Peer to Peer 방식의 파일 전송(이하 P2P)이 큰 인기를 끌면서 작은 그림 한 장에서부터 영화 한 편까지 많은 양의 데이터가 인터넷을 떠다니고 있습니다. 물론 처음에는 좋은 의도로 시작된 P2P지만 많은 사람들이 저작권 자료 등을 공유하기 시작하면서 각 저작권 회사들은 P2P에 떠도는 불법 자료 때문에 골머리를 썩고 있는 상황이죠. 이에 대한 대처 방안으로 일부 저작권자들은 자신이 가진 저작권의 보호를 위해 일종에 '가짜' 파일을 인터넷상에 뿌리기 시작했습니다.  간단한 예를 들자면 아래와 같은 상황이 될 수 있겠네요,

첫 번째 파일
이름: 김동계집주소.txt
내용: 서울특별시 XX구 XX동 XX아파트 123-4호

두 번째 파일
이름: 김동계집주소.txt
내용: 그런 거 알아서 뭐하게?

즉, 두 개의 파일은 이름은 같지만 내용은 완전히 다릅니다. 이 경우 첫 번째 파일을 앞부분만 받고 다른 사람으로부터 두 번째 파일을 이어받기를 한다면 다음과 같은 말도 안 되는 결과가 나옵니다.

받은 파일
이름: 김동계집주소.txt
내용: 서울특별시 X아서 뭐하게 아파트 123-4호

이처럼 원하는 결과와 전혀 다른 내용이 되는 것이죠. 하지만 지금까지 P2P를 사용하셨던 분들은 저런 상황을 전혀 겪어보지 못하셨을 겁니다. 그럼 P2P 프로그램은 어떻게 해서 두 파일을 구분해 낼까요? 바로 이 부분에서 등장한 것이 Hash라는 개념입니다. 저는 이 글에서 이것을 키(Key)라고 부르겠습니다. 백문이 불여일견! 일단 이것을 쉽게 찾을 수 있는 곳을 보는 게 좋겠지요? 다음 페이지의 그림을 잠깐 주목해주시죠.

사진은 우리나라에서 가장 인기 있는 P2P 프로그램 프루나의 한 장면을 캡처한 것입니다. 화면을 보시면 제가 만들어놓은 빨간 박스가 눈에 들어올 겁니다. 바로 저 부분이 각 파일에 부여된 고유의 Key입니다.

즉, 프로그램에서는 사람들이 인지할 수 있는 파일 이름이 아닌 자신들만의 키를 이용해서 파일을 구분하고 있는 것이죠(저는 사람들에게 P2P를 설명할 때 이 Key를 비밀 코드 등으로 설명하고 있습니다).

이 키를 얻어내는 데는 여러 가지의 방법이 있으나 최근 많이 사용되고 있는 것은 MD5와 SHA방식입니다. 양자 모두 키를 얻어낸다는 점에서는 다를 바가 없지만 그 연산방법의 차이로 인하여 같은 파일에 대해 다른 모양의 키를 만들어 냅니다.

BUT! 모든 것에는 문제가 있는 법. 눈치가 빠르신 분은 이미 알아차리셨겠지만 이 방식은 크나큰 문제를 가지고 있습니다. 바로 '충돌' 이라는 개념입니다. 만약 32자의 글자를 이용한 키를 만든다고 하면 이 방식으로 제조해 낼 수 있는 키의 수는 256의 32제곱이 됩니다.

어마어마하게 큰 수라고 말할 수 있지만 세상에는 이보다 많은 수의 파일이 존재할 수 있다는 게 문제입니다. 아직까지는 특별한 해결 방법이 없어 최근에는 32자의 글자를 64자나 128자를 이용하는 방법으로 바꾸는 정도입니다.

제가 말하고 싶은 내용은 여기까지입니다. MD5나 SHA의 연산은 매우 복잡한 수학식을 이용하기 때문에 더 이상의 깊은 설명은 어려울 것 같습니다. 원하시는 분은 RFC 1321 The MD5 Message-Digest Algorithm을 참고하시기 바랍니다(영어).

이처럼 공유문제로 골머리를 썩고 있는 것은 mp3쪽도 마찬가지입니다. 이런 문제 때문에 사실상 자료 공유를 막을 수 없는 상황이 닥쳐버렸고 그 때문에 mp3 전파를 막기 위해서 이상한 방법으로 대처하기 시작했습니다.

같은 파일 이름에 이상한 잡음을 삽입하여 노래를 망쳐 놓은 음악 파일을 퍼트려 버리는 거죠. 그래서 유명한 노래의 경우 신해철-민물장어의꿈(진짜).mp3 등의 방식으로 돌지만 음반사 관계자들은 또 다시 같은 파일 이름으로 공유를 하는 등 치열하게 싸우고 있습니다.

이야기를 마치기 전에 오늘도 한 번 더 강조해봅니다. 우리가 구입한 영화티켓 한 장이 세계적인 작품인 ‘올드 보이’를 만들어 낸 것처럼 우리나라 문화에 투자합시다. 저도 공짜 프로그램을 소개하는 사람입니다만, 그래도 허락된 것만 소개하지 불법을 소개하진 않잖습니까. 요즘 저작권법 개정으로 인해 자신도 모르게 자료를 공유하다 범법자가 되는 경우도 많이 생깁니다. 모두들 조심하자고요~.  그럼 다음 주에 다시 뵙겠습니다.

이 기사가 마음에 드셨다면 공유해 주세요
게임잡지
2000년 12월호
2000년 11월호
2000년 10월호
2000년 9월호 부록
2000년 9월호
게임일정
2025
11