I have your speaker was going to talk about building privacy infrastructure and the day
we are living in, especially the year 2021-25, privacy is becoming a big issue, you have
seen it around for them, even Mozilla is handing out cookies here, we're all into privacy
violations, tracking and the political world is not getting much better, so I have
Ava here was going to tell you how to build privacy infrastructure using the amazing language
called Go, applause.
Hello, can you hear me?
It's a good, okay, awesome, I'm ever infilled, I'm a mathematician and I used to be an academic
mathematician, but now I'm building privacy software, which is a lot more fun and important.
So let's talk about it, so this is more or less what I'm going to go over, so for some
motivation, the context of today's surveillance world, which is incredibly pervasive and requires
thinking about a lot of different factors, and then hope, because it is not completely hopeless.
So I'm going to tell you about how we're trying to address it, and then I'm going to tell
you that we need some help and there are some tasks that we could actually compensate
contributors for that are funded, so I'm just going to quickly go over those, and hopefully
you can talk to me about that, and you could also look at this project as a codebase that
has some tools that you could potentially use, these are currently mostly cryptotools and
networking tools, but we're also going to be building some audio signal processing stuff that's
going to be very cool, so we're going to dive into that a little bit too.
The slides I was trying to make comprehensive don't worry about reading everything on them
if they are too dense, it's because we're going to have a video I'm just making the
slides thinking about people who are going to be watching the video and can pause it to
be the slide.
All right, so let's do it.
Okay, so first of all, surveillance.
We live in the world of incredibly powerful surveillance, it's everywhere, the adversaries are
incredibly powerful, and because without privacy, we have a much smaller chance of addressing
the world's problems which are immense and getting worse by the day, so let's talk about
what our adversaries can actually do and what we're going to have to build for, so we have
adversaries that are global, so they see a significant part of the connections on the internet.
This is mostly a concern for statistical analysis, although for statistical analysis, it's
actually enough if your adversary can just see two ends of a connection, it doesn't actually
have to be a global adversary, which means this is a problem for a much wider range of situations.
We are also thinking about people who can take over parts of the network, so if you're
using relays the way torque project does, for example, you want to have a lot of them, in
case the adversary takes some over, we're also thinking about people who can take over your
friends' devices, so we're trying to give you some deniability if someone takes over
your contact.
Also, we're talking about adversaries who have a lot of computational power and can
do frontier cryptanalysis and might at some point soon have quantum computers, so we really
want to have solid top-notch cryptography that can do as best as possible in those situations.
And surveillance actors today have incredible amount of context about all of us, right?
Because there's all kinds of information about every physical person that's out there.
And it's pretty clear what kind of adversaries I'm talking about here, right?
The canonical example is the NSA, but it could be a bunch of other actors, it could be Google,
it could be Apple, it could be some other intelligent service from some other country,
it could be another powerful organization's organization, and the, okay, so we're
so for an adversary that's global active sophisticated and has context, I guess I am still
worth shopping the algorithm, because maybe it shouldn't be gashed, but at least that's memorable.
So, it's, all right, so let's go.
So here's an example, all right, so this is beyond the threat model of leading anonymity systems.
Like this is actually kind of an understatement because there is no system today that can deal
with all of that.
There's, there's always, you know, this is just too powerful.
So here's an example, Tor is awesome, it does a lot of things incredibly well, but it cannot
protect you if someone sees two ends of a connection, right?
So if it sees you and it sees the server you're connecting to inside and outside the network,
it can see the properties of the connection that make it easy to correlate, or it can
see disruptions in the network on one side and the other, it's just not going to protect
you from that, but it does other things very, very well, so, you know, they're awesome.
Obviously VPNs do even less, because you only need to watch the VPN and the incoming
and outgoing connections to see the same kind of properties.
So we need something a lot more powerful than all of these things.
All right, so what do we actually need to do?
We need to show nothing, okay?
We're actually pretty good at protecting content of a connection, because we need to encrypt
the content, the problem is metadata.
The problem with metadata is, you know, stuff like who's talking to whom, when, how big
the packet is.
The problem with that is even the slightest amount of information will eventually become
deadly.
So for, you know, if you, if you have two people talking to each other and say they're
going to be online at the same time with, I don't know, probability 50 percent, if they're
not friends and 51 percent if they are friends, then if you watch them for long enough,
you can always tell the difference between the 50 percent and the 51 percent, right?
So this is, so you have to give up nothing.
And there are some things that just not addressable, because your users are human, and
they will never have a perfect behavior, right?
But there are things what you can do is you can make sure that a user that is aware and
does everything right can protect themselves.
All right.
So here's the, here's the hope, here's how we're trying to do it.
So first of all, your connection.
So the whole system is a mix network.
So if you're, if you're aware of how tour works, it's a little like that, also bouncing
things around and trying to make sure things get mixed with each other.
Except every connection looks the same.
The backups are the same size.
They're being sent and received, no matter if you actually need to send or receive something.
And they're also staying in each relay for a while to make sure that when they,
that you can't correlate the incoming and outgoing times.
And these, there's a probabilistic amount of time that they're staying in the
relay for.
So the way also we're doing this is we're trying to make every interaction with a server,
which is on the other side of the network, the, the node you're connecting to doesn't
know anything about you except that you're connected.
And every interaction is bounce.
So it doesn't, it's impossible to tell if you're sending or receiving.
We're also trying to make sure your contacts don't know anything about you other than
what you tell them that you know that you're telling them.
And also because we don't want the disturbance in the network to be visible on the
other side, we don't want any forced interactivity.
So for example, it will be impossible to do better than tour and have functionality of
browsing the internet comfortably as just impossible.
Not going to happen.
All right.
So you can find out more in a paper that we just released.
There's very cool stuff.
There's new crypto protocols for messaging that we're very proud of.
There's mathematical analysis of everything I just told you.
And also we might be renaming the project to echo mix because we're getting feedback that
cuts and posts us to complicate it and to German.
That might happen in the future.
All right.
So let's, let's go to some more practical stuff.
So we have some funded tasks.
Thanks to director Grants from Anonet and Bohalen Stiftung,
which you could potentially help us with.
This is all in go.
And these are things that we could in the short future compensate you for.
So we are implementing cryptographic protocols of various kinds.
We're trying to take the code base, which at this point is quite robust.
And we're trying to make it more usable for other projects to take other tools.
And plug them into places.
And also we actually have a messenger that works, but it's not very good.
So we're trying to make it good.
We're adding audio functionality.
We're doing a bunch of big behind the scenes, things, adding attachments,
this kind of thing.
And we have that kind of stuff funded.
And in the long term, we would also, we will be seeking funding,
which we have some hope for.
It's probably going to happen.
To first of all, audit the code.
Because, okay, so I work with the kind of hackers that broke
every other system, and they're watching each other very closely.
But we don't formally have external audits yet.
Then we also want to make it even easier to use the software.
We want to be able to make it very easy to set up your own form
of the network for like an organization, if you need to do it.
It's technically already possible.
It's just incredibly complicated.
And there's a lot of work to be done to make it easier.
Then we would like it to make it easier to connect to a mixed network
instance that we're running with your applications, which we're actually,
you know, it's currently in Go, we're also making interfaces for other,
for other languages as well.
We want to make the messenger a lot more usable.
And then we have a pretty dynamic research program that is my part, actually.
That's full of fun stuff.
All right, so let's talk about some of the code.
So if you go to our repository, which is, um,
get help slash cats and posts, there's, um, one of the
repose subrepose there is the HPQC hybrid post quantum cryptography library.
And if we're talking about, you know, if we're thinking about
adversaries that might soon have quantum computers,
the cryptography that's resistant to that
is not the same cryptography that we've been using for decades.
Although the cryptography that we've been using for decades has a lot of advantages,
which is a lot of people try to break it and no one managed to do it.
So what you actually would like ideally is to use hybrid encryption,
so you're doing basically both, right?
So you're encrypting it classically and then you're encrypting it in a way that's,
that we think is resistant to quantum computers.
Um, there are sort of three types of things in this library,
um, which, um, you know, are all, um,
available to use. So there's, there's quantum signatures,
there's, there's both classical and, there's both classical and post quantum
signature primitives. Um, there, um,
non-interactive key exchange primitives is sort of what you usually think of
public key cryptography, um, like sort of, you know, like,
diffi-helmon-style cryptography.
And then key encapsulation mechanisms are a ways to, um,
when, in some sense, you can take those and turn them into
chem algorithms and give them extra properties and make, um,
and make, in some sense, that gives them additional resistance, but also,
it requires more interaction.
So this is a list of primitives that's incomplete, but it's for future
reference and not going to go, uh, go through the whole thing, uh,
but if someone, if someone wants to go through that library and use it,
then these are, are available. Oh, sorry.
Um, and example code, this is just a simple example. It doesn't actually
do anything useful, but, you know, sort of code the library and you generate keys
encrypted. There's, there's schemes for every one of those, uh,
for every one of those primitives and you could, you'd basically just replace the
name, um, X to 5151, 19 as a sort of a very widely used
elliptic curve primitive that, um, there are also other, other ways to
implement it, um, but you can replace it with any other one,
anyone, any other of those, um, primitives, and then very much similar away.
All right, so here's some takeaways. Um,
surveillance is bad, but it's not all hopeless. Um, we are really trying,
it's very hard. We don't want to over promise,
but we're, you know, we can't give up because without privacy,
we really have very little chance of addressing the world's problems.
And I really invite you to look at that paper on the archive that, uh,
has all the details of the design and, um, and I really invite you to talk to me
about contributing to the project because we could really use that.
And check out the code base and all of its tools. And hopefully in the near future,
it will also have sort of a more, like, more tools that are easily usable.
Um,
all right, thank you.
A class.
Thank you, questions.
Any questions I will run with the microphone to you?
No, you cannot yell. It's online.
All right, sorry.
Uh, how does it compare to signal? Sorry?
How does it compare to signal?
Okay, um, well, signal is very good at interpreting the content of its communications,
but it doesn't do much when it comes to metadata role. In fact, it's also centralized,
and it's hosted on, I think, Amazon. Um, so it doesn't really try to,
do anything with your metadata.
But it is very good for interpreting the content of your messages.
Uh, one question over there.
One second, this is my fitness for today.
Keep your hand up, please, then I can find you. Thank you.
So, uh, does it use the tool network or is it its own mix network?
It's, it's own network. Um, it does use some things that are inspired by tour solutions.
Um, there's, in fact, I mean, those are kind of like a very detailed
things. There's, there's ways that in the messaging, we sort of generate, uh, addresses for each
message and like a suitor on them way, which is kind of inspired by something toyed for its hidden
services. Uh, but it's not, it's, it's trying to do something different than tour is doing.
Um, we, we are not trying to do what tour does, which is let you browse the internet in a way that's
basically indistinguishable from not doing it through tour at this point, which is great.
But we are also like this, this, this, this protects from things that tour doesn't protect you from.
All right. Yeah, one question over there. Can you quickly pause on the microphone, please?
As well as to ask how, um, a hybrid, how does a hybrid quantum, um, hybrid post quantum and
classical cryptography, um, system work? Is it all those quantum resistance? I was like,
some of the useful places. Okay. So there are some ways to encrypt a thing, um, that have not yet been
broken by any quantum algorithm that we know of, right? That's what we refer to as quantum
resistance. We don't, we never, with no cryptography, we, um, we don't, we don't have like a full
certainty that it will never be broken, right? So basically, you take, you take a message and you
encrypt it with something that's not been broken by a quantum algorithm and then you encrypted
by something that we've been using for decades that's not been broken by a non quantum algorithm,
and you have sort of two layers of encryption around it. That's how we can give you the most
possible security that we know how to do. Any more questions? Here in the front?
One second.
Thank you. Yeah, thanks for your talk. Um, do you have, like, have we any, um,
any insights on, on scaleability of this? Because like, uh, we went to, uh, yeah, uh,
send and receive messages, uh, and, and, uh, yeah, the distinguished rule from, from not sending.
Do you have, uh, so have we any hopes that this scales on her, like, signal level?
Uh, yes. Yes. So, um, there's, it, basically, as long as you don't, um, okay, look, I don't want to
extend here and compare things, compare, compare things with other projects and be like, well,
we don't have that problem. But for example, as simplex, when it has a grip chat, it kind of creates
a connection between each two people. So that is a problem for scalability because you have
sort of end-squared connections, right? Um, our messaging design doesn't do that. You're kind of,
like, everyone has, like, a one-to-many broadcast in the group setting. Uh, so that should scale.
A for connection. Yeah, you have a steady connection to the network. Um, so obviously,
you're not going to have a ton of bandwidth, right? Because that would add up super quick,
because you're going to have to keep up this bandwidth around the clock if you really want to be
super secure. Um, so that's a limitation for sure. But for having lots of users, that shouldn't
be a problem as long as you have enough nodes to, you know, sort of scale with that, I guess. But
it also, um, you know, we have the capacity for lots and lots of users already with just not that
much infrastructure, right? So basically, um, there's like layers of relays, and you just add more
relays to a layer, this becomes a problem. Any last question? Um, I don't see any resistance.
In that case, run of applause. Thank you.