Chapter 7. Block Cipher Operation

박병준·2022년 4월 11일
0

컴퓨터 보안

목록 보기
7/14

Multiple encryption and triple DES

Double DES

Encryption을 2번 하자!

Meet-in-the Middle Attack

p -> E(K1) -> x에 하나의 key(K1)에 대한 가능한 값들(56 bits)을 대입해서 x들을 추출해 낸다.
반대로도 c -> D(K2) -> x에 (K2)에 대한 가능한 값들을 대입해서 x'를 추출해 낸다.
그 후, 각각 정렬한다(x끼리, x'끼리)
같은 x를 찾았다면, 그 x를 출력하게 한 key값이 각각 K1, K2가 된다.

Triple-DES with Two-key

DES를 3번 돌린다.

Backward compatible(하위 호환성) 때문에 Encryption 중간에 Decryption이 끼어있다.

Triple DES는 single DES에 비해 안전성은 높지만, 연산량이 많아 속도가 느리다.


Modes of Operation

  • 암호 알고리즘의 효과를 향상시키거나 애플리케이션에 적용하기 위한 기법이다.
  • 모든 Block Cipher에 똑같이 적용할 수 있다. (Triple DES, AES 등)

1. ECB(Electronic CodeBook) Mode

  • 작동 방식
    각각의 plaintext block을 따로 encryption한 후, 결과물들을 합친다.

  • 단점

    • 같은 key를 사용해서 encryption을 하기 때문에, 같은 문자는 항상 같은 문자로 변환되게 된다.
      이로 인해 통계적으로 분석할 수 있게 된다. -> 안전하지 않음

    • Pre-processing 불가
      Pre-processing은 어려운 작업을 미리 해놓는 것을 말한다.
      ECB에서 어려운 작업은 Encryption 연산 부분인데, 이 부분은 plaintext가 들어오기 전에 작업을 할 수 없으므로 pre-processing은 불가능하다.

  • 장점:
    각 block간 연산이 독립적으로 일어나기 때문에, 병렬로 작업할 수 있다.

2. CBC(Cipher Block Chaining) Mode

  • 작동 방식:
    첫 번째 plaintext block(P1)을 encryption하고, 그 결과물을 다음 plaintext block(P2)와 XOR한 것을 입력으로 넣는다.
    첫 번째 encryption을 진행할 때는, IV(Initial Vector)로 따로 입력을 넣어준다.

  • 이 방식의 경우 Error Propagation이 발생한다.
    에러가 전파된다는 뜻이다. 위 단계 중, 어떠한 오류로 plaintext(Pi)의 bits의 일부가 바뀐다면 그 결과(Ci)는 큰 차이가 나게 되고, 그 결과가 다음 단계의 입력으로 들어가면서 에러가 확산된다.
    이러한 특성은 단점일 수도 있지만, 장점으로써도 작동한다.

  • 장점
    Integrity(무결성)과 Authentication(인증)을 제공할 수 있다.
    이렇게 메시지의 무결성과 인증을 제공하는 것을 MAC(Message Auth. Conf.)라고 한다.

  • 단점
    직전 block의 연산이 끝나야 다음 block의 연산을 수행할 수 있다.
    특히, encryption하는 연산은 복잡하기 때문에 오래 걸릴 수 있는데, 그동안 다른 block들은 기다리기만 해야 한다.
    Pre-processing과 병렬 처리 불가능

MAC

  • 목표: Integrity(무결성)과 Authentication(인증)을 제공하는 것

  • 작동 방식

    • 수신자가 {P1, P2, ..., Pn, Cn}을 수신한다.
    • 입력받은 plaintext blocks(P1 ~ Pn)로 똑같이 Encryption을 수행해 본다.
    • 수신자도 송신자와 같은 key를 가짐
    • 이때, 수신받은 Cn과, 직접 encryption을 수행해본 결과가 동일하다면 무결성을 보장할 수 있다.
      송신자가 보낼 때, 일부 데이터에 오류가 생겼거나, 공격을 받아 데이터가 변경되지 않았음을 보장
    • 또한, 결과가 동일하다는 것은, 수신자가 동일한 key를 가지고 있다는 것으로 authentication을 할 수 있다.
  • parity bit와 차이점
    parity bit는 아무나 만들 수 있다. 공격자가 데이터를 변조시키고, 그에 맞게 parity bit도 변조하면 수신자는 데이터의 이상을 파악할 수 없기 때문에 authentication이 불가능하다.

3. CFB(Cipher FeedBack) Mode

  • CBC와 비슷해 보이지만 이건 Stream mode이다.

  • Decryption이 순방향으로 이루어진다.

  • 장점
    Error propagation -> MAC 제공

  • 단점
    CBC와 마찬가지로 직전 아웃풋이 나와야지만 다음 block이 수행될 수 있다.
    Pre-processing과 병렬 처리 불가

4. OFB(Output FeedBack) Mode

  • CBC나 CFB와 달리 해당 block의 연산이 완전히 끝나기 전(encrpytion 함수만 지난 후), 그때까지의 결과를 다음 block의 입력으로 미리 넣어준다.

  • 어떤 plaintext가 변조되어도 다른 block에 영향을 주지 않는다 -> No error propagation
    즉, MAC으로 사용할 수 없다.

  • 장점
    Preprocessing이 가능하다.
    Encryption 연산이 어려운 연산 부분인데, plaintext가 들어오는 것과 상관없이 미리 다 처리해 놓을 수 있다.

  • 단점:
    병렬로 작업 불가

5. CTR(Counter) Mode

  • ECB와 비슷하게 보이지만, 여기에는 counter라는 특성이 있다.

  • 장점

    • 같은 문자여도 상황에 따라 다른 문자로 변환된다. -> counter 역할
    • 병렬로 작업이 가능하다
      어떠한 결과가 인풋으로 들어오는 것이 아니라 독립적으로 작동하기 때문
      랜덤 하게 접근 가능하다. 3번째 block부터 작업할 수 있음.
      Pre-processing도 가능하다.

비교

Block vs StreamSame OutputError PropagationPre-processingParallel Process
ECBBlockOXXO
CBCBlockXOXX
CFBStreamXOXX
OFBStreamXXOX
CTRStreamXXOO

CBC, CFB 둘 다 MAC으로 쓸 수 있지만, 주로 CBC를 사용한다.
CBC는 MAC으로써 Integrity와 Authentication을 제공할 때 사용한다.
CTR은 긴 길이의 암호문을 만들 때, confidentiality(기밀성)을 제공한다.
CTR with CBC-MAC(CCM): 기밀성, 무결성, 인증을 모두 다 제공한다.


출처
https://hororolol.tistory.com/451?category=897521
[Cryptography and Network Security: Principles and Practices]

profile
뿌셔뿌셔

0개의 댓글