1. From our information, coding i defined as replacing words or phrases by letters or numbers, while cryptography is defined as the study of encoding (encrypting) messages and decoding (decrypting) messages. What exactly is the difference between coding and cryptography?
In cryptography, its primary purpose is to let only the authorised person to obtain the true message. Coding is a much wider term. It is the technique that we use to represent some data. It may not be used for secret messages but it can be also used for other things like computers. For example, the computer doesn't store its pictures in colours. Instead, t stores them in codes. For example, a certain shade of blue may be 1001 and another shade of blue may be 1011. ASCII codes are strings of numbers used to represent all the symbols on the keyboard. So in this case, it has nothing to do with secret messages. It's just how the machine understands our language by converting them into codes.
2. Following up to the previous question, now that you have explained to us the difference between coding and cryptography, can you please tell us how they are each used, as there seems to be much confusion about the usage of the two words?
Very often, the confusion arises because the layman uses the word code to represent what you call an encryption technique. Whenever we talk about codes, we use it very loosely to mean some ways of hiding the information, secret codes if you like. So, that's where the confusion arises. But if you want to be scientifically and technically correct, then cryptography is what we always think about just secret codes, but coding itself is just a process of translating thoughts, if you like, translating human thoughts into the machine understanding, to a machine set of data. That's what coding is all about. So, anything that does a translation is a code.
3. Are we affected by codes in our daily life? If yes, how much are we affected by them and why is it so?
There are many ways that codes affect our lives. For example, if you want to send your credit card number over the internet, you have to encrypt it. Another example is the ATM card. If you work in a company and uses your ATM card, you have to key in your PIN number. If the ATM machine doesn't encrypt you PIN number, the next thing you know is that your employee will receive the record and he will be steal your card to use it. Another kind of codes is called error correcting codes. For example, if yes is 1 and no is 0, suppose that we are supposed to transmit this information over the internet. Then halfway interference hits. So if your answer is yes and it becomes no when interference hits, the results will be disastrous. So let's change yes into 11 and no into 00. Assuming that interference hits, it will either change your options into 10 or 01. This is not a valid option and thus, you know that there was interference. Again, we can change yes into 111 and no into 222. So when interference hits and supposing that 111 changes into 101, we can come to a logical conclusion that the option was 111 at first and it changed into 101 later because of interference. Thus, the code will correct itself automatically. Another example is Microsoft Word spellchecker. Whenever we type in something wrongly, it will correct itself automatically. CDs also have error correcting codes built inside them. Whenever there's a small scratch, the computer still can read the CD. If there are no error correcting codes in CDs, the results will be disastrous. So it's hidden in everyday life.
4. Following up to the previous question, do you think that many people take codes and cryptography for granted in their lives, and as such ignore or do not bother to find out more about it? Why is this so?
Follow-up: If answer is they do not care or do not know about coding and cryptography,
What will happen if this goes on?
We tend to take things for granted like codes and cryptography. It's part of human nature that we don't really bother to find out how things work exactly.
5. What do you think coding and cryptography would be like in the future? Why so?
Cryptography for is going to become more and more important, for the simple reasons that we are likely that we are to use more and more electronics transmissions and transactions. Because of that, cryptography is going to be very important. Coding as in like error correcting codes will continue to have same importance. That's because in all this electronic transmissions, we cannot do without error correcting codes. We need to ensure that the data is not corrupted too much. So cryptography wll grow faster than coding because most practitioners are happy with the state of coding like error correcting codes but not so much with cryptography.
6. Is number theory related to coding and cryptography? How so?
Number theory is related to coding and cryptography. There is a very famous way for encryption called the RSA. R stands for Ron Rivest , S stands for Adi Shamir, A stands for Leonard Adleman , three professors from MIT. They designed the public key crypto system. There are two types of key, the secret key and the public key.
Decrypting the message is the direct reverse of encryption process. For example, if the message is encrypted by moving all the letters on place forward, the decryption will be moving them one place backwards.
Knowing the encryption process does not help in decrypting at all. Simple mathematics, which includes knowledge of modulus, WHICH IS BASCICALLY... So, RSA works by using number theory. You take two big prime numbers P and Q, and multiply them to get N.
P x Q = N, where P and Q are prime numbers
Assuming the message or number the sender want to send to you is F. You will let him/her know your N and E. E must be a number which have no common factor with (P-1) (Q-1), or in other words, have common factor 1.
The sender will calculate the message F to the power of E, and take this result mod N. It means to take the remainder where it divides by N. The remainder is C. So, the sender will send you C.
C = F^E mod (p-1) (q-1)
Decoding the message:
When you receive C, you must raise C to the power of D. D is a number such that (DE - 1) is evenly divisible by (P-1) (Q-1). Then, you take the result and divide it by N, and take the remainder, which is P, the original message or number.
The above illustration shows a simple way of number theory being used in codes and cryptography.
7. Following up to the previous question, what other relevant (very important) mathematical concepts linked to coding and cryptography do you think there are? In your opinion, which is the most important concept?
There are many, many concepts or theories used in coding and cryptography. Some of them are “combinatorics”, “probabilities” and “algebra”. HOW…
8. Until now, unbreakable codes have been created by someone, and at other times broken by someone else. Which have been the more “powerful” or important since the past? Which do you think will win in the “race”, the code-makers or code-breakers? Why so?
à Used to design some of the latest idea of codes
à Currently can only factorise up to 16
The biggest challenge is to make a code that no one can ever break. Up till now there is no code that people have ever designed that they can prove with 100% certainty that no one can ever break systematically, all codes that people made can be proved to be quite safe, only if you make certain assumptions.
For example, The RSA crypto system mentioned earlier, it depends on one very important assumption. It assumes that factorising a number is very difficult. Everything voice down to N, which is made up of the product of two prime numbers. If I can come up with a very fast and clever way of factorising all numbers, then the moment I see this N, I will know what P and Q are, and thus I will be able to calculate E, and then work out D. Then I would be able to decrypt all your messages. If this happens, RSA Company will go bankrupt overnight.
Also, in the previous stated error correcting code example of yes and no, there is an assumption that interference only hits occasionally and screws up as few bits or encoded information as possible, and thus it can correct the error back automatically. However, if interference changes the encoded messages entirely into a different message which the machine understands, it will not correct the error. So, this is a very big shortcoming, and the challenge is to create the code which is 100% safe and unbreakable.
9. What do codes do and how they can they improve someone's daily work?
- Easy to use
- Efficient and Safe
- Enhance security
- You will feel safe, and do not worry about hackers when doing your banking over the Internet.
- Efficient ways of detecting and correcting errors will lead to more efficient products. (Products refer to programs like Microsoft word? Autocorrect, which detects and corrects typo errors.)
10. In the past, are there any major historical events that are affected by codes in some way or another? What is it, and why is it affected so much by them?
Country X develops a new way of encoding their secret messages, and wins the war with Country Y because country Y is unable to decode the messages. This is very often, and we can research into perhaps the Caesar code as there are definitely stories around the codes.
In the field of cryptography, any news is bad news. If the code works well, everyone will just keep quiet about it. However, if you manage to crack someone else's code, there are different ways of expressing it. One would be to let the whole world know about it, and thus boost your own ego. The other would be to keep quiet about it, because you get nothing god for breaking others' codes, and furthermore, if you rant about it, the code will be changed, and your own fun of hacking in would be gone. So, there is rarely any news.