CN112513856A - 存储器高效的硬件加密引擎 - Google Patents
存储器高效的硬件加密引擎 Download PDFInfo
- Publication number
- CN112513856A CN112513856A CN201980049863.9A CN201980049863A CN112513856A CN 112513856 A CN112513856 A CN 112513856A CN 201980049863 A CN201980049863 A CN 201980049863A CN 112513856 A CN112513856 A CN 112513856A
- Authority
- CN
- China
- Prior art keywords
- input
- data
- register
- length
- encryption
- 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.)
- Pending
Links
- 239000000872 buffer Substances 0.000 claims abstract description 55
- 230000003139 buffering effect Effects 0.000 claims abstract description 16
- 238000012546 transfer Methods 0.000 claims abstract description 10
- 238000000034 method Methods 0.000 claims description 11
- 239000013598 vector Substances 0.000 claims description 9
- 238000004891 communication Methods 0.000 claims description 8
- 230000006835 compression Effects 0.000 claims description 2
- 238000007906 compression Methods 0.000 claims description 2
- 238000006467 substitution reaction Methods 0.000 claims description 2
- 230000002093 peripheral effect Effects 0.000 description 9
- 238000013478 data encryption standard Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000001413 cellular effect Effects 0.000 description 2
- 239000004020 conductor Substances 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 208000032182 acquired hemophilia B Diseases 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000007781 signaling event Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/72—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/74—Protecting 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 operating in dual or compartmented mode, i.e. at least one secure mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
一种硬件加密引擎(8)包括用于通过存储器总线接收输入数据的直接存储器存取(DMA)输入模块(13),及加密模块(15)。所述加密模块(15)包括具有输入寄存器长度的输入寄存器(20),及配置成对所述输入寄存器(20)中的数据执行加密操作的电路系统(22)。所述硬件加密引擎(8)还包括长度小于所述输入寄存器长度的两倍的输入对齐缓冲器(16),及用于对所述输入对齐缓冲器(16)中的输入数据执行对齐操作的对齐电路系统(23)。所述硬件加密引擎(8)配置成在缓冲不大于所述输入对齐缓冲器(16)的所述长度的输入数据量之后,将由所述DMA输入模块(13)所接收的输入数据从所述存储器总线(10)传送到所述加密模块(15)的所述输入寄存器(20)。
Description
背景技术
本发明涉及一种硬件加密引擎。
通信和存储系统通常对数据进行加密,以防止未经授权的第三方能够存取未加密数据。密码是操控“明文”消息以产生加密“密文”消息的算法,所述加密“密文”消息对未经授权的第三方来说是无法理解的,但可由经授权用户转换回明文数据。这通常通过使用仅为经授权参与者已知的秘密密钥来实现。在对称密码中,相同密钥用于加密和解密,而非对称密码将公钥用于加密,且将相关联私钥用于解密。在本领域中已知大量的密码算法和相关联加密方案。除了加密和解密操作外,还可以在例如消息认证码(MAC)生成的其它加密操作内使用密码算法。
两种常见的密码算法类型是分块密码和流密码。两者通常都与基于对称密钥的加密方案相关联。分块密码是确定性算法,所述算法依序对固定大小的明文数据块进行操作,以产生对应固定大小的密文块序列。相比之下,流密码例如通过计算输入数据与通过确定性算法从秘密密钥导出的位密钥流之间的按位XOR每次对一位输入数据进行加密。
例如高级加密标准(AES)的大多数分块密码都可以在各种不同的操作模式下使用。最简单的模式是电码本(ECB)模式,其中独立于序列中的每个其它块,对明文块序列中的每个明文数据块进行加密。如图1所示,其示出ECB加密操作。类似地,对每个块独立地执行解密。
在其它操作模式中,明文块序列中的明文数据块(相对于初始块)的位置影响从所述明文块生成的密文块的值。这意味着通常不会将两个相同的明文本加密为同一密文块。这样可以提高安全性。这些其它模式可使用初始化向量(IV)来掩盖第一密文块的输出。图2示出使用密码块链接(CBC)模式进行的加密。
图3示出使用例如SNOW 3G的流密码进行的加密。密钥数据被生成为从加密密钥和初始化向量导出的连续位序列。出于实施目的,可在多位块中生成此密钥流(例如,在SNOW3G中,生成为32位块的序列)。接着将密钥流数据与传入的明文数据按位进行XOR'd,以生成密文输出数据。图3示出一种实施方式,所述实施方式需要对其执行密码操作的输入数据的多位块。然而,替代实施方式可一次对各个位进行操作。
已知以在通用处理器上执行的软件或使用具有用于执行加密操作(例如,密码)的专用电子逻辑的硬件加密引擎来实施加密操作。此类专用硬件实施方式有时也被称作加密加速器、加密协处理器或密码处理器。硬件加密引擎通常可以非常快速地处理大量数据且比软件消耗更少的功率。硬件加密引擎可以允许在所述加密引擎运行时,在与所述硬件加密引擎相同的装置上的通用处理器进入休眠状态,或执行其它任务。
硬件加密引擎可实施为独立组件(例如,专用集成电路封装),或其可与片上系统(SoC)装置上的其它组件集成。
某些例如来自STMicroelectronicsTM的STM32F7加密处理器(CRYP)的已知硬件加密引擎可以使用直接存储器存取(DMA)通过存储器总线接收输入数据,并且可以通过同一存储器总线输出加密密文或解密明文。通过允许处理器在加密引擎从RAM获取输入数据、对数据进行处理并将处理后的结果数据输出到RAM时进入休眠状态,可以进一步节省功率。然而,已知实施方式通常是复杂的且在集成电路上占用相对大的面积。
本发明试图提供一种更简单的硬件加密引擎。
发明内容
根据第一方面,本发明提供一种硬件加密引擎,其包括:
直接存储器存取(DMA)输入模块,其用于通过存储器总线接收输入数据;以及
加密模块,
其中所述加密模块包括:
输入寄存器,其具有输入寄存器长度;以及
电路系统,其配置成对所述输入寄存器中的数据执行加密操作,
其中所述硬件加密引擎还包括长度小于所述输入寄存器长度的两倍的输入对齐缓冲器,以及用于对所述输入对齐缓冲器中的输入数据执行对齐操作的对齐电路系统,并且
其中所述硬件加密引擎配置成在缓冲不大于所述输入对齐缓冲器的所述长度的输入数据量之后,将由所述DMA输入模块从所述存储器总线接收的输入数据传送到所述加密模块的所述输入寄存器。
根据第二方面,本发明提供一种包括此类硬件加密引擎的电子设备。
根据第三方面,本发明提供一种对数据执行加密操作的方法,所述方法包括:
由直接存储器存取(DMA)通过存储器总线接收输入数据;以及
使用硬件加密模块对所接收的输入数据执行加密操作,所述硬件加密模块包括具有输入寄存器长度的输入寄存器和配置成对所述输入寄存器中的数据执行所述加密操作的电路系统,
其中所述方法包括:
在长度小于所述输入寄存器长度的两倍的输入对齐缓冲器中缓冲通过存储器总线接收的所述输入数据;以及
在缓冲不大于所述输入对齐缓冲器长度的输入数据量之后,将所述输入数据传送到所述加密模块的所述输入寄存器。
因此,将看到,根据本发明,硬件加密引擎出于对齐目的而缓冲输入数据,但仅在小于加密操作所需的最小大小的输入单元的两倍的缓冲器中缓冲所述输入数据。此类加密引擎可以比现有技术设计(例如来自STMicroelectronicsTM的STM32F7密码处理器)更低的成本生产,因为其需要的内存更少且因此占用的空间更少。
例如,STM32F7密码处理器具有从DMA控制器接收数据、大小为8x 32位=256位的输入缓冲器。加密处理器实施数据加密标准(Data Encryption Standard,DES)、三重DES和AES。DES和三重DES密码对64位长的输入数据块进行操作,而AES密码对128位块进行操作。
然而,本发明人已经认识到,除了用于确保输入数据的正确对齐的输入对齐之外,有可能产生一种不在输入寄存器之前执行输入缓冲的硬件加密引擎。
在一些实施例中,硬件加密引擎可使用存储器地址信息来从输入对齐缓冲器中选择输入寄存器长度的数据块,并且将所选择的数据块传输到输入寄存器。
在一些实施例中,输入对齐缓冲器长度可等于所述输入寄存器长度的两倍减去一个字节。输入对齐缓冲器的长度应为最小长度,以确保始终有可能将DMA输入模块从存储器总线接收的任何输入数据对齐到输入寄存器的边界(例如,在输入寄存器为32位长的情况下,使用32位对齐),即使所述输入数据仅与字节大小的地址边界对齐也是如此。
例如,在一个实施例中,加密操作是对32位字进行操作的SNOW 3G;输入寄存器长度为32位;且硬件引擎包括输入侧的56位输入对齐缓冲器。其还可包括在DMA输出模块之前的32位输出缓冲器和56位输出对齐缓冲器。
输入寄存器可完全在加密引擎内部,例如,不可从所述加密引擎外部寻址和/或读取和/或写入。加密模块中的电路系统可包括一组一个或多个导线,每个导线具有连接到输入寄存器的相应位位置的第一端,以及连接到相应电子运算符的第二端。输入寄存器中的位数与导线的数量可能一样多。将理解,通过这些手段,加密引擎可直接对输入寄存器中的数据进行操作。每个电子运算符可实施作为加密操作的部分的操作。每个电子运算符可实施逻辑运算、数学运算、替换运算、位加扰运算、循环排列运算、扩展运算或压缩运算。其可以是逻辑门(例如,亦或门)、算术单元或查找表。电子运算符的数量可以较小或较大,或等于输入寄存器的位长。一个电子运算符可从两个或多个位位置接收输入。相反,一个位位置可输入到两个或更多个电子运算符。
输入寄存器可以是移位寄存器或先进先出(FIFO)缓冲器。其可存储字节大小的单元(即,8位)。在一些实施例中,当执行加密操作时,加密模块电路系统可改变输入寄存器中的一个或多个位值。输入寄存器还可充当输出寄存器,且可在加密操作已应用于所述输入寄存器中的数据之后含有所述加密操作的结果。在其它实施例中,输入寄存器的内容可不被执行加密操作的电路系统改变;加密模块可包括用于存储表示所述加密操作的结果的输出数据的独立输出寄存器。输出寄存器的长度可与输入寄存器的长度相同。输出寄存器可完全在加密引擎内部,例如,不可从所述加密引擎外部寻址和/或读取和/或写入。加密模块中的电路系统可包括一组一个或多个导线,每个导线具有连接到输出寄存器的相应位位置的第一端,以及连接到相应电子运算符的输出的第二端。输出寄存器中的位数与导线的数量可能一样多。将理解,通过这些手段,加密引擎可以将计算结果直接输出到输出寄存器。
加密操作可以是密码操作,例如加密和/或解密算法。其可以是标准密码操作,例如SNOW 3G、AES、DES、3DES、KASUMI,或目前已知或将来开发的任何其它流密码或分块密码。加密模块可以是密码模块。加密模块可实施ECB模式或CBC模式或任何其它操作模式。尽管在一些实施例中加密模块可执行更复杂的操作,例如将密码操作用作密码原语来生成消息认证码,但在其它实施例中,所述加密模块仅执行一个或多个原语密码操作。加密模块可支持仅一个加密操作,例如一个密码操作(尽管这可包含密码操作的加密和解密模式)。
输入寄存器长度可以是一位、32位、64位、128位、256位或任何其它合适的长度。输入寄存器长度可以是可变的(例如,取决于所存储的配置参数),但优选地是固定的。输入寄存器长度可等于加密操作的块长度。硬件加密模块可能需要等于输入寄存器长度的最小大小的输入数据单元,以执行加密操作(即正确执行加密操作以生成正确的输出)。
对于流密码,输入寄存器可以是单个位,但其可以是较长的块长度,例如,对于SNOW3G,输入寄存器可以是32位长,且电路系统可以配置成在所述输入寄存器中的数据与由加密模块生成的32位密钥流块之间执行XOR操作。在此实例中,输入寄存器的每一位存储器单元可直接连接到一组三十二个XOR门中的相应XOR门的输入。
加密模块可包括用于接收加密密钥的密钥输入;所述加密模块可包括用于接收初始化向量(IV)的初始化向量输入。DMA输入模块可配置成例如通过存储器总线或通过独立密钥总线接收(即,获取)加密密钥和/或IV。加密模块可从而能够在单链DMA传输中执行加密操作的多个实例(例如,两个或更多个流密码操作)。这可有益于进一步减少处理器上的负载。同样,通过DMA接收密钥和/或IV,加密模块可以确保在接收和处理输入数据之前,加密操作所需的任何密钥数据和IV数据都处于适当位置;这可以帮助避免可能另外发生的任何同步问题,例如,如果密钥数据和IV数据改为由处理器写入输入寄存器,则可能另外需要通过缓冲所述输入数据来缓解这些问题。
硬件加密引擎可包括用于通过存储器总线发送输出数据的直接存储器存取(DMA)输出模块,所述存储器总线可以是前述存储器总线或不同存储器总线。加密模块可包括输出寄存器(其可以是输入寄存器或独立寄存器)。硬件加密引擎可配置成在不缓冲输出数据的情况下,或在缓冲不大于输出寄存器长度或所述输出寄存器长度的两倍的输出数据量之后,通过DMA输出模块将输出数据从输出寄存器的传送到存储器总线。在一些实施例中,硬件加密引擎可具有最小输出缓冲器,所述最小输出缓冲器例如在通过存储器总线发送输出数据之前执行字对齐的输出对齐缓冲器,但至少在一些实施例中,此输出缓冲器可不大于输出寄存器的长度的两倍。然而,在其它实施例中,可存在较大的输出缓冲器,其不一定仅用于数据对齐,但例如用于解决定时问题。可将DMA输入模块和DMA输出模块配置成在输出寄存器中存在数据时停止传入输入数据。
在一些实施例中,输入对齐缓冲器和/或输出缓冲器可以在加密模块内。
加密模块可不含有用于存储或缓冲中间结果的随机存取存储器(RAM)。可将RAM配置成不存储为了实施加密操作而不必存储的任何中间结果。替代地,加密模块可配置成通过仅将加密操作中的步骤的当前操作数存储在加密模块电路系统的内部寄存器中来执行所述加密操作。
在一些实施例中,例如在执行AES-CBC加密时,可能有必要缓冲预定数量个字节以在加密模块内实施链式密码模式。在此类情况下,加密引擎可包括大小设定成存储预定数量个字节的工作缓冲器。工作缓冲器可不大于执行链所需的缓冲器。工作缓冲器可与输出缓冲器或输出寄存器分离,或者它们可相同或可重叠。
DMA输入模块和加密模块可集成在集成电路上,例如在硅芯片上。如上所公开,硬件加密引擎可形成较大电子设备的部分。
包括硬件加密引擎的电子设备可以是集成电路设备,例如片上系统(SoC)或片上无线电。电子设备可包括所述存储器总线。电子设备可包括存储器。电子设备可配置成使用硬件加密引擎来对用于通过例如无线电信道的无线或有线通信链路进行通信的数据进行加密,或对通过例如长期演进(Long Term Evolution,LTE)Cat-M1(LTE-M)或NB-IoT蜂窝无线电链路的此类通信链路所接收的数据进行解密。一些实施例可能非常适合用于对通过蜂窝无线电信道进行通信的数据进行加密或解密,特别是非语音通信,例如机器对机器或物联网通信;这是因为此类无线电通信的带宽要求相对较低,这意味着尽管硬件加密引擎的输入缓冲最少,加密引擎不太可能遇到任何性能或定时问题。
电子设备可包括一个或多个处理器,例如ArmTM CortexTM-M处理器。存储器总线可遵守臂Arm'sTM高级微控制器总线架构(AMBA);其可以是或可包括高级高性能(AHP)总线和/或高级外围总线(APB)。硬件加密引擎可以是存储器总线上的总线主控器。电子设备可具有DMA输入模块联接到其的独立DMA控制器,但这不是必需的;在一些实施例中,所述DMA输入模块直接连接到存储器总线,且可以直接从设备的存储器,例如从静态随机存取存储器(Static Random Access Memory,SRAM)或快闪存储器区读取数据。类似地,DMA输出模块可能够将数据直接写入设备的存储器。
硬件加密引擎可包括用于例如从处理器接收指令的寄存器接口。加密引擎可包括用于接收存储器地址的输入。DMA输入模块可配置成使用所接收的存储器地址来从所述所接收的存储器地址获取输入数据。加密引擎还可包括用于接收数据长度值的输入,且可配置成从存储器地址读取所指示的输入数据长度。加密引擎可包括用于接收输出存储器地址的输入,且DMA输出模块可配置成将来自加密模块的输出数据写入所接收的输出存储器地址。
提供具有如所描述的DMA输入和/或输出能力的加密引擎可以帮助避免输入缓冲器下溢或输出缓冲器上溢,否则,如果加密引擎必须发信号通知独立DMA控制器并依靠所述独立DMA控制器的及时响应以接收输入数据或输出处理后的数据,则可能会发生输入缓冲器下溢或输出缓冲器上溢的情况。
本文中所描述的任何方面或实施例的特征可在合适的情况下应用于本文中所描述的任何其它方面或实施例。在参考不同的实施例或实施例组时,应理解,这些不一定是相异的,而是可以重叠的。
附图说明
现将参考附图仅借助于实例来描述本发明的某些优选实施例,其中:
图1是ECB模式加密的示意图;
图2是CBC模式加密的示意图;
图3是流密码加密的示意图;
图4是具有体现本发明的密码引擎的无线温度传感器的示意图;及
图5是更详细地示出密码引擎的示意图。
具体实施方式
图4示出无线温度传感器1,其含有集成无线电芯片2、电池3和温度计4。温度传感器1还含有其它组件,例如PCB、振荡器、电容器、电阻器等,为简单起见此处省略这些组件。无线电芯片2包含处理器5、存储器6(其可包含易失性和非易失性存储器类型)、LTE Cat-M1(LTE-M)无线电7、硬件SNOW-3G密码引擎8(体现如上文所公开的硬件加密引擎)以及例如USB接口的输入/输出外围设备9。当然,无线电芯片可具有其它集成外围设备和组件。处理器5、存储器6和外围设备7、8、9连接到存储器总线10。存储器总线10可以是ArmTM AMBA总线系统,包含一个或多个高级高性能总线(AHB)和高级外围总线(APB)。存储器总线10支持对存储器6的直接存储器存取(DMA)。温度传感器1还具有通过适当片外组件连接到LTE-M无线电7的天线11。
存储器6存储由处理器5执行以用于控制温度传感器1的操作的软件。在使用中,处理器5使用I/O外围设备9每隔一定间隔从温度计4获取温度读数并将这些温度读数写入存储器6。无线温度传感器1使用LTE-M无线电7将在一段时间内收集的温度信息日志周期性地发送到网络基站(未示出)。出于隐私原因,使用SNOW 3G流密码对每个帧中的日志数据进行加密。
通过处理器5将用于加密的温度日志数据放置在存储器6中(例如,RAM中)的特定地址处,并指示SNOW-3G密码引擎8对所述数据进行加密来实现加密。处理器5可将特定地址和数据长度提供到SNOW-3G密码引擎8(例如,通过将地址和长度值写入密码引擎8的寄存器接口)。SNOW-3G密码引擎8从存储器6中的预定地址(或从寄存器输入)存取128位密钥和128位初始化向量,接着开始按顺序在32位块中从存储器6读取明文数据,从而在存储器总线10的至少部分上充当总线主控器。
根据SNOW 3G规范,SNOW-3G密码引擎8生成一序列32位密钥流块。在每个加密块周期中,密码引擎8读取一个32位明文数据块,在所述明文数据块与对应密钥流块之间执行按位XOR,并通过存储器总线10将所得32位密文块写入存储器6中(例如,RAM中)的另一地址。在适当时间,从存储器6中读取加密的温度日志数据,并由LTE-M无线电7以分组的形式将所述温度日志数据发送到网络基站。
图5提供SNOW-3G密码引擎8的更多细节。
SNOW-3G密码引擎8借助于寄存器接口12、输入DMA模块13和输出DMA模块14与装置的其余部分介接。这些装置都连接到存储器总线10。寄存器接口12允许SNOW-3G密码引擎8通常从处理器5接收命令。输入DMA模块13是总线系统10上的总线主控器,且可以直接从存储器6读取数据。输出DMA模块14也是总线系统10上的总线主控器,且可以将数据直接写入存储器6。密码引擎8还可具有用于(例如,通过可编程外围互连件)从其它外围设备接收信号的信号线输入,且可具有用于向其它外围设备发信号通知事件的事件线输出和/或用于中断处理器5的中断线输出;然而,为简单起见,在图5中省略这些额外线。
SNOW-3G密码引擎8含有用于执行SNOW-3G算法的密码模块15。在此实例中,密码模块15包含56位输入对齐缓冲器16和56位输出对齐缓冲器17,以及相关联对齐逻辑电路系统23。
密码模块15还包含形成SNOW-3G算法核心18的电路系统。算法核心18包含:密钥寄存器19,其用于从输入DMA模块13接收加密密钥;32位输入寄存器20,其用于从输入对齐缓冲器16接收输入数据(例如,明文);以及32位输出寄存器21,其用于将来自算法核心18的输出数据(例如,密文)提供到输出对齐缓冲器17。输入对齐缓冲器16、输入寄存器20、密钥寄存器19、输出寄存器21和输出对齐缓冲器17可实施为字节级FIFO或以任何其它适当方式实施。在其它实施例中,可能不存在输出对齐缓冲器17。密钥寄存器19、输入寄存器20和输出寄存器21不可从算法核心18外部进行读取。除了这些内部寄存器之外,算法核心18还含有连线到密钥寄存器19的各个位的数字逻辑22、用于执行密码操作的输入寄存器20和输出寄存器21。还可存在初始化-向量寄存器(未示出)。
在使用中,处理器5通过寄存器接口12将源存储器地址、源数据长度值和目的地存储器地址提供到密码引擎8。在一些情况下,这些地址可以是相同存储器地址,或它们可限定重叠存储器范围,使得密文复写存储器6中的一些或全部明文。处理器5还用适当的密钥数据和可能需要的任何初始化向量来初始化密码引擎8。
接着,输入DMA模块13从存储器6中的源地址获取输入数据的32位块,并将其传送到密码模块15。必要时,密码模块15的对齐逻辑23使用32位输入对齐缓冲器16将传入的非32位对齐数据对齐到32位块边界,且接着将输入数据传送到算法核心18的输入寄存器20。
根据SNOW 3G规范,数字逻辑22从密钥寄存器19(和可选的初始化-向量寄存器)中得到位,并使用它们生成32位密钥流块。接着,数字逻辑将输入寄存器20的三十二位和密钥流块的三十二位作为输入应用到三十二个相应的XOR门。将到XOR门的输入直接连线到输入寄存器20的单元。每个XOR门将输出位输出到输出寄存器21中的对应位位置。XOR门的输出可直接连线到输出寄存器21的单元。
输出寄存器21的32位内容在每个周期被传送到56位输出对齐缓冲器17。输出DMA模块14从输出对齐缓冲器17读取输出数据,且通过存储器总线10将所述输出数据发送到存储器6中的目的地地址。输出对齐缓冲器17可以用作算法核心18与输出DMA模块14之间的灵活存储装置,以允许执行任何适当的边界对齐。在一些情况下,在需要避免输出定时问题的情况下,可以出于对齐以外的目的而提供一些输出缓冲(例如,在输出DMA模块14内)。
此类安排允许密码引擎8直接地、端到端地在存储器6中从源到目的地执行实时加密或解密,而无需处理器5超出密码引擎8的初始配置之外的任何参与。
本领域技术人员将了解,本发明已经通过描述其中一个或多个具体实施例来进行说明,但本发明不限于这些实施例;在所附权利要求书的范围内,许多变化和修改是可能的。例如,密码引擎可实施任何其它适当的密码算法,而不是SNOW 3G。
Claims (20)
1.一种硬件加密引擎,其包括:
直接存储器存取(DMA)输入模块,其用于通过存储器总线接收输入数据;以及
加密模块,
其中所述加密模块包括:
输入寄存器,其具有输入寄存器长度;以及
电路系统,其配置成对所述输入寄存器中的数据执行加密操作,
其中所述硬件加密引擎还包括长度小于所述输入寄存器长度的两倍的输入对齐缓冲器,以及用于对所述输入对齐缓冲器中的输入数据执行对齐操作的对齐电路系统;并且
其中所述硬件加密引擎配置成在缓冲不大于所述输入对齐缓冲器的所述长度的输入数据量之后,将由所述DMA输入模块从所述存储器总线接收的输入数据传送到所述加密模块的所述输入寄存器。
2.根据权利要求1所述的硬件加密引擎,其中所述对齐电路系统配置成使用存储器地址信息从所述输入对齐缓冲器中选择数据块,并将所述数据块传输到所述输入寄存器,所述数据块的长度等于所述输入寄存器长度。
3.根据权利要求1或2所述的硬件加密引擎,其中所述输入对齐缓冲器的长度等于所述输入寄存器长度的两倍减去一个字节。
4.根据权利要求1至3中任一项所述的硬件加密引擎,其中所述输入寄存器不可从所述硬件加密引擎的外部寻址。
5.根据权利要求1至4中任一项所述的硬件加密引擎,其中加密模块电路系统包括一组一个或多个导线,每个导线具有连接到所述输入寄存器的相应位位置的第一端和连接到相应电子运算符的第二端。
6.根据权利要求5所述的硬件加密引擎,其中作为所述加密操作的部分,每个电子运算符实施逻辑运算、数学运算、替换运算、位加扰运算、循环排列运算、扩展运算或压缩运算。
7.根据权利要求1至6中任一项所述的硬件加密引擎,其中所述输入寄存器也是输出寄存器,并且其中所述加密模块电路系统配置成将所述加密操作的结果存储在所述输入寄存器中。
8.根据权利要求1至6中任一项所述的硬件加密引擎,其中所述加密模块包括与所述输入寄存器分离、用于存储表示所述加密操作的所述结果的输出数据的输出寄存器。
9.根据权利要求1至8中任一项所述的硬件加密引擎,其中所述加密模块是密码模块,并且其中所述加密操作为SNOW 3G、AES、DES、3-DES或KASUMI。
10.根据权利要求1至9中任一项所述的硬件加密引擎,其中所述输入寄存器长度等于所述加密操作的块长度。
11.根据权利要求1至10中任一项所述的硬件加密引擎,其中所述DMA输入模块配置成获取加密密钥或初始化向量作为所述加密模块的输入。
12.根据权利要求1至11中任一项所述的硬件加密引擎,其包括:DMA输出模块,所述DMA输出模块用于通过所述存储器总线发送输出数据;以及具有输出寄存器长度的输出寄存器,其中所述硬件加密引擎配置成在不缓冲所述输出数据的情况下或在缓冲不大于所述输出寄存器长度的两倍的输出数据量之后,通过所述DMA输出模块将输出数据从所述输出寄存器传送到所述存储器总线。
13.根据权利要求1至12中任一项所述的硬件加密引擎,其中:
所述加密操作为SNOW 3G,其对32位字进行操作;
所述输入寄存器长度为32位;并且
所述输入对齐缓冲器的长度为56位。
14.一种电子设备,其包括根据权利要求1至13中任一项所述的硬件加密引擎,且还包括所述存储器总线。
15.根据权利要求14所述的电子设备,其中所述电子设备是集成电路装置。
16.根据权利要求14或15所述的电子设备,其中所述电子设备配置成使用所述硬件加密引擎对用于通过无线电信道进行通信的数据进行加密,或对通过所述无线电信道接收的数据进行解密。
17.一种对数据执行加密操作的方法,所述方法包括:
由直接存储器存取(DMA)通过存储器总线接收输入数据;以及
使用硬件加密模块对所接收的输入数据执行加密操作,所述硬件加密模块包括具有输入寄存器长度的输入寄存器和配置成对所述输入寄存器中的数据执行所述加密操作的电路系统,
其中所述方法包括:
在长度小于所述输入寄存器长度的两倍的输入对齐缓冲器中缓冲通过所述存储器总线接收的所述输入数据;以及
在缓冲不大于所述输入对齐缓冲器的所述长度的输入数据量之后,将所述输入数据传送到所述加密模块的所述输入寄存器。
18.根据权利要求17所述的方法,其还包括在将所述输入数据传送到所述加密模块的所述输入寄存器之前,对所述输入对齐缓冲器中的所述输入数据执行对齐操作。
19.根据权利要求17或18所述的方法,其中所述对齐操作包括使用存储器地址信息从所述输入对齐缓冲器中选择数据块,并将所述数据块传输到所述输入寄存器,所述数据块的长度等于所述输入寄存器长度。
20.根据权利要求17至19中任一项所述的方法,其中所述输入对齐缓冲器的长度等于所述输入寄存器长度的两倍减去一个字节。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1808834.4 | 2018-05-30 | ||
GBGB1808834.4A GB201808834D0 (en) | 2018-05-30 | 2018-05-30 | Memory-efficient hardware cryptographic engine |
PCT/EP2019/064108 WO2019229192A1 (en) | 2018-05-30 | 2019-05-29 | Memory-efficient hardware cryptographic engine |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112513856A true CN112513856A (zh) | 2021-03-16 |
Family
ID=62812374
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980049863.9A Pending CN112513856A (zh) | 2018-05-30 | 2019-05-29 | 存储器高效的硬件加密引擎 |
Country Status (5)
Country | Link |
---|---|
US (1) | US12010209B2 (zh) |
EP (1) | EP3803672B1 (zh) |
CN (1) | CN112513856A (zh) |
GB (1) | GB201808834D0 (zh) |
WO (1) | WO2019229192A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113872752A (zh) * | 2021-09-07 | 2021-12-31 | 哲库科技(北京)有限公司 | 安全引擎模组、安全引擎装置和通信设备 |
WO2023040595A1 (zh) * | 2021-09-18 | 2023-03-23 | Oppo广东移动通信有限公司 | 芯片及消息认证码的生成方法 |
US11838402B2 (en) | 2019-03-13 | 2023-12-05 | The Research Foundation For The State University Of New York | Ultra low power core for lightweight encryption |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201820161D0 (en) * | 2018-12-11 | 2019-01-23 | Nordic Semiconductor Asa | Radio devices with switchable antennas |
US11943207B2 (en) | 2020-09-25 | 2024-03-26 | Intel Corporation | One-touch inline cryptographic data processing |
CN115549911B (zh) * | 2022-11-28 | 2023-03-14 | 苏州浪潮智能科技有限公司 | 一种加解密系统、方法、处理器和服务器 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6065070A (en) * | 1998-03-18 | 2000-05-16 | National Semiconductor Corporation | DMA configurable channel with memory width N and with steering logic comprising N multiplexors, each multiplexor having a single one-byte input and N one-byte outputs |
US20040008713A1 (en) * | 2002-07-08 | 2004-01-15 | Globespan Virata Incorporated | System and method for packet transmission from fragmented buffer |
US20040148512A1 (en) * | 2003-01-24 | 2004-07-29 | Samsung Electronics Co., Ltd. | Cryptographic apparatus for supporting multiple modes |
US20070195957A1 (en) * | 2005-09-13 | 2007-08-23 | Agere Systems Inc. | Method and Apparatus for Secure Key Management and Protection |
US20100128874A1 (en) * | 2008-11-25 | 2010-05-27 | Scott-Nash Mark E | Encryption / decryption in parallelized data storage using media associated keys |
US7937595B1 (en) * | 2003-06-27 | 2011-05-03 | Zoran Corporation | Integrated encryption/decryption functionality in a digital TV/PVR system-on-chip |
US20120011351A1 (en) * | 2010-07-08 | 2012-01-12 | Texas Instruments Incorporated | Security Processing Engines, Circuits and Systems and Adaptive Processes and Other Processes |
US20130304990A1 (en) * | 2012-05-08 | 2013-11-14 | International Business Machines Corporation | Dynamic Control of Cache Injection Based on Write Data Type |
CN105279439A (zh) * | 2014-06-20 | 2016-01-27 | 赛普拉斯半导体公司 | 用于就地执行的存储器的加密方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020078342A1 (en) | 2000-09-25 | 2002-06-20 | Broadcom Corporation | E-commerce security processor alignment logic |
US7266703B2 (en) * | 2001-06-13 | 2007-09-04 | Itt Manufacturing Enterprises, Inc. | Single-pass cryptographic processor and method |
US7336783B2 (en) | 2003-01-24 | 2008-02-26 | Samsung Electronics, C., Ltd. | Cryptographic systems and methods supporting multiple modes |
TWI244299B (en) | 2004-01-07 | 2005-11-21 | Admtek Inc | Method for implementing advanced encryption standards by a very long instruction word architecture processor |
US7543158B2 (en) | 2004-03-23 | 2009-06-02 | Texas Instruments Incorporated | Hybrid cryptographic accelerator and method of operation thereof |
IL187038A0 (en) * | 2007-10-30 | 2008-02-09 | Sandisk Il Ltd | Secure data processing for unaligned data |
-
2018
- 2018-05-30 GB GBGB1808834.4A patent/GB201808834D0/en not_active Ceased
-
2019
- 2019-05-29 CN CN201980049863.9A patent/CN112513856A/zh active Pending
- 2019-05-29 US US17/059,393 patent/US12010209B2/en active Active
- 2019-05-29 WO PCT/EP2019/064108 patent/WO2019229192A1/en unknown
- 2019-05-29 EP EP19727684.3A patent/EP3803672B1/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6065070A (en) * | 1998-03-18 | 2000-05-16 | National Semiconductor Corporation | DMA configurable channel with memory width N and with steering logic comprising N multiplexors, each multiplexor having a single one-byte input and N one-byte outputs |
US20040008713A1 (en) * | 2002-07-08 | 2004-01-15 | Globespan Virata Incorporated | System and method for packet transmission from fragmented buffer |
US20040148512A1 (en) * | 2003-01-24 | 2004-07-29 | Samsung Electronics Co., Ltd. | Cryptographic apparatus for supporting multiple modes |
US7937595B1 (en) * | 2003-06-27 | 2011-05-03 | Zoran Corporation | Integrated encryption/decryption functionality in a digital TV/PVR system-on-chip |
US20070195957A1 (en) * | 2005-09-13 | 2007-08-23 | Agere Systems Inc. | Method and Apparatus for Secure Key Management and Protection |
US20100128874A1 (en) * | 2008-11-25 | 2010-05-27 | Scott-Nash Mark E | Encryption / decryption in parallelized data storage using media associated keys |
US20120011351A1 (en) * | 2010-07-08 | 2012-01-12 | Texas Instruments Incorporated | Security Processing Engines, Circuits and Systems and Adaptive Processes and Other Processes |
US20130304990A1 (en) * | 2012-05-08 | 2013-11-14 | International Business Machines Corporation | Dynamic Control of Cache Injection Based on Write Data Type |
CN105279439A (zh) * | 2014-06-20 | 2016-01-27 | 赛普拉斯半导体公司 | 用于就地执行的存储器的加密方法 |
Non-Patent Citations (1)
Title |
---|
MICROCHIP TECHNOLOGY: "HS Endpoint Processor with USB 2.0, Smart Card, & FMC for Secure Token & Storage", pages 14, Retrieved from the Internet <URL:https://ww1.microchip.com/downloads/en/DeviceDoc/sec2410_4410.pdf> * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11838402B2 (en) | 2019-03-13 | 2023-12-05 | The Research Foundation For The State University Of New York | Ultra low power core for lightweight encryption |
CN113872752A (zh) * | 2021-09-07 | 2021-12-31 | 哲库科技(北京)有限公司 | 安全引擎模组、安全引擎装置和通信设备 |
CN113872752B (zh) * | 2021-09-07 | 2023-10-13 | 哲库科技(北京)有限公司 | 安全引擎模组、安全引擎装置和通信设备 |
WO2023040595A1 (zh) * | 2021-09-18 | 2023-03-23 | Oppo广东移动通信有限公司 | 芯片及消息认证码的生成方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3803672A1 (en) | 2021-04-14 |
US12010209B2 (en) | 2024-06-11 |
EP3803672B1 (en) | 2024-02-07 |
US20210216665A1 (en) | 2021-07-15 |
GB201808834D0 (en) | 2018-07-11 |
WO2019229192A1 (en) | 2019-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12010209B2 (en) | Memory-efficient hardware cryptographic engine | |
US7336783B2 (en) | Cryptographic systems and methods supporting multiple modes | |
JP4684550B2 (ja) | 多数の動作モードを支援する暗号化装置 | |
US8301905B2 (en) | System and method for encrypting data | |
US11387980B2 (en) | Hardware multiple cipher engine | |
US7043017B2 (en) | Key stream cipher device | |
US8374343B2 (en) | DES hardware throughput for short operations | |
US7574571B2 (en) | Hardware-based encryption/decryption employing dual ported memory and fast table initialization | |
US20140164793A1 (en) | Cryptographic information association to memory regions | |
KR20110129932A (ko) | 암호 시스템을 위한 키 복구 메커니즘 | |
US11429751B2 (en) | Method and apparatus for encrypting and decrypting data on an integrated circuit | |
US20010050989A1 (en) | Systems and methods for implementing encryption algorithms | |
KR20090085685A (ko) | 암호화 동작을 지원하기 위한 복수의 레지스터를 갖는 데이터-이동 제어기 | |
US20090180620A1 (en) | Hardware-based encryption/decryption employing dual ported key storage | |
US10776294B2 (en) | System architecture with secure data exchange | |
US20210006391A1 (en) | Data processing method, circuit, terminal device and storage medium | |
JP2004070499A (ja) | メモリデバイスおよび暗号化/復号方法 | |
KR20040038777A (ko) | 데이터 암호화 방법 | |
CN108763982B (zh) | 一种适用于rfid阅读器的des加密解密装置 | |
US7167997B1 (en) | Apparatus and method for limiting data transmission rates | |
KR20070017411A (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 |