DEV/Frontend

블록 암호화

Beomsu Koh 2023. 1. 8.

블록 암호화

  • k 비트의 블록 단위로 암호화 된다
    • k=64이면, 메세지를 64 비트의 블록들로 쪼개어 각 블록을 독립적으로 암호화
  • k 비트 블록의 평문을 k비트 블록의 암호문으로 대응
    • 일대일 사상
    • 각각의 입력에 대해서 서로 다른 출력을 얻게 된다
  • 하나의 사상은 가능한 모든 입력의 순열이다
    • 3 비트로 표현하니 8개의 입력이 가능하고, 일대일 사상을 하기 때문에 순열로 암호화 된다
  • des, 3des, aes 등이 블록 암호화 방식
    • 미리 정의된 테이블을 사용하지 않고, 각 화살표에 대응되는 함수들을 사용한다
    • 비트열을 키로 사용한다
    • 알고리즘의 키는 알고리즘 내부에서 특정 미니 테이블의 사상과 순열을 결정 한다

테이블 기반 암호화 = 현실성 없는 전략

  • 매우 안전한 대칭키 암호화 방법
  • k가 커지면 입력 블록에 대한 테이블 크기가 너무 커져버린다
    • 7!만 해도 이미, 4만개
  • 키가 바뀌면 테이블도 다시 재생성 되어야 한다.

테이블 기반 암호화 모방 = 현실적인 대안

  • 64비트 블록을 8비트씩 8개의 청크로 나눈다
    • 각 8비트 청크는 8비트의 입력 블록에 대응하는 8비트 출력 블록을 가진 테이블에 의해 처리
  • 처리된 8비트 8개는 뒤섞인 후 n 번 순환한다
    • 여기서 뒤섞이는 방법이 있는 듯

댓글