解密方法及电子装置的制作方法

文档序号:7572086阅读:165来源:国知局

专利名称::解密方法及电子装置的制作方法
技术领域
:本发明涉及一种解密方法以及用于接收发送的经加密的加扰数据及用于解密该发送数据的电子装置。一种通过加密发送的信息并接收和解密该加密发送信息以获得原始信息从而使通信信息保密的加密解密系统是公知的。美国标准系统的DES(数据加密标准)加密规则就是这样一种加密解密系统。已经开发出了各种加密规则和更好的安全高速的加密系统。在美国专利4,982,429和4,103,479的说明书中以及公开的日本专利No.1-276189中描述的加密系统(MULTI2系统)就是一个例子。在国际标准化组织(ISO)中有一种登记为ISO997910009的加密系统和一种登记为ISO/IEC10116的加密应用模式。在上述的MULTI2系统的加密系统中,输入数据长度设为64比特,输出数据长度设为64比特。执行加密所需的256比特长度的工作密钥是从256比特长度的系统密钥和64比特的数据密钥中产生。另外,加密级数设为正整数。图1表示在这种MULTI2系统中的加密算法的简要结构。如图1所示,在该MULTI2系统中加密算法的计算利用在64比特的各数据密钥Ks中的256比特的系统密钥J来进行,由此产生256比特的工作密钥Kw。该加密算法的计算由一个加密算法执行装置C来完成。生成的工作密钥提供给一个加密算法执行装置F,且64比特的明文被加密。加密算法执行装置C和加密算法执行装置F执行的加密算法是相同的加密算法。这种加密算法是MULTI2系统的基本的加密算法。然而,在这种加密算法中,所担心的是字符或词的出现频率的分布已被预先处理,并且明文通过相对于获得的加密文本的字符串联模式(characterseriespattem)的频率分配进行匹配被推测出来。因此,有这样一种技术,通过在正加密的64比特的加密块和下次输入的64比特的输入数据之间执行“异-或”操作来产生密文。利用这种技术的加密模式称为CBC(密码块链)模式。在这种的CBC模式中的加密算法在上述的加密算法执行装置F中执行。例如,有一种如分组通信的通信系统,其中通信数据单元被预先确定。然而,当一个不能被一个块的比特数除尽的数据单元输入到以64比特作为一个块的块加密系统中时,数据就有剩余。因此,这些剩余数据的部分处理是以OFB(输出反馈)模式处理。在这种OFB模式中,该数据的剩余部分被提供给一个加密算法执行装置G,并利用一个随机数来加密。该随机数由加密算法执行装置G利用工作密钥Kw来产生。这样,可获得以64比特作为一个块的一个密文。该CBC模式和该OFB模式均称为一个加密应用模式。图2示出了在MULTI2系统中的解密算法的一个简要结构。如图2所示,256比特的工作密钥通过利用在64比特的数据密钥Ks中的256比特的系统密钥J进行加密算法的计算来产生。这种加密算法的计算由加密算法执行装置C来执行。产生的工作密钥Kw提供给解密算法执行f,则输入的64比特的密文被解密。在OFB模式中加密的该密文被提供给一个加密算法执行装置g,并通过利用由加密算法执行装置g利用工作密钥Kw产生的一个随机数而被解密。由此,由64比特作为一个块的密文被解密,则64比特的明文可以得到。当设置了CBC模式时,解密算法执行装置f执行在CBC模式下的解密算法。现在,参照图3描述加密应用模式。图3A示出了CBC模式下的加密和解密的简要结构。图3B示出了在OFB模式下加密和解密的简要结构。如图3A所示,在CBC模式下,第i个J明文块M(i)被输入到一个“异-或”电路101,并且在这个第i个明文块M(i)和由寄存器(REG)103延时并位于前一个块的密文块C(i-1)之间进行“异-或”操作。得出的数据用一个根据加密算法执行装置102中的数据密钥Ks产生的工作密钥来加密。这个加密的第i个密文块C(i)表示如下C(i)=EKs(M(i)·EOR·C(i-1))在这种情况下,EKs(m)表示m由Ks加密。EOR为“异-或”的计算。该密文块C(i)被发送并在接收端接收。接收到的密文块C(i)由根据在解密算法执行装置111中的数据密钥Ks产生的工作密钥来解密,并提供给一个“异-或”电路113。在寄存器(REG)112中延时并由位于前一个块的密文块C(i-1)也输入到这个“异-或”电路113,由此执行这两个文本块之间的“异-或”操作。这时,在发送和接收端的数据密钥彼此相同。这样,第i个明文从“异-或”电路113中被解密出来。该第i个明文块M(i)表示如下M(i)=DKs(C(i)·EOR·C(i-1))此时,DKs(c)表示C已由Ks解密。在OFB模式时,该第i个明文块M(i)被提供到“异-或”电路105。由根据数据密钥Ks产生的工作密钥而提供的作为随机数的加密算法执行装置104的输出被提供到这个“异-或”电路105。加密算法执行装置104的输出由寄存器103延时一个块并又送回到该加密算法完成装置104。由此,由该随机数加密的密文块C(i)从“异-或”电路105中输出。这个密文块C(i)随后被发送,并在接收端接收。接收到的密文块C(i)被提供到“异-或”电路114。通过利用根据在加密算法执行装置115中的数据密钥Ks产生的一个工作密钥提供的作为随机数的输出被提供到这个“异-或”电路114。该加密算法执行电路115的输出在寄存器(REG)112中被延时一个块并又送回到该加密算法执行装置115。在这种情况下,提供到“异-或”电路114的随机数和提供到“异-或”电路105的随机数相同,则由该“异-或”电路114中得到第i个明文块M(i)。图4表示具有上述加密应用模式的加密解密系统的简要构成。图中,在发送端设置加扰器(scrambler)100。输入数据由加扰器100加扰并发送。经加扰的发送数据通过如空间等的传输路径传播,并在接收端被接收。经加密的发送数据由解扰器(descrambler)110解扰并还原成原始数据输出。该加扰器100由一个CBC模式加密部分和一个OFB模式加密部分构成。该CBC模式加密部分由一个作为加密算法执行装置的加密器102,一个寄存器103和一个“异-或”电路(EX-OR)101构成,加密器102用于加密输入数据(明文)。OFB模式加密部分由作为加密算法执行装置的加密器104和一个“异-或”电路(EX-OR)105组成。用于由数据密钥和系统密钥生成工作密钥的加密器106也设置在加扰器100中。生成的工作密钥提供给加密器102和104。加密器102,104和106具有相同的结构,这样,一个加密器可公用为三个加密器。CBC模式加密部分和OFB模式加密部分的操作如上所述。这样,这些操作的描述就此略去。解扰器110由一个CBC模式解密部分和OFB模式解密部分构成。该CBC模式解密部分由一个用作用于解密输入的接收数据(明文)的解密算法执行装置解密器111和一个寄存器112和一个“异-或”电路(EX-OR)113组成。OFB模式解密部分由一个作为加密算法完成装置的加密器115和一个“异-或”电路(EX-OR)114组成。用于由数据密钥和一个系统密钥生成工作密钥的加密器116也设置在解扰器110中。生成的工作密钥提供给解密器111和加密器115。加密器115和116具有相同的结构,这样一个加密器可以公用为两个加密器。CBC模式解密部分和OFB模式解密部分的操作如上所示。因此,这些操作的描述就此略去。当如上所述的MULTI2系统这样的高级加密解密系统用于软件中时,不可能以本算法装置的计算速度来执行实时处理。也就是说,例如,这个系统应用于卫星数字电视广播等中时,必须重新产生实时的图象和声音而不中断该图象和声音。从而,在接收端的解密处理必须由可以执行高速处理的硬件来完成。然而,由于要执行复杂的处理,在接收端可以完成所有实时解密处理的硬件的规模较大。因此,本发明的第一个目的是提供一种解密方法,其中在接收端通过利用廉价制造的紧凑硬件,在接收端可以实时完成对在高级加密系统加密的数据的所有解密处理。本发明的第二个目的是提供一种廉价制造且具有解密装置的紧凑电子装置,其中在接收端可以实时完成对在高级加密系统加密的数据的所有解密处理。为了实现上述第一个目的,本发明提供一种解密方法,它包括向存储装置中写入多个密钥信息的写入步骤;从该存储装置中读出由输入数据中的信息指定的任一个密钥信息的读出步骤;以及一个根据在读出步骤中读出的密钥信息解密输入数据的解密步骤;当写入步骤和读出步骤彼此重叠和写地址和读出地址彼此一致时,写入步骤的执行被禁止。为了实现上述第一个目的,本发明还提供一种解密方法,它包括用于根据输入数据中的指定数据,从存储多个密钥信息的存储装置中,读出任一个密钥信息的读出步骤;以及用于根据在读出步骤中的密钥信息解密输入数据的解密步骤;该读出步骤如此设定,即从存储装置读出的密钥信息用指定数据参照密钥表来搜索,并且当在密钥表中存在两个或多个用于读取与指定数据对应的密钥信息的地址时,选择最小一个密钥地址。为了实现上述第一个目的,本发明还提供一种解密方法,它包括根据在输入数据中的指定数据从存储多个密钥信息的存储装置中读出任一个密钥信息的读出步骤;以及一个用于根据在读出步骤中读出的密钥信息解密输入数据的解密步骤;该读出步骤如此设定,即从存储装置中读出的密钥信息的地址用指定数据参照一个表格来搜索,并且当在该表格中不存在由指定数据指示的密钥地址时,则不搜索任何密钥地址。为了实现上述第一个目的,本发明还提供一种解密方法,它包括用于执行初始化操作的初始步骤;用于向存储装置中写入多个密钥信息的写入步骤;用于根据在输入数据中的指定数据从存储器中读出任何一个密钥信息的读出步骤;以及一个根据在读出步骤中读出的密钥信息解密输入数据的解密步骤;该读出步骤如此设定,即从存储装置中读出的密钥信息的密钥地址用指定数据参照一个密钥表来搜索,并且在初始步骤中执行初始处理,使得在初始化期间中,搜索的结果是没有对应的密钥地址。用于实现上述第二个目的的本发明的电子装置至少包括用于执行上述任一个解密方法的解密装置。根据本发明的这种解密方法,可以恰当的控制存储装置的读写操作,在该存储装置中存储了执行解密处理所需的密钥信息。因此,可以提供一种能很容易执行存储控制的解密方法,从而提供一种在接收端能够实时执行所有解密处理的解密方法。另外,在该具有用于执行这每一种解密方法的解密装置的电子装置中的存储控制装置的结构可以简化,这样,这种电子装置可作得很紧凑并降低其制造成本。图1是一种传统加密算法的示图;图2是一种传统解密算法的示图;图3是一种包括CBC模式和OFB模式的加密应用模式的结构示图;图4是一个传统加密解密系统的结构示图;图5是一个框图,以本发明的解密方法的实施例的形式表示一个解密器的结构的实例;图6是图5所示的解密器中的一个IDT的结构的框图;图7是在图5所示的CPU中看到的解密器中的寄存器的存储空间图;图8是图6所示的IDT的比较器CP0到CP11的逻辑表示图;图9是在图6所示的2DT的PE的逻辑表示图;图10是解释用一种间接提取方法从图5所示的解密器中的输入数据的首标信息中搜索数据密钥的示图;图11是解释当PID表中的各PID重叠时解密器的操作示图;图12是解释当PID表中不存在对应的PID时解密器的操作的示图;图13是在图5所示的解密器中的DPMEM的读取定时的一个实例的示图;图14是表示图5所示的解密器的解密流程的流程图;图15是表示加密处理的构成的示图;图16是表示解密处理的构成的示图;图17是表示该加密处理基本函数的详细示图;图18是表示在所述基本函数中用于计算函数π2的详细组成;图19是表示密钥调度(schedule)处理的组成图;以及图20是表示加密器核心和解密器核心的组成的示图。图5是一个框图,以一个实施例的形式表示本发明的解密方法的一个组成实例。在图中,解密器A由CBC模式的解密部分B,一个具有包标识ID(PID)表的数据密钥间接提取装置(IDT)16,一个双端口存储器(DPMEM)17以及一个比较器(COMP)11构成。该双端口存储器17向解密部分B和C发送用于加密输入数据的数据密钥。比较器(COMP)11比较DPMEM17的写入地址和读出地址。作为接收数据的密文数据被输入到解密器A的端子1和一个切换装置3。这时,当设置CBC模式时,切换装置3和切换装置4每一个都切换到触点a端,并且输入的密文数据输入到CBC模式解密部分B并被解密和输出。另设置OFB模式时,切换装置3和切换装置4的每一个均切换到触点B端,并且密文数据被输入到OFB模式解密部分C。输入的密文数据在OFB模式解密部分C中被解密,且输出明文数据。输入的密文数据被解密并被设为CBC模式解密部分B和OFB模式解密部分C的明文数据,并且其解密算法与图2所示的类似。这时,解密处理所需的数据密钥从DPMEM17提供。例如,输入到端子l的接收数据的格式设置为如ISO/IEC13818规定的一种传送数据流(下文称为TS)。TS具有188字节的数据包结构,且如此构成即在4字节的首标后通常跟随184字节的有效负载(payload)。另外,加入一个奇偶校验码以进行对于传输误差的校正。这样,加入了一个16字节的奇偶校验码伪周期,并设置了这些重复的数据流。这个TS的首标包括表示该数据包是否由视频数据,音频数据或其它数据构成的PID信息,表示它是否是一个加密TS等的一个TSC(传送加扰控制)标志。这些数据包的属性通过分析在未示出的分析部分中的首标来认定。这时,当它被认定为未被TSC加密的数据包时,这个TS就如同经过了一个没有执行解密处理的延时部分而被输出。这个延时部分的延时时间设置成与解密处理所需的解密器A的时间相等。数据密钥Kse(Ks-偶数)以及数据密钥Kso(Ks-奇数)分配在一个PID中。这是因为数据密钥在每几秒到几十秒要被更新,使得为了更新需及时重写该数据密钥,并且数据密钥Kse和数据密钥Kso中只有一个在解密处理时使用,这样不用的数据密钥可以被更新。就是说,数据密钥Kse和数据密钥Kso被分配在一个PID中,使得很容易地执行用于更新数据密钥的更新控制。例如,上述分析部分设置在CBC模式解密部分B中,但这种安排没有示出。15比特的数据长度的PID/TSC信息从CBC模式解密部分B发送到IDT16中。在该IDT16中,PID表通过利用接收到的13比特长度的PID信息来引用。该IDT16通过组合从2字节长度的PID和TSC中读出的地址信息来产生一个DPMEM的读地址RA(9比特数据长度)。该产生的读地址RA从AD端子提供到DPMEM17的RA端子,并在此时执行控制操作,使得读使能(RE)信号为激活状态。由此,对应于读地址RA的数据密钥从DPMEM17中读出。读出的数据密钥与输入的TS解密时使用的数据密钥相同,并从端子RD输出到解密器5。该解密器5从提供的数据密钥和每个不同的系统的系统密钥中产生一个工作密钥。该解密器5根据该产生的工作密钥来解密输入的密文数据。该系统密钥预先从该CPU10传送到解密器A中。该CPU10如此构成,即解密部分B和C所需的更新数据密钥在解密处理中需要这个数据密钥之前被写入到DPMEM17中。在这个数据密钥写入的情况下,写使能(WE)信号设为激活状态,并且9比特数据长度的写地址(WA)和8比特的数据长度的数据密钥的写入数据(WD)被提供到DPMEM17中。在此情况,在CPU10中设置ROM和RAM,且提供给该解密器A的数据被写入到这些存储器中。当该IDT16以与写地址相同的读地址读取数据密钥时,读出的数据在数据密钥信息向DPMEM17中写入时变得不确定。从而,此时禁止向DPMEM17中写入。因此,设置一个比较器11,一个“与”(AND)门12,“或”(OR)门13,14以及一个反相器15。下而将描述这些单元的操作。从IDT16中输出的读地址RA和从CPU10中输出的写地址WA分别输入到比较器11的P端和Q端。当P端的输入数据和Q端的输入数据彼此一致(P=Q)时,从比较器11输出高电平信号。此时,当反相信号RE达到低电平的激活状态时,则从反相器15中输出高电平信号。这样最后从AND门12中输出高电平信号。AND门12的这个输出输入到OR门13,而OR门13的输出置为高电平。从而,反相信号WE达到非激活状态并禁止向DPMEM中写入。图7示出了从CPU10中看到的解密器A的寄存器的存储空间。一个在其9比特数据长度的地址(HADD)的上6位为“000100”处将64位×1的区域分配在CBC模式中的初始值表(CBC初始值表)中。存储在这一初始值表中的一个初始值提供给CBC模式解密部分B,并在打开电源时执行的初始处理时把它设置到寄存器6。在其地址(HADD)的上4位为“0010”处将256比特×1的区域也分配在系统密钥表(SYSTEM-keytable)中。这一系统密钥表的设置随每个系统而不同,但在一个系统中是一个固定的密钥。另外,在其地址(HADD)的上4位为“0100”处将13比特×12的区域分配在PID表(PID值表)中。这个PID表是表示包数据种类的,并设置为一个通道最大为12种,并且对每种数据种类设置为不同的PID。该系统密钥表被写入到一个预定的寄存器中,且PID表的信息在初始处理时从CPU10中写入到IDT16中。另外,在地址(HADD)的上两位为“00”处将64比特×12的区域分配到数据密钥Kse表(Ks-偶数值表)。在地址(HADD)上两位为“11”处将64比特×12的区域分配为数据密钥Kso表(Ks奇数值表)。这一数据密钥Kse表和数据密钥Kso表的信息被写入到DPMEM17中,并在每个几秒到几十秒的预定定时由CPU10更新。图6是表示IDT16的详细结构的实例的框图。在图中,标号41到52表示12个触发器(flip-flop)(DF0到DF11),每个只有13比特宽。标号61到72表示12个比较器(CP0到CP11),每个具有13比特宽。标号40表示一个地址解码器(ADEC)。当9比特的数据长度的地址信息输入到这个地址解码器40中时,从这个解码器40发送一个用于设置被触发的触发器DF0到DF11中的任一个的输出只给到这12个输出中的一个。另外,标号39表示一个优先级编码器(PE)。这个优先级编码器39输出与TSC信息组合的地址信息TMP0到TMP3。在该IDT16中,从CPU10中输出的8比特的数据长度的PID信息被扩展为13比特的数据长度,并输入到端子30。从CPU10输出的9比特的数据长度的地址信息也被输入到端子32并在ADEC40中解码。这一解码输出被作为选通脉冲信号输入到触发器DF0到DF11,并且DF0到DF11这些触发器中只有任意的一个被设为能够被锁存。这时,13比特数据长度的输入PID信息共同输入到DF0到DF11这几个触发器中。DF0到DF11的触发器由ADEC40的解码输出一个接一个地顺序选择,并且提供的PID信息被锁存。这样,最大为12种的PID信息可以被锁存到触发器DF0到DF11中,且120表由触发器DF0到DF11构成。13比特的数据长度的PHD信息输入到端子33并且共同被输入到比较器CP0到CP11的每一个的B输入端。这个PID信息是从作为在CBC模式解密部分B接收数据的包的首标中提取的并提供到IDT16中的15比特数据长度PID/TSC信息中的13比特的数据长度的PID信息。这时,来自触发器DF0到DF11的PID信息分别输入到比较器CP0到CP11的A端。如一个比较器的从A端输入的PID信息与从端子33输入的PID信息一致,则从该比较器输出一个一致信号。从而,当PID表中的PID信息从端子33输入时,比较器CP0到CP11中的任一个输出一致信号。图8示出了CP0到CP11这些比较器的逻辑表的图。当没有“1”输入给比较器CP0到CP11的所有A端和B端时,则在一致(A=B)时间输出一个“1”信号。在相反情况,则在非一致时间输出“0”。图9还示出了一个优先级编码器PE39的逻辑表的图。例如,在这一优先级编码器的逻辑表中,当从比较器CP2输出“1”信号时,该优先级编码器PE39输出“0010”的4比特(TMP0到TMP3)的数据。如图9所示,在这一优先级编码器PE39中D0设为一个具有最高优先级的输入且D11设为一个具有最低优先级的输入。有这样一种情况,其中输入了与设置到触发器DF0到DF11中的PID表的PID信息不一致的PID信息。这时,“0”被输入到优先级加密器PE的所有输入端。这时该优先级编码器PE的NK输出被置为“1”。当NK输出为“1”时,则以下将描述的数据密钥的密钥表的读操作将被禁止。端子31处的电平变为“0”,并且所有的触发器DF0到DF11在如接通电源等的一个初始处理时间被预置,使得触发器DF0到DF11的输出为“1”。因此,这里比较器CP0到CP11均输出“0”,且数据密钥的密钥表的读操作如上所述被禁止。当密钥表的读操作被禁止时,则没有密钥表被使用,这样数据密钥可以从CPU10中写入到这一密钥表中。即,数据密钥可以被初始化。端子31是一个电源开复位端,在一预定时间后,其电平返回到“1”。下面将参照图10,通过接收到的数据中的PID信息和TSC信息来描述搜索数据密钥的密钥表的操作。在如图10所示的步骤S20中,假设“PID-F”是从接收到的数据的首标作为13比特的数据长度的PID信息输入的,而“10”是作为2比特的数据长度的TSC信息输入的。“10”的设置表示其数据已由数据密钥Kse加扰。随后,在步骤S21,这个PID信息被输入到比较器CP0到CP11的A端,并与存储在触发器DF0到DF11中的每一个内的PID信息进行比较。结果,从比较器CP5中输出“1”信号,并且优先级编码器PE39的TEMP3到TEMP0的TMP[3…0]输出变为“0101”。即“PID-F”被搜索到。该“0101”作为该优先级加密器PE39的输出被设为在地址HADD处的第四到第一位。然后,在步骤S22中,TSC信息TSC[1…0]的两比特(“10”)被设为在地址HADD处的第五到第六比特,并产生6比特长度的HADD[8…3]地址。从而,地址HADD[8…3]变为“100101”在步骤S23中,当该密钥表随后用产生的“100101”的地址HADD[8…3]引用时,则从Ks-偶数表得到64比特的数据密钥Kse-F。输入的密文的解密由解密器A根据得到的数据密钥Kse-F来完成。这样,本发明的解密方法在于一种用于间接提取数据密钥的间接提取方法。从而,准备6比特宽的密钥表已足够,而无需准备对应于PID信息的13比特宽的表,这样,可以降低存储器的容量且存储器可以做得更紧凑。在解密期间,在该密钥表中只使用Ks_奇数表和Ks_偶数表中的一个,这样,在不用的密钥表中的数据密钥可以被更新。如上所述,该数据密钥的更新由CPU10来完成,但CPU10和该解密器A在彼此不同步的定时上操作。这样,CPU10非同步地写入更新的数据密钥。因此,存在这样一种情况,其中数据密钥的读操作和写操作在如上所述存储该密钥表的双端口存储器17中的相同地址同时执行。图13示出了此时的一个定时实例。当8个时钟宽度的反相信号RE以图13中的定时产生时,在这8个时钟周期中,从CPU中在相同地址的写操作如上所述被禁止。有时,由于某种原因,PID表中存入了相同的PID。例如,设置了一个通道最多12种PID信息。然而,当不需要12种的PID信息时,就不需要向PID表中写入12种PID信息。因此,在这种情况下,只有所需种类的PID信息被写入到PID表中。这样,存在这样一种情况,其中未写入的PID列偶然变成与PID相同的数据。在这种情况下,就会担心读出不正确的数据密钥,且不能执行解密。这样,在本发明中这种担心可以如下方式避免。如图11所示,当在PID表中存在多个“PID-F”信息时,在这些信息PID-F中的地址HADD的较小值设为具有优先权。这是因为由于向PID表中的写入操作是从HADD地址的较小值执行的,则在较大的HADD地址值的误差概率高。这样,当“PID-F”作为PID信息输入时,得到作为地址HADD[8…0]的“01000101”,并执行与上述处理类似的处理,这样,从Ks偶数表中获得64比特宽的数据密钥Kse-F。有时,即使来自输入数据中首标的PID信息引用了PID表,但却没有对应的PID存在。例如,如图12所示,即使“PID-F”作为PID信息输入,在PID表中也没有与“PID-F”对应的PID。在这种情形下,不读该密钥表中的Ks-偶数表和Ks-奇数表,也没有数据密钥被读出。此时,作为输入数据的TS被原样输出。图14示出了图5所示的解密器A的解密流程。当输入传输数据流(TS)时,在步骤S10中判断该传输数据流是否是加扰的。该判断通过检测在一个表示加扰状态的首标中的标志位是打开的还是关闭的来完成。当该标志位打开(on)时,则确定正进行了加密,并开始执行步骤S11。在步骤S11中,重写入希望的标志等。随后在步骤S12中,从首标中提取PID信息,并引用密钥表。在这种情况下,引用在密钥表处理的步骤16中进行接口处理的并在步骤S17中写入的密钥表。在步骤S12的处理即是示于图10的上述处理。从步骤S10到步骤S12的上述处理是首标控制处理。当在步骤10中判断出没有加密时,则TS原样输出。随后,在步骤S13中执行CBC模式中的解密处理。在步骤S14中,判断经解密的密文是否为64比特的整数倍。如果在该密文中有分数部分则判断为否,在OFB模式下的解密处理相对于在步骤S15中的分数部分执行,并输出一个经解密的明文。相反,如果在步骤S14中判断该密文为64比特的整数倍,则输出64比特的解密后的明文。图14所示的解密流程由图2所示的上述解密算法来完成。该示于图2的解密算法的构成如上所述。因而,在此略去有关这种解密算法的描述。下面将参照图15到19描述用于执行解密算法的详细构成和在该解密算法中的加密算法。图15示出了用于执行该加密算法的加密处理的组成。在图15中,64比特宽的输入数据被分成高32位的数据和低32位的数据并被输入到第一个加密八级。该加密八级如此构成,即将用于计算函数的四个算术级重复两次。函数π1相对于高32比特的输入数据和低32比特的输入数据在算术级20的第一级计算。随后,函数π2相对于第一级的输出在第二级计算。此时,32比特宽的工作密钥k1输入到第二级,而第二级的计算利用这一工作密钥k1来进行。另外,函数π3相对于第二级的输出在第三级计算。此时,32比特宽的工作密钥k2、k3输入到第2级、而第三级的计算利用k2、k3这些工作密钥来执行。随后,函数π4相对于第三级的输出在第四级计算。此时,32比特宽的工作密钥k4输入到第四级,在第4级的计算利用该工作密钥k4来执行。相对于算术级20的输出对函数π1的计算在余下的四级中在用于计算的算术级21的第一级进行。接着,函数π2的计算相对应这个第一级的输出在第二级进行。此时,32比特宽的工作密钥Ks输入到第二极并在第二极利用这个工作密钥Ks进行计算。另外,相对于第二级的输出而进行的函数π3的计算在算术级21的第三级进行。此时,32比特宽的工作密钥k6和k7输入到第三级而第三级的计算利用k6和k7这些工作密钥来进行。随后,相对于第三级的输出对函数π4的计算在第四级进行。此时,32比特宽的工作密钥k8输入到第四级且第四级的计算利用这个工作密钥k8来进行。这样,64比特宽的加密数据总共包括高32比特和低32比特,它们还输入到加密八级22。在加密的八个级22中,执行与上述的加密八级类似的计算,这样,可以获得总共包括高32比特和低32比特的64比特宽的随机输出数据。如图15所示,在加密八级的重复次数不只限于两次,也可以设置一个希望的重复次数。当重复的次数增加时,输出数据可以在高级别随机设置并且加密程度可以加强。根据一个恒定规则用另外的字符取代某些字符的字符取代操作以及用另外的顺序取代各字符顺序的换位操作在每个算术级中进行的函数计算中执行。图16示出了用于执行解密算法的解密处理的构成。这一构成与上述加密处理不同处在于其计算从加密处理结构的输出端起是相反地进行。即在加密八级中构成第一个四级的算术级23中,函数π4的计算是相对于分成高32比特和低32比特的64比特宽的加密输入数据,利用32比特宽的工作密钥k8来进行。随后,在第二级,函数π3的计算相对于在该第一级的输出数据,利用工作密钥k7来进行。另外,在第三级,函数π2的计算是相对于第二级的输出数据利用工作密钥k6和k7来进行。再有,在该第三级,函数π2的计算是相对于第二级的输出,利用工作密钥Ks进行的。在第四级,函数π1的计算是相对于第三级的输出数据进行的。在这四级进行的这些计算与在算法级24中利用工作密钥k4到k1进行的类似。另外,在加密八级中的上述计算也在纵向彼此连接的加密八级25中进行,这样,可以获得总共包括高32比特和低32比特的64比特宽的解密输出数据。在该加密八级的重复次数设置成与在加密处理中执行的加密八级中的重复次数相同。下面将参照图17以加密处理的算法级20作为一个实例详细描述在每一个算术级进行的详细计算。在第一级中函数π1的计算中,划分成输入32比特的较高位的比特在未经任何计算时就被输出。对高位比特和低位比特进行“异-或”操作,这样输出一个“异-或”值作为低位比特。在第二级中,函数π2的随后计算中,工作密钥k1被加入到低32比特的数据x中,这样,x+k1是第一个被计算出来。随后,当x+k1设为y时,y以左手循环移位1位,而z则是在这个移动值中加上y-1后获得。接着z以左手循环移位4位,并且对这个移动值与z值作“异-或”得到异或值。对这个得到的结果和高位的32比特执行“异-或”操作,从而输出该高32比特的计算数据。在这种情况下,低32比特的输入数据不做任何计算而直接输出。在第三级中进行的函数π3的计算中,工作密钥k2被加入到高32比特的数据x中,这样有先计算出x+k2。接着,当x+k2设为y时,y以左手循环移位两位,并将y+1加入到这个移位值中而得到z。随后,z以左手循环移位8位,并得到这个移动值与z值的“异-或”。另外,工作密钥k3加入到值a中而计算出a+k3。下一步,当将a+k3设为b时,b以左手循环移位1位,并将-b加到这个移动值中而得到C。接着,在a和x每一比特的逻辑“或”和左手循环将C移位16位得到的值之间执行“异-或”操作。在这个算术结果和低32比特的数据之间执行“异-或”操作,而将低32比特的计算数据输出。高32比特的数据不进行任何计算而输出。另外,在第四级中的函数π4的计算中,工作密钥k4加入到低32比特的数据x中,由此首先算得x+k4。随后,当设y为x+k4时,y以左手循环移位2位,并将y+1加到该移位值中。在这个算术结果和该高32位之间执行“异-或”操作,并输出该高32比特的那个计算数据。此时,低32比特的数据不做任何计算而输出。在上述的计算中,工作密钥k1到k4加入到数据中,从而通过循环移位这些数据执行了周其它字符代替某些字符的字符替代处理,并执行了替代这些字符位置的换位操作。这样。通过执行字符替代和换位的算法将明文被加密成密文。在解密时,执行与在加密过程中相反的字符替代和换位操作,使得密文被解密成原始文本。下面参照图18以函数π2为例详细描述计算上述函数的过程的组成。在图18中,低32位的输入数据x和32比特的工作密钥k1在第一加法器Add80中彼此相加,并输出相加后的数据y。在第一个左手循环移位器81中将这个相加后的数据y左手循环移位1位,并在第二加法器82中与第一左手循环移位器81的输出相加。在第三加法器84中,在这个加法结果中加入-1,由此计算出数据z。在第二左手循环移位器85中数据z被左手循环移位4位、并输入到“异-或”电路86。该第二左手循环移位器85的输出,数据z,高32比特的输入数据均输入到这个“异-或”电路86中,由此执行这三个数据的“异-或”操作。这一计算结果变成输入到下一级的高32比特的输入数据。低32比特的输入数据不进行任何计算而输入到下一级。图19示出了用于从64比特宽的数据密钥和256比特宽的系统密钥产生256比特宽的工作密钥的密钥调度处理的组成。如图19所示,该密钥调度处理如此构成,即两个算术级26和27中的每一个均由四级构成而算术级28由一级构成。算术级26和27及算法级28均如此构成即这些级在纵向彼此连接,如同一个级。函数π1的计算在均由四级构成的算法级26和27中的每一个的第一级中进行。函数π2的计算在第二级中进行。函数π3在第三级中计算。另外,函数π4在第四级中计算。这种算术算法与上述的加密处理中的算法类似。因而,在此省去这一算术算法的描述。在密钥调度处理中,输入数据设为64比特的数据密钥,函数π1到π4利用每个包括32比特的系统密钥J1到J8来计算,这样分别产生32比特的k1到k8的八个工作密钥。在这种情况下,这种算术算法与上述的加密处理的算法不同点在于计算在九个级中整个进行,函数π1在最后一级进行。在算术级26中计算出函数π2之后,高32比特的输出数据作为工作密钥k1输出。在计算出函数π3之后,低32比特的输出数据作为工作密钥k2输出。在计算出函数π4之后,高32比特的输出数据作为工作密钥k3输出。另外,在算术级27中计算的函数π1算出后,低32比特的输出数据作为工作密钥k4输出。在计算出函数π2之后高32比特的输出数据作为工作密钥k5输出。在计算完函数π3之后,高32位的输出数据作为工作密钥k6输出。在计算函数π4之后,高32位的输出数据作为工作密钥k7输出。在最后一级28中计算完函数π1之后,低32比特的输出数据作为工作密钥k8输出。参照图15所示的上述加密处理和图17所示的上述密钥调度处理该四个算术级的组成即算术算法的设置彼此相同。在这四个算术级中的计算重复进行,这样,可以完成加密处理或密钥调度处理。因此,如果算术核心如图20A所示如此构成,即函数π1到π4的算术级彼此纵向连接,加密处理或密钥调度处理可以重复执行该算法核心来完成。这个算术核心从数据密钥和图4所示的系统密钥中产生一个工作密钥,并对应于加密器在CBC模式和在OFB模式下执行的加密处理及被设置为一个加密器核心。在这种情况下,数据密钥Ks1到Ks4和数据密钥Ks5到Ks8以时分方式提供给加密器核心。该四个算术级的构成,即算术算法的设置彼此相同,参见图16。解密处理可以通过在这四个算法级中重复计算来完成。因此,如果解密算法核心如图20B构成,即函数π4到π1的算法级彼此纵向连接,解密处理可以通过重复执行此解密算术核心来完成。这个解密算术核心与图4所示的在CBC模式和OFB模式下解密器执行的解密处理相对应,并被设置为一个解密器核心。在这种情形下,数据密钥Ks8钥到Ks5和数据密钥Ks4到Ks1以时分方式输入到解密器核心。这样,密钥调度和加密处理的算法可以通过重复执行加密器核心来执行,且解密算法可以通过重复执行解密器核心来执行。以上描述涉及用于执行本发明的解密方法的解密器。本发明的电子装置由至少具有这样一个解密器的一个调谐器,一个电视装置等构成。在以上描述中,64比特块的明文通过利用64比特的工作密钥和256比特的系统密钥从64比特块的密文产生。然而,本发明不局限于这些数值,在本发明中可以设置任意的数值。另外,本发明不局限于重复上述换位操作和字符代替的一个加密解密系统,它还可以应用到其它加密解密系统。由于本发明构成如上,因此它可以恰当的控制存储器装置的读出和写入操作,在该存储装置中存有用于执行解密处理的密钥信息。因此,可以提供一种可以很容易地执行存储控制的解密方法。从而可以提供一种在接收端能够实时进行所有解密处理的解密方法。另外,在具有用于执行这种解密方法的解密装置的电子装置中的存储控制装置的结构可以减小其尺寸,这样,这种电子装置可以做得紧凑并降低其制造成本。以上参照附图,描述了本发明的最佳实施例,应当理解本发明不局限于那些具体的实施例,在不超出所附权利要求精神和范围的情况下,本领域技术人员可以做各种修改和变形。权利要求1.一种解密方法,包括以下步骤用于向存储装置中写入多个密钥信息的写入步骤;用于从所述存储装置中读出由输入数据中的信息指定的任何一个密钥信息的读出步骤;以及用于根据在读出步骤中读出的密钥信息解密所述输入数据的解密步骤;当所述写步骤和所述读步骤的执行期间彼此重叠且写地址和读地址彼此一致时,禁止执行所述写入步骤。2.一种解密方法,包括以下步骤;用于根据输入数据中的指定数据从存储多个密钥信息的存储装置中读出任一个密钥信息的读步骤;以及用于根据在所述读步骤中读出的密钥信息来解密所述输入数据的解密步骤;所述读步骤如此设置使得从所述存储装置中读出的密钥信息由所述指定数据参照密钥表来搜索,并且当在所述密钥表中存在两个或多个用于读取与所述指定数据对应的所述密钥信息的地址时,选择最小的一个密钥地址。3.一种解密方法,包括以下步骤;根据在输入数据中的指定数据从存储多个密钥信息的存储装置中读出任意一个密钥信息的读出步骤;以及一个用于根据在所述读出步骤中读出的密钥信息解密所述输入数据的解密步骤;所述读出步骤如此设置使得从所述存储装置中读出的密钥信息的密钥地址由所述指定数据参照一个表格来搜索,并且当在所述表中不存在用所述指定数据指示的密钥地址时,则不搜索任何密钥地址。4.一种解密方法,包括以下步骤用于执行初始化操作的初始步骤;用于向存储装置中写入多个密钥信息的写入步骤;用于根据在输入数据中的指定数据从所述存储装置中读出任何一个密钥信息的读出步骤;以及用于根据在读出步骤中读出的密钥信息解密所述输入数据的解密步骤;所述读出步骤如此设定使得从所述存储装置中读出的密钥信息的密钥地址由所述指定数据参照一个密钥表来搜索,以及在所述初始步骤执行初始处理使得作为在初始化期间中的搜索结果,没有对应的密钥地址。5.一种电子装置,至少包括用于执行如权利要求1所述的解密方法的解密装置。6.一种电子装置,至少包括用于执行如权利要求2所述的解密方法的解密装置。7.一种电子装置,至少包括用于执行如权利要求3所述的解密方法的解密装置。8.一种电子装置,至少包括用于执行如权利要求4所述的解密方法的解密装置。全文摘要一种解密方法,其中PID信息和TSC信息被从输入到端子1的接收数据的首标中提取出来,并被输入到一个IDT(16)。该IDT(16)接收这些信息并由间接提取方法从DPMEM(17)中搜索一个数据密钥并读出该数据密钥。每隔一预定周期更新的多个数据密钥不同步地写入该DPMEM(17)中。当DPMEM(17)的写入和读出操作以相同的定时和相同的地址执行时,则禁止这种写操作。由此,DPMEM(17)的存储控制可以很容易地完成。从而,在接收端所有解密处理可以实时完成。文档编号H04L9/08GK1167304SQ9710128公开日1997年12月10日申请日期1997年2月2日优先权日1996年2月2日发明者江成正彦申请人:索尼公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1