WO2022161182A1 - 基于数据流的可信计算的方法及装置 - Google Patents

基于数据流的可信计算的方法及装置 Download PDF

Info

Publication number
WO2022161182A1
WO2022161182A1 PCT/CN2022/071787 CN2022071787W WO2022161182A1 WO 2022161182 A1 WO2022161182 A1 WO 2022161182A1 CN 2022071787 W CN2022071787 W CN 2022071787W WO 2022161182 A1 WO2022161182 A1 WO 2022161182A1
Authority
WO
WIPO (PCT)
Prior art keywords
data stream
fragmented data
fragmented
trusted
storage service
Prior art date
Application number
PCT/CN2022/071787
Other languages
English (en)
French (fr)
Inventor
余逸荣
邱鸿霖
吴行行
陈辰
Original Assignee
支付宝(杭州)信息技术有限公司
蚂蚁区块链科技(上海)有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 支付宝(杭州)信息技术有限公司, 蚂蚁区块链科技(上海)有限公司 filed Critical 支付宝(杭州)信息技术有限公司
Publication of WO2022161182A1 publication Critical patent/WO2022161182A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data

Definitions

  • This specification relates to the field of computer applications, and in particular, to a method and device for trusted computing based on data streams.
  • the present specification discloses a method and apparatus for trusted computing based on data flow.
  • a data flow-based trusted computing method is disclosed, which is applied to a computing device equipped with a trusted execution environment; a trusted computing program is run in the trusted execution environment; The computing device has enabled a storage service for storing the fragmented data stream uploaded by the user program and participating in the trusted computing and the metadata corresponding to the fragmented data stream; wherein, the data in the fragmented data stream
  • the shards are encrypted by the user program respectively; the method includes: receiving an invocation request for the trusted computing program sent by the user program; the invocation request includes the sharded data stream participating in the trusted computing and the identification information of the metadata corresponding to the fragmented data stream; in response to the invocation request, read the fragmented data stream and the metadata from the storage service based on the identification information; the metadata Including a decryption key for decrypting the data fragments in the fragmented data stream, and verification information for performing integrity verification on the data fragments in the fragmented data stream; based
  • a data flow-based trusted computing device which is applied to a computing device equipped with a trusted execution environment; a trusted computing program is run in the trusted execution environment;
  • the computing device has enabled a storage service for storing the fragmented data stream uploaded by the user program and participating in the trusted computing and the metadata corresponding to the fragmented data stream; wherein, the data in the fragmented data stream
  • the shards are encrypted by the user program respectively;
  • the device includes: a receiving module that receives a call request for a trusted computing program sent by the user program; the call request includes the shard data participating in the trusted computing the identification information of the stream and the metadata corresponding to the fragmented data stream;
  • the reading module in response to the invocation request, reads the fragmented data stream and the said fragmented data stream from the storage service based on the identification information Metadata;
  • the metadata includes a decryption key for decrypting the data fragments in the fragmented data stream, and a check for
  • the user program can upload all data fragments and corresponding metadata in the form of data flow to the storage service enabled by the computing device, while The computing device can also read all data fragments and corresponding metadata from the storage service in the form of data streams.
  • User programs no longer need to wait for a long time for the fragments in the trusted execution environment TEE to be transmitted and processed one by one.
  • FIG. 1 is an exemplary diagram of a trusted computing scenario described in this specification
  • Fig. 2 is a flow chart of the trusted computing method based on data flow described in this specification
  • Fig. 3 is a structural example diagram of the data fragmentation and metafile described in this specification.
  • Fig. 4 is a structural example diagram of the data flow-based trusted computing device described in this specification.
  • FIG. 5 is a schematic diagram of a structure of a computer device for performing data flow-based trusted computing described in this specification.
  • first, second, third, etc. may be used in this specification to describe various information, such information should not be limited to these terms. These terms are only used to distinguish the same type of information from each other.
  • first information may also be referred to as the second information, and similarly, the second information may also be referred to as the first information, without departing from the scope of the present specification.
  • word “if” as used herein can be interpreted as "at the time of” or "when” or "in response to determining.”
  • TEE Trusted Execution Environment
  • TEE Trusted Execution Environment
  • the user can process more private data into fragments, and send the fragmented privacy data to the trusted execution environment TEE one by one, and then the trusted execution environment TEE completes the calculation processing one by one.
  • the failure caused by insufficient available memory resources of the TEE in the trusted execution environment can be avoided; for example, if the large batch of data to be processed reaches the level of GB or even TB, far exceeding the available memory resources of the TEE in the above-mentioned trusted execution environment, the user program
  • the size of the shards can be determined according to the size of the memory resources available to the TEE in the above-mentioned trusted execution environment, and according to the determined size of the shards, after the above-mentioned large batch of data is processed into shards, the data shards are sent one by one to the trusted execution environment.
  • the trusted execution environment TEE performs processing until all data fragments are processed by the trusted execution environment TEE.
  • the trusted execution environment TEE cannot determine whether the received data fragment is lost, damaged or maliciously replaced, so it is difficult to guarantee the reliability of the calculation processing result.
  • this specification proposes to use the storage service enabled by the computing device as the input cache between the user program and the trusted execution environment TEE, and based on the fragments obtained from the storage service that have undergone integrity verification and decryption processing A technical solution for trusted computing with data flow.
  • the original data that needs to participate in trusted computing can be sharded and encrypted to form a sharded data stream, and uploaded to the storage service enabled by the computing device together with the metadata including the integrity check information and decryption key.
  • the above computing device can obtain the fragmented data stream uploaded by the user program and the corresponding metadata, and then perform integrity check and decryption on the data fragments in the corresponding fragmented data stream based on the obtained metadata, and finally Complete trusted computing based on decrypted data shards.
  • the user program can upload all data fragments and corresponding metadata in the form of data flow to the storage service enabled by the computing device at one time.
  • the computing device can also read all data fragments and corresponding metadata from the storage service in the form of data streams, and the user program no longer needs to wait for a long time for the fragments in the trusted execution environment TEE to be transmitted and processed one by one.
  • the metadata carries the verification information used for integrity verification of the data fragments in the corresponding fragmented data stream, the After the verification information completes the integrity check on the data fragments in the fragmented data stream, the integrity of the data fragments participating in the trusted computing in the trusted execution environment TEE can be guaranteed, and the reliability of the results of the trusted computing can be improved. reliability.
  • FIG. 1 is an example diagram of a trusted computing scenario described in this specification;
  • the original data that needs to participate in trusted computing can be held by a user program, and the user program can process the original data process, form the fragmented data stream and the corresponding metadata as shown in the figure, and upload the fragmented data stream and the metadata corresponding to the fragmented data stream to the storage service as shown in the figure;
  • the computing device of the trusted execution environment can obtain the above-mentioned fragmented data stream and corresponding metadata from the above-mentioned storage service, so as to finally obtain the calculation result of trusted computing.
  • the process of writing the fragmented data stream by the user program and the computing device obtaining the fragmented data can be completed asynchronously, so the process of writing the fragmented data stream by the user program does not need to wait because the data is processed too slowly in the trusted execution environment, and the trusted execution environment will not be written by the user program.
  • setting a storage service between the user program and the trusted execution environment for storing the sharded data stream uploaded by the user program and participating in the trusted computing and the metadata corresponding to the sharded data stream can reduce the waiting time. time and improve business process coherence.
  • FIG. 2 is an exemplary flowchart of a data flow-based trusted computing method provided by an embodiment of the present specification; the method can be applied to a computing device equipped with a trusted execution environment; the above trusted execution environment A trusted computing program is run in the above-mentioned computing device; the above-mentioned computing device has enabled a storage service for storing the fragmented data stream uploaded by the user program and participating in the above-mentioned trusted computing and the metadata corresponding to the above-mentioned fragmented data stream; wherein, the above-mentioned fragmented data stream
  • the data fragments in the data stream are encrypted by the user program; the method may include the following steps: S201, receiving a call request for a trusted computing program sent by the user program; the call request includes participating in the trusted computing program.
  • the calculated fragmented data stream and the identification information of the metadata corresponding to the fragmented data stream S202, in response to the invocation request, read the fragmented data stream from the storage service based on the identification information and the metadata; the metadata includes a decryption key for decrypting the data fragments in the fragmented data stream, and an integrity check for the data fragments in the fragmented data stream
  • the verification information S203, based on the verification information, perform an integrity check on the data fragments in the fragmented data stream, and after the integrity verification is passed, further based on the decryption key Decrypt the data fragments in the fragmented data stream; S204, call the trusted computing program to perform trusted computing based on the decrypted data fragments in the fragmented data stream.
  • the above-mentioned trusted execution environment can be a logical area in the processor used to ensure the security, confidentiality and integrity of the code and data put into it; generally, the trusted execution environment can provide execution isolated from external systems environment, the external system can only input and output according to the preset specifications, but cannot obtain the code running status and data inside the trusted execution environment; it is understandable that, for different software and hardware environments, the specific The implementation form can be determined by developers themselves. For example, on Intel CPUs, the SGX (software guard extensions) instruction set can be used to complete the configuration of the trusted execution environment, and on ARM processors, TrustZone technology can be used to complete the configuration. configuration of a trusted execution environment; therefore, no further enumeration or limitation is required in this specification.
  • the above-mentioned computing equipment can be a single computer, or a computing cluster formed by a combination of multiple computers, or a logical host divided from a cloud computing platform, or a virtual machine running on a local computer;
  • the specific implementation form of the device does not need to be limited in detail, and those skilled in the art can choose a suitable implementation form according to specific needs.
  • the above-mentioned trusted computing program can include any program running in the above-mentioned trusted execution environment; those skilled in the art can design and develop the above-mentioned trusted computing program according to specific business requirements. No detailed qualification is required.
  • the above-mentioned user program may include an application program that runs outside the above-mentioned trusted execution environment and is used to call the trusted computing program in the above-mentioned trusted execution environment; it can be understood that the above-mentioned user program may be the same as the above-mentioned trusted execution environment
  • the execution environment is a program running on the same computing device, or it can be a program running on other computers that have established a communication connection with the aforementioned computing device; for example, the data to be processed is stored in the data center A, and the aforementioned
  • the computing device of the letter execution environment is located in the computing center B, and there is a network communication connection between the above-mentioned data center A and the computing center B, then the above-mentioned user program may be running in the above-mentioned data center A, and needs to be called remotely.
  • the above-mentioned user programs can also be further subdivided by function. For example, issuing a call instruction and uploading a fragmented data stream can be completed by two different user programs, and a fragmented data stream can also be performed by multiple user programs. The function is uploaded; therefore, those skilled in the art can determine the specific implementation form of the user program by themselves according to specific needs.
  • the above-mentioned computing device may first receive an invocation request for the above-mentioned trusted computing program sent by the user program; specifically, the above-mentioned invocation request may also include the fragmented data stream participating in the above-mentioned trusted computing, and Identification information of the metadata corresponding to the fragmented data stream.
  • the above computing device may receive an invocation request from the user program, such as "for the AAAA fragmented data stream and aaaa metadata, execute the Func1 trusted computing program".
  • the specific software implementation form of the above invocation request does not need to be limited in this specification, and those skilled in the art can determine the implementation details by themselves according to the development language, environment, requirements and other conditions of the specific software project.
  • the above-mentioned computing device may, in response to the above-mentioned invocation request, read the above-mentioned fragmented data stream and the above-mentioned metadata from the above-mentioned storage service based on the above-mentioned identification information; wherein, the above-mentioned metadata may carry the above-mentioned fragmented data stream.
  • the number of the above-mentioned metafiles may correspond to the number of fragmented data streams one-to-one, or multiple metafiles may correspond to one fragmented data stream; for example, a fragmented data stream contains 2000 data fragments.
  • the decryption key of the odd-numbered data fragment is different from the decryption key of the even-numbered data fragment
  • two different metafiles can be established for the fragmented data stream, or one metafile can be The above two different decryption keys are recorded in .
  • the above-mentioned storage service may be a storage service carried by this computing device or a storage service carried by other devices, such as an FTP server, an object storage server, and the like.
  • the above-mentioned storage service may be a storage service carried by other devices connected to the above-mentioned computing device; for example, the storage service may be an object storage service provided by data center A, and the above-mentioned storage service may be The computing device of the information execution environment is located in the computing center B, and a network communication connection is provided between the above-mentioned data center A and the computing center B.
  • the above-mentioned storage service may be a storage service carried by the computing device.
  • the above-mentioned computing device may also receive the fragmented data stream sent by the user program and participate in the above-mentioned trusted computing.
  • the computing device can obtain the fragmented data stream and the corresponding metadata downloaded by the user program from other servers from the download module of the user program, and cache them in the database service, and then store the corresponding The primary key of the database entry is returned to the user program as identification information, so that the user program can call a trusted computing program that requires the fragmented data stream and corresponding metadata to participate in trusted computing.
  • the above-mentioned identification information may include the storage address of the fragmented data stream and the corresponding metadata in the above-mentioned storage service; of course, it can be understood that in addition to using the storage address as the identification information, it is also possible to According to specific needs and the query method supported by the storage service, the meaning of the specific identification information can be selected by itself; for example, in the case that the above-mentioned storage service is an object storage service that supports query by object name, the above-mentioned identification information can be the above-mentioned The name of the storage object corresponding to the fragmented data stream and the corresponding metadata in the above storage service.
  • the above-mentioned computing device may perform an integrity check on the data fragments in the above-mentioned fragmented data stream based on the above-mentioned verification information, and after the above-mentioned integrity check is passed, further based on the above-mentioned decryption key.
  • the data fragments in the fragmented data stream are decrypted; specifically, those skilled in the art can choose the encryption and decryption algorithm and the integrity check algorithm by themselves according to specific needs, and this specification does not need to list them all.
  • the data fragments in the fragmented data stream may carry the first type of check value generated when the user program encrypts the data fragment;
  • the check information may Including the second type of check value generated by performing a preset hash calculation on the first type of check value in the data fragmentation; in this case, the above-mentioned computing device can fragment the data in the above-mentioned fragmented data stream.
  • the first type of check value in the above-mentioned preset hash calculation is performed; if the result obtained by the above-mentioned hash calculation matches the second type of check value in the corresponding verification information, then the above fragmented data stream The data fragment passed the integrity check.
  • the above-mentioned encryption algorithm is the AES-GCM algorithm; when using this algorithm to encrypt data fragments, an authentication tag auth_tag will be generated correspondingly, and the authentication tag auth_tag can be used as the first type of verification. value; and then perform hash calculation such as sha-256 according to the above authentication tag auth_tag, and then the corresponding second type of check value can be obtained.
  • the above method can make full use of the authentication label generated in the encryption process. As long as the integrity of the above data fragment is damaged by deletion, addition or replacement, it will cause the above integrity check to fail. Therefore, it is possible to avoid data fragmentation. The reliability of the calculation results due to security decreases.
  • Fig. 3 is a structural example diagram of data fragmentation and metafile described in this specification; in this example, when generating data fragmentation, it can be further divided into smaller data blocks for encryption, Thus, encrypted data block 1, encrypted data block 2, and encrypted data block n are obtained as shown in the figure; at the same time, due to the characteristics of the AES-GCM algorithm, Auth_tag_1, Auth_tag_2 until Auth_tag_n can be correspondingly generated, and all the above encrypted data blocks can be generated. And the corresponding auth_tag is stored in the data shard.
  • the AES-GCM algorithm is an algorithm in which the encryptor inputs the data block to be encrypted, the encryption key key, the initial vector iv, and the additional information add_data, and obtains the encrypted data block and the authentication tag auth_tag.
  • the initial vector iv and encryption The length of the data block can be carried in the above-mentioned data fragment for further verification or auxiliary decryption.
  • the content in the above-mentioned metafile may be further encrypted.
  • Specific implementation manners Those skilled in the art can determine a specific encryption processing scheme by themselves according to performance and security requirements.
  • the decryption key in the metafile may be encrypted/decrypted using a symmetric encryption key; specifically, the encryption may be performed before the metafile is uploaded to the storage service operation, when the decryption key needs to be extracted from the above-mentioned metafile, the corresponding decryption operation can be performed; the above-mentioned symmetric encryption key can be generated based on the ECIES algorithm; according to the ECIES algorithm, the trusted execution environment can also be obtained.
  • the same key as the symmetric key used for encryption by the user program can ensure the successful completion of the above-mentioned symmetric encryption/decryption;
  • one of the feasible implementation methods is to generate a pair of elliptic curve asymmetric on the user program side
  • the key upk/usk generates another pair of elliptic curve asymmetric keys pk/sk on the trusted execution environment side; on the user program side, it can be calculated and shared through its own private key usk and the public key pk of the trusted execution environment key, and further use the key derivation KDF function to derive the symmetric encryption key from the shared key; correspondingly, the trusted execution environment side can use its own private key sk and the user program's public key upk to calculate the shared key key, and derive the same symmetric encryption key from this shared key through the key derivation KDF function.
  • the above-mentioned computing device may invoke the above-mentioned trusted computing program to perform trusted computing based on the data fragments in the decrypted fragmented data stream.
  • the trusted computing program can be selected and designed according to specific business requirements, and no further limitation is required in this specification.
  • the above-mentioned method may further include the step of returning a result; specifically, the above-mentioned computing device may, in response to a result query request sent by the user program, return the trusted computing result to the user program. It is understood that not all trusted computing results need to be returned to the user program.
  • the above trusted computing results can be directly written to a preset database or file, etc.
  • the result of the calculation further triggers subsequent actions, for example, if the result matches the preset answer, a prompt box for successful matching is displayed, etc.
  • the result of the above trusted calculation can also be returned and displayed in different forms, such as Calculation results in digital form can be corresponding to generate statistical charts, etc.; those skilled in the art can determine whether to return the results obtained after the above trusted calculation to the user program, and can also determine the form of the returned trusted calculation results. No further limitation is made.
  • the result data volume of the trusted computing is too large, a method similar to the input method can be adopted, and the above-mentioned storage service can be used as a cache;
  • the preset threshold the result obtained after the trusted calculation is stored in the storage service, and the storage address of the result in the storage service is returned to the user program. It can be understood that, the returned result can also undergo encryption or fragmentation processing similar to that described above, which is not repeated in this specification.
  • This specification proposes a data stream-based trusted computing device, please refer to FIG. A structural example diagram of a trusted computing device; the device may include a receiving module 401, a reading module 402, a decryption module 403, and a computing module 404; the device can be applied to a computing device equipped with a trusted execution environment; the trusted execution environment A trusted computing program is run in the computing device; the computing device has enabled a storage service for storing the fragmented data stream uploaded by the user program and participating in the trusted computing and the metadata corresponding to the fragmented data stream; wherein, the fragmented data stream The data fragments in the data stream are encrypted by the user program respectively; specifically, the receiving module 401 can receive the invocation request for the trusted computing program sent by the user program; the invocation request includes participating in the trusted computing program.
  • the verification information of the integrity verification the decryption module 403, based on the verification information, performs integrity verification on the data fragments in the fragmented data stream, and after the integrity verification is passed, further based on The decryption key decrypts the data fragments in the fragmented data stream; the computing module 404 invokes the trusted computing program to perform a trusted calculation based on the decrypted data fragments in the fragmented data stream. calculate.
  • the above-mentioned storage service may be a storage service carried by other devices connected to the above-mentioned computing device; for example, the storage service may be an object storage service provided by data center A, and the above-mentioned storage service may be The computing device of the information execution environment is located in the computing center B, and a network communication connection is provided between the above-mentioned data center A and the computing center B.
  • the above-mentioned storage service may be a storage service carried by the computing device.
  • the above-mentioned apparatus may further include a storage module, which can receive a user program to participate in the above-mentioned trusted storage service.
  • the calculated fragmented data stream and the metadata corresponding to the above-mentioned fragmented data stream are stored in the above-mentioned storage service, and the identification information of the above-mentioned fragmented data stream and the corresponding metadata is returned to the user program; for example,
  • the storage service is a database service on the computer.
  • the storage module can obtain the fragmented data stream and the corresponding metadata downloaded by the user program from other servers from the download module of the user program, and cache them in the database service. , and then return the corresponding database entry primary key as identification information to the user program, in case the user program invokes a trusted computing program that requires the fragmented data stream and corresponding metadata to participate in trusted computing.
  • the above-mentioned identification information may include the storage address of the fragmented data stream and the corresponding metadata in the above-mentioned storage service; of course, it can be understood that in addition to using the storage address as the identification information, it is also possible to According to specific needs and the query method supported by the storage service, the meaning of the specific identification information can be selected by itself; for example, in the case that the above-mentioned storage service is an object storage service that supports query by object name, the above-mentioned identification information can be the above-mentioned The name of the storage object corresponding to the fragmented data stream and the corresponding metadata in the above storage service.
  • the data fragments in the fragmented data stream may carry the first type of check value generated when the user program encrypts the data fragment;
  • the check information may Including a second type of check value generated by performing a preset hash calculation on the first type of check value in the data fragmentation; in this case, the above-mentioned decryption module 403 may The first type of check value in the slice is subjected to the above-mentioned preset hash calculation; if the result obtained by the above-mentioned hash calculation matches the second type of check value in the corresponding check information, the above-mentioned fragmented data stream The data shards in it pass the integrity check.
  • the above-mentioned encryption algorithm is the AES-GCM algorithm; when using this algorithm to encrypt data fragments, an authentication tag auth_tag will be generated correspondingly, and the authentication tag auth_tag can be used as the first type of verification. value; and then perform hash calculation such as sha-256 according to the above authentication tag auth_tag, and then the corresponding second type of check value can be obtained.
  • the above method can make full use of the authentication label generated in the encryption process. As long as the integrity of the above data fragment is damaged by deletion, addition or replacement, it will cause the above integrity check to fail. Therefore, it is possible to avoid data fragmentation. The reliability of the calculation results due to security decreases.
  • the decryption key in the metafile may be encrypted/decrypted using a symmetric encryption key; specifically, the encryption may be performed before the metafile is uploaded to the storage service operation, when the decryption key needs to be extracted from the above-mentioned metafile, the above-mentioned decryption module 403 can perform the corresponding decryption operation; wherein, the above-mentioned key used in the symmetric encryption can be generated based on the ECIES algorithm.
  • the above-mentioned apparatus may further include a return module; specifically, the return module may, in response to a result query request sent by the user program, return the result obtained after the trusted calculation to the user program. Result; it is understandable that not all trusted computing results need to be returned to the user program.
  • the above trusted computing results can be directly written into a preset database or file, etc.
  • the result further triggers follow-up actions, for example, if the result matches the preset answer, a prompt box indicating successful matching is displayed, etc.
  • the result of the above trusted computing can also be returned and displayed in different forms, such as digital form
  • the calculation results can be corresponding to generate statistical charts, etc.; those skilled in the art can determine whether to return the results obtained after the above trusted calculation to the user program, and can also determine the form of the returned trusted calculation results. limited.
  • the result data volume of the trusted computing is too large, a method similar to the input method can be adopted, and the above-mentioned storage service can be used as a cache;
  • the result obtained after the above-mentioned trusted calculation is stored in the above-mentioned storage service, and the storage address of the above-mentioned result in the above-mentioned storage service is returned to the above-mentioned user program.
  • the returned result can also undergo encryption or fragmentation processing similar to that described above, which is not repeated in this specification.
  • the embodiments of this specification also provide a computer device, which at least includes a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements the aforementioned data stream-based program when executing the program.
  • Trusted Computing Methods At least includes a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements the aforementioned data stream-based program when executing the program.
  • FIG. 5 shows a schematic diagram of a more specific hardware structure of a computing device provided by an embodiment of this specification.
  • the device may include: a processor 1010 , a memory 1020 , an input/output interface 1030 , a communication interface 1040 and a bus 1050 .
  • the processor 1010 , the memory 1020 , the input/output interface 1030 and the communication interface 1040 realize the communication connection among each other within the device through the bus 1050 .
  • the processor 1010 can be implemented by a general-purpose CPU (Central Processing Unit, central processing unit), a microprocessor, an application specific integrated circuit (Application Specific Integrated Circuit, ASIC), or one or more integrated circuits, etc. program to implement the technical solutions provided by the embodiments of this specification.
  • a general-purpose CPU Central Processing Unit, central processing unit
  • a microprocessor an application specific integrated circuit (Application Specific Integrated Circuit, ASIC)
  • ASIC Application Specific Integrated Circuit
  • the memory 1020 may be implemented in the form of a ROM (Read Only Memory, read-only memory), a RAM (Random Access Memory, random access memory), a static storage device, a dynamic storage device, and the like.
  • the memory 1020 may store an operating system and other application programs. When implementing the technical solutions provided by the embodiments of this specification through software or firmware, the relevant program codes are stored in the memory 1020 and invoked by the processor 1010 for execution.
  • the input/output interface 1030 is used to connect the input/output module to realize information input and output.
  • the input/output/module can be configured in the device as a component (not shown in the figure), or can be externally connected to the device to provide corresponding functions.
  • the input device may include a keyboard, a mouse, a touch screen, a microphone, various sensors, etc.
  • the output device may include a display, a speaker, a vibrator, an indicator light, and the like.
  • the communication interface 1040 is used to connect a communication module (not shown in the figure), so as to realize the communication interaction between the device and other devices.
  • the communication module may implement communication through wired means (eg, USB, network cable, etc.), or may implement communication through wireless means (eg, mobile network, WIFI, Bluetooth, etc.).
  • Bus 1050 includes a path to transfer information between the various components of the device (eg, processor 1010, memory 1020, input/output interface 1030, and communication interface 1040).
  • the above-mentioned device only shows the processor 1010, the memory 1020, the input/output interface 1030, the communication interface 1040 and the bus 1050, in the specific implementation process, the device may also include necessary components for normal operation. other components.
  • the above-mentioned device may only include components necessary to implement the solutions of the embodiments of the present specification, rather than all the components shown in the figures.
  • Embodiments of the present specification further provide a computer-readable storage medium on which a computer program is stored, and when the program is executed by a processor, implements the aforementioned trusted computing method based on a data stream.
  • Computer-readable media includes both persistent and non-permanent, removable and non-removable media, and storage of information may be implemented by any method or technology.
  • Information may be computer readable instructions, data structures, modules of programs, or other data.
  • Examples of computer storage media include, but are not limited to, phase-change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read only memory (ROM), Electrically Erasable Programmable Read Only Memory (EEPROM), Flash Memory or other memory technology, Compact Disc Read Only Memory (CD-ROM), Digital Versatile Disc (DVD) or other optical storage, Magnetic tape cassettes, magnetic tape magnetic disk storage or other magnetic storage devices or any other non-transmission medium that can be used to store information that can be accessed by a computing device.
  • computer-readable media does not include transitory computer-readable media, such as modulated data signals and carrier waves.
  • a typical implementing device is a computer, which may be in the form of a personal computer, laptop computer, cellular phone, camera phone, smart phone, personal digital assistant, media player, navigation device, email sending and receiving device, game control desktop, tablet, wearable device, or a combination of any of these devices.
  • each embodiment in this specification is described in a progressive manner, and the same and similar parts between the various embodiments may be referred to each other, and each embodiment focuses on the differences from other embodiments.
  • the description is relatively simple, and reference may be made to the partial description of the method embodiment for related parts.
  • the device embodiments described above are only illustrative, wherein the modules described as separate components may or may not be physically separated.
  • the functions of each module may be integrated into the same module. or multiple software and/or hardware implementations. Some or all of the modules may also be selected according to actual needs to achieve the purpose of the solution in this embodiment. Those of ordinary skill in the art can understand and implement it without creative effort.

Abstract

一种基于数据流的可信计算方法及装置,所述方法包括:接收用户程序发送的调用请求;所述调用请求包括参与所述可信计算的分片数据流和与所述分片数据流对应的元数据的标识信息;响应于所述调用请求,基于所述标识信息从所述存储服务中读取所述分片数据流和所述元数据;所述元数据包括对所述分片数据流中的数据分片进行解密的解密密钥,以及用于对所述分片数据流中的数据分片进行完整性校验的校验信息;基于所述校验信息,对所述分片数据流中的数据分片进行完整性校验,并在所述完整性校验通过后,进一步基于所述解密密钥对所述分片数据流中的数据分片进行解密;调用所述可信计算程序,基于解密后的所述分片数据流中的数据分片进行可信计算。

Description

基于数据流的可信计算的方法及装置 技术领域
本说明书涉及计算机应用领域,尤其涉及用于基于数据流的可信计算的方法及装置。
背景技术
通常,业务系统在需要对一些隐私数据进行计算和处理时,一方面,为了保证隐私数据被恶意篡改,通常可以采用区块链技术来存证相关的隐私数据;另一方面,为了确保对隐私数据进行计算和处理的安全性,可以将上述计算和处理任务在TEE(Trusted Execution Environment,可信执行环境)中完成;但是,由于可信执行环境TEE所允许使用的内存资源通常是有限的,如果需要计算、处理的隐私数据过多,往往无法一次完成计算。
发明内容
有鉴于此,本说明书公开了基于数据流的可信计算的方法及装置。
根据本说明书实施例的第一方面,公开了一种基于数据流的可信计算方法,应用于搭载了可信执行环境的计算设备;所述可信执行环境中运行了可信计算程序;所述计算设备启用了用于存储用户程序上传的参与所述可信计算的分片数据流和与所述分片数据流对应的元数据的存储服务;其中,所述分片数据流中的数据分片由所述用户程序分别进行了加密处理;所述方法包括:接收用户程序发送的针对可信计算程序的调用请求;所述调用请求包括参与所述可信计算的分片数据流和与所述分片数据流对应的元数据的标识信息;响应于所述调用请求,基于所述标识信息从所述存储服务中读取所述分片数据流和所述元数据;所述元数据包括对所述分片数据流中的数据分片进行解密的解密密钥,以及用于对所述分片数据流中的数据分片进行完整性校验的校验信息;基于所述校验信息,对所述分片数据流中的数据分片进行完整性校验,并在所述完整性校验通过后,进一步基于所述解密密钥对所述分片数据流中的数据分片进行解密;调用所述可信计算程序,基于解密后的所述分片数据流中的数据分片进行可信计算。
根据本说明书实施例的第二方面,公开了一种基于数据流的可信计算装置,应用于搭载了可信执行环境的计算设备;所述可信执行环境中运行了可信计算程序;所述计算设备启用了用于存储用户程序上传的参与所述可信计算的分片数据流和与所述分片数 据流对应的元数据的存储服务;其中,所述分片数据流中的数据分片由所述用户程序分别进行了加密处理;所述装置包括:接收模块,接收用户程序发送的针对可信计算程序的调用请求;所述调用请求包括参与所述可信计算的分片数据流和与所述分片数据流对应的元数据的标识信息;读取模块,响应于所述调用请求,基于所述标识信息从所述存储服务中读取所述分片数据流和所述元数据;所述元数据包括对所述分片数据流中的数据分片进行解密的解密密钥,以及用于对所述分片数据流中的数据分片进行完整性校验的校验信息;解密模块,基于所述校验信息,对所述分片数据流中的数据分片进行完整性校验,并在所述完整性校验通过后,进一步基于所述解密密钥对所述分片数据流中的数据分片进行解密;计算模块,调用所述可信计算程序,基于解密后的所述分片数据流中的数据分片进行可信计算。
以上技术方案中,一方面,由于采用了基于数据流的数据传输和处理方式,用户程序可以将所有数据分片和对应的元数据以数据流的形式上传到计算设备启用的存储服务中,而计算设备也能以数据流的形式从存储服务中读取所有的数据分片和对应的元数据,用户程序不再需要长时间等待可信执行环境TEE中的分片逐个传输、处理,因此不会影响用户侧的其他业务流程进展;另一方面,由于元数据中携带有用于对对应的分片数据流中的数据分片进行完整性校验的校验信息,因此在基于该校验信息对分片数据流中的数据分片完成完整性校验后,可以保证在可信执行环境TEE中参与可信计算的数据分片的完整性,进而可以提高可信计算的结果的可信度。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书文本一同用于解释原理。
图1是本说明书所述可信计算情景的一示例图;
图2是本说明书所述基于数据流的可信计算方法的一流程示例图;
图3是本说明书所述数据分片和元文件的一结构示例图;
图4是本说明书所述基于数据流的可信计算装置的一结构示例图;
图5是本说明书所述用于执行基于数据流的可信计算的计算机设备的一结构示例图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书一个或多个实施例中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是一部分实施例,而不是全部的实施例。基于本说明书一个或多个实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的系统和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
通常,业务系统在需要对一些隐私数据进行计算和处理时,可以将上述计算和处理任务在TEE(Trusted Execution Environment,可信执行环境)中完成;但是,由于可信执行环境TEE所允许使用的内存资源通常是有限的,如果需要计算、处理的隐私数据过多,往往无法一次完成计算。
在相关技术中,用户可以将较多的隐私数据进行分片处理,并将分片处理后的隐私数据逐片发送至可信执行环境TEE中,再由可信执行环境TEE逐片完成计算处理,则可以避免可信执行环境TEE可用内存资源不足导致的故障;举例而言,假设需要处理的大批量数据容量达到GB甚至TB级别,远超上述可信执行环境TEE可用的内存资源,用户程序就可以根据上述可信执行环境TEE可用的内存资源大小确定分片的大小,并按确定出的分片的大小,对上述大批量数据进行分片处理后,将数据分片逐片发送至可 信执行环境TEE内进行处理,直至全部数据分片被可信执行环境TEE处理完毕。
但在应用此种方案的情况下,为了提高数据处理效率,用户程序需要持续等待分片逐个传输、处理,并在上一个数据分片被可信执行环境TEE处理完毕后尽快发送下一个数据分片,会严重影响用户侧的其他业务流程进展。
此外,由于上述过程中,可信执行环境TEE无法确定其接收到的数据分片是否存在丢失、损坏或者被恶意替换,因此难以保证计算处理的结果的可信度。
基于此,本说明书提出将计算设备启用的存储服务,作为用户程序到可信执行环境TEE之间的输入缓存,并基于从该存储服务中获取的、经过完整性校验和解密处理的分片数据流进行可信计算的技术方案。
在实现时,需要参与可信计算的原始数据可以在经过分片以及加密处理后形成分片数据流,与包含完整性校验信息以及解密密钥的元数据一同上传到计算设备启用的存储服务中;上述计算设备则可以获取用户程序上传的分片数据流以及对应的元数据,再基于获取到的元数据对对应的分片数据流中的数据分片进行完整性校验和解密,最后基于解密后的数据分片完成可信计算。
以上技术方案中,一方面,由于采用了基于数据流的数据传输和处理方式,用户程序可以一次性将所有数据分片和对应的元数据以数据流的形式上传到计算设备启用的存储服务中,而计算设备也能以数据流的形式从存储服务中读取所有的数据分片和对应的元数据,用户程序不再需要长时间等待可信执行环境TEE中的分片逐个传输、处理,因此不会影响用户侧的其他业务流程进展;另一方面,由于元数据中携带有用于对对应的分片数据流中的数据分片进行完整性校验的校验信息,因此在基于该校验信息对分片数据流中的数据分片完成完整性校验后,可以保证在可信执行环境TEE中参与可信计算的数据分片的完整性,进而可以提高可信计算的结果的可信度。
下面通过具体实施例并结合具体的应用场景对本说明书进行描述。
请参见图1,图1是本说明书所述可信计算情景的一示例图;在该示例中,需要参与可信计算的原始数据可以由用户程序持有,该用户程序可以将该原始数据进行处理,形成如图所示的分片数据流以及对应的元数据,并将该分片数据流以及与该分片数据流对应的元数据上传至如图所示的存储服务;而搭载有可信执行环境的计算设备则可以从上述存储服务中获取到上述分片数据流以及对应的元数据,从而最终得到可信计算的计算结果。
可以理解的是,在数据的传输速度与处理速度不匹配的情况下,由于存储服务可以缓存分片数据流以及对应的元文件,用户程序写入分片数据流的过程与计算设备获取分片数据流的过程可以异步完成,因此用户程序写入分片数据流的过程不需要因为数据再可信执行环境中处理的速度太慢而进入等待,可信执行环境也不会因为用户程序写入分片数据流的临时减缓而陷入停滞。所以,在用户程序与可信执行环境之间设置用于存储用户程序上传的参与所述可信计算的分片数据流和与所述分片数据流对应的元数据的存储服务,可以减少等待时间,提高业务流程的连贯性。
请参考图2,图2是本说明书一实施例提供的一种基于数据流的可信计算方法的流程示例图;该方法可以应用于搭载了可信执行环境的计算设备;上述可信执行环境中运行了可信计算程序;上述计算设备启用了用于存储用户程序上传的参与上述可信计算的分片数据流和与上述分片数据流对应的元数据的存储服务;其中,上述分片数据流中的数据分片由上述用户程序分别进行了加密处理;上述方法可以包括下列步骤:S201,接收用户程序发送的针对可信计算程序的调用请求;所述调用请求包括参与所述可信计算的分片数据流和与所述分片数据流对应的元数据的标识信息;S202,响应于所述调用请求,基于所述标识信息从所述存储服务中读取所述分片数据流和所述元数据;所述元数据包括对所述分片数据流中的数据分片进行解密的解密密钥,以及用于对所述分片数据流中的数据分片进行完整性校验的校验信息;S203,基于所述校验信息,对所述分片数据流中的数据分片进行完整性校验,并在所述完整性校验通过后,进一步基于所述解密密钥对所述分片数据流中的数据分片进行解密;S204,调用所述可信计算程序,基于解密后的所述分片数据流中的数据分片进行可信计算。
上述可信执行环境,可以是处理器中的一个逻辑区域,用于保证放入其中的代码和数据的安全性、机密性和完整性;通常,可信执行环境可以提供与外部系统隔离的执行环境,外部系统仅能够按预设的规范进行输入和输出,而无法获取可信执行环境内部的代码运行状态和数据;可以理解的是,针对不同的软硬件环境,上述可信执行环境的具体实现形式可以由开发人员自行确定,例如,在Intel的CPU上可以采用SGX(software guard extensions,软件保护扩展)指令集完成可信执行环境的配置,在ARM处理器上则可以采用TrustZone技术完成可信执行环境的配置;因此,本说明书无需进行进一步列举或者限定。
上述计算设备,可以是单台的计算机,也可以是多台计算机联合构成的计算集群,还可以是从云计算平台上划分出的逻辑主机,或者本地计算机上运行的虚拟机;本说明 书对于计算设备的具体实现形式无需进行详细限定,本领域技术人员可以根据具体需求自行选择适宜的实现形式。
上述可信计算程序,可以包括任意在上述可信执行环境中运行的程序;本领域技术人员可以根据具体的业务需求,自行设计并开发上述可信计算程序,本说明书对于其具体实现的业务功能无需进行详细限定。
上述用户程序,可以包括在上述可信执行环境之外运行,并用于调用上述可信执行环境中的可信计算程序的应用程序;可以理解的是,上述用户程序,既可以是与上述可信执行环境运行在同一台计算设备上的程序,也可以是在与上述计算设备建立有通信连接的其他计算机上运行的程序;例如,待处理的数据存储在数据中心A中,而上述搭载了可信执行环境的计算设备则位于计算中心B中,上述数据中心A与计算中心B之间设有网络通信连接,则上述用户程序可以是上述数据中心A中运行的、需要远程调用上述搭载了可信执行环境的计算设备的某应用程序。
亦可以理解的是,上述用户程序亦可以进一步按功能进行细分,例如发出调用指令与上传分片数据流可以分别由两种不同的用户程序完成,分片数据流也可以由多个用户程序功能完成上传;因此,本领域技术人员可以根据具体需求,自行确定用户程序的具体实现形式。
在本说明书中,上述计算设备可以首先接收用户程序发送的、针对上述可信计算程序的调用请求;具体而言,上述调用请求中还可以包括参与上述可信计算的分片数据流,以及与上述分片数据流对应的元数据的标识信息。例如,上述计算设备可能接收到一条诸如“针对AAAA分片数据流以及aaaa元数据,执行Func1可信计算程序”的、来自于用户程序的调用请求。可以理解的是,上述调用请求的具体软件实现形式本说明书无需进行限定,本领域技术人员可以根据具体软件项目的开发语言、环境、需求等条件自行确定实现细节。
在本说明书中,上述计算设备可以响应于上述调用请求,基于上述标识信息从上述存储服务中读取上述分片数据流和上述元数据;其中,上述元数据中可以携带对上述分片数据流中的数据分片进行解密的解密密钥,以及用于对上述分片数据流中的数据分片进行完整性校验的校验信息;例如,上述分片数据流中共包含2000个数据分片,并共用同一个解密密钥,则上述元文件中可以存储有该解密密钥,以及分别对应上述2000个数据分片的完整性校验信息。
可以理解的是,上述元文件的数量,可以与分片数据流的数量一一对应,也可以多个元文件对应一个分片数据流;例如,某分片数据流中包含2000个数据分片,其中编号为奇数的数据分片的解密密钥,与编号为偶数的数据分片的解密密钥不同,则可以针对该分片数据流设立两个不同的元文件,也可以在一个元文件中记录上述两种不同的解密密钥。
亦可以理解的是,上述存储服务,既可以是本计算设备所搭载的存储服务,也可以是其他设备所搭载的存储服务,例如FTP服务器、对象存储服务器等等。
在示出的一种实施方式中,上述存储服务可以是与上述计算设备相对接的其他设备搭载的存储服务;例如,该存储服务可以是数据中心A提供的对象存储服务,而上述搭载了可信执行环境的计算设备则位于计算中心B中,上述数据中心A与计算中心B之间设有网络通信连接。
在示出的一种实施方式中,上述存储服务可以是该计算设备搭载的存储服务,在这种情况下,上述计算设备则还可以接收用户程序发送的参与上述可信计算的分片数据流和与上述分片数据流对应的元数据,将其在上述存储服务中存储,并向用户程序返回上述分片数据流和对应的元数据的标识信息;举例而言,该存储服务为本计算机上的某数据库服务,该计算设备可以从用户程序的下载模块中获取到该用户程序从其他服务器上下载的分片数据流和对应的元数据,并缓存到该数据库服务中,再将对应的数据库条目主键作为标识信息返回至上述用户程序,以备上述用户程序调用需要上述分片数据流和对应的元数据参与可信计算的可信计算程序。
在示出的一种实施方式中,上述标识信息可以包括分片数据流和对应的元数据在上述存储服务中的存储地址;当然可以理解的是,除了将存储地址作为标识信息以外,还可以根据具体需求以及存储服务所支持的查询方法,自行选择具体的标识信息的意义;例如,在上述存储服务为支持按对象的名称进行查询的对象存储服务的情况下,上述标识信息就可以是上述分片数据流和对应的元数据在上述存储服务中对应的存储对象的名称。
在本说明书中,上述计算设备可以基于上述校验信息,对上述分片数据流中的数据分片进行完整性校验,并在上述完整性校验通过后,进一步基于上述解密密钥对上述分片数据流中的数据分片进行解密;具体而言,本领域技术人员可以根据具体需求,自行选择加解密算法以及完整性校验算法,本说明书无需进行全部列举。
在示出的一种实施方式中,上述分片数据流中的数据分片中可以携带有上述用户程序对上述数据分片进行加密时生成的第一类校验值;上述校验信息则可以包括对数据分片中的第一类校验值进行预设的散列计算生成的第二类校验值;在此种情况下,上述计算设备可以对上述分片数据流中的数据分片中的第一类校验值进行上述预设的散列计算;如果上述散列计算得到的结果,与对应的校验信息中的第二类校验值相匹配,则上述分片数据流中的数据分片通过完整性校验。
在示出的一种实施方式中,上述加密的算法为AES-GCM算法;使用该算法对数据分片进行加密时会对应生成认证标签auth_tag,该认证标签auth_tag就可以作为上述第一类校验值;再根据上述认证标签auth_tag执行sha-256等散列计算,就可以得到对应的第二类校验值。
采用上述方式,可以充分利用加密过程中生成的认证标签,只要上述数据分片出现缺失、添加或者替换等破坏完整性的情况,都会导致上述完整性校验无法通过,因此可以避免数据分片不安全导致的计算结果可信度下降。
请参见图3,图3是本说明书所述数据分片和元文件的一结构示例图;在该例子中,在生成数据分片时,可以进一步将切分为更小的数据块进行加密,从而得到如图所示的加密数据块1、加密数据块2直到加密数据块n;同时,由于AES-GCM算法的特性,还可以对应生成Auth_tag_1、Auth_tag_2直到Auth_tag_n,并将上述所有的加密数据块和对应的auth_tag存入数据分片。
可以理解的是,AES-GCM算法是一个加密者输入待加密数据块、加密密钥key、初始向量iv、附加信息add_data,得到加密数据块、认证标签auth_tag的算法,其中,初始向量iv以及加密数据块的长度都可以携带在上述数据分片中,以起到进一步校验或辅助解密的作用。
在本说明书中,为了进一步保证上述元文件的安全可靠,还可以对上述元文件中的内容进行进一步加密处理。具体的实现方式本领域技术人员可以根据性能以及安全性需求,自行确定具体的加密处理方案。
在示出的一种实施方式中,可以使用对称加密密钥对上述元文件中的解密密钥进行加/解密;具体而言,在该元文件被上传到上述存储服务之前,可以进行上述加密操作,在需要从上述元文件中提取解密密钥时,则可以进行对应的解密操作;上述对称加密密钥可以是基于ECIES算法生成的;根据ECIES算法可以使可信执行环境下亦能获取到 与用户程序进行加密时所使用的对称密钥相同的密钥,因此可以保证上述对称加/解密的顺利完成;其中一种可行的实现方式为,在用户程序一侧生成一对椭圆曲线非对称密钥upk/usk,在可信执行环境一侧生成另一对椭圆曲线非对称密钥pk/sk;在用户程序一侧可以通过自己的私钥usk和可信执行环境的公钥pk计算共享密钥,并进一步使用秘钥导出KDF函数从该共享密钥中导出对称加密密钥;相对应的,在可信执行环境一侧可以通过自己的私钥sk和用户程序的公钥upk计算共享密钥,并通过秘钥导出KDF函数从该共享密钥中导出相同的对称加密密钥。
可以理解的是,上述过程中公钥交换的过程,以及密钥对生成的具体方式,本领域技术人员均可以参考相关技术文献完成具体设计,本说明书不作进一步限定。此外,除了ECIES算法以外,本领域技术人员也可以采用其他使得用户程序一侧与可信执行环境一侧达成共识的密钥生成算法,本说明书无需进一步列举。
在本说明书中,上述计算设备可以调用上述可信计算程序,基于解密后的上述分片数据流中的数据分片进行可信计算。如前所述,可信计算程序可以根据具体的业务需求进行选择和设计,本说明书无需进行进一步限定。
在示出的一种实施方式中,上述方法还可以包括返回结果的步骤;具体而言,上述计算设备可以响应于用户程序发送的结果查询请求,向所述用户程序返回所述可信计算后得到的结果;可以理解的是,并非所有可信计算的结果都需要返回给用户程序,例如,上述可信计算的结果可以直接写入预设的数据库或者文件等等,还可以基于上述可信计算的结果进一步触发后续动作,例如结果与预设的答案相匹配则展示匹配成功的提示框等等;亦可以理解的是,上述可信计算的结果也可以以不同形式进行返回和展示,例如数字形式的计算结果可以对应生成统计图表等等;本领域技术人员可以自行确定是否向用户程序返回上述可信计算后得到的结果,也可以自行确定返回的可信计算的结果的形式,本说明书不作进一步限定。
在示出的一种实施方式中,如果可信计算的结果数据量过大,则可以采取与输入时类似的方法,采用上述存储服务作为缓存;具体而言,可以在上述结果的数据量大于预设的阈值的情况下,将上述可信计算后得到的结果存储至上述存储服务中,并向上述用户程序返回上述结果在上述存储服务中的存储地址。可以理解的是,该返回结果也可以进行与前文描述类似的加密或者分片处理,本说明书不再赘述。
上述内容即为本说明书针对所述基于数据流的可信计算方法的全部实施例。本说明书还提供了对应的基于数据流的可信计算装置的实施例如下:本说明书提出一种基于数 据流的可信计算装置,请参见图4,图4为本说明书该基于数据流的可信计算装置的一结构示例图;该装置可以包括接收模块401,读取模块402,解密模块403,计算模块404;该装置可以应用于搭载了可信执行环境的计算设备;该可信执行环境中运行了可信计算程序;该计算设备启用了用于存储用户程序上传的参与该可信计算的分片数据流和与该分片数据流对应的元数据的存储服务;其中,该分片数据流中的数据分片由该用户程序分别进行了加密处理;具体而言,接收模块401,可以接收用户程序发送的针对可信计算程序的调用请求;所述调用请求包括参与所述可信计算的分片数据流和与所述分片数据流对应的元数据的标识信息;读取模块402,响应于所述调用请求,基于所述标识信息从所述存储服务中读取所述分片数据流和所述元数据;所述元数据包括对所述分片数据流中的数据分片进行解密的解密密钥,以及用于对所述分片数据流中的数据分片进行完整性校验的校验信息;解密模块403,基于所述校验信息,对所述分片数据流中的数据分片进行完整性校验,并在所述完整性校验通过后,进一步基于所述解密密钥对所述分片数据流中的数据分片进行解密;计算模块404,调用所述可信计算程序,基于解密后的所述分片数据流中的数据分片进行可信计算。
在示出的一种实施方式中,上述存储服务可以是与上述计算设备相对接的其他设备搭载的存储服务;例如,该存储服务可以是数据中心A提供的对象存储服务,而上述搭载了可信执行环境的计算设备则位于计算中心B中,上述数据中心A与计算中心B之间设有网络通信连接。
在示出的一种实施方式中,上述存储服务可以是该计算设备搭载的存储服务,在这种情况下,上述装置则还可以包括存储模块,该模块可以接收用户程序发送的参与上述可信计算的分片数据流和与上述分片数据流对应的元数据,将其在上述存储服务中存储,并向用户程序返回上述分片数据流和对应的元数据的标识信息;举例而言,该存储服务为本计算机上的某数据库服务,该存储模块可以从用户程序的下载模块中获取到该用户程序从其他服务器上下载的分片数据流和对应的元数据,并缓存到该数据库服务中,再将对应的数据库条目主键作为标识信息返回至上述用户程序,以备上述用户程序调用需要上述分片数据流和对应的元数据参与可信计算的可信计算程序。
在示出的一种实施方式中,上述标识信息可以包括分片数据流和对应的元数据在上述存储服务中的存储地址;当然可以理解的是,除了将存储地址作为标识信息以外,还可以根据具体需求以及存储服务所支持的查询方法,自行选择具体的标识信息的意义;例如,在上述存储服务为支持按对象的名称进行查询的对象存储服务的情况下,上述标 识信息就可以是上述分片数据流和对应的元数据在上述存储服务中对应的存储对象的名称。
在示出的一种实施方式中,上述分片数据流中的数据分片中可以携带有上述用户程序对上述数据分片进行加密时生成的第一类校验值;上述校验信息则可以包括对数据分片中的第一类校验值进行预设的散列计算生成的第二类校验值;在此种情况下,上述解密模块403可以对上述分片数据流中的数据分片中的第一类校验值进行上述预设的散列计算;如果上述散列计算得到的结果,与对应的校验信息中的第二类校验值相匹配,则上述分片数据流中的数据分片通过完整性校验。
在示出的一种实施方式中,上述加密的算法为AES-GCM算法;使用该算法对数据分片进行加密时会对应生成认证标签auth_tag,该认证标签auth_tag就可以作为上述第一类校验值;再根据上述认证标签auth_tag执行sha-256等散列计算,就可以得到对应的第二类校验值。
采用上述方式,可以充分利用加密过程中生成的认证标签,只要上述数据分片出现缺失、添加或者替换等破坏完整性的情况,都会导致上述完整性校验无法通过,因此可以避免数据分片不安全导致的计算结果可信度下降。
在示出的一种实施方式中,可以使用对称加密密钥对上述元文件中的解密密钥进行加/解密;具体而言,在该元文件被上传到上述存储服务之前,可以进行上述加密操作,在需要从上述元文件中提取解密密钥时,则可以由上述解密模块403进行对应的解密操作;其中,上述对称加密所使用的密钥可以是基于ECIES算法生成的。
在示出的一种实施方式中,上述装置还可以包括返回模块;具体而言,该返回模块可以响应于用户程序发送的结果查询请求,向所述用户程序返回所述可信计算后得到的结果;可以理解的是,并非所有可信计算的结果都需要返回给用户程序,例如,上述可信计算的结果可以直接写入预设的数据库或者文件等等,还可以基于上述可信计算的结果进一步触发后续动作,例如结果与预设的答案相匹配则展示匹配成功的提示框等等;亦可以理解的是,上述可信计算的结果也可以以不同形式进行返回和展示,例如数字形式的计算结果可以对应生成统计图表等等;本领域技术人员可以自行确定是否向用户程序返回上述可信计算后得到的结果,也可以自行确定返回的可信计算的结果的形式,本说明书不作进一步限定。
在示出的一种实施方式中,如果可信计算的结果数据量过大,则可以采取与输入时 类似的方法,采用上述存储服务作为缓存;具体而言,上述返回模块可以在上述结果的数据量大于预设的阈值的情况下,将上述可信计算后得到的结果存储至上述存储服务中,并向上述用户程序返回上述结果在上述存储服务中的存储地址。可以理解的是,该返回结果也可以进行与前文描述类似的加密或者分片处理,本说明书不再赘述。
本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现前述的基于数据流的可信计算方法。
图5示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random Access Memory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现 正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述的基于数据流的可信计算方法。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其 中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。

Claims (19)

  1. 一种基于数据流的可信计算方法,应用于搭载了可信执行环境的计算设备;所述可信执行环境中运行了可信计算程序;所述计算设备启用了用于存储用户程序上传的参与所述可信计算的分片数据流和与所述分片数据流对应的元数据的存储服务;其中,所述分片数据流中的数据分片由所述用户程序分别进行了加密处理;所述方法包括:
    接收用户程序发送的针对可信计算程序的调用请求;所述调用请求包括参与所述可信计算的分片数据流和与所述分片数据流对应的元数据的标识信息;
    响应于所述调用请求,基于所述标识信息从所述存储服务中读取所述分片数据流和所述元数据;所述元数据包括对所述分片数据流中的数据分片进行解密的解密密钥,以及用于对所述分片数据流中的数据分片进行完整性校验的校验信息;
    基于所述校验信息,对所述分片数据流中的数据分片进行完整性校验,并在所述完整性校验通过后,进一步基于所述解密密钥对所述分片数据流中的数据分片进行解密;
    调用所述可信计算程序,基于解密后的所述分片数据流中的数据分片进行可信计算。
  2. 根据权利要求1所述的方法,所述存储服务包括与所述计算设备对接的其他设备搭载的存储服务。
  3. 根据权利要求1所述的方法,所述存储服务包括所述计算设备搭载的存储服务;所述方法还包括:
    接收并在所述存储服务中存储用户程序发送的参与所述可信计算的分片数据流和与所述分片数据流对应的元数据;
    向用户程序返回所述分片数据流和对应的元数据的标识信息。
  4. 根据权利要求3所述的方法,所述标识信息包括所述分片数据流和对应的元数据在所述存储服务中的存储地址。
  5. 根据权利要求1所述的方法,所述分片数据流中的数据分片中携带有所述用户程序对所述数据分片进行加密时生成的第一类校验值;所述校验信息包括对数据分片中的第一类校验值进行预设的散列计算生成的第二类校验值;
    所述基于所述校验信息,对所述分片数据流中的数据分片进行完整性校验,包括:
    对所述分片数据流中的数据分片中的第一类校验值进行所述预设的散列计算;若所述散列计算的结果与对应的校验信息中的第二类校验值匹配,则所述分片数据流中的数据分片通过完整性校验。
  6. 根据权利要求5所述的方法,所述加密的算法为AES-GCM算法,所述第一类校验值包括在用户程序中基于AES-GCM算法对所述数据分片进行加密时生成的认证标 签auth_tag。
  7. 根据权利要求1所述的方法,所述解密密钥包括对称加密后的解密密钥密文;所述对称加密的对称密钥为基于ECIES算法生成的对称密钥;
    所述基于所述解密密钥对所述分片数据流中的数据分片进行解密,包括:
    使用基于ECIES算法生成的对称密钥,对所述解密密钥密文进行解密,得到解密密钥明文;
    基于解密密钥明文,对所述分片数据流中的数据分片进行解密。
  8. 根据权利要求1所述的方法,所述方法还包括:
    响应于用户程序发送的结果查询请求,向所述用户程序返回所述可信计算后得到的结果。
  9. 根据权利要求8所述的方法,向所述用户程序返回所述可信计算后得到的结果,包括:
    在所述结果的数据量大于预设的阈值的情况下,将所述可信计算后得到的结果存储至所述存储服务中;
    向所述用户程序返回所述结果在所述存储服务中的存储地址。
  10. 一种基于数据流的可信计算装置,应用于搭载了可信执行环境的计算设备;所述可信执行环境中运行了可信计算程序;所述计算设备启用了用于存储用户程序上传的参与所述可信计算的分片数据流和与所述分片数据流对应的元数据的存储服务;其中,所述分片数据流中的数据分片由所述用户程序分别进行了加密处理;所述装置包括:
    接收模块,接收用户程序发送的针对可信计算程序的调用请求;所述调用请求包括参与所述可信计算的分片数据流和与所述分片数据流对应的元数据的标识信息;
    读取模块,响应于所述调用请求,基于所述标识信息从所述存储服务中读取所述分片数据流和所述元数据;所述元数据包括对所述分片数据流中的数据分片进行解密的解密密钥,以及用于对所述分片数据流中的数据分片进行完整性校验的校验信息;
    解密模块,基于所述校验信息,对所述分片数据流中的数据分片进行完整性校验,并在所述完整性校验通过后,进一步基于所述解密密钥对所述分片数据流中的数据分片进行解密;
    计算模块,调用所述可信计算程序,基于解密后的所述分片数据流中的数据分片进行可信计算。
  11. 根据权利要求10所述的装置,所述存储服务包括与所述计算设备对接的其他设备搭载的存储服务。
  12. 根据权利要求10所述的装置,所述存储服务包括所述计算设备搭载的存储服务;所述装置还包括:
    存储模块,接收并在所述存储服务中存储用户程序发送的参与所述可信计算的分片数据流和与所述分片数据流对应的元数据;向用户程序返回所述分片数据流和对应的元数据的标识信息。
  13. 根据权利要求12所述的装置,所述标识信息包括所述分片数据流和对应的元数据在所述存储服务中的存储地址。
  14. 根据权利要求10所述的装置,所述分片数据流中的数据分片中携带有所述用户程序对所述数据分片进行加密时生成的第一类校验值;所述校验信息包括对数据分片中的第一类校验值执行预设的散列计算生成的第二类校验值;
    所述解密模块进一步:
    对所述分片数据流中的数据分片中的第一类校验值执行所述预设的散列计算;若所述散列计算的结果与对应的校验信息中的第二类校验值匹配,则所述分片数据流中的数据分片通过完整性校验。
  15. 根据权利要求14所述的装置,所述加密的算法为AES-GCM算法,所述第一类校验值包括在用户程序中基于AES-GCM算法对所述数据分片进行加密时生成的认证标签auth_tag。
  16. 根据权利要求10所述的装置,所述解密密钥包括对称加密后的解密密钥密文;所述对称加密的对称密钥为基于ECIES算法生成的对称密钥;
    所述解密模块进一步:
    使用基于ECIES算法生成的对称密钥,对所述解密密钥密文进行解密,得到解密密钥明文;基于解密密钥明文,对所述分片数据流中的数据分片进行解密。
  17. 根据权利要求10所述的装置,所述装置还包括:
    返回模块,响应于用户程序发送的结果查询请求,向所述用户程序返回所述可信计算后得到的结果。
  18. 根据权利要求17所述的装置,所述返回模块进一步:
    在所述结果的数据量大于预设的阈值的情况下,将所述可信计算后得到的结果存储至所述存储服务中;向所述用户程序返回所述结果在所述存储服务中的存储地址。
  19. 一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现权利要求1~9任一所述的基于数据流的可信计算方法。
PCT/CN2022/071787 2021-01-27 2022-01-13 基于数据流的可信计算的方法及装置 WO2022161182A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202110111607.7A CN112434326B (zh) 2021-01-27 2021-01-27 一种基于数据流的可信计算方法及装置
CN202110111607.7 2021-01-27

Publications (1)

Publication Number Publication Date
WO2022161182A1 true WO2022161182A1 (zh) 2022-08-04

Family

ID=74697315

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/071787 WO2022161182A1 (zh) 2021-01-27 2022-01-13 基于数据流的可信计算的方法及装置

Country Status (2)

Country Link
CN (1) CN112434326B (zh)
WO (1) WO2022161182A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112434326B (zh) * 2021-01-27 2021-05-07 支付宝(杭州)信息技术有限公司 一种基于数据流的可信计算方法及装置
CN115708095A (zh) * 2021-08-20 2023-02-21 华为技术有限公司 一种数据安全处理方法和装置
CN114363321A (zh) * 2021-12-30 2022-04-15 支付宝(杭州)信息技术有限公司 文件传输方法、设备及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150156186A1 (en) * 2013-09-16 2015-06-04 Clutch Authentication Systems, Llc System and method for communication over color encoded light patterns
CN107766724A (zh) * 2017-10-17 2018-03-06 华北电力大学 一种可信计算机平台软件栈功能架构的构建方法
CN111027083A (zh) * 2019-12-06 2020-04-17 支付宝(杭州)信息技术有限公司 一种私有数据处理方法及系统
CN111611625A (zh) * 2020-05-26 2020-09-01 牛津(海南)区块链研究院有限公司 云端数据完整性审计方法、装置及计算机可读存储介质
CN112434326A (zh) * 2021-01-27 2021-03-02 支付宝(杭州)信息技术有限公司 一种基于数据流的可信计算方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111859383B (zh) * 2020-06-08 2021-08-06 西安电子科技大学 软件自动分割方法、系统、存储介质、计算机设备、终端
CN112231124B (zh) * 2020-12-14 2021-03-19 支付宝(杭州)信息技术有限公司 基于隐私保护的应用间通信方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150156186A1 (en) * 2013-09-16 2015-06-04 Clutch Authentication Systems, Llc System and method for communication over color encoded light patterns
CN107766724A (zh) * 2017-10-17 2018-03-06 华北电力大学 一种可信计算机平台软件栈功能架构的构建方法
CN111027083A (zh) * 2019-12-06 2020-04-17 支付宝(杭州)信息技术有限公司 一种私有数据处理方法及系统
CN111611625A (zh) * 2020-05-26 2020-09-01 牛津(海南)区块链研究院有限公司 云端数据完整性审计方法、装置及计算机可读存储介质
CN112434326A (zh) * 2021-01-27 2021-03-02 支付宝(杭州)信息技术有限公司 一种基于数据流的可信计算方法及装置

Also Published As

Publication number Publication date
CN112434326A (zh) 2021-03-02
CN112434326B (zh) 2021-05-07

Similar Documents

Publication Publication Date Title
US11088846B2 (en) Key rotating trees with split counters for efficient hardware replay protection
CN108540459B (zh) 数据储存方法、装置、系统、电子设备及计算机可读介质
WO2022161182A1 (zh) 基于数据流的可信计算的方法及装置
CN110032885B (zh) 区块链中实现隐私保护的方法、节点和存储介质
TWI725709B (zh) 資料儲存方法、裝置及設備
WO2020233616A1 (zh) 结合代码标注与交易、用户类型的收据存储方法和节点
CN110020549B (zh) 区块链中实现隐私保护的方法、节点和存储介质
CN111901402A (zh) 区块链中实现隐私保护的方法、节点和存储介质
WO2020233613A1 (zh) 结合代码标注与交易类型的有条件的收据存储方法和节点
WO2020233635A1 (zh) 结合多类型维度的条件限制的收据存储方法和节点
CN110020856B (zh) 区块链中实现混合交易的方法、节点和存储介质
WO2020233637A1 (zh) 结合代码标注与用户类型的收据存储方法和节点
WO2020233640A1 (zh) 结合代码标注与判断条件的收据存储方法和节点
WO2020233632A1 (zh) 基于事件函数类型的收据存储方法和节点
WO2020233629A1 (zh) 基于代码标注的对象级收据存储方法和节点
WO2020233627A1 (zh) 多类型维度的收据存储方法和节点
WO2020233634A1 (zh) 结合交易与事件类型的条件限制的收据存储方法和节点
CN111612462A (zh) 区块链中实现隐私保护的方法、节点和存储介质
CN110033265B (zh) 区块链中实现隐私保护的方法、节点和存储介质
KR102363080B1 (ko) 우회-불가능한 게이트웨이를 이용한 tpm-기반의 안전한 다자간 컴퓨팅 시스템
CN110598416B (zh) 交易调度方法及装置
WO2021057273A1 (zh) 在fpga上实现高效合约调用的方法及装置
US10462113B1 (en) Systems and methods for securing push authentications
WO2021057272A1 (zh) 基于fpga实现合约调用的方法及装置
JP2022141962A (ja) データの照会と書き込み方法、装置、電子機器、読み取り可能な記憶媒体およびコンピュータプログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22745059

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 22745059

Country of ref document: EP

Kind code of ref document: A1