Coder Social home page Coder Social logo

A little overengineered about puree HOT 1 CLOSED

anon17 avatar anon17 commented on September 3, 2024
A little overengineered

from puree.

Comments (1)

notfed avatar notfed commented on September 3, 2024

Thank you for your feedback.

If you support slots, is there a reason to not use them?

The truth is, I agree with you: your design is cleaner. The rationale for this, which admittedly was left undocumented, was to allow maximum header compression while still retaining the extensibility benefits of the format. My goal was to make the header small enough so that PUREE could double as a file format: the way it's specified currently allows the header to reduce to a mere 64-bytes of overhead.

In hindsight, I've committed a blatant violation of YAGNI: I attempted to make the format cover more scenarios, without an obvious need to do so. Was it justified here? Do people need to vary their file encryption algorithms as much as they do disk encryption algorithms? No, probably not: (1) it's harder to justify the need for alternative ciphers for files, and (2) there could easily be different specs for disks and files. But PUREE has dared to combine them into one, at the cost of a slight format complication, take it or leave it.

If you want to provide 3 bits of public information, you can encode them in random data.

I think you make a valid point, and really appreciate that you read the paper and put thought into it. What you're suggesting is essentially a time tradeoff: decrypting the header will be faster, but encrypting it will be slower. And since generally encryption will only happen once, this is a reasonable tradeoff to make.

However, consider that, with PUREE's current approach, the time spent deriving the meta-parameters is negligible compared to the time required to derive the password hash---i.e., no observable drop in speed or security. Yet, with your suggestion, the time taken to encrypt the header would take ~8x longer for the same security level.

from puree.

Related Issues (2)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.