1. 암호화와 복호화 기호적 표현
평문(메시지): P 또는 M
암호문: C
암호화 알고리즘: E
복호화 알고리즘: D
키: K
예시
: 평문 P에 키 K를 이용하여 암호화하여 암호문 C를 얻음
: 암호문 C에 키 K를 이용하여 복호화하여 평문 P를 얻음
2. 암호화 기법 분류
(1) 대치(치환) 암호 vs 전치 암호
- 대치(substitution) 암호: 원래의 내용을 어떤 규칙에 의해 다른 내용으로 변환
- 전치(transposition) 암호: 원래의 내용들의 위치들을 서로 뒤바꿔 변환
(2) 대칭키 암호 vs 비대칭키 암호
- 대칭키 암호: 암호화 및 복호화에 있어 같은 키를 사용하는 방식
- 비대칭키 암호: 암호화 및 복호화에 있어 다른 키를 사용하는 방식
※ 키 배송 문제
- 대칭키 암호 사용 시 키 배송 문제 발생
- 키 배송 문제 해결 방법:
1) 키 사전 공유: 안전한 방법으로 키를 사전에 공유, 인원이 많아지면 키 수가 방대해지는 한계 존재
2) 키 배포 센터(KDC) 사용: 신뢰받는 제3자인 KDC에서 각 구성원의 비밀키 생성하고 이 비밀키는 구성원과 KDC 사이에서만 사용, 구성원끼리 통신을 하고자 한다면 KDC에서 각 구성원의 비밀키를 사용해서 구성원 간의 통신에 필요한 세션키 생성, 두 구성원 간의 세션 대칭키는 오직 한 번만 사용
3) 디피-헬만 키 교환 사용: 최초의 비대칭키(공개키) 암호 알고리즘, 최초의 비밀키 교환 프로토콜, 이산대수문제의 어려움에 기반, 이산대수공격과 중간자 공격에 취약
4) 비대칭키(공개키) 암호 사용
5) RSA 사용 키 교환: 송신자가 랜덤으로 생성한 세션키를 수신자의 공개키로 암호화하여 전달하는 세션키 공유
(3) 대칭키 암호 방식 종류: 스트림 암호 vs 블록암호
- 스트림 암호화: 비트/바이트/단어들 단위로 순차적으로 암호화, 암호화가 빠르게 수행되지만 강도는 약함 (동기식 스트림 암호와 비동기식 스트림 암호가 있음)
- 블록 암호화: 큰 데이터 블록 단위로 나누어 블록별 암호화, 암호화 과정을 반복하여 암호화 강도를 높임
3. 기타 암호 기술
(1) 스테가노그래피
데이터 은폐 기술 중 하나이며, 데이터를 다른 데이터에 삽입하는 기술 혹은 그 연구를 가리킨다. 크립토그래피 (cryptography)가 메시지의 내용을 읽을 수 없게 하는 수단인 반면, 스테가노그라피는 존재 자체를 숨긴다.
예를 들어, 사진 파일에 사람이 인지할 수 없도록 미세하게 변화를 주어서 메시지를 숨기는 것이다.
(2) 워터마크
사진이나 동영상 같은 각종 디지털 데이터에 저작권 정보와 같은 비밀 정보를 삽입하여 관리하는 기술을 말한다. 그림이나 문자를 디지털 데이터에 삽입하며 원본 출처 및 정보를 추적할 수 있으며, 삽입된 워터마크는 재생이 어려운 형태로 보관된다. 다른말로는 "디지털 워터마크"라고 부른다.
(3) 핑거프린팅
디지털 콘텐츠를 구매할 때 구매자의 정보를 삽입하여 불법 배포 발견 시 최초의 배포자를 추적할 수 있게 하는 기술. 판매되는 콘텐츠마다 구매자의 정보가 들어 있으므로 불법적으로 재배포된 콘텐츠 내에서 핑거프린팅된 정보를 추출하여 구매자를 식별하고, 법적인 조치를 가할 수 있게 된다. 유사한 기술인 워터마킹(watermarking)은 저작권자 또는 판매자의 정보를 인간의 의식 체계 또는 감지 능력으로는 검출할 수 없는 방식으로 콘텐츠에 숨겨 놓는 기술로서 삽입되는 정보가 모든 콘텐츠에 동일하다는 점에서 핑거프린팅과 구분된다.
4. 기타 암호학 개념
(1) 확산과 혼돈
확산(diffusion)은 평문의 통계적 성질을 암호문 전반에 퍼뜨려 숨기는 것을 말하며 알고리즘 패턴을 추출하기 어렵게 만든다.
혼돈(confusion)은 평문과 암호문과의 상관관계를 숨기는 것을 말하며 암호문과 암호키간의 관계를 알기 어렵게 만든다.
(2) 양자암호
양자역학의 원리를 이용한 암호화 방식을 말한다.
기존 암호는 아주 큰 수의 소인수 분해가 어렵다는 점을 이용한 암호였으나, 양자컴퓨터의 출현으로 인해 더 이상 안전하지 않게 되었다. 이에 하이젠베르크(Heisenberg)의 불확정성 원리를 응용한 새로운 양자암호가 고안되었다. 하나의 양자는 0과 1의 값이 중첩되어 있는데, 외부에서 한 번이라도 관측을 하게 되면, 0 또는 1 중 하나의 값으로 결정되어 버리는 성질이 있다. 이 성질을 이용하여 암호 해독용 양자 키(quantum key)를 생성하여 상대방에게 전송하면, 도중에 제3자가 열람이나 복사 등 도청을 할 경우 양자의 상태 값이 변경되어 양자 키 값이 파괴될 뿐 아니라 도청된 사실까지도 알 수 있게 된다. 이처럼 양자암호는 원리적으로 어떠한 방법으로도 해독할 수 없기 때문에 가장 안전한 암호화 방식으로 간주되고 있다.
(2) 케르크호프스(Kerckhoff)의 원리
19세기 아우후스트 케르크호프스가 제안한 원리로, 키를 제외한 시스템의 다른 모든 내용이 알려지더라도 암호체계는 안전해야 한다는 것이다.
클로드 섀넌은 케르크호프스의 원리를 "적은 시스템을 알고 있다 (The enemy knows the system)"라는 말로 표현했는데, 암호체계는 그 시스템이 적에게 파악되는 것을 가정하고 설계해야한다는 말이다. 섀넌의 격언이라고 불리는 이 생각은 "모호함에 의한 보안"에 대비되어, 암호 전문가들에 의해 널리 수용되고 있다.
(3) 암호 분석 종류
- 암호문 단독 공격: 해돍하려는 암호문만 가지고 있음
- 기지 평문 공격: 해독하려는 암호문 외에 여러 쌍의 평문-암호문 쌍을 가지고 있음
- 선택 평문 공격: 평문을 선택하면 암호문을 얻을 수 있음
- 선택 암호문 공격: 암호문을 선택하면 평문을 얻을 수 있음
(4) CMVP(Cryptographic Module Validation Program)
CMVP는 암호화 모듈에 대한 미국과 캐나다의 공동 보안 인증 프로그램입니다. 이 프로그램은 미국 정부 및 규제 대상 산업 (예 : 금융 및 의료 기관)에서 "민감하지만 분류되지 않은"제품을 수집, 저장, 양도, 공유 및 전파하는 인증을 받고자하는 모든 공급 업체에 제공됩니다.
(5) 에니그마
에니그마(독일어: Enigma)는 회전자로 작동하는 암호 기계의 한 종류로, 그 이름은 고대 그리스어로 '수수께끼'를 뜻하는 아이니그마(고대 그리스어: αἴνιγμα)라는 말에서 따온 것이다. 암호의 작성과 해독이 가능하며 보안성에 따라 여러 모델이 있다.
1918년 독일인 아르투르 슈르비우스에 의해 처음 고안되어 상업적 목적으로 사용되었다. 특히 제2차 세계 대전 중 나치 독일이 군기밀을 암호화하는 데 사용하였다.
Rotor Machine 원리를 기반으로 한다.
(6) 스키테일
사실상 역사상 가장 오래된 암호로 기원전 450년 경 그리스인들이 고안해 낸 암호이다. 당시 그리스 도시국가에서는 제독이나 장군을 다른 지역에 파견할 때 길이와 굵기가 같은 2개의 나무봉을 만들어 하나는 본부에 두었고 나머지 하나는 파견인에게 주었다. 이 나무봉에 종이테이프를 서로 겹치지 않도록 감아올린 뒤 그 위에 가로로 글씨를 쓴다. 테이프를 풀어 세로로 길게 늘어선 글을 읽으면 무슨 뜻인지 전혀 알수 없다. 하지만 풀어진 테이프의 해독을 위해 같은 크기의 나무봉에 감아 가로로 글을 읽으면 비로소 내용이 드러난다. 이 나무봉을 스키테일(scytale)이라 불렀기 때문에 `스키테일 암호`라 부른다.
(7) 파이스텔 암호(Feistel Cipher)
파이스텔 암호(Feistel cipher)는 블록 암호의 일종으로, 암호화 방식이 특정 계산 함수의 반복으로 이루어진다. 이 때, 각 과정에 사용되는 함수는 라운드 함수(round function)이라고 부른다.
많은 블록 암호가 파이스텔 구조를 가지고 있다. 예를 들어, DES, 블로피시, SEED 등이 파이스텔 구조를 가진다.
하지만 AES와 같이 파이스텔 구조가 아닌 블록 암호도 존재한다.
먼저 암호화하려는 정보를 길이가 같은 두 개의 정보로 쪼갠다. 이를 (L0,R0)이라고 하고, 라운드 0,1,...,n에서 사용되는 키를 Ki, 그리고 라운드 함수를 F로 놓는다.
암호화 과정에서는 각 라운드에서는 다음과 같은 연산이 이루어진다.
모든 라운드가 끝난 후, 최종적으로 (Rn+1, Ln+1)가 암호화된 값이 된다.
복호화 과정에서는 반대의 연산이 이루어진다. (Rn+1,Ln+1)가 주어졌을 때, 각 복호화 라운드에서는 다음과 같은 연산이 이루어진다.
최종적으로 원래 값 (L0,R0)를 얻는다.
이 모델의 장점 중 하나는 암호화 과정과 복호화 과정이 키 순서를 제외한 전체가 같은 계산을 반복한다는 것이다. 또한 라운드 함수가 역연산이 존재해야 할 필요성이 없다.
(8) 블록 암호 공격
- 차분 공격(Differential Cryptanalysis): 입력값의 변화에 따른 출력값의 변화를 이용하는 방법이다. 일반적으로 선택 평문 공격(chosen-plaintext attack)을 가정한다.
- 선형 공격(Linear Cryptanalysis): 암호화 과정에서의 근사적 선형 관계식을 찾는 것을 목적으로 한다. 알려진 평문 공격이다.
- 전수공격법(Exhaustive key search, Brute-force attack): 정한 암호를 풀기 위해 가능한 모든 값을 대입하는 것을 의미한다.
- 통계적 분석(Statistical analysis, Frequency analysis, Counting letters): 평문과 암호문에 사용되는 문자 또는 문자열의 출현빈도를 단서로 이용하는 암호해독법을 말한다. 평문 언어의 통계적 특징을 전제로 하여, 암호문만을 사용해서 해독을 진행하기 때문에, 암호문 단독공격으로 분류된다.
- 수학적 분석(Mathematical analysis): 통계적 분석을 포함하여 수학적 이론을 사용하여 암호를 해독하는 방법이다.
참고자료:
http://www.ktword.co.kr/abbr_view.php?m_temp1=1681
https://ko.wikipedia.org/wiki/%EC%8A%A4%ED%8A%B8%EB%A6%BC_%EC%95%94%ED%98%B8
https://ko.wikipedia.org/wiki/%EC%8A%A4%ED%85%8C%EA%B0%80%EB%85%B8%EA%B7%B8%EB%9E%98%ED%94%BC
https://ko.wikipedia.org/wiki/%EB%94%94%EC%A7%80%ED%84%B8_%EC%9B%8C%ED%84%B0%EB%A7%88%ED%82%B9
https://terms.naver.com/entry.nhn?docId=2455048&cid=42346&categoryId=42346
https://ko.wikipedia.org/wiki/%EC%97%90%EB%8B%88%EA%B7%B8%EB%A7%88_%EA%B8%B0%EA%B3%84
https://ko.wikipedia.org/wiki/%EC%8A%A4%ED%82%A4%ED%85%8C%EC%9D%BC
http://wiki.hash.kr/index.php/%EC%96%91%EC%9E%90%EC%95%94%ED%98%B8
http://wiki.hash.kr/index.php/%ED%99%95%EC%82%B0
http://wiki.hash.kr/index.php/%ED%98%BC%EB%8F%88
https://ko.wikipedia.org/wiki/%EC%B0%A8%EB%B6%84_%EA%B3%B5%EA%B2%A9
https://ko.wikipedia.org/wiki/%EC%84%A0%ED%98%95_%EA%B3%B5%EA%B2%A9
https://ko.wikipedia.org/wiki/%EB%AC%B4%EC%B0%A8%EB%B3%84_%EB%8C%80%EC%9E%85_%EA%B3%B5%EA%B2%A9
https://ko.wikipedia.org/wiki/%EB%B9%88%EB%8F%84%EB%B6%84%EC%84%9D_(%EC%95%94%ED%98%B8)
알기사 알기쉬운 정보보안기사&산업기사 필기편
'정보보안' 카테고리의 다른 글
정보보안(산업)기사 정리 - 정보보안 일반 (0) | 2020.11.06 |
---|---|
정보보안(산업)기사 정리 - 네트워크 보안 (0) | 2020.11.06 |
악성 소프트웨어 / 바이러스 / 웜 / 트로이목마 (0) | 2020.10.29 |
페이징/세그멘테이션 & 외부/내부단편화 (0) | 2020.10.26 |
프로세스 스케쥴링 기법 (0) | 2020.10.26 |