Fault Injection and a Timing Channel on an Analysis Technique John A Clark and Jeremy L Jacob Dept....

Preview:

Citation preview

Fault Injection and a Timing Channel on an Analysis Technique

John A Clark and Jeremy L JacobDept. of Computer Science

University of York, UK{jac,jeremy}@cs.york.ac.uk

Amsterdam 29.04.2002

Structure of the Talk Background Specific technical

Part I: Describing underlying perceptron problems

Part II: Describing simulated annealing Part III: Solving by search Part IV: Fault injection analogy Part V: Timing channel analogy

Conclusions and future work

Background: Side Channels for All

Some very high profile attacks have been demonstrated in the past decade that attack the implementation and not the algorithm

Fault injection (Boneh, de Milo and Lipton) Timing attacks (Kocher)

In this talk we aim to demonstrate that analysis techniques too may use such concepts

You can try to solve mutated or warped problem instances to see what happens (fault injection on the problem)

Observe the computational dynamics of the search (timing channel)

Will concentrate on general concepts

Background: Identification Problems

Zero-knowledge (Goldwasser and Micali) Early identification scheme by Shamir Several schemes of late based on NP-

complete problems Permuted Kernel Problem (Shamir) Syndrome Decoding (Stern) Constrained Linear Equations (Stern) Permuted Perceptron Problem (Pointcheval)

We shall demonstrate some new attacks on this problem

Part I: Underpinning Perceptron Problems

Won’t go into details of the protocols.

“A New Identification Scheme Based on the Perceptron Problems”

(Pointcheval Eurocrypt 1995)

Perceptron Problem

Given

A nm

1a ij

a......aa

...............

a......aa

a.......aa

mnm2m1

2n2221

1n1211

1 js

Find

:

: 2

1

ns

s

s

S n 1

0

:

0

0

:

2

1

mw

w

w

SA nnm 1

So That

Simple version used in some experiments.

Permuted Perceptron Problem

Given

A nm

1a ij

a......aa

...............

a......aa

a.......aa

mnm2m1

2n2221

1n1211

1 js

Find

:

: 2

1

ns

s

s

S n 1

:

2

1

mw

w

w

SA nnm 1

So That

Make Problem harder by imposing extra constraint.

Has particular histogram H of positive values

1 3 5 .. .. ..

Example: PPP Problem

PP and PPP-example Every PPP solution is a PP solution.

5

1

1

3

1

1

1

1

1

11111

11111

1111-1

1-11-1-1

)1,1,2(

))5(),3(),1((

hhhH

Has particular histogram H of positive values

1 3 5

Generating Instances

Suggested method of generation

1

1

1

1

1

• Generate random secret S

5

1

1

3

• Calculate AS

• Generate random matrix A

11111

11111

1111-1

11-111-

Significant structure in this problem; high correlation between majority values of matrix columns and secret corresponding secret bits• If any (AS)i <0 then negate ith row of

A

5

1

1

3

1

1

1

1

1

11111

11111

1111-1

1-11-1-1

Instance Properties

Each matrix row/secret dot product is the sum of n Bernouilli (+1/-1) variables.

Initial image histogram has Binomial shape and is symmetric about 0 After negation simply folds over to be positive

-7–5-3-1 1 3 5 7… 1 3 5 7…

Image elements tend to be small

Part II: Search - Simulated Annealing

Simulated Annealing

x0 x1

x2

z(x)Allows non-improving moves so that it is possible to go down

x11

x4

x5

x6

x7

x8

x9

x10

x12

x13

x

in order to rise again

to reach global optimum

In practice neighbourhood may be very large and trial neighbour is chosen randomly. Possible to accept worsening move when improving ones exist.

Simulated Annealing Improving moves always accepted Non-improving moves may be accepted

probabilistically and in a manner depending on the temperature parameter T. Loosely

the worse the move the less likely it is to be accepted

a worsening move is less likely to be accepted the cooler the temperature

The temperature T starts high and is gradually cooled as the search progresses.

Initially virtually anything is accepted, at the end only improving moves are allowed (and the search effectively reduces to hill-climbing)

Simulated Annealing Current candidate x. Minimisation formulation.

farsobestisSolution

TempTemp

rejectelse

acceptyxcurrentUifelse

acceptyxcurrentif

yfxf

xighbourgenerateNey

timesDo

dofrozenUntil

TTemp

xxcurrent

Temp

95.0

)( ))1,0((exp

)( )0(

)()(

)(

400

)(

0

0

/

At each temperature consider 400 moves

Always accept improving moves

Accept worsening moves probabilistically.

Gets harder to do this the worse the move.

Gets harder as Temp decreases.

Temperature cycle

Simulated Annealing

1 Do 400 trial moves

2 Do 400 trial moves

3 Do 400 trial moves

4 Do 400 trial moves

m Do 400 trial moves

100T

95.0TT

95.0TT

95.0TT

95.0TT

00001.0Tn Do 400 trial moves

95.0TT

Iteration

Part III: Solving By Search

Using Search

Aim to search the space of possible secret vectors x to find one that is an actual solution to the problem at hand.

Define a cost function: vectors that nearly solve the problem have low cost vectors that are far from solving the problem have

high cost. Define a means of generating neighbours to the

current vector Define a means of determining whether to move

to that neighbour or not.

PP Using Search: Pointcheval

Pointcheval couched the Perceptron Problem as a search problem.

1

1

1

1

1

1Y

1

1

1

1

1

2Y

1

1

1

1

1

3Y

1

1

1

1

1

4Y

1

1

1

1

1

5Y

current solution Y

Neighbourhood defined by single bit flips on current solution

1

1

1

1

1

Cost function punishes any negative image components

1

3

1

1

AY

costNeg(y)=|-1|+|-3| =4

m

i iAYYCost1

}0,)(max{)(

Using Annealing: Pointcheval

PPP solution is also PP solution. Based estimates of cracking PPP on ratio of PP

solutions to PPP solutions. Calculated sizes of matrix for which this should be

most difficult Gave rise to (m,n)=(m,m+16) Recommended (m,n)=(101,117),(131,147),

(151,167) Gave estimates for number of years needed to

solve PPP using annealing as PP solution means Instances with matrices of size 200 ‘could usually be

solved within a day’ But no PPP problem instance greater than 71 was ever

solved this way ‘despite months of computation’.

Perceptron Problem (PP)

Knudsen and Meier approach in 1999 (loosely):

Carrying out sets of runs Note positions where results obtained all agree Fix those elements where there is complete

agreement and carry out new set of runs and so on.

If repeated runs give same values for particular bits assumption is that those bits are actually set correctly

Used this sort of approach to solve instances of PP problem up to 180 times faster than previous for (151,167) problem.

Profiling Annealing

Approach is not without its problems. Not all bits that have complete agreement are correct.

Actual SecretRun 1Run 2Run 3Run 4Run 5Run 6All runs agree

All agree (wrongly)

1-1

Knudsen and Meier (1999) Have used this method to attack PPP problem

sizes (101,117) Uses enumeration stage (to search for wrong

bits). Used new cost function w1=30, w2=1 with

histogram punishment

cost(y)=w1costNeg(y)+w2costHist(y)

1

1

1

1

Ay)0,0,3()(

)1,1,2()(

yhist

shist

010123)(costHist y

Part IV: Fault Injection

PP Move Effects

What limits the ability of annealing to find a PP solution?

A move changes a single element of the current solution.

Want current negative image values to go positive But changing a bit to cause negative values to go

positive will often cause small positive values to go negative.

01234567 01234567

iAYi

W 2'' i

WiAYiW

Problem Fault Injection

Can significantly improve results by punishing at positive value K

For example punish any value less than K=4 during the search

Drags the elements away from the boundary during search. Also use higher exponent in differences, e.g. |Wi-K|2 rather

than simple deviation

01234567

AYW Rm

i iAYKYCost )}0,)((max{)(1

(201,217): K=20,15,10

(401,417): K=30,25,20,15

(501,517): K=25

(601,617): K=25

R=2

R=3

Results for PP Fault Injection Have solved instances of size (number of

solutions from 30 runs). Some solved directly - others after 1, 2,

or 3 bit local search(201,217): 3 22 26 29 13 15 26 27 28 11

(601,617): 1 1 0 2 0 4 4 0 0 0

Secret vectors solved three times as long as previously

PP Solution Correlation with Generating Secrets

(201,217): 79.2%-87.1%

(401,417): 83.4%-87.5%

(501,517): 80.6%-86.4%

(601,617): 77.5%-86.1%

PPP Extensions Used similar cost function as Knudsen

And Meier but with fault injection on the negativity part (plus different exponents)

n

i

Rsy

Rm

i i iHiHAYKGYCost11

|)()(|)}0,)((max{)(

Attack each PPP problem instance using a variety of different weightings G, bounds K and values of exponent R.

These are different `viewpoints’ on each problem.

PPP Results: Final Bits Correct Consequence is that warped problems

typically give rise to solutions with more agreement than the original secret than non-warped ones.

For example (101,117): up to 108 bits correct (131,147): up to 139 bits correct (151,167): up to 157 bits correct.

However, results may vary considerably and also between runs for the same problem

Democratic Viewpoint Analysis

Problem P

Problem P1 Problem P2 Problem Pn-1 Problem Pn

Essentially same as K&M before but this time go for substantial rather than unanimous agreement.

By choosing the amount of disagreement tolerated carefully you can sometimes get over half the key this way. And on occasion have had only 1 bit in 115 most agreed bits incorrect (out of 167)

It’s a 1 It’s a 1 It’s a 1 No. It’s a -1

Part V: Timing Channel:PPP

Profiling Annealing: Timing

A lot of information is thrown away – better to monitor the search process as it cools down. Based on notion of thermostatistical

annealing. Analysis shows that some elements will

take some values early in the search and then never subsequently change.

They get ‘stuck’ early in the search. The ones that get stuck early often do so

for good reason – they are the correct values.

Results: Initial Bits Correct The timing profile of warped problems

can reveal significant information. For example

(101,117): up to 72 initial bits correct (131,147): up to 97 initial bits correct (151,167): up to 98 initial bits correct

Again, results may vary considerably and also between runs for the same problem

PPP (101, 117)

PPP (101,117)

0

20

40

60

80

100

120

1 5 9 13 17 21 25 29Problem Number

Ma

x B

its

Co

rre

ct O

ver

All

R

un

s

Bits Correct in FinalSolution

Initial N Bits StuckCorrect

PPP (131, 147)

PPP (131,147)

0

20

40

60

80

100

120

140

160

1 4 7

10

13

16

19

22

25

28

Problem Number

Ma

x B

its

Co

rre

ct

Ov

er A

ll R

un

s

Bits Correct in FinalSolution

Initial N Bits StuckCorrect

PPP (151, 167)

PPP (151,167)

0

50

100

150

200

1 4 7 10 13 16 19 22 25 28Problem Number

Ma

x B

its

Co

rre

ct O

ver

All

R

un

s

Max Bits Correct inFinal Solution

Initial N Bits StuckCorrect

Multiple Clock Watchers Analysis

Problem P

Problem P1 Problem P2 Problem Pn-1 Problem Pn

Essentially same as for timing analysis but this time add up the times over all runs where each bit got stuck.

As you might expect those bits that often get stuck early (i.e. have low aggregate times to getting stuck) generally do so at their correct values (take the majority value).

Also seems to have significant potential but needs more work.

Conclusions I Search techniques have a computational

dynamics too. Have profiled the action of annealing on

various warped problems - mutants of the original problem.

Analogy with fault injection, though here it is fault injection on public mathematics

The trajectory by which a search reaches its final path may reveal more information about the sought secret than the final result of the search

timing channel on an analysis

Future Work A local optimum is a strong source of

information for cryptanalysis purposes: Can more subtle use be made of the distribution of

local optima found using annealing searches? Use ‘results’ of optimising as sources of

information. Can we detect secrets with extreme correctness

properties? MAX-XOR problems.

If you are given a large number of linear approximations for key bits (some of which may be misleading) what happens if you try to maximise the number solved?

Recommended