Verifiable ASICs: trustworthy hardware with untrusted components - - PowerPoint PPT Presentation

verifiable asics trustworthy hardware with untrusted
SMART_READER_LITE
LIVE PREVIEW

Verifiable ASICs: trustworthy hardware with untrusted components - - PowerPoint PPT Presentation

Verifiable ASICs: trustworthy hardware with untrusted components Riad S. Wahby , Max Howald , Siddharth Garg , abhi shelat , and Michael Walfish Stanford University New York University The Cooper Union


slide-1
SLIDE 1

Verifiable ASICs: trustworthy hardware with untrusted components

Riad S. Wahby◦⋆, Max Howald†⋆, Siddharth Garg⋆, abhi shelat‡, and Michael Walfish⋆

  • Stanford University

⋆New York University †The Cooper Union ‡The University of Virginia

April 8, 2016

slide-2
SLIDE 2

You (probably) shouldn’t trust your hardware. . .

slide-3
SLIDE 3

You (probably) shouldn’t trust your hardware. . .

slide-4
SLIDE 4

You (probably) shouldn’t trust your hardware. . .

slide-5
SLIDE 5

You (probably) shouldn’t trust your hardware. . . . . . because fabs sometimes make mistakes

slide-6
SLIDE 6

You (probably) shouldn’t trust your hardware. . . . . . because fabs sometimes make “mistakes”

[Tehranipoor and Koushanfar. “A survey of hardware Trojan taxon-

  • my and detection.” IEEE DTC, 2010.]
slide-7
SLIDE 7

What’s a chip designer to do?

◮ Post-fab testing ◮ Hardware obfuscation ◮ Trusted manufacturer

[Bhunia, Hsiao, Banga, and Narasimhan. “Hardware Trojan attacks: threat analysis and countermeasures.” Proc. IEEE, Aug. 2014.]

slide-8
SLIDE 8

What’s a chip designer to do?

◮ Post-fab testing ◮ Hardware obfuscation ◮ Trusted manufacturer

[Bhunia, Hsiao, Banga, and Narasimhan. “Hardware Trojan attacks: threat analysis and countermeasures.” Proc. IEEE, Aug. 2014.]

slide-9
SLIDE 9

What’s a chip designer to do?

◮ Post-fab testing ◮ Hardware obfuscation ◮ Trusted manufacturer

– but a fab is expensive and hard to build. . .

[Bhunia, Hsiao, Banga, and Narasimhan. “Hardware Trojan attacks: threat analysis and countermeasures.” Proc. IEEE, Aug. 2014.]

slide-10
SLIDE 10

What’s a chip designer to do?

◮ Post-fab testing ◮ Hardware obfuscation ◮ Trusted manufacturer

– but a fab is expensive and hard to build. . . – . . . so trusted fab might have 108× worse performance!

[Bhunia, Hsiao, Banga, and Narasimhan. “Hardware Trojan attacks: threat analysis and countermeasures.” Proc. IEEE, Aug. 2014.]

slide-11
SLIDE 11

Roadmap

  • 1. Problem statement: verifiable ASICs
  • 2. Probabilistic proof systems, briefly
  • 3. Zebra: a system for verifiable ASICs
  • 4. Implementation and evaluation
slide-12
SLIDE 12

Roadmap

  • 1. Problem statement: verifiable ASICs
  • 2. Probabilistic proof systems, briefly
  • 3. Zebra: a system for verifiable ASICs
  • 4. Implementation and evaluation
slide-13
SLIDE 13

Problem statement: verifiable ASICs

Principal

Ψ → specs for P, V

slide-14
SLIDE 14

Problem statement: verifiable ASICs

Foundry Supplier

(foundry, processor vendor, etc.)

Principal

Ψ → specs for P, V

slide-15
SLIDE 15

Problem statement: verifiable ASICs

Foundry Supplier

(foundry, processor vendor, etc.)

Principal

Ψ → specs for P, V

Integrator V P

slide-16
SLIDE 16

Problem statement: verifiable ASICs

Foundry Supplier

(foundry, processor vendor, etc.)

Principal

Ψ → specs for P, V

Integrator

V P

Operator

slide-17
SLIDE 17

Problem statement: verifiable ASICs

V P

Operator

slide-18
SLIDE 18

Problem statement: verifiable ASICs

V P

x

Operator

slide-19
SLIDE 19

Problem statement: verifiable ASICs

V P

x y

Operator

slide-20
SLIDE 20

Problem statement: verifiable ASICs

V P

x y proof

Operator

slide-21
SLIDE 21

Problem statement: verifiable ASICs

V P

x y proof

Operator

◮ P is efficient, but can deviate arbitrarily from the protocol

slide-22
SLIDE 22

Problem statement: verifiable ASICs

V P

x y proof

Operator

◮ P is efficient, but can deviate arbitrarily from the protocol ◮ Honest P always convinces V that y = Ψ(x)

slide-23
SLIDE 23

Problem statement: verifiable ASICs

V P

x y proof

Operator

◮ P is efficient, but can deviate arbitrarily from the protocol ◮ Honest P always convinces V that y = Ψ(x) ◮ V must catch dishonest P except with negligible probability

slide-24
SLIDE 24

Problem statement: verifiable ASICs

V P

x y proof

Operator

◮ P is efficient, but can deviate arbitrarily from the protocol ◮ Honest P always convinces V that y = Ψ(x) ◮ V must catch dishonest P except with negligible probability ◮ P cannot attack or disable V, or communicate with

  • utside world (see paper for more discussion)
slide-25
SLIDE 25

Problem statement: verifiable ASICs

V P

x y proof

Operator

◮ P is efficient, but can deviate arbitrarily from the protocol ◮ Honest P always convinces V that y = Ψ(x) ◮ V must catch dishonest P except with negligible probability ◮ P cannot attack or disable V, or communicate with

  • utside world (see paper for more discussion)

◮ Goal: V and P together should outperform

Ψ executed in trusted substrate

slide-26
SLIDE 26

Roadmap

  • 1. Problem statement: verifiable ASICs
  • 2. Probabilistic proof systems, briefly
  • 3. Zebra: a system for verifiable ASICs
  • 4. Implementation and evaluation
slide-27
SLIDE 27

Probabilistic proof systems, briefly A weak verifier checks the work of a powerful prover

verifier prover program, inputs

  • utputs

[Walfish and Blumberg. “Verifying computations without reexecuting them: from theoretical possibility to near practicality.” CACM, Feb. 2015.]

slide-28
SLIDE 28

Probabilistic proof systems, briefly A weak verifier checks the work of a powerful prover

verifier prover program, inputs

  • utputs

+ proof Idea: checking proof should be easier for verifier than executing program

[Walfish and Blumberg. “Verifying computations without reexecuting them: from theoretical possibility to near practicality.” CACM, Feb. 2015.]

slide-29
SLIDE 29

Probabilistic proof systems, briefly A weak verifier checks the work of a powerful prover Recent work is in three strands:

◮ Interactive arguments

◮ [Pepper12, Ginger12, Zaatar13]

[Walfish and Blumberg. “Verifying computations without reexecuting them: from theoretical possibility to near practicality.” CACM, Feb. 2015.]

slide-30
SLIDE 30

Probabilistic proof systems, briefly A weak verifier checks the work of a powerful prover Recent work is in three strands:

◮ Interactive arguments

◮ [Pepper12, Ginger12, Zaatar13]

◮ Non-interactive arguments (SNARKs)

◮ [PGHR13, BCGTV13, BCTV14]

[Walfish and Blumberg. “Verifying computations without reexecuting them: from theoretical possibility to near practicality.” CACM, Feb. 2015.]

slide-31
SLIDE 31

Probabilistic proof systems, briefly A weak verifier checks the work of a powerful prover Recent work is in three strands:

◮ Interactive arguments

◮ [Pepper12, Ginger12, Zaatar13]

◮ Non-interactive arguments (SNARKs)

◮ [PGHR13, BCGTV13, BCTV14]

◮ Interactive proofs

◮ [CMT12, TRMP12, Allspice13, Tha13]

[Walfish and Blumberg. “Verifying computations without reexecuting them: from theoretical possibility to near practicality.” CACM, Feb. 2015.]

slide-32
SLIDE 32

Probabilistic proof systems, briefly A weak verifier checks the work of a powerful prover Recent work is in three strands:

◮ Interactive arguments

◮ [Pepper12, Ginger12, Zaatar13]

+ Low round complexity + Mild cryptograhic assumptions

◮ Non-interactive arguments (SNARKs)

◮ [PGHR13, BCGTV13, BCTV14]

◮ Interactive proofs

◮ [CMT12, TRMP12, Allspice13, Tha13]

[Walfish and Blumberg. “Verifying computations without reexecuting them: from theoretical possibility to near practicality.” CACM, Feb. 2015.]

slide-33
SLIDE 33

Probabilistic proof systems, briefly A weak verifier checks the work of a powerful prover Recent work is in three strands:

◮ Interactive arguments

◮ [Pepper12, Ginger12, Zaatar13]

+ Low round complexity + Mild cryptograhic assumptions

◮ Non-interactive arguments (SNARKs)

◮ [PGHR13, BCGTV13, BCTV14]

+ Public verifiability, zero knowledge – Non-falsifiable cryptographic assumptions [GW10]

◮ Interactive proofs

◮ [CMT12, TRMP12, Allspice13, Tha13]

[Walfish and Blumberg. “Verifying computations without reexecuting them: from theoretical possibility to near practicality.” CACM, Feb. 2015.]

slide-34
SLIDE 34

Probabilistic proof systems, briefly A weak verifier checks the work of a powerful prover Recent work is in three strands:

◮ Interactive arguments

◮ [Pepper12, Ginger12, Zaatar13]

+ Low round complexity + Mild cryptograhic assumptions

◮ Non-interactive arguments (SNARKs)

◮ [PGHR13, BCGTV13, BCTV14]

+ Public verifiability, zero knowledge – Non-falsifiable cryptographic assumptions [GW10]

◮ Interactive proofs

◮ [CMT12, TRMP12, Allspice13, Tha13]

+ Simple and efficient prover and verifier + Information theoretic guarantees (no crypto) [Walfish and Blumberg. “Verifying computations without reexecuting them: from theoretical possibility to near practicality.” CACM, Feb. 2015.]

slide-35
SLIDE 35

Probabilistic proof systems, briefly A weak verifier checks the work of a powerful prover For all systems, expressiveness is somewhat limited:

◮ Arguments (interactive & non-interactive)

– Computation must be expressed as an arithmetic circuit

◮ Interactive proofs

– Computation must be expressed as an arithmetic circuit [Walfish and Blumberg. “Verifying computations without reexecuting them: from theoretical possibility to near practicality.” CACM, Feb. 2015.]

slide-36
SLIDE 36

Probabilistic proof systems, briefly A weak verifier checks the work of a powerful prover For all systems, expressiveness is somewhat limited:

◮ Arguments (interactive & non-interactive)

– Computation must be expressed as an arithmetic circuit

◮ Interactive proofs

– Computation must be expressed as an arithmetic circuit

generalized boolean circuit over Fp ∧ → × ∨ → +

[Walfish and Blumberg. “Verifying computations without reexecuting them: from theoretical possibility to near practicality.” CACM, Feb. 2015.]

slide-37
SLIDE 37

Probabilistic proof systems, briefly A weak verifier checks the work of a powerful prover For all systems, expressiveness is somewhat limited:

◮ Arguments (interactive & non-interactive)

– Computation must be expressed as an arithmetic circuit + Arithmetic circuit can have arbitrary connectivity, shape

◮ Interactive proofs

– Computation must be expressed as an arithmetic circuit – Arithmetic circuit must be layered, depth ≪ width [Walfish and Blumberg. “Verifying computations without reexecuting them: from theoretical possibility to near practicality.” CACM, Feb. 2015.]

slide-38
SLIDE 38

Probabilistic proof systems, briefly A weak verifier checks the work of a powerful prover For all systems, expressiveness is somewhat limited:

◮ Arguments (interactive & non-interactive)

– Computation must be expressed as an arithmetic circuit + Arithmetic circuit can have arbitrary connectivity, shape

◮ Interactive proofs

– Computation must be expressed as an arithmetic circuit – Arithmetic circuit must be layered, depth ≪ width

layered vs. unlayered

[Walfish and Blumberg. “Verifying computations without reexecuting them: from theoretical possibility to near practicality.” CACM, Feb. 2015.]

slide-39
SLIDE 39

Probabilistic proof systems, briefly A weak verifier checks the work of a powerful prover For all systems, expressiveness is somewhat limited:

◮ Arguments (interactive & non-interactive)

– Computation must be expressed as an arithmetic circuit + Arithmetic circuit can have arbitrary connectivity, shape

◮ Interactive proofs

– Computation must be expressed as an arithmetic circuit – Arithmetic circuit must be layered, depth ≪ width

depth = 3 width = 8

[Walfish and Blumberg. “Verifying computations without reexecuting them: from theoretical possibility to near practicality.” CACM, Feb. 2015.]

slide-40
SLIDE 40

Roadmap

  • 1. Problem statement: verifiable ASICs
  • 2. Probabilistic proof systems, briefly
  • 3. Zebra: a system for verifiable ASICs
  • 4. Implementation and evaluation
slide-41
SLIDE 41

Zebra’s starting point: Interactive proofs

Zebra is an IP-based protocol [CMT12, Allspice13] (We discuss why not arguments in the paper)

slide-42
SLIDE 42

Zebra’s starting point: Interactive proofs

slide-43
SLIDE 43

Zebra’s starting point: Interactive proofs

  • 1. V sends inputs
slide-44
SLIDE 44

Zebra’s starting point: Interactive proofs

  • 1. V sends inputs
  • 2. P evaluates circuit,

returns output y

slide-45
SLIDE 45

Zebra’s starting point: Interactive proofs

  • 1. V sends inputs
  • 2. P evaluates circuit,

returns output y

slide-46
SLIDE 46

Zebra’s starting point: Interactive proofs

  • 1. V sends inputs
  • 2. P evaluates circuit,

returns output y

slide-47
SLIDE 47

Zebra’s starting point: Interactive proofs

  • 1. V sends inputs
  • 2. P evaluates circuit,

returns output y

y

slide-48
SLIDE 48

Zebra’s starting point: Interactive proofs

  • 1. V sends inputs
  • 2. P evaluates circuit,

returns output y

  • 3. V constructs polynomial

relating y to values of last layer’s input wires

y

slide-49
SLIDE 49

Zebra’s starting point: Interactive proofs

  • 1. V sends inputs
  • 2. P evaluates circuit,

returns output y

  • 3. V constructs polynomial

relating y to values of last layer’s input wires

  • 4. V cross-examines P
slide-50
SLIDE 50

Zebra’s starting point: Interactive proofs

  • 1. V sends inputs
  • 2. P evaluates circuit,

returns output y

  • 3. V constructs polynomial

relating y to values of last layer’s input wires

  • 4. V cross-examines P,

ends up with claim about second-last layer

slide-51
SLIDE 51

Zebra’s starting point: Interactive proofs

  • 1. V sends inputs
  • 2. P evaluates circuit,

returns output y

  • 3. V constructs polynomial

relating y to values of last layer’s input wires

  • 4. V cross-examines P,

ends up with claim about second-last layer

  • 5. V iterates
slide-52
SLIDE 52

Zebra’s starting point: Interactive proofs

  • 1. V sends inputs
  • 2. P evaluates circuit,

returns output y

  • 3. V constructs polynomial

relating y to values of last layer’s input wires

  • 4. V cross-examines P,

ends up with claim about second-last layer

  • 5. V iterates
slide-53
SLIDE 53

Zebra’s starting point: Interactive proofs

  • 1. V sends inputs
  • 2. P evaluates circuit,

returns output y

  • 3. V constructs polynomial

relating y to values of last layer’s input wires

  • 4. V cross-examines P,

ends up with claim about second-last layer

  • 5. V iterates
slide-54
SLIDE 54

Zebra’s starting point: Interactive proofs

  • 1. V sends inputs
  • 2. P evaluates circuit,

returns output y

  • 3. V constructs polynomial

relating y to values of last layer’s input wires

  • 4. V cross-examines P,

ends up with claim about second-last layer

  • 5. V iterates, ends up with

claim about inputs

slide-55
SLIDE 55

Zebra’s starting point: Interactive proofs

  • 1. V sends inputs
  • 2. P evaluates circuit,

returns output y

  • 3. V constructs polynomial

relating y to values of last layer’s input wires

  • 4. V cross-examines P,

ends up with claim about second-last layer

  • 5. V iterates, ends up with

claim about inputs

  • 6. V checks consistency

with the inputs

slide-56
SLIDE 56

Zebra’s starting point: Interactive proofs

  • 1. V sends inputs
  • 2. P evaluates circuit,

returns output y

  • 3. V constructs polynomial

relating y to values of last layer’s input wires

  • 4. V cross-examines P,

ends up with claim about second-last layer

  • 5. V iterates, ends up with

claim about inputs

  • 6. V checks consistency

with the inputs V’s work is ≈ O(depth · log width)

slide-57
SLIDE 57

Pipelined proving in Zebra

V questions P about Ψ(x1)’s output layer.

Ψ(x1)

slide-58
SLIDE 58

Pipelined proving in Zebra

V questions P about Ψ(x1)’s output layer. Simultaneously, P returns Ψ(x2).

Ψ(x1) Ψ(x2)

slide-59
SLIDE 59

Pipelined proving in Zebra

V questions P about Ψ(x1)’s next layer

Ψ(x1)

slide-60
SLIDE 60

Pipelined proving in Zebra

V questions P about Ψ(x1)’s next layer, and Ψ(x2)’s output layer.

Ψ(x1) Ψ(x2)

slide-61
SLIDE 61

Pipelined proving in Zebra

V questions P about Ψ(x1)’s next layer, and Ψ(x2)’s output layer. Meanwhile, P returns Ψ(x3).

Ψ(x1) Ψ(x2) Ψ(x3)

slide-62
SLIDE 62

Pipelined proving in Zebra

This process continues until the pipeline is full.

Ψ(x1) Ψ(x2) Ψ(x3) Ψ(x4)

slide-63
SLIDE 63

Pipelined proving in Zebra

This process continues until the pipeline is full.

Ψ(x1) Ψ(x2) Ψ(x3) Ψ(x4) Ψ(x5)

slide-64
SLIDE 64

Pipelined proving in Zebra

This process continues until the pipeline is full. V and P can complete

  • ne proof in each time

step.

Ψ(x1) Ψ(x2) Ψ(x3) Ψ(x4) Ψ(x5) Ψ(x6) Ψ(x7) Ψ(x8)

slide-65
SLIDE 65

Other hardware optimizations

Input (x) Output (y) prove prove prove Sub-prover, layer 0 Sub-prover, layer 1 Sub-prover, layer d − 1

V P

queries responses queries responses queries responses

. . . . . .

slide-66
SLIDE 66

Other hardware optimizations

Sub-prover circuit Proving machinery

◮ P’s work is mainly local to each gate

slide-67
SLIDE 67

Other hardware optimizations

gate prover gate prover gate prover gate prover

Sub-prover circuit

Remaining sub-prover machinery

◮ P’s work is mainly local to each gate ◮ P’s design leverages this with gate prover circuits

slide-68
SLIDE 68

Other hardware optimizations

gate prover gate prover gate prover gate prover

Sub-prover circuit

Remaining sub-prover machinery

◮ P’s work is mainly local to each gate ◮ P’s design leverages this with gate prover circuits ◮ Gate provers reuse work from previous rounds

by maintaining local state

slide-69
SLIDE 69

Other hardware optimizations

gate prover gate prover gate prover gate prover

Sub-prover circuit

Remaining sub-prover machinery

◮ P’s work is mainly local to each gate ◮ P’s design leverages this with gate prover circuits ◮ Gate provers reuse work from previous rounds

by maintaining local state

◮ Further low-level and protocol optimizations (see paper)

slide-70
SLIDE 70

Architectural challenges and limitations

◮ Interaction between V and P requires a lot of bandwidth

slide-71
SLIDE 71

Architectural challenges and limitations

◮ Interaction between V and P requires a lot of bandwidth

⇒ Zebra uses 3D integration

slide-72
SLIDE 72

Architectural challenges and limitations

◮ Interaction between V and P requires a lot of bandwidth

⇒ Zebra uses 3D integration

◮ IP protocol requires precomputation for most Ψ

[Allspice13]

slide-73
SLIDE 73

Architectural challenges and limitations

◮ Interaction between V and P requires a lot of bandwidth

⇒ Zebra uses 3D integration

◮ IP protocol requires precomputation for most Ψ

[Allspice13]

⇒ Zebra amortizes precomputations over many V-P pairs

slide-74
SLIDE 74

Architectural challenges and limitations

◮ Interaction between V and P requires a lot of bandwidth

⇒ Zebra uses 3D integration

◮ IP protocol requires precomputation for most Ψ

[Allspice13]

⇒ Zebra amortizes precomputations over many V-P pairs

◮ Several other details (see paper)

slide-75
SLIDE 75

Roadmap

  • 1. Problem statement: verifiable ASICs
  • 2. Probabilistic proof systems, briefly
  • 3. Zebra: a system for verifiable ASICs
  • 4. Implementation and evaluation
slide-76
SLIDE 76

Evaluation

How does Zebra perform on computations of “real world” interest?

◮ Number theoretic transform ◮ Curve25519 point multiplication

slide-77
SLIDE 77

Evaluation

How does Zebra perform on computations of “real world” interest?

◮ Number theoretic transform ◮ Curve25519 point multiplication

Goal: V and P together should outperform Ψ executed in trusted substrate

slide-78
SLIDE 78

Implementation and method

Zebra’s implementation includes

◮ a compiler that produces synthesizable Verilog for P ◮ two V implementations (software and Verilog) ◮ library to generate V’s precomputations ◮ Verilog simulator extensions to support either hardware and

software V interacting with P design

slide-79
SLIDE 79

Implementation and method

Zebra’s implementation includes

◮ a compiler that produces synthesizable Verilog for P ◮ two V implementations (software and Verilog) ◮ library to generate V’s precomputations ◮ Verilog simulator extensions to support either hardware and

software V interacting with P design For our evaluation, we build a detailed cost model based on analysis, simulation results, and published chip designs (see paper)

slide-80
SLIDE 80

Implementation and method

Zebra’s implementation includes

◮ a compiler that produces synthesizable Verilog for P ◮ two V implementations (software and Verilog) ◮ library to generate V’s precomputations ◮ Verilog simulator extensions to support either hardware and

software V interacting with P design For our evaluation, we build a detailed cost model based on analysis, simulation results, and published chip designs (see paper) Baseline: direct implementation of Ψ in same technology as V ⇒ Assumption: computation is efficient as an arithmetic circuit

slide-81
SLIDE 81

Implementation and method

Zebra’s implementation includes

◮ a compiler that produces synthesizable Verilog for P ◮ two V implementations (software and Verilog) ◮ library to generate V’s precomputations ◮ Verilog simulator extensions to support either hardware and

software V interacting with P design For our evaluation, we build a detailed cost model based on analysis, simulation results, and published chip designs (see paper) Baseline: direct implementation of Ψ in same technology as V ⇒ Assumption: computation is efficient as an arithmetic circuit Metric: energy required to execute Ψ

slide-82
SLIDE 82

Number theoretic transform

6 7 8 9 10 11 12 13 0.1 0.3 1 3 log2(NTT size) Performance relative to native baseline (higher is better)

slide-83
SLIDE 83

Curve25519 point multiplication

84 170 340 682 1147 0.1 0.3 1 3 Parallel Curve25519 point multiplications Performance relative to native baseline (higher is better)

slide-84
SLIDE 84

Recap

Zebra enables verifiable ASICs. + Untrusted P improves the performance of trusted V

slide-85
SLIDE 85

Recap

Zebra enables verifiable ASICs. + Untrusted P improves the performance of trusted V + First built system in the probabilistic proof literature where total cost of V + P is better than baseline

slide-86
SLIDE 86

Recap

Zebra enables verifiable ASICs. + Untrusted P improves the performance of trusted V + First built system in the probabilistic proof literature where total cost of V + P is better than baseline – But this improvement is modest

slide-87
SLIDE 87

Recap

Zebra enables verifiable ASICs. + Untrusted P improves the performance of trusted V + First built system in the probabilistic proof literature where total cost of V + P is better than baseline – But this improvement is modest, – and Zebra has limitations:

does not apply to all computations precomputations must be amortized computation needs to be “big enough” needs large gap between trusted and untrusted technology

slide-88
SLIDE 88

Recap

Zebra enables verifiable ASICs. + Untrusted P improves the performance of trusted V + First built system in the probabilistic proof literature where total cost of V + P is better than baseline – But this improvement is modest, – and Zebra has limitations:

does not apply to all computations precomputations must be amortized computation needs to be “big enough” needs large gap between trusted and untrusted technology

Zebra is a first step—there are plenty of improvements to be made!

https://eprint.iacr.org/2015/1243