안녕하세요!
여기서 저의 프로젝트들을
보실수 있습니다.

저는 대학교에서 공부하는 기간 여러 프로젝트들에 참여했습니다.
그중에는 큰것도 있었고 작은것도 있었지만 크기에는 무관하게 저는 모든 프로젝트에서 최선을 다하기 위해 노력했습니다.



프로젝트 목록


파이썬 프로젝트

1. RSA 메신저

간단한 설명

최근 인터넷 사용량이 증가함에 따라 사용자들이 인터넷상에서 주고 받는 메시지 내용의 보안을 강화 하는것은 아주 중요한 문제로 제기되고 있다. 민감한 개인정보등의 안전성을 철저히 보장하고 안전한 메시지 교환을 실현하자면 RSA, DH, ECC, ECDH 암호기술등을 통신에 적극 활용해야 한다. 이번 프로젝트는 사용자가 복잡한 기술적문제를 모르고도 편리하게 사용할수 있도록 하는 한편 보안을 철저히 보장하는데 중심을 두고 개발 되었다. 이를 위해 암호화한 메시지를 앱에서 whatsapp등을 통하여 직접 수신자에게 보낼수 있도록 디자인 되었다.(참고로 가장 널리 사용되는 암호화-복호화 소프트웨어인 Kleopatra에서는 사용자가 암호화한 메시지를 복사하여 Email등을 통하여 수신자에게 수동으로 보내게 되었음.) 또한 다른 한편으로 철저한 보안보장을 위해 사용자가 사용시 매번 키들이 (공개키, 비공개키) 6자리 숫자의 소수들로부터 새롭게 생성되도록 하여 복잡성 난이도와 처리 속도를 함께 높일수 있게 하였다. (참고로 Kleopatra에서는 처음에 한번 생성된 키를 계속 사용함). 프로그램은 파이썬언어(키비)를 사용하여 개발되었고 영어 버전과 한국어 버전이 있으며 컴퓨터에서 exe파일로 사용할수도 있고 핸드폰에서 apk파일로서 사용할수도 있다.

RSA 암호화에 대하여

RSA 암호는 비대칭 암호 체계(공개키 암호 시스템)의 하나로, 암호화뿐만 아니라 전자서명이 가능한 최초의 알고리듬으로 알려져 있다. RSA가 갖는 전자서명기능은 인증을 요구하는 전자상거래 등에 RSA의 광범위한 활용을 가능하게 했다. RSA 암호체계의 안정성은 매우 큰 숫자를 소수분해하는것이 현실적으로 매우 어렵다는것에 기반을 두고있다. 예를 들면 A에게 B가 메시지를 전하고자 할때 B는 A의 "키A1"(A의 공개키에 해당)로 자기메시지를 암호화(공개키에 의한 암호화과정에 해당)하고, 그런 다음 A에게 전해 주면, "키A2"(A의 비공개키)를 가지고 있는 A만이 그 메시지를 열어볼수가 있다(비공개키에 의한 복호화 과정에 해당). 중간에 그 메시지를 가로채는 사람은 물론 메시지를 송신하는

B본인조차 "키A2"가 없으므로 암호화된 메시지의 복호화가 불가하다. "키A1"로 부터 "키A2"을 얻기가 현실적으로 불가능하다는것은 즉 RSA암호체계의 안정성은 페르마 소정리, 오일러정리를 통하여 검증되었다. 하지만 RSA의 안정성이 영원히 보장된다는 담보는 없다. 1993년 피터 쇼어는 쇼어 알고리듬을 발표하여 양자컴퓨터를 이용하여 임의의 양수를 다항시간안에 소수분해하는 방법을 발표하였다. 따라서 양자컴퓨터가 현실화되고 본격적으로 실용화되면 RSA 알고리듬은 자기의 가치를 잃게 된다. 그러나 양자컴퓨터가 실지로 개발되고 실용화되려면 아직 상당한 기간이 걸릴것으로 보인다.