SlideShare uma empresa Scribd logo
1 de 24
Baixar para ler offline
Supervisor: Mrs. Pomares
Mathematic HL
Portfolio
Analysis of the stream cipher
symmetrical cryptography
encryption technic
Saturnin Pugnet Session: May 2014
Candidate Number: 001386-0055 IBS of Provence
2
* : see bibliography
Index
1. Introduction------------------------------------------------------3
2. Rational-----------------------------------------------------------3
3. Definition----------------------------------------------------------4
3.1 Basic definitions--------------------------------------------------4
3.2 Introduction to matrix-------------------------------------------4
4. Foreword---------------------------------------------------------7
5. Stream cipher---------------------------------------------------9
5.1 Presentation------------------------------------------------------9
5.2 PNRG---------------------------------------------------------------9
5.3 LSFR-------------------------------------------------------------10
5.3.1 Explanation-------------------------------------------------------10
5.3.2 Example of breaking an LSFR-------------------------------13
5.4 Algebraic Normal Form---------------------------------------16
5.5 A5/1 encryptions-----------------------------------------------18
5.6 RC4 encryptions-----------------------------------------------19
5.6.1 KSA-----------------------------------------------------------------19
5.6.2 PRGA----------------------------------------------------------20
6. Conclusion------------------------------------------------------22
7. Bibliography----------------------------------------------------23
3
* : see bibliography
1. Introduction
Ever since the Roman Empire, man has been using encrypted messages to
communicate, becoming more and more complicated over time. Nowadays with the
development of computer technologies, encrypting data in an efficient way has
become more and more important. Thus the mathematical technic used to encrypt
the message has also become more and more complicated.
Today, there are two types of encryptions: symmetrical encryption and asymmetrical
encryption. We are only going to study symmetrical encryption during this
exploration. In symmetrical encryption, there are two ciphers types:
- The block cipher which consists in encoding a message by blocks of characters
- The stream cipher that consists of encrypting the message character by character.
The goal of this exploration is to understand how symmetrical encryption works, but it
is too vast to be entirely study therefore, we are going to analyze only some stream
cipher encryption types :A5/1, RC4, LSFR.
2. Rationale
For many years I have been interested by the computer sciences and I saw this math
portfolio as a good opportunity to develop my knowledge in this subject. Although the
mathematics used in cryptography is not part of the IB program I did my own
research to be able to study it. This study was a really interesting and enriching
project which allows me to develop my understanding of security networks in
computers and the way it is link to mathematics.
4
* : see bibliography
3. Definitions
3.1 Basic definitions
Binary: It is the computer’s language; it is in base 2 using 0 and 1.
Bit: It is binary (0 or 1), it represents one figure. To convert from bit to number I have
used an online converter1
.
Octet: It is a sequence of 8 bits.
Key: It is the series that is used to produce an encrypted message by making
operation between the message and the key; it can be numbers, letters, signs etc.
Hexadecimal: It is numbers in base 16 were the 10, 11, 12, 13, 14 and 15 are
represented by A, B, C, D, E and F.
Example: From 1 to 16 it is 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E and F.
⊕ (XOR): The XOR is a simple binary operation (addition or subtraction) without
taking into account the “borrow” or “carry” addition or subtraction
give the same result in this case, that is why it is considered as a
single operation in cryptography (XOR).
Ex: 1 + 1 = 10 => without the carry = 0 = 1 XOR 1,
1-1=0 it is the same as 1 XOR 1
⊗ (AND): The AND is a binary multiplication of one figure (1 or 0) with another.
Ex: 10101111
⊗ 11
= 010101111
⊕ 101011110
= 111110001
Modulo (mod): Considering A and B two integers, A mod B gives the remainder of an
Euclidian division of A with B. It is often used to set an upper limit for the results in
cryptography. For example when dealing with letters the upper limit must be 26
because there are only 26 letters in the alphabet.
Ex: 5 mod 2 = 5-2×2 = 1; 51 mod 26 = 51-26×1 = 25
: This represents the multiplication from i=1 to i=N of Ci
.
Ex: =21
22
23
24
25
26
27
28
29
210
: Galois field9
(2) which is a finite field composed of two elements (0 and 1) where
the addition and subtraction are XOR and the multiplication are AND; most of the
calculi are done in this field as it is the one used in cryptography.
A B A XOR B
0 0 0
1 0 1
0 1 1
1 1 0
A B A AND B
0 0 0
1 0 0
0 1 0
1 1 1
5
* : see bibliography
3.2 Introduction to matrix2
Matrix: It is an array of number
this is an example of matrix with 2 columns and 2 rows.
A matrix can be multiplied by a scalar. Every number in the matrix is multiplied to the
scalar.
X × = where X
A matrix can be added or subtracted to another matrix but it must have exactly the
same number of rows and columns. When you add them together the number in the
first row, first column of the first matrix will be added to the number first row and first
column of the second matrix.
+ =
A matrix can be multiplied to another matrix but the number of column of the first
matrix must be equal to the number of rows of the second one. You multiplied each
rows of the first matrix by the columns of the second matrix. The first number of the
first row of the first matrix is multiplied with the first number of the first column of the
second matrix, the second number with the second number…etc. and they are finally
added together to give the number at the position of the row of the first one and the
column of the second one.
× =
Ex: × = =
Finally, the identity matrix is a matrix I such as A × I = I × A = A and it is characterize
by the diagonal from the top left to the bottom right of the number 1 and 0 in all other
positions. An identity matrix is always a square matrix (same numbers of rows than
columns). We usually write In where n is the number of rows and column.
Example: I2 = , I3 = and I4 =
Inverse matrix: The inverse Matrix of a matrix A is A-1
such as A× A-1
= I = A-1
× A
to find the inverse matrix of a 2×2 matrix you must use this formula
A-1
= × where A =
Example: A = A-1
= × = × =
6
* : see bibliography
For bigger matrix we can find the inverse by using an equation system as we know I
and A, during my analysis I won’t show my calculations to find inverse matrix but I
calculated it myself using equations.
7
* : see bibliography
4. Foreword
4.1 Caesar3
cipher
The use of cryptography is really old and has become more and more complex over
time. At the beginning it was simple mathematic technic such as the Caesar cipher,
used by Caesar during war time. It was not really secure but most of Caesar’s
enemies were illiterate and would assume that the message was written in an
unknown language. But as it is a simple mathematical model it had quickly become
obsolete.
Caesar cipher works on the principle that each letter correspond to a number (A=0
B=1 C=2 D=3 E=4 F=5 G=6 H=7 I=8 J=9 K=10 L=11 M=12 N=13 O=14 P=15 Q=16
R=17 S=18…) and that you change the value of each letter according to the key with
a maximum value of 26 as there is 26 letters in the alphabet.
Assuming Sn is the series of letters corresponding to the message, Cn is the series
corresponding to the encoded message and K is the key: Cn = (Sn+K) mod 26
Ex: message=HELLO with key=4:
(H+4) mod 26 = (7+4) mod 26 = 11 = L
(E+4) mod 26 = (4+4) mod 26 = 8 = I
(L+4) mod 26 = (11+4) mod 26 = 15 = P
(L+4) mod 26 = (11+4) mod 26 = 15 = P
(O+4) mod 26 = (14+4) mod 26 = 18 = S
LIPPS is the encrypted message of HELLO using Caesar cipher with a key of 4 in the
Caesar cipher.
4.2 Vinegère3
cipher
The Vinegère cipher has been the first one to introduce keys of more than one
character into the encryption. It was created at the 16th
century and was known as
the strongest encryption technic. Nevertheless, it was broken by skilled cryptanalyst
during the 17th
century but declared officially broken at the 19th
century only and out-
of-date.
The key is not as long as the message but is repeated to get the same length (key
abc for a message of 7 letters the key becomes abc abc a). To find the cipher
number you associate the letters to number (A=0, B=1, C=2…) like for the Caesar
cipher and then you add them to the key:
Assuming Sn is the series of letters corresponding to the message, Cn is the series
corresponding to the encoded message, Kn is a series representing the key and L is
the length of the key: Cn = (Sn + (Kn mod L )) mod 26
8
* : see bibliography
Ex: message=HELLO key=ABC
(H+A) mod 26 = (7+0) mod 26 = 7 = H
(E+B) mod 26 = (4+1) mod 26 = 5 = F
(L+C) mod 26 = (11+2) mod 26 = 13 = N
(L+A) mod 26 = (11+0) mod 26 = 11 = L
(O+B) mod 26 = (14+1) mod 26 = 15 = P
therefore the encrypted message would be HFNLP for HELLO using Vinegère cipher
with the key ABC.
4.3 Vernam3
cipher
A more recent encryption technic is the Vernam cipher. The main characteristic of the
Vernam cipher is that the key has the same length than the message. It was created
in 1917, and it was used during the war. The new thing about this kind of cipher is
that it is unbreakable if the key is generated randomly and if it is used only once. It is
the ancestor of stream cipher that we are going to study.
The principle is that each letter of the message corresponds to one character of the
key as in the Caesar cipher the message is modify by adding the value of the
message and the key.
Assuming Sn is the series of figure corresponding to the message, Cn is the series
corresponding to the coded message, Kn is the series corresponding to the key: Cn =
(Sn + Kn) mod 26
Ex: message=HELLO key=18654
(H+1) mod 26 = (7+1) mod 26 = 8 = I
(E+8) mod 26 = (4+8) mod 26 = 12 = M
(L+6) mod 26 = (11+6) mod 26 = 17 = R
(L+5) mod 26 = (11+5) mod 26 = 16 = Q
(O+4) mod 26 = (14+4) mod 26 = 18 = S
At the end you get IMRQS with the message HELLO using the Vernam cipher and
the key 18654.
We are often going to use binary during this study as the computer work with it. The
binary numbers after it has been encrypted by the computer sending the message
and decrypted by the computer receiving the message, are converted into letters,
informations or instruction. Moreover the binary model is just one way of studying it,
that is why sometimes number in base 10, 15, 64 or 264 are used.
9
* : see bibliography
5. Stream Cipher
5.1 Presentation
A scheme of how the streams cipher4,6
work
(⊕=XOR)
Fig 1: Scheme of a stream cipher
We define K as the series representing the key that is known by both the one that
sends the message and the one that receives it.
The Initialization Vector is a series that is changed between each encryption to avoid
that the PRNG (Pseudo Random Number Generator) is found as it is not completely
cryptographically sure (we are going to demonstrate this after). The initialization
vector can be added in several ways. For example it could use the function XOR with
the key as a parameter.
5.2 PNRG
The PRNG is a function that creates random numbers (0 or 1), it works according to
the Golomb’s criteria5
of randomness which are:
For the series , ….
1) The number of 1 and 0 must be almost equal:
0
2) A series is a suite of identical bit next to each other between two opposite bits
(example of series 1 10 01; ). There are as much series of 0
as 1.
There is S/2 series of length 1
Initialization
Vector
Pseudo Random
Number
Generator
Encrypted
message
0 or 1
0 or 1
K
Message
10
* : see bibliography
There is S/4 series of length 2
There is S/8 series of length 3
…
There is S/ series of length k
3) And finally there must be no correlation between two bits.
5.3 LSFR5
The PNRG can be an LSFR (Linear Feedback Shift Register) which is a function that
follows the Golomb’s criteria.
5.3.1 Explanation
LSFR (Linear Feedback Shift Register) are used in many stream ciphers such as
A5/1(part 5.5 of the explorations) or GSM(Global System Of Mobile Communication).
It can be represented by a series where the first bit is the output and the n last bit of
the series are used to define the next term of the series, by using the function XOR to
them. Each time an output is defined a new number is added to the series. The
following diagram is a scheme of how a LFSR work :
We defined S the series that represent the LSFR where the initial state is =0, =1,
=0, =1, =1, =1, =0 and the coefficients that represents which number are
going to be used to create the new number of the series S (1 means that they are
used, 0 means they are not used) are =1, =0, =1, =0, =1, =1, =0.
Output: GREEN
Bit used to define the new bits of the series S: RED
Result of the XOR operation of the RED bits: BLUE
EXAMPLE 1
Time
1
0 1 1 1 0 1 0/0
Output
11
* : see bibliography
Time
2
Time 3
The relation between the bits can be represented by that equation in the Galois Field
(2), the matrix is called the multiplication matrix6
where t is the number of round done
(number of output), S the series created by the LSFR, I a positive integer and C is the
series representing the bits used to create the next bits in S (coefficients):
=
.
1 0 0 1 1 1 0/0
Output10
0 0 1 1 1 0 1/1
Output 0
12
* : see bibliography
For the EXAMPLE 1:
=
.
=
.
-Period of an LSFR
For a series of n terms we know that there are different possibilities as there are
only 2 figures (0 and 1); therefore the series S must be periodic. We also know
according to the formulae above that if everything is initialized at 0 it is going to stay
at zero: = 0. Therefore the maximum length of a period of an LSFR is -1.
-Feedback Polynomial
We define the feedback polynomial of an LFSR of length L and with the coefficient C
= , … as: feedback polynomial = + , It is what represents an
LSFR.
For example the feedback polynomial of the EXAMPLE 1 ( =1, =0, =1, =0,
=1, =1, =0) L=6:
+ = + 1× + 0× + 1× + 0× + 1× + 1× + 0×
= + + + + 1
13
* : see bibliography
5.3.2 Example of breaking an LSFR6
A LFSR (which is a PRNG) is not cryptographically sure. Assuming L is the number
of bits when it initialized, we can find the complete series knowing only 2L bits
consecutive. I propose a demonstration:
(All the multiplications and additions are made in F2)
The series created by the LSFR initialized with 4 bits:
???? ???? ???? ???? 0111 1011
The goal is to find the inverse matrix of the multiplication matrix A, the matrix to
create the next bit of the serie, to be able to go back in the series
1. First we want to find the coefficients.
We define M a matrix representing the 8 bits M =
If we multiply M by the coefficients we get the bit following each rows of M:
M . =  = M-1
.
M . M-1
= I4  . =
M-1
=
Therefore the coefficients are = . =
Now, we know that C1=1, C2=1, C3=1, C4=1
And thus the Feedback Polynomial of that LSFR is X4
+ X3
+ X2
+X+1 (explanation
feedback polynomial part 5.3.1)
14
* : see bibliography
2. Now we want to find the multiplication matrix A.
We consider A the multiplication matrix of the LSFR and Sn the series created by it:
. A = .
And we know that S5 is the XOR operation of the term of the series which are
selected by the coefficient
S5 = . = . = ×S1 + ×S2 + ×S3 + ×S4
= S1 + S2 + S3 + S4
We consider A =
and we know that . A =
For the first column of the matrix ×S1+ ×S2+ ×S3+ ×S4 = S2 therefore =0, =1,
=0, =0
For the second column of the matrix ×S1+ ×S2+ ×S3+ ×S4 = S3 therefore =0,
=0, =1, =0
On the third column of the matrix ×S1+ ×S2+ ×S3+ ×S4 = S4 therefore =0,
=0, =0, =1
On the last column of the matrix ×S1+ ×S2+ ×S3+ ×S4 = S5 = S4 + S3 + S2 + S1
therefore =1, =1, =1, =1
Therefore A=
3. Thirdly we find the inverse matrix A-1
from A.
A . A-1
= I4  . =
15
* : see bibliography
A-1
=
4. And finally we use the inverse matrix A-1
to find the preceding bits.
We consider x a positive integer
. A =
. A-1
=
We multiply by the inverse matrix to go back in the LSFR
. A-1
=
. A-1
=
. A-1
=
. A-1
=
???? ???? ???? 1111 0111 1011
To break the code further you simply have to continue to multiply the four last digits
by the inverse matrix A-1
that we have found.
To conclude, we have proved that it is possible to break an LSFR knowing 2L bits
where L is the number of bits when initialized, which is why it is never used alone
because it would be too easy to break.
We are now going to analyze how it is used to overcome that problem.
16
* : see bibliography
5.4 Algebraic Normal Form
A way to use LSFR is to combine them by using the following technic
Fig 2: Scheme of an algebraic normal form function
To be able to explain F(x) we have to first of all define f(x1,x2,…xn) and Mb1b2…bn(x1,
x2… xn), two functions.
Note: do not confound F(x) and f(x)
We consider x1, x2… xn a series representing the output of the LSFR L1, L2… Ln (on
Fig 2) and we define the function f(x1, x2…xn) as a function defined by a table that
can vary depending on the encrypting method.
For this example we consider three LSFRs L1, L2, L3 and the three outputs x1, x2, x3s
The function f(x1, x2, x3) can be represented by the following table:
x1x2x3 000 001 010 100 011 101 110 111
f(x1, x2, x3) 1 0 1 1 0 0 0 1
Remember that the calculus are done in F2 (+XOR and ×AND)
For the second function which composes the Algebraic Normal Form we define the
function Mb1b2…bn (x1, x2… xn) that can be defined by the following equation:
Mb1b2…bn(x1, x2… xn) =
LSFR L1
LSFR L2
LSFR Ln
F(x) Output
17
* : see bibliography
Where we define b1, b2… bn as a series of bits and x1, x2… xn as the bits given by the
LSFRs
For the example we consider again three LSFRs L1, L2, L3 and the three outputs x1,
x2, x3
The function M010(x1, x2, x3) can be represented by the following table:
x1x2x3 000 001 010 100 011 101 110 111
M010(x1x2x3) 0 0 1 0 0 0 0 0
The algebraic normal form F(x) corresponds to the sum of the function Mb1b2…bn for
which f(b0, b1…bn) = 1.
We assume b is a series of bits, n is a positive integer (ex: b=001) and x is the series
representing the LSFRs outputs.
F(x) = =
Example:
We consider the following truth table for three LSFRs:
x1x2x3 000 001 010 100 011 101 110 111
f(x1x2x3) 1 0 1 1 0 0 0 1
F(x) = 1 × M000(x1x2x3) + 0 × M001(x1x2x3) + 1 × M010(x1x2x3) + 1 × M100(x1x2x3) + 0 ×
M011(x1x2x3) + 0 × M110(x1x2x3) + 0 × M101(x1x2x3) + 1 × M111(x1x2x3)
F(x) = M000(x1x2x3) + M010(x1x2x3) + M100(x1x2x3) + M111(x1x2x3)
Therefore,
F(x) = (x1+1)(x2+1)(x3+1) + (x1+1)x2(x3+1) + x1(x2+1)(x3+1) + x1x2x3
That we can simplify by
F(x) = (x1x2x3 + x1x2 + x2x3 + x1x3 + x1+x2 + x3 + 1) + (x1x2x3 + x1x2 + x2x3 + x2) + (x1x2x3
+ x1x2 + x1x3 + x1) + x1x2x3
= x1x2 + x3 + 1
= x1 × x2 + x3 + 1
If three LSFRs where added using the Algebraic Normal Form with the table of truth
above the results would be x1 × x2 + x3 + 1
For example for the output of LSFR1 = 10111, LSFR2 = 11010, LSFR3 = 10100 the
total output (after the use of the algebraic normal form) would be:
x1 × x2 + x3 + 1
1×1+1+1=1
0×1+0+1=1
1×0+1+1=0
18
* : see bibliography
1×1+0+1=0
1×0+0+1=1
If we had the following outputs values LSFR1 = 10111, LSFR2 = 11010, LSFR3 =
10100, the total output of those three LSFRs would be 11001 with the table of truth
above and the Algebraic Normal Form x1x2+x3+1.
19
* : see bibliography
5.5 A5/17
A5/1 is a recent method of encryption which is another example of how to use the
LSFR in a secure way. It is used for phone (GSM).
This is a scheme of how does A5/1 works
This scheme represent three LSFR (each line of cells) with feedback polynomials
(explain in part 5.3) X18
+X17
+X16
+X13
+1, X21
+X20
+1, X22
+ X21
+X20
+X7
+1. Those are
represented by the numbers which are the cells of the coefficients (defined part 5.3) .
Those LSFRs are arranged in this way, adding the outputs together to make one
single output. That increases the difficulty to break the LSFRs.
A series of steps are done before using the output to encrypt the message in order to
include the key in the LSFRs and to randomize the three LSFRs. Those steps are too
long to be explained in this study. However, this technique is another way to increase
the complexity of the result making it more difficult to solve.
119 18 17 14
122 21
8 123 22 21
Output
20
* : see bibliography
5.6 RC48
RC4 (rivest cipher 4) is a recent encryption technic which is composed of two
algorithms: the KSA and the PRGA. This type of encryption is one example of stream
cipher that doesn’t use the LSFR. It is used for the WEP (Wi-Fi Encryption Technic)
or SSL (Secure Sockets Layer).
5.6.1 KSA
KSA works as following:
We assume that:
- L is the length of the key
- K is a series representing the key such as K1=1st
term of the key
- n is a positive integer representing the number of round done (it starts at 2)
- S is a series of 256 octets where S1=0, S2=1, S3=2… S256=255 (each number is one
octet which is 8 bits)
- j is a series used with the first number of the series j1 = 1.
jn= ((jn-1 + + Kn-1 mod L-1) mod 256)+ 1, the nth
term of the series j is defined by
the precedent term, the n-1th
value of the key series and the jn-1
th
value of the S
series
Sn-1 , we exchange the two values of the numbers Sn-1 and the jn number of S
These operations are made 256 times for n=2, n=3 … n=257
To simplify in this example we put only 8 octets therefore it is mod 8 and not mod 256
and the key K values are [K1=5, K2=5, K3=6, K4=2, K5=7, K6=0, K7=6, K8=3] (the
binary values are converted into decimal number to simplify) S would be S1=0, S2=1,
S3=2, S4=3, S5=4, S6=5, S7=6, S8=7
First round:
1. j2 = ((1+0+5-1) mod 8) +1 = 6, We define j2 the second number of the series j by
adding the value of j1 which is one, the value of the last term of the series S which
was exchanged (as it is the first step this value is 0) and the first value of the key
series . Then we do “-1) mod 8)+1” at the end in order to have a result which is
always between 1 and 8, it is just a mathematical trick.
21
* : see bibliography
2. S1 S6, The value of the S series at the first place is then replaced by the value of
the number we found, 6th
place.
3. We then repeat these steps 8 times.
n values jn= (jn-1 + + Kn-1 mod L) mod 8 Sn-1 S(0 1 2 3 4 5 6 7)
2 j2 = ((j2-1+ + K2-1 mod 8-1) mod 8)+1
j2 = ((1+0+5-1) mod 8) +1 = 6
S2-1
S1 S6
S6 S2 S3 S4 S5 S1 S7 S8
5 1 2 3 4 0 6 7
3 j3 = ((6+0+5-1) mod 8) +1 = 3 S2 S3 5 2 1 3 4 0 6 7
4 j4 = ((3+1+6-1) mod 8) +1 = 2 S3 S2 5 1 2 3 4 0 6 7
5 j5 = ((2+1+2-1) mod 8) +1 = 5 S4 S5 5 1 2 4 3 0 6 7
6 j6 = ((5+3+7-1) mod 8) +1 = 7 S5 S7 5 1 2 4 6 0 3 7
7 j7 = ((7+3+0-1) mod 8) +1 = 2 S6 S2 5 0 2 4 6 1 3 7
8 j8 = ((2+0+6-1) mod 8) +1 = 8 S7 S8 5 0 2 4 6 1 7 3
9 j9 = ((8+3+3-1) mod 8) +1 = 6 S8 S6 5 0 2 4 6 3 7 1
The final value of S after 8 round will be S1=5, S2=0, S3=2, S4=4, S5=6, S6=3, S7=7,
S8=1 with the key values [K1=5, K2=5, K3=6, K4=2, K5=7, K6=0, K7=6, K8=3]
5.6.2 PRGA (pseudo random generation algorithm)
We assume that:
- n is a positive integer representing the number of round done (starting at 2)
- S is the series from the KSA
- A is a series with the first number of the series A1 equal to 1
- O is a series which represent the output
- M is the series that represent the initial message
- E is a series representing the encrypted message.
An = ((An-1 + Sn -1) mod 256) + 1, the nth
term of the series A is defined by the
precedent term and the nth
term of the series from the KSA
Sn , the nth
is exchanged with the An
th
term of the S series
On = +1 , the output is defined by the value of the “Sn + mod
256”th
term of the S series
On-1⊕Mn-1 = En-1 , The encrypted series is define by the function XOR of the “n-1”th
term of the output and the message series
To simplify the example we put only 8 octet therefore it is also mod 8 and we use the
result of the KSA example as S (S1=5, S2=0, S3=2, S4=4, S5=6, S6=3, S7=7, S8=1)
22
* : see bibliography
and the message M=101, 111, 110, 011, 000 (as it is one octet it should be 8 bits but
101 = 00000101)
First round:
1. A2 = ((1+0-1) mod 8)+1 = 1, We define the value of A2 the second number of the
series A by adding the first number of the series A, the value of the last term of the
series S that was exchanged. Then we do “-1) mod 8 )+1” at the end in order to have
a result which is always between 1 and 8, it is the same mathematical trick as before.
2. S1 S1, The value of the S series at the first place is then replaced by the value of
the number we found (which is also the 1th
place this time).
3. O2-1 = S((0+5-1) mod 8)+1 = S5 = 6 = 110, We define the value of the first term of the O by
adding the two values of the number which were exchanged and then doing the “-1)
mod 8)+1” in order to have a result between 0 and 8. Finally we take the number in
the S series at this value.
4. The last step is to use the XOR function with the first octet of the message and add
it to the value of the first term of the series O.
5. Those steps are then repeated as long as there is a message to encrypt.
n An=(An-1+Sn-1)mod 8+1 Sn S(5 0 2 4 6 3 7 1) On-1= +1 On–1⊕Mn-1
2 A2 = (A2-1+S2-1)mod 8+1
A2 = ((1+0-1)mod8)+1 = 1
S2
S2 S1
S2S1S3S4S5S6S7S8
0 5 2 4 6 3 7 1
O2-1= +1
S((0+5-1) mod 8)+1 = S5 = 6 = 110
O2–1⊕M2-1
110⊕101=011
3 A3 =((1+2-1) mod 8)+1= 3 S3 S3 0 5 2 4 6 3 7 1 S((2+2-1) mod 8)+1 = S4 = 4 = 100 100⊕111=011
4 A4 =((3+4-1) mod 8)+1= 7 S4 S7 0 5 2 7 6 3 4 1 S((7+4-1) mod 8)+1 = S3 = 2 = 010 010⊕110=100
5 A5 =((7+6-1) mod 8)+1= 5 S5 S5 0 5 2 7 6 3 4 1 S((6+6-1) mod 8)+1 = S4 = 7 = 111 111⊕011=100
6 A6 =((5+3-1) mod 8)+1= 8 S6 S8 0 5 2 7 6 1 4 3 S((1+3-1) mod 8)+1 = S4 = 7 = 111 111⊕000=111
To conclude, if your input in a RC4 is 101 111 110 011 000 and your key 5 5 6 2 7 0
6 3 you would obtain 011 011 100 100 111 if it uses 8 octets and not 256.
23
* : see bibliography
6. Conclusion
Nowadays cryptography is used everywhere and the techniques that we have seen
during this study are used in many different domains: WEP, WPA, Bluetooth and
many other transmission systems. Therefore cryptography techniques are changed
regularly in order to avoid way to break the algorithm to be found. As we are
increasingly using transmission of information since the beginning of the internet and
as the encryption techniques are known by everyone the technique must be more
complicated and re-actualize really often in order to be up-to-date. The fact that the
technic of encryption can be known by anyone makes the algorithm even harder to
make, which is why mathematicians are employed to create such complex
algorithms. During this portfolio we have seen a fraction of the encryption technique
which itself is a small part of the computer security system. This domain has many
possibilities and there are still plenty of things to discover and analyze.
To conclude, we have seen that for symmetrical encryption by stream cipher
mathematic is really present. It allows creating technic to encrypt message as well as
technic to break the encrypted message such as for LSFR. During our exploration,
we used matrix, however, it is only one way to represent the encryption making it
easier to solve as equations with unknown numbers however it is not the only
mathematical way to do it. We have also seen that the main difference with other
areas of mathematic is that the operations are done in F2 (galois field (2)) which
make the calculus different. Overall, this exploration allowed me to discover a vast
new field of mathematic.
24
* : see bibliography
7. Bibliography
1
Convertissor :
http://sebastienguillon.com/test/javascript/convertisseur.html
2
Matrix :
Book: Mathematics for the IB diploma Higher Level 2 Cambridge Hugh Neill and Douglas
Quadling page from page 385 to 404
http://www.unilim.fr/pages_perso/jean.debord/math/matrices/matrices.htm
3
Caesar, Vinegère and Vernam:
http://fr.openclassrooms.com/informatique/cours/les-premiers-algorithmes-de-
chiffrement/exemples-d-algorithmes-de-chiffrement
4
Basis on stream cipher :
http://www.di.ens.fr/~bresson/P12-M1/P12-M1-Crypto_8.pdf
5
LSFR :
http://fr.wikipedia.org/wiki/Registre_%C3%A0_d%C3%A9calage_%C3%A0_r%C3%A9troa
ction_lin%C3%A9aire
http://iml.univ-mrs.fr/~rodier/Cours/LFSR.pdf
http://www.academia.edu/1613421/An_analysis_of_linear_feedback_shift_register_in_stream
_ciphers
http://comsec.uwaterloo.ca/~ece493t/A1.pdf (Golomb randomness criteria)
6
General stream cipher + breaking LSFR :
http://perso.univ-perp.fr/christophe.negre/Enseignements/Cryptographie/Master1/slide-stream-
cipher1.pdf
7
A5/1 :
http://en.wikipedia.org/wiki/A5/1
http://www.youtube.com/watch?v=LgZAI3DdUA4
8
RC4 :
http://www.math.washington.edu/~nichifor/310_2008_Spring/Pres_RC4%20Encryption.pdf
9
Galois field :
http://en.wikipedia.org/wiki/Finite_field#F2

Mais conteúdo relacionado

Mais procurados

8 maths-ncert-chapter-1
8 maths-ncert-chapter-18 maths-ncert-chapter-1
8 maths-ncert-chapter-1akstudy1024
 
IITJEE 2011 ii- mathematics
IITJEE 2011  ii- mathematicsIITJEE 2011  ii- mathematics
IITJEE 2011 ii- mathematicsVasista Vinuthan
 
A New Double Numerical Integration Formula Based On The First Order Derivative
A New Double Numerical Integration Formula Based On The First Order DerivativeA New Double Numerical Integration Formula Based On The First Order Derivative
A New Double Numerical Integration Formula Based On The First Order DerivativeIRJESJOURNAL
 
Probabilistic approach to prime counting
Probabilistic approach to prime countingProbabilistic approach to prime counting
Probabilistic approach to prime countingChris De Corte
 
Applications of numerical methods
Applications of numerical methodsApplications of numerical methods
Applications of numerical methodsTarun Gehlot
 
An applied approach to calculas
An applied approach to calculasAn applied approach to calculas
An applied approach to calculasTarun Gehlot
 
Maths iii quick review by Dr Asish K Mukhopadhyay
Maths iii quick review by Dr Asish K MukhopadhyayMaths iii quick review by Dr Asish K Mukhopadhyay
Maths iii quick review by Dr Asish K MukhopadhyayDr. Asish K Mukhopadhyay
 
Dag representation of basic blocks
Dag representation of basic blocksDag representation of basic blocks
Dag representation of basic blocksJothi Lakshmi
 
math Vocabulary
math  Vocabularymath  Vocabulary
math Vocabularyfgeasland
 
Permutations and Combinations IIT JEE+Olympiad Lecture 4
Permutations and Combinations IIT JEE+Olympiad Lecture 4Permutations and Combinations IIT JEE+Olympiad Lecture 4
Permutations and Combinations IIT JEE+Olympiad Lecture 4Parth Nandedkar
 
Mc ty-logarithms-2009-1
Mc ty-logarithms-2009-1Mc ty-logarithms-2009-1
Mc ty-logarithms-2009-1sheetslibrary
 

Mais procurados (20)

8 maths-ncert-chapter-1
8 maths-ncert-chapter-18 maths-ncert-chapter-1
8 maths-ncert-chapter-1
 
IITJEE 2011 ii- mathematics
IITJEE 2011  ii- mathematicsIITJEE 2011  ii- mathematics
IITJEE 2011 ii- mathematics
 
A New Double Numerical Integration Formula Based On The First Order Derivative
A New Double Numerical Integration Formula Based On The First Order DerivativeA New Double Numerical Integration Formula Based On The First Order Derivative
A New Double Numerical Integration Formula Based On The First Order Derivative
 
Probabilistic approach to prime counting
Probabilistic approach to prime countingProbabilistic approach to prime counting
Probabilistic approach to prime counting
 
Applications of numerical methods
Applications of numerical methodsApplications of numerical methods
Applications of numerical methods
 
Yun math
Yun mathYun math
Yun math
 
An applied approach to calculas
An applied approach to calculasAn applied approach to calculas
An applied approach to calculas
 
Maths iii quick review by Dr Asish K Mukhopadhyay
Maths iii quick review by Dr Asish K MukhopadhyayMaths iii quick review by Dr Asish K Mukhopadhyay
Maths iii quick review by Dr Asish K Mukhopadhyay
 
Real Numbers
Real NumbersReal Numbers
Real Numbers
 
Es272 ch1
Es272 ch1Es272 ch1
Es272 ch1
 
Dag representation of basic blocks
Dag representation of basic blocksDag representation of basic blocks
Dag representation of basic blocks
 
Solution 3.
Solution 3.Solution 3.
Solution 3.
 
math Vocabulary
math  Vocabularymath  Vocabulary
math Vocabulary
 
Statistical Assignment Help
Statistical Assignment HelpStatistical Assignment Help
Statistical Assignment Help
 
Calculus Homework Help
Calculus Homework HelpCalculus Homework Help
Calculus Homework Help
 
Ch08
Ch08Ch08
Ch08
 
Stochastic Processes Homework Help
Stochastic Processes Homework Help Stochastic Processes Homework Help
Stochastic Processes Homework Help
 
Free221
Free221Free221
Free221
 
Permutations and Combinations IIT JEE+Olympiad Lecture 4
Permutations and Combinations IIT JEE+Olympiad Lecture 4Permutations and Combinations IIT JEE+Olympiad Lecture 4
Permutations and Combinations IIT JEE+Olympiad Lecture 4
 
Mc ty-logarithms-2009-1
Mc ty-logarithms-2009-1Mc ty-logarithms-2009-1
Mc ty-logarithms-2009-1
 

Destaque

Destaque (7)

Encriptacion
EncriptacionEncriptacion
Encriptacion
 
PACE-IT, Security+ 6.1: Introduction to Cryptography (part 1)
PACE-IT, Security+ 6.1: Introduction to Cryptography (part 1)PACE-IT, Security+ 6.1: Introduction to Cryptography (part 1)
PACE-IT, Security+ 6.1: Introduction to Cryptography (part 1)
 
Comparison of symmetrical and asymmetrical cascaded current source multilevel...
Comparison of symmetrical and asymmetrical cascaded current source multilevel...Comparison of symmetrical and asymmetrical cascaded current source multilevel...
Comparison of symmetrical and asymmetrical cascaded current source multilevel...
 
SSO - single sign on solution for banks and financial organizations
SSO - single sign on solution for banks and financial organizationsSSO - single sign on solution for banks and financial organizations
SSO - single sign on solution for banks and financial organizations
 
Cryptography
CryptographyCryptography
Cryptography
 
Cryptography.ppt
Cryptography.pptCryptography.ppt
Cryptography.ppt
 
Asset, Vulnerability, Threat, Risk & Control
Asset, Vulnerability, Threat, Risk & ControlAsset, Vulnerability, Threat, Risk & Control
Asset, Vulnerability, Threat, Risk & Control
 

Semelhante a internal assement 3

27-Equivalent under modulo-27-Oct-2020Material_I_27-Oct-2020_Cryptography_.pdf
27-Equivalent under modulo-27-Oct-2020Material_I_27-Oct-2020_Cryptography_.pdf27-Equivalent under modulo-27-Oct-2020Material_I_27-Oct-2020_Cryptography_.pdf
27-Equivalent under modulo-27-Oct-2020Material_I_27-Oct-2020_Cryptography_.pdfMohamedshabana38
 
Ijcatr03051008Implementation of Matrix based Mapping Method Using Elliptic Cu...
Ijcatr03051008Implementation of Matrix based Mapping Method Using Elliptic Cu...Ijcatr03051008Implementation of Matrix based Mapping Method Using Elliptic Cu...
Ijcatr03051008Implementation of Matrix based Mapping Method Using Elliptic Cu...Editor IJCATR
 
ECE 3rd_Unit No. 1_K-Map_DSD.ppt
ECE 3rd_Unit No. 1_K-Map_DSD.pptECE 3rd_Unit No. 1_K-Map_DSD.ppt
ECE 3rd_Unit No. 1_K-Map_DSD.pptsonusreekumar
 
Advance algorithm hashing lec II
Advance algorithm hashing lec IIAdvance algorithm hashing lec II
Advance algorithm hashing lec IISajid Marwat
 
tutorial5.ppt
tutorial5.ppttutorial5.ppt
tutorial5.pptjvjfvvoa
 
Module 3 polynomial functions
Module 3   polynomial functionsModule 3   polynomial functions
Module 3 polynomial functionsdionesioable
 
Carry save addition
Carry save additionCarry save addition
Carry save additionMICKYJINDAL
 
Lecture Notes: EEEC6440315 Communication Systems - Information Theory
Lecture Notes:  EEEC6440315 Communication Systems - Information TheoryLecture Notes:  EEEC6440315 Communication Systems - Information Theory
Lecture Notes: EEEC6440315 Communication Systems - Information TheoryAIMST University
 
Math vocabulary A-Z
Math vocabulary A-ZMath vocabulary A-Z
Math vocabulary A-Zfgeasland
 
elliptic-curves-modern
elliptic-curves-modernelliptic-curves-modern
elliptic-curves-modernEric Seifert
 
Answers withexplanations
Answers withexplanationsAnswers withexplanations
Answers withexplanationsGopi Saiteja
 
Chapter 6 intermediate code generation
Chapter 6   intermediate code generationChapter 6   intermediate code generation
Chapter 6 intermediate code generationVipul Naik
 
Introduction to Matlab - Basic Functions
Introduction to Matlab - Basic FunctionsIntroduction to Matlab - Basic Functions
Introduction to Matlab - Basic Functionsjoellivz
 
Linear Cryptanalysis Lecture 線形解読法
Linear Cryptanalysis Lecture 線形解読法Linear Cryptanalysis Lecture 線形解読法
Linear Cryptanalysis Lecture 線形解読法Kai Katsumata
 

Semelhante a internal assement 3 (20)

Chapter 3 2
Chapter 3 2Chapter 3 2
Chapter 3 2
 
27-Equivalent under modulo-27-Oct-2020Material_I_27-Oct-2020_Cryptography_.pdf
27-Equivalent under modulo-27-Oct-2020Material_I_27-Oct-2020_Cryptography_.pdf27-Equivalent under modulo-27-Oct-2020Material_I_27-Oct-2020_Cryptography_.pdf
27-Equivalent under modulo-27-Oct-2020Material_I_27-Oct-2020_Cryptography_.pdf
 
Ijcatr03051008Implementation of Matrix based Mapping Method Using Elliptic Cu...
Ijcatr03051008Implementation of Matrix based Mapping Method Using Elliptic Cu...Ijcatr03051008Implementation of Matrix based Mapping Method Using Elliptic Cu...
Ijcatr03051008Implementation of Matrix based Mapping Method Using Elliptic Cu...
 
ECE 3rd_Unit No. 1_K-Map_DSD.ppt
ECE 3rd_Unit No. 1_K-Map_DSD.pptECE 3rd_Unit No. 1_K-Map_DSD.ppt
ECE 3rd_Unit No. 1_K-Map_DSD.ppt
 
Es272 ch2
Es272 ch2Es272 ch2
Es272 ch2
 
Advance algorithm hashing lec II
Advance algorithm hashing lec IIAdvance algorithm hashing lec II
Advance algorithm hashing lec II
 
tutorial5.ppt
tutorial5.ppttutorial5.ppt
tutorial5.ppt
 
Module 3 polynomial functions
Module 3   polynomial functionsModule 3   polynomial functions
Module 3 polynomial functions
 
Chapter-3.pptx
Chapter-3.pptxChapter-3.pptx
Chapter-3.pptx
 
Carry save addition
Carry save additionCarry save addition
Carry save addition
 
Lecture Notes: EEEC6440315 Communication Systems - Information Theory
Lecture Notes:  EEEC6440315 Communication Systems - Information TheoryLecture Notes:  EEEC6440315 Communication Systems - Information Theory
Lecture Notes: EEEC6440315 Communication Systems - Information Theory
 
Math vocabulary A-Z
Math vocabulary A-ZMath vocabulary A-Z
Math vocabulary A-Z
 
elliptic-curves-modern
elliptic-curves-modernelliptic-curves-modern
elliptic-curves-modern
 
Answers withexplanations
Answers withexplanationsAnswers withexplanations
Answers withexplanations
 
Chapter 6 intermediate code generation
Chapter 6   intermediate code generationChapter 6   intermediate code generation
Chapter 6 intermediate code generation
 
Lec20
Lec20Lec20
Lec20
 
Introduction to Matlab - Basic Functions
Introduction to Matlab - Basic FunctionsIntroduction to Matlab - Basic Functions
Introduction to Matlab - Basic Functions
 
Rsa encryption
Rsa encryptionRsa encryption
Rsa encryption
 
Linear Cryptanalysis Lecture 線形解読法
Linear Cryptanalysis Lecture 線形解読法Linear Cryptanalysis Lecture 線形解読法
Linear Cryptanalysis Lecture 線形解読法
 
1 1 number theory
1 1 number theory1 1 number theory
1 1 number theory
 

internal assement 3

  • 1. Supervisor: Mrs. Pomares Mathematic HL Portfolio Analysis of the stream cipher symmetrical cryptography encryption technic Saturnin Pugnet Session: May 2014 Candidate Number: 001386-0055 IBS of Provence
  • 2. 2 * : see bibliography Index 1. Introduction------------------------------------------------------3 2. Rational-----------------------------------------------------------3 3. Definition----------------------------------------------------------4 3.1 Basic definitions--------------------------------------------------4 3.2 Introduction to matrix-------------------------------------------4 4. Foreword---------------------------------------------------------7 5. Stream cipher---------------------------------------------------9 5.1 Presentation------------------------------------------------------9 5.2 PNRG---------------------------------------------------------------9 5.3 LSFR-------------------------------------------------------------10 5.3.1 Explanation-------------------------------------------------------10 5.3.2 Example of breaking an LSFR-------------------------------13 5.4 Algebraic Normal Form---------------------------------------16 5.5 A5/1 encryptions-----------------------------------------------18 5.6 RC4 encryptions-----------------------------------------------19 5.6.1 KSA-----------------------------------------------------------------19 5.6.2 PRGA----------------------------------------------------------20 6. Conclusion------------------------------------------------------22 7. Bibliography----------------------------------------------------23
  • 3. 3 * : see bibliography 1. Introduction Ever since the Roman Empire, man has been using encrypted messages to communicate, becoming more and more complicated over time. Nowadays with the development of computer technologies, encrypting data in an efficient way has become more and more important. Thus the mathematical technic used to encrypt the message has also become more and more complicated. Today, there are two types of encryptions: symmetrical encryption and asymmetrical encryption. We are only going to study symmetrical encryption during this exploration. In symmetrical encryption, there are two ciphers types: - The block cipher which consists in encoding a message by blocks of characters - The stream cipher that consists of encrypting the message character by character. The goal of this exploration is to understand how symmetrical encryption works, but it is too vast to be entirely study therefore, we are going to analyze only some stream cipher encryption types :A5/1, RC4, LSFR. 2. Rationale For many years I have been interested by the computer sciences and I saw this math portfolio as a good opportunity to develop my knowledge in this subject. Although the mathematics used in cryptography is not part of the IB program I did my own research to be able to study it. This study was a really interesting and enriching project which allows me to develop my understanding of security networks in computers and the way it is link to mathematics.
  • 4. 4 * : see bibliography 3. Definitions 3.1 Basic definitions Binary: It is the computer’s language; it is in base 2 using 0 and 1. Bit: It is binary (0 or 1), it represents one figure. To convert from bit to number I have used an online converter1 . Octet: It is a sequence of 8 bits. Key: It is the series that is used to produce an encrypted message by making operation between the message and the key; it can be numbers, letters, signs etc. Hexadecimal: It is numbers in base 16 were the 10, 11, 12, 13, 14 and 15 are represented by A, B, C, D, E and F. Example: From 1 to 16 it is 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E and F. ⊕ (XOR): The XOR is a simple binary operation (addition or subtraction) without taking into account the “borrow” or “carry” addition or subtraction give the same result in this case, that is why it is considered as a single operation in cryptography (XOR). Ex: 1 + 1 = 10 => without the carry = 0 = 1 XOR 1, 1-1=0 it is the same as 1 XOR 1 ⊗ (AND): The AND is a binary multiplication of one figure (1 or 0) with another. Ex: 10101111 ⊗ 11 = 010101111 ⊕ 101011110 = 111110001 Modulo (mod): Considering A and B two integers, A mod B gives the remainder of an Euclidian division of A with B. It is often used to set an upper limit for the results in cryptography. For example when dealing with letters the upper limit must be 26 because there are only 26 letters in the alphabet. Ex: 5 mod 2 = 5-2×2 = 1; 51 mod 26 = 51-26×1 = 25 : This represents the multiplication from i=1 to i=N of Ci . Ex: =21 22 23 24 25 26 27 28 29 210 : Galois field9 (2) which is a finite field composed of two elements (0 and 1) where the addition and subtraction are XOR and the multiplication are AND; most of the calculi are done in this field as it is the one used in cryptography. A B A XOR B 0 0 0 1 0 1 0 1 1 1 1 0 A B A AND B 0 0 0 1 0 0 0 1 0 1 1 1
  • 5. 5 * : see bibliography 3.2 Introduction to matrix2 Matrix: It is an array of number this is an example of matrix with 2 columns and 2 rows. A matrix can be multiplied by a scalar. Every number in the matrix is multiplied to the scalar. X × = where X A matrix can be added or subtracted to another matrix but it must have exactly the same number of rows and columns. When you add them together the number in the first row, first column of the first matrix will be added to the number first row and first column of the second matrix. + = A matrix can be multiplied to another matrix but the number of column of the first matrix must be equal to the number of rows of the second one. You multiplied each rows of the first matrix by the columns of the second matrix. The first number of the first row of the first matrix is multiplied with the first number of the first column of the second matrix, the second number with the second number…etc. and they are finally added together to give the number at the position of the row of the first one and the column of the second one. × = Ex: × = = Finally, the identity matrix is a matrix I such as A × I = I × A = A and it is characterize by the diagonal from the top left to the bottom right of the number 1 and 0 in all other positions. An identity matrix is always a square matrix (same numbers of rows than columns). We usually write In where n is the number of rows and column. Example: I2 = , I3 = and I4 = Inverse matrix: The inverse Matrix of a matrix A is A-1 such as A× A-1 = I = A-1 × A to find the inverse matrix of a 2×2 matrix you must use this formula A-1 = × where A = Example: A = A-1 = × = × =
  • 6. 6 * : see bibliography For bigger matrix we can find the inverse by using an equation system as we know I and A, during my analysis I won’t show my calculations to find inverse matrix but I calculated it myself using equations.
  • 7. 7 * : see bibliography 4. Foreword 4.1 Caesar3 cipher The use of cryptography is really old and has become more and more complex over time. At the beginning it was simple mathematic technic such as the Caesar cipher, used by Caesar during war time. It was not really secure but most of Caesar’s enemies were illiterate and would assume that the message was written in an unknown language. But as it is a simple mathematical model it had quickly become obsolete. Caesar cipher works on the principle that each letter correspond to a number (A=0 B=1 C=2 D=3 E=4 F=5 G=6 H=7 I=8 J=9 K=10 L=11 M=12 N=13 O=14 P=15 Q=16 R=17 S=18…) and that you change the value of each letter according to the key with a maximum value of 26 as there is 26 letters in the alphabet. Assuming Sn is the series of letters corresponding to the message, Cn is the series corresponding to the encoded message and K is the key: Cn = (Sn+K) mod 26 Ex: message=HELLO with key=4: (H+4) mod 26 = (7+4) mod 26 = 11 = L (E+4) mod 26 = (4+4) mod 26 = 8 = I (L+4) mod 26 = (11+4) mod 26 = 15 = P (L+4) mod 26 = (11+4) mod 26 = 15 = P (O+4) mod 26 = (14+4) mod 26 = 18 = S LIPPS is the encrypted message of HELLO using Caesar cipher with a key of 4 in the Caesar cipher. 4.2 Vinegère3 cipher The Vinegère cipher has been the first one to introduce keys of more than one character into the encryption. It was created at the 16th century and was known as the strongest encryption technic. Nevertheless, it was broken by skilled cryptanalyst during the 17th century but declared officially broken at the 19th century only and out- of-date. The key is not as long as the message but is repeated to get the same length (key abc for a message of 7 letters the key becomes abc abc a). To find the cipher number you associate the letters to number (A=0, B=1, C=2…) like for the Caesar cipher and then you add them to the key: Assuming Sn is the series of letters corresponding to the message, Cn is the series corresponding to the encoded message, Kn is a series representing the key and L is the length of the key: Cn = (Sn + (Kn mod L )) mod 26
  • 8. 8 * : see bibliography Ex: message=HELLO key=ABC (H+A) mod 26 = (7+0) mod 26 = 7 = H (E+B) mod 26 = (4+1) mod 26 = 5 = F (L+C) mod 26 = (11+2) mod 26 = 13 = N (L+A) mod 26 = (11+0) mod 26 = 11 = L (O+B) mod 26 = (14+1) mod 26 = 15 = P therefore the encrypted message would be HFNLP for HELLO using Vinegère cipher with the key ABC. 4.3 Vernam3 cipher A more recent encryption technic is the Vernam cipher. The main characteristic of the Vernam cipher is that the key has the same length than the message. It was created in 1917, and it was used during the war. The new thing about this kind of cipher is that it is unbreakable if the key is generated randomly and if it is used only once. It is the ancestor of stream cipher that we are going to study. The principle is that each letter of the message corresponds to one character of the key as in the Caesar cipher the message is modify by adding the value of the message and the key. Assuming Sn is the series of figure corresponding to the message, Cn is the series corresponding to the coded message, Kn is the series corresponding to the key: Cn = (Sn + Kn) mod 26 Ex: message=HELLO key=18654 (H+1) mod 26 = (7+1) mod 26 = 8 = I (E+8) mod 26 = (4+8) mod 26 = 12 = M (L+6) mod 26 = (11+6) mod 26 = 17 = R (L+5) mod 26 = (11+5) mod 26 = 16 = Q (O+4) mod 26 = (14+4) mod 26 = 18 = S At the end you get IMRQS with the message HELLO using the Vernam cipher and the key 18654. We are often going to use binary during this study as the computer work with it. The binary numbers after it has been encrypted by the computer sending the message and decrypted by the computer receiving the message, are converted into letters, informations or instruction. Moreover the binary model is just one way of studying it, that is why sometimes number in base 10, 15, 64 or 264 are used.
  • 9. 9 * : see bibliography 5. Stream Cipher 5.1 Presentation A scheme of how the streams cipher4,6 work (⊕=XOR) Fig 1: Scheme of a stream cipher We define K as the series representing the key that is known by both the one that sends the message and the one that receives it. The Initialization Vector is a series that is changed between each encryption to avoid that the PRNG (Pseudo Random Number Generator) is found as it is not completely cryptographically sure (we are going to demonstrate this after). The initialization vector can be added in several ways. For example it could use the function XOR with the key as a parameter. 5.2 PNRG The PRNG is a function that creates random numbers (0 or 1), it works according to the Golomb’s criteria5 of randomness which are: For the series , …. 1) The number of 1 and 0 must be almost equal: 0 2) A series is a suite of identical bit next to each other between two opposite bits (example of series 1 10 01; ). There are as much series of 0 as 1. There is S/2 series of length 1 Initialization Vector Pseudo Random Number Generator Encrypted message 0 or 1 0 or 1 K Message
  • 10. 10 * : see bibliography There is S/4 series of length 2 There is S/8 series of length 3 … There is S/ series of length k 3) And finally there must be no correlation between two bits. 5.3 LSFR5 The PNRG can be an LSFR (Linear Feedback Shift Register) which is a function that follows the Golomb’s criteria. 5.3.1 Explanation LSFR (Linear Feedback Shift Register) are used in many stream ciphers such as A5/1(part 5.5 of the explorations) or GSM(Global System Of Mobile Communication). It can be represented by a series where the first bit is the output and the n last bit of the series are used to define the next term of the series, by using the function XOR to them. Each time an output is defined a new number is added to the series. The following diagram is a scheme of how a LFSR work : We defined S the series that represent the LSFR where the initial state is =0, =1, =0, =1, =1, =1, =0 and the coefficients that represents which number are going to be used to create the new number of the series S (1 means that they are used, 0 means they are not used) are =1, =0, =1, =0, =1, =1, =0. Output: GREEN Bit used to define the new bits of the series S: RED Result of the XOR operation of the RED bits: BLUE EXAMPLE 1 Time 1 0 1 1 1 0 1 0/0 Output
  • 11. 11 * : see bibliography Time 2 Time 3 The relation between the bits can be represented by that equation in the Galois Field (2), the matrix is called the multiplication matrix6 where t is the number of round done (number of output), S the series created by the LSFR, I a positive integer and C is the series representing the bits used to create the next bits in S (coefficients): = . 1 0 0 1 1 1 0/0 Output10 0 0 1 1 1 0 1/1 Output 0
  • 12. 12 * : see bibliography For the EXAMPLE 1: = . = . -Period of an LSFR For a series of n terms we know that there are different possibilities as there are only 2 figures (0 and 1); therefore the series S must be periodic. We also know according to the formulae above that if everything is initialized at 0 it is going to stay at zero: = 0. Therefore the maximum length of a period of an LSFR is -1. -Feedback Polynomial We define the feedback polynomial of an LFSR of length L and with the coefficient C = , … as: feedback polynomial = + , It is what represents an LSFR. For example the feedback polynomial of the EXAMPLE 1 ( =1, =0, =1, =0, =1, =1, =0) L=6: + = + 1× + 0× + 1× + 0× + 1× + 1× + 0× = + + + + 1
  • 13. 13 * : see bibliography 5.3.2 Example of breaking an LSFR6 A LFSR (which is a PRNG) is not cryptographically sure. Assuming L is the number of bits when it initialized, we can find the complete series knowing only 2L bits consecutive. I propose a demonstration: (All the multiplications and additions are made in F2) The series created by the LSFR initialized with 4 bits: ???? ???? ???? ???? 0111 1011 The goal is to find the inverse matrix of the multiplication matrix A, the matrix to create the next bit of the serie, to be able to go back in the series 1. First we want to find the coefficients. We define M a matrix representing the 8 bits M = If we multiply M by the coefficients we get the bit following each rows of M: M . =  = M-1 . M . M-1 = I4  . = M-1 = Therefore the coefficients are = . = Now, we know that C1=1, C2=1, C3=1, C4=1 And thus the Feedback Polynomial of that LSFR is X4 + X3 + X2 +X+1 (explanation feedback polynomial part 5.3.1)
  • 14. 14 * : see bibliography 2. Now we want to find the multiplication matrix A. We consider A the multiplication matrix of the LSFR and Sn the series created by it: . A = . And we know that S5 is the XOR operation of the term of the series which are selected by the coefficient S5 = . = . = ×S1 + ×S2 + ×S3 + ×S4 = S1 + S2 + S3 + S4 We consider A = and we know that . A = For the first column of the matrix ×S1+ ×S2+ ×S3+ ×S4 = S2 therefore =0, =1, =0, =0 For the second column of the matrix ×S1+ ×S2+ ×S3+ ×S4 = S3 therefore =0, =0, =1, =0 On the third column of the matrix ×S1+ ×S2+ ×S3+ ×S4 = S4 therefore =0, =0, =0, =1 On the last column of the matrix ×S1+ ×S2+ ×S3+ ×S4 = S5 = S4 + S3 + S2 + S1 therefore =1, =1, =1, =1 Therefore A= 3. Thirdly we find the inverse matrix A-1 from A. A . A-1 = I4  . =
  • 15. 15 * : see bibliography A-1 = 4. And finally we use the inverse matrix A-1 to find the preceding bits. We consider x a positive integer . A = . A-1 = We multiply by the inverse matrix to go back in the LSFR . A-1 = . A-1 = . A-1 = . A-1 = ???? ???? ???? 1111 0111 1011 To break the code further you simply have to continue to multiply the four last digits by the inverse matrix A-1 that we have found. To conclude, we have proved that it is possible to break an LSFR knowing 2L bits where L is the number of bits when initialized, which is why it is never used alone because it would be too easy to break. We are now going to analyze how it is used to overcome that problem.
  • 16. 16 * : see bibliography 5.4 Algebraic Normal Form A way to use LSFR is to combine them by using the following technic Fig 2: Scheme of an algebraic normal form function To be able to explain F(x) we have to first of all define f(x1,x2,…xn) and Mb1b2…bn(x1, x2… xn), two functions. Note: do not confound F(x) and f(x) We consider x1, x2… xn a series representing the output of the LSFR L1, L2… Ln (on Fig 2) and we define the function f(x1, x2…xn) as a function defined by a table that can vary depending on the encrypting method. For this example we consider three LSFRs L1, L2, L3 and the three outputs x1, x2, x3s The function f(x1, x2, x3) can be represented by the following table: x1x2x3 000 001 010 100 011 101 110 111 f(x1, x2, x3) 1 0 1 1 0 0 0 1 Remember that the calculus are done in F2 (+XOR and ×AND) For the second function which composes the Algebraic Normal Form we define the function Mb1b2…bn (x1, x2… xn) that can be defined by the following equation: Mb1b2…bn(x1, x2… xn) = LSFR L1 LSFR L2 LSFR Ln F(x) Output
  • 17. 17 * : see bibliography Where we define b1, b2… bn as a series of bits and x1, x2… xn as the bits given by the LSFRs For the example we consider again three LSFRs L1, L2, L3 and the three outputs x1, x2, x3 The function M010(x1, x2, x3) can be represented by the following table: x1x2x3 000 001 010 100 011 101 110 111 M010(x1x2x3) 0 0 1 0 0 0 0 0 The algebraic normal form F(x) corresponds to the sum of the function Mb1b2…bn for which f(b0, b1…bn) = 1. We assume b is a series of bits, n is a positive integer (ex: b=001) and x is the series representing the LSFRs outputs. F(x) = = Example: We consider the following truth table for three LSFRs: x1x2x3 000 001 010 100 011 101 110 111 f(x1x2x3) 1 0 1 1 0 0 0 1 F(x) = 1 × M000(x1x2x3) + 0 × M001(x1x2x3) + 1 × M010(x1x2x3) + 1 × M100(x1x2x3) + 0 × M011(x1x2x3) + 0 × M110(x1x2x3) + 0 × M101(x1x2x3) + 1 × M111(x1x2x3) F(x) = M000(x1x2x3) + M010(x1x2x3) + M100(x1x2x3) + M111(x1x2x3) Therefore, F(x) = (x1+1)(x2+1)(x3+1) + (x1+1)x2(x3+1) + x1(x2+1)(x3+1) + x1x2x3 That we can simplify by F(x) = (x1x2x3 + x1x2 + x2x3 + x1x3 + x1+x2 + x3 + 1) + (x1x2x3 + x1x2 + x2x3 + x2) + (x1x2x3 + x1x2 + x1x3 + x1) + x1x2x3 = x1x2 + x3 + 1 = x1 × x2 + x3 + 1 If three LSFRs where added using the Algebraic Normal Form with the table of truth above the results would be x1 × x2 + x3 + 1 For example for the output of LSFR1 = 10111, LSFR2 = 11010, LSFR3 = 10100 the total output (after the use of the algebraic normal form) would be: x1 × x2 + x3 + 1 1×1+1+1=1 0×1+0+1=1 1×0+1+1=0
  • 18. 18 * : see bibliography 1×1+0+1=0 1×0+0+1=1 If we had the following outputs values LSFR1 = 10111, LSFR2 = 11010, LSFR3 = 10100, the total output of those three LSFRs would be 11001 with the table of truth above and the Algebraic Normal Form x1x2+x3+1.
  • 19. 19 * : see bibliography 5.5 A5/17 A5/1 is a recent method of encryption which is another example of how to use the LSFR in a secure way. It is used for phone (GSM). This is a scheme of how does A5/1 works This scheme represent three LSFR (each line of cells) with feedback polynomials (explain in part 5.3) X18 +X17 +X16 +X13 +1, X21 +X20 +1, X22 + X21 +X20 +X7 +1. Those are represented by the numbers which are the cells of the coefficients (defined part 5.3) . Those LSFRs are arranged in this way, adding the outputs together to make one single output. That increases the difficulty to break the LSFRs. A series of steps are done before using the output to encrypt the message in order to include the key in the LSFRs and to randomize the three LSFRs. Those steps are too long to be explained in this study. However, this technique is another way to increase the complexity of the result making it more difficult to solve. 119 18 17 14 122 21 8 123 22 21 Output
  • 20. 20 * : see bibliography 5.6 RC48 RC4 (rivest cipher 4) is a recent encryption technic which is composed of two algorithms: the KSA and the PRGA. This type of encryption is one example of stream cipher that doesn’t use the LSFR. It is used for the WEP (Wi-Fi Encryption Technic) or SSL (Secure Sockets Layer). 5.6.1 KSA KSA works as following: We assume that: - L is the length of the key - K is a series representing the key such as K1=1st term of the key - n is a positive integer representing the number of round done (it starts at 2) - S is a series of 256 octets where S1=0, S2=1, S3=2… S256=255 (each number is one octet which is 8 bits) - j is a series used with the first number of the series j1 = 1. jn= ((jn-1 + + Kn-1 mod L-1) mod 256)+ 1, the nth term of the series j is defined by the precedent term, the n-1th value of the key series and the jn-1 th value of the S series Sn-1 , we exchange the two values of the numbers Sn-1 and the jn number of S These operations are made 256 times for n=2, n=3 … n=257 To simplify in this example we put only 8 octets therefore it is mod 8 and not mod 256 and the key K values are [K1=5, K2=5, K3=6, K4=2, K5=7, K6=0, K7=6, K8=3] (the binary values are converted into decimal number to simplify) S would be S1=0, S2=1, S3=2, S4=3, S5=4, S6=5, S7=6, S8=7 First round: 1. j2 = ((1+0+5-1) mod 8) +1 = 6, We define j2 the second number of the series j by adding the value of j1 which is one, the value of the last term of the series S which was exchanged (as it is the first step this value is 0) and the first value of the key series . Then we do “-1) mod 8)+1” at the end in order to have a result which is always between 1 and 8, it is just a mathematical trick.
  • 21. 21 * : see bibliography 2. S1 S6, The value of the S series at the first place is then replaced by the value of the number we found, 6th place. 3. We then repeat these steps 8 times. n values jn= (jn-1 + + Kn-1 mod L) mod 8 Sn-1 S(0 1 2 3 4 5 6 7) 2 j2 = ((j2-1+ + K2-1 mod 8-1) mod 8)+1 j2 = ((1+0+5-1) mod 8) +1 = 6 S2-1 S1 S6 S6 S2 S3 S4 S5 S1 S7 S8 5 1 2 3 4 0 6 7 3 j3 = ((6+0+5-1) mod 8) +1 = 3 S2 S3 5 2 1 3 4 0 6 7 4 j4 = ((3+1+6-1) mod 8) +1 = 2 S3 S2 5 1 2 3 4 0 6 7 5 j5 = ((2+1+2-1) mod 8) +1 = 5 S4 S5 5 1 2 4 3 0 6 7 6 j6 = ((5+3+7-1) mod 8) +1 = 7 S5 S7 5 1 2 4 6 0 3 7 7 j7 = ((7+3+0-1) mod 8) +1 = 2 S6 S2 5 0 2 4 6 1 3 7 8 j8 = ((2+0+6-1) mod 8) +1 = 8 S7 S8 5 0 2 4 6 1 7 3 9 j9 = ((8+3+3-1) mod 8) +1 = 6 S8 S6 5 0 2 4 6 3 7 1 The final value of S after 8 round will be S1=5, S2=0, S3=2, S4=4, S5=6, S6=3, S7=7, S8=1 with the key values [K1=5, K2=5, K3=6, K4=2, K5=7, K6=0, K7=6, K8=3] 5.6.2 PRGA (pseudo random generation algorithm) We assume that: - n is a positive integer representing the number of round done (starting at 2) - S is the series from the KSA - A is a series with the first number of the series A1 equal to 1 - O is a series which represent the output - M is the series that represent the initial message - E is a series representing the encrypted message. An = ((An-1 + Sn -1) mod 256) + 1, the nth term of the series A is defined by the precedent term and the nth term of the series from the KSA Sn , the nth is exchanged with the An th term of the S series On = +1 , the output is defined by the value of the “Sn + mod 256”th term of the S series On-1⊕Mn-1 = En-1 , The encrypted series is define by the function XOR of the “n-1”th term of the output and the message series To simplify the example we put only 8 octet therefore it is also mod 8 and we use the result of the KSA example as S (S1=5, S2=0, S3=2, S4=4, S5=6, S6=3, S7=7, S8=1)
  • 22. 22 * : see bibliography and the message M=101, 111, 110, 011, 000 (as it is one octet it should be 8 bits but 101 = 00000101) First round: 1. A2 = ((1+0-1) mod 8)+1 = 1, We define the value of A2 the second number of the series A by adding the first number of the series A, the value of the last term of the series S that was exchanged. Then we do “-1) mod 8 )+1” at the end in order to have a result which is always between 1 and 8, it is the same mathematical trick as before. 2. S1 S1, The value of the S series at the first place is then replaced by the value of the number we found (which is also the 1th place this time). 3. O2-1 = S((0+5-1) mod 8)+1 = S5 = 6 = 110, We define the value of the first term of the O by adding the two values of the number which were exchanged and then doing the “-1) mod 8)+1” in order to have a result between 0 and 8. Finally we take the number in the S series at this value. 4. The last step is to use the XOR function with the first octet of the message and add it to the value of the first term of the series O. 5. Those steps are then repeated as long as there is a message to encrypt. n An=(An-1+Sn-1)mod 8+1 Sn S(5 0 2 4 6 3 7 1) On-1= +1 On–1⊕Mn-1 2 A2 = (A2-1+S2-1)mod 8+1 A2 = ((1+0-1)mod8)+1 = 1 S2 S2 S1 S2S1S3S4S5S6S7S8 0 5 2 4 6 3 7 1 O2-1= +1 S((0+5-1) mod 8)+1 = S5 = 6 = 110 O2–1⊕M2-1 110⊕101=011 3 A3 =((1+2-1) mod 8)+1= 3 S3 S3 0 5 2 4 6 3 7 1 S((2+2-1) mod 8)+1 = S4 = 4 = 100 100⊕111=011 4 A4 =((3+4-1) mod 8)+1= 7 S4 S7 0 5 2 7 6 3 4 1 S((7+4-1) mod 8)+1 = S3 = 2 = 010 010⊕110=100 5 A5 =((7+6-1) mod 8)+1= 5 S5 S5 0 5 2 7 6 3 4 1 S((6+6-1) mod 8)+1 = S4 = 7 = 111 111⊕011=100 6 A6 =((5+3-1) mod 8)+1= 8 S6 S8 0 5 2 7 6 1 4 3 S((1+3-1) mod 8)+1 = S4 = 7 = 111 111⊕000=111 To conclude, if your input in a RC4 is 101 111 110 011 000 and your key 5 5 6 2 7 0 6 3 you would obtain 011 011 100 100 111 if it uses 8 octets and not 256.
  • 23. 23 * : see bibliography 6. Conclusion Nowadays cryptography is used everywhere and the techniques that we have seen during this study are used in many different domains: WEP, WPA, Bluetooth and many other transmission systems. Therefore cryptography techniques are changed regularly in order to avoid way to break the algorithm to be found. As we are increasingly using transmission of information since the beginning of the internet and as the encryption techniques are known by everyone the technique must be more complicated and re-actualize really often in order to be up-to-date. The fact that the technic of encryption can be known by anyone makes the algorithm even harder to make, which is why mathematicians are employed to create such complex algorithms. During this portfolio we have seen a fraction of the encryption technique which itself is a small part of the computer security system. This domain has many possibilities and there are still plenty of things to discover and analyze. To conclude, we have seen that for symmetrical encryption by stream cipher mathematic is really present. It allows creating technic to encrypt message as well as technic to break the encrypted message such as for LSFR. During our exploration, we used matrix, however, it is only one way to represent the encryption making it easier to solve as equations with unknown numbers however it is not the only mathematical way to do it. We have also seen that the main difference with other areas of mathematic is that the operations are done in F2 (galois field (2)) which make the calculus different. Overall, this exploration allowed me to discover a vast new field of mathematic.
  • 24. 24 * : see bibliography 7. Bibliography 1 Convertissor : http://sebastienguillon.com/test/javascript/convertisseur.html 2 Matrix : Book: Mathematics for the IB diploma Higher Level 2 Cambridge Hugh Neill and Douglas Quadling page from page 385 to 404 http://www.unilim.fr/pages_perso/jean.debord/math/matrices/matrices.htm 3 Caesar, Vinegère and Vernam: http://fr.openclassrooms.com/informatique/cours/les-premiers-algorithmes-de- chiffrement/exemples-d-algorithmes-de-chiffrement 4 Basis on stream cipher : http://www.di.ens.fr/~bresson/P12-M1/P12-M1-Crypto_8.pdf 5 LSFR : http://fr.wikipedia.org/wiki/Registre_%C3%A0_d%C3%A9calage_%C3%A0_r%C3%A9troa ction_lin%C3%A9aire http://iml.univ-mrs.fr/~rodier/Cours/LFSR.pdf http://www.academia.edu/1613421/An_analysis_of_linear_feedback_shift_register_in_stream _ciphers http://comsec.uwaterloo.ca/~ece493t/A1.pdf (Golomb randomness criteria) 6 General stream cipher + breaking LSFR : http://perso.univ-perp.fr/christophe.negre/Enseignements/Cryptographie/Master1/slide-stream- cipher1.pdf 7 A5/1 : http://en.wikipedia.org/wiki/A5/1 http://www.youtube.com/watch?v=LgZAI3DdUA4 8 RC4 : http://www.math.washington.edu/~nichifor/310_2008_Spring/Pres_RC4%20Encryption.pdf 9 Galois field : http://en.wikipedia.org/wiki/Finite_field#F2