GPU hardware fingerprint acquisition method, device and readable storage medium

By acquiring and converting the operating frequency of the GPU stream processor, forming a feature array, the problem of existing hardware fingerprints being easily tampered with is solved, and a unique and secure GPU hardware fingerprint acquisition is achieved.

CN114329647BActive Publication Date: 2025-04-08NATIONZ TECH INC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202011051176.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-09-29
Publication Date
2025-04-08
Estimated Expiration
2040-09-29

AI Technical Summary

Technical Problem

Existing hardware fingerprints are prone to tampering and lack uniqueness and unpredictability.

Method used

By obtaining the actual operating frequency of multiple stream processors in the GPU and converting them into encoded values, a feature array is formed as a GPU hardware fingerprint.

Benefits of technology

It realizes rapid and efficient acquisition of GPU hardware fingerprints, and because it is based on physical characteristics, the fingerprint is unique and difficult to be tampered with, improving security.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114329647B_ABST
    Figure CN114329647B_ABST
Patent Text Reader

Abstract

The present application discloses a method, device and readable storage medium for obtaining GPU hardware fingerprints. The method includes: determining multiple stream processors in a GPU; obtaining the actual operating frequencies of each of the multiple stream processors during operation; converting the actual operating frequencies of each of the multiple stream processors into corresponding encoding values ​​according to a preset conversion rule; and combining the encoding values ​​corresponding to each of the multiple stream processors to form a feature array for characterizing the GPU hardware fingerprint. In the above manner, the present application can quickly and effectively obtain the GPU hardware fingerprint, and it is not easy to be tampered with.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of device identification technology, and in particular to a method, device and readable storage medium for obtaining GPU hardware fingerprint. Background Art

[0002] In recent years, with the rapid development of the Internet, the Internet of Things and various terminal devices, hardware fingerprints or device fingerprints are the characteristics / identifications of hardware or devices. Hardware fingerprints are of great significance to network security, hardware security or device security.

[0003] The inventor of the present application has found through long-term research that the current hardware fingerprint is mainly a digital fingerprint that is manually configured or assigned during manufacturing, but this hardware fingerprint has the risk of being tampered with. Summary of the invention

[0004] The method, device and readable storage medium for obtaining GPU hardware fingerprint provided in the present application can quickly and effectively obtain the hardware fingerprint of the GPU and is not easily tampered with.

[0005] To solve the above technical problems, a technical solution adopted in the present application is: to provide a method for obtaining GPU hardware fingerprints, including: determining multiple stream processors in a GPU; obtaining the actual operating frequencies of each of the multiple stream processors during operation; converting the actual operating frequencies of each of the multiple stream processors into corresponding coding values ​​according to preset conversion rules; and combining the corresponding coding values ​​of each of the multiple stream processors to form a feature array for characterizing the GPU hardware fingerprint.

[0006] To solve the above technical problems, another technical solution adopted in the present application is: a device for obtaining GPU hardware fingerprint, comprising: a processor, a memory, the processor coupled to the memory, and the processor executes instructions when working to implement any of the methods described above.

[0007] To solve the above technical problems, another technical solution adopted in the present application is: a device for obtaining a GPU hardware fingerprint, comprising: a determination module, used to determine multiple stream processors in a GPU; an acquisition module, used to obtain the actual operating frequencies of each of the multiple stream processors during operation; a conversion module, used to convert the actual operating frequencies of each of the multiple stream processors into corresponding coding values ​​according to a preset conversion rule; and a combination module, used to combine the corresponding coding values ​​of each of the multiple stream processors to form a feature array for characterizing the GPU hardware fingerprint.

[0008] In order to solve the above technical problems, another technical solution adopted by the present application is: a readable storage medium, on which a computer program is stored, and when the computer program is executed by a processor, any of the methods described above is implemented.

[0009] The beneficial effect of the present application is: by converting the actual operating frequencies of multiple stream processors in the GPU into corresponding coding values, and combining the coding values ​​corresponding to the multiple stream processors to form a feature array for characterizing the GPU hardware fingerprint, the GPU hardware fingerprint can be obtained by using the operating frequency of the GPU stream processor, so that the GPU hardware fingerprint can be obtained quickly and effectively. Moreover, due to the process and hardware manufacturing reasons, even if the GPU has the same main frequency, the corresponding operating frequency of its stream processor is different, which becomes a physical change that cannot be cloned. Therefore, the present application uses the hardware feature identification of the GPU itself, which is different from the digital fingerprint manually configured during manufacturing. It cannot be tampered with and can uniquely identify the GPU, and has better security. BRIEF DESCRIPTION OF THE DRAWINGS

[0010] Figure 1 It is a flowchart of an embodiment of a method for obtaining GPU hardware fingerprint of the present application;

[0011] Figure 2 This is a schematic block diagram of the GPU structure in an embodiment of the method for obtaining GPU hardware fingerprint of the present application;

[0012] Figure 3 yes Figure 1 A schematic flow chart of an implementation method of step S11;

[0013] Figure 4 yes Figure 1 A schematic flow chart of an implementation method of step S12;

[0014] Figure 5 yes Figure 1 A schematic flow chart of an implementation method of step S13;

[0015] Figure 6 yes Figure 5 A schematic flow chart of an implementation method of step S131;

[0016] Figure 7 This is a schematic block diagram of the circuit structure of an embodiment of a device for obtaining GPU hardware fingerprints of the present application;

[0017] Figure 8 This is a schematic block diagram of the circuit structure of another embodiment of the device for obtaining GPU hardware fingerprint of the present application;

[0018] Fig. 9 It is a schematic block diagram of the structure of an embodiment of a readable storage medium of the present application. DETAILED DESCRIPTION

[0019] The following will be combined with the drawings in the embodiments of the present application to clearly and completely describe the technical solutions in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this application.

[0020] GPU stands for "Graphics Processing Unit", also known as graphics processor, display core, visual processor, display chip, which is a microprocessor that specializes in image and graphics related computing on personal computers, workstations, game consoles and some mobile devices (such as tablets, smart phones, etc.). GPGPU stands for "General-purpose computing on graphics processing units", which is a technology that uses graphics processors that process graphics tasks to calculate general computing tasks originally handled by the central processing unit. Due to the powerful parallel processing capabilities and programmable pipelines of modern graphics processors, the instruction stream processor can process non-graphics data. Existing GPGPU programming languages ​​include OpenGL, CUDA and OpenCL.

[0021] The GPU hardware fingerprint acquisition method embodiment of the present application can be applied to various types of GPUs, such as the above-mentioned GPGPU, etc. The GPU hardware fingerprint acquired by the acquisition method of the present application is not easy to be tampered with, has higher security, and the acquisition process is fast and effective.

[0022] See also Figure 1 , Figure 1 This is a flow chart of an embodiment of a method for obtaining GPU hardware fingerprints of the present application, which specifically includes the following steps:

[0023] S11: Determine a plurality of stream processors in the GPU.

[0024] like Figure 2 As shown, a certain number of stream processors 10 may be included in the GPU. For example, the number of stream processors 10 included in the GPU may be 20-10000. Generally, the more stream processors 10 there are, the stronger the processing capability of the GPU is. Each stream processor 10 in the GPU has a dedicated high-speed unit responsible for decoding and executing stream data. These stream processors 10 can all operate independently. Therefore, when it is necessary to obtain the hardware fingerprint of the GPU, multiple stream processors 10 may be randomly or non-randomly selected from all the stream processors 10 of the GPU to perform the corresponding task.

[0025] Taking the GP100 GPU of PASCAL architecture as an example, the number of stream processors 10 of this model of GPU is approximately 3584, and a plurality of stream processors 10 can be determined from the 3584 stream processors 10 to facilitate subsequent steps.

[0026] See also Figure 3 , Figure 3 The figure shows a specific implementation of step S11 of the present application. For determining the number of stream processors 10 in the GPU, the specific number of stream processors can be determined by the following steps included in S11:

[0027] S111a: Determine the first bit number required for the feature array and the second bit number of the encoding value corresponding to the preset conversion rule.

[0028] In this embodiment, the feature array is a set of strings used to characterize different GPUs. The present application converts the actual operating frequencies of multiple stream processors 10 in the GPU into corresponding coding values ​​through preset conversion rules, and then combines these corresponding coding values ​​to form the above-mentioned feature array. Among them, the preset conversion rules can be mapping, assignment, etc., as long as the actual operating frequencies of multiple stream processors 10 in the GPU can be converted into a set of recognizable strings according to a certain rule. For ease of identification and use, the coding value can be a random or non-random number such as a binary number, an octal number, a decimal number or a hexadecimal number, such as "00", "01", etc.

[0029] S111b: Determine the number of stream processors according to the ratio of the first bit number to the second bit number.

[0030] Specifically, the ratio of the first bit number to the second bit number may be directly used as the number of stream processors 10. The ratio of the first bit number to the second bit number is a value obtained by dividing the first bit number by the second bit number.

[0031] S111c: Determine a plurality of stream processors in the GPU, the number of which is the same as the number of stream processors.

[0032] In this embodiment, a bit is a unit of measurement for information quantity. Since the length changes after conversion to binary, the information quantity of one bit in different number systems is not always a binary digit, and the corresponding relationship is a logarithmic relationship, such as octal, decimal, and hexadecimal. The first bit number and the second bit number can be set according to the model of the GPU and user needs. One bit corresponds to a binary number. For example, "1100" is a 4-bit number, corresponding to 4 binary numbers. "11" is a 2-bit number, corresponding to 2 binary numbers.

[0033] In an application scenario of this embodiment, if it is necessary to extract 256-bit hardware fingerprint data R from the GP100 GPU of NVIDIA PASCAL architecture, the operating frequency of each stream processor 10 needs to be converted into 2-bit data Ri (i = 0, 1 ... 127). Among them, R is the first bit number, and Ri is the second bit number. Because R / Ri = 256 / 2 = 128, it is necessary to determine a plurality of stream processors 10 of 128 in the GPU.

[0034] In the above manner, the number of stream processors 10 to be selected can be predetermined according to actual needs, so that the GPU can select the stream processors 10 and obtain and combine subsequent encoding values.

[0035] Specifically, the method for determining the stream processor 10 may be implemented by step S11 including the following steps:

[0036] S112: Selecting a plurality of stream processors that are not adjacent to each other according to a preset arrangement order of the stream processors in the GPU.

[0037] When determining multiple stream processors 10, the GPU may randomly or non-randomly select multiple stream processors 10 that are not adjacent to each other according to the original arrangement order of each stream processor 10 in the GPU. Generally speaking, the more GPU stream processors 10 there are, the greater the difference in the operating frequencies between different stream processors 10 may be. At the same time, when the stream processor 10 is actually running, its operating frequency will fluctuate up and down relative to the stable operating frequency, and the actual operating frequency between non-adjacent stream processors 10 may differ even more. Therefore, it is easier to distinguish the encoding values ​​by selecting stream processors 10 that are not adjacent to each other, and it is also easier to identify the GPU, with better uniqueness, which is conducive to the acquisition of the GPU hardware fingerprint of this application.

[0038] like Figure 2 As shown, the GPU includes nine stream processors 10, ①-⑨. Assume that the preset arrangement order is defined as the numbering order of ①-⑨, wherein ①, ③, ⑤, ⑦, ⑨ are multiple stream processors 10 that are not adjacent to each other, and ②, ④, ⑥, ⑧ are also multiple stream processors 10 that are not adjacent to each other. The GPU can select multiple stream processors 10 that are not adjacent to each other at will, such as ①, ③, ⑧ or ②, ④, ⑥, etc.

[0039] Based on the above content, after multiple stream processors 10 are determined in the GPU, the actual operating frequency of the stream processor 10 can be obtained, as follows:

[0040] S12: Obtain actual operating frequencies of each of the multiple stream processors during operation.

[0041] Due to process and hardware manufacturing reasons, even GPUs with the same main frequency have different actual operating frequencies of their stream processors 10. These different operating frequencies can be regarded as a PUF (Physical Unclonable Function), which is then extracted as the hardware fingerprint of the GPU and can be used for hardware authentication. PUF is a hardware security technology, namely a physical unclonable function, which is a physical change that occurs naturally in the semiconductor manufacturing process and cannot be cloned. It has the characteristics of uniqueness and unpredictability.

[0042] In an application scenario of the present application, the GPU randomly determines multiple stream processors 10 according to requirements, and obtains their actual operating frequencies during operation by recording the completion of tasks by the multiple stream processors 10.

[0043] See also Figure 4 , Figure 4 What is shown is a specific implementation of step S12 of the present application. How to obtain the actual operating frequency can be achieved through the following steps included in S12:

[0044] S121: Start the GPU to run the scheduled timing task.

[0045] For example, the GPU is started to perform counter accumulation calculation at a fixed time, that is, the scheduled timing task is the counter accumulation calculation within a fixed time.

[0046] S122: Recording actual operating frequencies of the plurality of stream processors when they execute the scheduled timing tasks within the scheduled time corresponding to the scheduled timing tasks.

[0047] In order to obtain the actual operating frequencies of the multiple stream processors 10 that have been determined in the GPU, it is necessary to make these multiple stream processors 10 run the predetermined timing tasks and record the actual operating frequencies corresponding to the process of these stream processors 10 executing the predetermined timing tasks within the predetermined time.

[0048] like Figure 2 As shown, for example, in order to obtain the actual operating frequencies of the three stream processors 10 ①, ③, ⑧ determined in the GPU, ①, ③, ⑧ are made to run a preset computing task simultaneously, and the actual situation of ①, ③, ⑧ completing the task within one minute is recorded. The corresponding operating frequencies of the three stream processors 10 ①, ③, ⑧ are calculated based on the actual situation of ①, ③, ⑧ completing the task within one minute.

[0049] By completing a specific timing task, the actual operating frequency of each stream processor 10 in the GPU can be quickly and easily obtained, and the actual operating frequency of the stream processor 10 obtained in this way is more accurate and real.

[0050] After the actual operating frequencies of the plurality of stream processors 10 are obtained in the above manner, the actual operating frequencies may be encoded, specifically as follows:

[0051] S13: Convert actual operating frequencies of the plurality of stream processors into corresponding encoding values ​​respectively according to a preset conversion rule.

[0052] In this embodiment, the preset conversion rule may be any method for converting the actual operating frequencies of the plurality of stream processors 10 into the coded values ​​according to a certain rule or correspondence, including but not limited to mapping, assignment, etc. The preset conversion rule is to establish a correspondence between the actual operating frequencies of the stream processors 10 and the coded values, so as to be able to convert the actual operating frequencies into the coded values.

[0053] The number of second bits of the coding value corresponding to the preset conversion rule can be determined according to the actual situation of the GPU, and the preset conversion rules corresponding to coding values ​​with different second bits can be different.

[0054] See also Figure 5 , Figure 5 What is shown is a specific implementation of step S13 of the present application. How to obtain the coding value corresponding to the actual operating frequency can be achieved through the following steps included in S13:

[0055] S131: Divide the preset frequency range into multiple frequency intervals, and set the encoding values ​​corresponding to each of the multiple frequency intervals; wherein the preset frequency range is from a first preset frequency value to a second preset frequency value, the first preset frequency value is less than or equal to the minimum theoretical frequency of each stream processor, and the second preset frequency value is greater than or equal to the maximum theoretical frequency of each stream processor.

[0056] The minimum theoretical frequency is the minimum value that the stream processor 10 of the GPU can reach in theory. Optionally, the first preset frequency value is 0. The maximum theoretical frequency is the maximum value that the stream processor 10 of the GPU can reach in theory. Optionally, the second preset frequency value is an infinite value.

[0057] S132: Map the actual operating frequencies of the plurality of stream processors to the plurality of frequency intervals respectively, so as to determine the coding values ​​corresponding to the frequency intervals where the actual operating frequencies of the plurality of stream processors are located.

[0058] In order to realize encoding of the actual operating frequencies of the multiple stream processors 10, the actual operating frequencies of the multiple stream processors 10 can be mapped to different frequency intervals by dividing the frequency intervals, that is, to determine which frequency interval the frequency of the stream processor 10 is in, and each frequency interval has preset the encoding value corresponding to the frequency interval when it is divided, and then use this method to correspond the actual operating frequencies of the multiple stream processors 10 to the corresponding encoding values. Because the actual operating frequency of each stream processor 10 is different, and each GPU contains multiple stream processors 10, the encoding value array obtained by each GPU through the above method is different. Therefore, the present application can obtain an array composed of unique encoding values ​​corresponding to each GPU through the above method, so as to use the array composed of these unique encoding values ​​to identify different GPUs.

[0059] In an application scenario of the present application, taking NVIDIA GPU as an example, the operating frequency of its stream processor 10 satisfies the normal distribution. If the frequency is to be converted into n-bit data, it is necessary to design 2 n -1 threshold value, which divides the preset frequency range into 2 n The operating frequency of the GPU stream processor 10 can be converted into a stable coding value as a key through a preset conversion rule, and the extracted data represents the hardware fingerprint, which is unique to the GPU.

[0060] See also Figure 6 , Figure 6 What is shown is a specific implementation of step S131 of the present application. There are many ways to divide the above frequency intervals. One is given below. For details, please refer to the following steps included in S131:

[0061] S131a: Obtain the design frequency of the stream processor of the GPU and the distribution deviation corresponding to the design frequency.

[0062] Frequency is the number of times a periodic change is completed per unit time, and is a quantity that describes the frequency of periodic motion. Distribution deviation, also known as standard deviation, is the square root of the arithmetic mean of the squared deviations between the standard values ​​of each unit of the population and their mean, and is used to reflect the degree of discreteness of a data set. In this embodiment, the design frequency of the stream processor 10 is the target operating frequency of the stream processor 10 when running a task. The distribution deviation is the square root of the arithmetic mean of the squared deviations between the actual operating frequency of each stream processor 10 and its mean. Usually, the manufacturer of the GPU will determine the design frequency of the stream processor 10 in the GPU when manufacturing the GPU, and the distribution deviation can be calculated by means of probability statistics.

[0063] S131b: Convert the design frequency and the distribution deviation into multiple thresholds through mathematical operations, and then divide the preset frequency range into multiple frequency intervals through the multiple thresholds; wherein the number of the multiple thresholds is one less than the number of the multiple frequency intervals.

[0064] In this embodiment, the operating frequency of the GPU stream processor 10 satisfies the normal distribution. The preset frequency range is divided into multiple areas with as equal areas as possible through the design frequency and distribution deviation of the GPU stream processor 10. The GPU stream processor 10 can be evenly distributed in each interval, so that the coding values ​​corresponding to each stream processor 10 are evenly distributed, thereby obtaining more recognizable fingerprint data.

[0065] In an application scenario of the present application, the design frequency μ and distribution deviation σ of the stream processor 10 are found according to the model and manufacturing process of the GPU. Because according to the normal distribution table, when x=μ±0.674σ, the probability that the actual operating frequency of the GPU falls into each interval is roughly equal, so the actual operating frequency of the stream processor 10 is mapped to four intervals [0,μ-0.674σ], [μ-0.674σ,μ], [μ,μ+0.674σ], [μ+0.674σ,+∞], and the corresponding codes "00", "01", "10", and "11" are respectively corresponded, and the corresponding code values ​​of multiple stream processors 10 can be obtained.

[0066] Of course, there may be other ways to divide the threshold value of the preset frequency range, such as manually calculating and determining, or determining according to actual conditions.

[0067] S14: Combining the encoding values ​​corresponding to the multiple stream processors to form a feature array for characterizing the GPU hardware fingerprint.

[0068] In this embodiment, in order to obtain hardware fingerprint data that can characterize the GPU, the encoding values ​​corresponding to the multiple stream processors 10 formed in S13 are combined in a certain way (including but not limited to cascading, etc.) to form a set of easy-to-identify and easy-to-express arrays, which can be used as hardware fingerprint data.

[0069] Specifically, the encoding values ​​may be combined according to a preset arrangement order of the stream processor 10, which may be implemented by the following steps included in step S14:

[0070] S141: cascading and combining the encoding values ​​corresponding to the multiple stream processors in the order of the multiple stream processors in a preset arrangement order to form a feature array.

[0071] In this embodiment, the feature array formed by combining the encoding values ​​corresponding to the multiple stream processors 10 in a cascade manner can be used for identity authentication, secure storage of keys, etc.

[0072] like Figure 2 As shown, after selecting multiple stream processors 10 that are not adjacent to each other from the nine stream processors 10 ①-⑨ according to step S112, the coding values ​​corresponding to the selected multiple stream processors 10 are combined to form a set of feature arrays that characterize the GPU. For example, the four stream processors 10 ①, ③, ⑤, and ⑦ are selected, and the actual operating frequencies of the four stream processors 10 are converted according to the above-mentioned preset conversion rules, and the code corresponding to ① is obtained as "00", the code corresponding to ③ is obtained as "01", the code corresponding to ⑤ is obtained as "10", and the code corresponding to ⑦ is obtained as "11". By combining these coding values, a set of feature arrays can be obtained, such as "00011011", which can be used as the hardware fingerprint of the GPU for identity authentication, secure storage of keys, etc.

[0073] In an application scenario of the present application, for example, if it is necessary to extract 256-bit hardware fingerprint data R from a GP100 GPU of NVIDIA's PASCAL architecture, the operating frequency of each stream processor 10 needs to be converted into 2-bit data Ri (i=0, 1...127). Then, according to the technical solution of the present application, obtaining the hardware fingerprint data R of the GPU can be roughly divided into the following steps:

[0074] Step 1: GPU randomly determines 128 stream processors 10;

[0075] Step 2: Call the 128 stream processors 10 determined in step 1 to run the programmed timing tasks, such as the accumulated value of the fixed time counter, to obtain the actual operating frequency fi (i=0, 1, ... 127) of the 128 stream processors 10;

[0076] Step 3: Find the design frequency μ and distribution deviation σ of the stream processor 10 according to the model and manufacturing process of the GPU, map the actual operating frequency fi (i = 0, ..., 127) of the stream processor 10 to four intervals [0, μ-0.674σ], [μ-0.674σ, μ], [μ, μ+0.674σ], [μ+0.674σ, +∞], and encode "00", "01", "10", "11" respectively, and obtain 2-bit data Ri (i = 0, 1, ... 127);

[0077] Step 4: Cascade the 2-bit data Ri (i=0, 1, ... 127) to obtain 256-bit data R, where R is the hardware fingerprint data of the GPU, which can be used for identity authentication, secure storage of secret keys, etc.

[0078] Based on the above method steps, the present application directly converts the actual operating frequency of some stream processors 10 in the GPU into a hardware fingerprint uniquely corresponding to each GPU according to the preset conversion rules. The technical effect of obtaining the GPU hardware fingerprint without using additional security-specific hardware is achieved, and the hardware fingerprint obtained by the present application is directly obtained by converting the relevant data of the stream processor 10 inside the GPU, without the presence of an intermediate storage medium and the risk of tampering.

[0079] See also Figure 7 , Figure 7 This is a schematic block diagram of the structure of an embodiment of a device for obtaining GPU hardware fingerprints of the present application.

[0080] In this embodiment, the device for obtaining GPU hardware fingerprint includes a processor 20 and a memory 21. The processor 20 is coupled to the memory 21. When the processor 20 is working, it executes instructions to implement any of the above methods.

[0081] The processor 20 may also be referred to as a CPU (Central Processing Unit). The processor 20 may be an integrated circuit chip having signal processing capabilities. The processor 20 may also be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components. A general-purpose processor may be a microprocessor or the processor 20 may also be any conventional processor, etc.

[0082] See also Figure 8 , Figure 8 This is a schematic block diagram of the structure of another embodiment of the device for obtaining GPU hardware fingerprint of the present application, which specifically includes the following modules:

[0083] A determination module 30, configured to determine a plurality of stream processors 10 in a GPU;

[0084] An acquisition module 31 is used to acquire actual operating frequencies of the plurality of stream processors 10 during operation;

[0085] A conversion module 32, used to convert actual operating frequencies of the plurality of stream processors 10 into corresponding encoding values ​​according to a preset conversion rule;

[0086] The combining module 33 is used to combine the encoding values ​​corresponding to the multiple stream processors 10 to form a feature array for characterizing the GPU hardware fingerprint.

[0087] Each module terminal in the above device can respectively execute the corresponding steps in the above method embodiment, so each module will not be described in detail here. Please refer to the description of the above corresponding steps for details.

[0088] See also Fig. 9 , Fig. 9 This is a schematic block diagram of the structure of an embodiment of a readable storage medium of the present application.

[0089] In this embodiment, a computer program 40 is stored on a readable storage medium, and when the computer program 40 is executed by the processor 20, any of the methods described above is implemented.

[0090] Among them, readable storage media include: U disk, mobile hard disk, read-only memory (ROM), random access memory (RAM), disk or optical disk and other media that can store program code, or terminal devices such as computers, servers, mobile phones, and tablets.

[0091] In the several embodiments provided in the present application, it should be understood that the disclosed methods and devices can be implemented in other ways. For example, the device implementation described above is only schematic. For example, the division of modules or units is only a logical function division. There may be other division methods in actual implementation, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.

[0092] The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the present embodiment.

[0093] In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit. The above-mentioned integrated unit may be implemented in the form of hardware or in the form of software functional units.

[0094] The above description is only an embodiment of the present application and does not limit the patent scope of the present application. Any equivalent structure or equivalent process transformation made using the contents of the present application specification and drawings, or directly or indirectly applied in other related technical fields, are also included in the patent protection scope of the present application.

Claims

1. A method for obtaining GPU hardware fingerprint, characterized in that: The method comprises: Determining a plurality of stream processors in the GPU; Obtaining actual operating frequencies of each of the plurality of stream processors during operation; Convert the actual operating frequencies of the plurality of stream processors into corresponding encoding values ​​respectively according to a conversion rule; Combining the encoding values ​​corresponding to the plurality of stream processors to form a feature array for characterizing the GPU hardware fingerprint; The converting the actual operating frequencies of the plurality of stream processors into corresponding encoding values ​​according to the conversion rule includes: Divide the preset frequency range into a plurality of frequency intervals, and set the encoding values ​​corresponding to each of the plurality of frequency intervals; wherein the preset frequency range is from a first preset frequency value to a second preset frequency value, the first preset frequency value is less than or equal to the minimum theoretical frequency of each of the stream processors, and the second preset frequency value is greater than or equal to the maximum theoretical frequency of each of the stream processors; The actual operating frequencies of each of the plurality of stream processors are respectively mapped to the plurality of frequency intervals to determine the encoding values ​​corresponding to the frequency intervals in which the actual operating frequencies of each of the plurality of stream processors are located.

2. The method for obtaining GPU hardware fingerprint according to claim 1, characterized in that: The determining of a plurality of stream processors in the GPU comprises: Selecting the plurality of stream processors that are not adjacent to each other according to a preset arrangement order of the stream processors in the GPU; The step of combining the encoding values ​​corresponding to the plurality of stream processors to form a feature array for characterizing the GPU hardware fingerprint includes: The encoding values ​​corresponding to each of the plurality of stream processors are cascaded and combined in the order of the plurality of stream processors in the preset arrangement order to form the feature array.

3. The method for obtaining GPU hardware fingerprint according to claim 1, characterized in that: The obtaining of actual operating frequencies of each of the plurality of stream processors during operation includes: Starting the GPU to run a scheduled timing task; The actual operating frequencies of each of the plurality of stream processors when running the predetermined timing task within the predetermined time corresponding to the predetermined timing task are recorded.

4. The method for obtaining GPU hardware fingerprint according to claim 1, characterized in that: The preset frequency range is divided into a plurality of frequency intervals, including: Obtaining a design frequency of the stream processor of the GPU and a distribution deviation corresponding to the design frequency; The design frequency and the distribution deviation are converted into multiple thresholds through mathematical operations, and then the preset frequency range is divided into the multiple frequency intervals through the multiple thresholds; wherein the number of the multiple thresholds is one less than the number of the multiple frequency intervals.

5. The method for obtaining GPU hardware fingerprint according to claim 1 or 4, characterized in that: The first preset frequency value is 0, and the second preset frequency value is an infinite value.

6. The method for obtaining GPU hardware fingerprint according to claim 1, characterized in that: The determining of a plurality of stream processors in the GPU comprises: Determine the first bit number required for the feature array and the second bit number of the encoding value corresponding to the conversion rule; Determine the number of stream processors according to the ratio of the first bit number to the second bit number; The plurality of stream processors, whose number is the number of stream processors, is determined in the GPU.

7. A device for obtaining GPU hardware fingerprint, characterized in that: include: A processor and a memory, wherein the processor is coupled to the memory, and the processor executes instructions when working to implement the method according to any one of claims 1 to 6.

8. A device for obtaining GPU hardware fingerprint, characterized in that: include: A determination module, used to determine a plurality of stream processors in the GPU; An acquisition module, used for acquiring actual operating frequencies of each of the plurality of stream processors during operation; A conversion module, used for converting the actual operating frequencies of each of the multiple stream processors into corresponding coding values ​​according to a preset conversion rule; the conversion module is specifically used for dividing a preset frequency range into multiple frequency intervals, and setting the coding values ​​corresponding to each of the multiple frequency intervals; wherein the preset frequency range is from a first preset frequency value to a second preset frequency value, the first preset frequency value is less than or equal to the minimum theoretical frequency of each of the stream processors, and the second preset frequency value is greater than or equal to the maximum theoretical frequency of each of the stream processors; the actual operating frequencies of each of the multiple stream processors are respectively mapped to the multiple frequency intervals to determine the coding values ​​corresponding to the frequency intervals where the actual operating frequencies of each of the multiple stream processors are located; The combination module is used to combine the encoding values ​​corresponding to the multiple stream processors to form a feature array for characterizing the GPU hardware fingerprint.

9. A readable storage medium, characterized in that: The readable storage medium stores a computer program, and when the computer program is executed by a processor, the method according to any one of claims 1 to 6 is implemented.

Citation Information

Patent Citations

  • Safety monitoring equipment, method and device and storage medium

    CN110059478A

  • Audio fingerprint generation method and device, equipment and storage medium

    CN111400542A