Elettronica_Oggi_437 - page 53

53
- ELETTRONICA OGGI 437 - GIUGNO 2014
DIGITAL
HYBRID MEMORY
sinistra di 1, 2 e 3 byte rispettivamente. Que-
sta procedura è esemplificata nella figura 3.
La CPU può eseguire solamente operazioni
su 8 bit, ragion per cui non può prendere
in considerazione l’intero blocco. In pratica
lo scorrimento delle righe può essere visto
come il cambiamento della posizione di un
byte. Dopo aver eseguito lo scorrimento del-
le righe il byte S
1,0
, per esempio, prende il
posto del byte S
1,3
. Il meccanismo DMA può
risultare più efficiente nel prelevare un byte
da un indirizzo e trasferirlo a un altro.
Mescolamento delle colonne
Il passo successivo è il mescolamento delle
colonne (column mixing). Questo processo
prevede la trasformazione del blocco di dati
in modo tale che un’intera colonna (4 byte)
venga elaborata per generare un byte. La tra-
sformazione è una moltiplicazione nel campo
finito di Galois (GF(2
8
)) con il polinomio p(x)
= x
8
+x
4
+x
3
+x+1. La rappresentazione matriciale del me-
scolamento delle colonne è riportata in figura 4.
Dal punto di vista matematico, un byte A è generato da
a,b,c, e in conformità alla seguente equazione:
Poiché la realizzazione della moltiplicazione in hardwa-
re è sempre stato un compito abbastanza impegnativo,
l’equazione appena riportata non è solitamente imple-
mentata nella forma appena descritta. Seguendo quanto
riportato nel testo “Cryptography and Network Security”,
la moltiplicazione di un valore per x (cioè per 02) può
essere implementata sotto forma di uno scorrimento a
sinistra di 1 bit seguito da un’operazione di XOR condi-
zionale con 0x1B (00011011) se il bit più a sinistra del
valore originale (prima dello scorrimento) è 1.
Seguendo questa regola, l’e-
quazione sopra riportata si
semplifica in questo modo:
In questo caso “check_msb” restituirà 0x1B se l’MSB del
byte 1 oppure se l’MSB è 0. Con questa semplice ma-
nipolazione è possibile ridurre in maniera significativa
l’utilizzo di risorse hardware per il mescolamento delle
colonne.
Un dispositivo SoC con architettura programmabile può
implementare questo processo in maniera molto effi-
ciente in hardware.
Sfruttando ad esempio un’architettura come quella dei
dispositive PSoC di Cypress Semiconductor, i blocchi
UDB (Universal Digital Block) rappresentano la solu-
zione ideale per implementare l’operazione di mesco-
lamento delle colonne. Lo schema dell’architettura dei
blocchi UDB, tratta dal manuale di riferimento tecnico
(TRM Technical Reference Manual) dei dispositivi PSoC
è riportato in figura 5.
È possibile constatare che tutte le operazioni svolte a
livello di byte (scorrimento di 1 bit, XOR) possono essere
Fig. 4 – Schema del mescolamento delle
colonne
Fig. 5 – Architettura dei blocchi UDB
(Universal Digital Block) dei dispositivi
PSoC
1...,43,44,45,46,47,48,49,50,51,52 54,55,56,57,58,59,60,61,62,63,...92
Powered by FlippingBook