Camellia
Főnév
Camellia (tsz. Camellias)
- (informatika) A Camellia egy szimmetrikus blokkrejtjelező algoritmus (block cipher), amelyet a Nippon Telegraph and Telephone Corporation (NTT) és a Mitsubishi Electric Corporation közösen fejlesztett ki 2000-ben. Célja, hogy biztonságban és teljesítményben is felvegye a versenyt az AES-sel (Advanced Encryption Standard), miközben rugalmasan használható legyen szoftveres és hardveres környezetben egyaránt.
A Camellia sok tekintetben hasonlít az AES-re: támogatja a 128, 192 és 256 bites kulcsokat, fix 128 bites blokkot titkosít, erősen strukturált köröket alkalmaz, ugyanakkor eltérő algoritmikus struktúrát és S-dobozokat (S-box) használ. Emellett ISO/IEC és IETF szabványként is elfogadott, és szerepel a TLS, IPsec, OpenSSL és más biztonságos protokollok implementációiban is.
🧠 Alapfogalom: blokk rejtjelező
A blokk rejtjelezők fix méretű adatblokkokat (Camellia esetén 128 bit) titkosítanak kriptográfiai kulcs alapján. Az algoritmus lépésről lépésre átalakítja a bemenetet a kulcs és különböző belső műveletek segítségével, így hozva létre a titkosított kimenetet (ciphertext). A visszafejtés (decryption) ugyanezekkel a lépésekkel, csak fordított irányban történik.
🔐 Camellia fő jellemzői
| Tulajdonság | Érték |
|---|---|
| Blokkméret | 128 bit |
| Kulcshossz | 128, 192 vagy 256 bit |
| Körök száma | 18 (128 bit), 24 (192/256 bit) |
| Szerkezet | Feistel struktúra (DUAL Feistel) |
| Alkalmazások | IPsec, TLS, GPG, OpenSSL, eCryptFS, libgcrypt |
| Szabványok | ISO/IEC 18033-3, RFC 3713, CRYPTREC, NESSIE ajánlás |
🧩 Hogyan működik?
A Camellia egy Feistel típusú rejtjelező, vagyis az adatblokkokat két részre bontja (bal és jobb fél), majd ismétlődő körökben alkalmaz különféle transzformációkat rajtuk:
A Camellia fő komponensei:
- Kulcselőkészítés (Key Schedule):
- A kulcsból különféle al-kulcsokat (round keys) és konstansokat generál minden körhöz.
- A kulcselőkészítés tartalmaz rotációs és XOR műveleteket, valamint S-box alkalmazásokat.
- Feistel struktúra:
- A bemeneti adatot két részre bontják (64–64 bit).
- Minden körben csak az egyik félre alkalmazzák a F-függvényt, a másik félre nem.
- Az eredményt XOR-olják a másik féllel, majd felcserélik őket.
- F-függvény (Round Function):
- A legfontosabb komponens, amely az adatokat keveri.
- Műveletek:
- 4 darab S-box (S1–S4),
- P-függvény (bit-permutáció),
- Bitrotáció és XOR.
- FL/FL⁻¹ függvények:
- Két speciális nemlineáris művelet 6. és 12. kör után (használatuk kulcshosszfüggő).
- Ezek növelik a diffúziót és ellenállást bizonyos támadásokkal szemben.
- Utolsó lépés:
- A két adatfél újra összefűzésre kerül, és egy fordított permutáció (swap) után a kimenet elkészül.
🧪 Példa – 128 bites kulccsal (Camellia-128)
- Bemenet: 128 bites (16 byte) adatblokk
- Kulcs: 128 bites (16 byte) kulcs
- Körök száma: 18
- Körönként:
- Egy F-függvényes transzformáció a bal félre
- XOR a jobb féllel
- Cserélés
- 2× FL / FL⁻¹ funkció alkalmazása
- Utolsó kör után összeillesztés és kimenet
🛡️ Biztonsági tulajdonságok
| Tulajdonság | Jelentés |
|---|---|
| Ütközésállóság | Minden bemenetre eltérő kimenet |
| Diffúzió | Egyetlen bit változás a bemenetben a kimenet jelentős részét módosítja |
| Bumeráng- és differenciális támadások elleni védelem | A struktúra és S-box tervezése ezek ellen is véd |
| Lineáris támadásokkal szembeni védelem | Az FL funkciók és P-függvények növelik az ellenállást |
🔍 Camellia vs AES
| Tulajdonság | Camellia | AES |
|---|---|---|
| Blokkméret | 128 bit | 128 bit |
| Kulcshossz | 128, 192, 256 bit | 128, 192, 256 bit |
| Struktúra | Feistel | Substitution-Permutation Network (SPN) |
| Körök | 18 / 24 | 10 / 12 / 14 |
| Biztonság | Kiemelkedő | Ipari standard |
| Sebesség | Hasonló vagy kissé lassabb AES-nél szoftverben | |
| Hardveres gyorsítás | Nincs AES-NI támogatás | Van AES-NI |
⚙️ Használat OpenSSL-ben
Az OpenSSL támogatja a Camellia algoritmust például TLS titkosításhoz:
openssl enc -camellia-128-cbc -in input.txt -out output.enc -pass pass:jelszo
openssl enc -d -camellia-128-cbc -in output.enc -out output.txt -pass pass:jelszo
📚 Hol használják a Camelliát?
| Platform / alkalmazás | Használat |
|---|---|
| TLS/SSL (OpenSSL, GnuTLS) | Alternatív cipher az AES mellett |
| IPsec (Linux kernel) | Natívan támogatott titkosítás |
| eCryptFS | Fájlrendszer szintű titkosítás |
| GPG (GnuPG) | Támogatja Camellia-128/192/256 |
| ISO/IEC szabvány | 18033-3:2005 számú nemzetközi szabvány |
✅ Előnyök
| Előny | Magyarázat |
|---|---|
| AES-szintű biztonság | Komoly kriptográfiai analízisek szerint erős |
| Szabványosított | ISO, RFC, IETF elfogadta |
| Rugalmas kulcshossz | 128–256 bit, kompatibilis különféle rendszerekkel |
| Nem amerikai eredetű | Egyes országokban előny (pl. Ázsiában) |
⚠️ Hátrányok
| Hátrány | Magyarázat |
|---|---|
| Kevésbé ismert, mint AES | Kevesebb dokumentáció, kisebb közösségi támogatás |
| Nincs hardvergyorsítás (AES-NI) | Lassabb lehet AES-nél Intel processzorokon |
| Bonyolultabb struktúra | Nehezebb megérteni és implementálni, mint AES-t |
🧠 Összefoglalás
| Fogalom | Jelentés |
|---|---|
| Camellia | Ipari szintű blokk rejtjelező, AES alternatíva |
| Blokkméret | 128 bit |
| Kulcshossz | 128, 192, 256 bit |
| Struktúra | Feistel (DUAL Feistel), FL/FL⁻¹ bővítéssel |
| Biztonság | Erős, ISO és RFC szabványos |
| Használat | OpenSSL, TLS, IPsec, GPG |
| Sebesség | Jó, de AES-nél kissé lassabb CPU-n |
| Jövője | Stabil, megbízható alternatíva, de nem váltotta le az AES-t |
A Camellia tehát egy szilárd, szabványos és megbízható blokkrejtjelező, amely az AES erős alternatívája lehet, főként olyan környezetekben, ahol szükség van nem amerikai eredetű, ipari szintű titkosítóra.