: All right

advertisement
>>: All right. This is the afternoon session. So our first talk is virtual machine
reset vulnerabilities and hedge cryptography. Our speaker is Tom Ristenpart
from UC San Diego.
>> Tom Ristenpart: Thank you. Can you guys hear me? Okay. So let me just
start off by summarizing what I'm going to be talking about today. So the first
thing is something that's kind of bad. And these are what we're calling virtual
machine reset vulnerabilities. And so the basic problem is that say, yeah, virtual
machine you take a snapshot and now you resume that snapshot on two different
occasions.
Is problem is that as we'll see, software ends up reusing some cryptographic
randomness that's gone captured in this snapshot and this can lead to
catastrophic failures of cryptographic protocols that rely on the randomness.
So this is pretty bad. And then in the second part I'm going to talk about
something that is better, is good, which is what we're calling hedge cryptography.
So we're going to particularly try to address this fragility of the cryptographic
protocols to the reset randomness or to other types of randomness failures. And
so the idea is to provide frameworks and -- for showing that you can take
cryptographic operations like routine operations like encryption and signing and
make them more secure in the face of increasingly worse randomness. And so
we'll get into that kind of in the second half of the talk.
So this is joint work with a bunch of different people. The first part is joint with
Scott Yilek from UCSD. The hedging cryptography is lots of different people,
Mihir Bellare, Zvika Brakerski, Moni Naor, Gil Segev, Hovav Shacham and also
Scott.
So let me start off by recalling a bit about random number generator and what's
going on with it because this is kind of at the core of everything in the talk.
So we all know cryptographic random number generators very important.
Random number generators are very important. And in general in practice they
are kind of implemented in -- loosely in the following way. You have in random
number generation process that is going to measure some hopefully
unpredictable events such as you know, keyboard presses buy user or mouse
movements, maybe network for operating systems interrupts this type of thing.
And then extract from these measurements some hopefully uniform bits that can
then be handed up to some type of application that needs the randomness.
So unfortunately there has been a long academic literature showcasing various
ways in which this type of process has failed us. And so I won't talk about all of
them, I can just remind for example of a particular example that's well known,
Debian OpenSSL problem that occurred relatively recently in 2008, I guess, the
middle of 2008, where some developer commits out couple lines of code in the
source for Debian OpenSSL, and these two lines of code are actually what were
responsible for adding entropy from the measurements to the entropy pool.
So the effect was that the random number generator was just spitting out one or
a very limited set of possible outputs, and so these were predictable to
adversaries.
And so in general, there's been -- we're showing that failures can really occur at
many different levels of this process and perhaps this explains in part why there's
been so many failures and leading to things like predictable randomness or
exposed randomness and, as we'll see in the next bunch of slides, repeated
randomness as well.
So to set a context for this virtual machine reset vulnerability, we're going to think
of the follow type of usage scenario. So, you have a home user who has -wants to do more secure browsing and so they turn to [inaudible] like VMWare
who are advertising if you use virtual machines you can have more secure
browsing sessions. Basically the idea is the isolation guarantees that the virtual
machine manager are going the ensure that say if you get infected with a virus or
something, the -- this won't get -- escape out from the virtual machine and infect
the whole system.
And so snapshots can actually help facility this because of the following thing,
which I'll just show now. So the video is you have a home user and he has his
virtual machine that he can set up. Say he's running Windows or something
inside of it. Say he loads up his Internet browser because this is what he's going
to use this virtual machine for. And so at this point he takes a snapshot. So the
snapshot basically is a copy of the entire state of the virtual machine, including all
of the act, memory, storage, everything. Okay. And so now when he wants to
do browsing sessions he can resume from the snapshot, go surf to one of his
favorite sites for getting some free software.
And in case he made a poor choice of where to visit he gets, you know, exploited
by some type of malicious, you know, code, the virtual machine, you know, ends
up getting compromised, but the nice thing is he can reset to the prior clean state
of the snapshot to remove all this malware and infection.
So this is pretty nice. It does actually provide some really improved security in
the face of these type of you know malware attacks. But there's been a lot of
folklore regarding the fact that these type of resets might cause security issues.
And particular for example Garfinkel and Rosenblum pointed out that
hypothetically of course you could be replaying some type of security critical
state that was saved in the snapshot. If you use it multiple times, this could
cause problems.
And so I'm just going to refer to this as a reset vulnerability. So this exists when
multiple uses of the same VM snapshot leads to some type of security violation.
So even though this has been a folklore problem no one had really knew or
pointed out whether these actually exist in practice. And so that was the first
contribution in this work that we showed that these types of resets could lead to
random number generator failures.
So now consideration a situation where do you your first browsing session, okay,
and you actually want to go to a secure website like your bank. So what's going
to happen is you're going to use a TLS, key transport protocol and, excuse me,
and kind of at a high level what happens is the client here picks a key using its
random number generator and sends this key over to the server. And that's used
to bootstrap the secure session.
Okay. But the problem is that the next time you resume from the snapshot and
go to use TLS to browse some other website, the problem is that the same
session, the same key gets chosen in this as well and sent over to the next site.
And so this of course can be a problem because this is actually all the secret
material that's needed to decrypt a transcript of the prior banking session.
So if -- you know, if this other side was malicious, this is a big problem.
So this wasn't just an abstract problem, but we showed that by checking out
experimentally with Firefox and chrome, they actually allow this type of problem
in current versions, you know, under a couple different virtual machine
managers, VM or server and VirtualBox. And so underneath the hood what's
happening here is that the browser generates some randomness that got
captured in the snapshot and used multiple times to generate these session
keys.
So we went on to look at another settings where this might be a problem, so we
wanted to look at the other side of TLS sessions and look at servers. And so we
used at Apache mod SSL when is the most popular server software for TLS.
And here wee looked at it in a particular mode where you're using the DSA
signing algorithm for authentication of the server. And the -- we're able to show
that what happens is if you resume the server twice from the same snapshot,
with the daemon running and an [inaudible] is able to get the first few
connections to the server after this resumption then you can actually extract the
DSA server key. And so of course this is bad because this, you know, allows
impersonating the server and all sorts of problems. So this might -- yeah. Sorry,
go ahead?
>>: So I'm just writing to make sure I understand your model. So in your model
when you -- when you said you assume that random number generator is a
generalistic from now on or ->> Tom Ristenpart: We're not assuming anything. This is Apache software
that's been downloaded from the Internet. So I'm going to -- sorry. Go ahead.
>>: Well [inaudible] I guess I'm trying to see, are you -- because you're saying
there is this randomness and so here you're not assuming randomness. There's
a problem with DSA or a problem about randomness?
>> Tom Ristenpart: In this case, this problem is randomness being repeated with
DSA. And I'll go into some more details.
The problem with the signing algorithm itself is that if you -- and this is well
known, you can -- I kind of worked out pen and paper, then realized you can just
check Wikipedia for this. But with DSA, if you sign two different messages with
the same randomness and you give some adversary the public key, the two
mens and the signatures, they can just extract the secret key. And that's just the
properties of DSA. It's very fragile to randomness abuse.
Okay. So how is this actually coming up inside of Apache? Well, easiest way to
explain maybe is kind of a logical timeline of events. So first the administrator
launches this Apache daemon inside of the virtual machine. At this point,
Apache software actually forks off a bunch of child processes that are going to be
used to handle individual connections.
At this point, the children processes have their random number generators
initialized, so they take some initial randomness from dev random or some other
source.
Okay. So now daemon is running and we can take a snapshot and resume later
from it. Next thing is that you get an HTTPS request handled. So say the first
request that comes in. And this gets assigned to one of the children processes.
And so actually at this point the Apache does something smart or seems smart,
which is to update now the sources for the random number generator with the
current time, the child process ID which is unique to the child process. And
actually a portion of the runtime stack of the processor. Grabbing a bunch of
stuff out of memory and sticking it in source.
And then at this point the randomness is taken from the random number
generator and used with the DSA signing algorithm.
So this actually seemed problematic from the point of view of actually getting an
attack to work. In particular, the VM image we looked at synchronized their
guess time with the Internet so, you know, if you're running from two different VM
snapshots but they're not at the same time, obviously one's after the other, then
this would give you different randomness from the RNG process.
So but when we took a closer look and then played around with these
experiments we actually realized that what happened is, at least with the virtual
machine managers that we looked at, was that the guest networking would go up
before synchronization would occur. And so this actually left a window of
opportunity to sneak in connection requests by an attacker to try to get two
connections that used the same randomness to do the signing.
So we did some experiments. And this is basically reporting on kind of the very
simple setup where we had a snapshot running on a server and then we would
start resuming this snapshot. And then on another computer we would have a
TLS client just try and rush connections -- or not even rush, just connect serially
to the -- to the Apache server. And at some point the guest -- the Apache
networking would go up and a connection request would go through, and so we
were basically trying to get the first one.
And then we would do this many times, so we would repeat five different times I
guess doing this, resuming from the snapshot and running connections. Then
we would look for repeat randomness across pairs of these trials. And so the -yeah. Sorry. Go ahead.
>>: I can't remember. For DSA can you actually take this by casually inspecting
the signature that randomness ->> Tom Ristenpart: Yes. That's exactly what we're doing, yes. So the
randomness is like the first component of the signature, so you can just look to
see if you were successful. Yeah.
And so, yeah, the right column is the most relevant thing. And, you know, so
VirtualBox, which had very consistent timing, so basically the amount of time
from when snapshot would go up to when networking would go up is always the
same in each of these, and then you would get the same randomness out. And
VMWare was a little bit less so. But still had problems.
So this kind of brings up some questions about well what do we do, you know,
about random number generators in virtualized world? What type of problems
were going on here? So we had this initial issue with the browsers. This is a
problem that, you know, kind of slowly was happening in application space that
Firefox or Chrome was caching randomness that it was getting and this was
getting captured in a snapshot. This issue with Apache which is some type of
combination of problems, right, it was -- you know, it was trying to reset its
random number generator with new sources but those sources, at least the ones
that were taken after the snapshot, when a child -- when a request came into a
child weren't sufficiently different between runs. So you didn't have enough
differentiation. You still had a high probability of getting the same randomness
out.
And then, you know, there's actually further problems that we didn't actually
completely explore yet.
>>: So in cases you looked at, there's an RNG that's in [inaudible] that's its
[inaudible] binary [inaudible] not calling the system call? I mean, you said that in
both Apache's case and [inaudible] dev random or dev D random or whatever.
>> Tom Ristenpart: Right.
>>: But there's an entropy pool in the application itself?
>> Tom Ristenpart: Sure. So this is -- this is a -- you know, maybe a bit
misleading. I'm not trying to say the RNG process here. What I'm showing is
necessarily the operating systems random number generator. Now, if Apache
had actually gone to dev random afterwards, then the -- it's not clear whether
they would have gotten good randomness or not. And this is actually what my
next point was going to be.
But you're right, the fact is a lot of applications kind of have their own random
number generators internally and they're in process and they're kind of doing
their own thing, which is much more the situation I guess with Firefox is very
clear they're kind of, you know, maybe they had initially gotten a good thing put
then after good randomness from dev random but after that they're just doing
their own thing in process space for a variety of reasons.
But the fact is even if they were always going to the operating system random
number generator like dev random, dev random gets rolled back during these
resets as well. And so while we didn't -- we haven't explored it fully, it's
hypothetically the case that you might have not enough difference in the sources
going into deaf random in between a snapshot resumption and when you need
randomness from dev random to cause differentiation.
>>: [inaudible] snapshot basically of all the [inaudible].
>> Tom Ristenpart: I'm sorry. Say that again.
>>: Unless you take steps when you make the snapshot ->> Tom Ristenpart: Right. So if you modify how the operating system deals with
snapshots, that would be good, but right now currently, at least in some virtual
machine manager situations they don't actually know that there's a snapshot
being taken at all so. The operating system is ignorant of when snapshots occur.
And of course there's this other concern with random number generators in
virtualized settings that, you know, maybe the source events aren't even as good
for software based random number generators as you would hope for. And
again, this is kind of a lurking issue that we didn't really explore fully either.
So I get asked if -- you know, aren't there easy fixes to this, right, can't we just
build a good virtual machine managing -- a good hypervisor based RNG, so
backup dev random with something the hypervisor knows about. Maybe we
could use something like the next generation Intel chips that have random
number generation instruction built in, so you can just call one instruction, get
randomness from the chip.
So this would be, you know, helpful to have such a solid design, but unfortunately
it's not going to fix some of these problems. Right? First, it's not going to fix
problems that occur in the -- in the application layer. Because even if you have a
good operating system/hypervisor based RNG, if the operation is caching things,
you're still toasted.
Now, it should help potentially fix these other times of problems like with dev
random being bad or if Apache had been configured to go to the operating
system on every connection request. And it -- you know, it should fix this.
But it's unclear how to exactly design this. It's a nice interesting question. And
furthermore, it's not going to fix all the problems, unfortunately. Yeah?
>>: [inaudible] here between the time [inaudible] and even if you use an RNG
instruction [inaudible] and then get snapshot ->> Tom Ristenpart: Right. So, yeah. I've kind of glossed over that. So there is
this kind of race condition like element to this. You know, actually initial versions
of this paper we talked about like time of sampling to time of use problems, right?
Because you can never really achieve atomicity, at least in theory, with
snapshots. They can happen in arbitrary instruction sets, then, yeah, you're
absolutely right.
So hypothetically, yeah, you're never going to be able to solve this problem. But
I think from a practical point of view, it's less likely. So it's not a sure solution, but
we should -- because like so, for example, if you think about when TLS
connection requests come in, and if you do the sampling then, it's much less -it's not the fact that you're going to have a TLS connection that the -- was
initialized before a snapshot was taken and continued afterwards in the type of
application scenarios I'm envisioning right now.
Now, in the future that may not be true. You could keep a TLS connection going,
you know, through some type of not or replication of a VM. But, yeah, it's -- I
mean, basically this slide is not pointing out solutions, this is pointing out this is a
can of worms that needs to be investigated much further, I think, for a variety of
reasons.
So if there aren't any more questions, I'm going to kind of now take a sharp right
turn maybe in some sense and try and treat this -- another question that this
previous work kind of races which is why is our cryptographic primitive -- why are
characteristic primitives so ridiculously fragile to this repeated randomness use?
Yeah?
>>: I'm just curious ->> Tom Ristenpart: Yes, absolutely.
>>: I guess a [inaudible] solution would be essentially, you know, again as would
be more or less [inaudible] random function or something like that and whenever,
you know, you need fresh randomness you just take the current state of your
applications, like [inaudible] and essentially, I mean more efficiently but there are
[inaudible] so essentially -- so even there is a set attack, there is a set attack,
now you do something different.
>> Tom Ristenpart: Yeah, yeah, so.
>>: [inaudible].
>> Tom Ristenpart: You're right.
>>: [inaudible].
>>: [inaudible].
>>: [inaudible] everything is the same but then resume if you do something else
->> Tom Ristenpart: Yeah, yeah. So you're foreshadowing some of the rest of
this talk, right. At the end of the day what we're going to say is look, we should
be changing the cryptographic primitives so that they handle this failure case for
the randomness. And so we'll build into the crypto primitives what's going on.
Yeah. But the folklore solution is very close to what we were suggesting for
practical solutions, yes.
>>: Just the [inaudible] and also [inaudible].
>> Tom Ristenpart: Right.
>>: [inaudible].
>> Tom Ristenpart: Right.
>>: Because sometimes you wouldn't want to have randomness that you
wouldn't want to repeat, you wouldn't want to force randomness on the
application.
>> Tom Ristenpart: Right.
>>: Because for debugging, all sorts of reasons you know [inaudible] you
wouldn't want to be able to redo the original randomness.
>> Tom Ristenpart: Yeah. I think in general we're trying to stress this idea that if
you make algorithmic changes to the crypto operators we can reason about them
or we can clarify what you're getting out of the changes in terms of the varies
randomness failure models. And so that's what the rest of this talk is going to be
about.
I just want to stress, in case it wasn't apparent that the type of attacks we're
talking about on some of the other attacks on random number generation failures
aren't abusing bad randomness during like long-lived key generation, right? So
the DSA key was generated with good randomness and it was fine.
And really these -- this is just a problem with the routine operations and the
randomness needed for things like signing or key exchange or public key
encryption. Okay?
So, you know, this is not just a problem with DSA or the key exchange, key
transport mechanism. But, you know, lots of cryptographic algorithms have
problems, right, as soon as you take away the good randomness.
And that's, you know, in part because we've been building cryptographic
primitives under the assumption that we have good randomness around and it's
plentiful.
And maybe kind of more philosophical even that, you know, for many of our
standard security goals, you know, you need good randomness to achieve them,
and provably so. And we'll see an example of this in a minute.
So, anyway, the idea is right now we want to, you know, fix this. Right now we
have problems when randomness gets bad. So it's like repetition randomness.
You have VM resets, you have even situation where you have predictable
randomness like the Debian situation. And so we're saying, okay, let's try and fix
this. And at least try and make our routine cryptographic operations, the ones
that use randomness to do things like signing, key exchange, to be as secure as
possible in the face of bad randomness.
And unfortunately we're -- yeah?
>>: [inaudible] randomness is different than repeated randomness.
>> Tom Ristenpart: Yeah. I'm being rather loose with terminology here. But
when I say bad, I really mean any lower quality than perfectly uniform. And then
repeat and predictable trying to clarify for particular things. I'm not going to go
into too much detail in the models and stuff anyway.
But, yeah, bad really means anything except good, and good is defined as
something that's fresh and uniform and private and never exposed.
And so the idea is that, okay, we may not actually be able to achieve our
strongest notions of security without good randomness, but that's okay, we won't
just give up, and we'll try to define notions and meet them that still provide some
meaningful level of security, should the randomness be not as good as we were
hoping for.
Okay. So I'll go through an example of this with public key encryption which is
kind of something easy to deal with and has very interesting definitional issues
actually when it comes to looking at models with degraded randomness. So just
to drive the point home, we have a very simple public encryption scheme right
like using hybrid encryption with in this case counter-mode encryption. And of
course this is well known to be secure under semantic securities, IDCPA, but
when the randomness is bad for repeat randomness in this case, you can learn
quite a bit about messages just from two ciphertexts, right?
So if you use the same randomness twice, you end up using the same AS
application and you get the same pad, and you can learn the XOR of two
messages, for example.
If the randomness is totally predictable, of course you can just recover the
message immediately, right, where here, yeah, R is the set of potential
randomness values. Okay. So this is no good. So what's going on, okay, of
course, you know, this is probably clear to everybody but to most people but to
go through quickly anyway. So we have our traditional public key encryption
notion which is semantic security. And so what happens here is you have a
challenging environment and an adversary which is some arbitrary program. So
the challenging environment picks the random bit B, and the adversary gets to
challenge two different messages. And what happens now is that the
environment is going to sample R uniformly at random and encrypt one of the
two messages based on this challenge bit under the public key and give back the
ciphertext. Now, the adversary tries to guess the bit and wins.
So this -- so as I said this previous scheme of course is secure under the notion.
So what's the catch? Of course the catch is that the -- in the model we've built in
the assumption that the randomness is always good, okay? And so we'd like to
remove this assumption or we're going to have to remove this assumption any
model that's going to provide something for us to analyze public key encryption
when the randomness is no good.
So we in this paper at Asiacrypt last year the variety of great coauthors, we send
this idea of chosen-distrubution attacks. And so it actually extends on quite a bit
of previous work in the context of deterministic public key encryptions and natural
parallels which are in turn based on some previous work on entropic. And let me
just give you a sense of what the definition is.
So again we have a challenging environment and an adversary. And again we're
going to choose a random bit B. And now at this point, rather than querying two
different messages, the adversary is going to query an algorithm basically or
what we call a source. And from this, we run it with some fresh private coins.
And it outputs some randomness R and then two messages M0 and M1. Okay?
So now the coins that are used to run this algorithm are hidden from the
adversary, but the adversary gets to pick how the distribution of R, M, M1 is
defined.
And so at this point we encrypt one of the two messages under the randomness
that was output by this algorithm and return the ciphertext and the public key to
the adversary. And he gets to again try and guess the bit.
Okay. So we're not done yet. There's a lot of other stuff. One very important
issue is that this -- we can't provide security for arbitrary -- arbitrary M. So in
particular, we need some type of unpredictability of the messages of
randomness, otherwise it's trivial for the adversary to win. So we require that this
M must of high min-entropy so that the outputs for any -- so each pair of outputs,
RM0 and RM1, are unpredictable from the adversary's viewpoint.
>>: [inaudible].
>> Tom Ristenpart: Big M -- so big M is an algorithm, and it gets provided fresh
coins. And the output is this triple R, M0 and M1. So you think of M as a
distribution on messages and [inaudible] is that the adversary gets to pick, okay?
And it's going to get fed some private coins, and it outputs what ends up
becoming the message in randomness that we used with the public key for the
challenge.
>>: And PK is the [inaudible].
>> Tom Ristenpart: I'm sorry. I didn't show. PK is chosen correctly by the
environment. So it runs the key generation algorithm of the encryption scheme
and outputs the public key to your key pair. It doesn't output it, it generates them
and uses the public key and then provides the public key to the adversary after
the challenge.
>>: [inaudible].
>> Tom Ristenpart: Does -- yes. Does not. Does not see R, yes. I mean,
unless he leaks it, in which case you have problems, yes.
>>: So one of the [inaudible] PK ->> Tom Ristenpart: He doesn't see PK, yeah. There's a lot of subtleties to this
definition. And, in fact, I only showed you a very rudimentary kind of
simplification of it. So one thing is that actually we have define an M that doesn't
output just three values but actually outputs three vectors of values. And the
reason we have to do that is because in this setting for the most liberal notion of
min-entropy, single -- message security doesn't imply multi-message security as
it does not randomized encryption case. So it's a bit technical but the idea is,
yeah, you need to output vectors as well, so you get backup vector of ciphertext.
This then gives rise to another problem which is that the -- which is what we
called equality pattern restrictions. So the fact is if you're outputting a vector, just
the equality of message randomness pairs is going to be represented in the
ciphertext that get output because the ciphertext will be equal. So the pattern of
equalities inside the ciphertext could leak information trivially, and this doesn't
really say much in terms of security, so we basically have to have some
restrictions saying that the adversary picks an M that doesn't take advantage of
this fact.
So for example, we could assume that -- or we could rule -- require that M
outputs just unique pairs of R and M values in the vector. So all the ciphertext
end up being unique.
We actually also defined and adaptive variant so that you can actually query
multiple times these messages that output vectors. And this actually has some
very interesting ramifications because of what I'll talk about in a sec, which is a
public key issue, that if you can query multiple times, this is not equivalent to just
querying once with a vector because the encryption scheme could leak some
information about the public key, which is problematic in this case if you can
define message distributions as a function of the public key.
And so as Yevgeniy kind of pointed out, if the adversary gets to define message
-- these M samplers as a function of the public key, then you can trivially win.
And I won't go into the details but it's kind of a simple thing to -- a simple exercise
and so for that reason at least, this definition does not imply IND-CPA, our
traditional notion, which is unfortunate, but seems inherent.
Okay. So particularly in light of that last fact, that this new definition is not
stronger than IND-CPA when we target building what we're calling hedged
public-key encryption schemes, we're going to target both goals in the same
time. So we want to have something that is IND-CPA secure when randomness
is good in the traditional sense and now additionally is CDA secure. And this
provides security for a variety of randomness failure models.
Now, I have a little parenthetical comment here that there is some work by one of
our co-authors, Scott, but in a separate paper showing an enhancement to
IND-CPA that can -- the very particular typical of randomness failure, which is
resets, and there you can do a little bit better than with CDA definition. But I don't
want to go into the details of it. You can ask me about it later.
So in this paper we explored a bunch of different constructions. There's kind of
some straightforward ways to go from -- there's some straightforward approaches
to go from deterministic encryption to hedged encryption. So for example ->>: [Inaudible]
>> Tom Ristenpart: Yeah, yeah, please.
>>: What is CDA?
>> Tom Ristenpart: Oh, I'm sorry, CDA is this chosen distribution attack security.
>>: Oh.
>> Tom Ristenpart: Yeah. Sorry. I shouldn't throw around acronyms I'm familiar
with but no one else is. Yeah. So this is the new definition that we want to
achieve.
Okay. So we can -- there's like two natural approaches. If you have a
deterministic encryption scheme, which is one that doesn't use randomness, to
provide a public key encryption scheme and you have randomized encryption
scheme, there's a -- you know, two natural approaches based on the
composition. And only one of these is secure as it turns out under our definition.
And so don't do this one, I guess.
There's another natural approach just using a deterministic encryption scheme of
a specially type of one, one that ends up being Universal Lossy Trapdoor
Function. You can kind of do an even simpler thing, which is just padding out the
message with sufficient randomness, and then you can show this actually gives
you a hedge secure scheme.
Moving on to look at just doing a now a general framework. So talking about
public-key encryption. We treated that case. And then this NDSS paper we
wanted to say okay, well -- yeah, please, go ahead.
>>: So [inaudible] also this repeated randomness?
>> Tom Ristenpart: So not entirely. So the problem is the public-key
independence issue again. So you can -- you can model some forms of repeat
randomness, like your message execution vector could output to -- you could
output vectors that have the same randomness in each one. But uniform. And
so it captures that. But that's only for public key independent distributions.
The definition of Yilek actually just takes IND-CPA, enhances it and shows that
you can -- you can give the adversary additional power to reset -- to get
encryptions under the same randomness multiple times and you can actually
achieve something that does not have just public key independent distributions.
So it is also orthogonal to the CDA definition but is stronger than IND-CPA.
Yeah.
So, okay, so we had this -- so we could just define kind of a general framework
for hedging, you know arbitrary routine cryptographic operation. This really goes
back to the kind of folklore idea that Yevgeniy alluded to earlier. We have some
operation that has some inputs, in keys, some randomness. What we're going to
do is just run this all through a hedging function to derive new effective
randomness for use with the underlying routine operation.
And this has a number of nice properties for practical crypto. One, it doesn't
impact functionality, so you can immediately deploy it. So for example, on TLS
you can, you know, hedge one side of a connection, the other side double even
know, and -- or vice versa or both, which should be even better.
So for -- and, you know, in the paper we suggested that you -- there's a variety of
ways you could implement the hedging funding, you have to be a little bit careful.
We suggested using HMAC, a sufficiently strong hash function. And the reason
is that has two, at least two nice properties. One is that when the key is good,
when this randomness is good, you get a pseudorandom function.
And even if the key is bad, then at least you get the idea of this HMAC behaves
like an ideal hash function and gives you something that is, you know, good
enough to be models of random oracle in our proofs.
So with public-key encryption we can do this. And then we get this kind of ladder
of security that we get. So under good randomness, you know, if we have our
traditional IND-CPA notion well this meets it and we can get by with a relatively
mild assumption on the hedge function.
And then when the randomness is repeated we have to strengthen our function a
little bit, but then we meet this repeated goal. And then for entirely -- like for
example for the case repeated randomness we get -- we can still meet this, but
now we have to make the random oracle assumption on the hedging function.
So but the point we want to emphasize is that you know by doing this you're not
degrading really the security guarantee you got in the original case. We're not
doing any worse than we did before, at the very least.
Okay. So you can do this with other primitives, so for example, signing, the
problem with the DSA attacks we had before, you can do the same type of thing.
And here you even -- you get, yeah, similar type of situation.
So just to drive it home, of course, if hedging had already been implemented,
these attacks, you know, wouldn't have worked because there would have been
no catastrophic failure of these protocols. And so, you know, the take-away is
that really hedging of course is not going to replaces our need for good random
number generators. But it's going to give us some nice defense and depth
properties built into our cryptographic primitives that we can reason about, should
we have failures which seem to unfortunately happen all too often.
We went ahead and implemented hedging in OpenSSL and, you know, ran some
numbers and stuff. It doesn't cost much, I guess the take-away, no one's going
to notice if you have hedging running or numbers and stuff. Okay.
So anyway, just to wrap up. Okay. So we saw two things, right? VM reset
vulnerabilities and hedge cryptography. VM reset vulnerabilities, right, we're
going to have lots of software -- we have lots of software out there already that
was designed for a world in which, you know, virtual machines didn't really exist
or at least I should say weren't being used. And this legacy software isn't
designed with things like resets in mind. And so when you have this new kind of
almost competition model going on in the background that, you know, things are
getting reset, applications are going to break. And I think that at least people
have been thinking very carefully about how it made functionality preserved in
this type of new world for virtual -- virtualization but when it comes to security,
people of course aren't thinking about this as much and the concern is that we
have these type of vulnerabilities, these random number generators, there might
be a lot of other problems lurking out there. And so my sense this is a big can of
worms that we're going to have to deal with.
On the other side of the fence we have the hedge crypto. Okay. Let's try to
make our cryptography behave less embarrassingly in the face of bad
randomness. For practical crypto, it can be very fast and simple, you know, of
course the catch is that you end up with concave looking definitions sometimes
and maybe relatively complex analyses. But that's okay. Give cryptographers
something to do.
And, yeah, so the idea is to provide good defense and depth or graceful
degredation of security in the face of bad randomness failures. And of course
there's this one kind of open thing to do is to set back, at least for the case of
random number generators and look back at how we should be designing these
in light of resets.
So I'll leave it there and take any questions. More questions I should say.
>>: So this notion of hedging can be done [inaudible] right? [inaudible].
>> Tom Ristenpart: That's right. Yeah.
>>: [inaudible].
>> Tom Ristenpart: See, I mean you can do it to anyone, but you should -- you
should check what you're doing. And so it -- there seems like -- in general it
seems like it should be totally fine. But we didn't do -- we don't have some type
of argument saying that no matter what security property you were trying to
achieve hedging will, you know, not sacrifice it. And so my sense is actually you
could find counterexamples that for some cryptographic primitives if you do
hedging maybe you've done things that you don't like, you can think about things
like non-committing encryption or something or -- sorry, non-committing
encryption? Committing. Yeah, non-committing encryption would be potentially
compromised because you're running the randomness through this thing.
So you can apply it anywhere, but probably should have people look at each
example, yeah. Go ahead.
>>: In the '60s, '70s, '80s, and the '90s, there were a fair amount of paper on
how to take IBM's horrible random number generator and make it do something
decent. Have you checked with [inaudible].
>> Tom Ristenpart: I have not. So what was bad with the IBM one?
>>: I can explain to you.
>> Tom Ristenpart: Okay. Yeah. I mean -- random number generators seem to
be something that we haven't gotten right by any stretch of the imagination over
the years. So yeah.
>>: Okay. I'm just curious how far it goes because.
>> Tom Ristenpart: Huh?
>>: I'm curious how far this, you know, hedging goes because presumably I
guess, I don't know how slow it would be, but you can always do stuff like if you
have some [inaudible] and whenever some new data comes in, you just apply,
keep applying that [inaudible] and when you reset and the new data comes in,
you [inaudible] in a different direction. So essentially it's like I'm suggesting you
[inaudible] some kind of iterative [inaudible].
>> Tom Ristenpart: So are you basically saying you maintain substate ->>: [inaudible] where, you know, every nice -- and that was the reason data
which is, you know, particularly the application develop data state.
>> Tom Ristenpart: So I think you're right as long as you're careful to stake all
the same type of inputs that we're sticking and hedging here into this stateful
thing you're good. But I feel like stateful is just going to make things more
complicated to deal with.
>>: But this way I'm saying.
>> Tom Ristenpart: It's not clear you're gaining any efficiency speedup there
either. What's the ->>: I'm just saying it's -- it's not efficiency it's essentially -- it seems like if you
want to get as bulletproof thing in the presence of reset attacks that way to go.
When you say [inaudible] specific randomness presume there is a problem
[inaudible] you use the same randomness [inaudible] the moment you change
the message the randomness will also, you know, [inaudible] you say you can't
[inaudible] whenever new stuff comes in a new message comes in, you will use
the randomness for the signing. So essentially kind of maybe with -- maybe build
it almost the system level kind of thing [inaudible] there is some [inaudible].
>> Tom Ristenpart: So yes, you could rebuild random number generation inside
applications, just have a PRF key lying there and then they run it over things.
The question is you have to be careful about what things you stick into it, right?
Because there could be corner cases, I don't have great examples, I have some
of my anecdotes that you know if you put too much stuff into it, adversarially
controlled things, you might be affecting other security properties elsewhere.
And so if you kind of take it out of the crypto primitive, it's hard to do the analysis.
If systems [inaudible] throw things in.
So one of the things is we do hedging in the primitive, we can kind of just do it,
and then people don't have to be the wiser, right, and we can do the analysis.
>>: I'm not suggesting something maybe [inaudible] system level [inaudible]
essentially do application [inaudible] design a process you have an option to
specify [inaudible] batch of obligation specific data which you want to be used to
mix randomness. So maybe ->> Tom Ristenpart: So we essentially have that type of API now with random
number generators, right, you can have an application say here to the OpenSSL
random number generator here's a bunch of application specific stuff that I want
you to mix into the pool. But I mean it's not clear people do this. And it's not
clear it's always the right thing to do necessarily. I mean, you have to be careful
is all I'm saying. It could be okay.
Whereas the hedging thing, you know, it's simple because we can look at it in the
context of the cryptographic algorithm. And that's the take-away benefit I think.
Yeah?
>>: So assume that you have a hardware RNG.
>> Tom Ristenpart: Yes, I'm assuming that, yes.
>>: And because ->> Tom Ristenpart: Now I'm assuming that.
>>: Well, because I'm thinking about this in the Windows context, right, where
you're looking at VM snapshots but it's actually not that different than say I've got
a bunch of identical machines I'm going to power on equivalently and make this
[inaudible].
>> Tom Ristenpart: Right.
>>: Okay. Independent of the VM issue, the VMs just push the [inaudible]. So
we've certainly noticed issues with [inaudible] across machines. One way we fix
that is you put TPMs and we scrape the TPMs off and [inaudible].
>> Tom Ristenpart: [inaudible] now you guys are going to move to Intel chips,
you're going to use the hardware instruction?
>>: If that's there. We won't take advantage of anything [inaudible] we have a
model where we're take entropy from a variety of hardware sources.
>> Tom Ristenpart: Okay.
>>: So, you know, the more the merrier. If I -- and then there's a case that you
didn't explicitly highlight but I think it's related which is generally when you power
down and reboot a machine, there is a save of pool.
>> Tom Ristenpart: Right.
>>: Right. And to put that similar snapshot [inaudible] protection there will
effectively roll the pool forward.
>> Tom Ristenpart: It's not exactly the same as duplicating a snapshot, right?
>>: [inaudible].
>> Tom Ristenpart: Because you're still moving forward.
>>: [inaudible] generally moving forward.
>> Tom Ristenpart: Yeah.
>>: When you do a VM you either mix in from your hardware at that point in time
when you bring the snapshot back, or if you know that when you safe the
snapshot out, you roll the pool.
>> Tom Ristenpart: Right.
>>: Right? You know, there's ways that you could defend against this at the OS
model.
>> Tom Ristenpart: That's true. If your application is playing ball, right? The
application needs to make sure it's not ->>: So these are cases where the application -- or I'm assuming that the OS
provides a system RNG ->> Tom Ristenpart: Right. So I think we would go a long ways if we had a nice
and like, you know, cryptographically sanctified or whatever [inaudible] the
random number generator if the operating system, the VMM support, right? So
even if you have all that, which I agree that's going to go a long ways to helping
the situation, you still need the applications to use it correctly. Just -- you know,
the same problems we've always had with random number generators,
applications didn't use it correctly.
>>: That is the [inaudible] apps are putting their own RNGs into the apps and
calling the system certified [inaudible].
>> Tom Ristenpart: Well, I don't know. The thing is -- and I'm not positive what
the design rationale is between the -- I'm not positive what designer rationale is,
but my suspicion is for things like Firefox they grab randomness at boot-up time
because it's inefficient to grab randomness otherwise.
Maybe this goes away if you have an Intel instruction that's very quick to give you
randomness. But anyway, they want to do this for efficiency. So they cache it
before the physical examination connection request goes out because they want
to optimize -- that's like on the critical path, right, so they thought they could take
random number generator out of the critical path. What we're saying with
snapshots, the application layer, you need to put it back in the critical path, you
know, for this type of thing like browser TLS request.
So but you're 100 percent right. Like we need to get good random number
generators built that the operating system and the virtual -- and the VMM and
have hardware back up, hardware sources. And then it's just a matter of making
sure applications are doing the right thing. Which I think includes kind of upset
dating cryptographic best practices about saying, you know, you need -- you
can't do random number generation grabbing like, you know, four days ago and
then use it later. I mean, you need to really kind of put it in the critical path.
>>: How much of this problem is because the applications you looked at are
effectively implementing their own RNGs in [inaudible] as opposed to -- and
therefore they're caching -- they're pooling the state out of the system at random
or [inaudible] random [inaudible].
>> Tom Ristenpart: Right.
>>: And they're then doing their own RNG [inaudible].
>> Tom Ristenpart: It's an open question. It's an open question. So you're right,
I think the attack as it is would not work. If you hit dev random every time, even
without a good VMM backed up dev random. But it's not clear you -- it's not clear
you're secure still. I mean, it may be that you still have some probability
[inaudible] repetition. Because it depends on what the sources are going to dev
random at that point. Now, if you replace dev random with something that's VMM
backed up and you're hitting dev random right before the application use the
randomness, then you're probably okay. Accept for this kind of naggling
theoretical issue that it's not atomic, right?
>>: [inaudible] some randomness [inaudible].
>> Tom Ristenpart: Well, I ->>: [inaudible].
[brief talking over].
>> Tom Ristenpart: Some of them do -- they have their own RNG like logic
inside the application and some of them go to dev random sometimes to refresh
->>: Well, let's say they didn't. Let's say ->> Tom Ristenpart: That's exactly what I'm saying. Hypothetically if they always
went to dev random that would be better, but I'm saying that wouldn't fix ->>: [inaudible].
>>: Even if you had a gap between the two.
>>: Right. But look. Look at what happens on [inaudible] as a counter
[inaudible] right? So you call into the SSL stack. That's a common system sort
of thing. That calls down into the RNG inside of [inaudible] right? And, in fact,
there's a fan out down there, and I've actually got eight [inaudible] there's a back
state so that if you've got RNG that are a system function, right, you have to
worry about whether or not back end persistent okay and when you spin those up
when you bring the OS up, where do they full entropy from?
So the question is where is the entropy pool that your system -- I mean, it's a
matter of you've got an RNG, there's an entropy pool pack at -- who pools
entropy [inaudible].
>> Tom Ristenpart: It's not just who but when, right, is the question.
>>: And then if the snapshot it, do you detect that properly and do you effectively
mix something else into it so that you [inaudible] but once the randomness is
[inaudible] there's this gap between ->>: So the question becomes then is the app pulling randomness from the pool
right before it's being used or [inaudible].
>> Tom Ristenpart: And [inaudible].
>>: And is it deriving any further product, right?
>> Tom Ristenpart: Yeah. I mean what he's saying is sometimes they pool it
from the operating system and then they use that as like a PRF key. But I mean
either way it done matter. I mean it's a -- there's kind of problems at a lot of
different levels. And maybe I didn't do the best job of clarifying that there's like
problem A, B, and C, I mean there's like a bunch of problems mixed together
here. But in any case, we need to figure out how to do good random number
generation in VM settings and then we need to educate application design about
proper use in the case -- in the context of resets. And actually doing that is easy
to say that, but doing it is probably a little bit harder.
>>: Maybe you shouldn't take too many time but [inaudible].
>> Tom Ristenpart: [inaudible].
>>: I'm just saying my suggestion very quickly is just instead of [inaudible]
random, we just call that randomness [inaudible] just call that randomness an
optimal application specific input and then [inaudible] so that the user double
have to know [inaudible] I'll just call that randomness [inaudible] specify input and
the [inaudible] system guarantees [inaudible] even if it's [inaudible]. That's all I'm
suggesting.
>> Tom Ristenpart: If the seed was good, then what's the guarantee that
[inaudible].
>>: So when the user [inaudible] instead of just coordinating dev random and
[inaudible] random functions or something I just pull dev random as a logical
[inaudible] message [inaudible] or whatever, then I'm going to repeat the
randomness I get is going to incorporate my optional input.
>> Tom Ristenpart: So I mean that doesn't -- so that might be one solution, but I
mean that doesn't change the three things I said you need to do, right? And what
your suggesting there requires application changes, right? So ->>: Multiplication changes ->> Tom Ristenpart: No, no, the application needs to do this, right, because you
changed the API.
>>: [inaudible].
>> Tom Ristenpart: Yes. So you have to change all the applications and use
dev random, right? So which may not be ->>: [inaudible]. Right? So you could -- you know, they can increase the
application and [inaudible].
>> Tom Ristenpart: Yeah. But if we want security, then you can't -- I mean, you
have to make sure that it's not [inaudible].
>>: I'm just saying that [inaudible] user specify argument and then it will
[inaudible].
>> Tom Ristenpart: I think there's a host of reasons. But you have to ask
someone to sign the APIs. Yeah, I think I'm way over on time. So thank you.
>>: Yes. Let's thank the speaker.
[applause]
>>: Our next speaker the Krzysztof Pietrzak speaking on subspace LWE.
Krzysztof is [inaudible] CWI.
>> Krzysztof Pietrzak: Okay. Can you hear me? Okay. So I will speak about
something which actually honestly has nothing to do with the cloud but we'll talk
about it anyway. So it's about the learning with errors problems. So here is a
short outline of the talk.
I will first define the learning with errors problem and the less general learning
parities with noise problem. Then I will show you in the -- this is non-adaptive
hardness assumption. Then I'm going to show you the adaptive assumption
which just has the seminar subspace in front of it and actually prove, could show
proof that those two assumptions are equivalent, the original and this adaptive
one. And then I'll show some cool applications of this new assumption.
Okay so. What is the learning parities with noise problem? This is a problem
that comes -- has a long history, has been looked at by people from learning
theory and so on. It's defined very simply. So if a person who has access to
black box, this black box -- this black box has some random bit string of length N
inside it and some parameter between zero and one-half, and then the person
can just ask, give me a sample, and what this box does is it samples a uniform
random bit string of length N, it samples and error with Bernoulli distribution with
parameter tau. This means this is a random variable which is zero with
probability -- sorry, this is a random variable which is one with probability tau and
this bias towards zero.
And then what this box outputs is, yeah, this random R, and the inner product, so
bitwise, bitwise multiplication with R and the secret S, plus added just a little bit of
noise to it. And, yeah, we will say that so these learning parities with noise
problem is hard, so parameterized by this length of secret N the number of
samples that the adversary does this noise parameter tau. You say it's S epsilon
hard if you're at the advantage of any adversary of outputting actually the secret
is upper bounded by epsilon.
So this is the computational version of the LPN. Probably you can also define a
decisional version. So in this case, you have an adversary who has either
access to the box that I just described or to a box which actually does adds
uniform random error to this thing, so actually the entire string is in eForm
random and then you say okay this problem is hard if the adversary has at most
advantage epsilon and distinguish these two cases and, in fact, decisional and
computational version have been shown to be polynomial equivalent.
Okay. That's the learning parities with noise problem. It has been generalized
by Regev in '05 to a problem that is called learning with errors. Again, we have
like a secret but it's now not a bit string but like a string of elements in set Q. And
we have not just an error parameter tau but like some error distribution chi, which
outputs -- so this is a distribution over elements in zed Q. What is used actually
in this something that is called a discrete Gaussian.
So it's like an error distribution that looks like a Gaussian and this -- small
variants like I think square root of Q or something is what you usually use.
Okay. Distribution -- the game is the same. We sample a random R in zed Q.
We sample an error according to this distribution and the adversary can ask for
arbitrary many samples and again we say that this problem is hard, we cannot
distinguish, and the decisional version is you cannot distinguish this distribution
here from uniform -- from a box that just gives uniform random stuff.
Okay. What is known about this problem so as I said before the decisional and
computational versions are the same, and from now on I will always talk when I
talk about the LPN and LWE, I will always talk about the decisional version. So
the strong version where you ask to distinguish random from these samples.
The learning parities with noise -- yes?
>>: [inaudible].
>> Krzysztof Pietrzak: So [inaudible].
>>: [inaudible].
>> Krzysztof Pietrzak: So the LPN is model is two, and I really don't know what
Regev shows. Kris know it probably better.
>>: Prime polynomial Q or something with Q ->>: What's KSS? What's KSS?
>> Krzysztof Pietrzak: That's -- I took this from Regev's overview of learning with
errors [inaudible] that is actually so the Regev attributes it to this [inaudible] okay.
Maybe it's a typo of mine. I will get that.
>>: [inaudible].
>> Krzysztof Pietrzak: Okay. So it's equivalent for appropriate choices.
Okay. So look the LPN problem is known to be equivalent to decoding random
linear codes. This is the average case, however, in this assumption. And what's
cool about the LWE assumption is so when this rare distribution is something
called a discrete Gaussian this problem has been shown by Regev to be as hard
as worst case lattice problems. So this is ->>: [inaudible].
>>: No. No.
>>: [inaudible].
>>: [inaudible].
>> Krzysztof Pietrzak: Okay. And these problems were LWE and LPN problem
have been used in cryptography a lot, so LWE has been used -- so for one thing
because it has this extremely cool hardness guarantee and for another it has
turned out to be extreme versatile for crypto, so Kris and Dino and other people
have built pretty much any primitive you can think of from LWE like, yeah, public
encryption, IBE hype and I don't know what, signatures and so on.
The LPN problem is less versatile, so it's -- so there is something like it's less
versatile for doing crypto, but it still has found usages because it's extremely
efficient, because you just painful do bit, bitwise taking in a product that's
extremely fast. So you might have heard about this authentication protocols due
to Hopper and Blum. I will come to this later. Okay.
So this LWE problem is -- it's a non-interactive hardness assumption. You just
get samples you distinguish. Okay. Now let me define a new hardness
assumption which I will call subspace LWE which is now a adaptive hardness
assumption. So now the adversary action can interact with this box. The box
again is parameterized it has some secret of length M in zed Q. More over, it's
parameterized, again, the error distribution chi and moreover some parameter N
which is less than M. I will come in a minute to what this M has to do.
What the adversary now can do is he can ask the query to this box, not just give
me the next sample but actually the adversary can choose two -- two fine
projections, phi R and phi S. So technically, the phi R is for example given by M
times M matrix XR. So this is 2 to the -- you know, 2 to the linear projection and
it's defined so you can have this little XR to add something to it. Same for phi S.
And what the adversary gets back is now the following, as before the box
samples of random R are distribution T. But it gives back so this random R and
the inner product not of error S, plus the error S before, but like it first produces
phi R to project R to whatever phi R defined. It projects S to whatever phi S
defined. And then it takes the inner product of this -- these two projected values.
Okay. What is this -- oh, yeah, this is the definition of the [inaudible]. So
basically we can define like a hardness assumption. So okay, look at this
problem, this M, NT, chi, sub SLWE problem is hard if no adversary can
distinguish this. And I should say something more. Okay.
>>: [inaudible].
>> Krzysztof Pietrzak: What?
>>: Can you repeat again what [inaudible] the adversary chooses?
>> Krzysztof Pietrzak: Yeah. I forgot to [inaudible] the adversary chooses this
matrices, XR -- big XR, small XR, big XS, small XS, which defined projections of
R and S. And there is one constraint to this choice. He cannot choose this
arbitrary because if he can do this, this is obviously trivial, this problem. One
second. Because the adversary could just protect in the first coordinate of S of
many samples, the little error you could cancel it out, you would learn it.
So I put an additional constraint, and this constraint is that this project this phi R
and phi S overlapping is efficiently project and overlapping is efficiently large
subspace and I require that the subspace is at as I mentioned at M which
formally means the rank of XR and XS. Has to be at least N. But otherwise the
adversary can do what he wants.
So for example, I will show you in next example what XS and XR can be. For
example, he can just take a subset of size N of the element or fix all of the bits of
R except N positions. Yes?
>>: [inaudible] let's assume for a minute that also XR, little X subzero.
>> Krzysztof Pietrzak: Yeah.
>>: That's okay, right? And big XR and XS are [inaudible].
>> Krzysztof Pietrzak: So this is the input to the box. The adversary adaptively
chooses this as inputs, he chooses this as inputs, S gets stuff back. Chooses
adaptively new XS, XR, asks the box, gets a new sample back and so on.
>>: [inaudible] so somebody should restrict them. So their restrictions only on
each [inaudible].
>> Krzysztof Pietrzak: Yeah. Of each fit independently. When he chooses this
to SXR, they have to overlap in a sufficiently large subspace. Okay?
>>: [inaudible] the noise is chosen randomly each time.
>> Krzysztof Pietrzak: The noise is as before. The noise is exactly as in the
original LWE.
>>: [inaudible].
>> Krzysztof Pietrzak: Yeah, with each, with each -- exactly.
>>: [inaudible].
>> Krzysztof Pietrzak: It's not the same [inaudible] no. It's like the LWE.
>>: So in that case the [inaudible] is basically the [inaudible] right?
>> Krzysztof Pietrzak: In which case?
>>: So [inaudible].
>> Krzysztof Pietrzak: When what? So when XR and XS are [inaudible]
matrices and XR, XS are zero, you are back to the started [inaudible] okay? All
right. So let me say a few things to clarify. One thing is completely trivial. So if
this adaptive thing is hard, then this [inaudible] that the standard [inaudible] so
this is the trivial direction, and this is very easy to see why. Because, okay,
assume I -- assume I have access to this M, N subspace LWE oracle, then I can
-- and if an adversary who breaks this assumption to advantage epsilon then I
make you an adversary against the standard LWE assumption which uses
secrets of length N, which is the intention of the subspace that I have to project
into in a very simple way. I just choose the inputs. I always choose the same
inputs to this adapt -- to my subspace LWE or I can just input simply this XR and
XS are zero. And the projections that the use the identify matrix in the first N
diagonal entries, and the rest is zero.
What happens -- okay. What happens is that I get the inner product of this form
but not this XR times R, it is just deletes out everything of R except first N
positions and this deletes everything out except the first N position. So what you
get is basically in the product of like a prefix of S which you have exactly the
same distribution as with the normal LWE assumption that uses as a secret a
substring of S which just contains the first element.
So this direction is trivial if the subspace is hard -- if the subspace assumption is
hard using secrets of length M where we have to project the two dimensions N,
this is as hard as the -- if this is hard, then also the standard assumption is hard.
So the interesting thing is that the other direction is also true. Basically. So if the
-- this N -- this standard problem with secrets of length N is hard, then also this
subspace LWE problem that maps into subsets of -- into subspaces of dimension
N, it's also hard.
And what do we lose? Okay. So the size of the -- of the adversary's considered
you don't say anything, so this epsilon here is the error of the subspace, and this
EPS here is on the standard LWE. It's the same but plus something that
depends on the dimension of -- that depends on the dimension of the -- so on
that queue, on the elements that you use.
Okay. This is good enough if Q is exponential or very big super polynomial but
not if Q is say two for LPN but fortunately we can do a little bit better. So if you
take a gap between these dimensions that you require, so I want that you map
into dimension of N plus D where D is I don't know, 50 or something, then this
problem is actually as hard as the LWE assumption of dimension N, and you only
get an additional factor in the error which is like exponentially small in D. So Q to
the D, Q is the size of the field in D, so if you choose this gap big enough,
depending on Q that you need, then you have -- it shows that those things are
basically equivalent.
>>: [inaudible]. I'm saying the same thing. Maybe a more clean way to say it,
you could say for any delta, you get epsilon prime is epsilon plus delta, but then
you put N plus log [inaudible] I mean this is more like more consistent [inaudible].
I'm just saying M [inaudible] delta, this thing is epsilon prime is equal epsilon plus
delta as long as you set M prime to be [inaudible].
>> Krzysztof Pietrzak: Okay. So why -- what does this imply? So before I show
you any construction, what does this, the fact that this subspace LWE samples
are hard? So I said to you before that there are tons of applications -- or
applications of this LWE and LPN assumptions. So and many of these
assumptions they use the fact that the samples of pseudorandom that you get
from the LWE oracle. But what happens, for example, to [inaudible] okay. This
is what the SLWE case gives you. What for example -- what happens for
example if now we have this application that -- whose hardness relies on, you
know, the hardness of LWE but somehow the adversary can kind of fix a few, few
bits of this random vector R? So the application has to fix the random vector R.
But maybe the adversary can control this source is like a bit fixing source say so
the element can fix all the elements of R except an element.
So this, because the sub-- this is going to be as hard as the subspace LWE
problem of dimension N, so you have secrets of length N, the adversary can fix
all the bits except N element and because this is as hard as the SLWE problem
of dimension N, your primitive will stay secure even if the adversary can't fix all
bits. Okay. You do great in security, you basically fall back to the security that is
guaranteed by the LWE assumptions with secrets of length N instead of M, but
you're still safe.
So caveat here is we still have this error vector which tells us to be random, and
you cannot tamper with this. So if anything goes wrong with the randomness for
the error here, you're dead.
But in many occasions, for example, the HP product called [inaudible] you -- this
randomness is sent over a channel. And maybe the adversary can tamper with it
and set a few bits but not everything. And this basically implies that you're still
safe, even if this happens.
Another thing is relate something that is called related-key attacks. So in the
related-key attacks you have a crypto system that has a secret S. And what you
can do is maybe you can somehow change to secret. Maybe it's smart card you
can put it microbay microbay, flip a few bits or something, you can somehow
change the secret and then actually invoke the crypto primitive with this slightly
tampered secret.
So assume for example what you can do is you have this -- again, the perimeter
that is based on the LWE assumption and you have the secret key is actually at
the secret S used for LWE and maybe the adversary can somehow set the
elements of S. He can set almost all elements but like -- he can set all elements
but maybe not N of them. So N of them will always be the original ones.
And, yeah, the hardness of SL to be -- subspace LWE implies that this is still
going to stay hard. As hard as the standard LWE problem with secrets of length
N. So these are just to illustrate like two particular examples of what such a
subspace LWE allows you to do.
>>: [inaudible].
>> Krzysztof Pietrzak: No, no, it says F can fix O but N elements of the secret.
>>: [inaudible] here you show the [inaudible] distribution on average has to have
[inaudible] and here you're saying the distinct distributions could be the
subspaces microbay some sense but you [inaudible] change it.
>> Krzysztof Pietrzak: So, the -- this LWE assumption we have proven to be
extremely resilient to leakage. So if you have a secret S that stays -- the secret
stays always the same. You leak something [inaudible] so this is -- this shows ->>: [inaudible].
>> Krzysztof Pietrzak: It's a completely orthogonal thing. This shows it's resilient
to tampering not against leakage, this is resilient to tampering. Here you actually
change the secret and [inaudible] you don't leak anything except what you get
from access but you actually tamper with the secret. Okay.
Okay. So let me give the proof sketch of this theorem that I said before that
okay, if the LWE problem is hard and also this subspace LWE problem is hard.
So what's the challenge here? So the challenges here we have access. What
we have to do is we have access to LWE oracle, that gives you simplest of this,
so some secret S of length N samples random vectors R, that's error and so on.
And you have to show how to transform this, so to prove this theorem you have
to show how to transform this sample into samples of this form, where this XR
and XS are just chosen with every sample.
For every sample we have to do this transformation. And for all these samples
this S hat has to stay the same. It doesn't -- it has to be random and stay the
same used microbay all the samples because it stays the same microbay the
assumption. And this R hat has to be uniformly random microbay every new
sample.
Okay. How do we do that? So that's the transformation how you transform this
S into this S hat. Of course if it's a transformation, you don't actually do this at
the reduction because you don't know S. But that's what you -- that's how you -what you do is the following. You sample the random matrix R, N times N matrix,
some blinding vector B, and you define this new S hat to be R times S plus B.
You don't know what S hat is. You don't know what S is. But you will generate
samples of this form using this sample S hat.
Okay. How do you sample this R hat? Okay. That's how you do it. So this is a
-- this is a set. This is the set of solutions to this equation, so you you have this -these are all Ys that solve the inputs from the adversary this is the R that you
chose here, this is also inputs from the other [inaudible] again, this R. This is the
R that you get from the LWE sample. And you just sample this R hat randomly
from all solutions to this equation. And this set is actually nonempty if the rank of
this matrix XR times XS times R is at least N.
And actually you can show -- you know, if the rank of this here is at least N plus
D, which you were guaranteed because that's what you require from the
adversary that you only choose this matrices that have rank N plus D and this R
is uniformly random, you can actually show that the probability that this has rank
less than N is at most basically two divided by Q to the D plus one. Okay. And
then because you use T samples you have this T up here.
Okay. Okay. And now, okay, I'll show you how to sample this R hat. I still have
to say how to sample this entire big thing. So the error E here will be exactly the
same error as you have here. And that's how you sample it basically. So this
term here does this term here is basically the term you get from the LWE sample
plus some set zed that you can compute from values you know when that's the
zed that you -- so you know everything. You know our hat, you know these
values from the adversary just B you have chosen yourself and so on.
And you do some linear algebra and proof that this is perfectly the right
distribution. So that's the reduction. Okay. That's the first part. Yes? Okay.
That's the first part of the talk.
And now I come to an application -- so I showed you that this subspace LWE
assumption is like [inaudible] applications microbay terms of you have a bit it
immediately implies security [inaudible] bit fixing sources or some classes of
related key attacks for all existing schemes that are based to securities based on
the LWE assuming to the randomness of the samples.
But you can also -- once you know that this thing is hard, you can come up with
completely new protocols. So I will show you an authentication protocol.
So what's an authentication protocol? So consider a protocol where we have -it's a symmetric authentication protocol. We have like some prover and some
verify that's sometimes called attack and reader. Whatever, they share some
symmetric setting, they share some secret key, they communicate at bit, then at
the end of the communication this reader says okay, I accept or reject.
And of course, the idea is somebody who doesn't know the secret -- secret and
interacts with this -- with the verifier shouldn't be able to make the verifier accept.
And there are many different notions for the security of this authentication text
that the weakest one is so called passive security. So here you consider an
adversary who like microbay the first phase can observe arbitrary communication
transcripts between this programmer the verifier, including the final decision of
the verifier if they accept it or not. So usually he should always accept, but
maybe if a small completeness error.
And microbay the second phase, then the adversary interacts only with the
verifier and he tries to make him accept, then you say okay, the adversary wins
and if he actually can make this prover accept.
As strong a notion is so called security against active attacks, here the adversary
also can first like observe as many samples as he wants. But additionally the
adversary can actually interact with the prover. So he can send challenges or
whatever to the prover and see what answers this very verifier gets. Not only like
randomly chosen challenges from the verifier as normally, and again the second
phase is the same. Okay.
And the ideal notion that you usually want to have from this, and the strongest
notion of cores is security against man microbay the middle attacks. So here you
consider an adversary who sits microbay between the reader and the verifier. He
can arbitrarily interact with those, maybe schedule the messages how you want,
maybe currently and so on. Okay.
>>: [inaudible] you know, you can talk to many provers [inaudible] which is I
don't think it's [inaudible].
>> Krzysztof Pietrzak: The same secret or ->>: No, no. I mean, you -- yeah, the prover's independently talk to -- yes, the
provers say [inaudible].
>> Krzysztof Pietrzak: Yeah, you ->>: [inaudible].
>> Krzysztof Pietrzak: Yes. You could have concurrent execution, some -yeah?
>>: [inaudible].
>> Krzysztof Pietrzak: So I mean actually it's trivial to achieve this kind of
security if you have like a PRF or something or even a Mac. So this is you just
you know the prover the random challenge you evaluate the PRF on that input
and you're done. But what we're doing, this -- what I will do now is to try to get
like authentication protocols which are like extremely efficient, so basically they
just should use a few XRs and Ns. And what you will achieve is only this active
security. So this -- and it's actually open how to do efficient authentication from
LPN.
So you can't do -- that the security man microbay the middle attacks. You can't
do it because it's a pseudorandom generate. You can use GGM and then you
have the PRF, but that's not efficient. So when I say efficient, what I mean is
basically K times N basic operations where K is some parameter that such that
the LPN assumption with secrets of length K is secure and N is some statistical
security parameter a hundred, so K times N [inaudible] source or Ns. That's what
they all are. That's efficient. Okay.
So there is a famous protocol due to Hopper and Blum, so they proposed this
protocol actually as authentication protocol that even humans can compute. So
even if you have like a piece of paper with your secret you actually can do this
microbay your head, or on piece of paper.
So how does the protocol work? So the verifier and the proof of share is secret
S, the verifier chooses a random A, sends it over and the prover sends basically
back so that the LPN sample. So as microbay the product of S and S plus this
error E. And the verifier checks what he gets from the progress really did
microbay the product of S and A. Of course this has -- this has a very big
soundness error -- sorry. Correctness error because, you know, the verify will
only accept with probability one minus tau, so something more than one-half, so
let's say if tau is 0.25 with probability 0.75 and it [inaudible] so this was the
completeness error, it was the soundness error because if I just send the random
-- random bit, the verify will accept still with probability one-half.
But you can amplify this. So you can cut. And Shin showed me how you can do
this microbay parallel like N times, where N is the statistical security parameter
and you're safe. Okay. So that's what I just said.
And this protocol is secure against passive attacks, so this weakest notion that I
showed you before and this trivially insecure against active attacks. And why is it
insecure against active attacks? It's easy to see. So assuming -- so microbay
active attacks you can query the prover microbay the first phase so you just send
microbay As where the first bit of A is one and all the other bits are zero, you get
basically noisy inner products of S times A, S times A where A is like this, which
basically is the first bit of S plus some error. And if you get enough samples you
can -- it will be biased towards the first bit of S and you have [inaudible] the first
bit of S.
And you do this with the second bit of S and so on, and you're learning. Okay.
So subsequently like Jules and Weis if the proposed protocol that is called HB
plus and the chiefs active security, so what we basically do is they add an
additional third round. So if the first rounds, actually the prover chooses the
random B and sends it over to the verifier. From then on -- okay, as microbay
the HB protocol, the verifier chooses A, sends it back, then you compute this so
the inner product of some secret S1 with B, some secret S2 with A at the error
and again the thing is as before. This is secure against active attacks but not
against man microbay the middle attacks. Has three rounds.
And let me see. Okay. That's the protocol again. And it breaks -- okay. And
that's a very, very cute security proof that I will go through and -- for a few
minutes due to Katz and Shin. So they show the following. So assume I have
and adversary A who breaks this active security of this protocol with advantage
epsilon. So this adversary expects first access to some -- to some prover P and I
-- so I run this adversary and I do the following: I choose S2 myself. I have
access to some LPN oracle which either gives me LPN samples or uniform
random junk. And okay. Whatever I get from the oracle I send to A. I get like N
samples with the randomness I concatenate them, send them over to the
adversary.
The adversary sends me back some matrix A. I send the -- this answer here to
the adversary who just computed as follows: Okay. I know S2, so I compute A
times S2, where this is the A I got from the verifier. And the 6 is whatever I got
from my oracle so this is the elements which are either random or, yeah, all this
noisy inner product that I got from the oracle.
Microbay the second phase -- okay, now the adversary is on the left side and he
has -- and we know that he has advantage epsilon and actually making the very
fair accept. So what you do is the adversary sends the P, we send the adversary
back some random A1 and he gives us some zed one. But of course now we
can't compute anything because we don't know as one. So we kind of check if
this is a valid answer or not.
What we do is we rewind the adversary to this first phase and a different A2 and
a different zed two. And now assume that microbay fact microbay the second
phase both the zed one and zed two would cautious the prover, verifier would
have accepted both of the zed ones, which means the zed one and zed two are
of this form where this E1 is the weight. Okay, if I add them together, then it's B
teams as long, which is the same. I rewind it, but I only rewind it to this point, so
we have two times the same P, which will cancel out.
What I get is -- okay, imagine here is equality, not a plus, and here a plus -- what
I get is this here. So I take this term on the other side of the equation and what I
get, if I just -- okay. These terms I know, S2 I know, so I add this to this term -sorry. I add this to this term, I get like the sum of these two low weight vectors.
And -- okay. If I -- what I get is low weight I assume, okay, this oracle that I have
here really gave me LPN samples.
So microbay this -- okay. And we'd have probability epsilon square. I will accept.
And microbay case this X is uniformly random, then, microbay fact, what you get
microbay the first phase, the zeds, are independent of the secret S2 that I chose.
And you can show that microbay this -- microbay this case the probability -- so
this because -- okay. Because -- I will accept if this has low weight and because
the adversary has no clue about S2, and if this has sufficiently high rank this
thing you rule basically uniformly random, this thing here, so if the adversary
chooses any zed, one or two, it's very likely that this will end up microbay a low
weight vector. So exponentially small probability.
Now, anyway, there has been like tons of follow-up work on protocols we try to
make this protocol active, secure, and then other -- against secure against men
microbay the middle attacks and all the papers that break this again.
So this is from this Website. Okay. And those protocols are all HP -- had
protocols that are like HP are like extensions. So I showed you HP+. There's
like HP#, HP++ and others.
Okay. Now I'll show you protocol which completely different, and it's not the HP
style protocol. And there's two rounds. And it works as follows: So we again
have a verifier and a prover. There's a secret of length -- okay. So we have
some parameters. Parameter K chosen such that the LPN problem of -- with
credits of length K and some security -- an error noise tau is hard.
Okay. I define L to be slightly more than 2 times K. Okay. And N is a statistical
security parameter. The secret is of length 2L and is shared between two. So
what the verifier now does, so microbay the HP protocol he choose a random
vector R to be taken as the inner product. Now he does something else. Now he
chooses a vector V which has length 2L and has weight that's actually L1s. A
random V and you are constrained on the fact that the task weight L. Prove very
fast sends it over to the prover. What does the prover do? He samples the error
vector -- okay. Random matrix.
So think for the moment that this is just a random element, a random vector of
length L, and he takes the inner product of this random R with SV. What is SV?
SV is if you have the secret S and you delete all the elements where V is zero,
that's what I call SV. So it's like basically SV defines like a subset of S. And you
take the inner product of this random vector R with this subset of S and add the
error E to it. And you do this actually N times parallel, basically. So you choose
the R which is like N vector of length L and you take the inner product that is
subset N time and you add this error vector of like E random elements.
E noise elements, each one biased towards one. You send this over to the
verifier. What does the verifier do? He checks if this matrix R has actually full
rank, which it will have almost certainly if it's chosen randomly. And then yeah, it
checks what is the weight of -- of this term here. So what should -- of -- so it -- it
talks the zeds and adds basically this term here RT times SV to it, and if
computed correctly, this should have weight roughly N times tau because there's
N elements, this is basically -- so this should basically be the error vector which
should have roughly weight N times tau.
So if it's significantly more than this, so tau prime is some constant which is
bigger than tau and smaller than one-half, if it's significantly larger than this, then
I reject, otherwise I accept.
And that's the theorem. So if the learning -- LPN problem is a security -- with
secrets of length K is hard, then actually the active security of this protocol is
basically the same epsilon, okay, minus something exponentially small microbay
this statistical security parameter.
So the constant here depends on basically on tau. And on how much bigger
than two this is. So it's -- but it's -- okay. Okay. I wanted to prove on this black
board, but I think I'm running out of time anyway. So I think I'll skip that. But the
prove is really cute. The proof is -- okay.
So let me conclude. So I showed you new adaptive assumption for -- which is
like similar to the new adaptive assumption which is equivalent to a learning with
errors problem. So a application, I showed you like a new protocol. Okay. I
should maybe say a few things about this protocol. So why is this better than
HP+? So for one thing it has one round less. So it's two rounds, which I think it's
for the goal of this protocol, which is like this high efficient -- highly efficient
authentication protocol for RFID tags. I think this makes a difference because
actually it's probably even going to be four rounds if you use HP+ because you
have to take -- to tell to the attack that you now want to start interaction and he
has to send you something and something and so on.
Okay. It's rewindable for the very fact it's HP+. And it has a tight security
reduction. So you see there is epsilon. And what you got before with this
rewind, so there's no rewinding going on microbay the proof. What you did
before with the rewinding gives you epsilon squared.
Okay. So I showed you this new protocol. We also have very efficient Mac from
LPN but it's not really a Mac, it's randomized Mac and it only satisfies a weaker
security notion where you're not allowed to actually ask for verification queries for
Macs, for messages that you have all right received. So you cannot get the Mac
and slightly change something and ask if it's still valid. So but it's okay. You can
still authenticate communication with this microbay the passive setting.
Of course, the question is what else can you do from this adaptive assumption.
So thank you.
[applause].
>>: [inaudible].
>> Krzysztof Pietrzak: The definition of the assumption?
>>: Yes.
>> Krzysztof Pietrzak: Okay.
>>: [inaudible].
>> Krzysztof Pietrzak: So S is like microbay the box. S is secret.
>>: Okay.
>> Krzysztof Pietrzak: So now you make a query. So the adversary makes the
query.
>>: You make a [inaudible] right? [inaudible].
>> Krzysztof Pietrzak: No. The box [inaudible].
>>: All right. So what is the adaptive part?
>> Krzysztof Pietrzak: The adaptive part is the projections, this matrices, XR,
XS. So you look at this and I'd like to microbay the product microbay this
subspace, you know, project this secret into this subspace and the random R that
you will choose into this subspace and compute the product there.
>>: So [inaudible].
>> Krzysztof Pietrzak: Yes.
>>: [inaudible].
>> Krzysztof Pietrzak: Yes. Just for each query you will require that the overlap
of the -- yeah, this projections overlapping and dimension subspace. Because
otherwise if you overlap microbay the one dimension subspace, you can't slap
everything and just keep the [inaudible].
>>: So just one way you could do is [inaudible].
>> Krzysztof Pietrzak: It's [inaudible], right? So even if you make the same
query twice you get different outputs.
>>: [inaudible].
>> Krzysztof Pietrzak: Yeah, yeah.
>>: Aren't you going to get something, you know, very close to each other?
[inaudible].
>> Krzysztof Pietrzak: LWE is always the same.
>>: [inaudible].
>> Krzysztof Pietrzak: Yes. I'm sorry. [inaudible] and then projected down to
[inaudible] yeah.
>>: [inaudible] right, and then the problem becomes [inaudible] that's -- so.
>> Krzysztof Pietrzak: But it's adaptive, right, it's not -- the point is of course if
you just multiply once and ->>: [inaudible] how does XR times R transpose times XS times S? One more.
>> Krzysztof Pietrzak: This [inaudible] here?
>>: Yes. So that's going to be R transpose times XR times big XR matrix XR
times big matrix Xs times S. Transpose. So that's why the matrices kind of
come microbay between the R -- that's what makes it kind of different from
[inaudible].
>>: [inaudible].
>> Krzysztof Pietrzak: That's -- yeah, yeah. That's basing -- yeah. You have
basically R on the left, S on the right and this thing microbay the middle that you
want. So ->>: Yes.
>> Krzysztof Pietrzak: It's redundant. I feel you problem could -- problem it's
equivalent if you Lee out one of these. I'm not sure.
>>: Well, if you could make some on the right and [inaudible] out on the right.
>> Krzysztof Pietrzak: It's probably not the simplest -- it's probably not the
simplest ->>: [inaudible].
>> Krzysztof Pietrzak: It's probably not as [inaudible] you can compress this
somehow to one [inaudible] probably you can't. I just care about the product. It's
probably I think if the adversary just sends this, it's the same. But it's easier to
think about this [inaudible] maybe it's not. But I thought it's easier to think about
the R and the S [inaudible] instead of having R on the left, S on the right, and
then some -- this thing here, matrix microbay the middle. I don't exactly know
what this means. I know it's the same as the other thing, but ->>: And you right away get [inaudible] right because [inaudible] to the sequential
[inaudible]. The other thing already [inaudible].
>> Krzysztof Pietrzak: Because, you know, the point is [inaudible].
>>: [inaudible].
>> Krzysztof Pietrzak: But I have to do right way parallel, and the reason is the
following. You see -- this is the protocol. The reason is the following. And so
Katz and Shin like the HP+ protocol you have this basic round but just like a gap
between soundness and completeness and [inaudible] parallel.
Now assume I would do just the bask round. It just chooses one R here. And
then you repeat this microbay parallel. That's not secure. Because I need to
know this is like -- so because you have to this additional constraint that if you
repeat it microbay times you would have to put the additional constraint that the
Rs chosen by the prover he can't choose -- you know, he can't be malicious and
he can't choose hike a diagonal [inaudible] or something. I'm not -- I cannot force
him to choose randomly. But I need that the rank is big enough. So basically he
has to.
You can do something slightly different. What you can do is you can actually
skip this check and make the secret N bits longer, or you don't even need that, N
bits longer and put the identity matrix microbay front here. So then you kind of
enforce that you always have rank N. But basically it's the first N element. You
can precompute. They're always going to -- it's not going to be less efficient
because it's always going to be the same vector that you basically add.
And another thing is here the prover has to check that this view really has weight
L. And you can also get the -- so this is my -- if you want to do it [inaudible] this
might not be very efficient. But you can get around this and add some -- out of
the secret prime that you always add to it. And to prove it's a bit more
complicated then it's not going to be the weight of the [inaudible] isn't going to be
exactly but it [inaudible].
>>: [inaudible]. Coefficients then that's like leading these coefficients of S out.
>> Krzysztof Pietrzak: Yes. But again you can do it adaptively. I can do it a
priori, I can --.
>>: [inaudible].
>> Krzysztof Pietrzak: Yeah, yeah, I can -- I can fix some bits here and then I get
to sample the next -- microbay the next invocation I fix other bits of R and I get
the sample and [inaudible] the real thing here is that makes it surprising that it's
equivalent to [inaudible]. If you just would have -- you know, if the adversary
chooses this matrices once and we then use it [inaudible] that would not be -would not be use and I wouldn't see how it would be useful. It's the adaptivity
that makes it useful.
>>: [inaudible] question? All right. Let's thank the speaker again.
[applause].
>>: Our next speaker is Yevgeniy Dodis from NYU talking about cryptography
against continuous memory attacks.
>> Yevgeniy Dodis: Okay. So I'm going to talk about leakage-resilient
cryptography. And just kind of a quick motivation, it's probably unnecessary
here, but I'll just run through it. Anyway, so traditionally microbay cryptography
we assume a very nice kind of abstractions that secret keys are perfectly secure,
so for example when we use public key cryptography, public key, but there is
some kind of wall so the secret key is really microbay the safe. And there is a
very well defined interface between the way, you know -- what kind of usages of
the secret keys cryptographer can see. Maybe he can see exactly signatures,
maybe it's ciphertext. But, you know, he be see precisely things as protocol
[inaudible] and some well defined model.
And of course microbay practice, ironically I'm not putting references but there
are a million of references that wouldn't have fit on the slide. Microbay reality
most the cryptography is actually broken, not because somebody breaks
[inaudible] factoring but because of some security things. That's why security
gets much more like federal funding and so on, not because it's like scientifically
deeper but because, you know, that's unfortunately what happens microbay
practice.
You know, you get all kinds of like side channel attacks, you know, this cold-boot
attack, which rested a lot of attention from Princeton and of course there are all
kinds of hackers and so on.
So what those guys do, typically the secret key maybe on some server or on
some smart card or something like that and then one way or another the attacker
gets all kinds of sneaky, geeky machines like monitors an electromagnetic things
or whatever, some things that, you know, when you design crypto systems we
really don't think of it's some weird stuff or which is really outside the model. And
usually one way or another through this we're stuff which is completely outside
our idealized models, attacker gets partial and, you know, unfortunately microbay
some cases even complete information about the secret key.
So until recently, even though kind of there are a lot of, you know, almost
anything cryptography you can kind of relate it to leakage but until recently
essentially the usual responsible cryptographer says well, what can be done? I
don't know about the monitors or, you know, electronic magnetic [inaudible] I'm
not going to write papers like the monitors and, you know, the model or
something like that.
So it's not really our problem. We have a clean model you guys, whoever,
electrical engineers or programmers or security guys or [inaudible] experts or
guys, you know, security guards downstairs, you really have to do a better job to
make sure that our keys are not stolen. So this is kind of, you know, of course
those guys says well, look, it's inevitable, something gets stolen. So anyway
probably what you guys prove is anyway irrelevant. So there is this blame game.
But recently I guess it has been this dedicated effort from a cryptographic
community to do well of the leakage-resilient cryptography and to say let's try to
help. Of course we're not going to get to the low level details how exactly you're
going to, you know, get information about the secret key even though we will try
to be as gentle as we can.
But let's let -- let's add this highly adversarially specified leakage to the idealized
adversarial attack model, and I'll talk about it microbay the next few slides. There
are many options how to do it. And then what we want to do, after we add this
well defined kind of leakage oracle but still adversarial chosen leakage oracle to
our own model we want to design primitives which are provably secure even if
the adversary sees some leakage of the secret key. And hopefully this will allow
us to bridge the gap between theory and practice. And know, this is a young
field. It remains to be seen how far it can bridge the gap. But it's kind of a very
highly promising deduction, and I'm excited about it.
So how do you model leakage? Well, the start is easy. Let's start as a theory.
We will just give the tracker what we call a leakage oracle. There is this owl or
whatever it is that [inaudible] the secret key and the attacker can specify some
function without loss of [inaudible] to a bid because maybe you can call the
oracle multiple times and you will just get one bit of secret, you know, the
function of the secret key.
And of course you can say okay, great, give me first bit of the secret key, give me
a second bit of the secret key, I mean, you're not going to prove any security.
So naturally we -- some will need to restrict the leakage such as attacker doesn't
get secret key microbay full and, you know, one of the stupid comments I got on
a grant application when I wrote something like that, people, you know,
somebody says oh, it's like a theoretician, how can you do it? Well, the attacker
gets something microbay full, well it's kind of a stupid comment but still let me -yeah, I mean look, unfortunately we cannot do magic, we cannot do everything.
So if some who you really don't protect your secret keys that, you know, the
attackers powerful enough to get it microbay full, there is nothing maybe you can
do. But at least if it's reasonable and [inaudible] attackers don't get the key
microbay full because maybe they don't get full access and they just measure
some temperature or something like that, it would be very nice to kind of say
something probably secure about that.
So what it means is just defines if you actually want to put cryptography microbay
provable security here, we have to put some restrictions on the kind of access.
And naturally there are two kinds of dimensions of restrictions that we can put.
The one I'll talk about it on the next slides but roughly the first dimension is -bounds the number of queries during various stages of attacks. So maybe one
bit so you don't [inaudible] it too much. And also maybe the second time of
orthogonal is maybe restrict the type of leakage function. Maybe you can
compute on a like low complexity function so some noisy functions or something.
I'll give you some examples microbay a second.
And so this is kind of exactly what we are going to do. So let me talk a little bit
more about this leakage model. And from the purposes of this talk I want to
make the full distinctions. The first distinction is the last two bullets of the slides.
I'm going to distinction -- to maybe a distinction between restricted attacks versus
memory. So kind of green is better throughout the slides.
So restricted I'm not putting reference -- I'll put references at the end if I have
time. But people kind of can see it maybe the top one, the physical bits like
microbay this case more tampering but, you know, those work on like physical
bits maybe some kind of low complexity circuits, something, for example,
microbay complexity AC0 circuits, you cannot compute even parity or something
like that.
A very poor axiom variance of this axiom says this only computation leaks
information. So for example if you don't turn part of the secret key you cannot
leak on that secret key. And, you know, variance of this axiom like independent
leakage and so on. And so on. So this is also very, very interesting type of work.
The problem is of course it's not, you know, fully general and the second problem
kind of really forces you to be -- to still prove that to, you know, [inaudible]
particular kinds of things you need to know how the secret key's stored microbay
memory and so on. And of course there is this memory, what I call memory
leakage where you know it will say hey, look, any efficient function F is legal. I'm
not going to place any restrictions. So definitely if we can protect here, I'm
microbay great shape.
And of course the second very big distinction which is, you know, recently started
to be kind of more pronounced but, you know, it definitely is a very important
distinction, so informally they will call it one-time versus continual leakage. So
one time it didn't men that you can call the oracle only one time but essentially
just means that there is a a priori upper bound to how many times you call the
oracle throughout the lifetime of the system.
So overall, there is some leakage we call it leakage parameter capital L and you
can call the oracle at most like capital L times, and usually let's say capital L is
less than the length of the secret or something like that. Right? So this is what I
call one time schemes and continuous leakage schemes. So let's change one
more letter. It's unrealistic still. Maybe if my scheme is used for a while then
eventually the attacker will get more information of the secret key so this model is
kind of interesting. It's very, you know, at least to some beautiful theory. But still
this model might not be applicable. There are some relaxations of this model,
something called bounded retrieval model and so on.
But still this assumption is a long one. It's going to be problematic.
So the second line it relaxes the model a little bit to chief stronger security, can
say you know what we are, we are going to periodically refresh the secret key,
so, you know, initially let's say I will draw it kind of microbay different colors to
initially have the thread secret key and then some [inaudible] say well, you know,
maybe too much of the secret keys kind of leaked, maybe it's safe I should
refresh my secret key. So now it becomes kind of green. Maybe I'll refresh
again it becomes yellow and so on.
So then microbay between the refresh you still don't necessarily bound the
number of leakage queries so the amount of information that I can get about the
secret key. It against to look, if I refresh frequently enough, and I'll talk more
about refreshing microbay a second, this is hopefully realistic. But overall, the
overall leakage of the system is not leaked. So this is really what practitioners, if
you talk to [inaudible] other people also microbay practice, you know, I talk to
various people, this is really -- this is a model of a, you know, I contributed to a lot
of, you know, works but it's a nice theoretical model but microbay practice and it's
useful for this model, but really this is the model that, you know, partitioners want
because this is what realistic side channel attacks do.
Okay. So kind of to summarize, we have these two larger orthogonals. There is
some interception but largely orthogonal dimensions. You know, one time versus
continuous, restricted versus memory attacks. And very roughly there was a lot
of work, especially recently, starting from '09, '10, you can see a lot of references
here to these years. And I cannot like really cover all this work. But there has
pen a lot of very, very interesting beautiful work on all kinds of things.
But unfortunately so far, you know, this corner was pretty much untouched. I
mean, I will talk about what is known but not much.
>>: [inaudible].
>> Yevgeniy Dodis: AKA? Oh, that's authenticated key agreement.
>>: Oh, okay.
>> Yevgeniy Dodis: Yes, authenticated [inaudible] or something like that. Yes.
So essentially really if I want -- if I don't want to worry about computational leaks,
something completely unrestricted leakage but I want to have continuous things
so the secret key kind of updates nothing was known so far, and this is what we
tried to achieve microbay this work. So can we achieve the best of both worlds?
And throughout this talk that's what I'm going to call CLR, doesn't even
[inaudible] it means continuous leakage resilience, this is a model that you know,
we are going to try to get the first key microbay this model. Okay?
So just to recap or model of continuous leakage resilience, I mean, I kind of said
it, but let's be precise because random references and so on. The credit key will
be updated. It will be updated to only using local randomness. So I don't want
like any external servers so like time periods or something like that. I myself, on
my computer, you know, ideally hopefully using good randomness, we will locally
refresh my secret key.
Other users, they do not need to know that updates exist, they do not need to
know how frequent they are, I don't need to do updates periodically. It's
completely up to me if I think I am more compromised, I'll be able to update more
frequently. If I think, you know, I've been sitting at home and didn't do much of
[inaudible] update, it's completely up to me. Microbay particularly the public key
doesn't change because other people don't know, so definitely I cannot change
public key.
So for other people who don't know, it's totally my own local maintenance
procedure to periodically refresh my secret key. And no time periods, no
synchronized clocks, nothing like that. Okay. So clean model like that.
As I said, number of leakage queries will be bounded by the parameter L, which
will be less than the secret key microbay between the updates, but there is no
bound over the lifetime of the system. And.
>>: [inaudible] there's no leakage during the update?
>> Yevgeniy Dodis: I'll talk about it.
>>: Okay.
>> Yevgeniy Dodis: So I mean everything I, you know, work very hard,
everything I think I will be very surprised if there is a question which is not
answered on the slide.
>>: Okay.
>> Yevgeniy Dodis: But still feel free to ask questions. So there will be no
restrictions on the type of leakage. So these will be memory attacks.
So microbay intuitive way we will get our securities that our adversary, you know,
when he breaks microbay now he cannot predict my future randomness. So for
example he cannot do this, you know, future, this kind of predict realistic attacks
that you kind of break microbay, compute what would my key be like 20 years
from now, whatever, like and then for every new kind of break-microbay the
[inaudible] of my key 20 years from now. So very important question for the time
asked there are no leakage during key updates and practice is extreme important
that [inaudible] during leakage key update, but microbay our schemes, our final
scheme we'll have it. I'll talk about it. But microbay the basic model we'll already
have our hands full with the model where we do not allow any leakage during key
updates. As we'll see it's too highly non trivial because it's completely [inaudible]
there is no external server and so on. And the keys still have to remain
functional. I cannot just wipe out my secret key because you know, it has to
respond to a public key, it has to remain functional. So it's not a trivial thing.
But for now, let's assume that the updates are leak free and I will show you a
completely general theorem which will kind of allow us to generically go from this
model to the model that allows some leakage during key updates. But for now
this is great question.
And of course another thing we definitely don't want our schemes to have
efficiency which kind of degrades even logarithmically with the number of
updates. Yeah?
>>: [inaudible] erase the past secret key.
>> Yevgeniy Dodis: That's [inaudible] yes. So I do issue [inaudible] yeah.
>>: [inaudible].
>> Yevgeniy Dodis: Well, I mean even if I have -- yeah. I mean [inaudible] but
you can kind of put microbay perfect into this leakage, you can say look, I
assume every time I erase maybe like seven bits of my secret key is not leaked,
so this can be kind of formally model that I decreased it by seven and the
attacker also learns. So you can do stuff. But yeah. I assume, you know,
perfect.
So to answer this question it's very important. So I tried to be as precise as I
could about the model, but it's very important that you get it. Good.
So the worst may be [inaudible] but the most is most relevant to our problem. So
nothing was known is first iteration we had encrypted two years ago where we
kind of designed this one time schemes, you know, microbay the -- again, a
memory task.
And we know it is very trivial to hear of a variant of CLR signatures where the
updates require external master key which never leaks. So this master key is
only used like I put it on some, you know, external CD or something like that.
And I don't need it to run regular operations like regular signatures and so on, but
when they do updates, maybe I go offline or something like that. And I just
refresh my secret key.
And it's actually not completely trivial, but it's pretty simple. It's just pretty simple
way to take a regular signature scheme and the one time secure signature
scheme, you know, one time leakage resilient signature scheme and compose
them together. I'll let you think about it. But it's pretty simple.
So and then there is a very nice paper that I will mention a little bit at the end by
Vinoit [phonetic] and others also ends up counting forks. But their initial kind of
results that we knew before they started their work. They kind of had the, you
know, I would say semi heuristic indications that maybe actually this remarkable
primitive of continuous leakage resilience is possible. So they give a
construction of CLR signatures based on a pretty strong non-standard
assumption which for technical reasons they kind of, you know, use the hash
function inside this assumption but even if the hash function is modelled as a
random oracle you for technical reasons cannot prove security. But you can
make it highly non-standard assumption about PCPs and so on that will kind of
show that some extremely inefficiencies of our signatures might exist.
Which it kind of gives you some hope, but it's definitely inefficient, so it's kind of,
you know, what is the question, you know, can you actually really do something
useful?
So our results -- so we build CLR schemes under standard assumptions. Well,
the assumption is called K-linear assumption which is by now a standard
assumption bilinear groups. So we will use, you know, a little bit of pairing
operation. But as I said, well, I'll mention it on the next bullet.
So microbay the best schemes we can leak up to one-half of the secret key
microbay between our updates.
All the schemes are really practical, efficient. Well, they use pairings. But
essentially any scheme, you know, take a scheme which uses pairings, those
schemes will be essentially as efficient as that schema may be like 20 percent
slower, something like that. But it's not like some theoretical thing, it's a
complete very, very efficient schemes. Okay?
And which addition and continuously is resilient. And even though this
application is kind of the main application, is way we derive this application, we
build this primitive which is the most basic cryptographic primitive which is useful
but by itself maybe not that interesting. It's just one-way relation, which I'll talk
about the next slide. And once we build one-way relation, we will plug microbay
previous machinery, which is you know nontrivial machinery, but we'll plug
microbay machinery, previous machinery and kind of argue that it works with our
stuff and we get the small application, which is interesting stuff, but I really want
to tell you as a novelty, so we'll really concentrate largely on this continuous
leakage resilience one-way relation for much of the talk.
So let me tell you the definition that's kind of you can guess it, but let me be
explicit so that we're on the same page. So one away way relation microbay
general is, you know, there is a key generation procedure without -- with a secret
key and a public key, okay? And you know, there is a verification procedure,
some relation R, which kind of checks is the secret key really a public key and,
you know, under normal circumstances it should open. So that's great.
But the attacker who doesn't know, who only gets the public key is very hard, it's
computationally hard to find any secret key satisfies their relation. That is kind of
relation of one-wayness, but instead of one way functions we talk about relations.
General relations as opposed to functions.
All right? So this is a standard notion of security. So what we will want, we will
want to have [inaudible] relations but we will also want to have a new procedure
which didn't exist before, which is this randomization procedure which use only
local randomness which allows us to rerandomize the secret key, right?
And the correctness should be the new key, the green key should still verify so,
you know, we want to do it, you know. And we can do it as many times as we
want, you know, the efficiency shouldn't degrade kind of. And all those green,
red, blue, whatever other colors, all the keys should be good.
So this is just kind of correctness, kind of correctness requirements. Good. So
what about security? Security is exactly what you would expect. So the attacker
started with maybe the red key. He can ask up to L queries about the red guy,
what the second bit, what is like the third bit of SHA-2, the secret key, what's like
fast forward a transform like, you know, 17 bit or something like that?
You know, collect this information, get this part of the secret key. Now the key
for now is securely refreshed. But, as I said, we'll add randomness, you know,
leakage during randomness later. But for knew it's perfectly securely refreshed.
It becomes green. The attacker again asks question. It gets this, you know,
green guy. Now the key is refreshed to yellow. It gets you know passed to the
yellow guy. And for arbitrary not paranormal number of periods he gives this
information. So the total leakage could be unbounded, right. It's just bounded
microbay between the periods, right?
And now the attacker does a magic thing. He tries to combine the keys, you
know, to form a meaningful key and he isn't be able to succeed. Okay? So this
is a notion of continuous leakage resilience which is hopefully very nice
[inaudible] kind of, you know, abstract the novelty. Okay. Any questions? Okay.
Good.
So very briefly, kind of informally, what the difficulty of constructing one-way
relations, well, aside from the fact it hasn't been done. So microbay the
reduction, if you think about it, you know, you need to know many secret keys
microbay full. Because intuitively how else would you simulate leakage if you
don't know the secret key microbay full and you should be able to, you know,
answer arbitrary function? You kind of need to know many valid secret keys,
right?
Nevertheless when the attacker forges, when the attacker kind of forges a secret
key for their relation you need to solve some hard problem, right? So intuitively
what you want to hope, you hope the [inaudible] was a forgery is of a different
type than the kind of keys that you know. Right?
But the attacker gets unbounded now amount of information microbay total. I
mean, how do you ensure through this overall unbounded number of [inaudible]
the attackers doesn't learn of the kind of type of the keys that you know? Yeah.
>>: [inaudible].
>> Yevgeniy Dodis: Exactly. Microbay some sense. It's similar to the signature
paradox except here microbay some sense it's -- you know, well, I will tell you it's
even harder because there is this leakage queries. But, yeah, it's kind of for the
signature you necessitated to be able to force signatures of messages and hear
from a new message. You can do stuff but, you know, they can do more stuff.
You can change public keys and the reductions are here kind of the [inaudible]
the public begins to stay the same.
But it's very similar and if you manage to overcome this difficulty I'm just kind of
pointing out, you know, the difficulty microbay at least microbay particular non -you know, previous techniques kind of would fail precisely let's say previous
technique for one-time leakage won't extend precisely for this difficulty. Right.
So this is kind of [inaudible] but you know, we'll solve it. And hopefully I'll try to,
you know, tell you how we'll solve it microbay a general way before getting into
specific assumptions.
This is and outline. First I will tell you a general strategy which microbay some
sense will be the heart of kind of how to go from continuous leakage to one-time
leakage to more complicated problem, one-time leakage that was previously
nope how to solve but still going to be one-time leakage.
Then it will show how to relatively specialize but still general constructions that
[inaudible] specially encryption and no interactive zero knowledge proofs we
would be able to, you know, solve this one time leak problem and finally I will
show you an efficient instantiation of this component based on this assumption.
>>: [inaudible].
>> Yevgeniy Dodis: Yeah.
>>: [inaudible].
>> Yevgeniy Dodis: Yes, a bit leakage is definitely the secure update is trivial.
You can use [inaudible] or you can use generically. For any primitive you can
use something called asynchronous form. You store something big and then you
know is the attacker [inaudible] if you bits that your secret is kind of secure.
Yeah, so for bits -- yeah, and refresh is from -- it computes the secret and
encode it again. It's trivial. At least without leakage.
>>: [inaudible].
>> Yevgeniy Dodis: Yeah.
>>: During the refresh ->> Yevgeniy Dodis: So during the refresh I'll show some general theorem, but
I'm pretty sure microbay five minutes we'll come up with a scheme like that. It's
trivial.
>>: [inaudible].
>> Yevgeniy Dodis: [inaudible] is a difficulty, yeah. Not just bits as opposed to,
you know, anything else. Yeah. So clearly channel functions. Yeah. All right.
So let's start with this. So I'm going to give you -- so this is a strategy. So this is
a little bit -- I think the definition is very natural, but essentially I'm going to tell
you if I can define a specially kind of one-way relation which shares some special
properties, it will automatically be continuously secure. Okay.
So what is the kind of relation? So imagine this is a space of all possible secret
keys and there will be -- and, you know, we can always given a relation have this
blue said of valid secret keys. Those are secret keys just verified. This is a set
of valid secret keys. They [inaudible] of the secret keys verified.
But some who secretly a little bit too -- this side will be partitioned into good keys,
green keys, and bad keys, red keys. All right? So we'll of to design [inaudible] is
kind of the secret key is kind of secretly partitioned of the two sets.
And during key generation, not only do we sample public key and secret key, but
we can sample three keys which only use to improve the security, but they are
not used kind of microbay the scheme. But we can kind of sample three keys.
We can sample a sample -- a samG key, which intuitively allows us to sample a
random good key.
We can sample samB, which is kind of some key which intuitively will allow us to
sample a random bad key. And we can also sample a trapdoor so that we can
actually -- which actually can tell them apart. So that, you know, just which
essentially defines what is good and what is bad. Right:
>>: So what are the white keys microbay the picture?
>> Yevgeniy Dodis: Association this is invalid. So this is just a space 01 to -and if the secret key is 1,000, this is just all possible key. This is the keys that
don't verify. I mean they will disappear very shortly. I'm just saying this is a
global set of -- this is a domain of keys. Yeah. Secret keys. Good. So all right.
>>: [inaudible].
>> Yevgeniy Dodis: The key is a key which just allows me to actually to test.
Given a valid secret key it will tell me.
>>: [inaudible].
>> Yevgeniy Dodis: Is it green? It's just performing -- what does green and red
mean actually? I mean DK is a formal way to define what green and red actually
means. Good.
And also of course -- and we need the syntactic property which will allow us to
randomize. We still need -- this is already exist microbay CLR. They need to be
able to microbay the mind actually green keys. So given a green key using local
randomness I should be intuitively able to sample a completely fresh green key.
So intuitively this procedure around which is exactly the procedure which we'll
use, actually if it happens to get the key which is good, it's not going to sample
maybe -- it's essentially going to sample essentially a random good key. So
that's the kind of restriction, you know, so we will put microbay our rear end
procedure. Okay. So clearly so this is the kind of -- so this is the kind of, I'll tell
security properties microbay a second. But this is the kind of syntactic properties
that I want for now. Yes? Any questions?
>>: [inaudible].
>> Yevgeniy Dodis: Oh, no security properties yet. I'll put them on the next
slide. So there is no security. This is just syntax for now. Okay. Now security.
So I won't like two complementary properties, hardness of good keys and
hardness of bad keys. The hardness of good keys says that even if I give you
essentially a way to -- you can sample yourself arbitrary mainly red keys. If you
want I give you the sampling key for red keys. It's computationally hard to get a
green key. So given not just even [inaudible] I just give you red key, even give
you, you can sample as many as you want red keys, you cannot get a green key.
And the other way around. All right? So these keys are kind of from one it's hard
to get [inaudible] so assumptions very difficult. Okay? I mean very different from
each other.
And the new property which is microbay substance -- all properties are important
microbay the proof as you will see, but this is really the key property that will
allow us to push stuff forward. We call it leakage indistinguishability property.
And leakage indistinguishability property says that, you know, that adversary get
public key and he can sample both good and bad keys. He can do, you know,
whatever he wants. Behind my back I sample -- essentially it says that red keys
look like -- are indistinguishable from green keys.
I will pick at random one of the keys, okay, and I don't give you it microbay full
but you can get up to L bits of leakage about the key that I pick behind my back.
So you can learn a lot of information, but not all of the information.
And then you output an arbitrary key other key SK star and you win if SK star is
microbay the same category as the key behind my back. So essentially you are
trying to guess which key I pick behind my back, but you don't see it completely.
You see this. Well, of course just kind of to make sure that you follow what the
problem if you see it complete like microbay this property is impossible to satisfy,
you just copy the key, right? And so it's just, you know, just to make sure,
otherwise it's not trivial. Yeah, of course.
So there is red. So this is -- but this leakage is -- leakage microbay this thing
should be trivial. But it really doesn't say that it's hard like to copy my key. It
really says you cannot correlate because you can sample arbitrarily your own
keys. You really cannot kind of, you know, correlate intuitively it says that you
cannot correlate the category of your key, the ones that you come up. Because
notice you cannot even test yourself if your key is green and red. You know red,
but you -- you know, you cannot correlate it with a hidden key.
>>: [inaudible].
>> Yevgeniy Dodis: We're thinking about leakage normal liability, it's just normal
liability you know it focuses on one aspect but we really want to emphasize
because it's both indistinguishability and normal liability so microbay some sense,
yeah, it has aspects of both. We felt indistinguishability is a more important thing
to stress, at least for the [inaudible] but yeah. Yeah?
>>: You need another indistinguishability [inaudible] microbay the previous slide,
right?
>> Yevgeniy Dodis: No. Oh, yeah, this is -- [inaudible] but yeah. This is -- I view
the correctness property. But, yeah, sure. I view it more as a correctness
property. You know, the previous slides that if you just randomize the secret key
you get a fresh key. But, yeah, you can view it as security property. But I view it
as a correctness property. And there is no attacker, it is just, you know, good.
All right. So now I claim -- so we call it leakage indistinguishability randomizable
relation, short long and [inaudible].
And the important thing, look, this is a really weird primitive. I mean you have
this beautiful continuous leakage zero one-way relation. You know, natural
definition actually what you want. Now they give you these three new trapdoors
and so on.
The important thing is that this weird new property is a one-time property. And I
claim, and as we will see, as I will show you microbay next slide, anything which
is like this weird one -- satisfies these weird one-time property can do a hybrid
argument to get a rue usable property. Okay?
So let's see the proof. It's actually very simple intuitively, and it is really simple.
So let's start with the real experiment for continuous leakage resilience. So the
attacker sees, you know, only good keys randomized -- essentially we start with
the green key. Any other key [inaudible] randomizing it, it always is inside is
green stuff. And you get leakage from these things and so on. And then
eventually come up at a forgery, okay.
So I claim that your forgery must be a good key. Why? Because, look, if you
only see green keys and then you output the red key, you broke hardness of red
keys. Right? From only green keys you can come -- you came up with the red
key. That should be hard. Right?
So the forgery should be red. This is our first property.
Now I'm kind of going to play this hybrid game with the adversary. One by one
I'm just going to switch, you know, a key from green to red. Just one by one I'm
going to make this hybrid games where I just switch one key from good to bad.
And I'll see if [inaudible] notices. And I claim but leakage indistinguishability the
forgery, every time I do none -- one switch like that, the forgery should still
remain good. So it's kind of unlikely that, you know, I switch one key from red -from green to red and previously the attacker forged the green key and now
suddenly attacker forged the red key.
You said look, I assume he does it. That contradicts leakage indistinguishability.
Because the only difference between these two worlds is that one key
essentially, one key behind my back, you got L bits of leakage about the key, and
suddenly you manage to output the key microbay a different category. Kind of
you correlated with the categories that I had, essentially, you -- initially it was
green and now it changes to red, you started to get red.
So this is exactly leakage indistinguishability. And of course you say well, wait a
second, how do you get the other keys? And of course you say well, wait a
second, how do we get these other keys. [inaudible] even if you have your own
sampling keys. So those -- those keys and these keys you can sample yourself.
So this is intuitively. So leakage indistinguishability we allow it to do this hybrid
argument. And finally, all the keys are red. But the forgery still remains green.
But that the contradict the hardness of good keys. Because now microbay these
experiments all the leakage is from the red keys but you still forge the green key,
and that's a contradiction because green keys are hard to get from red keys. All
right? So this is -- any questions about this?
All right. So anyway, so this is maybe abstract them -- sorry. But, you know, it
really took us a while to abstract this property. So maybe looks trivial but it really
simplified us to kind of present our construction this way.
So now the construction based on PKE/NIZK, so this is the outline of the
construction. So we are going to use some magical, two magical encryption
schemes and you know, no interactive -- and I apologize. Hopefully you'll get at
least -- if you get even that part up to now, it's fine. I see the construction is
natural but, you know, fortunately it is, you know, somewhat technical. But it's
intuitive. So anyway, I have two public encryption schemes you know and a
special no interactive zero knowledge proof. And here is the syntax of my
[inaudible].
So my public key will be on a common reference string for the NIZK it will be two
public keys and a ciphertext. Essentially my public key is an encryption of a
random message. So ignore those other public keys. A public keys encryption
of a random message. Okay? The syntax of the secret key will contain another
ciphertext and a proof. And intuitively secret keys will say C2 encrypt the same
message. So C1 and C2 encrypt the same message.
But maybe the nontrivial encrypt but the proof verifies. So valid secret keys
means that P really proves that C1 and C2 encryptions are the same message.
Okay. So public key is encryption one of the message and intuitively secret key
should be encryption two of this message and approve. This is a good
encryption.
So a good secret key will actually mean that they really encrypt the same
message. So if you actually decrypt you get, it's not just the proof verifies
because maybe it's a fake proof. Maybe somebody forged the proof. But it really
means that they decrypt the same to the same message. Okay? And I claim
you can sample very easily from the trapdoor, which is M and R. So if I give you
the message and the randomness used to encrypt this you know the message,
you would just encrypt the message under the second key yourself, you have the
witness, R is the witness so you generate the proof yourself honestly so you can
easily simple fresh secret keys. Without using this trapdoor you can sample
fresh secret keys. Right? So this is good keys. And what the bad keys?
Intuitively bad keys are the keys which don't encrypt the same message but
[inaudible] verifies. And those are very easy to sample. You like encrypt
garbage. And if you have what is called simulation trapdoor [inaudible] for those
of you who know simulation trapdoor allows you to go forward with any kind of,
you know, valid proofs for [inaudible] so intuitively it will allow it to be -- to give
proofs of false statements. Okay?
So this is a syntax of the construction. We are far from done, but this is a syntax
of the construction. Okay? And distinguishing how to distinguish them, well, if I
give you two secret keys you can -- just decrypt and check if the message is still
the same. All right? So anyway, this is a syntax. Okay. Good. Now we just
need to briefly argue these properties. And it turns out some of them will be
actually not that complicated.
So let's start with the simple property, almost a trivial property, which the
hardness properties. All right? So this is a scheme. I'm sorry. Just truss me,
this is the same scheme. You know, encryption of random message, encryption
of random message proved. So I claim that PK1 is just semantically secure,
even one way secure, and pi is a sound proof. You cannot prove false
statements. The scheme has its hardness. Look, assume I'm giving you a
trapdoor to generate good keys. So you have the message and the randomness.
All right? And you need to produce a bad key. What is a bad key? It means that
you need to encrypt a different message and fake a proof.
Well, but that means you fake a proof. You produce the proof of a false
statement. That should be hard. Right? So given, you know [inaudible] it should
be very hard to fake the proof. Soundness isn't easy.
Now, if I give you a way to generate fake proofs the [inaudible] of this statement
doesn't really matter. How can you produce a good proof? Well, a good proof it
means that I encrypt the random message, I give you encryption of a random
message. Now what you need to do, you need to produce a different encryption
of the same message. Well, but if you produce a different encryption of the same
message it means that you [inaudible], you know, the encryption. Because I can
just decrypt it and, yeah.
>>: [inaudible] if the adversary has an [inaudible] has the encryption why can't
he just encrypt the same?
>> Yevgeniy Dodis: The adversary will not see it. Remember, this key is -- I'm
sorry. This keys are just [inaudible]. So I just need to tell you how to do a key
generation so that I simultaneously also generate this way to sample a random
good key, a way to sample a random bad key and this -- so the adversary -- I
mean, it sounds -- the properties adversary will get this key.
>>: [inaudible].
>> Yevgeniy Dodis: Sorry? Okay.
>>: [inaudible] M and R?
>> Yevgeniy Dodis: So it depends on which property. So microbay the property
of hardness of good keys, of hardness of bad keys he will get M and R. So he
will get M and R. But his job is to forge a bad key. What does it me to forge a
good key? It means that he has to produce encryption of a different message
and the proof it verifies.
>>: [inaudible].
>> Yevgeniy Dodis: He has a public key. Sure.
>>: [inaudible].
>> Yevgeniy Dodis: But he has to encrypt -- it has to be a bad key. Of course he
can encrypt a good -- you know, [inaudible] and produce a good proof. But then
->>: [inaudible] a bad message why can't he -- oh, because he can't make the
proof?
>> Yevgeniy Dodis: Yeah, because, yeah, he doesn't know the trapdoor to the
CRS. So he only gets a sample -- a good sampling key. He cannot produce a
bad [inaudible].
>>: Okay.
>> Yevgeniy Dodis: So he, on the other hand, he will actually get the trapdoor so
that he can fake proofs, but his job is to produce a good key, and that intuitively
means that he has to encrypt -- decrypt E1. He has to break encryption of E1.
Right. So these two properties -- yeah?
>>: Why cannot he just like bring it?
>> Yevgeniy Dodis: So what -- so intuitively -- well, because if he reencrypts, it
means that he decrypted the first encryption because I give you encryption of a
random message. I don't tell you. You produce a different encryption of the
same message. Right? I don't care if you know the trapdoor and some proof.
But it has to be of the same message. Under different public key. So it means
that, look, you could have -- microbay the first three -- microbay the reduction to
the security of E1, I can just choose a subsecret key for the set of encryptions,
can you produce an encryption of this thing? I encrypt it and I break the first
encryption scheme. Right? So these are like really simple properties. And so
now, you know, I'm going to do the randomization. So this is something
previously -- starting me to make serious assumptions. Yeah?
>>: [inaudible].
>> Yevgeniy Dodis: Of course, of course, yeah.
>>: Could we go back to the hardness and the bad keys? Saying the [inaudible].
>> Yevgeniy Dodis: Sure.
>>: [inaudible] he creates a ciphertext which is a new ciphertext but it's an
encryption of the same message he has the trapdoor ->> Yevgeniy Dodis: But it's a different public key. So E1 and E2 have
completely independent pees. So this is not -- it's not like I'm using the same E1
and you know -- it's not like I'm -- I use two completely independent encryption
schemes. So what I'm saying if you can do it, it doesn't matter if it's
homomorphic or not. Microbay fact, our schemes will have to be homomorphic.
I just break encryption.
So I get a challenge, encryption of a random message, I pick public key secretly
or for the second scheme myself, I give you that as a public key. You produce a
second encryption of the same message I decrypted. I said oh, great. I broke
my first [inaudible].
So the randomization. So now I will need to assume some special properties.
And if you think about it, what is our secret key? If you have a secret ski, our
secret key is the ciphertext and the proof. So I need to randomize the ciphertext
and the proof.
So the randomization ciphertext as you said, many encryptions will do it,
microbay fact if encryption is what is called homomorphic it's very easy to
randomize a ciphertext for many standard encryption schemes. Proof is a little
bit weird, because after we randomize C2, the statement for the proof changes.
The first part is microbay ciphertext remains microbay the public key, but the
second I just refreshed. So I need to kind of make sure that I need to update the
NIZK proof, NIZK for some old statement, a NIZK for -- a fresh NIZK for a new
statement. So it will be kind of nontrivial.
So here is what we are going to assume. We are going to assume that the one
and two and pi are homomorphic of appropriate groups. So for encryption
homomorphic is essentially natural. These three pluses are different you know.
They don't have to be the same. But intuitively it just means if you just add two
encryptions up, it's like encryption of some of the message and some of the
randomness. And essentially any encryption you study microbay the first course
like [inaudible] for appropriate meanings of plus will have this property. So this
is, yeah.
>>: What is the update [inaudible] obviously it can have a witness for the new
statement ->> Yevgeniy Dodis: So this is the next two bullets. So let me discuss. But great
question. Yeah, this is like the new, the novel stuff, right. It's like how do you -you know, you have a NIZK for one statement, now you refresh the statement
yourself, you need to update the proof. So this is tricky how you can do it.
So it turns out that there's a syntax just to make sure how is it even possible
without breaking the soundness of NIZK. So it turns out that the NIZKs that we
will use will be NIZKs for homomorphic languages.
So what does it mean as homomorphic language? It means that you have two
varied differences, X plus X prime is also microbay the language. So there are
natural languages which are homomorphic microbay this, and microbay particular
we will see one.
And I claim that a homomorphic NIZK for homomorphic language it means that if
you have two proofs pi and pi prime are proof for two statements X and X prime,
if you have add up the proofs, you simultaneous -- you right away get a proof for
X plus X prime, which luckily isn't the language. So it's kind of this knows only
makes sense for homomorphic languages because otherwise you break
soundness. But luckily because, look, this valid inputs, so they have proof, you
add them up, it's still a valid thing. So there is no contradictions that you can get
a proof for a valid statement. Soundness only says that you cannot get proof for
fake statements.
So this is just, you know, this is just a syntax that shows that it's conceivable to
have this homomorphic properties. Right?
And this is really inspired, this notion is really inspired by a paper of Mihir and
Melissa, which use the -- which you know we use the fact -- you know,
randomizable and malleable NIZKs. We kind of have to go just a bit -- once the
further [inaudible] we even change the statements microbay some sense.
But, anyway, it turns out that once -- the point is if you have both encryption
schemes are homomorphic which is easy to satisfy by itself, the language of -they both encrypt the same thing is easily homomorphic. It's easy to see that,
you know, if these two guys encrypt the same message and another two guys
encrypt the same message, he adds them up, they both encrypt the sum of those
two messages.
So this is trivial a homomorphic language. And now I claim it's very easy to at
least a statement is very easy to randomize, it's actually very easy to randomize
the whole thing. If we have homomorphic NIZKs and homographic encryption
schemes syntactically, here is how we randomize it. So C1 is part of the public.
I'm not allowed to touch it. So this should be encryption for the same message.
So I will randomize it. I will let the random encryption of zero. Okay? Well, but
let's look at the resulting ciphertext. I can write it also as C1, C2 plus encryption
of 00, encryption of 0R. Right? I mean, this is just because the encryption is
homomorphic.
So for this I have the proof. For this statement I have the proof. But I don't have
any witnesses. I don't know anything. But here this is essentially an encryption
of 0 for which I now have a witness. What is the witness? It's 0 R. R I chose
myself. Right? So essentially the new statement I got is the old statement plus a
statement for which I know the witness. So what I can do, I can generate a fresh
NIZK for this statement, at it to the old NIZK, and I get a valid NIZK.
So this is just syntactically the [inaudible] of these properties I can randomize
syntactic stuff. Okay. So [inaudible] I should finish soon. Okay. Maybe like
three minutes. I'll skip a lot of things.
So anyway, this is like the important thing. Okay. So maybe like three minutes
on the most important property. This is kind of the key new property that we get.
So this is at least we manage to show that we have these magic things we can
have -- this property now is a novel property. And intuitively the novel property
needs something from E2. Pause I used everything else, all right. I used
properties. Encryption schema 1, I use the soundness and so on. But I didn't,
you know, use anything about it too. And it turns out if you just run the definition
of leakage indistinguishability, here is a new security property from E2 that you
need. So this is a security property. It's very cute.
As you will see, it's precisely microbay between chosen plaintext and chosen
ciphertext security.
The property is this. That given intuitively L bits of leakage over the ciphertext,
so usually you see the ciphertext. Here if you only see some partial information
about the [inaudible] ciphertext, you cannot produce a related ciphertext.
So formally the [inaudible] public key, he chooses two messages, challenges and
encrypts one of them, but instead of giving the full ciphertext to unable the
adversary gets only L bits of leakage on the ciphertext. So you cannot see the
entire ciphertext. The attacker has -- essentially produces another ciphertext C
prime. It makes a encryption query of this C prime and [inaudible] the encryption
of C prime says V is equal to B.
So it's not very hard. So we call it L leakage of ciphertext normal liability. So
intuitively it's kind of you know it's kind of a [inaudible] notion. And it turns out it's
not very hard to see, that it lies -- it's precisely microbay between chosen
plaintext and chosen ciphertext security. Just kind of -- this is kind of cute. This
did actionwide [inaudible] here because if the scheme is even one leakage
non-malleable security, so you can say, look, assume the scheme is not chosen
plaintext secure. How do I break this? Well, I look at the ciphertext, I have a
distinguished [inaudible] encryption of zero, of encryption of one. That's my
leakage function. I look at the ciphertext. I just [inaudible] whether it's encryption
of 01 and I break the scheme. And I just reencrypt let's say 01. So it's kind of
iteratively that this notion implies chosen plaintext, just a little bit less trivial but
also microbay two minutes you can see that normal liability implies this. And the
challenge of course you can say oh, great, just use non-malleable encryption.
But remember, we need the encryptions to be homomorphic. Right? Encryption
has to be homomorphic for the syntax. And this is a new property that we need.
So the question is is it possible to have this thing. So CP is iteratively to do
homomorphic, right, but it's not probably going to be non-malleable.
This is leakage nonmalleable, but it cannot problem be homomorphic. Can I do
something microbay between?
Okay. And this is kind of -- so anyway, this is a summary maybe I'll skip. But
essentially we show that everything will work out if we have E1, E2, and 5 which
are homomorphic and we do have this novel property and -- okay. Microbay one
minute I'll wrap up. So it's very nontrivial to instantiate those things. I just
wanted to give you the summary of this construction.
So luckily homomorphic NIZKs there is this paper of Groth-Sahai which happens
to be homomorphic. It's just beautiful paper. But it's only for restricted classes of
languages. But likely it is [inaudible] powerful enough for us.
It's secure under the K-linear assumptions. That's why we are stuck with K-linear
assumptions. So this is a magic box with essentially, you know, pushes this
thing through. But there is a lot of other work as you see we need to be done.
Anyway, this is a reasonable assumption so given what homomorphic encryption
E1 is trivial, just use a Gamal encryption or you know, it's easy to generalize it for
K-Linear. So if we got K-Linear for K equals one is just a DH assumption. So
just assume DH assumption. And for E2 it turns out that we can use
Cramer-Shoup-Lite encryption.
So for those of you know who -- so there is a full Cramer-Shoup encryption,
which is not homomorphic intuitively because there is this component which, you
know, is like hash of something, and it cannot be homomorphic because CCA-2
-- there is a CCA-1 version of Cramer-Shoup which is Cramer-Shoup-Lite, which
is easily homomorphic. There is no real components. We can just multiply those
or just propagate. But it's only CCA-1 security microbay general, it didn't apply
normal liability. But if you look at the proof -- I mean, I'm not going to tell you
intuition but it's not very hard microbay two minutes. I wouldn't be able to tell you
intuition. It's just, you know, [inaudible] easy adaptation of Cramer-Shoup proof
shows that he has this incompatible property of leakage normal security and it
gives you leakage one-quarter, but you can kind of add more elements microbay
the public key and you can get like one minus epsilon leakage normal liability.
So anyway, to conclude, so this is what we have. And then we constructed L
leakage resilient one relation based on K-Linear assumption. The leakage is
roughly speaking one over K plus one, depending. But you know, the
assumption is [inaudible]. So the highest case, the lower the leakage but the
more believable the assumption is.
And it's really practical efficiency. There's a constant number of group elements,
a constant maybe like 40 but you know, it's a constant. But I mean, there is no
PCPs, no [inaudible] deductions or anything like that. And this application, as I
said, using -- heavily using prior work adapted to continuous leakage setting will
show how to build the scheme. And it's -- that was actually very surprising.
Especially for signatures [inaudible] so this was actually a highly known trivial
bullet, but it's only one bullet but there's a lot of work microbay this bullet.
And okay. We won't mention -- I'll talk offline about leakage during key update.
We cannot [inaudible] if we're following implicit observation of this very nice
paper of [inaudible] that if you have a scheme which is L leakage resilient without
any leakage during key updates you can kind of treat one bit of leakage during
key updates if one bit of leakage inside key update. But unfortunately you pay a
factor of two over K microbay security [inaudible].
And this is -- it's a very cute but it's totally trivial observation if you think about it.
Corollary is that if you have an L leakage resilient scheme microbay the Q setting
it's automatically -- it can [inaudible] all the log of security parameter leakage
during key update.
So the moral is unless you break this barrier, which is a very difficult question, it's
a great open question to allow higher leakage during key updates, but unless you
can break this better don't even bother with the more complicated model, just do
it clean beautiful model which is already complicated, you know, and then
automatically for free get security with leakage during key updates. This is a very
practical and foreign thing, so it's actually very important that our schemes or any
other schemes that you can come up microbay the future will satisfy this property
from encryption signatures or anything you want. So this is kind of for free.
Okay.
We have other extensions, leakage of randomness during computation, you
know, all of those are nontrivial but it turns out that our scheme happens to
satisfy them with our work. So for example during signing, for one variation there
is more randomness, more local randomness, it's just you have a secret key to
verify it. But if you sign messages, you know, the signatures could be
probabilistic. So maybe not only your secret key leaks but the randomness
during signing leaks.
Or for key agreement you choose G to the A, G to the B, maybe those leak and
so on.
And so it turns out that there's some nontrivial work. We manage to do it, put
unfortunately our signature and ID -- sorry, our ID schemes and AK are only -sorry, signatures microbay AK are only a random oracle model, ID schemes as a
standard model. So, and you know, there are some more extensions. So there
is a very nice paper of Vinoit which unfortunately he is not going to talk about
here, but it shows how to extend -- I mean, it's totally different scheme, you know,
beautiful techniques. But they also show how to get continuous leakage resilient
public encryption and even like more stuff like AB. And it leads also to an
alternative construction of continuous leakage resilience one-way relation and
signatures. Ironically and implicitly when [inaudible] had like a very long like 50
page, you know, proof of this kind of thing, implicitly they also build a [inaudible]
so implicitly they, even though they do encryption, but if you look at the public,
the secret key relation it also builds a new leakage indistinguishable
randomizable relation. And ironically it's very different technique but they use the
same assumption. They don't use explicitly Groth-Sahai proof but algebra they
use based on the same assumption. There is some magic from very different
angles, you know, they came up with same schema. And even the schema is
also very nice. The schema has better leakage, one over K as opposed to one
over K plus one that we have and it is kind of the observations that we have
microbay proving a slightly you know bounds that I originally had.
So anyway, so this is state of the art and I'm sorry for, you know. The paper is
available.
>>: Let's thank the speaker.
[applause].
>>: [inaudible] offline for the break and then we'll resume at [inaudible] microbay
six minutes. Ten minutes. Okay.
Download