Securing Intellectual Property (IP), whether it is one's own IP or that of a customer, or whether its source codes or binary codes that can be reverse-engineered, is a critical function to prevent copying, duplicating, or reverse engineering of a company's intellectual property. This is particularly important for software applications that can be hosted on general purpose commercially available off the shelf (COTS) personal computers (PC), servers, or as a cloud computing application targeted for public data centers. In addition, companies and organizations are tasked with hosting third party applications on their platforms and there is a need to license and protect these applications on the host platform. Many methods of licensing and copyrighting exist in the current art but these methods have several shortcomings. For example, lack of a unique fingerprint-like attribute that could be utilized to prevent replication and spoofing.
A common method for licensing is to associate a particular instance of an application with a particular hardware instance using a Media Access Control (MAC) address of a network device. The MAC address is, by design, unique since it is used to resolve Internet Protocol Addresses within and between networks. The MAC address is programmed by a manufacturer into a network device. The address is stored in hardware through a Read Only Device, or through a firmware mechanism. Regardless of which method is used, this programmability has been exploited by hackers to spoof the licensing methods that use MAC address since the MAC address is easily cloned.
Furthermore, many of these methods for licensing and copyright protection do not address reverse engineering. As PCs and servers are becoming ever so more powerful with integrated hardware acceleration, the applications for such heterogenous computing environment are becoming multi-component, which includes the Host Code being executed on a CPU and Kernel code targeted for various hardware acceleration technologies. Such heterogenous and powerful compute architectures are called High Performance Compute (HPC) devices. They could utilize Graphic Processing Units (GPU), Digital Signal Processors (DSP), or Field Programmable Gate Array (FPGA). Of the various hardware acceleration devices, the FPGA is one of the newest additions to the HPC architecture and offers the highest Performance/Watt. HPCs are becoming prevalently used in private or public data centers for high compute applications, such as Artificial Intelligence, Deep learning, Financials, Data Analytics, search engines, video processing, and cryptography. For such multi-component applications, it is also imperative that all components of an HPC application from the Host Code to the Kernel code netlists are all properly encrypted for an additional layer of security and protection from reverse engineering. There are many known methods to reverse engineer the host code executable, for example using debuggers and disassemblers. These methods could expose important algorithms or trade secrets or infringe on the holder of a copyright. Similar methods exist for reverse engineering a Kernel code netlist, such as an FPGA netlist. A Kernel code netlist is the output of a compiler that takes high-level programming code, such as C/C++, and generates a configuration bit stream for that acceleration device. Simple methods to prevent FPGA reverse engineering such as flattened netlist or even obfuscation are not immune to one with sophisticated reverse engineering tools.
The invention here is directed to a system and method within a High-Performance Computing (HPC) environment and provides a novel approach to securely license and protect HPC applications targeting heterogenous compute architectures. The system and method described leverages unique identifier (i.e. manufacturer serial number) that have now become available in such heterogenous compute environments. A heterogenous architecture is comprised of at least one or more processor cores to optimize performance and energy efficiency by appropriating computations matched to the type of processor available. These cores can be, but are not limited to, a general-purpose CPU, Graphics Processing Units (GPU), or Field Programmable Gate Arrays (FPGA's). Within each processing core of a heterogenous compute architecture, manufacturers will typically embed some form of unique identifier similar to the MAC address. However, unlike the MAC address, there are no known methods to spoof these chip-based unique identifiers. This is because the MAC addresses are typically stored in non-volatile memory devices. In contrast, unique identifier such as the manufacturer serial number of an FPGA device is embedded into the silicon and not modifiable. Thus, such unique identifiers pertaining to the hardware accelerators in a HPC architecture lend themselves as better options to accommodate licensing and protection.
The present invention securely licenses and protects HPC applications via a method to jointly encrypt a Host code and Kernel code using one of the unique identifiers described above such as the FPGA manufacturer's Chip ID embedded within an FPGA device.
Providers of intellectual property (licensor) expect to be compensated for the use of their intellectual asset and it is in their interest to prevent unauthorized use of their material through various techniques and methods. However, there are economic rewards for circumventing such methods to cheat content providers. In many instances, the methods used to secure intellectual property must evolve as countermeasures to circumvent them adapt to the methods.
It is the objective of this invention to provide a method for licensing and securing Intellectual Property to a licensee of the Intellectual Property. The Intellectual Property being protected is HPC type application leveraging at least one FPGA-based hardware accelerator.
It is also an objective of this invention to provide a system for licensing and securing Intellectual Property to a licensee of Intellectual Property. The Intellectual Property being protected is HPC type application leveraging at least one FPGA-based hardware accelerator.
These objectives are accomplished by the various aspects of the invention that uses multiple factors to create a license and protect the licensed material using an executable file, an FPGA netlist, or Kernel Code netlists, and a unique Chip ID associated with one of the FPGA devices. The present disclosure covers the steps required to accomplish the encryption of a high-performance computing (HPC) application using these factors as part of the method for licensing and protection of the application.
For a further understanding of the nature, objects, and advantages of the present disclosure, reference should be had to the following detailed description, read in conjunction with the following drawings, wherein like reference numerals denote like elements.
At the outset, it should be appreciated that like drawing numbers on different drawing views identify identical structural elements of the invention. It also should be appreciated that figure proportions and angles are not always to scale in order to clearly portray the attributes of the present invention.
While the present invention is described with respect to what is presently considered to be the preferred embodiments, it is understood that the invention is not limited to the disclosed embodiments. The present invention is intended to cover various modifications and equivalent arrangements included within the spirit and scope of the appended claims.
Furthermore, it is understood that this invention is not limited to the particular methodology, materials and modifications described and as such may, of course, vary. It is also understood that the terminology used herein is for the purpose of describing particular aspects only and is not intended to limit the scope of the present invention, which is limited only by the appended claims.
Unless defined otherwise, all technical and scientific terms used herein have the same meaning as commonly understood to one of ordinary skill in the art to which this invention belongs. It should be appreciated that the term “substantially” is synonymous with terms such as “nearly”, “very nearly”, “about”, “approximately”, “around”, “bordering on”, “close to”, “essentially”, “in the neighborhood of”, “in the vicinity of”, etc., and such terms may be used interchangeably as appearing in the specification and claims. It should be appreciated that the term “proximate” is synonymous with terms such as “nearby”, “close”, “adjacent”, “neighboring”, “immediate”, “adjoining”, etc., and such terms may be used interchangeably as appearing in the specification and claims. Although any methods, devices or materials similar or equivalent to those described herein can be used in the practice or testing of the invention, the preferred methods, devices, and materials are now described.
This disclosure, its aspects and implementations, are not limited to the specific processing techniques, components, word/bit widths, or methods disclosed herein. Many additional components and processes known in the art consistent with the modification, manipulation and encryption and decryption of a file or files by a computer program are in use with particular implementations from this disclosure. Accordingly, for example, although particular implementations are disclosed, such implementations and implementing components may comprise any components, models, versions, quantities, and/or the like as is known in the art for such systems and implementing components, consistent with the intended operation.
Particular implementations of a method/approach within an HPC architecture of how to securely license and protect applications via an encryption and decryption scheme for the host code and kernel code utilizing the manufacturer's serial number embedded uniquely in every FPGA device is disclosed. However, as will be clear to those of ordinary skill in the art from this disclosure, the principles and aspects disclosed herein may readily be applied to any licensing and encryption scheme for protecting applications without undue experimentation.
The following are particular implementations with the HPC application security scheme and the use of these methods are provided as non-limiting examples.
This application claims priority to U.S. Provisional Application No. 62/878,669, filed 25 Jul. 2019. The disclosure of the priority application is incorporated in its entirety herein by reference. This application also is related to PCT/US20/043545, filed 24 Jul. 2020, the content of which is incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
62878669 | Jul 2019 | US |