WEBVTT - That's So Random (Number Generator)

0:00:00.160 --> 0:00:07.080
<v Speaker 1>Brought to you by Toyota. Let's go places. Welcome to

0:00:07.280 --> 0:00:14.760
<v Speaker 1>Forward Thinking, heys and welcome to Forward Thinking, the podcast

0:00:14.800 --> 0:00:17.439
<v Speaker 1>that looks at the future and says zero zero zero

0:00:17.520 --> 0:00:21.040
<v Speaker 1>zero zero zero one zero zero zero zero zero zero

0:00:21.120 --> 0:00:25.680
<v Speaker 1>one one. I'm Jonathan Strickland and I'm Joe McCormick, and

0:00:25.760 --> 0:00:30.680
<v Speaker 1>today I thought we should talk about something really random,

0:00:30.680 --> 0:00:33.040
<v Speaker 1>well not that random, because we were asked to talk

0:00:33.080 --> 0:00:37.680
<v Speaker 1>about it. Actually it's fairly predictable. But a sort of

0:00:37.880 --> 0:00:43.040
<v Speaker 1>random request came in a user, not a user listener.

0:00:43.720 --> 0:00:47.440
<v Speaker 1>We're not some piece of software, not yet, kind of

0:00:47.479 --> 0:00:53.560
<v Speaker 1>like one you aren't, Okay, No, our listener, Sean wrote

0:00:53.560 --> 0:00:56.520
<v Speaker 1>into us via email and asked us, how about something

0:00:56.560 --> 0:00:59.600
<v Speaker 1>on random number generators r n G S or pseudo

0:00:59.680 --> 0:01:03.160
<v Speaker 1>random number generators p r n G S or p

0:01:03.160 --> 0:01:06.240
<v Speaker 1>png G p r G S and the likes and

0:01:06.360 --> 0:01:10.920
<v Speaker 1>what better sources of entropy might be tomorrow. I thought

0:01:10.959 --> 0:01:14.480
<v Speaker 1>this was a great topic because random numbers are a

0:01:14.640 --> 0:01:17.880
<v Speaker 1>fascinating subject that does not get enough love. Yeah, it

0:01:17.920 --> 0:01:21.920
<v Speaker 1>actually ends up being a philosophical discussion, going to the

0:01:21.920 --> 0:01:24.360
<v Speaker 1>point where you're you're starting to question the very meaning

0:01:24.400 --> 0:01:26.680
<v Speaker 1>of the universe, and it sounds like I'm being flippant,

0:01:26.720 --> 0:01:29.600
<v Speaker 1>but that is totally true, right, It goes sort of

0:01:29.640 --> 0:01:34.200
<v Speaker 1>to the very nature, the base nature of what reality is. Yeah.

0:01:34.560 --> 0:01:37.600
<v Speaker 1>So when you get to that, you know, it's saying, like,

0:01:37.640 --> 0:01:40.759
<v Speaker 1>wo how can we make a true random number generator?

0:01:41.080 --> 0:01:44.600
<v Speaker 1>Things get a little little whibbli wobbly and timey. Whymy Yeah?

0:01:44.640 --> 0:01:47.600
<v Speaker 1>So what would it mean for a number to actually

0:01:47.720 --> 0:01:50.200
<v Speaker 1>be random? Hold on? Hold on? I've got some some

0:01:50.320 --> 0:01:53.040
<v Speaker 1>elementary school knowledge to drawn because when I was in

0:01:53.080 --> 0:01:55.920
<v Speaker 1>fifth grade, my classmates I would do something and then

0:01:56.000 --> 0:01:58.000
<v Speaker 1>one of the girls in my class would say, Joe,

0:01:58.080 --> 0:02:01.760
<v Speaker 1>you're so random. So clearly that was it, right you?

0:02:01.920 --> 0:02:06.840
<v Speaker 1>You drew upon an infinitely large list of potential behaviors

0:02:07.240 --> 0:02:12.360
<v Speaker 1>and picked one with no predetermination of which one that

0:02:12.400 --> 0:02:14.720
<v Speaker 1>would be, and that's what you went with. Well, I

0:02:14.720 --> 0:02:16.680
<v Speaker 1>don't know. I think we can spend the rest of

0:02:16.680 --> 0:02:19.960
<v Speaker 1>this podcast going back and forth about whether or not

0:02:20.080 --> 0:02:23.400
<v Speaker 1>my fifth grade classmates were using the word random correctly.

0:02:23.880 --> 0:02:30.720
<v Speaker 1>But random doesn't mean weird, and random doesn't mean what

0:02:30.720 --> 0:02:35.200
<v Speaker 1>what would it be? You know? Like bad or pointless?

0:02:35.320 --> 0:02:38.800
<v Speaker 1>That's the thing people often say random to mean pointless. Sure,

0:02:39.240 --> 0:02:43.520
<v Speaker 1>although it does mean unpredictable, and they could have been

0:02:43.560 --> 0:02:48.400
<v Speaker 1>talking about the fact that you were behaving unpredictably. You know.

0:02:48.600 --> 0:02:51.919
<v Speaker 1>That's another thing, though, If somebody is consistently weird, they're

0:02:51.960 --> 0:02:55.000
<v Speaker 1>not really unpredictable. You can predict what they're going to be,

0:02:55.080 --> 0:02:57.480
<v Speaker 1>which is weird. Well, what depends on what kind of

0:02:57.480 --> 0:02:59.000
<v Speaker 1>weird they're being. I mean, if you're being like Tim

0:02:59.000 --> 0:03:01.919
<v Speaker 1>Burton weird, that all you can predict is that they

0:03:01.960 --> 0:03:06.160
<v Speaker 1>will be weird. You cannot necessarily predict each individual weird

0:03:06.440 --> 0:03:10.280
<v Speaker 1>action that person takes, so the general behavior might be

0:03:10.320 --> 0:03:13.320
<v Speaker 1>predictable in the sense that this is generally a series

0:03:13.320 --> 0:03:17.400
<v Speaker 1>of unpredictable events. My head hurts. Okay, okay, let's get

0:03:17.400 --> 0:03:20.320
<v Speaker 1>back to numbers so we can do this topic. Right.

0:03:20.800 --> 0:03:23.959
<v Speaker 1>So what would it mean for a number a number

0:03:24.040 --> 0:03:27.280
<v Speaker 1>to truly be random? Well, for talking with computers, this

0:03:27.360 --> 0:03:32.320
<v Speaker 1>simplifies things in a huge way because computers understand two

0:03:32.400 --> 0:03:36.200
<v Speaker 1>numbers zero and one, right, that's a bit okay, So

0:03:36.240 --> 0:03:41.440
<v Speaker 1>which one's random is zero? Okay, you're not exactly all right?

0:03:42.120 --> 0:03:47.760
<v Speaker 1>Have you ever watched an American football game, Joe, I

0:03:47.800 --> 0:03:50.600
<v Speaker 1>believe I've heard of this. Yeah, at the beginning of

0:03:50.640 --> 0:03:54.840
<v Speaker 1>an American football game, the referee will toss a coin

0:03:54.920 --> 0:03:58.160
<v Speaker 1>into the air and allow one side to pick either

0:03:58.240 --> 0:04:00.800
<v Speaker 1>heads or tails, which will then allow that side to

0:04:00.840 --> 0:04:03.960
<v Speaker 1>determine whether they will kick off or receive the football.

0:04:04.000 --> 0:04:09.560
<v Speaker 1>Should there called sign land face up. If it's, of course,

0:04:09.640 --> 0:04:12.200
<v Speaker 1>the other one, then the other team gets to make

0:04:12.200 --> 0:04:16.279
<v Speaker 1>that choice. But the determination is random. It's determined by

0:04:16.360 --> 0:04:19.320
<v Speaker 1>an act of chance the the side of the coin

0:04:19.400 --> 0:04:22.360
<v Speaker 1>that ends up facing up right. Right. So the thing

0:04:22.360 --> 0:04:25.920
<v Speaker 1>about this is maybe if we flipped a coin ten

0:04:26.160 --> 0:04:29.279
<v Speaker 1>million times, we might find out that a coin flip

0:04:29.400 --> 0:04:33.200
<v Speaker 1>is not actually random. Well, you would have to flip

0:04:33.240 --> 0:04:36.440
<v Speaker 1>the coin a huge number of times and start to

0:04:36.480 --> 0:04:39.520
<v Speaker 1>look at it and say how far does this deviate

0:04:39.600 --> 0:04:43.200
<v Speaker 1>from and does that in fact suggest that there's something

0:04:43.320 --> 0:04:45.720
<v Speaker 1>strange about the coin that is causing it to come

0:04:45.760 --> 0:04:48.400
<v Speaker 1>up on one side more frequently than the other. Right,

0:04:48.440 --> 0:04:53.760
<v Speaker 1>But it's at least random enough, right, It's unpredictable that

0:04:53.880 --> 0:04:57.159
<v Speaker 1>somebody couldn't bank on heads or tails and come out

0:04:57.279 --> 0:05:00.680
<v Speaker 1>right most of the time. Right. So a true random

0:05:00.760 --> 0:05:03.960
<v Speaker 1>bit generator which would only be able to generate a

0:05:04.080 --> 0:05:07.520
<v Speaker 1>zero or a one, would do so, uh, and you

0:05:07.560 --> 0:05:12.160
<v Speaker 1>would be unable to have a greater than fifties probability

0:05:12.160 --> 0:05:15.080
<v Speaker 1>of predicting whatever the next bit generated was going to be.

0:05:15.160 --> 0:05:17.520
<v Speaker 1>So in other words, no matter how many bits have

0:05:17.600 --> 0:05:19.880
<v Speaker 1>been generated in the past, even if you knew every

0:05:19.920 --> 0:05:21.760
<v Speaker 1>single one of those, like you had a record, you

0:05:21.800 --> 0:05:24.680
<v Speaker 1>have maybe a binder filled with zeros and ones that

0:05:24.720 --> 0:05:27.039
<v Speaker 1>tell you every single bit this thing is generated in

0:05:27.040 --> 0:05:29.240
<v Speaker 1>the past, you would not be able to use that

0:05:29.279 --> 0:05:32.720
<v Speaker 1>information to guess what the next bit would be because

0:05:32.760 --> 0:05:37.880
<v Speaker 1>every single time it generates something would be independent and unpredictable.

0:05:38.120 --> 0:05:41.480
<v Speaker 1>All right, So let's if you do have a true

0:05:41.600 --> 0:05:44.919
<v Speaker 1>random bit generator, then you are able to create these

0:05:44.960 --> 0:05:47.880
<v Speaker 1>bits without being able to determine ahead of time which

0:05:47.920 --> 0:05:51.320
<v Speaker 1>one it's going to be. It's unpredictable, it's truly random.

0:05:51.400 --> 0:05:53.800
<v Speaker 1>So computers are not very good at that. But we'll

0:05:53.800 --> 0:05:56.120
<v Speaker 1>get into that. But let's say that you harvest a

0:05:56.160 --> 0:05:59.560
<v Speaker 1>series of bits from a random source, all right. Now,

0:05:59.600 --> 0:06:02.800
<v Speaker 1>some of those bits may actually be guessable because they

0:06:02.880 --> 0:06:08.200
<v Speaker 1>might be dependent upon other bits. So if you, for example,

0:06:08.279 --> 0:06:10.800
<v Speaker 1>have a zero or a one, and you could not

0:06:10.880 --> 0:06:12.840
<v Speaker 1>predict whether that was going to be a zero or

0:06:12.880 --> 0:06:15.920
<v Speaker 1>a one, but an adjacent bit if you know if

0:06:15.960 --> 0:06:17.840
<v Speaker 1>the first bit of zero, it's always also going to

0:06:17.880 --> 0:06:20.479
<v Speaker 1>be a zero. Like if you know that, then suddenly

0:06:20.520 --> 0:06:24.400
<v Speaker 1>you have a little less randomness in that number because

0:06:24.720 --> 0:06:28.760
<v Speaker 1>it's dependent upon the value of an earlier bit. So

0:06:29.400 --> 0:06:31.760
<v Speaker 1>the if you add up all the ones that are

0:06:31.800 --> 0:06:37.120
<v Speaker 1>truly unguessable the bits within that numeral that you have,

0:06:37.760 --> 0:06:39.720
<v Speaker 1>and you add up all the ones that are truly

0:06:40.160 --> 0:06:44.800
<v Speaker 1>impossible to predict, that ends up being entropy. That's what

0:06:44.839 --> 0:06:48.440
<v Speaker 1>we call entropy in this instance. Entropy in general means

0:06:48.520 --> 0:06:51.160
<v Speaker 1>something else in physics, but in this case, that's what

0:06:51.320 --> 0:06:54.120
<v Speaker 1>entropy is referring to. It sort of makes sense. The

0:06:54.320 --> 0:06:56.880
<v Speaker 1>use of that term entropy is in a closed system,

0:06:56.960 --> 0:07:00.600
<v Speaker 1>when everything tends towards chaos, Yeah, things break down, order

0:07:00.760 --> 0:07:06.400
<v Speaker 1>breaks down, and and chaos is a form of predictability definitely. Sure. Yeah,

0:07:06.640 --> 0:07:10.000
<v Speaker 1>like physics heat right, Yeah, at least chaos and at

0:07:10.040 --> 0:07:13.640
<v Speaker 1>any rate, chaos ends up being complexity, which for humans

0:07:13.720 --> 0:07:20.320
<v Speaker 1>tends to go towards unpredictability, although technically complexity and unpredictability

0:07:20.320 --> 0:07:22.760
<v Speaker 1>are two separate things. If you have a computer system

0:07:22.800 --> 0:07:28.240
<v Speaker 1>complex enough and powerful enough that that complexity within a

0:07:28.320 --> 0:07:32.120
<v Speaker 1>chaolic system could potentially be predictable. But we'll get into

0:07:32.160 --> 0:07:34.040
<v Speaker 1>that too. Well, that is what we need to talk

0:07:34.040 --> 0:07:37.320
<v Speaker 1>about now, because I'm sure y'all have all used a

0:07:37.360 --> 0:07:40.600
<v Speaker 1>computer program at some point a few times that gives

0:07:40.680 --> 0:07:43.760
<v Speaker 1>you that gives you some kind of outcome that's based

0:07:43.760 --> 0:07:47.480
<v Speaker 1>on a random number what should be considered a random number.

0:07:47.960 --> 0:07:50.040
<v Speaker 1>But most of the time when you've done that, I

0:07:50.080 --> 0:07:53.920
<v Speaker 1>bet that it has not been a true random number,

0:07:54.480 --> 0:07:57.760
<v Speaker 1>but what we would call a pseudo random number. So

0:07:57.840 --> 0:08:01.560
<v Speaker 1>it's random enough, it's ran him enough that it generally

0:08:01.640 --> 0:08:04.400
<v Speaker 1>works for things that are low stakes, it can fill in.

0:08:04.880 --> 0:08:07.280
<v Speaker 1>Let's say you're playing a computer game and it's something

0:08:07.320 --> 0:08:09.760
<v Speaker 1>that calls for some random element to be like the

0:08:09.800 --> 0:08:13.120
<v Speaker 1>dice roll for hit points on a on an RPG

0:08:13.200 --> 0:08:17.840
<v Speaker 1>game or something. It can do that fine, But when

0:08:17.840 --> 0:08:22.640
<v Speaker 1>you think about it, how could it actually be truly random?

0:08:22.680 --> 0:08:27.360
<v Speaker 1>Because computers are deterministic machines. Every event in the computer

0:08:27.520 --> 0:08:31.720
<v Speaker 1>unless there's some kind of like physical error that's introduced

0:08:31.720 --> 0:08:35.520
<v Speaker 1>by the outside, unless there's some kind of error that's

0:08:35.559 --> 0:08:38.079
<v Speaker 1>caused by I don't know, quantum tunneling or something like that,

0:08:39.600 --> 0:08:43.400
<v Speaker 1>just some mechanical or electrical failure, But everything that happens

0:08:43.400 --> 0:08:48.080
<v Speaker 1>as it should is deterministic. It's controlled by instructions based

0:08:48.120 --> 0:08:51.920
<v Speaker 1>on what has come before, right, specific instructions that people

0:08:51.920 --> 0:08:54.600
<v Speaker 1>have written that it's just following. So how would you

0:08:54.640 --> 0:08:57.840
<v Speaker 1>tell a computer come up with a random number? If

0:08:58.000 --> 0:09:00.600
<v Speaker 1>if you're a computer, the way you answer that is, okay,

0:09:00.640 --> 0:09:04.120
<v Speaker 1>what random number should I use? Yeah? So essentially what

0:09:04.200 --> 0:09:06.080
<v Speaker 1>you have to do is you have to build in

0:09:06.240 --> 0:09:10.240
<v Speaker 1>some form of algorithm that's a set of instructions. Algorithm

0:09:10.280 --> 0:09:13.200
<v Speaker 1>is essentially just a fancy word for saying instructions, And

0:09:13.240 --> 0:09:17.720
<v Speaker 1>those instructions would be to take some form of input, uh, normally,

0:09:17.760 --> 0:09:21.600
<v Speaker 1>apply some series of calculations to that input, and then

0:09:21.640 --> 0:09:25.760
<v Speaker 1>the output is your random number. Right, so your input

0:09:26.120 --> 0:09:30.360
<v Speaker 1>should be at least somewhat changeable, something you know, beyond

0:09:30.400 --> 0:09:34.080
<v Speaker 1>just the string of four digits. That clearly wouldn't work

0:09:34.200 --> 0:09:37.120
<v Speaker 1>because it would always the outcome would always be the same. Right,

0:09:37.160 --> 0:09:40.560
<v Speaker 1>So you might sample something like the time. Yeah, the

0:09:40.640 --> 0:09:42.720
<v Speaker 1>time of day in fact, is a very common one

0:09:42.840 --> 0:09:47.600
<v Speaker 1>for simple random number generation or pseudo random number generation.

0:09:48.000 --> 0:09:50.960
<v Speaker 1>So that you send in a command, it takes note

0:09:51.000 --> 0:09:54.400
<v Speaker 1>of the time stamp like the date and time, exact

0:09:54.480 --> 0:09:58.400
<v Speaker 1>time that you said, do this thing, converts that into

0:09:58.640 --> 0:10:02.319
<v Speaker 1>the seed that's the number that will be fed through

0:10:02.600 --> 0:10:05.559
<v Speaker 1>the algorithm or formula, and then you get the output,

0:10:05.600 --> 0:10:09.800
<v Speaker 1>the actual quote unquote random number, which is not truly random. Again,

0:10:09.840 --> 0:10:12.880
<v Speaker 1>it's dependent upon the time that you sent the command

0:10:13.200 --> 0:10:16.200
<v Speaker 1>and whatever that series of steps happen to be. And

0:10:16.200 --> 0:10:17.839
<v Speaker 1>it might be that that's a lot of steps, it

0:10:17.920 --> 0:10:21.839
<v Speaker 1>might be very simple. It might be multiply uh, the

0:10:22.720 --> 0:10:25.800
<v Speaker 1>seed by this number and then subtract this other number

0:10:25.840 --> 0:10:28.680
<v Speaker 1>from it, and whatever is left that is your random number.

0:10:28.760 --> 0:10:32.240
<v Speaker 1>But it's important to remember that the pseudo random tree

0:10:32.480 --> 0:10:36.719
<v Speaker 1>always does grow from the seed, so it's entirely dependent

0:10:37.000 --> 0:10:40.400
<v Speaker 1>on what the seed is. Yes, and if the seed

0:10:40.559 --> 0:10:43.680
<v Speaker 1>is not random, then the final output can't in a

0:10:43.720 --> 0:10:47.680
<v Speaker 1>mathematical sense, be said to be truly random. Well, yeah,

0:10:47.840 --> 0:10:51.840
<v Speaker 1>and we often in discussions of random number generators you

0:10:51.840 --> 0:10:55.720
<v Speaker 1>will often see the term attacker because a lot of

0:10:55.800 --> 0:10:59.960
<v Speaker 1>random number generation centers around security and cryptography and incredi

0:11:00.000 --> 0:11:03.920
<v Speaker 1>option and it's very important in those fields. And in

0:11:03.960 --> 0:11:06.800
<v Speaker 1>those fields you might have a potential attacker, someone who

0:11:06.920 --> 0:11:11.760
<v Speaker 1>is looking to to to exploit a vulnerability or infiltrate

0:11:11.800 --> 0:11:16.160
<v Speaker 1>a system in some way, and so the the robustness

0:11:16.400 --> 0:11:19.720
<v Speaker 1>of your random number generator is very important because if

0:11:19.760 --> 0:11:22.240
<v Speaker 1>it's not robust, if you can start to see a

0:11:22.240 --> 0:11:25.560
<v Speaker 1>pattern or you're able to predict what that next number is,

0:11:26.120 --> 0:11:30.480
<v Speaker 1>then your security is compromised. Right, someone could actually end

0:11:30.559 --> 0:11:35.960
<v Speaker 1>up posing as a valid user and uh compromise the system. Sure,

0:11:36.040 --> 0:11:38.920
<v Speaker 1>we can talk more about the purposes and uses of

0:11:39.000 --> 0:11:42.880
<v Speaker 1>random numbers in a minute, but finish making the distinction

0:11:42.920 --> 0:11:46.079
<v Speaker 1>between random numbers and pseudo random numbers. Yeah, so a

0:11:46.120 --> 0:11:50.440
<v Speaker 1>true random number has to be unpredictable, which, again, computer

0:11:50.559 --> 0:11:52.719
<v Speaker 1>is not good at doing that because they have to

0:11:52.760 --> 0:11:55.840
<v Speaker 1>follow some sort of set of instructions. So true random

0:11:55.880 --> 0:11:58.360
<v Speaker 1>number generators tend to be such a thing as possible

0:11:58.400 --> 0:12:01.480
<v Speaker 1>by the way, Right, we'll get to the philosophy again later,

0:12:01.800 --> 0:12:05.959
<v Speaker 1>But true random numbers tend to be based on hardware approaches.

0:12:06.240 --> 0:12:10.640
<v Speaker 1>So a very simple true random number generator would be

0:12:11.480 --> 0:12:16.360
<v Speaker 1>a good classic one would be dice, Right, because all

0:12:16.440 --> 0:12:19.280
<v Speaker 1>things being equal, assuming there's nothing wrong with the dice,

0:12:19.679 --> 0:12:22.240
<v Speaker 1>any roll of the dice is just as likely to

0:12:22.280 --> 0:12:25.240
<v Speaker 1>bring up one side versus any of the other sides,

0:12:25.679 --> 0:12:28.880
<v Speaker 1>So it is a random event. You cannot predict which

0:12:28.960 --> 0:12:31.839
<v Speaker 1>number is going to come up next. Right, Even even

0:12:31.880 --> 0:12:34.520
<v Speaker 1>if you were to roll a die thirty times in

0:12:34.559 --> 0:12:36.880
<v Speaker 1>a row, you wouldn't be able to predict what the

0:12:36.920 --> 0:12:40.319
<v Speaker 1>thirty first role would give you, unless again, something was

0:12:40.360 --> 0:12:42.200
<v Speaker 1>wrong with the dice. Sure, I mean, you know we're

0:12:42.320 --> 0:12:44.559
<v Speaker 1>kind of talking about and all of this comes back

0:12:44.559 --> 0:12:47.160
<v Speaker 1>to the problem of of we're talking hypotheticals and a

0:12:47.160 --> 0:12:50.080
<v Speaker 1>perfect universe where the table is perfect and the dice

0:12:50.120 --> 0:12:53.000
<v Speaker 1>are perfect, and the person throwing the dice is perfect,

0:12:53.480 --> 0:12:55.840
<v Speaker 1>and none of this is influencing the outcome, which of

0:12:55.840 --> 0:12:58.120
<v Speaker 1>course it does. Yeah, I wouldn't be surprised if you

0:12:58.240 --> 0:13:00.440
<v Speaker 1>ran an experiment, or if you could, if you ran

0:13:00.480 --> 0:13:03.199
<v Speaker 1>an experiment where you had somebody roll a die ten

0:13:03.440 --> 0:13:07.520
<v Speaker 1>billion times, I suspect you would find that some sides

0:13:07.600 --> 0:13:10.040
<v Speaker 1>of that die are actually more likely to come out

0:13:10.040 --> 0:13:13.200
<v Speaker 1>on top than others. Again, it all depends upon the

0:13:13.200 --> 0:13:15.680
<v Speaker 1>construction of the die, right, because if the die is

0:13:15.800 --> 0:13:18.319
<v Speaker 1>truly los as close to perfect as possible, then you

0:13:18.320 --> 0:13:22.800
<v Speaker 1>shouldn't have any any bias there. But so another thing

0:13:22.800 --> 0:13:25.240
<v Speaker 1>you need to remember is a good pseudo random number generator,

0:13:25.640 --> 0:13:29.360
<v Speaker 1>it will not have a repetitive cycle, although they all do.

0:13:29.679 --> 0:13:32.840
<v Speaker 1>It's just the cycles tend to be very, very very long.

0:13:33.000 --> 0:13:36.720
<v Speaker 1>So that uh two we mirror mortals, it appears like

0:13:36.760 --> 0:13:40.880
<v Speaker 1>it never repeats. Um, they should have really good numeric distribution,

0:13:40.880 --> 0:13:43.760
<v Speaker 1>which means it shouldn't favor any one number over any

0:13:43.760 --> 0:13:47.880
<v Speaker 1>other number. You should have an equal distribution amongst them. Uh.

0:13:47.960 --> 0:13:51.040
<v Speaker 1>And it shouldn't be predictable, obviously, because if it is,

0:13:51.120 --> 0:13:54.600
<v Speaker 1>that it's not really useful. True random number generators are

0:13:54.640 --> 0:13:58.480
<v Speaker 1>slow and inefficient, so that's why we don't tend to

0:13:58.600 --> 0:14:02.640
<v Speaker 1>use them for really complex tasks, especially tasks where you

0:14:02.679 --> 0:14:05.320
<v Speaker 1>have to generate a lot of random numbers in a

0:14:05.440 --> 0:14:10.320
<v Speaker 1>short amount of time. Uh So the advantage though, is

0:14:10.320 --> 0:14:14.439
<v Speaker 1>that they're nondeterministic and they're a periodic, so they don't repeat,

0:14:14.880 --> 0:14:17.800
<v Speaker 1>and there's nothing that you can you know, you can't

0:14:17.960 --> 0:14:21.760
<v Speaker 1>you can't predict the outcome because they're nondeterministic. Pseudo random

0:14:21.840 --> 0:14:26.600
<v Speaker 1>numbers are deterministic and periodic, but they are also way

0:14:26.640 --> 0:14:28.960
<v Speaker 1>more efficient, so it's easier to generate a lot of

0:14:29.000 --> 0:14:30.560
<v Speaker 1>them in a short amount of time. And if you

0:14:30.640 --> 0:14:34.200
<v Speaker 1>make a strong enough, a robust enough system, despite the

0:14:34.240 --> 0:14:37.400
<v Speaker 1>fact that they're deterministic and periodic, they can still be

0:14:37.520 --> 0:14:42.920
<v Speaker 1>largely unpredictable. Right there. Uh, they're so big. Basically, there's

0:14:42.960 --> 0:14:46.440
<v Speaker 1>so much brain power involved in predicting them that they

0:14:46.520 --> 0:14:50.160
<v Speaker 1>can be effectively thought of as random. Right. The goal

0:14:50.280 --> 0:14:52.720
<v Speaker 1>is that you have to make it complex enough where

0:14:52.800 --> 0:14:55.880
<v Speaker 1>a brute force attack, which is where you would just

0:14:55.960 --> 0:15:00.840
<v Speaker 1>start going with, every potential answer for the problem could be,

0:15:00.880 --> 0:15:03.080
<v Speaker 1>you know, used one at a time. Right, you do

0:15:03.160 --> 0:15:07.720
<v Speaker 1>that thing where you throw ten million or ten billions

0:15:07.760 --> 0:15:11.840
<v Speaker 1>exactly if you can make that random, that pseudo random

0:15:11.920 --> 0:15:15.000
<v Speaker 1>number large enough so that the effort it would take

0:15:15.040 --> 0:15:18.320
<v Speaker 1>to successfully get a brute force attack to work is

0:15:18.360 --> 0:15:21.320
<v Speaker 1>greater than what most people have at their disposal. Your

0:15:21.360 --> 0:15:24.160
<v Speaker 1>system is generally thought of to be pretty safe. So,

0:15:24.200 --> 0:15:27.200
<v Speaker 1>in other words, let's say that it's the Hollywood version

0:15:27.200 --> 0:15:30.320
<v Speaker 1>of hacking where you use a joystick. None. None of

0:15:30.360 --> 0:15:33.200
<v Speaker 1>those systems are very safe. Yeah, it's your first you've

0:15:33.200 --> 0:15:36.480
<v Speaker 1>got to get some eyeliner, or or your password is

0:15:36.560 --> 0:15:39.080
<v Speaker 1>five letters long, it's all upper case and it's just

0:15:39.440 --> 0:15:42.000
<v Speaker 1>sword or something like that, and that's that gets you

0:15:42.080 --> 0:15:46.320
<v Speaker 1>into the system. Uh yeah, that would those those security

0:15:46.320 --> 0:15:52.560
<v Speaker 1>systems would fail dramatically compared to what we're talking about here. Okay,

0:15:52.560 --> 0:15:56.680
<v Speaker 1>so we have computers that work as pseudo random number generators.

0:15:57.160 --> 0:16:00.480
<v Speaker 1>They're they're random enough even if they're not true random.

0:16:00.520 --> 0:16:04.240
<v Speaker 1>Then we have some other ways of maybe creating something

0:16:04.280 --> 0:16:06.360
<v Speaker 1>that might be thought of as truly random. We can

0:16:06.400 --> 0:16:09.680
<v Speaker 1>debate and talk about those later, But first, why do

0:16:09.760 --> 0:16:13.960
<v Speaker 1>we need random numbers? Like, what's the point other than

0:16:14.120 --> 0:16:17.040
<v Speaker 1>you know, if we've got pseudo random number generators that

0:16:17.080 --> 0:16:20.400
<v Speaker 1>are good enough. I mean, why do we actually have

0:16:20.520 --> 0:16:23.800
<v Speaker 1>to come close as possible to true randomness. Well, if

0:16:23.800 --> 0:16:26.800
<v Speaker 1>you want to play a chaotic neutral character in Dungeons

0:16:26.800 --> 0:16:29.520
<v Speaker 1>and Dragons, you want to get as close to truly

0:16:29.600 --> 0:16:35.920
<v Speaker 1>random as possible because that's what that's what dictates their hearts. UH.

0:16:36.320 --> 0:16:39.560
<v Speaker 1>To be more serious, you would want random numbers, really

0:16:39.600 --> 0:16:42.640
<v Speaker 1>good random numbers, for lots of different purposes. One is

0:16:42.880 --> 0:16:47.000
<v Speaker 1>UH sampling, So sampling populations. Now this can mean anything,

0:16:47.040 --> 0:16:50.000
<v Speaker 1>not just sampling populations of people, but for all sorts

0:16:50.000 --> 0:16:54.560
<v Speaker 1>of types of of of scientific inquiry. But one real

0:16:54.680 --> 0:16:58.440
<v Speaker 1>life example I can point to is imagine that you

0:16:58.480 --> 0:17:01.680
<v Speaker 1>are at t S a secure pity agent, and your

0:17:01.760 --> 0:17:06.080
<v Speaker 1>job is to stop a random stop random people for

0:17:06.200 --> 0:17:10.160
<v Speaker 1>screening at the airport, and you're not supposed to act

0:17:10.200 --> 0:17:13.040
<v Speaker 1>on any bias. Right, You're not supposed to stop people

0:17:13.320 --> 0:17:15.920
<v Speaker 1>because of the way they look or anything along those lines.

0:17:15.960 --> 0:17:19.760
<v Speaker 1>What your what your directive is, you're stopping a random person,

0:17:20.359 --> 0:17:22.800
<v Speaker 1>and if you truly wanted to be random, you would

0:17:22.880 --> 0:17:25.400
<v Speaker 1>need to have this kind of generator that would tell

0:17:25.440 --> 0:17:29.120
<v Speaker 1>you the seventh person to go through this. This line

0:17:29.160 --> 0:17:30.800
<v Speaker 1>is the one you stop the next time it says

0:17:30.800 --> 0:17:34.280
<v Speaker 1>the second person, next time it says the forty seventh person,

0:17:34.760 --> 0:17:38.920
<v Speaker 1>and you would just follow that instead of acting upon

0:17:39.280 --> 0:17:41.800
<v Speaker 1>your own quote unquote, Oh, I'm going to stop this

0:17:41.840 --> 0:17:44.480
<v Speaker 1>person because now it's time for me to do another

0:17:44.560 --> 0:17:47.679
<v Speaker 1>random search. Something that goes along with sampling, though, is

0:17:47.720 --> 0:17:52.800
<v Speaker 1>actually something that might be useful in science, which is simulation. Yeah,

0:17:52.840 --> 0:17:57.040
<v Speaker 1>I mean in simulating trials and real world events. If

0:17:57.080 --> 0:17:59.920
<v Speaker 1>you're going to try to run an experiment on your

0:18:00.040 --> 0:18:03.159
<v Speaker 1>computer instead of in real life, it's very important to

0:18:03.200 --> 0:18:06.520
<v Speaker 1>be able to have random inputs. Sure, even if you

0:18:06.560 --> 0:18:11.000
<v Speaker 1>are incorporating a human into the testing. So let's say

0:18:11.000 --> 0:18:14.960
<v Speaker 1>it's a simulation where you are simulating it's like a

0:18:15.000 --> 0:18:18.960
<v Speaker 1>test pilot simulating a simulated flight where you're simulating weather

0:18:19.000 --> 0:18:22.480
<v Speaker 1>patterns as well. Clearly you want those weather patterns to

0:18:22.560 --> 0:18:27.000
<v Speaker 1>be as random, but still, you know, still akin to

0:18:27.119 --> 0:18:30.920
<v Speaker 1>actual weather, realistic right, because otherwise what could happen is

0:18:31.440 --> 0:18:34.719
<v Speaker 1>the test pilot goes through the system, perhaps things go

0:18:34.920 --> 0:18:38.600
<v Speaker 1>poorly and the test pilot ends up crashing the simulated plane,

0:18:38.920 --> 0:18:40.560
<v Speaker 1>and then the test pilot is told to go through

0:18:40.560 --> 0:18:43.960
<v Speaker 1>it again after some adjustments have been made. But now

0:18:44.040 --> 0:18:47.719
<v Speaker 1>the test pilot knows that pattern. So if the pattern

0:18:47.800 --> 0:18:50.719
<v Speaker 1>was exactly the same, you wouldn't be sure that whatever

0:18:50.800 --> 0:18:53.919
<v Speaker 1>changes you made were actually the things that affected the

0:18:54.000 --> 0:18:58.240
<v Speaker 1>outcome of the simulation. You need that randomness so that

0:18:58.400 --> 0:19:02.400
<v Speaker 1>you can ensure that the thing you are actually testing matter. Yeah,

0:19:02.440 --> 0:19:04.280
<v Speaker 1>you don't want the pilot to be able to just

0:19:04.359 --> 0:19:08.159
<v Speaker 1>like memorize, like like she's playing Battle Toads or something

0:19:08.160 --> 0:19:11.119
<v Speaker 1>where you know, yeah, here's where the crossmen come three

0:19:11.200 --> 0:19:13.320
<v Speaker 1>times and then down, yeah, and then it's the goomba

0:19:13.400 --> 0:19:17.679
<v Speaker 1>and then right as a that's a heck of a

0:19:17.760 --> 0:19:20.919
<v Speaker 1>mixed of video game. I mean, it would make Battletoads

0:19:20.920 --> 0:19:25.399
<v Speaker 1>a lot easier. Honestly, goombas were the enemies, but the uh,

0:19:25.640 --> 0:19:27.760
<v Speaker 1>you know another example. And you know, it sounds like

0:19:27.760 --> 0:19:29.480
<v Speaker 1>I'm being kind of trivial with these, but these are

0:19:29.480 --> 0:19:34.400
<v Speaker 1>really true. Gambling is important. It sounds trivial now if

0:19:34.400 --> 0:19:37.360
<v Speaker 1>you're a gambler. I'm sure it's not trivial at all,

0:19:38.040 --> 0:19:41.000
<v Speaker 1>because you you definitely you're counting on the fact that

0:19:41.160 --> 0:19:43.720
<v Speaker 1>the numbers that are coming out of the system are

0:19:43.760 --> 0:19:47.680
<v Speaker 1>truly random. If there is a bias somehow, I suspect

0:19:47.720 --> 0:19:49.720
<v Speaker 1>if there were a bias, it would be a bias

0:19:49.800 --> 0:19:52.680
<v Speaker 1>toward the house. I can't say for sure, but yeah,

0:19:52.760 --> 0:19:57.160
<v Speaker 1>who knows, well it matters. Very cynical, Joe. But let's

0:19:57.200 --> 0:20:01.840
<v Speaker 1>say it's a game of craps. Now, with craps, there

0:20:01.880 --> 0:20:04.760
<v Speaker 1>are a lot of different ways to bet, So your

0:20:04.760 --> 0:20:07.399
<v Speaker 1>bet is what is gonna matter, not not whether or

0:20:07.440 --> 0:20:11.000
<v Speaker 1>not certain numbers come up more frequently frequently than others.

0:20:11.040 --> 0:20:13.560
<v Speaker 1>Because if you know notice that certain numbers are coming

0:20:13.600 --> 0:20:15.720
<v Speaker 1>up more frequently than others, you can place your bets

0:20:16.320 --> 0:20:20.439
<v Speaker 1>toward that to try and win, which would give the

0:20:20.440 --> 0:20:23.720
<v Speaker 1>incident to the house to change out those dice immediately,

0:20:24.400 --> 0:20:27.440
<v Speaker 1>because otherwise they're going to start losing money if people

0:20:27.480 --> 0:20:31.359
<v Speaker 1>pick up on that. So it depending upon the game.

0:20:31.480 --> 0:20:33.560
<v Speaker 1>It can really be in the house's interest to make

0:20:33.600 --> 0:20:35.800
<v Speaker 1>sure that this game is working exactly the way it's

0:20:35.800 --> 0:20:40.400
<v Speaker 1>supposed to and things like have a house advantage. Sure, yeah,

0:20:40.400 --> 0:20:42.600
<v Speaker 1>things like slot machines. I did a full episode on

0:20:42.640 --> 0:20:45.760
<v Speaker 1>slot machines for tech Stuff where we talked about the

0:20:45.920 --> 0:20:50.159
<v Speaker 1>various elements that introduce kind of, uh, the randomness in

0:20:50.200 --> 0:20:54.840
<v Speaker 1>slot machines to make them attractive to people who want

0:20:54.840 --> 0:20:58.159
<v Speaker 1>to gamble. And in fact, over the lifetime of a

0:20:58.200 --> 0:21:00.640
<v Speaker 1>slot machine, most slot machines, and they guess pay out

0:21:00.680 --> 0:21:04.480
<v Speaker 1>somewhere between ninety and nine of all the money that

0:21:04.560 --> 0:21:07.960
<v Speaker 1>go into over the lifetime of the machine. On a

0:21:08.080 --> 0:21:11.240
<v Speaker 1>day to day basis, that is not the case. So

0:21:11.359 --> 0:21:13.040
<v Speaker 1>you've got to keep in mind this is a long

0:21:13.119 --> 0:21:16.960
<v Speaker 1>game you're talking about. But but randomness is important in

0:21:17.000 --> 0:21:19.280
<v Speaker 1>that in that realm too. It's not like there's a

0:21:19.280 --> 0:21:22.680
<v Speaker 1>series of mechanical gears in that slot machine that get

0:21:22.880 --> 0:21:24.920
<v Speaker 1>that tells you whether or not you're going to win.

0:21:25.400 --> 0:21:28.800
<v Speaker 1>It's actually more based upon the moment that you hit

0:21:29.000 --> 0:21:31.640
<v Speaker 1>the button or pull the lever to initiate it. It's

0:21:31.680 --> 0:21:34.240
<v Speaker 1>more of that time stamp approach we talked about earlier

0:21:34.280 --> 0:21:37.159
<v Speaker 1>in the podcast. But of course, another big use and

0:21:37.200 --> 0:21:41.080
<v Speaker 1>the main one we alluded to earlier, is cryptography in

0:21:41.440 --> 0:21:45.800
<v Speaker 1>keeping things secret and keeping them safe. Yeah, pretty much nice?

0:21:46.960 --> 0:21:49.720
<v Speaker 1>Is it secret? Is it safe? The yeah, this is

0:21:49.760 --> 0:21:52.480
<v Speaker 1>a big one. So this can be for anything, right,

0:21:52.520 --> 0:21:55.960
<v Speaker 1>not just not just the super secure stuff you want

0:21:56.000 --> 0:21:59.800
<v Speaker 1>like banking or or purchases. But anytime you log into

0:22:00.000 --> 0:22:04.119
<v Speaker 1>any kind of web service where you're you're actually you know,

0:22:04.200 --> 0:22:06.960
<v Speaker 1>you're logging in as yourself, you are assigned a unique

0:22:07.000 --> 0:22:10.440
<v Speaker 1>I D for the duration of your visit to that website.

0:22:10.760 --> 0:22:14.520
<v Speaker 1>It's how the server knows that this is you, even

0:22:14.520 --> 0:22:17.159
<v Speaker 1>if you are navigating around the various site to the

0:22:17.240 --> 0:22:20.520
<v Speaker 1>various pages within it. If you're logged in and knows, oh, well,

0:22:20.920 --> 0:22:23.560
<v Speaker 1>this is Jonathan, or this is Lauren, or this is Joe,

0:22:23.960 --> 0:22:25.720
<v Speaker 1>and it doesn't mix us up because we each have

0:22:25.760 --> 0:22:30.160
<v Speaker 1>a unique identifier. Now, if whatever they're using to generate

0:22:30.200 --> 0:22:33.920
<v Speaker 1>those unique identifiers is in fact predictable, it could allow

0:22:33.960 --> 0:22:37.800
<v Speaker 1>an attacker to come in and if they have enough information,

0:22:38.200 --> 0:22:41.680
<v Speaker 1>be able to guess at the unique ID of any

0:22:41.760 --> 0:22:44.359
<v Speaker 1>one of the three of us and pose as us,

0:22:44.400 --> 0:22:46.720
<v Speaker 1>which could be disastrous in the case of something like

0:22:46.760 --> 0:22:50.280
<v Speaker 1>a bank account where they suddenly have access to all

0:22:50.359 --> 0:22:53.520
<v Speaker 1>of our online banking stuff, that could be a huge problem.

0:22:53.880 --> 0:22:56.919
<v Speaker 1>So you need to have a really robust system for

0:22:56.960 --> 0:22:59.920
<v Speaker 1>generating random numbers to create these unique ideas. Now that's

0:23:00.000 --> 0:23:04.159
<v Speaker 1>just one example. It is all over the place in cryptography.

0:23:04.320 --> 0:23:07.200
<v Speaker 1>So all all of these are important reasons for us

0:23:07.240 --> 0:23:11.320
<v Speaker 1>to have random numbers or pseudo random numbers at the

0:23:11.400 --> 0:23:14.720
<v Speaker 1>very least. But how how have we dealt with actually

0:23:14.840 --> 0:23:18.720
<v Speaker 1>creating these in in the past and right now? Well,

0:23:18.760 --> 0:23:20.400
<v Speaker 1>if we want to look at the past, I think

0:23:20.480 --> 0:23:22.960
<v Speaker 1>we've already been talking about one of the big ones,

0:23:23.000 --> 0:23:26.560
<v Speaker 1>which is dice, dice, the roulette wheel, all kinds. They're

0:23:27.040 --> 0:23:32.719
<v Speaker 1>basic analog mechanical methods for generating things that are pretty

0:23:32.800 --> 0:23:36.320
<v Speaker 1>close to random. You know, they're they're probably not actually random.

0:23:36.400 --> 0:23:38.880
<v Speaker 1>Like I said, I bet if you designed a machine

0:23:39.119 --> 0:23:42.159
<v Speaker 1>to throw a die, you know, a hundred billion times

0:23:42.240 --> 0:23:45.480
<v Speaker 1>or whatever, you would eventually determine there's some kind of

0:23:45.840 --> 0:23:48.760
<v Speaker 1>slight bias based on how the dye is made, or

0:23:49.080 --> 0:23:51.800
<v Speaker 1>how the machines throwing it, or even the surface upon

0:23:51.880 --> 0:23:54.200
<v Speaker 1>which the die is hitting, because if you changed out

0:23:54.200 --> 0:23:57.280
<v Speaker 1>the surface that would likely change the results. Yeah, all that,

0:23:57.840 --> 0:24:01.919
<v Speaker 1>but generally things like these have been random enough for

0:24:02.000 --> 0:24:05.280
<v Speaker 1>people they worked pretty good. Another thing that I wanted

0:24:05.320 --> 0:24:10.879
<v Speaker 1>to think about was humans are brains generating random numbers consciously?

0:24:11.040 --> 0:24:14.720
<v Speaker 1>Like I can say Lauren, what's a random number, Jonathan,

0:24:14.840 --> 0:24:21.200
<v Speaker 1>random number pie? That strikes me as not especially random,

0:24:21.240 --> 0:24:24.239
<v Speaker 1>But I like that. That's that's somehow less random than

0:24:24.320 --> 0:24:28.400
<v Speaker 1>forty six. It's far less random than I don't get it,

0:24:28.640 --> 0:24:31.359
<v Speaker 1>because hey, it was just pie d A three fourteen

0:24:31.480 --> 0:24:33.840
<v Speaker 1>like three days ago that put the seed in your mind.

0:24:33.880 --> 0:24:37.280
<v Speaker 1>If I was a hacker you were using, I would

0:24:37.280 --> 0:24:39.679
<v Speaker 1>have guessed pie. I thought it is because I had

0:24:39.760 --> 0:24:44.680
<v Speaker 1>pie for dessert today at lunch. That's why I think

0:24:44.720 --> 0:24:48.320
<v Speaker 1>you had Mexican food for lunch, followed it up with pie.

0:24:49.640 --> 0:24:52.879
<v Speaker 1>That's how I celebrate St. Patrick's days, Mexican food followed

0:24:52.920 --> 0:24:57.400
<v Speaker 1>by pie. I admire your life. Okay, So the question

0:24:57.520 --> 0:25:01.760
<v Speaker 1>is can humans consciously general right random numbers with any

0:25:01.840 --> 0:25:04.760
<v Speaker 1>kind of success at all? I mean, when I just

0:25:04.840 --> 0:25:08.360
<v Speaker 1>asked you all, I'm sure there was a somewhat predictable

0:25:08.400 --> 0:25:10.399
<v Speaker 1>reason you said the number you did. Oh yeah, I

0:25:10.560 --> 0:25:13.200
<v Speaker 1>think I actually picked forty six because I believe earlier

0:25:13.240 --> 0:25:16.600
<v Speaker 1>you said and so that number was kind of in

0:25:16.600 --> 0:25:18.000
<v Speaker 1>my head. But I didn't want to say that number

0:25:18.000 --> 0:25:21.160
<v Speaker 1>because obviously that wouldn't be random. Yeah. So I've always

0:25:21.200 --> 0:25:24.320
<v Speaker 1>heard the answer to this question is no, humans cannot

0:25:24.400 --> 0:25:27.960
<v Speaker 1>generate random numbers with even distribution. So I looked it

0:25:28.040 --> 0:25:30.800
<v Speaker 1>up just to make sure. I've seen actually some competing

0:25:30.840 --> 0:25:34.560
<v Speaker 1>opinions about this pop up in the scientific literature. Uh,

0:25:34.680 --> 0:25:38.680
<v Speaker 1>though strong caveat. Some of the recent papers I saw

0:25:38.880 --> 0:25:43.280
<v Speaker 1>were published in the journal Medical Hypotheses, which is for

0:25:43.359 --> 0:25:45.359
<v Speaker 1>much of its history in the time when these papers

0:25:45.359 --> 0:25:48.359
<v Speaker 1>were published really more of a sort of playground for

0:25:48.440 --> 0:25:52.160
<v Speaker 1>strange ideas than a place to publish rigorously conducted research,

0:25:52.240 --> 0:25:56.360
<v Speaker 1>and like it was not pure reviews recently, right, but anyway,

0:25:56.680 --> 0:25:59.720
<v Speaker 1>So with that very very strong caveat, at least one

0:25:59.720 --> 0:26:02.879
<v Speaker 1>pay were published in Medical Hypotheses in two thousand and five.

0:26:03.800 --> 0:26:07.280
<v Speaker 1>The author claimed that humans could consciously generate random number

0:26:07.280 --> 0:26:10.600
<v Speaker 1>sequences with success. A quote from the abstract is the

0:26:10.640 --> 0:26:13.800
<v Speaker 1>results suggest that humans can generate random numbers that are

0:26:13.880 --> 0:26:18.680
<v Speaker 1>uniformly distributed, independent of one another, and unpredictable. I was

0:26:18.720 --> 0:26:21.360
<v Speaker 1>a little skeptical of that, and actually there have been

0:26:21.400 --> 0:26:24.399
<v Speaker 1>subsequent papers at least two I found in the same

0:26:24.480 --> 0:26:28.680
<v Speaker 1>journal that claimed they tried to reproduce the original results

0:26:28.680 --> 0:26:32.680
<v Speaker 1>and could not and found that that the results were

0:26:32.720 --> 0:26:36.159
<v Speaker 1>substantially non random. It's the same kind of problem that

0:26:36.200 --> 0:26:38.919
<v Speaker 1>I think has always been reported with humans trying to

0:26:39.000 --> 0:26:41.880
<v Speaker 1>generate strings of random numbers, which is that they do

0:26:41.960 --> 0:26:46.640
<v Speaker 1>things like repeat the same number twice in a row

0:26:46.880 --> 0:26:52.840
<v Speaker 1>too often, or they they do too little of repeating

0:26:53.160 --> 0:26:58.000
<v Speaker 1>the same number spaced out, and things like that. Actually,

0:26:58.480 --> 0:27:01.480
<v Speaker 1>there was a funny story I think Jonathan was mentioning

0:27:01.480 --> 0:27:05.560
<v Speaker 1>it earlier about John von Neuman. Yeah, yeah, no, Eman

0:27:05.640 --> 0:27:08.040
<v Speaker 1>came up. Von Neuman came up with a or at

0:27:08.119 --> 0:27:12.280
<v Speaker 1>least utilized a method that, uh, you know, if you

0:27:12.320 --> 0:27:15.520
<v Speaker 1>were to just see a string of numbers, you would

0:27:15.800 --> 0:27:18.360
<v Speaker 1>potentially be able to figure out what was going on

0:27:18.640 --> 0:27:22.520
<v Speaker 1>if you were very, very observant. He used the middle

0:27:22.760 --> 0:27:26.359
<v Speaker 1>square method. Here's how it works. You start with a number, usually,

0:27:26.480 --> 0:27:28.560
<v Speaker 1>you know, like a four digit number. That's your seed,

0:27:28.640 --> 0:27:32.159
<v Speaker 1>and you square that number. So then you're going to

0:27:32.200 --> 0:27:35.760
<v Speaker 1>take the middle four digits of that number. You will

0:27:35.760 --> 0:27:38.879
<v Speaker 1>actually get an eight digit number total. So you dropped

0:27:38.920 --> 0:27:41.240
<v Speaker 1>the first two and you dropped the last two digits

0:27:41.280 --> 0:27:44.720
<v Speaker 1>in the middle four. That becomes your new random number.

0:27:45.000 --> 0:27:47.640
<v Speaker 1>When you need another random number, you square those four

0:27:47.640 --> 0:27:50.679
<v Speaker 1>digits and you do the same thing. You do it

0:27:50.720 --> 0:27:54.960
<v Speaker 1>over and over. But once you know this is going on,

0:27:55.480 --> 0:27:59.600
<v Speaker 1>you can start to work backwards and figure out what

0:27:59.600 --> 0:28:02.800
<v Speaker 1>what the methodology is, and only that you can predict

0:28:02.840 --> 0:28:05.880
<v Speaker 1>what the next number is because you already have the seed, right,

0:28:05.920 --> 0:28:08.280
<v Speaker 1>you know, this random number is actually the seed for

0:28:08.320 --> 0:28:11.280
<v Speaker 1>the next random number, and I know the methodology used

0:28:11.280 --> 0:28:14.480
<v Speaker 1>to generate the random number. Therefore I can already predict

0:28:14.520 --> 0:28:16.199
<v Speaker 1>what the next one in that sequence is going to be.

0:28:16.240 --> 0:28:19.720
<v Speaker 1>So the example I chose, and this was as random

0:28:19.760 --> 0:28:23.080
<v Speaker 1>as I could think of. So it's not so not

0:28:23.200 --> 0:28:26.239
<v Speaker 1>random at all, probably not probably not the You know,

0:28:26.640 --> 0:28:28.679
<v Speaker 1>we we need to get into an episode where we

0:28:28.720 --> 0:28:33.680
<v Speaker 1>really talk about the concept of free will and how

0:28:33.720 --> 0:28:38.320
<v Speaker 1>how much of our actions are actually determined by external

0:28:38.400 --> 0:28:41.520
<v Speaker 1>sources and other processes that we're not familiar with. So

0:28:41.920 --> 0:28:44.640
<v Speaker 1>I fully admit all of those are at play. We'll

0:28:44.680 --> 0:28:46.960
<v Speaker 1>save that for another day. Tell us about numbers I picked.

0:28:47.040 --> 0:28:49.840
<v Speaker 1>So I picked the number five nine seven four, I

0:28:49.920 --> 0:28:52.680
<v Speaker 1>squared it, took the middle four numbers that those middle

0:28:52.680 --> 0:28:55.480
<v Speaker 1>four numbers were six eight eight six, I squared it.

0:28:55.520 --> 0:28:57.480
<v Speaker 1>I took the middle four numbers that was four one

0:28:57.600 --> 0:29:01.480
<v Speaker 1>six nine. So this was the same process. And if I,

0:29:01.480 --> 0:29:03.479
<v Speaker 1>if you knew that that's what I was doing, then

0:29:03.480 --> 0:29:05.480
<v Speaker 1>you would just take four, one, six, nine square. It

0:29:05.560 --> 0:29:07.200
<v Speaker 1>take those middle four numbers and you would have my

0:29:07.240 --> 0:29:10.480
<v Speaker 1>next quote unquote random number. So not very useful, not

0:29:10.560 --> 0:29:13.520
<v Speaker 1>secure at all. You know. I love stories about John

0:29:13.600 --> 0:29:16.160
<v Speaker 1>von Neumann because they're all about how he would do

0:29:16.320 --> 0:29:19.360
<v Speaker 1>stuff like that in his head and and scare people

0:29:20.560 --> 0:29:22.719
<v Speaker 1>sort of too smart for Earth in a kind of

0:29:22.720 --> 0:29:25.960
<v Speaker 1>creepy way. I also found a great quote from him

0:29:26.080 --> 0:29:29.959
<v Speaker 1>on the internet today where he said, anyone who considers

0:29:30.080 --> 0:29:34.760
<v Speaker 1>arithmetical methods of producing random digits is of course in

0:29:34.760 --> 0:29:40.040
<v Speaker 1>a state of sin. For as has been pointed out

0:29:40.080 --> 0:29:43.320
<v Speaker 1>several times, there is no such thing as a random number.

0:29:43.440 --> 0:29:46.480
<v Speaker 1>There were only methods to produce random numbers, and the

0:29:46.600 --> 0:29:50.479
<v Speaker 1>strict arithmetic procedure, of course, is not such a method.

0:29:51.960 --> 0:29:53.680
<v Speaker 1>So I think the point he makes is not that

0:29:53.720 --> 0:29:57.800
<v Speaker 1>pseudo random numbers produced by algorithms are useless, just the

0:29:57.840 --> 0:30:01.280
<v Speaker 1>folly of thinking they're truly random. Just a random is

0:30:01.320 --> 0:30:04.880
<v Speaker 1>the incorrect term. Sure, right, but we've actually got a

0:30:04.960 --> 0:30:09.880
<v Speaker 1>lot of ways today of producing what some would argue

0:30:10.000 --> 0:30:13.480
<v Speaker 1>actually are true random numbers, and then other people would say, no,

0:30:13.680 --> 0:30:17.200
<v Speaker 1>they're not. Actually Yeah, yeah, we can argue about it,

0:30:17.240 --> 0:30:20.640
<v Speaker 1>but what are the truest of the true random numbers,

0:30:20.680 --> 0:30:23.160
<v Speaker 1>so we can come up with Now, I'm going to

0:30:23.360 --> 0:30:26.520
<v Speaker 1>give an overview of this one, because honestly, the more

0:30:26.560 --> 0:30:28.600
<v Speaker 1>I looked into it to try and be able to

0:30:28.600 --> 0:30:32.360
<v Speaker 1>to explain in a simple way what was going on,

0:30:32.440 --> 0:30:34.800
<v Speaker 1>the more I realized I was not understanding it. So,

0:30:35.360 --> 0:30:42.400
<v Speaker 1>uh that caveat out there. Uh. Makoto Matsumoto and Takuji

0:30:42.520 --> 0:30:48.920
<v Speaker 1>Nishimura developed the Mersin Twister method of generating pseudo random numbers,

0:30:48.920 --> 0:30:52.320
<v Speaker 1>which is based off the mathematical concept of the Mercin prime,

0:30:52.560 --> 0:30:57.040
<v Speaker 1>named after Marin Mersen. Okay, So, what is a Meyerson

0:30:57.120 --> 0:31:00.240
<v Speaker 1>prime number? That's a prime number that is one less

0:31:00.360 --> 0:31:03.040
<v Speaker 1>than a power of two. So two to the power

0:31:03.080 --> 0:31:06.840
<v Speaker 1>of two or two squared minus one is three. That's

0:31:06.880 --> 0:31:10.440
<v Speaker 1>a prime number. That would be a Messson prime. But

0:31:10.760 --> 0:31:13.400
<v Speaker 1>obviously you wouldn't want to use a number that small

0:31:13.680 --> 0:31:17.560
<v Speaker 1>for your period of your prime number generation. That would

0:31:17.560 --> 0:31:22.080
<v Speaker 1>be the essentially the the the entire span of numbers

0:31:22.080 --> 0:31:25.360
<v Speaker 1>that you could use before having to repeat, and the

0:31:25.440 --> 0:31:28.280
<v Speaker 1>smaller that is, the more easily it is broken. Right,

0:31:28.320 --> 0:31:31.040
<v Speaker 1>So you want a big one, boy, how do they

0:31:31.040 --> 0:31:33.480
<v Speaker 1>go with a big one? Uh? So for their thirty

0:31:33.480 --> 0:31:37.160
<v Speaker 1>two bit word length version. Uh there is a sixty

0:31:37.200 --> 0:31:39.320
<v Speaker 1>four bit as well, but for the thirty two bit version,

0:31:39.320 --> 0:31:43.120
<v Speaker 1>they went too to the power of nineteen thousand seven

0:31:43.760 --> 0:31:47.440
<v Speaker 1>and then you subtract one from that number. Yeah, it's

0:31:47.440 --> 0:31:50.840
<v Speaker 1>a big number. Uh So the algorithm itself for generating

0:31:50.840 --> 0:31:52.800
<v Speaker 1>the random number, I mean, this is the period. That's

0:31:52.800 --> 0:31:56.160
<v Speaker 1>not the random number, obviously, because that's just a number.

0:31:56.640 --> 0:31:59.680
<v Speaker 1>Uh the algorithm was way too complex for me to

0:31:59.760 --> 0:32:02.080
<v Speaker 1>unders stand it, so there's no way I can describe it.

0:32:02.160 --> 0:32:04.880
<v Speaker 1>I'm sure there's some mathematicians out there who are rolling

0:32:04.960 --> 0:32:08.880
<v Speaker 1>their eyes, perhaps audibly at this point at my ignorance.

0:32:08.960 --> 0:32:10.960
<v Speaker 1>But keep in mind I was a liberal arts major,

0:32:11.320 --> 0:32:16.360
<v Speaker 1>and in his grave I doubt it not, nor do

0:32:16.440 --> 0:32:23.280
<v Speaker 1>I blame him. Probably yes, in a random fashion. Uh So,

0:32:23.680 --> 0:32:26.920
<v Speaker 1>the thing is that this is a really complex system.

0:32:26.960 --> 0:32:30.800
<v Speaker 1>It does generate pseudo random numbers, it does not necessarily

0:32:30.800 --> 0:32:34.720
<v Speaker 1>pass all the tests of randomness. However, it is really popular.

0:32:34.760 --> 0:32:37.360
<v Speaker 1>It's used by a lot of web servers, for example,

0:32:38.000 --> 0:32:42.720
<v Speaker 1>in its method of producing random numbers or pseudo random numbers.

0:32:42.720 --> 0:32:48.320
<v Speaker 1>I should say, what about your standard cryptographic hash? Alright, so, uh,

0:32:48.640 --> 0:32:51.560
<v Speaker 1>did did you actually know what a cryptographic hash? Was.

0:32:51.560 --> 0:32:53.400
<v Speaker 1>I had to look it up because I always forget.

0:32:53.760 --> 0:32:56.120
<v Speaker 1>But a cryptographic hash, it's one of those things that

0:32:56.200 --> 0:32:58.600
<v Speaker 1>I know in a very loose way. Yeah, I know.

0:32:58.680 --> 0:33:02.480
<v Speaker 1>When I read it on a page, I'm like, okay,

0:33:02.600 --> 0:33:04.440
<v Speaker 1>and then you're so you're like, explain it to me.

0:33:04.520 --> 0:33:07.640
<v Speaker 1>I'm like, uh, that's kind of that's how I am

0:33:07.680 --> 0:33:12.600
<v Speaker 1>to stuff with cryptography and potatoes exactly. Yeah, it's all

0:33:12.680 --> 0:33:16.000
<v Speaker 1>fried up in a pan and it's delicious. Uh yeah,

0:33:16.040 --> 0:33:19.920
<v Speaker 1>unfortunately that is that's not entirely correct, but it is

0:33:20.000 --> 0:33:23.400
<v Speaker 1>incredibly tasty. Uh yeah. So a hash and I have

0:33:23.440 --> 0:33:25.120
<v Speaker 1>to remind myself of this all the time too, and

0:33:25.160 --> 0:33:27.400
<v Speaker 1>I talk about it a lot, so I feel guilty

0:33:27.440 --> 0:33:32.680
<v Speaker 1>about this. But hash is essentially a uh, fixed length

0:33:32.760 --> 0:33:38.160
<v Speaker 1>alpha numeric message that is apparently random. So alpha numerica

0:33:38.240 --> 0:33:41.320
<v Speaker 1>means that there's both um, you know, uh, letters and

0:33:41.440 --> 0:33:45.440
<v Speaker 1>numbers represented in the hash. Uh. And it's a fixed length,

0:33:45.560 --> 0:33:48.120
<v Speaker 1>meaning that no matter what the input is, you're going

0:33:48.160 --> 0:33:50.680
<v Speaker 1>to get the same length of message on the output.

0:33:51.080 --> 0:33:54.160
<v Speaker 1>So if it's a single word, you're going to get

0:33:54.760 --> 0:33:57.880
<v Speaker 1>you know, let's say, let's say it's fifty characters long

0:33:57.920 --> 0:34:01.680
<v Speaker 1>your hash, you'll get a fifty character long hash representing

0:34:01.720 --> 0:34:04.920
<v Speaker 1>that single word, and it's going through a process. The

0:34:04.960 --> 0:34:09.719
<v Speaker 1>hash itself is the guarded process series of of instructions

0:34:09.760 --> 0:34:14.480
<v Speaker 1>that computer will uh execute upon input so that you

0:34:14.520 --> 0:34:17.239
<v Speaker 1>get this output. Let's say that you do a sentence,

0:34:17.400 --> 0:34:19.799
<v Speaker 1>not just a little word, and you plug it in.

0:34:19.960 --> 0:34:22.759
<v Speaker 1>You're going to get a fifty character long hash. It

0:34:22.800 --> 0:34:25.040
<v Speaker 1>doesn't matter what the input is. The output is always

0:34:25.080 --> 0:34:26.680
<v Speaker 1>going to be a fifty character hash. Now it's gonna

0:34:26.680 --> 0:34:29.399
<v Speaker 1>be unique to whatever your input is going to be.

0:34:29.840 --> 0:34:33.239
<v Speaker 1>And hashes can be significantly longer than fifty characters. I

0:34:33.320 --> 0:34:35.120
<v Speaker 1>just drew that number out of the air to kind

0:34:35.160 --> 0:34:38.440
<v Speaker 1>of give an example. But the idea being that there's

0:34:38.680 --> 0:34:41.400
<v Speaker 1>no way for you to determine what the input was

0:34:41.480 --> 0:34:44.440
<v Speaker 1>based upon the output because it doesn't give you any

0:34:44.560 --> 0:34:48.160
<v Speaker 1>hint as to the nature of that input. Right right,

0:34:48.239 --> 0:34:51.080
<v Speaker 1>part of the hash isn't like ps, the original message

0:34:51.120 --> 0:34:55.160
<v Speaker 1>was seventy eight characters long, right exactly. Okay, yeah, y'all

0:34:55.200 --> 0:34:58.799
<v Speaker 1>are not satisfying me. Pause. These things we're talking about

0:34:58.800 --> 0:35:01.600
<v Speaker 1>are still based their out rhythmic. Yeah. So what we

0:35:01.680 --> 0:35:04.359
<v Speaker 1>really need to focus on, I think, is ways of

0:35:04.520 --> 0:35:08.320
<v Speaker 1>getting a seed or a period or you know, drawing

0:35:08.440 --> 0:35:13.400
<v Speaker 1>that initial number that really are random. I mean again,

0:35:13.440 --> 0:35:16.560
<v Speaker 1>we're here, we're sort of like churning complexity with complexity

0:35:16.640 --> 0:35:20.040
<v Speaker 1>until we get something that's really hard to an that's

0:35:20.080 --> 0:35:23.319
<v Speaker 1>hard to untie. But what we want is a knot

0:35:23.640 --> 0:35:29.640
<v Speaker 1>that starts untiable. Okay, you know, Like, so how about

0:35:29.800 --> 0:35:33.600
<v Speaker 1>if we went for Schrodinger's random number. Yes, this is

0:35:33.640 --> 0:35:37.960
<v Speaker 1>actually my very favorite method of determining of spitting out

0:35:37.960 --> 0:35:40.759
<v Speaker 1>a random number, and it's based on the principle that

0:35:41.239 --> 0:35:45.279
<v Speaker 1>when when radioactive stuff decays, it decays at a completely

0:35:45.360 --> 0:35:48.840
<v Speaker 1>unpredictable rate. That's true, that that that point at which

0:35:48.920 --> 0:35:51.879
<v Speaker 1>it flips is you can't I mean, you can make

0:35:51.880 --> 0:35:55.640
<v Speaker 1>a pretty good guess it when, but the actual point

0:35:55.680 --> 0:35:58.040
<v Speaker 1>predict you cannot predict. So if you set up a

0:35:58.080 --> 0:36:01.920
<v Speaker 1>Geiger counter, uh, and then set up a computer to

0:36:02.600 --> 0:36:06.319
<v Speaker 1>you know, uh, record when that actual flip happens, you've

0:36:06.320 --> 0:36:10.359
<v Speaker 1>got a random number. Yeah. Yeah, essentially, And a lot

0:36:10.440 --> 0:36:14.160
<v Speaker 1>of random number generator systems use a combination of true

0:36:14.280 --> 0:36:17.319
<v Speaker 1>random number generators and pseudo random number generators. So the

0:36:17.320 --> 0:36:21.120
<v Speaker 1>true random number ends up becoming the seed, and then

0:36:21.239 --> 0:36:24.320
<v Speaker 1>it goes through the process of the pseudo random number generator.

0:36:24.360 --> 0:36:27.480
<v Speaker 1>Until you get your quote unquote random number. But by

0:36:27.560 --> 0:36:31.400
<v Speaker 1>making that seed truly random, you can't predict what the

0:36:31.440 --> 0:36:33.600
<v Speaker 1>next one is going to be, right because of the

0:36:33.680 --> 0:36:37.719
<v Speaker 1>nature randomness, and radioactive decay is a great way of

0:36:37.760 --> 0:36:40.800
<v Speaker 1>doing that, because, like you were saying, Lauren, you can't

0:36:40.800 --> 0:36:44.800
<v Speaker 1>predict when that moment happens, when that radioactive particle decays,

0:36:45.440 --> 0:36:47.400
<v Speaker 1>and so as long as you have a good detector

0:36:47.840 --> 0:36:49.799
<v Speaker 1>and you have a way of feeding that information into

0:36:49.800 --> 0:36:54.000
<v Speaker 1>the computer, you're set. My question would be how often

0:36:54.120 --> 0:36:56.920
<v Speaker 1>is this used in real life? Like how many systems

0:36:57.360 --> 0:36:59.319
<v Speaker 1>do people have set up with I don't know what

0:36:59.320 --> 0:37:01.120
<v Speaker 1>would they have, like a piece of uranium and a

0:37:01.160 --> 0:37:04.040
<v Speaker 1>Geiger counter. That's just saying like, if there's a click,

0:37:04.200 --> 0:37:06.759
<v Speaker 1>it's a one. If there's no click, it's a zero. Look,

0:37:07.719 --> 0:37:10.240
<v Speaker 1>you might be able to buy plutonium at seven eleven.

0:37:10.280 --> 0:37:15.439
<v Speaker 1>But um so it's not obviously not common, but there

0:37:15.480 --> 0:37:18.960
<v Speaker 1>are places that use it. The hot bits service in

0:37:19.080 --> 0:37:23.080
<v Speaker 1>Fermi Lab in Switzerland uses this methodology. There are other

0:37:23.080 --> 0:37:28.640
<v Speaker 1>ones as well, but something guessing mostly bond villains. Probably yeah,

0:37:28.640 --> 0:37:30.840
<v Speaker 1>you're not gonna you're not gonna have like when I

0:37:31.000 --> 0:37:34.480
<v Speaker 1>when I'm when I'm rolling up characters so that I can,

0:37:34.840 --> 0:37:36.960
<v Speaker 1>you know, play my D and D game. I am

0:37:37.000 --> 0:37:39.399
<v Speaker 1>not going to be using this methodologist because you don't

0:37:39.400 --> 0:37:43.000
<v Speaker 1>want to die of cancer. Yeah, I like that. Quotes

0:37:43.080 --> 0:37:48.000
<v Speaker 1>on that too. I mean die of cancer. By that,

0:37:48.080 --> 0:37:50.680
<v Speaker 1>I mean die of cancer, and I mean literally that's

0:37:50.719 --> 0:37:54.839
<v Speaker 1>actually what I meant. No, surely, I'm sure they don't

0:37:54.880 --> 0:37:58.400
<v Speaker 1>have chunks of uranium in the video poker machine that

0:37:58.440 --> 0:38:02.120
<v Speaker 1>you're using at the oh, your friends are having fun.

0:38:02.480 --> 0:38:04.879
<v Speaker 1>I feel reasonably I mean it is not that far

0:38:04.920 --> 0:38:08.319
<v Speaker 1>from Los Alamos, but I feel reasonably confident. Okay, what

0:38:08.400 --> 0:38:14.360
<v Speaker 1>about some other at least apparently random fluctuations in physical

0:38:14.440 --> 0:38:18.839
<v Speaker 1>events in the world. Yeah, well, yeah, yeah. The We're

0:38:18.840 --> 0:38:21.880
<v Speaker 1>always saying that the weather is random or very difficult

0:38:21.880 --> 0:38:25.920
<v Speaker 1>to predict at any rate. So what about atmospheric or

0:38:26.000 --> 0:38:29.880
<v Speaker 1>electromagnetic phenomena. Yeah, it's exactly one of the sources that

0:38:29.960 --> 0:38:32.719
<v Speaker 1>a lot of different true random number generators will use.

0:38:32.760 --> 0:38:36.080
<v Speaker 1>They'll use some sort of measuring device you and I

0:38:36.160 --> 0:38:40.439
<v Speaker 1>might call it a radio crazy to pick up fluctuations

0:38:40.440 --> 0:38:44.759
<v Speaker 1>in electromagnetics, you know, broadcasts, because lots of lots of

0:38:44.800 --> 0:38:47.600
<v Speaker 1>stuff can cause radio waves to get picked up by

0:38:47.600 --> 0:38:49.880
<v Speaker 1>a radio right, like, especially if you're on a M

0:38:49.960 --> 0:38:52.200
<v Speaker 1>things like like lightning strikes that will get picked up

0:38:52.200 --> 0:38:54.040
<v Speaker 1>by a M radio. In fact, that's why you get

0:38:54.080 --> 0:38:57.640
<v Speaker 1>interference when you tune into an AM radio station and

0:38:57.719 --> 0:39:01.360
<v Speaker 1>there's an electric storm nearby or you have you know,

0:39:01.400 --> 0:39:04.399
<v Speaker 1>pass underneath the bridge, and you get that interference because

0:39:04.400 --> 0:39:07.040
<v Speaker 1>it's the signals no longer getting to you, uh in

0:39:07.080 --> 0:39:10.440
<v Speaker 1>a in a strong fashion. So using a radio, you

0:39:10.440 --> 0:39:13.400
<v Speaker 1>can pick up these this atmospheric noise and feed them

0:39:13.400 --> 0:39:16.920
<v Speaker 1>into a computer to create random numbers. That's entirely possible

0:39:17.760 --> 0:39:24.080
<v Speaker 1>outcome as well, So it's pretty good. Although let's say

0:39:24.080 --> 0:39:25.800
<v Speaker 1>that look at this from the point of view of

0:39:25.800 --> 0:39:34.000
<v Speaker 1>an attacker. You could conceivably broadcast electro magnetic radiation to

0:39:34.400 --> 0:39:38.360
<v Speaker 1>your target in an effort to influence the random number

0:39:38.400 --> 0:39:43.440
<v Speaker 1>generator and then therefore creative vulnerability to get into their system.

0:39:43.520 --> 0:39:46.640
<v Speaker 1>When you when you read about the actual problems people

0:39:46.640 --> 0:39:48.759
<v Speaker 1>think about, and this is problems in the sense of

0:39:48.840 --> 0:39:52.640
<v Speaker 1>like big, big picture, like like how impervious is this

0:39:52.760 --> 0:39:56.480
<v Speaker 1>system to an attack? They get to these discussions where

0:39:56.480 --> 0:39:58.919
<v Speaker 1>you think, all right, no reasonable human being would ever

0:39:59.000 --> 0:40:01.160
<v Speaker 1>be able to do this, And that's not the point.

0:40:01.239 --> 0:40:04.360
<v Speaker 1>We're saying it is in fact impervious. We're not saying

0:40:04.560 --> 0:40:06.960
<v Speaker 1>is it. Is it practical? Well? Yeah, yeah, I mean

0:40:07.320 --> 0:40:10.480
<v Speaker 1>it's seriously doubt that any hacker is going to be sitting,

0:40:10.680 --> 0:40:13.800
<v Speaker 1>you know, across from your your random number generator station

0:40:13.840 --> 0:40:16.800
<v Speaker 1>and going like, start up the DVD of Wayne's World.

0:40:16.840 --> 0:40:21.760
<v Speaker 1>We're going to predict some numbers. Be an excellent source

0:40:21.800 --> 0:40:24.520
<v Speaker 1>of it, though that movie is so random. But you

0:40:24.520 --> 0:40:29.040
<v Speaker 1>you know, you can also use actual noise, like acoustic levels,

0:40:29.120 --> 0:40:32.160
<v Speaker 1>that can be a way of generating random numbers. Obviously,

0:40:32.239 --> 0:40:37.440
<v Speaker 1>hold on, let me discover your seed. Uh yeah again. Obviously,

0:40:37.480 --> 0:40:39.680
<v Speaker 1>if you are in a if you're in an environment

0:40:39.719 --> 0:40:42.879
<v Speaker 1>that has a repetitive noise, that's a problem because you've

0:40:42.920 --> 0:40:46.960
<v Speaker 1>got a repeating pattern that will happen. If you are

0:40:47.000 --> 0:40:49.040
<v Speaker 1>in an area that your attack or can get access

0:40:49.040 --> 0:40:53.000
<v Speaker 1>to and thus introduce a noise, that's a problem. So

0:40:53.520 --> 0:40:56.440
<v Speaker 1>not necessarily as secure as some other ones. My favorite

0:40:57.239 --> 0:41:00.360
<v Speaker 1>really was a system that made use of lava lamps.

0:41:01.160 --> 0:41:05.240
<v Speaker 1>I saw this note I'm confused. Okay, so it really

0:41:05.480 --> 0:41:07.799
<v Speaker 1>did use lava lamps, and the system, by the way,

0:41:07.880 --> 0:41:10.280
<v Speaker 1>is no longer in use. But the way it worked

0:41:10.280 --> 0:41:12.480
<v Speaker 1>was that there was a camera pointed at lava lamps.

0:41:12.560 --> 0:41:17.160
<v Speaker 1>It was like early seventies bad you know, sadly disco

0:41:17.239 --> 0:41:19.360
<v Speaker 1>and randomness died out at the same time. No, it

0:41:19.480 --> 0:41:21.959
<v Speaker 1>was so it was a camera pointed at the lava lamp,

0:41:22.120 --> 0:41:25.400
<v Speaker 1>and lava lamps have wax essentially in them that heats

0:41:25.440 --> 0:41:29.120
<v Speaker 1>up and then starts to float toward the top and

0:41:29.480 --> 0:41:34.400
<v Speaker 1>it deforms in interesting ways, and the camera would take images.

0:41:34.480 --> 0:41:39.160
<v Speaker 1>The images would be converted into digital information, and that

0:41:39.200 --> 0:41:42.759
<v Speaker 1>would be shaped by the shape of the lava in

0:41:42.760 --> 0:41:44.919
<v Speaker 1>the lava lamp or the wax in the lava lamp.

0:41:45.320 --> 0:41:49.120
<v Speaker 1>So it would create random numbers based upon the shapes

0:41:49.160 --> 0:41:51.240
<v Speaker 1>of the lava, which you could not predict. You couldn't

0:41:51.280 --> 0:41:53.200
<v Speaker 1>predict what shape it was going to be in at

0:41:53.200 --> 0:41:56.360
<v Speaker 1>any given moment, and I thought it was a brilliant

0:41:56.360 --> 0:42:00.719
<v Speaker 1>way of creating random numbers. Also stylish. I would call

0:42:00.760 --> 0:42:06.480
<v Speaker 1>it tubular. In fact, totally that's eighties, not seventies. But

0:42:06.520 --> 0:42:10.239
<v Speaker 1>all right, I would call it groovy personally, but that's

0:42:10.239 --> 0:42:13.720
<v Speaker 1>because I'm a child in the seventies. So how mixed entropy.

0:42:14.280 --> 0:42:17.000
<v Speaker 1>We talked about intropy earlier. That idea of the entropy

0:42:17.120 --> 0:42:21.240
<v Speaker 1>represents the truly unguessable bits in the string of bits

0:42:21.960 --> 0:42:24.880
<v Speaker 1>um mixed entropy. This is a concept where you take

0:42:25.680 --> 0:42:30.319
<v Speaker 1>lots of tiny bits of randomized information collectively to then

0:42:30.440 --> 0:42:34.760
<v Speaker 1>feed into your you know, pseudo random number generator. Uh,

0:42:34.800 --> 0:42:37.440
<v Speaker 1>this could be disc could take lots of different forms.

0:42:38.040 --> 0:42:40.760
<v Speaker 1>You could have the air turbulence within a sealed disc

0:42:40.960 --> 0:42:44.520
<v Speaker 1>drive as a source of entropy. So we're talking obviously

0:42:44.600 --> 0:42:47.359
<v Speaker 1>about an actual physical hard drive, not a solid state

0:42:47.400 --> 0:42:49.760
<v Speaker 1>hard drive, right, Like the kind of has a spinning

0:42:49.800 --> 0:42:52.840
<v Speaker 1>magnetic disc in it that would create air turbulence. That

0:42:52.880 --> 0:42:57.000
<v Speaker 1>air turbulence would end up becoming converted into digital information

0:42:57.040 --> 0:43:00.719
<v Speaker 1>that would then be fed in as part of a

0:43:01.360 --> 0:43:04.919
<v Speaker 1>seed for a pseudo random number of generator. Yeah, you'd

0:43:04.920 --> 0:43:09.040
<v Speaker 1>get a much more uh steady seed from a solid

0:43:09.040 --> 0:43:12.479
<v Speaker 1>state drive. Yes, that would be pretty easy. Not too

0:43:12.520 --> 0:43:15.200
<v Speaker 1>much air turbulence from that. Yeah, I guess if it

0:43:15.320 --> 0:43:17.520
<v Speaker 1>heated up enough, it could create some. But even so

0:43:17.600 --> 0:43:20.000
<v Speaker 1>it's not much. Sorry, yes anyway, but no, you are

0:43:20.000 --> 0:43:22.799
<v Speaker 1>absolutely right. Without the spinning disk, it's really not they're

0:43:22.800 --> 0:43:26.160
<v Speaker 1>not getting a lot happening there. But yeah, it's the

0:43:26.200 --> 0:43:28.360
<v Speaker 1>idea is to collect a lot of these different sources

0:43:28.400 --> 0:43:31.200
<v Speaker 1>because individually there's not enough entropy there to create a

0:43:31.239 --> 0:43:36.160
<v Speaker 1>strong random number, but collectively and mixed together you can

0:43:36.200 --> 0:43:39.080
<v Speaker 1>do that. Um, it makes it much more difficult to predict.

0:43:39.520 --> 0:43:46.760
<v Speaker 1>So what then, is the future of generating random numbers? Quantum?

0:43:46.800 --> 0:43:50.000
<v Speaker 1>That's your answer for everything? You know? It's say that

0:43:50.040 --> 0:43:55.120
<v Speaker 1>word again, quantum um? You mean quantum? Well, I mean,

0:43:55.160 --> 0:43:59.200
<v Speaker 1>if you want to pronounce it correctly. Sure, I'm talking

0:43:59.200 --> 0:44:02.200
<v Speaker 1>about the behavior years of the world at the sub

0:44:02.239 --> 0:44:07.719
<v Speaker 1>atomic level, the world that, based upon our perceptions, is

0:44:07.840 --> 0:44:11.319
<v Speaker 1>largely random and unpredictable. Well, I guess this would sort

0:44:11.360 --> 0:44:14.840
<v Speaker 1>of be the same principle behind using radioactive decay to

0:44:15.080 --> 0:44:20.160
<v Speaker 1>generate random seeds. Right. Yeah, uh so here's the thing.

0:44:21.560 --> 0:44:24.560
<v Speaker 1>This is where we get into the philosophy argument. Right, so,

0:44:24.920 --> 0:44:29.680
<v Speaker 1>quantum effects appear to be random to us, many of them,

0:44:29.719 --> 0:44:31.920
<v Speaker 1>not all of them, obviously, but many of them appear

0:44:31.960 --> 0:44:33.920
<v Speaker 1>to be random to us, and in fact, there seems

0:44:33.920 --> 0:44:35.920
<v Speaker 1>to be a limitation on what we are able to

0:44:36.000 --> 0:44:40.360
<v Speaker 1>know about any given quantum effect. For example, the whole

0:44:40.400 --> 0:44:45.000
<v Speaker 1>idea of for a subatomic particle, we might know it's

0:44:45.040 --> 0:44:48.440
<v Speaker 1>it's a velocity or its position, But the more we

0:44:48.520 --> 0:44:50.600
<v Speaker 1>know one, the less we know the other that kind

0:44:50.600 --> 0:44:54.839
<v Speaker 1>of stuff. With that limitation in mind, there at least

0:44:54.920 --> 0:44:58.279
<v Speaker 1>has the appearance of randomness here. Now, it may turn

0:44:58.320 --> 0:45:03.520
<v Speaker 1>out that the univer eorse itself is by and large

0:45:03.880 --> 0:45:09.080
<v Speaker 1>or maybe entirely deterministic, that in fact, everything that's happening

0:45:10.000 --> 0:45:13.279
<v Speaker 1>is a direct result at some point, like you could

0:45:13.320 --> 0:45:15.880
<v Speaker 1>trace it all the way back to the Big Bang,

0:45:16.280 --> 0:45:20.120
<v Speaker 1>and that nothing is going outside of that. That's a

0:45:20.160 --> 0:45:23.960
<v Speaker 1>philosophical argument, however, because that requires knowledge of such a

0:45:24.080 --> 0:45:27.400
<v Speaker 1>vast nature as to be impossible for us to to

0:45:27.560 --> 0:45:31.160
<v Speaker 1>actually obtain. Right, Well, I mean, we at least observe

0:45:31.239 --> 0:45:34.080
<v Speaker 1>that everything above the quantum level seems to be at

0:45:34.160 --> 0:45:36.480
<v Speaker 1>least deterministic. Like if if you were able to know

0:45:36.640 --> 0:45:40.880
<v Speaker 1>everything about the thing that happened before, you should be

0:45:40.960 --> 0:45:43.839
<v Speaker 1>able to expect to the next thing that happens. Sort

0:45:43.880 --> 0:45:47.279
<v Speaker 1>of what the project of physics is. Yeah, it kind

0:45:47.280 --> 0:45:49.200
<v Speaker 1>of kind of like if you were able to know

0:45:50.040 --> 0:45:54.480
<v Speaker 1>everything about a weather system, I mean, everything, which you can't.

0:45:54.719 --> 0:45:57.319
<v Speaker 1>It's it's not possible, at least not possible today, and

0:45:57.360 --> 0:45:59.560
<v Speaker 1>I doubt it will ever be possible. But let's say

0:45:59.600 --> 0:46:02.160
<v Speaker 1>that some how you are able to have that knowledge,

0:46:02.600 --> 0:46:05.239
<v Speaker 1>then presumably you'd be able to predict what was going

0:46:05.280 --> 0:46:08.040
<v Speaker 1>to happen next. So let's take an electrical storm as

0:46:08.080 --> 0:46:10.960
<v Speaker 1>an example. You might be able to if you know

0:46:11.280 --> 0:46:13.800
<v Speaker 1>everything that's going on with that weather system, no, exactly

0:46:13.800 --> 0:46:16.600
<v Speaker 1>when and where the next strike of lightning will occur.

0:46:17.320 --> 0:46:21.560
<v Speaker 1>But in reality, we can't have all that information. Therefore

0:46:21.600 --> 0:46:24.560
<v Speaker 1>we can't predict this. Therefore it feels random, right, Well,

0:46:24.560 --> 0:46:26.640
<v Speaker 1>there are just too many factors. It's it's not that

0:46:26.760 --> 0:46:30.759
<v Speaker 1>it's a truly random occurrence. It's that we uh a

0:46:31.040 --> 0:46:35.400
<v Speaker 1>don't don't even know how many digits are going into creating.

0:46:35.960 --> 0:46:39.279
<v Speaker 1>Uh we don't know the period, right, you know. Um,

0:46:39.400 --> 0:46:42.000
<v Speaker 1>and and since we don't know the entire period, we

0:46:42.040 --> 0:46:47.080
<v Speaker 1>can't possibly pick the correct answer out of it. It's

0:46:47.120 --> 0:46:50.200
<v Speaker 1>you know, it would go down to being able to

0:46:50.200 --> 0:46:54.160
<v Speaker 1>to know when every person turns on the heat in

0:46:54.200 --> 0:46:57.239
<v Speaker 1>their homes, or or when a factory breaks down for

0:46:57.280 --> 0:46:59.440
<v Speaker 1>a few hours or something like that. Yeah, it's it's

0:46:59.480 --> 0:47:02.279
<v Speaker 1>it's one of those things where, again, the complexity of

0:47:02.280 --> 0:47:07.120
<v Speaker 1>the system is so great as to effectively be random.

0:47:07.239 --> 0:47:11.439
<v Speaker 1>Even if you could argue, yeah, that's not really random, well,

0:47:11.520 --> 0:47:15.680
<v Speaker 1>it it's so complex as to effectively be random. The

0:47:15.760 --> 0:47:19.040
<v Speaker 1>question is moot. In other words, uh so, and that's

0:47:19.160 --> 0:47:22.520
<v Speaker 1>the macro scale, you know. Once we get down into

0:47:23.280 --> 0:47:28.160
<v Speaker 1>quantum mechanics, it really is a question is this truly random?

0:47:28.280 --> 0:47:33.120
<v Speaker 1>Is it contra causal? Is are these events happening without

0:47:33.160 --> 0:47:37.840
<v Speaker 1>any input determining how they will turn out? And the

0:47:37.880 --> 0:47:41.520
<v Speaker 1>impression I get from reading the current sciences that people think, yeah,

0:47:41.560 --> 0:47:45.200
<v Speaker 1>I mean it is it is random that these quantum

0:47:45.200 --> 0:47:49.480
<v Speaker 1>events cannot be predicted by knowing what happened before. Now,

0:47:49.520 --> 0:47:51.799
<v Speaker 1>it may turn out one day, I mean, I don't know,

0:47:51.920 --> 0:47:53.799
<v Speaker 1>but it may turn out that we find out that's

0:47:53.840 --> 0:47:56.920
<v Speaker 1>not true. There is is some information, there's some kind

0:47:56.920 --> 0:48:00.080
<v Speaker 1>of hidden information that we don't have access to it.

0:48:00.080 --> 0:48:02.440
<v Speaker 1>If we did know, we would be able to predict

0:48:02.560 --> 0:48:06.600
<v Speaker 1>what quantum outcomes will be. Yeah, but that is now

0:48:06.800 --> 0:48:10.040
<v Speaker 1>in fact, right, Maybe that there is no such information exactly.

0:48:10.080 --> 0:48:12.960
<v Speaker 1>It may be that the quantum world is nondeterministic and

0:48:13.000 --> 0:48:16.640
<v Speaker 1>it truly is random, in which case using quantum effects

0:48:16.640 --> 0:48:20.640
<v Speaker 1>to generate random numbers would be perfect because it is

0:48:20.719 --> 0:48:24.319
<v Speaker 1>nondeterministic and a periodic. Uh if we would be the

0:48:24.320 --> 0:48:26.360
<v Speaker 1>way to go. If we find out there is hidden

0:48:26.400 --> 0:48:30.000
<v Speaker 1>information and we can discover what it is and In fact,

0:48:30.080 --> 0:48:34.000
<v Speaker 1>even at the quantum level, things are deterministic. Does that

0:48:34.040 --> 0:48:37.160
<v Speaker 1>mean that there is no such thing in the universe

0:48:37.239 --> 0:48:40.520
<v Speaker 1>as a random number? Yeah? I would I would argue yes,

0:48:40.719 --> 0:48:44.640
<v Speaker 1>even in the truest of true possible true randoms, would

0:48:44.640 --> 0:48:49.520
<v Speaker 1>still be a pseudo random number. Yeah. It would just

0:48:49.560 --> 0:48:54.000
<v Speaker 1>be the most complex algorithm that you'd ever seen. But that,

0:48:54.400 --> 0:48:56.440
<v Speaker 1>in fact, if you were able to know all of

0:48:56.480 --> 0:48:58.440
<v Speaker 1>that stuff, then you would be able to predict what

0:48:58.520 --> 0:49:02.839
<v Speaker 1>the next outcome would be. Uh. I don't. I don't

0:49:02.960 --> 0:49:06.560
<v Speaker 1>personally feel like that feels true to me, But that's

0:49:06.600 --> 0:49:09.800
<v Speaker 1>a feeling, So I can't say that that holds any water.

0:49:10.440 --> 0:49:13.680
<v Speaker 1>But there's some interesting ways that we could harvest bits

0:49:13.960 --> 0:49:19.760
<v Speaker 1>from quantum uh uh phenomena. For example, the quantum effects

0:49:19.760 --> 0:49:24.320
<v Speaker 1>in a semiconductor or photon polarization detection. These are things

0:49:24.360 --> 0:49:29.320
<v Speaker 1>that are seemingly random, and maybe they are truly random,

0:49:29.360 --> 0:49:32.880
<v Speaker 1>and that is entirely possible. However, that kind of stuff

0:49:33.239 --> 0:49:36.160
<v Speaker 1>is really limited to, you know, scientific labs that have

0:49:36.320 --> 0:49:39.440
<v Speaker 1>sophisticated equipment. So what hope is there for the rest

0:49:39.480 --> 0:49:42.040
<v Speaker 1>of us? What if what Joe? What if what if

0:49:42.160 --> 0:49:46.360
<v Speaker 1>you wanted to go out and create a random number

0:49:46.400 --> 0:49:50.000
<v Speaker 1>generator that relied upon quantum phenomena. What hope do you have?

0:49:50.160 --> 0:49:53.000
<v Speaker 1>Oh wait, you're referring to the cell phone cameras. I

0:49:53.040 --> 0:49:55.920
<v Speaker 1>am this was a great story. Yeah no, this was

0:49:56.000 --> 0:49:59.880
<v Speaker 1>really cool. I'm glad you found this story about Bruno's

0:50:00.000 --> 0:50:03.400
<v Speaker 1>Seguinetti who came up and a team of researcher. It

0:50:03.440 --> 0:50:05.560
<v Speaker 1>wasn't just a Mr Segwinetta. He had a team of

0:50:05.600 --> 0:50:09.000
<v Speaker 1>researchers as well at the University of Geneva try to

0:50:09.360 --> 0:50:14.600
<v Speaker 1>find a way of using smartphones to detect quantum data

0:50:14.760 --> 0:50:17.680
<v Speaker 1>that could be then used to generate random numbers. And

0:50:17.680 --> 0:50:20.439
<v Speaker 1>the quantum data with a cell phone would be through

0:50:20.480 --> 0:50:22.720
<v Speaker 1>the use of the camera. Like you said, Joe, my

0:50:22.719 --> 0:50:25.959
<v Speaker 1>my cellphone camera does not have the resolution to see

0:50:25.960 --> 0:50:28.879
<v Speaker 1>things at a quantum level. I mean, I've only got

0:50:28.880 --> 0:50:31.280
<v Speaker 1>an iPhone four. So maybe that's why you keep adding

0:50:31.280 --> 0:50:34.719
<v Speaker 1>that CPA tone filter everything as the problem. But it

0:50:34.760 --> 0:50:37.640
<v Speaker 1>actually your cell phone is made of atoms that do

0:50:37.880 --> 0:50:40.960
<v Speaker 1>interact at the quantum level. That is true. What we're

0:50:41.000 --> 0:50:44.120
<v Speaker 1>talking about here, specifically, is the way that a camera,

0:50:44.239 --> 0:50:48.960
<v Speaker 1>a digital camera captures light. Right we're talking it has sensors,

0:50:49.280 --> 0:50:53.000
<v Speaker 1>and the sensors end up corresponding to pixels. Those would

0:50:53.000 --> 0:50:56.240
<v Speaker 1>be the individual little dots that make up your your image,

0:50:56.840 --> 0:51:00.560
<v Speaker 1>and photons will collide with that sensor, and then the

0:51:00.680 --> 0:51:05.839
<v Speaker 1>sensor generates the electrons necessary for this to be translated

0:51:05.840 --> 0:51:08.719
<v Speaker 1>into an image that ultimately will be displayed back into

0:51:08.719 --> 0:51:12.239
<v Speaker 1>photons so that your eyeballs can see it. But meanwhile

0:51:12.480 --> 0:51:15.360
<v Speaker 1>you have this electron phase. And the interesting thing is

0:51:15.360 --> 0:51:18.120
<v Speaker 1>that photon emission is one of these random things. We

0:51:18.120 --> 0:51:21.239
<v Speaker 1>we have a probabilistic model where we can say what

0:51:21.480 --> 0:51:26.000
<v Speaker 1>the average is of any given moment of photons being omitted,

0:51:26.400 --> 0:51:30.880
<v Speaker 1>but it turns out that at specific instances that number varies,

0:51:31.000 --> 0:51:33.520
<v Speaker 1>so there is some randomness there. It's not, you know,

0:51:33.640 --> 0:51:36.160
<v Speaker 1>we just have the average. We don't necessarily know at

0:51:36.160 --> 0:51:39.480
<v Speaker 1>any given time how many photons are being admitted within

0:51:40.080 --> 0:51:44.880
<v Speaker 1>the view of a camera, for example, except that a

0:51:45.000 --> 0:51:49.759
<v Speaker 1>camera has to translate those photons into electrons. So if

0:51:49.760 --> 0:51:52.839
<v Speaker 1>we take the average of what we would expect any

0:51:52.960 --> 0:51:57.160
<v Speaker 1>given pixel in a photo to generate, so let's say,

0:51:57.400 --> 0:51:59.640
<v Speaker 1>you know, again, I'm going to use a ridiculous example,

0:51:59.680 --> 0:52:02.200
<v Speaker 1>and this is truly ridiculous. Let's say, all right, we

0:52:02.280 --> 0:52:07.880
<v Speaker 1>expect this pixel will capture ten photons and create ten electrons.

0:52:07.960 --> 0:52:10.640
<v Speaker 1>This is totally wrong, by the way, just to give

0:52:10.680 --> 0:52:17.320
<v Speaker 1>the example, but but instead it generated nine electrons. Well,

0:52:17.440 --> 0:52:19.920
<v Speaker 1>then you know that the actual number of photons was

0:52:20.040 --> 0:52:23.480
<v Speaker 1>less than what the average was, and that number, the

0:52:23.560 --> 0:52:27.480
<v Speaker 1>difference there becomes your random number. Okay, and that's for

0:52:27.560 --> 0:52:31.360
<v Speaker 1>one pixel. Now, the camera they used was an eight

0:52:31.480 --> 0:52:35.279
<v Speaker 1>megapixel camera, so I had many, many more than just

0:52:35.440 --> 0:52:39.680
<v Speaker 1>one pixel, right, millions of pixels, And so that means

0:52:39.719 --> 0:52:42.000
<v Speaker 1>that the all of these different sensors are working in

0:52:42.040 --> 0:52:46.040
<v Speaker 1>parallel together. So you take all of the differences of

0:52:46.200 --> 0:52:49.000
<v Speaker 1>all of those pixels based upon you know what what

0:52:49.160 --> 0:52:52.839
<v Speaker 1>actually hit it versus the average that you expected, and

0:52:52.880 --> 0:52:55.439
<v Speaker 1>then then you have your random number. And it's all

0:52:55.480 --> 0:52:58.520
<v Speaker 1>just from a cell phone. So you could literally have

0:52:58.600 --> 0:53:01.640
<v Speaker 1>an app on your cell phone that would be able

0:53:01.680 --> 0:53:05.400
<v Speaker 1>to turn an image captured on the camera into a

0:53:05.480 --> 0:53:09.360
<v Speaker 1>random number, and you would have access to a quantum

0:53:09.480 --> 0:53:14.560
<v Speaker 1>random number generator from your cell phone. That's pretty awesome.

0:53:14.600 --> 0:53:18.719
<v Speaker 1>It's pretty pretty awesome. Yeah, because again this is the

0:53:18.760 --> 0:53:21.560
<v Speaker 1>sort of stuff like the quantum number generators for the

0:53:21.600 --> 0:53:23.880
<v Speaker 1>sort of things you would only find in labs, not

0:53:24.160 --> 0:53:26.960
<v Speaker 1>something that your average person could have access to. So

0:53:27.920 --> 0:53:32.400
<v Speaker 1>if you have a real need to generate random numbers

0:53:32.440 --> 0:53:34.800
<v Speaker 1>for some reason, you want to open an online casino,

0:53:34.960 --> 0:53:37.440
<v Speaker 1>you know, Yeah, I mean there could be any number

0:53:37.440 --> 0:53:40.480
<v Speaker 1>of reasons why a person might really have need of this.

0:53:40.600 --> 0:53:43.120
<v Speaker 1>I mean maybe you're a web administrator and you need

0:53:43.160 --> 0:53:45.760
<v Speaker 1>to have this to generate unique ideas, and you thought

0:53:46.040 --> 0:53:48.239
<v Speaker 1>this is a great way to generate those seeds that

0:53:48.280 --> 0:53:51.120
<v Speaker 1>I will feed into my pseudo random number generator in

0:53:51.239 --> 0:53:55.160
<v Speaker 1>order to create as unique ideas. It's a great solution, right,

0:53:55.239 --> 0:53:57.680
<v Speaker 1>It's something that you don't have to worry about an

0:53:57.680 --> 0:54:00.520
<v Speaker 1>attacker anticipating what the next number is going to be,

0:54:00.520 --> 0:54:07.360
<v Speaker 1>because it's impossible. It's quantum, as Terry Pratchett would have said, quantum.

0:54:07.560 --> 0:54:10.480
<v Speaker 1>Uh so yeah, this was you know, this is always

0:54:10.480 --> 0:54:12.919
<v Speaker 1>a fun thing to talk about. I love talking about

0:54:13.000 --> 0:54:16.839
<v Speaker 1>random numbers and the difficulty of generating them and whether

0:54:16.960 --> 0:54:21.439
<v Speaker 1>or not they even exist. Uh. I tend to kind

0:54:21.440 --> 0:54:24.640
<v Speaker 1>of get frustrated with philosophical discussions, but for some reason,

0:54:24.680 --> 0:54:26.680
<v Speaker 1>this one in particular really appeals to me. Well, it's

0:54:26.680 --> 0:54:30.319
<v Speaker 1>also mathematical, which helps. Yeah, and I just think you're

0:54:30.360 --> 0:54:32.520
<v Speaker 1>in a good mood today. Well, I did a Mexican

0:54:32.560 --> 0:54:36.520
<v Speaker 1>food and pie, so that helps. Well, thank you so

0:54:36.600 --> 0:54:40.399
<v Speaker 1>much for the email, Sean. We really liked this topic. Yeah,

0:54:40.440 --> 0:54:42.480
<v Speaker 1>and in fact, if any of you out there would

0:54:42.520 --> 0:54:45.680
<v Speaker 1>like to follow in Sean's footsteps and send us a message,

0:54:45.920 --> 0:54:47.839
<v Speaker 1>maybe you've got something else you want us to cover.

0:54:47.960 --> 0:54:50.600
<v Speaker 1>There's some sort of future topic you think is really interesting,

0:54:51.400 --> 0:54:54.040
<v Speaker 1>let us know. Send us an email that addresses FW

0:54:54.280 --> 0:54:57.120
<v Speaker 1>Thinking at how Stuff Works dot com, or you can

0:54:57.160 --> 0:55:01.040
<v Speaker 1>always drop us a note on Facebook, Twitter, or Google Plus.

0:55:01.160 --> 0:55:03.759
<v Speaker 1>Twitter and Google Plus we are f W Thinking. Just

0:55:03.840 --> 0:55:06.200
<v Speaker 1>search f W Thinking and Facebook. We'll pop right up,

0:55:06.280 --> 0:55:08.560
<v Speaker 1>leave us a message, and we'll talk to you again.

0:55:09.000 --> 0:55:16.160
<v Speaker 1>Release soon. For more on this topic in the future

0:55:16.200 --> 0:55:29.120
<v Speaker 1>of technology, visit forward Thinking dot com, brought to you

0:55:29.200 --> 0:55:31.440
<v Speaker 1>by Toyota. Let's Go Places,