CN109005025A - 一种面向散列函数的卷积压缩方法 - Google Patents

一种面向散列函数的卷积压缩方法 Download PDF

Info

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
Application number
CN201810754002.8A
Other languages
English (en)
Other versions
CN109005025B (zh
Inventor
韦永壮
刘晓强
武小年
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guilin University of Electronic Technology
Original Assignee
Guilin University of Electronic Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guilin University of Electronic Technology filed Critical Guilin University of Electronic Technology
Priority to CN201810754002.8A priority Critical patent/CN109005025B/zh
Publication of CN109005025A publication Critical patent/CN109005025A/zh
Application granted granted Critical
Publication of CN109005025B publication Critical patent/CN109005025B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0643Hash 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]。
CN201810754002.8A 2018-07-11 2018-07-11 一种面向散列函数的卷积压缩方法 Active CN109005025B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 中国人民解放军战略支援部队信息工程大学 基于海绵结构的轻量级密码杂凑方法

Cited By (2)

* Cited by examiner, † Cited by third party
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