多项选择题

A.DH算法可以看做非对称密码学的第一个算法
B.DH算法不仅可以用于密钥计算,还可以用于对数据进行加解密
C.DH算法自身的安全性是基于素因子分解难题的
D.DH算法一般用于为对称密码算法协商共享密钥