An eight staged symmetric block cipher crypto pipeline to improve advanced encryption standard based on meta DES, 3DES with P-Box S-Box.
The following image shows you an example of a symmetric cipher 8 staged encryption pipe and the corresponding decryption inverse pipe.
Before entering the encryption pipe, the file can be zipped to avoid huge amount of symmetric cipher blocks and after exiting the encryption pipe the file can be ascii encoded with base64 mime, uuencode, xxencode or hex16, because symmetric chiphered binary files might lose their block padding.
Implementation is based on my blog article: Making symmetric cipher encryption meta permutating again, including the follwing symmetric cipher algorithms:
- Aes, AesLight, AesNet, Rijndael
- Bruce Schneier's BlowFish, 2-Fish, 3-Fish, 3-Fish-256
- Camellia, CamelliaLight
- Cast5, Cast6
- National security agency's Des, 3-Des, Triple-Des.Net, SkipJack
- Dstu7624
- Gost28147, Idea, Noekeon
- RC2, RC532, RC564, RC6
- Seed, SM4
- Serpent, Tnepres
- Tea, XTea
- and my own simplest below average symmetric block cipher alogrithms: ZenMatrix, ZenMatrix2
Online latex help
You need since 2025-11-15 Visual Studio 2026 and C# .NetCore 10.0 to compile C# csproj.
https://github.com/heinrichelsigan/PermAgainCrypt/releases/
- PermAgainCrypt_WinForm_NetCore10_x86+x64
- Rendundant website is io.cqrxs.eu/download
- walk through: https://youtu.be/GX9q1sRx3nE
- https://youtu.be/5J3R1gg-jjA
- https://youtu.be/xpnnrxc2znA
- https://youtu.be/tY2DPsZjbVQ
- Great Thanks to the Legion of the Bouncy Castle, git bcgit
- libtom.net, git libtom/libtomcrypt
- cryptopp.com, git weidai11/cryptopp
Console application let you execute cipherpipe as standard console programm. options can be set by argument parameters.
U:\source\PermAgainCrypt\Deploy\console\x86>EU.CqrXs.Console.exe
Usage: EU.CqrXs.Console.exe
-i ├─ --inFile= | --inText={string|EnviromentVariable} | --inStd
|
-k ├─ --key=passKey encrypt
-H ├─ --Hash={Blake2xs|BCrypt|CShake|Dstu7564|Hey|MD5|Oct|RipeMD256|SCrypt|Sha1|Sha256|Sha384|Sha512|Whirlpool|TupleHash}
| default: Hex
-z ├─ --zip={gzip|bzip2|zip}
| default: none
-C ├─ --CipherAlgost={algo1,algo2,...}
| └ algo:
│ Aes,AesLight,Rijndael,Des,Des3,Dstu7624,
│ Aria,Camellia,CamelliaLight,Cast5,Cast6,
│ BlowFish,Fish2,Fish3,
│ Gost28147,Idea,Noekeon,
│ RC2,RC532,RC564,RC6,
│ Seed,SkipJack,Serpent,SM4,
│ Tea,Tnepres,XTea,
│ ZenMatrix,ZenMatrix2
│ symmAlgo:
│ Aes,BlowFish,Camellia,Cast6,Des3,Fish2,Fish3,Gost28147,Idea,RC532,Seed,SkipJack,Serpent,Tea,XTea,SM4
-S ├─ --SymmCipher
-e ├─ --encode={raw|hex16|hex32|base32|base64|uu}
| default: base64
-D ├─ --Decrypt [ = Inverse_Pipe_Direction ]
|
-o ├─ --outFile= | --outText=EnviromentVariable | --outStd
|
-V ├─ --verbose
-? ├─ --gethelp
Examples:
EU.CqrXs.Console.exe -V -i=.\README.MD -e=base16 -o=.\README_MD.base16
EU.CqrXs.Console.exe -V -D -i=.\README_MD.base16 -e=base16 -o=.\READ_MD.txt
EU.CqrXs.Console.exe -V -i=.\README.MD -k=Hallo -z=gzip -C=BlowFish,Fish2,Fish3 -e=base64 -o=.\README.MD.gz.BfF.base64
EU.CqrXs.Console.exe -V -D -i=.\README.MD.gz.BfF.base64 -e=base64 -C=BlowFish,Fish2,Fish3 -p=Hallo -z=gzip -o=.\READ_GUNZIP.txt
EU.CqrXs.Console.exe -V -i=.\README.MD -z=bz -k=heinrichelsigan.area23.at -H=Whirlpool -e=hex32 -o=.\README.MD.Whirlpool.bz.Hex32
EU.CqrXs.Console.exe -V -D -i=.\README.MD.Whirlpool.bz.Hex32 -e=hex32 -k=heinrichelsigan.area23.at -H=Whirlpool -z=bz -o=.\READ_BUNZIP.txt
EU.CqrXs.Console.exe -V -i=.\README.MD -z=zip -k=io.cqrxs.eu -C=Aes,Blowfish,Des3,Fish2,Fish3,Seed,Serpent,SM4 -H=SCrypt -e=uu -o=.\README.MD.SCrypt.zip.uu
EU.CqrXs.Console.exe -V -D -i=.\README.MD.SCrypt.zip.uu -e=uu -k=io.cqrxs.eu -C=Aes,Blowfish,Des3,Fish2,Fish3,Seed,Serpent,SM4 -H=SCrypt -z=zip -o=.\READ_UNZIP.txt
EU.CqrXs.Console.exe -V -i=.\README.MD -S -z=zip -k=io.cqrxs.eu -H=BCrypt -e=xx -o=.\README.MD.BCrypt.zip.xx
EU.CqrXs.Console.exe -V -D -i=.\README.MD.BCrypt.zip.xx -S -e=xx -k=io.cqrxs.eu -H=BCrypt -z=zip -o=.\README_SYM_BCRYPT_UNZIP.txt
U:\source\PermAgainCrypt\Deploy\console\x86>
- RC564 is not well implemented by me in java.
- ZenMatrix has now been already ported by me to java.
- ZenMatrix2, BZip2 and Zip aren't already ported by me to java.
- Ascon256 and Xoodyak have currently every replaced by Oct and TupleHash




