CN110674526B - 异步加密实现方法、装置、设备及可读存储介质 - Google Patents

异步加密实现方法、装置、设备及可读存储介质 Download PDF

Info

Publication number
CN110674526B
CN110674526B CN201910943067.1A CN201910943067A CN110674526B CN 110674526 B CN110674526 B CN 110674526B CN 201910943067 A CN201910943067 A CN 201910943067A CN 110674526 B CN110674526 B CN 110674526B
Authority
CN
China
Prior art keywords
encryption
asynchronous
preset
calling
intermediate variable
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
CN201910943067.1A
Other languages
English (en)
Other versions
CN110674526A (zh
Inventor
黄启军
陈天健
范涛
马国强
康焱
黄铭毅
林江淼
陈振南
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
WeBank Co Ltd
Original Assignee
WeBank Co Ltd
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 WeBank Co Ltd filed Critical WeBank Co Ltd
Priority to CN201910943067.1A priority Critical patent/CN110674526B/zh
Publication of CN110674526A publication Critical patent/CN110674526A/zh
Application granted granted Critical
Publication of CN110674526B publication Critical patent/CN110674526B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种异步加密实现方法、装置、设备及可读存储介质,所述方法包括:调用预设的异步通道计算加密或解密运算所需的中间变量;调用所述异步通道添加所述中间变量至目标队列中;从所述目标队列中获取中间变量,并采用所述中间变量进行加密或解密运算。本发明实现了加密或解密过程中无需花费较多的时间去计算耗时的中间变量,从而提高了加密或加密的运算效率,也提高了加密或解密的运算性能。

Description

异步加密实现方法、装置、设备及可读存储介质
技术领域
本发明涉及加密技术领域,尤其涉及一种异步加密实现方法、装置、设备及可读存储介质。
背景技术
随着计算机技术的发展,对数据进行加密的安全技术已经应用于越来越多的领域。目前计算机一般会在需要对数据进行加密或解密时,即时进行加解密运算,若加密解密的算法对计算性能要求比较低的情况下,这种即时进行加密运算或解密运算的方式一般不会影响运算速度。但是,当加密解密算法对计算性能要求比较高,如为达到安全性标准采用较大的密钥时,计算机采用即时计算的方式速度会很慢,甚至无法运算。
发明内容
本发明的主要目的在于提供一种异步加密实现方法、装置、设备及可读存储介质,旨在解决目前计算机进行加密或解密运算时,即时进行加密或解密运算,计算效率低的问题。
为实现上述目的,本发明提供一种异步加密实现方法,所述异步加密实现方法包括以下步骤:
调用预设的异步通道计算加密或解密运算所需的中间变量;
调用所述异步通道添加所述中间变量至目标队列中;
从所述目标队列中获取中间变量,并采用所述中间变量进行加密或解密运算。
可选地,所述预设的异步通道包括至少一个并行线程或至少一个并行进程,所述调用预设的异步通道计算加密或解密运算所需的中间变量的步骤包括:
调用并行线程或并行进程通过CPU中的随机数发生器生成随机数;
并通过预设大数运算库根据所述随机数计算中间变量。
可选地,所述预设的异步通道包括图形处理器GPU,所述调用预设的异步通道计算加密或解密运算所需的中间变量的步骤包括:
调用GPU通过GPU中的随机数发生器生成随机数;
并通过预设大数运算库根据所述随机数计算中间变量。
可选地,所述预设的异步通道包括预设的硬件芯片,所述调用预设的异步通道计算加密或解密运算所需的中间变量的步骤包括:
调用所述硬件芯片通过所述硬件芯片中的硬件随机数发生器生成随机数;
采用所述硬件芯片中的硬件指令根据所述随机数计算中间变量。
可选地,所述预设的异步通道包括并行线程、并行进程、GPU和预设的硬件芯片中的一个或多个。
可选地,所述调用所述异步通道添加所述中间变量至目标队列中的步骤包括:
调用所述异步通道将计算得到的预设数量的中间变量一起添加至所述目标队列中,其中,所述目标队列为共享内存队列、文件、数据库或消息队列。
可选地,所述从所述目标队列中获取中间变量的步骤包括:
获取本次加密或解密运算的待取变量个数;
根据预设的每批次可取的变量个数和所述待取变量个数确定获取中间变量的批次数;
按照所述批次数从所述目标队列中获取所述待取变量个数的中间变量。
为实现上述目的,本发明还提供一种异步加密实现装置,所述异步加密实现装置包括:
调用模块,用于调用预设的异步通道计算加密或解密运算所需的中间变量;调用所述异步通道添加所述中间变量至目标队列中;
加解密模块,用于从所述目标队列中获取中间变量,并采用所述中间变量进行加密或解密运算。
为实现上述目的,本发明还提供一种异步加密实现设备,所述异步加密实现设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的异步加密实现程序,所述异步加密实现程序被所述处理器执行时实现如上所述的异步加密实现方法的步骤。
此外,为实现上述目的,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有异步加密实现程序,所述异步加密实现程序被处理器执行时实现如上所述的异步加密实现方法的步骤。
本发明中,通过调用预设的异步通道计算加密或解密运算需要用到的中间变量,并调用异步通道将中间变量添加至目标队列中,在需要进行加密或解密运算时,从目标队列中获取中间变量,采用中间变量进行加密或解密运算,由于是直接获取中间变量使用,而不需要使用时临时计算,使得加密或解密过程中无需花费较多的时间去计算中间变量,减少了计算中间变量所耗费的时间,从而提高了加密或加密的运算效率,也提高了加密或解密的运算性能,并且通过异步通道计算中间变量,减少了加密运算所消耗的系统本地资源,提高了系统性能。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的结构示意图;
图2为本发明异步加密实现方法第一实施例的流程示意图;
图3为本发明实施例涉及的一种异步计算和使用中间变量的示意图;
图4为本发明异步加密实现装置较佳实施例的功能示意图模块图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图。
需要说明的是,本发明实施例异步加密实现设备可以是智能手机、个人计算机和服务器等设备,在此不做具体限制。
如图1所示,该异步加密实现设备可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的设备结构并不构成对异步加密实现设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及异步加密实现程序。其中,操作系统是管理和控制设备硬件和软件资源的程序,支持异步加密实现程序以及其它软件或程序的运行。
在图1所示的设备中,用户接口1003主要用于与客户端进行数据通信;网络接口1004主要用于与服务器端建立通信连接;而处理器1001可以用于调用存储器1005中存储的异步加密实现程序,并执行以下操作:
调用预设的异步通道计算加密或解密运算所需的中间变量;
调用所述异步通道添加所述中间变量至目标队列中;
从所述目标队列中获取中间变量,并采用所述中间变量进行加密或解密运算。
进一步地,所述预设的异步通道包括至少一个并行线程或至少一个并行进程,所述调用预设的异步通道计算加密或解密运算所需的中间变量的步骤包括:
调用并行线程或并行进程通过CPU中的随机数发生器生成随机数;
并通过预设大数运算库根据所述随机数计算中间变量。
进一步地,所述预设的异步通道包括图形处理器GPU,所述调用预设的异步通道计算加密或解密运算所需的中间变量的步骤包括:
调用GPU通过GPU中的随机数发生器生成随机数;
并通过预设大数运算库根据所述随机数计算中间变量。
进一步地,所述预设的异步通道包括预设的硬件芯片,所述调用预设的异步通道计算加密或解密运算所需的中间变量的步骤包括:
调用所述硬件芯片通过所述硬件芯片中的硬件随机数发生器生成随机数;
采用所述硬件芯片中的硬件指令根据所述随机数计算中间变量。
进一步地,所述预设的异步通道包括并行线程、并行进程、GPU和预设的硬件芯片中的一个或多个。
进一步地,所述调用所述异步通道添加所述中间变量至目标队列中的步骤包括:
调用所述异步通道将计算得到的预设数量的中间变量一起添加至所述目标队列中,其中,所述目标队列为共享内存队列、文件、数据库或消息队列。
进一步地,所述从所述目标队列中获取中间变量的步骤包括:
获取本次加密或解密运算的待取变量个数;
根据预设的每批次可取的变量个数和所述待取变量个数确定获取中间变量的批次数;
按照所述批次数从所述目标队列中获取所述待取变量个数的中间变量。
基于上述的结构,提出异步加密实现方法的各个实施例。
参照图2,图2为本发明异步加密实现方法第一实施例的流程示意图。
本发明实施例提供了异步加密实现方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。本发明异步加密实现方法的各个实施例的执行主体可以是智能手机、个人计算机和服务器等设备,为便于描述,以下各实施例中省略执行主体进行阐述。在本实施例中,异步加密实现方法包括:
步骤S10,调用预设的异步通道计算加密或解密运算所需的中间变量;
目前,计算机在业务处理过程中,可能会需要对数据进行加密或解密运算,但是加密或解密所采用的密钥较大时,计算机加密或解密的速度会很慢,从而影响业务处理的效率。
在本实施例中,为解决上述加密解密运算耗时的问题,提出一种异步加密的实现方法,通过将加密或解密过程中需要用到的中间变量异步生成并预存,在需要进行加密或解密运算时使用预先生成的中间变量,来提高加密或解密运算的速度。
具体地,调用预设的异步通道计算加密或解密运算所需要的中间变量。其中,预设的异步通道可以是预先设置的能够与处理加密或解密运算的线程异步运行的通道,可以通过多种方式实现异步通道,如通过多线程技术或多进程技术,并且,可以是同时调用多种不同方式实现的异步通道来计算中间变量。中间变量可以是加密或解密过程中需要运用的计算过程比较耗时的数据。比如很多加密或解密算法存在随机数生成或混淆这样中间步骤,如Paillier同态加密算法需要计算X=R^N mod E,其中R是随机数,N和E是公钥,X为后续加密步骤的先决条件(中间变量),X的计算过程往往比较耗时,因此可通过调用异步通道来预先或者同步计算X。
步骤S20,调用所述异步通道添加所述中间变量至目标队列中;
调用异步通道计算得到中间变量后,可调用异步通道将中间变量添加至目标队列中。需要说明的是,可以是调用异步通道每计算得到一个中间变量即添加到目标队列,也可以是计算得到一批后,将一批中间变量一起添加至目标队列,具体可根据存入数据的成本确定每次存入的目标变量的个数,如存入数据的成本小时可一次存入一个。其中,目标队列可以采用多种方式实现,如共享内存(shared memory)的方式,预先创建共享内存,并允许异步通道访问该共享内存,调用异步通道在计算得到中间变量后将中间变量添加至共享内存队列中。共享内存是多进程、多线程之间的一种通信方法。
进一步地,可以是调用异步通道将中间变量添加至目标队列的尾部,当检测到目标队列中的中间变量已满,如预先规定了目标队列中存放中间变量的最大个数,当目标队列中存放的中间变量达到最大个数时进行等待,当目标队列中存在空位时,再将中间变量存入目标队列。
步骤S30,从所述目标队列中获取中间变量,并采用所述中间变量进行加密或解密运算。
涉及加密或解密运算的业务处理线程在需要用到中间变量时,从目标队列中获取中间变量,采用获取到的中间变量进行加密或解密运算。由于目标队列中的中间变量是调用异步通道异步计算得到的,即在加密或解密运算的业务处理线程进行加密或解密之前或同步计算得到,所以不会影响不会影响正常进行加密或解密运算的业务处理线程的执行速度,即不会浪费时间在中间变量的计算过程中,从而提高了加密或解密运算的速度。例如,通过调用异步通道预先计算得到10个中间变量并添加至共享内存队列中,在加密运算时,从共享内存队列中直接取出需要用到的5个中间变量进行加密运算,从而节省了计算5个中间变量的时间。中间变量的计算过程越复杂时,所节省的时间越多,从而在安全性能要求较高而将密钥设置得较复杂的场景下,能够极大地节省加密或解密运算的时间。
进一步地,可以从目标队列的头部获取中间变量,并将该中间变量从目标队列中去除,若目标队列中的中间变量个数是10个,获取一个中间变量后,目标队列中的中间变量个数变为9个。若目标队列中没有中间变量时则等待,当目标队列中存有中间变量时再获取。当需要的中间变量个数为多个时,可以一次获取一个,获取多次,也可以是一次获取多个,具体可根据获取数据的成本确定每次获取的中间变量的个数,如当数据获取成本小时,可以一次获取一个。
在本实施例中,通过调用预设的异步通道计算加密或解密运算需要用到的中间变量,并调用异步通道将中间变量添加至目标队列中,在需要进行加密或解密运算时,从目标队列中获取中间变量,采用中间变量进行加密或解密运算,由于是直接获取中间变量使用,而不是需要使用时临时计算,使得加密或解密过程中无需花费较多的时间去计算中间变量,减少了计算中间变量所耗费的时间,从而提高了加密或加密的运算效率,也提高了加密或解密的运算性能。
进一步地,所述步骤S20包括:
步骤S201,调用所述异步通道将计算得到的预设数量的中间变量一起添加至所述目标队列中,其中,所述目标队列为共享内存队列、文件、数据库或消息队列。
进一步地,可以是调用异步通道将计算得到的预设数量的中间变量一起添加至目标队列中。其中,预设数量可以是预先根据存入数据的成本设置,如存入数据的成本较高时,将预设数量设置得较大,为提高系统吞吐量也可以将预设数量设置得较大。目标队列可以是共享内存队列、文件、数据库或消息队列中的一种,也可以是采用其他方式实现目标队列。其中通过共享内存的方式实现目标队列,即通过共享内存的方式缓存中间变量,可以实现跨编程语言、跨硬件设备共用。
进一步地,步骤S30中从所述目标队列中获取中间变量的步骤包括:
步骤S301,获取本次加密或解密运算的待取变量个数;
步骤S302,根据预设的每批次可取的变量个数和所述待取变量个数确定获取中间变量的批次数;
步骤S303,按照所述批次数从所述目标队列中获取所述待取变量个数的中间变量。
进一步地,当获取数据的成本较高时,可以预先设置每批次可以从目标队列中获取中间变量的个数。当需要进行加密或解密运算时,获取本次加密或解密运算所需要的中间变量的个数,即待取变量个数。根据预先设置的每批次可取的变量个数,和获取到的待取变量个数确定获取中间变量的批次数,即确定需要获取几次。具体地,可用待取变量个数除以每批次可取的变量个数,并向上取整得到批次数。如每批次可取的变量个数是N1个,待取变量个数是N2个,采用N2除以N1并将结果取整,如当N2为5个,N1为3个时批次数为2,当N2为3个,N1为5个时,批次数为1。按照确定的批次数从目标队列中获取待取变量个数的中间变量,具体可以是按照批次数和每批次可取的变量个数,从目标队列获取中间变量,N1为3,批次数为2,则分两次获取中间变量,每次获取3个中间变量,当N2是5时,可将多余的一个中间变量丢弃。
进一步地,基于上述第一实施例,提出本发明异步加密实现方法第二实施例,在本发明异步加密实现方法第二实施例中,所述异步通道包括至少一个并行进程或至少一个并行线程,所述步骤S10包括:
步骤A10,调用并行线程或并行进程通过CPU中的随机数发生器生成随机数;
当需要异步计算中间变量时,可采用多进程或多线程技术,如多核CPU,开启至少一个并行进程或至少一个并行线程,并行是指与处理加密或解密运算的进程或线程并行。具体地,调用并行线程或并行进程通过CPU中的随机数发生器生成随机数,随机数发生器可以以/dev/random或精确的系统时间加服务器硬件标识(如MAC)等作为随机数种子。
步骤A20,并通过预设大数运算库根据所述随机数计算中间变量。
调用并行线程或并行进程通过预设的大数运算库根据随机数计算中间变量。其中,各种加密解密的算法中为了达到一定的安全强度,都是要求在128位、512位或者是1024位这样的字长下进行加减乘除模逆等各种数学运算,称为大数运算。大数运算库是通过编程语言实现的计算大数运算的代码库,以在常用的PC机内部字长多是32位或64位中通过调用大数运算库实现快速高效地实现大数运算。本实施例中,预设大数运算库可预先根据需要设置现有大数运算库的调用方式,并行进程或并行线程通过调用预设的大数运算库进行大数运算,计算得到中间变量。如根据生成的随机数R,计算中间变量X=R^N mod E。
进一步地,当需要的中间变量较多时,可开启多个并行进程或多个并行线程进行中间变量的计算,从而快速获得多个中间变量。由于并行进程和并行线程并不会影响进行加密或解密运算的进程或线程,因此,进行加密或解密运算时不需浪费时间在中间变量的计算过程上,从而提高了加密或解密运算的效率。
进一步地,基于上述第一和第二实施例,提出本发明异步加密实现方法第三实施例,在本发明异步加密实现方法第三实施例中,所述异步通道包括GPU(GraphicsProcessing Unit,图形处理器),所述步骤S10包括:
步骤B10,调用GPU通过GPU中的随机数发生器生成随机数;
步骤B20,并通过预设大数运算库根据所述随机数计算中间变量。
当需要异步计算中间变量时,可调用GPU,通过GPU中的随机数发生器生成随机数。调用GPU通过预设大叔运算库根据随机数计算中间变量。其中,预设的大数运算库可以是预先在GPU中设置现有的大数运算库的调用方式,由GPU调用预设的大数运算库进行大数运算,根据随机数计算得到中间变量,如如根据生成的随机数R,计算中间变量X=R^N mod E。
由于GPU是独立于CPU的处理器,因此,通过调用GPU来进行随机数的生成和中间变量的计算并不会影响进行加密或解密运算的进程或线程,因此,进行加密或解密运算时不需浪费时间在中间变量的计算过程上,从而提高了加密或解密运算的效率。
进一步地,基于上述第一、第二和第三实施例,提出本发明异步加密实现方法第四实施例,在本发明异步加密实现方法第四实施例中,所述异步通道包括预设的硬件芯片,所述步骤S10包括:
步骤C10,调用所述硬件芯片通过所述硬件芯片中的硬件随机数发生器生成随机数;
步骤C30,采用所述硬件芯片中的硬件指令根据所述随机数计算中间变量。
在本实施例中,可以设置能够设置能够进行大数运算的硬件芯片,如采用FPGA(Field Programmable Gate Array,电场可编程逻辑闸阵列)或ASIC(ApplicationSpecific Integrated Circuit,专用集成电路),通过在硬件芯片中设置进行大数运算的硬件指令来实现大数运算。当需要异步计算中间变量时,可调用硬件芯片通过硬件芯片中的随机数发生器生成随机数,并通过硬件芯片中的硬件指令来计算中间变量。
由于额外的硬件芯片是独立于CPU的,通过调用硬件芯片来进行随机数的生成和中间变量的计算并不会影响进行加密或解密运算的进程或线程,因此,进行加密或解密运算时不需浪费时间在中间变量的计算过程上,从而提高了加密或解密运算的效率。
进一步地,在一实施例中,预设的异步通道包括并行线程、并行进程、GPU和预设的硬件芯片中的一个或多个。需要说明的是,可以通过调用并行线程、并行进程、GPU和预设的硬件芯片中的一种,或任意多种异步通道的实现方式进行中间变量的计算,特别是当需要的中间变量较多时,可以调用多种异步通道的实现方式来计算中间变量,从而提高中间变量的生成效率,以提高加密或解密运算的速度。
如图3所示,为一种异步计算和使用中间变量的示意图,通过FPGA/ASIC、GPU和多核CPU实现多个异步生产中间变量的通道,将生产的中间变量添加至队列的尾部,若队列已满则等待;在进行加密或解密运算时,从队列头部获取中间变量,相当于消费队列中的中间变量,队列为空时则等待;通过异步通道实现异步加密解密过程,即中间变量的计算与加密或解密运算不同步,极大地提高了加密或解密运算的速度。
此外,此外本发明实施例还提出一种异步加密实现装置,参照图4,所述异步加密实现装置包括:
调用模块10,用于调用预设的异步通道计算加密或解密运算所需的中间变量;调用所述异步通道添加所述中间变量至目标队列中;
加解密模块20,用于从所述目标队列中获取中间变量,并采用所述中间变量进行加密或解密运算。
进一步地,所述预设的异步通道包括至少一个并行线程或至少一个并行进程,所述调用模块10包括:
第一调用单元,用于调用并行线程或并行进程通过CPU中的随机数发生器生成随机数;并通过预设大数运算库根据所述随机数计算中间变量。
进一步地,所述预设的异步通道包括图形处理器GPU,所述调用模块10包括:
第二调用单元,用于调用GPU通过GPU中的随机数发生器生成随机数;并通过预设大数运算库根据所述随机数计算中间变量。
进一步地,所述预设的异步通道包括预设的硬件芯片,所述调用模块10包括:
第三调用单元,用于调用所述硬件芯片通过所述硬件芯片中的硬件随机数发生器生成随机数;采用所述硬件芯片中的硬件指令根据所述随机数计算中间变量。
进一步地,所述预设的异步通道包括并行线程、并行进程、GPU和预设的硬件芯片中的一个或多个。
进一步地,所述调用模块10还用于调用所述异步通道将计算得到的预设数量的中间变量一起添加至所述目标队列中,其中,所述目标队列为共享内存队列、文件、数据库或消息队列。
进一步地,所述加解密模块20包括:
第一获取单元,用于获取本次加密或解密运算的待取变量个数;
确定单元,用于根据预设的每批次可取的变量个数和所述待取变量个数确定获取中间变量的批次数;
第二获取单元,用于按照所述批次数从所述目标队列中获取所述待取变量个数的中间变量。
本发明异步加密实现装置的具体实施方式的拓展内容与上述异步加密实现方法各实施例基本相同,在此不做赘述。
此外,本发明实施例还提出一种计算机可读存储介质,所述存储介质上存储有异步加密实现程序,所述异步加密实现程序被处理器执行时实现如下所述的异步加密实现方法的步骤。
本发明异步加密实现设备和计算机可读存储介质的各实施例,均可参照本发明异步加密实现方法各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (8)

1.一种异步加密实现方法,其特征在于,所述异步加密实现方法包括以下步骤:
调用预设的异步通道计算加密或解密运算所需的中间变量,其中,所述预设的异步通道为预先设置的能够与处理加密或解密运算的线程异步运行的通道;
调用所述异步通道添加所述中间变量至目标队列中;
从所述目标队列中获取中间变量,并采用所述中间变量进行加密或解密运算;
其中,所述预设的异步通道包括至少一个并行线程或至少一个并行进程,所述调用预设的异步通道计算加密或解密运算所需的中间变量的步骤包括:
调用并行线程或并行进程通过CPU中的随机数发生器生成随机数;
并通过预设大数运算库根据所述随机数计算中间变量;
其中,所述调用所述异步通道添加所述中间变量至目标队列中的步骤包括:
调用所述异步通道将计算得到的预设数量的中间变量一起添加至所述目标队列中,其中,所述目标队列为共享内存队列、文件、数据库或消息队列。
2.如权利要求1所述的异步加密实现方法,其特征在于,所述预设的异步通道包括图形处理器GPU,所述调用预设的异步通道计算加密或解密运算所需的中间变量的步骤包括:
调用GPU通过GPU中的随机数发生器生成随机数;
并通过预设大数运算库根据所述随机数计算中间变量。
3.如权利要求1所述的异步加密实现方法,其特征在于,所述预设的异步通道包括预设的硬件芯片,所述调用预设的异步通道计算加密或解密运算所需的中间变量的步骤包括:
调用所述硬件芯片通过所述硬件芯片中的硬件随机数发生器生成随机数;
采用所述硬件芯片中的硬件指令根据所述随机数计算中间变量。
4.如权利要求1所述的异步加密实现方法,其特征在于,所述预设的异步通道包括并行线程、并行进程、GPU和预设的硬件芯片中的一个或多个。
5.如权利要求1至4任一项所述的异步加密实现方法,其特征在于,所述从所述目标队列中获取中间变量的步骤包括:
获取本次加密或解密运算的待取变量个数;
根据预设的每批次可取的变量个数和所述待取变量个数确定获取中间变量的批次数;
按照所述批次数从所述目标队列中获取所述待取变量个数的中间变量。
6.一种异步加密实现装置,其特征在于,所述异步加密实现装置包括:
调用模块,用于调用预设的异步通道计算加密或解密运算所需的中间变量,其中,所述预设的异步通道为预先设置的能够与处理加密或解密运算的线程异步运行的通道;调用所述异步通道添加所述中间变量至目标队列中;
加解密模块,用于从所述目标队列中获取中间变量,并采用所述中间变量进行加密或解密运算;
其中,所述预设的异步通道包括至少一个并行线程或至少一个并行进程,所述调用模块具体用于:
调用并行线程或并行进程通过CPU中的随机数发生器生成随机数;
并通过预设大数运算库根据所述随机数计算中间变量;
调用所述异步通道将计算得到的预设数量的中间变量一起添加至所述目标队列中,其中,所述目标队列为共享内存队列、文件、数据库或消息队列。
7.一种异步加密实现设备,其特征在于,所述异步加密实现设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的异步加密实现程序,所述异步加密实现程序被所述处理器执行时实现如权利要求1至5中任一项所述的异步加密实现方法的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有异步加密实现程序,所述异步加密实现程序被处理器执行时实现如权利要求1至5中任一项所述的异步加密实现方法的步骤。
CN201910943067.1A 2019-09-30 2019-09-30 异步加密实现方法、装置、设备及可读存储介质 Active CN110674526B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910943067.1A CN110674526B (zh) 2019-09-30 2019-09-30 异步加密实现方法、装置、设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910943067.1A CN110674526B (zh) 2019-09-30 2019-09-30 异步加密实现方法、装置、设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN110674526A CN110674526A (zh) 2020-01-10
CN110674526B true CN110674526B (zh) 2024-01-19

Family

ID=69080573

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910943067.1A Active CN110674526B (zh) 2019-09-30 2019-09-30 异步加密实现方法、装置、设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN110674526B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112073335B (zh) * 2020-09-03 2021-05-25 深圳市掌易文化传播有限公司 大数据支持下的游戏数据连接卡顿处理系统及方法
CN112765615B (zh) * 2020-12-07 2024-09-24 北京百度网讯科技有限公司 数据存储方法、装置以及电子设备
CN114492319A (zh) * 2022-04-07 2022-05-13 西安芯瞳半导体技术有限公司 基于gpu批量生成uuid的方法、装置及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101431407A (zh) * 2008-12-15 2009-05-13 西安电子科技大学 支持线程级加解密的密码处理器及其密码运算操作方法
JP2013205779A (ja) * 2012-03-29 2013-10-07 Oki Electric Ind Co Ltd データ処理装置及びプログラム、並びに、通信装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3864675B2 (ja) * 2000-03-09 2007-01-10 株式会社日立製作所 共通鍵暗号装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101431407A (zh) * 2008-12-15 2009-05-13 西安电子科技大学 支持线程级加解密的密码处理器及其密码运算操作方法
JP2013205779A (ja) * 2012-03-29 2013-10-07 Oki Electric Ind Co Ltd データ処理装置及びプログラム、並びに、通信装置

Also Published As

Publication number Publication date
CN110674526A (zh) 2020-01-10

Similar Documents

Publication Publication Date Title
CN110674526B (zh) 异步加密实现方法、装置、设备及可读存储介质
EP3557814B1 (en) Outsourcing processing operations with homomorphic encryption
US9658832B2 (en) Multi-factor entropy sourcing for random number generators
US20210357759A1 (en) Task processing method and device based on neural network
CN112988362B (zh) 一种任务处理方法、装置、电子设备及存储介质
US20200341812A1 (en) Aggregated virtualized compute accelerators
US11086668B2 (en) Method, electronic device and computer program product for processing task
CN113177225A (zh) 基于区块链的数据存储证明方法、装置、设备和存储介质
CN107895112A (zh) 表单权限设置、表单生成方法及装置、介质、电子设备
CN113014373A (zh) 一种同态计算中的数据加密方法、装置、设备及介质
CN111625469A (zh) 压力测试方法、装置、设备及计算机可读存储介质
CN116257427A (zh) 联邦学习任务的异构测试方法、系统、设备及存储介质
CN107358125B (zh) 一种处理器
CN112395062A (zh) 任务处理方法、装置、设备及计算机可读存储介质
CN112527416A (zh) 任务处理方法、装置、计算机设备和存储介质
CN115795522B (zh) 多核并发的高速密码引擎数据处理方法及装置
CN116070240A (zh) 多芯片调用机制的数据加密处理方法及装置
JP6370230B2 (ja) 秘密計算制御装置、秘密計算制御方法及び秘密計算制御プログラム
CN113159657B (zh) 工序的执行资源分配方法、装置和存储介质
US9015720B2 (en) Efficient state transition among multiple programs on multi-threaded processors by executing cache priming program
CN112416410A (zh) 小程序的数据管理方法、装置、计算机设备和存储介质
Meena et al. Optimized task clustering for mobile cloud computing using Workflowsim
KR102513552B1 (ko) 동형 암호 병렬 연산 방법 및 이를 수행하는 컴퓨팅 장치
CN117473212B (zh) Ntt算法的gpu加速方法、装置、设备及存储介质
KR102428749B1 (ko) 이벤트 공간 분할 방법 및 장치, 컴퓨터 판독 가능한 기록 매체 및 컴퓨터 프로그램

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant