# SAFER

Con il termine SAFER (Secure And Fast Encryption Routine) si intende in crittografia una famiglia di cifrari a blocchi progettati principalmente da James Massey (uno degli sviluppatori del cifrario IDEA) per conto di Cylink Corporation. I primi algoritmi, denominati SAFER K e SAFER SK, condividono la stessa funzione di cifratura ma differiscono sul numero di passaggi (6 ed 8) e sul gestore della chiave. Le versioni più recenti, SAFER+ e SAFER++, sono state anche candidate, rispettivamente, al processo di standardizzazione dell'Advanced Encryption Standard ed al progetto NESSIE. Tutti gli algoritmi della famiglia SAFER non sono brevettati e sono disponibili senza limitazioni d'uso.

## SAFER K e SAFER SK

Il primo cifrario della famiglia presentato da Massey fu il SAFER K-64, pubblicato nel 1993: esso operava su blocchi di dati di 64 bit di lunghezza. La sigla "K-64" indicava che la lunghezza della chiave era di 64 bit. Fu richiesta una versione capace di gestire chiavi più lunghe e Massey, l'anno seguente, pubblicò il SAFER K-128: rispetto al predecessore, questo algoritmo era capace di gestire chiavi di 128 bit ed integrava un nuovo gestore della chiave, disegnato dal Ministero degli Affari Interni di Singapore.
Nonostante queste varianti, sia Lars Knudsen che Sean Murphy trovarono delle debolezze nel SAFER K-128 che suggerirono la rivisitazione degli algoritmi. Massey riscrisse del gestore della chiave seguendo le indicazioni di Knudsen e rilasciò 2 nuovi algoritmi denominati SAFER SK-64 e SAFER SK-128, rispettivamente con chiave a 64 e 128 bit. Ufficialmente la sigla "SK" sta per "Strengthened Key schedule", gestore della chiave rinforzato ma nelle FAQ di RSA si legge che "SK" starebbe scherzosamente per Stop Knudsen
È stata pubblicata anche una versione con chiave di soli 40 bit denominata SAFER SK-40, per le restrizioni sull'esportazione dei sistemi crittografici che vigevano negli Stati Uniti d'America fino alla fine degli anni novanta. Nonostante la lunghezza ridotta della chiave, il SAFER SK-40 resiste alla crittanalisi lineare e differenziale, nel senso che l'uso di questi attacchi è più sconveniente di un attacco a forza bruta.
Tutte le versioni K ed SK del SAFER utilizzano la stessa funzione interna, che consta di 4 fasi (vedi figura): una fase di mescolamento dei bit della chiave; una fase di sostituzione; un'altra fase di mescolamento della chiave; una fase finale di diffusione dei dati. Nella prima fase di mescolamento del materiale della chiave, il blocco di testo in chiaro è diviso in 8 parti da 8 bit ciascuno e le sotto-chiavi sono aggiunte utilizzando o addizioni modulo 256 (indicate nella figura dal "+" contenuto in un quadrato verde) oppure da operazioni di XOR (il "+" contenuto in un cerchio rosso). La fase di sostituzione consiste di 2 S-box ognuna delle quali inversa dell'altra e derivate da funzioni di elevemanto a potenza (45$^x$) o logaritmiche (log$_{45}$x). Dopo la seconda fase di mescolamento della chiave c'è l'ultima fase, la diffusione, basata su una funzione di calcolo abbastanza recente, la pseudo-trasformata di Hadamard (utilizzata più recentemente anche nel cifrario Twofish).

## SAFER+ e SAFER++

SAFER+ e SAFER++ sono i membri più recenti della famiglia SAFER sono stati sviluppati dai crittografi Armeni Gurgen Khachatrian e Melsik Kuregian in collaborazione con Massey: rispetto ai membri originali, essi hanno la funzione di cifratura modificata.
* Il SAFER+ (pubblicato nel 1998) è stato proposto come candidato per l'AES ed ha un blocco dati di 128 bit: il cifrario non è stato selezionato per la fase finale del processo di standardizzazione a causa della sua lentezza. Il sistema Bluetooth usa degli algoritmi basati sul SAFER+ per la derivazione della chiave (denominati E21 ed E22) e per l'autenticazione come MAC (chiamato E1) ma non utilizza l'algoritmo per la cifratura dei dati
* Il SAFER++ (del 2000) è stato presentato al progetto NESSIE in 2 varianti, una a 64 e l'altra a 128 bit.