-
Alright, so I'd like to first off thank
you guys for having me here. This is an
-
amazing conference. So far, during lunch,
someone gave me multiple high-fives in a
-
conversation about hypervisors, so I feel
like I'm in a room of kindred spirits.
-
Just to test that out, who wants to hear
about math? (room cheers)
-
That would only work here. I'll tell you a
bit about myself, and then a bit about the
-
talk, and then I'll give you the talk.
I'm a security researcher first, but also
-
I'm a PhD candidate in mathematics at
the University of Waterloo; if you haven't
-
heard of it, it's in Canada. I work on
quantum algorithms for cryptanalysis,
-
so what this means is we look at the
difficulty of computational problems on
-
which cryptography is built, and we find
sometimes that the problems that we thought
-
were very hard on a classical computer are
in fact very easy on our proposed quantum
-
systems. What I'm going to talk to you about
today is a bit related to that, but I'd
-
like to ground it in programming and
thinking about programming languages and
-
systems that we can actually construct.
What I hope you can take away from the talk
-
I'm about to give is an understanding of
what -- It's not quite the network stack,
-
but what the various levels of abstraction
are in quantum computing and how a room
-
full of people inclined toward the use of
classical conventional computing could make
-
use of quantum resources for speedups in
their algorithms.
-
Whenever I'm getting a big head about how
I feel about my research, I have to remind
-
myself that I spend all day thinking about
imaginary computers, and that brings me
-
right back down. Quantum computing, a very
simple definition is using quantum mechanical
-
phenomena like entanglement or superposition
to perform computational tasks. Why do we
-
do this? It wouldn't make a lot of sense if
it were just as good as the computers we
-
have, because quantum computers are very,
very expensive, and so far we have 15 or so
-
qubits, and maybe that's not as useful as
what we're looking for, so why do we have
-
these very expensive computers? Because
we think that we can have some tradeoff and
-
have less computationally expensive algorithms.
This is only true if we can scale it up.
-
To be useful, a quantum computer needs to
scale, but this is very challenging, because
-
the things that make a quantum computer
useful are the exact things that are getting
-
in its way. Quantum computers are very
sensitive to environmental noise. If we
-
have a qubit in a room, and someone walks
down a hall in a non-specialized building
-
many floors away, it will disturb our qubit
and it will collapse, and maybe we're not
-
doing our computation. So we have to have
very specialized buildings. Another thing
-
is we have a challenge with measurement in
quantum systems. When we measure a quantum
-
state, we destroy a superposition, which
is something I'll explain, and it's really
-
hard to create memory. Beyond this, there
are other things, but I don't want to use
-
too much time.
I stole this from Scott Aaronson, who is a
-
phenomenal phsysicist. Quantum mechanics
in one slide:
-
You can think of quantum mechanics as
probability theory, but you're doing it over
-
the complex numbers, and this allows us to
compute things in a really interesting way.
-
The basic unit for a quantum computer is a
qubit. We have regular bits, 1s and 0s, and
-
a quantum bit is a superposition, which is
kind of when we put them all together, of
-
values 0 and 1. We're creating some linear
combination of things, and that's when
-
something is both values at the same time.
With measurement or noise, we can collapse
-
this superposition, and what's interesting
about it is sometimes we'll get a 0 out
-
and sometimes we'll get a 1 out, but we
can set the same superposition up over and
-
over again, and sometimes get a 1 and some
times get a 0 and not really know what's
-
going to happen.