BLAKE3-team / BLAKE3-specs

The BLAKE3 paper: specifications, analysis, and design rationale
https://blake3.io
Other
166 stars 10 forks source link

Document OID identifier #4

Open xnox opened 4 years ago

xnox commented 4 years ago

Also submitted to http://oid-info.com/get/1.3.6.1.4.1.1722.12.2.3.8

xnox commented 4 years ago

http://oid-info.com/get/1.3.6.1.4.1.1722.12.2.3.8 is now live

oconnor663 commented 4 years ago

The same OID can be used for both keyed and unkeyed hashing since in the latter case the key simply has zero length.

That doesn't sound right to me. The key is essentially the first 8 of 16 initial state words. In the unkeyed (default) mode, it's set to a constant. But its length never changes; it's always 8 words / 32 bytes / 256 bits.

xnox commented 4 years ago

The same OID can be used for both keyed and unkeyed hashing since in the latter case the key simply has zero length.

That doesn't sound right to me. The key is essentially the first 8 of 16 initial state words. In the unkeyed (default) mode, it's set to a constant. But its length never changes; it's always 8 words / 32 bytes / 256 bits.

I am re-reading the modes section. It sounds like unlike BLAKE2, the modes are different and have different flags, and I guess should have different OID for each mode? aka 3.3.8 for HMAC? (where the first 3 is MacAlgs) and something else for key derivation mode.

I think at the very least I should drop that sentance, and ensure that 2.3.8 refers to just the blake3 hash mode.

xnox commented 1 year ago

ping, how come this still has not been merged?

flokli commented 1 year ago

poke @oconnor663 ;-)

oconnor663 commented 1 year ago

I don't have any experience using OIDs, but the spec doesn't feel like the right place for this. How have other hash functions documented their OIDs?

baloo commented 1 year ago

Most of them are submitted as RFC (blake2 lives in RFC7693) but this one is under a private OID (http://oid-info.com/get/1.3.6.1.4.1.1722 - Kudelski SA) so it's mostly up to them.

(note: blake2 is also under the same private subtree, so I'm not really sure)

xnox commented 1 year ago

I don't have any experience using OIDs, but the spec doesn't feel like the right place for this. How have other hash functions documented their OIDs?

random people just assign them. Some are done via RFC, some are done via standards, others do it by them selves. each subtree is controlled by whoever controls a given tree and one can just allocate stuff.

Even things like SHA algorithm OIDs are all over the place. The point is to squat an OID and start using it.

Without stable (allocated, squated) OIDs an algorithms is unlikely to ever make it into multiple library implementations or be used for things that want signing.

xnox commented 2 months ago

Ping