Anda di halaman 1dari 3

Introduction to number theory and cryptography (EE720)

Topics for assignment

March 11, 2015

General guidelines
1. Assignment will carry maximum of 20 marks.
2. Assignment submission will be in the form of a report containing code and presentation of
3. The running of the code may have to be demonstrated on trial data at the time of submission.
The results computed will be tabulated in the report.
4. The report part should be comprehensible and will also carry marks. Carelessly written report
or one which is difficult to comprehend shall invite poor marks even if the code is working
and results are worthwhile.
5. One TA shall be assigned as a mentor for the assignment who will take your submission and
help in evaluation. S/He will also help you select a stream cipher.
6. Date for submission will be declared later but will be around the last week of instructions in
this sememster.

1. Discrete log computation over Fp by BSGS algorithm with the Pohlig Hellman reduction step.
(a) Implement the Baby Step Giant Step algorithm in SAGE which will successfully compute
the discrete logs of arbitrarily given numbers with respect to a fixed primitive element
for primes p of sizes at least 10 digits upto 20 digits.
(b) Input to the program: prime p, choice of primitive element g, element a.
(c) Output: DL x such that a = g x mod p, factors of p 1.
(d) Report should document computation time for 5 randomly chosen 10 digit primes and
one 20 digit prime.
2. Discrete log computation over Fp by Index calculus.
(a) Implement the index calculus algorithm in SAGE. The program should work for primes
upto 20 digits

(b) Inputs to the program: prime p, choice of generator g, choice of largest number N for
factor base, choice of a.
(c) Output: DL x such that, a = g x mod p, factors of p 1.
(d) Report should document time taken for computation of the linear algebra step for 5
randomly chosen 10 digit primes and one 20 digit prime.
3. Factorization of RSA numbers n = pq by Fermats method.
(a) Implement the Fermats method for factoring RSA numbers n = pq in SAGE for randomly chosen primes upto 10 digit length
(b) Input: command to generate two primes p, q randomly and compute n = pq.
(c) Output: Factors of n, factors of p 1 and q 1.
(d) Report should document sizes of linear systems and time for computation of 5 randomly
chose pairs p, q of 5 digit primes and at least one 10 digit pair.
4. Cryptanalysis of a stream cipher.
(a) Select one stream cipher from the e-stream finalist ciphers. The documents are available
with your TA.
(b) Make a reduced stream cipher by reducing the shift register sizes and choosing a reduced
degree irreducible polynomial compatible with the size you have chosen. The total of
sizes of all registers must be at least 16 bit and upto 32 bits. The combining function of
the original cipher may be kept same if the number of registers are retained otherwise
this function shall also undergo a modification. Finally you will have a reduced version
of the original cipher from e-Stream family.
(c) Develop a Boolean model of the reduced stream cipher in the form
x(k + 1) = F (x(k)), z = f (x(k))
where F is a Boolean mapping of the state x(.) of the reduced cipher and f (.) is a
function of the state giving the output. Mathemtical representation of this model can
be done by expressing the functions in the map F and function f in ANF (algebraic
normal form) by storing co-efficient matrices of linear and quadratic terms on F and f .
(d) compute the function f (F (x)) as a function of the state variables.
(e) Choose 5 random initial conditions (ICs) for the registers and compute output streams
for k = 0 to k = 4n where n is the total state size.
(f) Compute the linear complexity profiles of the output streams for 2n consequtive outputs
starting from k = 2n + 1. (If the sequence has period less than 2n then contact the TA
and discuss the change in the reduced model).

Allotment of topic to teams

One of the TAs will contact you and discuss your topic, difficulties if any and give you the stream
cipher if you are doing this topic. Allotment of topic to your team is done as follows:

1. Let n be the two digit number formed by last two digits of roll number of your team leader.
2. Then
Topic Number = ((3n + 1)

mod 4) + 1

So if the roll number of a team leader is 11D070037 then the team gets the topic number
(3 37 + 1) mod 4 + 1 = 1 if this number is 123050035 then the team does topic number
(3 35 + 1) mod 4 + 1 = 3.