카멜리아 (암호)
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
카멜리아는 128비트 블록 크기를 가지며 128, 192, 256비트의 키 길이를 지원하는 피스텔 암호이다. AES와 호환되는 인터페이스를 가지며, 18라운드(128비트 키) 또는 24라운드(192/256비트 키)로 구성된다. 카멜리아는 안전한 암호로 평가받으며, ISO/IEC, NESSIE, CRYPTREC 등에서 사용이 승인되었다. 특허는 받았지만 로열티 없이 사용할 수 있으며, 오픈 소스 라이선스로 배포되어 다양한 소프트웨어 및 하드웨어 환경에서 지원된다.
카멜리아는 AES와 호환되는 입출력 인터페이스를 가지고 있으며, 128비트 블록 길이를 가진다. 키 길이는 128, 192, 256비트 중 하나를 선택할 수 있다.
카멜리아는 현대적이고 안전한 암호로 간주되며, 현재까지 알려진 심각한 공격은 없다.[3] 무차별 대입 공격에 대한 내성을 가지며, ISO/IEC, 유럽 연합의 NESSIE, 일본의 CRYPTREC 등에서 사용이 승인되었다.[3] 최소한의 다변량 다항식 시스템으로 정의될 수 있는 블록 암호이다.[5]
카멜리아는 특허를 받았지만, 로열티 없이 사용할 수 있다.[7] 이를 통해 카멜리아 암호는 2006년 11월부터 오픈SSL 프로젝트의 일부가 되었으며, 오픈 소스 라이선스를 따른다.[8] 또한, 모질라의 NSS 모듈의 일부가 되도록 했다.[9]
모질라 파이어폭스 3은 2008년에 카멜리아를 지원하기 시작했지만,[9] 2014년 파이어폭스 33 버전부터 기본적으로 비활성화되었고,[10] 2015년 37 버전부터는 지원이 중단되었다.[12][25] 파이어폭스의 포크인 페일 문은 카멜리아를 계속 지원하고 GCM 제품군에 대한 지원을 확장했지만, 관심 부족으로 인해 27.2.0 버전에서 GCM 모드를 제거했다.[13]
카멜리아는 AES의 S-box와 유사한 구조를 가진 S-box를 사용한다. 따라서 x86 AES-NI나 x86 GFNI처럼 AES용으로 설계된 CPU 명령어 집합을 아핀 동형사상을 통해 활용하여 소프트웨어 구현 속도를 높일 수 있다.[20][21]
2. 디자인
전체 구조는 AES에서 채택된 SPN 구조와 달리, DES와 같은 Feistel 구조를 채택하고 있다. 키 길이에 따라 라운드 수가 달라지는데, 128비트 키는 18라운드, 192비트 및 256비트 키는 24라운드로 구성된다. 또한, 6라운드마다 "부 변환부"라고 불리는 전단사 함수 FL과 FL-1이 삽입된다. 처음과 마지막에는 키 화이트닝(확장 키와의 배타적 논리합)이 적용된다.
확산 계층은 분기 수가 5인 행렬을 기반으로 한 선형 변환을 사용하며, 4개의 8×8비트 S-box가 사용된다.
2. 1. 라운드 함수
라운드 함수는 바이트(8비트) 단위로 처리되며, 확장 키와의 배타적 논리합 연산 후, 4종류의 8비트 입출력 S-box와 FEAL과 유사한 아미다쿠지형 P함수로 구성된다. S-box는 4종류가 있지만, 테이블 하나와 입출력의 비트 시프트 등을 조합하여 구현할 수도 있다.
2. 2. 키 스케줄
키 스케줄러는 라운드 함수 2단으로 키를 "암호화"하여 중간 키를 생성하고, 중간 키의 일부분을 추출하여 확장 키를 만든다. 구체적으로는 중간 키를 라운드마다 정의된 만큼 시프트하고, 오른쪽 64비트(또는 왼쪽 64비트)를 추출한다. 카멜리아는 Feistel 구조를 채택하여, 암호화와 복호화의 차이는 라운드 함수 등에서 사용되는 확장 키의 순서뿐이도록 설계되었다. 따라서 키 스케줄러는 확장 키를 첫 번째부터 차례대로 구하는 것이나 마지막부터 역순으로 구하는 것이나 모두 동일한 수고로 실현할 수 있도록 설계되었다.
3. 보안 분석
XSL 공격과 같은 대수적 공격에 대한 잠재적 취약성이 존재할 수 있다는 주장이 제기된 바 있다.[5] 카멜리아와 AES의 S-box는 80개의 항에서 23개의 이차 방정식 시스템으로 설명할 수 있다.[6] 키 스케줄은 3328개의 선형 및 이차 항을 사용하여 768개의 변수에서 1120개의 방정식으로 설명할 수 있다.[5] 전체 블록 암호는 14592개의 선형 및 이차 항을 사용하여 2816개의 변수에서 5104개의 방정식으로 설명할 수 있다.[5] 총 17920개의 선형 및 이차 항을 사용하여 3584개의 변수에서 6224개의 방정식이 필요하다.[5] 자유 변수의 수는 11696개이며, 이는 AES와 대략 같은 수이다.
카멜리아는 해독 가능한 라운드 수와 최소한의 안전성을 유지할 수 있는 라운드 수를 기반으로 한 지표인 보안 마진에서 AES를 뛰어넘는 1.8~2.0을 확보하고 있다.[23] 또한, 카멜리아는 CRYPTREC 및 NESSIE에서 AES와 동등한 안전성과 효율성을 갖춘 것으로 평가받고 있다.
4. 특허 및 라이선스
5. 채택 현황
2008년 후반, 프리BSD 6.4-RELEASE에 카멜리아 암호가 포함되었으며,[14] 프리BSD의 디스크 암호화 스토리지 클래스 geli에도 카멜리아 암호 지원이 추가되었다.[14]
2009년 9월, GNU Privacy Guard는 1.4.10 버전에서 카멜리아 지원을 추가했다.[15] VeraCrypt (TrueCrypt의 포크)는 카멜리아를 지원되는 암호화 알고리즘 중 하나로 포함했다.[16]
Crypto++, GnuTLS, mbed TLS, OpenSSL 등 다양한 보안 라이브러리도 카멜리아를 지원한다. 탈레스와 Bloombase는 데이터 암호화 제품에 카멜리아 암호화를 지원한다.[17]
2013년 3월 26일, 카멜리아는 일본 전자 정부 권장 암호 목록에 다시 채택되었다. 이는 일본에서 개발된 유일한 128비트 블록 암호 알고리즘이며, CRYPTREC 목록이 10년 만에 처음으로 업데이트된 것이다. 카멜리아는 조달 용이성, 안전성, AES와 유사한 성능으로 높은 평가를 받았다. 카멜리아는 전체 구현에서 아직 깨지지 않았지만,[18] FL/FL−1 레이어가 없는 12라운드 카멜리아에 대한 불가능한 차분 공격이 존재한다.[19]
6. 성능
6. 1. 소프트웨어 구현 성능
개발자나 제3자에 의한 구현 보고에 따르면, PC에서 사용되는 범용 CPU에서는 1 Gbps, 전용 LSI에서는 2 Gbps를 넘는 처리량을 가진다.
한편, 내장 기기에서 사용되는 8비트 CPU 등 처리 능력이 낮은 프로세서에서도 극단적인 메모리 크기 증가는 발생하지 않으며, 하드웨어로 구현한 경우에는 암호화와 복호화, 키 스케줄러에서 회로를 공용할 수 있기 때문에 10,000 게이트 이하에서도 구현이 가능하다는 것이 확인되었다.
CPU | 암호화 속도 | 복호화 속도 | ROM | RAM |
---|---|---|---|---|
Z80 (5 MHz) | 7.19 msec | 7.51 msec | 1,268 바이트 | 60 바이트 |
Z80 () | 5.68 msec | 1,698 바이트 | 63 바이트 | |
8051 (12 MHz) | 10.22 msec | 10.22 msec | 990 바이트 | 32 바이트 |
CPU | 속도 | 운영체제 | 키 길이 | 비고 |
---|---|---|---|---|
Intel Pentium 4 (3.2 GHz) | 1134.6Mbps | Windows XP SP2 | 128비트 | |
AMD Athlon 64 3500+ Winchester (2.2 GHz) | 1158.8Mbps | Windows XP 64-Bit Edition | 128비트 | 비트 슬라이스 구현 |
6. 2. 하드웨어 구현 성능
카멜리아 암호는 PC에서 사용되는 범용 CPU에서 1Gbps, 전용 LSI에서 2Gbps를 넘는 처리량을 보인다.[1] 또한, 처리 능력이 낮은 8비트 CPU에서도 메모리 크기 증가 없이 구현 가능하며, 하드웨어 구현 시 암호화, 복호화, 키 스케줄러 회로를 공용하여 10,000 게이트 이하에서도 구현 가능하다.[1]하드웨어 구현 성능은 다음과 같다.[1]
종류 | 속도 | 환경 | 비고 |
---|---|---|---|
ASIC | 325.76Mbps | IBM 0.13 μm, 6,511 유닛 | Loop 아키텍처, 128비트 키 |
ASIC | 2154.88Mbps | IBM 0.13 μm, 29,809 유닛 | Loop 아키텍처, 128비트 키 |
FPGA | 128.58Mbps | Xilinx Virtex-E, 908 슬라이스 | Loop 아키텍처, 128비트 키 |
FPGA | 393.24Mbps | Xilinx Virtex-E, 2,833 슬라이스 | Loop 아키텍처, 128비트 키 |
7. 표준화
카멜리아는 다음과 같은 여러 표준화 기구에 의해 표준 암호로 인증되었다.[22]
표준화 기구 | 내용 |
---|---|
CRYPTREC | 일본의 전자 정부 권장 암호 목록 |
NESSIE | 유럽의 NESSIE 프로젝트 |
IETF | |
ISO/IEC | ISO/IEC 18033-3:2010 정보 기술—보안 기술—암호화 알고리즘—파트 3: 블록 암호 |
ITU-T | NGN (Y.2704)을 위한 보안 메커니즘 및 절차 |
RSA 연구소 | PKCS#11에서 승인된 암호 |
TV-Anytime 포럼 | 방송 응용 프로그램을 위한 TV-Anytime 권리 관리 및 보호 정보, 양방향 메타데이터 제공 보호에서 승인된 암호 |
카멜리아는 TLS/SSL 및 IPsec을 비롯하여 IETF 및 ISO/IEC 등 많은 표준화 단체에서 채택되었다.[26]
8. 역사
- 2000년 3월 10일: NTT와 미쓰비시 전기가 공동 개발한 카멜리아(Camellia)가 공개되었다.[24]
- 2001년 4월 17일: 카멜리아 기본 특허를 무상으로 사용할 수 있게 되었다.[24]
- 2003년 2월 20일: 일본 암호 평가 프로젝트 CRYPTREC에서 카멜리아를 전자 정부 권장 암호 목록에 포함시켰다.[24]
- 2003년 2월 27일: 유럽 암호 평가 프로젝트 NESSIE에서 128비트 블록 암호로 AES와 함께 카멜리아를 선정하였다.[24]
- 2005년 7월 15일: ISO/IEC 18033 Part 3의 128비트 블록 암호에 AES, SEED와 함께 카멜리아가 채택되었다.[24]
- 2006년 4월 13일: 카멜리아의 오픈 소스가 공개되었다.[24]
- 2013년 3월 1일: CRYPTREC에서 개정한 전자 정부 권장 암호 목록에 일본 최초의 블록 암호로 카멜리아가 포함되었다.[24]
참조
[1]
간행물
Information Security and Cryptology – ICISC 2001, 4th International Conference Seoul, Korea, December 6–7, 2001, Proceedings
Springer
[2]
논문
Impossible differential attack on 13-round Camellia-192
https://www.scienced[...]
2022-10-22
[3]
웹사이트
News Release 050710: Japan's First 128-bit Block Cipher "Camellia" Approved as a New Standard Encryption Algorithm in the Internet
https://web.archive.[...]
NTT
2005-07-20
[4]
문서
RFC 4132 Addition of Camellia Cipher Suites to Transport Layer Security (TLS)
[5]
서적
Fast Software Encryption
Springer Science+Business Media
[6]
서적
Cryptanalysis of Block Ciphers with Overdefined Systems of Equations
https://eprint.iacr.[...]
Springer-Verlag
2010-08-13
[7]
간행물
Announcement of Royalty-free Licenses for Essential Patents of NTT Encryption and Digital Signature Algorithms
https://web.archive.[...]
NTT
2001-04-17
[8]
간행물
The Open Source Community OpenSSL Project Adopts the Next Generation International Standard Cipher "Camellia" Developed in Japan
https://web.archive.[...]
NTT
2006-11-08
[9]
웹사이트
Camellia cipher added to Firefox
2007-07-30
[10]
웹사이트
Bug 1036765 – Disable cipher suites that are not in the "Browser Cipher Suite" proposal that are still enabled
https://bugzilla.moz[...]
2015-01-09
[11]
웹사이트
Proposal to Change the Default TLS Ciphersuites Offered by Browsers
https://briansmith.o[...]
2015-01-09
[12]
웹사이트
Bug 1037098 – Remove preferences for cipher suites disabled in bug 1036765 (Camellia and some 3DES & DSS cipher suites)
https://bugzilla.moz[...]
2015-02-26
[13]
웹사이트
Release notes for Pale Moon 26.0
https://forum.palemo[...]
2016-01-26
[14]
웹사이트
FreeBSD System Manager's Manual: GELI(8)
https://www.freebsd.[...]
2011-03-09
[15]
웹사이트
GnuPG 1.4.10 released
https://lists.gnupg.[...]
2009-09-02
[16]
웹사이트
Camellia
https://www.veracryp[...]
IDRIX
2018-02-03
[17]
웹사이트
Product Information (Oversea)
https://info.isl.ntt[...]
[18]
웹사이트
Camellia Encryption Algorithm Selected for New e-Government Recommended Ciphers List
https://www.mitsubis[...]
2013-03-26
[19]
논문
Impossible differential cryptanalysis of reduced-round ARIA and Camellia
https://dl.acm.org/d[...]
2007-05-03
[20]
M.Sc.
Block Ciphers: Fast Implementations on x86-64 Architecture
http://jultika.oulu.[...]
University of Oulu
2017-06-22
[21]
웹사이트
camellia: add amd64 GFNI/AVX512 implementation
https://git.gnupg.or[...]
2022-07-06
[22]
웹사이트
Camellia Standardization Related Information
https://info.isl.ntt[...]
2013-11-30
[23]
문서
Camelliaユーザーズガイド
http://info.isl.ntt.[...]
[24]
웹사이트
Bug 1036765 - Disable cipher suites that are not in the "Browser Cipher Suite" proposal that are still enabled
https://bugzilla.moz[...]
2015-02-26
[25]
웹사이트
Bug 1037098 - Remove preferences for cipher suites disabled in bug 1036765 (Camellia and some 3DES & DSS cipher suites)
https://bugzilla.moz[...]
2015-02-26
[26]
웹사이트
Camellia 標準化情報等
https://info.isl.ntt[...]
2013-11-30
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com