Universitatea Babeş-Bolyai Cluj-Napoca
Facultatea de Matematică şi Informatică
Ciclul de studii: Licenţă
Domeniul: Calculatoare şi tehnologia informaţiei
Programul de studii: Ingineria informatiei - in limba engleza
Limba de predare: Engleză

SYLLABUS

I. General data
Code	Subject	
MML0007	Computational Algebra	

Semester	Hours: C+S+L+P	Category	Status	
4	2+0+1+1	complementary	optional	

II. Full status faculty members
Name and	Scientific	Didactic	Department	Type of activity	
surname	title	title		C	S	L	
CRIVEI Septimiu	Ph.D.	Assoc.Prof.	Mathematics	*			

Associated faculty members
Name and	Scientific	Institution	Type of	Type of activity	
surname	title		position	C	S	L	

III. Course objectives
The course presents mathematical algorithms used in public key cryptography. Number-theoretic and abstract algebra algorithms will be studied and will be implemented in projects.	

IV. Course contents
1. Notions of algorithm complexity. Complexity classes. 
2. Elements of number theory.
3. Primality testing. 
4. Factorization methods.
5. Public key cryptography.
6. Applications.	

V. Bibliography
1. S. Crivei, A. Marcus, C. Sacarea, C. Szanto, Computational algebra with applications to cryptography and coding theory, Editura EFES, 2006.
2. N. Koblitz, A Course in Number Theory and Cryptography, Springer-Verlag, 1994.
3. A.J. Menezes, P.C. van Oorschot, S.A. Vanstone, Handbook of Applied Cryptography. CRC Press,
Boca Raton, 1997. (http://www.math.uwaterloo.ca/~ajmeneze)	

VI. Thematic of didactic activities per weeks
Courses:
Week 1: Classical cryptography. Examples. [2, Ch. 1]
Week 2: Public key cryptography. [2, Ch. 8]
Week 3: Algorithm complexity. [1, Ch. 1]
Week 4: Congruences. [1, Ch. 2]
Week 5: Primes, quadratic residues. [1, Ch. 6]
Week 6: Algorithms for testing primality. [1, Ch. 10]
Week 7: Factorization algorithms for integers I. [1, Ch. 11]
Week 8: Factorization algorithms for integers II. [1, Ch. 11]
Week 9: Rabin public key cryptosystem. [1, Ch. 12]
Week 10: ElGamal public key cryptosystem, finite fields. [1, Ch. 12]
Week 11: Factorization of polynomials: Berlekamp’s algortihm. [1, Ch. 8]
Week 12: Discrete logarithm.[1, Ch. 5]
Week 13: Practical aspects of public key cryptosystems I. [2, Ch. 8]
Week 14: Practical aspects of public key cryptosystems II. [2, Ch. 8]

Labs:
Week 1: Classical cryptography.
Week 2: Algorithm complexity.
Week 3: Modular arithmetics.
Week 4: Algorithms for testing primality.
Week 5: Factorization algorithms.
Week 6: Public key cryptography.
Week 7: Practical aspects of public key cryptosystems.	

VII. Didactic methods used
Exposition, presentation, algorithmization, problematization, exercise.	

VIII. Assessment
Assignments (1/2 of the grade) and labs (1/2 of the grade). 	

IX. Additional references
1. T.H. Cormen, C.E. Leirson, R.L. Rivest, Introduction to Algorithms. MIT, 1990.
2. C. Gherghe, D. Popescu, Criptografie. Coduri. Algoritmi, Editura Univ. Bucuresti, 2005.
3. D.E. Knuth, The Art of Computer Programming. Addison Wesley Longman, 1998.
4. N. Koblitz, Introduction to Number Theory and Cryptography. Springer-Verlag, New York, 1987.
5. B. Schneier, Applied Cryptography. John Wiley & Sons, 1996.	

	Dean,							Department head,
Prof. TAMBULEA Leon, Ph.D.			Prof. AGRATINI Octavian, Ph.D.

	Date,							Course responsible,
	20.12.2011						Assoc.Prof. CRIVEI Septimiu, Ph.D.