RFC Errata
RFC 2631, "Diffie-Hellman Key Agreement Method", June 1999
Source of RFC: smime (sec)
Errata ID: 5954
Status: Held for Document Update
Type: Technical
Publication Format(s) : TEXT
Reported By: Paul Janson
Date Reported: 2020-01-02
Held for Document Update by: Benjamin Kaduk
Date Held: 2020-01-13
Section 2.1.5. says:
1. Verify that y lies within the interval [2,p-1]. If it does not, the key is invalid. 2. Compute y^q mod p. If the result == 1, the key is valid. Otherwise the key is invalid.
It should say:
1. Verify that y lies within the interval [2,p-1]. If it does not, the key is invalid. 2. Compute y^q mod p. If the result == 1, the key is valid. Otherwise the key is invalid. 3. Verify that y does not match g.
Notes:
Validating that (g == received y) needs to be an additional exclusion to the valid range [2,p-1]. If party 'a' accepts received public key 'yb' matching 'g', then ZZ matches public key 'ya'. i.e. if yb = 2, then xb = 1, therefore ZZ = ya^1 = ya