gnu.crypto.key.dh
Class DiffieHellmanKeyAgreement
- IKeyAgreementParty
public abstract class DiffieHellmanKeyAgreement
The basic version of the Diffie-Hellman key agreement is described in the
Handbook of Applied Cryptography [HAC] as follows:
- An appropriate prime p and generator g of Zp*
(2 <= g <= p-2) are selected and published.
- A and B each send the other one message over an open channel; as a
result, they both can then compute a shared secret key K which they can
use to protect their future communication.
- A chooses a random secret x, 1 <= x <= p-2, and sends B message
(1) which is g^x mod p.
- B chooses a random secret y, 1 <= y <= p-2, and sends A message
(2) which is g^y mod p.
- B receives message (1) and computes the shared key as K = (g^x)^y mod
p.
- A receives message (2) and computes the shared key as K = (g^y)^x mod
p.
RFC-2631 describes a
Static-Static Mode of operations with
Diffie-Hellman keypairs as follows:
"In Static-Static mode, both the sender and the recipient have a
static (and certified) key pair. Since the sender's and recipient's
keys are therefore the same for each message, ZZ will be the same for
each message. Thus, partyAInfo MUST be used (and different for each
message) in order to ensure that different messages use different
KEKs. Implementations MAY implement Static-Static mode."
Reference:
- Diffie-Hellman Key
Agreement Method
Eric Rescorla.
- [HAC]: Handbook of
Applied Cryptography.
CRC Press, Inc. ISBN 0-8493-8523-7, 1997
Menezes, A., van Oorschot, P. and S. Vanstone.
Version:
engineInit , engineProcessMessage , engineReset , engineSharedSecret , getSharedSecret , init , isComplete , name , nextRandomBytes , processMessage , reset |
KA_DIFFIE_HELLMAN_OWNER_PRIVATE_KEY
public static final String KA_DIFFIE_HELLMAN_OWNER_PRIVATE_KEY
SOURCE_OF_RANDOMNESS
public static final String SOURCE_OF_RANDOMNESS
ZZ
protected BigInteger ZZ
The shared secret key.
ownerKey
protected DHPrivateKey ownerKey
The key agreement party's private key.
DiffieHellmanKeyAgreement
protected DiffieHellmanKeyAgreement()
Copyright © 2001, 2002, 2003
Free Software Foundation,
Inc. All Rights Reserved.