利用改进的差分变迁编码 进行总线加密的方法和系统 【技术领域】
本发明一般地涉及一种总线数据传输系统,更具体地说,本发明涉及一种对差分方式变迁编码(Transitional Coding)采用数据加密的方法和设备。
背景技术
当今,微芯片中可用电路密度和速度的显著提高反过来要求相应地提高片上操作能力和性能。然而,这种提高使得它们本身开始产生某些其他问题,例如,传统数据总线技术的性能。越来越难以提供非常高的片下(off chip)输入带宽和输出带宽(即,数据传输到微芯片上,或者将数据传输到微芯片之外),因为它们需要有效利用这种显著提高的片上操作能力。
这种困境的一种解决方案是采用更宽的总线数据通路。然而,这种方法要求增加总线数据驱动器电路的数量,对芯片设计师产生了其他问题。根据给定总线周期内传输的数据模式与在前总线周期内传输的数据模式如何不同,可以要求在所有数据总线驱动器与非数据总线驱动器之间的任意位置改变其各数据总线导线的电压电平。由于每条数据总线导线可以具有显著负载电容,所以,可能存在显著的对总峰值驱动器电流需要(如果所有驱动器试图同时、迅速改变其总线导线的电压电平),以及这种驱动器电流需要从一个总线周期到下一个总线周期的显著变化(例如,如果在一个周期内进行所有转换,而在下一个周期内不进行转换)。愈来愈难以对大量的这种驱动器电路提供足够的功率分配,因为片上电源的电感和电阻以及馈送它们地接地网产生显著的动态总线数据相关电压漂移。因此,这些经常作为噪声耦合到芯片上的其他电路中。
该问题的一种解决方法是采用驱动器电路,该驱动器电路被设计用于限制转换速率,即,限制它们多么快速改变其相关数据总线导线负载的电压。另一种解决方法是,“交错”运行驱动器电路,因此,它们不是在同一瞬间全部试图改变其相关数据总线导线。这两种方法均有效,但是,代价是总线周期时间变长,而且数据传输速率变低。
另一种方法是差分传输,在差分传输中,对每个数据总线位线采用两条导线。然后,恒流流入一个驱动器电路通路或另一个驱动器电路通路以产生差分信号。这样驱动器通常会在片上导致低的接地网和供电网瞬态变化,同时在接收器芯片上具有改进的噪声抗扰性,因为只有两个数据总线位线电压电平之间的差值对于差分接收器重要。这样反过来使得可以在总线导线上使用低电压信号电平摆动,而低电压信号电平摆动降低了给定电容性总线负载的片上驱动器电流需要。还可以降低数据总线导线内的耦合噪声,它是发射的电磁辐射。为了将这种技术与单端型总线区别开,通常,将这种技术称为LVDS(低压差分信号电平),单端型总线的一条导线用于发送每个数据位,其所采用的电压电平通常与逻辑电路使用的电压电平相同。
通常,在芯片内进行总线连接时采用后一种技术,而且根据要求的速度以及数据总线导线呈现的距离/负载电容,在芯片之间进行传输时采用单端方法或者LVDS方法。
第6,304,933号美国专利对单端技术进行了进一步改进,将这种技术称为“变迁编码”。在本发明中,通过激活或者停用4条总线导线之一发送数据,4条总线导线之一的每个变迁(transition)表示唯一的2位二进制值。与传统单端方法相比,结果是驱动器电流需要的变化减小,因为如果用作传统单端数据总线的一部分,与通过同样的4条导线从0到4的并行导线的任何位置变迁相比,这两个连续的单导线变迁始终要求发送4位信息。此外,该变迁自供时钟,并因此可以更快,特别是在片上环境下。
然而,即使在采用LVDS技术时,提供足够数据传输速率要求的逐渐增宽的总线数据通路所需的驱动器电路的数量仍存在严重的片上同时转接问题。总线系统的设计必须能够在每个总线周期将反数据模式转移为前数据模式。因此,对于每个周期,所有数据线均可以或者均不可以被变迁,而且可以以与其相邻数据线相反的方向,差分驱动其中的一些数据线,从而提高信号线间的有效负载电容。
因为这种变迁引起的转接总线导线数量的变化通常会对接收编码数据产生不利条件,其原因如下:导线之间的交叉耦合、地电源电压的变化、噪声尖峰、电磁辐射等。
然而,在通过采用差分传输的数据总线发送信息时,仍存在安全问题。例如,某些主机-客户机系统采用“按每次使用计费”商业模式,在这种商业模式中,以成本价甚或亏本出售客户机硬件,收益和利润的来源是对请求将应用程序、娱乐以及其他内容从主机下载到客户机收取的费用。
主机服务器可以相当安全,因为它们可以处于受控物理环境下。然而,存在暴露从主机服务器发送到客户机的有价值输出内容的两种不同问题。因此,最好具有限制访问有价值数据的功能。
一个安全问题是,非授权第三方截取合法提供的内容流。如果该内容是通过公用宽带因特网连接传送的,这尤其成为问题。
另一个安全问题是,在极大量的注册客户机系统之外,还可能有某些人,他们表面诚实,但是他们下载内容并对该内容支付费用的明确目的可能是为了在别处非授权使用而拷贝该内容。特别是,如果进行这种非法复制获得的财务方面的报酬显著,这种用户还可能准备故意修改其客户机硬件,以规避为了防止这种行为而设计的内容加密、解密或保护措施。
作为回应,某些客户机系统采用加密/解密软件来阻止客户机系统和非授权第三方进行可能的非法复制。如果危及其保密功能,则可以更新或者固定软件,而且除此之外,还可以运行更复杂的加密/解密算法。
然而,如果传统加密/解密软件运行在通过可以被监测的、诸如差分变迁总线的总线连接到处理器的存储器上,则该传统加密/解密软件提供的保护可能被旁路。如果监测通过该总线上传送的信号,则可以读取加密数据和非加密数据。因此,数据不安全,因为可以访问非加密形式的该数据。
因此,需要一种用于对通过差分变迁数据总线传送的数据进行加密、克服传统系统的局限性的方法和设备。
【发明内容】
本发明提供了一种对使用差分总线进行加密的方法和系统。该方法包括对具有变迁编码的总线以及用于映射的编码器和解密器进行动态加密的步骤。该方法包括建立总线周期的步骤。该方法进一步包括在后面的总线周期动态改变和伪随机地改变映射函数的步骤。
【附图说明】
为了更全面理解本发明及其优点,现在,请结合附图参考以下所做的详细说明,附图包括:
图1示出适于采用加密差分方式变迁编码的总线系统的原理图;
图2示出采用多映射电路对利用变迁差分编码方法传送的逻辑状态电平进行解密的接收器的系统级原理图;以及
图3示出利用差分变迁编码方法进行加密和解密的方法的流程图。
【具体实施方式】
为了透彻理解本发明,在以下的讨论中,将对许多具体细节进行说明。然而,本技术领域内的熟练技术人员明白,没有这些具体细节,也可以实现本发明。为了不因为不必要的细节影响理解本发明,在其他例子中,以原理图或方框图的方式示出众所周知的部件。此外,通常省略说明关于网络通信、电磁信令技术等的细节内容,因为这些细节内容对于全面理解本发明并非必要,而且可以认为相关技术领域内的普通技术人员了解这些细节内容。
还请注意,除非另有说明,可以以硬件或软件的方式,或者微处理器执行固件,或者以它们的某种组合方式实现在此描述的所有功能。在一个实施例中,采用为了实现这些功能被编码的专用集成逻辑电路。在其他实施例中,除非另有说明,根据诸如计算机程序代码的代码、软件,和/或被编码执行这些功能的集成电路,利用诸如计算机或电子数据处理器的处理器实现各功能。
参考图1,参考编号100通常表示采用数据总线加密的差分总线系统。系统100适于接收输入到数据总线发送器110的“数据输入”。数据总线发送器110包括加密逻辑120、差分变迁发送器逻辑125,以及差分变迁发送器驱动器电路127。
通常,数据总线发送器110的加密逻辑120利用电路将“数据输入”中的2位或者更多位二进制分组动态映射到相应的加密逻辑状态“A”、“B”、“C”或“D”。从可能的“数据输入”值(即“00”、“01”、“10”和“11”)到相应的加密逻辑状态“A”、“B”、“C”或“D”的映射通常因总线传输(transfer)周期而各不相同。
例如,在第一总线传输周期,“数据输入”值“01”映射为加密逻辑状态“A”。然而,在第二总线传输周期,“数据输入”值“01”映射为加密逻辑状态“D”。总之,因为4条总线导线一组,所以对于采用4条总线导线的总线导线组,总共有24个单独映射配置方案。
通常,加密逻辑映射电路120动态使用伪随机数发生器的输出确定给定逻辑状态“A”、“B”、“C”或“D”值的特定映射,对于给定总线传输周期,给定逻辑状态“A”、“B”、“C”或“D”值将被动态赋予2位“00”、“01”、“10”或“11”。本技术领域内的熟练技术人员明白,伪随机数发生器利用算术方法和/或逻辑方法产生数字或数字串。实际上,所产生的数据不真是随机的,但是为了实际应用而模拟随机性,该数字串却要足够长而且不重复。
在系统100中,加密逻辑120利用伪随机数将“数据输入”2位二进制分组映射到特定映射配置。换句话说,对于给定总线传输周期,伪随机数确定24个“数据输入”组合中哪个“数据输入”组合与其各逻辑状态电平相关。
例如,在第一总线传输周期,“数据输入”值“00”映射到状态“C”,“数据输入”值“01”映射到状态“A”,“数据输入”值“10”映射到状态“D”,以及“数据输入”值“11”映射到状态“B”。在下一个总线传输周期,“数据输入”值“00”映射到状态“B”,“数据输入”值“01”映射到状态“D”,“数据输入”值“10”映射到状态“C”,以及“数据输入”值“11”映射到状态“A”,等等。特定“数据输入”二进制分组值与特定逻辑状态的这些映射关系是加密逻辑120产生的伪随机数的函数。
然后,在发送器逻辑125中,得到的逻辑状态被变换为对应于先前总线导线组状态的差分变迁代码。此后,通过驱动器127该差分变迁代码断言的(asserted)和去断言的(de-asserted)总线导线实现必要变迁。驱动器127连接到总线导线组163和总线导线组165,并差分驱动这些总线组的各总线导线的电压。两个总线导线组163和165连接到数据总线接收器180。
通常,将总线导线划分为一个或者多个组,在另一个实施例中,将其划分为第一总线导线组163和第二总线导线组165。数据总线发送器110根据功能将每个总线导线组划分为两个定义集。第一集包括断言总线导线(即,具有“高”电压的总线导线),而第二集包括去断言总线导线(即,具有“低”电压的总线导线)。将每集定义为具有同样数量的断言单元和去断言单元,即,同样数量的“1”(断言集的数量)和“0”(去断言集的数量)。系统100采用的编码规则是,在总线导线组163和165中,应该始终存在一半断言总线导线和一半去断言总线导线。各种总线导线的可能变迁(transition),每集的一个变迁与特定逻辑状态“A”、“B”、“C”或“D”传送过程相关。
通常,图1所示的系统100执行总线传输周期。通常,总线传输周期包括差分总线系统100变迁并断言(即,使电压升高)事先去断言的总线导线集中的一个成员。总线传输周期进一步包括系统100去断言(即,使电压降低)事先断言的总线导线集的一个成员。这样,将逻辑状态“A”、“B”、“C”和“D”传送到数据总线接收器180。在另一个实施例中,总线导线组包括6条总线导线。在又一个实施例中,系统100包括多个组。
数据总线接收器180包括:差分变迁接收器电路190、差分变迁接收器逻辑195以及解密逻辑197。通常,接收器电路190接收一个组中的总线导线。接收器电路190将一个组中的各总线导线与另一个组中的各总线导线进行比较以确定比较总线导线电压,即,哪条总线导线的电压比其它总线导线的电压高。然后,将该信息送到接收器逻辑195。此后,接收器逻辑195确定总线导线组163的各集如何从先前总线传输周期开始变迁的。正如最初被驱动器127发送那样,从一种总线导线状态变为另一种总线导线状态产生逻辑输出状态“A”、“B”、“C”或“D”。然后,将逻辑状态“A”、“B”、“C”或“D”传送到解密逻辑197。
解密逻辑197还具有输入,或者推断出伪随机数序列,该伪随机数序列是加密逻辑120在给定总线传输周期将二进制数据映射到逻辑状态“A”、“B”、“C”或“D”使用的相应伪随机数的伪随机数序列。因此,解密逻辑197从任意给定总线导线组变迁的24个不同映射电路配置中选择正确映射电路。然后,解密逻辑197的映射电路的所选择的映射电路对选择逻辑状态进行解密。然后,将正确2位二进制分组,即,“00”、“01”、“10”和“11”作为“数据输出”输出。
根据本发明的另一个方面,系统100基本上并行使用多个总线导线组163、165。即,将多个独立的加密数据分组从数据总线发送器110大致并行、差分传送到数据总线接收器180。多个总线导线组163、165中至少两个成员对类似的“数据输入”值编码为不同逻辑状态值。
例如,在第一总线传输周期,总线导线组163将编码的“数据输入”数据分组“00”作为逻辑状态“C”差分传送,但是总线导线组165将编码的“数据输入”数据分组“00”作为逻辑状态“B”差分传送。在第二总线传输周期,总线导线组163将编码的“数据输入”数据分组“10”作为逻辑状态“C”差分传送,但是总线导线组165将编码的“数据输入”数据分组“11”作为逻辑状态“B”差分传送,等等。
通常,加密逻辑120和解密逻辑197使得非授权方更难以确定通过诸如差分变迁数据总线的数据总线传送的数据内容。因此,即使整个总线导线断言和去断言序列被非授权第三方所知,越来越难以从截取的总线业务中推断出可能的实际数据内容。对于有限数量的总线周期,如果编码器映射仅采用以随机方式或伪随机方式选择的、该序列中较短的一部分,会更加困难。
现在参考图2,图2更详细示出解密逻辑197。尽管仅详细示出、描述了解密逻辑197,但是类似的理解也适用于加密逻辑120。解密逻辑197包括伪随机数发生器210和映射电路220。发生器210连接到抽头(tap)与初始序列信号215。发生器210通过映射电路选择信号240在功能上连接到映射电路220。在一个实施例中,发生器210通过反馈信号230接收映射电路220的输出。
解密逻辑197从接收器逻辑195接收状态逻辑。解密逻辑197还通过信号线215接收用于诸如线性反馈移位寄存器的伪随机数发生器的“抽头”值。本技术领域内的熟练技术人员明白可以利用线性反馈移位寄存器产生伪随机数。在另一个实施例中,抽头值已经被嵌入发生器210内。
发生器210还接收密钥值(key value),也称为“初始填充”或“初始向量”,或者发生器210在其硬件或软件内编程该密钥值,该密钥值在与抽头值一起使用时,产生映射电路220使用的伪随机数。通常,对于每个总线传输周期,计算伪随机数并将它输入到映射电路220。
在从接收器逻辑195输入加密状态逻辑时,映射电路220利用该伪随机数确定应该采用哪个特定映射函数(function),并从而确定应该采用哪个映射电路解密该加密状态逻辑。对于每个总线传输周期,加密逻辑120和解密逻辑197计算同一个、或者逻辑相关的伪随机数。因此,可以利用加密逻辑120和解密逻辑197加密和解密同一个二进制数字分组,以从“数据输入”中提取该分组并置于“数据输出”中。
例如,如果在第一总线传输周期,加密逻辑120将“数据输入”数据分组“01”加密为逻辑状态“C”,则在解密逻辑197解密逻辑状态“C”时,它被解密为“数据输出”数据分组“01”。如果在第二总线传输周期,加密逻辑120将“数据输入”数据分组“10”加密为逻辑状态“A”,则在解密逻辑197解密逻辑状态“A”时,它仍被解密为“数据输出”数据分组“10”,等等。
根据本发明的另一个方面,还通过反馈信号230将被解密的“数据输出”数据分组输入到发生器210。“数据输出”二进制值可以用于改变初始向量、抽头值,或者它们二者。因此,加密逻辑120还利用“数据输入”数据分组值改变初始向量、抽头值,或者它们二者。因为解密逻辑197推断出的“数据输出”解密数据分组值(即,“00”、“01”等)还被加密逻辑120所知,所以解密逻辑197和加密逻辑120均可以以同样方式改变其初始向量和/或抽头值。因此,为了在给定总线传输周期对数据进行加密,而由加密逻辑120产生的伪随机数对应于为了在该总线传输周期,进行解密并从逻辑状态映射到“数据输出”二进制数据,由解密逻辑197产生的伪随机数。所产生的伪随机数本身包括数据的功能,从而提高了破坏加密的难度。
根据本发明的另一个方面,以被加密逻辑120和解密逻辑190所知的方式改变抽头值和/或初始向量值。这样可以确定地改变加密过程和解密过程本身,从而提高系统100的安全性。
现在参考图3,图3示出用于将作为“数据输入”的二进制数据分组加密并将作为“数据输出”的该二进制数据分组解密的方法300。根据方法300的另一个方面,通常,并行传送并接收对应于多个被编码、被加密的状态逻辑电平的标记大致同时发生,不对此做进一步说明。然而,本技术领域内的熟练技术人员明白,并行传送加密逻辑状态电平属于本发明范围。
在步骤305,建立总线传输周期。换句话说,系统100通常初始化总线传输周期。在步骤310,方法300从“数据输入”中接收二进制数据分组。步骤310也建立总线传输周期。在方法300中,这些分组的形式为“00”、“01”、“10”、“11”。然而,对于6线电线组,接收二进制数据分组“000”、“001”、“010”、“011”等。
在步骤320,在加密逻辑120内产生伪随机数。该伪随机数是由线性反馈移位寄存器产生的,但是其他伪随机数发生器也在本发明范围内。根据伪随机数和接收的二进制数据分组,对逻辑状态,即状态“A”、“B”、“C”或“D”进行加密。加密的逻辑状态与第一总线导线组163相关联。
在步骤330,发送器逻辑125确定要断言和去断言的总线导线。断言的和被断言的总线导线表示其相应加密逻辑状态电平。这些状态电平从一个总线传输周期到下一个总线传输周期发生变化,或者不发生变化。然而,即使在两个连续总线传输周期之间加密状态不发生变化,每次传送加密逻辑状态仍要断言和去断言不同的总线导线。
在步骤340,差分编码加密逻辑状态电平变迁,并将其从数据总线发送器110传送到数据总线接收器180。
在步骤350,数据总线接收器180的接收器电路190从数据总线接收器110差分接收被编码、被加密的逻辑状态电平变迁。在步骤350,然后,接收器电路190将总线导线组163的各导线的电压互相进行比较。然后,接收器逻辑195确定电压比较如何从一个总线传输周期到下一个总线传输周期发生变化。然后,对从先前总线周期到下一个总线周期的总线导线电压电平变迁之间的比较进行解释,之后将它们重新创建为加密状态逻辑电平“A”、“B”、“C”和“D”,并通过数据总线发送器180传送它们。
在步骤360,解密逻辑197产生与在步骤320产生的伪随机数相关的伪随机数。在步骤360产生的伪随机数使解密逻辑197能将加密状态逻辑电平“A”、“B”、“C”或“D”映射为解密2位二进制字符“00”、“01”,等等。在步骤380,将解密逻辑状态信息,即“00”、“01”等作为“数据输出”传送。在步骤385,方法300确定如果没有更多的数据要加密和差分传输,是否停止。如果没有更多的数据要加密和差分传输,则执行步骤390。如果有更多的数据要加密并差分传输,则方法300重新执行步骤310。
显然,本发明可以取多种形式,而且可以具有多种实施例。因此,在本发明的实质范围内,可以对上述内容做许多变化。尽管参考本发明的特定优选实施例对本发明进行了描述,但是应当注意,就其性质来说,所公开的实施例是说明性的,而非限制性的,并且可以设想对上述公开进行广泛变化、修改、改变以及替换,在某些例子中,可以采用本发明的一些特征,而不相应采用其他特征。可以认为,对于研究了对实施例所做的上述描述的、本技术领域内的熟练技术人员,许多这种变化和修改是显而易见和希望的。因此,广义地和以与本发明的范围一致的方式理解后附权利要求是适当的。