아메바시큐리티

Section 2. 암호학 개요 본문

정보보안기사(필기)

Section 2. 암호학 개요

am2ba 2021. 2. 23. 21:02

암호학의 정의

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

- 암호란? 약속도니 당사자 또는 집단에서만 암호문에 내포도니 내용을 알 수 있게 하는 일종의 문서

 

암호화와 복호화

- plaintext : 메시지를 암호화하기전의 평문 상태

- ciphertext : 평문 상태의 메시지를 암호화한 메시지

 

이러한 암호화 방식을 통해서, 통신간에 기밀성을 유지할 수 있다. 

통신에 사용되는 메시지를 암호화하여 전송하였을 경우, 도청자는 평문의 내용을 알지 못하며, 메시지를 가로채더라도 암호화된 메시지만을 볼 수 있을 뿐이다. 하지만, 도청자는 이를 통해 Traffic Attack을 시도할 수 있다. 

 

암호화 복호화의 기호적 표현

기본적인 수식은 위의 그림과 같다. 

C : 암호문

E = 암호화 알고리즘

k = key

P = 평문

D = 복호화 알고리즘

똑같은 방식으로 위와 같이 표현 하기도 한다 

 

암호 알고리즘과 키의 분리

- 암호 알고리즘과 키의 조합을 잘 살펴보면, 암호알고리즘 안에는 "변경 가능한 부분"이 반드시 포함되어 있다. 이에 해당 하는 부분이 Key이다. 

- 암호알고리즘을 암호화할 때마다 새로 만드는 것은 매우 번거롭기 때문에, 이러한 key의 개념을 이용하여 암호문이 반복되는 것을 방지하는 방법을 사용한다. 

- 즉, 암호화 알고리즘은 반복해서 사용하지만 키를 바꾸어가며 사용하여 새로운 암호문이 나오게 하는 방식을 사용한다고 보면 된다.

 

암호화 보안 상식

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

- 자신의 회사에서 독자적으로 개발하고, 그것을 사용하면 안전하다는 생각은 큰 오산이다.

- 알고리즘 자체를 비밀로 해서 기밀성을 유지하려고 하는 암호시스템은 암호 알고리즘의 구조가 폭로되면 그걸로 수명을 다한다.

 

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

- 사용자가 암호라고 하는 말로 인해 잘못된 안심을 하는 경우가 있다. 그 결과 기밀성이 높은 정보라도 잘못된 안심으로 인해 소홀하게 관리할 위험이 있다. 

 

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

- 모든 암호 알고리즘은 언제가는 모두 해독된다.

- 그러면 무슨 소용없지 않나? 암호문이 해독되기 까지 들어가는 시간과 암호를 사용하여 지키고 싶은 평문의 가치와의 Trade off가 필요하다. 

 

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

- Soical Engineering Attack이 최근의 트렌드이다. 한 시스템의 강도는 가장 약한 링크의 강도와 같다고 볼 수 있는데, 모든 링크가 강해야 한다. 또한 실제로 보안의 가장 약한 링크는 사람이 주를 이루기 때문에, 암호는 아주 작은 부분이라고 말할 수 있는 것이다. 

 

Substitution Cipher

- 비트, 문자 또는 문자의 블록을 다른 비트, 문자 또는 블록으로 대체하는 암호화 방식

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

 

Transposition Cipher

- 원문을 다른 문서로 대체하지 않지만, 원문의 내용에서 글자들의 순서를 바꾸는 방법이다. 

- 문자 집합 내부에서 자리를 바꾸는 규칙이며, 일대일 대응 규칙을 갖는 다는 특징이 있다. 

 

ㅣ

Block Cipher

- 어느 특정 비트 수의 집합을 한번에 처리하는 암호 알고리즘을 총칭한다. 이 집합을 블록이라고 하며, 블록의 비트수를 Block Length라고 칭한다. 

- 평문을 일정한 크기의 블록으로 잘라낸 후, 암호화 알고리즘을 적용한다. 일반적으로 8bit 또는 16bit를 사용한다. 

- Round 방식을 사용하고, 반복적으로 암호화 과정을 수행해 암호화 강도를 높인다. 

 

Stream Cipher

- 한번에 1bit 혹은 1 byte의 데이터 흐름을 순차적으로 처리해가는 암호 알고리즘을 총칭한다. 암호화방식은 평문과 키 stream을 XOR하여 생성한다. 

- Block Cipher와 다르게 Stream Cipher는 데이터의 흐름을 순차적으로 처리해야하기 때문에, 내부 상태를 가지고 있다. 

- 군사 및 외교용으로 널리 사용되고 있다. 

- 이동 통신 호나경에서 구현이 용이하고, 안전성을 수학적으로 엄밀하게 분석할 수 있어서 무선 데이터 보호에 적합하다.

 

 

* Block Cipher와 Stream Cipher 비교

구분 Stream Cipher Block Cipher
장점 암호화 속도가 빠름, 에러 전파 현상이 없음 높은 확산, 기밀성, 해시 함수 등 다양
단점 낮은 확산 느린 암호화, 에러 전달
사례 LFSR, MUX generator DES, IDEA, SEED, RC5, AES
암호화 단위 bit block
주요 대상 음성, 오디오/비디오 스트리밍 일반 데이터 전송, 스토리지 저장

 

Link Encryption

- 모든 정보는 암호화되고, 패킷은 라우터나 다른 중간에 있는 장비가 패킷의 목적지를 알아야 하기 때문엑 각 hop에서 해독되어야 한다. 

* 여기서 패킷의 이동간에 거처가는 라우터를 의미한다. 

- 라우터는 패킷의 헤더 부분을 해독하고, 라우팅과 주소를 읽고, 다시 암호화하여 전달하여야 한다. 

- 링크 암호화는 데이터 링크 또는 물리적 계층에서 일어난다. 

 

End-to-End Encryption

- 종단간 암호화에서는 헤더와 트레일러가 암호화되지 않기 때문에 패킷을 각 홉에서 해독하고 암호활 필요가 없다. 

- 보통 송신 컴퓨터의 사용자에 의해 시작된다. 

- 이러한 방식의 암호화는 Application Layer에서 주로 이루어진다. 

 

구분 Link Encryption End-to-End Encryption
특징 - ISP나 통신업자가 암호화
- 헤더를 포함한 모든 데이터를 암호화
- 유저가 알고리즘 통제 불가
- 사용자가 암호화
- 헤더는 암호화하지 않는다.
- 알고리즘에 대한 통제는 사용자가 한다.
장점 - User-transparent하게 암호화 되므로 운영이 간단하다.
- 트래픽 분석을 어렵게 한다.
- 온라인으로 암호화한다.
- 사용자 인증 등 높은 수준의 보안서비스를 제공한다.
- 중간노드에서도 데이터가 암호문으로 존재하여 안전하다.
단점 - 중간노드에서 데이터가 평문으로 노출된다.
- 다양한 보안서비스를 제공하는데 한계가 있다.
- 모든 노드가 암호화 장비를 갖추어야하기 때문에 네트워크가 커지면 비용이 많이 든다.
- 트래픽분석에 취약하다
- 오프라인으로 암호화하는 방식이다. 

 

Hardware Encryption System

- 컴퓨터와 통신기기의 내부버스와 외부 인터페이스에 전용함호처리용 하드웨어를 설치하여 데이터를 암호화한다.

- 전용 하드웨어로 암호화하기때문에 CPU에 부담을 주지 않고 빠른 속도로 암호화 가능하다.

 

Software Encryption System

- 저렴한 비용으로 실현이 가능하다. 또한 허용범위 내에서 적당한 안정성과 처리속도를 얻을 수 있으면 상당히 효과적이다. 

- 최근 개인용 컴퓨터의 성능이 향상됨에 따라, 많이 사용되고 있는 추세이다. 

 

주요 암호 기술

1) Symmetric Cryptography

- 암호화할 때 사용하는 키와 복호화할 때 사용하는 키가 동일한 암호 알고리즘 방식

 

2) Asymmetric Cryptography

- 암호화할 때 사용하는 키와 복호화할 때 사용하는 키가 다른 암호 알고리즘 방식

- 송신자와 수신자 모두 자신만의 한 쌍의 키를 가지고 있어야 한다. 

 

3) Hybrid Encryption System

- 대칭키 암호와 공개키 암호를 조합한 암호방식

 

4) One-way Hash Function

- Hash함수를 통해 얻어지는 hash값을 바탕으로 문서의 내용을 증명할 수 있는 기술

- 문서의 무결성을 확인할 수 있다.

 

5) Message Authentication Code

- 메시지가 생각했던 통신상대로부터 온 것임을 확인하기 위해서 사용되는 기술

- 이를 이용해 메시지가 전송 도중 변경되지 않았다는 것과 사용자의 인증이 가능하다.

- 무결성과 인증을 제공하는 기술이다.

 

6) Digital Signature

- off-line에서 사용하는 도장이나 종이 위에 하는 서명과 같은 개념을 on-line에 적용한 방식

- snpoofing, 변경, 부인이라는 위협을 방지하는 기술이다.

- 무결성을 확인하고 인증과 부인방지를 하기 위한 기술이다. 

 

7) PRNG (Pseudo Random Number Generator)

- 난수 열을 생성하는 알고리즘

- 난수 키 생성이라는 매우 중요한 역할을 한다고 한다...?

 

 

암호 분석

- 암호 방식의 정규 참여자가 아닌 제 3자가 암호문으로 부터 평문을 찾으려는 시도를 말한다. 

- 암호 해독자는 복호화 과정에 필요한 키를 가지고 있지 않기 때문에 일반적으로 평문을 얻을 수 없지만, 평문의 통계적 성질과 암호에 관한 지식, 등 여러가지 부대 정보를 이용하여 평문 또는 키를 찾아낸다. 

- 암호학에서 암호해독자는 현재 사용되고 있는 암호 방식을 알고 있다는 전제하에 암호해독을 시도한다. 이를 Kerckhoff's principle이라고 한다.

 

암호 분석의 종류

1) COA (Ciphertext Only Attack)

- 암호문을 얻어서 대응되는 평문과 키를 찾는것이다.

- 암호문만을 필요로 하기 때문에 가장 쉽게 적용될 수 있는 공격이다. 

 

2) KPA (Known Plaintext Attack)

- 암호문외에 추가로 여러개의 평문/암호 쌍을 얻는다.

- 이러한 평문/암호 쌍을 이용해서 다음 메시지를 알아내는 방법이다. 

 

3) CPA (Chosen Plaintext Attack)

- KPA 방식과 비슷하지만, 공격자에게 주어지는 평문을 선택하여 암호화하고, 암호문을 얻어 분석하는 방식이다. 

- 공격자가 송신자의 컴퓨터에 접속하면 이 공격을 적용할 수 있다. 평문을 선택하고 암호문을 얻는 방식으로 진행된다.

 

4) CCA (Chosen Ciphertext Attack)

- CPA 방식과 유사하지만 수신자의 컴퓨터에 접속하여 하는 방식이다. 

- 복호화할 수 있는 수신자에게 접속하여, 선택한 암호문을 복호화하여 평문을 얻어 분석하는 방법이다. 

- 기본적으로 CCA 공격에 견딜 수 있으면 강한 암호 알고리즘이라고 얘기할 수 있다. 

 

암호 알고리즘의 안정성 평가

1) 안정성 개념

- 암호시스템을 공격하기 위해 필요한 계싼량이 매우 커서 현실적으로 공격할 수 없는 경우를 계산적으로 안전하다고 한다.

- 무한한 계산 능력이 있어도 공격할 수 없는 경우를 무조건 적으로 안전하다고 한다. 

- 암호 해독 비용이 암호화된 정보의 가치를 초과하거나, 암호 해독 시간이 정보 유효 기간을 초과하는 알고리즘이 안전한 알고리즘이다. 

 

2) 암호제품 평가 체계

- 기본적인 선택기준을 제공하기 위해서, Common Criteria기반의 정보보호제품 평가를 거친다. 

- 하지만 CC기반의 평가기준에서는 각국이 독자적으로 하도록 규정하고 있다.

- 안정성 평가로 가장 널리 참조되는 것은, NIST가 사용하는 CMVP 방식이다. 

    CMVP? Cryptographic Module Validation Program)

 

암호 기술의 평가

1) 암호 알고리즘 평가

- 정보보호 제품에 탑재된 암호 알고리즘에 대한 안정성 평가

- 알고리즘 자체만을 평가하므로 탑재된 제품이나 시스템에 상관없이 독자적으로 평가. 

- 일반적으로 이론적 안정성만을 평가

 

2) 암호 모듈 평가

- 암호 알고리즘을 이용하여 제공되는 암호서비스에 대한 안정성 평가

- 이론적 안정성과는 별도로, 암호 서비스 기능을 제공하는 암호모듈에 대한 평가이다.

 

3) 정보보호제품 평가

- 암호모듈을 탑재한 정보호호 제품에 대한 안정성 평가

 

4) 응용 시스템 평가

- 각 제품을 상호 연동하여 구성되는 시스템에 대한 안정성 평가

 

아래로 내려갈 수록 점점 더 큰 범위라고 생각하면 된다. 

예시를 들어, 암호 알고리즘은 치환 방식을 쓴다고 하면...

치환 방식에 대한 평가 = 알고리즘평가

치환 방식을 사용하는 모듈 = 암호 모듈 평가

해당 모듈을 탑재한 제품 = 정보보호 제품 평가

해당 제품을 사용하는 시스템 = 응용 시스템 평가

라고 생각하면 편하다. 

 

암호 기술 평가 과정

- 응용 시스템의 안정성을 평가하는 것이 가장 바람직하나, 이에 대한 체계를 마련하는 것이 어렵다. 

- 그러므로, 기본이 되는 알고리즘에 대한 안정성 평가가 우선된다. 

- 즉, 평가를 하는 과정은 암호 알고리즘 -> 응용 시스템의 순서로 평가되는 것이 바람직하다. 

 

* 암호 모듈의 안정성 평가 (CMVP)

- 암호기술의 구현 적합성 평가

- 암호키 운용 및 관리

- 물리적 보안

 

디지털 저작권 관리

1) Steganography

- 비밀을 기록하는 것보단, Covered Writing을 하는 방식. 다른 무언가로 감추어 메시지 자체를 은폐하는 것을 의미한다.

- 일반적으로 사진파일의 end signature이후에 메시지를 넣어 OS에서 파일을 읽을 때 인지하지 못하는 방식으로 주로 많이 사용하는 방식이다.

 

2) Digital Watermarking

- 원본의 내용을 왜곡하지 않는 범위 내에서 혹은 사용자가 인식하지 못하도록 저작권 정보를 Digital Contents에 삽입하는 기술을 말한다.

- 강한 워터 마킹 : 공격을 받아도 쉽게 파괴되거나 손상을 입지 않음

- 약한 워터 마킹 : 공겨글 받으면 쉽게 파괴되거나 손상을 입음

 

3) Fingerprinting

- Digital contents를 구매할 때 구매자의 정보를 넣어 불법 배포 발견 시 최초의 불법 배포자를 추적할 수 있게 하는 기술이다.

- 판매시마다 구매자의 정보가 들어가기 때문에, 재배포된 contents 내에서 정보를 추출하여 구매자를 식별하고 법적인 조치를 가할 수 있게 한다. 

 

불법 예방 효과와 저작권 증명 효과는 Finger printing 방식이 제일 강하며 스테가노 그래피 방식이 제일 약하다. 

 

Digtal Rights Management (DRM)

- Digital Contents 소유자가 자신의 Contents에 대한 접근을 자신 또는 자신의 위임자가 지정하는 다양한 방식으로 제어할 수 있게 해주는 기술적인 방법 또는 방법의 집합을 의미한다.

- DRM이 제어하는 콘텐츠 접근은 실행, 보기 ,복제, 출력 ,변경 등을 모두 포함한다.

 

DRM의 구성 요소

- Metadata : 생명주기 범위 내에서 관리되어야할 각종 데이터의 구조 및 정보

- Packager : 보호 대상인 콘텐츠를 메타데이터와 함께 Sercure Container 포맷으로 패키징 하는 모듈

- Secure Conatiner : DRM의 보호 범위 내에서 유통되는 콘텐츠의 배포 단위

- Identifier : 콘텐츠를 식별하기 위한 식별자

- DRM Controller : 콘텐츠를 이용하는 사용자의 PC또는 디바이스 플랫폼에서 라이선스에 명시된 범위 내에서 지속적으로 보호될 수 있도록 프로세스를 제어한다. 

 

DRM 모델

- Content Provider :  콘텐츠에 대한 디지털 권리를 가지고, 권리보호를 원하는 DRM 사용자 

- Distributer : 온라인 쇼핑몰과 같은 콘텐츠 유통 채널을 제공하는 DRM 사용자 

- Content Consumer : cleraing house를 통해 권리를 요청하고 합당한 대금을 지불하는 사용자

- Clearinghouse : 디지털 허가를 받은 소비자에게 발급해주고 콘텐츠 제공자에게 로열티 수수료를 지불하며 배급자에게 해당되는 배급 수수료를 지불하는 재정적인 거래를 취한다.