[00:00.160 --> 00:08.780] I'm Lucas Reikers, and today I will be talking to you about two separate subjects and their intersection, which is covert communications and chaotic communications. [00:09.480 --> 00:12.740] So, by the end of this lecture, you will learn the following. [00:13.060 --> 00:15.480] What chaos is and how you can use it. [00:15.760 --> 00:19.420] What makes communications undetectable or otherwise covert. [00:19.860 --> 00:23.880] As well as how chaos can help us achieve this covertness goal. [00:24.680 --> 00:29.860] So, the first thing I'm going to cover is what covert or undetectable communications is. [00:30.160 --> 00:34.580] So, normally we have Alice here who wants to talk to her friend Bob. [00:35.020 --> 00:41.280] And in order for Alice to speak to Bob, she's going to send a message to him that Bob can open and read. [00:42.260 --> 00:50.720] So, the difference... there's a stark difference between traditional security that you do in CyberSec and InfoSec and covert communications. [00:51.080 --> 00:55.440] In traditional security, the goal of the malicious actors is different. [00:55.440 --> 01:03.740] So, we have often times Carol who is trying to decrypt or find the ciphertext depicted by Louis Carol here. [01:04.160 --> 01:07.480] Or Eve, who's trying to otherwise eavesdrop on the text. [01:07.880 --> 01:12.980] So, their goal is to take Alice's message and find out what she's saying. [01:13.320 --> 01:18.860] To find out what the bits were, what's the message, how much metadata is there, how many gigabytes did she send, etc. [01:20.000 --> 01:28.220] This differs starkly from the covert communications goal, which instead features a warden named Willie in the literature. [01:28.400 --> 01:29.320] I didn't come up with these names. [01:29.420 --> 01:31.920] These are just like very commonly used in the literature. [01:32.500 --> 01:34.880] So, in this case, Alice was trying to talk to Bob. [01:35.080 --> 01:40.840] And instead of Willie trying to find out what Alice said, he's trying to find out, did Alice transmit? [01:40.840 --> 01:45.380] Now, the big difference here is that this results in it being a binary question, a yes or no. [01:45.620 --> 01:48.780] And this greatly affects the mathematics of how we treat this question. [01:49.440 --> 01:52.920] In earlier versions of the literature, there was also another character. [01:53.140 --> 01:56.060] Instead of the warden Willie, it was sometimes called Detector Dave. [01:56.480 --> 02:00.980] But this is out of fashion, and Dave only gets brought in if there's two or more wardens, generally. [02:02.860 --> 02:14.140] So, covert communications or undetectable communications, if you want to do a literature review or search on it, the terms low probability of detection and low probability of intercept are also used. [02:14.800 --> 02:18.100] There is no standard definition for any of these terms, really. [02:18.340 --> 02:25.380] Other than that, low probability of detection is more often used by mathematicians and information theorists to describe the situation. [02:25.380 --> 02:34.380] And low probability of intercept is a term more often used by waveform designers to describe a waveform that they view as hard to decode or intercept. [02:34.800 --> 02:40.280] But for this talk, I'm going to be using all these terms fungibly, and in the literature, they're often referred to as the same thing. [02:40.360 --> 02:41.700] LPI or LPD comms. [02:43.540 --> 02:47.860] There are some certain fundamental limits for dealing with this situation. [02:48.260 --> 02:50.840] So, in this case, I've depicted Alice here in jail. [02:50.840 --> 02:57.960] And our warden, Willie, is trying to make sure that she's not using a cell phone or otherwise communicating with Bob in the outside world. [02:58.740 --> 03:06.780] And in this horrible scenario, Alice can transmit on the order of square root of n bits for every n channel uses. [03:06.780 --> 03:19.360] So, what this means is, if there's... if she could have potentially sent, like, a thousand bits, normally with a normal communications protocol, she can only send something on the order of the square root of n, or of the square root of a thousand. [03:20.560 --> 03:30.260] And in order for this to work optimally, Alice and Bob do need to have a pre-shared key beforehand in order to coordinate various things, like what random frequencies they'll use and what random times they'll transmit. [03:31.600 --> 03:33.680] This square root law is kind of horrible. [03:34.340 --> 03:38.740] So, drawn here is a blue line, which is just y equals x. [03:38.900 --> 03:39.820] It's just a straight line. [03:39.960 --> 03:42.060] And then the orange line is the square root of x. [03:42.860 --> 03:45.600] And, as we can see, it does not grow really quickly. [03:45.600 --> 03:49.740] So, if Alice has twice as much time to transmit, she does not get a lot more data through. [03:51.300 --> 04:02.020] This comes from steganography, and the actual mathematics for why this square root law arises comes from the mathematics of statistical binary hypothesis testing. [04:03.160 --> 04:04.960] Yeah, it does not grow really fast. [04:05.180 --> 04:16.100] The good thing is, this is basically the most austere model that you can have of this scenario, because it assumes that Willie knows everything about how Alice could possibly transmit, with the exception of that secret key. [04:16.100 --> 04:17.960] So, yeah. [04:19.620 --> 04:21.780] Unfortunately, this is not great. [04:21.920 --> 04:31.140] And in mathematical terms, we would say the capacity of this channel is zero, because the limit of the square root of n over n, as n goes to infinity, is zero. [04:31.540 --> 04:40.220] And despite the capacity being zero in a mathematical sense, there is still a large finite amount of information that can be transferred in the square root n scenario. [04:40.880 --> 04:46.680] So, there's still a lot of interesting math that is dealing with the absolute limits of information theory. [04:48.720 --> 04:49.280] Yeah. [04:49.660 --> 04:53.080] And only finite data can be sent by Alice in infinite time. [04:53.360 --> 04:58.260] Alice can't transmit forever, otherwise it's guaranteed that she'll be detected, assuming Willie's doing its job. [05:00.120 --> 05:10.060] This is called zero capacity, but positive capacity is when Alice actually can transmit an infinite amount of bits over an infinite amount of time, without being detected to Bob. [05:10.540 --> 05:16.760] And there is some situations where this setup can actually arise. [05:17.300 --> 05:20.600] So basically, Alice can transmit order n. [05:21.140 --> 05:25.800] And the O here is like the same as you would see in algorithmic complexity, it just means the order of. [05:26.960 --> 05:33.620] So Alice can transmit the order of n bits, which means she can talk forever, without being detected in several situations. [05:33.920 --> 05:35.840] When Willie doesn't know his exact noise level. [05:35.840 --> 05:41.380] So if the noise level of the environment is varying, then that gives additional uncertainty that Alice can hide bits in. [05:42.240 --> 05:51.240] Additionally, if jammers are used to jam Willie, even if Alice is not coordinating with the jammer, she can actually still get a positive capacity. [05:51.240 --> 05:52.060] So that's really nice. [05:52.820 --> 05:55.880] And the other scenarios are when there are public spectrum users. [05:57.020 --> 05:58.620] Oops, other people on the channel. [06:00.160 --> 06:05.680] Going a bit more into this public messages, I've got several different characters here. [06:05.860 --> 06:11.940] There's Carol, Dave and Eve are all transmitting and sending out large amounts of power onto the spectrum. [06:12.120 --> 06:14.200] And Alice is just trying to sneak her message in there. [06:14.400 --> 06:21.380] So because of that, Willie has to filter out all of the public messages in order to be able to find out whether or not Alice transmitted. [06:22.140 --> 06:24.380] So there's different ways that Alice can do this. [06:24.380 --> 06:27.480] She can hide among the public messages here. [06:27.680 --> 06:30.900] So just putting her signal around one that has a large power. [06:32.020 --> 06:34.460] And yeah, Willie has to filter it out. [06:34.620 --> 06:47.480] And mathematically there are papers that show that as the number of public users goes up, it becomes very trivial to do covert communications because the probability starts to go to zero as the number of users goes up. [06:47.480 --> 06:53.100] But that's... this is basically equivalent to like whispering in a loud room. [06:53.300 --> 06:58.220] A more interesting scenario is that Alice can hide within public messages. [06:58.880 --> 07:02.300] So in this diagram here is QPSK. [07:02.660 --> 07:05.660] And in order to... I don't have to explain how it works really quickly. [07:06.080 --> 07:12.580] Basically what happens is the radio receiver will receive a dot and it'll be on this grid and it'll be in one of the four quadrants. [07:12.580 --> 07:15.820] So the upper left quadrant, the bits transmitted are zero, one. [07:15.980 --> 07:16.940] The upper right is one, one. [07:17.140 --> 07:17.960] Bottom left is zero, zero. [07:18.140 --> 07:19.140] And the bottom right is one, zero. [07:19.480 --> 07:21.180] So this forms a quadrant. [07:21.420 --> 07:25.620] And the receiver, yeah, depending on which quadrant the dots in, that's what bits they assume it is. [07:25.920 --> 07:39.740] So Alice, if she knows that there's a public transmitter that has some kind of preamble or something, and it's just... it's always like the same constant preamble, then she can use the form of that in order to hide messages within it. [07:39.740 --> 07:44.940] So in this diagram here, Alice creates a constellation within a constellation. [07:45.120 --> 07:49.500] By modulating that dot around within the quadrant, she can transmit data to Bob. [07:49.640 --> 07:53.060] And in this case, really doesn't even know because he just sees the public message. [07:53.080 --> 07:56.860] And if you have a normal QPSK receiver, you can't even tell this is happening. [07:57.440 --> 08:02.180] So he needs to be extremely, extremely careful with filtering it out. [08:02.300 --> 08:06.660] But also in this case, Alice has to rely on public transmitters with known message structures. [08:07.500 --> 08:11.540] However, that is not the primary focus of this talk or research. [08:11.820 --> 08:18.960] But the overall goal of covert communications is to try and create what are called shadow networks. [08:19.280 --> 08:29.280] So instead of just Alice and Bob, we want to have an arbitrary amount of transceivers, of Alice's and Bob's, who can communicate and have a whole entire hidden covert shadow network. [08:29.460 --> 08:34.280] Even if there's a bunch of willies around who are trying to detect the signal, they shouldn't be able to. [08:34.280 --> 08:40.060] So another question is, if shadow networks are possible, how do we build them? [08:42.340 --> 08:47.400] So now, there's basically three primary things you can do to make a waveform covert. [08:47.940 --> 08:50.840] One, you can lower the power at willy, which we'll discuss. [08:51.140 --> 08:59.180] So just anything you can do to direct more power to Bob so he has a higher SNR, so that willy sees more noise than the signal. [08:59.440 --> 09:02.120] The second way is to spread it out in frequency. [09:02.380 --> 09:14.520] Because assuming that willy has some kind of band-limited detector or radiometer or whatever, then spreading it out in the frequency is just trying to push the power across the entire spectrum as much as possible, so that it flattens out and blends [09:14.520 --> 09:15.300] in with the noise for. [09:16.220 --> 09:19.300] The third method is that you can make the waveform irregular. [09:19.300 --> 09:22.180] And this is basically where chaos comes in to help. [09:23.140 --> 09:27.020] So going through each of these methods, the first one is that we can lower the SNR at willy. [09:27.340 --> 09:41.920] So we can use any kind of MIMO, multi-input, multiple output, any kind of beam-forming or high-gain directional antenna, or intelligently reflecting surfaces to just direct more energy away from Bob and towards willy. [09:41.920 --> 09:51.360] The problem is Alice needs to know the location of Bob, and also needs to know the location of willy to make sure that this is functioning. [09:52.180 --> 09:56.120] This winds up being equivalent to using a laser pointer plus Morse code. [09:56.320 --> 09:59.920] Because if you have a laser pointer, the beam is just that tiny coherent beam width. [09:59.940 --> 10:07.020] And if you're flashing it raided Bob's eyes, then no one else can actually see the results of the laser pointer, unless they're on the beam path. [10:08.120 --> 10:09.000] Which is... [10:09.900 --> 10:13.360] In that case, it just goes back to the square root of N law. [10:14.080 --> 10:18.780] So, yeah, this scenario is a little bit harder to set up, because it requires spatial information. [10:18.780 --> 10:23.080] And if there's any multi-path in your laser bouncing around and stuff, it increases the odds that willy can see it. [10:23.740 --> 10:24.160] The other... [10:24.600 --> 10:25.260] This is... [10:25.260 --> 10:31.020] Anyone who's a communications nerd here is probably far more familiar with the traditional spread-spectrum technologies. [10:31.540 --> 10:39.960] So briefly, any radio station at like 101.9 FM, let's say, is broadcasting a very high intense peak at that frequency. [10:40.180 --> 10:43.000] So if you can spread it out so that you're using... [10:43.000 --> 10:50.820] You're distributing energy across a wide variety of frequencies, then that makes it harder for willy to detect, because the signal bends in more of this noise form. [10:52.120 --> 10:59.480] There are different ways of achieving this, including frequency hopping spread-spectrum, chirp spread-spectrum, and direct sequence spread-spectrum. [10:59.680 --> 11:01.560] There's also one called time... [11:02.340 --> 11:06.540] time hopping spread-spectrum, but it's not actually spread-spectrum, if you think about it mathematically. [11:07.460 --> 11:09.660] Frequency hopping is pretty easy to explain. [11:09.920 --> 11:21.200] It's just that you're changing what frequency you're using randomly, and if you're shuffling it through hundreds of times potentially per second, then it's very hard for someone who's looking for your frequencies to detect it, because they won't know [11:21.200 --> 11:25.360] which one to jump to next, and presumably they're just scanning linearly. [11:25.360 --> 11:31.480] This makes it so that the receiver willy is getting a lot less energy, because they don't know what signals to check. [11:32.180 --> 11:34.140] Direct sequence spread-spectrum is really cool. [11:34.320 --> 11:35.840] It's probably more familiar to a lot of people. [11:36.540 --> 11:45.620] But you just take a regular signal and multiply it by what's called a spreading code, and this spreads it out in the frequency spectrum. [11:45.720 --> 11:50.840] I won't go through the math of why, but this kind of technology is used in CDMA and cell phones. [11:50.840 --> 11:59.680] And in general, this technology is meant to allow multiple users to share the spectrum, but it also has this dual purpose of increasing our covertness and lowering detectability. [12:00.280 --> 12:10.040] And one interesting thing where chaos does come in here is that it turns out that chaotic sequences are better spreading sequences than pseudo-noise-generated ones. [12:10.120 --> 12:14.900] I'll get a little bit more into the math of why and what the difference between chaos and randomness is later. [12:16.080 --> 12:19.040] The third one that's really neat is chirp-spread-spectrum. [12:19.040 --> 12:25.920] So a chirp is just a signal that just goes up or down in frequency rapidly. [12:26.500 --> 12:30.600] So here, the top figure here is the time signal of a chirp. [12:30.660 --> 12:33.460] So it's a sine wave that keeps getting faster and increasing its frequency. [12:33.860 --> 12:39.960] And this bottom picture here depicts frequency hopping and chirp-spread-spectrum together. [12:40.220 --> 12:43.560] So there's a bunch of chirps in frequency at the bottom. [12:43.720 --> 12:46.340] And if it's a one, it's going down. [12:46.400 --> 12:47.960] And if it's a zero, it's going up. [12:47.960 --> 12:52.680] But these chirps aren't just covering the same spectrum every time because that would be too predictable. [12:53.200 --> 12:55.780] So they're frequency hopping which domain they go in. [12:56.140 --> 13:03.320] So using chirps instead of a standard signal actually helps it a lot for defeating certain kinds of analysis. [13:03.320 --> 13:15.040] It also has a bunch of properties that make it beneficial in certain fade environments like frequency selective fading and multipath scenarios because there's no Doppler shift on a chirp. [13:16.540 --> 13:23.860] The third method that we can do after getting out of the spread spectrum to create a covert waveform is making the waveform irregular. [13:25.100 --> 13:32.900] So making it look really weird helps you to defeat certain advanced kinds of analysis that are looking for regularities in the signal. [13:32.900 --> 13:34.680] Like cyclostationarity analysis. [13:35.500 --> 13:38.780] And helps it to blend in with the noise better because it just looks weird. [13:39.520 --> 13:40.160] And yeah. [13:40.280 --> 13:42.480] So this is one of the main areas where chaos can help us. [13:44.180 --> 13:45.060] Cyclostationarity analysis. [13:45.440 --> 13:46.080] Just to go over this. [13:46.240 --> 13:54.040] So cyclostationarity analysis basically it's magic that allows you to look for is there any part of the signal whatsoever that's periodic or repetitious in any way. [13:54.040 --> 13:56.080] And if so, it stands out immediately. [13:56.400 --> 14:03.480] And since 99% of our comms protocols are based off sine waves, which are definitionally very repetitious, it's very useful. [14:03.700 --> 14:05.060] So chaos helps us defeat that. [14:05.220 --> 14:08.160] But we have to ask the question, what is chaos? [14:08.380 --> 14:10.540] This is basically the second half of the presentation. [14:11.220 --> 14:15.960] So it's a dynamical system with a high sensitivity to initial conditions. [14:16.240 --> 14:17.400] That sounds fancy. [14:17.400 --> 14:25.760] But what this means is that if you change the input to the function, it results in a very, very large change to the output of a function. [14:25.920 --> 14:28.320] So it's very sensitive to the initial conditions. [14:28.740 --> 14:34.360] And the way that you characterize this mathematically is you say that it has a positive Lyapunov exponent. [14:34.360 --> 14:38.460] Which is basically saying a small change in the input is a large change in the output. [14:40.000 --> 14:46.020] So chaotic sequences is a sequence of numbers that was generated by some kind of chaotic function. [14:46.020 --> 14:50.060] They are... the properties that they have in general are that they are regular. [14:50.380 --> 14:52.440] They're aperiodic, so they never repeat. [14:53.180 --> 14:55.300] They're completely uncorrelated with each other. [14:55.400 --> 15:03.920] So if you start with even like a slightly smidge in initial conditions, then those two chaotic sequences that you get in time will just be completely uncorrelated with each other. [15:05.120 --> 15:10.460] They're broadbands, meaning that they cover a very wide range of frequencies, potentially by default. [15:10.660 --> 15:12.600] And they're unpredictable, definitionally. [15:13.840 --> 15:16.340] So the example we're going to go with is the pendulum. [15:16.480 --> 15:17.600] I'm glad this one didn't screw up. [15:18.500 --> 15:26.040] A simple pendulum, if you just got a weight hanging from the end of like a rigid rod or a rope, and you lift it, it'll just go back and forth in this motion forever. [15:26.980 --> 15:28.780] So it's got a fairly simple path. [15:29.560 --> 15:33.440] Now, what happens if you put a pendulum at the end of your pendulum? [15:33.440 --> 15:35.380] You get a double pendulum. [15:38.860 --> 15:41.800] And this winds up creating a chaotic path. [15:42.100 --> 15:46.540] So this drawing here is the path of a double pendulum at the end. [15:46.660 --> 15:48.000] It winds up being something really crazy. [15:48.280 --> 15:52.260] So it's got a few of those properties that it's unpredictable and crazy and stuff. [15:52.420 --> 15:57.360] But this doesn't show the sensitivity to initial conditions necessarily. [15:57.360 --> 16:02.640] So on this slide, I've got three double pendulums starting almost right beside each other. [16:03.140 --> 16:08.380] And we see that if after time, they're just completely uncorrelated and they're doing their own thing. [16:08.780 --> 16:18.380] Versus at the start of this slide, they start in very, very similar positions and just wind up doing their own thing. [16:18.380 --> 16:21.420] So the double pendulum is an example of a chaotic system. [16:21.680 --> 16:24.100] However, you can't really build a communication scheme out of this. [16:24.200 --> 16:28.380] So I'm going to talk about other better examples. [16:29.720 --> 16:41.140] Briefly, the differences between chaos and randomness is that chaos is deterministic and randomness is non-deterministic in terms of what each element, how each element relates to the last one. [16:42.320 --> 16:52.000] In math, you actually, most of the time you just take a chaotic sequence and you just treat it like as a random one for the same, in terms of like when the mathematical properties and stuff. [16:52.120 --> 16:55.820] And this just winds up, you know, helping you with the analysis a lot. [16:57.660 --> 17:01.800] Then, if you ever have a pseudo random number generator, it's a discrete thing. [17:02.000 --> 17:07.180] And then the state depends on the previous state because it's not doing like quantum mechanics to generate the randomness. [17:07.180 --> 17:10.300] So as a result of this, it is... [17:11.080 --> 17:15.000] Pseudo random number generators are chaotic systems because they're discrete. [17:15.600 --> 17:18.580] They don't... there are more general kinds of chaotic systems. [17:18.660 --> 17:22.180] So if you have that double pendulum example, or this... [17:23.040 --> 17:25.560] And it's just creating this path as it swings around. [17:25.760 --> 17:32.320] You can have a grid that's at a greater graining than what the actual physics is at. [17:32.480 --> 17:34.020] So then you can discretize it. [17:34.120 --> 17:44.280] And then this chaotic system is allowing you to create random sequences, because given the sequences that are discretized on this large grid, you cannot... you can't reconstruct like the underlying physics underneath that. [17:44.700 --> 17:47.080] So chaos and randomness can produce each other. [17:47.180 --> 17:53.680] So we use chaotic sequences to make pseudo randomness, and you can create randomness with chaotic things by graining them at a higher level. [17:54.740 --> 18:00.280] And then just some more mathematical properties that differentiate chaos and randomness. [18:00.420 --> 18:03.660] They both have zero autocorrelation for their signals on the whole. [18:03.660 --> 18:12.660] But the biggest difference is that chaotic signals have zero cross-correlation between each other on the whole, but random signals have random cross-correlation between each other. [18:12.740 --> 18:14.340] So they have like random spikes where it peaks. [18:14.540 --> 18:20.400] This is the main property that makes chaotic spreading sequences slightly better than ones based on pseudo-noise. [18:21.440 --> 18:22.000] Yeah. [18:22.240 --> 18:27.040] And another example of a chaotic function that is often used is the logistic map. [18:27.040 --> 18:31.420] This is a recursive function with two parameters, basically. [18:31.620 --> 18:34.480] There's r, which is just a real number you can pick. [18:34.820 --> 18:37.960] And then there's the xn, which is your initial value. [18:38.240 --> 18:43.100] So you pick that r, and you plug in the xn, and then it gives you the next value in the sequence. [18:43.360 --> 18:44.640] You can keep iterating that forever. [18:45.220 --> 18:53.620] So this describes animal populations, the rate at which water drops fall from a faucet, and a bunch of other scenarios that are really cool and you can look up on YouTube. [18:54.140 --> 18:58.180] But the main thing is this is actually a function used in lots of schemes. [18:59.580 --> 19:00.820] So the logistic map. [19:02.160 --> 19:06.280] The bottom axis here, the x-axis, is the r value that you're picking. [19:06.720 --> 19:22.560] So what this is showing is that if you pick some random r value from 2.4 to 3, and then no matter what number you start with for your initial condition, over time, the function will settle to a particular value here. [19:22.840 --> 19:27.420] So in this case, at 2.4, it's settling to around 0.6. [19:27.420 --> 19:31.980] No matter what xn you start with, which is very nice. [19:32.080 --> 19:33.020] And this continues for a while. [19:33.200 --> 19:35.760] But something weird happens when you get past 3. [19:36.360 --> 19:43.280] All of a sudden, depending on which your initial condition was, it's randomly settling to one of these two other values. [19:43.420 --> 19:44.340] It just bifurcates. [19:44.540 --> 19:49.280] So if you change the initial condition slightly, it might jump over to settling in the other branch. [19:49.660 --> 20:01.100] So at this point, we were able to just randomly generate 1s and 0s by picking an r value between 3 and 3.4, and then just picking any initial x value. [20:01.460 --> 20:02.360] So this is really cool. [20:02.440 --> 20:03.340] It splits in 2 here. [20:03.520 --> 20:06.920] And then if we go a little bit further, it splits in 2 again. [20:07.420 --> 20:11.100] So now, depending on what you're doing, it's choosing between these four values. [20:11.460 --> 20:16.280] And then once we get to about 3.6-ish, something crazy happens. [20:16.340 --> 20:19.780] And it just starts oscillating between hundreds of possible values. [20:19.800 --> 20:21.340] And at this point, it's fully chaotic. [20:22.040 --> 20:28.620] So there are some brief moments where it goes down to having only three values and stuff. [20:28.620 --> 20:35.200] But for most applications, if you pick an r value of 4, you can just pick any initial value. [20:35.200 --> 20:39.780] And it'll cycle around aperiodically in a chaotic sequence that goes on forever. [20:40.280 --> 20:44.640] And conveniently, at r equals 4, this happens to cover the range from 0 to 1. [20:44.640 --> 20:46.580] So that's useful for a lot of people's purposes. [20:48.760 --> 20:50.340] The logistic map output. [20:50.340 --> 20:55.920] So yeah, this is just the behavior of a lot of different potential starting values and what they wind up settling to. [20:56.200 --> 21:03.760] But on this slide, I'm going to show you just one particular sequence of this mapped over time to show you how chaotic it is. [21:03.900 --> 21:05.520] So we've chosen the r equals 4. [21:05.620 --> 21:07.680] This is a very, very common value to pick. [21:08.000 --> 21:10.660] And then for my x0, I've chosen 0.1. [21:11.040 --> 21:12.740] Just with a bunch of zeros on the end for fun. [21:12.740 --> 21:15.240] And it produces this sequence. [21:15.420 --> 21:18.440] So it's just bouncing around to a lot of random numbers going up and down. [21:18.760 --> 21:26.740] And if we also plot a second x value on top of this plot with x equals 0.10001. [21:27.380 --> 21:29.340] So it's a very, very, very similar value. [21:29.800 --> 21:33.020] We can see that it kind of diverges pretty quickly. [21:33.280 --> 21:38.940] So for the first, like, 12 or 15 or so iterations, it actually is a value that's very close. [21:39.440 --> 21:42.240] But then it quickly diverges after that. [21:42.240 --> 21:45.540] So we can see a bunch of places where the orange and blue are not the same. [21:46.180 --> 21:49.340] So this is an example of an actual chaotic sequence. [21:50.540 --> 21:57.380] So to cover this again, chaos is a deterministic system where a small change in the input is a large change in the output. [21:57.560 --> 22:01.600] So now we've covered what chaos is and what covertness is. [22:01.720 --> 22:04.300] But now I'm going to briefly talk about what communications is. [22:04.820 --> 22:11.440] So regular communications, you have input data, and then the transmitter takes it, modulates it. [22:11.440 --> 22:13.800] And this funny inverted triangle thing is an antenna. [22:14.040 --> 22:17.440] So that's just the block diagram for electrical engineers for an antenna. [22:17.660 --> 22:19.740] And then it's sent across the air. [22:19.960 --> 22:27.260] Noise and interference gets added to the signal, and then it is received by the end user and demodulated and turned into data. [22:27.640 --> 22:31.780] So what makes regular communications different from chaos communications? [22:31.780 --> 22:38.480] The answer is you just have a chaos generator as part of the transmitter and receiver. [22:38.940 --> 22:39.920] Very, very simple. [22:40.720 --> 22:46.140] So now I'm going to actually discuss some elementary chaos schemes of how you can use a chaos generator very simply. [22:46.380 --> 22:52.880] The simplest possible method you can think of that is analyzed in textbooks is chaos on-off shift keying. [22:52.880 --> 22:56.780] It's like a lot of other forms of on-off shift keying where you have a chaotic signal. [22:57.060 --> 23:02.620] And if you want to send a one bit, you attach it to the chaos generator. [23:02.800 --> 23:05.120] And if you want to send a zero bit, you don't transmit. [23:05.580 --> 23:07.400] So it's very, very, very simple. [23:08.220 --> 23:16.360] And in order to receive it, you actually don't really need anything complicated because since you're not transmitting on the zeros, you can kind of just measure the overall energy. [23:16.360 --> 23:21.940] This is a huge problem because anyone with an energy detector can discover your sequence. [23:22.460 --> 23:32.820] So a slightly fancier way to do it is to have the one bit use a certain chaos generator with a certain seed and then have the zero bit use a different chaos generator with a different seed. [23:34.300 --> 23:41.220] And the block diagram for this is depicted on the right here where it's just a gate oscillating between which chaos generator depending on the signal. [23:41.220 --> 23:48.140] And the receiver has to have two chaos generators on their end that match the initial one. [23:49.020 --> 23:51.460] So a thing here is you'll notice that... [23:52.460 --> 24:05.300] Is that since the chaos generators, if they're slightly, slightly different, one tiny minuscule change in the initial conditions whatsoever, then the generators will be completely out of sync and produce different results. [24:05.520 --> 24:12.780] So in order to make this scheme work reliably in bad network conditions, you need to synchronize these chaos generators. [24:13.220 --> 24:19.640] And the problem with this is that in order to synchronize them, you need to have basically a separate channel for information to go. [24:20.520 --> 24:25.200] So here's that depicted with the synchronization, is that they need to have some other channel. [24:25.920 --> 24:35.060] But this runs against what we want to do with the covertness, because if you have this synchronization channel link, why don't you just use that instead to do your communications? [24:37.140 --> 24:42.940] So the only other way to get around it is to have some kind of pre-shared secret key for the both of the people beforehand. [24:43.620 --> 24:44.620] That's randomly generated. [24:44.840 --> 24:49.720] And then this is, once again, different than your crypto keys, because you probably still want to encrypt the information on top of this. [24:50.640 --> 24:51.240] Oh no. [24:53.860 --> 25:01.380] So the next method I'm going to discuss does not use the synchronization at all. [25:02.160 --> 25:09.560] And instead what happens is, for one bit, you can send your reference from the chaos generator twice. [25:09.920 --> 25:17.560] And then if it's a zero bit, you send the chaos generator reference, and then you multiply it by negative one, and send that as well. [25:19.140 --> 25:20.820] And on the receive end... [25:21.300 --> 25:28.280] So now we've got a chaotic communication scheme, but it doesn't have any security properties, because there's no pre-shared key. [25:29.180 --> 25:35.180] And anyone can essentially pick up this signal, given that they have wideband delay lines. [25:35.440 --> 25:41.960] But most advanced chaos methods are basically based off of this protocol of differential chaos shift keying. [25:41.960 --> 25:46.060] Sorry, this is... I just fed more time, but this side is kind of exploding. [25:46.720 --> 25:49.020] So briefly discussing the performance of these things. [25:49.820 --> 25:52.220] This is a horrible diagram called the BER diagram. [25:52.460 --> 25:55.740] And basically what it means is, if you're in the lower left, that's very good. [25:55.820 --> 25:58.620] And this means your thing is very good, and it doesn't have a lot of errors. [25:58.780 --> 26:02.280] And if your line is in the upper right, then it's very bad, and there's a lot of errors. [26:04.440 --> 26:09.480] So here's frequency shift keying, which is a normal one in the far bottom left, because it's very good. [26:09.640 --> 26:11.320] And the chaotic method is depicted here. [26:11.900 --> 26:17.060] So they're not completely horrible in their error performance, but they're not necessarily great. [26:18.340 --> 26:20.240] And this last method... [26:20.240 --> 26:25.360] Like I said, most actual, like, researched chaos communications methods are based off of DCSK. [26:25.580 --> 26:28.740] And it has a lot of variance that you can read about in the literature. [26:29.480 --> 26:37.640] And a lot of them actually do add in the security, basically doing it with the pre-shared key, so that you can completely avoid the synchronization problems. [26:38.300 --> 26:42.040] And some of these are ones that I study as part of my current research. [26:43.540 --> 26:48.880] And variants of these that are really cool include FH OFDM DCSK. [26:48.980 --> 26:50.860] This is one of my favorites to look into researching. [26:50.860 --> 26:53.000] This is a horribly complicated block diagram. [26:53.000 --> 26:59.540] But it combines frequency hopping with the chaotic method in order to create covertness. [26:59.640 --> 27:05.320] And then they also just put OFDM in there, because that helps it with multipath interference and other things. [27:08.080 --> 27:11.740] So, yeah, the receiver for this is also fairly complicated. [27:11.880 --> 27:22.180] But if you're a comms person, you should recognize this is basically OFDM, but just with some extra bits added in the middle for the chaos generator and the frequency hopping. [27:22.420 --> 27:28.600] So these methods, even though they seem like really complicated in advance, they're just like linearly combining protocols and things that we already have. [27:29.440 --> 27:39.280] And another favorite one that is also of very research interest to me is chaotic multi-tone time varying, which is CMT-TV. [27:40.120 --> 27:50.520] So this one is basically randomizing every possible, like as far as I can tell, every possible property of a signal gets chaotically randomized. [27:51.360 --> 27:55.360] So there's just like so little constant parts of this. [27:55.360 --> 28:01.740] But what it's essentially doing is using chaos to generate a random series of tones that pop up in the frequency spectrum. [28:02.040 --> 28:06.900] And then these tones tell you what the data is in a very, very complex way. [28:07.100 --> 28:11.320] But in terms of this, here's what one symbol output looks like for CMT-TV. [28:11.900 --> 28:21.960] And each symbol in between this is just like broadcasting a very large variety of tones across a very large spectrum of frequencies that prevents someone from easily reading it. [28:21.960 --> 28:32.860] So, yeah, essentially what this is is randomizing as much parts of the signal as possible and changing it over and changing all of its properties over time. [28:37.140 --> 28:39.780] So those are some chaos communications methods. [28:39.980 --> 28:45.020] They get really, really advanced, but as you get it reading it, they're not so scary when you have to implement them. [28:45.220 --> 28:53.520] So in conclusion, chaotic system is when you have a small change in the input, results in a large change in the output for a deterministic system. [28:54.860 --> 28:57.660] Chaotic signals are very hard to analyze and detect. [28:58.120 --> 29:01.880] And so this allows chaos to work well for covert communications. [29:03.180 --> 29:12.960] And the only downside is that in order for this to work properly, you either need to have a channel that is synchronizing your chaos generators, or have a pre-shared key in order for it to be covert. [29:12.960 --> 29:16.040] And, yeah, any question? [29:29.090 --> 29:34.210] Pre-shared key between the chaos generator in the emitter and the receiver. [29:34.470 --> 29:37.490] How do they synchronize the timing? [29:38.910 --> 29:41.670] That depends on when they transmit. [29:43.630 --> 29:49.610] Well, how do they know they are in sync in terms of temporary sequence? [29:51.850 --> 29:55.270] That depends on the particular protocol in question. [29:56.090 --> 29:56.830] Oh, yeah. [29:57.890 --> 29:58.350] Hard question. [30:00.670 --> 30:08.850] Because part of the pre-shared key, like part of its info, is it's telling you information both about the frequencies and about the timing of it. [30:08.970 --> 30:14.650] So, like, part of the pre-shared key is actually, like, saying, like, okay, only transmit at this particular time and receive at this particular time. [30:14.830 --> 30:18.750] Because one of the best ways to prevent Willy from receiving the signal is by not transmitting. [30:19.810 --> 30:19.870] Okay. [30:22.350 --> 30:25.010] Question on the synchronization channel. [30:25.350 --> 30:25.950] Yeah. [30:25.950 --> 30:30.690] About how amateurs digital modes use GPS or bi-static passive radar uses broadcast radio. [30:31.490 --> 30:40.880] Can you not achieve synchronization by making use of some other available source of synchronization rather than relying on a channel that's... [30:41.630 --> 30:45.330] The reason the channel is because chaos synchronization is really hard. [30:45.330 --> 30:49.930] It's like, because if the initial conditions are slightly different, it's a completely different thing. [30:50.090 --> 30:58.970] So what you're actually doing is instead of synchronizing one to the other, they're both using the other as an error signal to synchronize and converge on something that's the same. [30:59.950 --> 31:02.010] So it needs to be, like, kind of like two ways. [31:02.170 --> 31:04.470] It's not like one person saying, like, here I am, follow me. [31:04.610 --> 31:06.690] They're both using each other as an error signal to get closer. [31:07.170 --> 31:07.450] Okay. [31:08.190 --> 31:08.590] Interesting. [31:08.770 --> 31:08.910] Thanks. [31:08.910 --> 31:10.550] Thank you for the presentation. [31:10.550 --> 31:11.810] Took me right back to grad school. [31:13.650 --> 31:17.930] So the cross-correlation being low, would that be beneficial? [31:18.190 --> 31:23.150] Like, should we be moving all our CDMA and OFDM stuff to these kinds of chaotic systems instead? [31:26.680 --> 31:28.080] I forget exact... [31:28.080 --> 31:32.860] So a lot of times they are using basically chaotic sequences instead of pseudo-noise ones. [31:34.760 --> 31:36.320] Oh, I forget all my codes. [31:36.620 --> 31:37.840] But there's like... [31:37.840 --> 31:42.640] I think Walsh codes are chaotic, and gold codes aren't, but I forget. [31:44.560 --> 31:46.120] So the answer is yes.