本发明专利技术提供了一种轻量级区块链中快速生成消息摘要的方法,基于sponge迭代结构,结合一种基于元胞自动机的新型内部置换函数,将任意长度的输入转换为固定长度的输出。该方法利用了sponge结构无需前向反馈的优点,减少了生成消息摘要在硬件实现的消耗。利用元胞自动机规则构造的内部置换函数分为线性与非线性层,元胞自动机规则演化的局部性、复杂性与并行性有效提升了算法的扩散性与混淆性,且兼顾算法的软件与硬件实现效率。本发明专利技术提出的快速生成消息摘要的方法既可满足轻量级区块链的安全需求,也能满足资源受限设备的硬件实现要求。
A fast message digest generation method in lightweight blockchain
【技术实现步骤摘要】
一种轻量级区块链中快速生成消息摘要的方法
本专利技术涉及网络安全领域,具体涉及一种轻量级区块链中快速生成消息摘要的方法。
技术介绍
区块链是一种去中心化的分布式账本,从技术上解决了基于信任的中心化模型带来的安全问题。区块链以密码学算法为基础,利用哈希函数与时间戳机制保证数据的可追溯和不可篡改。利用哈希函数生成消息摘要是密码学领域一项重要的技术,也是区块链中不可或缺的内容。哈希函数可将任意长度的文件、文本等数据转换为固定长度的输出,在消息认证、数字签名、密钥交换与伪随机序列生成等方面有着广泛的应用。随着区块链应用于物联网领域,利用传统的哈希函数生成消息摘要的方法难以满足资源受限设备的安全需求,设计轻量级的方法成为了研究热点。设计轻量级的消息摘要生成方法,sponge结构是目前常用的结构之一,采用简单的迭代结构,通过固定长度的内部状态和置换函数将不定长度的消息压缩成固定长度的输出。由于sponge结构没有前向反馈,硬件实现的消耗更小,因此适用于轻量级哈希函数的设计。现有的轻量级方法中用到的置换函数大多采用已有的分组加密算法、非线性移位寄存器、流密码等,如高级加密标准AES、PRESENT等。虽然算法的安全性得到保证,但是算法的软件及硬件的实现效率不能适应资源受限环境的应用需求。因此需要设计既能保证安全性,又可以兼顾软硬件实现效率的生成消息摘要的方法。
技术实现思路
针对上述现有技术不适用于资源受限的设备的问题,本专利技术提出一种轻量级区块链中快速生成消息摘要的方法。此方法基于sponge结构,利用元胞自动机的高并行性和局部作用的复杂性设计内部置换函数,通过使用不同的规则设计线性层与非线性层,以实现较好的扩散和混淆效果,提升算法的安全性,并且兼顾算法的软硬件实现效率。为实现上述目的,本专利技术具体技术方案如下:一种轻量级区块链中快速生成消息摘要的方法,包含初始化阶段、absorbing阶段和squeezing阶段;其中,初始化阶段,设置系统初始状态,并对任意长度为L的消息进行填充后分块;absorbing阶段,利用基于元胞自动机的内部置换函数F(·)演化系统状态;squeezing阶段,输出函数F(·)的演化结果直至达到摘要值的长度。进一步的,上述初始化阶段包括如下步骤:1.1)设置系统初始状态IV,IV=0||…||0||n||b||r||r′,其中n为摘要值的长度,b=r+c是IV的长度,r为吞吐率,c为系统容量,r′是每次演化的输出长度;1.2)对输入消息的长度L进行判断,若满足L≡0modr,则转步骤1.4),否则转步骤1.3);1.3)对输入的消息进行填充,填充方法是在消息后附上1位“1”以及x位的“0”,使得x+1+L≡0modr;1.4)对消息分块,每块长度为r。进一步的,上述absorbing阶段包括如下步骤:2.1)系统初始状态IV的最右r位与第一个消息块进行异或运算,结果作为基于元胞自动机的内部置换函数F(·)的输入;2.2)前一步的输出与下一个消息块进行异或运算,结果输入函数F(·);2.3)重复上述步骤,直至最后一个消息块完成步骤2.2)的操作。进一步的,上述squeezing阶段包括如下步骤:3.1)absorbing阶段结束后,输出系统状态的最右r′位;3.2)系统状态作为函数F(·)的输入,继续演化,结束后输出最右r′位;3.3)重复上述步骤,直至所有输出连接在一起达到n位,即消息的摘要。进一步的,上述步骤2.1)中元胞自动机的内部置换函数F(·)由线性层与非线性层组成;在线性层,系统状态由元胞自动机的初始规则90/150号规则进行演化,输入状态的首位作为控制字符,决定每一轮演化中使用的规则;非线性层是由多个并行的4×4的S盒组成的,其中,S盒由四个非线性的规则30、149、202和218生成的,其代数范式如下:本专利技术提供了一种轻量级区块链中快速生成消息摘要的方法,基于sponge迭代结构,结合一种基于元胞自动机的新型内部置换函数,将任意长度的输入转换为固定长度的输出。该方法利用了sponge结构无需前向反馈的优点,减少了生成消息摘要在硬件实现的消耗。利用元胞自动机规则构造的内部置换函数分为线性与非线性层,元胞自动机规则演化的局部性、复杂性与并行性有效提升了算法的扩散性与混淆性,且兼顾算法的软件与硬件实现效率。本专利技术提出的快速生成消息摘要的方法既可满足轻量级区块链的安全需求,也能满足资源受限设备的硬件实现要求。附图说明图1为本专利技术中sponge迭代结构。具体实施方式下面结合附图以及具体实施对本专利技术做进一步的详细描述,但本专利技术的保护范围并不限于此。本专利技术的轻量级快速生成消息摘要的方法采用了sponge迭代结构,包含初始化阶段、absorbing阶段和squeezing阶段,如图1所示,包括如下步骤:1)初始化,设置系统初始状态。任意长度为L的消息作为输入,对消息进行填充后分块。本专利技术中,由于输入的消息长度是任意的,为了能够利用长度固定的置换函数进行演化,需要将输入的消息按固定长度进行分组。消息分组长度的大小对算法的效率及安全有着直接的影响,可依据具体应用场景对安全或效率的需求设置不同的值。消息的长度不一定是设定的分组长度的倍数,因此先填充再分组,填充序列的首位为1,后面若干个0,以确保最后一个分组不全为0。初始化阶段的具体步骤如下:1.1)设置系统初始状态IV,IV=0||…||0||n||b||r||r′,其中n为摘要值的长度,b=r+c是IV的长度,r为吞吐率,c为系统容量,r′是摘要值的输出长度。1.2)对输入的消息长度L进行判断,若满足L≡0modr,则进入步骤1.4),否则进入步骤1.3)。1.3)对输入的消息进行填充,消息后附上1以及x位的0,使得x+1+L≡0modr。1.4)填充后的消息分组,每组长度为r。2)absorbing阶段,利用基于元胞自动机的内部置换函数F(·)进行演化。本专利技术中,主要使用sponge迭代结构,通过absorbing阶段,将输入的消息与系统的初始状态结合,得到新的系统状态后使用基于元胞自动机的内部置换函数进行演化。系统状态的长度远大于消息分组的长度,每次一组消息与部分系统状态进行异或运算之后的结果作为内部置换函数的输入,置换函数的结果再与下一组消息进行异或运算,重复上述步骤直至所有最后一组消息与系统状态异或,并使用置换函数进行演化。这个过程使得消息中的信息得到充分的扩散,置换函数中的线性层与非线性层使得输出值近似伪随机序列,显著提升算法的扩散性与混淆性效果。absorbing阶段的具体步骤如下:2.1)初始状态IV的最右r位与第一个消息块进行异或运算,结果作为基于元胞自动机的内部置换函数F(·)的输入。2.2)前一步的输出与下一个消息块进行异或运算,结果输入函数本文档来自技高网...
【技术保护点】
1.一种轻量级区块链中快速生成消息摘要的方法,其特征在于包含初始化阶段、absorbing阶段和squeezing阶段;所述初始化阶段,设置系统初始状态,并对任意长度为L的消息进行填充后分块;所述absorbing阶段,利用基于元胞自动机的内部置换函数F(·)演化系统状态;所述squeezing阶段,输出函数F(·)的演化结果直至达到摘要值的长度。/n
【技术特征摘要】
1.一种轻量级区块链中快速生成消息摘要的方法,其特征在于包含初始化阶段、absorbing阶段和squeezing阶段;所述初始化阶段,设置系统初始状态,并对任意长度为L的消息进行填充后分块;所述absorbing阶段,利用基于元胞自动机的内部置换函数F(·)演化系统状态;所述squeezing阶段,输出函数F(·)的演化结果直至达到摘要值的长度。
2.如权利要求1所述的轻量级区块链中快速生成消息摘要的方法,其特征在于,所述初始化阶段包括如下步骤:
1.1)设置系统初始状态IV,IV=0||…||0||n||b||r||r′,其中n为摘要值的长度,b=r+c是IV的长度,r为吞吐率,c为系统容量,r′是每次演化的输出长度;
1.2)对输入消息的长度L进行判断,若满足L≡0modr,则转步骤1.4),否则转步骤1.3);
1.3)对输入的消息进行填充,填充方法是在消息后附上1位“1”以及x位的“0”,使得x+1+L≡0modr;
1.4)对消息分块,每块长度为r。
3.如权利要求1所述的轻量级区块链中快速生成消息摘要的方法,其特征在于,所述absorbing阶段包括如下步...
【专利技术属性】
技术研发人员:张星,王昌达,赵国荣,赵惠丹,宋雪桦,金华,李晓薇,曾宇,姚正发,
申请(专利权)人:诺得物流股份有限公司,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。