This project explores various techniques and protocols using SageMath, a powerful open-source mathematics software system. It covers topics such as Elliptic Curve Diffie-Hellman (ECDH) key exchange, homomorphic encryption, secure multi-party computation (MPC), queueing theory analysis, and RSA cryptanalysis.
The ECDH implementation allows two parties to establish a shared secret over an insecure channel using elliptic curve cryptography. The key exchange process involves defining the curve, selecting secret keys, computing public keys, exchanging keys, and validating the shared secret.
This part of the project focuses on homomorphic encryption, which enables computations on encrypted data, and secure multi-party computation (MPC), which allows multiple parties to jointly compute a function while keeping their inputs private. It covers RSA key generation, encryption, decryption, homomorphic operations, and secure computation protocols.
Using SageMath, the project analyzes queueing systems based on M/M/1 queueing theory. It calculates the probability distribution of the number of customers in the system, the expected number of customers, and the expected waiting time. The analysis provides insights into system performance under various traffic intensities.
The RSA cryptanalysis component investigates the security of RSA encryption with different key sizes and encryption exponents. It includes techniques such as low-exponent attack and Wiener's attack to assess the vulnerability of RSA to attacks. The security analysis evaluates the effectiveness of these attacks against RSA key pairs of varying parameters.