Zum Hauptinhalt springen

8. Suites für das Hashing

Dieser Abschnitt listet die empfohlenen Suites zum Hashen auf elliptische Standardkurven auf.

Eine Hash-to-Curve-Suite spezifiziert vollständig das Verfahren zum Hashen von Byte-Strings zu Punkten einer bestimmten elliptischen Kurvengruppe. Abschnitt 8.1 beschreibt die Implementierung einer Suite. Anwendungen, die das Hashen auf eine elliptische Kurve erfordern, sollten entweder eine bestehende Suite oder eine neue Suite verwenden, die wie in Abschnitt 8.9 beschrieben spezifiziert ist.

Alle Anwendungen, die eine Hash-to-Curve-Suite verwenden, MÜSSEN ein Domain-Separation-Tag (DST) gemäß den Richtlinien in Abschnitt 3.1 wählen. Darüber hinaus MÜSSEN Anwendungen, deren Sicherheit ein Random Oracle erfordert, das gleichmäßig verteilte zufällige Punkte auf der Zielkurve zurückgibt, eine Suite verwenden, deren Kodierungstyp hash_to_curve ist; siehe Abschnitt 3 und unmittelbar unten für weitere Informationen.

Eine Hash-to-Curve-Suite umfasst die folgenden Parameter:

  • Suite ID: ein Kurzname, der verwendet wird, um auf eine bestimmte Suite zu verweisen. Abschnitt 8.10 behandelt Namenskonventionen für Suite-IDs.

  • Kodierungstyp: entweder uniform (hash_to_curve) oder nicht-uniform (encode_to_curve). Siehe Abschnitt 3 für Definitionen dieser Kodierungstypen.

  • E: die elliptische Zielkurve über einem Körper F.

  • p: die Charakteristik des Körpers F.

  • m: der Erweiterungsgrad des Körpers F. Falls m > 1, MUSS die Suite auch die polynomiale Basis angeben, die zur Darstellung von Elementen des Erweiterungskörpers verwendet wird.

  • k: das Zielsicherheitsniveau der Suite in Bits. (Siehe Abschnitt 10.8 für Details.)

  • L: der Längenparameter für hash_to_field (Abschnitt 5).

  • expand_message: eine der in Abschnitt 5.3 spezifizierten Varianten plus alle für die angegebene Variante erforderlichen Parameter (z.B. H, die zugrundeliegende Hash-Funktion).

  • f: eine Abbildungsfunktion aus Abschnitt 6.

  • h_eff: der Skalarparameter für clear_cofactor (Abschnitt 7).

Zusätzlich zu den oben genannten Parametern kann die Abbildung f zusätzliche Parameter Z, M, rational_map, E' oder iso_map erfordern. Falls zutreffend, MÜSSEN diese spezifiziert werden.

Die untenstehende Tabelle listet die EMPFOHLENEN Suites für einige elliptische Kurven auf. Die entsprechenden Parameter sind in den folgenden Unterabschnitten angegeben. Anwendungen, die kryptographische Protokolle instanziieren, deren Sicherheitsanalyse auf einem Random Oracle beruht, das Punkte mit gleichmäßiger Verteilung erzeugt, DÜRFEN KEINE nicht-uniforme Kodierung verwenden. Darüber hinaus SOLLTEN Anwendungen, die eine nicht-uniforme Kodierung verwenden, die Sicherheitsimplikationen der Nicht-Uniformität sorgfältig analysieren. Wenn die erforderliche Kodierung nicht klar ist, SOLLTEN Anwendungen aus Sicherheitsgründen eine uniforme Kodierung verwenden.

ESuitesAbschnitt
NIST P-256P256_XMD:SHA-256_SSWU_RO_
P256_XMD:SHA-256_SSWU_NU_
8.2
NIST P-384P384_XMD:SHA-384_SSWU_RO_
P384_XMD:SHA-384_SSWU_NU_
8.3
NIST P-521P521_XMD:SHA-512_SSWU_RO_
P521_XMD:SHA-512_SSWU_NU_
8.4
curve25519curve25519_XMD:SHA-512_ELL2_RO_
curve25519_XMD:SHA-512_ELL2_NU_
8.5
edwards25519edwards25519_XMD:SHA-512_ELL2_RO_
edwards25519_XMD:SHA-512_ELL2_NU_
8.5
curve448curve448_XOF:SHAKE256_ELL2_RO_
curve448_XOF:SHAKE256_ELL2_NU_
8.6
edwards448edwards448_XOF:SHAKE256_ELL2_RO_
edwards448_XOF:SHAKE256_ELL2_NU_
8.6
secp256k1secp256k1_XMD:SHA-256_SSWU_RO_
secp256k1_XMD:SHA-256_SSWU_NU_
8.7
BLS12-381 G1BLS12381G1_XMD:SHA-256_SSWU_RO_
BLS12381G1_XMD:SHA-256_SSWU_NU_
8.8
BLS12-381 G2BLS12381G2_XMD:SHA-256_SSWU_RO_
BLS12381G2_XMD:SHA-256_SSWU_NU_
8.8

Tabelle 2: Suites zum Hashen auf elliptische Kurven.

8.1. Implementierung einer Hash-to-Curve-Suite

Eine Hash-to-Curve-Suite erfordert die folgenden Funktionen. Beachten Sie, dass einige davon Hilfsfunktionen aus Abschnitt 4 benötigen.

  1. Arithmetische Operationen des Basiskörpers für die elliptische Zielkurve, z.B. Addition, Multiplikation und Quadratwurzel.

  2. Operationen auf Punkten der elliptischen Kurve für die Zielkurve, z.B. Punktaddition und Skalarmultiplikation.

  3. Die Funktion hash_to_field; siehe Abschnitt 5. Dies umfasst die expand_message-Variante (Abschnitt 5.3) und alle konstituierenden Hash-Funktionen oder XOFs.

  4. Die von der Suite spezifizierte Abbildungsfunktion; siehe den entsprechenden Unterabschnitt von Abschnitt 6.

  5. Eine Cofaktor-Löschfunktion; siehe Abschnitt 7. Diese kann entweder als Skalarmultiplikation mit h_eff oder als äquivalente schnellere Methode implementiert werden.

  6. Die gewünschte Kodierungsfunktion; siehe Abschnitt 3. Dies ist entweder hash_to_curve oder encode_to_curve.

8.2. Suites für NIST P-256

Dieser Abschnitt definiert kryptographische Suites für die elliptische Kurve NIST P-256 [FIPS186-4].

P256_XMD:SHA-256_SSWU_RO_ ist wie folgt definiert:

  • Kodierungstyp: hash_to_curve (Abschnitt 3)
  • E: y^2 = x^3 + A * x + B, wobei
    • A = -3
    • B = 0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b
  • p: 2^256 - 2^224 + 2^192 + 2^96 - 1
  • m: 1
  • k: 128
  • expand_message: expand_message_xmd (Abschnitt 5.3.1)
  • H: SHA-256
  • L: 48
  • f: Vereinfachte SWU-Methode (Abschnitt 6.6.2)
  • Z: -10
  • h_eff: 1

P256_XMD:SHA-256_SSWU_NU_ ist identisch mit P256_XMD:SHA-256_SSWU_RO_, außer dass der Kodierungstyp encode_to_curve ist (Abschnitt 3).

Eine beispielhafte optimierte Implementierung der vereinfachten SWU-Abbildung auf P-256 ist in Anhang F.2 angegeben.

8.3. Suites für NIST P-384

Dieser Abschnitt definiert kryptographische Suites für die elliptische Kurve NIST P-384 [FIPS186-4].

P384_XMD:SHA-384_SSWU_RO_ ist wie folgt definiert:

  • Kodierungstyp: hash_to_curve (Abschnitt 3)
  • E: y^2 = x^3 + A * x + B, wobei
    • A = -3
    • B = 0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef
  • p: 2^384 - 2^128 - 2^96 + 2^32 - 1
  • m: 1
  • k: 192
  • expand_message: expand_message_xmd (Abschnitt 5.3.1)
  • H: SHA-384
  • L: 72
  • f: Vereinfachte SWU-Methode (Abschnitt 6.6.2)
  • Z: -12
  • h_eff: 1

P384_XMD:SHA-384_SSWU_NU_ ist identisch mit P384_XMD:SHA-384_SSWU_RO_, außer dass der Kodierungstyp encode_to_curve ist (Abschnitt 3).

Eine beispielhafte optimierte Implementierung der vereinfachten SWU-Abbildung auf P-384 ist in Anhang F.2 angegeben.

8.4. Suites für NIST P-521

Dieser Abschnitt definiert kryptographische Suites für die elliptische Kurve NIST P-521 [FIPS186-4].

P521_XMD:SHA-512_SSWU_RO_ ist wie folgt definiert:

  • Kodierungstyp: hash_to_curve (Abschnitt 3)
  • E: y^2 = x^3 + A * x + B, wobei
    • A = -3
    • B = 0x51953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00
  • p: 2^521 - 1
  • m: 1
  • k: 256
  • expand_message: expand_message_xmd (Abschnitt 5.3.1)
  • H: SHA-512
  • L: 98
  • f: Vereinfachte SWU-Methode (Abschnitt 6.6.2)
  • Z: -4
  • h_eff: 1

P521_XMD:SHA-512_SSWU_NU_ ist identisch mit P521_XMD:SHA-512_SSWU_RO_, außer dass der Kodierungstyp encode_to_curve ist (Abschnitt 3).

Eine beispielhafte optimierte Implementierung der vereinfachten SWU-Abbildung auf P-521 ist in Anhang F.2 angegeben.

8.5. Suites für curve25519 und edwards25519

Dieser Abschnitt definiert kryptographische Suites für curve25519 und edwards25519 [RFC7748]. Beachten Sie, dass diese kryptographischen Suites beim Hashen auf ristretto255 [ristretto255-decaf448] NICHT verwendet werden DÜRFEN. Siehe Anhang B für weitere Informationen zum Hashen auf diese Gruppe.

curve25519_XMD:SHA-512_ELL2_RO_ ist wie folgt definiert:

  • Kodierungstyp: hash_to_curve (Abschnitt 3)
  • E: K * t^2 = s^3 + J * s^2 + s, wobei
    • J = 486662
    • K = 1
  • p: 2^255 - 19
  • m: 1
  • k: 128
  • expand_message: expand_message_xmd (Abschnitt 5.3.1)
  • H: SHA-512
  • L: 48
  • f: Elligator 2-Methode (Abschnitt 6.7.1)
  • Z: 2
  • h_eff: 8

edwards25519_XMD:SHA-512_ELL2_RO_ ist identisch mit curve25519_XMD:SHA-512_ELL2_RO_, außer für die folgenden Parameter:

  • E: a * v^2 + w^2 = 1 + d * v^2 * w^2, wobei
    • a = -1
    • d = 0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3
  • f: Elligator 2-Methode für verdrehte Edwards (Abschnitt 6.8.2)
  • M: curve25519, definiert in [RFC7748], Abschnitt 4.1
  • rational_map: die birationalen Abbildungen, die in [RFC7748], Abschnitt 4.1 definiert sind

curve25519_XMD:SHA-512_ELL2_NU_ ist identisch mit curve25519_XMD:SHA-512_ELL2_RO_, außer dass der Kodierungstyp encode_to_curve ist (Abschnitt 3).

edwards25519_XMD:SHA-512_ELL2_NU_ ist identisch mit edwards25519_XMD:SHA-512_ELL2_RO_, außer dass der Kodierungstyp encode_to_curve ist (Abschnitt 3).

Beispielhafte optimierte Implementierungen der obigen Abbildungen sind in Anhang G.2.1 und Anhang G.2.2 angegeben.

8.6. Suites für curve448 und edwards448

Dieser Abschnitt definiert kryptographische Suites für curve448 und edwards448 [RFC7748]. Beachten Sie, dass diese kryptographischen Suites beim Hashen auf decaf448 [ristretto255-decaf448] NICHT verwendet werden DÜRFEN. Siehe Anhang C für weitere Informationen zum Hashen auf diese Gruppe.

curve448_XOF:SHAKE256_ELL2_RO_ ist wie folgt definiert:

  • Kodierungstyp: hash_to_curve (Abschnitt 3)
  • E: K * t^2 = s^3 + J * s^2 + s, wobei
    • J = 156326
    • K = 1
  • p: 2^448 - 2^224 - 1
  • m: 1
  • k: 224
  • expand_message: expand_message_xof (Abschnitt 5.3.2)
  • H: SHAKE256
  • L: 84
  • f: Elligator 2-Methode (Abschnitt 6.7.1)
  • Z: -1
  • h_eff: 4

edwards448_XOF:SHAKE256_ELL2_RO_ ist identisch mit curve448_XOF:SHAKE256_ELL2_RO_, außer für die folgenden Parameter:

  • E: a * v^2 + w^2 = 1 + d * v^2 * w^2, wobei
    • a = 1
    • d = -39081
  • f: Elligator 2-Methode für verdrehte Edwards (Abschnitt 6.8.2)
  • M: curve448, definiert in [RFC7748], Abschnitt 4.2
  • rational_map: die Isogenie-4-Abbildung, die in [RFC7748], Abschnitt 4.2 definiert ist

curve448_XOF:SHAKE256_ELL2_NU_ ist identisch mit curve448_XOF:SHAKE256_ELL2_RO_, außer dass der Kodierungstyp encode_to_curve ist (Abschnitt 3).

edwards448_XOF:SHAKE256_ELL2_NU_ ist identisch mit edwards448_XOF:SHAKE256_ELL2_RO_, außer dass der Kodierungstyp encode_to_curve ist (Abschnitt 3).

Beispielhafte optimierte Implementierungen der obigen Abbildungen sind in Anhang G.2.3 und Anhang G.2.4 angegeben.

8.7. Suites für secp256k1

Dieser Abschnitt definiert kryptographische Suites für die elliptische Kurve secp256k1 [SEC2].

secp256k1_XMD:SHA-256_SSWU_RO_ ist wie folgt definiert:

  • Kodierungstyp: hash_to_curve (Abschnitt 3)
  • E: y^2 = x^3 + 7
  • p: 2^256 - 2^32 - 2^9 - 2^8 - 2^7 - 2^6 - 2^4 - 1
  • m: 1
  • k: 128
  • expand_message: expand_message_xmd (Abschnitt 5.3.1)
  • H: SHA-256
  • L: 48
  • f: Vereinfachte SWU für AB == 0 (Abschnitt 6.6.3)
  • Z: -11
  • E': y'^2 = x'^3 + A' * x' + B', wobei
    • A': 0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533
    • B': 1771
  • iso_map: die Isogenie-3-Abbildung von E' nach E, die in Anhang E.1 angegeben ist
  • h_eff: 1

secp256k1_XMD:SHA-256_SSWU_NU_ ist identisch mit secp256k1_XMD:SHA-256_SSWU_RO_, außer dass der Kodierungstyp encode_to_curve ist (Abschnitt 3).

Eine beispielhafte optimierte Implementierung der vereinfachten SWU-Abbildung auf die zu secp256k1 isogene Kurve E' ist in Anhang F.2 angegeben.

8.8. Suites für BLS12-381

Dieser Abschnitt definiert kryptographische Suites für die Gruppen G1 und G2 der elliptischen Kurve BLS12-381 [BLS12-381].

8.8.1. BLS12-381 G1

BLS12381G1_XMD:SHA-256_SSWU_RO_ ist wie folgt definiert:

  • Kodierungstyp: hash_to_curve (Abschnitt 3)
  • E: y^2 = x^3 + 4
  • p: 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab
  • m: 1
  • k: 128
  • expand_message: expand_message_xmd (Abschnitt 5.3.1)
  • H: SHA-256
  • L: 64
  • f: Vereinfachte SWU für AB == 0 (Abschnitt 6.6.3)
  • Z: 11
  • E': y'^2 = x'^3 + A' * x' + B', wobei
    • A' = 0x144698a3b8e9433d693a02c96d4982b0ea985383ee66a8d8e8981aefd881ac98936f8da0e0f97f5cf428082d584c1d
    • B' = 0x12e2908d11688030018b12e8753eee3b2016c1f0f24f4070a0b9c14fcef35ef55a23215a316ceaa5d1cc48e98e172be0
  • iso_map: die Isogenie-11-Abbildung von E' nach E, die in Anhang E.2 angegeben ist
  • h_eff: 0xd201000000010001

BLS12381G1_XMD:SHA-256_SSWU_NU_ ist identisch mit BLS12381G1_XMD:SHA-256_SSWU_RO_, außer dass der Kodierungstyp encode_to_curve ist (Abschnitt 3).

Beachten Sie, dass die h_eff-Werte für diese Suites wegen ihrer Kompatibilität mit der schnellen Cofaktor-Löschmethode gewählt wurden, die von Scott beschrieben wurde ([WB19], Abschnitt 5).

Eine beispielhafte optimierte Implementierung der vereinfachten SWU-Abbildung auf die zu BLS12-381 G1 isogene Kurve E' ist in Anhang F.2 angegeben.

8.8.2. BLS12-381 G2

BLS12381G2_XMD:SHA-256_SSWU_RO_ ist wie folgt definiert:

  • Kodierungstyp: hash_to_curve (Abschnitt 3)
  • E: y^2 = x^3 + 4 * (1 + I)
  • der Basiskörper F ist GF(p^m), wobei
    • p: 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab
    • m: 2
    • (1, I) ist die Basis für F, wobei I^2 + 1 == 0 in F
  • k: 128
  • expand_message: expand_message_xmd (Abschnitt 5.3.1)
  • H: SHA-256
  • L: 64
  • f: Vereinfachte SWU für AB == 0 (Abschnitt 6.6.3)
  • Z: -(2 + I)
  • E': y'^2 = x'^3 + A' * x' + B', wobei
    • A' = 240 * I
    • B' = 1012 * (1 + I)
  • iso_map: die Isogenie-Abbildung von E' nach E, die in Anhang E.3 angegeben ist
  • h_eff: 0xbc69f08f2ee75b3584c6a0ea91b352888e2a8e9145ad7689986ff031508ffe1329c2f178731db956d82bf015d1212b02ec0ec69d7477c1ae954cbc06689f6a359894c0adebbf6b4e8020005aaa95551

BLS12381G2_XMD:SHA-256_SSWU_NU_ ist identisch mit BLS12381G2_XMD:SHA-256_SSWU_RO_, außer dass der Kodierungstyp encode_to_curve ist (Abschnitt 3).

Beachten Sie, dass die h_eff-Werte für diese Suites wegen ihrer Kompatibilität mit der schnellen Cofaktor-Löschmethode gewählt wurden, die von Budroni und Pintore beschrieben wurde ([BP17], Abschnitt 4.1) und in Anhang G.3 zusammengefasst sind.

Eine beispielhafte optimierte Implementierung der vereinfachten SWU-Abbildung auf die zu BLS12-381 G2 isogene Kurve E' ist in Anhang F.2 angegeben.

8.9. Definition einer neuen Hash-to-Curve-Suite

Für elliptische Kurven, die nicht anderweitig in Abschnitt 8 aufgeführt sind, kann eine neue Hash-to-Curve-Suite wie folgt definiert werden:

  1. E, F, p und m werden durch die elliptische Kurve und ihren Basiskörper bestimmt.

  2. k ist eine obere Schranke für das Zielsicherheitsniveau der Suite (Abschnitt 10.8). Eine vernünftige Wahl für k ist ceil(log2(r) / 2), wobei r die Ordnung der Untergruppe G der Kurve E ist (Abschnitt 2.1).

  3. Wählen Sie den Kodierungstyp, entweder hash_to_curve oder encode_to_curve (Abschnitt 3).

  4. Berechnen Sie L wie in Abschnitt 5 beschrieben.

  5. Wählen Sie eine expand_message-Variante aus Abschnitt 5.3 plus alle zugrundeliegenden kryptographischen Primitive (z.B. eine Hash-Funktion H).

  6. Wählen Sie eine Abbildung gemäß den Richtlinien in Abschnitt 6.1 und wählen Sie alle für diese Abbildung erforderlichen Parameter aus.

  7. Wählen Sie h_eff entweder als Cofaktor von E oder, falls eine schnelle Cofaktor-Löschmethode verwendet werden soll, einen für diese Methode geeigneten Wert, wie in Abschnitt 7 diskutiert.

  8. Konstruieren Sie eine Suite ID gemäß den Richtlinien in Abschnitt 8.10.

8.10. Namenskonventionen für Suite-IDs

Suite-IDs MÜSSEN wie folgt konstruiert werden:

CURVE_ID || "_" || HASH_ID || "_" || MAP_ID || "_" || ENC_VAR || "_"

Die Felder CURVE_ID, HASH_ID, MAP_ID und ENC_VAR sind ASCII-kodierte Zeichenketten von jeweils höchstens 64 Zeichen. Die Felder DÜRFEN nur ASCII-Zeichen zwischen 0x21 und 0x7E (einschließlich) enthalten, außer dass der Unterstrich (underscore, d.h. 0x5F) nicht erlaubt ist.

Wie oben angegeben, folgt auf jedes Feld (einschließlich des letzten) ein Unterstrich ("_", ASCII 0x5F). Dies hilft sicherzustellen, dass Suite-IDs präfixfrei sind. Suite-IDs MÜSSEN den abschließenden Unterstrich enthalten und DÜRFEN KEINE Zeichen nach dem abschließenden Unterstrich enthalten.

Die Suite-ID-Felder MÜSSEN wie folgt gewählt werden:

  • CURVE_ID: eine menschenlesbare Darstellung der elliptischen Zielkurve.

  • HASH_ID: eine menschenlesbare Darstellung der expand_message-Funktion und aller zugrundeliegenden Hash-Primitive, die in hash_to_field verwendet werden (Abschnitt 5). Dieses Feld MUSS wie folgt konstruiert werden:

    EXP_TAG || ":" || HASH_NAME

    EXP_TAG gibt die expand_message-Variante an:

    • "XMD" für expand_message_xmd (Abschnitt 5.3.1).
    • "XOF" für expand_message_xof (Abschnitt 5.3.2).

    HASH_NAME ist ein menschenlesbarer Name für das zugrundeliegende Hash-Primitiv. Als Beispiel:

    1. Für expand_message_xof (Abschnitt 5.3.2) mit SHAKE128 ist HASH_ID "XOF:SHAKE128".
    2. Für expand_message_xmd (Abschnitt 5.3.1) mit SHA3-256 ist HASH_ID "XMD:SHA3-256".

    Suites, die eine alternative hash_to_field-Funktion verwenden, die die Anforderungen von Abschnitt 5.1 erfüllt, MÜSSEN dies durch Hinzufügen eines Labels, das diese Funktion identifiziert, zum HASH_ID-Feld anzeigen, getrennt durch einen Doppelpunkt (":", ASCII 0x3A).

  • MAP_ID: eine menschenlesbare Darstellung der map_to_curve-Funktion, wie in Abschnitt 6 definiert. Diese sind wie folgt definiert:

    • "SVDW" für Shallue und van de Woestijne (Abschnitt 6.6.1).
    • "SSWU" für vereinfachte SWU (Abschnitte 6.6.2 und 6.6.3).
    • "ELL2" für Elligator 2 (Abschnitte 6.7.1 und 6.8.2).
  • ENC_VAR: eine Zeichenkette, die den Kodierungstyp und andere Informationen angibt. Die ersten beiden Zeichen dieser Zeichenkette geben an, ob die Suite eine hash_to_curve- oder encode_to_curve-Operation darstellt (Abschnitt 3), wie folgt:

    • Wenn ENC_VAR mit "RO" beginnt, verwendet die Suite hash_to_curve.
    • Wenn ENC_VAR mit "NU" beginnt, verwendet die Suite encode_to_curve.
    • ENC_VAR DARF NICHT mit einer anderen Zeichenkette beginnen.

    ENC_VAR KANN auch verwendet werden, um andere Informationen zu kodieren, die zur Identifizierung von Varianten verwendet werden, z.B. eine Versionsnummer. Die EMPFOHLENE Methode hierfür ist das Hinzufügen eines oder mehrerer durch Doppelpunkte getrennter Unterfelder. Zum Beispiel ist "RO:V02" ein geeigneter ENC_VAR-Wert für die zweite Version einer uniformen Kodierungs-Suite, während "RO:V02:FOO01:BAR17" verwendet werden könnte, um eine Variante dieser Suite anzuzeigen.