Cryptography

How Are Cryptographic Algorithms Designed?

394

Cryptography

Technology

Cryptographic algorithms play an important role in our security in the online world. They are designed in such a way that hackers can't break through them and steal information that might as well be very important to you. The cryptographic algorithms are used by Banks, social networking sites, blockchains, etc. to save important data like passwords, other personal information. These cryptographic algorithms are heavily based on mathematical theory and the limitations of modern computers. Here we are going to discuss how cryptographic algorithms like SHA-256, etc are designed. <b><h2><center>Cryptographic Algorithms Basic Requirements</b></h2></center> Mathematically speaking, cryptographic algorithms come under the umbrella of <b>NP-Hard/NP-Complete problems</b>. These are the problems that are very <b>difficult for computers to solve without brute-forcing the solution</b>. Though there isn't proof that NP-complete problems cannot be solved in a faster manner but mathematicians are quite convinced that these problems can be solved only by trying all the possible solutions one by one. This makes it hard for computers to solve the problem quickly. A modern quad-core computer can compute 100,000 hashes per second but if the domain of the problem is quite big then it would be difficult for it to find the solution even in 1 Million years. Hence we come to the second requirement for cryptographic algorithms is that the <b>domain size should be gigantic</b>. If the domain size of the problem is not gigantic then going through all the possible solutions to the problem would be easy. <b><h2><center>Common Strategies</b></h2></center> The most common strategy used for key-based cryptography is <b>substitution</b>. It takes a key and a message and substitutes the message with some random-looking message. This random-looking message can be substituted back to the original message by a decoding key. In <i><b>symmetric-key cryptography</b>, the key used for encrypting the message is the same as the key used for decrypting the message but in <b>public-key cryptography</b>, the key used for encrypting and decrypting the message is different.</i> Another way to achieve cryptography is to manipulate the message using mathematical tools in linear algebra like matrix multiplication. Apart from one symmetric-key cryptography and public-key cryptography, we have <b>cryptographic hash functions</b>. They are used for authentication purposes by many sites. They try to create a unique-looking message for every unique input and hence they are useful for storing passwords on social networking sites and personal information on blockchain-based systems. <b><h2><center>Conclusion</b></h2></center> The two main requirements for designing a cryptographic algorithm are to use an NP-Hard or NP-Complete problem with a very big domain. These problems are hard to computationally and difficult to break. Though they are not hack-proof. Especially the arrival of quantum computers makes them more vulnerable. One of the most commonly used public-key cryptographic algorithms called the RSA algorithm was broken by Peter Shor in 1994 when he discovered Shor's algorithm.

- Ojas Srivastava, 06:23 PM, 16 Mar, 2022

Algorithm Design