메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

IT/모바일

파이썬 암호학: 교실에서 동아리로

한빛미디어

|

2002-05-17

|

by HANBIT

10,338

저자: 스티브 피긴스(Stephen Figgins), 역 전순재

수학 교과과정 개발자인 커비 어너(Kirby Urner)는 자신이 직접 글을 올리는 암호화 동아리(Crypto Clubhouse)에 지금 막 손질을 끝냈다. 어너는 닐 스티븐슨(Neal Stephenson)의 Cryptonomicon에 영감을 얻어 교사들이 수학과 프로그래밍에 관심을 불어넣기 위해 암호학을 어떻게 사용할 수 있는지를 탐험하고 있다. 물론 암호학은 어른들에게도 재미있을 것이다. 비밀 해독 반지를 이용해 메시지를 풀어내곤 했던 어린 시절로 돌아가 보자! 여기에 필요한 것은 오직 여러분과 비밀 메시지를 함께 나누기 원하는 한 두 명의 친구뿐이다! 파이썬은 훌륭한 암호화 도구이다. 어너의 글은 암호화를 시작하기에 훌륭한 장소이지만 반드시 그곳에 있는 것만 공부할 필요는 없다.

암호학과 파이썬의 기원은 아주 멀리 거슬러 올라간다. 1995년 앤드류 쿠클링(Andrew M. Kuchling)은 처음으로 파이썬 암호화 툴킷을 선언하였다. PCT는 나중에 pyCrypt라고 알려지는데 DES, IDEA, MD5와 같은 일반적인 암호화 알고리즘을 제공한다. 1998년에 마크 앙드레 렘버그(Marc-Andre Lemburg)는 웹기반 암호화를 해보기를 원했다. 그러나 쿠클링의 암호화 모듈에 그가 원하는 중요한 특성이 없다는 것을 알았다. 그 대신 에릭 영(Eric Young)의 SSL C 라이브러리(SSLeay)를 파이썬 메소드들로 포장(wrap)하기로 결정했으며 그 결과 mxCrypto가 탄생되었다/ SSLeay는 이후에 OpenSSL이 되었으며 MxCrypto는 OpenSSL과 pyCript 두 가지 모두를 요구한다.

파이썬과 OpenSSL이 업데이트 되었기 때문에 두 모듈을 설치하여 함께 작동시키는 것이 점점 어렵게 되었다. IPC 제 8회 회의가 개최되기 바로 전에, 쿠클링은 그 두 모듈을 amkCrypto로 만들어 더 쉽게 두 모듈이 함께 작동할 수 있게 하였다. 렘버그는 다시 개발을 시작할 것이라고 말했지만 amkCrypto의 배포 이후로 이렇다 할 성과는 더 이상 나타나지 않고 있다. 그 이유는 아마도 M2Crypto가 출현했기 때문일 것이다. M2Crypto는 OpenSSL 라이브러리에 대해 펑 시옹(Ng Pheng Siong)이 개발한 파이썬 인터페이스이다. M2Crypto는 나이트메어 소프트웨어(Nightmare Software)의 메듀사(Medusa)도 지원한다. 메듀사는 고성능http 모듈로서 이것을 사용해 간결하고 안전한http 서버를 쉽게 만들 수 있다. 조프(Zope)는 메듀사를 자신들의 서버(ZServer)로 사용한다. M2Crypto를 사용하여 시옹(Siong)은 안전한 조프 서버 버전(ZServerSSL)을 만들었다. M2Crypto는 훌륭한 웹기반 암호화 도구이다.

이정도로 별 재미를 못 느끼겠다면 이미지를 암호화하는데 사용할 수 있는 파이썬 도구를 하나 소개하겠다. 프랭크 스타자노(Frank Stajano)는 파이썬웨어의 이미지처리 라이브러리(Pythonware"s imaging library)인 PIL과 나오르(Naor)와 샤미르(Shamir)가 공동 개발한 테크닉을 사용하여 시각적 암호화 도구모음(Visual Cryptography Kit)인 VCK를 만들었다. VCK를 사용하면 투명한 덮개를 키로 만들어서 이미지를 암호화하고 복호화할 수 있다. 그 덮개가 없다면 암호화된 이미지는 해독 불가능하다. 그러나 덮개를 결합하면 메시지가 나타난다. 그렇게 실용적이라고 할 수는 없겠지만 암호화 동아리에 추가할만한 산뜻한 트릭정도는 된다. 기초에서 고급 암호 해독까지 파이썬을 비밀 해독 반지로 사용하면 비밀스런 재미를 끝임없이 맛볼 수 있을 것이다.
TAG :
댓글 입력
자료실

최근 본 상품0