commit 4050c40c05715ec9d326aeadf5c52fbc89cfc751
parent e2a32696c8959fdb36698752f4460a67657a75b2
Author: Jared Tobin <jared@jtobin.io>
Date:   Sat, 26 Aug 2023 18:53:47 -0230
Couple of text patches.
Diffstat:
1 file changed, 9 insertions(+), 10 deletions(-)
diff --git a/docs/s6.md b/docs/s6.md
@@ -121,11 +121,10 @@ and now the forgery, produced of course without the secret key:
 #### 6.43
 
 Parameter generation for DSA as detailed in
-[FIPS.186-4](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf#
-page=40) seems to be particularly annoying and unrewarding to implement,
-so I didn't bother with it. The rest of the protocol is pretty standard
-fare; Cryptopals.DSA implements 'keygen', 'sign', and 'verify'
-functionality.
+[FIPS.186-4](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf#page=40)
+seems to be particularly annoying and unrewarding to implement, so I
+didn't bother with it. The rest of the protocol is pretty standard fare;
+Cryptopals.DSA implements 'keygen', 'sign', and 'verify' functionality.
 
 As for the attack here, if one knows the subkey/nonce he can trivially
 recover the private key:
@@ -201,9 +200,8 @@ As an illustration, if badParams contains g = 0, then:
 The case is much the same for g = p + 1, since r = 1 for every signature
 produced. Any public key generated with these parameters will equal 1,
 but the "magic signature" will work for DSA pubkeys generated with other
-'g' parameters, so long as they use g = p + 1 when actually signing and
-verifying. For the magicsig and arbitrary k, and arbitrary pubkey y, we
-have that:
+'g' parameters, so long as they use g = p + 1 when actually verifying.
+For the magicsig and arbitrary k, and arbitrary pubkey y, we have that:
 
     r = y^k mod p                 (mod q)
 
@@ -226,7 +224,7 @@ and then for any u, we have:
        = y^k mod p                (mod q)
        = r
 
-so that every signature will verify by construction.
+so that the signature will verify for every message by construction.
 
 An illustration. First generate a keypair with normal, God-fearing
 parameters:
@@ -244,7 +242,7 @@ Here's the magic signature-making function:
         in  Sig r s
 
 Here's a magic signature, again created with good parameters. It looks
-convincing enough:
+innocuous enough:
 
     > let mag = magicsig defaultParams (pub per)
     > mag
@@ -261,4 +259,5 @@ parameters in which g = p + 1:
     > unsafeVerify otherBadParams (pub per) "Goodbye, world" mag
     True
 
+Bad group!