文件名称:VB非对称加解密:用vbRichClient的cCrypt演示diffie-hellman
文件大小:4.43MB
文件格式:RAR
更新时间:2019-05-04 19:29:54
非对称加密 RSA Diffie Hellman
AB双方交换共享码流程说明:【双方使用一样的素数和原数,最终生成的共享码是完全一致的。】 A方: 用 素数prime,原数base,A任意自定的整数私锁 -> 生成公锁A (把公锁A发给B) B方: 用 素数prime,原数base,B任意自定的整数私锁 -> 生成公锁b (把公锁b发给A) 对应cCrypt中的:属性DiffieHellmanPrime,属性DiffieHellmanBase,属性DiffieHellmanPrivate -> DiffieHellmanCreatePublicKey() A方: 用 素数prime,原来自定的整数私锁A,公锁b-> 生成共享码 B方: 用 素数prime,原来自定的整数私锁b,公锁A-> 生成共享码 对应cCrypt中的:属性DiffieHellmanPrime,属性DiffieHellmanPrivate,属性DiffieHellmanPublic -> DiffieHellmanCreateSharedSecret() 说明:cCrypt中的GenPrime()用于随机生成一个极大的素数,CheckPrime()用于检查该数是否素数。 --------------------------------------------------------------------------------------------------------------------------------------- diffie-hellman算法原理(原理其实很简单,但大素数、原数及高次元方程比较难解^_^): 例子:设密钥交换基于素数P=97 和 97的一个原根G = 5 A和B分别随意选择私有密钥XA=36 和 XB=58。 每人计算其公开钥:YA=5^36=50 mod 97 :YB=5^58=44 mod 97 取了公开钥之后,都把公锁发给对方 再各自用以下公式计算得出双方共享数: Ka = (YB)^XA mod 97 = 44^36 = 75 mod 97 Kb = (YA)^XB mod 97 = 50^58 = 75 mod 97 如上所示,在双方不改变用于生成公锁的私锁值情况下(且素数一致),双方计算得到的shareKey是一样的!
【文件预览】:
RegisterRC5inPlace.vbs
RegisterVBWidgetsInPlace.vbs
DirectCOM.dll
vbRichClient5.dll
_Library-Licenses.txt
vb_cairo_sqlite.dll
_Version-History.txt