phc-winner-argon2
orion
Our great sponsors
phc-winner-argon2 | orion | |
---|---|---|
14 | 5 | |
4,650 | 236 | |
1.1% | - | |
0.0 | 6.6 | |
about 2 months ago | about 3 years ago | |
C | Rust | |
GNU General Public License v3.0 or later | MIT License |
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.
phc-winner-argon2
- Argon2 Password Hashing Utility
- User tool to use Argon2 ideally Argon2id
-
PSA: upgrade your LUKS key derivation function
Argon2, and it's derivations, are all memory hard. Beyond that, why change from 2i to 2id?
-
Why Argon2d and not Argon2id?
''Even though https://github.com/p-h-c/phc-winner-argon2 was standardized only somewhat recently, it is the result of the https://password-hashing.net/ and was a late re-design of Argon which also picked up ideas from a few other finalists. Since then there have been attacks on it, which caused the scheme to be tweaked to counter them better, this is why we have Argon2 v1.3 as the most current version, you may want to note that most of these attacks mostly weakened Argon2i and not Argon2d. Now during the competition results came up that your defense against time-memory trade-off attacks will suffer if you make sure that your scheme is immune to the various kinds of side-channel attacks that people have come up with (which also includes more "crazy" stuff like leaked intermediate state). Because of this, it was decided that there should be two versions: Argon2i and Argon2d. One offering the best possible protection while trying its best to be immune against side-channel attacks (by using data- and password-independent memory access patterns) and the other dropping these requirements and all-out optimizing against such attacks (by using data- and possibly password-dependent memory access patterns). Argon2d offers better protection than Argon2i at the expense of being more vulnerable to side-channel attacks. Now you have to ask yourself: Do these apply? No, not really. You said that you are on Android, which is not exactly known for high platform security, so if you have an attacker in such a privileged position to execute something like cache-timing attacks or similar attacks that try to exploit memory access patterns, your user has already much bigger problems anyways. It's a similar logic as with AES: https://en.wikipedia.org/wiki/Advanced\_Encryption\_Standard#Side-channel\_attacks, but these have never been observed in the wild, probably because other options are much easier, more reliable and equally as effective. So the conclusion is: You want to use Argon2d. So for whom is Argon2i? People who need to run applications on shared hardware or where timing attacks are a real thread. For example if you run a webserver in a public cloud on shared hardware. Then you have to be worried about who else is on the same CPU. And with webservers it's also easier to measure the timing of reactions and trying to deduce information from that."
-
The forgotten mistake that killed Japan’s software industry
And if you don't like my code you should take a look at the reference implementation.
-
Can't find documentation for C library, openssl for hashing.
AFAIK, Argon2 is the algorithm that's currently recommended for this. OpenSSL doesn't have support for it, so I'd recommend using the Argon2 reference implementation instead.
-
Which argon2 crate to use?
Which one should I use in terms of performance/standards? How about their performances comparing to the c implementation, https://github.com/P-H-C/phc-winner-argon2?
-
Is anyone aware of an argon2/argon2id javascript implementation that will work in both NodeJS and the beowser and produce the same hashes?
Did you try the Argon2 test vectors on each? They should all come out the same for both implementations, any implementation that doesn't match the test vectors is buggy.
-
Intel and AMD CPUs vulnerable to a new speculative execution attack (RETBLEED)
> Is there anything stronger than blowfish?
I think you mean bcrypt..
Both Argon2 and scrypt win over that:
https://github.com/P-H-C/phc-winner-argon2
-
The entirety of Twitch has reportedly been leaked (Source codes and user payouts among the data) | VGC
Here is the documentation for Argon2 to see why and how it's different, also why it won an award: https://github.com/P-H-C/phc-winner-argon2/blob/master/argon2-specs.pdf
orion
-
orion 0.16 - const generics, organization changes and a new maintainer
GitHub: https://github.com/orion-rs/orion Crates.io: https://crates.io/crates/orion
-
Looking for an open-source project to join part-time
I'm the author and maintainer of a pure-Rust crypto library called Orion. I've been at it for a couple of years now, working on it in my spare time as well. There are a few people involved already, but we're still missing someone that is involved enough to be a "co-maintainer". There are some larger features that have been planned, but I lack the time currently to start too many new things. Of course, you can contribute in any amount you want.
-
Look-up tables for bcrypt, scrypt and Argon2?
Custom (the ones I have in the implementation I wrote)
-
How to implement a simple password-based encryption with ring?
With that said, i think multiple people are working on crypto libraries that take footguns out of it - which is what i think we definitely need. https://github.com/brycx/orion seems like a solid attempt at making crypto fool-proof , so i do have hope.
-
Does any interesting projects need help?
You're more than welcome to swing by at Orion (a pure-Rust crypto lib). You can also check the new Matrix room for a small chat.
What are some alternatives?
orion - Usable, easy and safe pure-Rust crypto
ring - Safe, fast, small crypto using Rust
scrypt - The scrypt key derivation function was originally developed for use in the Tarsnap online backup system and is designed to be far more secure against hardware brute-force attacks than alternative functions such as PBKDF2 or bcrypt.
rust-djangohashers - A Rust port of the password primitives used in Django Project.
PyNacl - Python binding to the Networking and Cryptography (NaCl) library
rust-crypto - A (mostly) pure-Rust implementation of various cryptographic algorithms.
RustCrypto - Authenticated Encryption with Associated Data Algorithms: high-level encryption ciphers
octavo - Highly modular & configurable hash & crypto library
suruga - [INACTIVE] TLS 1.2 implementation in Rust
webpki - WebPKI X.509 Certificate Validation in Rust
schannel-rs - Schannel API-bindings for rust (provides an interface for native SSL/TLS using windows APIs)
common.rs - Common Rust crypto utilities