제1장  암호학

제1절 암호학 기본

제1항 암호학의 개념

(1) 암호학(Cryptology)의 정의

1) 암호학(Cryptology)이란 평문을 다른 사람이 알아볼 수 없는 형태의 암호문으로 만들고 특정한 비밀키를 알고 있는 사람만이 다시 평문으로 복원시킬 수 있도록하는 암호기술(Cryptography)과 이를 제3(도청자)가 해독하는 방법을 분석하는 암호해독(Cryptanalysis)에 관하여 연구하는 학문이다.

2) 암∙복호화는 쉽고 빠르면서 암호 해독은 어려울수록 좋은 암호 알고리즘이라고 할 수 있다.

3) 암호 알고리즘의 원리는 확산과 혼돈을 통해 이루어진다.


 

확산(Diffusion)

평문의 각 사용 문자에 대한 정보가 암호문 전체에 고루 분산되는 특성을 이용하여 암호 해독의 단서를 남기지 않기 위해 암호문과 평문의 관계를 숨기는 것

혼돈(Confusion)

평문과 암호문 사이의 대응 관계를 알 수 없도록 하여 암호문을 사용해서 비밀키를 알아내는 것을 막는 것

 

 

(2) 암호화의 기능

1) 기밀성

① 가로채기를 당해도 알 수 없도록 문서를 해독 불가능한 형태로 변형하는 기능

2) 무결성

① 전송 도중에 문서의 내용이 부당하게 변경되지 않고 정확하고 완전하게 수신되었음을 보증하는 기능

3) 메시지 인증

① 전송된 문서의 출력 및 문서 내용의 무결성을 보증하는 기능

4) 사용자 인증(신분확인)

① 원격지에서 접속한 사용자가 본인임을 신원 확인하는 기능

5) 부인방지

① 문서의 송,수신 후 송,수신자가 자신이 송신하거나 수신한 문서의 송,수신 사실의 부인을 방지하는 기능

 

 

(3) 송신자수신자도청자

1) 송신자와 수신자

① 송신자(Sender)

ü 어떤 사람이 다른 사람에게 정보를 보낼 때 정보를 보내는 사람

② 수신자(Receiver)

ü 어떤 사람이 다른 사람에게 정보를 보낼 때 정보를 받는 사람

③ 메시지(Message)

ü 송신된 정보

 

 

2) 도청자

① 송신자와 수신자에게 정보를 보낼 때중간에서 전송중인 메시지를 갈취하는 사람

② 도청자는 반드시 사람만 의미하는 것은 아니다도청자는 통신기기에 장치된 도청용 기계일 수도 있고메일 소프트웨어나 메일 서버에 설치된 프로그램일 수도 있다.

③ 단순히 전송중인 메시지를 갈취하는 공격을 소극적 공격이라고 한다.

  

④ 전송중인 메시지를 갈취하여 메시지 내용을 수정하여 수신자에게 보내는 공격을 적극적 공격이라고 한다.

 

 

(4) 암호화와 복호화

1) 평문(Plaintext)

① 암호화하기 전의 메시지

2) 암호문(Ciphertext)

① 암호화한 후의 메시지

3) 암호(Cryptography) 기술

① 송신자는 메세지 불법 유출을 막기 위해서 메세지를 암호화(Encrypt)해서 보내게 된다이를 통해서 메세지의 기밀성(Confidentiality)을 유지한다.

 



4) 복호화와 암호해독의 차이점

① 복호화

ü 정상적으로 복호화키를 알고 있는 수신자가 암호문을 평문으로 복원하는 과정

② 암호 해독(cryptanalysis)

ü 복호화키를 모르는 적 또는 암호 분석가가 복호화키를 찾아내거나 평문 내용을 알아내는 비 정상적인 과정

③ 암호 해독자(cryptanalyst)

ü 암호 해독을 하는 사람으로써 나쁜 의도를 가진자 또는 암호 분석가가 이에 속한다.

④ 실전문제

 SHAPE  \* MERGEFORMAT



암호 알고리즘의 구성요소


 

1) 평문(Plaintext, P)

① 전달하고자 하는 메시지

2) 암호문(Ciphertext, C)

① 평문을 제3자가 알아볼 수 없는 형태로 변형한 문자나 부호

3) 암호화(Encryption, E)

① 암호 알고리즘을 이용하여 평문을 암호문으로 변형시키는 과정

② C = Ek(P)

ü 평문(P)를 키(K)로 암호화(E)하여 암호문(C)을 만든다.

4) 복호화(Decryption, D)

① 암호문을 다시 평문으로 복원하는 과정

② P = Dk (C)

ü 암호문(C)를 키(K)로 복호화(D)하여 평문(P)을 만든다.

5) 암호 알고리즘(Cryptographic Algorithm)

① 암호화 알고리즘

ü 평문을 암호문으로 만드는 절차

② 복호화 알고리즘

ü 암호문을 평문으로 만드는 절차

③ 암호 알고리즘

ü 암호화와 복호화 알고리즘을 합한 알고리즘

ü 평문을 암호화하거나 암호문을 복호화하기 위한 일련의 과정과 절차

ü 일반적으로 암호 알고리즘은 공개된다.


 

 

6) (Key, K)

① 암호화와 복호화를 위해 사용되는 일련의 정보이며 문자열 형태이다.

② 암호 알고리즘의 키는 다음과 같은 매우 긴 숫자

ü 2032333438485774873847788474883023948487467494

③ 암호 알고리즘의 키는 다음과 같은 매우 긴 숫자

ü 키의 위치를 위와 같이 암호화와 복호화 알고리즘의 첨자로 나타내기도 하고 C=E(K, P) 또는 P=D(K,C)라고 표현하기도 한다.

 

(6) 암호학으로 할 수 없는 것

1) 암호학은 암호화되지 않은 문서를 보호하지 못한다.

2) 암호학은 암호화키를 도둑맞으면 아무것도 보호할 수 없다.

3) 암호학은 대부분의 도스 공격으로부터 여러분을 보호할 수 없다.

4) 암호학은 배신이나 실수로부터 여러분을 보호할 수 없다.

5) 암호학은 지나다니는 사람들로부터 여러분의 정보를 보호할 수 없다.

 

(7) 암호와 보안 상식

1) 비밀 암호 알고리즘을 사용하지 말 것

① '자신의 회사에서 독자적으로 암호 알고리즘을 개발하고그것을 비밀로 하면 안전하다라는 생각은 큰 오산이다.

② 암호 알고리즘 자체를 비밀로 해서 기밀성을 유지하려고 하는 암호 시스템은 암호 알고리즘의 구조가 폭로되어 버리면 그것으로 끝이다.

③ 암호 알고리즘을 비밀로 해서 보안을 유지하려고 하는 행위는 일반적으로 숨기는 것에 의한 보안(Security by obscurity)이라 부르고전문가가 볼 때는 위험하고 어리석은 것으로 간주되고 있다.

 

2) 약한 암호는 암호화하지 않는 것보다 위험하다.

① '약한 암호를 사용하려면처음부터 암호 따위를 사용하지 않는 것이 낫다'고 생각하는 것이 좋다.

② 가장 큰 이유는 사용자가 암호라고 하는 말로 인해 잘못된 안심'을 하기 때문이다그 결과 기밀성이 높은 정보를 소홀하게 취급할 위험이 있다.

 

3) 어떤 암호라도 언젠가는 해독된다.

① 어떤 암호 알고리즘으로 만든 암호문이라 하더라도 모든 키를 하나도 빠짐없이 시도해 봄으로써 언젠가는 반드시 해독할 수 있다.

② 암호문이 해독되기까지 들어가는 시간과 암호를 사용하여 지키고 싶은 평문의 가치와의 밸런스(Trade-off)가 중요하다.


 

사전공격(Dictionary attack) : 사전에 있는 단어를 입력하여 암호를 알아내거나 해독하는 방법

무차별 대입공격(Brute force attack) : 특정한 암호를 풀기 위해 가능한 모든 값을 대입하는 것

 

 

4) 암호는 보안의 아주 작은 부분이다.

① 최근에는 사회공학 공격(Social Engineering Attack)도 자주 행해지고 있다.

② 피싱(Phishing)과 트로이목마(Trojan Horse)나 사용자의 키보드 입력을 몰래 빼가는 키로거(Keylogger)도 사회공학 공격방법 중 하나이다.

③ 한 시스템의 강도는 가장 약한 링크의 강도와 같기 때문에 모든 링크 부위가 골고루 강해야 해당 시스템의 보안성이 강해지는 것이다가장 약한 링크는 암호가 아니라 사람이다.


 

피싱(Phishing) 

'개인정보(Private data)를 낚는다.(Fishing)'라는 의미의 합성어로 불특정 다수에게 메일을 발송해 위장된 홈페이지로 접속하도록 한 뒤어 인터넷 이용자들의 금융정보 등을 빼내는 신종사기 수법

트로이목마(Trojan Horse)

트로이목마는 컴퓨터 시스템에서 정상적인 기능을 하는 프로그램으로 가장해 다른 프로그램 안에 숨어 있다가 그 프로그램이 실행될 때자신을 활성화하는 악성 프로그램을 말한다.

키로거공격(Keylogger Attack)

컴퓨터 사용자의 키보드 움직임을 탐지해 ID나 패스워드계좌번호카드번호 등과 같은 개인의 중요한 정보를 몰래 빼 가는 해킹 공격

 


제2항 암호기술의 분류

(1) 대칭키 암호

1) 개념

① 대칭키 암호(symmetric cryptography)는 암호화할 때 사용하는 키와 복호화할때 사용하는 키가 동일한 암호 알고리즘 방식이다.

 

 

2) 대칭키 암호의 다른 이름

① 공통키 암호(common-key cryptography)

② 관용키 암호(conventional-key cryptography)

③ 비밀키 암호(secret-key cryptography)

④ 공유키 암호(shared-key cryptography)

 

3) 블록 암호(Block cipher)

① 개념

ü 블록 암호(Block cipher)는 어느 특정 비트 수의 집합을 한번에 처리하는 암호 알고리즘을 총칭한다이 집합을 블록(block)이라고 하며블록의 비트수를 블록 길이(Block length)라고 한다.

ü 평문을 일정한 크기의 블록으로 잘라낸 후 암호화 알고리즘을 적용하여 암호화한다일반적으로 블록의 크기는 8비트(ascii) 또는 16비트(unicode)에 비례한다.

ü 블록 암호는 라운드(Round)를 사용하고반복적으로 암호화 과정을 수행해 암호화 강도를 높일 수 있다.

ü 비트 조작 측면에서 소프트웨어적으로 구현하기 쉽고실제 더 많이 사용되는 암호방식이다.

ü 블록암호는 블록 단위로 처리가 완료하므로 어디까지 암호화가 진행되었는지 하는 내부 상태를 가질 필요가 없다.

블록암호

 

 

혼돈(Confusion)

암호문과 키의 관계를 숨기는 것이다암호문을 이용하여 키를 찾고자 하는 공격자를 좌절시킨다키의 단일 비트가 변하면 암호문의 거의 모든 비트들이 변한다.

확산(Diffusion)

암호문과 평문 사이의 관계를 숨기는 것이다암호문에 대한 통계 테스트를 통하여 평문을 찾고자 하는 공격자를 좌절시킨다.

 

 

② 치환 암호(대치 암호, Substitution Cipher)

ü 비트문자 또는 문자의 블록을 다른 비트문자 또는 블록으로 대체한다.

ü 치환 암호는 평문에서 사용하는 문자의 집합과 암호문에서 사용하는 집합이 다를 수 있다는 것이다.

ü 평문의 문자를 다른 문자로 교환하는 규칙이다이때 교환 규칙은 일대일 대응이 아니어도 상관없다.

 

 

③ 전치 암호(Transposition Cipher)

ü 원문을 다른 문서로 대체하지 않지만 원문을 여기저기 움직이게 한다그것은 비트문자 또는 블록이 원래 의미를 감추도록 재 배열한다.

ü 전치는 평문에서 사용하는 문자의 집합과 암호문에서 사용하는 문자의 집합이 동일하다.

ü 문자 집합 내부에서 자리를 바꾸는 규칙이고평문에 사용된 문자와 암호문에 사용된 문자가 일대일 대응 규칙을 갖는다는 점이 특징이다.

 

 

4) 스트림 암호

① 개념

ü 데이터 흐름(스트림)을 순차적으로 처리해가는 암호 알고리즘의 총칭이며암호화 방식은 평문과 키 스트림을 XOR하여 생성한다.

 

 

ü 블록 암호화 방식보다 매우 빠르지만 암호화 강도는 약하다주로 실시간성이 중요하게 여겨지는 음성 또는 영상 스트리밍 전송 및 무선 암호화방식에 사용된다. (일회용 패드, LFSR)

ü 블록 암호는 블록 단위로 처리가 완료되므로 어디까지 암호화가 진행되었는지 내부 상태를 가질 필요가 없다스트림 암호는 데이터의 흐름을 순차적으로 처리해가기 때문에 내부 상태를 가지고 있다.

ü 통상 한 번에 1비트씩 암호화 및 복호화를 하기 때문에 하드웨어적인 shift register 방식을 많이 사용하며 수학적으로는 암호 분석이 용이하다.

ü 블록 암호 하나의 에러는 데이터 블록 전체에 영향을 미치지만스트림 암호는 암호문에서 1비트가 왜곡되면 평문에서도 1비트만 왜곡된다.

 

 

 

② 종류

ü 동기식 스트림 암호(Synchronous Stream Cipher)

• 개념

동기식 스트림 암호에서는 암호화 및 복호화할 문자열에서 특정 위치 비트를 변경할 경우 암호화된 결과에서도 같은 위치 비트가 변경되며다른 위치의 비트는 변경되지 않는다따라서 암호화 문자열을 전송할 시에 특정 비트가 다른 값으로 손상되었어도 복호화 시 다른 비트에는 영향을 미치지 않는다.

전송도중 변조되어도 후속 암호문에 오류의 영향이 파급되지 않는다.

전송중에 비트가 사라지거나 잘못된 비트가 추가되는 경우 오류가 난 시점 이후의 복호화가 실패하게 되며따라서 전송 시에 동기화(synchronize)가 필요하다.

 

 

키 스트림이 평문과 관계없이 생성되므로 암호문과 암호문에 들어있는 키 스트림이 독립적이어서 정보 유출의 가능성이 적다

의도적인 변조가 복호화 단계에서 검출 불가

 

  

ü 자기 동기식 스트림 암호(Self-synchronizing Stream Cipher)

• 개념

자기 동기식 스트림 암호는 난수열을 생성할 때 암호화 키와 함께 이전에 암호화된 문자열 일부를 사용한다이 암호의 내부 상태는 이전 내부 상태에 의존하지 않는다.

 

따라서 암호화 문자열을 전송할 시에 일부 비트가 값이 바뀌거나혹은 비트가 사라지고 추가되는 오류가 발생하여도일부분만이 복호화에 실패하며 그 이후에는 다시 정상적인 복호화 값을 얻을 수 있는 자기 동기성을 가진다.

키 스트림이 평문과 암호문과 관계를 갖는다

암호문이 전송 도중 변경되어도 자기 동기화가 가능

변조된 암호문이 후속 암호문 복호화에 사용되지 않아 오류 파급이 제한적

비동기식 스트림 암호(Asynchronous Stream Cipher) 라고 함.

 

 

③ 키 스트림 주기

ü 주기적(periodic) 스트림 암호

• 개념

키 스트림이 어떤 주기를 갖고 반복

• LFSR (Linear Feedback Shift Register, 선형 귀환 시프트 레지스터)

개념

• LFSR은 비교적 작은 비트로 아주 긴 무작위 암호키를 만든다는 장점이 있으나평문 공격에 아주 취약한 것으로 알려져 있다.

• 시프트 레지스터의 일종으로 레지스터에 입력되는 값이 이전 상태 값들의 선형 함수(XOR)로 계산되는 구조를 갖고 있다.

• 레지스터가 가질 수 있는 값의 개수는 유한하기 때문에 이 수열은 특정한 주기에 의해 반복된다이를 통해 달성할 수 있는 최대 주기의 수열을 얻을 수 있으며수학적인 분석이 용이하다.

• LFSR의 길이가 작으면 쉽게 해독될 수 있다따라서 주어진 수열을 표시할 수 있는 LFSR의 길이 중 최소의 길이를 선형복잡도라고 정의한다.

• 선형복잡도를 사용하면 다음에 출력될 값을 예측하기 위해 필요한 수열의 양을 계산할 수 있는 장점이 있다.

 

 


키가 반복 없이 표현되는 일회용 패드(one-time pad) 방식 

ü 비 주기적 스트림 암호

• 개념

• One-time pad

개념

• 암호화하려는 메시지가 있다면그 메시지와 동일한 크기의 키가 필요하다.

• 복호화 암고리즘은 서로 역관계이다이 암호에서 배타적 논리합 연산이 한번에 한 비트씩 적용된다.

• 공격자가 키나 평문을 추적할 수 있는 어떠한 방법도 존재하지 않으며 통계적 특성 또한 존재하지 않는다.

• 한가지 문제점은 송신자와 수신자가 통신을 할 때 마다 랜덤한 키를 공유해야 한다는 것이다.

 

 

 

(2) 비대칭키 암호

1) 개념

① 비대칭키 암호(asymmetric cryptography)는 암호화할 때 사용하는 키와 복호화할 때 사용하는 키가 서로 다른 암호 알고리즘 방식이다.

② 비대칭키 암호 알고리즘을 사용하기 위해서는 송신자도 한 쌍의 키를 가지고 있어야 하며수신자도 자신만의 한 쌍의 키를 가지고 있어야 한다.

 

 

2) 비대칭키 암호의 다른 이름

① 공개키 암호(public-key cryptography)

 

(3) 하이브리드 암호 시스템

1) 대칭키 암호와 공개키 암호를 조합한 암호 방식을 하이브리드 암호 시스템(hybrid cryptosystem) 이라고 한다.

2) 하이브리드 암호 시스템은 대칭키 암호와 공개키 암호의 장점을 조합한 것이다.

 

(4) 일방향 해시함수

1) 정보나 소프트웨어를 공개적으로 제공할 때에 변경되지 않았음을 확신할 수 있도록 프로그램 제공자가 프로그램을 공개함과 동시에 그 프로그램의 해시값을 공개하는 경우가 있다.

2) 해시값은 일방향 해시함수(one-way hash function)을 사용하여 계산한 값이다.

 

 

 

(5) 메시지 인증코드

1) 개념

① 메시지 인증코드(MAC)은 무결성을 확인하고 메시지에 대한 인증을 하는 기술이다메시지 인증코드는 임의 길이의 메시지와 송신자 및 수신자가 공유하는 키라는 2개의 입력을 기초로 해서 고정 비트 길이의 출력을 계산하는 함수이다.

② 메시지 인증은 메세지를 송신할 때 메시지 뒤에 메시지 완전성 검사 부호를 부가하여 전송함으로써전송 도중에 메시지의 내용이 부당하게 변경되지 않은 상태로 수신되었음을 보증하기 위한 기법이다.

③ 송신자가 메시즈를 송신할 때 송,수신 양자간에 사전에 약속된 암호화 키(encryption key)을 이용하여 메시지 완전성 검수 부호인 메시지 인증코드를 산출하고 이를 암호화한 후 메시지와 함께 전송하면 키를 알고 있는 수신자가 키를 이용하여 메시지 인증 코드를 복호화하고메시지 인증 코드를 재산출하여 두 메시지 인증 코드를 비교함으로써 변조 사실을 검사하는 방법

④ 메시지가 생각했던 통신 상대로부터 온 것임을 확인하기 위해서 메시지 인증코드(message authentication code)라는 기술을 사용한다.

⑤ 메시지 인증코드를 사용하면 그 메시지가 전송 도중에 변경되지 않았다는 것과 생각했던 통신 상대로부터 왔다는 것을 확인할 수 있다.

⑥ 메시지 인증코드는 무결성과 인증을 제공하는 암호 기술이다.

 

2) 메시지 인증코드(MAC, Message Authentication Code) 동작 방법

① 메시지와 대칭키를 입력으로 만들어진 코드

② 사전에 송신자와 수신자 간에 대칭키의 공유가 필요함

③ 수신자는 수신한 메시지와 대칭키를 가지고 직접 MAC을 만들어 수신한 MAC과 비교해 인증을 수행

 

 

3) 일방향 해시 함수와 메시지 인증 코드의 비교

 

(6) 전자서명

1) 개념

① 전자서명이란 오프라인(off-line)세계에서 사용하는 도장이나 종이 위에 하는 서명날인의 개념을 온라인(on-line)세계에 적용한 것이다.

② 거짓행세(spoofing), 변경부인이라는 위협을 방지하는 기술이 전자서명이다.

③ 전자서명은 무결성을 확인하고 인증과 부인방지를 하기 위한 암호 기술이다.

 

2) 전자서명 방식

 

3) 개념

① 메시지에 직접 서명하는 방법

 

② 메시지의 해시값에 서명하는 방법

 

(7) 의사난수 생성기

1) 의사난수 생성기(PRNG, pseudo random number generator)는 난수열을 생성하는 알고리즘이다.

2) 난수는 키 생성(key generator)이라는 매우 중요한 역할을 담당하고 있다.

 

(8) 기타 암호 기술들

1) 스테가노그래피(Steganography)

③ 최초의 암호 유형은 고대 그리스에서 사용한 방식으로 암호화라기보다는 스테가노그래피(Steganography)에 가까운 방법이다.

④ 암호화가 '비밀을 기록하는 것을 의미하는 반면스테가노그래피는 '감추어진 기록(covered writing)'을 의미한다암호화는 메시지의 내용을 은폐하는 것을 의미하며스테가노그래피는 다른 무언가로 감추어 메시지 자체를 은폐하는 것을 의미한다.

⑤ 일반적으로 사진 파일에 인간이 인지하지 못할 정도의 미세한 부분에 변화를 주어 정보를 입력하는 방식이 많이 사용된다.

2) 워터마크(Watermark)

① 워터마킹이란 용어는 지폐의 제조과정에서 위조지폐를 가려내기 위해 물에 젖은 상태에서 특정 그림을 인쇄하고 말린 후 불빛에 비추었을 때 그림이 보이도록 하는 기술에서 유래했다.

② 현재는 원본의 내용을 왜곡하지 않는 범위 내에서 혹은 사용자가 인식하지 못하도록 저작권 정보를 디지털 콘텐츠에 삽입하는 기술을 말한다.

③ 활용 범위

ü 변조유무확인소유권 주장사용제한/불법복제 방지 등

④ 디지털 워터마킹의 분류

ü 투명 워터마킹

• 미디어 내에 내재되어 있어 밖으로 드러나지 않는 워터마킹의 형태

ü 가시 워터마킹

• 알아볼 수 있는 상태를 의미문서에 일급비밀이라고 도장을 찍는것이 이러한 워커마킹의 예

ü 강한 워터마킹

• 공격을 받아도 쉽게 파괴되거나 손상을 입지 않음

ü 약한 워터마킹

• 공격을 받으면 쉽게 파괴되거나 손상을 입음

• 양자 암호학

최근의 기술인 양자 암호학은 앙자역학의 원리를 응용한 암호방식으로하이젠베르크의 불확정성 원리를 응용한 암호화 방식이다물리학자들이 생각해낸 방법으로 정보를 보낼 때 아무도 그 내용을 알아낼 수 없도록 하는 것이 아니라누군가 정보 전달 당사자 사이에서 도청을 수행할 때 정보의 내용이 변해버려 결국 쓸모 없게 만들어 버리는 것이다튼튼해서 누구도 열수 없는 암호 전송용 상자를 만드는 것이 아니라통신 당사자가 아닌 다른 누군가가 엿보려고 시도하는 순간 부서져 버리는 매우 약한 상자를 만들어서 만일 상자가 손상되었다면 그 당시 보냈던 문서를 폐기하도록 하는 방법이다.

 

3) 핑거프린팅(Fingerprinting)

① 디지털 콘텐츠를 구매할 때 구매자의 정보를 삽입하여 불법 배포 발견 시 최초의 배포자를 추적할 수 있게 하는 기술이다.

② 판매되는 콘텐츠마다 구배자의 정보가 들어가므로 불법적으로 재배포된 콘텐츠의 내에서 핑거 프린팅된 정보를 추출하여 구매자를 식별하고법적인 조치를 가할 수 있게 된다.


'정보보안기사 > 정보보안일반' 카테고리의 다른 글

03. 대칭키암호 (스트림암호)  (0) 2017.08.02
01. 정보보호의 개요  (0) 2017.08.02

+ Recent posts