This repository features a series of cryptographic algorithms and exercises developed during an internship at KIT. It provides practical insights into various cryptographic methods and their applications.
The repository is divided into several sections, each focusing on a specific cryptographic concept:
- Diffie-Hellman Key Exchange: Implementation of the classic Diffie-Hellman algorithm for secure key exchange. This section demonstrates the establishment of a shared secret between parties in a cryptographic communication.
- RSA Padding: Focuses on padding schemes in RSA encryption, highlighting the importance of secure padding in preventing vulnerabilities such as oracle attacks.
- Elliptic Curve Cryptography (ECC): Exploration of ECC, particularly focusing on invalid curves. This section delves into the subtleties of ECC and the significance of curve selection in ensuring cryptographic strength.
- Permutation Cryptanalysis: Practical exercises in analyzing and attacking permutation-based encryption schemes. This segment covers the methods for deciphering or compromising encryption that relies on permutation.
- PIN Security: Examining the security aspects of Personal Identification Numbers (PINs) in the context of EC cards, emphasizing techniques to enhance PIN security.
- Small Exponent Attack: Handling and mitigating small exponent attacks in cryptographic systems. This part explores the vulnerabilities associated with small exponents in RSA and methods to counteract them.
- Signature and Hashing: Implementations of various digital signature and hashing algorithms. It highlights the role of these techniques in ensuring data integrity and authentication in cryptographic systems.