# SLASH-128 bit

A 128 bit substitution permutation network block cipher

SLASH is a 10 round substitution-permutation network with a 128 bit block size and a 256 bit internal key.

Round structure is as shown in 'SLASH 128 bit round function.bmp' file. Each round conponment is unique for each round and key derived using a custom sponge construction hash of the main key that has a slightly different string XOR'ed to it eg("SBOX_KEY" for sbox generation,"PBOX_KEY" for pbox generation,"ROUND_KEY" for round key generation).The aim of this is to make it difficult for an attacker to derive the main key or any other round conponments from any leaked sboxes,pboxes or round keys.

This SPN uses a ARX based mix function for diffusion(as shown in "SLASH 32 bit mix function.bmp", derived from Salsa20). This mix function has an input and output of 4 bytes, on its own this function provides very little security, so the pboxes,sboxes and round keys are needed to make this secure. Each individual step within each round can be considered cryptographically weak, combined together and they are strong.