---
# System prepended metadata

title: 基礎密碼學筆記
tags: [Security]

---

---
title: 基礎密碼學筆記
tags: Security
disqus: hackmd
Editor: roy.wang176@gmail.com
---

# 基礎密碼學筆記
## 前言
此篇依據下方參考網址的文章，以<u>**自己理解的方式筆記重點部分及增加圖文說明**</u>。該文章講解的非常詳細，且淺顯易懂，有興趣的朋友可以直接去閱讀。

### 情境假設 ( 無加密 )
A 想要傳資訊給 B，在沒有加密的情況下，B 收到訊息後，便可以直接閱讀。
![](https://i.imgur.com/8fLIDz7.png)

然而，沒有加密的訊息，如果被有心人擷取，他也可以輕鬆地獲取你完整的訊息內容。
![](https://i.imgur.com/X9AHcOI.png)

因此，我們需要<u>**使用加密**</u>的方式，來傳輸資料，<u>**防止機敏資料被竊取**</u>。

密碼學中分為兩大主要研究領域：**對稱性加密( Symmetric algorithm )** 及 **非對稱性加密( Asymmetric algorithm )**。密碼學技術用於數據的保密性，並且是許多安全通信協議的基礎，例如SSL / TLS，SSH和IPSec等等。

## 何謂對稱性加密?
* 對稱性加密： Symmetric algorithm
* 加密( encrypt )和 解密( decrypt )都是使用「**同一把鑰匙**」。
### 情境假設 ( 對稱加密 )
假如A想要通過加密的方式，傳輸一筆重要訊息給B，當B收到密文後，也可以自行解密來獲取A提供的訊息。如下圖：
![](https://i.imgur.com/MfEkSQ7.png)
那麼，實際執行的流程為：
1. 生成一組私鑰對( Key pair )。
2. A 將<u>**一把私鑰**</u>提供給 B。
3. A 使用私鑰將 明文( plaintext ) 加密成 密文( ciphertext )。
4. B 使用私鑰將密文解密成明文。

## 何謂非對稱加密?
- 非對稱性加密 ( Asymmetric algorithm )，也稱公開密鑰密碼學 ( Public-key cryptography）。
- 有兩把鑰匙，一把是公鑰( Public key )，一把是私鑰( Private key )。
- 私鑰需要自己保管好，公鑰可以提供給其他人。
- 可以「<u>**公鑰加密，私鑰解密**</u>」；也可以「<u>**私鑰加密，公鑰解密**</u>」。

### 情境假設 ( 非對稱加密 )
A 想要傳加密訊息給 B，如下圖：
![](https://i.imgur.com/C78yc70.png)

那麼，實際執行的流程為：
1. A 和 B 各自建立一組公私鑰對。
2. A 將自己的公鑰交給 B；B 將自己的公鑰交給A。
3. A 使用B的公鑰加密訊息並傳密文給 B，B 使用自己的私鑰解密，反之亦然。

那如果 B 的公鑰大家都有，那該如何確認該訊息是由A發出的呢? 這邊就要使用到數位簽章( Digital Signature )的概念。
## 何謂數位簽章?
- 用於確定數位文件或資料的完整性、真實性和不可否認性。數位簽章通常用於確保數位文件<u>**沒有被篡改或偽造**</u>，並且是由<u>**特定的人來實體簽署或發布的**</u>。
- 原理是利用公開密鑰加密技術和數位證書技術，將文件或資料的雜湊值（hash value）加密後與簽署人的數位證書進行匹配，以確定文件的完整性和真實性。在這個過程中，只有簽署人持有相應的私有密鑰才能進行簽署，從而確保簽名的不可否認性。

### 情境假設 ( 數位簽章 )
簡單來說，數位簽章就是 A 在傳送訊息前，用 A 的私鑰加密，傳給 B。B 再用 A 的公鑰來看是不是真的是 A 簽名。
![](https://i.imgur.com/uzxq7DL.png)

## 密鑰長度
- 密鑰的長度都是使用位元(bit)為單位。
- 密鑰的長度與安全級別相關。
- 對稱加密的密碼是隨機選擇，長度通常設為128或256位元。
- 非對稱加密的密碼長度通常設為2048~4096位元。

## 總結
最後，我整理了對稱加密和非對稱加密的比較表格，如下：
|名稱|對稱加密|非對稱加密|
|--|--|--|
|英文|Symmetric algorithm|Asymmetric algorithm|
|私鑰|不可公開|不可公開|
|公鑰|NA|需公開|
|安全性|低|高|
|金鑰傳遞|容易|難|
|常見算法|DES,AES|RSA,ECC,DSA|
|應用場景|儲存用戶名和密碼、Wifi數據|金融交易、SSH連線、區塊鍊|

下一章：[安全加密協定及憑證頒發機構筆記](https://hackmd.io/il9ImrjYRt641baduIN0XQ)

## 參考網址
[網路安全(1)](https://www.jyt0532.com/2017/04/13/simple-cryptography-en/)
[Cryptography Digital signatures](https://www.tutorialspoint.com/cryptography/cryptography_digital_signatures.htm)
[對稱加密vs非對稱加密](https://academy.binance.com/zt/articles/symmetric-vs-asymmetric-encryption)
[Openssl Tutorail](http://www.cs.toronto.edu/~arnold/427/19s/427_19S/tool/ssl/notes.pdf)