iT邦幫忙

2021 iThome 鐵人賽

DAY 16
0

有趣的簡寫越來越多了,而且越來越長了...


我個人認為這個章節應該擺在對稱加密和非對稱密碼的中間來介紹,
不過因為我想要將橢圓曲線密碼學的東西納進來一起講,
所以只好先介紹完橢圓曲線。

想法是這樣的:
兩個人只能在不安全通道上進行通訊(也就是沒有安全通道傳遞密鑰)、而且沒有事先協議的情況之下,
有沒有可能進行安全通訊。

答案是可以的,我們可以在不安全的通道上進行密鑰的協議。

DHKE(Diffie–Hellman key exchange)

換一個說法是,
如果攻擊者可以竊聽兩人之間的通訊訊息,
他也沒辦法得到密鑰。

DHKE方法可以讓兩個人協議出密鑰,在用此密鑰進行對稱式加密。
假設 Alice 和 Bob 在不安全通道上進行通訊。
這裡有一個比較生動的表示方法。

兩個人一開始都有一杯同樣顏色的顏料,
也各自有自己的秘密顏料,沒有人知道秘密的顏色。
接著將共有顏料跟祕密顏料混和在一起,
並傳給對方。
拿到對方混和顏料的兩人都各自將自己的秘密顏料加到裡面。
於是兩人得到共同的秘密。
(這杯共同秘密顏料裡面有:共同顏料+兩人的秘密顏料)

OS:到底是誰想到這種表示方法的...

以上的說明只是一種比喻,這個比喻的漏洞就是調色是可以逆推的,
而 DHKE 的運算是不可逆推的。

來看看這個交換密鑰的方法,

首先兩人都擁有的數字是https://chart.googleapis.com/chart?cht=tx&chl=%5Calpha 和p 、

兩人各自的秘密(私鑰)是 a 和 b。

(以下的運算都要 mod p

於是第一步兩人分別將 https://chart.googleapis.com/chart?cht=tx&chl=%5Calpha提升到 a 次方及 b 次方,成為公鑰(稱為A及B)。

接著交換公鑰。

收到對方公鑰之後,兩人在各自將公要提升到自己的私要次方,即得到共享秘密。

而共享秘密即是:

https://chart.googleapis.com/chart?cht=tx&chl=T%20%3DA%5Eb%3D(%5Calpha%5Ea)%5Eb%3D(%5Calpha%5Eb)%5Ea%3DB%5Ea%20%20(mod%20p)

而運用這個共享秘密兩人就可以進行對稱式加密通訊。
如果你想要實際操作DHKE的話,可以找一個人陪你玩(?)。
如果沒有人要陪你玩的話,你可以到下面這個網站實際操作看看,
(只是比較無聊一點)

https://www.irongeek.com/diffie-hellman.php

ECDH(Elliptic Curve Diffie–Hellman key exchange)

昨天講了橢圓曲線密碼學的基礎,
今天就要來實際看他可以幹嘛。

ECC可以運用在密鑰的交換上,因為他具有很好的不可逆運算性質,
因此可以套用在原本使用離散對數的 DHKE 上面,稱作ECDH。
有了ECC的基本概念,ECDH 其實會比 DHKE 還要好理解。

其實跟DHKE一樣,兩人有各自的私鑰(a, b),還有公開的基點(G)
藉由倍數關係,

https://chart.googleapis.com/chart?cht=tx&chl=T%20%3DaB%3Da(bG)%3Db(aG)%3DbA

獲得共同的密鑰,進行對稱式加密 ( AES )。
要注意的是,橢圓曲線上的運算結果是一個座標,我們用算出來的 x 座標當密鑰。

DHKE這樣看似公鑰密碼系統的密鑰協定算法,其實是在 RSA 公布前就出現了,
而他最後所達成的是對稱式密鑰的交換,不能完全算是非對稱式加密。
以下要介紹的演算法,是基於DHKE的非對稱式加密演算法。

ElGamal Encryption Scheme

ElGamal是埃及密碼學家طاهر الجمل 的英文翻譯,
他將 DHKE 延伸成一種加密演算法。
ElGamal 大致上和 DHKE 一模一樣,只是他減少了訊息需要被傳送的次數,
以及最後是直接用此共同密鑰加密傳送訊息。

可以看到這個圖片上所表示的,
接收者先公開自己的公鑰,也就是上圖的 (a, p, y) (對應到以上所提的https://chart.googleapis.com/chart?cht=tx&chl=%5Calpha ,p,A)
傳送者將要傳送的訊息加密後連同提升過的https://chart.googleapis.com/chart?cht=tx&chl=%5Calpha 一起傳送給對方。
接收者就可以運用已有的方式解密。

先前說過,對稱式加密的好處是速度快,而非對稱式安全性較高,
因此就很適合用非對稱式加密將「對稱式密鑰(比如說AES的密鑰)」加密後傳送,
再使用該密鑰進行快速的對稱式加密。


結束。
之後來講雜湊函數,掰掰~

圖片來源:
https://warroom.rsmus.com/encryption-basics-dhke/
https://www.researchgate.net/figure/The-DHKE-algorithm-51_fig21_331287260
http://cryptowiki.net/index.php?title=El_Gamal_Scheme
https://billatnapier.medium.com/little-protects-you-on-line-like-ecdh-lets-go-create-it-a14188eabded


上一篇
DAY 15- 《公鑰密碼》-ECC 橢圓曲線密碼學
下一篇
DAY 17- 雜湊函數 HASH
系列文
學密碼學也猜不到你的手機密碼30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言