Yozzang의 해킹일기 💻
article thumbnail
Published 2022. 7. 24. 00:32
암호학 Certificate/정보보안기사
728x90

해당 포스트는 정보보안기사 필기시험을 대비하기 위해 작성한 필기본이다.


## 암호기법의 분류

  • 치환 암호(대치 암호) : 비트, 문자 또는 문자의 블록을 다른 비트, 문자 또는 블록으로 대체
  • 전치 암호 : 비트, 문자 또는 블록이 원래 의미를 감추도록 재배열
  • 블록 암호 : 특정 비트 수의 집합을 한 번에 처리하는 암호 알고리즘을 총칭
  • 스트림 암호 : 한 번에 1비트의 데이터 흐름을 순차적으로 처리해가는 암호 알고리즘을 총칭
  • 링크 암호화 : 모든 정보는 암호화되고, 패킷은 라우터나 다른 중간에 있는 장비가 이 패킷을 다음에 어디로 보내야 하는지 알아야 하기 때문에 각 홉에서 해독
  • 종단간 암호화 : 종단간 암호화에서는 헤더와 트레일러가 암호화되지 않기 때문에 패킷을 각 홉에서 해독하고 암호화할 필요가 없음
  • 하드웨어 암호화 : 하드웨어로 실현하기 위해 컴퓨터와 통신기기의 내부 버스와 외부 인터페이스에 전용 암호처리용 하드웨어를 설치하여 데이터를 암호화
  • 소프트웨어 암호화 : 소프트웨어에 의한 실현은 암호처리용 소프트웨어를 사용한 데이터 암호화

*** 블록 암호와 스트림 암호

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

*** 링크 암호와 종단간 암호

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

## DRM 구성 요소

  • 메타데이터(Metadata) : 콘텐츠 생명주기 범위 내에서 관리되어야 할 각종 데이터의 구조 및 정보
  • 패키저(Packager) : 보호 대상인 콘텐프를 메타데이터와 함께 Secure Container 포맷으로 패키징 하는 모듈
  • 시큐어 컨테이너(Secure ontainer) : DRM의 보호 범위 내에서 유통되는 콘텐츠의 배포 단위
  • 식별자(Identifier) : 콘텐츠를 식별하기 위한 식별자
  • DRM 제어기(DRM Controller) : 콘텐츠를 이용하는 사용자의 PC 또는 디바이스 플랫폼에서 콘텐츠가 라이선스에 명시된 범위 내에서 지속적으로 보호될 수 있도록 프로세스를 제어
  • 클리어링하우스(Clearinghouse) : 디지털 허가를 소비자에게 발급해주고 콘텐츠 제공자에게 로열티 수수료를 지불하고, 배급자에게 해당되는 배급 수수료를 지불하는 재정적 거래를 취급

## 암호분석의 분류

  • 암호문 단독 공격 : 단지 암호문 C만을 갖고 이로부터 평문 P이나 키 K를 찾아내는 방법으로 평문 P의 통계적 성질, 문장의 특성 등을 추정하여 해독하는 방법 (암호해독자에게는 가장 불리한 방법)
  • 기지 평문 공격 : 암호문 C와 평문 P의 관계로부터 키 K나 평문 P를 추정하여 해독하는 방법 (암호문에 대응하는 일부 평문이 사용가능한 상황에서의 공격)
  • 선택 평문 공격 : 암호기에 접근할 수 있어 평문 P를 선택하여 그 평문 P에 해당하는 암호문 C를 얻어 키 K나 평문 P를 추정하여 암호를 해독하는 방법 (평문을 선택하면 대응하는 암호문을 얻을 수 있는 상황에서의 공격)
  • 선택 암호문 공격 : 암호 복화기에 접근할 수 있어 암호문 C에 대한 평문 P를 얻어내 암호를 해독하는 방법 (암호문을 선택하면 대응하는 평문을 얻을 수 있는 상황에서의 공격)

## 암호기술 평가

  • 암호 알고리즘 평가 : 정보보호제품에 탑재된 암호 알고리즘에 대한 안전성 평가
  • 암호모듈 평가 : 알고리즘 자체의 이론적 안정성과는 별도로 암호서비스 기능을 제공하는 암호모듈의 안전성에 대한 평가
  • 정보보호제품 평가 : 암호모듈을 탑재한 정보보호 제품에 대한 안정성을 평가
  • 응용시스템 평가 : 각 제품을 상호 연동하여 구성되는 시스템에 대한 안전성 평가

## 확산과 혼돈

### 확산

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

### 혼돈

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

## 페이스텔과 SPN 구조

### Feistel

  • 입력을 좌우 블록으로 분할하여 한 블록을 라운드 함수에 적용시킨 후의 출력 값을 다른 블록에 적용하는 과정을 좌우블록에 대해 반복적으로 시행하는 방식
  • 강도를 결정짓는 요소는 평문 블록의 길이, 키의 길이, 라운드의 수
  • 복호화 과정은 암호화 과정과 동일
  • 3라운드 이상이며, 짝수 라운드로 구성
  • DES, LOKI, CAST, Blowfish, MISTY, RC5, RC6, CAST256, E2, Twofish, Mars

### SPN

  • Substitution Cipher와 Permutation Cipher를 중첩하는 형태로 개발한 암호
  • S-box의 출력을 P-box로 전치(permutation)하는 과정을 반복하는 방식
  • 병렬성을 제공
  • SAFER, SHARK, Square, CRYPTON, Rijndael, SAFER+, Serpent, PRESENT

*** 스트림 암호의 구분

구분 특징 종류
동기식 키는 평문 or 암호문 독립적 One time pad, FSR, LFSR, NLFSR, CFB 모드
비동기식 키는 평문 or 암호문 종속적 CFB 모드

*** 대중적인 대칭키 암호 알고리즘의 비교

구분 DES Triple DES AES
평문 블록 크기(bits) 64 64 128
암호문 블록 크기(bits) 64 64 128
키 크기(bits) 56 112 또는 168 128, 192, 또는 256

*** 블록 알고리즘 종류와 특징

구분 개발 국가 개발 년도 특징 블록 크기 키의 길이 라운드수
DES 미국 1972 NIST에서 표준으로 공표(1977년) 64 56 16
IDEA 유럽 1990 PGP채택 64 128 8
Rijndael 벨기에 1998 2000년 AES알고리즘으로 선정 128 128, 192, 256 10, 12, 14
SEED 한국 1999 한국표준 블록암호 알고리즘 128 128, 256 16, 24
CRYPTON 한국 1998 AES 후보 중 하나 128 128, 192, 256 12
RC5 미국 1994 알고리즘이 간단, 속도가 빠름 32, 64, 128 0-2040 1-256
FEAL 일본 1987 S/W 구현에 적합 64, 128 64 4, 8, 32
MISTY 일본 1996 차분/선형공격에 안전성 증명구조 64 128 8
SKIPJACK 미국 1990 Fortezza카드에 사용 64 80 32

*** 블록 암호모드 비교

이름 장점 단점 비고
전자 부호표 모드
(ECB 모드)
- 간단
- 고속
- 병렬 처리 가능
(암호화, 복호화 양쪽)
- 평문 속의 반복이 암호문에 반영된다.
- 암호문 블록의 삭제나 교체에 의한 평문의 조작 가능
- 비트 단위의 에러가 있는 암호문을 복호화하면 대응하는 블록이 에러나 난다.
- 재전송 공격이 가능
사용해서는 안된다.
암호 블록 연쇄 모드
(CBC 모드)
- 평문의 반복은 암호문에 반영되지 않는다.
- 병렬 처리 가능(복호화만)
- 임의의 암호문 블록을 복호화 가능
- 전송 도중 암호문 블록 Ci에서 한 비트 오류가 발생하면 평문 블록 Pi에는 대부분의 비트에서 오류가 발생되고, 평문 블록 Pi+1에서는 Ci의 오류비트와 같은 위치에서 한 비트 오류가 발생한다.
- 암호화에서는 병렬 처리 불가능
Practical Cryptography 권장
암호 피드백 모드
(CFB 모드)
- 패딩이 필요 없다.
- 병렬처리 가능(복호화만)
- 임의의 암호문 블록을 복호화 가능
- 암호화에서는 병렬 처리 불가능
- 전송 도중 암호문 블록 Ci에서 한 비트 오류가 발생하면 평문 블록 Pi에는 Ci의 오류비트와 같은 위치에서 한 비트 오류가 발생한다. 하지만 Ci의 비트는 시프트 레지스터에 오퓨가 존재하는 한 다음 평문 블록의 대부분의 비트에 오류가 발생한다.(확률젹으로 50%)
- 재전송 공격이 가능
 
출력 피드백 모드
(OFB 모드)
- 패딩이 필요 없다.
- 암/복호화의 사전 준비 가능
- 암/복호화가 같은 구조
- 비트 단위의 에러가 있는 암호문을 복호화하면 평문의 대응하는 비트만 에러가 난다.
- 병렬 처리 불가능
- 적극적 공격자가 암호문 블록의 비트를 반전시키면 대응하는 평문 블록의 비트가 반전된다.
 
카운터 모드
(CTR 모드)
- 패딩이 필요 없다.
- 암/복호화의 사전 준비 가능
- 암/복호화가 같은 구조
- 비트 단위의 에러가 있는 암호문을 복호화하면 평문의 대응하는 비트만 에러가 난다.
- 병렬 처리 가능(암/복호화 양쪽)
- 적극적 공격자가 암호문 블록의 비트를 반전시키면 대응하는 평문 블록의 비트가 반전된다. Practical Cryptography 권장

## 키 배송 문제 해결 방법

  • 키의 사전 공유에 의한 해결 : 키 관리기관이 사전에 임의의 두 사용자에게 비밀 경로를 통하여 임의의 키를 선택하여 전달하는 방법
  • 키배포 센터에 의한 해결(온라인 키 분배) : 암호 통신이 필요해질 때마다 통신용 키를 키배포 센터라는 신뢰받는 제3자에게 의뢰해서 개인과 키배포 센터 사이에서만 키를 사전에 공유하는 것
  • Diffie-Hellman 키 교환에 의한 해결 : 공개키 암호방식의 개념을 이용하여 두 사용자 간에 공통의 암호화키를 안전하게 공유할 수 있는 방법을 제시(최초의 비밀키 교환 프로토콜)
  • 공개키 암호에 의한 해결 : 송신자는 암호화키를 사용하여 메시지를 암호화하고, 수신자는 복호화키를 사용하여 암호문을 복호화함

*** ECC와 RSA 방싱의 비교

항목 ECC 방식 RSA 방식
기반구조 WPKI(무선) PKI(유선)
속도 우수 느림
키 크기 상대적으로 적은 키 ECC에 비해 큰 키
적용 소형 Mobile 환경 인프라가 다소 구현된 환경

*** 대칭키 방식과 비대칭키 방식

항목 대칭키 공개키
키의 상호관계 암호화키 = 복호화키 암호화키 ≠ 복호화키
안전한 키길이 128비트 이상 2048비트 이상
암호화키 비밀 공개
복호화키 비밀 비밀
비밀키 전송 필요 불필요
키 개수 N(N-1)/2 2N
암호화 속도 고속 저속
경제성 높다 낮다
제공 서비스 기밀성 기밀성, 부인방지, 인증
목적 데이터(화일) 암호화 대칭키 교환
전자서명 복잡 간단
단점 키교환 원리가 없다 중간자 공격에 취약
해당 알고리즘 DES, 3DES, AES, IDEA RSA, ECC, DSA

## 일방향 해시함수

  • 정의 : 임의의 길이를 갖는 메시지를 입력으로 하여 고정된 길이의 해시값 또는 해시 코드라 불리는 값을 출력하는 함수
  • 특징 : (1) 임의 길이의 메시지로부터 고정 길이의 해시값을 계산 (2) 해시값을 고속으로 계산할 수 있어야 함 (3) 일방향성을 가짐 (4) 메시지가 다르면 해시값도 가름

## 해시함수가 가져야 할 기본 성질

  • 프리이미지 저항성(역상 저항성) : 주어진 임의의 출력값 y에 대해 y=h(x)를 만족하는 입력값 x를 찾는 것이 계산적으로 불가능하다.
  • 제2프리이미지 저항성(두 번째 역상 저항성, 약한 충돌 내성) : 주어진 입력값 x에 대해 h(x)=(x`), x≠x`을 만족하는 다른 입력값 x`을 찾는 것이 계산적으로 불가능하다.
  • 충돌 저항성(강한 충돌 내성) : h(x)=h(x`)을 만족하는 임의의 두 입력값 x, x`을 찾는 것이 계산적으로 불가능하다.

*** SHA 해시 알고리즘 비교

구분 SHA-1 SHA-2
SHA-224 SHA-256 SHA-384 SHA-512
MD 길이 160 224 256 384 512
최대  메시지 길이 2^64 - 1 2^64 - 1 2^64 - 1 2^128 - 1 2^128 - 1
블록 길이 512 512 512 1024 1024
워드 길이 32 32 32 64 64
단계 수 80 64 64 80 80

*** 주요 해시 알고리즘 비교

항목 MD5 SHA-1 RIPEMD-160
다이제스트 길이 128비트 160비트 160비트
처리 단위 512비트 512비트 512비트
단계 수 64(16번의 4라운드) 80(20번의 4라운드) 160(16번의 5병행 라운드)
최대 메시지 크기 무한() 2^64 - 1 비트 2^64 - 1 비트
앤디언 Little-endian Big-endian Little-endian

## 해시함수와 MAC 비교

### Hash (무결성 보장)

  1. 발신자는 메시지가 해시 함수를 거쳐 MD 값을 생성한다.
  2. 발신자는 메시지와 MD 값을 수신자에게 보낸다.
  3. 수신자는 메시지만 동일한 해시 알고리즘을 거치게 하여 독립적인 MD 값을 생성한다.
  4. 수신자는 두 MD 값을 비교한다. 두 값이 동일하다면 메시지를 수정되지 않은 것이다.

### HMAC (무결성, 인증 보장)

  1. 발신자는 메시지와 비밀키를 연접시켜 해시 함수를 거치게 한다. 이렇게 하여 MAC 값을 생성한다.
  2. 발신자는 MAC 값을 메시지에 첨부하여 수신자에게 보낸다.
  3. 수신자는 메시지만 취해 자신의 대칭키와 연접시키고, 해시함수를 이용하여 독립적인 MAC 값을 생성한다.
  4. 수신자는 두 MAC 값을 비교한다. 두 값이 동일하면 수신자는 메시지가 수정되지 않았다는 것과 어떤 시스템으로부터 왔는지를 알게 된다.

### CBC-MAC (무결성, 인증 보장)

  1. 발신자는 메시지를 CBC 모드에서 대칭 블록 알고리즘으로 암호화한다.
  2. 마지막 블록이 MAC으로 사용된다.
  3. 평문 메시지와 MAC이 수신자에게 보내진다.
  4. 수신자는 메시지를 암호화하고, 새로운 MAC 값을 생성한다. 두 값을 비교하여 같으면 수신자는 메시지가 수정되지 않았다는 것과 어떤 시스템으로부터 왔는지를 알게 된다.

### CMAC (무결성, 인증 보장)

  • CMAC는 CBC-MAC와 동일한 방법으로 동작한다. 그러나 이것은 더 복잡한 논리 함수와 수학 함수에 기반을 두고 있다.

## 전자서명의 주요 기능

  • 위조 불가(Unforgeable) : 합법적인 서명자만이 전자서명을 생성 가능해야 한다.
  • 서명자 인증(User authentication) : 전자서명의 서명자를 불특정 다수가 검증할 수 있어야 한다.
  • 부인 방지(Non-repudiation) : 서명자는 서명행위 이후에 서명한 사실을 부인할 수 없어야 한다.
  • 변경 불가(Unalterable) : 서명한 문서의 내용릉 변경할 수 없어야 한다.
  • 재사용 불가(Not reusable) : 전자문서의 서명을 다른 전자문서의 서명으로 사용할 수 없어야 한다.

### 특수 전자서명

  • 부인방지 전자서명 : 서명을 검증할 때 반드시 서명자의 도움이 있어야 검증이 가능한 전자 서명 방식
  • 의뢰 부인방지 서명 : 임의의 검증자가 부인 과정을 수행하지 못하고 특정한 자, 예를 들어 분쟁이 일어났을 때 해결해주는 사람 혹은 재판관만이 부인 과정을 수행
  • 수신자 지정 서명 : 서명의 검증 시 특정 검증자만이 서명을 확인할 수 있도록 하되, 만일 그 서명이 문제가 되는 경우라도 검증자의 비밀서명 생성정보를 노출시키지 않고 제3자에게 서명의출처를 증명함으로써 분쟁해결 기능을 제공하는 서명 방식
  • 은닉 성명(블라인드 서명) : 서명자가 서명문 내용을 알지 못하는 상태에서 서명토록 한 방식
  • 위임 서명 : 위임 서명자로 하여금 서명자를 대신해서 대리로 서명할 수 있도록 구성한 서명 방식
  • 다중 서명 : 동일한 전자문서에 여러 사람이 서명하는 것

## 공개키 기반 구성요소

### 인증기관

  • 인증기관은 인증서를 발급해 주는 역할을 하며, 인증서는 최종 객체를 인증하는 전자 증명서 역할을 수행하여 사용자가 합볍적인 사용자임을 입증한다.
  • 정책승인기관 : PKI 전반에 사용되는 정책과 절차를 생성하고 PKI 구축의 루트 CA 역할을 수행한다.
  • 정책인증기관 : PAA 아래 계층으로 자신의 도메인 내의 사용자와 인증기관이 따라야 할 정책을 수립하고 인증기관의 공개키를 인증하고 인증서, 인증서 폐지 목록 등을 관리한다.
  • 인증기관 : 공개키 인증서를 발급하고 또 필요에 따라 취소한다. 공개키를 사용자에게 전달, 인증서/인증서 취소목록 등을 보관한다.

### 등록기관

  • 인증기관과 멀리 떨어져 있는 사용자들을 위해 인증기관과 사용자 사이에 등록기관을 두어 인증기관 대신 사용자들의 인증서 신청 시 그들의 신분과 소속을 확인하는 기능을 수행한다. 사용자들의 신분을 확인한 후, 등록기관은 인증서 요청에 서명하여 인증기관에 제출한다. 인증기관은 등록기관의 서명을 확인하여 사용자의 인증서를 발행한 후 등록기관에게 되록리거나 사용자에게 직접 전달한다.
  • 인증 요청을 승인하고 정당성을 확인한다.
  • 인증기관에게 인증 요청서를 전송한다.
  • 디렉터리에서 인증서와 인증서 취소목록을 검색한다.
  • 인증서 취소를 요청한다.

### 저장소

  • 인증서와 사용자 관련 정보, 상호 인증서 쌍 및 인증서 취소 목록 등을 저장 및 검색하는 장소로 응용에 따라 이를 위한 서버를 설치하거나 인증기관에서 관리한다. 디렉터리를 관리하는 서버는 LDAP를 이용하여 디렉터리 서비스를 제공한다.

### 사용자

  • PKI 내의 사용자는 사람뿐만 아니라 사람이 이용하는 시스템 모두를 의미한다.
  • 자신의 비밀키와 공개키 쌍을 생성한다.
  • 인증기관에 공개키 인증서를 요청하고 인증서를 받는다.
  • 전자서명을 생성 및 검증한다.
  • 특정 사용자의 인증서를 획득하고 그 상태를 확인한다.
  • 인증 경로를 해석하고, 디렉터리를 이용하여 인증서를 타 사용자에게 제공한다.
  • 인증서 취소목록을 이용하여 인증서 상태를 검증한다.

*** PKI 형태별 장단점

구분 계층적 구조 네트워크형 구조
장점 - 정부와 같은 관료조직에 적합
- 인증경로 탐색이 용이함
- 모든 사용자가 최상위 CA의 공개키를 알고 있으므로 인증서 검증 용이
- 유연하며 실질적인 업무관계에 적합
- CA 상호인증이 직접 이루어지므로 인증경로 단순
- CA의 비밀키 노출 시 국소적 피해
단점 - 최상위 CA에 집중되는 오버헤드 발생가능
- 협동업무 관계에는 부적합
- 최상위 CA의 비밀키 노출 시 피해 규모 막대함
- 인증경로 탐색이 복잡함
- 인증정책 수립 및 적용 어려움

 

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

애플리케이션 보안  (0) 2022.08.02
네트워크 보안  (0) 2022.07.29
시스템 보안  (0) 2022.07.26
접근통제  (0) 2022.07.25
정보보호 개요  (0) 2022.07.22
profile

Yozzang의 해킹일기 💻

@요짱

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!