# To start with: a brief history of cryptography as a preliminary part of one thesis

--

Here and after is presented a part of thesis from one business school. All the grammar mistakes and mismatches with lexics are intentional or at least taken for granted as being already written in April-May 2017.

The sincere belief of the author of current thesis is that the story about a blockchain wouldn’t be complete without the story of cryptography due to the fact that cryptography is the solid kernel of Bitcoin — the first blockchain entity came to the world.

Generally speaking, the history of cryptography — with some kind of exaggeration — could be divided into two parts. It’s not parts in terms of succession — though it could be said so — but mostly two paradigms regarding the status of encryption/decryption keys. **The first paradigm** is called a symmetric cryptography. Every cryptography system that lies under that term possesses an exact feature — there’s one key both for encryption and for decryption. For example, we can talk about Cesar’s cryptographic system that was based on the following: in order to encrypt the message in Latin language (though it may be used with any natural language) for every letter in the initial message should be used the next third one in a row. So, in order to decrypt the message, you should use the same algorithm but reversed.

There are multiple forms of symmetric-key cryptography systems that are quite secure and used today (for example, AES algorithm[1]). Although it might be very secure to different forms of attacks, any symmetric-key algorithm is biased due to the fact that the key could be stolen. In case the key both for encryption and decryption is the same, the security of the channel by which it’s transmitted becomes the first priority task. With the growing number of connections between participants in, say, supply chains or in banking transactions, the chance that there will be a leak in the information flow is increasing. Putting it another way, “The security of such systems resides entirely in the key [K]”[2].

**The second paradigm **we’d like to talk about is a public key cryptography (also called asymmetric cryptography in some papers). It bases on the assumption that, in order to keep security of the transmission of any information, there could be used to different keys — for encryption and decryption accordingly. The first public announcement of that paradigm (because there’re some facts that it first was formulated in 1970 by British cryptographer James H. Ellis) was made by Whitfield Diffie and Martin Hellman in 1976. They were influenced by Ralph Merkle’s work on public key distribution. This method (called D-H key exchange), backed by exponentiation in a finite field, was the first published practical approach for establishing a shared secret-key over an unauthenticated (but not confidential) channel without using a prior shared secret key. Though it was not essentially asymmetric — because it only established a way for unsecured key transmission — it gives a way for further algorithms — asymmetric in a strict way — that we consider next.

The architecture of that technology is quite simple — it consists of two elements, namely public and private keys. The public one is used for interaction in the network, while the private one is a self-enabler of a transaction made in network, and so it’s unique for every participant. It works as following: if A wants to transfer some money to B, A uses public key for the encryption, and then B uses its own private key to receiver the transfer.

Every public key system should be based on the same principles:

1. In terms of complexity theory, there shouldn’t be an algorithm that can beat the system by a polynomial time;

2. the keys should be connected in some sense, so that the public key is derived from private one, but the reverse function is not possible by a polynomial time (point 1);

In the broad sphere of public key cryptography there’s a specific field for the purpose of this work I’d like to address mostly. It’s called digital signature — a mathematically-based scheme that proves the authenticity of message, document etc. Instead of keeping the message secret — as public key encryption algorithms do — it allows everyone to verify that message (or transaction) occurred is for sure valid and — which is more — it helps to prevent fraud and irreversibility (regarding value transfers, double spending is a kind of irreversibility).

As generally with public key cryptography systems, digital signature is backed by the complexity of some mathematical calculations. With regard to current work, we consider two of them — factorization of the product of two large prime numbers and properties of elliptic curves.

[1] En.wikipedia.org. (2017). Advanced Encryption Standard. [online] Available at: https://en.wikipedia.org/wiki/Advanced_Encryption_Standard [Accessed 16 May 2017].

[2] Merkle R.C. Secrecy, authentication, and public key systems. Stanford Ph.D. thesis 1979, pages 13–15.