CN1531240B - 支持多个模式的加密装置 - Google Patents

支持多个模式的加密装置 Download PDF

Info

Publication number
CN1531240B
CN1531240B CN2004100029716A CN200410002971A CN1531240B CN 1531240 B CN1531240 B CN 1531240B CN 2004100029716 A CN2004100029716 A CN 2004100029716A CN 200410002971 A CN200410002971 A CN 200410002971A CN 1531240 B CN1531240 B CN 1531240B
Authority
CN
China
Prior art keywords
data
stored
output
register
multiplexer
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.)
Expired - Lifetime
Application number
CN2004100029716A
Other languages
English (en)
Other versions
CN1531240A (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN1531240A publication Critical patent/CN1531240A/zh
Application granted granted Critical
Publication of CN1531240B publication Critical patent/CN1531240B/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • 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/20Manipulating the length of blocks of bits, e.g. padding or block truncation

Abstract

本发明涉及一种用于加密存储在存储器中的数据的加密装置。本发明的加密装置使用小和简单的元件在ECB、CBC、CBC-MAC、计数器和OCB模式中运行。所述加密装置最小化在CPU和加密装置之间的数据通信以改善通信系统的性能。另一方面,加密装置的输入缓冲器和输出缓冲器被配置来分别存储至少两个块,以便最大化加密装置的性能。而且,加密装置支持零填充,以便最小化CPU的处理。

Description

支持多个模式的加密装置
本申请要求2003年1月24日提交的韩国专利申请第03-4806号的优先权,其内容整体以引用方式被包含在此。
技术领域
本发明涉及数据加密,具体涉及用于加密和解密数据的加密装置。
背景技术
加密技术经常用于保证消息传送的安全。在加密技术中,在发送端加密消息(以下称为明文),在接收端解密或解码消息(以下称为密文)。这样的消息加密和解密被公知为加密技术。
数据加密标准(DES)是在许多国家和美国国家标准协会(ANSI)中采用的字组单元加密协议。而且,作为加密协议的示例,存在3-DES、AES等。在字组单元加密协议中,定义了各种模式,即,电子密码本(ECB)、密码字组链接(CBC)、输出反馈(OFB)、密码反馈(CFB)等。近来,已经提出了计数模式和补偿(offset)密码本(OCB)模式。
这些不同的模式可以由独立的硬件实现。但是,为了在一个芯片中实现所述各种模式,需要许多门电路。
发明内容
因此,本发明涉及一种支持多种模式的加密装置,它实质地防止了由于现有技术的限制和缺点而产生的一个或多个问题。
本发明的一个目的是提供一种用于支持多种模式的加密装置。
本发明的另一个目的是提供一种加密装置,用于支持多种模式,并且同时所述加密装置具有简单的电路配置。
本发明的另一个目的是提供一种用于支持多种模式的通信系统。
在本发明的一个方面,提供了一种用于加密存储在存储器中的数据的加密装置。所述装置包括:控制单元,用于响应于外部提供的加密信息而产生控制信号;存储器控制器,用于从存储器读出数据;输入缓冲器,用于存储由存储器控制器读出的数据;加密单元,用于加密存储在输入缓冲器中的数据块;输出缓冲器,用于存储由加密单元加密的数据。所述存储器控制器向存储器写入存储在输出缓冲器中的加密数据,并且存储器控制器、输入缓冲器、加密单元和输出缓冲器响应于控制信号而操作。
在一个实施例中,控制单元响应于加密信息而产生模式信号,所述模式信号指示初始矢量和操作模式。
在这个实施例中,所述操作模式可以是电子密码本(ECB)模式、密码字组链接(CBC)模式、CBC消息验证(CBC-MAC)模式和计数器(CNT)模式中的任何一个。
在这个实施例中,所述加密单元可以包括:数据输入寄存器,用于存储从输入缓冲器提供的数据;加密器,用于加密存储在数据输入寄存器中的数据;数据输出寄存器,用于存储由加密器加密的数据。
在这个实施例中,加密单元可以以ECB模式操作。
在一个实施例中,加密单元还包括:初始矢量寄存器,用于存储从控制单元提供的初始矢量;第一逻辑运算器,用于对于存储在初始矢量寄存器中的初始矢量和存储在数据输入寄存器中的数据执行逻辑运算。
在这个实施例中,加密单元可以CBC模式和CBC-MAC模式之中的任何一个来操作。
在一个实施例中,加密单元可以以CBC-MAC模式操作,存储器控制器不向存储器写入存储在输出缓冲器中的加密数据。
在一个实施例中,加密单元可以包括:初始矢量寄存器,用于存储从控制单元提供的初始矢量;加法器,用于向存储在初始矢量寄存器中的数据加上一个预定值,并且将相加的数据存储在初始矢量寄存器中;加密器,用于加密存储在初始矢量寄存器中的数据;数据输入寄存器,用于存储来自输入缓冲器的数据;第二逻辑运算器,用于对由加密器加密的数据和存储在数据输入寄存器中的接收执行逻辑运算;数据输出寄存器,用于存储第二逻辑运算器的输出。
在这个实施例中,加密单元可以以CNT模式操作。
在一个实施例中,加密单元可以包括:初始矢量寄存器,用于存储从控制单元提供的初始矢量;数据输入寄存器,用于存储从输入缓冲器提供的数据;加密器,用于加密输入数据;数据输出寄存器,用于存储要被提供给输出缓冲器的数据;加法器;第一选择电路,用于响应于模式信号而作为输入数据向加密器提供存储在初始矢量寄存器中数据、存储在初始矢量寄存器中的数据和存储在数据输入寄存器中的数据的逻辑运算的结果数据、存储在数据输入寄存器中的数据中的任何一种,并且响应于模式信号而向加法器提供存储在初始矢量寄存器中的数据;第二选择电路,用于响应于模式信号而向数据输出寄存器提供存储在数据输入寄存器中的数据与由块加密器加密的数据的逻辑运算的结果数据、由块加密器加密的数据中的任何一种,并且响应于模式信号而向初始矢量寄存器提供被加密器加密的数据。加法器向从第一程序电路提供的数据加上预定值,并且将其存储在初始矢量寄存器中。
在这个实施例中,第一选择电路可以包括:第一复用器;第一逻辑运算器;第二复用器,用于响应于模式信号而向加法器和第一复用器或者向第一逻辑运算器提供存储在初始矢量寄存器中的数据;第三复用器,用于响应于模式信号向第一逻辑运算器或第一复用器提供存储在初始矢量寄存器中的数据。第一逻辑运算器接收来自第二和第三复用器的输出,并且对它们执行逻辑运算,并且第一复用器向加密单元传送第二复用器的输出、第一逻辑运算器的输出和第三复用器的输出中的任何一个。第二选择电路可以包括:第四复用器;第二逻辑运算器;第五复用器,用于响应于模式信号向第二逻辑运算器、第四复用器、初始矢量寄存器和第四复用器与初始矢量寄存器两者中的任何一个传送加密单元的输出。第二逻辑运算器接收第三和第五复用器的输出,并且执行逻辑运算,并且第四复用器作为数据输出的数据传送第二逻辑运算器的输出和第五复用器的输出。
在一个实施例中,控制单元控制逐块地向加密单元提供存储在输入缓冲器中的数据。
在这个实施例中,当存储在输入缓冲器中的最后的数据小于预定的块大小时,控制单元可以执行零填充。
在一个实施例中,输入缓冲器是先入先出(FIFO)缓冲器。输入缓冲器存储至少两个数据块。
在一个实施例中,输出缓冲器是先入先出(FIFO)缓冲器。输出缓冲器可以存储至少两个加密的数据块。
在一个实施例中,存储器控制器是直接存储器存取(DMA)控制器。
在本发明的另一个方面,提供了一种通信系统,包括:存储器;加密装置,用于加密存储在存储器中的数据;中央处理器,用于控制所述加密器件的操作。所述加密装置包括:控制单元,用于响应于从中央处理器提供的加密信息而产生控制信号;存储器控制器,用于从存储器读出数据;输入缓冲器,用于存储由存储器控制器读出的数据;加密单元,用于加密存储在输入缓冲器中的数据块;输出缓冲器,用于存储由加密单元加密的数据。存储器控制器向存储器写入存储在输出缓冲器中的被加密的数据,并且存储器控制器、输入缓冲器、加密单元和输出缓冲器响应于控制信号而操作。
附图说明
通过更具体地说明本发明的一个优选实施例,本发明的上述和其他目的、特征和优点将会清楚,所述优选实施例在附图中得到图解,其中,在不同的附图中,相同的附图标号指示相同的部件。所述附图不必然成比例,重点相反放在图解本发明的原理。
图1包含根据本发明的一个优选实施例的具有加密装置的通信系统。
图2包含图1所示的加密装置的方框图。
图3图解了图2所示的块加密单元的一般电路配置;
图4图解了用于图2所示的工作在CBC模式或CBC-MAC模式的块加密单元的电路配置。
图5图解了用于图2所示的工作在CNT模式的块加密单元的电路配置。
图6包含根据本发明的一个优选实施例的块加密单元的方框图。
图7图解了在图1所示的加密装置和存储器之间的数据通信的示例。
图8图解了图2所示的DMA控制器的有限状态机(FSM)。
图9图解了根据图2所示的输入缓冲器、输出缓冲器和块加密单元的关系的FSM。
图10a和图10b图解向数据尾部插入“0”的零填充的一个示例。
图11示意性地图解了OCB模式的加密处理。
图12示意性地图解了OCB模式的解密处理。
图13图解了存储在图1所示的存储器的源地址SA0-SAm+1的数据块I0-Im+1和存储在图1所示的存储器的目的地址DA0-DAm+1的数据块O0-Om+1
具体实施方式
以下,参照附图来详细说明本发明的优选实施例。
图1图解了根据本发明的一个优选实施例的具有加密装置的通信系统。作为具有加密装置的通信系统,可以有台式计算机、便携计算机、PDA、移动通信终端等。参见图1,通信系统包括CPU 10、存储器20、加密装置30、判定器40、系统总线50。存储器20存储加密程序,并且存储明文和密文。CPU 10控制加密装置30按照存储在存储器20中的加密程序工作。判定器40当许多DMA(直接存储器存取)主控器(master)连接到系统总线50时授权DMA主控器使用系统总线50。在图1所示的通信系统中,因为CPU 10和加密装置30承担DMA主控器的角色,因此使用判定器40。
图2图解了图1所示加密装置30的详细配置。参见图2,加密装置30包括控制单元31、DMA控制器32、输入缓冲器33、输出缓冲器34、块加密单元35。如果输入从CPU 10提供的加密信息,即,源地址SA、目的地址DA、数据大小D_SIZE、块大小B_SIZE、密钥K、密钥大小、方向(加密和解密)、初始矢量和模式,则控制单元31控制在加密装置30中的部件。DMA控制器32读出存储在存储器20的源地址的明文,将其存储在输入缓冲器33中,并且将存储在输出缓冲器34中的密文存储到存储器20的目的地址。存储在输入缓冲器33中的明文被逐块地传送到块加密单元35。例如,如果块加密单元35包括128比特的AES,则从输入缓冲器33向块加密单元35传送的块的大小是128比特。输出缓冲器34存储来自块加密单元35的密文块并且按照控制单元31的控制将所存储的密文传送到DMA控制器32。输入缓冲器33和输出缓冲器34包括先入先出(FIFO)缓冲器。它们的大小是在块加密单元35处理的块的两倍,因此,输入缓冲器33和输出缓冲器34可以分别存储两个块。例如,如果块加密单元35一次可以处理的明文大小是128比特,则输入缓冲器33和输出缓冲器34的大小是256比特。在这个实施例中,输入缓冲器33和输出缓冲器34每个存储两个块。输入缓冲器33和输出缓冲器34的大小可以被改变。块加密单元35包括例如高级加密标准(AES)的块加密器。将详细地说明块加密单元35如下。
图3-5图解了与图2所示的块加密单元35的模式相关联的电路配置。图3图解了用于工作在电子密码本(ECB)模式中的块加密单元35的电路配置。参见图3,ECB模式的块加密单元35a包括数据输入寄存器110、数据输出寄存器120和块加密器130。来自图2所示的输入缓冲器33的明文块通过数据输入寄存器110被输入到块加密器130。块加密器130按照从控制单元31提供的密钥K而执行加密,并且向数据输出寄存器120输出密文。存储在数据输出寄存器120中的数据被输出到图2所示的输出缓冲器34。
图4图解了用于图2所示的工作在密码字组链接(CBC)模式或CBC-消息验证码(CBC-MAC)模式的块加密单元的电路配置。
参见图4,块加密单元35b包括初始值寄存器210、数据输入寄存器220、数据输出寄存器230、异或运算器240和块加密器250。异或运算器240通过数据输入寄存器220和在初始值寄存器210中设置的初始矢量数据对于来自图2所示的输入缓冲器33的明文块执行异或。在初始值寄存器210中设置的初始矢量数据被从控制单元31提供。异或运算器240的运算结果被传送到块加密器250。块加密器250按照从控制单元31提供的密钥K来加密异或运算器240的运算结果。来自块加密器250的密文被存储在数据输出寄存器230和初始值寄存器210中。存储在数据输出寄存器230中的数据当输出缓冲器34处于CBC模式中时被输出到图2所示的输出缓冲器34。但是,当输出缓冲器34处于CBC-MAC模式时它们不被输出到输出缓冲器34。当输出缓冲器34在CBC-MAC模式中时,存储在存储器20中的所有明文被加密,并且仅仅存储在初始值寄存器210中的最后数据被输出到输出缓冲器34。
图5图解了用于图2所示的工作在计数器(CNT)模式的块加密单元35的电路配置。参见图5,块加密单元35c包括寄存器310、数据输入寄存器320、数据输出寄存器330、加法器340、块加密器350、异或运算器360。来自控制单元31的初始数据被存储在寄存器310中。加法器340向存储在寄存器310中的数据加1。加法器340的输出被再次存储在寄存器310。块加密器350按照从控制单元31提供的密码K来加密存储在寄存器310中的数据。数据输入寄存器320存储来自图2所示的输入缓冲器33的明文块。异或运算器360对块加密器350的输出和存储在数据输入寄存器320中的明文执行异或运算,并且将运算结果存储在数据输出寄存器330中。存储在数据输出寄存器330中的数据是密文,并且被输出到图2所示的输出缓冲器34。
如图3-5所示,块加密单元35根据加密模式需要稍微不同的电路配置。但是,如果用于每个模式的电路被独立的配置,则需要较大的电路面积。在本发明中,提供了一种块加密单元,它具有简单的电路配置,并且工作在所有的加密模式中。
图6包含根据本发明的一个优选实施例的块加密单元35的方框图。
参见图6,块加密单元35包括寄存器410、数据输入寄存器420、数据输出寄存器430、加法器440、复用器450、451、453和454、去复用器452、异或运算器461和462、块加密器470。当本发明被应用到WLAN时,图6所示的块加密器470被配置作为高级加密标准(AES)块加密器,但是可以在其他应用中被配置为另一个块加密器,诸如数据加密标准(DES)块加密器或3-DES块加密器。
寄存器410用于CBC、CBC-MAC和CNT模式中。图2所示的控制单元31设置用于寄存器410的初始值。数据输入寄存器420存储从图2所示的输入缓冲器33输入的明文块。数据输出寄存器430存储从去复用器452输出的密文。复用器450、451、453和454和去复用器452响应于来自控制单元31的模式信号MD而工作。模式信号MD指示块加密单元35的模式并且被配置了多个比特。在这个实施例中,因为块加密单元35工作在CBC、CBC-MAC或CNT模式中,因此所述模式信号被配置为两个比特。例如,如果模式信号MD是“00”,则它指示ECB模式。如果所述模式信号MD是“01”,则它指示CBC模式。如果模式信号MD是“10”,则它指示CBC-MAC模式。如果模式信号MD是“11”,则它指示CNT模式。在图6中,粗体虚线表示在CNT模式中的数据移动路径;粗体实线表示在CBC或CBC-MAC模式中的数据移动路径;非粗体虚线表示在ECD模式中的数据移动路径,并且实线表示在所有模式中的数据移动路径。
复用器450当模式信号MD表示CNT模式时向加法器440和复用器453传送存储在寄存器410中的数据。复用器450当模式信号MD指示CBC模式或CBC-MAC模式时将存储在寄存器410中的数据传送到异或运算器461。复用器451当模式信号MD指示CBC模式或CBC-MAC模式时将存储在存储器20中的明文块传送到异或运算器461。复用器451当模式信号MD指示ECB模式时将存储在数据输入寄存器420的明文块传送到复用器453。复用器451当模式信号MD指示CNT模式时将存储在数据输入寄存器420的明文块传送到异或运算器461。复用器453响应于模式信号而将复用器450和451的输出以及异或运算器461的输出之一传送到块加密器470。即,复用器453当模式信号MD是CNT模式时将复用器450的输出向块加密器470传送。复用器453当模式信号MD是CBC模式或CBC-MAC模式时将异或运算器461的输出向块加密器470传送。复用器453当模式信号MD是ECB模式时将复用器451的输出传送到块加密器470。
复用器454响应于模式信号而向异或运算器462、去复用器452或/和寄存器410传送从块加密器470输出的密文。即,复用器454当模式信号MD指示CNT模式时将来自块加密器470的密文传送到异或运算器462。复用器454当模式信号MD指示ECB模式时将来自块加密器470的密文传送到去复用器452。复用器454当模式信号MD指示CBC模式或CBC-MAC模式时将来自块加密器470的密文传送到去复用器452和寄存器410。去复用器452当模式信号MD指示CNT模式时将异或运算器462的运算结果传送到数据输出寄存器430。去复用器452当模式信号MD指示ECB模式、CBC模式或CBC-MAC模式时将复用器454的输出传送到数据输出寄存器430。
如上所述,本发明的块加密单元35包括寄存器410、420、430、加法器440、复用器451、452、453、454、去复用器452、异或运算器461和462和块加密器470,并且可以工作在所有的下列模式中:ECB模式、CBC模式、CBC-MAC模式和CNT模式。
图7图解了图1所示的加密装置30和存储器20之间的数据通信的示例。加密装置30按照从CPU10提供的源地址SA、目的地址DA和数据大小D_SIZE来访问存储器20。如图7所示,加密装置30读取存储在存储器20的源地址SA的明文并且将其加密。加密装置30向存储器20的目的地址DA存储被加密的密文。加密装置30当在读出步骤R0完成对于所读取的明文PT0的加密时在第零写入步骤W0中向存储器20写入密文CT0。类似地,依序执行剩余的读出步骤R1、R2和R3和剩余的写入步骤W1、W2、W2。但是,如果加密装置30依序执行第零读出步骤R0和第零写入步骤W0并且在此执行第一读出步骤R1,则使得加密装置30的性能变差。这是因为加密装置30中的块加密单元35没有任何操作而空闲,而同时加密装置30向存储器20中写入密文。在本发明中。为了克服这个问题,如上所述,输入缓冲器33和输出缓冲器34(参见图2)被配置为是块大小的两倍。因此,读出步骤和写入步骤不被执行为R0、W0、R1和W1,而是可以不同地改变用于执行它们的顺序。将说明读出和写入方法。
如上所述,块加密单元35的空闲时间应当被最小化以实现加密装置30的最佳性能。为了如此,防止输入数据进入缺乏(starvation)状态是重要的。在本发明中,输入缓冲器33是输入到块加密单元35的块大小的两倍。即。输入缓冲器存储两个块。因此,可以向输入缓冲器33写入新的数据,并且同时块加密单元35执行加密。从块加密单元35输出的密文被临时存储在输出缓冲器34中。因此,块加密单元35即使在向存储器20写入密文之前也可以加密下一个明文块。
同时,DMA控制器32不能从存储器20读出明文并且同时向存储器20写入密文。因此,控制单元31控制DMA控制器32按照预定的优先级读出和写入。表1图解了根据在数据输出寄存器230和输出缓冲器34中存储的块的数量的DMA控制器32的操作优先级。
表1
存储在DMA控制器32的块的数量(IBUFCNT) 存储在输出缓冲器34的块的数量(OBUFCNT) DMA处理
2  0 无操作指令
1  0 读出
0  0 读出
2  1 写入
1  1 读出
0  1 读出
2  2 写入
1  2 写入
0  2 读出
表1的基本思想是如果在缓冲器33中存在空位,则向读出操作提供优先级。如果在输出缓冲器34中存储着至少一个块,则向写入操作提供优先级。在表1中,当输入缓冲器33完全空并且输出缓冲器被完全填充时,如果块加密单元35不工作,则最好向输入缓冲器读出明文块以控制块加密单元35操作,并且在输出缓冲器34中存储的密文被写入存储器20。但是,当输入缓冲器33完全空并且输出缓冲器完全被填充时,如果块加密单元35工作,则可以执行任何读出操作或写入操作。但是,因为操作参考是必要的,因此设置DMA控制器32以执行读出操作。表1所示的NOP(无操作)表示DMA控制器32不执行任何操作。
类似地,DMA控制器32和输出缓冲器34的每个被配置来存储至少两个块。块加密单元35即使系统总线50处于忙状态时可以也使用缓冲器33和34来执行块加密处理。
图8图解了图2所示的DMA控制器的有限状态机(FSM)。在图8中,当应当在存储器20的源地址SA被读出并且被加密的整个数据的大小D_SIZE大于由DMA控制器32从存储器20读出的数据的大小直到现在时,则读出控制信号MORE_DATAR是1。当大小D_SIZE小于或等于由DMA控制器32从存储器20读出的数据的大小直到现在时,则读出控制信号MORE_DATAR是0。当应当在存储器20的源地址SA被写入并且被加密的整个数据的大小DATA_SIZE大于由DMA控制器32写入的数据的大小直到现在时,则写入控制信号MORE_DATAW是1。当大小DATA_SIZE小于或等于由DMA控制器32写入的数据的大小直到现在时,则写入控制信号MORE_DATAW是0。
如果满足表达式1,则控制单元31控制DMA控制器32从空闲状态510向读出状态520过渡。
表达式1
MORE_DATAR&&(RBUFCNT!=2)&&(RBUFCNT!=1||WBUFCNT!=2)=1
当DMA控制器32完成从存储器20读出数据(DMA_READ)时,读出完成信号DMA_READ_DONE被激活,并且从读出状态520过渡到空闲状态510。在此,读出计数DMA_READ_CNT被加1。
当满足表达式2时,控制单元31控制DMA控制器32从空闲状态510向读取状态530过渡。
表达式2
MORE_DATAW&&((RBUFCNT!=2)||(RBUFCNT!=1&&WBUFCNT!=2))&&!CBC-MAC=1
DMA控制器32激活写入完成信号(DMA_WRITE_DONE),并且如果它完成向存储器20写入数据(DMA_WRITE)则从写入状态530向空闲状态510过渡。在此,写入计数DMA_WRITE_CNT被增加1。读出完成信号DMA_WRITE_DONE和写入完成信号DMA_WRITE_DONE被提供给控制单元31,并且读出计数DMA_READ_CNT和写入计数DMA_WRITE_CNT是在控制单元31中配置的计数器(未示出)的值。
表2和3中图解了按照在从存储器20读出的数据的大小DATA_SIZE和读出计数DMA_READ_CNT之间的关系的读出控制信号MORE_DATAR的状态和按照在向存储器20写入的数据的大小DATA_SIZE和写入计数DMA_WRITE_CNT之间的关系的写入控制信号MORE_DATAW的状态。
表2
读出控制信号(MORE_DATAR)  条件
0  DATA_SIZE<DMA_READ_CNT
1  DATA_SIZE>DMA_READ_CNT
表3
写入控制信号(MORE_DATAW) 条件
0  DATA_SIZE<DMA_WRITE_CNT
1  DATA_SIZE>DMA_WRITE_CNT
图9图解了根据图2所示的输入缓冲器33、输出缓冲器34和块加密单元35的关系的FSM。参见图9,如果数据保持由块加密单元35处理(即读出控制信号是1),则控制单元31控制块加密单元35从空闲状态610向块加密单元35查看状态620过渡。当加密准备好开始时,块加密单元35将输入准备好信号INPUT_READY激活为1。块加密单元35当它完成加密当前的输入块时将完成信号OUTPUT_READY激活为1。
如果输入准备好信号INPUT_READY是1并且在输入缓冲器33中存在任何数据,则处于查看状态620的块加密单元35过渡到状态640以将数据从输入缓冲器33向块加密单元35传送。如果完成了从输入缓冲器33向块加密单元35传送数据,则块加密单元35激活输入完成信号INPUT_DONE,并且将其传送到查看状态620。
如果输出准备好信号OUTPUT_READY是1并且输入缓冲器33未被完全填充,则处于查看状态620的块加密单元35过渡到状态630以将数据从块加密单元35向输出缓冲器34传送。当完成从块加密单元35向输出缓冲器34传送数据时,块加密单元35激活输出完成信号0UTPUT_DONE,并且再次过渡到查看状态。
在图8和9中,在CBC-MAC模式中,因为当完成加密每个块时产生的密文不必要,因此不必向存储器20写入密文。因此,为了在CBC-MAC模式最少地使用加密装置30的系统总线50,当完成加密所有块时,仅仅必须向存储器20的目的地址DA写入一次存储在寄存器410中的数据。
图10a和图10b图解向数据尾部插入“0”的零填充的一个示例。参见图10a,当数据帧包括n个帧并且一个块的大小是L1时,最后第n个块的大小总不是L1。例如,如果第n个块的大小L2小于L1时,则执行零填充以向数据的尾部插入“0”,以便第n个块的大小可以是L1。即,如果从CPU 10接收的数据的大小不是块大小的整数倍数大时,控制单元31通过DMA控制器32对于输入到输入缓冲器33的最后一个块执行零填充。如图10b所示,控制单元31向存储在输入缓冲器33中第n个块的最后插入“0”,以便第n个块的大小可以是L1。
即,在CPU 10和存储器20之间通信的数据如下。首先,CPU 10向加密装置30的控制单元31传送控制信息。所述控制信息包括源地址、目的地址、数据大小、密钥、密钥大小、方向(加密或解密)、初始矢量和模式。
一般,要被加密的数据、即明文应当被存储在存储器20的源地址。然后,CPU 10向加密装置30通告控制信息,并且加密装置30执行加密。密文被存储在目的地址。根据本发明,在CPU 10和加密装置30之间的互连被最小化以防止系统的性能变差。
同时,在CPU 10和加密装置30之间通信的控制信息和数据依赖于模式。在ECB模式中,明文应当被存储在存储器20的源地址,而密文被存储在存储器20的目的地址。在ECB模式中,源地址可以与目的地址相同。CPU 10应当向加密装置30提供的控制信息包括源地址、目的地址、密钥、密钥大小、数据大小、方向和模式。在ECB模式中,每当完成加密每个块时,密文应当被存储在存储器20的目的地址。
CBC模式类似于ECB模式,但是在控制信息中应当包括初始矢量。在CBC-MAC模式中,由于用于每个块的密文是不必要的,因此密文不必每个块被写入存储器20。应当完成加密所有块,并且存储在寄存器410中的数据应当被传送到CPU 10。
OCB模式需要由CPU 10进行大量的计算。图11示意性地图解了OCB模式的加密处理。图12示意性地图解了OCB模式的解密处理。本发明的加密装置30按照精细设计的密码本和补偿而产生每个块的密文。在图11中,由附图标号710和720描述的部分被CPU 10操作,并且由附图标号730、740和750描述的第一到第三阶段被加密装置30执行。
图13图解了存储在图1所示的存储器的源地址SA0-SAm+1的数据块I0-Im+1和存储在图1所示的存储器的目的地址DA0-DAm+1的数据块O0-Om+1
参见图11-13,加密装置30像在ECB模式中一样工作在OCB模式中。在第一阶段730,存储在存储器20的源地址SA0中的数据块I0被存储在数据输入寄存器420中(图6)。块加密器470加密存储在数据输入寄存器420中的数据库I0,并且结果被存储在数据输出寄存器450中。存储在数据输出寄存器450中的数据作为Offset0被传送到CPU 10。CPU 10按照从加密装置30提供的Offset0和精细设置的密码本Lntz(1)-Lntz(m)来计算补偿Offset1-Offsetm,对存储在存储器的预定区域内的明文M1-Mm和所计算的Offset1-Offsetm执行异或运算,并且在存储器20的源地址SA0-SAm+1存储运算结果。
在第二阶段740,加密装置30读出存储在存储器20的源地址SA0-SAm+1的数据块,执行加密,并且在存储器20的目的地址DA0-DAm+1存储被加密的数据块O0-Om+1
当加密装置30的第二阶段740完成它的操作时,CPU 10对存储在目的地址DA0-DAm+1的数据块O0-Om+1补偿Offset1-Offsetm和明文Mm执行异或运算,并且产生密文C1-Cm。CPU 10对Offsetm的校验和执行异或运算,并且在源地址SAm+1存储运算结果。
在第三阶段,加密装置30读出在源地址SAm+1存储的数据块,执行加密并且将被加密的数据块Om+1存储在存储器20的目的地址DAm+1。CPU 10读出存储在存储器20的目的地址DAm+1的数据Om+1,并且将数据Om+1的一些作为MIC。
参见图12,将说明OCB模式的解密。在图12中,由附图标号810和820描述的部分被CPU 10操作,并且加密装置30执行由附图标号830、840、850、860描述的第一到第四阶段。OCB模式的解密被以图11所示的OCB模式的加密的相反顺序执行,但是通过四个阶段830-860来执行解密。在此,在将加密装置30设置为ECB模式的解密后执行OCB模式的解密。
根据本发明,使用小和简单的元件实现了用于在ECB、CBC、BCB-MAC、计数器和OCB模式中工作的加密装置。另外,在CPU和加密装置之间的数据通信被最小化以改善通信系统的性能。另一方面,在加密装置中配置的输入缓冲器和输出缓冲器被配置来分别存储至少两个块,以便最大化加密装置的性能。而且,加密装置支持零填充,以便最小化CPU的处理。
虽然已经参照本发明的实施例具体示出和说明了本发明,本领域的技术人员会明白,在不脱离所附的权利要求所限定的本发明的精神和范围的情况下,可以进行形式和细节上的各种改变。

Claims (10)

1.一种用于加密存储在存储器中的数据的加密装置,所述装置包括:
控制单元,用于响应于外部提供的加密信息而产生控制信号和模式信号;
存储器控制器,用于从存储器读出数据;
输入缓冲器,用于存储由存储器控制器读出的数据;
加密单元,用于加密存储在输入缓冲器中的数据;
输出缓冲器,用于存储由加密单元加密的数据;
其中,所述存储器控制器还向存储器写入存储在输出缓冲器中的加密数据,所述存储器控制器、输入缓冲器、加密单元和输出缓冲器响应于控制信号而操作,所述模式信号指示初始矢量和从电子密码本ECB模式、密码块链接CBC模式、CBC消息验证码CBC-MAC模式和计数器模式中选择的一个模式,并且
其中,所述加密单元包括:
初始矢量寄存器,用于存储从控制单元提供的初始矢量;
数据输入寄存器,用于存储从输入缓冲器提供的数据;
加密器,用于加密输入数据;
数据输出寄存器,用于存储要提供给输出缓冲器的数据;
加法器;
第一选择电路和第二选择电路;
其中,
第一选择电路,用于响应于模式信号而向加密器提供存储在初始矢量寄存器中数据、由存储在初始矢量寄存器中的数据与存储在数据输入寄存器中的数据进行逻辑运算的结果数据、以及存储在数据输入寄存器中的数据这三者中的任何一种作为输入数据,并且响应于模式信号而向加法器提供存储在初始矢量寄存器中的数据,其中,第一选择电路包括:
第一复用器,
第一逻辑运算器,
第二复用器,用于响应于模式信号而向加法器和第一复用器提供存储在初始矢量寄存器中的数据,或者向第一逻辑运算器提供存储在初始矢量寄存器中的数据,和
第三复用器,用于响应于模式信号向第一逻辑运算器或第一复用器提供存储在数据输入寄存器中的数据,
其中,第一逻辑运算器接收来自第二和第三复用器的输出,并且对它们执行逻辑运算,并且
第一复用器向加密单元传送第二复用器的输出、第一逻辑运算器的输出和第三复用器的输出中的任何一个;
第二选择电路,用于响应于模式信号而向数据输出寄存器提供由存储在数据输入寄存器中的数据与加密器加密的数据进行逻辑运算的结果数据、以及加密器加密的数据中的任何一种,并且响应于模式信号而向初始矢量寄存器提供加密器加密的数据,
其中,加法器向从第一选择电路提供的数据加上预定值,并且将加上预定值后的数据存储在初始矢量寄存器中。
2.如权利要求1所述的加密装置,其中,第二选择电路包括:
去复用器;
第二逻辑运算器;
第四复用器,用于响应于模式信号向第二逻辑运算器、或向去复用器、或向去复用器与初始矢量寄存器两者传送加密单元的输出,
其中,第二逻辑运算器接收第三和第四复用器的输出,并且执行逻辑运算,并且
去复用器把第二逻辑运算器的输出或第四复用器的输出作为输出数据传送。
3.如权利要求1所述的加密装置,其中,控制单元控制逐块地向加密单元提供存储在输入缓冲器中的数据。
4.如权利要求3所述的加密装置,其中,当存储在输入缓冲器中的最后的数据小于预定的块大小时,控制单元执行零填充。
5.如权利要求1所述的加密装置,其中,输入缓冲器是先入先出缓冲器。
6.如权利要求1所述的加密装置,其中,输入缓冲器存储至少两个数据块。
7.如权利要求1所述的加密装置,其中,输出缓冲器是先入先出缓冲器。
8.如权利要求1所述的加密装置,其中,输出缓冲器存储至少两个加密的数据块。
9.如权利要求1所述的加密装置,其中,存储器控制器是直接存储器存取控制器。
10.一种通信系统,包括:
存储器;
如权利要求1所述的加密装置,用于加密存储在存储器中的数据;以及
中央处理器,用于控制所述加密装置的运行。
CN2004100029716A 2003-01-24 2004-01-21 支持多个模式的加密装置 Expired - Lifetime CN1531240B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR1020030004806A KR100583635B1 (ko) 2003-01-24 2003-01-24 다수의 동작 모드들을 지원하는 암호화 장치
KR4806/2003 2003-01-24
KR4806/03 2003-01-24

Publications (2)

Publication Number Publication Date
CN1531240A CN1531240A (zh) 2004-09-22
CN1531240B true CN1531240B (zh) 2010-11-03

Family

ID=32733106

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2004100029716A Expired - Lifetime CN1531240B (zh) 2003-01-24 2004-01-21 支持多个模式的加密装置

Country Status (5)

Country Link
US (1) US7509501B2 (zh)
JP (1) JP4684550B2 (zh)
KR (1) KR100583635B1 (zh)
CN (1) CN1531240B (zh)
TW (1) TWI286689B (zh)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7336783B2 (en) * 2003-01-24 2008-02-26 Samsung Electronics, C., Ltd. Cryptographic systems and methods supporting multiple modes
US7904714B2 (en) * 2005-01-11 2011-03-08 Samsung Electronics Co., Ltd Apparatus and method for ciphering/deciphering a signal in a communication system
JP2006220748A (ja) * 2005-02-08 2006-08-24 Toshiba Corp データ処理装置、データ記録装置、データ再生装置およびデータ格納方法
US20060198515A1 (en) * 2005-03-03 2006-09-07 Seagate Technology Llc Secure disc drive electronics implementation
US8094814B2 (en) * 2005-04-05 2012-01-10 Broadcom Corporation Method and apparatus for using counter-mode encryption to protect image data in frame buffer of a video compression system
JP4887668B2 (ja) * 2005-06-09 2012-02-29 ソニー株式会社 暗号化復号処理回路および暗号化復号システム
US8218770B2 (en) * 2005-09-13 2012-07-10 Agere Systems Inc. Method and apparatus for secure key management and protection
KR101334581B1 (ko) * 2005-12-22 2013-11-28 인터디지탈 테크날러지 코포레이션 무선 통신 시스템에서 데이터 보안 및 자동 반복 요청 실시를 위한 방법 및 장치
KR100837270B1 (ko) * 2006-06-07 2008-06-11 삼성전자주식회사 스마트 카드 및 그것의 데이터 보안 방법
US7769166B2 (en) * 2006-08-24 2010-08-03 Lsi Corporation Dual mode AES implementation to support single and multiple AES operations
JP5094727B2 (ja) * 2006-09-20 2012-12-12 パナソニック株式会社 データ転送装置、及び携帯電話機
FR2906380B1 (fr) * 2006-09-27 2008-12-19 Trusted Logic Sa Systeme et procede de securisation de donnees.
KR100866959B1 (ko) * 2007-02-13 2008-11-05 삼성전자주식회사 불휘발성 메모리 장치의 부분 페이지 데이터 기입 방법
US8538012B2 (en) * 2007-03-14 2013-09-17 Intel Corporation Performing AES encryption or decryption in multiple modes with a single instruction
JP4304215B2 (ja) * 2007-03-23 2009-07-29 株式会社東芝 秘密分散装置、方法及びプログラム
US8538015B2 (en) 2007-03-28 2013-09-17 Intel Corporation Flexible architecture and instruction for advanced encryption standard (AES)
JP4334582B2 (ja) * 2007-06-26 2009-09-30 株式会社東芝 秘密分散装置、方法及びプログラム
TWI386814B (zh) 2007-12-31 2013-02-21 Ind Tech Res Inst 具動態工作管理能力之多處理器界面及其程式載卸方法
CN101499020B (zh) * 2008-01-28 2011-08-31 财团法人工业技术研究院 具有动态工作管理能力的多处理器界面及其程序加载或卸载方法
JP5228803B2 (ja) * 2008-10-30 2013-07-03 富士通セミコンダクター株式会社 共通鍵ブロック暗号におけるスワップ回路及び、それを有する暗号化・復号化回路
CN102035641A (zh) * 2009-09-24 2011-04-27 中兴通讯股份有限公司 一种实现aes加解密的装置和方法
JP5017439B2 (ja) * 2010-09-22 2012-09-05 株式会社東芝 暗号演算装置及びメモリシステム
US8498410B2 (en) * 2011-03-14 2013-07-30 Motorola Solutions, Inc. Methods for customizing a Rijndael block cipher
CN103517269B (zh) * 2012-06-19 2017-12-29 深圳市中兴微电子技术有限公司 数据加解密方法及系统
CN103874060B (zh) * 2012-12-13 2019-04-30 深圳市中兴微电子技术有限公司 数据的加/解密方法和装置
US20150363333A1 (en) * 2014-06-16 2015-12-17 Texas Instruments Incorporated High performance autonomous hardware engine for inline cryptographic processing
US9003200B1 (en) * 2014-09-22 2015-04-07 Storagecraft Technology Corporation Avoiding encryption of certain blocks in a deduplication vault
EP3552339A4 (en) 2016-12-09 2020-04-22 Cryptography Research, Inc. PROGRAMMABLE BLOCK ENCRYPTION WITH MASKED INPUTS
KR101922955B1 (ko) * 2018-02-14 2018-11-28 (주)케이사인 데이터 블록 기반의 근 실시간 데이터 암호화 시스템 및 방법
GB201808834D0 (en) * 2018-05-30 2018-07-11 Nordic Semiconductor Asa Memory-efficient hardware cryptographic engine
GB2574642A (en) 2018-06-13 2019-12-18 Nordic Semiconductor Asa Hardware accelerator
WO2020186125A1 (en) 2019-03-13 2020-09-17 The Research Foundation For The State University Of New York Ultra low power core for lightweight encryption
CN115348004A (zh) * 2022-08-11 2022-11-15 北京特纳飞电子技术有限公司 用于数据加密的方法、系统和装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6324286B1 (en) * 1998-06-17 2001-11-27 Industrial Technology Research Institute DES cipher processor for full duplex interleaving encryption/decryption service

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3777797D1 (de) * 1987-01-28 1992-04-30 Ibm Vorrichtung zur vermittlung zwischen kanaelen fuer synchronen nachrichtenverkehr und zur vermittlung von asynchronen datenpaketen.
JPH0646344B2 (ja) * 1988-05-23 1994-06-15 日本電信電話株式会社 暗号回路
JP3148790B2 (ja) * 1994-03-15 2001-03-26 富士通株式会社 暗号装置
JP3547474B2 (ja) * 1994-03-22 2004-07-28 富士通株式会社 暗号演算回路
US5623549A (en) * 1995-01-30 1997-04-22 Ritter; Terry F. Cipher mechanisms with fencing and balanced block mixing
JPH08249238A (ja) * 1995-03-08 1996-09-27 Sanyo Electric Co Ltd 着脱可能な記憶メディアの機密保持方法
WO1997044935A1 (en) * 1996-05-20 1997-11-27 Philips Electronics N.V. Cryptographic method and apparatus for non-linearly merging a data block and a key
US6061449A (en) * 1997-10-10 2000-05-09 General Instrument Corporation Secure processor with external memory using block chaining and block re-ordering
JPH11212451A (ja) * 1998-01-22 1999-08-06 Dainippon Printing Co Ltd 暗号処理装置
US6295604B1 (en) * 1998-05-26 2001-09-25 Intel Corporation Cryptographic packet processing unit
JP2000075785A (ja) * 1998-08-26 2000-03-14 Fujitsu Ltd 高速暗号処理回路および処理方法
JP3581601B2 (ja) * 1998-12-18 2004-10-27 松下電器産業株式会社 データ転送装置、データ転送システムおよび記録媒体
JP2001177518A (ja) * 1999-12-17 2001-06-29 Nec Corp 暗号化方法、復号化方法及び装置
JP2002297030A (ja) * 2001-03-29 2002-10-09 Toshiba Corp 暗号処理装置及び暗号処理方法並びにプログラム
JP4761652B2 (ja) * 2001-06-04 2011-08-31 ルネサスエレクトロニクス株式会社 データ暗号化回路
US7191341B2 (en) * 2002-12-18 2007-03-13 Broadcom Corporation Methods and apparatus for ordering data in a cryptography accelerator
US7657757B2 (en) * 2003-04-30 2010-02-02 Freescale Semiconductor, Inc. Semiconductor device and method utilizing variable mode control with block ciphers

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6324286B1 (en) * 1998-06-17 2001-11-27 Industrial Technology Research Institute DES cipher processor for full duplex interleaving encryption/decryption service

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Helger Lipmaa等.Comments to NIST concerning AES Modes of Operations: CTR-Mode Encryption.http://citeseer.ist.psu.edu/lipmaa00comments.html,2000,1-3. *

Also Published As

Publication number Publication date
JP2004226966A (ja) 2004-08-12
KR20040067601A (ko) 2004-07-30
JP4684550B2 (ja) 2011-05-18
TWI286689B (en) 2007-09-11
TW200421098A (en) 2004-10-16
US20040148512A1 (en) 2004-07-29
CN1531240A (zh) 2004-09-22
KR100583635B1 (ko) 2006-05-26
US7509501B2 (en) 2009-03-24

Similar Documents

Publication Publication Date Title
CN1531240B (zh) 支持多个模式的加密装置
EP0802653B1 (en) Multi-cycle non-parallel data encryption engine
US7336783B2 (en) Cryptographic systems and methods supporting multiple modes
US6295604B1 (en) Cryptographic packet processing unit
CN101149709B (zh) 存储卡的加密处理器和使用其进行数据读写的方法
EP0802652A2 (en) Data encryptor having a scalable clock
WO1981001933A1 (en) Message format for secure communication over data links
CN1973481A (zh) 用于进行rc4加密的装置和方法
CN112329038B (zh) 一种基于usb接口的数据加密控制系统及芯片
CN111464564B (zh) 一种基于对称密码算法的数据高速加解密方法及装置
US7447311B2 (en) Method of designing optimum encryption function and optimized encryption apparatus in a mobile communication system
CN102411694A (zh) 加密装置及存储器系统
US9602281B2 (en) Parallelizable cipher construction
CN115622696A (zh) 一种服务器、数字芯片及其对称加解密装置
US20050138403A1 (en) Data encryption in a symmetric multiprocessor electronic apparatus
US7673151B2 (en) Processor for encrypting and/or decrypting data and method of encrypting and/or decrypting data using such a processor
CN109726566B (zh) 基于安全内存加密技术的加密系统和加密方法
CN105721139B (zh) 一种适用于有限io资源的fpga的aes加解密方法及电路
CN103077362A (zh) 具有安全机制的gpio ip核
US20020181704A1 (en) Data encryption circuit pre-holding next data to be operated in buffer
EP1629626A1 (en) Method and apparatus for a low memory hardware implementation of the key expansion function
KR100511684B1 (ko) 유사 난수 발생기
KR100546777B1 (ko) Seed 암/복호화 장치, 암/복호화 방법, 라운드 처리 방법, 이에 적합한 f함수 처리기
JPH0439935B2 (zh)
CN116502288A (zh) 快速数据超过慢速数据的处理管线

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CX01 Expiry of patent term

Granted publication date: 20101103

CX01 Expiry of patent term