CN107679409B - 一种数据加密的加速方法和系统 - Google Patents

一种数据加密的加速方法和系统 Download PDF

Info

Publication number
CN107679409B
CN107679409B CN201710910093.5A CN201710910093A CN107679409B CN 107679409 B CN107679409 B CN 107679409B CN 201710910093 A CN201710910093 A CN 201710910093A CN 107679409 B CN107679409 B CN 107679409B
Authority
CN
China
Prior art keywords
data
encrypted
external memory
programmable gate
gate array
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
CN201710910093.5A
Other languages
English (en)
Other versions
CN107679409A (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.)
Beijing Xinwei Xinyue Technology Co.,Ltd.
Original Assignee
Shenzhen University
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 Shenzhen University filed Critical Shenzhen University
Priority to CN201710910093.5A priority Critical patent/CN107679409B/zh
Publication of CN107679409A publication Critical patent/CN107679409A/zh
Application granted granted Critical
Publication of CN107679409B publication Critical patent/CN107679409B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Landscapes

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

Abstract

本发明提供一种数据加密的加速方法和系统,涉及计算机技术领域。其中,该方法应用于现场可编程门阵列,包括:从中央处理器获取待加密的数据,并传输到外部存储器中,从外部存储器中调取多组待加密的数据,并利用预置的加密算法同时对多组待加密的数据进行加密计算,将加密后的数据发送到外部存储器中,以使中央处理器获取所述加密后的数据。利用现场可编程门阵列来实现加速,可以降低运行功耗。现场可编程门阵列中实现该方法的硬件为OpenCL编程模型所必须的,因此,现场可编程门阵列可以支持OpenCL编程模型,如此,通过OpenCL编程即可实现现场可编程门阵列中的并行计算,方法灵活,扩展性强。

Description

一种数据加密的加速方法和系统
技术领域
本发明属于计算机技术领域,尤其涉及一种数据加密的加速方法和系统。
背景技术
高级加密标准(Advanced Encryption Standard,AES)算法(又称Rijndael算法)是一种数字加密技术,主要应用于对敏感数据信息的加密,以避免敏感数据信息在存储、处理和网络传输过程中被窃取、泄密、伪造等发生信息安全事故。AES算法为保障数据安全性的重要手段,被广泛应用在众多领域,如无线网WLAN的IEEE803.11协议中的安全机制、电子商务基础平台中的密码协议和交易安全协议、分布式存储系统中敏感数据的加密等。
然而,随着大数据时代的到来,大量的敏感数据在存储或传输过程中需要进行实时加密,但是,现有的AES算法计算速度慢,不能满足大量的敏感数据的加密需求。为解决这一问题,目前,主要采用图形处理器(Graphics Processing Unit,GPU)与加速器搭建的异构计算平台来对AES算法进行加速,其中加速器主要包括:GPU、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)、订制的集成电路(Application Specific IntegratedCircuit,ASIC)等。针对AES算法在不同异构计算平台上加速,现有或已公开的研究提出了许多不同的实现方法以及优化技术,具体分为以下几类:1.以GPU为加速器的异构计算平台对AES算法的加速,其主要围绕AES算法中明文块的分配粒度、共享存储分配原则展开研究。如针对明文块采用不同并行粒度(明文块1byte/线程、4byte/线程、8byte/线程和16byte/线程)的实现方式,以及每线程的明文块和轮密钥存储于共享存储区或线程的私有存储区等实现方式。2.以FPGA为加速器的异构计算平台对AES算法的加速,其主要围绕字节代替和列混淆的实现方式以及各种优化手段(循环展开、流水线等)展开研究。3.以ASIC为加速器的异构计算平台对AES算法的加速,其主要围绕AES算法的各模块实现架构(如流水线级数等)展开研究。
上述方法的主要问题在于,以GPU为加速器的异构计算平台对AES算法的加速,由于其运行时功耗过高,使其在数据中心大规模部署严重受限。以ASIC为加速器的异构计算平台对AES算法的加速的灵活性差,导致算法开发设计后无法进行后续的扩展改动。以FPGA为加速器的异构计算平台主要以硬件为中心,将AES算法以流水硬件电路方式映射到FPGA,这种方式使得AES算法的开发难度大、开发周期长,可扩展性差。
发明内容
本发明提供一种数据加密的加速方法和系统,旨在解决现有的加密方法运行时功耗过高,使其在数据中心大规模部署严重受限的问题,灵活性差,导致算法开发设计后无法进行后续的扩展改动的问题,以及将AES算法以流水硬件电路方式映射到FPGA,这种方式使得AES算法的开发难度大、开发周期长,可扩展性差的问题。
本发明提供的一种数据加密的加速方法,所述方法应用于现场可编程门阵列,所述方法包括:
从中央处理器获取待加密的数据,并传输到外部存储器中;
从所述外部存储器中调取多组所述待加密的数据,并利用预置的加密算法同时对多组所述待加密的数据进行加密计算;
将加密后的数据发送到所述外部存储器中,以使所述中央处理器获取所述加密后的数据。
本发明提供的一种数据加密的加速系统,包括:
所述系统包括:中央处理器、现场可编程门阵列和外部存储器;
所述中央处理器,用于将待加密的数据发送给所述现场可编程门阵列;
所述现场可编程门阵列,用于接收待加密的数据,并将所述待加密的数据传输到外部存储器中,以及,从所述外部存储器中调取多组待加密的数据,并利用预置的加密算法同时对所述多组待加密的数据进行加密计算,以及将加密后的数据发送到所述外部存储器;
所述外部存储器,用于接收所述待加密的数据并存储,以及,发送所述多组待加密的数据给所述现场可编程门阵列,以及,接收所述现场可编程门阵列发送的加密后的数据,并存储。
本发明提供的一种数据加密的加速方法和系统,一方面,利用现场可编程门阵列来实现加速,可以降低运行功耗。另一方面,从中央处理器获取待加密的数据,并传输到外部存储器中,以及利用预置的加密算法同时对多组待加密的数据进行加密运算,现场可编程门阵列中实现该方法的硬件为OpenCL编程模型所必须的,因此,现场可编程门阵列可以支持OpenCL编程模型,如此,通过OpenCL编程即可实现现场可编程门阵列中的并行计算,方法灵活,扩展性强。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例。
图1是本发明第一实施例提供的一种数据加密的加速方法的实现流程示意图;
图2是本发明第二实施例提供的一种数据加密的加速方法的实现流程示意图;
图3是本发明第二实施例提供的OpenCL编程框架下编写AES算法的内核函数Kernel函数的示意图;
图4是本发明第二实施例提供的将AES算法中的内核函数Kernel实例化的结构示意图;
图5是本发明第二实施例提供的设置编译器参数的界面示意图;
图6是本发明第三实施例提供的一种数据加密的加速系统的结构示意图;
图7是本发明第四实施例提供的一种数据加密的加速系统的结构示意图。
具体实施方式
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,图1为本发明第一实施例提供的数据加密的加速方法的实现流程示意图,图1所示的的数据加密的加速方法主要包括以下步骤:
S101、从中央处理器获取待加密的数据,并传输到外部存储器中;
待加密的数据为在数据存储、处理或网络传输过程中容易被窃取、泄密或伪造的敏感数据。
S102、从该外部存储器中调取多组该待加密的数据,并利用预置的加密算法同时对多组该待加密的数据进行加密计算;
S103、将加密后的数据发送到该外部存储器中,以使该中央处理器获取该加密后的数据。
本发明实施例提供的数据加密的加速方法,一方面,利用现场可编程门阵列来实现加速,可以降低运行功耗。另一方面,从中央处理器获取待加密的数据,并传输到外部存储器中,以及利用预置的加密算法同时对多组待加密的数据进行加密运算,现场可编程门阵列中实现该方法的硬件为OpenCL编程模型所必须的,因此,现场可编程门阵列可以支持OpenCL编程模型,如此,通过OpenCL编程即可实现现场可编程门阵列中的并行计算,方法灵活,扩展性强。
请参阅图2,图2为本发明第二实施例提供的数据加密的加速方法的实现流程示意图,图2所示的数据加密的加速方法主要应用于现场可编程门阵列(FPGA)中,其中,该方法主要包括以下步骤:
S201、从中央处理器获取待加密的数据,并传输到外部存储器中;
待加密的数据为在数据存储、处理或网络传输过程中容易被窃取、泄密或伪造的敏感数据。具体的,FPGA通过内置的PCIe接口从中央处理器获取待加密的数据,并利用内置的高速互联总线通过外部存储控制器将待加密数据传输到外部存储器中。其中,PCIe接口和外部存储器可以采用第三方的知识产权IP(Intellectual Property,IP)核嵌入到FPGA中的内部实现。高速互联总线可以采用总线协议AXI(Advanced eXtensible Interface)或AMBA(Advanced Microcontroller Bus Architecture)内部总线实现。外部存储控制器用于控制外部存储器与中央处理器传输待加密数据,以及控制外部存储器与FPGA传输待加密数据。
S202、响应于用户输入内核函数的操作设置加密算法的内核函数;
加密算法可以为AES算法。由于FPGA支持OpenCL编程模型,用户可以利用C/C++语言在OpenCL编程框架下编写AES算法的内核函数,如此,当FPGA检测到用户输入内核函数的操作后,将输入的内核函数设置为AES算法的内核函数,可以实现按照用户的输入来设置内核函数,该方法较为灵活。如图3所示,图3为OpenCL编程框架下编写AES算法的内核函数Kernel函数的示意图。需要说明的是,用户还可以按照实际的需要编写其它的内核函数,在此不作限定。
S203、利用预置的编译器对该内核函数进行编译,并按照预设的编译器参数形成多个计算单元;
具体的,编译器对内核函数进行编译时,可以根据预设的编译器参数自动布局布线产生多个与功能模块对应的比特流bitsteam文件,并将bitsteam文件烧写到FPGA中,得到多个利用内核函数进行计算的计算单元。其中,编译器参数为将内核函数实例化后的计算单元的个数,编译器参数可以由FPGA中硬件资源,例如,逻辑单元、块随机存取存储器(Block Random Access Memory,BRAM)及数字信号处理器(Digital signal processing,DSP)的数量所决定。编译器可以是Xilinx OpenCL编译器或Altera OpenCL编译器。
进一步地,响应于用户输入的每个计算单元中处理单元的个数,设置该处理单元的个数。其中,每个处理单元处理一组待加密的数据。于本发明的一个实施例,如图4所示,图4为将AES算法中的内核函数Kernel实例化的结构示意图,其中,FPGA将内核函数Kernel实例化为多个计算单元CU,每个计算单元CU包括多个处理单元PE。
在实际应用中,当FPGA资源数量增加时,可以通过调整编译内核函数的编译器参数来增加实例化后的计算单元的数量,以进一步提高计算的并行度。于本发明的一个实施例,如图5所示,图5为设置编译器参数的界面示意图。通过调整编译器参数,用户可以按照实际应用调整加密计算的并行度,提高了数据加密加速的灵活性。
S204、利用预置的全局工作项函数获取每组待加密的数据的识别码,并利用获取的识别码从该外部存储器中调取该识别码对应的待加密的数据;
每组待加密的数据为包含预置字节数的数据,其中,每组待加密的数据包含一个识别码。优选地,预置的字节数为16个字节。具体的,FPGA中的每一个处理单元利用预置的全局工作项函数get_global_id函数来获取自身要处理的待加密数据的识别码,并利用获取的识别码从外部存储器中调取识别码对应的待加密数据。
S205、根据该预置的加密算法,利用该多个计算单元中的预置个数的处理单元同时对调取的多组待加密的数据进行加密。
于本发明的一个实施例,如图4所示,FPGA中的每个处理单元PE按照预置的AES算法中的内核函数Kernel对每一组待加密的数据进行加密计算。由于FPGA中包含了多个计算单元CU,每个计算单元CU中包含大于一个的处理单元,在对待加密的数据进行加密时,可以同时并行的进行计算加密,大大的提高了加密计算的速度。
S206、将加密后的数据发送到该外部存储器中,以使该中央处理器获取该加密后的数据。
本发明实施例提供的数据加密的加速方法,一方面,利用现场可编程门阵列来实现加速,可以降低运行功耗。另一方面,从中央处理器获取待加密的数据,并传输到外部存储器中,以及利用预置的加密算法同时对多组待加密的数据进行加密运算,现场可编程门阵列中实现该方法的硬件为OpenCL编程模型所必须的,因此,现场可编程门阵列可以支持OpenCL编程模型,如此,通过OpenCL编程即可实现现场可编程门阵列中的并行计算,方法灵活,扩展性强。
请参阅图6,图6是本发明第三实施例提供的一种数据加密的加速系统的结构示意图,为了便于说明,仅示出了与本发明实施例相关的部分。图6示例的数据加密的加速系统可以是前述图1所示实施例提供的数据加密的加速方法的执行主体,或者还可以是该执行主体中的一个功能模块。图6示例的数据加密的加速系统,主要包括:中央处理器601、现场可编程门阵列602和外部存储器603。以上各功能模块详细说明如下:
中央处理器601,用于将待加密的数据发送给现场可编程门阵列602。
现场可编程门阵列602,用于接收待加密的数据,并将该待加密的数据传输到外部存储器603中,以及从外部存储器603中调取多组待加密的数据,并利用预置的加密算法同时对该多组待加密的数据进行加密计算,以及将加密后的数据发送到外部存储器603。
本发明实施例中现场可编程门阵列602实现该功能的具体方法,可参照上述第一至第二实施例中的相关内容,在此不再赘述。
外部存储器603,用于接收该待加密的数据并存储,以及,发送该多组待加密的数据给现场可编程门阵列602,以及,接收现场可编程门阵列602发送的加密后的数据,并存储。
本发明提供的一种数据加密的加速系统,一方面,利用现场可编程门阵列来实现加速,可以降低运行功耗。另一方面,从中央处理器获取待加密的数据,并传输到外部存储器中,以及利用预置的加密算法同时对多组待加密的数据进行加密运算,现场可编程门阵列中实现该方法的硬件为OpenCL编程模型所必须的,因此,现场可编程门阵列可以支持OpenCL编程模型,如此,通过OpenCL编程即可实现现场可编程门阵列中的并行计算,方法灵活,扩展性强。
请参阅图7,图7是本发明第四实施例提供的一种数据加密的加速系统的结构示意图,为了便于说明,仅示出了与本发明实施例相关的部分。图7示例的数据加密的加速系统可以是前述图1所示实施例提供的数据加密的加速方法的执行主体,或者还可以是该执行主体中的一个功能模块。图7示例的数据加密的加速系统,主要包括:中央处理器701、现场可编程门阵列702和外部存储器703,其中,现场可编程门阵列702包括:加速功能单元612、高速互联总线622、外部存储器控制器632和PCIe接口642。以上各功能模块详细说明如下:
中央处理器701,用于将待加密的数据发送给现场可编程门阵列702。
现场可编程门阵列702,用于接收待加密的数据,并将该待加密的数据传输到外部存储器703中,以及,从外部存储器703中调取多组待加密的数据,并利用预置的加密算法同时对该多组待加密的数据进行加密计算,以及将加密后的数据发送到外部存储器703。
外部存储器703,用于接收该待加密的数据并存储,以及,发送该多组待加密的数据给现场可编程门阵列702,以及,接收现场可编程门阵列702发送的加密后的数据,并存储。
进一步地,
现场可编程门阵列702,还用于响应于用户输入内核函数的操作设置该预置的加密算法的内核函数,并利用预置的编译器对该内核函数进行编译,以及根据预设的编译器参数形成多个计算单元。
中央处理器701,还用于根据该多个计算单元中所有处理单元的个数设置全局工作项参数,并通过该全局工作项参数将该待加密数据划分为该多组待加密的数据。
全局工作项参数用于表示现场可编程门阵列702中多个计算单元中处理单元的总个数。具体的,中央处理器701通过计算单元的个数和局部工作项参数来计算全局工作项参数,其中,局部工作项参数用于表示每个计算中所有处理单元的个数。局部工作项参数可以根据每个计算单元中处理单元个数来设置。在实际应用中,可以在中央处理器701运行的主机程序中设置现场可编程门阵列702中的全局工作项参数和局部工作项参数。中央处理器701按照处理单元的总个数将待加密数据划分为多组,以及将划分后的待加密数据与处理单元的映射关系通过调用OpenCL API函数发送给FPGA。其中,每一组包含一个识别码。
需要说明的是,在实际应用中,当现场可编程门阵列702中的硬件资源不够,不能实例化为预置个数的计算单元时,中央处理器707仍然按照预设的计算的单元的个数计算全局工作项数,并按照全局工作项数划分待加密的数据,待加密的数据的组数大于实际的计算单元中处理单元的总个数,此时,现场可编程门阵列702可分为多个批次来对多组待加密的数据并行加密计算,直至将所有的待加密的数据加密计算完毕。
进一步地,
现场可编程门阵列702,还用于利用预置的全局工作项函数获取每组待加密的数据的识别码,并利用获取的识别码调取该识别码对应的待加密的数据,以及,根据该预置的加密算法,利用该多个计算单元中的处理单元同时对调取的多组待加密的数据进行加密。
进一步地,现场可编程门阵列702包括:加速功能单元712、高速互联总线722、外部存储器控制器732和PCIe接口742。
加速功能单元712,用于对该待加密的数据进行加密。
进一步地,
加速功能单元712包括:多个计算单元7121和多个局部存储器7122,其中,每个计算单元7121对应一个局部存储器。
多个计算单元7121,用于利用预置的加密算法对该多组待加密的数据进行加密。
进一步地,计算单元7121包括多个处理单元,每个处理单元,用于对每一组待加密的数据进行加密。
局部存储器7122连接高速互联总线722,用于存储加密过程中的中间变量和常量。
PCIe接口742与中央处理器连接,用于从中央处理器获取所述待加密的数据。
高速互联网总线722分别连接加速功能单元712、外部存储器控制器732和PCIe接口712,用于将该待加密的数据传输给该外部存储控制器,以及经外部存储控制器732控制将外部存储器703中存储的多组待加密数据传输给加速功能单元712。
外部存储控制器732,用于控制中央处理单元701与外部存储器703之间的通信,以及控制加速功能单元712与外部存储器703之间的通信。
本发明实施例中现场可编程门阵列702实现该功能的具体方法,可参照上述第一至第二实施例中的相关内容,在此不再赘述。
本发明提供的一种数据加密的加速方法和系统,一方面,利用现场可编程门阵列来实现加速,可以降低运行功耗。另一方面,从中央处理器获取待加密的数据,并传输到外部存储器中,以及利用预置的加密算法同时对多组待加密的数据进行加密运算,现场可编程门阵列中实现该方法的硬件为OpenCL编程模型所必须的,因此,现场可编程门阵列可以支持OpenCL编程模型,如此,通过OpenCL编程即可实现现场可编程门阵列中的并行计算,方法灵活,扩展性强。
在本申请所提供的多个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信链接可以是通过一些接口,装置或模块的间接耦合或通信链接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上为对本发明所提供的接领人识别方法、装置及系统的描述,对于本领域的技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。

Claims (5)

1.一种数据加密的加速方法,其特征在于,所述方法应用于现场可编程门阵列,所述方法包括:
从中央处理器获取待加密的数据,并传输到外部存储器中;
响应于用户输入内核函数的操作设置预置的加密算法的内核函数;
利用预置的编译器对所述内核函数进行编译,并按照预设的编译器参数形成多个计算单元;
利用预置的全局工作项函数获取每组待加密的数据的识别码,并利用获取的识别码从所述外部存储器中调取所述识别码对应的待加密的数据,其中,每组所述待加密的数据包含一个识别码,每组待加密的数据为包含预置字节数的数据;
根据所述预置的加密算法,利用所述多个计算单元中的预置个数的处理单元同时对调取的多组待加密的数据进行加密;
将加密后的数据发送到所述外部存储器中,以使所述中央处理器获取所述加密后的数据。
2.一种数据加密的加速系统,其特征在于,所述系统包括:中央处理器、现场可编程门阵列和外部存储器;
所述中央处理器,用于将待加密的数据发送给所述现场可编程门阵列,以及,根据多个计算单元中所有处理单元的个数设置全局工作项参数,并通过所述全局工作项参数将所述待加密数据划分为多组待加密的数据,其中,每组待加密的数据包含一个识别码,每组待加密的数据为包含预置字节数的数据;
所述现场可编程门阵列,用于接收待加密的数据,并将所述待加密的数据传输到外部存储器中,以及,从所述外部存储器中调取多组待加密的数据,并利用预置的加密算法同时对所述多组待加密的数据进行加密计算,以及将加密后的数据发送到所述外部存储器,以及响应于用户输入内核函数的操作设置所述预置的加密算法的内核函数,并利用预置的编译器对所述内核函数进行编译,以及根据预设的编译器参数形成多个计算单元,以及,利用预置的全局工作项函数获取每组待加密的数据的识别码,并利用获取的识别码调取所述识别码对应的待加密的数据,以及,根据所述预置的加密算法,利用所述多个计算单元中的处理单元同时对调取的多组待加密的数据进行加密;
所述外部存储器,用于接收所述待加密的数据并存储,以及,发送所述多组待加密的数据给所述现场可编程门阵列,以及,接收所述现场可编程门阵列发送的加密后的数据,并存储。
3.根据权利要求2所述的系统,其特征在于,所述现场可编程门阵列包括:加速功能单元、高速互联总线、外部存储器控制器和PCIe接口;
所述加速功能单元,用于对所述待加密的数据进行加密;
所述PCIe接口与所述中央处理器连接,用于从所述中央处理器获取所述待加密的数据;
所述高速互联网总线分别连接所述加速功能单元、所述外部存储器控制器和所述PCIe接口,用于将所述待加密的数据传输给所述外部存储控制器,以及经所述外部存储控制器控制将外部存储器中存储的多组待加密数据传输给所述加速功能单元;
所述外部存储控制器,用于控制所述中央处理单元与所述外部存储器之间的通信,以及控制加速功能单元与所述外部存储器之间的通信。
4.权利要求3所述的系统,其特征在于,所述加速功能单元包括:多个计算单元和多个局部存储器,其中,每个计算单元对应一个局部存储器;
所述多个计算单元,用于利用预置的加密算法对所述多组待加密的数据进行加密;
所述局部存储器连接所述高速互联总线,用于存储加密过程中的中间变量和常量。
5.根据权利要求4所述的系统,其特征在于,所述计算单元包括多个处理单元,每个所述处理单元,用于对每一组待加密的数据进行加密。
CN201710910093.5A 2017-09-29 2017-09-29 一种数据加密的加速方法和系统 Active CN107679409B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710910093.5A CN107679409B (zh) 2017-09-29 2017-09-29 一种数据加密的加速方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710910093.5A CN107679409B (zh) 2017-09-29 2017-09-29 一种数据加密的加速方法和系统

Publications (2)

Publication Number Publication Date
CN107679409A CN107679409A (zh) 2018-02-09
CN107679409B true CN107679409B (zh) 2021-02-23

Family

ID=61139376

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710910093.5A Active CN107679409B (zh) 2017-09-29 2017-09-29 一种数据加密的加速方法和系统

Country Status (1)

Country Link
CN (1) CN107679409B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108566393B (zh) * 2018-04-13 2019-04-12 清华大学无锡应用技术研究院 数据加密的方法、装置和系统
CN109032010B (zh) * 2018-07-17 2021-04-20 创新先进技术有限公司 Fpga器件及基于其的数据处理方法
CN110378129A (zh) * 2019-06-18 2019-10-25 苏州浪潮智能科技有限公司 一种哈希加解密运算方法、系统、设备及计算机存储介质
CN110336658B (zh) * 2019-07-01 2023-03-21 武汉能钠智能装备技术股份有限公司 基于aes算法的加密方法、用户设备、存储介质及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101764687A (zh) * 2008-12-25 2010-06-30 上海华虹集成电路有限责任公司 Ucps协议中采用aes算法对数据流加解密的硬件实现方法
CN102664729A (zh) * 2012-04-28 2012-09-12 中山大学 一种基于fpga的aes加解密网络通讯装置及其实现方法
CN106528363A (zh) * 2015-09-14 2017-03-22 深圳市博巨兴实业发展有限公司 一种软硬件协同设计的验证方法和装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8194854B2 (en) * 2008-02-27 2012-06-05 Intel Corporation Method and apparatus for optimizing advanced encryption standard (AES) encryption and decryption in parallel modes of operation
CN106888082B (zh) * 2015-12-16 2019-09-10 北京京航计算通讯研究所 一种用于加密解密的方法和处理器
CN105677254B (zh) * 2016-01-06 2019-10-25 深圳市紫光同创电子有限公司 一种数据处理方法及装置
CN106250784A (zh) * 2016-07-20 2016-12-21 乐视控股(北京)有限公司 全盘加密方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101764687A (zh) * 2008-12-25 2010-06-30 上海华虹集成电路有限责任公司 Ucps协议中采用aes算法对数据流加解密的硬件实现方法
CN102664729A (zh) * 2012-04-28 2012-09-12 中山大学 一种基于fpga的aes加解密网络通讯装置及其实现方法
CN106528363A (zh) * 2015-09-14 2017-03-22 深圳市博巨兴实业发展有限公司 一种软硬件协同设计的验证方法和装置

Also Published As

Publication number Publication date
CN107679409A (zh) 2018-02-09

Similar Documents

Publication Publication Date Title
CN107679409B (zh) 一种数据加密的加速方法和系统
US20210390063A1 (en) Technologies for Secure I/O with Accelerator Devices
US20230017447A1 (en) Unified accelerator for classical and post-quantum digital signature schemes in computing environments
CN107103472B (zh) 一种用于区块链的算法处理模块
US20170324713A1 (en) Techniques for load balancing in a packet distribution system
US20220150055A1 (en) Process-to-process secure data movement in network functions virtualization infrastructures
US11644980B2 (en) Trusted memory sharing mechanism
EP3758275A1 (en) Post quantum public key signature operation for reconfigurable circuit devices
CN112394974A (zh) 代码变更的注释生成方法、装置、电子设备及存储介质
CN107612683A (zh) 一种加解密方法、装置、系统、设备和存储介质
CN112434326B (zh) 一种基于数据流的可信计算方法及装置
CN104021104A (zh) 一种基于双总线结构的协同系统及其通信方法
Huang et al. Garbled circuits in the cloud using fpga enabled nodes
CN113839770A (zh) 用于tls分组加密和解密的高吞吐量后量子aes-gcm引擎
CN113704041A (zh) Fpga设计的安全调试
CN115022076A (zh) 一种数据加/解密方法、装置、系统及介质
Huang et al. Optimized CPU–GPU collaborative acceleration of zero-knowledge proof for confidential transactions
WO2024061052A1 (zh) 模型的处理方法、基于模型的数据处理方法及相关装置
WO2021057273A1 (zh) 在fpga上实现高效合约调用的方法及装置
JP6974959B2 (ja) 統合された記憶媒体のための保存データ(dar)暗号化
CN107979608A (zh) 一种接口可配置的数据加解密传输系统及传输方法
CN103729324A (zh) 一种基于usb3.0接口的云存储文件安全保护装置
WO2019061271A1 (zh) 一种数据加密的加速方法和系统
CN116070230A (zh) 加密处理器、包括加密处理器的电子装置和计算方法
CN115348363A (zh) 一种基于国密算法的加/解密芯片、方法、设备和介质

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210603

Address after: Room 1020, block E1, 12 Yumin Road, Chaoyang District, Beijing

Patentee after: Beijing Xinwei Xinyue Technology Co.,Ltd.

Address before: 518060 No. 3688 Nanhai Road, Shenzhen, Guangdong, Nanshan District

Patentee before: SHENZHEN University