Let's take a look, shall we? We can see that we have, as you can see here, plaintext. We run the encryption, we have the key material encrypted with the public key of the receiver, as we talked about. We get ciphertext to decrypt the message, the key material is used. We decrypt with the private key of the receiver, they get plaintext. So when we want to send a message with confidentiality, we use the recipient's public key, make sure you know that. When we want to send an open message, a message that's not confidential, but rather, one that has integrity and non-repudiation associated with it, right? That's a different story, now we're going to use the private key of the sender in order to guarantee the identity. Because now the public key, the key that's available to anybody, is the corresponding match. Remember, we're not trying to keep the data secure, we're trying to validate the identity here. And so an open message is sent by using the private key of the sender. In order to stamp the message with a hash that can be validated with the public key of the sender, to prove non-repudiation. And so let's take a look at that, proof of origin. Plaintext is used, we encrypt, the key material is encrypted with the private key of the sender. Ciphertext created, recipient wants to decrypt, right? Remember, we're not keeping the message secure. When we say decrypt, what we're doing is, we're using the corresponding key, the matching key in the pair, to validate the signature. That's all we're doing, we're looking at the signature. We're not looking at decrypting the whole message, because the message wasn't encrypted in the first place, right? We just want to know that we are sending the message, with validity of origin. And so the decryption of the public key of the sender is used to make sure that we understand that the message indeed was sent by me, right, so just be aware of that. Be confident in your knowledge of which process, which key, which direction. because we're definitely going to want to to make sure we probe for understanding, right, of these different options. We're going to be asking you to make sure that you understand how these things work, and whose key's being used. It's going to be very important for you to be aware of. Now, what if we want to be able to do both? What if we want to send a message with confidentiality, but also validate proof of origin? So non-repudiation and confidentiality together. We want to have, effectively, confidentiality and the integrity of non repudiation mixed up all in one. Well, then we gotta effectively do two things, right? Effectively combine those operations together if you will. So what you'll see here is, we have our original message sent from the sender, encrypted. We get what's called intermediate ciphertext, which is then encrypted again, as you'll see, internal encryption here as a second run. That has created a ciphertext, and then we go through the process of unencrypting. So let's see how this works, right? The middle operation right here is confidentiality, so let's just highlight this so we can see that. The confidentiality operation Is right over here inside the parentheses. The proof of origin operation, That's not a good color, you can barely see that, hold on a second. Let's choose a better color so you can see that, we need a light color. And proof of origin right down there, right, is happening over here in this area, with this operation. So we have two operations happening simultaneously, right, in effect, one inside the other. So we want to make sure we keep track of what's happening. So we're seeing that originally, we take the plaintext message, we encrypt it with the key material using the private key of the sender. Well, we know when we use the private key of the sender, that's going to provide proof of origin. Because the public key of the sender could be used to validate the identity, that's our non-repudiation. So yellow is going to be our non-repudiation proof of origin operation. Then we're going to take that message, we're going to run that through another encryption cycle. That's now going to be using the key material, it's going to be the public key of the receiver. That's going to be decrypted by the receiver using their private key. Which is going to be the confidentially portion that encrypts the actual message, making sure we hide it so nobody can see it. So we're going to provide both proof of origin as well as confidentially protection in one string. Because effectively, we're going to use two different sets of keys to perform two different operations. Simply combining them together, but by doing both, we can actually achieve both results, and you can see how this is done here. So again, make sure you're comfortable with which operation is providing which outcome. It'll be very important for you to think through that logically. And if you saw some sort of diagram that you may have to go and put the appropriate keys in the appropriate place based on the thing we're doing. You'd want to know how to mix and match, and do that. You may have a word problem, you may be asked to decipher in some way what's happening, and make a choice about what key to use. You'd want to understand that and be able to do that. There's lots of different ways, in other words, to represent this thought process. You have to be comfortable with them and make sure you understand what they are. So please just make sure that, however you get there, that's going to make sense in your world. RSA is going to be a relatively famous company, you may have heard of them. They are a security company, they are behind a lot of the products we may use on a regular basis, like secure tokens and things of that nature. They also happen to be behind the RSA algorithm which is used for many things as well. The RSA algorithm, as you can see, is based on the mathematical challenge of factoring the product of two large prime numbers. That’s the theory that drives the application of the algorithm. Now you may look at that and say, well, factoring two prime numbers, how hard can that be? We're talking about large prime numbers, when we say large, we're talking about prime numbers that may go on for 100 places, or something like that, so very, very big numbers. Because when we get to certain primes that are that large, trying to factor them is computationally very difficult. And because of that process, using the internal mechanisms of that process to effectively generate the cryptography becomes very difficult for people to reverse engineer, and understand how to do. So RSA's algorithm is seen as being very strong and very robust. They have many different ways of implementing this. But we just want to know that it's based on the idea of the factoring of large prime numbers. That is what the underlying operational mechanism of the RSA algorithm is. RSA actually its a company, it's the acronym, the name is the last name of the three principles that actually founded the company. Three mathematicians that came up with the algorithm back in the 70s and the 80s, Harvard mathematicians that worked together. Rivest, Shamir, and Adleman are the last names of the three principals of the company, and RSA simply stands for their initials. And that's who's actually behind the company, these mathematicians, initially, anyway, that's who founded the company, so just be aware of that.