Cipher Fayadh
Block cipher Feistel 128-bit dengan fungsi putaran sigma-delta
Loading...
Searching...
No Matches
sbox.hpp File Reference

S-box 8-bit: substitusi byte bijektif tanpa fixed point. More...

#include <cstdint>

Go to the source code of this file.

Functions

uint8_t sbox (uint8_t x)
 Substitusi satu byte.
uint32_t sbox32 (uint32_t a)
 Substitusi tiap byte pada nilai 32 bit (1 word).
uint64_t sbox64 (uint64_t a)
 Substitusi tiap byte pada nilai 64 bit.

Variables

const uint8_t SBOX [256]
 Tabel S-box 256 entri, bijektif, tidak ada fixed point.

Detailed Description

S-box 8-bit: substitusi byte bijektif tanpa fixed point.

Tabel dibangkitkan oleh tools/gen_sbox.cpp dengan PRNG xorshift64 (seed = digit pi) dan Fisher-Yates shuffle, dipilih dari 10000 kandidat berdasarkan nonlinearity tertinggi lalu differential uniformity terendah. Jalankan make sbox untuk regenerasi deterministik.

Semua fungsi substitusi memakai tabel SBOX yang sama, hanya berbeda lebar input.

Function Documentation

◆ sbox()

uint8_t sbox ( uint8_t x)

Substitusi satu byte.

Parameters
[in]xByte input.
Returns
SBOX[x].

◆ sbox32()

uint32_t sbox32 ( uint32_t a)

Substitusi tiap byte pada nilai 32 bit (1 word).

Tiap dari 4 byte diganti dengan nilai SBOX secara independen. Dipakai di fungsi F (round function).

Parameters
[in]aNilai 32 bit.
Returns
Nilai dengan tiap byte sudah disubstitusi.

◆ sbox64()

uint64_t sbox64 ( uint64_t a)

Substitusi tiap byte pada nilai 64 bit.

Tiap dari 8 byte diganti dengan nilai SBOX secara independen. Dipakai di key schedule.

Parameters
[in]aNilai 64 bit.
Returns
Nilai dengan tiap byte sudah disubstitusi.