OMAC/CMAC

Versione del 6 mar 2009 alle 12:07 di Gasparef (discussione | contributi) (+WIP)
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

OMAC è un codice di autenticazione per messaggi basato su cifratura a blocchia progettato da Tetsu Iwata e Kaoru Kurosawa della Nagoya University. OMAC è una semplice variante del CBC-MAC (Cipher Block Chaining Message Authentication Code). L'acronimo OMAC sta per One-Key CBC-MAC. OMAC è sicuro per messaggi di qualsiasi lunghezza a differenza di CBC-MAC che lo è soltato per messaggi di lunghezza fissa.

OMAC è il nome generico per OMAC1 e OMAC2. Secondo le specifiche del NIST, OMAC1 equivale a CMAC.


OMAC1 o CMAC

Le operazioni preliminari sono la scelta di un algoritmo di crittografia a blocchi   e della lunghezza del codice CMAC  . Non ci sono restrizioni sull'algoritmo crittografico da utilizzare.

Occorre, inoltre, che i due interlocutori condividano una chiave segreta di   bit che servirà come chiave per l'algoritmo   precedentemente selezionato.

A questo punto il processo di generazione si articola nei seguenti passi:

  1. Per prima cosa di cripta un blocco di n bit tutti pari a 0 (chiamiamolo 0n) ottenendo un certo valore  .  .
  2. Si controlla se il bit più significativo di L è 0:

se ciò accade Pre-processing: The following steps can be done without the message.

  1. First, encrypt n-bit 0 (denoted by 0 n ) to compute L . That is, let L be E\ (K,\ 0 n) .
  2. Check if the most significant bit of L is 0 .
         * If it is, let L.u be L<<1 , where L<<1 denotes a shift in which bits increase in significance with the most significant bit being lost and a zero coming into the least significant bit.

OMAC2

Bibliografia

Voci correlate

Collegamenti esterni

  Portale Crittografia: accedi alle voci di Wikipedia che trattano di crittografia