Internet Engineering Task Force (IETF)                       G. Selander
Request for Comments: 9529                             J. Preuß Mattsson
Category: Informational                                         Ericsson
ISSN: 2070-1721                                               M. Serafin
                                                              ASSA ABLOY
                                                               M. Tiloca
                                                                 RISE AB
                                                              M. Vučinić
                                                                   Inria
                                                              March 2024
        
Traces of Ephemeral Diffie-Hellman Over COSE (EDHOC)
一時的なDiffie-Hellmanの痕跡をCOSE上に残す(EDHOC)
Abstract
概要

This document contains example traces of Ephemeral Diffie-Hellman Over COSE (EDHOC).

このドキュメントには、Ephemeral Diffie-Hellman Over COSE (EDHOC) のトレースの例が含まれています。

Status of This Memo
本文書の位置付け

This document is not an Internet Standards Track specification; it is published for informational purposes.

この文書はインターネット標準トラック仕様ではありません。情報提供のために公開されています。

This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Not all documents approved by the IESG are candidates for any level of Internet Standard; see Section 2 of RFC 7841.

この文書はInternet Engineering Task Force(IETF)の製品です。IETFコミュニティの合意を表しています。公開レビューを受け、Internet Engineering Steering Group(IESG)によって出版が承認されました。IESGによって承認されたすべての文書がインターネット標準のいずれかの候補となるわけではありません。RFC 7841のセクション2を参照してください。

Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at https://www.rfc-editor.org/info/rfc9529.

このドキュメントの現在の状況、誤りの情報、およびフィードバックの方法についての情報は、https://www.rfc-editor.org/info/rfc9529 で入手できます。

著作権表示

Copyright (c) 2024 IETF Trust and the persons identified as the document authors. All rights reserved.

著作権(c)2024 IETF Trustおよび文書の著者として特定された個人。全著作権所有。

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.

この文書は、この文書の公開日に有効なBCP 78およびIETF文書に関連するIETFトラストの法的規定(https://trustee.ietf.org/license-info)の対象となります。これらの文書を注意深く確認してください。なぜなら、これらはこの文書に関するあなたの権利と制限を説明しているからです。この文書から抽出されたコードコンポーネントには、Trust Legal Provisionsのセクション4.eに記載されているように改訂されたBSDライセンスのテキストを含める必要があり、改訂されたBSDライセンスに記載されているように保証なしで提供されます。

Table of Contents
目次
   1.  Introduction
     1.1.  Setup
     1.2.  Requirements Language
   2.  Authentication with Signatures, X.509 Identified by 'x5t'
     2.1.  message_1
     2.2.  message_2
     2.3.  message_3
     2.4.  message_4
     2.5.  PRK_out and PRK_exporter
     2.6.  OSCORE Parameters
     2.7.  Key Update
     2.8.  Certificates
   3.  Authentication with Static DH, CCS Identified by 'kid'
     3.1.  message_1 (First Time)
     3.2.  error
     3.3.  message_1 (Second Time)
     3.4.  message_2
     3.5.  message_3
     3.6.  message_4
     3.7.  PRK_out and PRK_exporter
     3.8.  OSCORE Parameters
     3.9.  Key Update
   4.  Invalid Traces
     4.1.  Encoding Errors
     4.2.  Cryptography-Related Errors
     4.3.  Non-deterministic CBOR
   5.  Security Considerations
   6.  IANA Considerations
   7.  References
     7.1.  Normative References
     7.2.  Informative References
   Acknowledgments
   Authors' Addresses
        
1. Introduction
1. はじめに

EDHOC [RFC9528] is a lightweight authenticated key exchange protocol designed for highly constrained settings. This document contains annotated traces of EDHOC sessions with input, output, and intermediate processing results to simplify testing of implementations. The traces have been verified by two independent implementations.

EDHOC [RFC9528] は、非常に制約のある環境向けに設計された軽量認証キー交換プロトコルです。この文書には、実装のテストを簡素化するために、入力、出力、および中間処理結果を含むEDHOCセッションの注釈付きトレースが含まれています。これらのトレースは、2つの独立した実装によって検証されています。

1.1. Setup
1.1. セットアップ

EDHOC is run between an Initiator (I) and a Responder (R). The private/public key pairs and credentials of the Initiator and the Responder required to produce the protocol messages are shown in the traces when needed for the calculations.

EDHOCはイニシエータ(I)とレスポンダー(R)の間で実行されます。プロトコルメッセージを生成するために必要なイニシエータとレスポンダーの秘密/公開鍵ペアや資格情報は、計算に必要な場合にトレースに表示されます。

EDHOC messages and intermediate results are encoded in Concise Binary Object Representation (CBOR) [RFC8949] and can therefore be displayed in CBOR diagnostic notation using, e.g., the CBOR playground [CborMe], which makes them easy to parse for humans. Credentials can also be encoded in CBOR, e.g., CBOR Web Tokens (CWTs) [RFC8392].

EDHOC メッセージと中間結果は Concise Binary Object Representation (CBOR) [RFC8949] でエンコードされているため、例えば CBOR playground [CborMe] を使用して CBOR 診断表記で表示することができ、これにより人間が解析しやすくなります。資格情報も CBOR でエンコードすることができ、例えば CBOR Web Tokens (CWTs) [RFC8392] です。

The document contains two traces:

その文書には2つのトレースが含まれています。

* Section 2 - Authentication with signature keys identified by the hash value of the X.509 certificates (provided in Section 2.8). The endpoints use Edwards-curve Digital Signature Algorithm (EdDSA) [RFC8032] for authentication and X25519 [RFC7748] for ephemeral-ephemeral Diffie-Hellman (DH) key exchange.

* セクション2 - X.509証明書のハッシュ値によって識別される署名キーを使用した認証(セクション2.8で提供されます)。エンドポイントは、認証にEdwards-curve Digital Signature Algorithm(EdDSA)[RFC8032]を使用し、一時的なDiffie-Hellman(DH)鍵交換にX25519 [RFC7748]を使用します。

* Section 3 - Authentication with static Diffie-Hellman keys identified by short key identifiers labeling CWT Claims Sets (CCSs) [RFC8392]. The endpoints use NIST P-256 [SP-800-186] for both ephemeral-ephemeral and ephemeral-static DH key exchange. This trace also illustrates the cipher suite negotiation and provides an example of low protocol overhead with messages sizes of 39, 45, and 19 bytes.

* セクション3 - CWTクレームセット(CCSs)をラベリングする短い鍵識別子で識別される静的Diffie-Hellman鍵を使用した認証[RFC8392]。エンドポイントは、一時的-一時的および一時的-静的DH鍵交換の両方にNIST P-256 [SP-800-186]を使用します。このトレースは、暗号スイートの交渉を示し、メッセージサイズが39、45、19バイトの低いプロトコルオーバーヘッドの例を提供します。

Examples of invalid EDHOC messages are found in Section 4.

セクション4には、無効なEDHOCメッセージの例が見つかります。

Note 1. The same name is used for hexadecimal byte strings and their CBOR encodings. The traces contain both the raw byte strings and the corresponding CBOR-encoded data items.

注意1. 同じ名前が16進バイト文字列とそれらのCBORエンコーディングに使用されます。トレースには、生のバイト文字列と対応するCBORエンコードされたデータ項目の両方が含まれています。

Note 2. If not clear from the context, remember that CBOR sequences and CBOR arrays assume CBOR-encoded data items as elements.

コンテキストから明確でない場合は、CBORシーケンスとCBOR配列は、要素としてCBORエンコードされたデータ項目を想定していることを覚えておいてください。

Note 3. When the protocol transporting EDHOC messages does not inherently provide correlation across all messages, then some messages are typically prepended with connection identifiers and potentially a message_1 indicator (see Section 3.4.1 and Appendix A.2 of [RFC9528]). Those bytes are not included in the traces in this document.

注3. EDHOCメッセージを輸送するプロトコルがすべてのメッセージにわたって相関性を提供しない場合、一部のメッセージには通常、接続識別子とおそらくメッセージ_1インジケータが前置されます([RFC9528]のセクション3.4.1および付録A.2を参照)。これらのバイトは、この文書のトレースに含まれていません。

1.2. Requirements Language
1.2. 要件言語

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

この文書におけるキーワード「MUST」、「MUST NOT」、「REQUIRED」、「SHALL」、「SHALL NOT」、「SHOULD」、「SHOULD NOT」、「RECOMMENDED」、「NOT RECOMMENDED」、「MAY」、および「OPTIONAL」は、全て大文字で表記されている場合にのみ、BCP 14 [RFC2119] [RFC8174] で説明されているように解釈されるべきです。

2. Authentication with Signatures, X.509 Identified by 'x5t'
2. 署名による認証、'x5t' で識別される X.509

In this example, the Initiator (I) and Responder (R) are authenticated with digital signatures (METHOD = 0). Both the Initiator and the Responder support cipher suite 0, which determines the algorithms:

この例では、イニシエータ(I)とレスポンダー(R)はデジタル署名(METHOD = 0)で認証されます。イニシエータとレスポンダーの両方が暗号スイート0をサポートしており、これによりアルゴリズムが決定されます。

* EDHOC AEAD algorithm = AES-CCM-16-64-128

* EDHOC AEAD algorithm = AES-CCM-16-64-128

* EDHOC hash algorithm = SHA-256

* EDHOCハッシュアルゴリズム = SHA-256

* EDHOC Message Authentication Code (MAC) length in bytes (Static DH) = 8

* EDHOC メッセージ認証コード(MAC)の長さ(Static DH)= 8

* EDHOC key exchange algorithm (ECDH curve) = X25519

* EDHOC鍵交換アルゴリズム(ECDH曲線)= X25519

* EDHOC signature algorithm = EdDSA

* EDHOCの署名アルゴリズム = EdDSA

* application AEAD algorithm = AES-CCM-16-64-128

* AEADアルゴリズム = AES-CCM-16-64-128

* application hash algorithm = SHA-256

* アプリケーションのハッシュアルゴリズム = SHA-256

The public keys are represented with X.509 certificates identified by the CBOR Object Signing and Encryption (COSE) header parameter 'x5t'.

公開鍵は、CBOR Object Signing and Encryption(COSE)ヘッダーパラメータ 'x5t' で識別されるX.509証明書で表されます。

2.1. message_1
2.1. message_1

Both endpoints are authenticated with signatures, i.e., METHOD = 0:

両方のエンドポイントは署名付きで認証されています、つまり、METHOD = 0:

   METHOD (CBOR Data Item) (1 byte)
   00
        

The Initiator selects cipher suite 0. A single cipher suite is encoded as an int:

イニシエーターは暗号スイート0を選択します。1つの暗号スイートはintとしてエンコードされます。

   SUITES_I (CBOR Data Item) (1 byte)
   00
        

The Initiator creates an ephemeral key pair for use with the EDHOC key exchange algorithm:

イニシエーターは、EDHOC鍵交換アルゴリズムで使用するための一時的なキーペアを作成します。

   Initiator's ephemeral private key
   X (Raw Value) (32 bytes)
   89 2e c2 8e 5c b6 66 91 08 47 05 39 50 0b 70 5e 60 d0 08 d3 47 c5 81
   7e e9 f3 32 7c 8a 87 bb 03
        
   Initiator's ephemeral public key
   G_X (Raw Value) (32 bytes)
   31 f8 2c 7b 5b 9c bb f0 f1 94 d9 13 cc 12 ef 15 32 d3 28 ef 32 63 2a
   48 81 a1 c0 70 1e 23 7f 04
        
   Initiator's ephemeral public key
   G_X (CBOR Data Item) (34 bytes)
   58 20 31 f8 2c 7b 5b 9c bb f0 f1 94 d9 13 cc 12 ef 15 32 d3 28 ef 32
   63 2a 48 81 a1 c0 70 1e 23 7f 04
        

The Initiator selects its connection identifier C_I to be the byte string 0x2d, which is encoded as 0x2d since it is represented by the 1-byte CBOR int -14:

イニシエーターは、接続識別子C_Iをバイト文字列0x2dとして選択し、1バイトのCBOR intで表される-14の値としてエンコードされるため、0x2dとしてエンコードされます。

   Connection identifier chosen by the Initiator
   C_I (Raw Value) (1 byte)
   2d
        
   Connection identifier chosen by the Initiator
   C_I (CBOR Data Item) (1 byte)
   2d
        

No external authorization data:

外部認証データなし:

   EAD_1 (CBOR Sequence) (0 bytes)
        

The Initiator constructs message_1:

イニシエーターはメッセージ_1を構築します。

   message_1 =
   (
     0,
     0,
     h'31f82c7b5b9cbbf0f194d913cc12ef1532d328ef32632a48
       81a1c0701e237f04',
     -14
   )
        
   message_1 (CBOR Sequence) (37 bytes)
   00 00 58 20 31 f8 2c 7b 5b 9c bb f0 f1 94 d9 13 cc 12 ef 15 32 d3 28
   ef 32 63 2a 48 81 a1 c0 70 1e 23 7f 04 2d
        
2.2. message_2
2.2. message_2

The Responder supports the most preferred and selected cipher suite 0, so SUITES_I is acceptable.

Responderは、最も好ましいおよび選択された暗号スイート0をサポートしているため、SUITES_Iは受け入れ可能です。

The Responder creates an ephemeral key pair for use with the EDHOC key exchange algorithm:

レスポンダーは、EDHOC鍵交換アルゴリズムで使用するための一時的なキーペアを作成します。

   Responder's ephemeral private key
   Y (Raw Value) (32 bytes)
   e6 9c 23 fb f8 1b c4 35 94 24 46 83 7f e8 27 bf 20 6c 8f a1 0a 39 db
   47 44 9e 5a 81 34 21 e1 e8
        
   Responder's ephemeral public key
   G_Y (Raw Value) (32 bytes)
   dc 88 d2 d5 1d a5 ed 67 fc 46 16 35 6b c8 ca 74 ef 9e be 8b 38 7e 62
   3a 36 0b a4 80 b9 b2 9d 1c
        
   Responder's ephemeral public key
   G_Y (CBOR Data Item) (34 bytes)
   58 20 dc 88 d2 d5 1d a5 ed 67 fc 46 16 35 6b c8 ca 74 ef 9e be 8b 38
   7e 62 3a 36 0b a4 80 b9 b2 9d 1c
        

The Responder selects its connection identifier C_R to be the byte string 0x18, which is encoded as h'18' = 0x4118 since it is not represented by a 1-byte CBOR int:

レスポンダーは、接続識別子C_Rをバイト文字列0x18として選択します。これは1バイトのCBOR整数で表されていないため、h'18' = 0x4118としてエンコードされます。

   Connection identifier chosen by the Responder
   C_R (Raw Value) (1 byte)
   18
        
   Connection identifier chosen by the Responder
   C_R (CBOR Data Item) (2 bytes)
   41 18
        

The transcript hash TH_2 is calculated using the EDHOC hash algorithm:

トランスクリプトハッシュ TH_2 は、EDHOC ハッシュアルゴリズムを使用して計算されます。

TH_2 = H( G_Y, H(message_1) )

TH_2 = H( G_Y, H(message_1) )

   H(message_1) (Raw Value) (32 bytes)
   c1 65 d6 a9 9d 1b ca fa ac 8d bf 2b 35 2a 6f 7d 71 a3 0b 43 9c 9d 64
   d3 49 a2 38 48 03 8e d1 6b
        
   H(message_1) (CBOR Data Item) (34 bytes)
   58 20 c1 65 d6 a9 9d 1b ca fa ac 8d bf 2b 35 2a 6f 7d 71 a3 0b 43 9c
   9d 64 d3 49 a2 38 48 03 8e d1 6b
        

The input to calculate TH_2 is the CBOR sequence:

TH_2を計算するための入力は、CBORシーケンスです。

G_Y, H(message_1)

G_Y、H(メッセージ1)

   Input to calculate TH_2 (CBOR Sequence) (68 bytes)
   58 20 dc 88 d2 d5 1d a5 ed 67 fc 46 16 35 6b c8 ca 74 ef 9e be 8b 38
   7e 62 3a 36 0b a4 80 b9 b2 9d 1c 58 20 c1 65 d6 a9 9d 1b ca fa ac 8d
   bf 2b 35 2a 6f 7d 71 a3 0b 43 9c 9d 64 d3 49 a2 38 48 03 8e d1 6b
        
   TH_2 (Raw Value) (32 bytes)
   c6 40 5c 15 4c 56 74 66 ab 1d f2 03 69 50 0e 54 0e 9f 14 bd 3a 79 6a
   06 52 ca e6 6c 90 61 68 8d
        
   TH_2 (CBOR Data Item) (34 bytes)
   58 20 c6 40 5c 15 4c 56 74 66 ab 1d f2 03 69 50 0e 54 0e 9f 14 bd 3a
   79 6a 06 52 ca e6 6c 90 61 68 8d
        

PRK_2e is specified in Section 4.1.1.1 of [RFC9528].

PRK_2eは[RFC9528]のセクション4.1.1.1で指定されています。

First, the Elliptic Curve Diffie-Hellman (ECDH) shared secret G_XY is computed from G_X and Y or G_Y and X:

最初に、楕円曲線ディフィー・ヘルマン(ECDH)共有秘密G_XYが、G_XとYまたはG_YとXから計算されます。

   G_XY (Raw Value) (ECDH shared secret) (32 bytes)
   e5 cd f3 a9 86 cd ac 5b 7b f0 46 91 e2 b0 7c 08 e7 1f 53 99 8d 8f 84
   2b 7c 3f b4 d8 39 cf 7b 28
        

Then, PRK_2e is calculated using EDHOC_Extract(), which is determined by the EDHOC hash algorithm:

その場合、EDHOC ハッシュアルゴリズムによって決定される EDHOC_Extract() を使用して PRK_2e が計算されます。

   PRK_2e = EDHOC_Extract( salt, G_XY )
          = HMAC-SHA-256( salt, G_XY )
        

where salt is TH_2:

塩がある場所:

   salt (Raw Value) (32 bytes)
   c6 40 5c 15 4c 56 74 66 ab 1d f2 03 69 50 0e 54 0e 9f 14 bd 3a 79 6a
   06 52 ca e6 6c 90 61 68 8d
        
   PRK_2e (Raw Value) (32 bytes)
   d5 84 ac 2e 5d ad 5a 77 d1 4b 53 eb e7 2e f1 d5 da a8 86 0d 39 93 73
   bf 2c 24 0a fa 7b a8 04 da
        

Since METHOD = 0, the Responder authenticates using signatures. Since the selected cipher suite is 0, the EDHOC signature algorithm is EdDSA.

METHOD = 0 のため、レスポンダーは署名を使用して認証します。選択された暗号スイートが 0 のため、EDHOC 署名アルゴリズムは EdDSA です。

The Responder's signature key pair uses EdDSA:

応答者の署名キーペアはEdDSAを使用します。

   Responder's private authentication key
   SK_R (Raw Value) (32 bytes)
   ef 14 0f f9 00 b0 ab 03 f0 c0 8d 87 9c bb d4 b3 1e a7 1e 6e 7e e7 ff
   cb 7e 79 55 77 7a 33 27 99
        
   Responder's public authentication key
   PK_R (Raw Value) (32 bytes)
   a1 db 47 b9 51 84 85 4a d1 2a 0c 1a 35 4e 41 8a ac e3 3a a0 f2 c6 62
   c0 0b 3a c5 5d e9 2f 93 59
        

PRK_3e2m is specified in Section 4.1.1.2 of [RFC9528].

PRK_3e2mは[RFC9528]のセクション4.1.1.2で指定されています。

Since the Responder authenticates with signatures, PRK_3e2m = PRK_2e.

Responder は署名によって認証されるため、PRK_3e2m = PRK_2e です。

   PRK_3e2m (Raw Value) (32 bytes)
   d5 84 ac 2e 5d ad 5a 77 d1 4b 53 eb e7 2e f1 d5 da a8 86 0d 39 93 73
   bf 2c 24 0a fa 7b a8 04 da
        

The Responder constructs the remaining input needed to calculate MAC_2:

レスポンダーは、MAC_2を計算するために必要な残りの入力を構築します。

MAC_2 = EDHOC_KDF( PRK_3e2m, 2, context_2, mac_length_2 )

MAC_2 = EDHOC_KDF(PRK_3e2m、2、context_2、mac_length_2)

context_2 = << C_R, ID_CRED_R, TH_2, CRED_R, ? EAD_2 >>

context_2 = << C_R、ID_CRED_R、TH_2、CRED_R、?EAD_2 >>

CRED_R is identified by a 64-bit hash:

CRED_Rは64ビットのハッシュによって識別されます。

   ID_CRED_R =
   {
     34 : [-15, h'79f2a41b510c1f9b']
   }
        

where the COSE header value 34 ('x5t') indicates a hash of an X.509 certificate, and the COSE algorithm -15 indicates the hash algorithm SHA-256 truncated to 64 bits.

COSEヘッダーの値34('x5t')がX.509証明書のハッシュを示し、COSEアルゴリズム-15がハッシュアルゴリズムSHA-256を64ビットに切り詰めたものを示しています。

   ID_CRED_R (CBOR Data Item) (14 bytes)
   a1 18 22 82 2e 48 79 f2 a4 1b 51 0c 1f 9b
        

CRED_R is a CBOR byte string of the DER encoding of the X.509 certificate in Section 2.8.1:

CRED_Rは、セクション2.8.1のX.509証明書のDERエンコーディングのCBORバイト文字列です。

   CRED_R (Raw Value) (241 bytes)
   30 81 ee 30 81 a1 a0 03 02 01 02 02 04 62 31 9e c4 30 05 06 03 2b 65
   70 30 1d 31 1b 30 19 06 03 55 04 03 0c 12 45 44 48 4f 43 20 52 6f 6f
   74 20 45 64 32 35 35 31 39 30 1e 17 0d 32 32 30 33 31 36 30 38 32 34
   33 36 5a 17 0d 32 39 31 32 33 31 32 33 30 30 30 30 5a 30 22 31 20 30
   1e 06 03 55 04 03 0c 17 45 44 48 4f 43 20 52 65 73 70 6f 6e 64 65 72
   20 45 64 32 35 35 31 39 30 2a 30 05 06 03 2b 65 70 03 21 00 a1 db 47
   b9 51 84 85 4a d1 2a 0c 1a 35 4e 41 8a ac e3 3a a0 f2 c6 62 c0 0b 3a
   c5 5d e9 2f 93 59 30 05 06 03 2b 65 70 03 41 00 b7 23 bc 01 ea b0 92
   8e 8b 2b 6c 98 de 19 cc 38 23 d4 6e 7d 69 87 b0 32 47 8f ec fa f1 45
   37 a1 af 14 cc 8b e8 29 c6 b7 30 44 10 18 37 eb 4a bc 94 95 65 d8 6d
   ce 51 cf ae 52 ab 82 c1 52 cb 02
        
   CRED_R (CBOR Data Item) (243 bytes)
   58 f1 30 81 ee 30 81 a1 a0 03 02 01 02 02 04 62 31 9e c4 30 05 06 03
   2b 65 70 30 1d 31 1b 30 19 06 03 55 04 03 0c 12 45 44 48 4f 43 20 52
   6f 6f 74 20 45 64 32 35 35 31 39 30 1e 17 0d 32 32 30 33 31 36 30 38
   32 34 33 36 5a 17 0d 32 39 31 32 33 31 32 33 30 30 30 30 5a 30 22 31
   20 30 1e 06 03 55 04 03 0c 17 45 44 48 4f 43 20 52 65 73 70 6f 6e 64
   65 72 20 45 64 32 35 35 31 39 30 2a 30 05 06 03 2b 65 70 03 21 00 a1
   db 47 b9 51 84 85 4a d1 2a 0c 1a 35 4e 41 8a ac e3 3a a0 f2 c6 62 c0
   0b 3a c5 5d e9 2f 93 59 30 05 06 03 2b 65 70 03 41 00 b7 23 bc 01 ea
   b0 92 8e 8b 2b 6c 98 de 19 cc 38 23 d4 6e 7d 69 87 b0 32 47 8f ec fa
   f1 45 37 a1 af 14 cc 8b e8 29 c6 b7 30 44 10 18 37 eb 4a bc 94 95 65
   d8 6d ce 51 cf ae 52 ab 82 c1 52 cb 02
        

No external authorization data:

外部認証データはありません。

   EAD_2 (CBOR Sequence) (0 bytes)
        

context_2 = << C_R, ID_CRED_R, TH_2, CRED_R, ? EAD_2 >>

context_2 = << C_R、ID_CRED_R、TH_2、CRED_R、? EAD_2 >>

   context_2 (CBOR Sequence) (293 bytes)
   41 18 a1 18 22 82 2e 48 79 f2 a4 1b 51 0c 1f 9b 58 20 c6 40 5c 15 4c
   56 74 66 ab 1d f2 03 69 50 0e 54 0e 9f 14 bd 3a 79 6a 06 52 ca e6 6c
   90 61 68 8d 58 f1 30 81 ee 30 81 a1 a0 03 02 01 02 02 04 62 31 9e c4
   30 05 06 03 2b 65 70 30 1d 31 1b 30 19 06 03 55 04 03 0c 12 45 44 48
   4f 43 20 52 6f 6f 74 20 45 64 32 35 35 31 39 30 1e 17 0d 32 32 30 33
   31 36 30 38 32 34 33 36 5a 17 0d 32 39 31 32 33 31 32 33 30 30 30 30
   5a 30 22 31 20 30 1e 06 03 55 04 03 0c 17 45 44 48 4f 43 20 52 65 73
   70 6f 6e 64 65 72 20 45 64 32 35 35 31 39 30 2a 30 05 06 03 2b 65 70
   03 21 00 a1 db 47 b9 51 84 85 4a d1 2a 0c 1a 35 4e 41 8a ac e3 3a a0
   f2 c6 62 c0 0b 3a c5 5d e9 2f 93 59 30 05 06 03 2b 65 70 03 41 00 b7
   23 bc 01 ea b0 92 8e 8b 2b 6c 98 de 19 cc 38 23 d4 6e 7d 69 87 b0 32
   47 8f ec fa f1 45 37 a1 af 14 cc 8b e8 29 c6 b7 30 44 10 18 37 eb 4a
   bc 94 95 65 d8 6d ce 51 cf ae 52 ab 82 c1 52 cb 02
        
   context_2 (CBOR byte string) (296 bytes)
   59 01 25 41 18 a1 18 22 82 2e 48 79 f2 a4 1b 51 0c 1f 9b 58 20 c6 40
   5c 15 4c 56 74 66 ab 1d f2 03 69 50 0e 54 0e 9f 14 bd 3a 79 6a 06 52
   ca e6 6c 90 61 68 8d 58 f1 30 81 ee 30 81 a1 a0 03 02 01 02 02 04 62
   31 9e c4 30 05 06 03 2b 65 70 30 1d 31 1b 30 19 06 03 55 04 03 0c 12
   45 44 48 4f 43 20 52 6f 6f 74 20 45 64 32 35 35 31 39 30 1e 17 0d 32
   32 30 33 31 36 30 38 32 34 33 36 5a 17 0d 32 39 31 32 33 31 32 33 30
   30 30 30 5a 30 22 31 20 30 1e 06 03 55 04 03 0c 17 45 44 48 4f 43 20
   52 65 73 70 6f 6e 64 65 72 20 45 64 32 35 35 31 39 30 2a 30 05 06 03
   2b 65 70 03 21 00 a1 db 47 b9 51 84 85 4a d1 2a 0c 1a 35 4e 41 8a ac
   e3 3a a0 f2 c6 62 c0 0b 3a c5 5d e9 2f 93 59 30 05 06 03 2b 65 70 03
   41 00 b7 23 bc 01 ea b0 92 8e 8b 2b 6c 98 de 19 cc 38 23 d4 6e 7d 69
   87 b0 32 47 8f ec fa f1 45 37 a1 af 14 cc 8b e8 29 c6 b7 30 44 10 18
   37 eb 4a bc 94 95 65 d8 6d ce 51 cf ae 52 ab 82 c1 52 cb 02
        

MAC_2 is computed through EDHOC_Expand() using the EDHOC hash algorithm (see Section 4.1.2 of [RFC9528]):

MAC_2は、EDHOCハッシュアルゴリズムを使用して、EDHOC_Expand()を介して計算されます([RFC9528]のセクション4.1.2を参照)。

   MAC_2 = HKDF-Expand( PRK_3e2m, info, mac_length_2 )
        

where

ただし

   info = ( 2, context_2, mac_length_2 )
        

Since METHOD = 0, mac_length_2 is given by the EDHOC hash algorithm.

METHOD = 0 のため、mac_length_2 は EDHOC ハッシュアルゴリズムによって与えられます。

info for MAC_2 is:

MAC_2の情報は次のとおりです:

   info =
   (
     2,
     h'4118a11822822e4879f2a41b510c1f9b5820c6405c154c56
       7466ab1df20369500e540e9f14bd3a796a0652cae66c9061
       688d58f13081ee3081a1a003020102020462319ec4300506
       032b6570301d311b301906035504030c124544484f432052
       6f6f742045643235353139301e170d323230333136303832
       3433365a170d3239313233313233303030305a3022312030
       1e06035504030c174544484f4320526573706f6e64657220
       45643235353139302a300506032b6570032100a1db47b951
       84854ad12a0c1a354e418aace33aa0f2c662c00b3ac55de9
       2f9359300506032b6570034100b723bc01eab0928e8b2b6c
       98de19cc3823d46e7d6987b032478fecfaf14537a1af14cc
       8be829c6b73044101837eb4abc949565d86dce51cfae52ab
       82c152cb02',
     32
   )
        

where the last value is the output size of the EDHOC hash algorithm in bytes.

最後の値は、EDHOCハッシュアルゴリズムの出力サイズ(バイト単位)です。

   info for MAC_2 (CBOR Sequence) (299 bytes)
   02 59 01 25 41 18 a1 18 22 82 2e 48 79 f2 a4 1b 51 0c 1f 9b 58 20 c6
   40 5c 15 4c 56 74 66 ab 1d f2 03 69 50 0e 54 0e 9f 14 bd 3a 79 6a 06
   52 ca e6 6c 90 61 68 8d 58 f1 30 81 ee 30 81 a1 a0 03 02 01 02 02 04
   62 31 9e c4 30 05 06 03 2b 65 70 30 1d 31 1b 30 19 06 03 55 04 03 0c
   12 45 44 48 4f 43 20 52 6f 6f 74 20 45 64 32 35 35 31 39 30 1e 17 0d
   32 32 30 33 31 36 30 38 32 34 33 36 5a 17 0d 32 39 31 32 33 31 32 33
   30 30 30 30 5a 30 22 31 20 30 1e 06 03 55 04 03 0c 17 45 44 48 4f 43
   20 52 65 73 70 6f 6e 64 65 72 20 45 64 32 35 35 31 39 30 2a 30 05 06
   03 2b 65 70 03 21 00 a1 db 47 b9 51 84 85 4a d1 2a 0c 1a 35 4e 41 8a
   ac e3 3a a0 f2 c6 62 c0 0b 3a c5 5d e9 2f 93 59 30 05 06 03 2b 65 70
   03 41 00 b7 23 bc 01 ea b0 92 8e 8b 2b 6c 98 de 19 cc 38 23 d4 6e 7d
   69 87 b0 32 47 8f ec fa f1 45 37 a1 af 14 cc 8b e8 29 c6 b7 30 44 10
   18 37 eb 4a bc 94 95 65 d8 6d ce 51 cf ae 52 ab 82 c1 52 cb 02 18 20
        
   MAC_2 (Raw Value) (32 bytes)
   86 2a 7e 5e f1 47 f9 a5 f4 c5 12 e1 b6 62 3c d6 6c d1 7a 72 72 07 2b
   fe 5b 60 2f fe 30 7e e0 e9
        
   MAC_2 (CBOR Data Item) (34 bytes)
   58 20 86 2a 7e 5e f1 47 f9 a5 f4 c5 12 e1 b6 62 3c d6 6c d1 7a 72 72
   07 2b fe 5b 60 2f fe 30 7e e0 e9
        

Since METHOD = 0, Signature_or_MAC_2 is the 'signature' of the COSE_Sign1 object.

METHOD = 0 のため、Signature_or_MAC_2 は COSE_Sign1 オブジェクトの 'signature' です。

The Responder constructs the message to be signed:

レスポンダーは署名するメッセージを構築します。

   [
     "Signature1",
     << ID_CRED_R >>,
     << TH_2, CRED_R, ? EAD_2 >>,
     MAC_2
   ] =

   [
     "Signature1",
     h'a11822822e4879f2a41b510c1f9b',
     h'5820c6405c154c567466ab1df20369500e540e9f14bd3a79
       6a0652cae66c9061688d58f13081ee3081a1a00302010202
       0462319ec4300506032b6570301d311b301906035504030c
       124544484f4320526f6f742045643235353139301e170d32
       32303331363038323433365a170d32393132333132333030
       30305a30223120301e06035504030c174544484f43205265
       73706f6e6465722045643235353139302a300506032b6570
       032100a1db47b95184854ad12a0c1a354e418aace33aa0f2
       c662c00b3ac55de92f9359300506032b6570034100b723bc
       01eab0928e8b2b6c98de19cc3823d46e7d6987b032478fec
       faf14537a1af14cc8be829c6b73044101837eb4abc949565
       d86dce51cfae52ab82c152cb02',
     h'862a7e5ef147f9a5f4c512e1b6623cd66cd17a7272072bfe
       5b602ffe307ee0e9'
   ]
        
   Message to be signed in message_2 (CBOR Data Item) (341 bytes)
   84 6a 53 69 67 6e 61 74 75 72 65 31 4e a1 18 22 82 2e 48 79 f2 a4 1b
   51 0c 1f 9b 59 01 15 58 20 c6 40 5c 15 4c 56 74 66 ab 1d f2 03 69 50
   0e 54 0e 9f 14 bd 3a 79 6a 06 52 ca e6 6c 90 61 68 8d 58 f1 30 81 ee
   30 81 a1 a0 03 02 01 02 02 04 62 31 9e c4 30 05 06 03 2b 65 70 30 1d
   31 1b 30 19 06 03 55 04 03 0c 12 45 44 48 4f 43 20 52 6f 6f 74 20 45
   64 32 35 35 31 39 30 1e 17 0d 32 32 30 33 31 36 30 38 32 34 33 36 5a
   17 0d 32 39 31 32 33 31 32 33 30 30 30 30 5a 30 22 31 20 30 1e 06 03
   55 04 03 0c 17 45 44 48 4f 43 20 52 65 73 70 6f 6e 64 65 72 20 45 64
   32 35 35 31 39 30 2a 30 05 06 03 2b 65 70 03 21 00 a1 db 47 b9 51 84
   85 4a d1 2a 0c 1a 35 4e 41 8a ac e3 3a a0 f2 c6 62 c0 0b 3a c5 5d e9
   2f 93 59 30 05 06 03 2b 65 70 03 41 00 b7 23 bc 01 ea b0 92 8e 8b 2b
   6c 98 de 19 cc 38 23 d4 6e 7d 69 87 b0 32 47 8f ec fa f1 45 37 a1 af
   14 cc 8b e8 29 c6 b7 30 44 10 18 37 eb 4a bc 94 95 65 d8 6d ce 51 cf
   ae 52 ab 82 c1 52 cb 02 58 20 86 2a 7e 5e f1 47 f9 a5 f4 c5 12 e1 b6
   62 3c d6 6c d1 7a 72 72 07 2b fe 5b 60 2f fe 30 7e e0 e9
        

The Responder signs using the private authentication key SK_R.

レスポンダーは、プライベート認証キーSK_Rを使用して署名します。

   Signature_or_MAC_2 (Raw Value) (64 bytes)
   c3 b5 bd 44 d1 e4 4a 08 5c 03 d3 ae de 4e 1e 6c 11 c5 72 a1 96 8c c3
   62 9b 50 5f 98 c6 81 60 8d 3d 1d e7 93 d1 c4 0e b5 dd 5d 89 ac f1 96
   6a ea 07 02 2b 48 cd c9 98 70 eb c4 03 74 e8 fa 6e 09
        
   Signature_or_MAC_2 (CBOR Data Item) (66 bytes)
   58 40 c3 b5 bd 44 d1 e4 4a 08 5c 03 d3 ae de 4e 1e 6c 11 c5 72 a1 96
   8c c3 62 9b 50 5f 98 c6 81 60 8d 3d 1d e7 93 d1 c4 0e b5 dd 5d 89 ac
   f1 96 6a ea 07 02 2b 48 cd c9 98 70 eb c4 03 74 e8 fa 6e 09
        

The Responder constructs PLAINTEXT_2:

応答者はPLAINTEXT_2を構築します。

   PLAINTEXT_2 =
   (
     C_R,
     ID_CRED_R / bstr / -24..23,
     Signature_or_MAC_2,
     ? EAD_2
   )
        
   PLAINTEXT_2 (CBOR Sequence) (82 bytes)
   41 18 a1 18 22 82 2e 48 79 f2 a4 1b 51 0c 1f 9b 58 40 c3 b5 bd 44 d1
   e4 4a 08 5c 03 d3 ae de 4e 1e 6c 11 c5 72 a1 96 8c c3 62 9b 50 5f 98
   c6 81 60 8d 3d 1d e7 93 d1 c4 0e b5 dd 5d 89 ac f1 96 6a ea 07 02 2b
   48 cd c9 98 70 eb c4 03 74 e8 fa 6e 09
        

The input needed to calculate KEYSTREAM_2 is defined in Section 4.1.2 of [RFC9528], using EDHOC_Expand() with the EDHOC hash algorithm:

KEYSTREAM_2の計算に必要な入力は、[RFC9528]のセクション4.1.2で定義されており、EDHOCハッシュアルゴリズムを使用したEDHOC_Expand()を使用します。

   KEYSTREAM_2 = EDHOC_KDF( PRK_2e, 0, TH_2, plaintext_length )
               = HKDF-Expand( PRK_2e, info, plaintext_length )
        

where plaintext_length is the length in bytes of PLAINTEXT_2 in bytes and info for KEYSTREAM_2 is:

平文の長さがPLAINTEXT_2のバイト数であり、KEYSTREAM_2の情報は次のとおりです:

   info =
   (
     0,
     h'c6405c154c567466ab1df20369500e540e9f14bd3a796a06
       52cae66c9061688d',
     82
   )
        

where the last value is the length in bytes of PLAINTEXT_2.

最後の値は、PLAINTEXT_2のバイト数です。

   info for KEYSTREAM_2 (CBOR Sequence) (37 bytes)
   00 58 20 c6 40 5c 15 4c 56 74 66 ab 1d f2 03 69 50 0e 54 0e 9f 14 bd
   3a 79 6a 06 52 ca e6 6c 90 61 68 8d 18 52
        
   KEYSTREAM_2 (Raw Value) (82 bytes)
   fd 3e 7c 3f 2d 6b ee 64 3d 3c 9d 2f 28 47 03 5d 73 e2 ec b0 f8 db 5c
   d1 c6 85 4e 24 89 6a f2 11 88 b2 c4 34 4e 68 9e c2 98 42 83 d9 fb c6
   9c e1 c5 db 10 dc ff f2 4d f9 a4 9a 04 a9 40 58 27 7b c7 fa 9a d6 c6
   b1 94 ab 32 8b 44 5e b0 80 49 0c d7 86
        

The Responder calculates CIPHERTEXT_2 as XOR between PLAINTEXT_2 and KEYSTREAM_2:

The Responderは、PLAINTEXT_2とKEYSTREAM_2のXORとしてCIPHERTEXT_2を計算します。

   CIPHERTEXT_2 (Raw Value) (82 bytes)
   bc 26 dd 27 0f e9 c0 2c 44 ce 39 34 79 4b 1c c6 2b a2 2f 05 45 9f 8d
   35 8c 8d 12 27 5a c4 2c 5f 96 de d5 f1 3c c9 08 4e 5b 20 18 89 a4 5e
   5a 60 a5 56 2d c1 18 61 9c 3d aa 2f d9 f4 c9 f4 d6 ed ad 10 9d d4 ed
   f9 59 62 aa fb af 9a b3 f4 a1 f6 b9 8f
        

The Responder constructs message_2:

応答者はメッセージ_2を構築します。

   message_2 =
   (
     G_Y_CIPHERTEXT_2
   )
        

where G_Y_CIPHERTEXT_2 is the bstr encoding of the concatenation of the raw values of G_Y and CIPHERTEXT_2.

G_Y_CIPHERTEXT_2 は、G_Y と CIPHERTEXT_2 の生の値を連結したものの bstr エンコーディングです。

   message_2 (CBOR Sequence) (116 bytes)
   58 72 dc 88 d2 d5 1d a5 ed 67 fc 46 16 35 6b c8 ca 74 ef 9e be 8b 38
   7e 62 3a 36 0b a4 80 b9 b2 9d 1c bc 26 dd 27 0f e9 c0 2c 44 ce 39 34
   79 4b 1c c6 2b a2 2f 05 45 9f 8d 35 8c 8d 12 27 5a c4 2c 5f 96 de d5
   f1 3c c9 08 4e 5b 20 18 89 a4 5e 5a 60 a5 56 2d c1 18 61 9c 3d aa 2f
   d9 f4 c9 f4 d6 ed ad 10 9d d4 ed f9 59 62 aa fb af 9a b3 f4 a1 f6 b9
   8f
        
2.3. message_3
2.3. message_3

Since METHOD = 0, the Initiator authenticates using signatures. Since the selected cipher suite is 0, the EDHOC signature algorithm is EdDSA.

METHOD = 0 のため、イニシエーターは署名を使用して認証します。選択された暗号スイートが 0 のため、EDHOC 署名アルゴリズムは EdDSA です。

The Initiator's signature key pair uses EdDSA:

イニシエーターの署名キーペアはEdDSAを使用します。

   Initiator's private authentication key
   SK_I (Raw Value) (32 bytes)
   4c 5b 25 87 8f 50 7c 6b 9d ae 68 fb d4 fd 3f f9 97 53 3d b0 af 00 b2
   5d 32 4e a2 8e 6c 21 3b c8
        
   Initiator's public authentication key
   PK_I (Raw Value) (32 bytes)
   ed 06 a8 ae 61 a8 29 ba 5f a5 45 25 c9 d0 7f 48 dd 44 a3 02 f4 3e 0f
   23 d8 cc 20 b7 30 85 14 1e
        

PRK_4e3m is specified in Section 4.1.1.3 of [RFC9528].

PRK_4e3mは[RFC9528]のセクション4.1.1.3で指定されています。

Since the Initiator authenticates with signatures, PRK_4e3m = PRK_3e2m.

イニシエーターが署名で認証するため、PRK_4e3m = PRK_3e2m となります。

   PRK_4e3m (Raw Value) (32 bytes)
   d5 84 ac 2e 5d ad 5a 77 d1 4b 53 eb e7 2e f1 d5 da a8 86 0d 39 93 73
   bf 2c 24 0a fa 7b a8 04 da
        

The transcript hash TH_3 is calculated using the EDHOC hash algorithm:

トランスクリプトハッシュ TH_3 は、EDHOC ハッシュアルゴリズムを使用して計算されます。

TH_3 = H( TH_2, PLAINTEXT_2, CRED_R )

TH_3 = H( TH_2, PLAINTEXT_2, CRED_R)

   Input to calculate TH_3 (CBOR Sequence) (359 bytes)
   58 20 c6 40 5c 15 4c 56 74 66 ab 1d f2 03 69 50 0e 54 0e 9f 14 bd 3a
   79 6a 06 52 ca e6 6c 90 61 68 8d 41 18 a1 18 22 82 2e 48 79 f2 a4 1b
   51 0c 1f 9b 58 40 c3 b5 bd 44 d1 e4 4a 08 5c 03 d3 ae de 4e 1e 6c 11
   c5 72 a1 96 8c c3 62 9b 50 5f 98 c6 81 60 8d 3d 1d e7 93 d1 c4 0e b5
   dd 5d 89 ac f1 96 6a ea 07 02 2b 48 cd c9 98 70 eb c4 03 74 e8 fa 6e
   09 58 f1 30 81 ee 30 81 a1 a0 03 02 01 02 02 04 62 31 9e c4 30 05 06
   03 2b 65 70 30 1d 31 1b 30 19 06 03 55 04 03 0c 12 45 44 48 4f 43 20
   52 6f 6f 74 20 45 64 32 35 35 31 39 30 1e 17 0d 32 32 30 33 31 36 30
   38 32 34 33 36 5a 17 0d 32 39 31 32 33 31 32 33 30 30 30 30 5a 30 22
   31 20 30 1e 06 03 55 04 03 0c 17 45 44 48 4f 43 20 52 65 73 70 6f 6e
   64 65 72 20 45 64 32 35 35 31 39 30 2a 30 05 06 03 2b 65 70 03 21 00
   a1 db 47 b9 51 84 85 4a d1 2a 0c 1a 35 4e 41 8a ac e3 3a a0 f2 c6 62
   c0 0b 3a c5 5d e9 2f 93 59 30 05 06 03 2b 65 70 03 41 00 b7 23 bc 01
   ea b0 92 8e 8b 2b 6c 98 de 19 cc 38 23 d4 6e 7d 69 87 b0 32 47 8f ec
   fa f1 45 37 a1 af 14 cc 8b e8 29 c6 b7 30 44 10 18 37 eb 4a bc 94 95
   65 d8 6d ce 51 cf ae 52 ab 82 c1 52 cb 02
        
   TH_3 (Raw Value) (32 bytes)
   5b 7d f9 b4 f5 8f 24 0c e0 41 8e 48 19 1b 5f ff 3a 22 b5 ca 57 f6 69
   b1 67 77 99 65 92 e9 28 bc
        
   TH_3 (CBOR Data Item) (34 bytes)
   58 20 5b 7d f9 b4 f5 8f 24 0c e0 41 8e 48 19 1b 5f ff 3a 22 b5 ca 57
   f6 69 b1 67 77 99 65 92 e9 28 bc
        

The Initiator constructs the remaining input needed to calculate MAC_3:

イニシエーターは、MAC_3を計算するために必要な残りの入力を構築します。

   MAC_3 = EDHOC_KDF( PRK_4e3m, 6, context_3, mac_length_3 )
        

where

ただし

   context_3 = << ID_CRED_I, TH_3, CRED_I, ? EAD_3 >>
        

CRED_I is identified by a 64-bit hash:

CRED_I は 64 ビットのハッシュによって識別されます。

   ID_CRED_I =
   {
     34 : [-15, h'c24ab2fd7643c79f']
   }
        

where the COSE header value 34 ('x5t') indicates a hash of an X.509 certificate, and the COSE algorithm -15 indicates the hash algorithm SHA-256 truncated to 64 bits.

COSEヘッダーの値34('x5t')がX.509証明書のハッシュを示し、COSEアルゴリズム-15がハッシュアルゴリズムSHA-256を64ビットに切り詰めたものを示す。

   ID_CRED_I (CBOR Data Item) (14 bytes)
   a1 18 22 82 2e 48 c2 4a b2 fd 76 43 c7 9f
        

CRED_I is a CBOR byte string of the DER encoding of the X.509 certificate in Section 2.8.2:

CRED_Iはセクション2.8.2のX.509証明書のDERエンコーディングのCBORバイト文字列です。

   CRED_I (Raw Value) (241 bytes)
   30 81 ee 30 81 a1 a0 03 02 01 02 02 04 62 31 9e a0 30 05 06 03 2b 65
   70 30 1d 31 1b 30 19 06 03 55 04 03 0c 12 45 44 48 4f 43 20 52 6f 6f
   74 20 45 64 32 35 35 31 39 30 1e 17 0d 32 32 30 33 31 36 30 38 32 34
   30 30 5a 17 0d 32 39 31 32 33 31 32 33 30 30 30 30 5a 30 22 31 20 30
   1e 06 03 55 04 03 0c 17 45 44 48 4f 43 20 49 6e 69 74 69 61 74 6f 72
   20 45 64 32 35 35 31 39 30 2a 30 05 06 03 2b 65 70 03 21 00 ed 06 a8
   ae 61 a8 29 ba 5f a5 45 25 c9 d0 7f 48 dd 44 a3 02 f4 3e 0f 23 d8 cc
   20 b7 30 85 14 1e 30 05 06 03 2b 65 70 03 41 00 52 12 41 d8 b3 a7 70
   99 6b cf c9 b9 ea d4 e7 e0 a1 c0 db 35 3a 3b df 29 10 b3 92 75 ae 48
   b7 56 01 59 81 85 0d 27 db 67 34 e3 7f 67 21 22 67 dd 05 ee ff 27 b9
   e7 a8 13 fa 57 4b 72 a0 0b 43 0b
        
   CRED_I (CBOR Data Item) (243 bytes)
   58 f1 30 81 ee 30 81 a1 a0 03 02 01 02 02 04 62 31 9e a0 30 05 06 03
   2b 65 70 30 1d 31 1b 30 19 06 03 55 04 03 0c 12 45 44 48 4f 43 20 52
   6f 6f 74 20 45 64 32 35 35 31 39 30 1e 17 0d 32 32 30 33 31 36 30 38
   32 34 30 30 5a 17 0d 32 39 31 32 33 31 32 33 30 30 30 30 5a 30 22 31
   20 30 1e 06 03 55 04 03 0c 17 45 44 48 4f 43 20 49 6e 69 74 69 61 74
   6f 72 20 45 64 32 35 35 31 39 30 2a 30 05 06 03 2b 65 70 03 21 00 ed
   06 a8 ae 61 a8 29 ba 5f a5 45 25 c9 d0 7f 48 dd 44 a3 02 f4 3e 0f 23
   d8 cc 20 b7 30 85 14 1e 30 05 06 03 2b 65 70 03 41 00 52 12 41 d8 b3
   a7 70 99 6b cf c9 b9 ea d4 e7 e0 a1 c0 db 35 3a 3b df 29 10 b3 92 75
   ae 48 b7 56 01 59 81 85 0d 27 db 67 34 e3 7f 67 21 22 67 dd 05 ee ff
   27 b9 e7 a8 13 fa 57 4b 72 a0 0b 43 0b
        

No external authorization data:

外部認証データはありません。

   EAD_3 (CBOR Sequence) (0 bytes)
        

context_3 = << ID_CRED_I, TH_3, CRED_I, ? EAD_3 >>

context_3 = << ID_CRED_I、TH_3、CRED_I、? EAD_3 >>

   context_3 (CBOR Sequence) (291 bytes)
   a1 18 22 82 2e 48 c2 4a b2 fd 76 43 c7 9f 58 20 5b 7d f9 b4 f5 8f 24
   0c e0 41 8e 48 19 1b 5f ff 3a 22 b5 ca 57 f6 69 b1 67 77 99 65 92 e9
   28 bc 58 f1 30 81 ee 30 81 a1 a0 03 02 01 02 02 04 62 31 9e a0 30 05
   06 03 2b 65 70 30 1d 31 1b 30 19 06 03 55 04 03 0c 12 45 44 48 4f 43
   20 52 6f 6f 74 20 45 64 32 35 35 31 39 30 1e 17 0d 32 32 30 33 31 36
   30 38 32 34 30 30 5a 17 0d 32 39 31 32 33 31 32 33 30 30 30 30 5a 30
   22 31 20 30 1e 06 03 55 04 03 0c 17 45 44 48 4f 43 20 49 6e 69 74 69
   61 74 6f 72 20 45 64 32 35 35 31 39 30 2a 30 05 06 03 2b 65 70 03 21
   00 ed 06 a8 ae 61 a8 29 ba 5f a5 45 25 c9 d0 7f 48 dd 44 a3 02 f4 3e
   0f 23 d8 cc 20 b7 30 85 14 1e 30 05 06 03 2b 65 70 03 41 00 52 12 41
   d8 b3 a7 70 99 6b cf c9 b9 ea d4 e7 e0 a1 c0 db 35 3a 3b df 29 10 b3
   92 75 ae 48 b7 56 01 59 81 85 0d 27 db 67 34 e3 7f 67 21 22 67 dd 05
   ee ff 27 b9 e7 a8 13 fa 57 4b 72 a0 0b 43 0b
        
   context_3 (CBOR byte string) (294 bytes)
   59 01 23 a1 18 22 82 2e 48 c2 4a b2 fd 76 43 c7 9f 58 20 5b 7d f9 b4
   f5 8f 24 0c e0 41 8e 48 19 1b 5f ff 3a 22 b5 ca 57 f6 69 b1 67 77 99
   65 92 e9 28 bc 58 f1 30 81 ee 30 81 a1 a0 03 02 01 02 02 04 62 31 9e
   a0 30 05 06 03 2b 65 70 30 1d 31 1b 30 19 06 03 55 04 03 0c 12 45 44
   48 4f 43 20 52 6f 6f 74 20 45 64 32 35 35 31 39 30 1e 17 0d 32 32 30
   33 31 36 30 38 32 34 30 30 5a 17 0d 32 39 31 32 33 31 32 33 30 30 30
   30 5a 30 22 31 20 30 1e 06 03 55 04 03 0c 17 45 44 48 4f 43 20 49 6e
   69 74 69 61 74 6f 72 20 45 64 32 35 35 31 39 30 2a 30 05 06 03 2b 65
   70 03 21 00 ed 06 a8 ae 61 a8 29 ba 5f a5 45 25 c9 d0 7f 48 dd 44 a3
   02 f4 3e 0f 23 d8 cc 20 b7 30 85 14 1e 30 05 06 03 2b 65 70 03 41 00
   52 12 41 d8 b3 a7 70 99 6b cf c9 b9 ea d4 e7 e0 a1 c0 db 35 3a 3b df
   29 10 b3 92 75 ae 48 b7 56 01 59 81 85 0d 27 db 67 34 e3 7f 67 21 22
   67 dd 05 ee ff 27 b9 e7 a8 13 fa 57 4b 72 a0 0b 43 0b
        

MAC_3 is computed through EDHOC_Expand() using the EDHOC hash algorithm (see Section 4.1.2 of [RFC9528]):

MAC_3 は、EDHOC ハッシュアルゴリズムを使用して EDHOC_Expand() を介して計算されます([RFC9528] のセクション 4.1.2 を参照)。

   MAC_3 = HKDF-Expand( PRK_4e3m, info, mac_length_3 )
        

where

ただし

   info = ( 6, context_3, mac_length_3 )
        

where

ただし

   context_3 = << ID_CRED_I, TH_3, CRED_I, ? EAD_3 >>
        

Since METHOD = 0, mac_length_3 is given by the EDHOC hash algorithm.

METHOD = 0 のため、mac_length_3 は EDHOC ハッシュアルゴリズムによって与えられます。

info for MAC_3 is:

MAC_3の情報は次のとおりです。

   info =
   (
     6,
     h'a11822822e48c24ab2fd7643c79f58205b7df9b4f58f240c
       e0418e48191b5fff3a22b5ca57f669b16777996592e928bc
       58f13081ee3081a1a003020102020462319ea0300506032b
       6570301d311b301906035504030c124544484f4320526f6f
       742045643235353139301e170d3232303331363038323430
       305a170d3239313233313233303030305a30223120301e06
       035504030c174544484f4320496e69746961746f72204564
       3235353139302a300506032b6570032100ed06a8ae61a829
       ba5fa54525c9d07f48dd44a302f43e0f23d8cc20b7308514
       1e300506032b6570034100521241d8b3a770996bcfc9b9ea
       d4e7e0a1c0db353a3bdf2910b39275ae48b756015981850d
       27db6734e37f67212267dd05eeff27b9e7a813fa574b72a0
       0b430b',
     32
   )
        

where the last value is the output size of the EDHOC hash algorithm in bytes.

最後の値は、EDHOCハッシュアルゴリズムの出力サイズ(バイト単位)です。

   info for MAC_3 (CBOR Sequence) (297 bytes)
   06 59 01 23 a1 18 22 82 2e 48 c2 4a b2 fd 76 43 c7 9f 58 20 5b 7d f9
   b4 f5 8f 24 0c e0 41 8e 48 19 1b 5f ff 3a 22 b5 ca 57 f6 69 b1 67 77
   99 65 92 e9 28 bc 58 f1 30 81 ee 30 81 a1 a0 03 02 01 02 02 04 62 31
   9e a0 30 05 06 03 2b 65 70 30 1d 31 1b 30 19 06 03 55 04 03 0c 12 45
   44 48 4f 43 20 52 6f 6f 74 20 45 64 32 35 35 31 39 30 1e 17 0d 32 32
   30 33 31 36 30 38 32 34 30 30 5a 17 0d 32 39 31 32 33 31 32 33 30 30
   30 30 5a 30 22 31 20 30 1e 06 03 55 04 03 0c 17 45 44 48 4f 43 20 49
   6e 69 74 69 61 74 6f 72 20 45 64 32 35 35 31 39 30 2a 30 05 06 03 2b
   65 70 03 21 00 ed 06 a8 ae 61 a8 29 ba 5f a5 45 25 c9 d0 7f 48 dd 44
   a3 02 f4 3e 0f 23 d8 cc 20 b7 30 85 14 1e 30 05 06 03 2b 65 70 03 41
   00 52 12 41 d8 b3 a7 70 99 6b cf c9 b9 ea d4 e7 e0 a1 c0 db 35 3a 3b
   df 29 10 b3 92 75 ae 48 b7 56 01 59 81 85 0d 27 db 67 34 e3 7f 67 21
   22 67 dd 05 ee ff 27 b9 e7 a8 13 fa 57 4b 72 a0 0b 43 0b 18 20
        
   MAC_3 (Raw Value) (32 bytes)
   39 b1 27 c1 30 12 9a fa 30 61 8c 75 13 29 e6 37 cc 37 34 27 0d 4b 01
   25 84 45 a8 ee 02 da a3 bd
        
   MAC_3 (CBOR Data Item) (34 bytes)
   58 20 39 b1 27 c1 30 12 9a fa 30 61 8c 75 13 29 e6 37 cc 37 34 27 0d
   4b 01 25 84 45 a8 ee 02 da a3 bd
        

Since METHOD = 0, Signature_or_MAC_3 is the 'signature' of the COSE_Sign1 object.

METHOD = 0 のため、Signature_or_MAC_3 は COSE_Sign1 オブジェクトの 'signature' です。

The Initiator constructs the message to be signed:

イニシエーターは署名するメッセージを構築します。

   [
     "Signature1",
     << ID_CRED_I >>,
     << TH_3, CRED_I, ? EAD_3 >>,
     MAC_3
   ] =

   [
     "Signature1",
     h'a11822822e48c24ab2fd7643c79f',
     h'58205b7df9b4f58f240ce0418e48191b5fff3a22b5ca57f6
       69b16777996592e928bc58f13081ee3081a1a00302010202
       0462319ea0300506032b6570301d311b301906035504030c
       124544484f4320526f6f742045643235353139301e170d32
       32303331363038323430305a170d32393132333132333030
       30305a30223120301e06035504030c174544484f4320496e
       69746961746f722045643235353139302a300506032b6570
       032100ed06a8ae61a829ba5fa54525c9d07f48dd44a302f4
       3e0f23d8cc20b73085141e300506032b6570034100521241
       d8b3a770996bcfc9b9ead4e7e0a1c0db353a3bdf2910b392
       75ae48b756015981850d27db6734e37f67212267dd05eeff
       27b9e7a813fa574b72a00b430b',
     h'39b127c130129afa30618c751329e637cc3734270d4b0125
       8445a8ee02daa3bd'
   ]
        
   Message to be signed in message_3 (CBOR Data Item) (341 bytes)
   84 6a 53 69 67 6e 61 74 75 72 65 31 4e a1 18 22 82 2e 48 c2 4a b2 fd
   76 43 c7 9f 59 01 15 58 20 5b 7d f9 b4 f5 8f 24 0c e0 41 8e 48 19 1b
   5f ff 3a 22 b5 ca 57 f6 69 b1 67 77 99 65 92 e9 28 bc 58 f1 30 81 ee
   30 81 a1 a0 03 02 01 02 02 04 62 31 9e a0 30 05 06 03 2b 65 70 30 1d
   31 1b 30 19 06 03 55 04 03 0c 12 45 44 48 4f 43 20 52 6f 6f 74 20 45
   64 32 35 35 31 39 30 1e 17 0d 32 32 30 33 31 36 30 38 32 34 30 30 5a
   17 0d 32 39 31 32 33 31 32 33 30 30 30 30 5a 30 22 31 20 30 1e 06 03
   55 04 03 0c 17 45 44 48 4f 43 20 49 6e 69 74 69 61 74 6f 72 20 45 64
   32 35 35 31 39 30 2a 30 05 06 03 2b 65 70 03 21 00 ed 06 a8 ae 61 a8
   29 ba 5f a5 45 25 c9 d0 7f 48 dd 44 a3 02 f4 3e 0f 23 d8 cc 20 b7 30
   85 14 1e 30 05 06 03 2b 65 70 03 41 00 52 12 41 d8 b3 a7 70 99 6b cf
   c9 b9 ea d4 e7 e0 a1 c0 db 35 3a 3b df 29 10 b3 92 75 ae 48 b7 56 01
   59 81 85 0d 27 db 67 34 e3 7f 67 21 22 67 dd 05 ee ff 27 b9 e7 a8 13
   fa 57 4b 72 a0 0b 43 0b 58 20 39 b1 27 c1 30 12 9a fa 30 61 8c 75 13
   29 e6 37 cc 37 34 27 0d 4b 01 25 84 45 a8 ee 02 da a3 bd
        

The Initiator signs using the private authentication key SK_I:

イニシエーターは、プライベート認証キーSK_Iを使用して署名します。

   Signature_or_MAC_3 (Raw Value) (64 bytes)
   96 e1 cd 5f ce ad fa c1 b5 af 81 94 43 f7 09 24 f5 71 99 55 95 7f d0
   26 55 be b4 77 5e 1a 73 18 6a 0d 1d 3e a6 83 f0 8f 8d 03 dc ec b9 cf
   15 4e 1c 6f 55 5a 1e 12 ca 11 8c e4 2b db a6 87 89 07
        
   Signature_or_MAC_3 (CBOR Data Item) (66 bytes)
   58 40 96 e1 cd 5f ce ad fa c1 b5 af 81 94 43 f7 09 24 f5 71 99 55 95
   7f d0 26 55 be b4 77 5e 1a 73 18 6a 0d 1d 3e a6 83 f0 8f 8d 03 dc ec
   b9 cf 15 4e 1c 6f 55 5a 1e 12 ca 11 8c e4 2b db a6 87 89 07
        

The Initiator constructs PLAINTEXT_3:

イニシエーターはPLAINTEXT_3を構築します。

   PLAINTEXT_3 =
   (
     ID_CRED_I / bstr / -24..23,
     Signature_or_MAC_3,
     ? EAD_3
   )
        
   PLAINTEXT_3 (CBOR Sequence) (80 bytes)
   a1 18 22 82 2e 48 c2 4a b2 fd 76 43 c7 9f 58 40 96 e1 cd 5f ce ad fa
   c1 b5 af 81 94 43 f7 09 24 f5 71 99 55 95 7f d0 26 55 be b4 77 5e 1a
   73 18 6a 0d 1d 3e a6 83 f0 8f 8d 03 dc ec b9 cf 15 4e 1c 6f 55 5a 1e
   12 ca 11 8c e4 2b db a6 87 89 07
        

The Initiator constructs the associated data for message_3:

イニシエーターは、メッセージ_3用の関連データを構築します。

   A_3 =
   [
     "Encrypt0",
     h'',
     h'5b7df9b4f58f240ce0418e48191b5fff3a22b5ca57f669b1
       6777996592e928bc'
   ]
        
   A_3 (CBOR Data Item) (45 bytes)
   83 68 45 6e 63 72 79 70 74 30 40 58 20 5b 7d f9 b4 f5 8f 24 0c e0 41
   8e 48 19 1b 5f ff 3a 22 b5 ca 57 f6 69 b1 67 77 99 65 92 e9 28 bc
        

The Initiator constructs the input needed to derive the key K_3 (see Section 4.1.2 of [RFC9528]) using the EDHOC hash algorithm:

イニシエーターは、EDHOCハッシュアルゴリズムを使用して、キーK_3を導出するために必要な入力を構築します([RFC9528]のセクション4.1.2を参照)。

   K_3 = EDHOC_KDF( PRK_3e2m, 3, TH_3, key_length )
       = HKDF-Expand( PRK_3e2m, info, key_length )
        

where key_length is the key length in bytes for the EDHOC Authenticated Encryption with Associated Data (AEAD) algorithm, and info for K_3 is:

キー長さは、EDHOC Authenticated Encryption with Associated Data (AEAD) アルゴリズムのキー長さ(バイト単位)であり、K_3 の info は次の通りです。

   info =
   (
     3,
     h'5b7df9b4f58f240ce0418e48191b5fff3a22b5ca57f669b1
       6777996592e928bc',
     16
   )
        

where the last value is the key length in bytes for the EDHOC AEAD algorithm.

最後の値は、EDHOC AEAD アルゴリズムのキー長(バイト単位)です。

   info for K_3 (CBOR Sequence) (36 bytes)
   03 58 20 5b 7d f9 b4 f5 8f 24 0c e0 41 8e 48 19 1b 5f ff 3a 22 b5 ca
   57 f6 69 b1 67 77 99 65 92 e9 28 bc 10
        
   K_3 (Raw Value) (16 bytes)
   da 19 5e 5f 64 8a c6 3b 0e 8f b0 c4 55 20 51 39
        

The Initiator constructs the input needed to derive the nonce IV_3 (see Section 4.1.2 of [RFC9528]) using the EDHOC hash algorithm:

イニシエーターは、EDHOCハッシュアルゴリズムを使用して、IV_3を導出するために必要な入力を構築します。

   IV_3 = EDHOC_KDF( PRK_3e2m, 4, TH_3, iv_length )
        = HKDF-Expand( PRK_3e2m, info, iv_length )
        

where iv_length is the nonce length in bytes for the EDHOC AEAD algorithm, and info for IV_3 is:

iv_length は、EDHOC AEAD アルゴリズムのノンスの長さ(バイト単位)であり、IV_3 の info は次の通りです。

   info =
   (
     4,
     h'5b7df9b4f58f240ce0418e48191b5fff3a22b5ca57f669b1
       6777996592e928bc',
     13
   )
        

where the last value is the nonce length in bytes for the EDHOC AEAD algorithm.

最後の値は、EDHOC AEADアルゴリズムのノンス長(バイト単位)です。

   info for IV_3 (CBOR Sequence) (36 bytes)
   04 58 20 5b 7d f9 b4 f5 8f 24 0c e0 41 8e 48 19 1b 5f ff 3a 22 b5 ca
   57 f6 69 b1 67 77 99 65 92 e9 28 bc 0d
        
   IV_3 (Raw Value) (13 bytes)
   38 d8 c6 4c 56 25 5a ff a4 49 f4 be d7
        

The Initiator calculates CIPHERTEXT_3 as 'ciphertext' of COSE_Encrypt0 applied using the EDHOC AEAD algorithm with plaintext PLAINTEXT_3, additional data A_3, key K_3, and nonce IV_3.

イニシエーターは、平文PLAINTEXT_3、追加データA_3、鍵K_3、およびノンスIV_3を使用してEDHOC AEADアルゴリズムを適用したCOSE_Encrypt0の 'ciphertext' としてCIPHERTEXT_3を計算します。

   CIPHERTEXT_3 (Raw Value) (88 bytes)
   25 c3 45 88 4a aa eb 22 c5 27 f9 b1 d2 b6 78 72 07 e0 16 3c 69 b6 2a
   0d 43 92 81 50 42 72 03 c3 16 74 e4 51 4e a6 e3 83 b5 66 eb 29 76 3e
   fe b0 af a5 18 77 6a e1 c6 5f 85 6d 84 bf 32 af 3a 78 36 97 04 66 dc
   b7 1f 76 74 5d 39 d3 02 5e 77 03 e0 c0 32 eb ad 51 94 7c
        

message_3 is the CBOR bstr encoding of CIPHERTEXT_3:

message_3 は CIPHERTEXT_3 の CBOR bstr エンコーディングです。

   message_3 (CBOR Sequence) (90 bytes)
   58 58 25 c3 45 88 4a aa eb 22 c5 27 f9 b1 d2 b6 78 72 07 e0 16 3c 69
   b6 2a 0d 43 92 81 50 42 72 03 c3 16 74 e4 51 4e a6 e3 83 b5 66 eb 29
   76 3e fe b0 af a5 18 77 6a e1 c6 5f 85 6d 84 bf 32 af 3a 78 36 97 04
   66 dc b7 1f 76 74 5d 39 d3 02 5e 77 03 e0 c0 32 eb ad 51 94 7c
        

The transcript hash TH_4 is calculated using the EDHOC hash algorithm:

トランスクリプトハッシュ TH_4 は、EDHOC ハッシュアルゴリズムを使用して計算されます。

TH_4 = H( TH_3, PLAINTEXT_3, CRED_I )

TH_4 = H( TH_3, PLAINTEXT_3, CRED_I )

   Input to calculate TH_4 (CBOR Sequence) (357 bytes)
   58 20 5b 7d f9 b4 f5 8f 24 0c e0 41 8e 48 19 1b 5f ff 3a 22 b5 ca 57
   f6 69 b1 67 77 99 65 92 e9 28 bc a1 18 22 82 2e 48 c2 4a b2 fd 76 43
   c7 9f 58 40 96 e1 cd 5f ce ad fa c1 b5 af 81 94 43 f7 09 24 f5 71 99
   55 95 7f d0 26 55 be b4 77 5e 1a 73 18 6a 0d 1d 3e a6 83 f0 8f 8d 03
   dc ec b9 cf 15 4e 1c 6f 55 5a 1e 12 ca 11 8c e4 2b db a6 87 89 07 58
   f1 30 81 ee 30 81 a1 a0 03 02 01 02 02 04 62 31 9e a0 30 05 06 03 2b
   65 70 30 1d 31 1b 30 19 06 03 55 04 03 0c 12 45 44 48 4f 43 20 52 6f
   6f 74 20 45 64 32 35 35 31 39 30 1e 17 0d 32 32 30 33 31 36 30 38 32
   34 30 30 5a 17 0d 32 39 31 32 33 31 32 33 30 30 30 30 5a 30 22 31 20
   30 1e 06 03 55 04 03 0c 17 45 44 48 4f 43 20 49 6e 69 74 69 61 74 6f
   72 20 45 64 32 35 35 31 39 30 2a 30 05 06 03 2b 65 70 03 21 00 ed 06
   a8 ae 61 a8 29 ba 5f a5 45 25 c9 d0 7f 48 dd 44 a3 02 f4 3e 0f 23 d8
   cc 20 b7 30 85 14 1e 30 05 06 03 2b 65 70 03 41 00 52 12 41 d8 b3 a7
   70 99 6b cf c9 b9 ea d4 e7 e0 a1 c0 db 35 3a 3b df 29 10 b3 92 75 ae
   48 b7 56 01 59 81 85 0d 27 db 67 34 e3 7f 67 21 22 67 dd 05 ee ff 27
   b9 e7 a8 13 fa 57 4b 72 a0 0b 43 0b
        
   TH_4 (Raw Value) (32 bytes)
   0e b8 68 f2 63 cf 35 55 dc cd 39 6d d8 de c2 9d 37 50 d5 99 be 42 d5
   a4 1a 5a 37 c8 96 f2 94 ac
        
   TH_4 (CBOR Data Item) (34 bytes)
   58 20 0e b8 68 f2 63 cf 35 55 dc cd 39 6d d8 de c2 9d 37 50 d5 99 be
   42 d5 a4 1a 5a 37 c8 96 f2 94 ac
        
2.4. message_4
2.4. message_4

No external authorization data:

外部認証データはありません。

   EAD_4 (CBOR Sequence) (0 bytes)
        

The Responder constructs PLAINTEXT_4:

応答者はPLAINTEXT_4を構築します。

   PLAINTEXT_4 =
   (
     ? EAD_4
   )
        
   PLAINTEXT_4 (CBOR Sequence) (0 bytes)
        

The Responder constructs the associated data for message_4:

レスポンダーは、メッセージ_4に関連するデータを構築します。

   A_4 =
   [
     "Encrypt0",
     h'',
     h'0eb868f263cf3555dccd396dd8dec29d3750d599be42d5a4
       1a5a37c896f294ac'
   ]
        
   A_4 (CBOR Data Item) (45 bytes)
   83 68 45 6e 63 72 79 70 74 30 40 58 20 0e b8 68 f2 63 cf 35 55 dc cd
   39 6d d8 de c2 9d 37 50 d5 99 be 42 d5 a4 1a 5a 37 c8 96 f2 94 ac
        

The Responder constructs the input needed to derive the EDHOC message_4 key (see Section 4.1.2 of [RFC9528]) using the EDHOC hash algorithm:

レスポンダーは、EDHOCハッシュアルゴリズムを使用して、EDHOCメッセージ_4のキーを導出するために必要な入力を構築します。

   K_4 = EDHOC_KDF( PRK_4e3m, 8, TH_4, key_length )
       = HKDF-Expand( PRK_4e3m, info, key_length )
        

where key_length is the key length in bytes for the EDHOC AEAD algorithm, and info for K_4 is:

キー長さは、EDHOC AEAD アルゴリズムのキー長さ(バイト単位)であり、K_4 の info は次の通りです:

   info =
   (
     8,
     h'0eb868f263cf3555dccd396dd8dec29d3750d599be42d5a4
       1a5a37c896f294ac',
     16
   )
        

where the last value is the key length in bytes for the EDHOC AEAD algorithm.

最後の値は、EDHOC AEAD アルゴリズムのキー長(バイト単位)です。

   info for K_4 (CBOR Sequence) (36 bytes)
   08 58 20 0e b8 68 f2 63 cf 35 55 dc cd 39 6d d8 de c2 9d 37 50 d5 99
   be 42 d5 a4 1a 5a 37 c8 96 f2 94 ac 10
        
   K_4 (Raw Value) (16 bytes)
   df 8c b5 86 1e 1f df ed d3 b2 30 15 a3 9d 1e 2e
        

The Responder constructs the input needed to derive the EDHOC message_4 nonce (see Section 4.1.2 of [RFC9528]) using the EDHOC hash algorithm:

レスポンダーは、EDHOCハッシュアルゴリズムを使用して、EDHOCメッセージ_4のノンスを導出するために必要な入力を構築します([RFC9528]のセクション4.1.2を参照)。

   IV_4 = EDHOC_KDF( PRK_4e3m, 9, TH_4, iv_length )
        = HKDF-Expand( PRK_4e3m, info, iv_length )
        

where length is the nonce length in bytes for the EDHOC AEAD algorithm, and info for IV_4 is:

EDHOC AEADアルゴリズムのnonce長さ(バイト単位)であり、IV_4の情報は次のとおりです。

   info =
   (
     9,
     h'0eb868f263cf3555dccd396dd8dec29d3750d599be42d5a4
       1a5a37c896f294ac',
     13
   )
        

where the last value is the nonce length in bytes for the EDHOC AEAD algorithm.

最後の値は、EDHOC AEADアルゴリズムのノンス長(バイト単位)です。

   info for IV_4 (CBOR Sequence) (36 bytes)
   09 58 20 0e b8 68 f2 63 cf 35 55 dc cd 39 6d d8 de c2 9d 37 50 d5 99
   be 42 d5 a4 1a 5a 37 c8 96 f2 94 ac 0d
        
   IV_4 (Raw Value) (13 bytes)
   12 8e c6 58 d9 70 d7 38 0f 74 fc 6c 27
        

The Responder calculates CIPHERTEXT_4 as 'ciphertext' of COSE_Encrypt0 applied using the EDHOC AEAD algorithm with plaintext PLAINTEXT_4, additional data A_4, key K_4, and nonce IV_4.

レスポンダーは、平文PLAINTEXT_4、追加データA_4、鍵K_4、およびノンスIV_4を使用してEDHOC AEADアルゴリズムを適用したCOSE_Encrypt0の 'ciphertext' としてCIPHERTEXT_4を計算します。

   CIPHERTEXT_4 (8 bytes)
   4f 0e de e3 66 e5 c8 83
        

message_4 is the CBOR bstr encoding of CIPHERTEXT_4:

message_4 は CIPHERTEXT_4 の CBOR bstr エンコーディングです。

   message_4 (CBOR Sequence) (9 bytes)
   48 4f 0e de e3 66 e5 c8 83
        
2.5. PRK_out and PRK_exporter
2.5. PRK_out と PRK_exporter

PRK_out is specified in Section 4.1.3 of [RFC9528].

PRK_out は [RFC9528] のセクション 4.1.3 で指定されています。

   PRK_out = EDHOC_KDF( PRK_4e3m, 7, TH_4, hash_length )
           = HKDF-Expand( PRK_4e3m, info, hash_length )
        

where hash_length is the length in bytes of the output of the EDHOC hash algorithm, and info for PRK_out is:

hash_length は、EDHOC ハッシュアルゴリズムの出力のバイト長であり、PRK_out の info は次のとおりです。

   info =
   (
     7,
     h'0eb868f263cf3555dccd396dd8dec29d3750d599be42d5a4
       1a5a37c896f294ac',
     32
   )
        

where the last value is the length in bytes of the output of the EDHOC hash algorithm.

最後の値は、EDHOCハッシュアルゴリズムの出力のバイト長です。

   info for PRK_out (CBOR Sequence) (37 bytes)
   07 58 20 0e b8 68 f2 63 cf 35 55 dc cd 39 6d d8 de c2 9d 37 50 d5 99
   be 42 d5 a4 1a 5a 37 c8 96 f2 94 ac 18 20
        
   PRK_out (Raw Value) (32 bytes)
   b7 44 cb 7d 8a 87 cc 04 47 c3 35 0e 16 5b 25 0d ab 12 ec 45 33 25 ab
   b9 22 b3 03 07 e5 c3 68 f0
        

The Object Security for Constrained RESTful Environments (OSCORE) Master Secret and OSCORE Master Salt are derived with the EDHOC_Exporter as specified in Section 4.2.1 of [RFC9528].

Constrained RESTful環境向けのObject Security(OSCORE)マスターシークレットとOSCOREマスターソルトは、[RFC9528]のセクション4.2.1で指定されているEDHOC_Exporterを使用して導出されます。

   EDHOC_Exporter( exporter_label, context, length )
   = EDHOC_KDF( PRK_exporter, exporter_label, context, length )
        

where PRK_exporter is derived from PRK_out:

PRK_exporter は PRK_out から派生しています。

   PRK_exporter = EDHOC_KDF( PRK_out, 10, h'', hash_length )
                = HKDF-Expand( PRK_out, info, hash_length )
        

where hash_length is the length in bytes of the output of the EDHOC hash algorithm, and info for the PRK_exporter is:

hash_length は、EDHOC ハッシュアルゴリズムの出力のバイト長であり、PRK_exporter の info は次のとおりです。

   info =
   (
     10,
     h'',
     32
   )
        

where the last value is the length in bytes of the output of the EDHOC hash algorithm.

最後の値は、EDHOCハッシュアルゴリズムの出力のバイト長です。

   info for PRK_exporter (CBOR Sequence) (4 bytes)
   0a 40 18 20
        
   PRK_exporter (Raw Value) (32 bytes)
   2a ae c8 fc 4a b3 bc 32 95 de f6 b5 51 05 1a 2f a5 61 42 4d b3 01 fa
   84 f6 42 f5 57 8a 6d f5 1a
        
2.6. OSCORE Parameters
2.6. OSCORE パラメータ

The derivation of OSCORE parameters is specified in Appendix A.1 of [RFC9528].

[OSCOREパラメータの導出方法は[RFC9528]の付録A.1で指定されています。]

The AEAD and hash algorithms to use in OSCORE are given by the selected cipher suite:

OSCOREで使用するAEADおよびハッシュアルゴリズムは、選択された暗号スイートによって指定されます。

   Application AEAD Algorithm (int)
   10
        
   Application Hash Algorithm (int)
   -16
        

The mapping from EDHOC connection identifiers to OSCORE Sender/ Recipient IDs is defined in Section 3.3.3 of [RFC9528].

[EDHOC接続識別子からOSCORE送信者/受信者IDへのマッピングは、[RFC9528]のセクション3.3.3で定義されています。

C_R is mapped to the Recipient ID of the server, i.e., the Sender ID of the client. The byte string 0x18, which as C_R is encoded as the CBOR byte string 0x4118, is converted to the server Recipient ID 0x18.

C_Rはサーバーの受信者IDにマップされ、つまりクライアントの送信者IDです。C_Rとしてエンコードされたバイト文字列0x18は、CBORバイト文字列0x4118としてエンコードされ、サーバーの受信者ID0x18に変換されます。

   Client's OSCORE Sender ID (Raw Value) (1 byte)
   18
        

C_I is mapped to the Recipient ID of the client, i.e., the Sender ID of the server. The byte string 0x2d, which as C_I is encoded as the CBOR integer 0x2d, is converted to the client Recipient ID 0x2d.

C_Iはクライアントの受信者IDにマッピングされ、つまりサーバーの送信者IDになります。C_Iとしてエンコードされた0x2dのバイト文字列は、CBOR整数0x2dとして変換され、クライアントの受信者ID 0x2dになります。

   Server's OSCORE Sender ID (Raw Value) (1 byte)
   2d
        

The OSCORE Master Secret is computed through EDHOC_Expand() using the application hash algorithm (see Appendix A.1 of [RFC9528]):

OSCOREマスターシークレットは、アプリケーションハッシュアルゴリズムを使用して、EDHOC_Expand()を介して計算されます([RFC9528]の付録A.1を参照)。

   OSCORE Master Secret = EDHOC_Exporter( 0, h'', oscore_key_length )
   = EDHOC_KDF( PRK_exporter, 0, h'', oscore_key_length )
   = HKDF-Expand( PRK_exporter, info, oscore_key_length )
        

where oscore_key_length is the key length in bytes for the application AEAD algorithm by default, and info for the OSCORE Master Secret is:

oscore_key_length は、デフォルトでアプリケーション AEAD アルゴリズムのキー長(バイト単位)であり、OSCORE マスターシークレットの情報は次のとおりです。

   info =
   (
     0,
     h'',
     16
   )
        

where the last value is the key length in bytes for the application AEAD algorithm.

最後の値は、アプリケーションのAEADアルゴリズムのキー長(バイト単位)です。

   info for OSCORE Master Secret (CBOR Sequence) (3 bytes)
   00 40 10
        
   OSCORE Master Secret (Raw Value) (16 bytes)
   1e 1c 6b ea c3 a8 a1 ca c4 35 de 7e 2f 9a e7 ff
        

The OSCORE Master Salt is computed through EDHOC_Expand() using the application hash algorithm (see Section 4.2 of [RFC9528]):

OSCOREマスターソルトは、アプリケーションハッシュアルゴリズムを使用して、EDHOC_Expand()を介して計算されます([RFC9528]のセクション4.2を参照)。

   OSCORE Master Salt = EDHOC_Exporter( 1, h'', oscore_salt_length )
   = EDHOC_KDF( PRK_exporter, 1, h'', oscore_salt_length )
   = HKDF-Expand( PRK_exporter, info, oscore_salt_length )
        

where oscore_salt_length is the length in bytes of the OSCORE Master Salt, and info for the OSCORE Master Salt is:

OSCOREマスターソルトの長さはバイト単位であり、OSCOREマスターソルトの情報は次のとおりです。

   info =
   (
     1,
     h'',
     8
   )
        

where the last value is the length in bytes of the OSCORE Master Salt.

最後の値は、OSCOREマスターソルトのバイト長です。

   info for OSCORE Master Salt (CBOR Sequence) (3 bytes)
   01 40 08
        
   OSCORE Master Salt (Raw Value) (8 bytes)
   ce 7a b8 44 c0 10 6d 73
        
2.7. Key Update
2.7. キーの更新

Key update is defined in Appendix H of [RFC9528].

キー更新は[RFC9528]の付録Hで定義されています。

   EDHOC_KeyUpdate( context ):
   PRK_out = EDHOC_KDF( PRK_out, 11, context, hash_length )
           = HKDF-Expand( PRK_out, info, hash_length )
        

where hash_length is the length in bytes of the output of the EDHOC hash function, and the context for KeyUpdate is:

ハッシュ関数EDHOCの出力のバイト数であるhash_length、およびKeyUpdateのコンテキストは次のとおりです:

   context for KeyUpdate (Raw Value) (16 bytes)
   d6 be 16 96 02 b8 bc ea a0 11 58 fd b8 20 89 0c
        
   context for KeyUpdate (CBOR Data Item) (17 bytes)
   50 d6 be 16 96 02 b8 bc ea a0 11 58 fd b8 20 89 0c
        

where info for KeyUpdate is:

KeyUpdateの情報はどこにありますか。

   info =
   (
     11,
     h'd6be169602b8bceaa01158fdb820890c',
     32
   )
        
   info for KeyUpdate (CBOR Sequence) (20 bytes)
   0b 50 d6 be 16 96 02 b8 bc ea a0 11 58 fd b8 20 89 0c 18 20
        
   PRK_out after KeyUpdate (Raw Value) (32 bytes)
   da 6e ac d9 a9 85 f4 fb a9 ae c2 a9 29 90 22 97 6b 25 b1 4e 89 fa 15
   97 94 f2 8d 82 fa f2 da ad
        

After the key update, the PRK_exporter needs to be derived anew:

キーの更新後、PRK_exporterを新たに導出する必要があります。

   PRK_exporter = EDHOC_KDF( PRK_out, 10, h'', hash_length )
                = HKDF-Expand( PRK_out, info, hash_length )
        

where info and hash_length are unchanged as in Section 2.5.

情報とハッシュ長がセクション2.5と同じままである場合。

   PRK_exporter after KeyUpdate (Raw Value) (32 bytes)
   00 14 d2 52 5e e0 d8 e2 13 ea 59 08 02 8e 9a 1c e9 a0 1c 30 54 6f 09
   30 c0 44 d3 8d b5 36 2c 05
        

The OSCORE Master Secret is derived with the updated PRK_exporter:

OSCOREマスターシークレットは更新されたPRK_exporterで導出されます。

   OSCORE Master Secret
   = HKDF-Expand( PRK_exporter, info, oscore_key_length )
        

where info and oscore_key_length are unchanged as in Section 2.6.

情報とoscore_key_lengthは、セクション2.6と同じままです。

   OSCORE Master Secret after KeyUpdate (Raw Value) (16 bytes)
   ee 0f f5 42 c4 7e b0 e0 9c 69 30 76 49 bd bb e5
        

The OSCORE Master Salt is derived with the updated PRK_exporter:

OSCOREマスターソルトは、更新されたPRK_exporterによって派生されます。

   OSCORE Master Salt
   = HKDF-Expand( PRK_exporter, info, oscore_salt_length )
        

where info and oscore_salt_length are unchanged as in Section 2.6.

情報とoscore_salt_lengthは、セクション2.6と同じままです。

   OSCORE Master Salt after KeyUpdate (Raw Value) (8 bytes)
   80 ce de 2a 1e 5a ab 48
        
2.8. Certificates
2.8. 証明書
2.8.1. Responder Certificate
2.8.1. 応答者証明書
           Version: 3 (0x2)
           Serial Number: 1647419076 (0x62319ec4)
           Signature Algorithm: ED25519
           Issuer: CN = EDHOC Root Ed25519
           Validity
               Not Before: Mar 16 08:24:36 2022 GMT
               Not After : Dec 31 23:00:00 2029 GMT
           Subject: CN = EDHOC Responder Ed25519
           Subject Public Key Info:
               Public Key Algorithm: ED25519
                   ED25519 Public-Key:
                   pub:
                       a1 db 47 b9 51 84 85 4a d1 2a 0c 1a 35 4e 41
                       8a ac e3 3a a0 f2 c6 62 c0 0b 3a c5 5d e9 2f
                       93 59
           Signature Algorithm: ED25519
           Signature Value:
               b7 23 bc 01 ea b0 92 8e 8b 2b 6c 98 de 19 cc 38 23 d4
               6e 7d 69 87 b0 32 47 8f ec fa f1 45 37 a1 af 14 cc 8b
               e8 29 c6 b7 30 44 10 18 37 eb 4a bc 94 95 65 d8 6d ce
               51 cf ae 52 ab 82 c1 52 cb 02
        
2.8.2. Initiator Certificate
2.8.2. 発行者証明書
           Version: 3 (0x2)
           Serial Number: 1647419040 (0x62319ea0)
           Signature Algorithm: ED25519
           Issuer: CN = EDHOC Root Ed25519
           Validity
               Not Before: Mar 16 08:24:00 2022 GMT
               Not After : Dec 31 23:00:00 2029 GMT
           Subject: CN = EDHOC Initiator Ed25519
           Subject Public Key Info:
               Public Key Algorithm: ED25519
                   ED25519 Public-Key:
                   pub:
                       ed 06 a8 ae 61 a8 29 ba 5f a5 45 25 c9 d0 7f
                       48 dd 44 a3 02 f4 3e 0f 23 d8 cc 20 b7 30 85
                       14 1e
           Signature Algorithm: ED25519
           Signature Value:
               52 12 41 d8 b3 a7 70 99 6b cf c9 b9 ea d4 e7 e0 a1 c0
               db 35 3a 3b df 29 10 b3 92 75 ae 48 b7 56 01 59 81 85
               0d 27 db 67 34 e3 7f 67 21 22 67 dd 05 ee ff 27 b9 e7
               a8 13 fa 57 4b 72 a0 0b 43 0b
        
2.8.3. Common Root Certificate
2.8.3. 共通のルート証明書
           Version: 3 (0x2)
           Serial Number: 1647418996 (0x62319e74)
           Signature Algorithm: ED25519
           Issuer: CN = EDHOC Root Ed25519
           Validity
               Not Before: Mar 16 08:23:16 2022 GMT
               Not After : Dec 31 23:00:00 2029 GMT
           Subject: CN = EDHOC Root Ed25519
           Subject Public Key Info:
               Public Key Algorithm: ED25519
                   ED25519 Public-Key:
                   pub:
                       2b 7b 3e 80 57 c8 64 29 44 d0 6a fe 7a 71 d1
                       c9 bf 96 1b 62 92 ba c4 b0 4f 91 66 9b bb 71
                       3b e4
           X509v3 extensions:
               X509v3 Key Usage: critical
                   Certificate Sign
               X509v3 Basic Constraints: critical
                   CA:TRUE
           Signature Algorithm: ED25519
           Signature Value:
               4b b5 2b bf 15 39 b7 1a 4a af 42 97 78 f2 9e da 7e 81
               46 80 69 8f 16 c4 8f 2a 6f a4 db e8 25 41 c5 82 07 ba
               1b c9 cd b0 c2 fa 94 7f fb f0 f0 ec 0e e9 1a 7f f3 7a
               94 d9 25 1f a5 cd f1 e6 7a 0f
        
3. Authentication with Static DH, CCS Identified by 'kid'
3. Authentication with Static DH, CCS Identified by 'kid'

In this example, the Initiator and the Responder are authenticated with ephemeral-static Diffie-Hellman (METHOD = 3). The Initiator supports cipher suites 6 and 2 (in order of preference), and the Responder only supports cipher suite 2. After an initial negotiation message exchange, cipher suite 2 is used, which determines the algorithms:

この例では、イニシエーターとレスポンダーは短期静的ディフィー・ヘルマン(METHOD = 3)で認証されます。イニシエーターは暗号スイート6と2をサポートしています(優先順位順)、レスポンダーは暗号スイート2のみをサポートしています。最初の交渉メッセージのやり取りの後、暗号スイート2が使用され、アルゴリズムが決定されます。

* EDHOC AEAD algorithm = AES-CCM-16-64-128

* EDHOC AEAD algorithm = AES-CCM-16-64-128

* EDHOC hash algorithm = SHA-256

* EDHOCハッシュアルゴリズム = SHA-256

* EDHOC MAC length in bytes (Static DH) = 8

* EDHOC MAC length in bytes (Static DH) = 8

* EDHOC key exchange algorithm (ECDH curve) = P-256

* EDHOC鍵交換アルゴリズム(ECDH曲線)= P-256

* EDHOC signature algorithm = ES256

* EDHOCの署名アルゴリズム = ES256

* application AEAD algorithm = AES-CCM-16-64-128

* AEADアルゴリズム = AES-CCM-16-64-128

* application hash algorithm = SHA-256

* アプリケーションのハッシュアルゴリズム = SHA-256

The public keys are represented as raw public keys (RPKs), encoded in a CWT Claims Set (CCS) and identified by the COSE header parameter 'kid'.

公開鍵は生の公開鍵(RPKs)として表され、CWT Claims Set(CCS)にエンコードされ、COSEヘッダーパラメーター「kid」で識別されます。

3.1. message_1 (First Time)
3.1. メッセージ_1(初めて)

Both endpoints are authenticated with static DH, i.e., METHOD = 3:

両方のエンドポイントは静的DHで認証されています、つまり、METHOD = 3:

   METHOD (CBOR Data Item) (1 byte)
   03
        

The Initiator selects its preferred cipher suite 6. A single cipher suite is encoded as an int:

イニシエーターは好みの暗号スイート6を選択します。1つの暗号スイートはintとしてエンコードされます。

   SUITES_I (CBOR Data Item) (1 byte)
   06
        

The Initiator creates an ephemeral key pair for use with the EDHOC key exchange algorithm:

イニシエーターは、EDHOC鍵交換アルゴリズムで使用するための一時的なキーペアを作成します。

   Initiator's ephemeral private key
   X (Raw Value) (32 bytes)
   5c 41 72 ac a8 b8 2b 5a 62 e6 6f 72 22 16 f5 a1 0f 72 aa 69 f4 2c 1d
   1c d3 cc d7 bf d2 9c a4 e9
        
   Initiator's ephemeral public key, 'x'-coordinate
   G_X (Raw Value) (32 bytes)
   74 1a 13 d7 ba 04 8f bb 61 5e 94 38 6a a3 b6 1b ea 5b 3d 8f 65 f3 26
   20 b7 49 be e8 d2 78 ef a9
        
   Initiator's ephemeral public key, 'x'-coordinate
   G_X (CBOR Data Item) (34 bytes)
   58 20 74 1a 13 d7 ba 04 8f bb 61 5e 94 38 6a a3 b6 1b ea 5b 3d 8f 65
   f3 26 20 b7 49 be e8 d2 78 ef a9
        

The Initiator selects its connection identifier C_I to be the byte string 0x0e, which is encoded as 0x0e since it is represented by the 1-byte CBOR int 14:

イニシエーターは、接続識別子C_Iをバイト文字列0x0eとして選択し、1バイトのCBOR int 14で表されるため、0x0eとしてエンコードされます。

   Connection identifier chosen by the Initiator
   C_I (Raw Value) (1 byte)
   0e
        
   Connection identifier chosen by the Initiator
   C_I (CBOR Data Item) (1 byte)
   0e
        

No external authorization data:

外部認証データはありません。

   EAD_1 (CBOR Sequence) (0 bytes)
        

The Initiator constructs message_1:

イニシエーターはメッセージ_1を構築します。

   message_1 =
   (
     3,
     6,
     h'741a13d7ba048fbb615e94386aa3b61bea5b3d8f65f32620
       b749bee8d278efa9',
     14
   )
        
   message_1 (CBOR Sequence) (37 bytes)
   03 06 58 20 74 1a 13 d7 ba 04 8f bb 61 5e 94 38 6a a3 b6 1b ea 5b 3d
   8f 65 f3 26 20 b7 49 be e8 d2 78 ef a9 0e
        
3.2. error
3.2. error

The Responder does not support cipher suite 6 and sends an error with ERR_CODE 2 containing SUITES_R as ERR_INFO. The Responder proposes cipher suite 2, a single cipher suite thus encoded as an int.

レスポンダーは、暗号スイート6をサポートしておらず、ERR_CODE 2を含むエラーを送信します。ERR_INFOとしてSUITES_Rが含まれます。レスポンダーは、単一の暗号スイートである暗号スイート2を提案します。

   SUITES_R
   02
        
   error (CBOR Sequence) (2 bytes)
   02 02
        
3.3. message_1 (Second Time)
3.3. メッセージ_1(2回目)

Same steps are performed as for message_1 the first time (Section 3.1) but with SUITES_I updated.

同じ手順がメッセージ1と同様に実行されますが、SUITES_I が更新されます。

Both endpoints are authenticated with static DH, i.e., METHOD = 3:

両方のエンドポイントは静的DHで認証されています、つまり、METHOD = 3:

   METHOD (CBOR Data Item) (1 byte)
   03
        

The Initiator selects cipher suite 2 and indicates the more preferred cipher suite(s), in this case 6, all encoded as the array [6, 2]:

イニシエーターは、この場合、[6、2]としてエンコードされた、暗号スイート2を選択し、より好ましい暗号スイート(例:6)を示します。

   SUITES_I (CBOR Data Item) (3 bytes)
   82 06 02
        

The Initiator creates an ephemeral key pair for use with the EDHOC key exchange algorithm:

イニシエーターは、EDHOC鍵交換アルゴリズムで使用するための一時的なキーペアを作成します。

   Initiator's ephemeral private key
   X (Raw Value) (32 bytes)
   36 8e c1 f6 9a eb 65 9b a3 7d 5a 8d 45 b2 1b dc 02 99 dc ea a8 ef 23
   5f 3c a4 2c e3 53 0f 95 25
        
   Initiator's ephemeral public key, 'x'-coordinate
   G_X (Raw Value) (32 bytes)
   8a f6 f4 30 eb e1 8d 34 18 40 17 a9 a1 1b f5 11 c8 df f8 f8 34 73 0b
   96 c1 b7 c8 db ca 2f c3 b6
        
   Initiator's ephemeral public key, one 'y'-coordinate
   (Raw Value) (32 bytes)
   51 e8 af 6c 6e db 78 16 01 ad 1d 9c 5f a8 bf 7a a1 57 16 c7 c0 6a 5d
   03 85 03 c6 14 ff 80 c9 b3
        
   Initiator's ephemeral public key, 'x'-coordinate
   G_X (CBOR Data Item) (34 bytes)
   58 20 8a f6 f4 30 eb e1 8d 34 18 40 17 a9 a1 1b f5 11 c8 df f8 f8 34
   73 0b 96 c1 b7 c8 db ca 2f c3 b6
        

The Initiator selects its connection identifier C_I to be the byte string 0x37, which is encoded as 0x37 since it is represented by the 1-byte CBOR int -24:

イニシエーターは、接続識別子C_Iをバイト文字列0x37として選択し、1バイトのCBOR int -24で表されるため、0x37としてエンコードされます。

   Connection identifier chosen by the Initiator
   C_I (Raw Value) (1 byte)
   37
        
   Connection identifier chosen by the Initiator
   C_I (CBOR Data Item) (1 byte)
   37
        

No external authorization data:

外部認証データはありません。

   EAD_1 (CBOR Sequence) (0 bytes)
        

The Initiator constructs message_1:

イニシエーターはメッセージ_1を構築します。

   message_1 =
   (
     3,
     [6, 2],
     h'8af6f430ebe18d34184017a9a11bf511c8dff8f834730b96
       c1b7c8dbca2fc3b6',
     -24
   )
        
   message_1 (CBOR Sequence) (39 bytes)
   03 82 06 02 58 20 8a f6 f4 30 eb e1 8d 34 18 40 17 a9 a1 1b f5 11 c8
   df f8 f8 34 73 0b 96 c1 b7 c8 db ca 2f c3 b6 37
        
3.4. message_2
3.4. message_2

The Responder supports the selected cipher suite 2 and not the Initiator's more preferred cipher suite(s) 6, so SUITES_I is acceptable.

The Responderは選択された暗号スイート2をサポートしており、Initiatorのより好ましい暗号スイート6をサポートしていないため、SUITES_Iは受け入れ可能です。

The Responder creates an ephemeral key pair for use with the EDHOC key exchange algorithm:

レスポンダーは、EDHOC鍵交換アルゴリズムで使用するための一時的なキーペアを作成します。

   Responder's ephemeral private key
   Y (Raw Value) (32 bytes)
   e2 f4 12 67 77 20 5e 85 3b 43 7d 6e ac a1 e1 f7 53 cd cc 3e 2c 69 fa
   88 4b 0a 1a 64 09 77 e4 18
        
   Responder's ephemeral public key, 'x'-coordinate
   G_Y (Raw Value) (32 bytes)
   41 97 01 d7 f0 0a 26 c2 dc 58 7a 36 dd 75 25 49 f3 37 63 c8 93 42 2c
   8e a0 f9 55 a1 3a 4f f5 d5
        
   Responder's ephemeral public key, one 'y'-coordinate
   (Raw Value) (32 bytes)
   5e 4f 0d d8 a3 da 0b aa 16 b9 d3 ad 56 a0 c1 86 0a 94 0a f8 59 14 91
   5e 25 01 9b 40 24 17 e9 9d
        
   Responder's ephemeral public key, 'x'-coordinate
   G_Y (CBOR Data Item) (34 bytes)
   58 20 41 97 01 d7 f0 0a 26 c2 dc 58 7a 36 dd 75 25 49 f3 37 63 c8 93
   42 2c 8e a0 f9 55 a1 3a 4f f5 d5
        

The Responder selects its connection identifier C_R to be the byte string 0x27, which is encoded as 0x27 since it is represented by the 1-byte CBOR int -8:

レスポンダーは、接続識別子C_Rをバイト文字列0x27として選択し、1バイトのCBOR int -8で表されるため、0x27としてエンコードされます。

   Connection identifier chosen by the Responder
   C_R (raw value) (1 byte)
   27
        
   Connection identifier chosen by the Responder
   C_R (CBOR Data Item) (1 byte)
   27
        

The transcript hash TH_2 is calculated using the EDHOC hash algorithm:

トランスクリプトハッシュ TH_2 は、EDHOC ハッシュアルゴリズムを使用して計算されます。

TH_2 = H( G_Y, H(message_1) )

TH_2 = H( G_Y, H(message_1) )

   H(message_1) (Raw Value) (32 bytes)
   ca 02 ca bd a5 a8 90 27 49 b4 2f 71 10 50 bb 4d bd 52 15 3e 87 52 75
   94 b3 9f 50 cd f0 19 88 8c
        
   H(message_1) (CBOR Data Item) (34 bytes)
   58 20 ca 02 ca bd a5 a8 90 27 49 b4 2f 71 10 50 bb 4d bd 52 15 3e 87
   52 75 94 b3 9f 50 cd f0 19 88 8c
        

The input to calculate TH_2 is the CBOR sequence:

TH_2を計算するための入力はCBORシーケンスです。

G_Y, H(message_1)

G_Y, H(message_1)

   Input to calculate TH_2 (CBOR Sequence) (68 bytes)
   58 20 41 97 01 d7 f0 0a 26 c2 dc 58 7a 36 dd 75 25 49 f3 37 63 c8 93
   42 2c 8e a0 f9 55 a1 3a 4f f5 d5 58 20 ca 02 ca bd a5 a8 90 27 49 b4
   2f 71 10 50 bb 4d bd 52 15 3e 87 52 75 94 b3 9f 50 cd f0 19 88 8c
        
   TH_2 (Raw Value) (32 bytes)
   35 6e fd 53 77 14 25 e0 08 f3 fe 3a 86 c8 3f f4 c6 b1 6e 57 02 8f f3
   9d 52 36 c1 82 b2 02 08 4b
        
   TH_2 (CBOR Data Item) (34 bytes)
   58 20 35 6e fd 53 77 14 25 e0 08 f3 fe 3a 86 c8 3f f4 c6 b1 6e 57 02
   8f f3 9d 52 36 c1 82 b2 02 08 4b
        

PRK_2e is specified in Section 4.1.1.1 of [RFC9528].

PRK_2eは[RFC9528]のセクション4.1.1.1で指定されています。

First, the ECDH shared secret G_XY is computed from G_X and Y or G_Y and X:

最初に、ECDH共有秘密G_XYは、G_XとYまたはG_YとXから計算されます。

   G_XY (Raw Value) (ECDH shared secret) (32 bytes)
   2f 0c b7 e8 60 ba 53 8f bf 5c 8b de d0 09 f6 25 9b 4b 62 8f e1 eb 7d
   be 93 78 e5 ec f7 a8 24 ba
        

Then, PRK_2e is calculated using EDHOC_Extract(), which is determined by the EDHOC hash algorithm:

その場合、EDHOC ハッシュアルゴリズムによって決定される EDHOC_Extract() を使用して PRK_2e が計算されます。

   PRK_2e = EDHOC_Extract( salt, G_XY )
          = HMAC-SHA-256( salt, G_XY )
        

where salt is TH_2:

塩がある場所:

   salt (Raw Value) (32 bytes)
   35 6e fd 53 77 14 25 e0 08 f3 fe 3a 86 c8 3f f4 c6 b1 6e 57 02 8f f3
   9d 52 36 c1 82 b2 02 08 4b
        
   PRK_2e (Raw Value) (32 bytes)
   5a a0 d6 9f 3e 3d 1e 0c 47 9f 0b 8a 48 66 90 c9 80 26 30 c3 46 6b 1d
   c9 23 71 c9 82 56 31 70 b5
        

Since METHOD = 3, the Responder authenticates using static DH. The EDHOC key exchange algorithm is based on the same curve as for the ephemeral keys, which is P-256, since the selected cipher suite is 2.

METHOD = 3 の場合、Responder は静的 DH を使用して認証します。EDHOC キー交換アルゴリズムは、選択された暗号スイートが 2 であるため、一時鍵と同じ曲線である P-256 に基づいています。

The Responder's static Diffie-Hellman P-256 key pair consists of a private key and a public key.

レスポンダーの静的Diffie-Hellman P-256キーペアは、秘密鍵と公開鍵で構成されています。

   Responder's private authentication key
   SK_R (Raw Value) (32 bytes)
   72 cc 47 61 db d4 c7 8f 75 89 31 aa 58 9d 34 8d 1e f8 74 a7 e3 03 ed
   e2 f1 40 dc f3 e6 aa 4a ac
        
   Responder's public authentication key, 'x'-coordinate
   (Raw Value) (32 bytes)
   bb c3 49 60 52 6e a4 d3 2e 94 0c ad 2a 23 41 48 dd c2 17 91 a1 2a fb
   cb ac 93 62 20 46 dd 44 f0
        
   Responder's public authentication key, 'y'-coordinate
   (Raw Value) (32 bytes)
   45 19 e2 57 23 6b 2a 0c e2 02 3f 09 31 f1 f3 86 ca 7a fd a6 4f cd e0
   10 8c 22 4c 51 ea bf 60 72
        

Since the Responder authenticates with static DH (METHOD = 3), PRK_3e2m is derived from SALT_3e2m and G_RX.

Responder は静的 DH (METHOD = 3) で認証されるため、PRK_3e2m は SALT_3e2m と G_RX から派生します。

The input needed to calculate SALT_3e2m is defined in Section 4.1.2 of [RFC9528], using EDHOC_Expand() with the EDHOC hash algorithm:

SALT_3e2mを計算するために必要な入力は、[RFC9528]のセクション4.1.2で定義されており、EDHOCハッシュアルゴリズムを使用したEDHOC_Expand()を使用します。

   SALT_3e2m = EDHOC_KDF( PRK_2e, 1, TH_2, hash_length )
             = HKDF-Expand( PRK_2e, info, hash_length )
        

where hash_length is the length in bytes of the output of the EDHOC hash algorithm, and info for SALT_3e2m is:

ハッシュ長さは、EDHOCハッシュアルゴリズムの出力のバイト数であり、SALT_3e2mの情報は次のとおりです。

   info =
   (
     1,
     h'356efd53771425e008f3fe3a86c83ff4c6b16e57028ff39d
       5236c182b202084b',
     32
   )
        
   info for SALT_3e2m (CBOR Sequence) (37 bytes)
   01 58 20 35 6e fd 53 77 14 25 e0 08 f3 fe 3a 86 c8 3f f4 c6 b1 6e 57
   02 8f f3 9d 52 36 c1 82 b2 02 08 4b 18 20
        
   SALT_3e2m (Raw Value) (32 bytes)
   af 4e 10 3a 47 cb 3c f3 25 70 d5 c2 5a d2 77 32 bd 8d 81 78 e9 a6 9d
   06 1c 31 a2 7f 8e 3c a9 26
        

PRK_3e2m is specified in Section 4.1.1.2 of [RFC9528].

PRK_3e2mは[RFC9528]のセクション4.1.1.2で指定されています。

PRK_3e2m is derived from G_RX using EDHOC_Extract() with the EDHOC hash algorithm:

PRK_3e2mは、EDHOCハッシュアルゴリズムを使用して、G_RXからEDHOC_Extract()を使用して導出されます。

   PRK_3e2m = EDHOC_Extract( SALT_3e2m, G_RX )
            = HMAC-SHA-256( SALT_3e2m, G_RX )
        

where G_RX is the ECDH shared secret calculated from G_X and R, or G_R and X.

G_RX は、G_X と R、または G_R と X から計算された ECDH 共有秘密です。

   G_RX (Raw Value) (ECDH shared secret) (32 bytes)
   f2 b6 ee a0 22 20 b9 5e ee 5a 0b c7 01 f0 74 e0 0a 84 3e a0 24 22 f6
   08 25 fb 26 9b 3e 16 14 23
        
   PRK_3e2m (Raw Value) (32 bytes)
   0c a3 d3 39 82 96 b3 c0 39 00 98 76 20 c1 1f 6f ce 70 78 1c 1d 12 19
   72 0f 9e c0 8c 12 2d 84 34
        

The Responder constructs the remaining input needed to calculate MAC_2:

レスポンダーは、MAC_2を計算するために必要な残りの入力を構築します。

MAC_2 = EDHOC_KDF( PRK_3e2m, 2, context_2, mac_length_2 )

MAC_2 = EDHOC_KDF(PRK_3e2m、2、context_2、mac_length_2)

context_2 = << C_R, ID_CRED_R, TH_2, CRED_R, ? EAD_2 >>

context_2 = << C_R、ID_CRED_R、TH_2、CRED_R、? EAD_2 >>

CRED_R is identified by a 'kid' with byte string value 0x32:

CRED_R は、バイト文字列値 0x32 を持つ 'kid' によって識別されます。

   ID_CRED_R =
   {
     4 : h'32'
   }
        
   ID_CRED_R (CBOR Data Item) (4 bytes)
   a1 04 41 32
        

CRED_R is an RPK encoded as a CCS:

CRED_RはCCSとしてエンコードされたRPKです。

   {                                              /CCS/
     2 : "example.edu",                           /sub/
     8 : {                                        /cnf/
       1 : {                                      /COSE_Key/
         1 : 2,                                   /kty/
         2 : h'32',                               /kid/
        -1 : 1,                                   /crv/
        -2 : h'bbc34960526ea4d32e940cad2a234148
               ddc21791a12afbcbac93622046dd44f0', /x/
        -3 : h'4519e257236b2a0ce2023f0931f1f386
               ca7afda64fcde0108c224c51eabf6072'  /y/
       }
     }
   }
        
   CRED_R (CBOR Data Item) (95 bytes)
   a2 02 6b 65 78 61 6d 70 6c 65 2e 65 64 75 08 a1 01 a5 01 02 02 41 32
   20 01 21 58 20 bb c3 49 60 52 6e a4 d3 2e 94 0c ad 2a 23 41 48 dd c2
   17 91 a1 2a fb cb ac 93 62 20 46 dd 44 f0 22 58 20 45 19 e2 57 23 6b
   2a 0c e2 02 3f 09 31 f1 f3 86 ca 7a fd a6 4f cd e0 10 8c 22 4c 51 ea
   bf 60 72
        

No external authorization data:

外部認証データはありません。

   EAD_2 (CBOR Sequence) (0 bytes)
        

context_2 = << C_R, ID_CRED_R, TH_2, CRED_R, ? EAD_2 >>

context_2 = << C_R、ID_CRED_R、TH_2、CRED_R、? EAD_2 >>

   context_2 (CBOR Sequence) (134 bytes)
   27 a1 04 41 32 58 20 35 6e fd 53 77 14 25 e0 08 f3 fe 3a 86 c8 3f f4
   c6 b1 6e 57 02 8f f3 9d 52 36 c1 82 b2 02 08 4b a2 02 6b 65 78 61 6d
   70 6c 65 2e 65 64 75 08 a1 01 a5 01 02 02 41 32 20 01 21 58 20 bb c3
   49 60 52 6e a4 d3 2e 94 0c ad 2a 23 41 48 dd c2 17 91 a1 2a fb cb ac
   93 62 20 46 dd 44 f0 22 58 20 45 19 e2 57 23 6b 2a 0c e2 02 3f 09 31
   f1 f3 86 ca 7a fd a6 4f cd e0 10 8c 22 4c 51 ea bf 60 72
        
   context_2 (CBOR byte string) (136 bytes)
   58 86 27 a1 04 41 32 58 20 35 6e fd 53 77 14 25 e0 08 f3 fe 3a 86 c8
   3f f4 c6 b1 6e 57 02 8f f3 9d 52 36 c1 82 b2 02 08 4b a2 02 6b 65 78
   61 6d 70 6c 65 2e 65 64 75 08 a1 01 a5 01 02 02 41 32 20 01 21 58 20
   bb c3 49 60 52 6e a4 d3 2e 94 0c ad 2a 23 41 48 dd c2 17 91 a1 2a fb
   cb ac 93 62 20 46 dd 44 f0 22 58 20 45 19 e2 57 23 6b 2a 0c e2 02 3f
   09 31 f1 f3 86 ca 7a fd a6 4f cd e0 10 8c 22 4c 51 ea bf 60 72
        

MAC_2 is computed through EDHOC_Expand() using the EDHOC hash algorithm (see Section 4.1.2 of [RFC9528]):

MAC_2 は、EDHOC ハッシュアルゴリズムを使用して EDHOC_Expand() を介して計算されます([RFC9528] のセクション 4.1.2 を参照)。

   MAC_2 = HKDF-Expand( PRK_3e2m, info, mac_length_2 )
        

where

ただし

   info = ( 2, context_2, mac_length_2 )
        

Since METHOD = 3, mac_length_2 is given by the EDHOC MAC length.

METHOD = 3 の場合、mac_length_2 は EDHOC MAC 長によって与えられます。

info for MAC_2 is:

MAC_2の情報は次のとおりです:

   info =
   (
     2,
     h'27a10441325820356efd53771425e008f3fe3a86c83ff4c6
       b16e57028ff39d5236c182b202084ba2026b6578616d706c
       652e65647508a101a501020241322001215820bbc3496052
       6ea4d32e940cad2a234148ddc21791a12afbcbac93622046
       dd44f02258204519e257236b2a0ce2023f0931f1f386ca7a
       fda64fcde0108c224c51eabf6072',
     8
   )
        

where the last value is the EDHOC MAC length in bytes.

最後の値は、バイト単位のEDHOC MAC長です。

   info for MAC_2 (CBOR Sequence) (138 bytes)
   02 58 86 27 a1 04 41 32 58 20 35 6e fd 53 77 14 25 e0 08 f3 fe 3a 86
   c8 3f f4 c6 b1 6e 57 02 8f f3 9d 52 36 c1 82 b2 02 08 4b a2 02 6b 65
   78 61 6d 70 6c 65 2e 65 64 75 08 a1 01 a5 01 02 02 41 32 20 01 21 58
   20 bb c3 49 60 52 6e a4 d3 2e 94 0c ad 2a 23 41 48 dd c2 17 91 a1 2a
   fb cb ac 93 62 20 46 dd 44 f0 22 58 20 45 19 e2 57 23 6b 2a 0c e2 02
   3f 09 31 f1 f3 86 ca 7a fd a6 4f cd e0 10 8c 22 4c 51 ea bf 60 72 08
        
   MAC_2 (Raw Value) (8 bytes)
   09 43 30 5c 89 9f 5c 54
        
   MAC_2 (CBOR Data Item) (9 bytes)
   48 09 43 30 5c 89 9f 5c 54
        

Since METHOD = 3, Signature_or_MAC_2 is MAC_2:

METHOD = 3 の場合、Signature_or_MAC_2 は MAC_2 です。

   Signature_or_MAC_2 (Raw Value) (8 bytes)
   09 43 30 5c 89 9f 5c 54
        
   Signature_or_MAC_2 (CBOR Data Item) (9 bytes)
   48 09 43 30 5c 89 9f 5c 54
        

The Responder constructs PLAINTEXT_2:

応答者はPLAINTEXT_2を構築します。

   PLAINTEXT_2 =
   (
     C_R,
     ID_CRED_R / bstr / -24..23,
     Signature_or_MAC_2,
     ? EAD_2
   )
        

Since ID_CRED_R contains a single 'kid' parameter, only the byte string value is included in the plaintext, represented as described in Section 3.3.2 of [RFC9528]. The CBOR map { 4 : h'32' } is thus replaced, not by the CBOR byte string 0x4132, but by the CBOR int 0x32, since that is a one-byte encoding of a CBOR integer (-19).

ID_CRED_Rには単一の 'kid' パラメータが含まれているため、プレーンテキストにはバイト文字列の値のみが含まれ、[RFC9528]のセクション3.3.2で説明されているように表されます。したがって、CBORマップ { 4 : h'32' } は、CBORバイト文字列0x4132ではなく、CBOR整数0x32に置き換えられます。なぜなら、それがCBOR整数(-19)の1バイト符号化だからです。

   PLAINTEXT_2 (CBOR Sequence) (11 bytes)
   27 32 48 09 43 30 5c 89 9f 5c 54
        

The input needed to calculate KEYSTREAM_2 is defined in Section 4.1.2 of [RFC9528], using EDHOC_Expand() with the EDHOC hash algorithm:

KEYSTREAM_2の計算に必要な入力は、[RFC9528]のセクション4.1.2で定義されており、EDHOCハッシュアルゴリズムを使用したEDHOC_Expand()を使用します。

   KEYSTREAM_2 = EDHOC_KDF( PRK_2e, 0, TH_2, plaintext_length )
               = HKDF-Expand( PRK_2e, info, plaintext_length )
        

where plaintext_length is the length in bytes of PLAINTEXT_2, and info for KEYSTREAM_2 is:

平文の長さがPLAINTEXT_2のバイト数であり、KEYSTREAM_2の情報は次のとおりです:

   info =
   (
     0,
     h'356efd53771425e008f3fe3a86c83ff4c6b16e57028ff39d
       5236c182b202084b',
     11
   )
        

where the last value is the length in bytes of PLAINTEXT_2.

最後の値は、PLAINTEXT_2のバイト数です。

   info for KEYSTREAM_2 (CBOR Sequence) (36 bytes)
   00 58 20 35 6e fd 53 77 14 25 e0 08 f3 fe 3a 86 c8 3f f4 c6 b1 6e 57
   02 8f f3 9d 52 36 c1 82 b2 02 08 4b 0b
        
   KEYSTREAM_2 (Raw Value) (11 bytes)
   bf 50 e9 e7 ba d0 bb 68 17 33 99
        

The Responder calculates CIPHERTEXT_2 as XOR between PLAINTEXT_2 and KEYSTREAM_2:

The Responderは、PLAINTEXT_2とKEYSTREAM_2のXORとしてCIPHERTEXT_2を計算します。

   CIPHERTEXT_2 (Raw Value) (11 bytes)
   98 62 a1 ee f9 e0 e7 e1 88 6f cd
        

The Responder constructs message_2:

応答者はメッセージ_2を構築します。

   message_2 =
   (
     G_Y_CIPHERTEXT_2
   )
        

where G_Y_CIPHERTEXT_2 is the bstr encoding of the concatenation of the raw values of G_Y and CIPHERTEXT_2.

G_Y_CIPHERTEXT_2 は、G_Y と CIPHERTEXT_2 の生の値を連結したものの bstr エンコーディングです。

   message_2 (CBOR Sequence) (45 bytes)
   58 2b 41 97 01 d7 f0 0a 26 c2 dc 58 7a 36 dd 75 25 49 f3 37 63 c8 93
   42 2c 8e a0 f9 55 a1 3a 4f f5 d5 98 62 a1 ee f9 e0 e7 e1 88 6f cd
        
3.5. message_3
3.5. message_3

The transcript hash TH_3 is calculated using the EDHOC hash algorithm:

トランスクリプトハッシュ TH_3 は、EDHOC ハッシュアルゴリズムを使用して計算されます。

TH_3 = H( TH_2, PLAINTEXT_2, CRED_R )

TH_3 = H( TH_2, PLAINTEXT_2, CRED_R)

   Input to calculate TH_3 (CBOR Sequence) (140 bytes)
   58 20 35 6e fd 53 77 14 25 e0 08 f3 fe 3a 86 c8 3f f4 c6 b1 6e 57 02
   8f f3 9d 52 36 c1 82 b2 02 08 4b 27 32 48 09 43 30 5c 89 9f 5c 54 a2
   02 6b 65 78 61 6d 70 6c 65 2e 65 64 75 08 a1 01 a5 01 02 02 41 32 20
   01 21 58 20 bb c3 49 60 52 6e a4 d3 2e 94 0c ad 2a 23 41 48 dd c2 17
   91 a1 2a fb cb ac 93 62 20 46 dd 44 f0 22 58 20 45 19 e2 57 23 6b 2a
   0c e2 02 3f 09 31 f1 f3 86 ca 7a fd a6 4f cd e0 10 8c 22 4c 51 ea bf
   60 72
        
   TH_3 (Raw Value) (32 bytes)
   ad af 67 a7 8a 4b cc 91 e0 18 f8 88 27 62 a7 22 00 0b 25 07 03 9d f0
   bc 1b bf 0c 16 1b b3 15 5c
        
   TH_3 (CBOR Data Item) (34 bytes)
   58 20 ad af 67 a7 8a 4b cc 91 e0 18 f8 88 27 62 a7 22 00 0b 25 07 03
   9d f0 bc 1b bf 0c 16 1b b3 15 5c
        

Since METHOD = 3, the Initiator authenticates using static DH. The EDHOC key exchange algorithm is based on the same curve as for the ephemeral keys, which is P-256, since the selected cipher suite is 2.

METHOD = 3の場合、イニシエーターは静的DHを使用して認証します。EDHOC鍵交換アルゴリズムは、選択された暗号スイートが2であるため、一時鍵と同じ曲線であるP-256に基づいています。

The Initiator's static Diffie-Hellman P-256 key pair consists of a private key and a public key:

イニシエーターの静的Diffie-Hellman P-256鍵ペアは、秘密鍵と公開鍵から構成されています。

   Initiator's private authentication key
   SK_I (Raw Value) (32 bytes)
   fb 13 ad eb 65 18 ce e5 f8 84 17 66 08 41 14 2e 83 0a 81 fe 33 43 80
   a9 53 40 6a 13 05 e8 70 6b
        
   Initiator's public authentication key, 'x'-coordinate
   (Raw Value) (32 bytes)
   ac 75 e9 ec e3 e5 0b fc 8e d6 03 99 88 95 22 40 5c 47 bf 16 df 96 66
   0a 41 29 8c b4 30 7f 7e b6
        
   Initiator's public authentication key, 'y'-coordinate
   (Raw Value) (32 bytes)
   6e 5d e6 11 38 8a 4b 8a 82 11 33 4a c7 d3 7e cb 52 a3 87 d2 57 e6 db
   3c 2a 93 df 21 ff 3a ff c8
        

Since I authenticates with static DH (METHOD = 3), PRK_4e3m is derived from SALT_4e3m and G_IY.

METHOD = 3 で静的 DH を使用して認証した場合、PRK_4e3m は SALT_4e3m と G_IY から派生します。

The input needed to calculate SALT_4e3m is defined in Section 4.1.2 of [RFC9528], using EDHOC_Expand() with the EDHOC hash algorithm:

SALT_4e3mを計算するために必要な入力は、[RFC9528]のセクション4.1.2で定義されており、EDHOCハッシュアルゴリズムを使用したEDHOC_Expand()を使用します。

   SALT_4e3m = EDHOC_KDF( PRK_3e2m, 5, TH_3, hash_length )
             = HKDF-Expand( PRK_3e2m, info, hash_length )
        

where hash_length is the length in bytes of the output of the EDHOC hash algorithm, and info for SALT_4e3m is:

ハッシュ長さは、EDHOCハッシュアルゴリズムの出力のバイト数であり、SALT_4e3mの情報は次のとおりです。

   info =
   (
     5,
     h'adaf67a78a4bcc91e018f8882762a722000b2507039df0bc
       1bbf0c161bb3155c',
     32
   )
        
   info for SALT_4e3m (CBOR Sequence) (37 bytes)
   05 58 20 ad af 67 a7 8a 4b cc 91 e0 18 f8 88 27 62 a7 22 00 0b 25 07
   03 9d f0 bc 1b bf 0c 16 1b b3 15 5c 18 20
        
   SALT_4e3m (Raw Value) (32 bytes)
   cf dd f9 51 5a 7e 46 e7 b4 db ff 31 cb d5 6c d0 4b a3 32 25 0d e9 ea
   5d e1 ca f9 f6 d1 39 14 a7
        

PRK_4e3m is specified in Section 4.1.1.3 of [RFC9528].

PRK_4e3mは[RFC9528]のセクション4.1.1.3で指定されています。

Since I authenticates with static DH (METHOD = 3), PRK_4e3m is derived from G_IY using EDHOC_Extract() with the EDHOC hash algorithm:

私は静的DH(METHOD = 3)で認証するので、PRK_4e3mはEDHOCハッシュアルゴリズムを使用してEDHOC_Extract()を使ってG_IYから派生します。

   PRK_4e3m = EDHOC_Extract(SALT_4e3m, G_IY)
            = HMAC-SHA-256(SALT_4e3m, G_IY)
        

where G_IY is the ECDH shared secret calculated from G_I and Y, or G_Y and I.

G_IY は G_I と Y、または G_Y と I から計算された ECDH 共有秘密です。

   G_IY (Raw Value) (ECDH shared secret) (32 bytes)
   08 0f 42 50 85 bc 62 49 08 9e ac 8f 10 8e a6 23 26 85 7e 12 ab 07 d7
   20 28 ca 1b 5f 36 e0 04 b3
        
   PRK_4e3m (Raw Value) (32 bytes)
   81 cc 8a 29 8e 35 70 44 e3 c4 66 bb 5c 0a 1e 50 7e 01 d4 92 38 ae ba
   13 8d f9 46 35 40 7c 0f f7
        

The Initiator constructs the remaining input needed to calculate MAC_3:

イニシエーターは、MAC_3を計算するために必要な残りの入力を構築します。

MAC_3 = EDHOC_KDF( PRK_4e3m, 6, context_3, mac_length_3 )

MAC_3 = EDHOC_KDF(PRK_4e3m、6、context_3、mac_length_3)

context_3 = << ID_CRED_I, TH_3, CRED_I, ? EAD_3 >>

context_3 = << ID_CRED_I、TH_3、CRED_I、? EAD_3 >>

CRED_I is identified by a 'kid' with byte string value 0x2b:

CRED_I は、バイト文字列値 0x2b で 'kid' によって識別されます。

   ID_CRED_I =
   {
     4 : h'2b'
   }
        
   ID_CRED_I (CBOR Data Item) (4 bytes)
   a1 04 41 2b
        

CRED_I is an RPK encoded as a CCS:

CRED_IはCCSとしてエンコードされたRPKです。

   {                                              /CCS/
     2 : "42-50-31-FF-EF-37-32-39",               /sub/
     8 : {                                        /cnf/
       1 : {                                      /COSE_Key/
         1 : 2,                                   /kty/
         2 : h'2b',                               /kid/
        -1 : 1,                                   /crv/
        -2 : h'ac75e9ece3e50bfc8ed6039988952240
               5c47bf16df96660a41298cb4307f7eb6'  /x/
        -3 : h'6e5de611388a4b8a8211334ac7d37ecb
               52a387d257e6db3c2a93df21ff3affc8'  /y/
       }
     }
   }
        
   CRED_I (CBOR Data Item) (107 bytes)
   a2 02 77 34 32 2d 35 30 2d 33 31 2d 46 46 2d 45 46 2d 33 37 2d 33 32
   2d 33 39 08 a1 01 a5 01 02 02 41 2b 20 01 21 58 20 ac 75 e9 ec e3 e5
   0b fc 8e d6 03 99 88 95 22 40 5c 47 bf 16 df 96 66 0a 41 29 8c b4 30
   7f 7e b6 22 58 20 6e 5d e6 11 38 8a 4b 8a 82 11 33 4a c7 d3 7e cb 52
   a3 87 d2 57 e6 db 3c 2a 93 df 21 ff 3a ff c8
        

No external authorization data:

外部認証データはありません。

   EAD_3 (CBOR Sequence) (0 bytes)
        

context_3 = << ID_CRED_I, TH_3, CRED_I, ? EAD_3 >>

context_3 = << ID_CRED_I、TH_3、CRED_I、? EAD_3 >>

   context_3 (CBOR Sequence) (145 bytes)
   a1 04 41 2b 58 20 ad af 67 a7 8a 4b cc 91 e0 18 f8 88 27 62 a7 22 00
   0b 25 07 03 9d f0 bc 1b bf 0c 16 1b b3 15 5c a2 02 77 34 32 2d 35 30
   2d 33 31 2d 46 46 2d 45 46 2d 33 37 2d 33 32 2d 33 39 08 a1 01 a5 01
   02 02 41 2b 20 01 21 58 20 ac 75 e9 ec e3 e5 0b fc 8e d6 03 99 88 95
   22 40 5c 47 bf 16 df 96 66 0a 41 29 8c b4 30 7f 7e b6 22 58 20 6e 5d
   e6 11 38 8a 4b 8a 82 11 33 4a c7 d3 7e cb 52 a3 87 d2 57 e6 db 3c 2a
   93 df 21 ff 3a ff c8
        
   context_3 (CBOR byte string) (147 bytes)
   58 91 a1 04 41 2b 58 20 ad af 67 a7 8a 4b cc 91 e0 18 f8 88 27 62 a7
   22 00 0b 25 07 03 9d f0 bc 1b bf 0c 16 1b b3 15 5c a2 02 77 34 32 2d
   35 30 2d 33 31 2d 46 46 2d 45 46 2d 33 37 2d 33 32 2d 33 39 08 a1 01
   a5 01 02 02 41 2b 20 01 21 58 20 ac 75 e9 ec e3 e5 0b fc 8e d6 03 99
   88 95 22 40 5c 47 bf 16 df 96 66 0a 41 29 8c b4 30 7f 7e b6 22 58 20
   6e 5d e6 11 38 8a 4b 8a 82 11 33 4a c7 d3 7e cb 52 a3 87 d2 57 e6 db
   3c 2a 93 df 21 ff 3a ff c8
        

MAC_3 is computed through EDHOC_Expand() using the EDHOC hash algorithm (see Section 4.1.2 of [RFC9528]):

MAC_3は、EDHOCハッシュアルゴリズムを使用して、EDHOC_Expand()を介して計算されます([RFC9528]のセクション4.1.2を参照)。

   MAC_3 = HKDF-Expand( PRK_4e3m, info, mac_length_3 )
        

where

ただし

   info = ( 6, context_3, mac_length_3 )
        

Since METHOD = 3, mac_length_3 is given by the EDHOC MAC length.

METHOD = 3 の場合、mac_length_3 は EDHOC MAC 長によって与えられます。

info for MAC_3 is:

MAC_3の情報は次のとおりです。

   info =
   (
     6,
     h'a104412b5820adaf67a78a4bcc91e018f8882762a722000b
       2507039df0bc1bbf0c161bb3155ca2027734322d35302d33
       312d46462d45462d33372d33322d333908a101a501020241
       2b2001215820ac75e9ece3e50bfc8ed60399889522405c47
       bf16df96660a41298cb4307f7eb62258206e5de611388a4b
       8a8211334ac7d37ecb52a387d257e6db3c2a93df21ff3aff
       c8',
     8
   )
        

where the last value is the EDHOC MAC length in bytes.

最後の値は、バイト単位のEDHOC MAC長です。

   info for MAC_3 (CBOR Sequence) (149 bytes)
   06 58 91 a1 04 41 2b 58 20 ad af 67 a7 8a 4b cc 91 e0 18 f8 88 27 62
   a7 22 00 0b 25 07 03 9d f0 bc 1b bf 0c 16 1b b3 15 5c a2 02 77 34 32
   2d 35 30 2d 33 31 2d 46 46 2d 45 46 2d 33 37 2d 33 32 2d 33 39 08 a1
   01 a5 01 02 02 41 2b 20 01 21 58 20 ac 75 e9 ec e3 e5 0b fc 8e d6 03
   99 88 95 22 40 5c 47 bf 16 df 96 66 0a 41 29 8c b4 30 7f 7e b6 22 58
   20 6e 5d e6 11 38 8a 4b 8a 82 11 33 4a c7 d3 7e cb 52 a3 87 d2 57 e6
   db 3c 2a 93 df 21 ff 3a ff c8 08
        
   MAC_3 (Raw Value) (8 bytes)
   62 3c 91 df 41 e3 4c 2f
        
   MAC_3 (CBOR Data Item) (9 bytes)
   48 62 3c 91 df 41 e3 4c 2f
        

Since METHOD = 3, Signature_or_MAC_3 is MAC_3:

METHOD = 3 の場合、Signature_or_MAC_3 は MAC_3 です。

   Signature_or_MAC_3 (Raw Value) (8 bytes)
   62 3c 91 df 41 e3 4c 2f
        
   Signature_or_MAC_3 (CBOR Data Item) (9 bytes)
   48 62 3c 91 df 41 e3 4c 2f
        

The Initiator constructs PLAINTEXT_3:

イニシエーターはPLAINTEXT_3を構築します。

   PLAINTEXT_3 =
   (
     ID_CRED_I / bstr / -24..23,
     Signature_or_MAC_3,
     ? EAD_3
   )
        

Since ID_CRED_I contains a single 'kid' parameter, only the byte string value is included in the plaintext, represented as described in Section 3.3.2 of [RFC9528]. The CBOR map { 4 : h'2b' } is thus replaced, not by the CBOR byte string 0x412b, but by the CBOR int 0x2b, since that is a one-byte encoding of a CBOR integer (-12).

ID_CRED_Iには単一の 'kid' パラメータが含まれているため、プレーンテキストにはバイト文字列の値のみが含まれ、[RFC9528]のセクション3.3.2で説明されているように表されます。したがって、CBORマップ { 4 : h'2b' } は、CBORバイト文字列0x412bではなく、CBOR整数0x2bに置き換えられます。なぜなら、それがCBOR整数(-12)の1バイト符号化だからです。

   PLAINTEXT_3 (CBOR Sequence) (10 bytes)
   2b 48 62 3c 91 df 41 e3 4c 2f
        

The Initiator constructs the associated data for message_3:

イニシエーターは、メッセージ_3用の関連データを構築します。

   A_3 =
   [
     "Encrypt0",
     h'',
     h'adaf67a78a4bcc91e018f8882762a722000b2507039df0bc
       1bbf0c161bb3155c'
   ]
        
   A_3 (CBOR Data Item) (45 bytes)
   83 68 45 6e 63 72 79 70 74 30 40 58 20 ad af 67 a7 8a 4b cc 91 e0 18
   f8 88 27 62 a7 22 00 0b 25 07 03 9d f0 bc 1b bf 0c 16 1b b3 15 5c
        

The Initiator constructs the input needed to derive the key K_3 (see Section 4.1.2 of [RFC9528]) using the EDHOC hash algorithm:

イニシエーターは、EDHOCハッシュアルゴリズムを使用して、キーK_3を導出するために必要な入力を構築します([RFC9528]のセクション4.1.2を参照)。

   K_3 = EDHOC_KDF( PRK_3e2m, 3, TH_3, key_length )
       = HKDF-Expand( PRK_3e2m, info, key_length )
        

where key_length is the key length in bytes for the EDHOC AEAD algorithm, and info for K_3 is:

キー長さは、EDHOC AEAD アルゴリズムのキー長さ(バイト単位)であり、K_3 の info は次の通りです:

   info =
   (
     3,
     h'adaf67a78a4bcc91e018f8882762a722000b2507039df0bc
       1bbf0c161bb3155c',
     16
   )
        

where the last value is the key length in bytes for the EDHOC AEAD algorithm.

最後の値は、EDHOC AEAD アルゴリズムのキー長(バイト単位)です。

   info for K_3 (CBOR Sequence) (36 bytes)
   03 58 20 ad af 67 a7 8a 4b cc 91 e0 18 f8 88 27 62 a7 22 00 0b 25 07
   03 9d f0 bc 1b bf 0c 16 1b b3 15 5c 10
        
   K_3 (Raw Value) (16 bytes)
   8e 7a 30 04 20 00 f7 90 0e 81 74 13 1f 75 f3 ed
        

The Initiator constructs the input needed to derive the nonce IV_3 (see Section 4.1.2 of [RFC9528]) using the EDHOC hash algorithm:

イニシエーターは、EDHOCハッシュアルゴリズムを使用して、IV_3を導出するために必要な入力を構築します([RFC9528]のセクション4.1.2を参照)。

   IV_3 = EDHOC_KDF( PRK_3e2m, 4, TH_3, iv_length )
        = HKDF-Expand( PRK_3e2m, info, iv_length )
        

where iv_length is the nonce length in bytes for the EDHOC AEAD algorithm, and info for IV_3 is:

iv_length は、EDHOC AEAD アルゴリズムのノンスの長さ(バイト単位)であり、IV_3 の info は次の通りです。

   info =
   (
     4,
     h'adaf67a78a4bcc91e018f8882762a722000b2507039df0bc
       1bbf0c161bb3155c',
     13
   )
        

where the last value is the nonce length in bytes for the EDHOC AEAD algorithm.

最後の値は、EDHOC AEADアルゴリズムのノンス長(バイト単位)です。

   info for IV_3 (CBOR Sequence) (36 bytes)
   04 58 20 ad af 67 a7 8a 4b cc 91 e0 18 f8 88 27 62 a7 22 00 0b 25 07
   03 9d f0 bc 1b bf 0c 16 1b b3 15 5c 0d
        
   IV_3 (Raw Value) (13 bytes)
   6d 83 00 c1 e2 3b 56 15 3a e7 0e e4 57
        

The Initiator calculates CIPHERTEXT_3 as 'ciphertext' of COSE_Encrypt0 applied using the EDHOC AEAD algorithm with plaintext PLAINTEXT_3, additional data A_3, key K_3, and nonce IV_3.

イニシエーターは、平文PLAINTEXT_3、追加データA_3、鍵K_3、およびノンスIV_3を使用してEDHOC AEADアルゴリズムを適用したCOSE_Encrypt0の 'ciphertext' としてCIPHERTEXT_3を計算します。

   CIPHERTEXT_3 (Raw Value) (18 bytes)
   e5 62 09 7b c4 17 dd 59 19 48 5a c7 89 1f fd 90 a9 fc
        

message_3 is the CBOR bstr encoding of CIPHERTEXT_3:

message_3 は CIPHERTEXT_3 の CBOR bstr エンコーディングです。

   message_3 (CBOR Sequence) (19 bytes)
   52 e5 62 09 7b c4 17 dd 59 19 48 5a c7 89 1f fd 90 a9 fc
        

The transcript hash TH_4 is calculated using the EDHOC hash algorithm:

トランスクリプトハッシュ TH_4 は、EDHOC ハッシュアルゴリズムを使用して計算されます。

TH_4 = H( TH_3, PLAINTEXT_3, CRED_I )

TH_4 = H( TH_3, PLAINTEXT_3, CRED_I )

   Input to calculate TH_4 (CBOR Sequence) (151 bytes)
   58 20 ad af 67 a7 8a 4b cc 91 e0 18 f8 88 27 62 a7 22 00 0b 25 07 03
   9d f0 bc 1b bf 0c 16 1b b3 15 5c 2b 48 62 3c 91 df 41 e3 4c 2f a2 02
   77 34 32 2d 35 30 2d 33 31 2d 46 46 2d 45 46 2d 33 37 2d 33 32 2d 33
   39 08 a1 01 a5 01 02 02 41 2b 20 01 21 58 20 ac 75 e9 ec e3 e5 0b fc
   8e d6 03 99 88 95 22 40 5c 47 bf 16 df 96 66 0a 41 29 8c b4 30 7f 7e
   b6 22 58 20 6e 5d e6 11 38 8a 4b 8a 82 11 33 4a c7 d3 7e cb 52 a3 87
   d2 57 e6 db 3c 2a 93 df 21 ff 3a ff c8
        
   TH_4 (Raw Value) (32 bytes)
   c9 02 b1 e3 a4 32 6c 93 c5 55 1f 5f 3a a6 c5 ec c0 24 68 06 76 56 12
   e5 2b 5d 99 e6 05 9d 6b 6e
        
   TH_4 (CBOR Data Item) (34 bytes)
   58 20 c9 02 b1 e3 a4 32 6c 93 c5 55 1f 5f 3a a6 c5 ec c0 24 68 06 76
   56 12 e5 2b 5d 99 e6 05 9d 6b 6e
        
3.6. message_4
3.6. message_4

No external authorization data:

外部認証データなし:

   EAD_4 (CBOR Sequence) (0 bytes)
        

The Responder constructs PLAINTEXT_4:

応答者はPLAINTEXT_4を構築します。

   PLAINTEXT_4 =
   (
     ? EAD_4
   )
        
   PLAINTEXT_4 (CBOR Sequence) (0 bytes)
        

The Responder constructs the associated data for message_4:

レスポンダーは、メッセージ_4に関連するデータを構築します。

   A_4 =
   [
     "Encrypt0",
     h'',
     h'c902b1e3a4326c93c5551f5f3aa6c5ecc0246806765612e5
       2b5d99e6059d6b6e'
   ]
        
   A_4 (CBOR Data Item) (45 bytes)
   83 68 45 6e 63 72 79 70 74 30 40 58 20 c9 02 b1 e3 a4 32 6c 93 c5 55
   1f 5f 3a a6 c5 ec c0 24 68 06 76 56 12 e5 2b 5d 99 e6 05 9d 6b 6e
        

The Responder constructs the input needed to derive the EDHOC message_4 key (see Section 4.1.2 of [RFC9528]) using the EDHOC hash algorithm:

レスポンダーは、EDHOCハッシュアルゴリズムを使用して、EDHOCメッセージ_4のキーを導出するために必要な入力を構築します([RFC9528]のセクション4.1.2を参照)。

   K_4 = EDHOC_KDF( PRK_4e3m, 8, TH_4, key_length )
       = HKDF-Expand( PRK_4e3m, info, key_length )
        

where key_length is the key length in bytes for the EDHOC AEAD algorithm, and info for K_4 is:

キー長さは、EDHOC AEADアルゴリズムのキー長さ(バイト単位)であり、K_4の情報は次のとおりです:

   info =
   (
     8,
     h'c902b1e3a4326c93c5551f5f3aa6c5ecc0246806765612e5
       2b5d99e6059d6b6e',
     16
   )
        

where the last value is the key length in bytes for the EDHOC AEAD algorithm.

最後の値は、EDHOC AEAD アルゴリズムのキー長(バイト単位)です。

   info for K_4 (CBOR Sequence) (36 bytes)
   08 58 20 c9 02 b1 e3 a4 32 6c 93 c5 55 1f 5f 3a a6 c5 ec c0 24 68 06
   76 56 12 e5 2b 5d 99 e6 05 9d 6b 6e 10
        
   K_4 (Raw Value) (16 bytes)
   d3 c7 78 72 b6 ee b5 08 91 1b db d3 08 b2 e6 a0
        

The Responder constructs the input needed to derive the EDHOC message_4 nonce (see Section 4.1.2 of [RFC9528]) using the EDHOC hash algorithm:

レスポンダーは、EDHOCハッシュアルゴリズムを使用して、EDHOCメッセージ_4のノンスを導出するために必要な入力を構築します。

   IV_4 = EDHOC_KDF( PRK_4e3m, 9, TH_4, iv_length )
        = HKDF-Expand( PRK_4e3m, info, iv_length )
        

where iv_length is the nonce length in bytes for the EDHOC AEAD algorithm, and info for IV_4 is:

iv_length は、EDHOC AEAD アルゴリズムのノンス長(バイト単位)であり、IV_4 の info は次の通りです。

   info =
   (
     9,
     h'c902b1e3a4326c93c5551f5f3aa6c5ecc0246806765612e5
       2b5d99e6059d6b6e',
     13
   )
        

where the last value is the nonce length in bytes for the EDHOC AEAD algorithm.

最後の値は、EDHOC AEAD アルゴリズムのノンス長(バイト単位)です。

   info for IV_4 (CBOR Sequence) (36 bytes)
   09 58 20 c9 02 b1 e3 a4 32 6c 93 c5 55 1f 5f 3a a6 c5 ec c0 24 68 06
   76 56 12 e5 2b 5d 99 e6 05 9d 6b 6e 0d
        
   IV_4 (Raw Value) (13 bytes)
   04 ff 0f 44 45 6e 96 e2 17 85 3c 36 01
        

The Responder calculates CIPHERTEXT_4 as 'ciphertext' of COSE_Encrypt0 applied using the EDHOC AEAD algorithm with plaintext PLAINTEXT_4, additional data A_4, key K_4, and nonce IV_4.

レスポンダーは、平文PLAINTEXT_4、追加データA_4、鍵K_4、およびノンスIV_4を使用して適用されたEDHOC AEADアルゴリズムを使用してCIPHERTEXT_4を 'ciphertext' として計算します。

   CIPHERTEXT_4 (8 bytes)
   28 c9 66 b7 ca 30 4f 83
        

message_4 is the CBOR bstr encoding of CIPHERTEXT_4:

message_4はCIPHERTEXT_4のCBOR bstrエンコーディングです。

   message_4 (CBOR Sequence) (9 bytes)
   48 28 c9 66 b7 ca 30 4f 83
        
3.7. PRK_out and PRK_exporter
3.7. PRK_out と PRK_exporter

PRK_out is specified in Section 4.1.3 of [RFC9528].

PRK_outは[RFC9528]のセクション4.1.3で指定されています。

   PRK_out = EDHOC_KDF( PRK_4e3m, 7, TH_4, hash_length )
           = HKDF-Expand( PRK_4e3m, info, hash_length )
        

where hash_length is the length in bytes of the output of the EDHOC hash algorithm, and info for PRK_out is:

hash_length は、EDHOC ハッシュアルゴリズムの出力のバイト長であり、PRK_out の info は次のとおりです。

   info =
   (
     7,
     h'c902b1e3a4326c93c5551f5f3aa6c5ecc0246806765612e5
       2b5d99e6059d6b6e',
     32
   )
        

where the last value is the length in bytes of the output of the EDHOC hash algorithm.

最後の値は、EDHOCハッシュアルゴリズムの出力のバイト長です。

   info for PRK_out (CBOR Sequence) (37 bytes)
   07 58 20 c9 02 b1 e3 a4 32 6c 93 c5 55 1f 5f 3a a6 c5 ec c0 24 68 06
   76 56 12 e5 2b 5d 99 e6 05 9d 6b 6e 18 20
        
   PRK_out (Raw Value) (32 bytes)
   2c 71 af c1 a9 33 8a 94 0b b3 52 9c a7 34 b8 86 f3 0d 1a ba 0b 4d c5
   1b ee ae ab df ea 9e cb f8
        

The OSCORE Master Secret and OSCORE Master Salt are derived with the EDHOC_Exporter as specified in Section 4.2.1 of [RFC9528].

OSCOREのマスターシークレットとOSCOREのマスターソルトは、[RFC9528]のセクション4.2.1で指定されているEDHOC_Exporterを使用して導出されます。

   EDHOC_Exporter( exporter_label, context, length )
   = EDHOC_KDF( PRK_exporter, exporter_label, context, length )
        

where PRK_exporter is derived from PRK_out:

PRK_exporter は PRK_out から派生しています。

   PRK_exporter = EDHOC_KDF( PRK_out, 10, h'', hash_length )
                = HKDF-Expand( PRK_out, info, hash_length )
        

where hash_length is the length in bytes of the output of the EDHOC hash algorithm, and info for the PRK_exporter is:

hash_length は、EDHOC ハッシュアルゴリズムの出力のバイト長であり、PRK_exporter の info は次のとおりです。

   info =
   (
     10,
     h'',
     32
   )
        

where the last value is the length in bytes of the output of the EDHOC hash algorithm.

最後の値は、EDHOCハッシュアルゴリズムの出力のバイト長です。

   info for PRK_exporter (CBOR Sequence) (4 bytes)
   0a 40 18 20
        
   PRK_exporter (Raw Value) (32 bytes)
   e1 4d 06 69 9c ee 24 8c 5a 04 bf 92 27 bb cd 4c e3 94 de 7d cb 56 db
   43 55 54 74 17 1e 64 46 db
        
3.8. OSCORE Parameters
3.8. OSCORE パラメータ

The derivation of OSCORE parameters is specified in Appendix A.1 of [RFC9528].

OSCOREパラメータの導出方法は[RFC9528]の付録A.1に指定されています。

The AEAD and hash algorithms to use in OSCORE are given by the selected cipher suite:

OSCOREで使用するAEADおよびハッシュアルゴリズムは、選択された暗号スイートによって指定されます。

   Application AEAD Algorithm (int)
   10
        
   Application Hash Algorithm (int)
   -16
        

The mapping from EDHOC connection identifiers to OSCORE Sender/ Recipient IDs is defined in Section 3.3.3 of [RFC9528].

[EDHOC接続識別子からOSCORE送信者/受信者IDへのマッピングは、[RFC9528]のセクション3.3.3で定義されています。

C_R is mapped to the Recipient ID of the server, i.e., the Sender ID of the client. The byte string 0x27, which as C_R is encoded as the CBOR integer 0x27, is converted to the server Recipient ID 0x27.

C_Rはサーバーの受信者IDにマッピングされ、つまりクライアントの送信者IDです。C_Rとしてエンコードされた0x27のバイト文字列は、CBOR整数0x27として変換され、サーバーの受信者ID 0x27に変換されます。

   Client's OSCORE Sender ID (Raw Value) (1 byte)
   27
        

C_I is mapped to the Recipient ID of the client, i.e., the Sender ID of the server. The byte string 0x37, which as C_I is encoded as the CBOR integer 0x0e, is converted to the client Recipient ID 0x37.

C_Iはクライアントの受信者IDにマッピングされ、つまりサーバーの送信者IDになります。C_Iとしてエンコードされたバイト文字列0x37は、CBOR整数0x0eとして変換され、クライアントの受信者ID0x37に変換されます。

   Server's OSCORE Sender ID (Raw Value) (1 byte)
   37
        

The OSCORE Master Secret is computed through EDHOC_Expand() using the application hash algorithm (see Appendix A.1 of [RFC9528]):

OSCOREマスターシークレットは、アプリケーションハッシュアルゴリズムを使用して、EDHOC_Expand()を介して計算されます([RFC9528]の付録A.1を参照)。

   OSCORE Master Secret = EDHOC_Exporter( 0, h'', oscore_key_length )
   = EDHOC_KDF( PRK_exporter, 0, h'', oscore_key_length )
   = HKDF-Expand( PRK_exporter, info, oscore_key_length )
        

where oscore_key_length is by default the key length in bytes for the application AEAD algorithm, and info for the OSCORE Master Secret is:

デフォルトでは、oscore_key_length はアプリケーション AEAD アルゴリズムのキー長(バイト単位)であり、OSCORE マスターシークレットの情報は次のとおりです。

   info =
   (
     0,
     h'',
     16
   )
        

where the last value is the key length in bytes for the application AEAD algorithm.

最後の値は、アプリケーションのAEADアルゴリズムのキー長(バイト単位)です。

   info for OSCORE Master Secret (CBOR Sequence) (3 bytes)
   00 40 10
        
   OSCORE Master Secret (Raw Value) (16 bytes)
   f9 86 8f 6a 3a ca 78 a0 5d 14 85 b3 50 30 b1 62
        

The OSCORE Master Salt is computed through EDHOC_Expand() using the application hash algorithm (see Section 4.2 of [RFC9528]):

OSCOREマスターソルトは、アプリケーションハッシュアルゴリズムを使用して、EDHOC_Expand()を介して計算されます([RFC9528]のセクション4.2を参照)。

   OSCORE Master Salt = EDHOC_Exporter( 1, h'', oscore_salt_length )
   = EDHOC_KDF( PRK_exporter, 1, h'', oscore_salt_length )
   = HKDF-Expand( PRK_4x3m, info, oscore_salt_length )
        

where oscore_salt_length is the length in bytes of the OSCORE Master Salt, and info for the OSCORE Master Salt is:

OSCOREマスターソルトの長さはバイト単位であり、OSCOREマスターソルトの情報は次のとおりです:

   info =
   (
     1,
     h'',
     8
   )
        

where the last value is the length in bytes of the OSCORE Master Salt.

最後の値は、OSCORE Master Salt のバイト長です。

   info for OSCORE Master Salt (CBOR Sequence) (3 bytes)
   01 40 08
        
   OSCORE Master Salt (Raw Value) (8 bytes)
   ad a2 4c 7d bf c8 5e eb
        
3.9. Key Update
3.9. キーの更新

The key update is defined in Appendix H of [RFC9528].

キーの更新は[RFC9528]の付録Hで定義されています。

   EDHOC_KeyUpdate( context ):
   PRK_out = EDHOC_KDF( PRK_out, 11, context, hash_length )
           = HKDF-Expand( PRK_out, info, hash_length )
        

where hash_length is the length in bytes of the output of the EDHOC hash function, and the context for KeyUpdate is:

ハッシュ関数EDHOCの出力のバイト数であるhash_length、およびKeyUpdateのコンテキストは次のとおりです。

   context for KeyUpdate (Raw Value) (16 bytes)
   a0 11 58 fd b8 20 89 0c d6 be 16 96 02 b8 bc ea
        
   context for KeyUpdate (CBOR Data Item) (17 bytes)
   50 a0 11 58 fd b8 20 89 0c d6 be 16 96 02 b8 bc ea
        

and where info for the key update is:

鍵の更新情報はどこにありますか。

   info =
   (
     11,
     h'a01158fdb820890cd6be169602b8bcea',
     32
   )
        
   info for KeyUpdate (CBOR Sequence) (20 bytes)
   0b 50 a0 11 58 fd b8 20 89 0c d6 be 16 96 02 b8 bc ea 18 20
        
   PRK_out after KeyUpdate (Raw Value) (32 bytes)
   f9 79 53 77 43 fe 0b d6 b9 b1 41 dd bd 79 65 6c 52 e6 dc 7c 50 ad 80
   77 54 d7 4d 07 e8 7d 0d 16
        

After the key update, the PRK_exporter needs to be derived anew:

キーの更新後、PRK_exporterは新たに導出する必要があります。

   PRK_exporter = EDHOC_KDF( PRK_out, 10, h'', hash_length )
                = HKDF-Expand( PRK_out, info, hash_length )
        

where info and hash_length are unchanged as in Section 3.7.

情報とハッシュ長がセクション3.7と同じままである場合

   PRK_exporter after KeyUpdate (Raw Value) (32 bytes)
   00 fc f7 db 9b 2e ad 73 82 4e 7e 83 03 63 c8 05 c2 96 f9 02 83 0f ac
   23 d8 6c 35 9c 75 2f 0f 17
        

The OSCORE Master Secret is derived with the updated PRK_exporter:

OSCOREマスターシークレットは更新されたPRK_exporterを使用して導出されます。

   OSCORE Master Secret
   = HKDF-Expand( PRK_exporter, info, oscore_key_length )
        

where info and oscore_key_length are unchanged as in Section 3.8.

情報とoscore_key_lengthは、セクション3.8と同じままです。

   OSCORE Master Secret after KeyUpdate (Raw Value) (16 bytes)
   49 f7 2f ac 02 b4 65 8b da 21 e2 da c6 6f c3 74
        

The OSCORE Master Salt is derived with the updated PRK_exporter:

OSCOREマスターソルトは、更新されたPRK_exporterによって派生されます。

   OSCORE Master Salt
   = HKDF-Expand( PRK_exporter, info, oscore_salt_length )
        

where info and oscore_salt_length are unchanged as in Section 3.8.

情報とoscore_salt_lengthは、セクション3.8と同じままです。

   OSCORE Master Salt after KeyUpdate (Raw Value) (8 bytes)
   dd 8b 24 f2 aa 9b 01 1a
        
4. Invalid Traces
4. 無効なトレース

This section contains examples of invalid messages, which a compliant implementation will not compose and must or may reject according to [RFC9528], [RFC8949], [RFC9053], and [SP-800-56A]. This is just a small set of examples of different reasons for which a message might be invalid. The same types of invalidities apply to other fields and messages as well. Implementations should make sure to check for similar types of invalidities in all EDHOC fields and messages.

このセクションには、準拠している実装が作成しない無効なメッセージの例が含まれており、[RFC9528]、[RFC8949]、[RFC9053]、および[SP-800-56A]に従って拒否する必要があります。これは、メッセージが無効である理由のさまざまな例の一部に過ぎません。同じ種類の無効性は、他のフィールドやメッセージにも適用されます。実装は、すべてのEDHOCフィールドとメッセージで同様の種類の無効性をチェックするようにする必要があります。

4.1. Encoding Errors
4.1. エンコーディングエラー
4.1.1. Surplus Array Encoding of a Message
4.1.1. メッセージの余剰配列符号化

message_1 is incorrectly encoded as a CBOR array. The correct encoding is a CBOR sequence according to Section 5.2.1 of [RFC9528].

message_1 は誤って CBOR 配列としてエンコードされています。正しいエンコーディングは、[RFC9528] のセクション 5.2.1 に従った CBOR シーケンスです。

   Invalid message_1 (38 bytes)
   84 03 02 58 20 74 1a 13 d7 ba 04 8f bb 61 5e 94 38 6a a3 b6 1b ea 5b
   3d 8f 65 f3 26 20 b7 49 be e8 d2 78 ef a9 0e
        
4.1.2. Surplus bstr Encoding of the Connection Identifier
4.1.2. 接続識別子の余剰bstrエンコーディング

The connection identifier C_I = 0x0e is incorrectly encoded as the CBOR byte string 41 0e. The correct encoding is the integer 0e according to Section 3.3.2 of [RFC9528].

接続識別子 C_I = 0x0e が CBOR バイト文字列 41 0e として誤ってエンコードされています。正しいエンコーディングは、[RFC9528] のセクション 3.3.2 に従って整数 0e です。

   Invalid message_1 (38 bytes)
   03 02 58 20 74 1a 13 d7 ba 04 8f bb 61 5e 94 38 6a a3 b6 1b ea 5b 3d
   8f 65 f3 26 20 b7 49 be e8 d2 78 ef a9 41 0e
        
4.1.3. Surplus Array Encoding of the Ciphersuite
4.1.3. サイファースイートの余剰配列エンコーディング

The element SUITES_I = 2 is incorrectly encoded as the CBOR array 81 02. The correct encoding is the integer 02 according to Section 5.2.2 of [RFC9528].

要素 SUITES_I = 2 は、誤って CBOR 配列 81 02 としてエンコードされています。正しいエンコーディングは、[RFC9528] のセクション 5.2.2 によると、整数 02 です。

   Invalid message_1 (38 bytes)
   03 81 02 58 20 74 1a 13 d7 ba 04 8f bb 61 5e 94 38 6a a3 b6 1b ea 5b
   3d 8f 65 f3 26 20 b7 49 be e8 d2 78 ef a9 0e
        
4.1.4. Text String Encoding of the Ephemeral Key
4.1.4. 一時鍵のテキスト文字列エンコーディング

The third element of message_1 (G_X) is incorrectly encoded as a text string. The correct encoding is a byte string according to Section 5.2.1 of [RFC9528].

メッセージ_1の第3要素(G_X)が誤ってテキスト文字列としてエンコードされています。正しいエンコーディングは[RFC9528]のセクション5.2.1に従ってバイト文字列です。

   Invalid message_1 (37 bytes)
   03 02 78 20 20 61 69 72 20 73 70 65 65 64 20 6F 66 20 61 20 75 6E 6C
   61 64 65 6E 20 73 77 61 6C 6C 6F 77 20 0e
        
4.1.5. Wrong Number of CBOR Sequence Elements
4.1.5. CBORシーケンス要素の数が間違っています

The CBOR sequence in message_2 has an incorrect number of elements. The correct number of elements in the CBOR sequence is 1 according to Section 5.3.1 of [RFC9528].

メッセージ_2のCBORシーケンスには、正しくない要素数が含まれています。CBORシーケンスの正しい要素数は、[RFC9528]のセクション5.3.1によると1つです。

   Invalid message_2 (46 bytes)
   58 20 41 97 01 d7 f0 0a 26 c2 dc 58 7a 36 dd 75 25 49 f3 37 63 c8 93
   42 2c 8e a0 f9 55 a1 3a 4f f5 d5 4B 98 62 a1 1d e4 2a 95 d7 85 38 6a
        
4.1.6. Surplus Map Encoding of the ID_CRED Field
4.1.6. ID_CREDフィールドの余剰マップエンコーディング

The element ID_CRED_R in PLAINTEXT_2 is incorrectly encoded as the map a1 04 42 32 10. The correct encoding is 42 32 10 according to Section 3.5.3.2 of [RFC9528].

PLAINTEXT_2内の要素ID_CRED_Rが誤ってマップa1 04 42 32 10としてエンコードされています。正しいエンコーディングは[RFC9528]のセクション3.5.3.2によると42 32 10です。

   Invalid PLAINTEXT_2 (15 bytes)
   27 a1 04 42 32 10 48 fa 5e fa 2e bf 92 0b f3
        
4.1.7. Surplus bstr Encoding of the ID_CRED Field
4.1.7. ID_CREDフィールドの余剰bstrエンコーディング

The element ID_CRED_R in PLAINTEXT_2 is incorrectly encoded as the byte string 41 32. The correct encoding is 32 according to Section 3.5.3.2 of [RFC9528].

PLAINTEXT_2内の要素ID_CRED_Rは、バイト文字列41 32として誤ってエンコードされています。正しいエンコーディングは、[RFC9528]のセクション3.5.3.2によると32です。

   Invalid PLAINTEXT_2 (12 bytes)
   27 41 32 48 fa 5e fa 2e bf 92 0b f3
        
4.2. 暗号化関連のエラー
4.2.1. Error in the Length of the Ephemeral Key
4.2.1. 一時鍵の長さにエラーがあります。

The third element (G_X) has an invalid length. The selected cipher suite is cipher suite 24 with curve P-384 according to Sections 5.2.2 and 10.2 of [RFC9528]. The correct length of the x-coordinate is 48 bytes according to Section 3.7 of [RFC9528] and Section 7.1.1 of [RFC9053].

第3要素(G_X)の長さが無効です。選択された暗号スイートは、[RFC9528]のセクション5.2.2および10.2に従って曲線P-384の暗号スイート24です。[RFC9528]のセクション3.7および[RFC9053]のセクション7.1.1によると、x座標の正しい長さは48バイトです。

   Invalid message_1 (40 bytes)
   03 82 02 18 18 58 20 74 1a 13 d7 ba 04 8f bb 61 5e 94 38 6a a3 b6 1b
   ea 5b 3d 8f 65 f3 26 20 b7 49 be e8 d2 78 ef a9 0e
        
4.2.2. Error in Elliptic Curve Representation
4.2.2. 楕円曲線表現のエラー

The x-coordinate in G_X is invalid as x ≥ p. It is required that x < p according to Section 5.6.2.3 of [SP-800-56A], which is referenced in Section 9.2 of [RFC9528].

G_X内のx座標が無効です。x ≥ pである必要があります。[SP-800-56A]の5.6.2.3節によると、x < pである必要があります。これは[RFC9528]の9.2節で参照されています。

   Invalid message_1 (37 bytes)
   03 02 58 20 ff ff ff ff 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00
   00 ff ff ff ff ff ff ff ff ff ff ff ff 0e
        
4.2.3. Error in the Elliptic Curve Point
4.2.3. 楕円曲線ポイントのエラー

The x-coordinate in G_X is invalid as it does not correspond to a point on the P-256 curve. It is required that y^2 ≡ x^3 + a ⋅ x + b (mod p) according to Section 5.6.2.3 of [SP-800-56A], which is referenced in Section 9.2 of [RFC9528].

G_X内のx座標は、P-256曲線上の点に対応していないため無効です。[SP-800-56A]の5.6.2.3節によると、y^2 ≡ x^3 + a ⋅ x + b (mod p)が必要です。これは[RFC9528]の9.2節で参照されています。

   Invalid message_1 (37 bytes)
   03 02 58 20 a0 4e 73 60 1d f5 44 a7 0b a7 ea 1e 57 03 0f 7d 4b 4e b7
   f6 73 92 4e 58 d5 4c a7 7a 5e 7d 4d 4a 0e
        
4.2.4. Curve Point of the Low Order
4.2.4. 低次の曲線点

The Curve25519 point is invalid as it is of low order and fails the check for all-zero output according to Section 9.2 of [RFC9528].

Curve25519ポイントは低次元であり、すべてのゼロ出力のチェックに失敗するため、[RFC9528]のセクション9.2に従って無効です。

   Invalid message_1 (37 bytes)
   03 00 58 20 ed ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
   ff ff ff ff ff ff ff ff ff ff ff ff 7f 0e
        
4.2.5. Error in the Length of the MAC
4.2.5. MACの長さにエラーがあります。

The third element (Signature_or_MAC_2) has an invalid length. The length of Signature_or_MAC_2 is given by the cipher suite, and the MAC length is at least 8 bytes according to Section 9.3 of [RFC9528].

第3要素(Signature_or_MAC_2)の長さが無効です。Signature_or_MAC_2の長さは、暗号スイートによって指定され、MACの長さは[RFC9528]のセクション9.3によると少なくとも8バイトです。

   Invalid PLAINTEXT_2 (7 bytes)
   27 32 44 fa 5e fa 2e
        
4.2.6. Error in the Elliptic Curve Encoding
4.2.6. 楕円曲線エンコーディングのエラー

The third element (G_X) is incorrectly encoded. The correct encoding is with leading-zero octets according to Section 7.1.1 of [RFC9053], which is referenced in Section 3.7 of [RFC9528].

第3要素(G_X)が誤ってエンコードされています。正しいエンコーディングは、[RFC9053]のセクション7.1.1に従って先頭にゼロを付けたオクテットで行われます。この[RFC9053]は[RFC9528]のセクション3.7で参照されています。

   Invalid message_1 (36 bytes)
   03 02 58 1f d9 69 77 25 d2 3a 68 8b 12 d1 c7 e0 10 8a 08 c9 f7 1a 85
   a0 9c 20 81 49 76 ab 21 12 22 48 fc 0e
        
4.3. Non-deterministic CBOR
4.3. 非決定性CBOR
4.3.1. Unnecessary Long Encoding
4.3.1. 不要な長いエンコード

The element METHOD = 3 is incorrectly encoded as a 16-bit integer. The deterministic encoding 03 is correct according to Section 3.1 of [RFC9528] and Section 4.2.1 of [RFC8949], which states that the arguments for integers, lengths in major types 2 through 5, and tags are required to be as short as possible.

要素 METHOD = 3 は誤って 16 ビット整数としてエンコードされています。[RFC9528] のセクション 3.1 および [RFC8949] のセクション 4.2.1 によると、03 という決定論的エンコーディングが正しいとされており、整数、メジャータイプ 2 から 5 の長さ、およびタグの引数はできるだけ短くする必要があると述べられています。

   Invalid message_1 (39 bytes)
   19 00 03 02 58 20 74 1a 13 d7 ba 04 8f bb 61 5e 94 38 6a a3 b6 1b ea
   5b 3d 8f 65 f3 26 20 b7 49 be e8 d2 78 ef a9 0e
        
4.3.2. Indefinite-Length Array Encoding
4.3.2. 不定長配列のエンコーディング

The element SUITES_I = [6, 2] is incorrectly encoded as an indefinite-length array. The correct encoding is the definite-length array 82 06 02 according to Section 4.2.1 of [RFC8949], which is referenced in Section 3.1 of [RFC9528].

要素 SUITES_I = [6, 2] は不正確に無限長配列としてエンコードされています。正しいエンコーディングは、[RFC8949] のセクション 4.2.1 に従い、82 06 02 という確定長配列です。これは[RFC9528] のセクション 3.1 で参照されています。

   Invalid message_1 (40 bytes)
   03 9F 06 02 FF 58 20 74 1a 13 d7 ba 04 8f bb 61 5e 94 38 6a a3 b6 1b
   ea 5b 3d 8f 65 f3 26 20 b7 49 be e8 d2 78 ef a9 0e
        
5. Security Considerations
5. セキュリティに関する考慮事項

This document contains examples of EDHOC [RFC9528]. The security considerations described in [RFC9528] apply. The keys printed in these examples cannot be considered secret and MUST NOT be used.

このドキュメントには、EDHOC [RFC9528] の例が含まれています。[RFC9528] で説明されているセキュリティに関する考慮事項が適用されます。これらの例に印刷されている鍵は秘密とは見なされず、使用してはいけません。

6. IANA Considerations
6. IANAの考慮事項

This document has no IANA actions.

この文書にはIANAのアクションはありません。

7. References
7. 参考文献
7.1. Normative References
7.1. 引用文献
   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.
        
   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.
        
   [RFC9528]  Selander, G., Preuß Mattsson, J., and F. Palombini,
              "Ephemeral Diffie-Hellman Over COSE (EDHOC)", RFC 9528,
              DOI 10.17487/RFC9528, March 2024,
              <https://www.rfc-editor.org/rfc/rfc9528>.
        
7.2. Informative References
7.2. 参考引用
   [CborMe]   Bormann, C., "CBOR playground", <https://cbor.me/>.
        
   [RFC7748]  Langley, A., Hamburg, M., and S. Turner, "Elliptic Curves
              for Security", RFC 7748, DOI 10.17487/RFC7748, January
              2016, <https://www.rfc-editor.org/info/rfc7748>.
        
   [RFC8032]  Josefsson, S. and I. Liusvaara, "Edwards-Curve Digital
              Signature Algorithm (EdDSA)", RFC 8032,
              DOI 10.17487/RFC8032, January 2017,
              <https://www.rfc-editor.org/info/rfc8032>.
        
   [RFC8392]  Jones, M., Wahlstroem, E., Erdtman, S., and H. Tschofenig,
              "CBOR Web Token (CWT)", RFC 8392, DOI 10.17487/RFC8392,
              May 2018, <https://www.rfc-editor.org/info/rfc8392>.
        
   [RFC8949]  Bormann, C. and P. Hoffman, "Concise Binary Object
              Representation (CBOR)", STD 94, RFC 8949,
              DOI 10.17487/RFC8949, December 2020,
              <https://www.rfc-editor.org/info/rfc8949>.
        
   [RFC9053]  Schaad, J., "CBOR Object Signing and Encryption (COSE):
              Initial Algorithms", RFC 9053, DOI 10.17487/RFC9053,
              August 2022, <https://www.rfc-editor.org/info/rfc9053>.
        
   [SP-800-186]
              Chen, L., Moody, D., Randall, K., Regenscheid, A., and A.
              Robinson, "Recommendations for Discrete Logarithm-based
              Cryptography: Elliptic Curve Domain Parameters",
              NIST Special Publication 800-186,
              DOI 10.6028/NIST.SP.800-186, February 2023,
              <https://doi.org/10.6028/NIST.SP.800-186>.
        
   [SP-800-56A]
              Barker, E., Chen, L., Roginsky, A., Vassilev, A., and R.
              Davis, "Recommendation for Pair-Wise Key-Establishment
              Schemes Using Discrete Logarithm Cryptography",
              NIST Special Publication 800-56A Revision 3,
              DOI 10.6028/NIST.SP.800-56Ar3, April 2018,
              <https://doi.org/10.6028/NIST.SP.800-56Ar3>.
        
Acknowledgments
謝辞

The authors want to thank all people verifying EDHOC test vectors and/or contributing to the interoperability testing, including: Christian Amsüss, Timothy Claeys, Rikard Höglund, Stefan Hristozov, Christos Koulamas, Francesca Palombini, Lidia Pocero, Peter van der Stok, and Michel Veillette.

著者たちは、Christian Amsüss、Timothy Claeys、Rikard Höglund、Stefan Hristozov、Christos Koulamas、Francesca Palombini、Lidia Pocero、Peter van der Stok、およびMichel Veilletteを含む、EDHOCテストベクトルの検証や相互運用性テストへの貢献に協力してくれたすべての方々に感謝したいと思います。

Authors' Addresses
著者の住所
   Göran Selander
   Ericsson
   Sweden
   Email: goran.selander@ericsson.com
        
   John Preuß Mattsson
   Ericsson
   Sweden
   Email: john.mattsson@ericsson.com
        
   Marek Serafin
   ASSA ABLOY
   Poland
   Email: marek.serafin@assaabloy.com
        
   Marco Tiloca
   RISE AB
   Isafjordsgatan 22
   SE-164 40 Kista
   Sweden
   Email: marco.tiloca@ri.se
        
   Mališa Vučinić
   Inria
   France
   Email: malisa.vucinic@inria.fr