Skip to content

heinrichelsigan/PermAgainCrypt

Repository files navigation

8-staged symmetric block cipher pipeline

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:

Online latex help

C# solution and all projects ported to .NetCore 10

You need since 2025-11-15 Visual Studio 2026 and C# .NetCore 10.0 to compile C# csproj.

Download

Releases

https://github.com/heinrichelsigan/PermAgainCrypt/releases/

WebForm online test:

Videos

Credits

WinFormCore:

image

Console Application

2026-01-27_EU_CqrXs_Console

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>

2026-01-25_javax_swing_JFrame_java

Java C# compare encoding / decoding

  • 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
2026-01-27_Screenshot_Java_CSharp

Peek_2026_01_28_0340

Screenshot_20260202-081909