암호_

경량 블록 암호란?

정지홍 2024. 9. 19. 00:57

경량 블록 암호란?

  • 제한된 자원 환경에서도 효율적이고 안전하게 동작하게 만든 블록 암호. 
  • 주로 IoT , RFID , 센서 네트워크와 같은 저자원 시스템에서 사용.
  • 특징들...
    • 작은 블록 크기와 크기 => 일반적으로 64비트 이하의 블록 크기 및 128비트 이하의 키 크기
      • 표준 블록 암호인 AES보다 작음
    • 낮은 연산 복잡도 => 복잡한 연산 or 메모리를 많이 요구하지 않게 설계
    • 적은 메모리 사용
    • 보안성 => 자원 제약이 있는 환경에서도 일정 수준의 보안성 요구

설계 원리

  • 1. 구조를 단순화해서 hw와 sw에서 효율적으로 구현할 수 있게 한다.
    • 간단한 암호 연산 => 복잡한 연산 줄임. 기본적은 xor , bit shift , 비트순서 변경 같은 단순한 연산 주로 사용
    • 적은 라운드 수 => 라운드 수를 줄여서 연산을 단순화하며 처리 속도를 높임. 단, 라운드 수가 낮아지면 보안성 낮아질수 있음
  • 2. 적은 메모리를 사용하게 한다. 
    • 암호 알고리즘의 상태, 키, 중간 결과 등을 저장하는 메모리 사용량을 최소화 시킴
    • 사용하는 테이블들을 최소화해서 메모리 소모를 줄임
  • 3. 비트 연산과 병렬처리를 적용해서 효율적으로 연산하게 함.

 


설계시 보안적 고려 사항

  • 공격 저항성
    • 차분 분석 , 통계적 분석 , 선택 평문 공격에 대한 저항성을 갖춰야 함.
  • 키 관리
    • 안전한 키 생성 및 분배 및 교환
  • 표준화
    • 국제적인 표준화 과정을 거쳐야 함.

 


KATAN

  • 2009년에 제한 된 암호. 매 라운드마다 키를 동적으로 변경하는 키 스케쥴 사용.
  • 블록 크기 : 32 , 48 , 64 bit
  • 키 길이 : 80 bit ( 제한된 자원 환경에서는 적절하나, 더 높은 수준의 보안 요구시 성능은 낮아질 수 있음)
  • 라운드 수 : 254 라운드
    • 라운드 수가 많아 보이나 각 라운드에서는 매우 간단한 비트 연산 수행됨.
  • 구조: 피어스텔 구조를 사용하지 않고, 작은 상태 레지스터와 간단한 비트 연산으로 설계 함.
  • 적은 하드웨어를 사용한다.
  • 주요 구성 요소
    • 매우 단순한 구조를 가짐. 특히. LFSR기반의 구조와 단순한 비트 연산을 사용함.
      • 1. LFSR기반 피드백 구조 ( Linear Feedback Shift Register , LFSR )
        • 암호화 과정에서 입력 데이터를 순차적으로 시프트하며 간단한 피드백 연산을 수행하여 블록을 암호화.
      • 2. 간단한 비트 연산
        • 두 개의 레지스터에서 입력된 비트에 대한 간단한 AND OR XOR연산이 수행됨
      • 3. 라운드함수. ( 크게 두가지 주요 연산으로 구성)
        • 비트 연산: 입력된 두 레지스터에서 일부 비트에 대해서 and xor or연산을 적용해서 상태 갱신
        • 피드백: 연산 결과는 다시 레지스터에 피드백되어서 다음 라운드의 입력으로 사용됨.
      • 4. 키 스케줄
        • 80비트 키를 기반으로 라운드 마다 다른 부분 키를 생성해서 사용함.
        • 각 라운드에서 키의 일부가 사용되며, 이를 통해서 각 라운드의 결과가 서로 독립적으로 변화함.
    • 소프트웨어적으로는 성능은 다소 낮을 수 있음. 매우 단순한 비트 연산 기반의 구조이기 때문.
    • 작은 게이트 수, 낮은 전력 소모가 장점

 


SIMON

  • 블록 크기 : 64 bit 혹은 128 bit
  • 키 길이 64 or 96 or 128 비트
  • 구조: 피어스텔 구조를 기반으로 함. 단순한 암호화 라운드 사용.
  • hw , sw에서 모두 효율적으로 동작. 저전력 및 저비용 환경에서도 사용 가능
  • 2013년 미국 NSA에서 개발한 경량 블록 암호

 


SPECK

  • 블록 크기 : 64 or 96 비트
  • 키 길이 : 64 or 96 or 128 비트
  • SIMON과 유사한 구조지만, 암호화 라운드 및 연산 방식이 다름.
  • sw에서의 효율성을 고려하며 설계함. 저비용의 처리 성능을 제공
  • 미국 NSA에서 개발한 경량 블록 암호

PRESENT

  • 2007년에 처음 발표된 경량 블록 암호.
  • 단순한 구조와 효율적 구현이 목표임.
    • 게이트 수를 최수화해서 적은 hw자원에서도 동작 가능.
  • 블록 크기 : 64비트
  • 키 크기: 80 or 128 bits
  • 라운드 수 : 31라운드
    • 반복적인 라운드로 암호 강도를 높임. 이로 인해 암호 분석 공격에 저항력을 강화
  • SPN구조를 사용. ( substitution - permutation network )
    • 이는 s-box를 이용한 치환(substitution)과 p-box를 이용한 순열(permutation)을 반복해서 암호화 함.
  • 알고리즘 구조....
    • 1. 초기상태
      • 입력된 64비트 블록은 암호화의 첫 단계에서 키와 결합된 초기 상태로 설정
    • 2. 라운드 함수. (여기에서는 3가지의 주요 단계를 반복 )
      • AddRoundKey: 혼합을 적용시켜 블록 암호 구조를 분석하기 어렵게 만듬.
        • 각 라운드에서 64 비트 상태와 라운드 키가 xor연산으로 결합됨.
      • Substitution Layer: 비선형성을 제공해서 암호 강도를 높힘.
        • 64비트의 상태는 4비트 단위로 나누어짐. 그리고 나누어 진것은 s-box에 의해서 치환됨.
      • Permutation Layer: 각 비트가 서로 상호 의존성을 가지게 해서 복잡성을 추가함.
        • 위에서 4비트의 16개 데이터를 64 비트로 묶는다. 그리고 비트간의 순서를 바꾼다.
    • 3. 키 스케쥴. (각 라운드마다 고유한 라운드 키를 생성)(매우 단순해보이나 매우 효율적이다.)
      • 3-1. 순환이동: 키의 비트가 왼쪽으로 순환
      • 3-2. s-box적용: 최상위 4비트에 s-box를 적용하여 치환
      • 3-3. 라운드 카운터 xor : 라운드 번호를 키의 특정 비트에 xor연산해서 라운드 키를 독립적으로 만듬.
    • 4. 최종 라운드
      • 마지막 31라운드에서는 p-box는 생략되며, 마지막 addroundkey만 적용해서 완료 함.
  • 장점:
    • 적은 게이트 수: 매우 작은 게이트 수는 낮은 전력 소비와 작은 공간을 차지함.
    • 효율적인 키 스케줄: 키 스케줄이 간단하여 빠른 키 생성 가능.
    • 높은 보안성: S-Box와 P-Box를 통한 강력한 비선형성 및 순열 구조로 차분 및 선형 공격에 저항성을 가짐.
  • 단점:
    • 64비트 블록 크기는 큰 데이터를 처리할 때 충돌 위험이 상대적으로 높다.
    • 소프트웨어 환경에서 PRESENT는 다른 경량 암호나 표준 암호( AES )에 비해 성능이 떨어질 수 있다.

LEA

  • 2013년 대한민국에서 발표된 경량 블록 암호 알고리즘
  • 소프트웨어 구현에서 효율적이게 설계함. 특히, 64비트 정수 연산을 기반으로 한다.
  • 블록 크기: 고정된 128비트.  => 보안성,효율성을 둘 다 고려
  • 키 크기: 128,192,256비트
  • 라운드 수: 24,28,32라운드
  • 피어스텔 구조가 아닌 ARX구조를 사용.
    • ARX구조: addition , xor , rotation. 
  • 키 스케줄은 덧셈,xor,비트 횐전 연산으로 키를 라운드별로 확장함. 각 라운드에서는 고유한 서브 키를 생성하여 데이터 블록과 xor연산을 수행.
  • 암호화 과정
    • 1.초기상태 설정
      • 128비트의 입력 데이터를 32비트 단위로 4개의 블록으로 나눔
    • 2. 라운드 수행
      • 각 라운드에서 addition , xor , rotation을 수행 및 고유한 서브키로 데이터 블록과 xor연산
    • 3.최종 상태 출력
  • 다양한 키 지원으로 확장성 및 구조가 간단
  • 저자원 환경에 적합

 


HIGHT

  • 2006년에 발표한 경량 블록 암호
  • High Security and Lightweight
  • 블록 크기 : 64 비트
  • 키 크기 : 128비트
  • 라운드 수 : 32라운드
  • 피어스텔 구조 대신 ARX구조를 사용

SYCON

  • SYNCHRONOUS CONSTRUCTION
  • hw,sw에서 효율성을 고려하여 설계됨.
  • 피어스텔 구조를 기반.
  • 64비트 블록 크기와 128비트 키 크기를 사용함. 라운드는 16라운드