아메바시큐리티
Section 2. 암호학 개요 본문
암호학의 정의
- 평문을 다른 사람이 알아볼 수 없는 형태의 암호문으로 만들고 특정한 비밀키를 알고 있는 사람만이 다시 평문으로 복원시킬 수 있도록 하는 암호기술과 제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 : 디지털 허가를 받은 소비자에게 발급해주고 콘텐츠 제공자에게 로열티 수수료를 지불하며 배급자에게 해당되는 배급 수수료를 지불하는 재정적인 거래를 취한다.
'정보보안기사(필기)' 카테고리의 다른 글
| Section 14. 윈도우 서버 보안 (0) | 2021.02.26 |
|---|---|
| Section 13. 클라이언트 보안 (0) | 2021.02.26 |
| Section 12. 보안 운영체제 (0) | 2021.02.25 |
| 기본 보안용어 정의 (0) | 2021.02.23 |
| Section 1. 정보보호 관리의 개념 (0) | 2021.02.23 |