---
# System prepended metadata

title: Crypto by sicc
tags: [2024 NISRA Enlightened]

---

:::info
# Crypto
講師：sicc
時間：8/28 13:30~16:30
:::

資訊安全的三要素 CIA
- 機密性 Confidentiality
- 完整性 Integrity
- 可用性 Availability

![](https://imgcdn.cna.com.tw/www/WebPhotos/1024/20240513/2000x2000_wmkn_59834188073500_0.jpg)

## 密碼學簡介

- 古典密碼學
    - 創造力、技巧的展現
- 現代密碼學
    - 電腦科學與數學

> [!Important]
> 密碼學 == **頭超級痛**

### 術語

- 加密 Encrypt
- 解密 Decrypt
- 明文 Plaintext
- 密文 Cyphertext
- 演算法 Algorithm
- 密鑰 Key

## 編碼 vs. 加密

- 編碼：格式轉換，只要知道轉換方式就可以破解密文
- 加密：

### 編碼

- Binary、Hex、ASCII
- Base32、Base45、Base58、Base62、Base64
- URL：避開有特殊意義的符號`%`+ASCII
- 摩斯密碼 
> 摩斯漢堡讚

> &uarr;你超胖

> Cyber Chief 的魔法棒是你的好朋友

> &uarr;作弊 

### 加密

轉換明文，使其不可讀。eg. AES、DES

## 古典密碼學

被時代淘汰的東西

### 替換式加密

單表：凱薩密碼、阿特巴西密碼、ROT13
多表加密：維吉尼亞密碼



#### 凱薩加密

> 凱薩沙拉

> 你肚子太餓了 &uarr;

輸入：明文、偏移量

![](https://upload.wikimedia.org/wikipedia/commons/2/2b/Caesar3.svg)

https://theblob.org/rot.cgi

#### 阿特巴希密碼

字母表扭轉
A->Z
B->X
...
Z->A

#### 波雷費密碼

[維雞排科](https://zh.wikipedia.org/zh-tw/%E6%B3%A2%E9%9B%B7%E8%B2%BB%E5%AF%86%E7%A2%BC)
> 自己去維基百科看

#### 維吉尼亞加密

- 利用表格內容加密

![image](https://hackmd.io/_uploads/SJuI5r3i0.png)

### 替換式密碼攻擊

#### 卡西斯基試驗

會有重複的字詞

#### IoC, Index of coincidence

$$
IC = c\times ((\frac{n_a}{N}-\frac{n_a-1}{N-1})+(\frac{n_b}{N}-\frac{n_b-1}{N-1})+...+(\frac{n_z}{N}-\frac{n_z-1}{N-1}))
$$

一段文本的隨機度
<!-- 好想吃香蕉-->

下限是 1，上限是字母總數

### 移項式加密

字元本身不變，字元位置依一定規則移動、變換。eg. 轉置

#### 密碼棒 Scytale Cipher

<!-- ex咖哩棒 -->
變得難閱讀

![image](https://hackmd.io/_uploads/rJXhAShiC.png)

```
#密碼棒-practice
SLAOCEYRY1HYT310ASFU

SLAO    SCYTA
CEYR    LE13S
Y1HY    AYH1F
T310    ORY0U
ASFU

SCYTALE13SAYH1FORYOU

SCYTALE 13 SAY H1 FOR YOU
```

#### 中國式密碼

- 由右至左，上下交替排列
- 結果
    - 左 ->右  
    - 上 -> 下 -> 下 -> 上 -> 上 -> 下．．．

## 現代密碼學

**數學魔法師** :mage: 

柯克霍夫原則
- 即使沒辦法數學上不可破解，也應在實際程度上不可破解。
- 即使加密方式公開，只要密鑰沒有洩漏，密文人無法破譯。

### 對稱式加密

共用密鑰
- 區塊加密法
- 串流加密法
    - 用密鑰 $\oplus$ 明文
    - 已知明文、密文可以直接回推 key，即明文 $\oplus$ 密文
    - 遇到一長串 null(`\x00`) 會直接寫出 key
    - 暴力破解 $2^{len(密文)}$

### 非對稱式加密

用公鑰加密、私鑰解密
- RSA

## 雜湊 Hash

- 將任意長度的字串轉成固定長度
- 雪崩效應<!--雪糕--> :ice_cream: 
- 無法回推
- 抗碰撞
- md5(遜)、sha 家族、bcrypt

![](https://i.ytimg.com/vi/EJJibXYCMvA/maxresdefault.jpg)

## 數位簽章

驗證資訊的方式，只有擁有私鑰的人可以簽章。有公鑰可以驗證簽章。
