Professional Documents
Culture Documents
Presentation Template PDF
Presentation Template PDF
Adarsh Anand
Aayushi Chaudhary
15 February, 2019
Adarsh Anand Aayushi Chaudhary (IITD) Study of Grain Cipher 15 February, 2019 1 / 22
Topics which were covered in mid- semester 2 presentation
Adarsh Anand Aayushi Chaudhary (IITD) Study of Grain Cipher 15 February, 2019 2 / 22
Continue
Key initialization
Implementation In C
Adarsh Anand Aayushi Chaudhary (IITD) Study of Grain Cipher 15 February, 2019 3 / 22
Grain Cipher
Adarsh Anand Aayushi Chaudhary (IITD) Study of Grain Cipher 15 February, 2019 4 / 22
Grain Cipher
The contents of the two shift registers represent the state of the
cipher and their sizes are |K | bits each, where K is the key.
The NFSR is updated with the function g(x) and LFSR is updated
with a function f(x).
Adarsh Anand Aayushi Chaudhary (IITD) Study of Grain Cipher 15 February, 2019 5 / 22
Grain Cipher
That one bit output is again combined with the rest bit of the NFSR
to generate a keystream that will be xored with the plaintext to
generate the ciphertext.
Adarsh Anand Aayushi Chaudhary (IITD) Study of Grain Cipher 15 February, 2019 6 / 22
Key Initialization of Grain
The first 64 in case of 80 bits cipher and first 96 in case of 128 bits
cipher are loaded with IVs in the LFSR.
Adarsh Anand Aayushi Chaudhary (IITD) Study of Grain Cipher 15 February, 2019 7 / 22
Diagram depicting key initialization
Adarsh Anand Aayushi Chaudhary (IITD) Study of Grain Cipher 15 February, 2019 8 / 22
Diagram depicting key Generation
Adarsh Anand Aayushi Chaudhary (IITD) Study of Grain Cipher 15 February, 2019 9 / 22
Members of Grain Family
1. Grain V0
2. Grain V1
3. Grain 128
4. Grain 128a
Adarsh Anand Aayushi Chaudhary (IITD) Study of Grain Cipher 15 February, 2019 10 / 22
Grain V0
It is a 80 bit stream cipher that uses two feedback shift registers; one
LFSR and one NFSR of 80 bits each.
f (x) = 1 + x 18 + x 29 + x 42 + x 57 + x 67 + x 80 .
Adarsh Anand Aayushi Chaudhary (IITD) Study of Grain Cipher 15 February, 2019 11 / 22
Grain V0
Adarsh Anand Aayushi Chaudhary (IITD) Study of Grain Cipher 15 February, 2019 12 / 22
Grain V0
h(x) = h(x0 , x1 , x2 , x3 , x4 )
= x1 + x4 + x0 x3 + x2 x3 + x3 x4 + x0 x1 x2 + x0 x2 x3 +
x0 x2 x4 + x1 x2 x4 + x2 x3 x4 .
M
zt = xt h(yt+3 , yt+25 , yt+46 , yt+64 , xt+63 ).
Adarsh Anand Aayushi Chaudhary (IITD) Study of Grain Cipher 15 February, 2019 13 / 22
Grain 128
It supports a key size of |K |= 128 bits. The initial value size is |IV |=
96 bits.
Adarsh Anand Aayushi Chaudhary (IITD) Study of Grain Cipher 15 February, 2019 14 / 22
Grain 128
h(x) = x0 x1 + x2 x3 + x4 x5 + x6 x7 + x0 x4 x8
Adarsh Anand Aayushi Chaudhary (IITD) Study of Grain Cipher 15 February, 2019 15 / 22
Grain 128
M
zt = bt+j + h(x) + st+93
j∈A
where j ∈ {2,15,36,45,64,73,89}
Adarsh Anand Aayushi Chaudhary (IITD) Study of Grain Cipher 15 February, 2019 16 / 22
Implementation in C language
For Grain V0
Adarsh Anand Aayushi Chaudhary (IITD) Study of Grain Cipher 15 February, 2019 17 / 22
Improvisation of C programme
Adarsh Anand Aayushi Chaudhary (IITD) Study of Grain Cipher 15 February, 2019 18 / 22
Implementation using MATLAB and core block
Adarsh Anand Aayushi Chaudhary (IITD) Study of Grain Cipher 15 February, 2019 19 / 22
Summary
Adarsh Anand Aayushi Chaudhary (IITD) Study of Grain Cipher 15 February, 2019 20 / 22
References
Adarsh Anand Aayushi Chaudhary (IITD) Study of Grain Cipher 15 February, 2019 21 / 22
References
Adarsh Anand Aayushi Chaudhary (IITD) Study of Grain Cipher 15 February, 2019 22 / 22