Crypto(2)

임정환·2023년 6월 7일
0

Block Cipher

block 암호화에 대한 공격 법

  • 알려진 평문 공격
    공격자가 {평문,암호문}을 소유시 알고리즘이나 key를 추측
  • 선택적 평문 공격
    공격자가 암호화 tool을 사용 가능할 때
  • 선택적 암호문 공격
    공격자가 다수의 암호문에서 평문을 얻을 수 있거나 복호화 tool을 사용가능 할 때
  • 연관 key 공격
    key는 모르지만 key'이나 key'' 등 유사한 key를 획득할 수 있을 때

DES 암호화 알고리즘

Data Encryption Standard, 64비트의 평문을 암호화 한다.
암호화 시 특정 계산 함수의 반복을 통해 암호화를 진행한다.

  • Triple-DES
    기존 DES는 56bit의 key를 통해 block암호화를 실행한다. 과거에는 충분한 bit였지만 현재 하드웨어 기반으로는 몇 시간내에 brute-force를 통해 해독 가능하게 되었기에 DES를 3번 적용하여 연산해야하는 bit를 확장하였다.
  • Double-DES
    왜 두번 DES를 진행하지 않을까? C=E(E'(P))의 경우 가능한 모든 P에 대해서 E'(P)를 계산한 table이 존재할 경우 D(C) = E'(P) 이므로 D(C)를 구할경우 평문을 유추할 수 있게 된다.

AES 암호화 알고리즘

DES를 대체하기 위해 만들어진 암호화 알고리즘. 기존의 DES는 동일한 계산 함수의 반복인 Feistel Cipher였으나 해당 구조가 변경되었다.

Block 암호화의 mode

블록 단위로 암호화를 하는 것 까지는 좋다, 그렇다면 여러 block이 존재하는 경우 어떻게 전체를 암호화 해야 할까?

  • ECB 모드 ( Electronic Code Book )
    각 block을 독립적으로 암호화 해준다. 하지만, 같은 block을 암호화하면 같은 암호문이 생성되므로 한번 암호문이 해독되면 동일한 평문 block들도 해독되는 단점이 존재한다.
  • CBC 모드 ( Cipher Block Chaining )
    이전 block의 암호문과 현재 block의 평문을 XOR후 암호화 해 준다.

    만일 P1의 암호화 과정 중 오류가 발생해도, P2 블록까지만 영향을 미치므로 오류 수복에 유리하다는 장점이 있지만 무결성을 보장하기 힘들다.
  • CTR 모드 ( Counter )

    각 block에 순서 값( counter)를 포함시켜서 암호화 시킨다. 이전 block에 대해 독립적이므로 병렬적으로 암호화가 가능하다는 장점이 존재한다.
  • CFB 모드 ( Cipher Feedback Mode )

    CBC모드와 유사하다. CBC는 이전 블록의 암호문과 현재 블록의 평문을 XOR한 후 암호화를 진행한다. CFB는 이전 블록의 암호문을 암호화 시킨후 평문과 XOR하여 암호문을 생성한다.
  • OFM ( Output Feedback Mode )

    이것 또한 CFM과 비슷, 이전 블록을 암호화하고 평문과 XOR하기 이전의 값을 암호화 시키고 평문 블록과 XOR을 진행한다
  • GCM ( 갈루아 카운터 모드 )

    유한 집합 갈루아 필드 내에서 연산을 진행한다. 기본적으로 CTR 모드의 확장판이라고 생각하면 된다. 대용량 연산과 병렬 연산에 유리하다.
profile
CS 박제

0개의 댓글

관련 채용 정보