본문 바로가기
Lab & Research/Information Security

대칭 암호화 & 메세지 기밀성

by jaeaemin 2022. 3. 17.

Chap. 2 Symmetric Encryption and Message Confidentiality

 

Cryptography [암호화]

Plaintext : 원문

Ciphers[암호] : 메시지 암호화 및  복호화에 사용되는 수학적인 함수 

Encryption[암호화] : 메세지를 감추기 위해서 위장하는 과정 

Ciphertext[암호문] : 암호회된 텍스트 

Decryption[복호화] : 암호화된 메세지를 일반화된 메세지로 반환하는 과정 

 

 

[1] Ciphers [암호] 

  • 제한된 알고리즘에 의존하는 암호의 보안성은 좋지않다. 
  • 사용자는 그룹을 떠날 때마다 알고리즘 변경이 필요하고, 보안은 언제든 깨질 수 있다.
  • 현대의 암호화는 큰 세트(키 공간)에서 선택된 키 값에 의헤 의존된다.
    • ex) 1024-bit Key => 2^1024의 값들이 존재함.
    • 대부분의 보안은 알고리즘의 세부사항이 아닌, 키의 비밀성에 근거한다.

 

 

[2] CryptoSystem [암호 시스템]

  • 기존 암호 시스템 : 비밀 키 암호 시스템 , 대칭 암호 시스템

 

  • public-key 암호 시스템 : 비-대칭 암호 시스템

 

메시지 M의 경우 키 k를 사용하여 해당 메시지를 암호 텍스트로 암호화한다고 가정하면 암&복호화는 다음과 같다.

C = Ek(M) 메시지 M의 경우, 키 k를 사용하여 해당 메시지를 암호화(encryption)한다.
M = Dk(C) 위와 마찬가지로, 키 k를 사용하여 암호화된 메세지를 복호화(decryption)한다.
Dk(Ek(M)) = M [ 대칭 키 알고리즘 ]
Dk2(Ek1(M)) = M [ 공개키 키 알고리즘 ]

 

 

Example Ciphers (암호 예시) 

    1. 시프트 암호 (shift cipher)

    2. 대체 암호 (substitution Cipher)

 

Cryptanalysis [암호 분석]

    키에 엑세스하지 않고 메세지를 복호화 된 메세지로 복구하는 과학 

 

Cryptanalyst  [암호 분석가]

  - 암호화(해독 알고리즘)을 인지하고, 키를 제외한 많은 정보가 존재

  - 많은 컴퓨터와 지능을 토대로 암호를 분석함 

 

 

공격 종류 

[1] 암호 전용 공격
▪ 공격자는 암호문에서을 통해서 평문을 복구함
▪ 무차별 공격: 가능한 모든 키 시도 ( 키가 충분히 길다면 거의 사용이 불가함 )

[2] 노출된 플레인텍스트(평문) 공격

▪ 알려진 키-쌍으로 시크릿 키를 분석해 패턴을 찾는 공격 기법 

[3] 선택적 평문 텍스트 공격 

공격자는 소스를 얻고 자신이 선택한 일반 텍스트의 일부(평문, 암호문) 쌍을 아는 경우

 

[4] 선택 텍스트 공격 
▪ 공격자는 자신이 선택한 평문에 대한 일부(텍스트, 암호문) 쌍을 알고 있는 경우. 아는 쌍이 많아질 수록 어택커에게 유리함

     공격자는 키 공간을 철저하게 검색하기 위해 brute force(무차별 대입 공격)을 사용한다 

 

 

Unconditionally secure cryptosystem 

  • 시스템에 의해 생성된 암호문이 충분한 양의 정보를 도출할만큼 많이 있더라도, 암호문이 안전한 경우 ( Key 갯수의 증가 ) 
  • 보안암호 시스템의 측정 좌표는 크게 시간과 비용으로 나눌 수 있음 

 

 

Cryptanalysis [ 암호문 해독 ]

Monoalphabetic substitutions : 하나의 문자가 여러개 나와도 같은 암호문으로 암호화 된다.

Polyalphabetic substitutions : 하나의 문자가 case마다 다르게 암호화 된다.

  • Vigenere cipher : 각 문자는 비제네르 암호를 키로 이용해 다른 암호키로 암호화 된다. 
  • Kasiski method : 길이가 t인 암호키는 주기 t를 반복하면서 주기 마다 각각의 shift 암호를 독립적으로 사용함
    • 암호키의 동일하게 반복되는 패턴을 찾으면 키의 길이를 유추할 수 있음
    • 따라서 키 길이가 암호문의 보안적인 측면과 관계가 있음 

 

Permutation/Transposistion

Permutation (순열,전위) : 입력을 만들고 출력을 특정 방식으로 재 배열하는 것을 의미함 

 - 문자를 재 배치하는 것일 뿐 문자의 주파수를 보존하기 떼문에 상대적으로 약한 보안 기술이다. 

 - N번의 pernutation을 하는것도 가능하다.

 - (Product cipher : 2개의 암호 알고리즘을 적용하고 현대의 암호는 순열과 치환을 결합한다 ) 

 

대칭 암호 알고리즘 (Symmetric Cipher Algorithms)

Block cipher  - 일반 텍스트는 n비트 데이터 블록으로 처리한다.
- 암호문의 길이가 일반 텍스트와 동일하다
Stream cipher - 한 번에 1bit/byte 단위로 암호화한다.
- 대게 수학적으로 더 쉬운 순열과 치환을 사용한다 

 

 

 

DES (Digital Encryption Standard)

 

  • 1976에 채택된 기술로 현재는 잘 사용하지 않음
  • 대칭키 블록 암호화 알고리즘으로 복호화는 암호화의 역순이다. (알고리즘은 동일함)
  • 64bit로 이루어짐 : Block size = 64bit
  • Key의 사이즈는 56bit키는 16,48비트 하위키로 변환됨 ( 56bit key , 8bit parity bit ) 
  • S-Box와 P-Box가 각 1회전 시 총 16라운드의 페이스텔 구조 
  • 라운드 횟수는 16회이고, 56bit 짜리 원래 키로부터 16개의 서브키를 생성하여 각 라운드에서 사용함 
S-boxes  치환에 사용됨 , 8개의 S박스를 사용하고 단일 (4열 16행)
 각 박스는 64개의 4bit값이 포함되고 6개의 입력 비트가 4개의 출력 비트를 생성한다.

(예 : 110011 )
첫 번째 및 마지막 비트 "11"을 사용하여 행 3을 선택하고 가운데 4비트 "1001"을 선택하여 열 9를 선택합니다. DES의 S-box 6의 값은 5("0101")입니다. "110011"을 "0101"로 바꿉니다.
=> 총 3개의 관문 ( 행 , 열 , 박스 ) 
P-boxes   순열에 사용됨
Avalanche effect  눈사태 효과 : 일반 텍스트의 작은 변경 또는 키 생성이 암호문에게 큰 변화를 야기함 
Key space is too small  키 공간이 너무 작음 56개의 키로 256개의 가능한 키를 제공하면서 brute force 가능
DES cracker by EFF   EFF에 의한 크래커로 1일 이내 공격이 가능하다 
Triple-DES  키를 3개 사용하여 triple로 구성할 수 있음 

 

 

 

AES ( Advanced Encryption Standard )

  • 2001년에 고안된 모델로 효울성, 유연성, 보안성을 목표로 개발되어짐 
  • 특징으로는 메모리 부족 해결 , 유연한 키 블록 크기, 회전 횟수가 가변적임 
  • 기본적 구조는 아래와 같음 
    • block size = 4 * Nb
    • Key size : 4 * Nk
    • Round cnt : 6 + max(Nb,Nk)

 

 

 

Cipher Block Modes of Operation 

[1] ECB(Electronic Code Book) : 일반 텍스트의 각 블록은 독립적으로 암호화 된다. ( 단순 치환 ) , 블록 리플레이 위협 존재 

[2] CBC(Cipher Block Chain) : 암호에 피드백 메커니즘을 추가함  , 블록 리플레이 공격에 대해 저항력을 가짐 

[3] CFB(Cipher FeedBack)

[4] OFB(Output FeedBack)

[5] CTR(Counter Mode) : 각 일반 텍스트를 암호화하는 데 서로 다른 카운터 값이 사용됨.

  • ATM 및 IPSec에 사용되고 , 장점은 효율적이며 암호문 블록을 랜덤 액세스 패턴으로 처리할 수 있다.

 

Random Number Generation 

  • 많은 보안 알고리즘들은 난수를 사용하여 만들어진다 (nonces)
  • RSA, DH 등 공개키 암호화 알고리즘의 키를 생성한다. 
  • 임시 세션 키로 사용하기 위한 대칭 키 , TSL, Wi-FI 등 다양한 네트워크 애플리케이션에 사용된다.
  • 키 배포 시나리오, reply 공격을 방지하기 위한 핸드쉐이킹에 난수로 사용된다 ( Kerberos , SSL ) 
난수 생성 알고리즘의 요구 사항 
무작위성  - 시퀀스의 비트 분포는 균일해야 한다.
 - 1과 0의 발생 빈도는 거의 같아야 한다.
예측 불가능성  - 다른 수열로부터 특정 수열을 예측할 수 없어야 한다.
 - 이전의 요소를 기반으로 현재 시퀀스를 예측할 수 없어야 한다

 

True-random (TRNG)      :  자연계 특성으로 부터 랜덤 넘버을 출력한다
Rseudo-random (PRNG) : 특정 시드값을 기반으로 랜덤 넘버를 추출한다.

  > Seed값을 기반으로 하여 동일한 랜덤넘버는 같은 시드값을 사용함 
  > Seed 노출 시 , 모든 랜덤넘버를 추출하는 것이 가능하다. 

 

 

 

Placement of Encryption Function 

Traffic Analysis 

  • 트래픽 분석 공격 : 메세지 패턴&수량 , 식별자 쌍 , 통신 빈도 등을 가로채고 분석함

 [대응책]

  • Traffic Padding : A-B 소통이 많을 때 다른 쪽으로 garbage msg를 섞어 보냄 
  • Tunneling : 각 엔드포인트를 감춘다.

 

 

Key Distribution 

키의 분배는 KDC(key distribution center) 신뢰기관을 기반으로 이루어진다. 

 

  • 대규모의 네트워크인 경우 계층적 KDC의 사용을 할 수도 있다. 
  • 마스터키를 통해서 연결하고 세션키로 서로 통신한다. 

 

 

투명화된 키 배포 

 - 연결 지향 프로토콜을 사용한 엔드 투 엔드 암호화 

 - HOST와 KDC 사이 암호화 : 마스터 키 사용

 - HOST와 HOST 사이 암호화 : 마스터키로 암호화되어 전달된 세션키를 사용 

 

 

 

 

분산형 키 배포  (KDC가 없는 경우)

  • 전제로는 엔드 투 엔드 간에 마스터 키를 서로 나눠가져야 가능하다.
  • 대규모 네트워크에서는 중앙 집중식 키 배포를 하는 것이 사실상 어려움 
    • 분산형 키 배포를 위해서  [ n(n-1) / 2 ] 개의 마스터 키가 필요하다 .

 

 

대칭키 알고리즘에서 크랙킹을 통해 키로 암호화된 데이터가 충분히 쌓인다면 해독이 될 까능성이 높다
따라서 master Key와 Session Key를 분리하여 이러한 점을 예방할 수 있다 
[ 세션 키 : 통신 사이 메시지 자체를 암호화함 (1회용) ]
[ 마스터 키 : 세션 키를 만드는데 사용이 됨 ] 
반응형

'Lab & Research > Information Security' 카테고리의 다른 글

네트워크 접근 제어 & 클라우드 보안  (0) 2022.04.15
Web : SSL&SSH&SET  (0) 2022.04.13
Information Security  (0) 2022.03.17
소켓 주소 구조체  (0) 2021.11.01
소켓  (0) 2021.10.31