자바 암호 프로그래밍 Java Cryptography Programming 2017. 3. 중부대학교 정보보호학과 이병천 교수
차례 1. 강의 개요 2. 암호와 정보보호 3. 자바프로그래밍 기초 4. 자바 네트워크 프로그래밍 5. JCA/JCE 암호 프로그래밍 JCA/JCE 소개 대칭키 암호, 파일 암호화/복호화 해쉬함수, MAC, 패스워드 기반 키생성 공개키 암호 전자서명 6. 인증서와 공개키기반구조(PKI) 7. 암호 알고리즘/프로토콜 구현
1. 강의 개요
교과목 개요 암호란 정보보호를 이루기 위한 중요한 수학적 도구이다. 암호에 대한 개념을 잘 이해하고 안전한 정보보호 시스템을 개발하기 위 해 암호를 활용할 수 있는 능력을 기르는 것은 정보보호 전문가 가 갖추어야 할 중요한 기반기술이다. 본 강의에서는 정보보호와 암호의 연관성, 전자상거래 등 암호의 활용분야를 배우고 해쉬함 수, 대칭키암호, 비대칭키암호, 전자서명, 인증, 암호프로토콜 등 각종 암호기술을 활용하는 방법을 배운다. 자바언어는 모바일 시대의 확산으로 인해 활용분야가 크게 확대 되고 있는 중요한 프로그래밍 언어이다. 특히 암호라이브러리가 사용하기 쉬운 형태로 내장되어 있어서 암호프로그래밍기술을 공부하는데 좋은 환경을 제공하고 있다. 본 강의에서는 자바에서 암호를 활용하는 방법을 배우고 프로젝트 기반으로 실무에 활용 해 봄으로써 실무능력을 배양하는 것을 목표로 한다.
강의 목표 정보보안 개발자를 꿈꾸는 학생들에게 암호기술에 대해 소개하고 이를 정보보안 프로그래밍에 적용할 수 있는 실무능력을 기른다. 객체지향언어로 활용성이 크게 높아지고 있는 자바 언 어에서 JCA/JCE에 기반한 암호프로그래밍 경험을 쌓는 다. JCA/JCE에 구현되지 않은 암호알고리즘, 암호프로토콜 을 직접 구현하여 사용할 수 있는 실력을 기른다. 프로젝트 기반의 최종 성과물을 도출하고 발표하는 경 험을 쌓는다.
강의 내용 1. 자바의 객체지향 프로그래밍에 대한 소개 2. 암호기술에 대한 소개 3. JCA/JCE에 기반한 암호프로그래밍 실무 4. Bouncycastle 패키지에 기반한 인증서 활용 능력 배양 5. JCA/JCE에 구현되지 않은 암호알고리즘, 암호프로토콜 을 BigInteger 클래스에 기반하여 직접 구현, 활용하는 능 력 배양 6. 프로젝트 기반 최종 성과물을 도출할 수 있는 실무능력 배양
주차별 강의 주제 주차 강의주제 강의내용 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 자바 프로그래밍 소개 자바프로그래밍언어에 대한 소개. 객체지향프로그래밍 2 암호와 정보보호 암호의 기본 개념, 정보보호에의 활용 3 자바 암호 패키지 JCA/JCE 자바보안패키지인 JCA와 JCE에 대해 소개 4 대칭키 암호 대칭키 암호 활용법, 프로그래밍 예제 5 해쉬함수, 메시지인증코드 해쉬함수, 메시지인증코드 활용법, 프로그래밍 예제 6 공개키 암호 공개키 암호 활용법, 프로그래밍 예제 7 전자서명 전자서명 활용법, 프로그래밍 예제 8 중간고사 9 인증서와 공개키기반구조 인증서 활용법, 공개키기반구조 개념 소개 10 BigInteger 클래스 공개키 암호 구현을 위한 BigInteger 클래스 활용법 소개 11 RSA 암호 구현 BigInteger 클래스를 이용한 RSA 암호 구현 예제 12 암호프로토콜 각종 암호 프로토콜 소개 및 구현 예제 13 인증 인증 기술 소개 및 구현 예제 14 프로젝트 발표 자바암호프로그래밍을 이용한 학기말 프로젝트 발표 15 기말고사
강의 정보 강의 홈페이지 다음카페 교재 http://cris.joongbu.ac.kr에서 자바암호프로그래밍 메뉴 선택 강의자료 참조 다음카페 http://cafe.daum.net/jbujcp 과제물 제출은 이곳에 교재 카페를 통해 별도 배포
평가방법 출석 20% 과제 30% 중간고사 (필기+프로젝트 발표) 20% 기말고사 (필기+프로젝트 발표) 30% 카페에 제출 중간고사 (필기+프로젝트 발표) 20% 기말고사 (필기+프로젝트 발표) 30% 프로젝트 수행 및 발표 필수 배운 지식을 어떤 프로젝트로 완성하여 보여줄지 고민할 것
공부의 자세 학점 위주의 막연한 공부가 아니라 실무능력을 가질 수 있도록 호기심을 가지고 문제를 해결하는 공부를 그리고 배운 것을 실제 문제해결에 적용하는 노력을 끈기 있게 해보는 거야.