由于参数生成可能是一个昂贵的过程,因此通常通常提前一次,然后在许多密钥交换中使用相同的参数集。是否可以在设置p和g之前对其进行修改?
如果使用openssl命令,则可以尝试asn1 ...
# cat dh.conf
asn1=SEQUENCE:dh_key
[dh_key]
p=INTEGER:0x97
g=INTEGER:5
# openssl dh -in newkey.der -inform der -text -check
DH Parameters: (7 bit)
prime: 97 (0x61)
generator: 5 (0x5)
p value is not a safe prime
-----BEGIN DH PARAMETERS-----
MAYCAWECAQU=
-----END DH PARAMETERS-----
上面实现了简单的dh数学,即
> Alice Bob wants to change key...
> Let p =97 and g=5
> and XA=36 and XB=58
> so YA=g^XA mod p = 50
> YB=g^XB mod p = 44
> thus Alice:K=(YB) ^XA mod p=75
> Bob: K=(YA) ^XB mod p=75