使用双上下文存储的密码学算法协处理器及数据流处理方法
技术领域
本发明涉及集成电路信息处理技术领域,尤其涉及一种使用双上下文存储的密码学算法协处理器及数据流处理方法。
背景技术
随着信息安全日趋重要,密码学算法和安全方案也在蓬勃发展。专用于密码学运算的协处理器可以提供硬件加速和安全性,在嵌入式系统中被广泛应用。
在实际应用中,常出现以下三种情况:
1、单数据流、级连处理。一个输入数据流被一个操作处理后,其结果马上作为另一个操作的输入,依次类推。比如,对一个DES加密的数据流解密后再用AES加密。
2、单数据流、并行处理。一个输入数据流同时被两个以上的操作处理。比如,对一个AES加密的数据解密的同时计算该数据流的MD5信息摘要。
3、多数据流、多种处理。存在许多短数据流被不同操作处理的情形。比如微软DRM中就存在连续的短数据流的处理,或者同一个数据流会有阶段性不同的处理方式。
对于第1和第2种情况,通过软件调度可以实现功能并减少系统带宽和功耗,对于第3种情况,软件调度同样能实现其功能。虽然如此,软件调度在不同任务的上下文切换时的开销降低了数据处理吞吐量,尤其在多数据流、多种处理的情况。
有鉴于此,有必要提供一种使用双上下文存储的密码学算法协处理器及数据流处理方法以解决上述问题。
发明内容
本发明的目的在于提供一种使用双上下文存储的密码学算法协处理器及数据流处理方法。
本发明的一种使用双上下文存储的密码学算法协处理器,所述协处理器包括:
上下文存储器,所述协处理器包括两个完全等价的上下文存储器;
密码学算法处理单元,用于执行密码学算法;
本地存储器,用于缓存输入、输出数据和中间结果。
作为本发明的进一步改进,所述两个上下文存储器由两个不同的ID标记。
作为本发明的进一步改进,所述协处理器还包括ID选择单元,用于当前上下文ID选择密码学算法处理单元要使用的上下文。
4、一种根据权利要求1所述的使用双上下文存储的密码学算法的数据流处理方法,其特征在于,所述方法包括以下步骤:
S11、读入两个任务的初始上下文,并使能第一个任务的上下文;
S12、读入一定数据到输入缓存中;
S13、第一个任务处理输入缓存中的数据,并将处理结果存入中间缓存;
S14、切换当前ID使能第二个任务的上下文;
S15、判断数据流是否结束,若是,执行步骤S16,若否,执行步骤S17;
S16、读入中间缓存数据,执行第二个任务,输出最终结果;
S17、读入中间缓存数据,执行第二个任务,输出最终结果,同时,读取一定的新数据到输入缓存中,然后切换当前ID使能第一个任务的上下文后继续执行步骤S13。
作为本发明的进一步改进,所述数据流处理为单数据流、级连处理。
相应地,一种使用双上下文存储的密码学算法的数据流处理方法,所述方法包括以下步骤:
S21、读入两个任务的初始上下文,并使能第一个任务的上下文;
S22、读入一定数据到输入缓存中;
S23、第一个任务处理输入缓存中的数据,并输出最终结果。;
S24、切换当前ID使能第二个任务的上下文;
S25、判断数据流是否结束,若是,执行步骤S26,若否,执行步骤S27;
S26、第二个任务处理输入缓存中的数据,并输出最终结果;
S27、第二个任务处理输入缓存中的数据,并输出最终结果,同时,读取一定新数据到输入缓存中,然后切换当前ID使能第一个任务的上下文后继续执行步骤S23。
作为本发明的进一步改进,所述数据流处理为单数据流、并行处理。
相应地,一种使用双上下文存储的密码学算法的数据流处理方法,所述方法包括以下步骤:
S31、读入第一个任务的初始上下文到当前使能上下文中;
S32、判断所有任务是否结束,若是,执行步骤S33,若否执行步骤S34;
S33、执行当前上下文所示任务并输出结果直到任务结束;
S34、执行当前上下文所示任务并输出结果直到任务结束,同时,读入下一个任务的上下文到未被使用的上下文中,然后切换当前ID以切换上下文后执行步骤S32。
作为本发明的进一步改进,所述步骤S34中“读入下一个任务的上下文到未被使用的上下文中”前还包括:输出未被使用的上下文。
作为本发明的进一步改进,所述数据流处理为多数据流、多种处理。
本发明的有益效果是:本发明在硬件内部存储两套上下文,两套上下文可以快速切换,因此可以快速的在两个任务之间切换;同时本发明支持对指定其中任一个上下文的存取,并且对该上下文的存取和对另一个上下文的使用可以同时发生,因此可以支持任意多的任务并消灭了上下文存取的时间开销,解决了软件进行多任务调度时的性能损失。
附图说明
图1为本发明一实施方式中使用双上下文存储的密码学算法协处理器的结构示意图。
图2为本发明一实施方式中使用双上下文存储的密码学算法的数据流处理方法流程图。
图3为本发明另一实施方式中使用双上下文存储的密码学算法的数据流处理方法流程图。
图4为本发明再一实施方式中使用双上下文存储的密码学算法的数据流处理方法流程图。
具体实施方式
以下将结合附图所示的各实施方式对本发明进行详细描述。但这些实施方式并不限制本发明,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变换均包含在本发明的保护范围内。
参图1所示为本发明一实施方式中使用双上下文存储的密码学算法协处理器100的结构示意图,其包括:
上下文存储器10、11,用于上下文的存取,两个上下文都可以被存入到外部存储器、或者从外部存储器读入。上下文存储器10和上下文存储器11为两个完全等价的上下文存储器。用两个上下文存储器仅为本发明一优选的实施方式,在其他实施方式中也可以设为两个以上的上下文存储器,同样可以达到本发明的效果;
密码学算法处理单元20,用于执行密码学算法;
本地存储器30,用于缓存输入、输出数据和中间结果。
进一步地,该存储器100还包括:
ID选择单元40,用于当前上下文ID选择密码学算法处理单元30要使用的上下文。所述上下文存储器10和上下文存储器11由两个不同的ID标记,ID选择单元40可以根据当前上下文ID选择密码学算法处理单元30要使用的上下文。
参图2所示,应用上述协处理器处理单数据流、级连处理的情况中,以两个任务为例,该数据流处理方法包括以下步骤:
S11、读入两个任务的初始上下文,并使能第一个任务的上下文;
S12、读入一定数据到输入缓存中;
S13、第一个任务处理输入缓存中的数据,并将处理结果存入中间缓存;
S14、切换当前ID使能第二个任务的上下文;
S15、判断数据流是否结束,若是,执行步骤S16,若否,执行步骤S17;
S16、读入中间缓存数据,执行第二个任务,输出最终结果;
S17、读入中间缓存数据,执行第二个任务,输出最终结果,同时,读取一定的新数据到输入缓存中,然后切换当前ID使能第一个任务的上下文后继续执行步骤S13。
参图3所示,应用上述协处理器处理单数据流、并行处理的情况中,以两个任务为例,该数据流处理方法包括以下步骤:
S21、读入两个任务的初始上下文,并使能第一个任务的上下文;
S22、读入一定数据到输入缓存中;
S23、第一个任务处理输入缓存中的数据,并输出最终结果。;
S24、切换当前ID使能第二个任务的上下文;
S25、判断数据流是否结束,若是,执行步骤S26,若否,执行步骤S27;
S26、第二个任务处理输入缓存中的数据,并输出最终结果;
S27、第二个任务处理输入缓存中的数据,并输出最终结果,同时,读取一定新数据到输入缓存中,然后切换当前ID使能第一个任务的上下文后继续执行步骤S23。
参图4所示,应用上述协处理器处理单数据流、级连处理的情况中,以两个任务为例,该数据流处理方法包括以下步骤:
S31、读入第一个任务的初始上下文到当前使能上下文中;
S32、判断所有任务是否结束,若是,执行步骤S33,若否执行步骤S34;
S33、执行当前上下文所示任务并输出结果直到任务结束;
S34、执行当前上下文所示任务并输出结果直到任务结束,同时,读入下一个任务的上下文到未被使用的上下文中,然后切换当前ID以切换上下文后执行步骤S32。其中,在“读入下一个任务的上下文到未被使用的上下文中”前还可包括:输出未被使用的上下文。
与现有技术相比,本发明在硬件内部存储两套上下文,两套上下文可以快速切换,因此可以快速的在两个任务之间切换;同时本发明支持对指定其中任一个上下文的存取,并且对该上下文的存取和对另一个上下文的使用可以同时发生,因此可以支持任意多的任务并消灭了上下文存取的时间开销,解决了软件进行多任务调度时的性能损失。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施方式或者实施方式的某些部分所述的方法。
以上所描述的装置实施方式仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施方式方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本申请可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。