#标量域 #零知识 #加密

无std 黄昏-哈得斯

Bls12-381标量域上Hades252排列算法的实现

20个版本 (11个破坏性版本)

0.24.1 2024年1月24日
0.23.0 2023年12月13日
0.22.1 2023年11月22日
0.21.0 2023年6月28日
0.15.0-pre.02021年3月22日

#877 in 密码学

Download history 36/week @ 2024-04-22 62/week @ 2024-04-29 37/week @ 2024-05-06 37/week @ 2024-05-13 56/week @ 2024-05-20 39/week @ 2024-05-27 38/week @ 2024-06-03 36/week @ 2024-06-10 21/week @ 2024-06-17 35/week @ 2024-06-24 7/week @ 2024-07-08 27/week @ 2024-07-15 3/week @ 2024-07-22 145/week @ 2024-07-29 19/week @ 2024-08-05

每月194次下载

MPL-2.0许可证

61KB
371

Build Status Repository Documentation

Hades252(已弃用)

❗ 此crate已弃用。
hades排列已移至dusk-poseidon

Bls12-381标量域上Hades252排列算法的实现。

文档

要生成Hades252文档

make doc
make doc-internal

使用

运行以下命令将Hades252添加到项目'Cargo.toml'文件的依赖部分

cargo add dusk-hades

Hades252的宽度等于5;可以使用不同的值,请参阅如何生成资源

参数

  • p = 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001

  • 安全性级别为117-120位安全性[NCCG]位。

  • width = 5

  • 完整轮数数量 = 8。开始和结束各有四个完整轮,每个完整轮有WIDTH个五次S-盒。

  • 部分轮数数量 = 59,每个部分轮有一个五次S-盒和(width-1)个恒等函数。

  • 轮常数数量 = 960

ScalarStrategy示例

use dusk_bls12_381::BlsScalar;
use dusk_hades::{ScalarStrategy, Strategy, WIDTH};

// Generate the inputs that will permute.
// The number of values we can input is equivalent to `WIDTH`

let input = vec![BlsScalar::from(1u64); dusk_hades::WIDTH];
let mut output = input.clone();

let mut strategy = ScalarStrategy::new();
strategy.perm(output.as_mut_slice());

assert_ne!(&input, &output);
assert_eq!(input.len(), output.len());

偏差

参考

https://eprint.iacr.org/2019/458.pdf

依赖关系

~2.1–3MB
~67K SLoC