02.12.2012 Views

EPCBC - A Block Cipher Suitable for Electronic Product Code ...

EPCBC - A Block Cipher Suitable for Electronic Product Code ...

EPCBC - A Block Cipher Suitable for Electronic Product Code ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

3.1 <strong>EPCBC</strong>(48,96) - <strong>EPCBC</strong> with 48-bit block size and 96-bit key size<br />

The main cipher of <strong>EPCBC</strong>(48,96) iterates the PR-48 structure <strong>for</strong> 32 rounds, i.e. it uses the PRESENT<br />

description of Section 4.1 with n = 48 and r = 32. Due to n = 48, <strong>EPCBC</strong>(48,96) will be suited <strong>for</strong><br />

applications with the key being changed frequently. The choice of r = 32 ensures security of the cipher<br />

against differential and linear cryptanalysis as explained in Section 5.1.<br />

However, the key schedule of <strong>EPCBC</strong>(48,96) is different from that of PRESENT. The <strong>EPCBC</strong>(48,96)<br />

key schedule takes in the 96-bit secret key as a 96-bit keystate. The left half of the keystate is taken as<br />

the first subkey. Then a variant-Feistel structure is applied to the keystate <strong>for</strong> 8 rounds. Each nonlinear<br />

function F of the Feistel variant consists of 4 rounds of the PR-48 main cipher structure where a subkey<br />

is output after each round, giving 8 × 4 + 1 = 33 subkeys in total. The following is a description of<br />

the <strong>EPCBC</strong>(48,96) key schedule where 1Round denotes one round of PR-48 without subkey addition.<br />

Subkey[i] represents the subkey <strong>for</strong> round i of the main cipher.<br />

(LKeystate,RKeystate) = 96-bit key<br />

Subkey[0] ← LKeystate<br />

<strong>for</strong> i = 0 to 7 do<br />

temp ← LKeystate ⊕ RKeystate<br />

<strong>for</strong> j = 0 to 3 do<br />

RKeystate ← 1Round(RKeystate) ⊕ (4i+j)<br />

Subkey[4i+j +1] ← RKeystate<br />

end <strong>for</strong><br />

LKeystate ← RKeystate<br />

RKeystate ← temp<br />

end <strong>for</strong><br />

3.2 <strong>EPCBC</strong>(96,96) - <strong>EPCBC</strong> with 96-bit block size and 96-bit key size<br />

The main cipher of <strong>EPCBC</strong>(96,96) iterates the PR-96 structure <strong>for</strong> 32 rounds, i.e. it uses the PRESENT<br />

description of Section 4.1 with n = 96 and r = 32. The choice of r = 32 ensures security of the<br />

cipher against differential and linear cryptanalysis as explained in Section 5.1. The key schedule of<br />

<strong>EPCBC</strong>(96,96) is also different from the PRESENT key schedule. It takes in the 96-bit secret key as a<br />

96-bit keystate, outputs this keystate as the first subkey and applies the PR-96 main cipher structure 1<br />

to it <strong>for</strong> 32 rounds where a subkey is output after each round. Let 1Round denote one round of PR-96<br />

without subkey addition. Subkey[i] represents the subkey <strong>for</strong> round i of the main cipher.<br />

Keystate = 96-bit key<br />

Subkey[0] ← Keystate<br />

<strong>for</strong> i = 0 to 31 do<br />

Keystate ← 1Round(Keystate) ⊕ i<br />

Subkey[i+1] ← Keystate<br />

end <strong>for</strong><br />

4 Improved Differential and Linear Cryptanalyis of PR-n<br />

As we are using the structure of PRESENT <strong>for</strong> the main cipher of <strong>EPCBC</strong>, we did a security analysis of<br />

n-bit block size PRESENT (PR-n) against differential and linear cryptanalysis, and, we obtained new<br />

results. We first give a brief description of PR-n.<br />

1 Note that the hash function WHIRLPOOL[3] and the block cipher SMS4[19] also use an identical function <strong>for</strong><br />

both their main cipher and key schedule.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!