< 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/