-
[정보보안기사] CryptologyCertificate/정보보안기사 2022. 10. 24. 23:12반응형
1. Encryption
- Cryptography : 암호화와 복호화의 원리, 절차 및 방법론에 관한 학문
- Cryptanalysis : 암호문으로부터 복호화 키를 찾아내거나 암호문을 평문으로 복원하려는 학문
- Plaintext : 일반적으로 이해할 수 있는 정보
- Ciphertext : 평문을 이해할 수 없는 형태로 변형한 문장
- Encryption : 암호 알고리즘에 의해 평문을 암호문으로 바꾸는 과정
- Decryption : 암호화된 문장을 평문으로 바꾸는 과정
1-1. Substitution Cipher
- 치환 암호 : 단순한 규칙의 문자 대입 방법으로 암호화, 전사 공격에 취약
- 단일 치환 암호 : 치환표를 암호화키로 사용해 평문을 암호화, 빈도수 공격에 취약
- 다중 치환 암호 : 단일 치환 암호를 보완하여 암호문에 나타나는 문자의 빈도를 거의 균등하게 암호화
1-2. Transposition Cipher(Permutation Cipher)
- 무작위로 보이는 원칙에 따라 문자의 순서를 바꾸는 암호화
- 확산의 성질로 암호문을 퍼트려 숨김
1-3. Claude Shannon의 Information Theory
- 혼돈 : 암호문과 평문과의 상관관계를 숨김, 대치(Substitution)를 통해 구현
- 확산 : 평문의 통계적 성질을 암호문 전반에 퍼트려 숨김, 전치(Transposition)로 구현
2. Stream Cipher
- Bit 혹은 Byte 단위로 암호화를 수행
- 하드웨어로 구현이 용이하고, 고속으로 암호화가 가능하며 경량적이어서 무선 환경, 고속 시스템에서 사용
2-1. 동기식 스트림 암호
- One Time Pad
- 랜덤한 키 스트림을 생성해서 송신자와 수신자가 랜덤 키를 교환
2-2. 비동기식 스트림 암호
- 키 스트림을 생성할 때 이전의 평문 및 암호문에 종속적으로 생성
3. Block Cipher
- 고정된 길이의 입력 블록을 고정된 길이의 출력 블록으로 변환하여 암호화
- Feistel 구조 : 암호화와 복호화 과정이 동일한 구조, 역변환이 가능한 구조
- SPN 구조 : 혼돈과 확산 이론에 기반을 둔 구조, 암호화와 복호화 과정이 다른 구조
3-1. ECB Mode
- 평문을 일정한 블록 단위로 나누어 순차적으로 암호화하는 단순한 구조
- 알고리즘에 따라 블록의 단위가 다름
- 각각의 블록은 독립적이므로 특정 블록의 에러가 다른 블록에 영향을 끼치지 않음
- 평문을 각 단위로 나눌 때, 남는 Bit는 Padding을 추가하여 크기를 맞춤
- 한 개의 블록이 해독되면 나머지 블록 또한 해독이 됨
3-2. CBC Mode
- 평문을 일정한 블록 단위로 나눔
- 최초 키의 생성 버퍼로 IV가 사용되어 첫 번째 블록과 XOR 연산을 통해 암호화
- 보안이 가장 강력한 블록 암호화 모드
- 필요 시 Padding을 추가해 크기를 맞추어야 함
- 암호화 시 병렬처리가 불가능하여 순차적으로 암호화해야 함, 복호화 시에는 병렬처리가 가능
- 한 개의 블록에서 에러 발생 시, 현재 복호화 되는 평문 블록과 다음 복호화 되는 평문 블록에 영향을 끼침
3-3. CFB Mode
- 평문과 암호문의 길이 동일
- Padding을 추가하지 않고, 블록 단위 암호화를 스트림 암호화 방식으로 구성하여 Bit 단위로 암호화를 수행
- 최초 키의 생성 버퍼로 IV 사용
- 암호화는 순차적으로 처리하며, 복호화는 병렬처리가 가능
- 한 개의 블록에서 에러 발생 시, 현재 복호화 되는 평문 블록과 다음 복호화 되는 평문 블록에 영향을 끼침
3-4. OFB Mode
- 평문과 암호문의 길이 동일
- Padding을 추가하지 않고, 블록 단위 암호화를 스트림 암호화 방식으로 구성하여 Bit 단위로 암호화를 수행
- 최초 키의 생성 버퍼로 IV 사용
- 암호화 함수는 키의 생성 시에만 사용됨
- 한 개의 블록에서 에러 발생 시, 현재 복호화되는 평문 블록에만 영향을 끼침
3-5. CTR Mode
- 평문 블록과 키 스트림을 XOR 연산하여 암호문 생성
- 키 스트림 암호화 시마다 1씩 증가하는 카운터를 암호화한 Bit열
- 암호화와 복호화의 방법이 동일
- 임의의 순서로 암호화가 가능하기 때문에, 암호화 시 병렬 처리가 가능
- 한 개의 블록에서 에러 발생 시, 현재 복호화되는 평문 블록에만 영향을 끼침
4. Cipher Algorithm
4-1. DES(Data Encryption Standard)
- IBM에서 개발한 대칭키 암호화 알고리즘
- 64Bit 블록 단위 암호화를 수행하며, 56Bit 키를 사용
- 64Bit 평문과 키를 입력받아 64Bit 암호문을 생성(7Bit 마다 Check Bit를 넣어 (7+1)*8 = 64Bit)
- Substitution Cipher와 Transposition Cipher를 혼합한 Product Cipher를 사용
- 키 길이가 짧아 해독이 용이
4-2. IDEA(International Data Encryption Algorithm)
- 스위스에서 개발한 대칭키 암호화 알고리즘
- 128Bit의 키를 사용해서 64Bit의 평문을 8라운드에 걸쳐 64Bit의 암호문으로 생성
- 16Bit 단위로 연산이 이루어짐
- 전자우편 보안을 위한 PGP 방식에 사용
- 블록 암호화 알고리즘을 사용
4-3. RC5
- DES보다 약 10배 정도 빠름
- 32Bit, 64Bit, 128Bit의 키를 가짐
4-4. AES(Advanced Encryption Standard)
- 미 연방표준 알고리즘
- 128Bit, 192Bit, 256Bit의 3종류의 블록 길이로 구성
- 이론적으로 키의 크기에 제한이 없음
4-5. SEED
- KISA와 ETRI에서 개발한 암호화 알고리즘
- 128Bit 고정 키 사용
- 128Bit 길이의 블록 단위 암호화를 16라운드에 걸쳐 암호문 생성
- Feistel 암호화 방식
- 128Bit 평문을 64Bit씩 Lo, Ro 블록으로 나눔
4-6. HIGHT
- RFID, USN 등과 같이 저전력, 경량화를 요구하는 컴퓨팅 환경에서 사용하는 암호화 알고리즘
- KISA 및 ETRI, 고려 대학교에서 공동으로 개발
- 64Bit 크기의 블록 암호화
4-7. ARIA
- 경량 환경 및 하드웨어 구현을 위해 최적화된 SPN 구조를 가지는 블록 암호화 알고리즘
- 128Bit의 블록과 128/192/256Bit의 키 길이를 가짐
4-8. LEA
- 빅데이터, 클라우드 등 고속 환경 및 모바일 기기 등 경량환경에서 사용하는 암호화 알고리즘
- 128Bit 크기의 블록 암호화
5. 암호 분석
5-1. COA(암호문 단독 공격)
- 암호문만을 가지고 수행하는 공격
- 통계적 성질과 문장의 특성 등을 추정하여 해독
5-2. KPA(알려진 평문 공격)
- 암호문에 대응하는 일부 평문을 가용할 수 있는 상황에서 수행하는 공격
5-3. CPA(선택 평문 공격)
- 평문을 선택하면 그에 대응되는 암호문을 얻을 수 있는 상황에서 수행하는 공격
- 공격자가 사용된 암호기에 접근할 수 있을 때 수행하는 공격
5-4. CCA(선택 암호문 공격)
- 암호문을 선택하면 그에 대응되는 평문을 얻을 수 있는 상황에서 수행하는 공격
6. 공개키 암호화
6-1. Diffie-Hellman Algorithm
- 최초의 공개키 암호화 알고리즘
- 1개의 정수와 1개의 소수로 통신 직전에 상대방과 공개키 공유
- 비밀키 전용의 숫자는 양쪽에서 각각 보유하며, 비밀키와 공개키를 함께 사용해 공통의 암호키용 수치 산출
- MITM(중간자 공격)에 취약
* MITM : Man In The Middle, 네트워크 상에서 송수신하는 내용을 도청하거나 데이터를 변조하는 공격
6-2. RSA(Rivest, Shamir, Adelman)
- 산업표준으로 사용되는 대표적인 공개키 암호화 방식
- 소인수분해의 어려움을 기반으로 함
- 암호화 및 디지털 서명 용도로 사용 가능
7. Hash Algorithm
- 키가 없고 복호화가 불가능한 일방향 암호 기술
- 무결성을 제공하는 알고리즘
- 다양한 길이의 입력을 고정된 길이의 출력으로 변환
- y=h(x) : x는 가변 길이의 메시지, y는 해시 함수를 통해 생성, h는 해시 값을 생성
7-1. 해시 함수의 조건
- 압축 : 임의 길이의 평문을 고정된 길이의 출력 값으로 변환
- 일방향 : 해시 값에서 원래의 메시지를 구하는 것은 매우 어려움(선이미지 회피성)
- 효율성 : 메시지로부터 h를 구하는 데 많은 자원과 노력이 요구되지 않음
- 충돌회피 : h(M1) = h(M2)인 서로 다른 M1과 M2를 구하기는 계산상 불가능
- 2차 선이미지 회피성 : H(y) = H(x)인 y! = x인 것을 찾는 것이 계산상 불가능(약한 충돌 회피성)
7-2. MD5
- 임의의 길이를 입력받아 128Bit의 해시 값을 출력
- 메시지를 512Bit의 블록으로 나누고 128Bit를 출력
7-3. SHA
- 미국 표준으로 제정
- 인터넷 뱅킹, 전자 서명, MAC, 키 교환 알고리즘 등에 사용
- MD4 해시 알고리즘 기반
- 국내에서는 암호화 시 SHA-256 권고
7-4. LSH
- 국내 TTA 표준으로 제정
- 메시지 인증, 사용자 인증, 전자 서명 등에 사용
- 224Bit, 256Bit, 384Bit, 512Bit를 지원
7-5. Random Oracle Model
- 가장 이상적인 해시함수 모델
- 사용자가 원하는 대로 오라클의 크기를 변경해서 사용
반응형'Certificate > 정보보안기사' 카테고리의 다른 글
[정보보안기사] 정보보호 관련 법규 (0) 2022.10.27 [정보보안기사] 정보보안 관리 (0) 2022.10.26 [정보보안기사] 정보보안 일반 (0) 2022.10.24 [정보보안기사] 기타 애플리케이션 보안 (1) 2022.10.23 [정보보안기사] 전자상거래 보안 (0) 2022.10.23