ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [정보보안기사] Cryptology
    Certificate/정보보안기사 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

     - 가장 이상적인 해시함수 모델

     - 사용자가 원하는 대로 오라클의 크기를 변경해서 사용

    반응형

    댓글

Designed by Tistory.