首页 / 实时数据密码运算方法

实时数据密码运算方法无效专利 发明

技术领域

[0003] 本发明涉及数据加密/解密,特别是一种实时数据密码运算方法。

相关背景技术

[0004] 整合驱动电子装置(Integrated Drive Electronics,简称IDE)为用于计算机主板总线与磁盘储存装置之间的标准电子接口。已采用IDE当作美国国家标准协会(American National Standards Institute,简称ANSI)的标准,藉此关于IDE的ANSI设计为先进技术附件(Advacnced Technology Attachment,简称ATA)。IDE/ATA也称为计算机或主装置将数据转移到数据储存装置,或是从数据储存装置将数据传输到计算机或主装置的电子协议。IDE中所使用的数据传输方法有二种:程序化输入/输出(Programmed Input/Output,简称PIO)及直接内存存取(Direct Memory Access,简称DMA)。在PIO模式中,数据传输是通过主装置或处理器来激活及进行。在DMA模式中,数据传输是通过用于主装置与数据储存装置之间的交握的信号来控制。
[0005] 当私密的数据被存取于无法保证其可控制的储存媒体中时,数据加密及解密会产生保护数据免于未授权存取的机制。数据可通过将从主装置传送到数据储存装置时的数据加密,以及在主装置请求后,从数据储存装置撷取时的储存数据解密,而进行密码保护。
[0006] 在传统的数据传递(relay)方法中,数据是经由IDE桥接器,或串接于主机与数据储存装置之间的接口来传输。此种型式的数据传输传统上需要IDE接口来实施可支持用于数据缓冲/数据流控制的IDE接口的每侧的完整ATA协议的IDE控制器。在IDE/ATA数据传输的期间,IDE接口同时扮演了具有数据储存装置的虚拟主装置的角色,以及具有主装置的虚拟数据储存装置的角色。此数据传递方法的问题是IDE接口需要实施大数据缓冲器,来维持数据流控制。这样的大数据缓冲器是使用昂贵的静态随机存取内存(static random-access memory,简称SRAM)宏或类似组件,而通常会实施于IDE特定应用集成电路(application specific integrated circuit,简称ASIC)上,这会导致芯片的制造成本很高。

具体实施方式

[0024] 本发明的一些实施例是配合图1到9进行详细地说明的。本发明的额外实施例、特性及/或优点将会从具体的说明中变成更加清楚,或通过实施本发明而学习得知。
[0025] 图1是用于IDE/ATA数据传输的实时数据加密/解密系统8的概要方块图。实时数据加密/解密系统8包括密码接口10,工作时耦接于主装置16的IDE控制器12与数据储存装置18的IDE控制器14之间。密码接口10是用以在主装置16与数据储存装置18之间的IDE/ATA数据传输期间,进行如同透明不存在地实时数据加密/解密,而不会使整体数据传输效率产生不利的影响。
[0026] IDE控制器12支持标准完整-ATA协议,并且包括用于数据流控制的传统的大数据缓冲器20。IDE控制器14也支持标准完整-ATA协议,并且包括用于数据流控制的传统的大数据缓冲器22。一般而言,主装置16可为桌上型或笔记型计算机、微处理器、路由器、适配卡、或可产生数据的任何其它装置,而数据储存装置18可为磁盘驱动器、磁带机、软盘、光驱、磁性光驱、数字录像机、闪存卡、PCMCIA卡、或用于撷取为目的的可储存数据的任何其它装置。
[0027] 在本发明的一实施例中,密码接口10将撷取主装置16与数据储存装置18之间的IDE/ATA数据传输,以及经由密码(cipher)引擎24(其工作时耦接于小输入数据缓冲器26与小输出数据缓冲器28之间,如图1中的一般性显示)的如同透明不存在地加密/解密数据。在主装置16与数据储存装置18之间的IDE/ATA数据传输期间,密码接口10的密码引擎24会使用各种已知的密码算法(如数据加密标准(Data Encryption Standard,简称DES)、三重DES(Triple DES,简称TDES)、或先进加密标准(Advanced Encryption Standard,简称AES)),来加密/解密许多标准管线阶层(Pipeline Stages)中的数据。密码引擎及/或密码算法的其它型式也可用来实施本发明。
[0028] 在本发明的另一实施例中,当数据正于主装置16与数据储存装置18之间传输时,密码接口10将IDE/ATA数据流控制信号从主装置16,经由主装置侧的IDE控制器30,以及数据储存装置侧的IDE控制器32而直接传递/传送至数据储存装置18,而且反的亦然。IDE控制器30,32中的每一个是用以支持部分ATA协议,如图1中的一般性绘示。如图1中的一般性显示,密码接口10是通过撷取经由主装置侧的IDE控制器30的主IDE/ATA数据流控制信号,以及重新产生经由数据储存装置侧的IDE控制器32的用于数据储存装置18的这些控制信号,而将IDE/ATA数据流控制信号从主装置16传送到数据储存装置18。
[0029] 同样地,密码接口10是通过撷取经由数据储存装置侧的IDE控制器32的数据储存装置的IDE/ATA数据流控制信号,以及重新产生经由主装置侧的IDE控制器30的这些控制信号,而将IDE/ATA数据流控制信号从数据储存装置18传送到主装置16。在主装置16与数据储存装置18之间的IDE/ATA数据传输期间,结合密码引擎24的IDE控制器30,32中的部分ATA协议的达成使密码接口10能实时的将数据进行显明的加密/解密。密码接口10是被组构成与主装置16和数据储存装置18一样快的速度,来处理数据,以至于不会损害整体的数据传输效能。
[0030] 在本发明的又另一实施例中,若数据未于主装置16与数据储存装置18之间传输时,密码接口10使从主装置16至数据储存装置18的IDE/ATA数据流控制信号的延迟传送,而且反之亦然,如在此于底下配合图7的步骤148及152所做的一般性说明。
[0031] 从IDE控制器12、14的功能观点来看,IDE/ATA数据传输直接在主装置16与数据储存装置18之间进行,而不会有任何的密码接口10介入。因此,密码接口10不需包含如大数据缓冲器及完整ATA协议支持的传统的数据缓冲/数据流控制能力,如传统上于此技术中所实施的。此外,不需要将主装置与数据储存装置之间的IDE/ATA数据传输分成二个独立的数据传输,如在主装置16与密码接口10之间,以及在密码接口10与数据储存装置18之间。IDE控制器12,14中的每一个是负责处理IDE/ATA数据传输期间的数据缓冲/数据流控制。密码接口10一般是用来当作“传送者”,或在IDE/ATA数据传输期间,当作主装置16与数据储存装置18之间的与IDE/ATA兼容的数据流动控制信号传送桥接器。密码接口10的IDE控制器30,32只需要将用以进行密码数据处理所需的那些ATA命令解译即可。
[0032] 如图1中的进一步绘示,主装置16可经由密码接口10(其会经由小输入数据缓冲器26、密码引擎24、以及小输出数据缓冲器28而实时的将进来的数据进行如同透明不存在地加密)将数据储存于数据储存装置18中。主装置16可经由密码接口10(其会经由小输入数据缓冲器26、密码引擎24、以及小输出数据缓冲器28而实时的将相同数据进行如同透明不存在地解密),而从数据储存装置18中读取储存的加密数据。
[0033] 在本发明的另一实施例中,密码接口10是实施为特定应用集成电路(application specific integrated circuit,简称ASIC)。小输入数据缓冲器26及小输出数据缓冲器28(其用来保持密码引擎24的管线阶层(Pipeline Stages)的数据)是使用栓锁器或缓存器来实施。此种实施方式可避免使用昂贵的静态随机存取内存(static random access memory,简称SRAM)宏或类似组件。密码接口10的其它实施方式可使用如符合本发明的意含的精神及范围的其它的实施方式。
[0034] 图2是高速直接内存存取(UDMA)/多重字组DMA(Multi-word DMA),(以下分别称为(UDMA)及(Multi-word DMA)),其数据输出传输的概图。UDMA为传输硬盘机,经由计算机总线至计算机的随机存取内存(RAM)之间的数据的协议。UDMA协议在ATA数据传输期间,是以爆发模式(burst mode)来传输数据,并且会使用循环冗余检查(CRC)来保护数据。数据爆发模式(Data burst mode)包括数据爆发初始(Data burst Initialization)、数据爆发暂停(Data burst Pausing)、以及数据爆发停止(Data burst Termination)程序。在一例中,UDMA/Multi-word DMA数据输出传输可定义为从主装置16至数据储存装置18的UDMA/Multi-word DMA数据传输。在另一例中,UDMA/Multi-word DMA数据输出传输可定义为从数据储存装置18至主装置16的UDMA/Multi-word DMA数据传输。
[0035] 在数据爆发初始程序开始之前,密码接口10会读取如数据传输模式、数据传输大小、以及类似事物的必要IDE/ATA数据传输参数,用以根据这些参数,来准备主装置16与数据储存装置18之间的UDMA/Multi-word DMA数据传输,如图2的步骤50中的概要显示。
[0036] 在UDMA/Multi-word DMA数据输出传输(其包含许多数据爆发)开始时,密码接口10先与主装置16,来进行爆发初始程序,而激活数据传输,并且引导进来的数据,经由小输入缓冲器26(显示于图1中)而送到密码引擎24(显示于图1中)。在进来的数据进行加密,并且传输到小输出数据缓冲器28(显示于图1中)的后,密码接口10再与数据储存装置18,来进行爆发初始程序,并且将加密的数据传送至数据储存装置18,如图2的步骤52中的概要显示。
[0037] 在数据爆发的传送期间,若主装置16或数据储存装置18由于数据流控制问题,而需使数据传输暂停,则密码接口10会立即传送主装置16与数据储存装置18之间的对应的数据传输暂停命令/响应信号,而能使数据传输产生暂停,如图2的步骤58中的概要显示。因此,在UDMA/Multi-word DMA数据输出传输的期间,密码接口10完全不会影响数据流控制。反而,密码接口10会分别经由IDE控制器30(显示于图1中)及密码引擎24(显示于图1中),而如同透明不存在地介入传送数据流控制信号及进行数据加密。
[0038] 如图2的步骤54中的概要显示,若主装置16或数据储存装置18需使传送中的数据爆发停止,则密码接口10会立即传送主装置16与数据储存装置18之间的对应的数据传输停止命令/响应信号,而能使数据传输停止。
[0039] 在爆发停止程序的期间,IDE控制器12(显示于图1中)会将来自于明文(plain text)数据中所计算的CRC值,传送到IDE控制器30(显示于图1中),用以在每次数据爆发结束时(at the end of each data burst)进行错误检查。密码接口10的IDE控制器32(显示于图1中)会将来自于密文(cipher text)数据中所计算的CRC值,传送到数据储存装置18,用以在每次数据爆发结束时进行错误检查。若传送的密文的CRC值错误,则在数据传输停止的后,数据储存装置18会通过CRC错误状态位,而将问题回报给主装置16,而不会由密码接口10采取额外的动作。
[0040] 若传送的明文的CRC值错误,则密码接口10会将CRC错误传送到数据储存装置18,以通过在最后一个数据爆发停止程序的期间,将预定的错误CRC值传送到数据储存装置18,而告知数据储存装置18CRC错误。最后一个数据爆发停止程序是一般显示为图2中的步骤60。
[0041] 如图2的步骤62中的概要显示,当数据传输已完成时,数据储存装置18会传送对应的ATA信息至主装置16,以告知主装置16数据传输已完成。
[0042] 图3是UDMA/Multi-word DMA数据输入传输的概图。在一例中,UDMA/Multi-word DMA数据输入传输可定义为从数据储存装置18至主装置16的UDMA/Multi-word DMA数据传输。在另一例中,UDMA/Multi-word DMA数据输入传输可定义为从主装置16至数据储存装置18的UDMA/Multi-word DMA数据传输。
[0043] 如步骤70中的概要显示,密码接口10会撷取如数据传输模式、数据传输大小、以及类似事物的必要IDE/ATA数据传输参数,用以根据这些参数,来准备数据储存装置18与主装置16之间的UDMA/Multi-word DMA数据传输。密码接口10是以数据储存装置18,来进行爆发初始程序,而激活数据传输,并且引导加密数据,经由小输入缓冲器26(显示于图1中)而送到密码引擎24(显示于图1中),以进行解密。在进来的数据进行解密,并且传输到小输出数据缓冲器28(显示于图1中)的后,密码接口10是以主装置16,来进行爆发初始程序,并且将解密的数据传送至主装置16,如图3的步骤72中的概要显示。
[0044] 在数据爆发的传送期间,若数据储存装置18或主装置16由于数据流控制问题,而需使数据传输暂停,则密码接口10会立即传送数据储存装置18与主装置16之间的对应的数据传输暂停命令/响应信号,而能使数据传输产生暂停,如图3的步骤78中的概要显示。因此,在UDMA/Multi-word DMA数据输入传输的期间,密码接口10完全不会影响数据流控制。反而,密码接口10会分别经由IDE控制器32(显示于图1中)及密码引擎24,而在UDMA/Multi-word DMA数据输入传输的期间,如同透明不存在地介入传送数据流控制信号及进行数据解密。
[0045] 若数据储存装置18或主装置16需使传送中的数据爆发停止,则密码接口10会立即传送数据储存装置18与主装置16之间的对应的数据传输停止命令/响应信号,而能使数据传输停止,如图3的步骤74中的概要显示。
[0046] 在步骤80中,密码接口10先与数据储存装置18来进行最后一个爆发停止程序。密码引擎24会将最后剩下的数据解密,并且将最后剩下的数据传送到小输出数据缓冲器
28。密码接口10是以主装置16来进行爆发停止程序。若CRC错误发生于数据传输的数据储存装置侧,则因为在数据转移停止的后,数据储存装置18会立即通过CRC错误状态位,而将此错误回报给主装置16,所以密码接口10不会采取特别动作。
[0047] 若CRC错误发生于数据传输的主装置侧,则因为数据储存装置侧的数据传输已停止,所以密码接口10不会将此错误传送到数据储存装置18。如步骤82中的概要显示,为了解决此问题,密码接口10会通过将CRC错误状态位致能为“真”,来修改ATA信息,以告知主装置16,已由数据储存装置18已经侦测到CRC错误,藉此主装置16可采取正确的动作,如重新传送数据。
[0048] 图4是从主装置16至数据储存装置18的PIO数据输出传输的概图。在PIO模式中,数据传输是通过主装置(如微处理器)来激活及进行。数据流控制包括读取及写入数据触发(read/write data strobe),其是通过主中央处理单元(CPU)或主ATA适配卡而发送到数据储存装置。在一例中,PIO数据输出传输可定义为从主装置16至数据储存装置18的PIO数据传输。在另一例中,PIO数据输出传输可定义为从数据储存装置18至主装置16的PIO数据传输。
[0049] 开始时,密码接口10会撷取如数据传输模式、数据传输大小、以及类似事物的必要IDE/ATA数据传输参数,用以根据这些参数,来准备主装置16与数据储存装置18之间的PIO数据输出传输,如图4的步骤100中的概要显示。主装置16会产生写入触发,而将数据传送到密码接口10。密码接口10会引导送进来的数据,经由小输入数据缓冲器26(显示于图1中),而送到密码引擎24(显示于图1中),以进行加密。密码接口10的IDE控制器30(显示于图1中)经由IDE控制器32(显示于图1中)而传送到数据储存装置18的IDE控制器14(显示于图1中)的这些写入触发的延迟传送,直到送进来的数据已加密,并且准备好传送到数据储存装置18,如图4的步骤102中的一般显示。
[0050] 如图4的步骤104中的一般绘示,当加密数据准备好传送到数据储存装置18时,在数据传输的其余持续期间,密码接口10的IDE控制器30(显示于图1中)会将写入触发直接传送至数据储存装置18的IDE控制器14(显示于图1中)。在完成主装置16侧的数据传输的后,密码接口10会立即产生写入触发,用以完成数据储存装置18侧的数据传输,如图4的步骤106中的一般显示。
[0051] 图5是从数据储存装置18至主装置16的PIO数据输入传输的概图。在一例中,PIO数据输入传输可定义为从数据储存装置18至主装置16的PIO数据传输。在另一例中,PIO数据输入传输可定义为从主装置16至数据储存装置18的PIO数据传输。
[0052] 开始时,密码接口10会撷取如数据传输模式、数据传输大小、以及类似事物的必要IDE/ATA数据传输参数,用以根据这些参数,来准备数据储存装置18与主装置16之间的PIO数据输入传输,如图5的步骤110中的一般显示。密码接口10会产生用于IDE控制器32(显示于图1中)的读取触发,而开始从数据储存装置18中撷取数据。数据储存装置18是通过将加密数据经由小输入数据缓冲器26(显示于图1中),而传送到密码接口10的密码引擎24,以进行解密来响应。密码接口10会持续产生读取触发,如图5的步骤112中的一般绘示,直到解密数据准备好经由小输出数据缓冲器28(显示于图1中),而传送到主装置16。
[0053] 如图5的步骤114中的一般显示,主装置16会产生读取触发,以撷取来自于密码接口10的解密数据。在数据传输的其余持续期间,主装置所产生的读取触发会经由IDE控制器30(显示于图1中)、IDE控制器32及IDE控制器14(显示于图1中),而直接传送到数据储存装置18。
[0054] 如图5的步骤116中的一般绘示,在完成数据储存装置侧的数据传输的后,密码接口10的IDE控制器30会停止传送主装置侧所产生的读取触发,而主装置16会持续从密码接口10中,读取其余送进来的解密数据。
[0055] PIO数据输入及数据输出传输于密码接口10的二侧的数据的总体速率实质上是相同的,藉此可避免由于密码接口10的每侧的触发周期的问题,以解决传统上需要密码接口10的数据流控制支持的问题。
[0056] PIO数据传输的开始及最终部分不会遇到数据流控制问题,即使在数据传输的这些相当短的部分,未传送数据触发。原因的一是因为这些数据传输部分是相当短的。另一种原因是因为主装置16与密码接口10之间的独自数据传输不需要数据流控制。密码接口10与数据储存装置18之间的独自数据传输也不需要数据流控制。一般而言,当密码接口
10的二侧所传输的数据数量有问题时,会需要密码接口10的数据流控制,但是因为这些相当短的开始/最终数据传输部分只会发生于主装置侧或数据储存装置侧,所以通常不需要密码接口10的数据流控制。
[0057] 图6是一般地显示图1的实时数据加密/解密系统8的一实施例。特别而言,在侦测出小输出数据缓冲器28已满后,密码接口10的密码引擎24立即停止数据加密/解密。特别而言,所有管线密码阶层(Pipeline ciphering stages)会立即停止数据处理,而不会再接受来自于小输入数据缓冲器26的数据。存在于密码管线(Ciphering stages)中的任何数据不会再传送到后面的阶层。整个密码运作会出现“冻结”,直到密码引擎24侦测到小输出数据缓冲器28不再是满的。此时,密码引擎24会恢复数据处理,并且每个密码管线阶层(Pipeline ciphering stages)会从先前停止处继续运作。本领域熟练技术人员将了解到,此密码组成可简化电路,且因此可简化数据处理,以及降低制造成本。
[0058] 图7是一般地绘示在IDE/ATA数据传输的期间,用于实时数据加密/解密的方法的流程图。在图7的步骤140中,ATA信息是经由密码接口10(显示于图1中),而在主装置16与数据储存装置18之间进行交换。密码接口10会撷取必要的ATA参数、接收送进来的数据、处理数据、以及将处理过的数据分别传送至数据储存装置18,或主装置16。在一例中,数据处理可称为数据加密,在另一例中,数据处理可称为数据解密。
[0059] 在步骤142中,密码接口10会分别从主装置16或数据储存装置18中,接收数据流控制信号。在步骤144中,密码接口10判断所有数据是否已进行处理。若所有数据已进行处理,则主装置16会经由IDE控制器12(显示于图1中)、IDE控制器30(显示于图1中)、以及IDE控制器32(显示于图1中),来检查或读取数据储存装置18的状态(如图7的步骤146中的一般显示),并且会使数据传输停止。若所有数据尚未进行处理,则密码接口10判断数据是否正于主装置16与数据储存装置18之间传输,如图7的步骤148中的一般显示。
[0060] 在步骤150中,若数据正在传输,则密码接口10立即将接收到的数据流控制信号,从主装置16传送至数据储存装置18,或反之亦然。在步骤152中,若数据未传输,则密码接口10接收到的数据流控制信号的传送及重新产生延迟。实时数据加密/解密周期会持续下去,如方向箭号154的一般显示。
[0061] 图8是一般地绘示在UDMA/Multi-word DMA数据传输的期间,用于实时数据加密/解密的方法的流程图。在步骤160中,ATA信息是经由密码接口10,而在主装置16与数据储存装置18之间进行交换。密码接口10会撷取必要的ATA参数、以主装置16(显示于图1中)及数据储存装置18(显示于图1中)来激活数据爆发、接收送进来的数据、处理数据、以及将处理过的数据分别传送至数据储存装置18,或主装置16。在第一例中,数据处理可称为数据加密,在另一例中,数据处理可称为数据解密。
[0062] 在步骤162中,密码接口10会分别从主装置16或数据储存装置18中,接收数据流控制信号。在步骤164中,密码接口10判断是否已分别从主装置16或数据储存装置18中,接收到停止控制信号。若已接收到停止控制信号,则密码接口10判断数据传输是否已结束,如步骤168中的一般显示。若数据传输已结束,密码接口10会分别以主装置16或数据储存装置18,来进行数据爆发停止程序,如步骤170中的一般显示。
[0063] 在步骤172中,在UDMA/Multi-word DMA数据输出传输的情况中,密码接口10将ATA信息从数据储存装置18传送至主装置16,并且会使数据传输停止。在UDMA/Multi-word DMA数据输入传输的情况中,密码接口10将修改的ATA信息从数据储存装置18传送至主装置16,并且会使数据传输停止。
[0064] 若尚未接收到停止控制信号,则密码接口10立即将接收到的数据流控制信号,分别从主装置16传送至数据储存装置18,或从数据储存装置18传送至主装置16,如图8的步骤168中的一般显示。同样地,若数据传输尚未结束,则密码接口10立即将接收到的数据流控制信号,分别从主装置16传送至数据储存装置18,或从数据储存装置18传送至主装置16,如图8的步骤168中的一般显示。实时数据加密/解密周期会持续下去,如方向箭号174的一般显示。
[0065] 图9是一般地绘示在PIO数据传输的期间,用于实时数据加密/解密的方法的流程图。在步骤180中,ATA信息是经由密码接口10(显示于图1中),而在主装置16(显示于图1中)与数据储存装置18(显示于图1中)之间进行交换。密码接口10会撷取必要的ATA参数。
[0066] 在步骤182中,密码接口10会接收送进来的初始数据,并且处理初始数据。在PIO数据输出传输的情况中,密码接口10使主装置所产生的写入触发的延迟传送。在PIO数据输入传输的情况中,密码接口10产生读取触发。
[0067] 在步骤184中,密码接口10会接收送进来的数据,并且处理送进来的数据。再者,在PIO数据输出传输的情况中,密码接口10将主装置所产生的写入触发从主装置16传送到数据储存装置18。在PIO数据输入传输的情况中,密码接口10将主装置所产生的读取触发从主装置16传送到数据储存装置18。
[0068] 在步骤186中,密码接口10判断数据传输是否已结束。若数据传输尚未结束,则实时数据加密/解密周期会持续,如方向箭号190的一般显示。若数据传输已结束,则在PIO数据输出传输的情况中,密码接口10产生写入触发,如步骤188中的一般显示,并且会将相同的事情附加于储存装置侧的数据传输,如以上在此配合图4的步骤106所述,并且会使数据传输程序停止。如图9的步骤188中的进一步的显示,在PIO数据输入传输的情况中,密码接口10不会传送主装置所产生的读取触发,并且会使数据传输程序停止。
[0069] 虽然本发明已在各种特定实施例方面进行说明,但是本领域熟练技术人员将了解到,在权利要求的精神及范围内,可进行修改,来实施本发明。此外,如一实施例的部分所显示或说明的特性可用于另一实施例中,而产生又另一实施例,以致于特性不受限于上述的特定实施例。因此,意含的是,只要这样的实施例及变化位于后附的权利要求及其等效的范围内,则本发明可涵盖所有这样的实施例及变化。

当前第1页 第1页 第2页 第3页
相关技术
密码运算相关技术
数据密码相关技术
万述宁发明人的其他相关专利技术