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.0 | 2021年3月22日 |
#877 in 密码学
每月194次下载
61KB
371 行
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://extgit.iaik.tugraz.at/krypto/hadesmimc/blob/master/code/calc_round_numbers.py
-
MDS矩阵是一个柯西矩阵,其生成方法在“具体实例化Poseidon和Starkad”部分有说明。
参考
依赖关系
~2.1–3MB
~67K SLoC