Upload
maris
View
71
Download
2
Embed Size (px)
DESCRIPTION
2004 년도 여름방학 영재교육 C 프로그래밍 과정. 발표자 : 김 진성. Contents. C 언어 기초 암호화 시스템 암호화 시스템의 종류 전자문서 암호화 및 복화화 과정 C 언어의 비트 연산자 XOR C 언어를 이용한 전자문서 암호화 C 언어를 이용한 전자문서 복화화. 1.2 첫 프로그램. Visual C 실행 시키기. 4. 마우스 클릭. 3. 마우스 포인트 위치시킴. 2. 마우스 포인트 위치시킴. 1. 마우스 클릭. 1.2 첫 프로그램. - PowerPoint PPT Presentation
Citation preview
전자정보공학부
발표자 : 김 진성
2004 년도 여름방학 영재교육C 프로그래밍 과정
전자정보공학부
Contents C 언어 기초 암호화 시스템 암호화 시스템의 종류 전자문서 암호화 및 복화화 과정 C 언어의 비트 연산자 XOR C 언어를 이용한 전자문서 암호화 C 언어를 이용한 전자문서 복화화
3전자정보공학부
1.2 첫 프로그램 Visual C 실행 시키기
마우스클릭
마우스 포인트위치시킴
마우스 포인트위치시킴
마우스클릭
1
2
3
4
4전자정보공학부
1.2 첫 프로그램 Visual C 실행 화면 메뉴 툴바
문서 창프로그램 작성
결과 창
컴파일 및디버깅 결과
보여줌
프로젝트 창(프로젝트가포함하고 있는File 보여줌 )
5전자정보공학부
1.2 프로젝트 만들기
<- 새 프로젝트 열기
마우스클릭
프로젝트 이름 입력(작성 프로그램 이름 )
파일 메뉴 – New 선택 (클릭 )
마우스 클릭하여작성 프로그램폴더 선택
(컴퓨터의 파일 위치 )마우스클릭
마우스클릭
1
2
3
4
5
6
6전자정보공학부
1.2 첫 프로그램 프로젝트 작성과정 완료
마우스클릭
7전자정보공학부
1.2 첫 프로그램 Visual C 에서 프로젝트 ( 작성을 위한 프로그램 ) 가 열린 상태
마우스 클릭
소스파일 표시(편집 위함 )
해더파일 표시(편집 위함 )
8전자정보공학부
1.2 소스 파일 만들기
<- 새 소스파일 만들기
마우스클릭
체크 확인
파일 메뉴 – New 선택 (클릭 )
소스파일 (hello.c) 이름 입력하기 (5)
마우스클릭
마우스클릭
1
2
3
4
5
6
9전자정보공학부
1.2 소스파일 (hello.c) 편집
마우스 클릭
마우스 더블클릭( 빠르게 두번 연속 )
소스 코드 편집
소스파일 저장
1
2
3
4
10전자정보공학부
소스파일 컴파일
마우스 클릭
11전자정보공학부
소스파일 컴파일
컴파일 완료컴파일 과정에서
컴파일 에러 발생하면소스코드 수정함
Hello.obj 파일 만들어짐
12전자정보공학부
프로그램 실행시키기
마우스 클릭
마우스 클릭
1
2
13전자정보공학부
프로그램 실행 결과 하면
중요
다음 작업을하기 전에반드시 실행창을닫을 것
실행창이 활성화된상태에서 키보드의아무키나 누르면 됨
실행창 활성화란
요 부분의 색이파란색임
First ProgramEnd
14전자정보공학부
배열
배열 이란 ?– 메모리에 순차적으로 임시 기억장소를 지정함 .
– 배열의 각 원소들은 인덱스 (index) 라고도 부르는 첨자를 사용
– int grade[3];
• grade[0], grade[1], grade[2] : 세 개의 저장 공간 확보됨
• grade[3] = 3; /* ERROR 배열의 범위 벗어남 */
15전자정보공학부
배열
배열 a 에 값이 저장된 모습– a[0] 의 시작 주소는 1000 번 에 저장됨
– a[0] = 7
– a[1] = 8
– a[2] = 11
– a[3] = 16
– a[4] = 23
16전자정보공학부
포인터 변수 와 & 연산자– 주소를 저장할 수 있는 변수 .
– 변수의 주소 값을 얻을 수 있음 .
– 예 ))
포인터 선언 및 할당
int *p;int month=3;p = &month;
int *p;int month=3;p = &month;
포인터 변수 p 에 month의 메모리 주소 저장
포인터 변수 선언
17전자정보공학부
포인터 연산자– 포인터 변수 선언을 위한 * 와는 다른 의미
– 포인터 변수가 가르키는 값을 의미
– 예
포인터 연산자
int month=3;int *p;p = &monthprintf(“month = %d”, *p);
int month=3;int *p;p = &monthprintf(“month = %d”, *p);
포인터 변수 선언
수식에서 사용된 포인트 연산자
p 가 month 의 주소 값을 가지고 있으므로 *p 는 p 가 가르키는 month 의 값 3 을 의미
18전자정보공학부
예 1
예 2
예 3
포인터 선언 및 할당
p a
?
b
? ?
p b
7
p a
3
7
a
7
b
int a, b; int *p; int a, b; int *p;
a = b = 7; p = &a;
a = b = 7; p = &a;
*p = 3; *p = 3;
printf("*p = %d\n", *p);: 실행 결과로 7 이 출력
전자정보공학부
암호화 란 ?
– 암호화란 전자문서의 내용을 정당한 권한이 없는 자가 볼 수 없도록
암호키를 사용하여 암호문을 만드는 과정을 말합니다 .
복호화 란 ?
– 정당한 권한을 가진 자가 암호키를 사용하여 전자문서의 내용을
복원하는 과정을 말합니다 .
암호화 시스템
전자정보공학부
단일 키 암호화
– 암호화와 복호화 과정에서
동일한 키를 사용 .
공개 키 암호화
– 암호화와 복호화 과정에서
서로 다른 키를 사용 .
( 개인키 / 공개키 )
암호화 시스템의 종류
21전자정보공학부
전자문서
암호문서
암호 키
( 송신자 )
( 수신자 )문서 내용 해독불가능
맞으면
틀리면
암호문서
암호 키전자문서
문서 내용 해독가능
인터넷
전자문서 암호화 및 복호화 과정
단일 키
22전자정보공학부
C 언어의 비트 연산자 XOR
비트연산자 XOR 를 이용한 암호화 원리
비트 연산자 XOR 를 이용한 복호화 원리
e d c b
1 2 3 4
f f f f
1110 1101 1100 1011
0001 0010 0011 0100
1111 1111 1111 1111
^ ^
==원문
키값
암호
f f f f
1 2 3 4
1111 1111 1111 1111
0001 0010 0011 0100^ ^
==
암호
키값
e d c b 1110 1101 1100 1011원문
23전자정보공학부
C 언어의 비트 연산자 XOR 비트연산자 XOR 를 이용한 암호화 원리
24전자정보공학부
C 언어를 이용한 전자문서 암호화
25전자정보공학부
C 언어를 이용한 전자문서 복호화
26전자정보공학부
C 언어를 이용한 전자문서 복호화