lsd0009

LSD0009: The GNU Taler Protocol
Log | Files | Refs | README

commit 9479b663fda654482588626d3fe10c1f8415909c
parent f1fd4a6c58e4d2bc7696bf9be64870ba09f1aec7
Author: Mikolai Gütschow <mikolai.guetschow@tu-dresden.de>
Date:   Wed,  8 Apr 2026 17:01:15 +0200

crypto: add description for ECDH

Diffstat:
Mdraft-guetschow-taler-protocol.md | 92++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
Mdraft-guetschow-taler-protocol.xml | 533+++++++++++++++++++++++++++++++++++++++++++++----------------------------------
2 files changed, 391 insertions(+), 234 deletions(-)

diff --git a/draft-guetschow-taler-protocol.md b/draft-guetschow-taler-protocol.md @@ -34,6 +34,7 @@ normative: RFC2104: RFC5869: RFC6234: + RFC7748: RFC8032: HKDF: DOI.10.1007/978-3-642-14623-7_34 SHS: DOI.10.6028/NIST.FIPS.180-4 @@ -280,7 +281,84 @@ Output: ## Key Agreement +### X25519 +Taler uses Elliptic Curve Diffie-Hellman (ECDH) on curve25519 as defined in Section 6.1 of [RFC7748], +but reuses Ed25519 keypairs for one side of the agreement instead of random bytes. +Depending on whether the private or public part is from Ed25519, two different functions are used. + +{::comment} +see https://libsodium.gitbook.io/doc/advanced/scalar_multiplication +see https://libsodium.gitbook.io/doc/advanced/ed25519-curve25519 +{:/} + +~~~ +ECDH-Ed25519-Priv(priv, pub) -> shared + +Input: + priv private Ed25519 key + pub public X25519 key + +Output: + shared shared secret based on the given keys +~~~ + +`shared` is calculated as follows, using the function X25519 defined in Section 5 of [RFC7748]: + +~~~ +priv' = SHA-512-256(priv) +// todo: missing bit clamping from https://github.com/jedisct1/libsodium/blob/master/src/libsodium/crypto_sign/ed25519/ref10/keypair.c#L71 +shared' = X25519(priv', pub) +shared = SHA-512(shared') +~~~ + +{::comment} +see GNUNET_CRYPTO_eddsa_ecdh +{:/} + +~~~ +ECDH-Ed25519-Pub(priv, pub) -> shared + +Input: + priv private X25519 key + pub public Ed25519 key + +Output: + shared shared secret based on the given keys +~~~ + +`shared` is calculated as follows, using the function X25519 defined in Section 5 of [RFC7748], +and `Convert-Point-Ed25519-Curve25519(p)` which implements the birational map of Section 4.1 of [RFC7748]: + +~~~ +pub' = Convert-Point-Ed25519-Curve25519(pub) +shared' = X25519(priv, pub') +shared = SHA-512(shared') + +{::comment} +see GNUNET_CRYPTO_eddsa_ecdh +{:/} +~~~ + +~~~ +ECDH-GetPub(priv) -> pub + +Input: + priv private X25519 key + +Output: + pub public X25519 key +~~~ + +`pub` is calculated according to Section 6.1 of [RFC7748]: + +~~~ +pub = X25519(priv, 9) +~~~ + +{::comment} +see GNUNET_CRYPTO_ecdhe_key_get_public +{:/} ## Blind Signatures @@ -843,7 +921,7 @@ The sum of the refresh fee of `denom` and the new denominations' values and with must be smaller or equal to the residual value of the old `coin`. The private key of each new coin candidate `⟨coinₖᵢ.priv⟩` is transitively derived from the old coin's private key `coin.priv` -via a secret `⟨sharedₖᵢ⟩` according to `Refresh-Derive`. +via a 512-bit secret `⟨sharedₖᵢ⟩` according to `Refresh-Derive`. The secret is regeneratable with the knowledge of `coin.priv` via the link protocol (cf. {{link}}). The derivation ensures that ownership of coins (knowledge of the private key) is correctly transferred, and thereby that value transfer among untrusted parties can only happen via payment and deposit, not via refresh. @@ -908,8 +986,6 @@ Knows coin | where (for RSA, without age-restriction) -// todo: document ECDH-EdDSA(priv, pub) (returns hash512) - {::comment} // see TALER_EXCHANGE_get_melt_data ⟨batch_seedₖ⟩ // see TALER_refresh_expand_seed_to_kappa_batch_seeds @@ -930,8 +1006,8 @@ refresh_seed = random(256) for k in 0..κ: ⟨transferₖᵢ.priv⟩ = HKDF("refresh-transfer-private-keys", batch_seedₖ, "", n*32) for i in 0..n: - transferₖᵢ.pub = Ed25519-GetPub(transferₖᵢ.priv) - sharedₖᵢ = ECDH-EdDSA(transferₖᵢ.priv, coin.pub) + transferₖᵢ.pub = ECDH-GetPub(transferₖᵢ.priv) + sharedₖᵢ = ECDH-Ed25519-Pub(transferₖᵢ.priv, coin.pub) (coinₖᵢ, blind_secretₖᵢ, planchetₖᵢ, h_planchetₖᵢ) = Refresh-Derive(sharedₖᵢ, denomᵢ) h_planchetsₖ = SHA-512( ⟨h_planchetₖᵢ⟩ ) value = coin.denom.fee_refresh + Sum ⟨denomᵢ.value⟩ + Sum ⟨denomᵢ.fee_withdraw⟩ @@ -1027,8 +1103,8 @@ Check not done // todo: sure? for k in 0..κ and k != ɣ: ⟨transferₖᵢ.priv⟩ = HKDF("refresh-transfer-private-keys", batch_seedₖ, "", n*32) for i in 0..n: - transferₖᵢ.pub = Ed25519-GetPub(transferₖᵢ.priv) - sharedₖᵢ = ECDH-EdDSA(transferₖᵢ.priv, coin.pub) + transferₖᵢ.pub = ECDH-GetPub(transferₖᵢ.priv) + sharedₖᵢ = ECDH-Ed25519-Pub(transferₖᵢ.priv, coin.pub) (_, _, _, h_planchetₖᵢ) = Refresh-Derive(sharedₖᵢ, denomᵢ) h_planchetsₖ = SHA-512( ⟨h_planchetₖᵢ⟩ ) value = coin.denom.fee_refresh + Sum ⟨denomᵢ.value⟩ + Sum ⟨denomᵢ.fee_withdraw⟩ @@ -1128,7 +1204,7 @@ for i in 0..n: denomᵢ = Lookup by h_denomᵢ for k in 0..κ: for i in 0..n: - sharedₖᵢ = ECDH-EdDSA(coin.priv, transferₖᵢ.pub) + sharedₖᵢ = ECDH-Ed25519-Priv(coin.priv, transferₖᵢ.pub) (coinₖᵢ, blind_secretₖᵢ _, h_planchetₖᵢ) = Refresh-Derive(sharedₖᵢ, denomᵢ) h_planchetsₖ = SHA-512( ⟨h_planchetₖᵢ⟩ ) value = coin.denom.fee_refresh + Sum ⟨denomᵢ.value⟩ + Sum ⟨denomᵢ.fee_withdraw⟩ diff --git a/draft-guetschow-taler-protocol.xml b/draft-guetschow-taler-protocol.xml @@ -31,13 +31,13 @@ <keyword>ecash</keyword> <keyword>payments</keyword> <abstract> - <?line 44?> + <?line 45?> <t>[ TBW ]</t> </abstract> </front> <middle> - <?line 48?> + <?line 49?> <section anchor="introduction"> <name>Introduction</name> @@ -284,6 +284,63 @@ Output: </section> <section anchor="key-agreement"> <name>Key Agreement</name> + <section anchor="x25519"> + <name>X25519</name> + <t>Taler uses Elliptic Curve Diffie-Hellman (ECDH) on curve25519 as defined in Section 6.1 of <xref target="RFC7748"/>, +but reuses Ed25519 keypairs for one side of the agreement instead of random bytes. +Depending on whether the private or public part is from Ed25519, two different functions are used.</t> + <artwork><![CDATA[ +ECDH-Ed25519-Priv(priv, pub) -> shared + +Input: + priv private Ed25519 key + pub public X25519 key + +Output: + shared shared secret based on the given keys +]]></artwork> + <t><tt>shared</tt> is calculated as follows, using the function X25519 defined in Section 5 of <xref target="RFC7748"/>:</t> + <artwork><![CDATA[ +priv' = SHA-512-256(priv) +// todo: missing bit clamping from https://github.com/jedisct1/libsodium/blob/master/src/libsodium/crypto_sign/ed25519/ref10/keypair.c#L71 +shared' = X25519(priv', pub) +shared = SHA-512(shared') +]]></artwork> + <artwork><![CDATA[ +ECDH-Ed25519-Pub(priv, pub) -> shared + +Input: + priv private X25519 key + pub public Ed25519 key + +Output: + shared shared secret based on the given keys +]]></artwork> + <t><tt>shared</tt> is calculated as follows, using the function X25519 defined in Section 5 of <xref target="RFC7748"/>, +and <tt>Convert-Point-Ed25519-Curve25519(p)</tt> which implements the birational map of Section 4.1 of <xref target="RFC7748"/>:</t> + <artwork><![CDATA[ +pub' = Convert-Point-Ed25519-Curve25519(pub) +shared' = X25519(priv, pub') +shared = SHA-512(shared') + +{::comment} +see GNUNET_CRYPTO_eddsa_ecdh +{:/} +]]></artwork> + <artwork><![CDATA[ +ECDH-GetPub(priv) -> pub + +Input: + priv private X25519 key + +Output: + pub public X25519 key +]]></artwork> + <t><tt>pub</tt> is calculated according to Section 6.1 of <xref target="RFC7748"/>:</t> + <artwork><![CDATA[ +pub = X25519(priv, 9) +]]></artwork> + </section> </section> <section anchor="blind-signatures"> <name>Blind Signatures</name> @@ -816,7 +873,7 @@ i.e. where <tt>contribution &lt;= denom.value</tt></t> <t>The sum of the refresh fee of <tt>denom</tt> and the new denominations' values and withdrawal fees (defined by the exchange) must be smaller or equal to the residual value of the old <tt>coin</tt>.</t> <t>The private key of each new coin candidate <tt>⟨coinₖᵢ.priv⟩</tt> is transitively derived from the old coin's private key <tt>coin.priv</tt> -via a secret <tt>⟨sharedₖᵢ⟩</tt> according to <tt>Refresh-Derive</tt>. +via a 512-bit secret <tt>⟨sharedₖᵢ⟩</tt> according to <tt>Refresh-Derive</tt>. The secret is regeneratable with the knowledge of <tt>coin.priv</tt> via the link protocol (cf. <xref target="link"/>). The derivation ensures that ownership of coins (knowledge of the private key) is correctly transferred, and thereby that value transfer among untrusted parties can only happen via payment and deposit, not via refresh.</t> @@ -879,7 +936,6 @@ Knows coin | | | ]]></artwork> <t>where (for RSA, without age-restriction)</t> - <t>// todo: document ECDH-EdDSA(priv, pub) (returns hash512)</t> <artwork><![CDATA[ (W1) coin melting (wallet) @@ -888,8 +944,8 @@ refresh_seed = random(256) for k in 0..κ: ⟨transferₖᵢ.priv⟩ = HKDF("refresh-transfer-private-keys", batch_seedₖ, "", n*32) for i in 0..n: - transferₖᵢ.pub = Ed25519-GetPub(transferₖᵢ.priv) - sharedₖᵢ = ECDH-EdDSA(transferₖᵢ.priv, coin.pub) + transferₖᵢ.pub = ECDH-GetPub(transferₖᵢ.priv) + sharedₖᵢ = ECDH-Ed25519-Pub(transferₖᵢ.priv, coin.pub) (coinₖᵢ, blind_secretₖᵢ, planchetₖᵢ, h_planchetₖᵢ) = Refresh-Derive(sharedₖᵢ, denomᵢ) h_planchetsₖ = SHA-512( ⟨h_planchetₖᵢ⟩ ) value = coin.denom.fee_refresh + Sum ⟨denomᵢ.value⟩ + Sum ⟨denomᵢ.fee_withdraw⟩ @@ -960,8 +1016,8 @@ Check not done // todo: sure? for k in 0..κ and k != ɣ: ⟨transferₖᵢ.priv⟩ = HKDF("refresh-transfer-private-keys", batch_seedₖ, "", n*32) for i in 0..n: - transferₖᵢ.pub = Ed25519-GetPub(transferₖᵢ.priv) - sharedₖᵢ = ECDH-EdDSA(transferₖᵢ.priv, coin.pub) + transferₖᵢ.pub = ECDH-GetPub(transferₖᵢ.priv) + sharedₖᵢ = ECDH-Ed25519-Pub(transferₖᵢ.priv, coin.pub) (_, _, _, h_planchetₖᵢ) = Refresh-Derive(sharedₖᵢ, denomᵢ) h_planchetsₖ = SHA-512( ⟨h_planchetₖᵢ⟩ ) value = coin.denom.fee_refresh + Sum ⟨denomᵢ.value⟩ + Sum ⟨denomᵢ.fee_withdraw⟩ @@ -1031,7 +1087,7 @@ for i in 0..n: denomᵢ = Lookup by h_denomᵢ for k in 0..κ: for i in 0..n: - sharedₖᵢ = ECDH-EdDSA(coin.priv, transferₖᵢ.pub) + sharedₖᵢ = ECDH-Ed25519-Priv(coin.priv, transferₖᵢ.pub) (coinₖᵢ, blind_secretₖᵢ _, h_planchetₖᵢ) = Refresh-Derive(sharedₖᵢ, denomᵢ) h_planchetsₖ = SHA-512( ⟨h_planchetₖᵢ⟩ ) value = coin.denom.fee_refresh + Sum ⟨denomᵢ.value⟩ + Sum ⟨denomᵢ.fee_withdraw⟩ @@ -1130,6 +1186,20 @@ if ⟨blind_sigᵢ⟩ returned: <seriesInfo name="RFC" value="6234"/> <seriesInfo name="DOI" value="10.17487/RFC6234"/> </reference> + <reference anchor="RFC7748"> + <front> + <title>Elliptic Curves for Security</title> + <author fullname="A. Langley" initials="A." surname="Langley"/> + <author fullname="M. Hamburg" initials="M." surname="Hamburg"/> + <author fullname="S. Turner" initials="S." surname="Turner"/> + <date month="January" year="2016"/> + <abstract> + <t>This memo specifies two elliptic curves over prime fields that offer a high level of practical security in cryptographic applications, including Transport Layer Security (TLS). These curves are intended to operate at the ~128-bit and ~224-bit security level, respectively, and are generated deterministically based on a list of required properties.</t> + </abstract> + </front> + <seriesInfo name="RFC" value="7748"/> + <seriesInfo name="DOI" value="10.17487/RFC7748"/> + </reference> <reference anchor="RFC8032"> <front> <title>Edwards-Curve Digital Signature Algorithm (EdDSA)</title> @@ -1168,7 +1238,7 @@ if ⟨blind_sigᵢ⟩ returned: <refcontent>National Institute of Standards and Technology (U.S.)</refcontent> </reference> </references> - <?line 1174?> + <?line 1250?> <section anchor="change-log"> <name>Change log</name> @@ -1181,222 +1251,233 @@ Education and Research (BMBF) within the project Concrete Contracts.</t> </section> </back> <!-- ##markdown-source: -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 -cE3IWxI/UIY+6zj/Bxn0s+G/lwAA +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 +9XnH+f9L/aigpJ4AAA== -->