IEEE 1735-2023
$56.33
IEEE Recommended Practice for Encryption and Management of Electronic Design Intellectual Property (IP) (Approved Draft)
Published By | Publication Date | Number of Pages |
IEEE | 2023 |
Revision Standard – Active. Guidance on technical protection measures to those who produce, use, process, or standardize the specifications of electronic design intellectual property (IP) is provided in this recommended practice. Distribution of IP creates a risk of unsanctioned use and dilution of the investment in its creation. The measures presented here include protection through encryption, specification, and management of use rights that have been granted by the producers of electronic designs, and methods for integrating license verification for granted rights. (The PDF of this standard is available at no charge compliments of it’s sponsor at https://ieeexplore.ieee.org/browse/standards/get-program/page/series?id=80)
PDF Catalog
PDF Pages | PDF Title |
---|---|
1 | IEEE Std 1735-2023 Front cover |
2 | Title page |
4 | Important Notices and Disclaimers Concerning IEEE Standards Documents |
8 | Participants |
9 | Introduction |
10 | Contents |
12 | 1. Overview 1.1 Scope 1.2 Purpose |
13 | 1.3 Word usage 1.4 Version history |
14 | 1.5 Value and approach 1.6 Key characteristics of the IEEE 1735 recommended practice for encryption |
15 | 1.7 Conventions 1.8 Use of color |
16 | 1.9 Security considerations 1.10 Overview of contents |
17 | 2. Normative references |
18 | 3. Definitions, acronyms, and abbreviations 3.1 Definitions |
23 | 3.2 Acronyms and abbreviations |
25 | 4. Trust model 4.1 IP stakeholders 4.2 Role of IP protection |
26 | 4.3 Protection through encryption |
27 | 4.4 Components of trust 4.4.1 Encryption strength 4.4.2 Digital verification of identity 4.4.3 Tool vendor integrity 4.4.4 Security of the design flow |
28 | 4.4.5 Tool quality 4.4.6 Summary |
29 | 5. Interoperability 5.1 Background 5.1.1 Basic terminology 5.1.2 Changes in Version 3 syntax for encryption/decryption envelopes 5.2 Character set, case-sensitivity, and related issues 5.2.1 Basic character set |
30 | 5.2.2 Case sensitivity 5.2.3 File splitting and end-of-file characters in decryption envelopes |
31 | 5.3 Basic interoperability overview 5.3.1 Reference interfaces |
32 | 5.3.2 Cryptographic expectations 5.3.3 Encryption pragmas for hTool input 5.4 Elements of interoperability 5.4.1 Base64 in IEEE 1735 |
33 | 5.4.2 Root key wrapping |
34 | 5.4.3 MAC and AES key derivation from the root key 5.4.4 Key transport |
35 | 5.4.5 IV Derivation and transport 5.4.6 AEAD signature calculation and transport |
36 | 5.4.7 The data_block payload 5.4.8 Comments |
37 | 5.4.9 Input to HDL consumer tools (hTools) 5.4.10 Associated data marshaling 5.5 Anatomy of a decryption envelope |
38 | 5.5.1 Authorial annotation |
39 | 5.5.2 A single common block 5.5.3 One or more tool blocks 5.5.4 The data_method pragma 5.5.5 The data_block pragma 5.5.6 Unused keywords |
40 | 5.6 Input to encryption tools |
41 | 5.6.1 Full embedded encryption recipe 5.6.2 RSA public key format 5.6.3 Unused keywords |
42 | 5.7 Transform tools 5.8 Signature data marshalling |
43 | 5.8.1 Text selection 5.8.2 Text modification 5.8.3 Signature calculation 5.8.4 Signature appending |
44 | 6. Asymmetric key management 6.1 Overview 6.2 Key considerations 6.2.1 Naming 6.2.2 Representation and storage 6.2.3 Exchange |
45 | 6.2.4 Identity and trust 6.3 Standard key exchange 6.3.1 Pragma exchange format 6.4 Key scope recommendations |
47 | 7. Rights Management 7.1 Introduction 7.2 Scope of rights 7.3 Types of hTools and associated rights 7.3.1 Rights for analysis tools (hTools except for tTools) |
48 | 7.3.2 Rights for transformative tools (tTools) 7.3.3 Rights for all hTools 7.4 Syntax and markup for rights 7.4.1 Rights syntax in tool blocks 7.4.2 Basic syntax |
49 | 7.4.3 Syntax for licensed rights 7.5 Complete tool block and rights example |
50 | 8. Proxy version and license management 8.1 License system 8.2 License proxy 8.3 License specification |
51 | 8.3.1 license_proxyenv attribute 8.3.2 license_certificate attribute 8.4 Licensing use model |
52 | 8.5 License types 8.6 Return value reuse 8.7 License server connections 8.7.1 Secure socket connection |
53 | 8.7.2 License timeouts 8.8 Message formats 8.8.1 Message formats: from the hTool to the proxy server |
54 | 8.8.2 Message formats: from the proxy server to the hTool |
55 | 8.8.3 Request ID 0 8.9 License irregularities |
57 | 9. Visibility management 9.1 Introduction to visibility management 9.2 Background 9.2.1 Error handling |
58 | 9.2.2 Model fidelity 9.2.3 Behavior outside the model 9.2.4 Role of tool phases |
59 | 9.3 Visibility in tool phases 9.3.1 Definitions 9.3.2 Build phase visibility |
61 | 9.3.3 Run phase visibility |
62 | 9.4 Visibility and protected text 9.4.1 Protected text 9.4.2 Relationship between protected and unprotected regions 9.4.2.1 Use cases |
63 | 9.4.2.2 Child visibility |
64 | 9.4.2.3 Limitations of envelopes 9.4.3 Recommendations for protected text 9.5 viewport pragmas 9.5.1 Background for viewport pragmas |
65 | 9.5.2 viewport pragma syntax |
67 | 9.5.3 interface_viewport pragma |
68 | 9.5.4 Error handling with viewport pragmas 9.5.5 Limitations 9.6 General rules and definitions for viewport pragmas |
69 | 9.6.1 Lexically scoped names in viewport pragmas |
70 | 9.6.2 General rules for viewport pragmas |
71 | 9.7 Programming language interfaces 9.7.1 VPI and VHPI 9.7.2 DPI 9.7.2.1 Use cases for DPI |
72 | 9.7.2.2 DPI features 9.7.2.3 Recommendations for using DPI |
73 | 9.8 Controlling visibility with rights 9.9 Visibility of dynamic objects |
74 | 9.10 Unresolved visibility issues |
75 | Annex A (normative) Syntax specification for IEEE 1735 |
79 | Annex B (normative) Test Vectors B.1 Simple test vector B.1.1 SystemVerilog data with encryption markup |
80 | B.1.2 Converted data with decryption envelope |
82 | Annex C (informative) Best practices and outstanding issues C.1 General advice C.1.1 Disclosed names C.1.2 Design files that are not SystemVerilog or VHDL |
83 | C.1.3 Review list for IP authors C.2 Mixed protection versions and eTool/tTool differences C.3 SystemVerilog preprocessing recommendations |
84 | C.4 Encryption recipe recommendations C.5 Comment and pragma interactions |
85 | C.6 Line numbers and file names C.7 Licensing concerns |
86 | Annex D (informative) Protection pragmas D.1 Protection pragmas |
89 | Annex E (informative) Bibliography |