CN109005025A - 一种面向散列函数的卷积压缩方法 - Google Patents
一种面向散列函数的卷积压缩方法 Download PDFInfo
- Publication number
- CN109005025A CN109005025A CN201810754002.8A CN201810754002A CN109005025A CN 109005025 A CN109005025 A CN 109005025A CN 201810754002 A CN201810754002 A CN 201810754002A CN 109005025 A CN109005025 A CN 109005025A
- Authority
- CN
- China
- Prior art keywords
- message blocks
- message
- module
- dimensional array
- compression
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000007906 compression Methods 0.000 title claims abstract description 56
- 230000006835 compression Effects 0.000 title claims abstract description 47
- 238000000034 method Methods 0.000 title claims abstract description 25
- 238000006073 displacement reaction Methods 0.000 claims abstract description 9
- 238000007781 pre-processing Methods 0.000 claims abstract description 6
- 239000011159 matrix material Substances 0.000 claims description 13
- 230000008901 benefit Effects 0.000 claims description 4
- 230000006870 function Effects 0.000 abstract description 8
- 238000012804 iterative process Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 5
- 238000001125 extrusion Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种面向散列函数的卷积压缩方法,将输入的消息依次经过消息预处理模块、消息填充模块、消息存储模块、初态填充模块、卷积压缩模块、字节替换模块、移位混淆模块和截断压缩模块处理。采用新的卷积压缩的方式,处理后的消息在进行迭代操作时,对存储状态会进行特殊的填充处理,改变了数据的宽度,破坏了内部结构的对称性;然后对内部数据存储状态进行卷积压缩,将处理后的数据进行字节替换、移位混淆,打破了数据在字节及三维位置上的规律。本发明增强了填充的效率,首次对存储状态进行填充、压缩操作,提高了存储数据的混淆性,并使得内部状态更加紧凑,以节约硬件面积,迭代过程设计简洁,适用于小信息的散列平台。
Description
技术领域
本发明涉及到信息安全领域,具体是一种面向散列函数的卷积压缩方法。
背景技术
目前,散列算法的研究发展迅速。鉴于MD5及SHA-1等主流散列算法被成功攻破,对称密码学学术界的关注点主要集中在NIST举办的SHA-3竞赛的获胜算法——Keccak算法上。Keccak算法由比利时密码研究组Bertoni等领衔设计,该算法基于新颖的海绵结构,在保证安全强度的同时,兼顾快速软、硬件实现的优势,该海绵结构包含4种截断输出:224、256、384和512。但由于散列算法的运行依赖于计算所需的存储器,尽管基于海绵结构的SHA-3具有很好的硬件实现能力,但为了在实践中避免通用的碰撞搜索,其数据长度为1600位,输出至少224位。这种输出规模在需要高水平和长期安全性的情况下很有意义,但在一些较小安全参数或需要面向硬件的情况下,这种输出规模的内部存储器尺寸又过大。
为适应这些受限制的设备,如无源RFID标签,Guo等设计了面向硬件的散列函数族:PHOTON,其输入数据长度512位,输出长度80~256位。PHOTON算法对海绵结构进行了扩展,内部使用类AES的内部置换,保证足够安全强度的同时,灵活地降低了内部存储器的尺寸。但海绵结构在小信息散列情况下,存在挤压过程相对缓慢的问题,主要是挤压过程浪费了硬件面积和计算能力。目前,散列算法中并没有一种很好的结构可以避免浪费计算力,迫切需要一种新的结构,以进一步提高小信息散列的挤压速率。
发明内容
针对上述不足,本发明提供一种面向散列函数的新型压缩方法,设计了一种新型卷积压缩结构,对数据存储状态进行了三维线性压缩,降低了寄存器尺寸,以提高小信息散列的挤压速率。
本发明一种面向散列函数的卷积压缩方法,包括消息预处理模块、消息填充模块、消息存储模块、初态填充模块、卷积压缩模块、字节替换模块、移位混淆模块和截断压缩模块等新模块,具体包含如下步骤:
S1:利用消息预处理模块,借鉴白化密钥的思想,对输入的消息m进行预处理,生成消息块m1和块m2,预处理方法如下:
将n比特消息m转换成16进制,分成消息块m1和消息块m2,m=m1||m2;
若n为偶数,平均分成消息块m1和消息块m2;
若n为奇数,消息块m2长度为(n-1)/2,消息块m1的长度为(n+1)/2。
S2:利用消息填充模块,对预处理后的消息块m1和m2同时进行填充操作:
在消息末尾补111000…01,使填充后的消息块m1‘=m1‘(1)||m1‘(2)||…||m1‘(i);m2‘=m2‘(1)||m2‘(2)||…||m2‘(i),其中,消息m1‘和m2‘均为27的整数倍,消息块m1‘(1),m1‘(2)…m1‘(i);m2‘(1),m2‘(2)…m2‘(i)长度均为27,i为正整数。
S3:将S2填充后的消息块输入消息存储模块;
先将S2填充后的消息块m1‘(1)、m2‘(1)存到初值为0的输入消息块r中,其中,消息块r是由64个消息块组成,r=p0||p1||…||pn,pn为长8比特的消息块,n∈[0,64),m1‘(1)、m2‘(1)的存入方式如下:
定义消息块r1=p0||p1||…||p15、r2=p32||p33||…||p47,则新的消息块
之后通过一个对应关系,将输入消息块r存入数组,得到新的三维数组B0[x][y][z],其对应关系为:
p[4×(4x+y)+z]=B0[x][y][z],
其中,x∈[0,4),y∈[0,4),z∈[0,4)。
S4:将三维数组B0输入到初态填充模块;
S4.1:针对消息块三维数组B0[4][4][z],通过一个对应关系,将三维数组B0[4][4][z]每一深度的二维数组B0[4][4]扩展为B1[6][6],得到新的三维数组B1[6][6][z],其对应关系为:
B1[x+1][y+1]=B0[x][y],
其中,消息块B1[x][0]、B1[x][5]、B1[0][y]、B1[5][y]为填充消息块;
S4.2:更新三维数组B1[6][6][z],固定填充消息块B1[0][y][0]的比特值为长48比特的常数RCi,其他填充消息块置0,RCi表示由5级线性反馈移位寄存器得到的48比特轮常数,其多项式表达式为:
RC0的初始状态:I0=18=10010(mod2),
RCi的初始状态:Ii=(Ii-1+1)(mod2),
则截取前48比特轮常数:RCi=MSB48f(Ii(mod2));
其中,x∈[0,6),y∈[0,6),i∈[1,12],z=4或z=2。
S5:将更新后的三维数组B1输入到卷积压缩模块;
S5.1:使用参数矩阵A1、A2对三维数组B1[6][6][z]进行x-y层压缩操作,得到新的三维数组B2[4][4][z],x-y层压缩过程如下:
参数矩阵A1对B1[x][y][0]、B1[x][y][2]进行x-y层压缩:
参数矩阵A2对B1[x][y][1]、B1[x][y][3]进行x-y层压缩:
其中,*表示矩阵内积操作,A1是一个上三角全1的3×3参数矩阵,A2是一个下三角全1的3×3参数矩阵,x∈[0,4),y∈[0,4);
S5.2:若z=4,对B2[x][y][z]进行深度压缩操作,若z=2,则不进行深度压缩操作,深度压缩过程如下:
其中,x∈[0,4),y∈[0,4),z∈[0,4)。
S6:利用字节替换模块,针对B2[4][4][2]中的每一个8比特消息块使用非线性S盒做字节替换操作,得到新的三维数组B3[4][4][2],其中,字节替换的S盒为AES类的S盒新数组B3与数组B2的对应关系为:
B3[x][y][z]=SBOX(B2[x][y][z]),
其中,x∈[0,4),y∈[0,4),z∈[0,2)。
S7:利用移位混淆模块,先定义S6得到的B3[4][4][2]的组成消息块为q0,q1,…,qn,则B3=q0||q1...||qn,其中,qn为长8比特的消息块,n∈[0,32);
对消息块qn进行循环向右移31–Round位的操作,之后通过一个对应关系,将消息块qn存入数组,得到新的三维数组B4[4][4][2],其对应关系为:
q[2×(4y+x)+z]=B4[x][y][z],
其中,Round表示当前轮数,x∈[0,4),y∈[0,4),z∈[0,2)。
S8:将新的三维数组B4[4][4][2]输入截断压缩模块,完成压缩;
S8.1:S7得到的三维数组B4先进入迭代阶段:
S8.1.1:S7得到的三维数组B4重新放置到S4中三维数组B0[4][4][4]中,B0其余比特置0:
B0[x][y][0]=B4[x][y][0],
B0[x][y][2]=B4[x][y][1],
S8.1.2:重复S4~S7;
S8.1.3:迭代第12轮后,将输出值放入消息块r中,将S2得到的m1‘(2)、m2‘(2)经过步骤S3后,作为新的输入;
S8.1.4:重复S8.1.2,迭代12轮…直到S2得到的消息块m1‘(i)、m2‘(i)均完成加密,迭代完毕;
S8.2:根据输出要求,对迭代后的三维数组B4[4][4][2]进行截断操作,并截取相应长度输出值fout:
若输出长度为128:
若输出长度为256:
fout=B4[x][y][0]||B4[x][y][1]。
本发明与现有技术相比,采用新的并行填充,提高了填充效率,迭代12轮操作就可以保证足够的安全强度;现有海绵结构虽然降低了内部存储器的尺寸,但依旧相对缓慢,对内部状态使用卷积压缩方法,可以减少了硬件面积,提高计算能力,同时,这种压缩方式,方式新颖,且提高了比特的混淆性;内部存储状态使用字节做为中间量,使用4×4×2的三维矩阵进行迭代操作,其占用面积小,硬件容易实现,且运算快。
附图说明
图1为实施例中面向散列函数的卷积压缩方法的流程框图。
图2是实施例卷积压缩结构的内部构造图。
图3是实施例中S4、S5的三维说明图。
图4是实施例中S4中的线性反馈移位寄存器的说明图。
图5是实施例中S5.1的二维说明图。
具体实施方式
下面结合实施例和附图对本发明内容作进一步的说明,但不是对本发明的限定。
实施例
参照图1,面向散列函数的卷积压缩方法的流程框图,以输入消息―00112233445566778899AABBCCDDEEFF011122334455667778899AABBCCDDEEFF101122334455667778899AABBCCDDEEFF111122334455667778899AABBCCDDEEFF”为例,依次经过消息预处理模块、消息填充模块、消息存储模块、初态填充模块、卷积压缩模块、字节替换模块、移位混淆模块和截断压缩模块。
参照图2,卷积压缩结构的内部构造图,新的压缩方法包括如下的步骤:
S1:利用消息预处理模块,对输入的消息m:―00112233445566778899AABBCCDDEEFF011122334455667778899AABBCCDDEEFF101122334455667778899AABBCCDDEEFF111122334455667778899AABBCCDDEEFF”进行预处理,生成消息块m1和m2:
m1=―001122334455667778899AABBCCDDEEFF011122334455667778899AABBCCDDEEFF”,
m2=―01122334455667778899AABBCCDDEEFF111122334455667778899AABBCCDDEEFF”。
S2:利用消息填充模块对预处理后的消息块m1和m2同时进行填充操作,在消息块末尾补111000…01,并分割成长度为27比特的若干消息块:
m1‘=m1‘(1)||m1‘(2)=―001122334455667778899AABBCCDDEEF”||―F011122334455667778899AABBCCDDEEFFC0”;
m2‘=m2‘(1)||m2‘(2)=―01122334455667778899AABBCCDDEEF”||―F111122334455667778899AABBCCDDEEFF840”。
S3:将S2填充后的消息块输入消息存储模块;
先将S2填充后的消息块m1‘(1)、m2‘(1)存到初值为0的输入消息块r中,其中,消息块r是由64个消息块组成,r=p0||p1||…||pn,pn为长8比特的消息块,n∈[0,64),m1‘(1)、m2‘(1)的存入方式如下:
定义消息块r1=p0||p1||…||p15、r2=p32||p33||…||p47,则新的消息块
通过对应关系,将输入消息块以字节形式存入三维数组B0[4][4][4],如下所示:
B0[x][y][0]:['0x0','0x44','0x78','0xbc']['0x0','0x0','0x0','0x0']['0x1','0x45','0x88','0xcc']['0x0','0x0','0x0','0x0']
B0[x][y][1]:['0x11','0x55','0x89','0xcd']['0x0','0x0','0x0','0x0']['0x12','0x56','0x99','0xdd']['0x0','0x0','0x0','0x0']
B0[x][y][2]:['0x22','0x66','0x9a','0xde']['0x0','0x0','0x0','0x0']['0x23','0x67','0xaa','0xee']['0x0','0x0','0x0','0x0']
B0[x][y][3]:['0x33','0x77','0xab','0xef']['0x0','0x0','0x0','0x0']['0x34','0x77','0xbb','0xff']['0x0','0x0','0x0','0x0']。
S4:将三维数组B0[4][4][4]输入到初态填充模块;
S4.1:参照图3,初态填充的三维说明图,将三维数组B0[4][4][z]每一深度的二维数组B0[4][4]扩展为B1[6][6],实际扩展成新的三维数组B1[6][6][z]:
B1[x][y][0]:['0x0','0x0','0x0','0x0','0x0','0x0']['0x0','0x0','0x44','0x78','0xbc','0x0']['0x0','0x0','0x0','0x0','0x0','0x0']['0x0','0x1','0x45','0x88','0xcc','0x0']['0x0','0x0','0x0','0x0','0x0','0x0']['0x0','0x0','0x0','0x0','0x0','0x0']
B1[x][y][1]:['0x0','0x0','0x0','0x0','0x0','0x0']['0x0','0x11','0x55','0x89','0xcd','0x0']['0x0','0x0','0x0','0x0','0x0','0x0']['0x0','0x12','0x56','0x99','0xdd','0x0']['0x0','0x0','0x0','0x0','0x0','0x0']['0x0','0x0','0x0','0x0','0x0','0x0']
B1[x][y][2]:['0x0','0x0','0x0','0x0','0x0','0x0']['0x0','0x22','0x66','0x9a','0xde','0x0']['0x0','0x0','0x0','0x0','0x0','0x0']['0x0','0x23','0x67','0xaa','0xee','0x0']['0x0','0x0','0x0','0x0','0x0','0x0']['0x0','0x0','0x0','0x0','0x0','0x0']
B1[x][y][3]:['0x0','0x0','0x0','0x0','0x0','0x0']['0x0','0x33','0x77','0xab','0xef','0x0']['0x0','0x0','0x0','0x0','0x0','0x0']['0x0','0x34','0x77','0xbb','0xff','0x0']['0x0','0x0','0x0','0x0','0x0','0x0']['0x0','0x0','0x0','0x0','0x0','0x0']
其中,x∈[0,6),y∈[0,6),z=4或z=2;
S4.2:参照图4,线性反馈移位寄存器的说明图,使用该线性反馈移位寄存器计算得到第一轮的RC1值:'CD215D8F9A42',固定填充消息块B1[0][y][0]的比特值为长48比特的常数RC1,则更新后的三维数组B1[6][6][z]为:
B1[x][y][0]:['0xcd','0x21','0x5d','0x8f','0x9a','0x42']['0x0','0x0','0x44','0x78','0xbc','0x0']['0x0','0x0','0x0','0x0','0x0','0x0']['0x0','0x1','0x45','0x88','0xcc','0x0']['0x0','0x0','0x0','0x0','0x0','0x0']['0x0','0x0','0x0','0x0','0x0','0x0']
B1[x][y][1]:['0x0','0x0','0x0','0x0','0x0','0x0']['0x0','0x11','0x55','0x89','0xcd','0x0']['0x0','0x0','0x0','0x0','0x0','0x0']['0x0','0x12','0x56','0x99','0xdd','0x0']['0x0','0x0','0x0','0x0','0x0','0x0']['0x0','0x0','0x0','0x0','0x0','0x0']
B1[x][y][2]:['0x0','0x0','0x0','0x0','0x0','0x0']['0x0','0x22','0x66','0x9a','0xde','0x0']['0x0','0x0','0x0','0x0','0x0','0x0']['0x0','0x23','0x67','0xaa','0xee','0x0']['0x0','0x0','0x0','0x0','0x0','0x0']['0x0','0x0','0x0','0x0','0x0','0x0']
B1[x][y][3]:['0x0','0x0','0x0','0x0','0x0','0x0']['0x0','0x33','0x77','0xab','0xef','0x0']['0x0','0x0','0x0','0x0','0x0','0x0']['0x0','0x34','0x77','0xbb','0xff','0x0']['0x0','0x0','0x0','0x0','0x0','0x0']['0x0','0x0','0x0','0x0','0x0','0x0']
其中,x∈[0,6),z=4或z=2。
S5:参照图5,卷积压缩的三维过程,将更新后的三维数组B1输入到卷积压缩模块;
S5.1:在这个模块中,使用参数矩阵A1对数组B1[x][y][0]、B1[x][y][2]进行x-y层压缩操作,使用参数矩阵A2对数组B1[x][y][1]、B1[x][y][3]进行x-y层压缩操作,得到新的三维数组B2[4][4][z]:
其中,*表示矩阵内积操作,A1是一个上三角全1的3×3参数矩阵,A2是一个下三角全1的3×3参数矩阵,k∈[1,2],x∈[0,4),y∈[0,4);
对于S5.1的代码如下:
S5.2:在这一步中,若深度为2,则不进行深度压缩,若深度为4,则对数据进行深度压缩操作,得到三维数组B2[4][4][2],伪代码如下:
S6:利用字节替换模块,针对B2[4][4][2]中的每一个8比特消息块做字节替换操作,其中,字节替换的S盒为AES类的S盒 其对应关系为:
B3[x][y][z]=SBOX(B2[x][y][z]),
其中,x∈[0,4),y∈[0,4),z∈[0,2);
对于S6的字节替换操作的伪代码如下:
S7:利用移位混淆模块,先定义S6得到的B3[4][4][2]的组成消息块为q0,q1,…,qn,其中,qn为长8比特的消息块,n∈[0,32);
对消息块qn进行循环向右移31–Round位的操作,并存入二维数组A1[2][16],A1[2][16]通过新的对应关系,混淆了每一行16个数据块的位置,得到三维数组B4[4][4][2];
对于S7的移位混淆模块的伪代码如下:
其中,Round表示当前轮数。
S8:将三维数组B4[4][4][2]输入截断压缩模块,完成压缩;
S8.1:S7得到的三维数组B4先进入迭代阶段:
S8.1.1:S7得到的二维数组B4[4][4][2]重新放置到S4中三维数组B0[4][4][4]中,B0其余比特置0:
B0[x][y][0]=B4[x][y][0],
B0[x][y][2]=B4[x][y][1],
S8.1.2:重复S4~S7;
S8.1.3:迭代第12轮后,将输出值放入消息块r中,将S2得到的m1‘(2)、m2‘(2)经过步骤S3后,作为新的输入;
S8.1.4:重复S8.1.2,迭代12轮,迭代完毕;
S8.2:根据输出要求,对迭代后的数组B4[4][4][2]进行截断操作,并截取相应长度输出值fout:
若输出长度为128,则输出为fout[16]:
其中,y∈[0,16),
fout=‘988492D4A03A87D7EE4A72CE4FBBE386‘;
若输出长度为256,则输出为fout[32]:
fout=B4[x][y][0]||B4[x][y][1]其中,y∈[0,16),
fout=‘9576B321215DE59764630E7AB28025C80DF221F5816762408A297CB4FD3BC64E‘。
Claims (6)
1.一种面向散列函数的卷积压缩方法,包括消息处理模块、消息填充模块、消息存储模块、初态填充模块、卷积压缩模块、字节替换模块、移位混淆模块、截断压缩模块,其特征在于,卷积压缩方法包含如下步骤:
S1:利用消息预处理模块,对输入的消息m进行预处理,生成消息块m1和m2;
S2:利用消息填充模块,对预处理后的消息块m1和m2同时进行填充操作:在消息块末尾补111000…01,使填充后的消息块m1’=m1’(1)||m1’(2)||…||m1’(i);m2’=m2’(1)||m2’(2)||…||m2’(i),其中,消息m1’和m2’均为27的整数倍,消息块m1’(1),m1’(2)…m1’(i);m2’(1),m2’(2)…m2’(i)长度均为27,i为正整数;
S3:将S2填充后的消息块输入消息存储模块;
先将S2填充后的消息块m1’(1)、m2’(1)存到初值为0的输入消息块r中,其中,消息块r是由64个消息块组成,r=p0||p1||…||pn,pn为长8比特的消息块,n∈[0,64),m1’(1)、m2’(1)的存入方式如下:
定义消息块r1=p0||p1||…||p15、r2=p32||p33||…||p47,则新的消息块
之后通过一个对应关系,将输入消息块r存入数组,得到新的三维数组B0[x][y][z],其对应关系为:
p[4×(4x+y)+z]=B0[x][y][z],
其中,x∈[0,4),y∈[0,4),z∈[0,4);
S4:将三维数组B0输入到初态填充模块,得到新的三维数组B1[6][6][z],并更新三维数组B1[6][6][z];
S5:将更新后的三维数组B1[6][6][z]输入到卷积压缩模块,使用参数矩阵A1、A2对三维数组B1[6][6][z]进行x-y层压缩操作,得到新的三维数组B2[4][4][z];
S6:利用字节替换模块,针对B2[4][4][2]中的每一个8比特消息块使用非线性S盒做字节替换操作,得到新的三维数组B3[4][4][2];
S7:利用移位混淆模块,先定义S6得到的B3[4][4][2]的组成消息块为q0,q1,…,qn,则B3=q0||q1...||qn,其中,qn为长8比特的消息块,n∈[0,32);
对消息块qn进行循环向右移31–Round位的操作,之后通过一个对应关系,将消息块qn存入数组,得到新的三维数组B4[4][4][2],其对应关系为:
q[2×(4y+x)+z]=B4[x][y][z]
其中,Round表示当前轮数,x∈[0,4),y∈[0,4),z∈[0,2);
S8:将新的三维数组B4[4][4][2]输入截断压缩模块,完成压缩。
2.根据权利要求1所述的面向散列函数的卷积压缩方法,其特征在于:S1所述预处理方法为:
将n比特消息m转换成16进制,分成消息块m1和消息块m2,m=m1||m2;
若n为偶数,平均分成消息块m1和消息块m2;
若n为奇数,消息块m2长度为(n-1)/2,消息块m1的长度为(n+1)/2。
3.根据权利要求1所述的面向散列函数的卷积压缩方法,其特征在于:S4具体包括如下步骤:
S4.1:针对消息块三维数组B0[4][4][z],通过一个对应关系,将三维数组B0[4][4][z]每一深度的二维数组B0[4][4]扩展为B1[6][6],得到新的三维数组B1[6][6][z],其对应关系为:
B1[x+1][y+1]=B0[x][y],
其中,消息块B1[x][0]、B1[x][5]、B1[0][y]、B1[5][y]为填充消息块;
S4.2:更新三维数组B1[6][6][z],固定填充消息块B1[0][y][0]的比特值为长48比特的常数RCi,其他填充消息块置0,RCi表示由5级线性反馈移位寄存器得到的48比特轮常数,其多项式表达式为:
RC0的初始状态:I0=18=10010(mod2),
RCi的初始状态:Ii=(Ii-1+1)(mod2),
则截取前48比特轮常数:RCi=MSB48f(Ii(mod2));
其中,x∈[0,6),y∈[0,6),i∈[1,12],z=4或z=2。
4.根据权利要求1所述的面向散列函数的卷积压缩方法,其特征在于:S5具体包括如下步骤:
S5.1:使用参数矩阵A1、A2对三维数组B1[6][6][z]进行x-y层压缩操作,得到新的三维数组B2[4][4][z],x-y层压缩过程如下:
参数矩阵A1对B1[x][y][0]、B1[x][y][2]进行x-y层压缩:
参数矩阵A2对B1[x][y][1]、B1[x][y][3]进行x-y层压缩:
其中,*表示矩阵内积操作,A1是一个上三角全1的3×3参数矩阵,A2是一个下三角全1的3×3参数矩阵,x∈[0,4),y∈[0,4);
S5.2:若z=4,对B2[x][y][z]进行深度压缩操作,若z=2,则不进行深度压缩操作,深度压缩过程如下:
其中,x∈[0,4),y∈[0,4),z∈[0,4)。
5.根据权利要求1所述的面向散列函数的卷积压缩方法,其特征在于:S6利用字节替换模块,针对B2[4][4][2]中的每一个8比特消息块使用非线性S盒做字节替换操作,得到新的三维数组B3[4][4][2],其中,字节替换的S盒为AES类的S盒新数组B3与数组B2的对应关系为:
B3[x][y][z]=SBOX(B2[x][y][z]),
其中,x∈[0,4),y∈[0,4),z∈[0,2)。
6.根据权利要求1所述的面向散列函数的卷积压缩方法,其特征在于:S8具体包括如下步骤:
S8.1:S7得到的三维数组B4先进入迭代阶段:
S8.1.1:S7得到的三维数组B4重新放置到S4中三维数组B0[4][4][4]中,B0其余比特置0:
B0[x][y][0]=B4[x][y][0],
B0[x][y][2]=B4[x][y][1],
S8.1.2:重复S4~S7;
S8.1.3:迭代第12轮后,将输出值放入消息块r中,将S2得到的m1’(2)、m2’(2)经过步骤S3后,作为新的输入;
S8.1.4:重复S8.1.2,迭代12轮…直到S2得到的消息块m1’(i)、m2’(i)均完成加密,迭代完毕;
S8.2:根据输出要求,对迭代后的三维数组B4[4][4][2]进行截断操作,并截取相应长度输出值fout:
若输出长度为128:
若输出长度为256:
fout=B4[x][y][0]||B4[x][y][1]。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810754002.8A CN109005025B (zh) | 2018-07-11 | 2018-07-11 | 一种面向散列函数的卷积压缩方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810754002.8A CN109005025B (zh) | 2018-07-11 | 2018-07-11 | 一种面向散列函数的卷积压缩方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109005025A true CN109005025A (zh) | 2018-12-14 |
CN109005025B CN109005025B (zh) | 2021-07-02 |
Family
ID=64598865
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810754002.8A Active CN109005025B (zh) | 2018-07-11 | 2018-07-11 | 一种面向散列函数的卷积压缩方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109005025B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113983600A (zh) * | 2021-12-24 | 2022-01-28 | 深圳新贝奥数字科技有限公司 | 一种基于大数据的室内空气质量智能管理系统 |
CN115664640A (zh) * | 2022-12-23 | 2023-01-31 | 苏州浪潮智能科技有限公司 | Sha-3算法的硬件实现方法、系统、存储介质及设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3238670B2 (ja) * | 1999-03-04 | 2001-12-17 | 株式会社高度移動通信セキュリティ技術研究所 | ハッシュ関数方式 |
CN104410490B (zh) * | 2014-12-16 | 2017-08-11 | 桂林电子科技大学 | 非线性挤压保护密码s盒的方法 |
CN110690958B (zh) * | 2019-10-18 | 2022-11-22 | 中国人民解放军战略支援部队信息工程大学 | 基于海绵结构的轻量级密码杂凑方法 |
-
2018
- 2018-07-11 CN CN201810754002.8A patent/CN109005025B/zh active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113983600A (zh) * | 2021-12-24 | 2022-01-28 | 深圳新贝奥数字科技有限公司 | 一种基于大数据的室内空气质量智能管理系统 |
CN115664640A (zh) * | 2022-12-23 | 2023-01-31 | 苏州浪潮智能科技有限公司 | Sha-3算法的硬件实现方法、系统、存储介质及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109005025B (zh) | 2021-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103761068B (zh) | 优化的蒙哥马利模乘硬件 | |
CN109005025A (zh) | 一种面向散列函数的卷积压缩方法 | |
Kao et al. | Uni10: An open-source library for tensor network algorithms | |
Liu et al. | An optimized quantum representation for color digital images | |
Jahani-Nezhad et al. | Codedsketch: Coded distributed computation of approximated matrix multiplication | |
Bouloc et al. | Singular fibres of the Gelfand–Cetlin system on MANI (n) | |
Song et al. | Multi-image reorganization encryption based on SLF cascade chaos and bit scrambling | |
SE532252C2 (sv) | Förfarande och apparat för extrahering av information från en databas | |
CN111046280B (zh) | 一种应用fm的跨领域推荐方法 | |
Zhang et al. | Structure learning for headline generation | |
CN113965312B (zh) | 基于三维cap星座的空间加密方法 | |
Brothier et al. | Jones' representations of R. Thompson's groups not induced by finite-dimensional ones | |
Li et al. | A novel memcapacitor model and its application for image encryption algorithm | |
CN108156136B (zh) | 一种非直接传输和随机码本的密图无载体试题伪装方法 | |
Zhao et al. | A fine-grained privacy-preserving k-means clustering algorithm upon negative databases | |
CN114722902A (zh) | 基于自监督学习的无标注视频哈希检索方法及装置 | |
Gao et al. | Space efficient two-dimensional orthogonal colored range counting | |
Boura et al. | Differential analysis of the ternary hash function Troika | |
D’Adda et al. | Two-Dimensional Gauge Theories of the Symmetric Group S n in the Large-n Limit | |
Cary | Toward optimal ϵ-approximate nearest neighbor algorithms | |
Zhuang et al. | Full tree-based encoding technique for dynamic XML labeling schemes | |
Gold et al. | An Algorithm for Persistent Homology Computation Using Homomorphic Encryption | |
Chen et al. | Existence of positive ground state solutions for the coupled Choquard system with potential | |
CN117520647A (zh) | 基于鲁棒汉明编码的跨模态数据检索方法 | |
CN116150808A (zh) | 一种区块链溯源防伪平台 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
EE01 | Entry into force of recordation of patent licensing contract | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20181214 Assignee: Guangxi Huanzhi Technology Co.,Ltd. Assignor: GUILIN University OF ELECTRONIC TECHNOLOGY Contract record no.: X2023980046248 Denomination of invention: A Convolutional Compression Method for Hash Functions Granted publication date: 20210702 License type: Common License Record date: 20231108 |