1. 程式人生 > >Https核心加密演算法-Diffie–Hellman key exchange

Https核心加密演算法-Diffie–Hellman key exchange

Diffie–Hellman key exchange

演算法描述:

公鑰演算法的特點就是很容易由運算元計算出結果,而基本上不可能作逆向運算。這也就是使用了兩個質數的所要達到的目的。

現在假設Alice和Bob分別是參與DH式金鑰交換過程的兩方,他們一開始會商議確定一個小質數(一般是2,3,5這樣的小數字)和一個大質數(有300位以上)作為加密的原始資訊。小質數和大質數都可以直接傳輸,不必擔心交換過程中的不安全。

需要明白的是,Alice和Bob各自都持有著自己的私鑰(100多位的數),而且也永遠不應該共享自己的私鑰。不光是兩人之間,也包括其他不相關的人都不應該擁有這兩組私鑰。網路中傳輸的是他們的私鑰、小質數和大質數混合運算得到的結果。更確切來說,就是:

  • Alice的結果 = (小質數Alice的密碼)% 大質數
  • Bob的結果 = (小質數Bob的密碼)% 大質數
  • (“%” 符號表示取模運算,即取得除法運算的餘數)

所以Alice使用大質數和小質數加上自己的私鑰運算,就會得出結果,而Bob做同樣的計算,也能得到相同的結果。當他們接收到對方的運算結果時,他們可以由數學計算匯出會話中所要傳輸的資訊,也就是說:

Alice計算的是

  • (Bob的結果Alice的密碼)% 大質數

而Bob則計算

  • (Alice的結果Bob的密碼)% 大質數

Alice和Bob得出來的數字相同,這個數字也就是會話中所要共享的密碼。請注意,雙方都沒有向對方傳輸各自的私鑰,而連線過程中也沒有明文傳遞保密資訊。這一點真是太棒了!

例項:

Alice and Bob agree to use a prime number p=23 and base g=5. 
Alice chooses a secret integer a=6, then sends Bob A = ga mod p 
A = 56 mod 23 
A = 15,625 mod 23 
A = 8 
Bob chooses a secret integer b=15, then sends Alice B = gb mod p 
B = 515 mod 23 
B = 30,517,578,125 mod 23 
B = 19 
Alice computes s = B a mod p 
s = 196 mod 23 
s = 47,045,881 mod 23 
s = 2 
Bob computes s = A b mod p 
s = 815 mod 23 
s = 35,184,372,088,832 mod 23 
s = 2 
Alice and Bob now share a secret: s = 2. This is because 6*15 is the same as 15*6. So somebody who had known both these private integers might also have calculated s as follows: 
s = 56*15 mod 23 
s = 515*6 mod 23 
s = 590 mod 23 
s = 807,793,566,946,316,088,741,610,050,849,573,099,185,363,389,551,639,556,884,765,625 mod 23 
s = 2 

相關推薦

Https核心加密演算法-DiffieHellman key exchange

Diffie–Hellman key exchange 演算法描述: 公鑰演算法的特點就是很容易由運算元計算出結果,而基本上不可能作逆向運算。這也就是使用了兩個質數的所要達到的目的。 現在假設Alice和Bob分別是參與DH式金鑰交換過程的兩方,他們一開始會商議

Diffie-Hellman Key Exchange(a part of ElGamal)

除了RSA之外 ,Other Public-key cryptosystems are : ElGamal cryptographic(Diffie-Hellman key exchange) Elliptic curve cryptography(Elliptic c

【IERG4130學習筆記】Diffie-Hellman Key Exchange

/* Written by Edward * BEng, CSE, Faculty of Engineering, CUHK * 本人本科小菜鳥一個,如有遺漏,歡迎指出,互相學習,謝謝 */ Diffie-Hellman Key exchange可以說是Public Key

兩種公鑰加密演算法——Merkle-Hellman揹包、RSA

今天看了一些加密體制,很厲害,佩服之餘順便總結下公鑰(對稱金鑰很多啊,歷史比較有名的有DES、AES、RC系列...水平不夠說不清楚,所以不寫了)。自己以後也要看,所以儘量通俗易懂(其實是不怎

ssh祕鑰交換詳解與實現 diffie-hellman-group-exchange-sha

    ssh的DH祕鑰交換是一套複合幾種演算法的祕鑰交換演算法。在RFC4419中稱為diffie-hellman-groupX-exchange-shaX 的演算法(也有另一種單純的 rsaX-shaX 交換演算法)。本文就以diffie-hellman-group-

問題:no matching key exchange method found. Their offer: diffie-hellman-group1-sha1

重新 hms mage clone clas 分享 文件 bst man 在git clone 項目的時候, 竟然報錯了:no matching key exchange method found. Their offer: diffie-hellman-group1-sh

JAVA加密解密之DH(Diffie-Hellman演算法

DH演算法簡介 Diffie-Hellman演算法(D-H演算法),金鑰一致協議。是由公開金鑰密碼體制的奠基人Diffie和Hellman所提出的一種思想。簡單的說就是允許兩名使用者在公開媒體上交換資訊以生成”一致”的、可以共享的金鑰。換句話說,就是由甲方產出

第十八篇:JAVA加密解密之DH(Diffie-Hellman演算法

DH演算法簡介 Diffie-Hellman演算法(D-H演算法),金鑰一致協議。是由公開金鑰密碼體制的奠基人Diffie和Hellman所提出的一種思想。簡單的說就是允許兩名使用者在公開媒體上交換資訊以生成”一致”的、可以共享的金鑰。換句話說,就是由甲方產出一對金鑰(

【百度】大型網站的HTTPS實踐(二)——HTTPS加密演算法介紹

大型網站的HTTPS實踐(二)——HTTPS加密演算法介紹 原創 網路通訊/物聯網 作者:AIOps智慧運維 時間:2018-11-09 15:09:43  358  0   前言

HTTPS的中那些加密演算法

密碼學在電腦科學中使用非常廣泛,HTTPS就是建立在密碼學基礎之上的一種安全的通訊協議。HTTPS早在1994年由網景公司首次提出,而如今在眾多網際網路廠商的推廣之下HTTPS已經被廣泛使用在各種大小網站中。在完全理解HTTPS之前,有必要弄清楚一些密碼學相關的概念,比如:明文、密文、密碼、

HTTPS中的加密演算法相關概念

密碼學在電腦科學中使用非常廣泛,HTTPS就是建立在密碼學基礎之上的一種安全的通訊協議。HTTPS早在1994年由網景公司首次提出,而如今在眾多網際網路廠商的推廣之下HTTPS已經被廣泛使用在各種大小網站中。在完全理解HTTPS之前,有必要弄清楚一些密碼學相關的概念

HTTP和HTTPS的區別及HTTPS加密演算法

HTTPS協議的埠是443,HTTP協議的埠是80,其中HTTPS是相對安全的 HTTP是超文字傳輸協議 應用層協議 FTP、Telnet、SMTP、HTTP、RIP、NFS、DNS。 傳輸層協議的有 TCP協議、UDP協議 HTTP和HTTPS的概念        

使用 BoringSSL 優化 HTTPS 加密演算法選擇

提醒:本文最後更新於 1170 天前,文中所描述的資訊可能已發生改變,請謹慎使用。 前不久,一位朋友在我部落格評論中,問到:類似於 Google 那樣電腦訪問使用 AES,手機訪問使用 CHACHA20 的演算法是怎麼實現的(詳情)。最近我研究了一下這個問題,現在我的部落格也支援這個特性了。今天

用java程式設計實現Diffie-Hellman演算法

Diffie-Hellman金鑰交換程式碼如下: import java.util.ArrayList; import java.util.List; import java.util.Random; import java.math.*; public class DH

Diffie-Hellman金鑰交換演算法

選取兩個大數p和g並公開,其中p是一個素數,g是p的一個模p本原單位根(primitive root module p),所謂本原單位根就是指在模p乘法運算下,g的1次方,2次方……(p-1)次方這p-1個數互不相同,並且取遍1到p-1; 對於Alice(

openssl之DH(DiffieHellman)加密

gin dmgr int aes.h sta xca lock xe7 != //加密機制初始化 g_HDMgr.init(); //對方的public key BIGNUM* peerPubKey = NULL; peerPubKey = BN_bin2bn

Diffie-Hellman金鑰協商演算法

## 概述 DH演算法是非對稱加密演算法的鼻祖,為非對稱加密演算法奠定了基礎,**主要用途是進行金鑰交換**,**確保共享的金鑰能夠安全穿越不安全的網路**。該演算法其背後有對應數學理論做支撐,簡單來講就是構造一個複雜的計算難題,使得對該問題的求解在現實的時間內無法快速有效的求解(*computationa

八大免費SSL證書-給你的網站免費添加Https安全加密

wid 支持ie alt container gin 擴展 協議 域名解析 獲取 評論? https://www.freehao123.com/top-8-free-ssl-cert/ 文章目錄 Let‘s Encrypt StartSSL SSL Cl

git clone時出現:"diffie-hellman-group1-sha1 "

解決方法 Go ssh配置文件 algorithm 出現 git clone log diff roo 解決辦法1:在用戶配置目錄下添加一個ssh配置文件 vim /root/.ssh/config 內容如下: Host * KexAlgorithms +dif

迪菲.赫爾曼(DiffieHellman)密鑰交換算法

n) 信息 這樣的 aud 情況下 兩個 成了 b+ 裏的 迪菲.赫爾曼算法是通信線路不安全情況下,交換密鑰的一個算法,應用於TLS協議中 首先說一下生成密鑰的流程,我們有這樣一種計算叫做求摸運算 mod, 比如:27 mod 17 = 10,也就是求余數的運算。