一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

散列算法及电路、电子设备的制作方法

2022-05-17 22:50:13 来源:中国专利 TAG:


1.本公开涉及电路技术领域,尤其涉及一种散列算法及电路、电子设备。


背景技术:

2.哈希(hash)算法,也称作散列算法、杂凑算法,是把任意长度的输入通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。
3.现有技术的散列算法(或哈希算法)一般是利用软件实现的,并不具备物理隔离特性,存在被破译的风险。


技术实现要素:

4.有鉴于此,本公开的目的在于提出一种散列算法及电路、电子设备。
5.基于上述目的,本公开的第一方面,提供了一种散列算法电路,包括:
6.输入电路单元,被配置为:接收待处理数据;
7.至少一个散列电路单元,与所述输入电路单元电耦接,所述散列电路单元具有按照预设散列算法布设的电路结构,并被配置为:将经过所述散列电路单元的所述待处理数据形成为目标数据;其中,所述待处理数据的数据长度大于所述目标数据的数据长度;
8.输出电路单元,与至少一个所述散列电路单元电耦接,并被配置为:输出所述目标数据。
9.在一些实施例中,所述预设散列算法选自以下方法至少其一:直接寻址法、数字分析法、平方取中法、折叠法、随机数法、除留余数法。
10.在一些实施例中,所述的散列算法电路,包括第一散列电路单元和第二散列电路单元;
11.所述第一散列电路单元,与所述输入电路单元电耦接,所述第一散列电路单元具有按照第一预设散列算法布设的电路结构,并被配置为:将所述待处理数据形成为中间数据;其中,所述待处理数据的数据长度大于所述中间数据的数据长度;
12.所述第二散列电路单元,与所述第一散列电路单元电耦接,所述第二散列电路单元具有按照第二预设散列算法布设的电路结构,并被配置为:将所述中间数据形成为目标数据;其中,所述中间数据的数据长度大于所述目标数据的数据长度。
13.在一些实施例中,所述待处理数据被分割为n个序列;
14.所述第一散列电路单元,被配置为:通过其电路结构将所述n个序列按照所述第一预设散列算法形成为具有k个序列的中间数据,其中,n和k均为自然数,且n>k;
15.所述第二散列电路单元,被配置为:通过其电路结构将所述k个序列按照所述第二预设散列算法形成为具有u个序列的目标数据,其中,u为自然数,且k>u。
16.在一些实施例中,所述第一散列电路单元包括异或电路、求和电路、移位电路中的至少其一。
17.在一些实施例中,所述第二散列电路单元包括异或电路、求和电路、移位电路中的至少其一。
18.在一些实施例中,所述异或电路和求和电路的数量根据n和u的数量差值进行确定。
19.在一些实施例中,所述待处理数据被分割为8个序列;所述第一散列电路单元,包括:
20.第一异或电路,被配置为将所述待处理数据的第一序列和第二序列进行异或操作以形成所述中间数据的第二中间序列;
21.第一求和电路,被配置为将所述待处理数据的第三序列和第四序列进行求和操作以形成所述中间数据的第五中间序列;
22.第一左移位电路,被配置为将所述待处理数据的第五序列进行左移位以形成所述中间数据的第四中间序列;
23.第二异或电路,被配置为将所述待处理数据的第六序列和第八序列进行异或操作以形成所述中间数据的第三中间序列;
24.第一右移位电路,被配置为将所述待处理数据的第七序列进行右移位以形成所述中间数据的第一中间序列。
25.在一些实施例中,所述第二散列电路单元,包括:
26.第三异或电路,分别与所述第一右移位电路和所述第一异或电路电耦接,并被配置为将所述第一中间序列和第二中间序列进行异或操作以形成第一临时序列;
27.第二求和电路,分别与所述第二异或电路和第一左移位电路电耦接,并被配置为将所述第三中间序列和第四中间序列进行求和操作以形成第二临时序列;
28.第二右移位电路,与所述第二求和电路电耦接,并被配置为将所述第二临时序列右移第一预定位数以形成第三临时序列;
29.第二左移位电路,与所述第一求和电路电耦接,并被配置为将所述第五中间序列左移第二预定位数以形成第四临时序列;
30.第四异或电路,分别与所述第三异或电路和第二左移位电路电耦接,并被配置为将所述第一临时序列与第四临时序列进行异或操作以形成第五临时序列;
31.第五异或电路,分别与所述第四异或电路和第二右移位电路电耦接,并被配置为将所述第三临时序列与第五临时序列进行异或操作以形成所述目标数据。
32.本公开的第二方面,提供了一种利用散列算法电路实现的散列算法,所述散列算法电路包括依次电耦接的输入电路单元、至少一个散列电路单元和输出电路单元,所述散列算法包括:
33.利用所述输入电路单元接收待处理数据;
34.利用所述至少一个散列电路单元,按照预设散列算法将经过所述散列电路单元的所述待处理数据形成为目标数据;其中,所述待处理数据的数据长度大于所述目标数据的数据长度;
35.利用所述输出电路单元输出所述目标数据。
36.在一些实施例中,所述预设散列算法选自以下方法至少其一:直接寻址法、数字分析法、平方取中法、折叠法、随机数法、除留余数法。
37.在一些实施例中,所述散列算法电路,包括与所述输入电路单元电耦接的第一散列电路单元和与所述第一散列电路单元电耦接的第二散列电路单元;所述散列算法还包括:
38.利用所述第一散列电路单元,按照第一预设散列算法将所述待处理数据形成为中间数据;其中,所述待处理数据的数据长度大于所述中间数据的数据长度;
39.利用所述第二散列电路单元,按照第二预设散列算法将所述中间数据形成为目标数据;其中,所述中间数据的数据长度大于所述目标数据的数据长度。
40.在一些实施例中,所述待处理数据被分割为n个序列;所述散列算法还包括:
41.利用所述第一散列电路单元,通过其电路结构将所述n个序列按照所述第一预设散列算法形成为具有k个序列的中间数据,其中,n和k均为自然数,且n>k;
42.利用所述第二散列电路单元,通过其电路结构将所述k个序列按照所述第二预设散列算法形成为具有u个序列的目标数据,其中,u为自然数,且k>u。
43.在一些实施例中,所述第一散列电路单元包括异或电路、求和电路、移位电路中的至少其一。
44.在一些实施例中,所述第二散列电路单元包括异或电路、求和电路、移位电路中的至少其一。
45.在一些实施例中,所述散列算法,还包括:
46.根据n和u的数量差值确定所述异或电路和求和电路的数量。
47.在一些实施例中,所述待处理数据被分割为8个序列;所述第一散列电路单元,包括第一异或电路、第一求和电路、第一左移位电路、第二异或电路和第一右移位电路;
48.所述散列算法还包括:
49.利用所述第一异或电路,将所述待处理数据的第一序列和第二序列进行异或操作以形成所述中间数据的第二中间序列;
50.利用所述第一求和电路,将所述待处理数据的第三序列和第四序列进行求和操作以形成所述中间数据的第五中间序列;
51.利用所述第一左移位电路,将所述待处理数据的第五序列进行左移位以形成所述中间数据的第四中间序列;
52.利用第二异或电路,将所述待处理数据的第六序列和第八序列进行异或操作以形成所述中间数据的第三中间序列;
53.利用所述第一右移位电路,将所述待处理数据的第七序列进行右移位以形成所述中间数据的第一中间序列。
54.在一些实施例中,所述第二散列电路单元,包括第三异或电路、第二求和电路、第二右移位电路、第二左移位电路、第四异或电路、第五异或电路;所述第三异或电路,分别与所述第一右移位电路和所述第一异或电路电耦接;所述第二求和电路,分别与所述第二异或电路和第一左移位电路电耦接;所述第二右移位电路,与所述第二求和电路电耦接;所述第二左移位电路,与所述第一求和电路电耦接;所述第四异或电路,分别与所述第三异或电路和第二左移位电路电耦接;所述第五异或电路,分别与所述第四异或电路和第二右移位
电路电耦接;
55.所述散列算法还包括:
56.利用所述第三异或电路,将所述第一中间序列和第二中间序列进行异或操作以形成第一临时序列;
57.利用所述第二求和电路,将所述第三中间序列和第四中间序列进行求和操作以形成第二临时序列;
58.利用所述第二右移位电路,将所述第二临时序列右移第一预定位数以形成第三临时序列;
59.利用所述第二左移位电路,将所述第五中间序列左移第二预定位数以形成第四临时序列;
60.利用所述第四异或电路,将所述第一临时序列与第四临时序列进行异或操作以形成第五临时序列;
61.利用所述第五异或电路,将所述第三临时序列与第五临时序列进行异或操作以形成所述目标数据。
62.本公开的第三方面,提供了一种电子设备,包括第一方面所述的散列算法电路。
63.从上面所述可以看出,本公开提供的散列算法及电路、电子设备,通过设置硬件结构,采用物理方式缩减固定长度的并行数据,缩减后的标志符可以用来作为索引参考、标志id、地址扩展位、信息摘要,等等,同时具有较高的安全性能。该散列算法电路具有低功耗、低成本等特点,可以集成在数字电路中。
附图说明
64.为了更清楚地说明本公开或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
65.图1示出了根据本公开实施例的散列算法电路的一个示例性电路结构示意图;
66.图2示出了根据本公开实施例的散列算法电路的一个示例性结构示意图;
67.图3示出了根据本公开实施例的散列电路单元组的一个示例性电路结构示意图;
68.图4示出了根据本公开实施例的一个示例性方法的流程示意图;
69.图5示出了本实施例所提供的一种更为具体的电子设备500硬件结构示意图。
具体实施方式
70.为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
71.需要说明的是,除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语
并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
72.在密码学中,有一个重要的工具,就是散列算法(哈希算法),它有时也被称为数字指纹,它就像一篇文章的摘要一样,因此也被称为摘要算法。物联网的快速发展使信息安全问题迅速暴露出诸多问题,无论是国际、国家还是公司都开始对安全问题加以重视,物联网安全未来将是集成化、多元化的解决方案,散列算法(哈希算法)无论是在硬件安全、软件安全、应用安全中都有重要的作用。
73.目前有多种多样的哈希算法,例如,直接寻址法、数字分析法、平方取中法、除留余数法,等。哈希算法的应用非常广泛,如文件校验、数字签名、鉴权协议、安全启动、快速寻址等。以上应用一般使用软件实现,主要用来解决通信中的信任问题。
74.但是,利用软件实现的哈希算法,一旦软件代码被破译,则容易存在安全问题。有鉴于此,本公开提供了一种散列算法电路及其散列算法、电子设备。该散列算法电路,通过设置硬件结构,采用物理方式缩减固定长度的并行数据,缩减后的标志符可以用来作为索引参考、标志id、地址扩展位、信息摘要,等等,同时具有较高的安全性能。该散列算法电路具有低功耗、低成本等特点,可以集成在数字电路中。
75.图1示出了根据本公开实施例的散列算法电路100的一个示例性电路结构示意图。
76.所述散列算法电路100,包括输入电路单元102、至少一个散列电路单元104,以及,输出电路单元106。
77.如图1所示,输入电路单元102可以从外部设备(未示出)接收待处理数据108。该外部设备可以是该散列算法电路100所属电子设备的其他模块(例如,该散列算法电路100所属电子设备的处理器),也可以是该散列算法电路100所属电子设备之外的其他终端设备。待处理数据108可以是任意长度的消息。待处理数据108可以是,例如,秘钥索引地址、设备身份信息,等等。
78.散列电路单元104,与所述输入电路单元102电耦接,所述散列电路单元104具有按照预设散列算法布设的电路结构,例如,当待处理数据108经过该散列电路单元104之后,形成为目标数据110。由于散列电路单元104具有按照预设散列算法布设的电路结构,因此,待处理数据108经过散列电路单元104之后形成的目标数据110,其数据长度会小于待处理数据108的数据长度。这样,在处理或存储该目标数据110时,相较于待处理数据108,可以减少资源消耗并提高处理速度。此外,由于散列电路单元104具有按照预设散列算法布设的电路结构,因此,经过散列电路单元104之后形成的目标数据110,难以被反向破译得到待处理数据108。
79.在一些实施例中,所述预设散列算法可以选自以下方法至少其一:直接寻址法、数字分析法、平方取中法、折叠法、随机数法、除留余数法。其中:
80.直接寻址法,通过取关键字或关键字的某个线性函数值为散列地址。即h(key)=key或h(key)=a
·
key b,其中a和b为常数。这种散列函数又可称为自身函数。
81.数字分析法,通过分析一组数据,找出数字的规律,尽可能利用这些数据来构造冲突几率较低的散列地址。比如一组员工的出生年月日,若发现出生年月日的前几位数字大体相同,则出现冲突的几率就会很大,但若发现年月日的后几位表示月份和具体日期的数字差别很大,用后面的数字来构成散列地址,则冲突的几率会明显降低。
82.平方取中法,通过取关键字平方后的中间几位作为散列地址。
83.折叠法,通过将关键字分割成位数相同的几部分,最后一部分位数可以不同,然后取这几部分的叠加和(去除进位)作为散列地址。
84.随机数法,通过选择一随机函数,取关键字作为随机函数的种子生成随机值作为散列地址,通常用于关键字长度不同的场合。
85.除留余数法,通过取关键字被某个不大于散列表表长m的数p除后所得的余数为散列地址。即h(key)=key mod p,p≤m。不仅可以对关键字直接取模,也可在折叠、平方取中等运算之后取模。对p的选择很重要,一般取素数或m,若p选的不好,容易产生碰撞。
86.在一些实施例中,所述散列电路单元的数量可以有两个甚至更多。图2示出了根据本公开实施例的散列算法电路200的一个示例性结构示意图。
87.该散列算法电路200,包括输入电路单元202、第一散列电路单元204、第二散列电路单元206和输出电路单元208。
88.第一散列电路单元204,与输入电路单元202电耦接。在一些实施例中,该第一散列电路单元204可以具有按照第一预设散列算法布设的电路结构,并用于将所述待处理数据210形成为中间数据212。在一些实施例中,所述第一预设散列算法可以选自以下方法至少其一:直接寻址法、数字分析法、平方取中法、折叠法、随机数法、除留余数法。
89.由于第一散列电路单元204具有按照第一预设散列算法布设的电路结构,因此,待处理数据210经过第一散列电路单元204之后形成的中间数据212,其数据长度会小于待处理数据210的数据长度。由于第一散列电路单元204具有按照第一预设散列算法布设的电路结构,因此,经过第一散列电路单元204之后形成的中间数据212,增加了待处理数据210被反向破译的难度。
90.第二散列电路单元206,分别与第一散列电路单元206和输出电路单元208电耦接。在一些实施例中,第二散列电路单元206可以具有按照第二预设散列算法布设的电路结构,并用于将所述中间数据212形成为目标数据214。在一些实施例中,所述第二预设散列算法可以选自以下方法至少其一:直接寻址法、数字分析法、平方取中法、折叠法、随机数法、除留余数法。
91.由于第二散列电路单元206具有按照第二预设散列算法布设的电路结构,因此,中间数据212经过第二散列电路单元206之后形成的目标数据214,其数据长度会小于中间数据212的数据长度。这样,在处理或存储该目标数据214时,相较于待处理数据210,可以减少资源消耗并提高处理速度。此外,由于中间数据212是待处理数据210经过第一散列电路单元204处理后的数据,同时,第二散列电路单元206具有按照第二预设散列算法布设的电路结构,因此,中间数据212经过第二散列电路单元206之后形成的目标数据214,进一步增加了反向破译得到待处理数据210的难度。
92.在一些实施例中,所述第一散列电路单元包括异或电路、求和电路、移位电路中的至少其一;所述第二散列电路单元包括异或电路、求和电路、移位电路中的至少其一。其中:
93.异或电路,通过对两个数据序列进行异或处理,得到一个新的数据序列,从而将两个数据序列缩短为一个数据序列。
94.求和电路,通过对两个数据序列进行求和处理,得到一个新的数据序列,从而将两个数据序列缩短为一个数据序列。
95.移位电路,通过对完整数据中的部分数据序列进行移位处理,使得完整数据中某
些数据序列的位置被打乱,进而增加数据被破译的难度。
96.图3示出了根据本公开实施例的散列电路单元组300的一个示例性电路结构示意图。
97.输入该散列电路单元组300的待处理数据306可以先被分割为若干序列。例如,待处理数据306的数据长度为n
×
l,可以将待处理数据306分割为n个序列,每个序列长度为l。在图3所示的示例中,待处理数据306被分割为8个序列s1~s8,即n=8,每个序列长度为l。
98.在一些实施例中,分割待处理数据306的步骤可以由该散列算法电路100所属电子设备的其他模块(例如,该散列算法电路100所属电子设备的处理器)来完成,然后经过输入电路单元(图3中未示出)输入到散列电路单元组300中。
99.如图3所示,第一散列电路单元302,包括第一异或电路30202、第一求和电路30204、第一左移位电路30206、第二异或电路30208和第一右移位电路30210。
100.第一异或电路30202,被配置为将所述待处理数据306的第一序列s1和第二序列s2进行异或操作,通过位置替换可以得到所述中间数据308的第二中间序列m2,长度为l;
101.第一求和电路30204,被配置为将所述待处理数据306的第三序列s3和第四序列s4进行求和操作,通过位置替换可以得到所述中间数据308的第五中间序列m5,长度为l;
102.第一左移位电路30206,被配置为将所述待处理数据306的第五序列s5进行左移位(例如,左移3比特),通过位置替换可以得到所述中间数据308的第四中间序列m4,长度为l;
103.第二异或电路30208,被配置为将所述待处理数据306的第六序列s6和第八序列s8进行异或操作,通过位置替换可以得到所述中间数据308的第三中间序列m3,长度为l;
104.第一右移位电路30210,被配置为将所述待处理数据306的第七序列s7进行右移位(例如,右移3比特),通过位置替换可以得到所述中间数据308的第一中间序列m1,长度为l。
105.可以看到,中间数据308包括中间序列m1~m5,而每个中间序列的数据长度与初始序列s1~s8的数据长度是相等的,因此,经过第一散列电路单元302之后得到的中间数据308,比待处理数据306更短,且经过异或、求和、移位的处理,增加了中间数据308被反向破译的难度。
106.进一步地,中间数据308可以被所述第二散列电路单元304所处理而得到目标数据310。
107.所述第二散列电路单元304,包括第三异或电路30402、第二求和电路30404、第二右移位电路30406、第二左移位电路30408、第四异或电路30410和第五异或电路30412。
108.第三异或电路30402,分别与所述第一右移位电路30210和所述第一异或电路30202电耦接,并被配置为将所述第一中间序列m1和第二中间序列m2进行异或操作以形成第一临时序列t1,长度为l;
109.第二求和电路30404,分别与所述第二异或电路30208和第一左移位电路30206电耦接,并被配置为将所述第三中间序列m3和第四中间序列m4进行求和操作以形成第二临时序列t2,长度为l;
110.第二右移位电路30406,与所述第二求和电路30404电耦接,并被配置为将所述第二临时序列t2右移第一预定位数(例如,右移5比特)以形成第三临时序列t3,长度为l;
111.第二左移位电路30408,与所述第一求和电路30204电耦接,并被配置为将所述第五中间序列m5左移第二预定位数(例如,左移7比特)以形成第四临时序列t4,长度为l;
112.第四异或电路30410,分别与所述第三异或电路30402和第二左移位电路30406电耦接,并被配置为将所述第一临时序列t1与第四临时序列t4进行异或操作以形成第五临时序列t5,长度为l;
113.第五异或电路30412,分别与所述第四异或电路30410和第二右移位电路30406电耦接,并被配置为将所述第三临时序列t3与第五临时序列t5进行异或操作以形成所述目标数据310,长度为l。
114.经过上述第一散列电路单元302和第二散列电路单元304之后,待处理数据306从长度n
×
l,缩减为目标数据310的长度l。其中的数学关系描述如下:
115.m1=s7》》3
116.m2=s1

s2
117.m3=s6

s8
118.m4=s5《《3
119.m5=(s3 s4)mod2
l
[0120][0121]
由此可见,散列电路单元组300最终完成如下映射:
[0122]
h(s)=d
[0123]
s={s1,s2,s3,

,sn}
[0124]
其中,d是最后得到的目标数据310,长度为l,s为待处理数据306,长度为n
×
l,且s的长度是d的n倍,其中,s1~sn为s分割得到的序列,长度均为l,与d的长度一致。
[0125]
可以看到,目标数据310仅包括一个序列,而该序列的数据长度与初始序列s1~s8的数据长度是相等的,因此,经过第二散列电路单元304的再次处理后,进一步缩短了目标数据310的长度,并且中间数据308又经过异或、求和、移位的处理,进一步增加了目标数据310被反向破译的难度。
[0126]
通过上述实施例可以看到,通过异或电路或求和电路处理后,两个序列可以并为一个序列,即数据长度缩短一个序列的长度,因此,根据实际需要,可以设计散列电路单元中所包含的异或电路、求和电路或具有类似功能的电路的数量,进而将待处理数据形成为所需长度的目标数据。
[0127]
例如,在前述实施例中,将长度为8
×
l的待处理数据形成为长度为l的目标数据,使用的异或电路和求和电路的总数为7个,换言之,若待处理数据长度为n
×
l,那么想要目标数据长度为l,则需要设置总计n-1个的异或电路和求和电路(或具有类似功能的电路)。由此可见,异或电路和求和电路的数量需要根据待处理数据被分割的序列个数n和目标数据的序列个数u的数量差值进行确定。此外,在不同的散列电路单元中分配异或电路和求和电路的个数时,还可以根据中间数据的序列个数k来确定各散列电路单元中异或电路和求和电路的个数。
[0128]
需要说明的是,散列电路单元组300仅是一个示例性结构,可以知道的是,散列算法电路中所包含的散列电路单元的数量,可以根据电路设计的复杂程度进行选择。另外,散列电路单元中采用的具体电路也不限于异或电路、求和电路、移位电路,还可以根据实际需要选择其他电路。
[0129]
输出电路单元106,与所述散列电路单元104电耦接,用于输出所述目标数据110到
外部设备(未示出)。该外部设备可以是该散列算法电路100所属电子设备的其他模块(例如,该散列算法电路100所属电子设备的处理器),也可以是该散列算法电路100所属电子设备之外的其他终端设备。
[0130]
本公开提出的散列算法电路,可以用来缩短固定长度的并行数据,以产生新的索引地址或标志符,该散列算法电路可以增加随机数发生器或物理非克隆函数等安全电路的随机性和复杂度,防止黑客直接访问核心模块,进行建模攻击。
[0131]
例如,原始输入是某个索引地址,该原始输入地址可以通过该散列算法电路生成新的索引地址,由于散列算法电路是硬件结构,不能通过软件破译获知其具体电路结构,因此,即使原始输入地址被破译也不能据以得到实际索引地址(新的索引地址)对应的信息(例如密钥),进而通过散列算法电路提供了设备的安全性。
[0132]
同时,本公开提出的散列算法电路,具有占用面积小、低功耗、低成本等特点,易于集成在数字电路中。
[0133]
该散列算法电路可用来作为地址扩充,如某一地址是idx,则经过该电路后缩减为idx/n,则可组成新的寻址地址为:
[0134]
idx
new
={idx,h(idx)}
[0135]
经过以上扩展后,地址位得到扩展,因此该电路可以用在指令集压缩或物理地址映射中。同时比如某一地址是idx,经该哈希散列后缩减为idx/n,左移l位后,再次经过散列算法电路,右缩减为idx/n,即同一个地址可以用来生成多个寻址地址。除此之外还有许多应用。
[0136]
图4示出了根据本公开实施例的一个示例性方法400的流程示意图。
[0137]
散列算法400可以利用散列算法电路实现。在一些实施例中,参考图1所示,所述散列算法电路100包括依次电耦接的输入电路单元102、至少一个散列电路单元104和输出电路单元106。所述散列算法400包括以下步骤。
[0138]
在步骤402,利用所述输入电路单元(例如,图1的输入电路单元102)接收待处理数据(例如,图1的待处理数据108)。
[0139]
在步骤404,利用所述至少一个散列电路单元(例如,图1的散列电路单元104),按照预设散列算法将经过所述散列电路单元的所述待处理数据形成为目标数据(例如,图1的目标数据110);其中,所述待处理数据的数据长度大于所述目标数据的数据长度。
[0140]
在一些实施例中,所述预设散列算法选自以下方法至少其一:直接寻址法、数字分析法、平方取中法、折叠法、随机数法、除留余数法。
[0141]
在一些实施例中,所述散列算法电路,包括与所述输入电路单元电耦接的第一散列电路单元(例如,图2的第一散列电路单元204)和与所述第一散列电路单元电耦接的第二散列电路单元(例如,图2的第二散列电路单元206);所述散列算法还包括:
[0142]
利用所述第一散列电路单元,按照第一预设散列算法将所述待处理数据形成为中间数据(例如,图2的中间数据212);其中,所述待处理数据的数据长度大于所述中间数据的数据长度;
[0143]
利用所述第二散列电路单元,按照第二预设散列算法将所述中间数据形成为目标数据(例如,图2的目标数据214);其中,所述中间数据的数据长度大于所述目标数据的数据长度。
[0144]
在一些实施例中,所述第一散列电路单元包括异或电路、求和电路、移位电路中的至少其一;所述第二散列电路单元包括异或电路、求和电路、移位电路中的至少其一。
[0145]
在一些实施例中,所述待处理数据被分割为8个序列;所述第一散列电路单元(例如,图3的第一散列电路单元302),包括第一异或电路(例如,图3的第一异或电路30202)、第一求和电路(例如,图3的第一求和电路30204)、第一左移位电路(例如,图3的第一左移位电路30206)、第二异或电路(例如,图3的第二异或电路30208)和第一右移位电路(例如,图3的第一右移位电路30210);
[0146]
所述散列算法还包括:
[0147]
利用所述第一异或电路,将所述待处理数据(例如,图3的待处理数据306)的第一序列(例如,图3的第一序列t1)和第二序列(例如,图3的第二序列t2)进行异或操作以形成所述中间数据(例如,图3的中间数据308)的第二中间序列(例如,图3的第二中间序列m2);
[0148]
利用所述第一求和电路,将所述待处理数据的第三序列(例如,图3的第三序列t3)和第四序列(例如,图3的第四序列t4)进行求和操作以形成所述中间数据的第五中间序列(例如,图3的第五中间序列m5);
[0149]
利用所述第一左移位电路,将所述待处理数据的第五序列(例如,图3的第五序列t5)进行左移位以形成所述中间数据的第四中间序列(例如,图3的第四中间序列m4);
[0150]
利用第二异或电路,将所述待处理数据的第六序列(例如,图3的第六序列t6)和第八序列(例如,图3的第八序列t8)进行异或操作以形成所述中间数据的第三中间序列(例如,图3的第三中间序列m3);
[0151]
利用所述第一右移位电路,将所述待处理数据的第七序列(例如,图3的第七序列t7)进行右移位以形成所述中间数据的第一中间序列(例如,图3的第一中间序列m1)。
[0152]
在一些实施例中,所述第二散列电路单元(例如,图3的第二散列电路单元304),包括第三异或电路(例如,图3的第三异或电路30402)、第二求和电路(例如,图3的第二求和电路30404)、第二右移位电路(例如,图3的第二右移位电路30406)、第二左移位电路(例如,图3的第二左移位电路30408)、第四异或电路(例如,图3的第四异或电路30410)、第五异或电路(例如,图3的第五异或电路30412);所述第三异或电路,分别与所述第一右移位电路和所述第一异或电路电耦接;所述第二求和电路,分别与所述第二异或电路和第一左移位电路电耦接;所述第二右移位电路,与所述第二求和电路电耦接;所述第二左移位电路,与所述第一求和电路电耦接;所述第四异或电路,分别与所述第三异或电路和第二左移位电路电耦接;所述第五异或电路,分别与所述第四异或电路和第二右移位电路电耦接;
[0153]
所述散列算法还包括:
[0154]
利用所述第三异或电路,将所述第一中间序列和第二中间序列进行异或操作以形成第一临时序列(例如,图3的第一临时序列t1);
[0155]
利用所述第二求和电路,将所述第三中间序列和第四中间序列进行异或操作以形成第二临时序列(例如,图3的第二临时序列t2);
[0156]
利用所述第二右移位电路,将所述第二临时序列右移第一预定位数以形成第三临时序列(例如,图3的第三临时序列t3);
[0157]
利用所述第二左移位电路,将所述第五中间序列左移第二预定位数以形成第四临时序列(例如,图3的第四临时序列t4);
[0158]
利用所述第四异或电路,将所述第一临时序列与第四临时序列进行异或操作以形成第五临时序列(例如,图3的第五临时序列t5);
[0159]
利用所述第五异或电路,将所述第三临时序列与第五临时序列进行异或操作以形成所述目标数据(例如,图3的目标数据310)。
[0160]
在步骤406,利用所述输出电路单元(例如,图1的输出电路单元106)输出所述目标数据。
[0161]
本公开提供的利用散列算法电路实现的散列算法,用来缩减固定长度的并行数据,缩减后的标志符可以用来作为索引参考、标志id、地址扩展位、信息摘要,等等。
[0162]
需要说明的是,上述对本公开特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0163]
基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述散列算法。
[0164]
图5示出了本实施例所提供的一种更为具体的电子设备500硬件结构示意图。该设备500可以包括:处理器502、存储器504、输入/输出接口506、通信接口508和总线510。其中处理器502、存储器504、输入/输出接口506和通信接口508通过总线510实现彼此之间在设备内部的通信连接。
[0165]
处理器502可以采用通用的cpu(central processing unit,中央处理器)、微处理器、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本公开实施例所提供的技术方案。
[0166]
存储器504可以采用rom(read only memory,只读存储器)、ram(random access memory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器504可以存储操作系统和其他应用程序,在通过软件或者固件来实现本公开实施例所提供的技术方案时,相关的程序代码保存在存储器504中,并由处理器502来调用执行。
[0167]
输入/输出接口506用于连接输入/输出模块,以实现信息输入及输出。输入/输出模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
[0168]
在一些实施例中,所述输入/输出接口506还可以与所述散列算法电路(例如,图1的散列算法电路100、图2的散列算法电路200、或图3的散列算法电路300)电耦接,并利用所述散列算法电路将输入或输出的数据进行处理后再进行后续操作。
[0169]
通信接口508用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。
[0170]
总线510包括一通路,在设备的各个组件(例如处理器502、存储器504、输入/输出接口506和通信接口508)之间传输信息。
[0171]
需要说明的是,尽管上述设备仅示出了处理器502、存储器504、输入/输出接口506、通信接口508以及总线510,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本公开实施例方案所必需的组件,而不必包含图中所示的全部组件。
[0172]
上述实施例的电子设备用于实现前述任一实施例中相应的散列算法,并且具有相应的方法实施例的有益效果,在此不再赘述。
[0173]
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本公开的不同方面的许多其它变化,为了简明它们没有在细节中提供。
[0174]
另外,为简化说明和讨论,并且为了不会使本公开难以理解,在所提供的附图中可以示出或可以不示出与集成电路(ic)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本公开难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本公开的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本公开的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本公开。因此,这些描述应被认为是说明性的而不是限制性的。
[0175]
尽管已经结合了本公开的具体实施例对本公开进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态ram(dram))可以使用所讨论的实施例。
[0176]
本公开旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本公开的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献