分组密码方法及分组加密/解密电路的制作方法

文档序号:7575302阅读:372来源:国知局
专利名称:分组密码方法及分组加密/解密电路的制作方法
技术领域
本发明涉及一个分组密码方法及一个分组加密/解密电路。
背景技术
使用先进加密标准(AES)的分组密码电路是用于加密明文数据的密码电路之一。这样的AES分组密码电路分割数据以把数据加密成例如128位分组,并且用轮密钥(round key)数据对其逐个加密。通过一个密钥调度处理从用于加密的密钥数据产生轮密钥数据(例如参照,″AES gaisetu″,[在线],2002年6月11日,IWATA实验室,电气及计算机工程部,Nagoya技术所[2002年10月8日搜索],http://mars.elcom.nitech.ac.jp/security/aes.html)。
因而,当密文数据被重新加密时,即当用相应的轮密钥数据把密文数据解密成明文数据,并且接着用另一段轮密钥数据再次加密成密文数据时,处理流程如下参照图4描述该处理。
1.在一台主计算机1中准备初始密文数据,用于解密的密钥数据,及用于加密的密钥数据。
2.主计算机1传送用于解密的密钥数据到一个密钥调度电路2,该密钥调度电路执行密钥调度以产生用于解密的轮密钥数据。
3.主计算机1传送一个分组的密文数据到一个加密/解密电路3,该加密/解密电路用在步骤2产生的轮密钥数据把分组解密成明文数据。
4.主计算机1传送用于加密的密钥数据到密钥调度电路2,该密钥调度电路执行密钥调度以产生用于加密的轮密钥数据。
5.用在步骤4产生的轮密钥数据把在步骤3产生的明文数据加密成密文数据。
6.在步骤5产生的重新加密数据被传送回主计算机1。
7.针对下一个分组的初始密文数据重复步骤2到6。
在多任务操作系统(OS)上的两个任务使用单个加密/解密电路的情况下,必须象在上述步骤中那样产生对应于各个任务的轮密钥数据以进行加密或解密。
不幸的是,密钥调度处理通常需要大约两倍的处理时间进行加密或解密。因此,如步骤2或4示出,在多任务处理中针对各个分组或针对各个任务的密钥调度导致较大开销,因此降低了加密或解密的总吞吐率。
因此,本发明的目的是克服这些问题。

发明内容
本发明提供了例如一个分组密码方法,包含步骤根据解密密钥数据产生第一轮密钥数据,在存储器的第一位置存储第一轮密钥数据,根据加密密钥数据产生第二轮密钥数据,在存储器的第二位置存储第二轮密钥数据,用第一轮密钥数据把输入密文数据的分组逐个解密成明文数据,以及用第二轮密钥数据把明文数据的分组逐个加密。
因此,消除了密钥调度开销,因而增加了总吞吐率。


图1是本发明的实施例的示意图;图2是说明图1示出电路的处理流程的流程图;图3是本发明的实施例的示意图;及图4是说明已知方法中重新加密密文数据的处理流程的示意图。
具体实施例方式
1.1分组加密/解密电路10的构造参照图1,附图标记10表示基于本发明的一个分组加密/解密电路的总体结构,并且附图标记20表示连接分组加密/解密电路10的一台主计算机。在这个实施例中,分组加密/解密电路10可以执行密文数据的快速重新加密。
为了实现这个目标,主计算机20的一个存储器23存储要重新加密的密文数据,用于把密文数据解密成明文数据的密钥数据,及用于把明文数据重新加密成加密数据的密钥数据。例如,初始密文数据的一个分组是128位,并且用于加密或解密的密钥数据的长度也是128位。
分组加密/解密电路10具有两个模式。在第一模式中,用于解密的轮密钥数据产生于用于解密的密钥数据,并且被存储在存储器中,而用于加密的轮密钥数据产生于用于加密的密钥数据,并且也被存储在存储器中。在第二模式中,通过使用第一模式中存储在存储器中的轮密钥数据,交替地对各分组系列执行把密文数据分组解密成明文数据分组以及把明文数据分组重新加密的处理。
即,分组加密/解密电路10包含加密/解密电路11及密钥调度电路12。在这种情况下,加密/解密电路11用解密轮密钥数据把密文数据分组解密成明文数据,并且用加密轮密钥数据把明文数据分组加密成加密数据。另外,密钥调度电路12由用于解密的密钥数据产生用于解密的轮密钥数据,并且由用于加密的密钥数据产生用于加密的轮密钥数据。
加密/解密电路11和密钥调度电路12连接到分组加密/解密电路10的内部总线19。内部总线19连接到主计算机20。
另外,在分组加密/解密电路10中,寄存器15连接到内部总线19。寄存器15具有一个模式标志MFLG。模式标志MFLG由主计算机20设置并且提供给加密/解密电路11和密钥调度电路12以控制如下电路当MFLG=″0″时,禁止加密/解密电路11并且使能密钥调度电路12。
当MFLG=″1″时,使能加密/解密电路11并且禁止密钥调度电路12。
此外,分组加密/解密电路10具有组存储器13和寄存器14。在这个实施例中,组存储器13具有一对组#0和#1,其存储由密钥调度电路12分别产生的用于加密和解密的轮密钥数据。为此,寄存器15具有一个切换标志BNKF,该标志由主计算机20设置并且提供给组存储器13作为切换组的控制信号。以如下方式控制组存储器13当BNKF=″0″时,使能组#0并且禁止组#1。
当BNKF=″1″时,禁止组#0并且使能组#1。
此外,分组加密/解密电路10具有存储器控制电路16,该存储器控制电路控制针对组存储器13的轮密钥数据的读/写及其地址。
组存储器13的输出被暂时存储在寄存器14中,并且接着作为轮密钥数据提供给加密/解密电路11。
另外,寄存器15的切换标志BNKF被提供给加密/解密电路11用于下列控制当BNKF=″0″时,加密/解密电路11执行解密。
当BNKF=″1″时,加密/加密电路11执行加密。
例如,在图2的流程图100所说明的流程中,分组加密/解密电路10执行对存储在主计算机20中的密文数据的重新加密。处理将在此后描述。
1.2分组加密/解密电路10的重新加密处理密文数据的重新加密在流程图100的步骤101处开始。如步骤102所示,由主计算机20把寄存器15中的标志MFLG及BNKF设置为级别″0″。因此,模式标志MFLG使能密钥调度电路12并且禁止加密/解密电路11,而切换标志BNKF使能组#0并且禁止组#1。
接着,主计算机20设置模式标志MFLG为级别″0″,使得如步骤103所示,主计算机20向密钥调度电路12传送解密密钥数据,该数据是存储在存储器23中的密钥数据项之一。如步骤104所示,密钥调度电路12根据步骤103传送的密钥数据产生轮密钥数据。这里,BNKF=″0″;因此,产生用于解密的轮密钥数据。
在步骤105,由存储器控制电路16把在步骤104产生的轮密钥数据传送给组存储器13。这里,由于在步骤102使能组存储器13的组#0,所以轮密钥数据被存储在组#0中。接着,在步骤106,检查切换标志BNKF的级别。这里,BNKF=″0″;因此处理流程从步骤106进行到步骤107,其中由主计算机20把寄存器15中的切换标志BNKF设置成级别″1″。接着处理流程返回到步骤103。
因此,对应于BNKF=″1″,作为存储在存储器23中的另一密钥数据的加密密钥数据被传送给密钥调度电路12(步骤103)。根据密钥数据产生用于加密的轮密钥数据(步骤104)。轮密钥数据被写入组存储器13的组#1(步骤105)。这里,在步骤106中BNKF=″1″;因此,处理流程从步骤106进行到步骤111。该时刻,用于解密的轮密钥数据及用于重新加密的轮密钥数据被分别存储在组存储器13的组#0和组#1中。
在步骤111,寄存器15的模式标志MFLG被设置成级别″1″,使得模式标志MFLG禁止密钥调度电路12和使能加密/解密电路11。在步骤112,切换标志BNKF被设置成级别″0″,使得切换标志BNKF使能组#0,禁止组#1,并且使能加密/解密电路11以执行解密。
在步骤113,存储在使能的组#0或#1中(在这种情况下为组#0)的轮密钥数据通过寄存器14被提供给加密/解密电路11。另外,如步骤114所示,存储在主计算机20的存储器23中的第n个分组的密文数据(在这种情况下为第一分组)被传送给加密/解密电路11。由于BNKF=″0″,如步骤115所示,用在步骤113提供的轮密钥数据把在步骤114传送的密文数据分组解密成明文数据。
在步骤116,在步骤115解密的明文数据分组被返回到主计算机20的存储器23。在步骤117,确定是否完成存储器23中所有数据的处理。这里,其未完成,则处理流程执行到步骤118。
在步骤118,检查切换标志BNKF。这里,由于在步骤112中BNKF=″0″,处理流程执行到步骤119,其中寄存器15的切换标志BNKF被设置成级别″1″。此后,处理流程返回到步骤113。
因此,再次重复步骤113到116。在这种情况下,BNKF=″1″,以便使能组存储器13的组#1,并且用于解密的轮密钥数据被得到和提供给加密/解密电路11(步骤113)。在紧临前面的步骤115中解密的明文数据分组被从主计算机20的存储器23提供给加密/解密电路11(步骤114)。由于BNKF=″1″,加密/加密电路11执行加密(步骤115)。因此,初始密文数据的第一分组被重新加密,并且重新加密的密文数据分组被返回给主计算机20,并且写入存储器23(步骤116)。
这里,由于只重新加密一个分组,所以处理流程从步骤117进行到步骤118。由于BNKF=″1″,处理流程接着返回到步骤112。
因此,如上所述,存储器23中的密文数据的第二分组被解密成明文数据,并且在步骤111到119被重新加密成密文数据。并且,在步骤101到105,通过使用存储在组存储器13的组#0及#1中的用于解密和加密的轮密钥数据执行解密成明文数据及重新加密成密文数据的处理。
在存储器23中的全部密文数据被重新加密之后,处理流程从步骤117进行到步骤121,并且流程图100完成。
因而,重新加密存储器23中的密文数据。在这个实施例中,重新加密需要用于解密及重新加密的轮密钥数据。预先在组存储器13的组#0及#1中准备这些轮密钥数据,从而仅一次密钥调度便足以满足解密及重新加密中的每个。因此,重新加密密文数据所需的时间被显著降低,从而增加了总吞吐率。
2记录及重放单元图3说明了基于本发明、适用于CD-R/RW记录及重放单元的实施例。
因而,附图标记31表示一个音频信号的信号源,诸如话筒31,并且附图标记32表示一个音频信号的目的地,诸如扬声器32。通过音频接口电路33,这些设备被连接到微型计算机40的系统总线49,这将在下面描述。并且,通过盘接口电路34,盘驱动单元35被连接到系统总线49。诸如可记录光盘(CD-R)或可改写光盘(CD-RW)的盘36被装配在盘驱动单元35中。
微型计算机40对应于实施例1.1及1.2中的主计算机20,并且构成一个系统控制电路,其控制记录及重放单元的整体操作。微型计算机40包含中央处理单元(CPU)41,只读存储器(ROM)42,其中写入各种程序和数据,以及用于工作区的随机访问存储器(RAM)43,这些部件全部连接到系统总线49。此外,在实施例1.1及1.2中描述的分组加密/解密电路10通过内部总线19连接到系统总线49。RAM 43的地址区域的一部分被用作存储器23。
此外,各种操作按键44及诸如液晶显示器(LCD)45的显示器被连接到系统总线49。通用串行总线(USB)接口电路46也被连接到系统总线49,以作为一个外部接口。外部外设,例如个人计算机50被连接到USB接口电路46。
在记录及重放期间,根据加密或解密的出现执行下列处理。
2.1普通记录在非加密记录期间,把来自话筒31的音频信号提供给音频接口电路33,并且将其A/D(模数)转换为数字音频数据。通过系统总线49,数字音频数据被提供给盘接口电路34,被进行纠错编码,并且被EFM(8到14调制)调制以进行记录。接着,编码及调制的信号被提供给盘驱动单元35,并且被记录在盘36上。
2.2普通重放通过盘驱动单元35重放来自盘36的信号。重放信号被提供给盘接口电路34,其中通过与记录处理,即EFM解调互补的处理和纠错解码处理得到初始音频数据。接着通过系统总线49,数字音频数据被提供给音频接口电路33,并且被D/A(数模)转换为提供给扬声器32的模拟音频信号。
在除了数字音频数据之外的数字数据被记录到盘36或从盘36重放的情况下,需要对数据进行编码或解码处理。这些处理也由盘接口电路34执行。
2.3音频信号的加密和记录在音频信号被加密及记录到盘36的情况下,从话筒31向音频接口电路33提供音频信号,其中音频信号被A/D转换为数字音频数据。数字音频数据被缓冲并且接着提供给分组加密/解密电路10。因而,如实施例1.1到1.2所描述的,由分组加密/解密电路10把RAM 43中的数字音频数据以2K(1024)字节为一批分组加密为密文数据。
RAM 43中的密文数据被提供给盘接口电路34,经过纠错编码,及用于记录的EFM调制,并且接着被提供给盘驱动单元35,以记录到盘36。
2.4音频信号的重放和解密在解密并且重放记录在盘36上的音频信号的情况下,由盘驱动单元35从盘36重放音频信号。重放信号被提供给盘接口电路34,其中信号被解码成初始密文数据。如实施例1.1到1.2中描述的,在RAM 43中密文数据被缓冲,并且接着以例如2K字节数据为一批提供给分组加密/解密电路10,并且被分组解密成初始数字音频数据。
从RAM 43向音频接口电路33提供解密的数字音频数据,并且D/A转换成提供给扬声器32的初始模拟音频信号。
2.5音频信号的重新加密这种情况就是记录在盘36上的加密音频信号被重新加密,接着输出到例如个人计算机50。
即,在启动盘36的重放之后,类似实施例2.4,由盘接口电路34把来自盘36的重放信号解码成初始密文数据。密文数据被顺序写入RAM 43。在某数量的密文数据,例如盘36的一个扇区中的密文数据被写入RAM 43之后,执行流程图100说明的处理,使得RAM 43中的密文数据被重新加密,并且接着通过USB接口电路46提供给个人计算机50。接着,每当重放盘36的扇区中的密文数据时,重复上述处理。
因而,记录在盘36上的加密音频信号被重新加密并且输出到个人计算机50。在这种情况下,如上所述,消除了重新加密的开销,使得在盘36的重放期间能够实时执行处理。
3其它实施例在上述实施例中,描述了重新加密密文数据的情况。在多任务OS上的两个任务使用单个分组加密/解密电路10的情况下,根据所执行的任务,切换标志BNKF应当被设置为级别″0″或级别″1″,并且应当执行步骤103到105,并且接着应当执行步骤111及113到117。接着,处理流程从步骤117返回到步骤113。这些步骤执行对应于加密或解密的处理。类似地,在有3个或更多任务的情况下,组存储器13的组应当被切换到对应于各个任务的组,并且接着应当执行步骤103到105,111及步骤113到117。
另外,在上述实施例中,密文数据或解密数据具有一段密钥数据。可以具有多段密钥数据。此外,加密/解密电路11可以是一个通用分组密码电路。密钥调度电路12可以并入加密/解密电路11。
基于本发明,当在一个加密/解密电路中执行多个加密或解密处理时,用于加密或解密的轮密钥数据被存储在组存储器的各个组中。只执行一次密钥调度。与需要针对每个分组的明文数据或密文数据进行密钥调度的处理相比,消除了开销,因而显著降低了加密或解密所需的时间,并增加了总吞吐率。
权利要求
1.一种分组密码方法,包括步骤根据解密密钥数据产生第一轮密钥数据;在存储器的第一位置存储第一轮密钥数据;根据加密密钥数据产生第二轮密钥数据;在存储器的第二位置存储第二轮密钥数据;用第一轮密钥数据把输入密文数据的分组逐个解密成明文数据;以及用第二轮密钥数据把明文数据的分组逐个加密。
2.如权利要求1所述的分组密码方法,其中针对每个分组重复加密及解密。
3.一种分组加密/解密电路,包括密钥调度电路,用于根据解密密钥数据产生第一轮密钥数据,并且根据加密密钥数据产生第二轮密钥数据;存储器,用于在第一位置存储第一轮密钥数据,并且在第二位置存储第二轮密钥数据;以及加密/解密电路,用于用第一轮密钥数据把输入密文数据的分组逐个解密成明文数据,并且用第二轮密钥数据把明文数据的分组逐个加密。
4.如权利要求1所述的分组加密/解密电路,其中针对每个分组重复加密及解密。
全文摘要
一个分组密码方法消除了涉及密钥调度的开销,降低了加密或解密的所需时间,并且增加了总吞吐率。提供了一个密钥调度电路(12),用于从密钥数据产生用于加密或解密的轮密钥数据,和一个组存储器(13),用于在组存储器的预定组上存储由密钥调度电路(12)产生的轮密钥数据。当逐个接收存储在组中的轮密钥数据及明文数据或密文数据分组时,提供加密/解密电路(11)以加密明文数据或解密密文数据。从加密/解密电路(11)得到加密或解密的输出。
文档编号H04L9/06GK1685296SQ200380100028
公开日2005年10月19日 申请日期2003年10月8日 优先权日2002年10月9日
发明者大藤严, 一之濑勉 申请人:索尼株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1