首页 > 解决方案 > 我想在 openssl 中为 diffiehellman 更改 P 和 G 的值

问题描述

由于参数生成可能是一个昂贵的过程,这通常提前完成一次,然后在许多密钥交换中使用相同的参数集。有没有办法在预先设置之前修改 p 和 g ?

标签: iosopensslcryptographydiffie-hellmanpublic-key-exchange

解决方案


如果你使用 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

推荐阅读