본문 바로가기

개념정리/Cryptography

1. 암호학 개념

 

- 암호학에 대하여 공부를 시작 -

 정보보안기사책과 드림핵을 보며 공부  할 것이다.

이번 시간은 암호학을 공부하기 위해 필요한 개념에 대하여 공부한다.

 


1.  암호학

암호학은 정보를 보호하기 위한 언어학적 및 수학적 방법론을 다룬다. 평문을 다른 사람이 알아볼 수 없는 형태의 암호문으로 만들고 특정한 비밀키를 알고 있는 사람만이 다시 평문으로 복원시킬 수 있도록 하는 암호 기술과 이를 도청자가 해독하는 방법을 분석하는 암호 해독에 관하여 연구하는 학문이다.

수학을 중심으로 컴퓨터, 통신 등 여러 학문 분야에서 공동으로 연구, 개발되고 있다. 초기의 암호는 메시지 보안에 초점이 맞추어져 군사 또는 외교적 목적으로 사용되었지만, 현재는 메시지 보안 이외에도 인증, 서명 등을 암호의 범주에 포함시켜 우리의 일상에서 떼 놓을 수 없는 중요한 분야가 되었다. 현금지급기의 사용, 컴퓨터의 패스워드, 전자상거래 등은 모두 현대적 의미의 암호에 의해 안정성을 보장받고 있다.

 

2. 암호에서 사용하는 이름

1) 앨리스와 밥

  • 일반적으로 앨리스는 메시지를 전송하고 밥이 수신을 하는 모델

2) 이브

  • 영어로 도청자이고 소극적 공격자를 의미한다. 앨리스와 밥 사이에 이루어지는 통신을 도청하기는 하지만 통신중인 메시지를 수정하지 못한다.

3) 맬로리

  • 영어로 악의를 가진 공격자를 의미한다. 맬로리는 메시지를 수정하고 자신의 메시지로 대체한 이전 메시지를 재전송할 수 있다.

4) 트렌트

  • 영어로 신뢰할 수 있는 중재자이며, 중립적인 위치에 있는 제3자이다.

5) 빅터 

  • 영어로 Verifier이며 의도된 거래나 통신이 실제로 발생 했음을 검증할 때 등장한다.

 

3. 암호화, 복호화, 키 생성

1) 암호화 

키를 이용해 평문을 암호문으로 변환하는 과정이다. 암호라는 기술을 사용하여 정보의 기밀성을 유지한다.

평문       →       암호화       →       암호문

 

2) 복호화

키를 이용해 암호문을 평문으로 변환하는 과정이다.

암호문    →       복호화       →       평문

 

3) 키 생성

암호화와 복호화에 사용할 키를 생성하는 과정이다.

 

4. 암호 시스템

암호화와 복호화로 정보가 전달되는 체계

암호 시스템(Cryptosystem)

 

5. 인코딩

암호화와 비교되어 자주 소개되는 개념이 인코딩이다. 인코딩은 암호화와 유사하게 데이터를 다른 형태로 변환하는 것이다. 그러나 인코딩은 데이터의 기밀성을 고려하지 않으며, 누구나 디코딩하여 원문을 구할 수 있다. 따라서 데이터를 숨기기 위해 사용하기 보다는 크기를 줄이거나 컴퓨터가 이해하기 쉬운 형식으로 변형하려고 사용한다. 압축도 인코딩의 예시 중 하나이다.

 

6. 배타적 논리합(XOR)과 합동식

배타적 논리합합동식의 개념은 암호학 전반에 걸쳐 사용된다.

1) 배타적 논리합(XOR)

입력으로 들어온 두 인자가 서로 다를 때, 참을 반환하는 연산

암호학에서는 배타적 논리합은 일반적으로 비트 단위로 이뤄진다. 두 입력 값을 2진법으로 표기 했을 때 각 자릿수의 값이 다르면 1, 같으면 0이 출력된다. 밑에 표는 배타적 논리합의 입력값과 출력값을 나타낸다.

입력 출력
0 0 0
0 1 1
1 0 1
1 1 0

ex) 배타적 논리합 연산의 예

  • 4 ⊕ 8 = 01002 ⊕ 10002 = 11002 = 12
  • 13 ⊕ 10 = 11012 ⊕ 10102 = 01112 = 7
  • x ⊕ x = 0

 

2) 합동식

합동식은 두 정수 a, b를 각각 정수 m으로 나눴을 때 나머지가 같은지를 판별하는 식이다. a와 b 각각을 m으로 나눈 나머지가 같을 때, 수학적으로 a와 b가 mod m에 대해 합동이라고 표현한다.

  • a, b가 mod m에 대해 합동일 경우 a, b 각각에 정수 x를 더하거나 빼거나 곱해도 여전히 합동이다.
  • 하지만 나눗셈에 대해서는 성립하지 않는다.

ex) 합동식의 예

3과 13은 10으로 나눈 나머지가 같기 때문에 3과 13은 mod 10에 대해 합동이며 기호로는 3 ≡ 13(mod 10)으로 표현한다. 또한 3과 13 각각에 같은 정수를 더하거나 빼거나 곱해도 여전히 합동이다.

 

cf) 합동식에서 곱셈의 역원

정수 a, m에 대해 a × b ≡ 1(mod m)을 만족하는 b를 mod m에 대한 a의 곱의 역원(a-1)이라고 부른다. 

예를 들어 2 ×4 = 8 ≡ 1(mod 7)이므로 mod 7에서 2에 대한 역원은 4이다. 

역원은 a와 m이 서로소일 때만 존재한다.

 

7. 암호 알고리즘과 키분리

  • 키는 매회 변경한다.
  • 암호 알고리즘은 반복해서 사용한다.

 

8. 암호와 보안 상식

  • 비밀 암호 알고리즘을 사용하는 것은 위험하다.
  • 약한 암호는 암호화하지 않는 것보다 위험하다.
  • 어떤 암호라도 언젠가는 해독된다.
  • 암호는 보안의 작은 부분이다.

 


 

이번 시간은 암호학을 공부하기 위해 필요한 개념을 공부하였다.

다음 시간은 고전 암호와 현대 암호에 대하여 공부할 것이다.

 

'개념정리 > Cryptography' 카테고리의 다른 글

6. 패딩과 운영모드  (0) 2022.08.01
5. 블록 암호 : AES  (0) 2022.07.28
4. 블록 암호 : DES  (0) 2022.07.25
3. 현대 암호  (0) 2022.07.25
2. 고전 암호  (0) 2022.07.22