Skip to content

backtracking resistant RNG #1826

Description

@MatMaul

Background

It is sometimes necessary to use a backtracking resistant RNG for cryptographic or compliance reasons.
It seems this crate doesn't yet provide such thing.

Feature request

Creating one seems really easy since I believe we just need to take the output every X bytes and reseed the generator with it.
I am happy to provide a PR for that, I did a quick prototype for it directly in chacha20 crate.

I am opening this issue to request if you would take such a thing, and where do you think we should do that: here in rand crate, directly in chacha20 crate, elsewhere?

Do we want a specific Rng type for that?
Or should we make this the default since the computing cost is almost null?

Would we want to just take the output every X bytes and reseed the generator or would it be sensible to change the default alg to match current go impl that has a specification and a test vector, ChaCha8Rand? Actually an implementation already exists.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions