日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

java dh算法_dh密钥交换算法java

發(fā)布時(shí)間:2025/3/15 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java dh算法_dh密钥交换算法java 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

dh密鑰交換算法java

迪菲-赫爾曼密鑰交換(Diffie–Hellman key exchange,簡(jiǎn)稱“D–H”) 是一種安全協(xié)議。

它可以讓雙方在完全沒有對(duì)方任何預(yù)先信息的條件下通過(guò)不安全信道建立起一個(gè)密鑰。這個(gè)密鑰可以在后續(xù)的通訊中作為對(duì)稱密鑰來(lái)加密通訊內(nèi)容。

(1)、算法描述

離散對(duì)數(shù)的概念:

原根:如果a是素?cái)?shù)p的一個(gè)原根,那么數(shù)值:

amodp,a^2 modp,…,a^(p-1) modp

是各不相同的整數(shù),且以某種排列方式組成了從1到p-1的所有整數(shù)。

離散對(duì)數(shù):如果對(duì)于一個(gè)整數(shù)b和素?cái)?shù)p的一個(gè)原根a,可以找到一個(gè)唯一的指數(shù) i,使得:

b =(a的i次方) modp?????????????? 其中0≦i ≦p-1

那么指數(shù)i稱為b的以a為基數(shù)的模p的離散對(duì)數(shù)。

Diffie-Hellman 算法的有效性依賴于計(jì)算離散對(duì)數(shù)的難度,其含義是:當(dāng)已知大素?cái)?shù)p和它的一個(gè)原根a后,對(duì)給定的 b,要計(jì)算 i ,被認(rèn)為是很困難的,而給定 i 計(jì)算b 卻相對(duì)容易。

Diffie-Hellman算法:

假如用戶A和用戶B希望交換一個(gè)密鑰。

取素?cái)?shù)p和整數(shù)a,a是p的一個(gè)原根,公開a和p。

A選擇隨機(jī)數(shù)XA

B選擇隨機(jī)數(shù)XB

每一方都將X保密而將Y公開讓另一方得到。

A計(jì)算密鑰的方式是:K=(YB) ^XA modp

B計(jì)算密鑰的方式是:K=(YA) ^XB modp

證明:

(YB)^ XA mod p = (a^XB modp)^ XA mod p

= (a^XB)^ XA mod p = (a^XA) ^XB mod p??? (

=(a^XA modp)^ XB mod p= (YA) ^XB mod p

由于XA和XB是保密的,而第三方只有p、a、YB、YA可以利用,只有通過(guò)取離散對(duì)數(shù)來(lái)確定密鑰,但對(duì)于大的素?cái)?shù)p,計(jì)算離散對(duì)數(shù)是十分困難的。

例子:

假如用戶Alice和用戶Bob希望交換一個(gè)密鑰。

取一個(gè)素?cái)?shù)p =97和97的一個(gè)原根a=5。

Alice和Bob分別選擇秘密密鑰XA=36和XB=58,并計(jì)算各自的公開密鑰:

YA=a^XA mod p=5^36 mod 97=50

YB=a^XB mod p=5^58 mod 97=44

Alice和Bob交換了公開密鑰之后,計(jì)算共享密鑰如下:

Alice:K=(YB) ^XA mod p=44^36 mod 97=75

Bob:K=(YA) ^XB mod p=50^58 mod 97=75

(2)、安全性

當(dāng)然,為了使這個(gè)例子變得安全,必須使用非常大的XA, XB 以及p, 否則可以實(shí)驗(yàn)所有的可能取值。(總共有最多97個(gè)這樣的值, 就算XA和XB很大也無(wú)濟(jì)于事)。

如果 p 是一個(gè)至少 300 位的質(zhì)數(shù),并且XA和XB至少有100位長(zhǎng), 那么即使使用全人類所有的計(jì)算資源和當(dāng)今最好的算法也不可能從a, p和a^(XA*XB) mod p 中計(jì)算出 XA*XB。

這個(gè)問(wèn)題就是著名的離散對(duì)數(shù)問(wèn)題。注意g則不需要很大, 并且在一般的實(shí)踐中通常是2或者5。

在最初的描述中,迪菲-赫爾曼密鑰交換本身并沒有提供通訊雙方的身份驗(yàn)證服務(wù),因此它很容易受到中間人攻擊。

一個(gè)中間人在信道的中央進(jìn)行兩次迪菲-赫爾曼密鑰交換,一次和Alice另一次和Bob,就能夠成功的向Alice假裝自己是Bob,反之亦然。

而攻擊者可以解密(讀取和存儲(chǔ))任何一個(gè)人的信息并重新加密信息,然后傳遞給另一個(gè)人。因此通常都需要一個(gè)能夠驗(yàn)證通訊雙方身份的機(jī)制來(lái)防止這類攻擊。

有很多種安全身份驗(yàn)證解決方案使用到了迪菲-赫爾曼密鑰交換。例如當(dāng)Alice和Bob共有一個(gè)公鑰基礎(chǔ)設(shè)施時(shí),他們可以將他們的返回密鑰進(jìn)行簽名。

與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的java dh算法_dh密钥交换算法java的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。