새소식

인기 검색어

정보보안기사/필기

[정보보안기사 필기 정리] PART 02. 암호학

  • -
반응형

SECTION 02. 암호학 개요

1️⃣ 암호학의 기본 개념

🌐 암호학의 정의

💠 평문을 다른 사람이 알아볼 수 없는 형태의 암호문으로 만들고 특정한 비밀키를 알고있는 사람만이 다시 평문으로 복원시킬 수 있도록 하는 암호기술

 

🌐 암호화와 복호화

💠 암호라는 기술을 사용해서 메일의 기밀성을 유지한다.

 

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

💠 평문은 주로 M이나 P, 암호문은 C, 암호 알고리즘은 E, 복호화 알고리즘은 D, 키는 K로 표현한다.

평문 P를 키 K로 암호화하여(E) 암호문 C를 얻는다.

암호문 C를 키 K로 복호화하여 (D) 평문 P를 얻는다.

 

2️⃣ 암호기법의 분류

🌐 치환 암호와 전치 암호

💠 치환 암호 (대치 암호, Substitution Cipher)

✔️ 비트, 문자 또는 문자의 블록을 다른 비트, 문자 또는 블록으로 대체한다.

✔️ 평문에서 사용하는 문자의 집합과 암호문에서 사용하는 집합이 다를 수 있다.

✔️ 교환 규칙은 일대일 대응이 아니어도 상관없다.

💠 전치 암호 (Transposition Cipher)

✔️ 원래 의미를 감추도록 재배열 한다.

✔️ 평문에서 사용하는 문자의 집합과 암호문에서 사용하는 문자의 집합이 동일하다.

✔️ 일대일 대응 규칙을 가진다.

 

🌐 블록 암호와 스트림 암호

💠 블록 암호 (Block Cipher)

✔️ 비트 수의 집합, 블록의 비트 수를 블록 길이라고 한다

✔️ 일반적으로 블록의 크기는 8비트(ASCII) 또는 16비트 (Unicode)에 비례

✔️ 스트림 암호화와는 다르게 Round를 사용하고 반복적으로 암호화 과정을 수행해 암호화 강도 상승

💠 스트림 암호 (Stream Cipher)

✔️ 암호화 방식은 평문과 키 스트림을 XOR하여 생성한다.

✔️ 데이터의 흐름을 순차적으로 처리해 가기 때문에 내부 상태를 가지고 있다.

✔️ 군사 및 외교용으로 널리 사용

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

 

🌐 위치에 따른 암호화의 구분

💠 링크 암호화

✔️ 라우터는 패킷의 헤더 부분을 해독

✔️ 데이터 링크 또는 물리적 계층에서 일어나며 하드웨어 암호화 장치들은 물리적 계층과의 인터페이스를 가지고 그것을 통과하는 모든 데이터를 암호화

💠 종단간 암호화 (End-to-End Encryption)

✔️ 헤더와 트레일러가 암호화 되지 않는다

✔️ 근원지 컴퓨터의 사용자에 의해 시작되며 애플리케이션 계층에서 암호화 이루어진다.

 

🌐 하드웨어와 소프트웨어 암호 시스템

💠 하드웨어 암호시스템 : 컴퓨터와 통신기기의 내부버스와 외부 인터페이스에 전용 암호 처리용 하드웨어 설치

💠 소프트웨어 암호 시스템 : 적당한 안전성과 처리속도

 

3️⃣ 주요 암호 기술에 대한 개괄

🌐 대칭키 암호와 비대칭키(공캐키) 암호

💠 대칭키 암호

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

✔️ 공개키 암호화 보다 빠른 처리속도 제공, 암호키의 길이가 작아 기밀성 보장 가능

💠 비대칭키 암호

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

✔️ 대칭키 암호화 방식에 비해 느리기 때문에 키 분배나 전자서명 또는 카드 번호와 같은 작은 크기의 데이터 암호화

💠 하이브리드 암호화 시스템

✔️ 대칭키 암호와 공개키 암호를 조합한 암호 방식을 하이브리드 암호 시스템

💠 일방향 해시 함수

✔️ 동일한 입력 메시지에 대한 항상 동일한 값을 생성하지만 해시 값만으로 입력메시지 유추 불가

✔️ 복호화 없이 입력값의 정확성 검증이 필요한 경우에 사용

💠 메시지 인증코드

✔️ 메시지가 전송 도중에 변조되지 않았다는 것과 생각했던 통신 상대로부터 왔다는것 확인 가능

✔️ 무결성과 인증 제공 암호기술

💠 전자서명

✔️ 거짓행세, 변경, 부인이라는 위협을 방지

✔️ 전자서명은 무결성을 확인하고, 인증과 부인 방지를 하기 위한 암호 기술

💠 의사난수 생성기

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

✔️ 난수는 키 생성이라는 역할 담당

 

4️⃣ 암호 분석 (암호 해독)

🌐 개요

💠 제 3자가 암호문으로부터 평문을 찾으려는 시도를 암호해독 또는 공격이라 한다.

💠 암호학에서 암호해독자는 현재 사용되고 있는 암호 방식을 알고 있다는 전제하에 암호 해독을 시도하는 것으로 간주한다.(케르히호프의 원리)

 

🌐 암호 분석의 분류

💠 암호문 단독 공격 (COA, Ciphertext Only Attack)

✔️ Eve가 단지 어떤 암호문을 얻어서 대응되는 평문과 키를 찾는것, Eve는 알고리즘을 알고 있고 암호문을 가로챌 수 있다고 가정

✔️ Eve는 이 공격을 위해 암호문만 필요

💠 기지평문 공격 (알려진 평문 공격, KPA, Known Plaintext Attack)

✔️ Eve는 해독하려는 암호문 외에 추가로 여러 개의 평문/암호문 쌍을 얻는다. 평문/암호문 쌍은 공격자에게 미리 주어진다

✔️ ex) Alice가 Bob에게 비밀 메시지를 보냈지만 나중에 그 메시지를 공개한다면 Eve는 공개된 평문/암호문 쌍을 사용하여 Alice가 Bob에게 보내려는 다음 비밀메시지를 알아내는데 사용

💠 선택평문공격 (CPA, Chosen Plaintext Attack)

✔️ 알려진 평문 공격과 유사하지만 공격자에게 주어지는 평문/암호문 쌍을 공격자가 선택

✔️ ex) Eve가 Alice의 컴퓨터에 접속할 수 있다면 이 공격 적용 가능, Eve는 어떤 평문을 선택하고 이에 대응되는 암호문 얻는다

✔️ COA, KPA와 달리 도청이 아닌 암호화 과정에 영향을 미친다는 점에서 능동적 공격자이다

💠 선택암호문공격 (CCA, Chosen Ciphertext Attack)

✔️ Eve가 어떤 암호문을 선택하고 그에 대응되는 평문을 얻는다는 점을 제외하면 선택 평문 공격과 유사, Eve가 Bob의 컴퓨터에 접속할 수 있다면 적용 가능

 

5️⃣ 암호 알고리즘의 안전성 평가

🌐 암호 기술 평가

💠 암호 알고리즘 평가, 암호 모듈 평가, 정보보호제품 평가, 응용시스템 평가

 

🌐 암호모듈의 안전성 평가 (CMVP)

 

6️⃣ 지적 재산권 보호

🌐 디지털 저작권 관리

💠 스테가노그래피

✔️ 다른 무언가로 감추어 메시지 자체를 은폐, 보통 사진파일에 인간이 인지하지 못할 정도의 미세한 부분에 변화를 주어 정보를 입력하는 방식

💠 디지털 워터마킹

✔️ 사용자가 인식하지 못하도록 저작권 정보를 디지털 콘텐츠에 삽입하는 기술

✔️ 디지털 워터마킹의 분류

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

◾ 약한(연성) 워터마킹 : 공격을 받으면 쉽게 파괴되거나 손상을 입음

💠 핑거프린팅 : 디지털 콘텐츠를 구매할 때 구매자의 정보를 삽입하여 불법배포 발견 시 최초의 배포자 추적 기술

항목 스테가노그래피 워터마크 핑거프린트
은닉정보 메시지 판매자 정보 구매자 추적정보
관심 은닉메시지 검출 저작권 표시 구매자 추적
트래킹 불가 가능 가능
불법예방 효과
저작권증명 효과
공격 강인성 상대적 약함 상대적 강함 상대적 강함

 

💠 디지털 저작권 관리 (DRM, Degital Rights Management)

🌐 개요

💠 DRM 제어

✔️ 콘텐츠 접근 : 실행, 보기, 복제, 출력, 변경 등 포함

✔️ 디지털 콘텐츠 : 오디오, 비디오, 이미지, 텍스트, 멀티미디어, 컴퓨터 소프트웨어 등 포함

💠 DRM 구성 요소

✔️ 메타데이터, 패키저, 시큐어 컨테이너, 식별자, DRM 제어기

💠 DRM 모델

✔️ 콘텐츠 제공자, 콘텐츠 배포자, 콘텐츠 소비자, 클리어링하우스(디지털허가 발급)

 

SECTION 03. 대칭키 암호

1️⃣ 현대 대칭키 암호

🌐 현대 블록 암호

💠 현대 블록 암호의 구성요소

✔️ 개요

◾ 현대 블록암호는 확산과 혼돈과 같은 성질 만족을 위해 전치요소(P-box), 치환요소(S-box) 등이 결합하여 설계

◾ 공격 방지 암호를 제공하기 위해 현대의 블록 암호는 이동요소, 교환요소, 분할요소, 조합요소, 전치장치, 치환장치, XOR연산의 조합으로 만들어진다.

✔️ P-박스

◾ 축소 P-박스 : 비트를 치환하고 동시에 다음 단계를 위한 비트의 수를 줄이고자 할 때 사용

◾ 확장 P-박스 : 비트를 치환하고 동시에 다음 단계에서 비트의 양을 증가시키고자 할 때 사용

◾ 역함수의 존재성 : 단순 P-박스는 역함수 존재, 축소 및 확장 P-박스는 역함수가 존재하지 않는다.

✔️ S-박스

◾ 치환 암호의 축소모형, 입력과 출력의 개수가 달라도 된다

◾ 역함수의 존재성 : 수학적으로 정의되는 치환암호이며, 역함수가 존재할수도있고 존재하지 않을수도있다, 그러나 역함수가 존재하는 S-박스는 입력 비트와 출력 비트의 개수가 동일

✔️ 합성 암호

◾ 치환, 전치 그리고 그 밖의 구성요소를 결합한 복합적인 암호

◾ 확산과 혼돈 : 확산(암호문과 평문 사이의 관계 숨기기), 혼돈 (암호문과 키 사이의 관계 숨기기, 키의 단일 비트가 변하면 암호문의 거의 모든 비트가 변한다)

◾ 라운드 : 반복적으로 사용되는 합성 암호를 라운드라고 칭한다.

✔️ 두가지 종류의 합성 암호

◾ Feistel 암호 : 평문 블록 길이는 64비트 이상, 키의 길이는 64비트 내외(최근에는 키길이 128비트 권), 라운드는 16회 이상

- 복호화 과정은 암호화 과정과 동일하다

◾ Feistel 암호 특징 : MARS, RC6, Twofish에서 사용되고 있다.

✔️ SPN 구조

◾ 입력을 여러개의 소블록으로 나누고 각 소블록을 S-box로 입력하여 대치 시키고 S-box의 출력을 P-box로 전치하는 과정을 반복

Feistel 그물을 짜듯이 역함수 존재, 비존재 요소 사용 암호화과정=복호화과정 DES, SEED 3라운드 이상 짝수
SPN 치환암호+전치암호 역함수 존재, 비존재 요소 사용 암호화과정=/=복호화과정 AES, ARIA 병렬 처리

 

✔️ 블록 암호에 대한 공격

◾ 차분 분석 (차분 해독법) : Biham과 Shamir에 의하여 개발된 선택 평문 공격법, 두개의 평문 블록들의 비트의 차이에 대하여 대응되는 암호문 블록들의 비트의 차이를 이용하여 사용되는 암호키 찾아내는 방법 (DES에 대한 공격)

◾ 선형 분석 (선형 해독법) : 마츠이에 의해 개발된 기지평문 공격, 비선형 구조를 적당히 선형화 시켜 키를 찾는 방법, 암호화 과정에서 근사적 선형 관계식을 찾는것을 목적으로 한다. (기지평문공격에서 공격수행가능)

◾ 전수 공격법 : Diffie와 Hellman이 제안, 암호화 할 때 일어날 수 있는 가능한 모든 경우에 대하여 조사하는 방법

◾ 통계적 분석 : 암호문에 대한 평문의 각 단어별 빈도에 관한 자료와 더불어 알려진 모든 통계적인 자료를 이용해 해독

◾ 수학적 분석 : 통계적인 방법을 포함하며 수학적 이론을 이용하여 해독

- 소인수 분해 : RSA, Rabin

- 이산대수 문제 : DH, Elgamal

 

🌐 현대 스트림 암호

💠 개요 : 현대 스트림암호는 동기식과 비동기식 두가지 종류로 분류된다.

✔️ 스트림 암호 설계 시 고려사항 : 암호화의 연속은 긴 주기를 가져야한다, 키 스트림은 진 난수 스트림과 최대한 비슷해야한다, 키가 충분히 길어야한다(무차별 공격에 대응, 적어도 128비트)

💠 동기식 스트림 암호

✔️ One-Time Pad : 동기식 스트림 암호 중 가장 간단하고 안전한 암호

✔️ 귀환 시프트 레지스터 (FSR) : 소프트웨어와 하드웨어 환경에서 모두 구현될 수 있지만 하드웨어 구현이 더욱 용이

✔️ 선형 귀환 시프트 레지스터 (LFSR) : 하드웨어로 쉽게 구현되며 모든 스트림 암호는 아니지만 많은 스트림 암호가 LFSR 사용

✔️ 비선형 귀환 시프트 레지스터 (LNFSR) : LFSR보다 안전한 스트림 암호를 설계 가능

💠 비동기식 스트림 암호 (자기동기식 스트림 암호)

✔️ 키스트림과 암호문의 종속성으로 인하여 해독되기 쉽다.

✔️ 블록 암호에서 다른 운영 모드를 생성하기 위해 사용되는 CFB 모드는 실제로 스트림암호 생성

 

2️⃣ DES (Data Encryption Standard)

🌐 개요

💠 역사

✔️ 대칭키 블록암호, DES를 세번 반복하는 3중 DES의 사용을 권고하는 새로운 표준 발표

✔️ 최신 블록암호 표준인 AES는 오랫동안 사용된 DES를 대체하기 위하여 표준으로 제정된 알고리즘

💠 개관

✔️ 평문의 길이는 64비트, 키의 길이는 56비트, 이보다 긴 평문은 64비트 블록

✔️ DES 구조는 Feistel 네트워크의 변형된 형태, 라운드 횟수는 16회

✔️ 56비트짜리 원래 키로부터 16개의 서브키를 생성하고 그 서브키를 각 라운드에서 사용

 

🌐 DES의 구조

💠 개요

✔️ 암호화 과정은 두 개의 전치(P-박스)와 16개의 Feistel 라운드 함수로 구성 (두개의 P-박스 중 하나는 초기전치, 다른하나는 최종전치)

✔️ 각 라운드는 라운드 키 생성기에 의해 암호키로부터 생성된 48비트 라운드키 사용

💠 라운드 함수

✔️ P-박스, 키 XOR, 8개의 S-박스, 단순 P-박스의 4개 부분으로 구성

💠 암호화 알고리즘과 복호화 알고리즘

✔️ 라운드 키들이 역순으로 적용

 

🌐 DES 분석

💠 설계 기준

✔️ S-박스

◾ 각 라운드에서 그 다음 라운드까지 혼돈을 만족하도록 설계

◾ 비선형 함수

◾ 입력값의 한 비트를 바꾸면 출력값에서는 두 비트 이상이 바뀜

✔️ P-박스

◾ 32비트에서 32비트로 가는 하나의 단순 P-박스와 32비트에서 48비트로 가는 하나의 확장 P-박스 존재, 2개의 P-박스는 비트들을 동시에 확산

💠 DES의 취약점

✔️ 쇄도효과, 완비성

 

🌐 다중 DES

💠 3중 DES

✔️ TTA에서 블록암호 SEED를 국가 표준으로 정하고, 공동으로 개발한 블록 암호 ARIA 인증 획득

✔️ 3DES (블록암호) < DES (블록암호) < AES (블록암호) < RC3 (스트림암호)

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

 

 

3️⃣ AES

🌐 개요

💠 역사

✔️ NIST에서 AES 알고리즘으로 선택한 것은 레인달(Rijndael) > 경쟁 방식에 의한 표준화

💠 선정 기준 : 안전성, 비용(계산 효율성/저장공간), 구현 효율성(플랫폼 무권)

💠 라운드

✔️ 128비트 평문을 128비트 암호문으로 출력, non-Feistel 알고리즘

✔️ 10, 12, 14 라운드 사용, 각 라운드에 대응하는 키 크기는 128, 192, 256비트

 

🌐 암호

💠 개요 : SPN이라는 구조 사용

구분 DES AES
년도 1976 1999
블록크기 64bits 128bits
키 길이 56bits 128, 192, 256bits 이상
암호화 프리미티브 치환, 전치 치환, 시프트, 비트 혼합
암호학적 프리미티브 혼돈, 확산 혼돈, 확산
설계 공개 공개
설계 원칙 비공개 공개
선택 과정 비밀 비밀, 공모
출처 IBM, NSA 벨기에 암호학자

 

4️⃣ 기타 대칭키 암호 알고리즘

🌐 국제 암호 알고리즘

구분 개발 국가 개발 년도 특징 블록 크기 키의 길이 라운드수
DES 미국 1972 NIST에서 표준으로 공표 64 56 16
IDEA 유럽 1990 PGP 채택 64 128 8
Rijndael 벨기에 1998 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 알고리즘 간단, 속도 빠름 34, 64, 128 0 ~ 2040 1 ~ 255
FEAL 일본 1987 S/W 구현 적합 64, 128 64 4, 8, 32
MISTY 일본 1996 차분/선형 공격에 안전성 증명 64 128 8
SKIPJACK 미국 1990 Fortezza 카드에 사용 64 80 32

 

5️⃣ 현대 대칭키 암호화를 이용한 암호화 기법

🌐 블록 암호의 사용 방식

💠 ECB(Electronic CodeBook) 모드 : 평문 N개는 n비트 블록으로 분할, 덧붙이기 필요 (padding)

✔️ 매우 많은 데이터 베이스 암호화 할 때 병렬적 처리 가능

✔️ 독립성이 유용

 

💠 CBC (Cipher Block Chaining) 모드

✔️ 평문 블록은 암호화 되기전에 이전 암호문 블록과 XOR 됨, 초기벡터 블록 사용

✔️ 복호화 할 때 CBC 모드의 암호문 블록이 1개 파손된 경우 , 암호문 블록의 길이가 바뀌지 않았다면 평문 블록에 미치는 영향은 2개 블록에 머문다.

✔️ 평문 블록의 한 비트 오류는 출력되는 모든 암호문에 영향을 미친다.

✔️ IPSec(VPN)에서는 통신의 기밀성을 위해 CBC 모드 사용, Kerberos version(인증) 5에서도 사용

 

💠 CFB(Cipher Feedback) 모드

✔️ 어떤 블록 암호도 스트림 암호로 변경 가능

✔️ 암호화 기법과 복호화 기법에서 암호 함수는 DES나 AES를 사용한다 (복호화 시 복호화 함수가 아닌 암호화 함수 사용)

✔️ 키 스트림이 암호문에 의존하는 비동기식 스트림 암호

💠 OFB (Output FeedBack) 모드

✔️ 오류 전파가 발생하지 않으며, 초기화 벡터를 사용한다

✔️ 동기식으로 독립적이다.

💠 CTR (CounTeR) 모드

✔️ 암호화 시 피드백이 존재하지 않는다

✔️ 키 스트림의 의사 난수성은 카운터를 사용함으로써 성취 될 수 있다.

 

SECTION 04. 비대칭키 암호

1️⃣ 비대칭키 암호

🌐 키 배송 문제

💠 개요 : 키 배송 문제 해결 방법

✔️ 키의 사전 공유에 의한 해결

✔️ 키 배포센터에 의한 해결 (온라인 키 분배)

✔️ Diffie-Hellman 키 교환에 의한 해결

✔️ 공개키 암호에 의한 해결

💠 키 사전 공유에 의한 해결

✔️ 임의의 두 사용자에게 비밀 경로를 통하여 임의 키를 선택하여 전달하는 방법

✔️ n명의 사용자의 경우 각 사용자는 n-1(본인키제외)가지 키를 관리해야하며 TA는 n(n-1)/2가지 키를 관리

✔️ 매우 복잡하고 관리 비용 많이 지불

💠 키 배포센터에 의한 해결 (온라인 키 분배)

✔️ 암호통신이 필요해질때마다 통신용 키 > 키 배포센터에서 키 사전 공유

💠 Diffie-Hellman 키 교환에 의한 해결

✔️ 개요

◾ 1976년에 공개키 암호방식을 최초로 제안한 휘트필드 디피와 마틴 헬먼이 발명한 알고리즘

◾ 공개키 암호방식의 개념 이용, 최초의 비밀키 교환 프로토콜

◾ 이산대수 문제로 키교환을 뒷받침 한다.

✔️ Diffie-Hellman의 안전성

◾ 이산대수 공격 : 이산대수 문제를 풀기 어렵다는데 기반

◾ 서비스거부공격 (DoS) : 비밀키 과부화

◾ 중간자 공격 : 인증단계가 없기 때문에 취약, 전자서명과 공개키 인증서 이용

💠 공개키 암호에 의한 해결

송신자 (암호화) 수신자 (복호화)  
송신자 / 개인키 송신자 / 공개키 → 인증/부인방지
송신자 / 공개키 송신자 / 개인키 원칙 3에 위배
수신자 / 개인키 수신자 / 공개키
수신자 / 공개키 수신자 / 개인키 → 기밀성 (암호모드)

 

🌐 공개키 암호

💠 대칭키 vs 비대칭키

구분 대칭키 암호 시스템 공개키 암호 시스템
장점 암호화/복호화 속도가 빠름
키의 길이가 짧음
키의 분배가 용이
키 개수가 상대적으로 적음
키 변화의 빈도가 적음
단점 키 분배가 어려움
키 개수가 상대적으로 많음
키 변화의 빈도 많음
암호화/복호화 속도가 느림
키의 길이가 긺

 

🌐 RSA 암호 시스템

💠 개념

✔️ 공개키 암호 알고리즘 중의 하나이며 세계적으로 사실상의 표준이다.

✔️ 인수분해 문제 해결의 높은 난이도를 이용한 가장 대표적인 공개키 암호 알고리즘, 암호화 뿐 아니라 전자 서명의 용도로도 사용

✔️ 키 생성 알고리즘

◾ 두 소수 p = 17과 q=11을 선택한다.

◾ N = P x Q = 17 x 11 = 187을 계산한다.

◾ 0(N) = (p-1)(q-1) = 16 x 10 = 160을 계산한다.

◾ 0(N) = 160보다 작은 0(N)과 서로소인 수 e를 선택한다. 여기서는 e=7

◾ d < 160이면서 de mod 160 =1인 수 d를 결정한다. d=23 (23x7 = 161 = 1x160)

◾ 결과로 얻어지는 공개키 PU = {7,187} , 개인키 PR = {23, 187}이다.

💠 RSA에 대한 공격

✔️ 수학적 공격 (소인수분해 공격)

✔️ 타이밍 공격 (시간 공격)

✔️ 선택 암호문 공격 (CCA공격)

💠 최적 비대칭키 암호 패딩 (OAEP)

 

🌐 Rabin 암호 시스템

💠 암호화 복호화 : 암호화는 매우 간단하다, 오직 한번의 곱셈으로 이루어져 있다

✔️ 성능이 낮은 플랫폼에서 잘 활용 가능

✔️ p와 q가 충분히 크기만 하다면 안전하다.

 

🌐 ElGaml 방식

💠 이산대수 문제에 근거하여 만든 시스템

✔️ 디지털 서명, 암호화, 키교환에 사용될 수 있는 공개키 알고리즘(디피헬만 알고리즘의 확장)

 

🌐 타원 곡선 암호 (ECC)

💠 개요 : 키가 256비트인 ECC는 키가 4096비트인 RSA보다 강하다.

💠 특징 : 스마트 카드나 무선 통신 단말기 등과 같이 메모리와 처리능력이 제한된 응용분야에 효율적

✔️ 타원 곡선 상의 점들 간의 덧셈 연산을 통해 키를 산출

✔️ ECDLP 문제 (이산대수타원곡선문제)

 

2️⃣ 하이브리드 암호 시스템

🌐 대칭키 암호와 공개키 암호

💠 대칭키 암호를 사용하면 기밀성을 유지한 통신이 가능하지만 키 배송 문제 해결 필요

✔️ 공개키 암호를 사용해서 공개키에 대한 인증 필요

 

SECTION 05. 해시함수와 응용

1️⃣ 일방향 해시함수

🌐 일방향 해시함수의 개요

💠 기본 개념 : 임의의 길이를 갖는 메시지를 입력으로 하여 고정된 길이의 해시 값 또는 해시 코드라 불리는 값을 출력하는 함수

💠 일방향 해시함수의 특징

✔️ 임의 길이의 메시지로부터 고정 길이의 해시값을 계산

✔️ 해시값을 고속으로 계산

✔️ 일방향성을 갖는다

✔️ 메시지가 다르면 해시값도 다르다

 

🌐 해시함수의 분류와 보안 요구사항

💠 해시함수의 보안 요구사항

✔️ 프리이미지 저항성 (역상 저항성) : 주어진 해시함수 h와 만족하는 메시지 m을 찾아낸다는것이 매우 힘들어야한다는 성질

✔️ 제 2프리이미지 저항성 (두번째 역상저항성, 약한 충돌 내성) : 메시지를 쉽게 위조할 수 없도록 하는 성질

✔️ 해시함수가 가져야 할 성질

◾ 역상 저항성 : 주어진 임의의 출력 값 y에 대해 y=h(x)를 만족하는 입력값 x를 찾는것이 계산적으로 불가능

◾ 두번째 역상 저항성 : 주어진 입력값 x에 대해 h(x)=h(x'), x=/=x'을 만족하는 다른 입력값 x'을 찾는 것이 계산적으로 불가능

◾ 충돌 저항성 : h(x)=h(x')을 만족하는 임의의 두 입력값 x,x'을 찾는 것이 계산적으로 불가능

 

🌐 키가 없는 해시 함수와 키를 사용하는 해시함수

💠 키가 없는 해시 함수

✔️ 기본 개념

◾ 블록 암호를 기초로 한 해시함수

◾ 전용 해시함수 (처음부터 새로 만드는 것)

◾ 모듈 연산을 기초로 한 해시함수

✔️ 전용 해시함수

◾ 메시지 다이제스트 (MD2 → MD4 → MD5) : 512비트로 된 블록들로 나누고 128비트 다이제스트를 출력

- MD5는 생일 공격에 노출되어 보안 요구사항이 높은 응용에는 사용이 권장되지 않고 있다.

◾ SHA : NSA가 설계하였고, NIST에 의해서 배포되었다.

구분 SHA-1 SHA-2
SHA-225 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

 

◾ RIPEMD-160 : 비트코인에서 사용

◾ Tiger : MD5, SHA-1보다 더 속도가 빠르다

◾ HAVAL : 가변길이 해시 알고리즘, 사용되는 블록의 길이는 1024비트

 

🌐 암호학적 해시함수의 응용

💠 무결성 점검

💠 소프트웨어 변경 검출

💠 메시지 인증코드 : 메시지 인증은 키가 있는 해시 함수로 알려진 메시지 인증코드(MAC)를 사용하여 얻어진다.

💠 전자서명

 

🌐 랜덤 오라클 모델과 해시함수에 대한 공격

💠 0과 1로 이루어진 난수 스트링인 고정된 길이의 메시지 다이제스트를 생성해 제공

💠 비둘기집 원리 : n+1 마리의 비둘기가 n개의 비둘기집에 들어가 있다면 적어도 한 비둘기 집에는 두마리의 비둘기가 들어있다 → 충돌

💠 생일문제 : 같은 해시값을 생성하는 2개의 메시지를 구하는 것, 일방향 해시함수의 강한 충돌 내성을 깨고자 하는 공격

💠 랜덤 오라클 모델에 대한 공격 : 충돌 공격을 하는 것 보다 프리이미지 공격이나 제 2프리이미지 공격을 하는 것이 훨씬 어렵다.

 

2️⃣

3️⃣ 메시지 인증 코드 (MAC)

🌐 개요

💠 기본 개념

✔️ 메시지 인증코드란 무결성을 확인하고 메시지에 대한 인증하는 기술

✔️ MAC의 장점 : 블록암호나 해시 함수에 기반을 두기 때문에 전자서명보다 훨씬 빠르다

💠 변경 감지 코드 (MDC, Modification Detection Code) : 메시지의 무결성을 보장하는 메시지 다이제스트

💠 메시지 인증 코드 (MAC) : 데이터 출원지 인증을 보장

 

🌐 MAC의 구현 사례

💠 HMAC : SHA-1과 같은 일방향 해시함수를 이용하여 메시지 인증코드를 구성하는 방법 H는 hash를 의미

💠 CBC-MAC, CMAC : 대칭키 암호를 N번 사용하여 N개의 평문 블록에서 하나의 MAC을 생성해내는 아이디어

💠 CCM(Counter with CBC-MAC) : 기밀성과 무결성 제공, AES 암호 알고리즘, CTR 운용 모드, CBC-MAC 인증 알고리즘 구성

💠 GCM 모드 : 인증하는 정보 (인증자)를 만들어내는 구조

 

🌐 MAC에 대한 공격

💠 재전송 공격 : 순서번호, 타임스탬프, 비표(nonce, 난수), 시도/응답으로 공격을 방지 가능

 

🌐 MAC으로 해결할 수 없는 문제

💠 제 3자에 대한 증명, 부인방지(전자서명을 사용하면 부인방지 가능)

 

SECTION 06. 전자서명과 PKI

1️⃣ 전자서명

🌐 전자서명의 개요

💠 전자 서명의 형식 : 공개키 암호 방식을 이용한 공개키 서명방식, 관용 암호방식을 이용한 중재서명 방식

💠 전자서명 과정 

✔️ 기본 개념 : 송신자는 서명 알고리즘을 이용해 메시지에 서명 → 메시지와 서명 수신자에게 전송 → 수신자는 검증 알고리즘 적용

✔️ 키의 필요성 : 전자서명에서 서명자는 자신의 개인키로 문서에 서명 (서명 알고리즘 사용), 검증하는 사람은 역으로 서명자의 공개키 이용문서 검증 (검증 알고리즘 이용)

💠 전자서명 서비스

✔️ 메시지 인증 : 안전한 전자서명구조는 메시지 인증 보장

✔️ 메시지 무결성 : 전체 메시지에 서명을 할 경우에도 보장

✔️ 부인방지

✔️ 기밀성 : 메시지와 서명에 비밀키 이용, 공개키를 이용해서 암호화

💠 전자서명의 주요 기능

✔️ 위조 불가 : 합법적인 서명자 만이 전자서명을 생성할 수 있어야한다.

✔️ 서명자 인증 : 전자서명의 서명자를 누구든지 검증할 수 있어야한다.

✔️ 부인방지 : 서명자는 서명행위 이후에 서명한 사실을 부인할 수 없어야한다.

✔️ 변경 불가 : 서명한 문서의 내용을 변경할 수 없어야한다.

✔️ 재사용 불가 : 전자문서의 서명을 다른 전자문서의 서명으로 사용할 수 없어야한다.

 

🌐 전자서명 구조

💠 RSA 전자서명 구조

✔️ 메시지에 서명을하고 검증을 할 수 있다.

✔️ 송신자의 개인키와 공개키를 사용한다.

💠 ElGamal 전자서명 구조

✔️ 이산대수 문제를 이용한 최초의 서명 방식

✔️ ElGamal 서명 알고리즘은 실제로 거의 사용되지 않고, DSA(변형)이 더 많이 사용

💠 Schnorr 전자서명

✔️ 권장되는 p의 크기는 1024비트 이상, 서명의 길이는 2048비트 넘어간다

💠 전자서명 표준 (DSS)

✔️ 계산량을 획기적으로 줄인 방식, 이산대수 문제를 기반으로 한다

💠 타원곡선 전자서명 구조

✔️ ECDSA라고 부른다, 짧은 비트 길이로 인해 짧은 처리시간에 짧은 서명 생성 가능

 

🌐 전자서명 방식

💠 메시지 복원형 전자서명 : 기존의 공개키 암호방식을 이용하므로 별도의 전자서명 프로토콜이 필요하지않다

💠 부가형 전자서명 : 해시 알고리즘을 이용하여 일정한 길이로 압축

 

🌐 특수 전자서명

💠 부인방지 전자서명 : 서명을 검증할 때 반드시 서명자의 도움이 있어야 검증이 가능한 서명방식

💠 의뢰 부인방지 서명 : 부인과정을 수행할 수 있도록 만들어야한다.

💠 수신자 지정 서명 : 지정된 수신자만이 서명을 확인할 수 있다

💠 은닉 서명 (블라인드 서명) : 익명성을 유지해야한다.

💠 위임 서명 : 대리로 서명할 수 있도록 구성한 서명 방식

💠 다중 서명 : 동일한 전자 문서에 여러 사람이 서명하는 것

 

🌐 전자서명의 응용

💠 전자투표

✔️ 전자투표 시스템 구현을 위한 요구사항 : 완전성, 익명성, 건전성, 이중투표방지, 정당성, 적임성, 검증가능

✔️ 전자투표 방식

◾ 전자투표 (PSEV, Poll Site E-Voting) : 터치스크린 기표기

◾ 원격인터넷투표 (REV, Remote Internet E-Voting) : 투표소에 가지 않아도 투표할 수 있다.

◾ 키오스크방식 : 정해지지 않은 임의 투표소에서 전자 투표

💠 전자 입찰 시스템

✔️ 전자입찰 시스템의 요구사항 : 독립성, 비밀성, 무결성, 공평성, 안전성

 

2️⃣ PIK (공개키 기반 구조)

🌐 PKI(Public-Key Infrastructure)의 개요

💠 기본 개념

✔️ PKI는 공개키 알고리즘을 위한 키 관리 구조, RFC2822는 PKI(공개키 기반구조)를 비대칭키 암호시스템에 기초하여 디지털 인증서 생성관리하는데 필요한 H/W, S/W 절차라고 정의

✔️ 인증기관, 등록기관, 사용자, 신뢰 당사자, 저장소 등의 요소로 구성

✔️ 인증서의 발급, 사용 및 취소와 관련 서비스를 통하여 기밀성, 무결성, 접근제어, 인증, 부인방지의 보안 서비스를 제공

 

🌐 PKI의 주요 구성 요소

💠 인증 기관 (CA, Certification Authority)

✔️ 개요

◾ 인증정책 수립, 인증서 및 인증서 효력정지 및 폐기 목록 관리, 다른 CA와의 상호 인증 제공

✔️ 정책승인기관 (PPA, Policy Approving Authority)

◾ 공개키 기반 구조 전반에 사용되는 정책을 수립하고, 공개키 기반 구조의 루트 인증기관으로서의 역할

✔️  정책 인증기관 (PCA, Policy Certification Authority)

◾ 인증기관의 공개키를 인증하고 인증서, 인증서 폐지 목록등을 관리

✔️ 인증기관 (CA, Certification Authority)

◾ PCA 아래 계층, 사용자의 공개키 인증서 발행, 폐지(CRL)

◾ 자신의 공개키와 상위 기관의 공개키 전달

◾ 등록기관의 요청에 의해 인증서 발행

◾ 소유자를 대신하여 공개키와 개인키 쌍을 생성할 수 있고 , 안전하게 소유자에게 전달

💠 검증기관 (VA, Validation Authority) : 거래의 유효성 확인, 신뢰 당사자에게 확인 시켜준다. 감사기관 역할

💠 사용자와 최종 개체 (Subjects And end Entities)

💠 등록기관 (RA, Registration Authority) : 사용자와 CA가 원거리에 위치해 있는 경우 인증기관과 사용자 사이에 둔다

💠 저장소(Repository, Directory) : 사용자의 인증서를 저장하는 일종의 데이터 베이스, LDAP, X.500 표준 형식

 

🌐 PKI의 형태

💠 계층 구조

✔️ 최상위의 루트 CA가 존재하고 그 아래에 하위의 CA가 계층적으로 존재하는 트리형태

✔️ 최상위 CA의 인증서는 모든 사용자에게 알려져야 하며, 모든 사용자의 인증서는 검증됨

💠 네트워크 구조

✔️ : 상위 인증기관의 영향없이 인증기관이 각각이 자신의 인증정책에 따라 독립적으로 존재하는 형태

💠 혼합형 구조 : 서로 효율적인 상호 연동을 보장하는 구조

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

 

🌐 PKI의 주요 관리 대상

💠 인증서(PKC, Public-Key Certificate) : 신분증

✔️ 해당키가 특정인의 것이라는 것을 보증해주는 것으로 증거로서의 기능을 수행

✔️ 인증기관(CA)의 개인키로 전자서명 되어있음

💠 인증서 폐지 목록 프로파일

✔️ CRL(Certificate Revocation List) :  폐지된 인증서들에 대한 목록, 각각의 폐기된 인증서는 인증서 일련번호에 의해서 확인

💠 인증서 운영 프로토콜

✔️ 온라인 인증서 상태 검증 프토코롤 (OCSP, Online Certificate Status Protocol)

◾ OCSP가 구현되면 작업은 백그라운드에서 자동으로 수행

◾ 구성요소 : OCSP 클라이언트, OCSP 서버, 인증서버로 구성

 

SECTION 07. 키, 난수

1️⃣ 키

🌐 개요

💠 암호기술을 사용하려면 키 라고 불리는 대단히 큰 수가 필요

💠 키 공간의 크기, 크면 클수록 무차별 공격에 강하며 , 키 공간의 크기는 키의 비트 길이로 정해진다.

 

🌐 다양한 키

💠 세션키와 마스터키

✔️ 세션키 : 통신할 때마다 한번만 사용되는 키

✔️ 마스터키 : 반복적으로 사용되는 키

💠 CEK(세션키)와 KEK(마스터키)

✔️ CEK : 사용자가 직접 이용하는 정보가 암호화의 대상

✔️ KEK : 키를 암호화하는 키

 

🌐 패스워드를 기초로 한 암호 (PBE)

💠 솔트 : 사전공격 또는 레인보우 테이블을 이용한 공격을 막기 위해 존재

💠 PBKDF(Password-based key derivation function) : 비밀번호, 반복횟수, 생성하고자 하는 비밀키의 길이를 입력으로 비밀키를 출력

💠 암호키의 저장 방법 : 하드웨어 토큰, 스마트 카드, USB토큰등의 보안 토큰(HSM)

 

2️⃣ 난수

🌐 난수의 용도

💠 키의 생성, 키쌍의 생성, 초기화 벡터의 생성, 비표(nonce)의 생성, 솔트의 생성, 일회용 패드

 

🌐 난수의 성질

💠 난수의 성질 분류 : 무작위성, 예측 불가능성, 재현 불가능성

 

🌐 의사난수 생성기

💠 하드웨어로 난수를 생성하는것 > 난수 생성기 (RNG, Random Number Generator)

💠 난수를 생성하는 소프트 웨어를 의사난수 생성기 (PRNG, pseudo random number generator)

💠 의사난수 생성기의 구조

✔️ 외부에서 주어진 종자(seed)를 기초로 의사난수열을 생성

✔️ 내부상태라고 하는것 = 메모리 값

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.