commit f9ad03dcf8b27b42dd27d7fa9a9c1674089b9c98
parent 186e6c9ba1ec9a83472cdce6acd41c2f0215f1ae
Author: Mikolai Gütschow <mikolai.guetschow@tu-dresden.de>
Date: Mon, 8 Jul 2024 11:50:09 +0200
crypto primitives: add RSA-FDH
Diffstat:
2 files changed, 97 insertions(+), 47 deletions(-)
diff --git a/draft-guetschow-taler-protocol.md b/draft-guetschow-taler-protocol.md
@@ -198,7 +198,29 @@ do until OKM < N:
## Blind Signatures
-### FDH-RSA
+### RSA-FDH
+
+~~~
+RSA-FDH(msg, pubkey) -> fdh
+
+Inputs:
+ msg message
+ pubkey RSA public key consisting of modulus N and public exponent e
+
+Output:
+ fdh full-domain hash of msg over pubkey.N
+~~~
+
+`fdh` is calculated based on HKDF-Mod from {{hkdf-mod}} as follows:
+
+~~~
+info = 0x5253412d46444120465470735721 ("RSA-FDA FTpsW!" encoded as UTF-8)
+salt = length(pubkey.N) | length(pubkey.e) | pubkey.N | pubkey.e
+fdh = HKDF-Mod(pubkey.N, salt, msg, info)
+~~~
+
+The resulting `fdh` can be used to test against a malicious RSA pubkey
+by verifying that the greatest common denominator (gcd) of `fdh` and `pubkey.N` is 1.
### Clause-Schnorr
diff --git a/draft-guetschow-taler-protocol.xml b/draft-guetschow-taler-protocol.xml
@@ -221,7 +221,29 @@ do until OKM < N:
</section>
<section anchor="blind-signatures"><name>Blind Signatures</name>
-<section anchor="fdh-rsa"><name>FDH-RSA</name>
+<section anchor="rsa-fdh"><name>RSA-FDH</name>
+
+<figure><artwork><![CDATA[
+RSA-FDH(msg, pubkey) -> fdh
+
+Inputs:
+ msg message
+ pubkey RSA public key consisting of modulus N and public exponent e
+
+Output:
+ fdh full-domain hash of msg over pubkey.N
+]]></artwork></figure>
+
+<t><spanx style="verb">fdh</spanx> is calculated based on HKDF-Mod from <xref target="hkdf-mod"/> as follows:</t>
+
+<figure><artwork><![CDATA[
+info = 0x5253412d46444120465470735721 ("RSA-FDA FTpsW!" encoded as UTF-8)
+salt = length(pubkey.N) | length(pubkey.e) | pubkey.N | pubkey.e
+fdh = HKDF-Mod(pubkey.N, salt, msg, info)
+]]></artwork></figure>
+
+<t>The resulting <spanx style="verb">fdh</spanx> can be used to test against a malicious RSA pubkey
+by verifying that the greatest common denominator (gcd) of <spanx style="verb">fdh</spanx> and <spanx style="verb">pubkey.N</spanx> is 1.</t>
</section>
<section anchor="clause-schnorr"><name>Clause-Schnorr</name>
@@ -330,7 +352,7 @@ do until OKM < N:
-<?line 217?>
+<?line 239?>
<section anchor="change-log"><name>Change log</name>
@@ -348,50 +370,56 @@ Education and Research (BMBF) within the project Concrete Contracts.</t>
</back>
<!-- ##markdown-source:
-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
-ibNf8oOrzEjcfwCjuSQQExIAAA==
+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
-->