rfc8645v3.txt   rfc8645.txt 
skipping to change at page 1, line 31 skipping to change at page 1, line 31
in the IRTF. in the IRTF.
Status of This Memo Status of This Memo
This document is not an Internet Standards Track specification; it is This document is not an Internet Standards Track specification; it is
published for informational purposes. published for informational purposes.
This document is a product of the Internet Research Task Force This document is a product of the Internet Research Task Force
(IRTF). The IRTF publishes the results of Internet-related research (IRTF). The IRTF publishes the results of Internet-related research
and development activities. These results might not be suitable for and development activities. These results might not be suitable for
deployment. This RFC represents the consensus of the CFRG Research deployment. This RFC represents the consensus of the Crypto Forum
Group of the Internet Research Task Force (IRTF). Documents approved Research Group of the Internet Research Task Force (IRTF). Documents
for publication by the IRSG are not candidates for any level of approved for publication by the IRSG are not candidates for any level
Internet Standard; see Section 2 of RFC 7841. of Internet Standard; see Section 2 of RFC 7841.
Information about the current status of this document, any errata, Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at and how to provide feedback on it may be obtained at
https://www.rfc-editor.org/info/rfc8645. https://www.rfc-editor.org/info/rfc8645.
Copyright Notice Copyright Notice
Copyright (c) 2019 IETF Trust and the persons identified as the Copyright (c) 2019 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 Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of (https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. to this document.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4
2. Conventions Used in This Document . . . . . . . . . . . . . . 6 2. Conventions Used in This Document . . . . . . . . . . . . . . 7
3. Basic Terms and Definitions . . . . . . . . . . . . . . . . . 6 3. Basic Terms and Definitions . . . . . . . . . . . . . . . . . 7
4. Choosing Constructions and Security Parameters . . . . . . . 8 4. Choosing Constructions and Security Parameters . . . . . . . 9
5. External Re-keying Mechanisms . . . . . . . . . . . . . . . . 10 5. External Re-keying Mechanisms . . . . . . . . . . . . . . . . 11
5.1. Methods of Key Lifetime Control . . . . . . . . . . . . . 13 5.1. Methods of Key Lifetime Control . . . . . . . . . . . . . 14
5.2. Parallel Constructions . . . . . . . . . . . . . . . . . 13 5.2. Parallel Constructions . . . . . . . . . . . . . . . . . 14
5.2.1. Parallel Construction Based on a KDF on a Block 5.2.1. Parallel Construction Based on a KDF on a Block
Cipher . . . . . . . . . . . . . . . . . . . . . . . 14 Cipher . . . . . . . . . . . . . . . . . . . . . . . 15
5.2.2. Parallel Construction Based on a KDF on a Hash 5.2.2. Parallel Construction Based on a KDF on a Hash
Function . . . . . . . . . . . . . . . . . . . . . . 14 Function . . . . . . . . . . . . . . . . . . . . . . 16
5.2.3. Tree-Based Construction . . . . . . . . . . . . . . . 15 5.2.3. Tree-Based Construction . . . . . . . . . . . . . . . 16
5.3. Serial Constructions . . . . . . . . . . . . . . . . . . 16 5.3. Serial Constructions . . . . . . . . . . . . . . . . . . 17
5.3.1. Serial Construction Based on a KDF on a Block Cipher 18 5.3.1. Serial Construction Based on a KDF on a Block Cipher 19
5.3.2. Serial Construction Based on a KDF on a Hash Function 18 5.3.2. Serial Construction Based on a KDF on a Hash Function 19
5.4. Using Additional Entropy during Re-keying . . . . . . . . 18 5.4. Using Additional Entropy during Re-keying . . . . . . . . 19
6. Internal Re-keying Mechanisms . . . . . . . . . . . . . . . . 19 6. Internal Re-keying Mechanisms . . . . . . . . . . . . . . . . 20
6.1. Methods of Key Lifetime Control . . . . . . . . . . . . . 21 6.1. Methods of Key Lifetime Control . . . . . . . . . . . . . 22
6.2. Constructions that Do Not Require a Master Key . . . . . 22 6.2. Constructions that Do Not Require a Master Key . . . . . 23
6.2.1. ACPKM Re-keying Mechanisms . . . . . . . . . . . . . 22 6.2.1. ACPKM Re-keying Mechanisms . . . . . . . . . . . . . 23
6.2.2. CTR-ACPKM Encryption Mode . . . . . . . . . . . . . . 24 6.2.2. CTR-ACPKM Encryption Mode . . . . . . . . . . . . . . 24
6.2.3. GCM-ACPKM Authenticated Encryption Mode . . . . . . . 26 6.2.3. GCM-ACPKM Authenticated Encryption Mode . . . . . . . 26
6.3. Constructions that Require a Master Key . . . . . . . . . 28 6.3. Constructions that Require a Master Key . . . . . . . . . 29
6.3.1. ACPKM-Master Key Derivation from the Master Key . . . 29 6.3.1. ACPKM-Master Key Derivation from the Master Key . . . 29
6.3.2. CTR-ACPKM-Master Encryption Mode . . . . . . . . . . 31 6.3.2. CTR-ACPKM-Master Encryption Mode . . . . . . . . . . 31
6.3.3. GCM-ACPKM-Master Authenticated Encryption Mode . . . 33 6.3.3. GCM-ACPKM-Master Authenticated Encryption Mode . . . 33
6.3.4. CBC-ACPKM-Master Encryption Mode . . . . . . . . . . 35 6.3.4. CBC-ACPKM-Master Encryption Mode . . . . . . . . . . 36
6.3.5. CFB-ACPKM-Master Encryption Mode . . . . . . . . . . 38 6.3.5. CFB-ACPKM-Master Encryption Mode . . . . . . . . . . 37
6.3.6. OMAC-ACPKM-Master Authentication Mode . . . . . . . . 40 6.3.6. OMAC-ACPKM-Master Authentication Mode . . . . . . . . 39
7. Joint Usage of External and Internal Re-keying . . . . . . . 41 7. Joint Usage of External and Internal Re-keying . . . . . . . 41
8. Security Considerations . . . . . . . . . . . . . . . . . . . 42 8. Security Considerations . . . . . . . . . . . . . . . . . . . 42
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 43 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 42
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 43 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 42
10.1. Normative References . . . . . . . . . . . . . . . . . . 43 10.1. Normative References . . . . . . . . . . . . . . . . . . 42
10.2. Informative References . . . . . . . . . . . . . . . . . 44 10.2. Informative References . . . . . . . . . . . . . . . . . 44
Appendix A. Test Examples . . . . . . . . . . . . . . . . . . . 46 Appendix A. Test Examples . . . . . . . . . . . . . . . . . . . 47
A.1. Test Examples for External Re-keying . . . . . . . . . . 46 A.1. Test Examples for External Re-keying . . . . . . . . . . 47
A.1.1. External Re-keying with a Parallel Construction . . . 47 A.1.1. External Re-keying with a Parallel Construction . . . 47
A.1.2. External Re-keying with a Serial Construction . . . . 48 A.1.2. External Re-keying with a Serial Construction . . . . 48
A.2. Test Examples for Internal Re-keying . . . . . . . . . . 51 A.2. Test Examples for Internal Re-keying . . . . . . . . . . 51
A.2.1. Internal Re-keying Mechanisms that Do Not A.2.1. Internal Re-keying Mechanisms that Do Not
Require a Master Key . . . . . . . . . . . . . . . . 51 Require a Master Key . . . . . . . . . . . . . . . . 51
A.2.2. Internal Re-keying Mechanisms with a Master Key . . . 55 A.2.2. Internal Re-keying Mechanisms with a Master Key . . . 55
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 67 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 67
Contributors . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Contributors . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 68 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 68
1. Introduction 1. Introduction
A certain maximum amount of data can be safely encrypted when A certain maximum amount of data can be safely encrypted when
encryption is performed under a single key. Hereinafter, this amount encryption is performed under a single key. Hereinafter, this amount
will be referred to as the "key lifetime". The need for such a will be referred to as the "key lifetime". The need for such a
limitation is dictated by the following methods of cryptanalysis: limitation is dictated by the following methods of cryptanalysis:
skipping to change at page 6, line 14 skipping to change at page 7, line 12
details). External or internal re-keying can be used in network details). External or internal re-keying can be used in network
protocols as well as in the systems for data-at-rest encryption. protocols as well as in the systems for data-at-rest encryption.
Depending on the concrete protocol characteristics, there might be Depending on the concrete protocol characteristics, there might be
situations in which both external and internal re-keying mechanisms situations in which both external and internal re-keying mechanisms
(see Section 7) can be applied. For example, a similar approach was (see Section 7) can be applied. For example, a similar approach was
used in Taha's tree construction (see [TAHA]). used in Taha's tree construction (see [TAHA]).
Note that there are key-updating (key regression) algorithms (e.g., Note that there are key-updating (key regression) algorithms (e.g.,
[FKK2005] and [KMNT2003]) that are called "re-keying" as well, but [FKK2005] and [KMNT2003]) that are called "re-keying" as well, but
they pursue the goal without increasing the key lifetime. Therefore, they pursue goals other than increasing the key lifetime. Therefore,
key regression algorithms are excluded from the considerations here. key regression algorithms are excluded from the considerations here.
This document represents the consensus of the Crypto Forum Research This document represents the consensus of the Crypto Forum Research
Group (CFRG). Group (CFRG).
2. Conventions Used in This Document 2. Conventions Used in This Document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in "OPTIONAL" in this document are to be interpreted as described in
skipping to change at page 11, line 36 skipping to change at page 12, line 33
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| L2| | | L2| |
+----------------+ v +----------------+ v
Figure 2: Basic Principles of Message Processing without External Re- Figure 2: Basic Principles of Message Processing
keying without External Re-keying
Suppose that the safety margin for the protocol P is fixed and the Suppose that the safety margin for the protocol P is fixed and the
external re-keying approach is applied to the initial key K to external re-keying approach is applied to the initial key K to
generate the sequence of frame keys. The frame keys are generated in generate the sequence of frame keys. The frame keys are generated in
such a way that the leakage of a previous frame key does not have any such a way that the leakage of a previous frame key does not have any
impact on the following one, so the side-channel limitation L1 is impact on the following one, so the side-channel limitation L1 is
switched off. Thus, the resulting key lifetime limitation of the switched off. Thus, the resulting key lifetime limitation of the
initial key K can be calculated on the basis of a new combinatorial initial key K can be calculated on the basis of a new combinatorial
limitation L2'. It is proven (see [AbBell]) that the security of the limitation L2'. It is proven (see [AbBell]) that the security of the
mode of operation that uses external re-keying leads to an increase mode of operation that uses external re-keying leads to an increase
skipping to change at page 12, line 34 skipping to change at page 13, line 31
... | . . . | ... | . . . |
| | | |
| | | |
| L2| | L2|
+----------------+ +----------------+
| | | |
... ... ... ...
| L2'| | L2'|
+----------------+ +----------------+
Figure 3: Basic Principles of Message Processing with External Re- Figure 3: Basic Principles of Message Processing
keying with External Re-keying
Note: The key transformation process is depicted in a simplified Note: The key transformation process is depicted in a simplified
form. A specific approach (parallel and serial) is described below. form. A specific approach (parallel and serial) is described below.
Consider an example. Let the message size in a protocol P be equal Consider an example. Let the message size in a protocol P be equal
to 1 KB. Suppose L1 = 128 MB and L2 = 1 TB. Thus, if an external to 1 KB. Suppose L1 = 128 MB and L2 = 1 TB. Thus, if an external
re-keying mechanism is not used, the initial key K must be re-keying mechanism is not used, the initial key K must be
renegotiated after processing 128 MB / 1 KB = 131072 messages. renegotiated after processing 128 MB / 1 KB = 131072 messages.
If an external re-keying mechanism is used, the key lifetime If an external re-keying mechanism is used, the key lifetime
skipping to change at page 40, line 45 skipping to change at page 40, line 22
| - key K1. | | - key K1. |
| Output: | | Output: |
| - key SK. | | - key SK. |
|-------------------------------------------------------------------| |-------------------------------------------------------------------|
| 1. If r = n, then return K1 | | 1. If r = n, then return K1 |
| 2. If r < n, then | | 2. If r < n, then |
| if MSB_1(K1) = 0 | | if MSB_1(K1) = 0 |
| return K1 << 1 | | return K1 << 1 |
| else | | else |
| return (K1 << 1) (xor) R_n | | return (K1 << 1) (xor) R_n |
| |
+-------------------------------------------------------------------+ +-------------------------------------------------------------------+
Here, R_n takes the following values: Here, R_n takes the following values:
o n = 64: R_{64} = 0^{59} | 11011. o n = 64: R_{64} = 0^{59} | 11011.
o n = 128: R_{128} = 0^{120} | 10000111. o n = 128: R_{128} = 0^{120} | 10000111.
o n = 256: R_{256} = 0^{145} | 10000100101. o n = 256: R_{256} = 0^{145} | 10000100101.
 End of changes. 13 change blocks. 
38 lines changed or deleted 36 lines changed or added

This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/