5.3 Secret Export (秘密のエクスポート)
5.3 Secret Export (秘密のエクスポート)
HPKE は, TLS 1.3 エクスポーターインターフェース ([RFC8446], 7.5節参照) に似た可変長擬似ランダム関数 (PRF) を使用して暗号化コンテキストから秘密をエクスポートするためのインターフェースを提供します。このインターフェースは, コンテキスト文字列 exporter_context と望ましい長さ L (バイト単位) を入力として受け取り, 対応する KDF Expand 関数を使用して内部エクスポーター秘密から導出された秘密を生成します。この仕様で定義されている KDF の場合, L の最大値は 255*Nh です。新しい KDF を定義する将来の仕様では, L の境界を指定しなければなりません。
exporter_context フィールドには最大長があり, これは KDF 自体, LabeledExpand() の定義, およびそれらと共に使用される定数ラベルに依存します。この長さの正確な制限については7.2.1節を参照してください。
def Context.Export(exporter_context, L):
return LabeledExpand(self.exporter_secret, "sec",
exporter_context, L)
5.2節 の暗号化 API を使用しないアプリケーションは, 鍵スケジュールを計算する際にエクスポート専用 AEAD ID 0xFFFF を使用できます。そのようなアプリケーションは, 上記の Export インターフェースで使用されないため, 鍵スケジュールでの key と base_nonce 値の計算を回避できます。