CoderTools

LOKI97 암호화 및 복호화

호주 블록 암호 - 128비트 블록과 가변 키 길이를 가진 AES 후보

보안 알림

LOKI97은 AES 후보였지만 표준으로 선택되지 않았습니다. 강력한 보안이 필요한 새로운 애플리케이션에는 AES(Rijndael)가 권장됩니다.

LOKI97은 128비트(16바이트), 192비트(24바이트) 또는 256비트(32바이트) 키를 지원합니다.
형식 옵션

LOKI97 소개

LOKI97은 1997년 Lawrie Brown과 Josef Pieprzyk가 설계한 대칭키 블록 암호입니다. 고급 암호화 표준(AES) 경쟁의 후보로 제출되었으며, 호주에서 개발된 이전 LOKI89 및 LOKI91 암호의 진화를 나타냅니다.

이 암호는 128비트 데이터 블록에서 작동하며 128, 192 또는 256비트의 키 크기를 지원합니다. S-box와 순열에 기반한 복잡한 라운드 함수를 가진 16라운드 Feistel 네트워크 구조를 사용하여 차분 및 선형 암호 분석에 대한 강력한 저항성을 제공하도록 설계되었습니다.

주요 특징

  • 현대 보안 표준에 맞는 128비트 블록 크기
  • 유연한 키 크기: 128, 192 또는 256비트
  • 철저한 데이터 혼합을 위한 16라운드 Feistel 구조
  • 차분 및 선형 암호 분석에 저항하도록 설계
  • 호주에서 개발된 LOKI 암호 제품군의 일부

LOKI 제품군 역사

  • LOKI89: 1989년에 설계된 원본 암호로 64비트 블록과 64비트 키 사용.
  • LOKI91: LOKI89에서 발견된 약점을 해결한 개선 버전.
  • LOKI97: 128비트 블록을 가진 최종 진화 버전으로 AES 경쟁에 제출.

암호화 모드

  • CBC: 암호 블록 체이닝 - 각 블록은 암호화 전에 이전 암호문 블록과 XOR됩니다. 강력한 보안을 제공합니다. IV 필요.
  • ECB: 전자 코드북 - 각 블록이 독립적으로 암호화됩니다. 단순하지만 데이터의 패턴이 드러납니다. 대부분의 용도에 권장되지 않습니다.
  • CFB: 암호 피드백 - 블록 암호를 스트림 암호로 변환합니다. 자체 동기화되며 부분 블록을 처리합니다.
  • OFB: 출력 피드백 - 평문과 독립적으로 키스트림을 생성합니다. 오류 전파 없음.
  • RAW: 원시 블록 - 체이닝 모드 없이 직접 단일 블록 암호화. IV 불필요. 단일 128비트 블록 전용.

알고리즘 구조

LOKI97은 16라운드 Feistel 네트워크 구조를 사용합니다. 각 라운드는 128비트 블록을 두 개의 64비트 반쪽(L과 R)으로 나누어 처리합니다.

키 스케줄

256비트 마스터 키는 f 함수와 상수 DELTA(황금비에서 유도됨)를 사용하여 48개의 서브키(SK[0]에서 SK[47])로 확장됩니다. 128비트 또는 192비트 키의 경우, 확장 전에 키 자료가 복제되어 256비트 키 레지스터를 채웁니다.

라운드 함수

각 라운드는 다음을 적용합니다: L' = R + SK[3i], R' = L XOR f(R + SK[3i], SK[3i+1], SK[3i+2]). 덧셈은 2^64 모듈로입니다.

f 함수

핵심 f 함수 f(A, B)는 네 개의 레이어로 구성됩니다:

  • KP (키 제어 순열): B의 제어 비트를 기반으로 A에서 비트 선택
  • Sa (S-박스 레이어 a): 두 가지 유형의 8개 병렬 S-박스 조회 (S1: 13→8비트, S2: 11→8비트)
  • P (순열): 8×8 비트 인터리빙 패턴을 사용한 64비트 순열
  • Sb (S-박스 레이어 b): B의 추가 키 자료를 사용한 두 번째 8개 S-박스 조회

S-박스

S1은 8192개 항목(13비트 입력 → 8비트 출력), S2는 2048개 항목(11비트 입력 → 8비트 출력)을 가집니다. 둘 다 각각 GF(2^13)과 GF(2^11)에서 세제곱 연산을 사용하여 계산되며, 강력한 비선형성을 위한 특정 생성 다항식을 사용합니다.

복호화

복호화는 동일한 구조를 사용하지만 서브키를 역순(SK[47]에서 SK[0])으로 적용하고 덧셈 대신 뺄셈을 사용합니다.

알고리즘 비교

알고리즘 키 길이 블록 크기 보안 속도
LOKI97 128/192/256 bits 128 bits 양호 중간
AES 128/192/256 bits 128 bits 우수 빠름
Serpent 128/192/256 bits 128 bits 우수 중간
DES 56 bits 64 bits 약함 빠름

보안 고려사항

  • LOKI97은 전체 암호에 대한 실질적인 공격이 발견되지 않아 양호한 보안을 제공합니다
  • 128비트 블록 크기는 현대 보안 요구사항에 부합합니다
  • AES로 선택되지 않았지만 LOKI97은 암호학적으로 건전합니다
  • 새로운 애플리케이션에는 국제 표준인 AES가 권장됩니다

사용 사례

  • 레거시 시스템 호환성 및 역사적 연구
  • 암호학 교육 및 알고리즘 연구
  • 다른 AES 후보와의 비교 분석
  • 호주에서 개발된 암호화가 필요한 애플리케이션

참고자료