Elettronica_Oggi_437 - page 52

52
- ELETTRONICA OGGI 437 - GIUGNO 2014
DIGITAL
HYBRID MEMORY
al fine di illustrare i requisiti tipici di
un’applicazione di cifratura e le pos-
sibili opzioni di implementazione. Con
AES-128 i byte di ingresso sono dispo-
sti sotto forma di blocco prima dell’i-
nizio dell’operazione, come riportato in
figura 1. In questa figura in0 è il pri-
mo byte e in15 è il sedicesimo e ultimo
byte del blocco di ingresso.
Sostituzione dei byte
La prima operazione consiste nella
sostituzione dei byte. In questa fase,
ciascun byte del blocco di ingresso è
sostituito con un byte selezionato da
una tavola di sostituzione nota. Il va-
lore selezionato è presente nella lo-
cazione della tabella puntata dai due
nibble (sequenza di 4 bit) del byte di
ingresso, come riportato in figura 2. La
sostituzione di ogni byte nella riga e
nella colonna può essere espresso dal-
la formula:
Solitamente la tabella di sostituzione è
codificata via hardware (hard coded)
nel dispositivo (Flash, SRAM e così via).
Quando alla CPU viene assegnato il
compito di sostituire i byte, essa cari-
cherà il byte di ingresso dalla memoria
di programma e lo trasferirà come se
si trattasse di un indirizzo alla SRAM.
Quest’ultima restituirà il byte presente
in quella posizione. Una procedura di
questo tipo richiederà molto tempo pri-
ma che sia completata la sostituzione
dell’intero blocco. Al fine di esonerare
la CPU dall’espletamento di tutte queste
operazioni, la sostituzione può aver luogo in maniera si-
multanea con l’ausilio del DMA: in questo modo la CPU
sarebbe libera di assolvere altri compiti. Per effettuare i
trasferimenti dei dati il DMA richiede solo l’assegnazio-
ne degli indirizzi sorgente e destinazione della memoria.
Oltre a ciò, invece di trasferire questi valori a qualche
specifica locazione di memoria, il DMA può trasferire di-
rettamente i dati ai blocchi UDB per ulteriori elaborazioni
senza richiedere alcun intervento da parte della CPU.
Scorrimento delle righe
Il passo successivo dell’algoritmo AES è lo scorrimento
delle righe (Row Shifting). In questa fase ogni riga del
blocco di ingresso che ha subito l’operazione di sosti-
tuzione dei byte viene fatto scorrere in modo circolare
verso sinistra di 1 byte. Il byte che ha subito lo scorri-
mento prende il posto del byte più a destra. La prima
riga rimane invariata, mentre dalla seconda alla quarta
riga viene sempre eseguito uno scorrimento circolare a
Fig. 2 – Processo di sostituzione dei byte
Fig. 3 – Procedimento di scorrimento delle righe
1...,42,43,44,45,46,47,48,49,50,51 53,54,55,56,57,58,59,60,61,62,...92
Powered by FlippingBook