실행 방법우선 다운 받은 폴더를 c드라이브 어디든 놓으면 됩니다. (저는 C드라이브 바로 최상위 폴더에 놓았습니다.)이클립스나 에디트플러스, 메모장등을 사용하여 소스코드를 수정해 주시면 됩니다.이후에 자바 jdk를 설치해 주시면 됩니다. 제 버전은 jdk1.6.0_24 입니다.커멘드 실행 방법은 시작->실행->cmd 엔터를 치면 커멘드 창이 나옵니다.c:Documents and Settings사용자> 이렇게 나옵니다. 여기에서 다운받은 폴더로 경로를 이동합니다.저는 cd 를 입력하여 C드라이브 최상위 폴더로 이동하였습니다.여기에서 java, javac 두가지 명령어 입력시 여러가지 내용들이 나오면 컴파일과 실행이 가능합니다.만약 두가지중 한가지라도 안되면 네이버에 cmd java나, cmd javac로 검색하시면 수정 방법이 바로 나옵니다.제 기준 경로로 설명하면 c:>cd javac:java>dir 입력시 파일 목록이 나옵니다. 이중에서 ScoreManager파일만 컴파일, 실행하면 됩니다.c:java>javac ScoreManager.java 명령어 입력시 class파일이 세개 생성됩니다.c:java>java ScoreManager 명령어 입력시 프로젝트가 실행이 됩니다.이후 사용자가 원하는 데로 학급을 생성하고 관리할 수 있습니다.부족한 것이나 모르는 것이면 밑에 댓글 달아주세용.
#include #include using namespace std;class Point //퍼즐의 가로, 세로(x, y) 좌표를 위한 Point 클래스{protected://멤버 변수int x, y;public://멤버 함수void setPoint(int w_x, int w_y); //x, y좌표를 설정int getX(); //x 좌표를 얻음int getY(); //y 좌표를 얻음};void Point::setPoint(int w_x, int w_y){x = w_x;y = w_y;}int Point::getX(){return x;}int Point::getY(){return y;}class Puzzle //퍼즐을 만들기 위한 Puzzle 클래스{protected://멤버 변수Point *w_ptr; //가로 문제의 x, y 좌표를 위한 포인터Point *h_ptr; //세로 문제의 x, y 좌표를 위한 포인터string quiz[2][23]; //퍼즐 퀴즈를 위한 이차원 배열string quiz_answer[2][23]; //퍼즐 퀴즈 답을 위한 이차원 배열string board[10][10]; //퍼즐을 저장 하기 위한 이차원 배열 (보드판)string board_temp[10][10]; //퍼즐을 저장 하기 위한 이차원 배열 (보드판) (문제 번호를 알려 주기 위함)string board_answer[10][10]; //퍼즐 답을 저장 하기 위한 이차원 배열 (보드판)public://멤버 함수void menu(); //메뉴를 출력하기 위한 함수//퍼즐을 초기화 하기 위한 함수void init(string p_quiz[][23], string p_quiz_answer[][23], string p_board[][10],string p_board_answer[][10], Point *p_w_ptr, Point *p_h_ptr);void quizList() const; //퀴즈의 목록을 출력하는 함수void state() const; //현재 맞춘 상태를 출력하는 함수void select_puzzle(); //가로, 세로와 문제 번호를 선택void w_check(int quiz_num); //가로 답을 입력하고 맞는지 검사void h_check(int quiz_num); //세로 답을 입력하고 맞는지 검사void w_update(int i, int j, string solve); //가로 답을 업데이트void h_update(int i, int j, string solve); //세로 답을 업데이트void all_check(); //모둔 문제를 풀었는지 확인하고 축하 메시지를 출력};void Puzzle::menu(){cout < "***********메뉴***********" < endl;cout < "0. 종료" < endl;cout < "1. 문제 리스트" < endl;cout < "2. 현재 상태" < endl;cout < "3. 문제 맞추기" < endl;cout < "**************************" < endl;cout < "선택 : ";}void Puzzle::init(string p_quiz[][23], string p_quiz_answer[][23], string p_board[][10], string p_board_answer[][10], Point *p_w_ptr, Point *p_h_ptr){w_ptr = p_w_ptr; //가로 문제의 x, y 좌표를 위한 point를 초기화h_ptr = p_h_ptr; //세로 문제의 x, y 좌표를 위한 point를 초기화int i, j; //이차원 배열을 위한 변수for(i=0; i
우리나라에서 사용중인 공인인증서 조사분석요약본 내용은 공인인증서의 출현 배경과 기술분석, 현황분석, 활용형태 및 미래전망을 파악한 것이다. 이를 위해 다양한 자료를 참고하여 분석하고 내용을 정리하였다. 본문에서는 동작원리나 인증구조, 한국의 공인인증기관과 그들의 상호 연동현황을 살펴보고 활용형태 및 미래전망에 대해 알아본다. 이 후 마지막에 결론을 유도한다.0. 서론공인인증서의 출현배경정보통신 기술의 발달로 최근 정보통신 네트워크 이용이 급증하고 인터넷을 통한 각종 거래가 국내외적으로 보편화되고 있다. 이러한 정보네트워크를 통해 오가는 데이터의 성격이 과거에는 단순한 문서 위주에서 이제는 사이버 공간에서 이뤄지는 거래 유형은 인터넷 뱅킹, 사이버 증권거래 등 이밖에도 전자상거래, 경매 등에서 그 이용이 더욱 증가함에 따라, 이러한 정보네트워크를 통한 거래 시 발생하는 신원확인 및 메시지 내용에 대한 보안 등이 중요한 이슈로 떠오르고 있다. 이에 따라 정보망의 안전과 개인 정보의 유출을 방지하기 위해 공인인증서(Public Key Infrastructure) 제도가 도입되었다.전자서명시스템에서 공인인증서는 전자상거래시 사용자의 신원을 확인하고, 문서의 위조와 변조, 거래 사실의 부인 방지 등을 목적으로 공인인증기관(CA)이 발행하는 전자적 정보로서, 일종의 사이버 거래용 인감증명서 역할을 한다.전자상거래가 본격적으로 발전하기 시작하면서 사업자간 전자상거래에 있어서 거래 자료의 전자적 교부의 필요성이 증대하고 있으며 전통적 상거래에 있어서도, 교부나 보관 등 거래 자료의 관련 업무의 효율화를 위해 도입이 필요하다는 판단 하에 국세청에서는 관련 규정을 정비하여, 2001년 1월부터 전자거래내용을 인터넷을 통해 주고받을 수 있도록 하였다.정의공인인증서(公認認證書, 영어: public key certificate)는 전자 서명의 검증에 필요한 공개 키(전자서명법에는 전자서명검증정보로 표기)에 소유자 정보를 추가하여 만든 일종의 전자 신분증(증명서)이다. 공개 키 증명서서 사용자가 설정하는 개인키 암호화 패스워드가 사용된다.한국의 공인인증서 시스템에서는 패스워드 기반의 안전한 개인키 암호화를 위해서 PKCS#5(Public Key Cryptography Standards #5)에서 정의한 PBES1(Password Based Encryption Scheme 1)암호화 기법을 이용한다. PBES1에서 정의하고 있지 않은 SEED 블록 암호화 알고리즘을 사용하기 위해서 암호화 키(K)와 초기벡터(IV)를 생성하는 방법을 다음과 같은 방법으로 정의된다.8byte의 솔트 값과 반복횟수 값을 선택하고, PBKDF1에 패스워드(P), 솔트 값(S), 반복횟수 값(C)을 적용하여 20byte의 추출키(Derived Key)를 생성한다. 한국의 공인인증서 시스템에서는 PBKDF1에서 SHA-1 해쉬함수를 사용한다. 간단히 설명하면 P?S값을 SHA-1 해쉬함수에 입력하여 20byte의 추출키를 생성하는 작업을 반복횟수 값으로 지정된 횟수만큼 해쉬작업을 수행한다. PBKDF1의 입력 값 중 ‘20’은 PBKDF1에 사용되는 해쉬함수의 출력 길이를 설정하는 값으로 고정되어 있다.DK = PBKDF1(P, S, C, 20)생성된 추출키(DK)에서 처음 16byte를 비밀키(K)로 사용한다.K = DK초기벡터의 생성은 아래 2가지 방식으로 이루어지는데 개인키 파일의 특정 필드 값에 따라서 달라진다. id-seedCBC OBJECT IDENTIFIER가 {1 2 410 200004 1 4}이면, 초기벡터 IV = "30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35"이며, id-seedCBCWithSHA1 OBJECT IDENTIFIER가 {1 2 410 200004 1 15}이면, DIC = Hash(DK)이며 초기벡터 IV = DIV이다.그리고 SEED 블록 암호화 알고리즘에 사용되는 패딩은 PBES1에서 정의한 방법을 사용하며 총 16-(?M?mod 16)byte의 길이로 구성된다. (?M? : 메시지의 길이 무결성을 확인하게 된다.그러나 전자서명 자체가 기밀성을 제공하지는 않는다. 다시 말하면 전자서명이란 송신자가 보내는 원본문서에 첨부된 전자서명의 생성과 검증에 관련된 이야기이며 원본문서 자체의 암호와는 또 다른 문제이다.암호화 시스템에 다양한 기술들이 존재하지만 개인키와 공개키를 이용한 암호화도 가능하다. 즉, 송신자가 수신자의 공개키로 암호화해서 송신하면 메시지는 개인키를 소유한 수신자만이 해독할 수가 있게 되며 따라서 기밀성을 제공할 수가 있다.즉 비대칭 키 암호시스템에서 전자서명의 과정은 서명자의 개인키로 서명을 하고 검증자는 서명자의 공개키로 서명을 검증하게 된다. 그리고 암호화는 수신자의 공개키로 암호화하며 수신자는 자신의 개인키로 해독을 하게 된다.다. 인증서 발급절차 인증서 발급절차1) 공인인증서 신청을 희망하는 사용자(개인/법인)는 공인인증기관이나 등록대행기관(RA)을 직접 방문하여 인증서 발급을 신청합니다. 이 때 신원확인서류를 제출한다.2) 공인인증기관/등록대행기관에서는 인증서 발급신청자의 신원을 확인한 후, 참조번호와 인가코드가 기재된 등록확인서를 사용자에게 전달한다.3) 사용자는 공인인증기관/등록대행기관의 인터넷 홈페이지에 접속하여 인증서 관련 응용프로그램 (플러그인)을 내려받아 자신의 PC에 설치한다.4) 공인인증서 발급메뉴를 선택하여 안내에 따라 등록확인서에 기재된 참조번호와 인가코드를 입력하고, 인증서 저장매체 선택, 비밀번호 설정 등을 수행하여 공인인증서를 설치한다.2.2 인증구조가. 공개키 기반구조공개키 알고리즘을 통한 암호화 및 전자서명을 제공하는 복합적인 보안시스템 환경이다. 즉, 암호화와 복호화키로 구성된 공개키를 이용하여 송수신 데이터를 암호화하고 디지털인증서를 통해 사용자를 인증하는 시스템이다.이는 전자거래나 정보유통의 안전성과 신뢰성을 확보하기 위한 시스템으로, 상대방의 신원을 확인하고 정보내용의 변경확인과 비밀유지기능을 갖는 지식정보화사회의 핵심기반이다. 정보통신부는 이것을 활용하여 안심하고 전자거래를 할 수 있도록호? 발행기관 식별명칭 : 공인인증기관 식별명칭? 유효기간 : 공인인증서 유효기간 시작일과 만료일을 명시? 소유자 식별명칭 : 공인인증서 소유자의 실명을 포함한 식별명칭? 공개키 : 공인인증서 소유자의 공개키? 공개키 사용목적 : 공개키의 사용목적을 명시(전자서명, 암호화 등)? 인증서 정책 : 공인인증서 발행기관이 인증서를 발행하는데 적용한 인증서 정책과 인증업무 준칙을 명시? 발행기관의 서명 값 : 위의 내용이 진실임을 증명할 공인인증기관의 전자서명 값라. X.509X.509란 PKI를 위한 ITU-T 표준으로서 PKC의 표준 포맷과 인증 경로 확인 알고리즘을 정의한 것이다. 1996년 version 3 발표하였고 일반적으로 X.509 인증서는 RFC3280에 명시된 대로 IETF의 PKIX(PKI working group) 인증서와 X.509 v3 인증서 표준의 CRL(Certificate Revocation List) 프로파일을 가리킨다.X.509의 특징① X.500 전통의 DN(Distinguished Name)뿐 아니라 여러 종류의 name 형식을 인식한다. (internet e-mail address, Internet domain Name, X.400 e-mail address, X.500 directory name등)② Internet Explorer, Netscape/Mozilla firefox 등 대부분의 유명 브라우저에는 루트 인증서가 기본적으로 장착되어 있어 SSL 인증서가 바로 동작하므로, 브라우저 소유자는 어떤 CA가 신뢰 가능한지를 바로 알 수 있다.③ X.509는 CRL 표준을 포함하지만 IETF에서 승인한 인증서 유효성 검사 방식은 OCSP이며 대부분의 유명 브라우저는 CRL을 검사하지 않는다(검사로 인한 성능 저하로 인해)X.509의 구조④ 인증서 : 버전, 일련번호, 알고리즘 ID, 발행자(Issuer), 유효성, 주체, 주체 공개키 정보(공개키 알고리즘, 주체의 공개키), 발행자 유일 번호(선택 사항; Unique Ident금융 IT 솔루션 전문회사이다.Koscom의 주요 설립목적 중의 하나는 증권회사 전체를 위한 전산 시스템 개발·운용이다. 이에 따라, Koscom은 1983년 증권업계 발전의 획기적 전기된 공동온라인시스템을 개발하여 가동시켰습니다. 이후 증권시장과 업무의 다양화 및 선진화에 따른 요구에 부응하기 위해 1996년 신공동온라인시스템, 1998년 SAVE+ 솔루션과 HTS 시스템, 2002년 BASE21 솔루션 등을 지속적으로 개발하여 제공함으로써 증권회사의 서비스 수준과 경쟁력 제고에 기여해 오고 있다.? 한국인터넷진흥원 : 정보화촉진기본법(제14조)에 따라 1996년 4월 설립하였으며, 11월 한국전산망침해사고대응팀협의회(CONCERT)를 발족하였다. 1997년 1월 정보보호 전문교육과정을 신설하고, 8월 온라인 보안점검서비스를 시작하였다. 1998년 1월 국제침해사고대응팀협의회(FIRST)에 가입하였으며 2월 침입차단시스템의 평가를 시행하였다. 1999년 7월 전자서명인증관리센터(ROOTCA), 2000년 4월 개인정보침해신고센터와 해킹바이러스상담지원센터를 개원하였다.기구로는 정책기획단, 기반시설보호단, 전자거래보호단, 산업지원단, 경영지원실, 인터넷침해사고대응지원센터, 개인정보 분쟁 조정위원회 등이 있다.정보보호에 필요한 정책, 제도 및 기술을 연구·개발하는 업무를 목적으로 한다. 정보보호관련 정책 및 법제도의 체계적인 연구와 정보화 역기능에 대한 조사·분석을 추진하고, 주요 기관의 정보통신시스템 운영자에 대한 기술교육을 실시한다. 정보보호뉴스 등 각종 자료를 발간 및 보급하며, 정보보호 기반기술과 정보보호 응용기술을 개발한다. 또 전산망 안전진단 소프트웨어를 개발하여 공공 및 민간 기관에 기술자문 및 현장 교육서비스를 제공한다. 산·학·연 공동연구를 통한 평가방법 및 평가관리 소프트웨어의 개발을 담당하며, 정보보호 관련 기술과 방식의 표준화를 추진한다. 그밖에 국내 정보보호 산업의 육성을 위한 지원을 수행한다.? 한국전자인증 : 한국전자인증은 1999년 3있다.