WEBVTT - End to End Encryption Services

0:00:04.160 --> 0:00:07.160
<v Speaker 1>Get in touch with technology with tech Stuff from how

0:00:07.240 --> 0:00:14.160
<v Speaker 1>stuff Works dot com. Hey there, and welcome to tech Stuff.

0:00:14.200 --> 0:00:17.560
<v Speaker 1>I'm your host, Jonathan Strickland. I'm an executive producer with

0:00:17.600 --> 0:00:20.160
<v Speaker 1>How Stuff Works and the Love all Things Tech Today.

0:00:20.200 --> 0:00:22.880
<v Speaker 1>Probably sounds a little different from my normal episodes because

0:00:22.880 --> 0:00:25.639
<v Speaker 1>I'm actually recording this while I'm in a hotel room

0:00:25.680 --> 0:00:28.639
<v Speaker 1>in Las Vegas. I'm attending yet another tech conference. But

0:00:28.760 --> 0:00:33.000
<v Speaker 1>this episode is more in line with our normally scheduled episodes.

0:00:33.320 --> 0:00:37.440
<v Speaker 1>This one is from a listener request, and the listener

0:00:37.479 --> 0:00:41.279
<v Speaker 1>in this case wished to remain anonymous, and so I

0:00:41.360 --> 0:00:46.640
<v Speaker 1>am going to to completely comply with his or her wishes,

0:00:47.200 --> 0:00:51.400
<v Speaker 1>but wanted to know more about end to end encryption,

0:00:51.680 --> 0:00:53.960
<v Speaker 1>which has been the news a lot, particularly in the UK.

0:00:54.960 --> 0:00:59.360
<v Speaker 1>End to end encryption is a means of sending information securely,

0:00:59.440 --> 0:01:03.880
<v Speaker 1>and it has positive aspects and depending upon who you are,

0:01:03.960 --> 0:01:06.440
<v Speaker 1>negative aspects. We're going to cover all of that, explain

0:01:06.520 --> 0:01:09.280
<v Speaker 1>what end and encryption is and how it works. It's

0:01:09.280 --> 0:01:11.440
<v Speaker 1>been the news for a couple of years for multiple reasons.

0:01:11.520 --> 0:01:14.000
<v Speaker 1>One is that some folks and government agencies have made

0:01:14.000 --> 0:01:16.399
<v Speaker 1>a stink about the technology because they say it gives

0:01:16.480 --> 0:01:20.520
<v Speaker 1>bad actors like criminals and terrorists, the ability to communicate

0:01:20.560 --> 0:01:24.200
<v Speaker 1>secretly with one another. That, in a sense is true,

0:01:24.400 --> 0:01:28.120
<v Speaker 1>but I think it oversimplifies the issue. The tech actually

0:01:28.160 --> 0:01:32.800
<v Speaker 1>allows any two people to communicate secretly with one another. So,

0:01:32.840 --> 0:01:34.440
<v Speaker 1>in other words, it's a tool that can be used

0:01:34.440 --> 0:01:38.360
<v Speaker 1>by people who are bad, but in itself is not

0:01:38.440 --> 0:01:41.080
<v Speaker 1>a bad tool. It's a tool that has tons of

0:01:41.200 --> 0:01:45.679
<v Speaker 1>legitimate uses that have nothing to do with terrorism or crime.

0:01:45.840 --> 0:01:48.560
<v Speaker 1>So as an example, let's say you are running a

0:01:48.640 --> 0:01:52.000
<v Speaker 1>record label and it's your job to sign new acts

0:01:52.040 --> 0:01:54.520
<v Speaker 1>to this record label. In the old days, you would

0:01:54.520 --> 0:01:57.200
<v Speaker 1>do all this in person, but today you can do

0:01:57.440 --> 0:01:59.640
<v Speaker 1>a lot of your business, practically all of your business

0:01:59.640 --> 0:02:02.240
<v Speaker 1>over the internet. So you can negotiate with the act.

0:02:02.320 --> 0:02:04.240
<v Speaker 1>You can come to an agreement on terms. You can

0:02:04.320 --> 0:02:06.480
<v Speaker 1>draw up a contract, and you can send it over

0:02:06.520 --> 0:02:08.680
<v Speaker 1>for them to sign, and then send it back for

0:02:08.720 --> 0:02:11.560
<v Speaker 1>you to countersign. But you want all this information to

0:02:11.600 --> 0:02:15.960
<v Speaker 1>remain confidential. The terms of one agreement with one act

0:02:16.120 --> 0:02:18.800
<v Speaker 1>could be very different from the terms you set with

0:02:18.840 --> 0:02:21.959
<v Speaker 1>another act. To lure a really big act to your label,

0:02:22.440 --> 0:02:26.240
<v Speaker 1>you might have to include more attractive terms for that act,

0:02:26.320 --> 0:02:30.280
<v Speaker 1>like better percentages, But you don't necessarily want to do

0:02:30.360 --> 0:02:33.720
<v Speaker 1>that with every act you're signing. It might not merit it.

0:02:33.919 --> 0:02:37.679
<v Speaker 1>In some cases, the amount of investment a label might

0:02:37.720 --> 0:02:42.000
<v Speaker 1>make in an unproven act could end up being unrewarded downeline.

0:02:42.080 --> 0:02:46.560
<v Speaker 1>So you would rather have the details of contracts remain

0:02:46.919 --> 0:02:50.040
<v Speaker 1>secure and not get leaked to the general public, because

0:02:50.080 --> 0:02:53.440
<v Speaker 1>then your negotiation tools are made plain for everyone to see.

0:02:53.760 --> 0:02:56.639
<v Speaker 1>It opens up the opportunity for various acts to say, hey,

0:02:56.639 --> 0:02:59.800
<v Speaker 1>how come they got such a sweet deal and we didn't. Uh,

0:03:00.040 --> 0:03:01.960
<v Speaker 1>you know, it's all part of business. So you would

0:03:02.040 --> 0:03:04.360
<v Speaker 1>rather have a means to send all this information in

0:03:04.360 --> 0:03:07.280
<v Speaker 1>a way so that even if someone were to intercept

0:03:07.320 --> 0:03:12.680
<v Speaker 1>the messages, no one who didn't you know, didn't have authority,

0:03:12.760 --> 0:03:16.280
<v Speaker 1>would ever understand what it actually says. Now that particular

0:03:16.320 --> 0:03:19.880
<v Speaker 1>idea has been around for as long as we have

0:03:20.040 --> 0:03:23.799
<v Speaker 1>had secrets, How do you communicate a secret to someone

0:03:23.840 --> 0:03:27.280
<v Speaker 1>else without anyone else finding out about it, particularly if

0:03:27.320 --> 0:03:30.480
<v Speaker 1>you can't whisper it quietly to that person. You have

0:03:30.600 --> 0:03:33.120
<v Speaker 1>to come up with a means to hide the meaning

0:03:33.360 --> 0:03:35.760
<v Speaker 1>of your message in some way, and there are a

0:03:35.800 --> 0:03:38.640
<v Speaker 1>lot of different ways to do this. So, for example,

0:03:38.680 --> 0:03:41.520
<v Speaker 1>steganography is a way, and I covered that in a

0:03:41.600 --> 0:03:44.000
<v Speaker 1>previous episode of Tech Stuff with my friend Ariel who

0:03:44.080 --> 0:03:48.120
<v Speaker 1>joined me for that episode. Steganography is the practice of

0:03:48.200 --> 0:03:53.040
<v Speaker 1>hiding a message within some other form of non secret data,

0:03:53.400 --> 0:03:58.400
<v Speaker 1>like uh an image or a music file. You could

0:03:58.680 --> 0:04:03.600
<v Speaker 1>literally high the message inside the image, meaning that unless

0:04:03.640 --> 0:04:06.160
<v Speaker 1>you know what to look for, you're not likely to

0:04:06.280 --> 0:04:08.960
<v Speaker 1>discover the message. That's not the most secure way of

0:04:09.000 --> 0:04:11.280
<v Speaker 1>doing it, obviously, but it is something you can do.

0:04:11.400 --> 0:04:15.440
<v Speaker 1>I remember collecting old Grow the Wanderer comic books by

0:04:15.440 --> 0:04:19.920
<v Speaker 1>Sergio Ariganez, who would hide a secret message in every

0:04:19.920 --> 0:04:24.200
<v Speaker 1>single issue. Typically it would read this is the hidden message.

0:04:24.839 --> 0:04:29.760
<v Speaker 1>So not super duper helpful, but that would be one

0:04:29.800 --> 0:04:32.279
<v Speaker 1>way of doing it. However, you could also hide the

0:04:32.279 --> 0:04:37.520
<v Speaker 1>information within the actual text or or the the the

0:04:37.560 --> 0:04:41.080
<v Speaker 1>file information of the image itself, so instead of like

0:04:41.160 --> 0:04:44.200
<v Speaker 1>hiding it physically inside the image, you're hiding it in

0:04:44.240 --> 0:04:47.200
<v Speaker 1>the code that represents the image. And it's only if

0:04:47.240 --> 0:04:49.000
<v Speaker 1>you know to look at that code that you would

0:04:49.000 --> 0:04:51.479
<v Speaker 1>even see that there was a message there. The whole

0:04:51.520 --> 0:04:54.719
<v Speaker 1>point is you're concealing that secret message inside some other

0:04:54.839 --> 0:04:58.400
<v Speaker 1>non secret information that you can freely distribute, so you

0:04:58.440 --> 0:05:01.920
<v Speaker 1>can send that photo out being reasonably confident that people

0:05:01.960 --> 0:05:05.120
<v Speaker 1>are not going to see that there's a secret message there.

0:05:05.160 --> 0:05:06.839
<v Speaker 1>You only know that it's there if you know to

0:05:06.880 --> 0:05:10.919
<v Speaker 1>look for it. At least that's the theory or the hope. Obviously,

0:05:10.960 --> 0:05:14.240
<v Speaker 1>if someone is super nosy and just curious and they

0:05:14.279 --> 0:05:17.520
<v Speaker 1>start looking at these things more closely, they might uncover

0:05:17.640 --> 0:05:22.440
<v Speaker 1>that message, So it's not always the most secure methodology. Cryptography,

0:05:22.480 --> 0:05:27.159
<v Speaker 1>which means to make communication secret, is a very broad category,

0:05:27.360 --> 0:05:31.279
<v Speaker 1>and encryption falls into that category. Encryption is the specific

0:05:31.360 --> 0:05:35.520
<v Speaker 1>process to make hidden or secret. The two terms are

0:05:35.560 --> 0:05:39.440
<v Speaker 1>often used interchangeably, but technically they are distinct, though I

0:05:39.440 --> 0:05:42.159
<v Speaker 1>guess if enough people use them interchangeably for long enough,

0:05:42.560 --> 0:05:45.320
<v Speaker 1>the meaning itself will change, because that's how language works.

0:05:45.360 --> 0:05:49.400
<v Speaker 1>But that's a bonus episode, I guess. So with encryption,

0:05:49.720 --> 0:05:54.480
<v Speaker 1>you would use some sort of process too encrypt the data.

0:05:54.520 --> 0:05:57.720
<v Speaker 1>You would use a cipher to take a plane message

0:05:58.400 --> 0:06:00.960
<v Speaker 1>the secret that you wish to can municate, and you

0:06:00.960 --> 0:06:03.440
<v Speaker 1>would turn it into something that the average person would

0:06:03.440 --> 0:06:07.640
<v Speaker 1>not be able to understand, but your intended recipient would

0:06:07.640 --> 0:06:10.160
<v Speaker 1>have the knowledge of how to reverse this process to

0:06:10.520 --> 0:06:13.560
<v Speaker 1>decipher the mixed up message, so that he or she

0:06:13.680 --> 0:06:17.440
<v Speaker 1>could read the original secret. So let's take a super

0:06:17.480 --> 0:06:21.720
<v Speaker 1>simple example, one that would never be used in modern

0:06:21.760 --> 0:06:26.520
<v Speaker 1>day encryption. Let's take a basic substitution cipher, in which

0:06:26.560 --> 0:06:30.000
<v Speaker 1>we swap out letters for other letters. In a super

0:06:30.040 --> 0:06:33.080
<v Speaker 1>simple version of this, are two communicators have agreed that,

0:06:33.120 --> 0:06:36.360
<v Speaker 1>for the purposes of their messaging, they will shift all

0:06:36.480 --> 0:06:40.640
<v Speaker 1>letters over by one so that an A will be

0:06:40.680 --> 0:06:44.440
<v Speaker 1>represented by the letter B, A B will be represented

0:06:44.440 --> 0:06:47.120
<v Speaker 1>by the letter C, and so forth until you get

0:06:47.160 --> 0:06:49.320
<v Speaker 1>to Z, which will be represented by the letter A.

0:06:49.720 --> 0:06:52.720
<v Speaker 1>So if I wanted to write out uh j O

0:06:52.960 --> 0:06:55.960
<v Speaker 1>n as my sign off, shortening my name to John,

0:06:56.400 --> 0:06:59.279
<v Speaker 1>I would actually use the letters k P O. My

0:06:59.360 --> 0:07:02.400
<v Speaker 1>recipient would receive this message and say, ah, I must

0:07:02.640 --> 0:07:07.919
<v Speaker 1>decipher it by cleverly stepping back each letter by one position,

0:07:08.040 --> 0:07:10.440
<v Speaker 1>and I get j O N Oh it was Jonathan

0:07:10.440 --> 0:07:13.960
<v Speaker 1>who sent me this message. Now, clearly anyone could crack

0:07:14.040 --> 0:07:17.040
<v Speaker 1>that code. It would not take any sort of master

0:07:17.360 --> 0:07:19.440
<v Speaker 1>code breaker to do it. You don't need a computer

0:07:19.520 --> 0:07:24.440
<v Speaker 1>to do it. Is the simplest of substitution ciphers, and

0:07:25.680 --> 0:07:29.720
<v Speaker 1>obviously that would never stand. However, more much more complicated

0:07:29.720 --> 0:07:32.800
<v Speaker 1>ciphers have been used throughout history, and in fact, one

0:07:32.840 --> 0:07:37.600
<v Speaker 1>of the earliest uses for computers was in decoding encrypted messages.

0:07:37.680 --> 0:07:41.200
<v Speaker 1>During World War Two, computers were dedicated to cracking codes

0:07:41.240 --> 0:07:45.160
<v Speaker 1>made by physical devices like the Enigma machine. But I've

0:07:45.160 --> 0:07:47.480
<v Speaker 1>talked about that in previous episodes, so I'm gonna move

0:07:47.520 --> 0:07:51.640
<v Speaker 1>on rather than dwell on it here now. In cryptology,

0:07:51.800 --> 0:07:57.320
<v Speaker 1>people often use examples to explain specific implementations and strategies.

0:07:57.960 --> 0:08:01.480
<v Speaker 1>This has led to two fictional care is becoming placeholders

0:08:01.520 --> 0:08:03.920
<v Speaker 1>for these examples. So when you want to say person

0:08:04.000 --> 0:08:07.760
<v Speaker 1>A in person B, that gets really cumbersome. So those

0:08:07.840 --> 0:08:11.520
<v Speaker 1>characters are Alice and Bob. If you've ever heard examples

0:08:11.640 --> 0:08:16.160
<v Speaker 1>using Alice and Bob, it comes from this branch of cryptology.

0:08:16.280 --> 0:08:20.640
<v Speaker 1>The characters were actually created by three researchers named Ron Revest,

0:08:20.960 --> 0:08:24.760
<v Speaker 1>Audi Schamir, and Leonard Alderman, who came up with the

0:08:24.960 --> 0:08:28.160
<v Speaker 1>r S A encryption strategy. R s A for the

0:08:28.200 --> 0:08:33.400
<v Speaker 1>first initial uh of each of their last names, so Revest, Schamir,

0:08:33.520 --> 0:08:36.160
<v Speaker 1>and Ottoman you get r S A. And when they

0:08:36.160 --> 0:08:38.080
<v Speaker 1>came up with that, they decided they needed to have

0:08:38.280 --> 0:08:42.520
<v Speaker 1>examples to describe what their whole procedure was, and they

0:08:42.800 --> 0:08:45.400
<v Speaker 1>invented these characters of Alice and Bob. More on R

0:08:45.520 --> 0:08:47.680
<v Speaker 1>s A in just a minute. Alice and Bob have

0:08:47.800 --> 0:08:51.560
<v Speaker 1>become the arc types for cryptological discussions and beyond that. Actually,

0:08:51.559 --> 0:08:53.800
<v Speaker 1>Alie and Bob are used in lots of different examples

0:08:53.800 --> 0:08:57.440
<v Speaker 1>for tech, not just cryptology, but basically, the premise spoils

0:08:57.480 --> 0:09:00.319
<v Speaker 1>down to Bob and Alice both wished to commune dicate

0:09:00.360 --> 0:09:03.600
<v Speaker 1>with one another without other people being able to intercept

0:09:03.640 --> 0:09:07.200
<v Speaker 1>and understand those messages. All right, So Alice and Bob

0:09:07.760 --> 0:09:09.960
<v Speaker 1>they want to send messages to each other using some

0:09:10.000 --> 0:09:12.880
<v Speaker 1>sort of computer device. It could be an actual computer

0:09:13.000 --> 0:09:15.360
<v Speaker 1>like a desktop or a laptop. It could be a smartphone.

0:09:15.400 --> 0:09:18.200
<v Speaker 1>It could be a laptop, tablet, computer, could be any

0:09:18.200 --> 0:09:23.320
<v Speaker 1>of these things. It doesn't really matter that the point

0:09:23.400 --> 0:09:25.559
<v Speaker 1>is that they want to be able to send electronic

0:09:25.640 --> 0:09:29.000
<v Speaker 1>messages in some meaningful way. And when Alice and Bob

0:09:29.040 --> 0:09:33.360
<v Speaker 1>send messages back and forth, their devices aren't doing so directly. Right,

0:09:33.400 --> 0:09:38.200
<v Speaker 1>there's no direct connection between Alice's device and Bob's device

0:09:38.280 --> 0:09:41.000
<v Speaker 1>unless they happen to be very close together and able

0:09:41.000 --> 0:09:43.840
<v Speaker 1>to use some sort of technology like near field communication

0:09:43.960 --> 0:09:47.160
<v Speaker 1>or NFC. Apart from that, where you're so close you

0:09:47.160 --> 0:09:49.760
<v Speaker 1>could just whisper it to each other. Let's say that

0:09:49.840 --> 0:09:52.480
<v Speaker 1>you are across the country from one. Alice is over

0:09:52.520 --> 0:09:55.400
<v Speaker 1>in California, Bob is in New York. The messages they

0:09:55.440 --> 0:09:59.080
<v Speaker 1>send to each other are going to go through routers

0:09:59.080 --> 0:10:02.480
<v Speaker 1>and switches and servers, and eventually they're going to pass

0:10:02.520 --> 0:10:06.160
<v Speaker 1>through some sort of central server system before going through

0:10:06.320 --> 0:10:09.320
<v Speaker 1>even more routers and switches and servers and eventually ending

0:10:09.400 --> 0:10:12.760
<v Speaker 1>up on the other person's phone. So whatever service Alice

0:10:12.760 --> 0:10:18.360
<v Speaker 1>and Bob are using, that centralized server, which is the

0:10:18.360 --> 0:10:21.359
<v Speaker 1>the you know, kind of like the the Great uh

0:10:21.480 --> 0:10:25.560
<v Speaker 1>Post service for that particular app it the message has

0:10:25.600 --> 0:10:28.440
<v Speaker 1>to pass through there because this is a specific app

0:10:28.520 --> 0:10:32.679
<v Speaker 1>being used offered by a specific company. So Alice sends

0:10:32.720 --> 0:10:36.960
<v Speaker 1>Bob a message on their agreed upon messaging app. Alice's

0:10:36.960 --> 0:10:39.440
<v Speaker 1>message is going to head out over the Internet, hit

0:10:39.480 --> 0:10:42.080
<v Speaker 1>the server in charge of handling the messaging service that

0:10:42.160 --> 0:10:44.720
<v Speaker 1>they are both using, and then continue on until it

0:10:44.760 --> 0:10:47.360
<v Speaker 1>hits Bob. Now, if the message is in plain text,

0:10:47.559 --> 0:10:52.120
<v Speaker 1>meaning it's unencrypted, anyone along that pathway could potentially read

0:10:52.160 --> 0:10:55.720
<v Speaker 1>the contents of that message. That includes hackers who could

0:10:55.720 --> 0:10:59.360
<v Speaker 1>have compromised a system somewhere along that pathway, and they're

0:10:59.360 --> 0:11:01.800
<v Speaker 1>trying to pull a man in the middle attack. The message,

0:11:01.800 --> 0:11:04.880
<v Speaker 1>in other words, is not safe. One way to fix

0:11:04.920 --> 0:11:08.440
<v Speaker 1>that is through a simple encryption method in which Alice

0:11:08.480 --> 0:11:12.640
<v Speaker 1>and Bob each have their own private encryption and decryption

0:11:12.720 --> 0:11:16.560
<v Speaker 1>keys with the server. So let's say Alice and Bob

0:11:16.840 --> 0:11:19.760
<v Speaker 1>are using a messaging app. Let's call the app x

0:11:19.880 --> 0:11:23.040
<v Speaker 1>y Z, and x y Z has its server systems.

0:11:23.520 --> 0:11:26.440
<v Speaker 1>When Alice wants to send Bob a message, she uses

0:11:26.520 --> 0:11:29.679
<v Speaker 1>her own personal x y Z encryption key to do

0:11:29.760 --> 0:11:33.520
<v Speaker 1>so and sends it along. No one else other than

0:11:33.720 --> 0:11:37.000
<v Speaker 1>x y Z has that encryption key, so Alice and

0:11:37.160 --> 0:11:40.280
<v Speaker 1>x y Z share it, but nobody else does. Her

0:11:40.360 --> 0:11:44.400
<v Speaker 1>message will get to the server, which sees that Alice

0:11:44.440 --> 0:11:47.520
<v Speaker 1>wants to send a message to Bob. So the service says,

0:11:47.559 --> 0:11:50.480
<v Speaker 1>all right, I'll send this to Bob, except Bob can't

0:11:50.520 --> 0:11:54.400
<v Speaker 1>read it because it's been encrypted with Alice's key, so

0:11:54.720 --> 0:11:57.679
<v Speaker 1>Bob doesn't have Alice's key. So what the server then

0:11:57.720 --> 0:12:01.880
<v Speaker 1>does will decrypt the message because it has Alice's key

0:12:01.920 --> 0:12:05.120
<v Speaker 1>and it also has Bob's key, so it then re

0:12:05.360 --> 0:12:09.320
<v Speaker 1>encrypts the message using Bob's key and then sends that

0:12:09.480 --> 0:12:14.640
<v Speaker 1>along to Bob, so the message has been encrypted twice. Technically,

0:12:14.679 --> 0:12:18.640
<v Speaker 1>it was encrypted, decrypted at the server level, encrypted again

0:12:18.800 --> 0:12:22.760
<v Speaker 1>sent to Bob. Whenever the message is passing over the Internet,

0:12:23.200 --> 0:12:27.600
<v Speaker 1>it is encrypted, which is pretty safe. But you may say, well,

0:12:27.640 --> 0:12:31.240
<v Speaker 1>what about the time that it's spending on the server.

0:12:32.280 --> 0:12:35.680
<v Speaker 1>That's the rub. See, this is not end to end encryption.

0:12:35.720 --> 0:12:38.840
<v Speaker 1>I'll explain that a little bit later. The server is

0:12:38.880 --> 0:12:42.559
<v Speaker 1>able to decrypt all incoming messages, no matter who is

0:12:42.600 --> 0:12:45.679
<v Speaker 1>sending them, and then encrypt them with the respective keys

0:12:45.720 --> 0:12:49.240
<v Speaker 1>belonging to whoever was the intended recipients. But this creates

0:12:49.240 --> 0:12:53.880
<v Speaker 1>a few different problematic scenarios. One is that governments they

0:12:54.080 --> 0:12:58.040
<v Speaker 1>love this strategy because it opens up the possibility that

0:12:58.080 --> 0:13:01.440
<v Speaker 1>the server could release message is on a court order

0:13:01.640 --> 0:13:05.600
<v Speaker 1>or some other means, Like if the government orders the

0:13:05.800 --> 0:13:09.600
<v Speaker 1>service to share those messages and the services compelled to

0:13:09.840 --> 0:13:14.920
<v Speaker 1>agree to it, then potentially the government could get hold

0:13:15.040 --> 0:13:18.640
<v Speaker 1>of unencrypted plane text messages because at the server level

0:13:18.679 --> 0:13:21.720
<v Speaker 1>everything gets unlocked. So the government agency can go to

0:13:21.840 --> 0:13:24.559
<v Speaker 1>X Y Z and say, we suspect Alice and Bob

0:13:24.600 --> 0:13:27.520
<v Speaker 1>are plotting something dangerous. We have some evidence, but we

0:13:27.559 --> 0:13:30.280
<v Speaker 1>want access to the messages they're sending to each other.

0:13:30.920 --> 0:13:33.480
<v Speaker 1>Lives could be at stake, and then they flash a

0:13:33.480 --> 0:13:36.480
<v Speaker 1>Warren or something, and because X y Z is following

0:13:36.480 --> 0:13:39.559
<v Speaker 1>this strategy, it could hand over such information if ordered to,

0:13:39.760 --> 0:13:43.400
<v Speaker 1>revealing all the messages between Alice and Bob. And maybe

0:13:43.440 --> 0:13:46.280
<v Speaker 1>Alice and Bob really were plotting something terrible and it's

0:13:46.320 --> 0:13:49.920
<v Speaker 1>prevented as a result, or maybe they're just happy people

0:13:50.080 --> 0:13:53.199
<v Speaker 1>and their private messages have now been compromised and they

0:13:53.200 --> 0:13:57.880
<v Speaker 1>were completely innocent, and yet there otherwise private communication has

0:13:57.920 --> 0:14:01.880
<v Speaker 1>now been made at least semi public. The strategy also

0:14:01.920 --> 0:14:06.040
<v Speaker 1>creates an incredibly attractive target for hackers, obviously, because if

0:14:06.080 --> 0:14:09.400
<v Speaker 1>you can compromise that central server, you can get at

0:14:09.440 --> 0:14:11.880
<v Speaker 1>all the data that's going across it because it gets

0:14:12.000 --> 0:14:15.160
<v Speaker 1>decrypted there. In fact, this has happened a few times

0:14:15.160 --> 0:14:17.480
<v Speaker 1>in the past where hackers have managed to get access

0:14:17.559 --> 0:14:20.880
<v Speaker 1>to such systems and mind them for data and dump

0:14:20.920 --> 0:14:23.520
<v Speaker 1>all the information onto various places on the web, or

0:14:23.880 --> 0:14:26.720
<v Speaker 1>more likely on the dark web. This is where stuff

0:14:26.760 --> 0:14:30.600
<v Speaker 1>like credit card information or compromising photos can come into play,

0:14:30.640 --> 0:14:34.160
<v Speaker 1>where hackers have managed to get into a server and

0:14:34.160 --> 0:14:37.880
<v Speaker 1>and get all that information. Sure the messages were encrypted

0:14:37.960 --> 0:14:40.120
<v Speaker 1>as they went over the Internet, but that one central

0:14:40.160 --> 0:14:44.280
<v Speaker 1>point everything was unlocked and ready for exploitation and to

0:14:44.600 --> 0:14:48.720
<v Speaker 1>end Encryption aims to defeat this by creating a strategy

0:14:48.800 --> 0:14:51.840
<v Speaker 1>in which only Alice and Bob know how to decrypt

0:14:51.920 --> 0:14:55.080
<v Speaker 1>messages from the other. They have a private means of

0:14:55.120 --> 0:14:59.520
<v Speaker 1>decrypting information. The central server does not have access to

0:14:59.600 --> 0:15:03.360
<v Speaker 1>that it decryption key, and so the messages sent across

0:15:03.440 --> 0:15:07.320
<v Speaker 1>the server are meaningless to the server, is just gobbledygook.

0:15:07.800 --> 0:15:11.680
<v Speaker 1>The server could confirm that messages had passed between Alice

0:15:11.720 --> 0:15:13.760
<v Speaker 1>and Bob, you could say, well, yes, we know that

0:15:13.880 --> 0:15:17.640
<v Speaker 1>the two have communicated with each other, but they the

0:15:17.640 --> 0:15:19.840
<v Speaker 1>company wouldn't be able to speak to what was actually

0:15:19.880 --> 0:15:22.960
<v Speaker 1>in those messages. So if a government agency served up

0:15:22.960 --> 0:15:25.480
<v Speaker 1>a search warrant, all they would get is some garbled,

0:15:25.480 --> 0:15:28.920
<v Speaker 1>seemingly random and meaningless data. They would need that private

0:15:29.040 --> 0:15:31.600
<v Speaker 1>key to make any sense of it. Now, there are

0:15:31.600 --> 0:15:35.560
<v Speaker 1>companies that absolutely love using the strategy because it really

0:15:35.600 --> 0:15:37.880
<v Speaker 1>takes the heat off of them that not only are

0:15:37.880 --> 0:15:41.320
<v Speaker 1>they able to offer their customers a secure way to communicate,

0:15:41.840 --> 0:15:43.840
<v Speaker 1>there's no way for the company to know what sort

0:15:43.880 --> 0:15:47.320
<v Speaker 1>of data is crossing its servers, so it cannot be

0:15:47.440 --> 0:15:51.480
<v Speaker 1>complicit in anything illegal because it doesn't know what's happening.

0:15:51.960 --> 0:15:54.680
<v Speaker 1>It provides a service one in which people may communicate

0:15:54.720 --> 0:15:57.040
<v Speaker 1>with one another in a secure fashion, and that's it.

0:15:57.520 --> 0:16:00.320
<v Speaker 1>But it raises a question how the heck are Alice

0:16:00.360 --> 0:16:03.400
<v Speaker 1>and Bob is supposed to get a private key across

0:16:03.440 --> 0:16:06.320
<v Speaker 1>to each other? Right? If Alice and Bob are apart

0:16:06.400 --> 0:16:10.040
<v Speaker 1>from one another and their communication requires going through a

0:16:10.080 --> 0:16:13.360
<v Speaker 1>centralized service, how do they establish a secret means of

0:16:13.360 --> 0:16:17.400
<v Speaker 1>communication in the first place. If that first message is hey,

0:16:17.600 --> 0:16:21.640
<v Speaker 1>let's use this secret code, but it's decrypted by the

0:16:21.640 --> 0:16:25.360
<v Speaker 1>centralized server, then the centralized server knows the secret code,

0:16:25.400 --> 0:16:27.760
<v Speaker 1>it doesn't help. Well. The answer comes down to what

0:16:27.880 --> 0:16:34.080
<v Speaker 1>was called an asymmetric cryptographic algorithm that uses public key cryptography.

0:16:34.120 --> 0:16:37.000
<v Speaker 1>And in this method, there are two keys that are

0:16:37.160 --> 0:16:40.920
<v Speaker 1>used for each message. One of them is a public key,

0:16:40.960 --> 0:16:44.040
<v Speaker 1>which is unique to each user that can be freely

0:16:44.280 --> 0:16:47.840
<v Speaker 1>distributed across the internet. The other is a private key,

0:16:47.880 --> 0:16:51.640
<v Speaker 1>which is a jealously guarded secret that allows only one

0:16:51.800 --> 0:16:55.240
<v Speaker 1>entity the chance to decrypt information. I'll speak about more

0:16:55.240 --> 0:16:57.880
<v Speaker 1>of this in just a minute, but first let's take

0:16:57.880 --> 0:17:07.840
<v Speaker 1>a quick break to thank our sponsor. Alright, So how

0:17:07.880 --> 0:17:12.160
<v Speaker 1>does public key cryptography work. Each person using the system,

0:17:12.240 --> 0:17:15.240
<v Speaker 1>let's call it ABC. For this case, we're talking about

0:17:15.240 --> 0:17:19.080
<v Speaker 1>different service from x y Z. Every single person using

0:17:19.119 --> 0:17:24.199
<v Speaker 1>ABC gets too encryption keys, or well, one encryption key

0:17:24.240 --> 0:17:28.440
<v Speaker 1>and one decryption key. Technically, one key is the person's

0:17:28.480 --> 0:17:31.639
<v Speaker 1>private key, So Alice has a private key that's unique

0:17:31.680 --> 0:17:34.280
<v Speaker 1>to her, and Bob has a private key it's unique

0:17:34.320 --> 0:17:38.439
<v Speaker 1>to him. They they also each have a public key,

0:17:38.640 --> 0:17:42.360
<v Speaker 1>so Alice has a public key, Bob has another public key.

0:17:42.440 --> 0:17:45.400
<v Speaker 1>These are also unique to Alice and Bob, but those

0:17:45.480 --> 0:17:49.040
<v Speaker 1>keys are published publicly on the service across the Internet.

0:17:49.440 --> 0:17:52.600
<v Speaker 1>Anyone who wants to send an encrypted message to Alice

0:17:52.720 --> 0:17:56.560
<v Speaker 1>or Bob must use their respective public keys. In other words,

0:17:56.560 --> 0:17:58.359
<v Speaker 1>if I want to send Alice a message, I have

0:17:58.400 --> 0:18:02.960
<v Speaker 1>to use Alice's public to encrypt it. To decode a message,

0:18:03.320 --> 0:18:06.240
<v Speaker 1>you have to have the private key. So if you

0:18:06.280 --> 0:18:09.240
<v Speaker 1>know both keys for a specific message, you can transform

0:18:09.240 --> 0:18:12.320
<v Speaker 1>that garbled mess into meaningful communication. And because you keep

0:18:12.359 --> 0:18:15.520
<v Speaker 1>your own private key to yourself, at least ideally, the

0:18:15.560 --> 0:18:18.399
<v Speaker 1>only person who can decode messages meant for you is you.

0:18:19.119 --> 0:18:23.280
<v Speaker 1>So Alice takes Bob's public key and uses it to

0:18:23.400 --> 0:18:26.960
<v Speaker 1>encode her message to Bob. She then sends the encoded

0:18:27.000 --> 0:18:31.080
<v Speaker 1>message to Bob across the messaging service. The encoded message

0:18:31.080 --> 0:18:35.080
<v Speaker 1>passes through ABC's server, which cannot read the message because

0:18:35.119 --> 0:18:39.080
<v Speaker 1>ABC does not have Bob's private key. Only Bob has

0:18:39.119 --> 0:18:42.520
<v Speaker 1>that the message gets to Bob, he uses his private

0:18:42.600 --> 0:18:45.400
<v Speaker 1>key and it decodes the message and then he can

0:18:45.440 --> 0:18:48.040
<v Speaker 1>read it in plain text. But what is actually going

0:18:48.080 --> 0:18:50.439
<v Speaker 1>on here? How is this happening? Well that that depends

0:18:50.480 --> 0:18:54.480
<v Speaker 1>heavily on the specific cryptographic strategy used, But we can

0:18:54.600 --> 0:18:58.399
<v Speaker 1>go with one of the earliest proposed methods of doing this,

0:18:58.560 --> 0:19:01.600
<v Speaker 1>the RSA algorithm, the one I mentioned earlier that was

0:19:01.760 --> 0:19:04.200
<v Speaker 1>proposed by the guys who used Alice and Bob as

0:19:04.200 --> 0:19:08.320
<v Speaker 1>examples in the first place. This one relies on prime numbers,

0:19:08.760 --> 0:19:12.200
<v Speaker 1>and just a quick refresher, a prime number is only

0:19:12.280 --> 0:19:15.320
<v Speaker 1>equal to one times the prime number itself. There are

0:19:15.320 --> 0:19:18.480
<v Speaker 1>no other multiple multiple factors. There are no other numbers

0:19:18.520 --> 0:19:21.119
<v Speaker 1>you can multiply together to get the prime number. So

0:19:21.160 --> 0:19:23.119
<v Speaker 1>if you can get to the value of a number

0:19:23.240 --> 0:19:26.439
<v Speaker 1>by by multiplying any other two numbers, it's what we

0:19:26.520 --> 0:19:30.080
<v Speaker 1>call a composite number. And is not a prime number.

0:19:30.359 --> 0:19:34.840
<v Speaker 1>So the numbers one, two, and three are all prime numbers.

0:19:34.880 --> 0:19:37.399
<v Speaker 1>They are only divisible by themselves and by one that

0:19:37.520 --> 0:19:41.560
<v Speaker 1>there are no other factors, right That our whole numbers anyway,

0:19:41.840 --> 0:19:44.119
<v Speaker 1>because the only multiplication you can do to arrive at

0:19:44.160 --> 0:19:46.720
<v Speaker 1>them is one times one is one, one times two

0:19:46.760 --> 0:19:49.879
<v Speaker 1>is two, and one times three is three, respectively. Four

0:19:50.080 --> 0:19:53.680
<v Speaker 1>is the smallest composite number because you can multiply two

0:19:53.720 --> 0:19:56.600
<v Speaker 1>times two to get four. So it's one times four

0:19:56.680 --> 0:19:58.360
<v Speaker 1>is four and two times two is four. That means

0:19:58.400 --> 0:20:00.680
<v Speaker 1>it is not a prime number. It's a posit number.

0:20:00.840 --> 0:20:03.400
<v Speaker 1>So the number is only divisible by one or itself,

0:20:03.600 --> 0:20:06.359
<v Speaker 1>then it's a prime number. The r s a algorithm

0:20:06.400 --> 0:20:12.520
<v Speaker 1>takes two really really really big prime numbers, like hundreds

0:20:12.520 --> 0:20:14.679
<v Speaker 1>of digits long. You might find systems that use a

0:20:14.680 --> 0:20:17.760
<v Speaker 1>five twelve bit prime number, though a lot of security

0:20:17.800 --> 0:20:20.359
<v Speaker 1>experts would say a thousand twenty four bit prime number

0:20:20.359 --> 0:20:24.919
<v Speaker 1>would be better than It takes those two already huge numbers. Remember,

0:20:24.960 --> 0:20:28.720
<v Speaker 1>it has to identify two different prime numbers that are

0:20:28.920 --> 0:20:33.959
<v Speaker 1>enormous and then multiplies those two enormous prime numbers together

0:20:34.240 --> 0:20:38.000
<v Speaker 1>to get a new number. This number is called the modulus.

0:20:38.440 --> 0:20:42.240
<v Speaker 1>It then requires the calculation of the totient of that product.

0:20:43.160 --> 0:20:45.080
<v Speaker 1>And this is where you say, wait a minute, hang on,

0:20:45.200 --> 0:20:47.199
<v Speaker 1>what the heck is a totient? At least if you

0:20:47.240 --> 0:20:49.600
<v Speaker 1>are like me, I was an English lit major, I

0:20:49.680 --> 0:20:52.720
<v Speaker 1>never got to totients in my studies in math. But

0:20:52.840 --> 0:20:57.520
<v Speaker 1>a totient is a number um that describes the number

0:20:57.520 --> 0:21:01.919
<v Speaker 1>of integers smaller than a given number that are co

0:21:02.040 --> 0:21:04.280
<v Speaker 1>prime with that number. Oh, that's a lot of numbers.

0:21:04.359 --> 0:21:06.119
<v Speaker 1>Let me try that again. Let's say you've got a

0:21:06.160 --> 0:21:12.160
<v Speaker 1>really big number, and the totient is all of the

0:21:12.200 --> 0:21:15.720
<v Speaker 1>integers that are smaller than this really big number that

0:21:15.760 --> 0:21:19.560
<v Speaker 1>are co prime with that really big number, which means

0:21:19.600 --> 0:21:23.639
<v Speaker 1>they share no factors except one with that really big number.

0:21:24.359 --> 0:21:28.119
<v Speaker 1>So let's use an example, because this sounds really really vague. Right.

0:21:28.240 --> 0:21:31.439
<v Speaker 1>Let's say that we have the number fourteen. We we

0:21:31.560 --> 0:21:35.280
<v Speaker 1>got to fourteen, uh, and we took prime numbers. We

0:21:35.320 --> 0:21:37.680
<v Speaker 1>took the number two and the number seven and we

0:21:37.800 --> 0:21:40.480
<v Speaker 1>multiplied those together. Those are our prime numbers we started with.

0:21:40.560 --> 0:21:42.880
<v Speaker 1>So again, this is just an example. You would never

0:21:43.000 --> 0:21:46.080
<v Speaker 1>use numbers this small. You multiply two times seven, you

0:21:46.080 --> 0:21:49.520
<v Speaker 1>get fourteen. Fourteen is your modulus. Then you say what

0:21:49.680 --> 0:21:54.399
<v Speaker 1>is the totient of fourteen? The answer is six, and

0:21:54.480 --> 0:21:58.919
<v Speaker 1>here is why. First, you take all the integers that

0:21:59.000 --> 0:22:02.960
<v Speaker 1>are less than four team, which is one through thirteen. Right,

0:22:03.240 --> 0:22:05.560
<v Speaker 1>you can't use fourteen. You have to use all the

0:22:05.600 --> 0:22:07.480
<v Speaker 1>ones that are all the whole numbers that are lower

0:22:07.480 --> 0:22:10.640
<v Speaker 1>than fourteen, so one through thirteen. But the numbers also

0:22:10.680 --> 0:22:13.280
<v Speaker 1>have to be co prime with fourteen. That means they

0:22:13.400 --> 0:22:17.880
<v Speaker 1>cannot share any factors that fourteen has. Now, the factors

0:22:17.920 --> 0:22:20.280
<v Speaker 1>of fourteen are two and seven, so we get those

0:22:20.359 --> 0:22:23.159
<v Speaker 1>off the list those those get removed, So two and

0:22:23.200 --> 0:22:25.600
<v Speaker 1>seven are gone. But you also have to eliminate the

0:22:25.680 --> 0:22:30.440
<v Speaker 1>numbers four, six, eight, ten, and twelve. All of those

0:22:30.520 --> 0:22:34.200
<v Speaker 1>numbers have two as a factor, and fourteen also has

0:22:34.200 --> 0:22:37.159
<v Speaker 1>two as a factor, so those numbers are not co prime,

0:22:37.600 --> 0:22:40.280
<v Speaker 1>so you strike those. Once you've gotten rid of those,

0:22:40.600 --> 0:22:43.400
<v Speaker 1>the numbers you have left that are lower than fourteen

0:22:43.480 --> 0:22:49.760
<v Speaker 1>are one, three, five, nine, eleven, and thirteen. Now nine

0:22:49.840 --> 0:22:52.160
<v Speaker 1>is not a prime number, right, You can multiply three

0:22:52.160 --> 0:22:55.760
<v Speaker 1>times three and get nine, but it is co prime

0:22:56.119 --> 0:23:00.080
<v Speaker 1>with fourteen because the two numbers share no common factor

0:23:00.240 --> 0:23:03.120
<v Speaker 1>except for the number one. So when you count up

0:23:03.280 --> 0:23:06.439
<v Speaker 1>all the co primes that are left. After you've eliminated

0:23:06.520 --> 0:23:09.080
<v Speaker 1>the numbers that are not co primes, you find out

0:23:09.160 --> 0:23:14.760
<v Speaker 1>you've got six numbers total one, three, five, nteen. That's

0:23:14.840 --> 0:23:18.960
<v Speaker 1>six numbers. So the totient for fourteen is six. By

0:23:18.960 --> 0:23:21.320
<v Speaker 1>the way, there's actually a formula for calculating the totent

0:23:21.400 --> 0:23:24.600
<v Speaker 1>of your huge number that's really really easy. And what

0:23:24.720 --> 0:23:27.239
<v Speaker 1>you do is you take your first prime number, the

0:23:27.240 --> 0:23:29.720
<v Speaker 1>one that you want. You know, in our case we

0:23:29.800 --> 0:23:31.680
<v Speaker 1>use two and seven. Let's say you take your first

0:23:31.680 --> 0:23:35.720
<v Speaker 1>prime number, you subtract one from that. You take your

0:23:35.760 --> 0:23:39.600
<v Speaker 1>second big prime number, you subtract one from that, and

0:23:39.640 --> 0:23:42.480
<v Speaker 1>you multiply those two new numbers together, and that is

0:23:42.520 --> 0:23:45.080
<v Speaker 1>your totent. So in our example, we take our two

0:23:45.080 --> 0:23:48.240
<v Speaker 1>prime numbers of two and seven, we subtract one from each.

0:23:48.400 --> 0:23:50.600
<v Speaker 1>That means we have a one and a six. We

0:23:50.720 --> 0:23:54.199
<v Speaker 1>multiply these two new numbers together one time, six is six.

0:23:54.760 --> 0:23:57.399
<v Speaker 1>That's the totent for fourteen. It's the fastest way to

0:23:57.440 --> 0:24:01.159
<v Speaker 1>calculate the totent. Next, because we're not done yet, you

0:24:01.240 --> 0:24:04.160
<v Speaker 1>have to select an integer, but not just any integer.

0:24:04.720 --> 0:24:07.240
<v Speaker 1>The integer you select has to be larger than the

0:24:07.320 --> 0:24:11.480
<v Speaker 1>number one, but smaller than the totient of your big

0:24:11.480 --> 0:24:14.199
<v Speaker 1>old number that you generated earlier by multiplying those two

0:24:14.240 --> 0:24:16.719
<v Speaker 1>prime numbers together and then taking the totient from it.

0:24:17.320 --> 0:24:19.719
<v Speaker 1>In fact, it has to be a co prime with

0:24:19.760 --> 0:24:24.119
<v Speaker 1>the totient and the modulus itself, so it cannot share

0:24:24.359 --> 0:24:27.560
<v Speaker 1>a factor with the totient or with the modulus. So again,

0:24:27.600 --> 0:24:30.679
<v Speaker 1>in my example, where I had fourteen as our modulus,

0:24:30.920 --> 0:24:34.320
<v Speaker 1>the totient was six, we need an integer between one

0:24:34.359 --> 0:24:38.240
<v Speaker 1>and six that is co prime with both six and fourteen.

0:24:38.760 --> 0:24:40.960
<v Speaker 1>So we cannot use one because the number has to

0:24:40.960 --> 0:24:44.240
<v Speaker 1>be bigger than one. We can't use two or three

0:24:44.600 --> 0:24:49.240
<v Speaker 1>or four because all of those share factors with six. Right,

0:24:49.359 --> 0:24:52.359
<v Speaker 1>it has to be co prime, so you cannot use those.

0:24:52.760 --> 0:24:56.240
<v Speaker 1>The only number available to us is five. This becomes

0:24:56.280 --> 0:24:59.719
<v Speaker 1>our encryption key. Figuring out the decryption key is a

0:24:59.720 --> 0:25:02.920
<v Speaker 1>little more complicated, and that's probably making some of you

0:25:03.200 --> 0:25:05.280
<v Speaker 1>scratch your heads, because what I just went through is

0:25:05.480 --> 0:25:07.520
<v Speaker 1>fairly complicated for those of us who are not very

0:25:07.560 --> 0:25:10.959
<v Speaker 1>mathematically inclined. I include myself in that number. By the way,

0:25:11.240 --> 0:25:14.040
<v Speaker 1>the prime number we arrived at for the encryption key

0:25:14.160 --> 0:25:17.159
<v Speaker 1>has the greatest common divisor or g c D of

0:25:17.280 --> 0:25:20.600
<v Speaker 1>one with the totient of that number. So we take

0:25:20.640 --> 0:25:24.480
<v Speaker 1>the multiplicative inverse of this number with respect to the

0:25:24.480 --> 0:25:28.200
<v Speaker 1>totient using the extended Euclidean algorithm. Yeah, I get super

0:25:28.280 --> 0:25:30.760
<v Speaker 1>duper complicated, and I'm pretty sure I can't explain it,

0:25:31.440 --> 0:25:35.919
<v Speaker 1>especially not in audio alone, so the well will skip ahead.

0:25:36.240 --> 0:25:39.680
<v Speaker 1>You just imagine you do some more complicated math and

0:25:39.760 --> 0:25:42.479
<v Speaker 1>you denote this result with the letter D, and that

0:25:42.560 --> 0:25:46.560
<v Speaker 1>represents the private key. Now. I use the prime numbers

0:25:46.560 --> 0:25:48.520
<v Speaker 1>two and seven in my example only because they were

0:25:48.520 --> 0:25:51.000
<v Speaker 1>easy to work with, But that's precisely why no one

0:25:51.040 --> 0:25:53.840
<v Speaker 1>in the right mind would ever use those to encrypt anything.

0:25:54.320 --> 0:25:56.320
<v Speaker 1>You want to have a pretty large number to work with,

0:25:56.520 --> 0:25:59.000
<v Speaker 1>and even your public key should be pretty big. A

0:25:59.119 --> 0:26:03.480
<v Speaker 1>standard public key is sixty five thousand, five seven, which

0:26:03.520 --> 0:26:05.520
<v Speaker 1>is a prime number, and as long as it has

0:26:05.560 --> 0:26:07.800
<v Speaker 1>no common factors with the modulus, you're good to go.

0:26:08.040 --> 0:26:10.120
<v Speaker 1>And the only way it could have a common factor

0:26:10.160 --> 0:26:13.479
<v Speaker 1>with a modulus is if it was itself a factor

0:26:13.520 --> 0:26:15.919
<v Speaker 1>of your big number, but that's not likely to happen.

0:26:16.280 --> 0:26:18.000
<v Speaker 1>So you want a big key, but you don't want

0:26:18.040 --> 0:26:19.840
<v Speaker 1>it to be too big, and the reason for that

0:26:20.000 --> 0:26:22.840
<v Speaker 1>is encryption is more efficient if you're using smaller numbers

0:26:22.840 --> 0:26:26.880
<v Speaker 1>as your keys. Remember, like essentially encryption involves doing lots

0:26:26.880 --> 0:26:29.280
<v Speaker 1>of math problems. The bigger the numbers are for your

0:26:29.320 --> 0:26:31.880
<v Speaker 1>math problems, the bigger the results are going to be,

0:26:32.040 --> 0:26:34.119
<v Speaker 1>and the larger it's going to make your message. So

0:26:34.160 --> 0:26:37.199
<v Speaker 1>if you're trying to encrypt a very long message to someone,

0:26:37.760 --> 0:26:40.920
<v Speaker 1>then ends up being a much larger amount of data,

0:26:41.320 --> 0:26:45.640
<v Speaker 1>like sometimes several times larger than the original amount of data.

0:26:45.680 --> 0:26:47.560
<v Speaker 1>And if you get too big, you may not even

0:26:47.600 --> 0:26:49.920
<v Speaker 1>be able to send it if the service you're using

0:26:49.960 --> 0:26:53.920
<v Speaker 1>has a limit on the size of messages. So if

0:26:53.960 --> 0:26:58.120
<v Speaker 1>you go too big, it gets inefficient and clunky and

0:26:58.200 --> 0:27:00.439
<v Speaker 1>sometimes too big for you to even hand. But if

0:27:00.440 --> 0:27:02.720
<v Speaker 1>you go too small, you risk the possibility of someone

0:27:02.760 --> 0:27:05.600
<v Speaker 1>being able to suss out the private key given enough

0:27:05.600 --> 0:27:08.360
<v Speaker 1>time and processing powers, So it's a balancing act. One

0:27:08.400 --> 0:27:10.679
<v Speaker 1>thing you could do to make things move more quickly

0:27:11.040 --> 0:27:13.520
<v Speaker 1>is to use this public and private key approach to

0:27:13.680 --> 0:27:17.679
<v Speaker 1>establish a new encryption key between the two communicators. This

0:27:17.720 --> 0:27:21.000
<v Speaker 1>would be called a session key. So Alice would send

0:27:21.000 --> 0:27:24.560
<v Speaker 1>Bob a message, she would use Bob's public encryption key

0:27:24.600 --> 0:27:27.359
<v Speaker 1>that's and she would encrypt a message that says, hey,

0:27:27.440 --> 0:27:29.960
<v Speaker 1>got a second and she sends it to Bob, and

0:27:30.040 --> 0:27:32.840
<v Speaker 1>Bob receives the message. He uses his private key, he

0:27:33.000 --> 0:27:35.840
<v Speaker 1>decodes the message and sends a message back to Alice

0:27:35.960 --> 0:27:39.040
<v Speaker 1>using her public encryption key that says, sure I do.

0:27:39.560 --> 0:27:42.679
<v Speaker 1>And here's a brand new private key that we can

0:27:42.760 --> 0:27:46.119
<v Speaker 1>use for each other for the purposes of this conversation session.

0:27:46.680 --> 0:27:49.640
<v Speaker 1>And then Alice would decrypt this message, and they would

0:27:49.720 --> 0:27:53.520
<v Speaker 1>each have a private key that they could use to

0:27:53.600 --> 0:27:57.400
<v Speaker 1>each other, a symmetric key. All subsequent messages between Bob

0:27:57.400 --> 0:28:01.320
<v Speaker 1>and Alice would use this new private encryption methodology. And

0:28:01.359 --> 0:28:04.800
<v Speaker 1>we call this symmetric because you're using the same key

0:28:04.840 --> 0:28:09.119
<v Speaker 1>to encrypt and decrypt and UH. Otherwise, you wouldn't be

0:28:09.119 --> 0:28:12.120
<v Speaker 1>able to send this to each other because it would

0:28:12.160 --> 0:28:14.520
<v Speaker 1>be public information and everyone would have a copy of

0:28:14.560 --> 0:28:18.199
<v Speaker 1>the key. Using the public private key message to first

0:28:18.800 --> 0:28:22.240
<v Speaker 1>send this is clever because the first message, anyone could

0:28:22.280 --> 0:28:24.720
<v Speaker 1>intercept it, but they're not gonna know what's in it.

0:28:25.200 --> 0:28:28.120
<v Speaker 1>And then all subsequent messages would be using a totally

0:28:28.200 --> 0:28:34.439
<v Speaker 1>different UH encryption methodology. So even if someone were to

0:28:34.640 --> 0:28:39.239
<v Speaker 1>monitor this communication, the communications they would see would be

0:28:39.360 --> 0:28:43.760
<v Speaker 1>encrypted in different ways, and that would make it practically

0:28:43.800 --> 0:28:46.280
<v Speaker 1>impossible to figure out what was going on. You could

0:28:46.280 --> 0:28:49.320
<v Speaker 1>even go a step further and have a new key

0:28:49.360 --> 0:28:52.920
<v Speaker 1>generated with essentially every single message, so it's essentially a

0:28:52.920 --> 0:28:56.160
<v Speaker 1>one ahead. Each message gets a new key to be

0:28:56.280 --> 0:29:00.280
<v Speaker 1>encrypted by, and since it keeps changing each time someone

0:29:00.280 --> 0:29:03.240
<v Speaker 1>sends a message, like Bob sends Alice a new message

0:29:03.240 --> 0:29:08.160
<v Speaker 1>and says uh uh secret, secret, secret, brand new key,

0:29:08.200 --> 0:29:11.200
<v Speaker 1>Alice uses the brand new key to part her message

0:29:11.200 --> 0:29:13.520
<v Speaker 1>in too, Bob, and it says more secrets, more secrets,

0:29:13.520 --> 0:29:18.160
<v Speaker 1>more secrets, new, brand new key. Bob uses the uh

0:29:18.240 --> 0:29:22.320
<v Speaker 1>the the key from one session earlier to unlock Alice's

0:29:22.560 --> 0:29:26.120
<v Speaker 1>message reads it then uses the brand new key to

0:29:26.280 --> 0:29:28.800
<v Speaker 1>send the next message. You could keep doing this forever.

0:29:29.320 --> 0:29:31.960
<v Speaker 1>You could keep sending a brand new key with every

0:29:32.000 --> 0:29:35.040
<v Speaker 1>single message, and it would make your communications very secure.

0:29:35.080 --> 0:29:37.400
<v Speaker 1>It would be a little slow because you would have

0:29:37.480 --> 0:29:41.640
<v Speaker 1>to do this decryption encryption thing every single step, and

0:29:41.760 --> 0:29:44.040
<v Speaker 1>you wouldn't be able to repeat the steps because they'll

0:29:44.080 --> 0:29:46.640
<v Speaker 1>be using a new key every time, but it would

0:29:46.640 --> 0:29:49.160
<v Speaker 1>be really secure, and in fact, there are some messaging

0:29:49.200 --> 0:29:53.520
<v Speaker 1>apps that use this kind of methodology. So the really

0:29:53.520 --> 0:29:57.120
<v Speaker 1>big benefit of symmetric encryption is that. Well, one, it's

0:29:57.200 --> 0:30:00.520
<v Speaker 1>faster than using public and private key approach, but another

0:30:00.640 --> 0:30:03.000
<v Speaker 1>is that limits the number of times that you use

0:30:03.080 --> 0:30:06.520
<v Speaker 1>the public key, and that can be a good thing. Now,

0:30:06.520 --> 0:30:10.160
<v Speaker 1>it's not easy with today's computers, but at least there

0:30:10.240 --> 0:30:14.040
<v Speaker 1>it's at least theoretically possible that hackers could suss out

0:30:14.240 --> 0:30:16.960
<v Speaker 1>a public encryption key and work backward to figure out

0:30:16.960 --> 0:30:20.440
<v Speaker 1>the private encryption key. It's a non trivial problem. It

0:30:20.480 --> 0:30:23.640
<v Speaker 1>requires a ton of computer processing power, and it's not

0:30:23.720 --> 0:30:26.800
<v Speaker 1>likely to happen if you're using really secure encryption. But

0:30:26.880 --> 0:30:30.120
<v Speaker 1>the more frequently use the same public key, the more

0:30:30.200 --> 0:30:32.120
<v Speaker 1>data hackers have to work with, and they can start

0:30:32.200 --> 0:30:38.440
<v Speaker 1>looking for patterns. Patterns are the bane of encryption. When

0:30:38.440 --> 0:30:41.920
<v Speaker 1>you have patterns, then you can start to establish rules.

0:30:41.960 --> 0:30:43.800
<v Speaker 1>And when you start to establish rules, you can start

0:30:43.840 --> 0:30:46.600
<v Speaker 1>working backward and figuring out what generates those rules, and

0:30:46.600 --> 0:30:50.680
<v Speaker 1>eventually you figure out the methodology for encoding the information.

0:30:51.440 --> 0:30:55.640
<v Speaker 1>So you don't want to have patterns in your encoded information.

0:30:55.720 --> 0:30:59.280
<v Speaker 1>If possible, if you keep using the public private key

0:30:59.320 --> 0:31:02.959
<v Speaker 1>method and it's all you're using, then hackers eventually can

0:31:03.000 --> 0:31:06.560
<v Speaker 1>gather enough information that if they have a sufficiently powerful

0:31:06.600 --> 0:31:11.800
<v Speaker 1>computer and enough time on their hands, they can decrypt it. Uh.

0:31:11.840 --> 0:31:14.160
<v Speaker 1>That if is a big one though, because if you're

0:31:14.280 --> 0:31:20.000
<v Speaker 1>using pretty strong encryption, it would take weeks or months

0:31:20.200 --> 0:31:24.400
<v Speaker 1>or more likely years to decrypt the messages. Now, in

0:31:24.440 --> 0:31:28.800
<v Speaker 1>a recent episode, I talked about quantum computers. With a

0:31:28.840 --> 0:31:31.760
<v Speaker 1>classical computer, like I said, figuring out prime numbers for

0:31:31.800 --> 0:31:35.160
<v Speaker 1>a really large number takes an incredibly long time. Depending

0:31:35.160 --> 0:31:37.160
<v Speaker 1>on the size of the number, it could take like

0:31:37.200 --> 0:31:39.840
<v Speaker 1>I said, years for a classical computer to sort it out.

0:31:39.880 --> 0:31:43.760
<v Speaker 1>But a quantum computer, if it's sufficiently powerful, could solve

0:31:43.760 --> 0:31:49.200
<v Speaker 1>those problems much more quickly using a process called Shore's algorithm.

0:31:49.560 --> 0:31:51.400
<v Speaker 1>So if you have a quantum computer with a sufficient

0:31:51.480 --> 0:31:54.680
<v Speaker 1>number of cubits, you could crack this type of encryption

0:31:54.720 --> 0:31:58.480
<v Speaker 1>relatively quickly and pretty reliably. So it's therefore imperative to

0:31:58.520 --> 0:32:01.040
<v Speaker 1>look at new methods of encrypt in order to avoid

0:32:01.080 --> 0:32:04.200
<v Speaker 1>a situation in which the first really powerful quantum computer

0:32:04.400 --> 0:32:08.200
<v Speaker 1>effectively gets a skeleton key to all encrypted messages that

0:32:08.240 --> 0:32:11.080
<v Speaker 1>have been sent across the Internet. Now, let's talk a

0:32:11.120 --> 0:32:14.360
<v Speaker 1>second about the history of end to end encryption, and

0:32:14.400 --> 0:32:16.520
<v Speaker 1>then a bit more about the apps and services that

0:32:16.720 --> 0:32:23.720
<v Speaker 1>use it and some that do not use it. In nine, Whitfield,

0:32:23.720 --> 0:32:27.120
<v Speaker 1>Diffy and Martin Hellman proposed the concept of using public

0:32:27.160 --> 0:32:32.080
<v Speaker 1>and private key combinations in order to distribute symmetric encryption keys.

0:32:32.480 --> 0:32:35.240
<v Speaker 1>It's possible they weren't the first to consider this too.

0:32:35.400 --> 0:32:38.560
<v Speaker 1>There's been some evidence to suggest the British Secret Service

0:32:38.600 --> 0:32:40.960
<v Speaker 1>had come up with a similar approach but never really

0:32:41.000 --> 0:32:43.719
<v Speaker 1>did anything with it. Their idea was the basis not

0:32:43.800 --> 0:32:46.480
<v Speaker 1>just for the r s A algorithm, but a few

0:32:46.480 --> 0:32:49.720
<v Speaker 1>others as well, like the el Camal crypto system, which

0:32:49.760 --> 0:32:52.800
<v Speaker 1>was named after Tahir el Camal, or the d s

0:32:52.840 --> 0:32:56.960
<v Speaker 1>A system also known as the Digital Signature algorithm, invented

0:32:57.000 --> 0:33:01.360
<v Speaker 1>by a guy named David Kravitz, as well as the

0:33:01.440 --> 0:33:05.520
<v Speaker 1>Diffie Hellman cryptosystem, which obviously was created by Whitfield, Diffie

0:33:05.520 --> 0:33:09.680
<v Speaker 1>and Martin Hellman. Then along came p g P, which

0:33:09.720 --> 0:33:14.560
<v Speaker 1>stands for Pretty Good Privacy. The cryptosystem is a hybrid system.

0:33:14.720 --> 0:33:20.200
<v Speaker 1>It was proposed by Phil Zimmerman in n Zimmerman graduated

0:33:20.280 --> 0:33:24.080
<v Speaker 1>from Florida Atlantic University with a degree in computer science,

0:33:24.480 --> 0:33:27.480
<v Speaker 1>and he was active in a project called the Freeze,

0:33:27.600 --> 0:33:31.760
<v Speaker 1>also known as the Nuclear Weapons Freeze campaign. The purpose

0:33:31.880 --> 0:33:35.080
<v Speaker 1>of this organization was to try and curtail nuclear arms

0:33:35.120 --> 0:33:39.000
<v Speaker 1>production in an effort to de escalate mounting global tensions

0:33:39.120 --> 0:33:43.120
<v Speaker 1>and to remove a A an existential threat to the

0:33:43.200 --> 0:33:47.280
<v Speaker 1>human race, and Zimmerman created p g P to allow

0:33:47.320 --> 0:33:50.239
<v Speaker 1>for secure email communications among various parties to make their

0:33:50.280 --> 0:33:54.040
<v Speaker 1>efforts more effective and less likely to get snooped on. Now,

0:33:54.040 --> 0:33:56.880
<v Speaker 1>when you use p g P, the first thing it

0:33:56.920 --> 0:34:00.760
<v Speaker 1>does is it takes your plain text message and impresses it,

0:34:01.440 --> 0:34:03.800
<v Speaker 1>and so it makes it smaller, which is one benefit,

0:34:03.880 --> 0:34:07.440
<v Speaker 1>but it also helps to make it more secure because

0:34:07.440 --> 0:34:10.440
<v Speaker 1>it reduces patterns that might otherwise be useful to hackers

0:34:10.480 --> 0:34:14.879
<v Speaker 1>who want to decrypt messages. It also generates a session key,

0:34:14.920 --> 0:34:17.640
<v Speaker 1>that's that symmetric encryption key I was just talking about

0:34:17.680 --> 0:34:19.880
<v Speaker 1>that would be used throughout the length of any particular

0:34:19.920 --> 0:34:23.239
<v Speaker 1>communication session. The way PGP does this is pretty cool.

0:34:23.280 --> 0:34:26.720
<v Speaker 1>It actually generates the data for the session key based

0:34:26.719 --> 0:34:29.600
<v Speaker 1>on your mouse movements and key strokes you've typed, so

0:34:29.719 --> 0:34:32.520
<v Speaker 1>it's based upon physical interactions you've had with your computer,

0:34:33.200 --> 0:34:37.520
<v Speaker 1>not with any other just random prime number. All of this,

0:34:37.719 --> 0:34:40.600
<v Speaker 1>the compressed plane text message and the unique session key

0:34:40.640 --> 0:34:43.959
<v Speaker 1>generated from your physical interactions with your computer then get

0:34:44.120 --> 0:34:49.440
<v Speaker 1>encoded using this public private key strategy. If Alice sends

0:34:49.440 --> 0:34:53.520
<v Speaker 1>a message using PGP too Bob, first, Alice's computer will

0:34:53.520 --> 0:34:57.200
<v Speaker 1>compress your message, it will append a session key based

0:34:57.200 --> 0:35:00.919
<v Speaker 1>on Alice's typing and mouse movements, and then encrypt all

0:35:01.000 --> 0:35:04.640
<v Speaker 1>of that mess using Bob's public key. Then the message

0:35:04.760 --> 0:35:08.280
<v Speaker 1>travels to Bob. Bob uses his private key to decode

0:35:08.280 --> 0:35:11.320
<v Speaker 1>the message and he can see the session key Alice

0:35:11.320 --> 0:35:13.719
<v Speaker 1>has set up and then use that to communicate back

0:35:13.760 --> 0:35:16.880
<v Speaker 1>with her securely for the rest of the session. Zimmerman's

0:35:16.920 --> 0:35:20.040
<v Speaker 1>p GP was more than just pretty good. It was

0:35:20.120 --> 0:35:23.359
<v Speaker 1>actually a brilliant approach to encryption. It became adopted by

0:35:23.360 --> 0:35:26.640
<v Speaker 1>many organizations and people across the United States and then

0:35:26.680 --> 0:35:29.040
<v Speaker 1>the world, and that caused a huge amount of trouble

0:35:29.160 --> 0:35:32.760
<v Speaker 1>for Zimmerman. For one thing, r s A Security wished

0:35:32.760 --> 0:35:35.960
<v Speaker 1>to question Zimmerman about the use of the r s

0:35:36.040 --> 0:35:38.799
<v Speaker 1>A algorithm within p GP. There was some disputes about

0:35:38.840 --> 0:35:43.080
<v Speaker 1>the licensing. Then the United States Custom Services decided to

0:35:43.080 --> 0:35:46.840
<v Speaker 1>investigate Zimmerman because of the distribution of p GP beyond

0:35:46.920 --> 0:35:51.160
<v Speaker 1>the US borders. Because in the United States there was

0:35:51.239 --> 0:35:56.120
<v Speaker 1>the Arms Control Act and it listed cryptographics software as

0:35:56.160 --> 0:35:59.600
<v Speaker 1>a type of munitions, which would mean if Zimmerman had

0:35:59.600 --> 0:36:02.080
<v Speaker 1>allowed his work to go outside the US, he would

0:36:02.080 --> 0:36:04.840
<v Speaker 1>be in very big trouble because it was similar to

0:36:04.960 --> 0:36:09.000
<v Speaker 1>shipping prohibited weapons outside the country. And if you think

0:36:09.000 --> 0:36:11.920
<v Speaker 1>that sounds a little crazy that software could be considered

0:36:11.920 --> 0:36:15.960
<v Speaker 1>a weapon, Welcome to the twenty first century. Zimmerman was

0:36:16.160 --> 0:36:19.640
<v Speaker 1>never officially charged with any crime, but the investigation did

0:36:19.800 --> 0:36:23.359
<v Speaker 1>last several years. Eventually, the courts determined that p GP

0:36:23.560 --> 0:36:26.680
<v Speaker 1>did not fall into a category that would be considered munitions,

0:36:26.960 --> 0:36:30.440
<v Speaker 1>and today his PGP technology is the property of the

0:36:30.480 --> 0:36:34.560
<v Speaker 1>security firm Symantec, which purchased the PGP Corporation back in

0:36:35.520 --> 0:36:36.719
<v Speaker 1>Now I've got a little bit more I want to

0:36:36.719 --> 0:36:39.200
<v Speaker 1>say about end to end encryption, but before I get

0:36:39.239 --> 0:36:42.080
<v Speaker 1>to that, let's take another quick break to thank our sponsor.

0:36:49.200 --> 0:36:53.080
<v Speaker 1>So the PGP strategy also allows for digital signatures, which

0:36:53.080 --> 0:36:54.920
<v Speaker 1>are a way for you to make sure the message

0:36:54.960 --> 0:36:58.319
<v Speaker 1>being sent to you hasn't been intercepted and altered in

0:36:58.360 --> 0:37:00.840
<v Speaker 1>any way. Plus you can be sure that the message

0:37:00.920 --> 0:37:03.960
<v Speaker 1>came from the person it claims to have come from.

0:37:04.120 --> 0:37:07.000
<v Speaker 1>Digital signatures and p g P use what is called

0:37:07.040 --> 0:37:11.120
<v Speaker 1>a one way hash function. The implementation p g P

0:37:11.360 --> 0:37:13.640
<v Speaker 1>uses is to take the message, which can be of

0:37:13.680 --> 0:37:17.640
<v Speaker 1>any length. So let's say it's a really really long message.

0:37:17.880 --> 0:37:20.840
<v Speaker 1>Then it does a mathematical process on it to arrive

0:37:20.920 --> 0:37:24.800
<v Speaker 1>at a fixed length output, such as one sixty bits.

0:37:24.840 --> 0:37:28.080
<v Speaker 1>So the one sixty bits does not contain the entire message.

0:37:28.080 --> 0:37:32.200
<v Speaker 1>It represents the entire message. It's fine distinction. It doesn't

0:37:32.239 --> 0:37:34.960
<v Speaker 1>matter how long that original message was. The goal is

0:37:35.000 --> 0:37:39.160
<v Speaker 1>to create this shorter hash that speeds things up. It

0:37:39.239 --> 0:37:43.000
<v Speaker 1>doesn't make file sizes balloon from the encryption process. The

0:37:43.040 --> 0:37:47.439
<v Speaker 1>hash function depends entirely on the message itself, So if

0:37:47.480 --> 0:37:50.680
<v Speaker 1>someone were to change even one single bit as in one,

0:37:50.800 --> 0:37:54.280
<v Speaker 1>zero or one of information in that message, the hash

0:37:54.400 --> 0:37:58.240
<v Speaker 1>value would also change because it depends upon the nature

0:37:58.280 --> 0:38:00.479
<v Speaker 1>of the rest of the message. So if you send

0:38:00.480 --> 0:38:02.960
<v Speaker 1>a message to someone and they know what the hash

0:38:03.040 --> 0:38:05.960
<v Speaker 1>value is supposed to be, they can verify that the

0:38:06.000 --> 0:38:09.960
<v Speaker 1>associated message was never altered. So they've got essentially the

0:38:09.960 --> 0:38:12.640
<v Speaker 1>the hash value it's supposed to be and the hash

0:38:12.719 --> 0:38:15.360
<v Speaker 1>value it actually is. If those two numbers are different,

0:38:15.760 --> 0:38:18.480
<v Speaker 1>then they know that something has happened to the message

0:38:18.640 --> 0:38:22.000
<v Speaker 1>in transit. The way PGP does this is to generate

0:38:22.040 --> 0:38:25.720
<v Speaker 1>a hash called the message digest. It uses the message

0:38:25.840 --> 0:38:29.279
<v Speaker 1>digest and the private key to create a signature. Then

0:38:29.360 --> 0:38:32.160
<v Speaker 1>p GP sends the plain text in signature together to

0:38:32.320 --> 0:38:36.120
<v Speaker 1>the recipient. The recipient uses PGP to recompute the message

0:38:36.200 --> 0:38:39.080
<v Speaker 1>digest to verify it is from the supposed center and

0:38:39.080 --> 0:38:42.400
<v Speaker 1>then it hasn't been altered. And if the recomputed message

0:38:42.480 --> 0:38:45.200
<v Speaker 1>digest is the same as the original that was in

0:38:45.239 --> 0:38:49.160
<v Speaker 1>the message, everything's good. If the recomputed one is not

0:38:49.280 --> 0:38:52.399
<v Speaker 1>the same, then something has happened, and you know that

0:38:52.440 --> 0:38:56.319
<v Speaker 1>the the trail between the two has been compromised in

0:38:56.400 --> 0:38:59.239
<v Speaker 1>some way. By the way, this does not reveal the

0:38:59.280 --> 0:39:02.680
<v Speaker 1>private key to the other person. The private key remains

0:39:02.719 --> 0:39:05.600
<v Speaker 1>private um P. G P is able to protect that,

0:39:05.680 --> 0:39:09.279
<v Speaker 1>which is kind of cool. Alright. So who uses end

0:39:09.280 --> 0:39:12.320
<v Speaker 1>to end encryption and who does not? Well? Among the

0:39:12.360 --> 0:39:15.680
<v Speaker 1>messaging apps that use end to end encryption, there is

0:39:15.800 --> 0:39:19.880
<v Speaker 1>the Big Daddy What's App. That's an incredibly popular messaging app.

0:39:19.920 --> 0:39:23.440
<v Speaker 1>It is owned by Facebook. Now what didn't start off

0:39:23.480 --> 0:39:26.879
<v Speaker 1>as a Facebook project. It was purchased by Facebook. The

0:39:26.920 --> 0:39:31.799
<v Speaker 1>original messaging app was co founded by Jan Kom who

0:39:31.800 --> 0:39:34.520
<v Speaker 1>grew up in the Ukraine. And wanted to create a

0:39:34.520 --> 0:39:38.080
<v Speaker 1>way in which people could send messages safely without the

0:39:38.120 --> 0:39:41.920
<v Speaker 1>fear of an oppressive presence, like a totalitarian government agency,

0:39:41.920 --> 0:39:44.840
<v Speaker 1>for example, that could read all of them. Now, he

0:39:44.880 --> 0:39:47.919
<v Speaker 1>had moved to America when he was sixteen, and years

0:39:48.000 --> 0:39:50.560
<v Speaker 1>later he met with a guy named Brian Acton and

0:39:50.640 --> 0:39:54.360
<v Speaker 1>Acting became the other co founder of WhatsApp. They created

0:39:54.400 --> 0:39:57.200
<v Speaker 1>the messaging service, and they used end to end encryption

0:39:57.280 --> 0:40:02.640
<v Speaker 1>to protect users privacy. When Faceboo Public purchased WhatsApp rather,

0:40:03.320 --> 0:40:07.279
<v Speaker 1>many security experts express concern because they were worried that

0:40:07.320 --> 0:40:11.360
<v Speaker 1>Facebook might chip away at the messaging apps security and

0:40:11.400 --> 0:40:14.480
<v Speaker 1>allow Facebook the chance to mind these messages and then

0:40:14.520 --> 0:40:18.920
<v Speaker 1>sell that data to advertisers, and there have been accusations

0:40:19.040 --> 0:40:23.200
<v Speaker 1>levied at Facebook claiming as much. To Bias Bolter, a

0:40:23.320 --> 0:40:26.920
<v Speaker 1>security researcher, told reporters at The Guardian that Facebook had

0:40:26.960 --> 0:40:30.520
<v Speaker 1>the ability to generate new encryption keys for offline users

0:40:30.600 --> 0:40:34.000
<v Speaker 1>and thus access messages that would be sent to them.

0:40:34.040 --> 0:40:37.080
<v Speaker 1>Whether that's true or not, I don't know. Facebook has

0:40:37.120 --> 0:40:39.760
<v Speaker 1>denied that they have the ability to read any messages

0:40:39.760 --> 0:40:43.120
<v Speaker 1>from their users, but there's still a lot of concern

0:40:43.160 --> 0:40:47.000
<v Speaker 1>about WhatsApp in general. Another app that uses end to

0:40:47.120 --> 0:40:50.800
<v Speaker 1>end encryption is Signal. Signal started out as text secure

0:40:50.880 --> 0:40:53.399
<v Speaker 1>private messenger, and you can also use Signal to make

0:40:53.520 --> 0:40:57.280
<v Speaker 1>encrypted voice and video calls to other users. These follow

0:40:57.360 --> 0:41:01.680
<v Speaker 1>a similar approach to messages and email els um. They

0:41:01.719 --> 0:41:05.840
<v Speaker 1>protocols are obviously a little different because they're different media

0:41:06.040 --> 0:41:11.360
<v Speaker 1>or different forms of messaging, but the general principle remains

0:41:11.400 --> 0:41:14.560
<v Speaker 1>the same, the idea that all the information being sent

0:41:14.719 --> 0:41:17.840
<v Speaker 1>across these channels is encrypted all the way until it

0:41:17.840 --> 0:41:22.560
<v Speaker 1>gets to the destination device. Whire is a another popular app,

0:41:22.680 --> 0:41:26.720
<v Speaker 1>particularly in countries belonging to the European Union. It's also

0:41:26.880 --> 0:41:30.080
<v Speaker 1>free and open source. The app does store a record

0:41:30.120 --> 0:41:33.200
<v Speaker 1>of the people you've communicated with. That's a little problematic

0:41:33.239 --> 0:41:37.120
<v Speaker 1>from a security standpoint. Now, the purpose of storing this

0:41:37.239 --> 0:41:40.960
<v Speaker 1>information is to make it easier to synchronize and experience

0:41:41.000 --> 0:41:43.920
<v Speaker 1>across devices, because one of the big drawbacks of the

0:41:43.960 --> 0:41:47.680
<v Speaker 1>public private key approach is that ideally you have that

0:41:47.719 --> 0:41:51.920
<v Speaker 1>private key on one and only one device. If you

0:41:52.000 --> 0:41:54.840
<v Speaker 1>share a private key across multiple devices, then you have

0:41:55.000 --> 0:41:58.720
<v Speaker 1>increased the possibility of someone getting access to your private key.

0:41:58.760 --> 0:42:01.000
<v Speaker 1>But if you lose the device pace that the private

0:42:01.080 --> 0:42:04.120
<v Speaker 1>key is on, you lose all your messaging history as well,

0:42:04.160 --> 0:42:07.760
<v Speaker 1>because remember, no one else can see what that encrypted

0:42:07.800 --> 0:42:11.000
<v Speaker 1>stuff is because it all used your public key that

0:42:11.080 --> 0:42:13.440
<v Speaker 1>could only be decoded by your private key. So if

0:42:13.480 --> 0:42:16.560
<v Speaker 1>you lose your private key, all you have is gobbledygook.

0:42:16.880 --> 0:42:20.480
<v Speaker 1>You can't read it. That is, of course, if if

0:42:20.520 --> 0:42:24.480
<v Speaker 1>you haven't been storing messages in some other fashion, uh

0:42:24.760 --> 0:42:28.759
<v Speaker 1>like in plain text some services, you could, as a

0:42:28.880 --> 0:42:33.319
<v Speaker 1>user opt to store your messages using a third party application.

0:42:33.760 --> 0:42:37.440
<v Speaker 1>This would be like you receive the message, you decrypt

0:42:37.440 --> 0:42:39.720
<v Speaker 1>the message when you receive it, you have the message

0:42:39.760 --> 0:42:41.799
<v Speaker 1>in plain text because you have to in order to

0:42:41.800 --> 0:42:44.239
<v Speaker 1>read it or or view it or whatever it may be.

0:42:45.040 --> 0:42:47.239
<v Speaker 1>And then you decide you want to save that message. Well,

0:42:47.239 --> 0:42:50.120
<v Speaker 1>when you're saving that message, you may be saving that

0:42:50.280 --> 0:42:53.319
<v Speaker 1>in plain text using a third party app, in which

0:42:53.320 --> 0:42:57.359
<v Speaker 1>case all that secrecy for the communication is undone by

0:42:57.360 --> 0:43:01.200
<v Speaker 1>your storage. It becomes a security vulnerabile. So you could

0:43:01.200 --> 0:43:03.799
<v Speaker 1>be super careful about messages as they speed to and

0:43:03.840 --> 0:43:06.040
<v Speaker 1>from your device, But if you're then storing everything on

0:43:06.080 --> 0:43:09.360
<v Speaker 1>a cloud server somewhere, you could still technically be allowing

0:43:09.400 --> 0:43:12.320
<v Speaker 1>some other company access to that information. After the fact,

0:43:12.840 --> 0:43:15.520
<v Speaker 1>but if you don't do that, if you lose your phone,

0:43:15.560 --> 0:43:18.440
<v Speaker 1>then you could lose all those messages, all the histories,

0:43:18.520 --> 0:43:22.520
<v Speaker 1>all the communications, So it's a tough situation. Also, by

0:43:22.520 --> 0:43:27.319
<v Speaker 1>the way, this means that the hackers will sometimes concentrate

0:43:27.440 --> 0:43:29.800
<v Speaker 1>not on trying to intercept a message in the middle,

0:43:30.160 --> 0:43:33.040
<v Speaker 1>because if it's encrypted, it could be more trouble than

0:43:33.040 --> 0:43:36.480
<v Speaker 1>what it's worth to try and decrypt it. Or instead

0:43:36.480 --> 0:43:40.080
<v Speaker 1>of doing that, they'll they'll try and target the end device.

0:43:40.239 --> 0:43:42.280
<v Speaker 1>So in other words, they're actually trying to get physical

0:43:42.360 --> 0:43:48.080
<v Speaker 1>access to your computer or phone or somehow be able

0:43:48.120 --> 0:43:52.400
<v Speaker 1>to look at your screen remotely once the decryption process

0:43:52.440 --> 0:43:55.040
<v Speaker 1>has happened, So they want to compromise your device at

0:43:55.080 --> 0:43:59.840
<v Speaker 1>that point because it's relatively easier than trying to do

0:44:00.000 --> 0:44:03.000
<v Speaker 1>crypt one of these heavily encrypted messages on the Internet. Anyway,

0:44:03.360 --> 0:44:07.719
<v Speaker 1>Wire has said that a user once a user deactivates

0:44:07.760 --> 0:44:11.759
<v Speaker 1>deletes his or her account, then the service deletes all

0:44:11.880 --> 0:44:16.200
<v Speaker 1>the associated information with that account, all the stored connections,

0:44:16.280 --> 0:44:19.440
<v Speaker 1>everything is gone once you delete your account with Wire,

0:44:19.600 --> 0:44:23.080
<v Speaker 1>according to the service, there's also a multi platform app

0:44:23.160 --> 0:44:27.440
<v Speaker 1>that's popular that's called Telegram. Telegram, you can search for

0:44:27.520 --> 0:44:30.319
<v Speaker 1>people by user name rather than by phone number. A

0:44:30.360 --> 0:44:32.319
<v Speaker 1>lot of apps require that you know the phone number

0:44:32.320 --> 0:44:35.399
<v Speaker 1>of the person you're trying to contact, but Telegram, when

0:44:35.440 --> 0:44:41.600
<v Speaker 1>you create a profile, in addition to creating a profile

0:44:41.640 --> 0:44:44.359
<v Speaker 1>based on a telephone number, you can create a user name,

0:44:44.400 --> 0:44:45.960
<v Speaker 1>and so people can search for you on that. It

0:44:45.960 --> 0:44:49.120
<v Speaker 1>makes it a little easier to communicate with people. There's

0:44:49.160 --> 0:44:52.600
<v Speaker 1>also another app called wicker w i c k R,

0:44:52.800 --> 0:44:57.080
<v Speaker 1>which is really popular in enterprises, so in business, not

0:44:57.160 --> 0:45:01.640
<v Speaker 1>necessarily as much with individual users. But as for email,

0:45:01.680 --> 0:45:07.600
<v Speaker 1>their services like tour Guard, Hushmail, Mail, fence to to,

0:45:07.719 --> 0:45:10.960
<v Speaker 1>Not to run Box, proton Mail, all of these use

0:45:11.040 --> 0:45:13.680
<v Speaker 1>various encryption strategies to keep messages safe. Not all of

0:45:13.680 --> 0:45:17.200
<v Speaker 1>them necessarily use end to end encryption, some of them

0:45:17.280 --> 0:45:19.719
<v Speaker 1>use other methods for encryption than in too end, but

0:45:19.760 --> 0:45:22.560
<v Speaker 1>they all do some form of encryption on their messages,

0:45:23.280 --> 0:45:26.839
<v Speaker 1>whereas popular email services like Gmail do not support end

0:45:26.840 --> 0:45:30.840
<v Speaker 1>to end encryption, and one reason they might not I

0:45:30.880 --> 0:45:33.239
<v Speaker 1>can't say this is for sure sure, but one reason

0:45:33.320 --> 0:45:37.200
<v Speaker 1>they may not do that is that it's possible that

0:45:37.440 --> 0:45:41.160
<v Speaker 1>they want to mine all that information for the possibility

0:45:41.160 --> 0:45:43.879
<v Speaker 1>of advertising against it. So in other words, you send

0:45:43.880 --> 0:45:47.400
<v Speaker 1>a message. Alison's a message to Bob, Alice talks about

0:45:48.480 --> 0:45:51.200
<v Speaker 1>all these nice flowers that she saw on a recent trip.

0:45:51.680 --> 0:45:55.560
<v Speaker 1>And then Alice starts seeing ads mysteriously whenever she's using

0:45:55.560 --> 0:46:00.440
<v Speaker 1>a Google service that is talking about flowers. Well, that

0:46:00.560 --> 0:46:04.319
<v Speaker 1>raises some very tricky ethical questions. Now, whether or not

0:46:04.400 --> 0:46:09.160
<v Speaker 1>that's actually going on, that's a that's a matter of

0:46:09.640 --> 0:46:12.960
<v Speaker 1>investigation on a case by case basis. You know, not

0:46:13.080 --> 0:46:16.880
<v Speaker 1>all emails are necessarily being mined for information, but they

0:46:16.920 --> 0:46:19.680
<v Speaker 1>all could be if they're not being encrypted end to end.

0:46:20.320 --> 0:46:24.600
<v Speaker 1>So there are a lot of advocates for privacy out

0:46:24.600 --> 0:46:28.279
<v Speaker 1>there who some of them will say, Hey, don't even

0:46:28.320 --> 0:46:31.399
<v Speaker 1>bother sending me any email if it's not encrypted. I'm

0:46:31.440 --> 0:46:34.560
<v Speaker 1>not interested you. If you're not using an encryption service

0:46:34.600 --> 0:46:39.200
<v Speaker 1>of some sort, then I do not want to communicate

0:46:39.239 --> 0:46:42.560
<v Speaker 1>with you because I prefer to keep my privacy private.

0:46:43.000 --> 0:46:45.560
<v Speaker 1>And that's a legitimate argument, I think. I don't think

0:46:45.560 --> 0:46:48.840
<v Speaker 1>it's not necessarily the indication that someone is up to something,

0:46:49.560 --> 0:46:53.760
<v Speaker 1>you know, suspicious, But it's important to remember that without

0:46:53.800 --> 0:46:56.400
<v Speaker 1>that end to end encryption, it is a possibility that

0:46:56.520 --> 0:46:59.080
<v Speaker 1>someone along the way is reading your messages. Besides the

0:46:59.080 --> 0:47:01.839
<v Speaker 1>person you're sending them too. I would like to thank

0:47:01.880 --> 0:47:07.520
<v Speaker 1>our anonymous listener for asking for us to cover this topic.

0:47:07.560 --> 0:47:11.080
<v Speaker 1>It is very fascinating. In the UK in particular, this

0:47:11.160 --> 0:47:14.640
<v Speaker 1>is an ongoing issue where the UK government would love

0:47:14.680 --> 0:47:18.520
<v Speaker 1>to see end to end encryption go away because they

0:47:18.719 --> 0:47:23.000
<v Speaker 1>worry that it's a methodology of UH, that that terrorists

0:47:23.040 --> 0:47:25.719
<v Speaker 1>are using to communicate with one another, and that this

0:47:25.840 --> 0:47:29.360
<v Speaker 1>creates a problem because you can't really investigate those terrorists

0:47:29.360 --> 0:47:32.719
<v Speaker 1>cells at least not through the means of their communication,

0:47:32.800 --> 0:47:36.480
<v Speaker 1>because you can't decrypt it. There have been people who

0:47:36.480 --> 0:47:40.160
<v Speaker 1>have called for a back door of some sort to

0:47:40.800 --> 0:47:46.000
<v Speaker 1>end to end encryption services, which defeats the purpose. Backdoor

0:47:46.120 --> 0:47:50.319
<v Speaker 1>is essentially a vulnerability you introduce on purpose so that

0:47:50.600 --> 0:47:55.800
<v Speaker 1>a party apart from the intended recipient can decode a message,

0:47:56.600 --> 0:48:01.680
<v Speaker 1>and that that raises enormous security problems. Like you don't

0:48:01.680 --> 0:48:06.000
<v Speaker 1>create a backdoor because that means you're introducing the possibility

0:48:06.120 --> 0:48:10.640
<v Speaker 1>of a hacker getting access to this information. You don't

0:48:10.680 --> 0:48:15.040
<v Speaker 1>want to do that. That's that's bad security. So there,

0:48:15.400 --> 0:48:19.200
<v Speaker 1>that's not a great UH strategy moving forward. Is trying

0:48:19.200 --> 0:48:22.200
<v Speaker 1>to force services to create a backdoor. It pretty much

0:48:22.520 --> 0:48:26.920
<v Speaker 1>breaks the whole service in the first place. So I

0:48:26.960 --> 0:48:29.560
<v Speaker 1>don't know what the solution here is. I don't think

0:48:29.600 --> 0:48:33.320
<v Speaker 1>that that getting rid of a technology because some people

0:48:33.560 --> 0:48:38.719
<v Speaker 1>use it improperly is necessarily going to work. Um that

0:48:38.840 --> 0:48:42.480
<v Speaker 1>is uh, it is, it is. It raises a lot

0:48:42.480 --> 0:48:44.880
<v Speaker 1>of questions, and it also means that you have to

0:48:44.920 --> 0:48:50.359
<v Speaker 1>put an awful lot of trust in the governing agency,

0:48:50.600 --> 0:48:54.120
<v Speaker 1>and that can be difficult to do. And also, any

0:48:54.360 --> 0:48:57.040
<v Speaker 1>time you have a back door, anytime you have any

0:48:57.239 --> 0:49:01.160
<v Speaker 1>sort of vulnerability, if people know it exists, then you've

0:49:01.200 --> 0:49:04.560
<v Speaker 1>just given hackers a target to shoot for. And even

0:49:04.760 --> 0:49:07.680
<v Speaker 1>if it works as it's supposed to, where everyone is

0:49:07.719 --> 0:49:11.400
<v Speaker 1>behaving themselves from the good guys standpoint, let's say that

0:49:11.440 --> 0:49:13.399
<v Speaker 1>the government is a good guy in this. In this

0:49:13.600 --> 0:49:17.840
<v Speaker 1>scenario that both Alice and Bob are behaving themselves, the

0:49:17.880 --> 0:49:21.239
<v Speaker 1>government is behaving itself. It's not investigating Alison Bob. It

0:49:21.280 --> 0:49:23.759
<v Speaker 1>has no reason to suspect them. So they're able to

0:49:23.800 --> 0:49:28.520
<v Speaker 1>send their messages securely. But there is this back door

0:49:28.640 --> 0:49:33.239
<v Speaker 1>option that is available, then hackers could target that and

0:49:33.280 --> 0:49:35.880
<v Speaker 1>then they compromise the system, and then Alice and Bob's

0:49:35.920 --> 0:49:39.840
<v Speaker 1>messages are laid bare for the hackers because you've just

0:49:39.880 --> 0:49:43.280
<v Speaker 1>painted a huge target on the service. It's not great,

0:49:43.480 --> 0:49:48.880
<v Speaker 1>and not every end to end encryption service is infallible. Uh.

0:49:48.920 --> 0:49:52.400
<v Speaker 1>There have been security experts who have accused Apple in

0:49:52.440 --> 0:49:57.200
<v Speaker 1>particular of implementing a poor end to end encryption strategy

0:49:57.320 --> 0:50:00.879
<v Speaker 1>for their Eye Message app and have stated that there

0:50:00.880 --> 0:50:06.200
<v Speaker 1>are ways that that could be defeated using classical computer systems.

0:50:07.320 --> 0:50:10.000
<v Speaker 1>So it is possible to do this in a way

0:50:10.000 --> 0:50:14.799
<v Speaker 1>that isn't effective, but the actual idea itself is incredibly

0:50:15.000 --> 0:50:19.280
<v Speaker 1>effective if you implement it properly and you're using classical

0:50:19.320 --> 0:50:24.839
<v Speaker 1>computers as your potential threat. Once quantum computers actually become

0:50:24.840 --> 0:50:27.319
<v Speaker 1>on part of the scene for real z s, when

0:50:27.360 --> 0:50:31.000
<v Speaker 1>they're sufficiently powerful, it'll be a totally different story because

0:50:32.200 --> 0:50:38.160
<v Speaker 1>a sufficiently powerful quantum computer will completely lay bare all

0:50:38.280 --> 0:50:40.480
<v Speaker 1>these encryption schemes, So you have to come up with

0:50:40.520 --> 0:50:42.440
<v Speaker 1>something new. But I talked a little bit about that

0:50:42.920 --> 0:50:45.160
<v Speaker 1>in one of the IBM Think episodes, so you can

0:50:45.160 --> 0:50:46.440
<v Speaker 1>go back and listen to that if you want to

0:50:46.520 --> 0:50:49.319
<v Speaker 1>learn more. As for you, guys, if you have any

0:50:49.320 --> 0:50:52.440
<v Speaker 1>suggestions for future episodes of Tech Stuff, I I welcome

0:50:52.480 --> 0:50:56.120
<v Speaker 1>you to send those suggestions to me. You can email

0:50:56.160 --> 0:50:59.120
<v Speaker 1>the show that addresses tech stuff at how stuff Works

0:50:59.160 --> 0:51:01.719
<v Speaker 1>dot com, or you can drop me a line on

0:51:01.760 --> 0:51:06.120
<v Speaker 1>Twitter or Facebook. The handle at both of those is

0:51:06.200 --> 0:51:09.840
<v Speaker 1>tech stuff hs W. Remember to follow us on Instagram,

0:51:09.920 --> 0:51:14.000
<v Speaker 1>and remember typically I record these episodes live on twitch

0:51:14.080 --> 0:51:17.680
<v Speaker 1>dot tv slash tech stuff on Wednesdays and Fridays. This

0:51:17.719 --> 0:51:20.480
<v Speaker 1>particular episode I'm recording right now was an exception because

0:51:20.560 --> 0:51:23.919
<v Speaker 1>again I'm in a hotel, a music hotel WiFi, which

0:51:23.960 --> 0:51:26.719
<v Speaker 1>is not the greatest thing to use for streaming, but

0:51:27.239 --> 0:51:30.600
<v Speaker 1>usually I stream live from the studio on Wednesdays and Fridays.

0:51:30.640 --> 0:51:32.839
<v Speaker 1>Go to Twitch dot tv slash tech Stuff. You'll see

0:51:32.840 --> 0:51:34.360
<v Speaker 1>the schedule there. I hope to see you in the

0:51:34.440 --> 0:51:37.560
<v Speaker 1>chat room and you can chat with me as I'm recording.

0:51:37.880 --> 0:51:39.520
<v Speaker 1>You can have a grand old time and I'll talk

0:51:39.560 --> 0:51:48.440
<v Speaker 1>to you again really soon. For more on this and

0:51:48.480 --> 0:52:01.040
<v Speaker 1>bathands of other topics. Is that how stuff Works dot com.