数字摘要的碰撞计算装置及碰撞计算方法与流程

文档序号:12825461阅读:519来源:国知局
数字摘要的碰撞计算装置及碰撞计算方法与流程

本发明属于信息安全和保密通讯领域,具体涉及一种数字摘要的碰撞计算装置及碰撞生成方法。



背景技术:

随着信息时代的到来,信息的安全问题变得越来越重要,通常情况下,可采用加密技术、访问控制技术、认证技术等,来保证信息的安全。sha1算法,即数字摘要算法,是目前广泛用于信息安全和保密通讯中的一种加密技术,用来保护信息的数据和签名的完整性,以防信息被篡改或泄露。

现有技术中,数字摘要算法基于pc平台、安全芯片和fpga平台来实现。基于pc平台的数字摘要算法,实现的效率取决于pc硬件性能和操作系统,如果需要提高数字摘要算法的运算速率,则需要耗费更多的硬件资源,例如,用在服务器和后台做正向的大数据量的数据摘要,1秒内单机运算速度可达10万次。基于安全芯片的数字摘要算法,虽然实现效率很高,但当单纯做sha1运算处理时,存在流片成本高和缺乏有效的高速数据通讯接口的问题。基于fpga平台,虽然可以实现多种加密算法,例如数字摘要算法,但fpga平台的算法计算大部分都集中在内部关键计算的优化上,从系统层面上无法实现整体的性能提升。

由此可见,在现有技术中,无论是数字摘要的生成速率,还是数字摘要碰撞的寻找速率,虽然在2005年前后数学理论上已将其运算量降至63次方以内,但在技术实现上依然存在运算瓶颈。



技术实现要素:

本发明实施例的目的是提供一种数字摘要的碰撞计算装置及碰撞计算方法,将高速通讯接口、中断控制流程、内部流水运算相结合,优化关键路径计算,以解决运算瓶颈,提高数字摘要的碰撞计算速率。

根据本发明的一个方面,提供了一种数字摘要的碰撞计算装置,所述装置包括:接口模块、预处理模块、流水控制模块、逻辑运算模块、比较模块;其中,

所述接口模块与预处理模块、逻辑运算模块、比较模块相连,同时与外部设备相连,用于外部设备向所述预处理模块输入种子数据、匹配参数,向所述比较模块输入第一数字摘要、比较参数,并用于对外部设备输出计算结果,及用于向所述预处理模块、逻辑控制模块、比较模块输入控制数据;

所述预处理模块还与流水控制模块、逻辑运算模块、比较模块相连,用于利用来自接口模块的种子数据计算初始值,并将所述初始值发送给逻辑运算模块;或用于根据来自比较模块的计算结果和所述匹配参数对所述初始值进行修正,并将修正后的修正值发送给逻辑运算模块;

所述逻辑运算模块还与比较模块相连,用于根据来自预处理模块的初始值或修正值生成第二数字摘要,并将所述第二数字摘要发送给比较模块;

所述比较模块还与流水控制模块相连,用于接收来自接口模块的第一数字摘要和比较参数、来自逻辑运算模块的第二数字摘要、来自流水控制模块的控制数据,并根据所述控制数据的调度对所述第一数字摘要和第二数字摘要进行比较,根据比较参数得出数字摘要碰撞解析结果;当所述计算结果命中碰撞目标时,将所述计算结果发送给接口模块;当所述计算结果未命中碰撞目标时,将所述计算结果发送给所述预处理模块;

所述流水控制模块为流水线结构,用于向所述预处理模块、逻辑运算模块、比较模块发送流水控制数据。

上述方案中,所述预处理模块进一步包括:淘汰算法子模块、存储子模块,所述淘汰算法子模块与所述设备存储子模块相连;其中,

所述淘汰算法子模块用于通过淘汰算法根据所述种子数据计算初始值,或通过淘汰算法根据所述解析结果和所述匹配参数对所述初始值进行修正,并将初始值或修正值发送给存储子模块;

所述存储子模块用于存将所述初始值或修正值,并将所述初始值或修正值发送给逻辑运算模块。

上述方案中,所述接口模块包括uart接口、usb2.0接口、pcie接口;其中,

所述uart接口通讯速率为115.2kbps,所述usb2.0接口通讯速率为双向160mbps,所述uart接口和usb2.0接口与外部设备相连,所述外部设备通过cpu对所述uart接口和usb2.0接口进行常规调度和设置,并同时与所述计算装置的寄存器对接;

所述pcie接口通讯速率为16gbps,与设备ddr3sdram的控制器对接,用于存储器寻址。

上述方案中,当所述pcie接口为主控端时,dma引擎进行传输数据并监控传输状态、管理数据传输进度,所述pcie接口主动将所述比较模块的匹配数据或计算结果发送给pc指定的虚拟内存空间。

上述方案中,所述流水控制模块包括:比较模块控制子模块、多级流水线控制子模块、寄存器控制子模块;其中,

所述多级流水线控制子模块用于将比较模块的比较过程分为每级相连的多级步骤,每级只完成数据处理的一个步骤,一个时钟周期完成一级数据处理,然后在下一时钟沿到来时再将处理后的数据传递给下一级;

所述寄存器控制子模块用于增加或减少中间寄存器的数量,使寄存器的数量与数据处理的步骤相适应;

所述比较模块控制子模块用于当比较模块的计算结果命中碰撞目标时,输出计算结果的明文到虚拟地址空间,并中断整个装置的工作。

上述方案中,所述逻辑运算模块包括:两个或两个以上算法处理核、不用处理进位方式的加法器;其中,

所述两个或两个以上的算法处理核,各个算法处理核之间相互独立且进行并行计算;

所述不用处理进位方式的加法器与所述算法处理核相连,且数理与所述算法处理核的数量相同,用于在每个算法处理核进行基本运算时,通过不处理进位的方式进行5个数的加法计算。

根据本发明的另一个方面,还提供了一种数字摘要的碰撞计算方法,所述方法包括如下步骤:

外部设备通过接口模块向预处理模块输入种子数据、匹配参数,向比较模块输入第一数字摘要、比较参数,并向所述预处理模块、逻辑控制模块、比较模块输入控制数据;

预处理模块利用来自接口模块的种子数据及流水控制模块的流水控制数据计算初始值,并将所述初始值发送给逻辑运算模块;或根据来自比较模块的解析结果和所述匹配参数对所述初始值进行修正,并将修正后的修正值发送给逻辑运算模块;

逻辑运算模块根据来自预处理模块的初始值或修正值生成第二数字摘要,并将所述第二数字摘要发送给比较模块;

比较模块接收来自接口模块的第一数字摘要和比较参数、来自逻辑运算模块的第二数字摘要、来自流水控制模块的控制数据,并根据所述控制数据的调度对所述第一数字摘要和第二数字摘要进行比较,根据比较参数得出数字摘要碰撞计算结果;当所述计算结果命中碰撞目标时,将所述计算结果发送给接口模块;当所述计算结果未命中碰撞目标时,将所述计算结果发送给所述预处理模块;

接口模块存储所接收到的计算结果,并将所述命中碰撞目标的计算发送给外部设备。

上述方案中,所述预处理模块利用来自接口模块的种子数据及流水控制模块的流水控制数据计算初始值,进一步为:通过淘汰算法根据所述种子数据计算初始值;

所述预处理模块根据来自比较模块的解析结果和所述匹配参数对所述初始值进行修正,进一步为:通过淘汰算法根据所述计算结果和所述匹配参数对所述初始值进行修正。

上述方案中,所述接口模块包括uart接口、usb2.0接口、pcie接口;其中,

所述uart接口通讯速率为115.2kbps,所述usb2.0接口通讯速率为双向160mbps,所述uart接口和usb2.0接口与外部设备相连,所述外部设备通过cpu对所述uart接口和usb2.0接口进行常规调度和设置,并同时与所述计算装置的寄存器对接;

所述pcie接口通讯速率为16gbps,与设备ddr3sdram的控制器对接,用于存储器寻址。

上述方案中,所述比较模块根据所述控制数据的调度对所述第一数字摘要和第二数字摘要进行比较,进一步包括:

多级流水线控制子模块将比较模块的比较过程分为每级相连的多级步骤,每级只完成数据处理的一个步骤,一个时钟周期完成一级数据处理,然后在下一时钟沿到来时再将处理后的数据传递给下一级;

寄存器控制子模块增加或减少中间寄存器的数量,使寄存器的数量与数据处理的步骤相适应;

当比较模块的解析结果命中碰撞目标时,比较模块控制子模块输出计算结果的明文到虚拟地址空间,并中断整个装置的工作。

上述方案中,所述逻辑运算模块根据来自预处理模块的初始值或修正值生成第二数字摘要,进一步包括:两个或两个以上的算法处理核,各个算法处理核之间相互独立且进行并行计算,进行基本运算时,通过不处理进位方式的加法器进行5个数的加法计算。由上述实施例可以看出,本发明的数字摘要碰撞计算装置,包括接口模块、预处理模块、流水控制模块、逻辑运算模块、比较模块,外部设备通过接口模块向预处理模块输入种子数据、匹配参数,预处理模块利用种子数据计算初始值,并将所述初始值发送给逻辑运算模块;逻辑运算模块根据初始值生成第二数字摘要,并将第二数字摘要发送给比较模块,同时,接口模块将外部设备的第一数字摘要也发送给比较模块,比较模块根据比较参数将第一数字摘要和第二数字摘要进行比较,得到计算结果,如果计算结果命中碰撞目标,则将所述计算结果输出至接口模块,直接输出给外部设备或缓存在接口模块的寄存器中;如果计算结果未能命中碰撞目标,则将计算结果发送给预处理模块,预处理模块根据接收的计算结果和来自接口模块的匹配参数对初始值进行修正,并将修正值发送给逻辑运算模块,此时,逻辑运算模块再次计算第二数字摘要并发送给比较模块,比较模块进行重复作业。本发明的数字摘要碰撞计算装置,通过流水控制模块对比较模块的流水作业进行控制,并通过与接口模块的结合,有效提高了pc等外部设备送入数据进行计算的速度,使用户通过普通pc将数据送入并进行高速的碰撞查找,同时,通过预处理模块集成了种子数据生成器,有效降低了计算复杂度;另外,本装置也可用来进行高速的数字摘要运算,节省了购买高性能服务器的成本,大大节省了pc的操作资源,可以广泛用在pki数字证书领域和密码领域。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明第一实施例的数字摘要碰撞解析装置结构示意图;

图2为本发明第二实施例的数字摘要碰撞解析方法流程示意图。

具体实施方式

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。

为便于对本发明实施例的理解,下面详细描述本发明的实施方式,通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。

图1为本发明第一实施例的数字摘要的碰撞计算装置结构示意图。

如图1所示,本实施例的数字摘要的碰撞计算装置,包括:接口模块1、预处理模块2、流水控制模块3、逻辑运算模块5、比较模块4;其中,

所述接口模块1与预处理模块2、逻辑运算模块5、比较模块4相连,同时与外部设备相连,用于外部设备向所述预处理模块2输入种子数据、匹配参数,向所述比较模块4输入第一数字摘要、比较参数,并用于对外部设备输出计算结果,及用于向所述预处理模块2、逻辑控制模块5、比较模块4输入控制数据。这里的外部设备通常情况下可以为pc。

优选的,所述接口模块1包括uart接口、usb2.0接口、pcie接口;其中,

所述uart接口通讯速率为115.2kbps,所述usb2.0接口通讯速率为双向160mbps,所述uart接口和usb2.0接口与外部设备相连,所述外部设备通过cpu对所述uart接口和usb2.0接口进行常规调度和设置,并同时与计算装置的寄存器对接;所述pcie接口通讯速率为16gbps,与设备高速内存ddr3sdram的控制器对接,用于预处理模块2中存储器寻址。

进一步的,当所述pcie接口为主控端时,dma引擎进行传输数据并监控传输状态、管理数据传输进度,所述pcie接口主动将所述比较模块4的匹配数据或计算结果发送给pc指定的虚拟内存空间。

或者,当所述pcie接口为主控端时,接口模块可以为pcieendpoint。计算结果通过pcie主动发给pc指定的虚拟内存空间,而无需通过cpu和cache处理,大大加快传输速度。对pcie地址空间和cpu地址空间统一管理,pc操作系统分配给所述计算装置虚拟的地址空间。在pcie接口和ddr3sdram的控制器中,采用2个fifo寄存器和一个状态机作为数据控制和缓冲,从而也可通过pc直接向所述计算装置输入种子数据进行比对,进行碰撞计算和查询。

所述预处理模块2还与流水控制模块3、逻辑运算模块5、比较模块4相连,用于利用来自接口模块1的种子数据计算初始值,并将所述初始值发送给逻辑运算模块5;或用于根据来自比较模块4的计算结果和所述匹配参数对所述初始值进行修正,并将修正后的修正值发送给逻辑运算模块5。

这里的预处理模块2,进一步包括:淘汰算法子模块、存储子模块,所述淘汰算法子模块与所述存储子模块相连;其中,

所述淘汰算法子模块用于通过淘汰算法根据所述种子数据计算初始值,或通过淘汰算法根据所述解析结果和所述匹配参数对所述初始值进行修正,并将初始值或修正值发送给存储子模块。淘汰算法子模块可将数值搜寻范围降低到2的63次方以内,根据每个设备的运算速度可以控制生成的数值范围,一般设置为1天内可以完成。例如,输出为512bit的16个不同的分组,输入为处理分组的160bit的散列值。

所述存储子模块用于存将所述初始值或修正值,并将所述初始值或修正值发送给逻辑运算模块。

所述逻辑运算模块5还与比较模块4相连,用于根据来自预处理模块2的初始值或修正值生成第二数字摘要,并将所述第二数字摘要发送给比较模块4。

所述逻辑运算模块5包括两个或两个以上算法处理核、不用处理进位方式的加法器;其中,所述两个或两个以上的算法处理核,各个算法处理核之间相互独立且进行并行计算;所述不用处理进位方式的加法器与所述算法处理核相连,且数理与所述算法处理核的数量相同,用于在每个算法处理核进行基本运算时,通过不处理进位的方式进行5个数的加法计算。

优选的,本实施例中逻辑运算模块5内部为独立的10个算法处理核的并行计算。每级的基本运算单元,由异或和与非门构成,其中最耗费计算时间的是5个数的加法计算,这里采用一种不用处理进位方式的加法器来实现,有效减少关键路径的延时。10个核的并行计算当中,每个周期均按流水结构处理,从预处理模块2中取出待计算数据,每个周期512bit。

所述比较模块4还与流水控制模块3相连,用于接收来自接口模块1的第一数字摘要和比较参数、来自逻辑运算模块5的第二数字摘要、来自流水控制模块3的控制数据,并根据所述控制数据的调度对所述第一数字摘要和第二数字摘要进行比较,根据比较参数得出数字摘要的碰撞计算结果;当所述计算结果命中碰撞目标时,将所述计算结果发送给接口模块1;当所述计算结果未命中碰撞目标时,将所述计算结果发送给所述预处理模块2;

所述流水控制模块3为流水线结构,用于向所述预处理模块2、逻辑运算模块5、比较模块4发送流水控制数据。

所述流水控制模块3包括:比较模块控制子模块、多级流水线控制子模块、寄存器控制子模块;其中,

所述多级流水线控制子模块用于将比较模块的比较过程分为每级相连的多级步骤,每级只完成数据处理的一个步骤,一个时钟周期完成一级数据处理,然后在下一时钟沿到来时再将处理后的数据传递给下一级。优选的,本实施例的流水控制的流水线结构为多级流水线,有80级。每级增加寄存器,减少组合逻辑开销,寄存器通过ram来替代,减少门电路数,为放置更多的核创造条件。从第一组输入开始到第80个周期,流水线被充满,这样使得每个周期内有80组数据同时在被处理。经过80个周期的流水后,流水线被充满,此后每个时钟周期都能计算出一组摘要送入比较器。这样,每验证一组数据实际仅需要一个时钟周期,且每级流水的运算很简单,使得整个设备可以以较高频率工作。

所述寄存器控制子模块用于增加或减少中间寄存器的数量,使寄存器的数量与数据处理的步骤相适应。

所述比较模块控制子模块用于当比较模块的解析结果命中碰撞目标时,输出解析结果的明文到虚拟地址空间,并中断整个装置的工作。

本发明的数字摘要的碰撞计算装置,通过流水控制模块对比较模块的流水作业进行控制,并通过与接口模块的结合,有效提高了pc等外部设备送入数据进行计算的速度,使用户通过普通pc将数据送入并进行高速的碰撞查找。目前单块设备实测sha1运算和匹配速度,已可达每秒50亿(5g)次。同时,通过预处理模块集成了种子数据生成器,有效降低了计算复杂度;另外,本装置也可用来进行高速的数字摘要运算,节省了购买高性能服务器的成本,大大节省了pc的操作资源,可以广泛用在pki数字证书领域和密码领域。

图2为本发明第二实施例的数字摘要的碰撞计算方法流程示意图。

如图2所示,本实施例的数字摘要的碰撞计算方法,包括如下步骤:

步骤s101,外部设备通过接口模块向预处理模块输入种子数据、匹配参数,并向所述预处理模块输入控制数据。

步骤s102,向比较模块输入第一数字摘要、比较参数。并向所述预处理模块、逻辑控制模块、比较模块输入控制数据。

上述步骤s101和步骤s102没有前后顺序之分,可以同时进行,也可以先后进行。通常情况下,在向预处理模块输入种子数据的同时,向比较模块输入第一数字摘要。

步骤s103,预处理模块利用来自接口模块的种子数据及流水控制模块的流水控制数据计算初始值,并将所述初始值发送给逻辑运算模块。

步骤s104,逻辑运算模块根据来自预处理模块的初始值或修正值生成第二数字摘要,并将所述第二数字摘要发送给比较模块。

步骤s105,比较模块接收来自接口模块的第一数字摘要和比较参数、来自逻辑运算模块的第二数字摘要、来自流水控制模块的控制数据,并根据所述控制数据的调度对所述第一数字摘要和第二数字摘要进行比较,根据比较参数得出数字摘要碰撞计算结果。

步骤s106,对所述计算结果进行判断:当所述计算结果命中碰撞目标时,执行步骤s108;当所述计算结果未命中碰撞目标时,转入步骤s107。

步骤s107,将所述计算结果发送给所述预处理模块,预处理模块根据来自比较模块的计算结果和所述匹配参数对所述初始值进行修正,并将修正后的修正值发送给逻辑运算模块。

步骤s108,将所述计算结果发送给接口模块,接口模块存储所接收到的计算结果,并将所述命中碰撞目标的计算发送给外部设备。

本发明的数字摘要的碰撞计算方法,通过流水控制模块对比较模块的流水作业进行控制,并通过与接口模块的结合,有效提高了pc等外部设备送入数据进行计算的速度,使用户通过普通pc将数据送入并进行高速的碰撞查找。目前单块设备实测sha1运算和匹配速度,已可达每秒50亿(5g)次。同时,通过预处理模块集成了种子数据生成器,有效降低了计算复杂度;另外,本装置也可用来进行高速的数字摘要运算,节省了购买高性能服务器的成本,大大节省了pc的操作资源,可以广泛用在pki数字证书领域和密码领域。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1