iT邦幫忙

2022 iThome 鐵人賽

DAY 6
1
Security

做IT必備的資安觀念!手把手帶你攻防實戰系列 第 6

Day 6 : 觀念篇 - 密碼學裡的對稱式、非對稱式加密是什麼?

  • 分享至 

  • xImage
  •  

大家好,今天要來和大家聊聊現代密碼學中的「對稱式加密」和「非對稱式加密」是什麼東西,他的原理、過程、標準等又是什麼

那麼,我們就先來講對稱式加密!

對稱式加密(Symmetric-key algorithm)

「對稱」一詞,指的是上下、左右對折後會重疊,那如果用在密碼學,就是指 「加密」和「解密」都使用「同一把」金鑰

舉個例子,假設海綿寶寶今天用對稱式加密傳了一封明文給章魚哥,加密的金鑰為 key A
那章魚哥也要有一把 key A,這樣才能把「密文」解密成「明文」
https://ithelp.ithome.com.tw/upload/images/20220921/20141088ARa1Ugsx0Z.png

Wiki裡有寫,對稱式加密常見的演算法有AES、ChaCha20、3DES、Salsa20、DES、Blowfish、IDEA、RC5、RC6、Camellia

這邊挑兩個較具代表性的來聊聊,分別是DESAES

DES

DES(Data Encryption Standard)在早期(1970年)是對稱式加密的標準,但因為它金鑰 key 的長度不夠長(只有56位元),對現在的電腦運算速度來說,很快就能被破解,所以目前已經不是安全的加密方法
/images/emoticon/emoticon02.gif


AES

DES 成功被破解後,取而代之的就是AES(Advanced Encryption Standard),它金鑰 key 的位元長度一定要是128/192/256(最短就是128),128位元以目前的電腦運算速度來說還沒辦法破解(但不代表未來不會,因為電腦的效能一直在變強)

不過以目前來說是不需要太擔心的,因為有專家指出,AES 取代 DES 成為加密標準後(2001年),至少能撐個30年左右,而透過 AES 進行加密的資料,在這100年內是不會被破解成功的
https://ithelp.ithome.com.tw/upload/images/20220921/20141088Cgt3KIdcoB.png

當然是真的,我們要相信專家說的話!

問題

但對稱式加密有個很大的問題在,就是:「和每個人進行加密的金鑰key都不一樣,不能使用同一把key,不然加密的內容會被其他人知道,因此一個人需要管理很多把key

所以海綿寶寶如果想和派大星進行加密,就要一把,如果想跟珊迪加密,就要再一把
https://ithelp.ithome.com.tw/upload/images/20220921/20141088tkMae0SRhQ.png

這樣在金鑰管理上非常的麻煩,因此大家就開始想:「能不能讓管理的金鑰數變少,但依然能有效的進行加密?

於是,「非對稱式加密」誕生了!


非對稱式加密(Asymmetric,也稱公開金鑰加密法)

「非對稱」就是「對稱」的反義詞,所以用在密碼學就是 「加密」和「解密」使用的是「不同把」金鑰

這時一個人只需要管理兩把鑰匙就好,分別是「公開金鑰(Public-key)」和「私密金鑰(Private-key)

把剛剛對稱式加密的例子改成非對稱式加密,就會長成這樣
https://ithelp.ithome.com.tw/upload/images/20220921/20141088Xec0Zil975.png

相反的,如果章魚哥想加密明文給海綿寶寶,就要使用海綿寶寶的公開金鑰key A,而海綿寶寶如果想將密文解密,就要使用他的私密金鑰key B

:所以使用非對稱式進行加密時,應該要使用哪一把金鑰進行加密呢?

答案是公開金鑰(Public-key),而且是使用「對方」的
而對方如果要進行解密,就要使用他「自己」的私密金鑰(Private-key)


RSA

非對稱式加密有一個很著名的方法,叫RSA加密,是由羅納德·李維斯特(Ron Rivest)阿迪·薩莫爾(Adi Shamir)倫納德·阿德曼(Leonard Adleman)共同發明的,因此取他們姓氏的開頭來命名,就叫RSA

這是他們的臉,供大家參考參考
https://ithelp.ithome.com.tw/upload/images/20220921/20141088FEmpJul40i.png

RSA 主要是對一個極大的整數做因數分解,越難找到這個數的值,就代表它越安全可靠,而那個整數通常會選擇「兩個大質數的乘積

為什麼呢?因為兩個大質數要做相乘很容易,但給它們的乘積,並做因式分解就不那麼容易了,而且因式分解目前只能透過暴力法一個一個去試,因此執行速度相當的慢
https://ithelp.ithome.com.tw/upload/images/20220922/20141088VurgfrU1YV.png

但如果今天因式分解有辦法找到一個「快速的方法」執行,那也就代表破解了RSA加密法


對稱式 vs 非對稱式

整體來說,「非對稱式加密」在金鑰管理上比較方便,且安全性也高於「對稱式加密」
但因為「對稱式加密」的金鑰長度較短,所以執行速度較「非對稱式加密」快

目前實務上是「兩者交替使用」,也就是「HTTPS的SSL協定」(這部分我們後面會再獨立一篇講)
因為全部使用對稱式加密安全性太低,而全部使用非對稱式加密又執行太久,所以要各取所好,才能在運算「速度」和「安全性」上取得平衡,因為他們都「同等重要
/images/emoticon/emoticon30.gif


以上就是今天的介紹
希望大家看完能對「對稱式加密」和「非對稱式加密」更加了解


上一篇
Day 5 : 觀念篇 - 資安裡常說的密碼學是什麼東西?
下一篇
Day 7 : 觀念篇 - 密碼學裡的雜湊函數是什麼?它跟加密差在哪?
系列文
做IT必備的資安觀念!手把手帶你攻防實戰30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言