티스토리 뷰
작성일 : 2020. 10. 04
[정보보안기사 필기 정리]
암호학
Section 2. 암호학 개요
암호와 보안 상식
- 비밀 암호 알고리즘을 사용하지 말 것
- 약한 암호는 암호하하지 않는 것보다 위험하다.
- 어떤 암호라도 언젠가는 해독된다.
- 암호는 보안의 아주 작은 부분이다.
암호기법의 분류
1. 치환 암호와 전치 암호
(가) 치환 암호(대치 암호, Substitution Cipher)
- 비트, 문자 또는 문자의 블록을 다른 비트, 문자 또는 블록으로 대체한다.
- 즉, 평문의 문자를 다른 문자로 "교환하는 규칙"이다. 이때 교환 규칙은 일대일 대응이 아니어도 상관없다.
(나) 전치 암호(Transposition Cipher)
- 원문을 다른 문서로 대체하지 않지만 원문을 여기저기 움직이게 한다. 그것은 비트, 문자 또는 블록이 원래 의미를 감추도록 재배열한다.
- 따라서 전치 암호란 문자 집합 내부에서 "자리를 바꾸는 규칙"
- 평문에 사용된 문자와 암호문에 사용된 문자가 일대일 대응 규칙을 갖는다는 점이 특징이다.
2. 블록 암호와 스트림 암호
(가) 블록 암호(Block cipher)
- 블록암호는 어느 특정 비트 수의 "집합"을 한 번에 처리하는 암호 알고리즘을 총칭한다.
- 스트림 암호화와는 다르게 Round를 사용하고, 반복적으로 암호화 과정을 수행해 암호화 강도를 높인다.
(나) 스트림 암호(Stream cipher)
- 한번에 1비트 혹은 1바이트의 데이터 흐름(스트림)을 순차적으로 처리해가는 암호 알고리즘의 총칭이며, 암호화 방식은 평문과 키 스트림을 XOR하여 생성한다.
- 스트림 암호는 군사 및 외교용으로 널리 사용되고 있으며, 일부 상용으로도 활발히 사용되고 있다. 또한, 스트림 암호는 이동 통신 환경에서 구현이 용이하고, 안전성을 수학적으로 엄밀하게 분석할 수 있어 이동 통신 등의 무선 데이터 보호에 적합하다.
암호 분석(암호 해독)
1. 개요
- 암호 방식의 정규 참여자가 아닌 제3자가 암호문으로부터 평문을 찾으려는 시도를 암호 해독(cryptanalysis) 또는 공격리라 하며 암호 해독에 참여하는 사람을 암호 해독자, 제3자 또는 침해자라고 한다.
- 암호학에서 암호 해독자는 현재 사용되고 있는 암호 방식을 알고 있다는 전제하에 암호 해독을 시도하는 것으로 간주한다. 이것을 케르히호프의 원리(Kerckhoff's principle)라 한다.
2. 암호 분석의 분류
(가) 암호문 단독 공격(COA, Ciphertext Only Attack)
- 암호문 단독 공격은 Eve가 단지 어떤 암호문을 얻어서 대응되는 평문과 키를 찾는 것이다. 여기서 Eve는 알고리즘을 알고 있고, 암호문을 가로챌 수 있다고 가정한다.
- Eve는 이 공격을 위해 암호문만 필요하므로 암호문 단독 공격은 가장 쉽게 적용될 수 있는 공격이다.
(나) 기지 평문 공격(KPA, Known Plaintext Attack)
- 기지 평문 공격에서 Eve는 해독하려는 암호문 외에 추가로 여러 개의 평문/암호문 쌍을 얻는다. 평문/암호문 쌍은 공격자에게 미리 주어진다.
- 예를 들어, Alice가 Bob에게 비밀 메시지를 보냈지만 나중에 그 메시지를 공개한다면, Eve는 공개된 평문/암호문 쌍을 사용하여 Alice가 Bob에게 보내려는 다음 비밀 메시지를 알아내는데 사용한다.
(다) 선택 평문 공격(CPA, Chosen Plaintext Attack)
- 선택 평문 공격은 알려진 평문 공격과 유사하지만 공격자에게 주어지는 평문/암호문 쌍을 공격자가 선택하는 공격이다.
- 예를 들어, Eve가 Alice의 컴퓨터에 접속할 수 있다면 이 공격을 적용할 수 있다. Eve는 어떤 평문을 선택하고 이에 대응되는 암호문을 얻는다.
(라) 선택 암호문 공격(CCA, Chosen Ciphertext Attack)
- 선택 암호문 공격은 Eve가 어떤 암호문을 선택하고 그에 대응되는 평문을 얻는다는 점을 제외하면, 선택 평문 공격과 유사하다. 이 공격은 Eve가 Bob의 컴퓨터에 접속할 수 있다면 적용 가능하다.
- 선택된 암호문(임의의 암호문이거나 계획에 의한 암호문 모두)을 복호화할 수 있는 능력을 갖추고 있는 기계를 일반적으로 "Decryption oracle, 복호 오라클"이라고 부른다.
암호모듈의 안전성 평가(CMVP)
(가) 개요
- 암호모듈의 안전성 평가인 CMVP는 1995년 7월 미국 NIST와 캐나다 주정부의 CSE가 공동으로 개발한 암호 모듈의 안전성 검증을 위한 프로그램이다.
- CMVP에서 요구하는 암호모듈의 안정성 평가는 크게 3가지로 나눌 수 있으며, 각 항목에 대한 안전성 등급을 설정하여 기준을 마련하고 이에 대한 평가를 수행한다.
- 암호기술의 구현 적합성 평가
- 암호키 운용 및 관리
- 물리적 보안
지적 재산권 보호
1. 디지털 저작권 관리
(가) 스테가노그래피(Steganography)
- 최초의 암호 유형은 고대 그리스에서 사용한 방식으로, 암호화라기보다는 스테가노그래피에 가까운 방법이다.
- 스테가노그래피는 "감추어진 기록"을 의미한다. 다른 무언가로 감추어 메시지 자체를 은페하는 것을 의미한다.
(나) 디지털 워터마킹(Digital Watermarking)
- 원본의 내용을 왜곡하지 않는 범위 내에서 혹은 사용자가 인식하지 못하도록 저작권 정보를 디지털 콘텐츠에 삽입하는 기술을 말한다.
(다) 핑거프린팅(Fingerprinting)
- 디지털 콘텐츠를 구매할 때 구매자의 정보를 삽입하여 불법 배포 발견 시 최초의 배포자를 추적할 수 있게 하는 기술이다.
(라) 디지털 저작권 관리(DRM, Digital Rights management)
1. 개요
- DRM은 디지털 콘텐츠 소유자가 자신의 콘텐츠에 대한 접근을 자신 또는 자신의 위임자가 지정하는 다양한 방식으로 제어할 수 있게 하는 기술적인 방법 또는 방법의 집합을 의미한다.
2. DRM 구성 요소
- 메타데이터(Metadata): 콘텐츠 생명주기 범위 내에서 관리되어야 할 각종 데이터의 구조 및 정보이다.
- 패키저(Packgager): 보호 대상인 콘텐츠를 메타데이터와 함께 Secure Container 포맷으로 패키징 하는 모듈이다.
- 시큐어 컨테이너(Secure Container): DRM의 보호 범위 내에서 유통되는 콘텐츠의 배포 단위이다.
- 식별자(Indentifier): 콘텐츠를 식별하기 위한 식별자이다.
- DRM 제어기(DRM Controller): 콘텐츠를 이용하는 사용자의 PC 또는 디바이스 플랫폼에서 콘텐츠가 라이선스에 명시된 범위 내에서 지속적으로 보호될 수 있도록 프로세스를 제어한다.
Section 3. 대칭키 암호
두 가지 종류의 합성 암호
(가) Feistel 암호
- Feistel 암호 방식의 암호 강도를 결정짓는 요소는 평문 블록의 길이, 키 K의 길이, 라운드의 수이다. 그러므로 충분한 안전성을 보장받기 위해서는 평문 블록의 길이는 64비트 이상, 키 K의 길이는 64비트 내외, 라운드 수는 16회 이상이어야 한다. 그러나 최근에는 128비트의 키 길이를 권장하고 있다.
- Feistel 암호 방식의 복호화 과정은 암호화 과정과 동일하다.
(나) Feistel 구조
- Feistel구조는 3라운드 이상이며, 짝수 라운드로 구성된다.
- 라운드 함수와 관계없이 역변환이 가능하며, 두 번의 수행으로 블록간의 완전한 확산이 이루어 진다.
- 알고리즘의 수행속도가 빠르고 하드웨어 및 소프트웨어구현이 용이하다.
- 라운드 함수에 대한 제약 조건이 없어 DES를 비롯한 대부분의 블록암호에 채택되어 사용되고 있다.
(다) SPN 구조
- SP Network은 "여러 개의 함수를 중첩하면 개별 함수로 이루어진 암호보다 안전하다"는 Shannon의 이론에 근거하였다.
- 입력을 여러 개의 소블록으로 나누고 각 소블록을 S-box로 입력하여 대치(substitution) 시키고 S-box의 출력을 P-box로 전치(permutation)하는 과정을 반복하는 방식이다.
블록 암호에 대한 공격
(가) 차분 분석(차분 해독법,Differential Cryptanalysis)
- Biham Shamir가 개발한 것으로, "평문의 일부를 변경하면 암호문이 어떻게 변화하는가?"를 조사하는 암호 해독법이다.
(나) 선형 분석(선형 해독법, Linear Cryptanalysis)
- 마츠이(Matsui)가 개발한 방법으로 "평문과 암호문 비트를 몇 개 정도 XOR해서 0이 되는 확률을 조사"하는 해독 방법이다.
(다) 전수공격법(Exhaustive key search)
- 1977년 Diffie와 Hellman이 제안한 방법으로 암호화할 때 일어날 수 있는 가능한 모든 경우에 대하여 조사하는 방법이다.
현대 스트림 암호
1. 동기식 스트림 암호
(가) 개요
- 동기식 스트림 암호에서 키 스트림은 평문 혹은 암호문 스트림과 독립적이다.
- 키 스트림은 평문 혹은 암호문 비트와 키 비트 사이에 어떠한 관계도 없이 생성되고 사용된다.
(나) One-Time Pad
- 동기식 스트림 암호 중에서 가장 간단하고 안전한 암호는 길버트 버냄(Gilbert Vernam)에 의해 설계되고 특허화된 one-time apd이다.
- 암호화를 수행할 때마다 랜덤하게 선택된 키 스트림을 사용한다.
(다) 선형 귀환 시프트 레지스터(LFSR, linear feedback shift register)
- LFSR은 하드웨어로 쉡게 구현되며 모든 스트림 암호는 아니지만 많은 스트림 암호가 LFSR을 이용한다.
2. 비동기식 스트림 암호
비동기식 스트림 암호에서 키 스트림의 각 비트는 이전의 평문이나 암호문에 종속적으로 결정된다.
블록 암호에서 다른 운영 모드를 생성하기 위해 사용되는 한 가지 방법인 CFB 모드는 실제로 스트림 암호를 생성한다.
세 가지 대중적인 대칭키 암호 알고리즘의 비교
구 분 | DES | Triple DES | AES |
평문 블록 크기(bits) | 64 | 64 | 128 |
암호문 블록 크기(bits) | 64 | 64 | 128 |
키 크기(bits) | 64 | 112 또는 128 | 128, 192, 256 |
Feistel과 SPN구조 알고리즘
1. Feistel
DES, LOKI, CAST, Blowfish, MISTY, RC5, RC6, CAST256, E2, Twofish, Mars
2. SPN
SAFER, SHARK, Square, CRYPTON, Rijndael, SAFER+, Serpent, PRESENT
국제 암호 알고리즘
1. IDEA(International Data Encryption Algorithm)
- DES를 대체하기 위해 스위스 연방기술 기관에서 개발한 알고리즘이다.
- 현재까지 특별한 분석 방법이 알려지지 않아 DES에 비해 안전한 것으로 판단되고 있으며, PGP의 데이터 암호 알고리즘으로 채택되어 사용되고 있다.
2. RC5
- 1994년 미국 RSA 연구소의 라이베스트(Rivest)가 개발한 것으로 비교적 간단한 연산으로 빠른 암호화와 복호화 기능(속도는 EDS의 약 10배)을 제공하며, 모든 하드웨어에 적합하다.
국내 암호 알고리즘
1. SEED
- 1999년 한국정보진흥원(현 KSIA)과 국내 암호전문가들이 함께 개발한 알고리즘으로 인터넷, 전자상거래, 무선 통신 등에서 공개될 경우 민감한 영향을 끼칠 수 있는 중요 정보 및 개인 정보를 보호하기 위한 대칭키 알고리즘이다.
- 국제 블록암호 알고리즘 표준으로 제정되었다.
- 128비트 비밀키에서 생성된 16개의 64비트 라운드 키를 사용하여 총 16회의 라운드를 거쳐 128비트의 평문 블록을 128비트 암호문 블록으로 암호화 하여 출력하는 방식이다.
- SEED의 F 함수는 수정된 64비트 Feistel 형태로 구성된다.
2. ARIA(Academy Research Institute Agency)
- 국가보안기술연구소(NSRI) 주도로 학계, 국가정보원 등의 전문가들이 힘을 모아 개발한 국가 암호화 알고리즘이다.
- ISPN(Involutional SPN) 구조의 128비트 블록 암호로 128비트, 192비트, 256비트의 3종류의 키 사용을 제공한다.
- ARIA의 입출력 크기와 사용 가능한 키 크기는 미국 표준 블록암호인 AED와 동일하다.
3. HIGHT(HIGh security and light weigHT)
- 저전력, 경량화를 요구하는 컴퓨팅 환경에서 기밀성을 제공하기 위해 2005년 KISA, ETRI 부설 연구소 및 고려대가 공동으로 개발한 64bit 블록암호이다.
4. LEA(Lightweight Encryption Algorithm)
- 2012년 국가보안기술연구소가 개발한 '128bit 경량 고속 블록 암호 알고리즘'이다.
- AES(Advanced Encryption Standard)보다 1.5~2배 빠르다.
- 스마트폰 보안, 사물 인터넷(IoT) 등 저전력 암호화에 널리 쓸 수 있다.
블록 알고리즘 종류와 특징
구분 | 개발 국가 | 개발 년도 | 특징 | 블록 크기 | 키의 길이 | 라운드수 |
DES | 미국 | 1972 | NIST에서 표준으로 공표 | 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-255 |
현대 대칭키 암호를 이용한 암호화 기법
1. 블록 암호의 사용 방식
(가) 기본 개념
- 블록 암호는 고정된 n 비트 블록을 n 비트 블록으로 변환시키는 함수이다.
- 이 모드는 DES나 AES를 포함한 어떤 대칭 블록 암호에도 적용할 수 있다.
- ECB 모드: Electronic CodeBook mode(전자 부호표 모드)
- CBC 모드: Cipher Block Chaining mode(암호 블록 연쇄 모드)
- CFB 모드: Cipher-FeedBack mode(암호 피드백 모드)
- OFB 모드: Output-FeedBack mode(출력 피드백 모드)
- CTR 모드: CounTeR mode(카운터 모드)
2. Electronic CodeBook(ECB) 모드
(가) 개요
- 운영 모드 중에서 가장 간단한 모드는 ECB 모드이다. 평문은 N 개의 n비트 블록으로 분할된다.
- 만약 평문 크기가 블록 크기의 배수가 아니라면, 평문의 마지막 블록에는 다른 블록들과 동일한 크기로 만들기 위하여 덧붙이기(충전물, padding)가 필요하다. 각각의 블록을 암호화 혹은 복호화하기 위하여 사용되는 키는 동일하다.
(나) 특징
- ECB 모드의 장점은 블록 간의 독립성이다. 다수 블록의 암호화와 복호화를 병렬적으로 수행할 수 있고, 다수 블록 중에 일부 블록만 득립적으로 암호화할 수 있다. 그리고 블록에서 발생하는 오류가 다른 블록에 영향을 주지 않는다.
(다) 응용
- ECB 모드의 장점은 매우 많은 데이터베이스를 암호화할 때 병렬적으로 처리할 수 있다.
3. Cipher Block Chaining(CBC) 모드
(가) 개요
- CBC 모드에서 각각의 평문 블록은 암호화되기 전에 이전 암호문 블록과 XOR된다. 블록이 암호화될 때 암호화된 블록은 전송되지만 다음 블록을 암호화할 때 사용하기 위하여 메모리에 저장되어야 한다.
- 그리고 첫 번째 블록을 암호화할 때는 이전의 암호문 블록이 존재하지 않으므로, 초기 벡터(IV)라고 불리는 허구의 블록이 사용된다.
(나) 초기 벡터(IV)
- 주어진 평문에 대하여, IV의 생성에 앞서 IV는 반드시 송수신 양자 모두가 알고 있어야 하며, 제3자로부터의 예측이 불가능해야 한다.
(다) 암호화와 복호화
- CBC 모드에서는 1단계 전에 수행되어 결과로 출력된 암호문 블록에 평문 블록에 평문 블록을 XOR하고 나서 암호화를 수행한다. 따라서 생성되는 각각의 암호문 블록은 현재 평문 블록뿐만 아니라 그 이전의 평문 블록들의 영향도 받게 된다.(각 블록에 동일한 키 사용)
- 복호화할 때 CBC 모드의 암호문 블록이 1개 파손된 경우, 암호문 블록의 길이가 바뀌지 않았다면 평문 블록에 미치는 영향은 2개 블록에 머문다. 반면 평문 블록의 한 비트 오류는 출력되는 모든 암호문에 영향을 미친다.
(라) CBC 모드 활용
- 인터넷에서 보안을 제공하는 프로토콜 중 하나인 IPSec에서는 통신의 기밀성을 지키기 위해 CBC 모드를 사용하고 있다.
4. Cipher FeedBack(CFB) 모드
(가) 개요
- CFB 모드를 이용하면 어떤 블록 암호도 스트림 암호로 바꿀 수 있다. 스트림 암호의 경우 메시지의 길이가 블록의 정수배가 되도록 패딩을 할 필요가 없으며 실시간으로 사용할 수 있다.
(나) 암호화와 복호화
- 복호화 과정은 평문 블록과 암호문 블록의 역할만 바뀌었을 뿐 동일하다. 암호화 기법과 복호화 기법에서 암호 함수는 DES나 AES를 사용한다.(복호화 시 복호화 함수가 아닌 암호화 함수 사용)
5. Output FeedBack(OFB) 모드
(가) 개요
- OFB 모드는 평문 블록이 동일하면 암호문이 같아지는 ECB 모드의 단점과 오류 전파가 발생하는 CBC 모드와 CFB 모드를 개선한 동작 모드이다.
- OFB 모드 동작은 암호기의 출력과 평문을 EX-OR하여 암호문을 생성하고 있으므로 오류 전파가 발생하지 않는다. 그러나 암호문 송신자와 수진자 사이에 동기를 조절해야 한다.
- OFB 모드에서도 CBC 모드나 CFB 모드와 마찬가지로 초기화 벡터(IV)를 사용한다.
(나) 특징
- 초기치가 바뀌면 암호문은 모두 바뀐다.
- 암호 알고리즘의 출력은 평문과 무관하다.
- 전송 중의 비트 오류가 전파되지 않는다.
- 암호문 C(i)에서 비트 손실이 발생하면 그 다음에 오는 평문은 모두 에러가 발생하기 때문에 동기를 새로 맞추어야 한다.
6. CounTeR(CTR) 모드
(가) 개요
CTR 모드가 ATM 네트워크 보안과 IPSec에 응용되면서 최근 들어 관심이 늘어났지만 이 모드는 사실 오래 전에 제안되었다.
블록 암호 정리
(가) 블록 암호 모드 비교
1. ECB 모드
이름 : 전자 부호표 모드(Electronic CodeBook)
장점 :
- 간단
- 고속
- 병렬 처리 가능(암호화, 복호화 양쪽)
모드 : 블록 모드
2. CBC 모드
이름 : 암호 블록 연쇄 모드(Cipher Block Chaining)
장점 :
- 평문의 반복은 암호문에 반영되지 않는다.
- 병렬 처리 가능(복호화만)
- 임의의 암호문 블록을 복호화 가능
모드 : 블록 모드
3. CFB 모드
이름 : 암호 피드백 모드(Cipher FeedBack)
장점 :
- 패딩이 필요 없다.
- 병렬처리 가능(복호화만)
- 임의의 암호문 블록을 복호화 가능
모드 : 스트림 암호방식의 블록 암호모드
4. OFB 모드
이름 : 출력 피드백 모드(Output FeedBack)
장점 :
- 패딩이 필요 없다.
- 암, 복호화의 사전 준비 가능
- 암, 복호화가 같은 구조
- 비트 단위의 에러가 있는 암호문을 복호화 하면 평문의 대응하는 비트만 에러가 난다.
모드 : 스트림 암호방식의 블록 암호모드
5. CTR 모드
이름 : 카운터 모드(CounTeR)
장점 :
- 패딩이 필요 없다.
- 암, 복호화의 사전 준비 가능
- 암, 복호화가 같은 구조
- 비트 단위의 에러가 있는 암호문을 복호화하면 평문의 대응하는 비트만 에러가 난다..
- 병렬 처리 가능(암, 복호화 양쪽)
모드 : 스트림 암호방식의 블록 암호모드
Section 4. 비대칭키 암호
키 배송 문제
(가) 개요
- 대칭키 암호를 사용하려고 하면 키 배송 문제(key distribution problem)가 발생한다.
- 키 배송 문제를 해결하기 위한 방법에는 몇 가지가 있다.
- 키의 사전 공유에 의한 해결
- 키배포 센터에 의한 해결(온라인 키 분배)
- Diffie-Hellman 키 교환에 의한 해결
- 공개키 암호의 의한 해결
키의 사전 공유에 의한 해결
- 키 사전 분배란 키 관리기관(TA)이 사전에 임의의 두 사용자(A, B)에게 비밀 경로를 통하여 임의 키 K a,b = K b,a 를 선택하여 전달하는 방법이다.
키배포 센터에 의한 해결(온라인 키 분배)
- 암호 통신이 필요해질 때마다 통신용 키를 키배포 센터(KDC)라는 신뢰받는 제3자에 의뢰해서 개인과 키배포 센터 사이에서만 키를 사전에 공유하는 것이다.
Diffie-Hellman 키 교환에 의한 해결
(가) 개요
- 공개키 암호방식의 개념을 이용하여 두 사용자 간에 공통의 암호화키를 안전하게 공유 할 수 있는 방법을 제시하였으며, 많은 키 분배 방식에 관한 연구의 기본이 되었다.
- 양쪽 통신주체가 KDC없이 대칭 세션키를 생성한다. 대칭키를 만들기 전에 양쪽은 두 개의 수 p와g 를 선택해야 한다. 여기서 p는 매우 큰 소수로서 300자리가 넘는 십진수(1024비트)이다.
- 실제로는 키를 교환하는 것이 아니라 공유할 키를 계산하여 만들어 내는 것이다. 그 때문에 키 합의라 불리기도 한다.
- 유한체상의 이산대수 문제를 풀기 어렵다는 사실이 키 교환을 뒷받침하고 있다.
(나) 절차
위키백과 참고.
(다) Diffie-Hellman의 안전성
1. 이산대수 공격
- 키 교환의 안전성은 이산대수 문제를 풀기 어렵다는데 기반을 두고 있다.
2. 서비스 거부 공격
- DH 기법은 지수 함수에 기초하고 있으므로 계산이 복잡하여 많은 수의 장치와 동시에 통신을 하는 경우 비밀키 생성에 큰 지연 시간이 발생할 수 있다.
3. 중간자 공격(man-in-the-middle attack)
- 키 교환 프로토콜은 이런 공격에 취약한데 그 이유는 인증단계가 없기 때문이다. 이런 공격을 막기 위해서는 전자서명과 공개키 인증서 등을 이용하면 된다.
공개키 암호(pubilic-key cryptography)
- 대칭키 암호는 평문을 복잡한 형태로 변환해서 기밀성을 유지한다. 공개키 암호는 수학적으로 해결하기 곤란한 문제를 토대로 해서 기밀성을 유지한다.
- 키쌍을 이루고 있는 2개의 키는 서로 밀접한 관계(수학적 관계)가 있다. 이 때문에 공개키와 개인키를 각각 별개로 만들 수는 없다.
비대칭 알고리즘의 분류
공개키 암호알고리즘 | ||||
소인수분해 문제 | 이산대수 문제 | |||
RSA | Rabin | ElGamal | DSA | ECC |
RSA 암호시스템
1. 기본 개념
- RSA는 공개키 암호 알고리즘의 중의 하나이며, 세계적으로 사실상의 표준이다.
- 인수분해 문제 해결의 높은 난이도를 이용한 가장 대표적인 공개키 암호 알고리즘으로 암호화뿐만 아니라 전자서명의 용도로도 사용된다.
- SSL 프로토콜을 가진 많은 웹 브라우저, PGP 그리고 공개키 암호시스템을 사용하는 정부시스템 등이 RSA를 사용한다.
2. RSA에 대한 공격
(가) 수학적 공격
- 수학적 공격의 핵심은 두 개의 소수 곱을 인수분해 하고자 하는 노력이다. 수학적 공격을 막으려면 키의 길이가 긴 걸 사용해야 한다. 그래서 개인키 d의 비트 수가 크면 클수록 더 안전하다.
(나) 타이밍 공격(시간 공격)
(다) 선택 암호문 공격(CCA)와 최적 비대칭키 암호 패딩(OAEP)
3. 권장사항
- n의 비트수는 적어도 1024비트가 되어야 한다. 즉, n은 2의1024승 인 수의 근방에 있는 수이거나 309자리 이상의 십진수가 되어야 한다.
- 두 개의 소수 p와 q는 적어도 512비트가 되어야 한다.
Rabin 암호시스템(Rabin cryptosystem)
- 합성수 모듈러에 관하여 제곱근을 찾기 어렵다는 사실로부터 안전성을 얻는다. 이러한 문제는 인수 분해 붐네즐ㄹ 푸는 어려움과 동긍한 문제이다.
ELGamal 방식
(가) 개요
- 이산대수 문제에 근거해서 만든 시스템이다.
- 디지털 서명, 암호화, 키 교환에 사용될 수 있는 공개키 알고리즘이다.
- 실제로 Diffie-Hellman 알고리즘의 확장이다.
- 주요한 결점은 성능이다. 다른 알고리즘에 비해 가장 느리다.
타원 곡선 암호(ECC, Elliptic Curve Cryptosystem)
(가) 특징
- 타원곡선 군에서의 이산대수의 문제에 기초한 공개키 암호 알고리즘으로, RSA 암호방식에 이어 전자상거래의 핵심 기술로 주목받고 있다.
대칭키 방식과 비대칭키 방식의 비교
항목 | 대칭키 | 공개키 |
키의 상호관계 | 암호화키 = 복호화키 | 암호화키 =/ 복호화키 |
안전한 키길이 | 128비트 이상 | 2048비트 이상 |
키 개수 | N(N-1)/2 | 2N |
목적 | 데이터(파일) 암호화 | 대칭키 교환 |
해당 알고리즘 | DES, 3DES, AES, IDEA | RSA, ECC, DSA |
하이브리드 암호 시스템의 암호화
하이브리드 암호 시스템에는 의사난수 생성기, 대칭키 암호, 공개키 암호라는 3가지 암호기술이 사용된다.
Section 5. 해시함수와 응용
일방향 해시함수의 특징
- 임의 길이의 메시지로부터 고정 길이의 해시값을 계산한다.
- 해시값을 고속으로 계산할 수 있다.
- 일방향성을 갖는다.
- 메시지가 다르면 해시값도 다르다.
해시함수의 분류와 보안 요구사항
(가) 개요
- 프리이미지 저항성, 제2프리이미지 저항성, 충돌 저항성의 3가지 기준을 충족해야 한다.
(나) 프리이미지 저항성(역상 저항성)
- 주어진 임의의 출력값 y에 대해 y=h(x)를 만족하는 입력값 x를 찾는 것이 계산적으로 불가능하다.
(다) 제2프리이미지 저항성(두 번째 역상 저항성, 약한 출동 내성)
- 메시지를 쉽게 위조할 수 없도록 하는 성질이다.
- 주어진 입력값 x에 대해 h(x)=h(x'), x=/x'을 만족하는 다른 입력값 x'을 찾는 것이 계산적으로 불가능하다.
(라) 충돌 저항성(충돌 회피성, 강한 충돌 내성)
- 동일한 다이제스트를 가지는 2개의 메시지를 구하지 못하도록 하는 것이다.
- h(x)=h(x')을 만족하는 임의의 두 입력값 x, x'을 찾는 것이 계산적으로 불가능하다.
해시함수가 가져야 할 성질
- 역상 저항성
- 두 번째 역상 저항성
- 충돌 저항성
전자서명에 이용되는 해시 함수의 특성
- 해시값을 고속으로 계산할 수 있다.
- 약 일방향성
- 강 일방향성
- 충돌 회피성
키가 없는 해시함수
(가) 전용 해시함수
1. 메시지 다이제스트(MD2 → MD4 → MD5)
2. SHA(Secure Hash Algorithm)
- 가장 널리 사용된느 해시함수 SHA는 DSS(Digital Signature Standard)에 사용하기 위해 NSA가 설계하였고, NIST에 의해서 배포되었다.
3. RIPEMD-160
4. Tiger
5. HAVAL
랜덤 오라클 모델
- 임의의 길이를 갖는 메시지에 오라클은 0과 1로 이루어진 난수 스트링인 고정된 길이의 메시지 다이제스트를 생성해서 제공한다.
- 이미 다이제스트가 존재하는 메시지가 주어지면 오라클은 저장되어 있던 다이제스트를 제공한다.
암호학적 해시함수
1. SHA-512
- SHA-512는 다중-블록 메시지로부터 512비트 다이제스트를 생성한다. 각 블록은 1024비트 길이를 가진다.
2. SHA-3
메시지 인증코드(MAC)
(가) 개요
- 무결성을 확인하고 메시지에 대한 인증을 하는 기술이다.
- 임의 길이의 메시지와 송신자 및 수신자가 공유하는 키라는 2개의 입력을 기초로 해서 고정 비트길이의 출력을 계산한느 함수이다.
(나) 메시지 인증 코드(MAC)
- 메시지의 무결성은 물론 Alice가 메시지의 원래 전송자이며 다른 사람이 Alice인 척하는 아니라는 것을 말해주는 데이터 출원지 인증을 보장하기 위해 변경 감지 코드를 메시지 인증코드로 바꿀 필요가 있다.
- MDC와 MAC의 차이는 송신자와 수신자 사이에 비밀값이 포함된다는 것이다.
(다) MAC의 키 배송 문제
- MAC에서는 송신자와 수신자가 키를 공유할 필요가 있다.
- 대칭키 암호 때의 "키 배송 문제"와 같은 문제가 메시지 인증코드에서도 일어날 수 있다.
HMAC
(가) 개요
- 강한 일방향 해시함수라면 뭐든지 HMAC에 이용할 수 있다.
- TLS, IPSec, SET 같은 프로토콜에 사용되고 있다.
MAC에 대한 공격
(가) 개요
- 재전송 공격을 막을 수 있는 방법은 순서번호, 타임스탬프, 비표, 시도/응답 등이 있다.
MAC으로 해결할 수 없는 문제
1. 제3자에 대한 증명
- 제3자 "이 MAC 값을 계산한 것은 자신이 아니라 생대방"이라고 증명할 방법은 없다. 전자서명을 사용하면 제3자에 대한 증명이 가능해진다.
2. 부인 방지
- 송신자가 "메시지를 보내지 않았어" 라고 주장을 부인(repudiation)이라고 한다.
- 송신자 및 수신자는 어느 쪽 주장이 맞는지를 판단할 수 없기 떄문에 부인방지를 할 방법이 없다.
- 해결책: 전자성명을 사용하면 부인방지가 가능해진다.
Section 6. 전자서명과 PKI
전자서명의 형식
(가) 기본 개념
- 전사서명은 공개키 암호방식을 이용한 공개키 서명방식과 관용 암호방식을 이용한 중재서명방식으로 나눌 수 있다.
전자서명 과정
(가) 기본 개념
- 송신자는 서명 알고리즘을 이용해서 메시지에 서명을 한다. 메시지와 서명은 수신자에게 전송된다. 수신자는 메시지와 서명을 받고 이들에 검증 알고리즘을 적용한다.
전자성명 서비스
(가) 메시지 인증
(나) 메시지 무결성
(다) 부인방지
- 송신자가 보낸 사실을 무인한다면, 센터는 저장하고 있는 메시지를 제시할 수 있다.
(라) 기밀성
전자서명의 주요 기능
- 위조 불가
- 서명자 인증
- 부인방지
- 변경 불가
- 재사용 불가
RSA 전자서명 구조
(가) 개요
- RSA 아이디어를 이용하면 메시지에 서명을 하고 검증을 할 수 있다.
- RSA 암호 방식을 이용한 전자 서명의 안전도는 RSA 암호 방식의 안전도와 일치한다.
- 전자서명 구조에서는 개인키와 공개키의 역할이 바뀐다. 암호화의 경우에서처럼 수신자의 키를 사용하는 것이 아닐고 송신자의 개인키와 공개키를 사용한다.
Schnorr 전자서명 구조
(가) 개요
- ElGamal 전자서명 구조의 문제는 이산대수 문제로부터 안전해지기 위해 p가 매우 큰 소수가 되어야 한다는 것이다. 권장되는 p의 크기는 1024비트 이상이다. 이로인해 생성되는 서명의 길이는 2048비트가 넘어간다.
- 서명의 크기를 줄이기 위해서 Schnorr는 ElGamal에 기반을 두고 있지만 서명의 크기는 작은 새로운 구조를 제안하였다.
전자서명 표준(DSS, Digital Signature Standard)
(가) 개요
- ElGamal 전자서명을 개량한 방식이다.
- DSS는 이산대수 문제를 기반으로 하며, 오직 전자서명 기능만을 제공하도록 설계된 알고리즘을 사용한다. RSA와 달리, 이것은 암호화나 키 교환에 사용되지 않는다. 그럼에도 불구하고, 이것은 공개키 기술이다.
특수 전자서명
1. 개요
- 공개키 방식을 이용한 전자 서명은 검증키를 공개하고 있어 누구나 서명의 진위를 검증할 수 있으나 전자 서명을 제한적으로 사용하려고 하는 경우 제한하기가 곤란하다.
- 따라서 서명자의 동의가 있어야 검증이 가능하거나 서명문의 내용을 알지 못하게 하고 서명해야 하는 경우 등 다양한 형태에 맞는 전자 서명이 필요하다.
2. 부인방지 전자서명
3. 의뢰 부인방지 서명
4. 수신자 지정 서명
5. 은닉 서명(블라인드 서명, Blind Digital Signature)
- 서명 용지 위에 목지를 놓은 채로 봉투에 넣어 서명자가 서명문 내용을 알지 못하는 상태에서 서명토록 한 방식을 수식으로 표현한 것인 은닉 서명이다.
- 즉, 서명문의 내용을 숨기는 서명 방식으로 제공자의 신원과 서명문을 연결시킬 수 없는 익명성을 유지할 수 있다.
6. 위임 서명
7. 다중 서명
전자투표(Electronic Voting)
(가) 전자투표 시스템 구현을 위한 요구사항
- 완정성
- 익명성
- 건정성
- 이중투표방지
- 정당성
- 적임성
- 검증 가능
(나) 전자투표 방식
구분 | 투표장치 | 선거관리정도 | 기술적쟁점정도 | 특징 |
PSEV 방식 | 전자투표기 | 상 | 하 | 기존 투표소에서 투표 |
키오스크 방식 (Kiosk) |
전자투표기 | 중 | 중 | 정해지지 않은(비지정) 임의 투표소에서 전자 투표 |
REV 방식 | 모바일, 디지털TV, PC | 하 | 상 | 가정이나 직장에서 인터넷을 통하여 투표 |
전자입찰 시스템
(가) 개요
입찰 공고에서 다수의 공급자가 응찰하여 오면 이 중에서 가장 싼 가격을 제시한 응찰자와 계약을 맺는 입찰방식을 인터넷을 통하여 구현한 것이다.
(나) 전자입찰 시스템의 요구사항
- 독립성
- 비밀성
- 무결성
- 공평성
- 안전성
전자서명으로 해결할 수 없는 문제
(가) 개요
- 전자서명이 바르게 이용되기 위해서는 큰 전제조건으로 "서명 검증을 할 때 이용하는 공개키가 진짜 송신자의 공개키일 것"이어야 하는 것이다.
- 바른 공개키를 입수하기 위해 고안된 것이 인증서이다.
- 공개키 암호 및 전자서명의 기술을 사회적인 기반으로 만들어 가는 것, 그것이 공개키 기반 구조(PKI)가 된다.
PKI의 주요 구성요소
1. 인증기관(CA, Certification Authority)
(가) 개요
- 인증정책을 수립하고, 인증서 및 인증서 효력장치 및 폐기목록을 관리하며, 다른 CA와의 상호 인증을 제공한다.
(나) 정책 승인기관(PAA, Policy Approving Authority)
- 공개키 기반 구조 전반에 사용되는 정책을 수립한다.
(다) 정책 인증기관(PCA, Policy Certification Authority)
PAA 아래 계층으로 자신의 도메인 내의 사용자와 인증기관(CA)이 따라야 할 정책을 수립하고 인증기관의 공개키를 인증하고 인증서, 인증서 폐지 목록 등을 관리한다.
(라) 인증기관(CA, Certification Authority)
- 사용자의 공개키 인증서를 발행하고 또 필요에 따라 폐지한다.
- 사용자에게 자신의 공개키와 상위 기관의 공개키를 전달한다.
- 등록 기관의 요청에 의해 인증서를 발행한다.
- 인증서 소유자를 대신하여 공개키와 개인키 쌍을 생성할 수 있고, 안전한 방법으로 소유자에게 전달한다.
검증기관(VA, Validation Authority)
(가) 개요
- 인증서와 관련된 거래의 유효성을 확인하고, 인증서의 유효성 여부와 적절한 개체로 발급되었단느 것을 신뢰 당사자에게 확인시켜 준다.
사용자와 최종 개체(subjects and end entities)
- 자신의 비밀키/공개키 쌍을 생성할 수 있어야 한다.
- 공개키 인증서를 요청하고 획득할 수 있어야 한다.
- 전자 서명을 생성 및 검증할 수 있어야 한다.
- 비밀키가 분실 또는 손상되거나 자신의 정보가 변했을 때 인증서 폐지를 요청할 수 있어야 한다.
등록기관(RA, Registration Authority)
- 인증기관 대신 그들의 신분과 소속을 확인하는 기능을 수행한다.
- RA는 선택적인 요소이다. RA가 없을 경우 인증기관이 RA의 기능을 수행하고 가정한다.
PKI의 형태
1. 계층 구조
- 최상위의 루트 CA가 존재하고 그 아래에 하위의 CA가 계층적으로 존재하는 트리형태이다.
- 루트 CA 간의 상호인증을 통해 국제 간 상호동작을 원활하게 하는 장점이 있다.
2. 네트워크 구조
- 상위 인증기관의 영향 없이 인증기관 각각이 자신의 인증정책에 독립적으로 존재하는 형태이다.
- 모든 상호인증이 허용되면 상호인증의 수가 대폭 증가하는 단점이 있다.
3. 혼합형 구조
- 계층 구조와 네트워크 구조의 장점을 취한 방법이다.
PKI의 주요 관리 대상
1. 인증서(PKC, Public-Key Certificate)
(가) 개요
- 한 쌍의 공개키/개인키와 특정 사람/기관을 연결시켜 주는, 즉 해당키가 특정인의 것이라는 것을 보증해주는 것이다.
- 공개키 인증서에는 이름이나 소속, 메일 주소 등의 개인정보 및 그 사람의 공개키가 기재되고, 인증기관(CA)의 개인키로 전자서명 되어 있다.
(나) 인증서 표준 규격 X.509
(1) 개요
- 가장 널리 사용 되는 것은 ITU나 ISO에서 정하고 있는 X.509 라는 규격이다.
- IP 보안, 안전한 소켓 계층(SSL), 안전한 전자거래(SET)와 S/MIME같은 네트워크 보안 응용에서 널리 사용된다.
(2) X.509 인증서 프로파일
- 버전(Version): 필수
- 일련번호(Serial Number): 필수
- 서명 알고리즘 식별자(Signature Algorithm ID): 필수
- 발행자 이름(Issuer name): 필수
- 유효기간(Validity period): 필수
- 주체 이름(Subject name): 필수
- 주체의 공개키 정보(Subject Public Key): 필수
- 발행자 유일 식별자(Issuer Unique Identifier): 선택
- 주체 유일 식별자(Subject Unique Identifier): 선택
- 확장(Extensions): 선택
- 서명(Signature): 필수
(다) 인증서 확장 영역
- 키와 정책 정보: 인증서와 관련되는 키와 키의 용도 및 인증서 정책에 관한 부가적인 정보를 포함한다.
- 기관키 식별자(authority key identifier)
- 사용자키 식별자(subject key identifier)
- 키 사용(key usage)
- 인증서 정책(certificate policies)
X.509 인증서 폐지 목록 프로파일
(가) 인증서 폐지 사유
- 사용자가 개인키가 노출되었거나 훼손된 것으로 여겨진다.
- CA가 사용자를 더 이상 인증해줄 수 없다.
- CA의 인증서가 노출되었거나 훼손된 것으로 여겨진다.
(나)CRL(Certificate Revocation List)
- 폐지된 인증서들에 대한 목록을 인증서 폐지 목록(CRL)이라고 한다.
- CRL 내의 각각의 폐기된 인증서는 인증서 일련번호에 의해서 확인할 수 있다.
인증서 운영 프로토콜
(가) 온라인 인증서 상태 검증 프로토콜(OCSP, Online Certificate Status Protocol)
- OCSP가 구현되면 작업은 백드라운드에서 자동으로 수행된다. OCSP는 CA에 의해 관리되고 있는 CRL을 검사한다.
- OCSP는 OCSP 클라이언트, OCSP 서버, 인증 서버로 구성된다.
Section 7. 키, 난수
다양한 키
1. 세션키와 마스터 키
- URL이 https://로 시작되는 페이지에 웹 서버와 브라우저 사이에서만 SSL/TLS에 의해 암호화된 통신을 수행한다.
- 이때 사용되는 키는 해당 통신에만 한 번 사용되는 키를 세션키라고 한다.
- 다르게 반복적으로 사용되는 키를 마스터 키라고 부른다.
2. CEK와 KEK
- 통상적으로 사용자가 직접 이용하는 정보(콘텐츠)를 암호화하는 키를 CEK(Contents Encrypting Key)라고 부른다.
- 달리 "키를 암호화하는 키"를 KEK(Key Encrypting Key)라 부른다.
패스워드를 기초로 한 암호
1. 솔트의 역할
- 솔트는 의사난수 생성기로 만들어지는 랜덤한 수로, 키(KEK)를 만들 때에 패스워드와 함께 일방향 해시함수에 입력된다.
- 솔트는 사전공격 또는 레인보 테이블을 이용한 공격을 막기 위해 존재한다.
2. 의사난수 생성기
(가) 개요
하드웨어로 난수를 생성할 경우, 열이나 음의 변화처럼 예측이나 재현이 사실상 불가능한 자연 현상을 센서로 감지해서 그 결과를 기초로 난수열을 생성한다. 이와 같은 하드웨어를 난수생성기(RNG)라 부른다.
난수(실제로는 의사난수)를 생성하는 소프트웨어를 의사난수 생성기(PRNG)라 부른다. 소프트웨어만으론느 진정한 난수를 생성할 수 없기 때문에 "의사"난수 생성기라 부른다.
// 알기사 2020 정보보안기사 산업기사 필기 참고
// 보안기사 기준 작성
'Information security > 정보보안기사_필기' 카테고리의 다른 글
PART 3. 접근통제 (0) | 2020.10.04 |
---|---|
PART 1. 정보보호 개요 (0) | 2020.09.28 |
- Total
- Today
- Yesterday
- 윈도우인증#WindowsOS인증#ARS인증#Windows전화인증#WindowsARS인증
- OWASP #OWASP Top 10 #2021
- 부동산#원룸#오피스텔#체크리스트#매물 확인
- virustotal
- 악성코드#pestudio#정적분석
- Whois #IP #Domain #DNS # IPinfo #CMD
- 스팸#스팸전화#스팸문자#차단#가입권유#판매권유#스마트폰#핸드폰
- 정보보안기사#정보보안산업기사#접근통제
- 악성메일 #피싱메일 #메일분석 #헤더분석
- 노트북#1차비밀번호#CMOS#16진수#Samsung
- GIF#짤#짤방#이미지 사이트#GIF 사이트
- 파이썬 #python #프로그래밍
- 정보보안기사#정보보안산업기사#보안기사 필기#암호학
- CPPF#CPPG#개인정보취급자#CPO포럼#씨드젠
- 정보보안기사 #정보보안산업기사 #필기 #정보보호 개요
- 정보보안기사#정보보안산업기사#네트워크보안
- 개인정보보호협회#자율감시센터#불법이용신고#신고포상#개인정보불법이용#통신사불법
- 정보보안기사#정보보안산업기사#시스템보안
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |