White box cryptography

yalegko 1,921 views 20 slides Mar 14, 2016
Slide 1
Slide 1 of 20
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20

About This Presentation

Some overview of "box" paradigms, such as black, gray and white boxes. Notes about white-box cryptography and its use cases. Simpliest white-box AES implementation sketch.


Slide Content

Broslavsky Oleg
SiBears

Attacker is assumed to have:
Zero visibility on code during
execution
External information, such as plaintext
or ciphertext
Considered secure as long as the
cipher has no cryptographic
weaknesses

Attacker is assumed to have:
Partial physical access to the
cryptographic key as a result of the
cipher leaking side-channel
information
Electromagnetic radiation analysis
Current/power consumption analysis
Operation timing analysis

Attacker is assumed to have:
Full visibility — inputs, outputs,
memory (using debuggers), and
intermediate calculations
Access to the algorithms while
watching how they are carried out



Traditional cryptography is not secure
when running in a white-box model

Digital Rights Management Systems
The end-user is then able to purchase some
type of premium content (e.g., new GoT
season)
The content arrives at the user’s device
encrypted, and is decrypted by the software
as it is viewed
A malicious end-user may attempt to extract
cryptographic keys from the software and
then use them to redistribute content outside
the DRM system

Client-side web application.
Web application forms some client-side
queries to the backend
A malicious user may attempt to form
malicious queries and exploit some backend
vulnerabilities

Common case W/ white-box crypto in JS

Generate for every key a fixed
implementation, that will contain
hard-coded key
Hide hardcoded key so,
that encrypt and decrypt
operations maintain sensitive
data without revealing any
portions of the key
Make the key extraction difficult
or even impracticable

The Advanced Encryption Standard (AES) is a specification for the encryptionof
electronic data established by the U.S. National Institute of Standards and
Technology (NIST)

Each byte in
the state matrix is replaced
with a SubByte using an 8-
bit substitution box
This operation provides the
non-linearity in the cipher.
The S-box used is derived
from the multiplicative
inverse over GF(2
8
)
Known to have good non-
linearity properties

Cyclically shifts the bytes in each row by a
certain offset
The importance of this step is to avoid the
columns being linearly independent

Together with ShiftRows,
MixColumns provides diffusion in
the cipher
Each column is treated as a
polynomial over GF(2
8
) and is
then multiplied modulo x
4
+1 with
a fixed polynomial
c(x) = 3x
3
+ x
2
+ x + 2

For each round, a round
key is derived from the
main key using Rijndael's
key schedule
The subkey is added by
combining each byte of the
state with the
corresponding byte of the
subkey using bitwise XOR

Move 0 round
key into the loop
Swap SubBytes and
ShiftRows operations
(order of bytes affects
only the order of
substitutions not the
result at all)

Combine
AddShiftedRoudKey and
SubBytes into Nr
substitution tables (one
for each round).
Name such tables T-
tables and will calculate
them as following:

Since the MixColumns is
a linear transformation,
it can also be
implemented using
couple of tables

MixColumns step can be decomposed into an exclusive-or of
four 32-bit values
4 x TyTables each with 256
entries (one for every
possible byte value)
XOR operation also could
easily be implemented
using substitution tables

More information can be found in §4
of A Tutorial on White-box AES by
James Muir
For more security Chow
suggest to apply to the
state in every round
invertible mixing
bijections and external
encodings

Comics styled AES
http://www.moserware.com/2009/09/stick-figure-guide-to-advanced.html
Website with aggregated information about white-box
cryptography
http://www.whiteboxcrypto.com/
A Tutorial on White-box AES by James Muir
https://ccsl.carleton.ca/~jamuir/papers/wb-aes-tutorial.pdf
Some example implementations of White-box AES and attacks
on it
https://github.com/openwhitebox

Oleg Broslavsky
[email protected]
@yalegko