Vai al contenuto

Camellia (cifrario)

Da Wikipedia, l'enciclopedia libera.
Versione del 17 ott 2024 alle 21:38 di MaiDireChiara (discussione | contributi) (Immagine aggiunta)
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)
Camellia
Generale
ProgettistiMitsubishi Electric, NTT
Prima pubblicazione2000
Derivato daE2, MISTY1
Dettagli
Dimensione chiave128, 192, 256 bit
Dimensione blocco128 bit
StrutturaRete di Feistel
Numero di passaggi18 o 24

Il Camellia è un cifrario a blocchi che ha ricevuto favorevoli consensi da diverse organizzazioni internazionali, compreso il progetto NESSIE dell'Unione europea, che lo ha incluso nel portafoglio di algoritmi crittografici selezionati, ed il progetto giapponese CRYPTREC, che lo ha segnalato come primitiva crittografica raccomandata.

L'algoritmo è stato sviluppato congiuntamente da Mitsubishi Electric e da NTT nel 2000 riprendendo alcuni principi strutturali di precedenti cifrari a blocchi quali l'E2 ed il MISTY1, sempre sviluppati da queste società.

Il Camellia lavora con blocchi dati lunghi 128 bit e può utilizzare chiavi lunghe 128, 192 o 256 bit (la stessa interfaccia dell'AES). Strutturalmente è un cifrario di Feistel con 18 passaggi se la chiave è lunga 128 bit oppure 24 passaggi se la chiave è lunga 192 o 256 bit. Ogni 6 passaggi viene applicata una funzione di trasformazione logica (o il suo inverso) denominata "funzione FL".

Camellia utilizza delle S-box di 8×8 bit con un trasformazioni affini ed operazioni logiche sia in ingresso che in uscita. Il cifrario usa anche il mascheramento della chiave in ingresso ed in uscita.

La diffusione crittografica è ottenuta mediante una trasformazione lineare basata su una matrice MDS.

Analisi matematica e sicurezza

[modifica | modifica wikitesto]

Il Camellia è uno dei cifrari che possono essere definiti completamente con sistemi di polinomi multivariati: può essere infatti descritto (così come le S-box dell'AES) con un sistema di 23 equazioni quadratiche con 80 termini[1].

Il gestore della chiave può essere descritto con 1120 equazioni con 768 variabili utilizzando 3328 termini lineari e quadratici.

In totale sono necessarie 6224 equazioni con 3584 variabili e 17920 termini quadratici e lineari[2].

Il numero dei termini liberi è di 11696, che è approssimativamente lo stesso numero di quelli dell'AES. Teoricamente queste proprietà potrebbero consentire di violare il Camellia (e l'AES) utilizzando un attacco algebrico, come l'attacco XLS (Extended Sparse Linearisation), ammesso che in un futuro prossimo tale tipologia di attacco divenga attuabile.

Implementazioni

[modifica | modifica wikitesto]

Il 18 giugno 2008 è stato introdotto nel nuovo Mozilla Firefox 3 il supporto al cifrario Camellia. Tuttavia il supporto a Camellia è stato rimosso da Firefox nel 2015 a partire dalla versione 37 del browser.

Yoshisato Yanagisawa ha aggiunto il supporto all'algoritmo nel software per la cifratura dei dischi rigidi GELI del sistema operativo FreeBSD 7.0.

Situazione brevettuale

[modifica | modifica wikitesto]

Nonostante il cifrario sia brevettato è disponibile con una licenza libera da royalty[3]: questo ha permesso al Camellia di entrare a far parte del progetto OpenSSL con una licenza di tipo open source l'8 novembre 2006[4].

  1. ^ N. T. Courtois, J. Pieprzyk: Cryptanalysis of block ciphers with overdefined systems of equations - Springer-Verlag - 2002
  2. ^ Biryukov, De Cannière: Block ciphers and systems of quadratic equations - Springer-Verlag - 2003
  3. ^ Announcement of Royalty-free Licenses for Essential Patents of NTT Encryption and Digital Signature Algorithms Archiviato l'8 novembre 2006 in Internet Archive. NTT - 2001
  4. ^ The Open Source Community OpenSSL Project Adopts the Next Generation International Standard Cipher "Camellia" Developed in Japan Archiviato l'8 marzo 2008 in Internet Archive. - NTT - 2008

Voci correlate

[modifica | modifica wikitesto]

Collegamenti esterni

[modifica | modifica wikitesto]
  Portale Crittografia: accedi alle voci di Wikipedia che trattano di Crittografia