7 ms·
Great project, I applaud the effort! Some curious questions: - Where exactly does "zero-knowledge" play a role here? Does this provide steganography? Or, what
by vog 9y ago
Great project, I applaud the effort! Some curious questions:
- Where exactly does "zero-knowledge" play a role here? Does this provide steganography? Or, what is meant?
- Why do they use libsodium (excellent choice, but C) instead of a native Rust crypto library?
- Does this only work with Rust applications?
- zaarn 9y agoApparently "Zero Knowledge" is used in the more modern way; it's encrypted with a password.
- betterunix2 9y agoThat is not exactly what "zero knowledge" means, even in modern times...
- zaarn 9y agoSpideroak disagrees.
- vog 9y agoTo be fair, they use the term "no knowledge", not "zero knowledge": https://spideroak.com/no-knowledge/ https://spideroak.com/no-knowledge/
- zaarn 9y agoThat's what they now use, previously they did use zero knowledge.
- JetSetWilly 9y agoAnd then they realised it was wrong: https://spideroak.com/articles/why-we-will-no-longer-use-the-phrase-zero-knowledge-to-describe-our-software/ https://spideroak.com/articles/why-we-will-no-longer-use-the...
- zaarn 9y agoI'm aware, but they were using it wrong, which I was implying with my comment.
- floatboth 9y agoWhy do cryptographers insist that "zero knowledge" on its own, WITHOUT (!!!) the words "proof" or "protocol", can't be used as a generic term to mean whatever?
- betterunix2 9y agoNobody suggests that you cannot make statements such as, "The President has zero knowledge on every important issue." However, in the context of cryptography, privacy, or security generally, yes there is a need to avoid muddying the waters by appropriating terms with specific technical meaning. We need to have a common agreement about what words mean before we have discuss anything.
- 0xFFC 9y agoDoes Rust have official implementations of Crypto algorithms (in pure Rust)? I am not talking about some github repo in some dudes repository which contributes to it in his spare time.
- steveklabnik 9y agoI'm not sure what you mean by "official" exactly, but I think for any of them, the answer would be "no". That said, https://crates.io/crates/ring https://crates.io/crates/ring is what most people suggest you should reach for: it's a slow and steady port of BoringSSL's code to Rust + asm. Of course, that only has a subset of crypto; there's other great projects too, the tor people have been putting out crates like https://github.com/isislovecruft/curve25519-dalek https://github.com/isislovecruft/curve25519-dalek
- vog 9y agoIs there something like "ring" for libsodium instead of BoringSSL? Also, does it really make sense to create a separate crate for every crypto primitive (or small set of primitives)? This has so many obvious disadvantages compared to the "libsodium approach".
- steveklabnik 9y agoI think it has pros and cons, honestly. I'm not aware of anyone porting libsodium, though it's also not my area of specialty.
- vog 9y agoOf course maintaining some kind of "libsodium for rust" is more work, but on the other hand, a central project for rust crypto stuff is highly desirable: Even if initially run by mere crypto enthusiasts, such a central place is needed for the real crypto experts to condensate. Then, obsolete crypto can centally be deprecated and put with a warning, and competing implementations can be resolved at a central place getting (hopefully) all knowing people together to discuss. What's the alternative? That each individual developer has to pick and combine their favourite set of crypto libs, making crypto libs spread by popularity (which is more often than not a self-fulfilling prophecy) rather than actual quality.
- burmecia 9y agoThanks for your praise. To answer your questions: - Where exactly does "zero-knowledge" play a role here? Does this provide steganography? Or, what is meant? As I said in https://github.com/zboxfs/zbox/issues/4 https://github.com/zboxfs/zbox/issues/4, this term was originally for marketing purpose. It means no data or metadata can be leaked to underlying storage, so for an outsider there no knowledge about its content. But it turns out many people think it is misleading to zero knowledge proof in cryptography, so I have already changed it "zero-details". - Why do they use libsodium (excellent choice, but C) instead of a native Rust crypto library? libsodium is a great library, it is fast, sophisticated, mature and has some advanced crypto features I like, such as Argon2 hash and AES nonce extension. I know there are some Rust crypto libraries are great, but overall it is still young and need improvement. - Does this only work with Rust applications? Yes, for now only Rust. But I am considering add FFI interface so it can be used by other languages.