ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Block cipher modes
    보안/컴퓨터보안 2019. 10. 6. 19:10

    Block cipher에 대해 공부해서 각 블락들을 암호화하는 방법은 공부했다.

    이제 이 블락들을 전체적으로 어떻게 암호화해서 전송하는지에 대해 알아본다.

    블락을 전송하면 상대방이 받아서 복호화 해야하는데 그 과정에서 공격자가 블락의 순서를 바꿀수 있다.

    (Permutation공격, Integrity문제)

     

     

    ECB (Electronic CodeBook)

    - 각각의 블락을 독립적으로 암호화하는 모드

    - 각각의 블락들은 암호화되어 (AES,DES등) 안전하다.

    - 하지만 블락의 순서들은 확인할 수 없기때문에 (보안 취약점) 사용되지 않는다.

     (Cut and Paste 공격)  공격자가 C0 C1 C2 C3의 순서를 -> C0, C3, C2, C1으로 바꾸고 decryption한 결과.

     

    - C = E(P,K)

    - Ci = Cj 라고 가정할때, Pi = Pj다. 공격자에게는 정보가 된다. 

    이미지를 암호화해도 원본처럼 뚜렷하진 않지만 형태를 알 수 있다.

     

     

    CBC (Cipher Block Chaining)

    - 각각의 블락을 체인으로 만든다.

    - 가장 많이 쓰임

    - 최초에 메세지를 IV와 xor한 뒤 암호화를 한다. 그리고 다음 블락부터는 이전 아웃풋과 메세지를 xor 한다.

    - 복호화할때는 cipher text 블락을 복호화후 iv와 xor, 다음블락은 이전블락과 xor 한다.

    - 같은 plaintext에서 다른 ciphertext가 나온다. (good)

    - 체인형태이기 때문에 중간에 손실이 일어나면 안된다. (비디오, 스트리밍등에 부적합)

     

     

     

    CTR (Counter Mode)

    - 이전 블락이 아닌 sequence number에 의존하기 때문에 중간에 손실이 되어도 괜찮다.

    (스트리밍에 적합, stream cipher처럼 사용)

    - decryption 할때 nonce(랜덤)+count가 encryption 할때 사용한 것과 같아야 한다. 

    그래서 그 값을 전달받아야함. 공개되어 있음

    - nonce+counter을 암호화 하고 plaintext와 xor한다.

     

     

     

     

    CFB (Cipher Feedback) mode

     

    - CTR에서 counter 대신 이전 블락의 cipher text를 쓴것과 같다. (최초에는 IV)

    - decryption: otp처럼 생각하면 된다. pt를 암호화 하지 않고 xor만 했기 때문.
    이전 cipher text를 encryption해서 키스트림 만들고 cipher text와 xor

     

     

     

     

     

    OFB (Output Feedback) Mode

    - CFB와 같은데 이전 블락을 가져올때 cipher text를 하기전인 block cipher encryption 직후 상태와 xor 한다.

    댓글

Designed by Tistory.