본문 바로가기

반응형

전체 글

(48)
[C] 3. 표준 입출력과 주석 1. 출력함수 printfC 에서는 다양한 출력함수를 제공하지만, 가장 간단하고, 먼저 접근하게 되는 출력함수는 printf 함수일 것이다. printf 함수는 stdio,h에 선언되어 있고, 따라서 우리는 이 함수를 사용하기 위해서 #include와 같이 stdio.h 파일을 include 해준다. printf의 함수를 어떻게 사용하는지 알아보자.int printf ( const char * format, ... );printf의 함수의 선언은 위와 같다. format의 내용을 stdout으로 console창에 띄워주는 역할을 한다. 출력하고자하는 format에는 앞서 배운 형식 문자(format character)를 사용할 수 있다. printf함수는 format에 형식 문자가 존재하면, 형식 문자의..
[C] cf. 형식문자(Format Character) 1. 형식 문자(Format Character)데이터를 입/출력 할 때, 컴퓨터가 그 Type을 인식할 수 있도록, 데이터의 해석을 지시해주는 문자이다. 우리가 흔히 사용하는 scanf와 printf에서 주로 사용되며, %c, %d, %f 등과 같은 문자를 의미한다. 형식 문자가 사용되는 이유는, 같은 데이터라도 해석하는 방향에 따라 다른 문자가 될 수 있기 때문이다. 예로, 'a'라는 알파벳 소문자 데이터는 단일 character로 인식하는 경우(%c) a를 출력하지만, 정수로 인식하는 경우(%d) 97을 출력할 수 있다. 따라서 C 언어에서는 다양한 형식 문자를 지원한다. - %c : char, short, int, 단일 바이트 문자 입/출력에 사용.- %d, %i : char, short, int,..
[C] cf. ASCII CODE 1. ASCII Code란? ASCII(American Standard Code for Information Interchange)는 문자들, 특히 알파벳을 컴퓨터에서 사용하기 위한 문자 인코딩이다. ASCII Code는 국제 표준 기구에 의해서 개발되었고, 1967년에 미국 국립 표준 연구소에서 제정되었으며, 1986년에 최종적으로 개정되었다. ASCII Code는 7bit Code로 총 128개의 문자들을 나타낼 수 있다. 그 중 0~32의 33개의 문자들은 제어 문자들로 구성되어 있고, 33~127의 95개의 문자들은 출력가능한 문자들로 이루어져 있다. ASCII Code의 표는 아래와 같다. 2. C 언어에서의 ASCII CODE C 언어에서 문자를 출력하기 위해서 ASCII를 사용한다. 앞서 배..
[C] 2. C 언어의 자료형 1. C 언어의 자료형 자료형의 정의는 다음과 같다. "가상 메모리에 할당된 공간을 일정 크기로 구분해서 특정한 의미를 부여한 뒤 해석하는 것." 상당히 어려운 말로 설명되어있다. 아직은 이게 정확히 무슨 말인지 알 필요는 없을 것 같다. 간단히 자료형을 설명하면, C 언어에서 사용이 가능한 데이터(자료)의 종류라는 것이다. C 언어가 지원하는 자료형은 다음과 같다. 앞으로 우리가 주로 사용 할 자료형은, int, char, float, double 정도가 될 것이다. int는 주로 정수의 표현에 사용되는 자료형이며, char는 문자의 표현에 사용한다. float와 double은 소수의 표현에 사용한다. 이러한 자료형들은 크기나 표현 범위들이 다른데, 표로 그 차이를 알아보자. 이렇듯 크기와 표현 범위가..
[C] 1. C 언어의 시작 1. C Language1972년에 처음 등장한 C언어는 Bell 연구소와 Dennis Ritchie에 의해 개발된 컴퓨터 언어이다. C언어는 UNIX 시스템을 재구성할 목적으로 개발되었으며, Ken Thompson이 개발한 B언어를 기초로 개발되었다. 이후로 높은 이식성을 바탕으로 널리 사용되게 되었으며, C언어의 사용자가 많아지자 다양한 Customizing도 발생했다. 이에 ANSI는 C언어를 표준화했고, 표준화된 C언어를 통해서 많은 개발이 진행되었다. 현재는 C99 표준화를 지나 2007년에 개정된 C11을 주로 사용하고 있다.- C언어의 장점1) 높은 이식성을 가진다. 하나의 컴퓨터에서 개발된 C 프로그램은 변경없이 다른 컴퓨터에서도 대부분 실행할 수 있다. 대부분의 시스템/언어들이 C를 기반..
[암호학] 2. 고전암호학(Traditional Ciphers) - 치환 암호(Substitution Cipher) 1. 정의치환 암호(Substitution Cipher)는 특정 글자를 다른 글자로 치환함으로서 암호를 생성하는 방법이다. 예를 들어 알파벳 A를 임의로 H로 지정하듯이 특정 문자를 다른 문자로 치환하면 된다. 치환 암호에는 크게 두 가지 방법이 있는데, 단일 문자 치환(Monoalphabetic Cipher)과 다중 문자 치환(Polyalphabetic Cipher)가 있다. Monoalphabetic은 항상 한 문자에 대해서는 같은 문자로 치환 되는 것이다. 예를 들어, 앞서 A를 H로 치환했다면, 하나의 key를 통해 암호화 된 문서에서 나타나는 모든 H는 Plaintext의 A가 된다. 반면에 Polyalphabetic에서는 하나의 문자가 여러 다른 문자로 바뀔 수 있다. 즉 Plaintext의 ..
[암호학] 2. 고전암호학(Traditional Ciphers) 1. 암호학의 시작위의 그림을 보자. Alice는 Bob에게 어떤 문서를 보내기 위해 문서를 암호화(Encrypt)했고, 밥은 암호화한 문서를 받아 해석했다. 이 때 원본의 문서를 Plaintext라고 하며, 암호화된 문서를 Ciphertext라고 한다. 보통 암호화하는 과정에 있어 Encrypt Algorithm을 사용하며 이 알고리즘에 key가 사용된다. 암호화된 문서를 복호화(Decrypt)하기 위해서는 Encrypt에 사용된 key를 알아야 할 것이다. 이와 같은 과정을 통해 문서를 전송하면, 암호화된 문서를 제 3자가 가로채어도 그 문서를 해독하지 못해 원하는 정보를 얻을 수 없다. Alice와 Bob이 비밀로 문서를 주고 받기 위해서는 둘만의 약속된 key만 유출이 되지 않으면 가능하다. 보통..
[암호학] 1. 암호학에서 사용되는 수학(3) 1. 나머지 연산(Modular Arithmetic)흔히 모듈러 연산이라고도 부르는 이 연산은, 나눗셈 과정에 있어 오로지 나머지에만 관심을 가지는 연산이다. 모듈러 연산의 연산자는 mod를 사용한다. 나누는 값을 Modulus라고 하며, 그에 따른 결과를 Residue라고 부른다. 1) Set of Residues모듈러 연산에서 특정 n에 대한 모듈러 연산의 결과(Residues)를 모아놓은 집합을 Set of Residues라고 말한다. 이를 으로 표기한다. 즉 7에 대한 Set of Residues는 이 된다.Set of Residues 내의 원소들에 대한 이진 연산(Binary Operation)의 결과에는 모두 mod n 을 이용한다.ex) 의 4와 6을 더하라. => (4+6) mod 7 = ..