• 전문가 요청 쿠폰 이벤트
*민*
Bronze개인
팔로워0 팔로우
소개
등록된 소개글이 없습니다.
전문분야 등록된 전문분야가 없습니다.
판매자 정보
학교정보
입력된 정보가 없습니다.
직장정보
입력된 정보가 없습니다.
자격증
  • 입력된 정보가 없습니다.
판매지수
전체자료 2
검색어 입력폼
  • [네트워크 보안] RSA알고리듬을 이용한 안전한 메시지 전송 및 인증의 구현(소스) 평가C아쉬워요
    SecretClient.java// 졸업논문 안전한메세지전송 구현// 클라이언트측 소켓 프로그래밍import java.io.*;import java.net.*;import java.util.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;import java.security.*;import java.security.spec.*;import javax.crypto.*;import javax.crypto.spec.*;import sun.misc.*;class SecretClientFrame extends JFrame {public SecretClientFrame(String ip, int port, String name) throws Exception{setTitle("SecretChatting Client ("+name+")");setSize(700,400);addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});myName = name;System.out.println(name);contentPane = getContentPane();//contentPane.setLayout(new GridLayout(2,1));msgArea = new JTextArea();//메시지창msgP = new JScrollPane(msgArea);contentPane.add(msgP);
    프로그램소스| 2004.01.08| 48페이지| 3,000원| 조회(1,133)
    미리보기
  • [네트워크 보안] RSA알고리듬을 이용한 안전한 메시지 전송 및 인증의 구현
    졸업논문 최종보고서RSA알고리듬을 이용한안전한 메시지 전송 및 인증의 구현소 속 : 전자전기공학부담당교수 : 박세현 교수님학 번 : 20001556이 름 : 정민성제출일 : 2003년 11월 26일-목 차-제 1장. 서론제 2장. RSA 알고리듬1절. 공개키암호화2절. RSA 알고리듬3절. RSA알고리듬의 안전성제 3장. RSA 알고리듬의 응용1절. 안전한 메시지 전송2절. 전자서명3절. 전자 인증서제 4장. RSA 알고리듬을 이용한 응용의 구현1절. 안전한 메시지 전송의 구현2절. 전자서명 의 구현제 5장. 결론참고문헌제 1장. 서론20세기 후반과 21세기를 거치며 네트워크(인터넷, 이동통신 등)의 확산이 이루어졌다. 이런 환경 속에서 우리는 많은 정보들을 주고 받는다. 이러한 정보들 가운데는 일반 대중들이 공유해야 하는 것도 있겠지만 회사의 기밀, 은행계좌의 비밀번호, 개인의 사생활과 관련된 정보 등 소수만이 알아야 할 정보들도 있다. 또 상품의 거래 가격이나, 비밀번호와 같이 내용이 변경되지 않고 전달되어야 하는 정보들도 있다. 그런 정보들은 목표로 하는 수신자에게 원래의 내용 그대로 전달되어야 한다.인터넷과 같이 경로가 복잡하고 개방되어 있는 네트워크에서는 정보가 누군가에 의해 위조되거나 가로채기 당할 수 있다. 이런 공격을 막거나 피하기 위해 많은 정보보호 기법들을 사용해야 한다. 보안 서비스는 허용된 사람 이외에는 정보를 볼수 없게 하고, 메시지가 원래 송신된 대로 전달될 수 있게 무결성서비스를 제공해야 한다. 그리고 송신자와 수신자가 전송된 메시지의 송신자와 수신자임을 부인할 수 없도록 해야한다.수세기동안 많은 암호화기법이 있었고 발전되었다. 그 중 공개키 암호의 발전은 암호학의 역사에 있어서 큰 변화를 가져왔다. 암호의 초기부터 현재까지 대부분의 암호시스템은 치환과 순열의 기초적인 도구들로 이루어져왔다. 컴퓨터를 사용하게 되면서 DES(Data Encryption Standard)와 같은 더욱 더 복잡한 암호 기술들이 개발되었다. 하지만 이런 암서로 소인 수중에서 선택한다. 암호화 하고자 하는 문장M을 미리 약속된 방법에 따라 숫자의 열 B로 표시한 후, 역시 미리 약속된 방법에 따라 숫자의 열 B로 표시한 후, 역시 미리 약속된 방법에 따라 여러 개의 작은 블록으로 나눈다. 단, 각 블록을 하나의 수라고 생각했을 때 모두 n 보다 작도록 나누어야 한다. 이렇게 나눈 작은 블록들을 B1, B2, ..., Bt 라고 하자. 각각의 블록 Bi 에 대하여, Ci @ BiE (mod n) 를 계산한 후, 이들을 차례로 나열한 C1 C2 ... Ct 가 바로 암호문이다. 이것을 해독하기 위해서는 복호화 키 D 가 필요한데, D 는 DE @ 1 (mod (p-1)(q-1)) 을 만족시키도록 미리 선택된 수로서, 물론 우리편만 알고 있는 비밀이어야 한다. 페르마 작은 정리를 사용하면, 각각의 Ci 에 대하여, CiD @ (BiE)D @ BiED @ Bi (mod n) 임을 보일 수 있다. 따라서 CiD (mod n) 를 계산하면 Bi 가 얻어 진다.예를 하나 들어보자.p = 19, q = 23, n = p x q = 437, E = 13, D = 61이라고 하면,(p - 1)(q - 1) = 396 이고 13 x 61 = 793 = 2 x 396 + 1이므로 위의 조건을 모두 만족한다. 123이라는내용을 전달하려고한다. B = 123 을 암호화 키 E = 13 을 이용하여 계산하면12313 @ 386 (mod 437)이므로, C = 386 이라는 암호문을 전송한다.암호문 386 을 받은 사람은 자신의 복호화 키 D = 61 을 이용하여38661 @ 123 (mod 437)123이라는 올바른 정보를 얻게 된다.RSA 알고리듬의 안전성RSA알고리듬의 공격에는 모든 가능한 개인키로 시도하는 전사적 공격 방법과 도 소수의 곱을 인수분해를 이용하는 수학적인공격, 또 복호알고리듬의 실행시간을 이용하는 시간적인 공격이 있다.전사적 공격(brute force)전사적 공격은 암호시스템의 키의 크기를 크게 하여 사용함으로써 방어할과 특별한 목적의 RSA 하드웨어 향상사이에, 키 크기에 있어서의 증가는 알고리즘 효율성 증가를 능가하거나 보조를 맞추며, 안전성의 손실을 가져오지 않는다. 소인수분해 알고리즘의 복잡도가 감소하는 비율보다 더 빠른 비율로 하드웨어가 계속 향상되는한, RSA 사용자들이 정규적으로 적당한 크기까지 키 크기를 늘린다는 가정하에 RSA의 안전도는 증가할 것이다. 문제는 소인수분해 알고리즘이 얼마나 더 빨라질 수 있는가 하는 것이다. 소인수분해 속도에 본질적인 한계가 있지만, 이 한계는 알려지지 않았다.현재 허용되는 보안수준은 12MIPS-year이다. RSA를 깨는 최상 알고리듬의 수행시간을 보면 다음과 같다.[kisa]그림 3. RSA의 안전도제 3장. RSA 알고리듬의 응용안전한 메시지 전송RSA알고리듬을 이용하면 안전하게 메시지를 전송할 수 있다. RSA알고리듬을 이용한 안전한 메시지 전송의 개략도는 다음과 같다.과정은 다음과 같다.키쌍을 생성한다. (1024bits 이상의 키를 사용하는 것이 좋다.)공개키를 나누어 가진다.송신자의 개인키로 메시지를 암호화 한다.암호화된 문서를 전송한다.수신자는 송신자의 공개키로 메시지를 복호화 한다.이렇게 하면 2장 1절에서 다루었듯이 안전하게 메시지를 전송할수 있다. 하지만 문서의 길이가 길어지면 속도면에서 문제가 있을 것이다.세션 키 암호화RSA알고리듬은 비밀키를 이용하는 알고리듬에 비해서 키 생성 시간과 암호화/복호화과정에 많은 시간이 소요된다. 비대칭 암호화는 대칭암호화보다 1000배 가까이 느리다[3]. 보내고자하는 메시지가 길어지면 더욱 시간이 오래 걸린다. 이 비효율성을 극복하기 위해 세션 키 암호화가 사용된다. 메시지는 대칭 키로 암호화되고 이 대칭 키가 수신자의 공개키로 암호화된다. 그러면 암호화된 공개 키는 암호화된 메시지에 덧붙여진다.수신자에게보내진 암호화된 비밀키는 수신자의 개인키에 의해 복호화된다. 그 후 복호화된 비밀키로 암호문서를 복호화한다.비밀키로 긴 문서의 암호화 복호화를 함으로서 암호화 복호화하 이렇게 해서 누군가 서명을 했다면, 추후에 서명자가 이사실을 부정할 수 없게 된다 즉 부인봉쇄가 된다.전자서명으로는 계약서에 서명, 이메일 서명, 데이터에 타임스탬프를찍고 서명하는 타임서버 사용, 패스워드 기반의 로그인보다 훨씬 안전하게 서버를 승인하는등 여러가지로 유용하다.제4장 2절에서 실제로 전자서명을 Java로 구현해보고 동작을 이해해본다.3절. 전자인증서전자 서명을 검증할 때 공개키가 있어야한다. 하지만 공개키가 맞는지 알수 없다. 만약 안전한 방법으로 직접 얻지 않았다면 공개키를 확신 할 수 없다. 전자인증서는 변조할 수 없는 방법으로 공개 키에 신원 정보를 덧붙이는 방법으로 이런 문제를 해결한다.전자인증서전자인증서는 공개 키를 제3자가 보증하는 것이다. 실생활에서 여권과 유사하다. 여권에 비유하면 제3자(정부)가 여권을 들고 있는사람이 그 여권에 기록되어있는 정보를 가지고 있는 그사람이 맞다고 증명해 주듯이 인증서로 공개키가 맞는것인지 제3자가 보증해 주는것이다.인증서에는 당신의 공개 키와 정보를 제 3자의 개인 키로 서명되어 있다. 제3자는 CA(Certificate Authority)라고 불린다.가장 많이 사용하는 인증서로는 X.509인증서가 있다.인증서의 내용에 대해서 살펴보면 다음과 같다X.509v1 인증서버전 – 인코딩 되는 인증서의 버전 (v1, v2, v3)일련번호 - CA에서 발급하는 인증서에 부여하는 유일한 양의 정수서명 알고리듬 – CA가 인증서 생성에 사용하는 알고리듬에 대한 식별자유효기간 – 인증서의 유효기간서브젝트 – 인증서가 누구에게 발급되었는지 나타 낸다. X 500 이름으로 저장되어있다. X.500이름은 CN : 이름 OU : 조직의 기구 O : 조직 L : 조직의 위치 ST : 조직이 속한 주 C : 국가 로 이루어져있다서브젝트 공개키 - 인증서 서브젝트의 공개 키이다.서명 – 서명 기관이 인증서에 서명을 하고 서명을 저장하는 곳X.509v2 인증서Issuer Unique Identifier – 만약 다른CA에 대해희선의 창을 보면 이름 뒤에 (Secure)라고 안전한 메시지 전송을 했다는 것을 표현해준다. 김희선은 암호화된 메시지를 받으면 자신의 개인키로 복호화하여 자신의 화면에 출력한다.정말 중요한 것은 이 부분이다.그림 18. 암호메시지 송수신후 서버화면서버측 화면을 보면 그냥 메시지 전송을한경우는 서버측에서도 다 보이지만 안전한메시지 전송을 한경우에는 아래와 같이 암호화된 메시지가 보임으로써 김희선 이외에 서버나정민성:%Security%XotomqCK5Xpf0hZlWMu4MTta80uiWy5edbrtCNxwWVJ+V4m+mHkNN/ThDNg87i/4YUDP0koItJTi정민성:AIstkOjSEyVkwFxBOdM6XeokT347SN4SAvj5/PKqlH/kFn3agPQEmMW14udY7PQvf5p0VYxatZ/x정민성:pgcxSqAMA82S4zA0W1o=다른 사람들이 가로채더라도 복호화 할수 없기 때문에 안전하다.전자서명의 구현앞 3장 2절에서 이야기한 전자서명을 해볼것이다. 이 프로그램에서는 파일에서 공개 키를 읽어들인 다음 네트워크를 통해서 사용자를 인증하는 서버를 만들 것이다.세가지 프로그램을 만들것인데 키쌍을 생성하는프로그램, 인증 서버, 인증 클라이언트 프로그램을 만들도록하겠다. 전체적인 개략도는 다음과 같다.그림 19. 전자서명의 인증과정키쌍 생성클라이언트와 서버에서 사용될 RSA키 쌍을 생성한다. 키쌍 생성기에 패스워드, 공개키를 저장할 파일 이름, 개인키를 저장할 파일이름을 입력한후 키쌍생성버튼을 누르면 작동한다.아래 그림을 보면 공개키를 public.key, 개인키를 private.key 파일에 저장하였다고 나오는데 확인을 해보자.그림 20. 키쌍생성기아래그림에 보면 public.key와 private.key가 생성된 것을 알수 있다.그림 21. 키저장 파일서명 인증 서버이제 키 쌍이 생성되었으므로 서버가 인증을 처리하는 부분을 구현해 보겠다.서버는 파일에서 공개키를 읽어들이고 8바이트의 타임스탬프와 16바이트의 랜덤수가 있는 24바이트 배열을 클라25 -
    공학/기술| 2004.01.08| 28페이지| 3,000원| 조회(924)
    미리보기
전체보기
받은후기 1
1개 리뷰 평점
  • A+최고예요
    0
  • A좋아요
    0
  • B괜찮아요
    0
  • C아쉬워요
    1
  • D별로예요
    0
전체보기
해캠 AI 챗봇과 대화하기
챗봇으로 간편하게 상담해보세요.
2026년 04월 21일 화요일
AI 챗봇
안녕하세요. 해피캠퍼스 AI 챗봇입니다. 무엇이 궁금하신가요?
2:01 오전
문서 초안을 생성해주는 EasyAI
안녕하세요 해피캠퍼스의 20년의 운영 노하우를 이용하여 당신만의 초안을 만들어주는 EasyAI 입니다.
저는 아래와 같이 작업을 도와드립니다.
- 주제만 입력하면 AI가 방대한 정보를 재가공하여, 최적의 목차와 내용을 자동으로 만들어 드립니다.
- 장문의 콘텐츠를 쉽고 빠르게 작성해 드립니다.
- 스토어에서 무료 이용권를 계정별로 1회 발급 받을 수 있습니다. 지금 바로 체험해 보세요!
이런 주제들을 입력해 보세요.
- 유아에게 적합한 문학작품의 기준과 특성
- 한국인의 가치관 중에서 정신적 가치관을 이루는 것들을 문화적 문법으로 정리하고, 현대한국사회에서 일어나는 사건과 사고를 비교하여 자신의 의견으로 기술하세요
- 작별인사 독후감