1
{granado, mavega , sanperez, jangomez}@unex.es Department of Technologies of Computers and Communications. University of Extremadura, Cáceres 10003 SPAIN 1. Introduction Services like pay-per-view, IP television or satellite television needs a high computational effort to guarantee the user the access to the contracted services, which could be partially or totally the same for another user. There is two techniques to make the key management: • Basic technique • Logical Key Hierarchy (LKH) The number of encryptions perform for these two techniques is shown in the next table: 2. Logical Key Hierarchy LKH consists of dividing the group into hierarchical subgroups Every subgroup has a key (help-key) shared by all users of that subgroup. The root help-key represents the group key which is used to encrypt payload data. Every user stores several keys: its identifier key (Ki), the group key (Kg), and every help-key (Ki-j) among the group key and that user in the key tree. 2.1. Memory organization Two memory structures are needed to manage the LKH: • Group Key Memory (GKM): It stores all the key tree. • Key State Memory (KST): For each help- key and the group key, KST stores a two bit state which: 00 (no children), 01 (some child in the right branch), 10, (some child in the left branch) or 11 (some child in both branches) The following figures shows an eight users GKM. 2.2. Join and Disjoin When a user join or disjoin to a group, several keys must be recalculated, encrypted and sent to the corresponding users. The following pseudocode shows the operations make in a join operation: Calculate a new user key Send this key to the new user Allocate the key in a sheet of the tree While actual node is not the root node Go to the new user’s father node Calculate a new key Encrypt this key with its left son key 2.3. Key Generation The ANSI X9.17 key generator is employed to generate new keys. The pseudocode of key generation is: I=E_K gen (D) (initialization process) K i new = E_K gen (I xor S i ) S i+1 = E_K gen (I xor K i new ) Where E_K gen (X) indicates that the block X is encrypted using the K gen key (the generation key), D is the time stamp and S i is the seed. K gen , D and S 0 are the initial data. 3. Hardware Architecture The system has been implemented using a Virtex 6 FPGA. The next figure shows the complete system: The first MicroBlaze takes care of managing the complete GKM and KSM. The second MicroBlaze takes care of calculating new keys (two encryptions are need for one key) and storing in a Key FIFO. MicroBaze 1 take new keys from this Key FIFO. The next figure shows the AES implementation: AES has been implementing using pipelining (only for clock reduction purpose), combining phases, parallelizing every byte calculation of a phase and using the xtime function to implement the MixColumn phase (the most critical one). 4. Results and Conclusions As we can see in the foloowing tables, we have achieve a low occupation implementation and we have surpassing previous works both in terms of group size and execution time. Jose M. Granado-Criado, Miguel A. Vega-Rodríguez , Juan M. Sánchez-Pérez, Juan A. Gómez-Pulido DUAL MICROBLAZE REKEYING PROCESSOR FOR GROUP KEY MANAGEMENT Basic technique LKH User join 2 2*log 2 n User disjoin n – 1 2 * (log 2 n – 1) Average O(n) O(log n) 0010 0001 0100 0011 0110 0101 1000 0111 1010 1001 1100 1011 1110 1101 1111 K g K 0-3 K 4-7 K 0-1 K 2-3 K 4-5 K 6-7 K 0 K 1 K 2 K 3 K 4 K 5 K 6 K 7 0 1 2 3 A ddres s K ey Level A ddres s K ey Level D irectCache Line M icroBlaze 1 KEY FIFO (64 K B) AES 128 AES 128 External DDR3 RAM M emory (512 M B) UART RS232 Fast Ethernet PLB Bus1 Local M em ory 1 (64K B) Local M em ory 2 (64K B) FSL 1 PLB Bus2 FSL 2 M icroBlaze 2 SB & SR MC & ARK SB & SR & ARK K ey Schedule Plain text data Encryption K ey Encrypted data Work Group size Executi on time (ms) This work 8,388,60 8 0.028 Shoufan et al. 131,072 3.91 Wong et al. 8,192 1.2 Amir et al. 50 640 Used Slices 4,216 (11%) BlockRAM 86 (20%) AES Core Slices 415 (1.1%) BlockRAM 16 (3.8%)

{ granado , mavega , sanperez , jangomez }@ unex.es

Embed Size (px)

DESCRIPTION

Dual Microblaze Rekeying Processor for Group Key Management. Jose M. Granado-Criado, Miguel A. Vega-Rodríguez , Juan M. Sánchez-Pérez, Juan A. Gómez-Pulido. 2.3. Key Generation The ANSI X9.17 key generator is employed to generate new keys. The pseudocode of key generation is : - PowerPoint PPT Presentation

Citation preview

Page 1: { granado ,  mavega  ,  sanperez ,  jangomez }@ unex.es

{granado, mavega , sanperez, jangomez}@unex.esDepartment of Technologies of Computers and Communications. University of Extremadura, Cáceres 10003 SPAIN

1. IntroductionServices like pay-per-view, IP television or satellite television

needs a high computational effort to guarantee the user the access to the contracted services, which could be partially or totally the same for another user.

There is two techniques to make the key management:• Basic technique• Logical Key Hierarchy (LKH)The number of encryptions perform for these two

techniques is shown in the next table:

2. Logical Key HierarchyLKH consists of dividing the group into hierarchical subgroups

Every subgroup has a key (help-key) shared by all users of that subgroup. The root help-key represents the group key which is used to encrypt payload data. Every user stores several keys: its identifier key (Ki), the group key (Kg), and every help-key (Ki-j) among the group key and that user in the key tree.

2.1. Memory organizationTwo memory structures are needed to manage the LKH:• Group Key Memory (GKM): It stores all the key tree. • Key State Memory (KST): For each help-key and the group

key, KST stores a two bit state which: 00 (no children), 01 (some child in the right branch), 10, (some child in the left branch) or 11 (some child in both branches)

The following figures shows an eight users GKM.

2.2. Join and DisjoinWhen a user join or disjoin to a group, several keys must be

recalculated, encrypted and sent to the corresponding users.The following pseudocode shows the operations make in a

join operation:

Calculate a new user key Send this key to the new userAllocate the key in a sheet of the treeWhile actual node is not the root node

Go to the new user’s father nodeCalculate a new keyEncrypt this key with its left son keySend the encrypted help key to all users in its left

branchEncrypt this key with its right son keySend the encrypted help key to all users in its right

branchEnd while

For a disjoin operation, the outgoing user key is erased from the tree and only the while loop is performed.

2.3. Key GenerationThe ANSI X9.17 key generator is employed to generate new

keys. The pseudocode of key generation is:

I=E_Kgen(D) (initialization process)Ki

new= E_Kgen(I xor Si)Si+1 = E_Kgen(I xor Ki

new)

Where E_Kgen(X) indicates that the block X is encrypted using the Kgen key (the generation key), D is the time stamp and Si is the seed. Kgen, D and S0 are the initial data.

3. Hardware ArchitectureThe system has been implemented using a Virtex 6 FPGA.

The next figure shows the complete system:

The first MicroBlaze takes care of managing the complete GKM and KSM. The second MicroBlaze takes care of calculating new keys (two encryptions are need for one key) and storing in a Key FIFO. MicroBaze 1 take new keys from this Key FIFO.

The next figure shows the AES implementation:

AES has been implementing using pipelining (only for clock reduction purpose), combining phases, parallelizing every byte calculation of a phase and using the xtime function to implement the MixColumn phase (the most critical one).

4. Results and ConclusionsAs we can see in the foloowing tables, we have achieve a low

occupation implementation and we have surpassing previous works both in terms of group size and execution time.

5. Future WorkA complete secure architecture will be implemented, which

will include MAC, HASH and signing functions. Moreover, to include another MicroBlaze to improve the performance will be studied.

AcknowledgmentThis work has been partially funded by the University of Extremadura under contract ACCVII-07.

Jose M. Granado-Criado, Miguel A. Vega-Rodríguez , Juan M. Sánchez-Pérez, Juan A. Gómez-Pulido

DUAL MICROBLAZE REKEYING PROCESSOR FOR GROUP KEY MANAGEMENT

Basic technique LKHUser join 2 2*log2 n

User disjoin n – 1 2 * (log2 n – 1)Average O(n) O(log n)

0010 0001

0100 0011

0110 0101

1000

0111

1010 1001

1100 1011

1110 1101

1111

Kg

K0-3

K4-7

K0-1

K2-3

K4-5

K6-7

K0

K1

K2

K3

K4

K5

K6

K7

0

1

2

3

Address

Key Level Address

Key Level

Direct Cache Line

MicroBlaze 1

KEY FIFO

(64 KB)

AES 128

AES 128

External DDR3 RAM

Memory (512 MB)

UART RS232

Fast Ethernet

PLB Bus 1

Local Memory 1

(64KB)

Local Memory 2

(64KB)

FSL 1

PLB Bus 2

FSL 2

MicroBlaze 2

SB & SR

MC &

ARK

SB & SR &

ARK

Key Schedule

Plain text data

Encryption Key

Encrypted data

Work Group sizeExecution time (ms)

This work 8,388,608 0.028Shoufan et al. 131,072 3.91Wong et al. 8,192 1.2Amir et al. 50 640

UsedSlices 4,216 (11%)BlockRAM 86 (20%)

AES CoreSlices 415 (1.1%)BlockRAM 16 (3.8%)