This research paper surveys the landscape of cryptography, encompassing historical origins and modern applications. Beginning with foundational concepts, it explores encryption, decryption, ciphers, and keys, spanning symmetric and asymmetric cryptography. Historical context unfolds, tracing cryptography from ancient Egyptian hieroglyphs to Julius Caesar\'s cipher. The study then transitions to contemporary subjects. Elliptic Curves and Cryptography are investigated, showcasing their significance in secure communication, demonstrating ECC key exchange and AES-GCM encryption using python and Comparative analysis of ECC, RSA, and Diffie-Hellman sheds light on their performance. Zero-Knowledge Proofs are introduced as tools for privacy-preserving verification followed by an exploration of various Zero-Knowledge Proof (ZKP) protocols. By presenting practical implementation examples using Python, the paper illustrates how these proofs can be applied in real-world scenarios. Random Number Generation is examined and distinction between pseudorandom number generators (PRNGs) and cryptographically secure PRNGs (CSPRNGs) is emphasized conducting a thorough comparative analysis of PRNGs and CSPRNGs, considering factors like correlation, independence, periodicity, and entropy. Furthermore, the section evaluates the performance of different random number generation techniques. Fully Homomorphic Encryption emerges as a groundbreaking concept, discussing its mathematical properties, practical implementation, parameter selection, and optimization techniques enabling computation on encrypted data. Cryptographic Secret Sharing Schemes are explored for secure information distribution. The paper concludes by delving into the Chinese Remainder Theorem\'s applications within modern cryptographic protocols, particularly in RSA decryption and the integration factorization process of the RSA public key cryptosystem. It also provides a comprehensive overview of the theoretical foundations of primality testing, a pivotal aspect of the RSA algorithm. Overall, this research paper provides a comprehensive exploration of cryptography\'s historical context, core concepts, advanced techniques, and practical implementations, offering valuable insights into the realm of secure communication.
Introduction
I. INTRODUCTION
Cryptography [15] is a method of developing techniques and protocols to prevent a third party from accessing and gaining knowledge of the data from the private messages during a communication process. There are several terms related to cryptography, including encryption, decryption, cipher, and key.
The components of cryptography are plaintext, encryptions, ciphers, secret keys, ciphertext and decryption. In today’s age of computers [16], cryptography is often associated with the process where ordinary plain text is converted to ciphertext, which is the text made such that the intended receiver of the text can only decode it; hence, this process is known as encryption. The process of converting ciphertext to plain text is known as decryption.
There are basically three different ways in which cryptographic algorithms can be performed:
Symmetric-key Cryptography: In symmetric-key cryptography, also known as secret-key cryptography, there is only one key. The key is used for both encryption and decryption. Using a common single key creates a security problem of transferring the key between the sender and the receiver.
Asymmetric-Key Cryptography: Asymmetric-key cryptography, also known as public-key cryptography, uses a pair of keys, an encryption key and a decryption key, named public key and private key respectively. The key pair generated by this algorithm consists of a private key and a unique public key that is generated using the same algorithm.
Hash Functions: Hash functions do not make use of keys. Instead, it uses a cipher to generate a hash value of a fixed length from the plaintext. It is nearly impossible for the contents of plain text to be recovered from the ciphertext.
A. History
Cryptography is not a modern-day invention. In fact, there have been many different types of cryptography throughout history, with the first known evidence of cryptography being traced to the use of hieroglyphs." Some 4000 years ago, the Egyptians used to communicate by writing messages in hieroglyphs. This code was a secret known only to the scribes who used to transmit messages on behalf of the kings. Julius Caesar also used a form of encryption to convey secret messages to his army generals on the war front in 100 BC. This substitution cipher, known as the Caesar cipher, is perhaps the most frequently mentioned historic cipher in academic literature. During the 16th century, Vigenere designed a cipher that was supposedly the first cipher that used an encryption key.
II. ELLIPTIC CURVES AND CRYPTOGRAPHY:
A. Introduction
Elliptic curve cryptography (ECC) is a type of public key cryptography that relies on the mathematical properties of elliptic curves. An elliptic curve is a smooth, continuous curve defined by an equation of the form:
Conclusion
The current technological advancement generates a lot of data which is sensitive and more associated with an individual’s information like Personal Identifiable Information (PII) or geolocation, etc. Securing this information is very important as it can be harmful if exposed to public networks. Cryptography is a means of securing this information and ensuring that only intended recipients can make use of it.
This paper covers the detailed overview of cryptography. In this paper, a comprehensive introduction to cryptography, mathematical foundations behind it, the different cryptographic algorithms and their comparative analysis with visual representations in graphs, necessary python code snippets embedded for the readers to generate results themselves are included.
References
[1] Elliptic Curve Cryptography for Beginners. Mattrickard. https://matt-rickard.com/elliptic-curve-cryptography?fbclid=IwAR23d4HsavCaoh0Xj3JhxYhMsl4NDY6N8R7CPqJr9hdTGiCe2uXozGU6oXg
[2] Zero-knowledge proofs, explained. Shiraz Jagati. Retrieved Jul 31, 2023. https://cointelegraph.com/explained/zero-knowledge-proofs-explained?fbclid=IwAR2tMQ_abCFj3ESZPkckzfDngFGdst62fR2o5pqKW1t8rnd7vH6YcOs6S0g
[3] Barker, Elaine; Barker, William; Burr, William; Polk, William; Smid, Miles (July 2012). \"Recommendation for Key Management\" (PDF). NIST Special Publication 800-57. NIST. doi:10.6028/NIST.SP.800-57p1r3. Retrieved 19 August 2013.
[4] Pseudorandom number generators. Khan Academy. Retrieved 2016-01-11. https://www.khanacademy.org/computing/computer-science/cryptography/crypt/v/random-vs-pseudorandom-number-generators
[5] Huang, Andrew (2003). Hacking the Xbox: An Introduction to Reverse Engineering. No Starch Press Series. No Starch Press. p. 111. ISBN 9781593270292. Retrieved 2013-10-24. [...] the keystream generator [...] can be thought of as a cryptographic pseudo-random number generator (CPRNG).
[6] Dufour, Cédric. \"How to ensure entropy and proper random numbers generation in virtual machines\". Exoscale.
[7] ^ \"/dev/random Is More Like /dev/urandom With Linux 5.6 - Phoronix\". www.phoronix.com.
[8] An Intro to Fully Homomorphic Encryption for Engineers. Ravital. Retrieved Aug 30, 2021. https://blog.sunscreen.tech/an-intro-to-fully-homomorphic-encryption-for-engineers/
[9] https://www.geeksforgeeks.org/shamirs-secret-sharing-algorithm-cryptography/
[10] https://michael-khalfin.github.io/michael-khalfin-cv/Chinese%20Remainder%20Theorem%20and%20Cryptography.pdf
[11] Introduction to mathematical cryptography by P´eter Maga, Budapest Semesters in Mathematics
[12] An Introduction to Mathematical Cryptography; Jeffery Hoffstein, Jill Pipher, Joseph H. Silverman
[13] A Gentle Introduction to Number Theory and Cryptography, Notes For The Project Grad 2009, Luis Finotti
[14] A Review of Prime Numbers, Squaring Prime Pattern, Different Types of Primes and Prime Factorization Analysis, Prabhat Mahato, Aayush Shah, IJRASET, Volume – July 2023 III
[15] https://secuxtech.medium.com/history-of-cryptography-and-its-applications-b1aae0de93b0
[16] https://www.geeksforgeeks.org/cryptography-and-its-types/