密码学_Diffine-Hellman秘钥交换 3

开始先问个问题:对称加密和非对称加密的对称指的是什么? 答案请看第四节               

 接着第二节继续来,现在有个黑客,他监视了Alice和Bob公钥交换的全过程并且想拿到这个共享秘钥K,因为 XA,XB是私有的,只对Alice和Bob自己知道,黑客并不知道,所有黑客看到的过程里只有 q, α, YA,YB, 也就是hacker只能通过这些信息来推算K,要想知道K, hacker必须通过离散对数计算,对于大素数求其离散对数是极其困难的,所以黑客没招!!

总之一句话: 本算法的安全性是建立在:求 素数的模 素数幂运算 相对容易,但计算离散对数很难. 

上面说了那么多,下面举个简单例子:

q=353, α=3, XA=97,XB=233, 求对应的公钥?

这题求公钥还是非常简单的,YA= α^XA mod q = 3 ^ 97 mod 353= 

YB =α^ XB mod q = 3^ 233 mod 353= 

上面两个式子怎么解? 用什么定理解呢?

YA=3 ^ 97 mod 353

3^2≡9  mod 353

3^4≡ 81 mod 353

3^8≡ 81*81 ≡207 mod 353

3^16≡ 207*207≡136 mod 353 

3^32≡ 236*236≡ 140 mod 353

3^64≡ 140*140≡ 19600≡ 185 mod 353

so then  YA= 3^97 = 3^(64+32+1)≡185*140*3 mod 353≡ 40 

同理求出 YB=248

这里想问一下: 上面计算过程用的什么定理?没错,是中国剩余定理(the Chinese Remainder Theorem- CRT)

现在他们各自的公钥都解出来了,接下来是交换公钥,各自拿到对方的公钥之后再计算出共享秘钥,

Alice拿到YB后计算: K=(YB)^XA mod 353= 248^97 mod 353 = 160

Bob拿到YA后计算:K=(YA)^XB mod 353=40^233 mod 353= 160

同样,上面两个计算也用CRT求解即可,

现在,我们黑客能获得 q:353, α=3, YA=40, YB=248

这个例子里我们用的数值都比较小,所有hacker想破解K的方法是什么?

即,K= YB^ XA mod 353= YA^ XB mod 353

这个等式里的未知数是XA,XB

只要知道其中一个就能立即知道共享秘钥,

但恰巧的是hacker可以通过 YA=α^XA mod 353=40 反解出 XA,也就是用穷举攻击求离散对数,

但真实情况下数值是很大的,不可行

综上,Diffine-Hellman秘钥交换算法被破解目前还是不可能的!

猜你喜欢

转载自blog.csdn.net/weixin_38134491/article/details/84329048