[TIL]230518 - 컴퓨터시스템보안 11주차: 현대 스트림 암호(1)

Jimin·2023년 5월 24일
0

개요

  • 암호화와 복호화 과정에서 r비트를 생성함

    평문 비트 스트림 P = pn...p2p1
    암호문 비트 스트림 C = cn...c2c1
    키 비트 스트림 K = kn...k2k1

  • 암호화: ci = E(ki, pi)
  • 복호화: pi = D(ki, ci)

특징

  • 블록 암호보다 속도가 빠름
  • 하드웨어 구현이 블록 암호보다 용이함
  • 이진 스트림 단위의 암호화가 필요하고 고정된 속도로 암호화된 데이터를 전송하고자 할 때 스트림 암호가 적합함
  • 전송 도중 비트의 변조에 강인함
  • 현대 스트림 암호에서는 키 스트림 K = kn...k2k1를 어떻게 생성하는지가 주된 관심분야임

현대 스트림 암호의 종류

  • 동기식 스트림 암호 (Synchronous Stream Ciphers)
    • 키 스트림의 각 비트는 이전의 평문이나 암호문과는 독립적임
  • 비동기식 스트림 암호 (Nonsynchronous Stream Ciphers)
    • 키 스트림의 각 비트는 이전의 평문이나 암호문에 종속적으로 결정됨

동기식 스트림 암호

  • 키 스트림은 평문 혹은 암호문과 독립
  • 즉, 키는 평문/암호문과 어떤 관계도 없이 생성되고 사용됨
  • 동기식 스트림 암호의 종류
    • 일회용 패드
    • 귀환 이동 레지스터

일회용 패드(One-time pad)

  • 가장 간단하고 안전한 동기식 스트림 암호
  • 그러나 실제적으로 사용되기에는 매우 어려움
    • 송신자가 수진자에게 키 스트림을 전달할 수 있는 안전한 채널이 존재해야 하므로, 현실적으로 구현이 불가능함

예제) 다음의 경우 각각에 대해 일회용 패드 암호에서 암호문의 패턴은 무엇인가?

  • case A. 평문이 n개의 0으로 구성되는 경우
    • 0 ⊕ ki = ki -> 암호문 스트림은 키 스트림과 같음
    • 만약 키 스트림이 랜덤하다면, 암호문 또한 랜덤함
    • 평문의 패턴은 암호문에서 유지되지 않음
  • case B. 평문이 n개의 1로 구성되는 경우
    • ki'를 ki의 보수라고 할 때, 1 ⊕ ki = ki'이므로 암호문 스트림은 키 스트림의 보수와 같음
    • 만약 키 스트림이 랜덤하다면, 암호문 또한 랜덤함
    • 즉, 평문의 패턴은 암호문에서 유지되지 않음
  • case C. 평문이 0과 1호 교차되어 구성되는 경우
    • 암호문 스트림의 각 비트는 키 스트림에 대응되는 비트와 같거나 보수임
    • 따라서 키 스트림이 랜덤하다면 암호문 또한 랜덤함
  • case D. 평문이 랜덤 스트림 비트인 경우
    • 두 개의 랜덤 비트에 대해 배타적 논리합 연산을 수행했으므로 암호문 또한 완전하게 랜덤함

귀환 쉬프트 레지스터(Feedback shift Register: FSR)

  • One-time pad의 절충안
  • 소프트웨어와 하드웨어 환경에서 모두 구현될 수 있지만, 하드웨어 구현이 더욱 용이함
  • 쉬프트 레지스터와 귀환 함수로 구성됨

0개의 댓글