近期区块链中 poc(proof of capacity)共识机制越来越火。在市面中正在使用 poc 共识机制的币就有 burst、btchd 等。由于 poc 的自身机制,使得其对加密函数的复杂度和运算速度有一定的要求,而 shabal 函数正好可以实现这个特殊的需求,所以在 burstcoin 中,广泛使用 shabal 算法作为 poc 共识的基础。
shabal 名字来源于一位名为 s´ebastien chabal 的法国橄榄球运动员,因为其比赛时的勇猛表现和他那标志性的胡须和长发,被人起了个绰号叫“穴居人”,可见当时 shabal 的团队对于他们研发的算法的期望是很高的。
shabal 函数是加密哈希函数的一种,由法国代理商(anr)组织和研究的一个项目,其团队成员均为业界有一定影响力的人物。shabal 在名字上与常用的另一种加密哈希函数 sha-256 相似,但实则完全不同。sha-256 全称为(secure hash algorithm),即安全哈希算法,是美国国家安全局(nsa)设计,美国国家标准与技术研究院(nist)发布的一系列密码散列函数的一个变体。而 shabal-256 是 shabal 函数的一个变体,作为标准哈希函数的竞争者之一被提交给 nist,虽然最后 shabal 并没有被选中,但是因为其优秀的性能和特点,也越来越广泛地被大家所认知。
shabal 算法
shabal算法是一种很慢的算法,允许输入任意长度的有序位序列,甚至是一个空序列。也适应任何长度的字节流,但是由于考虑到安全性,适用长度最好小于 2^7 位。输入长度可以是任何整数值和8的倍数。假如给定一个bit序列,按其左右顺序索引编号,即第一位的索引为0。使用左和右来描述有序的位序列:序列中的第一位称为最左位,最后一位称为最右位。
shabal的使用的数据(数据的预处理):首先输入序列,即以默认方式添加额外的长度不等于0并且是32的倍数的bit数加入序列,然后将序列分成8位组,此时一个组即为一个byte(字节)。第一个字节由最左边的八位组成,接下来的八位为第二个字节,依此类推。由于输入的序列长度是32的倍数,所以这个过程中会产生整数个字节,并且字节数是4的倍数。每个字节的值都在0和255之间(包括255)。
此时字节值可以看做是以 2 为基底从 8 位的序列中派生出来的,此时最左边的字节是最重要的(其代表了数的正负)。如果一个八位的位组被表示为 b0,b1,b2.。.b7,那么这个字节的值等于
在 byte 字节产生时,会给最左边的位自动设置为 1(即表示为一个正数)。所以当所给这个字节输入一个 8 位的数时,其数的最大值是 128,因为最左边的位数不表示数的大小,而表示的是数的正负。
shabal 算法的优点和缺点:
优点:
1. 设计简单:shabal 在设计的一个目标就是保持简单的同时保证其安全性。
2. 安全性:shabal 的结构式不可微的,并且有足够良好的次原象攻击抗性(这一点是可以被证明的),并且这一点也是 shabal 算法与其他的哈希算法相比的主要优势之一。
3. 性能相对较好:shabal 中没有使用其他加密算法中非常流行的 s-box ,因为它的性能成本非常高,对于硬件和软件都是如此。虽然使用它能够抵抗各种各样的攻击,但是在这里并没有采用它,所以 shabal 能够拥有相对较好的性能
缺点:
1. 速度较慢
上图表示了在不同的平台中不同算法的表现。shabal 的表现处于中下游水准,所以shabal是一个相对来说较慢的算法。
2.数据量相对较大:
上图表示了不同算法的数据量,shabal 算法也处于一个比较尴尬的位置,相对于其他算法来说,shabal的数据量是比较大的。
Altium免费的CircuitMaker原理图捕获和电路板布局工具介绍
变压器局部放电的产生和危害
R&S推出新一代便携式数字电视信号发生器SFC-U
电源转换芯片TPS5430的特点及应用
PLC程序加密的6个小技巧
Shabal算法的优点和缺点解析
消防应急疏散指示系统在某居民社区综合体项目的应用
微雪电子QFN-20BT-0.5-01 QFN20测试座介绍
脑机接口技术的实现方法分析
电工基础知识讲解
低功耗MS5199T模数转换器的简单介绍
比特币期货来临,开盘报15000美元,现货价格约为15206美元
通过一个GSM源放大器仿真实例学习电路包络仿真的基本方法和技巧
基于石墨烯器件发射的远红外波显著抑制肿瘤细胞
xilinx fpga开发软件
三星收购QD Vision继续押宝QLED,它比OLED强在哪?
基于NA200系列PLC在异纤清除机的设计方案
中科创达携多款产品亮相2023世界新汽车合作技术生态展
区块链在电子合同系统中的应用
中国电信发布新一代OTN精品光网 逐步延伸至全国