Algebra for coding theory and cryptography

I am currently giving a course on Algebra for Coding Theory and cryptography, aimed ad both undergraduate and graduate students. The aim of this course is to introduce the necessary mathematical tools for the construction of encryption schemes and protocols and their cryptanalysis. Among the topics presented there are:
  1. Elements of group theory
  2. Public-key protocols based on the discrete log problem: Diffie-Hellman, ElGamal, STS and their variants
  3. Pairing based cryptography: ID-based encryption and key escrow
  4. Elements of number theory
  5. RSA: implementation and cryptanalysis; OAEP and some security models
  6. Primality testing
  7. Digital signature
  8. Finite fields
  9. The construction of AES
  10. Cryptanalysis of a symmetric cryptosystem
  11. Elements of the theory of Elliptic Curves
  12. Random numbers and randomness
  13. Cryptographic hash functions
  14. Oblivious transfer and secure multipary computation
  15. Homomorphic cryptography
  16. Anonimity schemes
  17. Error correcting codes
  18. Network coding
More details and an extensive bibliography are available (in italian) on the following pages:
  1. 2016-17
  2. 2015-16
  3. 2014-15
  4. 2013-14
  5. 2012-13
  6. 2011-12
  7. 2010-11

Algebra and Geometry

I have been giving a basic course on Algebra and Geometry to first year students in Electronic Engineering and Informatic Engineering since 2013. The relevant pages of the courses are In 2013, I have been giving a similar course to the students of Civil Engineering.

Combinatorial Geometry

I have also given a course on Combinatorial Geometry at Università Cattolica in 2011. The aim of this course was to introduce some of the most important techniques and results in Combinatorial Geometry. In particular, among the topics discussed there will be:
  1. Introduction to linear spaces and designs; the De Brujin-Erdős theorem and some of its consequences
  2. Parameters of a design and bounds on the parameters of a symmetric 2-design
  3. Hadamard 2-designs and Hadamard matrices: properties and some constructions; extension of a design and Hadamard 3-designs
  4. The Bruck-Ryser-Chowla theorem and its consequences
  5. Finite projective spaces and finite projective planes
  6. Arcs and ovals in a Finite projective plane: the theorem of Segre and the existence of hyperovals in even characteristic
  7. Blocking sets, Baer subplanes and Unitals
  8. Applications to coding theory.
The main page for the course is here.

Topics in Algebra and Geometry

During the 2008/09 and 2009/10 academic years, I gave a course on ``Topics in Algebra and Geometry'', offered to 4th year students in Civil Engineering at Università degli Studi di Brescia. Main topics of this course are matrix theory and applications and an introduction to curves and surfaces in projective spaces. A bibliography and some lecture notes are available here.

Algebra and Geometry

In the 2006/07 and 2007/08 academic years, I taught course on Algebra and Geometry for first year undergraduate students of Mechanical Engineering at Politecnico di Bari. All relevant information is available (in italian) here.

Coding theory

In 2004/05 I gave a one semester course on Coding Theory at Università Cattolica. The book Codici correttori - un'introduzione arose from this experience.


  1. Notes on Discrete Maths (in Italian).
  2. Some introductory notes on Classical Cryptography with A. Sonnino, as presented during the 2005 Summer school "G. Tallini" (Potenza, in Italian).
  3. Notes of the lectures on An introduction to algebraic decoding of cyclic codes, 29-05-2006 and 31-05-2006, Facoltà di Ingegreria (Brescia).

Teaching seminars

  1. 09-07-2004, Geometry in Cryptography, talk on Elliptic Curves Cryptography, delivered at the 2004 Summer School "G. Tallini (Brescia).
  2. 01-12-2004, Cryptography, security and anonimity, Facoltà di Ingengeria (Brescia)