BITCOIN – In case you have not watched the explanation

https://www.khanacademy.org/economics-finance-domain/core-finance/money-and-banking/bitcoin/v/bitcoin-what-is-it

Reading AssignmentAttached Files:

Emperor.pdf (2.271 MB)

Computing a Digital SignatureWhat is a Digital Signature?

There are two things that you have to prove when you are signing a document:

Your identity

The integrity of the document

Let us see how we can achieve these two requirements in the digital world. The first thing we are going to do is to guarantee that a document is authentic. I think we have the process to ensure that a document has not changed in transmission or in storage. Hashing the document will produce a hash value that is unique to the document. Using SHA-1, when we hash a document, we’ll compute a 160-bit hash value. This is sometimes called a message digest.

We now have a message or file, a hash value that can be used to prove the authenticity of the message or file. Now, what we are going to do is encrypt the hash value with the private key of the owner of the document. The document and the encrypted hashed value of the message or file are transmitted.

The recipient receives the document and the encrypted hash value. Remember, WE ARE NOT WORRIED ABOUT CONFIDENTIALITY HERE. The first thing the recipient does is decrypt the ENCRYPTED HASH VALUE using the public key of the owner of the document. How would we know if the decryption is successful? The recipient computes the SHA-1 (Hash value) of the original message. If the decryption is successful, the computed has value and the decrypted value will be the same. If these values are not the same, there are two possibilities – the public key does not belong to the original sender or the message was changed

We have just validated the identity of the sender and also the document was not changed

TLS/SSLTLS/SSL

Now I am going to explain how TLS/SSL works.

The user connects to the secure web site by typing say https://www.chase.com

(Links to an external site.).

There are a TCP SYN exchange and then the CLIENT sends the CLIENT HELLO

The client sends a client hello message with the protocol version, the client random, and a list of cipher suites.

The SERVER returns its CIPHER SUITE (details about the security protocols it supports), ITS CERtifiCATE and A SERVER HELLO and a SERVERHELLODONE

In reply to the client hello message, the server sends a message containing the servers SSL certificate, the servers chosen cipher suite, and the server random, another random string of bytes thats generated by the server.

The client verifies the servers SSL certificate with the certificate authority that issued it. Remember each browser has a list of CA preinstalled. This confirms that the server is who it says it is, and that the client is interacting with the actual owner of the domain.

The client sends one more random string of bytes, the premaster secret. The premaster secret is encrypted with the public key and can only be decrypted with the private key by the server. (The client gets the public key from the servers SSL certificate.)

The server decrypts the premaster secret using its private key

Both client and server generate session keys from the client random, the server random, and the premaster secret. They should arrive at the same results.

The client sends a finished message that is encrypted with a session key.

The server sends a finished message encrypted with a session key.

The handshake is completed and now messages can be sent using the session keys.

Quantum TheoryQuantum Physics – Here is an interesting quote: “If you think you understand Quantum Physics, you do not understand Quantum Physics” – Richard Feynman – Noble Price Winner in Physics

Quantum Physics describes the smallest particles in our universe – molecules, atoms and, protons, neutrons and so on. Well, you and everything around you are Quantum Physics.

In typical computers, we transform data to 0 and 1. This is done using high voltage and low voltage. We then use a series of logic. Remember the AND, OR, NOT, XOR that we discussed earlier. Yes, with theses Logical gates, we can compute and solve complex problems.

This is excellent however, as we discussed in the section on Complex problems, when we deal with exponential complex problems, traditional computing can become unsolvable because of the time it will take to solve them. Remember, the complexity of RSA – factoring a number into in primes.

In quantum computing, the basic computational unit is a Qubit. Think of them as our classical bits – o and 1. Qubit are much more powerful than bits. Here is the big kicker – a qubit can be in both zero state and one state at the same time. States of a qubit is represented using “ket 0” and “ket 1” notation its written as |0> and |1> and the basic measured state is just like classical 0 and 1.

A qubit can be an electron with spin, a photon with polarization, impurity spins, trapped ions, neutral atom, semiconducting circuits. The explanation of these terms is beyond the scope of tis course. You may want to read about them.

This looks difficult but the main point that we need to keep in mind is that the single qubit at any time can be in a super position of |0> and |1> and “it can be expressed as where a and b are amplitude (proportional to probabilities) of qubit being measured to 0 and 1 respectively and a² + b² =1.” A qubit can be in super position of two states, and once it is measured it will return one of the two states based on the probabilities of each state. Measuring a qubit itself influences the system, measurement of a qubit is similar to a gate which affect the state of the qubit.

Let’s try two states,

00, 01, 10, 11 but the qubits can be in super position of all for states at the same time. This should be represented as:

a|00> + b|01> + c|10> + d|11>

For two qubits, we need 4 probabilities/amplitude (a, b, c, d), if we have three qubits we will need 8. So if we have n qubits, we will need 2^n numbers to represent the overall state of that quantum system. With small increase in the number of qubits, we can create systems which can represent enormous states, and this is dissimilar to classical computers.

Well, I know this is complex and unfamiliar to you, I am going to leave you with the basics. Now, let’s define Quantum Algorithm.

Quantum algorithm is a step-by-step procedure, where each of the steps can be performed on a quantum computer and this will involve quantum properties like, superposition and entanglement.

Two popular algorithms that have been developed already are SHOR’s and Grover’s algorithms.

SHOR Algorithm – Shor’s algorithm for integer factorization is one of the most famous one because of its implication in cryptography. The details are beyond the scope of this course

Grover’s algorithm is also well known and used for searching an unstructured database or an unordered list.

IBM Q is an industry-first initiative to build commercially available universal quantum computers for business and science. IBM Q Experience allows us to run quantum algorithms either using online composer or using its python library for free. The number of qubits in these systems are relatively small but will increase rapidly for sure.

https://www.ibm.com/quantum-computing/

Quantum Videohttps://www.youtube.com/watch?v=u1XXjWr5frE

Final Exam – NOTE THE DEADLINEFor the final exam – you are

going to explain the differences between Symmetrical and Asymmetrical encryption in a 10 minutes video. Use your favorite Video Capture software (Screen-Cast-to-Matic) and create a 5-slide powerpoint.

Rubric

Correctness of content – 50

%

Presentation – 50

%