certificate
Linux 분류

정보보안 기사 필기 (2)

컨텐츠 정보

본문

> 이글을 유지보수 중입니다. > PDF Viewer가 서버에 무리를 주어 Markdown으로 convertin 합니다. # 정보보안 기사 필기 ## PART 01. 정보보호 개요 ### 01. 정보보호관리의 개념 (출제빈도 1.3%) [정보보호(Information Security)] •정의 - 정보의 수집, 가공, 저장, 검색, 송신, 수신 중에 발생하는 정보의 훼손, 변조, 유출 등을 방지하기 위한 관리적, 기술적 수단, 또는 그러한 수단으로 이루어지는 행위 - 기밀성, 무결성, 가용성, 인증성, 부인방지를 보장하기 위해 기술적 ∙ 물리적 ∙ 관리적 보호대책을 강구하는 것 •3대 목표 + 속성(서비스) 1. 기밀성(Confidentiality) : 오직 인가된 사람 ∙ 프로세스 ∙ 시스템만이 알 필요성(Need-to-know)에 근거하여 시스템에 접근 할 수 있어야 한다. 2. 무결성(Integrity) : 정보의 내용이 무단으로 생성 또는 변경되거나 삭제되지 않도록 보호되어야 한다. 3. 가용성(Availability) : 시스템이 지체 없이 동작하고, 자원이 필요할 때 권한이 있는 사용자가 이용할 수 있어야한다. 4. 인증(Authentication) : 통신 대상에 대한 인증, 데이터의 출처에 대한 인증 5. 부인방지(Non-repudiation) : 전송이나 수신한 사실을 부인하지 못하도록 하는 것 6. 접근제어(Access Control) ### [보안 공격(Security Attack)] | Attack |Passive/Active | Threatening | | ------------ | ------------ | ------------ | |Snooping 트래픽 분석(Traffic Analysis) |Passive(소극적 공격) | Confidentiality | | Modification(변경) Masquerading(가장) Replaying(재연, 재전송)Repudiation(부인) | Active(적극적 공격) | Integrity | | Denial of Servic | Active | Availability | # PART 02. 암호학 # 02. 암호학 개요 (출제빈도 2.1%) [암호화와 복호화] * 평문(Message, Plain-text) : M, P * 암호문(Cypher-text) : C * 암호화(Encryption) 알고리즘 : E * 복호화(Decryption) 알고리즘 : D * 키(Key) : K •암호화, 복호화의 기호적 표현 - 암호화 : C = E(K,P) / C  = ??(P) - 복호화 : P = D(K,C) / P  = ??(C) [치환 암호와 전치 암호] •치환 암호(대치 암호, Substitution Cipher) : 평문의 문자를 다른 문자로 교환(대체)하는 암호기법 •전치 암호(Transposition) : 문자 집합 내부에서 자리를 바꾸는(재배열) 암호기법. 평문의 문자 집합과 암호문의 문자 집합이 일 대일 대응 규칙을 갖는다. [블록 암호와 스트림 암호] •블록 암호(Block Cipher) : 평문을 특정 비트의 블록으로 잘라낸 후 암호화 알고리즘을 적용하여 암호화. ex) DES, AES •스트림 암호(Stream Cipher) - 데이터 흐름(스트림)을 순차적으로 처리해가는 암호 알고리즘. ex) LFSR - 데이터 흐름을 순차적으로 처리하기 때문에 내부 상태를 가지고 있다. - 긴 주기와 높은 선형 복잡도가 요구된다. - 속도는 블록 암호화 방식보다 빠르지만 암호화 강도가 약하므로 이동 통신 등의 무선 데이터 보호에 적합. [위치에 따른 암호화 구분] •링크 암호화(Link Encryption) : 통신 링크 양쪽 끝단에 암호화 장치를 놓는 것. 대형 네트워크에서 사용하면 필요한 암호화 장 치 수가 많아지고, 중간 노드에서 데이터가 평문으로 노출된다는 단점이 있다. •종단간 암호화(End-to-End Encryption) : 두 종단 시스템에서 수행됨. 트래픽 분석에는 취약하지만 링크 암호화 방식보다 높은 수준의 보안 서비스를 제공한다. [주요 암호 기술] •대칭키 암호와 비대칭키 암호 - 대칭키 암호(Symmetric Cryptography) : ’암호화키 = 복호화키‘인 암호 알고리즘 방식 - 비대칭키 암호(Asymmetric Cryptography) : ’암호화키 ≠ 복호화키’인 암호 알고리즘 방식 •하이브리드 암호 시스템 : 대칭키 암호 + 비대칭키 암호 •일방향 해시함수(one-way hash function) •메시지 인증 코드(MAC, Message Authentication Code) : 무결성과 인증을 제공 •전자서명 : 무결성을 확인하고, 인증과 부인방지를 제공 •의사난수 생성기(PRNG, Pseudo Random Number Generator) : 키 생성의 역할 ## 02. 암호학 개요 [암호 분석(암호 해독) 분류] •암호문 단독 공격(COA, Cipher-text Only Attack) : 암호문 C만을 갖고 평문 P나 키 K를 찾아내는 방법. •기지 평문 공격(KPA, Known Plain-text Attack) : 일정량의 평문 P에 대응하는 암호문 C를 알고 있는 상태에서 해독하는 방법. 암호문 C와 평문 P의 관계로부터 키 K나 평문 P를 추정하여 해독하는 방법 •선택 평문 공격(CPA, Chosen Plain-text Attack) : 송신자(암호기)에 접근이 가능하여 평문 P를 선택하면 그 평문 P에 대한 암호 문 C를 얻어내 해독하는 방법. •선택 암호문 공격(CCA, Chosen Cypher-text Attack) : 수신자(복호기)에 접근이 가능하여 암호문 C를 선택하면 그 암호문 C에 대한 평문 P를 얻어내 암호를 해독하는 방법 •COA → KPA → CPA, CCA 순서로 공격자의 능력이 향상. 따라서 높은 단계의 공격자에게 안전한 암호 방식을 설계하는 것이 일반 적인 암호 설계 방향이다. [암호 알고리즘의 안정성 평가] - CC(Common Criteria) : 정보보호시스템에 대한 공통 평가 기준 - CMVP(Cryptographic Module Validation Program) : 미국 NIST와 캐나다 CSE가 개발한 암호 모듈의 안전성 검증을 위한 프로그 램. 암호기술의 구현 적합성 평가, 암호키 운용 및 관리, 물리적 보안으로 크게 나뉘어 평가를 수행 [디지털 저작권 관리] •스테가노그래피(Steganography) : 메시지 내용이 아닌 메시지 자체를 은폐하는 기법 •워터마크(Watermark) : 원본의 내용을 왜곡하지 않는 선에서 저작권 정보를 디지털 콘텐츠에 삽입하는 기법 - 강한(강성) 워터마킹 : 공격을 받아도 쉽게 파괴되거나 손상을 입지 않음 - 약한(연성) 워터마킹 : 공격을 받으면 쉽게 파괴되거나 손상을 입음 •핑거프린팅(Fingerprinting) - 디지털 콘텐츠를 구매할 때 구매자의 정보를 삽입하는 기법 - 불법 배포 발견 시 최초의 배포자를 추적하기 위한 기술 •디지털 저작권 관리(DRM, Digital Rights Management) - 디지털 콘텐츠 소유자가 자신의 콘텐츠에 대한 접근을 자신 또는 자신의 위임자가 지정하는 다양한 방식으로 제어할 수 있게 하는 기술적인 방법 - 구성 요소 1. 메타데이터(Metadata) : 콘텐츠 생명주기 범위 내에서 관리되어야 할 각종 데이터의 구조 및 정보 2. 패키저(Packager) : 보호 대상인 콘텐츠를 메타데이터와 함께 Secure Container 포맷으로 패키징 하는 모듈 3. 시큐어 컨테이너(Secure Container) : DRM의 보호 범위 내에서 유통되는 콘텐츠의 배포 단위 4. 식별자(Identifier) : 콘텐츠를 식별하기 위한 식별자 5. DRM 제어기(DRM Controller) : 콘텐츠를 이용하는 사용자의 PC 또는 디바이스 플랫폼에서 콘텐츠가 라이선스에 명시된 범 위 내에서 지속적으로 보호될 수 있도록 프로세스를 제어 - DRM이 적용된 기술 (1) PKI 기반의 불법복제 방지 기술 : 콘텐츠를 소비자의 암호화 키를 이용하여 패키징 함으로써 이를 다른 사람들이 이용할 수 없도록 하는 방식. 콘텐츠 배포 서버의 부담이 크다는 단점이 있어 디지털 콘텐츠 유통에 적합하지 않음 (2) DOI(Digital Object Identifier) 기반의 저작권 보호 기술 : 저작권 관리 정보를 바탕으로 저작권 인증을 부여하는 기술. 불 법복제 및 불법사용 방지 기능이 제공되지 않아 적극적인 저작권 보호가 불가능 # 03. 대칭키 암호 (출제빈도 3.3%) •대칭키 암호 = 관용 암호 = 공통키 암호 = 비밀키 암호 [블록 암호] •확산과 혼돈 - Shannon이 정의한 개념 - 확산(diffusion) : 암호문 C와 평문 P 사이의 관계를 숨기는 것. C ↔ P - 혼돈(confusion) : 암호문 C와 키 K의 관계를 숨기는 것. C ↔ K •P-box (전치 장치, Permutation box) ← 확산 제공 - 단순 P-box : n 비트를 입력 받아 n 비트를 출력, 유일하게 역함수가 존재 - 축소 P-box : n 비트를 입력 받아 m 비트를 출력 (n > m) - 확장 P-box : n 비트를 입력 받아 m 비트를 출력 (n < m) •S-box (치환 장치, Substitution box) ← 혼돈 제공 - 역함수가 존재하는 S-box : 입력 비트 = 출력 비트 - 역함수가 존재하지 않는 S-box : 입력 비트 ≠ 출력 비트 •Feistel 암호 구조 - 암호 강도를 결정짓는 요소 : 평문 M 의 길이, 키 K의 길이, 라운드의 수 - 암호화 과정 = 복호화 과정 •SPN 암호 구조 - Substitution-Permutation Network - S-box, P-box 반복적으로 사용하는 구조 ## 03. 대칭키 암호 [블록암호에 대한 공격] •차분 분석 : 평문의 한 비트를 변경하면 암호문은 전혀 다른 비트 패턴으로 변화하므로, 이 변화 형태를 분석하는 공격 •선형 분석 : 평문 비트와 암호문 비트를 일부 XOR하는 과정으로 근사적 선형 관계를 찾는 방법. •전수 공격 : 가능한 모든 경우에 대해 공격하는 방법. 경우의 수가 적은 경우 효율적인 방법 •통계적 분석 : 통계적인 자료를 통해 해독하는 방법 •수학적 분석 : 통계적 분석을 포함하여 수학적 이론을 이용하여 해독하는 방법 [스트림 암호] •동기식 스트림 암호 - 키 스트림은 평문 or 암호문 스트림과 독립적이다. - 암호화, 복호화에서 상호 동기화가 필수적이며, 전송도중 변조되어도 후속 암호문에 오류의 영향이 없다. - One-Time Pad 1) 암호화를 수행할 때마다 랜덤하게 선택된 키 스트림을 사용 2) 이론적으로 해독이 불가능하다는 것이 Shannon에 의해 증명됨. - 귀환 시프트 레지스터 (Feedback Shift Register, FSR) - 선형 귀환 시프트 레지스터 (Linear Feedback Shift Register, LFSR) : 많은 스트림 암호가 이를 이용하며, 선형성 때문에 공격 에 취약 - 비선형 귀환 시프트 레지스터 (Non-Linear Feedback Shift Register, NLFSR) •비동기식(자기 동기식) 스트림 암호 - 키 스트림은 평문 or 암호문 스트림에 종속적이다. - 암호문이 전송도중 변경되어도 자기 동기화가 가능 - 변조된 암호문이 후속 암호문 복호화에 사용되지 않아 후속 암호문에 오류의 영향이 없다. [DES(Data Encryption Standard)] •평문 = 64bits / 키 = 56bit (오류검출비트 8bit 제외) / 라운드 횟수 = 16회 •두 개의 P-box와 16개의 Feistel 라운드 함수로 구성 •키 생성기에 의해 48bit의 라운드 키가 생성 •DES 구조 •DES 함수 : 확장 P-box → 라운드 키와 XOR 연산 → 8개의 S-box → 단순 P-box로 구성되어 있다. - S-Box는 비선형 함수이며, 혼돈을 제공 •DES의 취약점 : 56bits의 작은 키 [3DES(3중 DES)] •H/W에서 효율적이지만 S/W에서 비효율적 •처리 속도가 느리다. •두 개의 키를 갖는 3DES - 암호화 - 복호화 - 암호화 과정을 거쳐서 암호문이 만들어진다. •세 개의 키를 갖는 3DES - 두 개의 키를 갖는 3DES에 대한 기지평문공격(KPA) 가능성 때문에 사용 •3DES에서 모든 키를 동일하게 하면, 보통의 DES가 된다. [AES(Advanced Encryption Standard)] •NIST(미국 국립기술표준원)에서 공모한 암호 알고리즘으로, 라인달(Rijndael)이 채택되었다. •non-Feistel 알고리즘, SPN 구조. •키의 길이에 따라 라운드가 바뀐다. Key Size 128bits 192bits 256bits Round 10 12 14 •AES 단계 0) 평문을 byte 단위로 나눔 1) SubBytes (바이트 치환) : 바이트 단위로 치환 2) ShiftRows (행의 이동) : 행 단위로 순환 시프트 수행 3) MixColums (열의 혼합) : 열 단위로 혼합(Mixing). 높은 확산을 제공. 마지막 라운드에서 수행 X 4) AddRoundKey : 라운드 키와 XOR 연산 ### [기타 대칭키 암호 알고리즘] •IDEA (International Data Encryption Algorithm) - DES를 대체하기 위한 알고리즘 - K = 128bits, M = 64bits, 블록암호 구조 - 8라운드. 마지막에 한 번 더 키를 적용시킴. - DES보다 안전하며, PGP(Pretty Good Privacy)의 암호 알고리즘으로 사용되고 있다. •RC5 - 미국에서 개발, RSA의 Rivest가 개발. (Feistel 구조) - 비교적 간단한 연산으로 빠른 암호화와 복호화 기능을 제공. - 모든 H/W에 적합 •Skipjack - 음성을 암호화하는데 주로 사용 •SEED - 한국에서 개발된 암호 알고리즘 (Feistel 구조) - K = 128bits, M = 128bits, Round = 16 - 2009년에 키가 256bits로 확장되어 더 강력한 암호화 기능 제공 (SEED-256) •ARIA - NSRI(국가보안기술연구소, 한국) 주도로 개발된 알고리즘 (SPN 구조) - K = 128/192/256bits, M = 128bits •HIGHT - 저전력, 경량화를 요구하는 컴퓨팅 환경에서 기밀성을 제공하기 위해 개발된 알고리즘 - M = 64bits •LEA - 128bits 경량 고속 블록 암호 알고리즘 - 다양한 정보보호 서비스에서 대용량 데이터를 빠르게 처리하거나 스마트폰 보안, 사물 인터넷(IoT) 등 저전력 암호화에 사용 가능 •Feistel 구조와 SPN 구조 알고리즘 분류 (1) Feistel 구조 - DES, RC5, SEED, LOKI, CAST, Blowfish, MISTY, Twofish, Mars 등 (2) SPN 구조 - Rijndael(AES), ARIA, CRYPTON. SAFER, SHARK, Square 등 ## [블록 암호 사용 방식] 이름 특징 암호모드 ECB모드 (Electric CodeBook) ∙ 가장 간단하고 빠르며, 병렬 처리 가능 ∙ 평문 M의 크기가 블록 크기의 배수가 아니라면, padding이 필요. ∙ ?? = ?? 이면 ?? = ?? 이다. 블록암호 (권장X) CBC모드 (Cipher Block Chaining) ∙ 복호화 시 병렬처리가 가능하지만 암호화 시에는 병렬처리 불가능 ∙ 첫 번째 평문 블록 암호화시 이전 암호문이 없으므로, 초기 벡터(IV, Initialization Vector)가 사용된다. ∙ 암호화 할 때 하나의 평문 에러 발생 시, 이후의 모든 암호문에 에러가 발생한다. ∙ 복호화 할 때 하나의 암호문 에러 발생 시, 두 개의 평문에 에러가 발생한다. 블록암호 (Practice Crypto- graphy 권장) CFB모드 (Cipher FeedBack) ∙ 어떤 블록 암호도 스트림 암호(비동기식)로 바꿀 수 있다. → padding이 필요 없다. ∙ 복호화 시에도 암호화 함수 사용. ∙ 암호화, 복호화 시 블록 암호의 암호화 함수를 이용 스트림암호 (비동기식) OFB모드 (Output Feedback) ∙ 암호문 C에서 비트 손실이 발생하면 그 다음에 오는 평문은 모두 에러가 발생하기 때문에 동기를 새로 맞추어야 한다. ∙ IV가 바뀌면 암호문이 모두 바뀜 ∙ 잡음이 있는 채널상의 스트림암호에 많이 사용한다. ∙ 복호화 시에도 암호화 함수 사용. 스트림암호 (동기식) CTR모드 (CounTeR) ∙ ECB모드처럼 독립적으로 암호화/복호화를 수행한다. ∙ 복호화 시에도 암호화 함수 사용. ∙ ATM 보안, IPsec 보안에 사용 스트림암호 (Practice Crypto- graphy 권장) ## 04. 비대칭키 암호 (출제빈도 3.6%) [대칭키 암호의 키 배송 문제 해결 방법] ### 1. 키 사전 공유 - 키 관리기관(Trusted Authority, TA)이 사전에 사용자들에게 비밀 경로를 통하여 키를 전달 - 많은 키가 필요. (각 사용자별로 n-1개, TA는 ?(?−1) 2 개) ### 2. 온라인 키 분배 - 암호 통신이 필요할 때마다 키 배포 센터(Key Distribution Center, KDC = TA)에서 키를 전달 - KDC에서 통신하는 사용자의 키로 세션키 K를 암호화해서 전달. 각 사용자는 자신의 키로 복호화해서 세션키 K를 얻어 메시지 /암호문을 암호화/복호화한다. - 암호 통신이 끝난 후, 사용한 세션키 K를 삭제 - KDC는 n개의 키, 각 사용자들은 자신의 키 1개만 가진다. ### 3. Diffie-Hellman 키 교환 - 유한체상의 이산대수 문제(Discrete Logarithm Problem, DLP)를 풀기 어렵다는 사실에 기반 - 키 교환(계산) 절차 (송신자:A/수신자:B) 1) A와 B는 매우 큰 소수 p와 q를 선택한다. (p, q : 공개 / x, y : 비밀 / ?1 , ?2 은 노출돼도 상관없음) 2) A는 임의의 큰 수 x를 0  ≤  x  ≤  p − 1 범위 내에서 선택하고, ?1 = ??  mod p 를 계산. 3) B는 임의의 큰 수 y를 0  ≤  y  ≤  p − 1 범위 내에서 선택하고, ?2 = ??  mod p 를 계산. 4) A와 B는 서로에게 ?1 , ?2를 전달한다. 5) A는 K  = (?2)?  mod  p 를 계산해서 K를 얻는다. 6) B는 K  = (?1)?  mod  p 를 계산해서 K를 얻는다. - 공격 기법 1) 이산대수 공격 : ?1 , ?2 를 도청자가 가로채 x, y를 구하게 되면 K를 알아 낼 수 있다. 2) 중간자 공격(Man-In-The-Middle Attack, MITM) : 인증단계가 없어서 이 공격에 취약. → 전자서명과 공개키 인증서를 이용해서 막을 수 있다. → 국-대-국(STS, Station-To-Station) 프로토콜 : DH에 기반. 세션키를 만들기 위해 공개키 인증서를 이용한 전자서명을 사 용하여 MITM 공격을 방지 3) DoS 공격 : DH의 계산이 복잡한 것을 이용하여 공격 대상 서버에 IP 스푸핑 등을 통해 위조한 키 생성 요청을 동시에 다수 요청하여 키 생성 시간으로 인해 서버를 마비시키는 공격 → 키 생성 요청자를 확인하기 위한 쿠키(cookie)를 사용함으로써 방지 ### 4. 공개키 암호 사용으로 해결 [공개키 암호] •대칭키 암호 : 평문을 복잡한 형태로 변환하여 기밀성 유지 •공개키 암호 : 수학적으로 해결하기 곤란한 문제를 기반으로 기밀성 유지 •대칭키 암호 vs 공개키 암호에서 어떤 것이 더 안전하다고 말할 수 없다. •공개키 암호에서는 암호화키와 복호화키가 분리되어 있다. •두 개의 키는 서로 수학적 관계이기 때문에 각각 별개로 만들 수 없다. ## [RSA(Rivest-Shamir-Adleman) 암호시스템] •공개키 암호 알고리즘, 세계적으로 널리 인정되는 표준이다. •인수분해 문제(Prime factorization)에 근거. •암호화뿐만 아니라 전자서명의 용도로 사용된다. •암호화/복호화 - e : 공개 / d : 비밀 - 암호화 : C  = M?   mod   n - 복호화 : M  = C?   mod   n •키 생성 알고리즘 (공개 : e, n / 비밀 : p,  q,  d, Φ(n)) 1. 서로 다른 소수 p와 q를 선택 2. N  =  p  ×  q 계산 3. Φ(N) = (p − 1)(q − 1) 계산 4. Φ(N) 보다 작고, Φ(N)과 서로소인 정수 e를 찾는다. 5. de  ≡  1 (mod   Φ(N)) 을 만족하는 정수 d를 구한다. → 공개키 : (e,  n) / 비밀키 : (d,  n) •p,   q,   e,   d 조건 - p와 q는 거의 같은 크기이고 최소 512bits가 되어야 한다. -> N은 최소 1024bits - p − 1과 q − 1은 큰 소인수를 갖는다. - p − 1과 q − 1의 최대공약수는 작은 수이다. - d와 n은 거의 같은 크기이다. •RSA 알고리즘의 안정성은 p와 q를 구해 내는 것에 달려있다. •최적 비대칭키 암호 패딩 (OAEP, Optimal Asymmetric Encryption Padding) - RSA에서 짧은 메시지는 짧은 메시지 공격에 의해 암호문을 위험에 빠뜨리게 된다. - 의미 없는 padding을 메시지에 붙여 공격 작업을 어렵게 한다. •공격 기법 - 수학적 공격(소인수 분해 공격) : 두 개의 소수 곱을 인수분해 하려는 시도 - 타이밍 공격(시간 공격) : 복호화 알고리즘 실행 시간에 의존 - 선택 암호문 공격(CCA) : 임의의 데이터 송신 시 그것을 암호문으로 간주하고 회신해주는 것을 이용한 공격. OAEP로 방지할 수 있다. [Rabin 암호시스템] •합성수 모듈러에 관하여 제곱근을 찾기 어렵다는 사실로부터 안정성을 얻는다. (인수분해 문제) •암호화 과정은 오직 한 번의 곱셈으로 매우 빨리 수행된다. •Rabin 암호시스템의 복잡도는 큰 수 n을 두 개의 소수의 곱으로 소인수분해하는 수준의 복잡도와 같다. •p와 q의 크기가 충분히 크다면 RSA만큼 안전하다. ## [ElGamal 암호시스템] •이산대수 문제에 근거. •암호화과정에서 암호문의 길이는 평문의 약 2배가 됨. •때문에, 많은 메모리 공간이 필요, 전송 속도도 느려짐. ## [타원 곡선 암호(ECC, Elliptic Curve Cryptosystem)] •타원 곡선(Elliptic Curve)이라는 이론에 근거 (타원곡선 군에서의 이산대수 문제) •RSA보다 키의 길이를 줄이면서도 동일한 성능을 제공하여 전자상거래의 핵심 기술로 주목받고 있음 •H/W와 S/W로 구현하기가 용이 •메모리와 처리능력이 제한된 응용분야(스마트카드, 무선통신 단말기 등)에 효율적 ## [하이브리드 암호시스템] •대칭키 암호의 기밀성 + 공개키 암호로 키 배송 문제 해결 •공개키 암호 문제점 2가지 1) 대칭키 암호에 비해 처리속도가 많이 느리다. → 하이브리드 암호시스템 2) MITM 공격에 약하다. → 공개키에 대한 ‘인증’이 필요 ## [인수분해/이산대수 근거 암호시스템 분류] •인수분해 문제 : RSA, Rabin •이산대수 문제 : Diffie-Hellman, ElGamal, ECC, DSS # 05. 해시함수와 응용 (출제빈도 1.6%) ## [일방향 해시함수] •해시함수 : 임의의 길이 m을 갖는 메시지 M을 입력으로 해서 고정된 길이 n을 갖는 해시 값 또는 해시 코드라 불리는 값을 출 력하는 함수 •충돌이 존재. 해시 값 한 개에 여러 메시지를 가질 수 있다. •일방향 해시함수 = 메시지 다이제스트 함수 = 암호학적 해시 함수 •출력되는 해시 값 = 메시지 다이제스트 = 핑거프린트 •특징 - 임의 길이의 메시지로부터 고정 길이의 해시 값을 계산 - 해시 값을 고속으로 계산할 수 있다. - 일방향성을 갖는다. : 해시 값으로부터 메시지를 구할 수 없다. - 메시지가 다르면 해시 값도 다르다. •충돌을 발견하는 것이 어려운 성질을 충돌 내성(collision resistance)이라고 부른다. •랜덤 오라클 모델(Random Oracle Model) - 해시함수에 대한 이상적인 수학적 모델 - 임의의 길이를 갖는 메시지에 오라클은 난수로 생성된 고정된 길이의 메시지 다이제스트를 생성, 제공 - 이미 다이제스트가 존재하는 메시지가 주어지면 오라클은 저장되어 있던 다이제스트 제공 - 새로운 메시지에 대해서는 이미 생성한 다이제스트와는 다른 다이제스트를 생성 •공격 기법 - 무차별 공격 : 약한 충돌 내성을 깨고자 하는 공격 - 일치블록 연쇄공격 : 사전에 해시 값을 다양하게 생성 후 공격하고자 하는 메시지의 해시 값과 같은 것을 찾는 공격 - 중간자 연쇄공격 : 전체 해시 값이 아닌 해시 중간 결과에 대한 충돌 쌍을 찾는다. - 고정점 연쇄공격 : 메시지 블록과 연쇄변수 쌍을 얻어 연쇄변수가 발생하는 특정한 점에 임의의 동등한 블록들을 메시지 중간 에 삽입해도 전체 해시 값이 변하지 않는다. - 차분 연쇄공격 : 압축함수의 입출력 차이를 조사하여 0의 충돌쌍을 찾아내는 공격 ## [해시함수의 보안 요구사항] •역상 저항성 (= 약 일방향성) - y  =  h(M)을 만족하는 입력 값 M을 찾는 것이 매우 힘들어야 된다. - 안전성, 역함수 계산 방지 •두 번째 역상 저항성 (= 약한 충돌 내성 = 강 일방향성) - y  =  h(M) =  h(M′), M  ≠ M′ 을 만족하는 다른 입력 값 M′을 찾는 것이 매우 힘들어야 한다. - 안전성, 역함수 계산 방지 •충돌 저항성 (= 강한 충돌 내성 = 충돌 회피성) - y  =  h(M) =  h(M′)을 만족하는 임의의 두 입력 값 M, M′을 찾는 것이 매우 힘들어야 한다. - 안전성, 내부부정 방지 - 충돌 저항성은 두 번째 역상 저항성을 보장 ## [키가 없는 해시함수] •메시지 다이제스트(Message Digest) - MD2 → MD4 → MD5 - MD5는 메시지를 512bits로 된 블록으로 나누고 128bits 다이제스트를 출력한다. 라운드 수는 64(14 * 4R) - 128bits 메시지 다이제스트는 충돌 공격에 내성을 갖기에는 길이가 너무 짧다고 알려진다. - 내부 구조에 대한 약점이 발견되고, 생일 공격에 노출되었다. •SHA(Secure Hash Algorithm) - MD4 해시함수에 기초해서 만들어짐. MD5보다 느리지만 조금 더 안전. - SHA-160 (SHA-1) : 메시지를 512bits 블록으로 나누고 160bits의 다이제스트를 출력한다. 라운드 수는 80(20 * 4R) - SHA-512 (SHA-2) : 메시지를 1024bits 블록으로 나누고 512bits의 다이제스트를 출력한다. 메시지의 길이는 2128bits를 넘지 않는다. •RIPEMD-160 : 메시지를 512bits 블록으로 나누고 160bits의 다이제스트를 출력한다. •Tiger : 64bits 시스템에서 해시 함수를 수행하기 위해 설계. MD5, SHA-1보다 속도가 빠르다. •HAVAL : 메시지를 1024bits 블록으로 나누고 128/160/192/224/256bits의 다이제스트를 출력한다. •HAS160 : 메시지를 512bits 블록으로 나누고 160bits의 다이제스트를 출력. 한국형 전자서명 표준에 사용할 목적으로 개발됨. •변경 감지 코드(MDC, Modification Detection Code) - 메시지의 무결성을 보장하는 메시지 다이제스트 - 수신자는 메시지로부터 새로운 MDC를 생성하고, 송신자에게 받은 MDC와 비교하여 해당 메시지가 변경되지 않았다는 것을 보 장해준다. [키를 사용하는 해시함수, MAC] •무결성을 확인하고, 메시지에 대한 인증을 하는 기술 •대칭키 암호 사용. (MAC 알고리즘으로 블록 암호나 해시 함수에 기반을 둠) •대칭키 암호를 사용함으로써, 키 배송 문제가 생긴다. •축소 MAC : 해시 과정이 두 단계로 이루어져 있음. (키도 두 번 사용) •HMAC : 앞의 H는 해시함수를 의미하며, SHA-1과 같은 일방향 해시함수를 이용하여 MAC를 구성 •CBC-MAC : 블록 암호 모드인 CBC모드와 유사한 방법 •CMAC : CBC-MAC와 같은 종류의 데이터 인증과 무결성을 제공하지만, 조금 더 안전 •CCM(Counter with CBC-MAC) : CTR 모드와 CBC-MAC을 통합. AES 암호 알고리즘, CTR 모드, CBC-MAC 인증 알고리즘으로 구성 •GCM mode : CTR 모드에 인증 기능을 추가한 모드 •재전송 공격 - MAC 값을 도청해서 저장해둔 뒤 저장해둔 MAC 값을 반복해서 송신하는 공격 - 보안 대책으로 순서 번호, 타임스탬프, 비표(nonce), 시도/응답이 있다. •MAC가 해결하지 못하는 문제 - 제 3자에 대한 증명 : 두 사람 사이에서는 상대방이 MAC를 계산하였다고 말할 수 있지만, 제 3자에게 MAC 값을 누가 계산 했는지 증명할 방법이 없다. → 전자서명으로 증명 가능 - 부인 방지 → 역시 전자서명으로 부인 방지가 가능해진다.

관련자료

  • 첨부
댓글 0
등록된 댓글이 없습니다.
전체 33 / 1 페이지
RSS
번호
제목
이름