WEBVTT 00:00:19.240 --> 00:00:25.725 Alright, so I'd like to first off thank you guys for having me here. This is an NOTE Paragraph 00:00:25.795 --> 00:00:31.283 amazing conference. So far, during lunch, someone gave me multiple high-fives in a 00:00:31.368 --> 00:00:37.912 conversation about hypervisors, so I feel like I'm in a room of kindred spirits. 00:00:38.606 --> 00:00:42.611 Just to test that out, who wants to hear about math? (room cheers) 00:00:44.369 --> 00:00:52.043 That would only work here. I'll tell you a bit about myself, and then a bit about the 00:00:52.174 --> 00:00:59.988 talk, and then I'll give you the talk. I'm a security researcher first, but also 00:01:00.057 --> 00:01:04.804 I'm a PhD candidate in mathematics at the University of Waterloo; if you haven't 00:01:04.966 --> 00:01:10.469 heard of it, it's in Canada. I work on quantum algorithms for cryptanalysis, 00:01:10.662 --> 00:01:15.509 so what this means is we look at the difficulty of computational problems on 00:01:15.700 --> 00:01:20.417 which cryptography is built, and we find sometimes that the problems that we thought 00:01:20.676 --> 00:01:26.888 were very hard on a classical computer are in fact very easy on our proposed quantum 00:01:27.088 --> 00:01:31.404 systems. What I'm going to talk to you about today is a bit related to that, but I'd 00:01:31.478 --> 00:01:37.135 like to ground it in programming and thinking about programming languages and 00:01:37.179 --> 00:01:42.962 systems that we can actually construct. What I hope you can take away from the talk 00:01:43.172 --> 00:01:47.812 I'm about to give is an understanding of what -- It's not quite the network stack, 00:01:47.852 --> 00:01:53.876 but what the various levels of abstraction are in quantum computing and how a room 00:01:54.022 --> 00:01:58.835 full of people inclined toward the use of classical conventional computing could make 00:01:58.952 --> 00:02:03.383 use of quantum resources for speedups in their algorithms. 00:02:04.204 --> 00:02:09.549 Whenever I'm getting a big head about how I feel about my research, I have to remind 00:02:09.689 --> 00:02:14.556 myself that I spend all day thinking about imaginary computers, and that brings me 00:02:14.607 --> 00:02:20.410 right back down. Quantum computing, a very simple definition is using quantum mechanical 00:02:20.525 --> 00:02:27.280 phenomena like entanglement or superposition to perform computational tasks. Why do we 00:02:27.325 --> 00:02:32.197 do this? It wouldn't make a lot of sense if it were just as good as the computers we 00:02:32.197 --> 00:02:38.737 have, because quantum computers are very, very expensive, and so far we have 15 or so 00:02:38.851 --> 00:02:44.248 qubits, and maybe that's not as useful as what we're looking for, so why do we have 00:02:44.399 --> 00:02:48.826 these very expensive computers? Because we think that we can have some tradeoff and 00:02:48.921 --> 00:02:54.539 have less computationally expensive algorithms. This is only true if we can scale it up. 00:02:55.976 --> 00:03:00.165 To be useful, a quantum computer needs to scale, but this is very challenging, because 00:03:00.187 --> 00:03:05.183 the things that make a quantum computer useful are the exact things that are getting 00:03:05.259 --> 00:03:10.010 in its way. Quantum computers are very sensitive to environmental noise. If we 00:03:10.050 --> 00:03:15.610 have a qubit in a room, and someone walks down a hall in a non-specialized building 00:03:15.736 --> 00:03:20.406 many floors away, it will disturb our qubit and it will collapse, and maybe we're not 00:03:20.446 --> 00:03:24.847 doing our computation. So we have to have very specialized buildings. Another thing 00:03:24.906 --> 00:03:29.871 is we have a challenge with measurement in quantum systems. When we measure a quantum 00:03:29.992 --> 00:03:34.844 state, we destroy a superposition, which is something I'll explain, and it's really 00:03:34.844 --> 00:03:39.966 hard to create memory. Beyond this, there are other things, but I don't want to use 00:03:40.142 --> 00:03:43.322 too much time. I stole this from Scott Aaronson, who is a 00:03:43.370 --> 00:03:46.406 phenomenal phsysicist. Quantum mechanics in one slide: 00:03:46.828 --> 00:03:51.092 You can think of quantum mechanics as probability theory, but you're doing it over 00:03:51.183 --> 00:03:56.247 the complex numbers, and this allows us to compute things in a really interesting way. 00:03:57.054 --> 00:04:05.734 The basic unit for a quantum computer is a qubit. We have regular bits, 1s and 0s, and 00:04:05.852 --> 00:04:11.226 a quantum bit is a superposition, which is kind of when we put them all together, of 00:04:11.271 --> 00:04:16.829 values 0 and 1. We're creating some linear combination of things, and that's when 00:04:16.920 --> 00:04:23.171 something is both values at the same time. With measurement or noise, we can collapse 00:04:23.225 --> 00:04:27.933 this superposition, and what's interesting about it is sometimes we'll get a 0 out 00:04:28.007 --> 00:04:32.736 and sometimes we'll get a 1 out, but we can set the same superposition up over and 00:04:32.886 --> 00:04:36.743 over again, and sometimes get a 1 and some times get a 0 and not really know what's 00:04:36.743 --> 00:04:41.988 going to happen.