32
1 Synopsys P1735 Proposals Dave Graubart & Parminder Gill November 1, 2010

Synopsys P1735 Proposals

  • Upload
    nairi

  • View
    252

  • Download
    1

Embed Size (px)

DESCRIPTION

Synopsys P1735 Proposals. Dave Graubart & Parminder Gill November 1, 2010. Agenda. Problem Statement Requirements Proposals Plan: Between now and next meeting: collect feedback and contribute to Twiki. Problem Statement. Interoperability needs not yet met Rights management - PowerPoint PPT Presentation

Citation preview

Page 1: Synopsys P1735 Proposals

1

Synopsys P1735 Proposals

Dave Graubart & Parminder GillNovember 1, 2010

Page 2: Synopsys P1735 Proposals

2

• Problem Statement• Requirements• Proposals

• Plan: Between now and next meeting: collect feedback and contribute to Twiki

Agenda

Page 3: Synopsys P1735 Proposals

3

• Interoperability needs not yet met– Rights management– More complex tool flows– EDA tool version control

• These are essential for Synopsys FPGA synthesis in first version of 1735

• We’re now prepared to make contributions

Problem Statement

Page 4: Synopsys P1735 Proposals

4

More Complex Tool Flow

C or M

High level synthesis

RTL

RTL synthesis

SDC

Formal Verification

Simulation

Netlist

PlacedNetlist

Place & Route

Page 5: Synopsys P1735 Proposals

5

1. Extensibility to any language2. Tool rights3. User rights4. IP creation tool5. Control of authorized tool versions

Requirements

Page 6: Synopsys P1735 Proposals

6

• Support existing envelope for Verilog and VHDL

• Support envelope as header in any file– Useful for C, M (Matlab), Edif, SDC, and others

Requirement 1: Extensibility to any language

Page 7: Synopsys P1735 Proposals

7

• Create rights/control block per key block– Plain text so end-user can view– Digest line that is tamper-proof and tightly

associated with IP– Each right can be conditional

• Narrow scope of public key: key for single tool or family of similar tools, not one key for a big EDA vendor

Requirement 2: Tool Rights

Page 8: Synopsys P1735 Proposals

8

• Identical mechanism to Tool Rights• Use conditional syntax where condition

varies by user• Condition can be satisfied in multiple ways

such as– License requirement– Password– One-time activation– Arbitrary mechanism

Requirement 3: User Rights

Page 9: Synopsys P1735 Proposals

9

• Lower barrier for IP author participation• Synopsys can contribute script that uses

OpenSSL to process:– Encryption envelope or source plus commands– Key repository

Requirement 4: Tool for IP Author

Page 10: Synopsys P1735 Proposals

10

• Allow IP author to specify minimum version of tool– After security fix– After functional enhancement

• Avoid expensive introduction of new keys• Different than P1735 version

Requirement 5: Control of authorized tool versions

Page 11: Synopsys P1735 Proposals

11

Details and Proposed Solutions

Page 12: Synopsys P1735 Proposals

12

Encrypted Synthesis flow

RTL

Compile

Map

Netlist

Compiler log messages

Mapper log messages

Log file

Technology view

RTL view

Graphical Views

Page 13: Synopsys P1735 Proposals

13

Encrypted Synthesis flow

RTL

Compile

Map

Netlist

Compiler log messages

Mapper log messages

Log file

Technology view

RTL view

Graphical Views

Technology viewTechnology view

Mapper log messagesMapper log

messages

NetlistNetlist

RTL viewCompiler log messages

Netlist

Page 14: Synopsys P1735 Proposals

14

Encrypted Synthesis flow

RTL

Compile

Map

Netlist

Compiler log messages

Mapper log messages

Log file

Technology view

RTL view

Graphical Views

Technology viewTechnology view

Mapper log messagesMapper log

messages

NetlistNetlist

RTL viewCompiler log messages

NetlistVisibilityLog Messages

Output Method

None, No-name,No-restriction

None, Interfaces,No-restriction

None, Encrypted,ObfuscatedPlain-text

Page 15: Synopsys P1735 Proposals

15

Introducing Control Block

Key Block - Simulation User

Decryption Envelope (current)

Key Block - Synthesis User

Data Block

Page 16: Synopsys P1735 Proposals

16

Introducing Control Block

Key Block - Simulation User

Decryption Envelope (enhanced)

Key Block - Synthesis User

Data Block

Control Block - Synthesis User

Basic encryption

Encryption with fine grained controls

Page 17: Synopsys P1735 Proposals

17

Enhancing Key Block

Key Block - Simulation User

Decryption Envelope (current)

Session Key (for data-block)

Key Block – Synthesis User

Session Key (for data-block)

Page 18: Synopsys P1735 Proposals

18

Enhancing Key Block

Key Block - Simulation User

Decryption Envelope (enhanced)

Session Key (for data-block)

Key Block – Synthesis User

Session Key (for data-block)

Control Block – Synthesis User

Session Key (for control-block)

Page 19: Synopsys P1735 Proposals

19

Enhancing Key Block

Key Block - Simulation User

Decryption Envelope (enhanced)

Session Key (for data-block)

Key Block – Synthesis User B

Session Key (for data-block)

Control Block – Synthesis User B

Session Key (for control-block)

Key Block – Synthesis User A

Session Key (for data-block)

Control Block – Synthesis User A

Session Key (for control-block)

Separate Control block for each tool

Separate Control block session key

for each tool

Page 20: Synopsys P1735 Proposals

20

Defining Control Block

Key Block - Simulation User

Decryption Envelope (enhanced)

Key Block - Synthesis User

Control Block

Control Line: Right=value

Control Line: Right=value, conditionControl Digest

Page 21: Synopsys P1735 Proposals

21

Syntax Proposal – Key Block

`protect begin_protected`protect key_keyowner=“IP User”, key_method=“rsa”`protect encoding=(enctype=“base64”, …), key_block<session key>

`protect data_method=“des-cbc”`protect encoding=(enctype=“base64”, …), data_blockencoded encrypted IP`protect end_protected

Decryption Envelope (current)

encoded encrypted

Page 22: Synopsys P1735 Proposals

22

Syntax Proposal – Key Block

`protect begin_protected`protect key_keyowner=“IP User”, key_method=“rsa”`protect encoding=(enctype=“base64”, …), key_blockdata-session-key=<session key>control-session-key=<control session key>

`protect data_method=“des-cbc”`protect encoding=(enctype=“base64”, …), data_blockencoded encrypted IP`protect end_protected

Decryption Envelope (enhanced)

encoded encrypted

Page 23: Synopsys P1735 Proposals

23

Syntax Proposal – Control Block

`protect begin_protected`protect key_keyowner=“IP User”, key_method=“rsa”`protect encoding=(enctype=“base64”, …), key_blockdata-session-key=<session key>control-session-key=<control session key>

`protect data_method=“des-cbc”`protect encoding=(enctype=“base64”, …), data_blockencoded encrypted IP`protect end_protected

Decryption Envelope (re-spaced)

Page 24: Synopsys P1735 Proposals

24

Syntax Proposal – Control Block

`protect begin_protected`protect key_keyowner=“IP User”, key_method=“rsa”`protect encoding=(enctype=“base64”, …), key_blockdata-session-key=<session key>control-session-key=<control session key>

`protect control_keyowner=“IP User”, control_method=“des-cbc”, control_block`protect <right>=<value>`protect <right>=<value>, <conditions>`protect encoding=(enctype=“base64”, …), control_digestencoded encrypted control digest

`protect data_method=“des-cbc”`protect encoding=(enctype=“base64”, …), data_blockencoded encrypted IP`protect end_protected

Decryption Envelope (enhanced)

Page 25: Synopsys P1735 Proposals

25

Control Block – Internal Details

Key Block - Simulation User

Decryption Envelope (enhanced)

Data Block

Control Block

Control Line: Right=value

Control Line: Right=value, conditionControl Digest

Page 26: Synopsys P1735 Proposals

26

Syntax Example – Control Block

`protect begin_protected`protect key_keyowner=“IP User”, key_method=“rsa”`protect encoding=(enctype=“base64”, …), key_blockdata-session-key=<session key>control-session-key=<new session key>

`protect control_keyowner=“IP User”, control_method=“des-cbc”, control_block`protect control_visibility=none`protect control_visibility=unrestricted, data_state=mapped`protect control_log_messages=noname`protect control_output_method=encrypted`protect control_output_method=plain-text, license=(…)`protect encoding=(enctype=“base64”, …), control_digestencoded encrypted control digest

`protect data_method=“des-cbc”`protect encoding=(enctype=“base64”, …), data_blockencoded encrypted IP`protect end_protected

Decryption Envelope (enhanced with examples)

Page 27: Synopsys P1735 Proposals

27

Introducing Tool Version

Key Block - Simulation User

Decryption Envelope (enhanced)

Session Key (for data-block)

Key Block – Synthesis User

Session Key (for data-block)

Control Block – Synthesis User

Session Key (for control-block)

Tool Version Synthesis User Tool with version older than this is not allowed to read this IP

Page 28: Synopsys P1735 Proposals

28

Syntax – Tool Version

`protect begin_protected`protect key_keyowner=“IP User”, key_method=“rsa”`protect encoding=(enctype=“base64”, …), key_blockdata-session-key=<session key>control-session-key=<new session key>tool-version=<version number>`protect control_keyowner=“IP User”, control_method=“des-cbc”, control_block`protect control_visibility=none`protect control_visibility=full, data_state=mapped`protect control_log_messages=noname`protect control_output_method=obfuscated`protect control_output_method=plain-text, license=(…)`protect encoding=(enctype=“base64”, …), control_digestencoded encrypted control digest

`protect data_method=“des-cbc”`protect encoding=(enctype=“base64”, …), data_blockencoded encrypted IP`protect end_protected

Decryption Envelope (enhanced with examples)

Page 29: Synopsys P1735 Proposals

29

Encryption Script (for IP Vendors)

IP Source FileVerilog sourceVHDL Source…

Key RepositoryIP User A = <Public Key>IP User B = <Public Key>

Encryption Tool/Script

Encrypted IP Source(Decryption Envelope)

Page 30: Synopsys P1735 Proposals

30

Encryption Script – Enhancements(for non-HDL files)

IP Source FileC/EDIF sourceDesign constraints…

Key RepositoryIP User A = <Public Key>IP User B = <Public Key>

Encryption Tool/Script

IP Encryption Header`protect pragmas

Encrypted IP Source(Decryption Envelope)

Page 31: Synopsys P1735 Proposals

31

Syntax Example – Encryption Header

`protect key_keyowner=“IP User”, key_method=“rsa”, key_block

`protect control_keyowner=“IP User”, control_method=“des-cbc”, control_block`protect control_visibility=none`protect control_visibility=full, data_state=mapped`protect control_log_messages=noname`protect control_output_method=obfuscated`protect control_output_method=plain-text, license=(…)

`protect data_method=“des-cbc”, begin<IP Source File>.c`protect end

Encryption Header file

Optional. If present, ensures encryption header is linked to specified file only

Page 32: Synopsys P1735 Proposals

32

End

Thank You