God that took a while…
“STOMME KANKER PROGRAMMEERTAAL” – me after finding out that the lib I was using no longer worked.
So, over the past few months I haven’t posted much and somehow became dumber than I was at the start of the year; and that’s on me.
With that being said I’ve began to restart development on DNAChat, which has changed its name many times over the past few days due to no fault of my own, well.. sort of.
DNAchat currently stands for Dilithium Node Authenticated Chat.
It used to stand for Decentralized NTRU Authenticated Chat.Why did it change you may ask? Python libraries. GOD PYTHON I HATE PYTHON LIBRARIES!
So at first we were using X3DH and a block cipher I made from scratch, left for 4 months and forgot how the damn thing worked, quickly gave up on that as X3DH has no implementation other than MLS and the Signal Protocol and was an utter pain in the backside to set up properly, key exchanges were rough, even on separate layers, delays and ports too; so that idea went in the bin.
Next it was NTRU and xChaCha20, two very strong and pretty efficient algorithms, providing post-quantum protection and also a really good cipher suite, if it had a proper implementation. I spent around 3 hours with one of my family members trying to get a good explanation of why SymPy has a stroke every time I try and feed it some polynomial functions, but at least my maths is a little better now. Then suddenly xChaCha20 decided to throw a hissy fit, so we moved to a more simple, but secure Salsa20.
After moving through some libraries we gave up on NTRU, here are the libraries and their following reasons
- PQCrypto currently has errors when using the ._kem module, getting the same error thrown to me just to figure out the lib hasn’t been maintained since 2020 and is basically obsolete now. This goes for all functions (ntruhps2048509-4096821 and kyber768-1024 including 90s ver)
- PyCrypto, whilst not directly related will not actually be built on my main, virtual, arch and fedora machines. Simply just use the “old” version with “pip install pycryptodome” and it’d just work perfectly fine with minimal strokes
- pqNtru currently has a stroke when doing a single polynomial function due to SymPy being stupid sometimes, breaks the entire library and screams about a Unification error.
THANK YOU MATTIAS Aabmets!! even though you post a lot of things about Donald Trump and you’re Estonian (i really fucking hate you for that), i’ll still link your repo https://github.com/aabmets/quantcrypt
Whilst i never got to fix NTRU, i moved to Dilithium, to give him credit he did do a great job when producing this library, there are a few slipups like in https://github.com/aabmets/quantcrypt.wiki.git for DSS he references KEM, took me ages to realise this due to how fucking stupid I am, but we got there in the end.
Expect more from me soon.
</mpxt>