Cryptography is the study of writing and reading information in such a way that it is encrypted, and unreadable to anyone other than the sender or receiver. Within the context of computer science and particularly the internet, cryptography has many vital applications. These include the ability to password-protect files on disk – relevant just as much to an individual business keeping sensitive records private as to multi-million dollar industries. For example, the music, film and videogame industries rely heavily on encryption, as the production companies that make the media want to ensure it’s only accessible on certain devices or after a certain date (commonly known as DRM – Digital Rights Management). In Internet transactions – such as shopping, online banking, or even logging into a site with a password – encryption guarantees that no server sitting between a server and a receiver can read sensitive information thus compromising the peoples’ accounts or password details.
But encryption algorithms are only secure if they’re implemented correctly. To help you understand how to do so, we’re going to look into some examples and concepts below. However, don’t forget that our expert tutors on 24houranswers are ready and able to dive into the specifics of any of these algorithms – and more besides – to help resolve your homework assignment questions or simply better understand the field of cryptography.
The first encryption algorithm most people encounter when studying is also the simplest, and one of the oldest known. Named after the Roman general and emperor Julius Caesar, who used it for his private letters, the Caesar cipher works by substituting each letter in a message with another letter a fixed number of places down in the alphabet. For example, if we use a shift value of 4, the letter A would become the letter E; B would become F; and so on. When a receiver gets this message, assuming they have the correct shift value, they can reverse this by shifting backwards in the alphabet (E -> A, F-> B, etc).
In a modern context this is far too simple an encryption schema to break, to the point that it essentially offers no security. The reason for this is that it relies on a single substitution rule for all letters in the alphabet; this means that even if you don’t know the shift value, you could find patterns in the letters that help you work out what the original message is. For instance, consider the word ‘LOOK’. No matter what shift value we have, the middle two letters will be the same, and the first and last letter will only be one away from each other. Once an attacker finds a pattern like this which can only translate to a few words (as an identical double letter in English 4 letter word is most likely to be O), they can compute the shift value and solve the cipher. With computers, decrypting all 25 possible variations on the original is even more trivial, and one can easily scan the outputs to see the correct decryption.
But Caesar’s cipher (also called a shift cipher) is still useful today when it forms part of a bigger encryption algorithm. A further interesting aspect to it is that if the shift value is 13, both encryption and decryption use the same method – shift down the alphabet 13 times (looping back from Z to A at the end); or, in mathematical terms, that x = f(f(x)). In a number of computing contexts, you will see this referred to as ‘ROT-13’ (i.e. Rotation by 13).
One of the pivotal moments in history relating to encryption came during the Second World War, when the German forces developed an encryption machine known as ‘Enigma.’ At the time, the Enigma machine represented the pinnacle of cryptographic science, but it had its roots in the humble Caesar cipher.
Where a Caesar cipher falls down is that for the duration of a message, every letter in the encrypted message will always mean the same letter in the decrypted message. Thus, if you shift by 1, even if you translate the entirety of Moby Dick, every instance of ‘B’ will mean ‘A’. Where the Enigma machine succeeded was that (by a series of rotors) every time an operator input a letter, the encryption schema would change. Thus, if the letter A was pressed 4 times in a row, it would be transcribed as a different output letter each time. Furthermore, operators carried a codebook containing a list of initial-state transcriptions for each day, and so the encryption schema used would change every 24 hours. This meant that if by some chance the Allied powers cracked the schema on any given day, they’d have to begin again from scratch the next day. When you combine the volume of intercepted messages (by radio, for instance) with the fact that codebreaking had to take place within a 24 hour window, it’s easy to see why this was an impossible task. Given the fact an enigma machine had 3 rotor slots, and 5 possible rotors, and each rotor could be installed in any one of 26 positions, there were 60 possible rotor configurations (5 x 4 x 3 = 60) and 17,576 initial starting positions for the rotors (26^3 = 17,576). Massive additional complexity came from a plugboard, that enabled different letters to be paired; the plugboard allowed 10 pairs of letters to be selected, which out of a standard alphabet resulted in over 150 billion combinations. When these numbers get multiplied together, one is left with over 158 quintillion possible encryption schemas. Yet, despite this inconceivable set of possibilities, it was possible to crack the Enigma code. thanks to the work of Alan Turing and Gordon Welchman, and their Bombe machine. The pair exploited a number of flaws in Enigma’s design; for instance, no letter would ever have the same encrypted value as decrypted (e.g., if the encrypted message started with an A, the decrypted message couldn’t also start with an A). Turing’s Bombe machine worked by simulating 36 Enigma machines running at once, and were able to solve any Enigma encoded message in under 20 minutes. Given that this was possible in the 1940s, and computational capacity has increased exponentially in the intervening years, just how is it possible we have effective encryption algorithms today?
Modern cryptographic algorithms rely heavily on the factorisation of extremely large numbers. This mathematical topic is complex in and of itself, but our tutors at 24 Hour Answers can help explain this or other mathematical/computer science concepts if you’re encountering difficulty. Whether you’re trying to get to grips with how early cryptographic and mathematical principles allowed the Enigma machine to function, or understand modern methods and how they apply to situations such as blockchain and cryptocurrency, our expert advisors can give step-by-step breakdowns of the processes involved and help you get up to speed with the latest in cryptographic research. To give you a basic understanding of the topic however, let’s look at what factorisation means in practical terms.
One way to resolve the weaknesses of systems like Enigma, or the Caesar cipher, is to utilise asymmetric cryptography. Commonly known as public-key cryptography, this schema of cryptography relies on algorithms that produce “one-way” functions. An example of a one-way function is the modulo operator (%). Children are introduced to this concept early on in life, when they learn division, but probably don’t get to appreciate the power of it. The modulo operator is built into programming languages and calculates the remainder of a division operation. For example, given the equation 5 % 3 (5 modulo 3), we divide 5 by 3 and receive a result of 1. The modulo operator, returning the remainder (the numerator of the fraction), gives us a value of 2. Thus, 5 % 3 = 2. If you’re wondering why this function is one way, try and work out X in the equation X % 3 = 2. Sure, 5 is valid, but so is 2, 8, 11… Thus, a one-way function is one where it’s impossible to know the inputs, even when you know the answer.
This is an especially useful concept in the RSA algorithm, one of the backbone encryption algorithms in the world. The algorithm starts by generating keys, which involves choosing a pair of large prime numbers (p, q) and calculating their modulus (p%q). This is the input to a set of equations that result in a public key and a private key. The private key is kept secret, and the public key can be shared with anybody else. When a message is sent from user Alice to user Bob, Alice encrypts the message with Bob’s public key. However, because of the process used to generate the two keys, the message can only be decrypted with Bob’s private key (unlike a Caesar cipher, re-applying the encryption function doesn’t decrypt the message). Because Bob is the only person that knows the private key, it doesn’t matter that the message and Bob’s public key are available to the world or any attackers. The only thing that will decrypt the message from Alice is Bob’s private key, which he kept secret. However, since he can freely publish his public key to anybody, any user is able to send Bob a message that only he can read. The efficacy of this process is further increased when you consider that Alice could encrypt the message with her private key, which would only be decrypted by her public key; thus, Bob can also guarantee the message was sent by Alice, because it only makes sense when he decrypts the message a second time using her public key. This means that only Alice and Bob can send messages that make sense, and additionally they can trust the messages come from each other, and not a third-party spoofing either of their credentials.
If you would like to understand more about asymmetric cryptography and the RSA algorithm, you will find 24HourAnswers tutors ready to help you, regardless of your level of comfort with the underlying mathematics or the programmatic implementation of the algorithm. Our experts are waiting to help answer any question you have, whether you’re solving encryption related college assignments or trying to appreciate the underlying fundamentals.
Unfortunately though, this isn’t the end of the story…
The strength of an algorithm like RSA lies in the difficulty of factorising two large primes – i.e. given p%q, what are the original values of p and q? In a traditional computing setting, calculating this isn’t feasible; merely computing sufficiently large prime numbers takes a good deal of processing power, and given the one-way nature of the function, calculating the original pair of primes is exponentially more difficult.
However, these traditional algorithms and computing methods are teetering on the edge of obsolescence. Quantum computing and algorithms rely on a model that replaces the traditional bit (a 1 or a 0) with a qubit (or quantum bit). Even the fundamentals of quantum computing are beyond the scope of this article, but a qubit represents the statistical output of a bit (i.e. the superposition of 1 and 0). Whilst one bit can be fully encoded in one qubit, a qubit is capable of holding far more information by virtue of the fact it describes a probabilistic function. When applied to the field of cryptography, the ability to describe any number of possible states using only a single bit means that guessing an RSA-2048 private key on a 4099 qubit quantum computer would take a mere 10 seconds, compared to 300 trillion years on a traditional computer. This means that every previously recorded transaction, communication, or hacked databased could suddenly be exposed as soon as a sufficiently powerful quantum computer is available. Given the looming threat of this technology, how can we ever protect our data?
The future of the field lies in post-quantum cryptography. This field of research is a particularly exciting and interesting one in which to get involved. For starters, any encryption algorithm used would have to work with existing Internet protocols (like transport layer security – TLS) to be useful. The system must also be performant enough that it works in the same context, and it can’t involve such large quantities of data that encrypting traffic is too slow and expensive. That’s before even considering that the system itself must be secure! To top it all, because it’s impossible to predict exactly when quantum computers will be widespread and powerful enough to break existing encryption methods, there is a looming unknown deadline, meaning the system needs to be developed quickly. Such quantum-proof encryption is an interesting enough problem that it has captivated some of the leading minds in computer science, and it’s not hard to see why! If you would like to join them, you’ll be at the start of a long, theoretical, and mathematically demanding journey. But by the end of it, you’ll be working on some of the most vital problems in the field of computer science.
As you dive deeper into cryptoanalysis, no matter what environment or language you’re using, we have tutors available to help with any problems you might encounter. Our expert tutors can help with any aspect of cryptography, whether you’re just beginning to become familiar with traditional asymmetric encryption methods or are working on research in a quantum-proof setting. We can offer live tutors or provide writeup deliverables, where a tutor can deliver you clearly written, production quality code with accompanying detailed descriptions and documentation. More advanced students facing larger challenges will also find no shortage of help from our experts, who can help guide the design and development of your machine learning algorithm, or simply provide advice and feedback to help you make code changes and revisions as needed. Regardless of the complexity of your requirements, our seasoned veteran computer scientists are ready to help.
24HourAnswers has been helping students as an US-based online tutoring business since 2005, and our tutors have worked tirelessly to provide students with the best support possible. We are proud to be A+ rated by the Better Business Bureau (BBB), a testament to the quality support delivered by our tutors every day. We have the highest quality experts, with tutors from academia and esteemed institutions such as the Massachusetts Institute of Technology (MIT).
Should you be interested in pursuing a career in this exciting field, remember that our homework help centre is standing by 24/7 to help assist you in all aspects of computer science, including the important fields of cryptography and quantum computing. Furthermore, students interested in learning about cryptography in more detail should not miss Gary Kessler's superb review article An Overview of Cryptography.
Alexander Sofras is a technical architect with over 20 years of programming experience and 10 years in industry. He currently works in e-commerce and specialises in product discovery and recommendations.
Since we have tutors in all Cryptography related topics, we can provide a range of different services. Our online Cryptography tutors will:
With these capabilities, our college Cryptography tutors will give you the tools you need to gain a comprehensive knowledge of Cryptography you can use in future courses.
Our tutors are just as dedicated to your success in class as you are, so they are available around the clock to assist you with questions, homework, exam preparation and any Cryptography related assignments you need extra help completing.
In addition to gaining access to highly qualified tutors, you'll also strengthen your confidence level in the classroom when you work with us. This newfound confidence will allow you to apply your Cryptography knowledge in future courses and keep your education progressing smoothly.
Because our college Cryptography tutors are fully remote, seeking their help is easy. Rather than spend valuable time trying to find a local Cryptography tutor you can trust, just call on our tutors whenever you need them without any conflicting schedules getting in the way.