ascon | ascon-c | |
---|---|---|
2 | 5 | |
6 | 168 | |
- | 6.5% | |
1.8 | 7.3 | |
about 3 years ago | 19 days ago | |
Go | C | |
MIT License | Creative Commons Zero v1.0 Universal |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
ascon
-
NIST Selects ‘Lightweight Cryptography’ Algorithms to Protect Small Devices
If you want a fun little project, try porting Ascon to your language of choice! Shouldn't take more than a couple hours. Here's mine (in Go): https://github.com/lukechampine/ascon
I suppose if Ascon is widely adopted, it'll be worth adding an optimized assembly implementation...
-
Lightweight Cryptography
One nice thing about lightweight crypto is that it's easy to port. Implementing ASCON in Go was pretty fun and only took an hour or two: https://github.com/lukechampine/ascon/blob/master/ascon.go
(Obviously it wouldn't make a ton of sense to use Go if you're resource-constrained, but having a library is worthwhile for compatibility reasons regardless.)
ascon-c
-
Secure Randomness in Go 1.22
Related - a week or so ago I was playing with ASCON[1], a sponge based cipher and hash function aimed at embedded systems. A passing thought was that it might be handy to use as a random number generator. When I read this post a couple days ago, out of curiosity I picked up the ASCON permutation and benchmarked it vs this one.
It was unfortunately a bit slower: ~27 ns per 64-bit value (6 round permutation) vs ~4 ns for the included ChaCha8. I suspect it could be optimized, and run at the higher output rate (8 rounds per 128-bit output). One nice thing is that it does have a smaller state of only 40 bytes.
But - for the performance, this ChaCha8 implementation is _awesome_!
[1] https://ascon.iaik.tugraz.at
- Ascon – Lightweight Authenticated Encryption and Hashing
-
Announcing Hoodik's Beta Release: Self-hosted Cloud Storage with End-to-End Encryption!
Regarding encryption, Hoodik uses 2048-bit PKCS#1 keys for RSA and AEAD Ascon-128a for AES. It also works with a chunk-based method for file storage, ensuring that simultaneous uploads and downloads occur seamlessly.
-
data encryption for embedded systems
https://ascon.iaik.tugraz.at/ This got standardized as the leightweight cryptographic standard.
-
NIST Selects ‘Lightweight Cryptography’ Algorithms to Protect Small Devices
https://github.com/ascon/ascon-c
I was hoping for a simple piece of C code that did the job under 30 lines ... as usual, it's a forest of implementations.
What are some alternatives?
hoodik - Self hosted, easy to install end to end encrypted storage drive
Tiny AES128 in C - Small portable AES128/192/256 in C
arduino-audio-tools - Arduino Audio Tools (a powerful Audio library not only for Arduino)
arduinolibs - Arduino Cryptography Library
tinyECC-ArduinoIDE - Elliptic Curve Cryptography for Arduino Micro-controllers.