Ugrás a tartalomhoz

Camellia

A Wikiszótárból, a nyitott szótárból


Főnév

Camellia (tsz. Camellias)

  1. (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:

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.