| < draft-multiformats-multihash-03.txt | draft-multiformats-multihash-04.txt > | |||
|---|---|---|---|---|
| Network Working Group J.B. Benet | Network Working Group J.B. Benet | |||
| Internet-Draft Protocol Labs | Internet-Draft Protocol Labs | |||
| Intended status: Informational M.S. Sporny | Intended status: Informational M.S. Sporny | |||
| Expires: 16 February 2022 Digital Bazaar | Expires: 20 August 2022 Digital Bazaar | |||
| August 2021 | February 2022 | |||
| The Multihash Data Format | The Multihash Data Format | |||
| draft-multiformats-multihash-03 | draft-multiformats-multihash-04 | |||
| Abstract | Abstract | |||
| Cryptographic hash functions often have multiple output sizes and | Cryptographic hash functions often have multiple output sizes and | |||
| encodings. This variability makes it difficult for applications to | encodings. This variability makes it difficult for applications to | |||
| examine a series of bytes and determine which hash function produced | examine a series of bytes and determine which hash function produced | |||
| them. Multihash is a universal data format for encoding outputs from | them. Multihash is a universal data format for encoding outputs from | |||
| hash functions. It is useful to write applications that can | hash functions. It is useful to write applications that can | |||
| simultaneously support different hash function outputs as well as | simultaneously support different hash function outputs as well as | |||
| upgrade their use of hashes over time; Multihash is intended to | upgrade their use of hashes over time; Multihash is intended to | |||
| skipping to change at page 1, line 48 ¶ | skipping to change at page 1, line 48 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on 2 February 2022. | This Internet-Draft will expire on 5 August 2022. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2021 IETF Trust and the persons identified as the | Copyright (c) 2022 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents (https://trustee.ietf.org/ | |||
| license-info) in effect on the date of publication of this document. | license-info) in effect on the date of publication of this document. | |||
| Please review these documents carefully, as they describe your rights | Please review these documents carefully, as they describe your rights | |||
| and restrictions with respect to this document. | and restrictions with respect to this document. | |||
| Table of Contents | Table of Contents | |||
| skipping to change at page 2, line 44 ¶ | skipping to change at page 2, line 44 ¶ | |||
| B.3. SHA-512/256 . . . . . . . . . . . . . . . . . . . . . . . 6 | B.3. SHA-512/256 . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| B.4. SHA-512 . . . . . . . . . . . . . . . . . . . . . . . . . 6 | B.4. SHA-512 . . . . . . . . . . . . . . . . . . . . . . . . . 6 | |||
| B.5. blake2b512 . . . . . . . . . . . . . . . . . . . . . . . 7 | B.5. blake2b512 . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| B.6. blake2b256 . . . . . . . . . . . . . . . . . . . . . . . 7 | B.6. blake2b256 . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| B.7. blake2s256 . . . . . . . . . . . . . . . . . . . . . . . 7 | B.7. blake2s256 . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| B.8. blake2s128 . . . . . . . . . . . . . . . . . . . . . . . 7 | B.8. blake2s128 . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| Appendix C. Acknowledgements . . . . . . . . . . . . . . . . . . 7 | Appendix C. Acknowledgements . . . . . . . . . . . . . . . . . . 7 | |||
| Appendix D. IANA Considerations . . . . . . . . . . . . . . . . 7 | Appendix D. IANA Considerations . . . . . . . . . . . . . . . . 7 | |||
| D.1. The Multihash Identifier Registry . . . . . . . . . . . . 8 | D.1. The Multihash Identifier Registry . . . . . . . . . . . . 8 | |||
| D.2. The 'mh' Digest Algorithm . . . . . . . . . . . . . . . . 25 | D.2. The 'mh' Digest Algorithm . . . . . . . . . . . . . . . . 25 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 25 | D.3. The 'mh' Named Information Hash Algorithm . . . . . . . . 25 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 26 | ||||
| 1. Introduction | 1. Introduction | |||
| Multihash is particularly important in systems which depend on | Multihash is particularly important in systems which depend on | |||
| cryptographically secure hash functions. Attacks may break the | cryptographically secure hash functions. Attacks may break the | |||
| cryptographic properties of secure hash functions. These | cryptographic properties of secure hash functions. These | |||
| cryptographic breaks are particularly painful in large tool | cryptographic breaks are particularly painful in large tool | |||
| ecosystems, where tools may have made assumptions about hash values, | ecosystems, where tools may have made assumptions about hash values, | |||
| such as function and digest size. Upgrading becomes a nightmare, as | such as function and digest size. Upgrading becomes a nightmare, as | |||
| all tools which make those assumptions would have to be upgraded to | all tools which make those assumptions would have to be upgraded to | |||
| skipping to change at page 8, line 49 ¶ | skipping to change at page 8, line 49 ¶ | |||
| | keccak-224 | 0x1a | active | Unknown | | | keccak-224 | 0x1a | active | Unknown | | |||
| +------------------------------+----------+----------+--------------+ | +------------------------------+----------+----------+--------------+ | |||
| | keccak-256 | 0x1b | active | Unknown | | | keccak-256 | 0x1b | active | Unknown | | |||
| +------------------------------+----------+----------+--------------+ | +------------------------------+----------+----------+--------------+ | |||
| | keccak-384 | 0x1c | active | Unknown | | | keccak-384 | 0x1c | active | Unknown | | |||
| +------------------------------+----------+----------+--------------+ | +------------------------------+----------+----------+--------------+ | |||
| | keccak-512 | 0x1d | active | Unknown | | | keccak-512 | 0x1d | active | Unknown | | |||
| +------------------------------+----------+----------+--------------+ | +------------------------------+----------+----------+--------------+ | |||
| | blake3 | 0x1e | active | Unknown | | | blake3 | 0x1e | active | Unknown | | |||
| +------------------------------+----------+----------+--------------+ | +------------------------------+----------+----------+--------------+ | |||
| | murmur3-128 | 0x22 | active | Unknown | | | sha2-384 | 0x20 | active | RFC 6234 | | |||
| | | | | [RFC6234] | | ||||
| +------------------------------+----------+----------+--------------+ | ||||
| | murmur3-x64-64 | 0x22 | active | Unknown | | ||||
| +------------------------------+----------+----------+--------------+ | +------------------------------+----------+----------+--------------+ | |||
| | murmur3-32 | 0x23 | active | Unknown | | | murmur3-32 | 0x23 | active | Unknown | | |||
| +------------------------------+----------+----------+--------------+ | +------------------------------+----------+----------+--------------+ | |||
| | dbl-sha2-256 | 0x56 | active | Unknown | | | dbl-sha2-256 | 0x56 | active | Unknown | | |||
| +------------------------------+----------+----------+--------------+ | +------------------------------+----------+----------+--------------+ | |||
| | md4 | 0xd4 |deprecated| RFC 6150 | | | md4 | 0xd4 |deprecated| RFC 6150 | | |||
| | | | | [RFC6150] | | | | | | [RFC6150] | | |||
| +------------------------------+----------+----------+--------------+ | +------------------------------+----------+----------+--------------+ | |||
| | md5 | 0xd5 |deprecated| RFC 6151 | | | md5 | 0xd5 |deprecated| RFC 6151 | | |||
| | | | | [RFC6151] | | | | | | [RFC6151] | | |||
| +------------------------------+----------+----------+--------------+ | +------------------------------+----------+----------+--------------+ | |||
| | bmt | 0xd6 | active | Unknown | | | bmt | 0xd6 | active | Unknown | | |||
| +------------------------------+----------+----------+--------------+ | +------------------------------+----------+----------+--------------+ | |||
| | sha2-256-trunc254-padded | 0x1012 | active | RFC 6234 | | | sha2-256-trunc254-padded | 0x1012 | active | RFC 6234 | | |||
| | | | | [RFC6234] | | | | | | [RFC6234] | | |||
| +------------------------------+----------+----------+--------------+ | +------------------------------+----------+----------+--------------+ | |||
| | sha2-224 | 0x1013 | active | RFC 6234 | | ||||
| | | | | [RFC6234] | | ||||
| +------------------------------+----------+----------+--------------+ | ||||
| | sha2-512-224 | 0x1014 | active | RFC 6234 | | ||||
| | | | | [RFC6234] | | ||||
| +------------------------------+----------+----------+--------------+ | ||||
| | sha2-512-256 | 0x1015 | active | RFC 6234 | | ||||
| | | | | [RFC6234] | | ||||
| +------------------------------+----------+----------+--------------+ | ||||
| | murmur3-x64-128 | 0x1022 | active | Unknown | | ||||
| +------------------------------+----------+----------+--------------+ | ||||
| | ripemd-128 | 0x1052 | active | Unknown | | | ripemd-128 | 0x1052 | active | Unknown | | |||
| +------------------------------+----------+----------+--------------+ | +------------------------------+----------+----------+--------------+ | |||
| | ripemd-160 | 0x1053 | active | Unknown | | | ripemd-160 | 0x1053 | active | Unknown | | |||
| +------------------------------+----------+----------+--------------+ | +------------------------------+----------+----------+--------------+ | |||
| | ripemd-256 | 0x1054 | active | Unknown | | | ripemd-256 | 0x1054 | active | Unknown | | |||
| +------------------------------+----------+----------+--------------+ | +------------------------------+----------+----------+--------------+ | |||
| | ripemd-320 | 0x1055 | active | Unknown | | | ripemd-320 | 0x1055 | active | Unknown | | |||
| +------------------------------+----------+----------+--------------+ | +------------------------------+----------+----------+--------------+ | |||
| | x11 | 0x1100 | active | Unknown | | | x11 | 0x1100 | active | Unknown | | |||
| +------------------------------+----------+----------+--------------+ | +------------------------------+----------+----------+--------------+ | |||
| skipping to change at page 25, line 26 ¶ | skipping to change at page 25, line 41 ¶ | |||
| Digest Algorithm: mh | Digest Algorithm: mh | |||
| Description: The multibase-serialized value of a multihash-supported | Description: The multibase-serialized value of a multihash-supported | |||
| algorithm. | algorithm. | |||
| References: this document | References: this document | |||
| Status: standard | Status: standard | |||
| D.3. The 'mh' Named Information Hash Algorithm | ||||
| This memo registers the "mh" hash algorithm in the Named Information | ||||
| Hash Algorithm (https://www.iana.org/assignments/named-information/ | ||||
| named-information.xhtml#hash-alg) registry with the following values: | ||||
| ID: 49 | ||||
| Hash Name String: mh | ||||
| Value Length: variable | ||||
| Reference: this document | ||||
| Status: current | ||||
| Authors' Addresses | Authors' Addresses | |||
| Juan Benet | Juan Benet | |||
| Protocol Labs | Protocol Labs | |||
| 548 Market Street, #51207 | 548 Market Street, #51207 | |||
| San Francisco, CA 94104 | San Francisco, CA 94104 | |||
| United States of America | United States of America | |||
| Phone: +1 619 957 7606 | Phone: +1 619 957 7606 | |||
| Email: juan@protocol.ai | Email: juan@protocol.ai | |||
| End of changes. 8 change blocks. | ||||
| 7 lines changed or deleted | 37 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||